我有以下设置:
非常有限的硬件上的 bind9 实例(以下称为 L),用于解析本地网络上的名称。它是 home.mydomain.com 区域的权威大师。对该服务器的查询工作并将 homedns.home.mydomian.com 作为 NS 返回,并将其 IP 192.168.1.77 作为附加记录返回。
用于解析 Internet 和本地名称的 bind9 实例(以下称为 M)。这里没有使用全局转发选项。配置了一个转发区域:
zone "home.mydomain.com" in {
type forward;
forward only;
forwarders { 192.168.1.77; };
};
注意 1:mydomain.com 是一个现有的注册域,但没有 home.mydomain.com 的记录
注2:M的bind9版本很老:9.8.1-P1
只要互联网连接正常,此设置就可以工作,但当连接断开时,本地名称查询不会得到答复。日志是 syslog 是
Aug 30 09:05:42 M named[1611]: error (no valid DS) resolving 'xxx.home.mydomain.com/A/IN': 192.168.1.77#53
当连接建立时捕获网络以成功解析表明 M 在收到 L 的回答后在 Internet 上查询 mydomain.com。在 M 给客户端的回答中,AUTHORITY SECTION 已更改:
挖到L:
;; ANSWER SECTION:
syslog.home.mydomain.com. 3600 IN A 192.168.1.99
;; AUTHORITY SECTION:
home.mydomain.com. 3600 IN NS homedns.home.mydomain.com.
;; ADDITIONAL SECTION:
homedns.home.mydomain.com. 3600 IN A 192.168.1.77
挖到M:
;; ANSWER SECTION:
syslog.home.mydomain.com. 2134 IN A 192.168.1.99
;; AUTHORITY SECTION:
net. 171334 IN NS j.gtld-servers.net.
net. 171334 IN NS m.gtld-servers.net.
net. 171334 IN NS i.gtld-servers.net.
net. 171334 IN NS k.gtld-servers.net.
net. 171334 IN NS g.gtld-servers.net.
net. 171334 IN NS e.gtld-servers.net.
net. 171334 IN NS h.gtld-servers.net.
net. 171334 IN NS a.gtld-servers.net.
net. 171334 IN NS d.gtld-servers.net.
net. 171334 IN NS f.gtld-servers.net.
net. 171334 IN NS b.gtld-servers.net.
net. 171334 IN NS c.gtld-servers.net.
net. 171334 IN NS l.gtld-servers.net.
我不明白为什么 M 不只是将 L 的答案返回给客户端,而且我没有任何想法,我可以尝试避免向 Internet 查询转发区域。