我有一个区域正确加载从DNS服务器上的问题。 两台服务器都运行BIND 9.9.3-P2。
我已经服务了150个区域,他们都正常工作。 但是,当我添加另一个域时,从属服务器拒绝识别它。
以下是主站上的区域说明:
zone "test.no" { type master; file "/var/lib/named/zones/test.zone"; };
这是从站的区域规范:
zone "test.no" { type slave; masters { master.ip; }; file "/var/lib/named/zones/test.zone"; };
而当我做一个rndc reload在主人,奴隶得到的通知,从主传输区域,不抱怨。 这是从奴隶的日志:
27-Mar-2014 10:30:15.146 zone test.no/IN: no master file 27-Mar-2014 10:30:15.146 zone_settimer: zone test.no/IN: enter 27-Mar-2014 10:30:15.157 dns_zone_maintenance: zone test.no/IN: enter 27-Mar-2014 10:30:15.158 zone_settimer: zone test.no/IN: enter 27-Mar-2014 10:30:15.166 zone_timer: zone test.no/IN: enter 27-Mar-2014 10:30:15.166 zone_maintenance: zone test.no/IN: enter 27-Mar-2014 10:30:15.166 queue_soa_query: zone test.no/IN: enter 27-Mar-2014 10:30:15.166 zone_settimer: zone test.no/IN: enter 27-Mar-2014 10:30:15.166 soa_query: zone test.no/IN: enter 27-Mar-2014 10:30:15.170 refresh_callback: zone test.no/IN: enter 27-Mar-2014 10:30:15.170 refresh_callback: zone test.no/IN: serial: new 2014031901, old not loaded 27-Mar-2014 10:30:15.170 queue_xfrin: zone test.no/IN: enter 27-Mar-2014 10:30:15.171 zone test.no/IN: Transfer started. 27-Mar-2014 10:30:15.171 zone test.no/IN: no database exists yet, requesting AXFR of initial version from xxxx#53 27-Mar-2014 10:30:15.171 transfer of 'test.no/IN' from xxxx#53: connected using xxxy#59644 27-Mar-2014 10:30:15.179 zone test.no/IN: zone transfer finished: success 27-Mar-2014 10:30:15.179 zone test.no/IN: transferred serial 2014031901 27-Mar-2014 10:30:15.179 zone_needdump: zone test.no/IN: enter 27-Mar-2014 10:30:15.179 zone_settimer: zone test.no/IN: enter 27-Mar-2014 10:30:15.179 zone_settimer: zone test.no/IN: enter 27-Mar-2014 10:30:15.179 transfer of 'test.no/IN' from xxxx#53: Transfer completed: 1 messages, 6 records, 197 bytes, 0.007 secs (28142 bytes/sec) 27-Mar-2014 10:30:15.180 zone_timer: zone test.no/IN: enter 27-Mar-2014 10:30:15.180 zone_maintenance: zone test.no/IN: enter 27-Mar-2014 10:30:15.180 zone test.no/IN: sending notifies (serial 2014031901) 27-Mar-2014 10:30:15.186 zone_dump: zone test.no/IN: enter 27-Mar-2014 10:30:15.186 zone_settimer: zone test.no/IN: enter 27-Mar-2014 10:30:15.186 zone_gotwritehandle: zone test.no/IN: enter 27-Mar-2014 10:30:15.186 decrement_reference: delete from rbt: 0x9a725d8 test.no 27-Mar-2014 10:30:15.187 dump_done: zone test.no/IN: enter
和/var/lib/named/zones/test.zone被创build并填充在从站上:
-rw-r--r-- 1 named named 250 Mar 27 10:30 test.zone
一切顺利! 但是,我增加了主机上的串行,并做另一个重新加载后,我得到了同样的该死的错误:
27-Mar-2014 10:30:51.405 client xxxx#42033: received notify for zone 'test.no': not authoritative
test.no区域是我尝试使用相同错误的第二个区域,configuration与其余工作区域具有相同的语法。
在主服务器上显示的实际区域文件:
$TTL 1h0m6s @ IN SOA ns1.domain.no. postmaster.domain.no. ( 2014031902 ; serial, todays date + todays serial # 1H ; refresh, seconds 2H ; retry, seconds 2D ; expire, seconds 1H ) ; minimum, seconds NS ns1.domain.no. NS ns2.domain.no. TXT "test.no" test A 10.0.0.1
为了这个问题的任何其他人的利益,并从谷歌结束这里,对我来说,这个问题是由我使用BIND的意见。
我已经configuration了多个视图,假设BIND将所有匹配的视图组合成一个视图,但实际上它会select第一个匹配的视图并仅使用该视图,忽略所有其他视图。 因此,客户只看到我的一小部分区域,所以那些从视图中遗漏的人就成为非权威人士。
我的问题是通过将所有内容粘贴到包含文件中并使用它们来确保每个视图完全自行完成。
解决了:
有两个绑定在服务器上运行的实例! 一个看起来孤儿继续服务请求(因此拒绝了它不知道的区域)。 还有一个忠实地回应rndc命令,并将所有正确的东西logging在同一个日志文件作为另一个实例。
我在将listen指令更改为localhost时select了此选项,以便过滤掉日志文件中来自客户端的所有噪音。 然而,查询不断爆炸日志文件,然后我再次检查哪些端口和IP正在监听,实际上,有多个不一致的条目。
我有点失望, rndc reload让我继续谈谈一个在实践中孤立的进程,甚至没有警告说,由于冲突指定的进程没有绑定到它的udp端口;-)