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服务,才能使修改的内容生效。