dns 区域传输至 solaris 从属服务器

dns 区域传输至 solaris 从属服务器

我在 debian gnu/linux 上的私有区域运行 bind9 作为主 DNS 服务器,一切正常。namserver 正在 IP 上运行X.X.X.X1

$ dig foo.zoneA @dns.zoneA

; <<>> DiG 9.7.3 <<>> foo.zoneA @X.X.X.X1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21295
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 2
    
;; QUESTION SECTION:
;foo.zoneA.                     IN      A
    
;; ANSWER SECTION:
foo.zoneA.              604800  IN      A       192.168.171.Y
    
;; AUTHORITY SECTION:
zoneA.                  604800  IN      NS      ns2.mycompany.net.
zoneA.                  604800  IN      NS      dns.zoneA.
zoneA.                  604800  IN      NS      dns.mycompany.net.
    
;; ADDITIONAL SECTION:
dns.mycompany.net.              306     IN      A       X.X.X.X2
dns.zoneA.              604800  IN      A       X.X.X.X1
    
;; Query time: 0 msec
;; SERVER: X.X.X.X1#53(X.X.X.X1)
;; WHEN: Thu Jul 26 17:04:14 2012
;; MSG SIZE  rcvd: 142 

最近我们必须将我们的一个区域镜像到在 solaris 上运行 bind9 的辅助 DNS 服务器。

在主服务器上,我们允许区域传输到辅助服务器,例如:

acl zoneAdns { X.X.X.X2; };

view "localview" {
   match-clients { zoneAdns; ...; }; 
   allow-transfer { zoneAdns; };
   zone "zoneA" {
     type master;
     allow-query { zoneAdns; ...; };
     file "/etc/bind/db/db.zoneA";
   };
};

i 用于...指示其他 acl,X.X.X.X2是辅助 DNS 服务器的 IP。

完成该配置后,就可以在 Solaris 计算机上手动获取区域传输dig axfr zoneA @X.X.X.X1(其中 XXXX1 是主 DNS 服务器的 IP)。

solaris 机器的配置(根据做这件事的人的说法,因为我无权访问该机器)如下:

zone "zoneA" {
    type slave;
    masters { X.X.X.X1; };
    file "/var/cache/bind/db.zoneA";
};

不幸的是,solaris-host 拒绝充当辅助名称服务器:

$ dig foo.zoneA @X.X.X.X2

; <<>> DiG 9.7.3 <<>> foo.zoneA @X.X.X.X2
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 33528
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
    
;; QUESTION SECTION:
;foo.zoneA.                     IN      A

;; AUTHORITY SECTION:
.                       3533    IN      SOA     a.root-servers.net. nstld.verisign-grs.com. 2012072600 1800 900 604800 86400

;; Query time: 0 msec
;; SERVER: X.X.X.X2#53(X.X.X.X2)
;; WHEN: Thu Jul 26 16:59:21 2012
;; MSG SIZE  rcvd: 106 

幸运的是,还有第三个名称服务器可用(这次在Linux的再次,使用 IP X.X.X.X3)。将此名称服务器配置为与 solaris bind9 完全相同(根据那里的技术人员的说法),我们立即获得成功(在允许主服务器上为新 IP 地址进行区域传输之后):

$ dig foo.zoneA @X.X.X.X3

; <<>> DiG 9.7.3 <<>> foo.zoneA @X.X.X.X3
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9788
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 3
    
;; QUESTION SECTION:
;foo.zoneA.                     IN      A
    
;; ANSWER SECTION:
foo.zoneA.              604800  IN      A       192.168.171.Y

;; AUTHORITY SECTION:
zoneA.                  604800  IN      NS      dns.zoneA.
zoneA.                  604800  IN      NS      ns2.mycompany.net.
zoneA.                  604800  IN      NS      dns.mycompany.net.
    
;; ADDITIONAL SECTION:
dns.mycompany.net.              600     IN      A       X.X.X.X2
dns.zoneA.              604800  IN      A       X.X.X.X1
ns2.mycompany.net.              600     IN      A       X.X.X.X3
    
;; Query time: 1 msec
;; SERVER: X.X.X.X3#53(X.X.X.X3)
;; WHEN: Thu Jul 26 17:15:53 2012
;; MSG SIZE  rcvd: 158 

现在,这两个“其他”名称服务器(运行 solaris 的 XXXX2 和运行 linux 的 XXXX3)充当主(solaris)/辅助(linux)对,因此 bind9 至少能够从 solaris 到 linux 进行区域传输。

尝试在两侧使用 bind9 从 Linux 到 Solaris 进行区域传输时,是否存在已知的限制?

答案1

不幸的是,solaris-host 拒绝充当辅助名称服务器

不幸的是,这表明人们对 DNS 的工作方式存在着深深的误解。

世界其他地方如何知道谁可以查询您的域数据?
-> 通过区域文件中配置/定义的名称服务器。

您需要将 Solaris IP 添加为名称服务器 (NS) 记录,并更新区域。

这也将导致通知自动发送,因为它们被发送到所有其他列出的名称服务器。

然后从属设备将响应通知拉动区域。

仅供参考,“递归是”- 否。只是...不。这在权威名称服务器上是没有位置的;而是设置专用的解析器缓存。

相关内容