DNS服务器Bind软件的view能够根据查询的源地址不同为一个域名提供不同的解析内容,可以让我们轻松的实现动态域名解析功能。多view的DNS服务器,如果没有合理安排配置文件,会存在很多冗余的信息,修改起来重复工作多,也很容易出错。通过合理的安排配置文件,可以最大程度减少冗余,方便管理。 
  下面以有3个view的ustc.edu.cn域名服务器举例来说明配置文件的组织方式。配置文件中定义了三个view,用来分别针对教育网(cernet),中国电信(chinanet)和其他运营商的解析请求给出不同的结果,加快访问速度。 
  1. 文件acl.cernet,用来定义教育网的地址范围,内容为: 
  acl “CERNET” { 
  58.154.0.0/15; 
  58.192.0.0/12; 
  59.64.0.0/12; 
  116.13.0.0/16; 
  … 
  }; 
   2. 文件acl.chinanet,用来定义电信的地址范围,内容为: 
  acl “CHINANET” { 
  58.30.0.0/15; 
  58.32.0.0/11; 
  58.66.192.0/18; 
  … 
  }; 
  3. 文件/etc/named.common.conf,用来存放named.conf中每个view公共的信息,内容为: 
  zone “.” IN { type hint; file “named.ca”; }; 
  zone “localdomain” IN { type master; file “localdomain.zone”; allow-update { none; }; }; 
  zone “localhost” IN { type master; file “localhost.zone”; allow-update { none; }; }; 
  zone “0.0.127.in-addr.arpa” IN { type master; file “named.local”; allow-update { none; }; }; 
  zone “0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa” IN { type master; file “named.ip6.local”; allow-update { none; }; }; 
  zone “255.in-addr.arpa” IN { type master; file “named.broadcast”; allow-update { none; }; }; 
  zone “0.in-addr.arpa” IN { type master; file “named.zero”; allow-update { none;}; }; 
  zone “64.38.202.IN-ADDR.ARPA” in{type master; file “revs/named.202.38.64.rev”;}; 
  … 
  4. 文件/etc/named.conf,DNS服务的主配置文件,主要内容为 
  … 
  include “/var/named/acl.cernet”; 
  include “/var/named/acl.chinanet”; 
  … 
  view “CERNET” { 
  match-clients { CERNET;}; 
  include “/etc/named.common.conf”; 
  zone “ustc.edu.cn” in{type master; file “cernet.named.ustc.edu.cn.zone”;}; 
  }; 
  view “CHINANET” { 
  match-clients { CHINANET;}; 
  include “/etc/named.common.conf”; 
  zone “ustc.edu.cn” in { type master; file “chinanet.named.ustc.edu.cn.zone”;}; 
  }; 
  view “Other” { 
  match-clients { any;}; 
  include “/etc/named.common.conf”; 
  zone “ustc.edu.cn” in { type master; file “other.named.ustc.edu.cn.zone”;}; 
  }; 
  5. 文件common.named.ustc.edu.cn.zone,存放所有view完全一样的东西,内容为 
  @ IN SOA ns.ustc.edu.cn. james.ustc.edu.cn. ( 
  812 
  1200 ; refresh (20 min ) 
  300 ; retry (5 min) 
  7200 ; expire (2 hour) 
  600 ; minimum (10 min) 
  ) 
  IN NS ns.ustc.edu.cn. 
  IN NS mx.ustc.edu.cn. 
  重要服务器 
  ns IN A 202.38.64.1 
  mx IN A 202.38.64.56 
  … 
  msclub CNAME revproxy 
  job CNAME revproxy 
  www.job CNAME revproxy 
  … 
  6. 文件cernet.named.ustc.edu.cn.zone,存放CERNET view的信息,用来定义针对教育网的解析结果: 
  $INCLUDE common.named.ustc.edu.cn.zone 
  revproxy IN A 202.38.64.246 
  bbs IN A 202.38.64.3 
  … 
  7. 文件chinanet.named.ustc.edu.cn.zone,存放ChinaNET view的信息,用来定义针对电信网的解析结果: 
  $INCLUDE common.named.ustc.edu.cn.zone 
  revproxy IN A 218.22.21.25 
  bbs IN A 202.141.160.3 
  … 
  8. 文件othernet.named.ustc.edu.cn.zone,存放Other view的信息,用来定义针对其他运营商的解析结果: 
  $INCLUDE common.named.ustc.edu.cn.zone 
  revproxy IN A 218.104.71.173 
  bbs IN A 218.104.71.174 
  … 
  这样的配置文件组织,信息的冗余量很小,数据有变化时,我们只需修改相应view的数据就可以。需要注意的是不管修改哪一个view的内容,我们都需要修改common.named.ustc.edu.cn.zone中的序列号,至少增加1,重新启动named服务,才能使修改的内容生效。