星期二, 三月 20, 2007

bind zone with 'view'

在前面的"变态"DNS 中说明了针对不同网域使用不同的 DNS 查询结果的设置方法,现在我需要增加一个域,但是不需要这种区别对待的设置。直接编写一个 zone 的设定,named 不能正确启动,检查配置:
sh# named-checkconf etc/namedb/named.conf
etc/namedb/named.conf:20: when using 'view' statements, all zones must be in views
于是改成如下的配置:
view "all" {
match-clients { any; };
zone "." {
type hint;
file "named.ca";
};
zone "0.0.127.in-addr.arpa" {
type master;
file "named.local";
};
zone "groups.shopex.cn" {
type master;
file "groups.shopex.cn.zone";
allow-update { none; };
};
};
这时可以正常启动 named 了,但域名查询却出了问题:
sh$ dig -t NS groups.shopex.cn

; <<>> DiG 9.2.4 <<>> -t NS groups.shopex.cn
;; global options: printcmd
;; connection timed out; no servers could be reached
如果把这部分 view 放在最前面,则以前的 DNS 记录也会受影响而不能正确查询。
sh$ dig n01.shopex.cn

; <<>> DiG 9.2.4 <<>> n01.shopex.cn
;; global options: printcmd
;; connection timed out; no servers could be reached
正确的解法是必须在每个 view 里面包含所有的域!

没有评论: