DNS(NSD)区域传输不起作用

我正在尝试使用NSD创build主/从设置。 我在两台服务器上安装了NSD。 服务器运行良好; 当我执行正常的DNS查询时,他们从区域文件中返回信息。 但是,当我尝试nsdc notify主,奴隶似乎并没有拿起新的区域configuration。

主服务器上的nsd.conf文件如下所示:

 ## NSD authoritative only DNS # server: logfile: "/var/log/nsd.log" port: 53 server-count: 1 ip4-only: yes hide-version: yes identity: "" zonesdir: "/etc/nsd3" verbosity: 3 zone: name: domain.com zonefile: www.domain.com.forward notify: <ip slave> NOKEY provide-xfr: <ip slave> NOKEY 

从服务器上的nsd.conf如下所示:

 ## NSD authoritative only DNS # server: logfile: "/var/log/nsd.log" port: 53 server-count: 1 ip4-only: yes hide-version: yes identity: "" zonesdir: "/etc/nsd3" verbosity: 3 zone: name: domain.com zonefile: www.domain.com.forward allow-notify: <ip master> NOKEY request-xfr: AXFR <ip master> NOKEY 

zonefile文件在主服务器上看起来像这样:

 $ORIGIN domain.com. $TTL 86400 ; default time to live @ IN SOA ns1.domain.com. admin.domain.com. ( 2011010203 ; serial number 28800 ; Refresh 7200 ; Retry 864000 ; Expire 86400 ; Min TTL ) NS ns1.domain.com. MX 10 mailfilter.hostingprovider.com. mail IN A <ip mailserver hostingprovider> www IN A <ip master> ns1 IN A <ip master> ns2 IN A <ip slave> newvalue IN A 8.8.8.8 * IN A <ip master> 

从属服务器上的前向文件是相同的,除了具有“newvalue”(我想要传送的值)的行。

如果我在主服务器上执行nsdc notify ,则以下内容会在slave的日志中结束:

 [1487507948] nsd[26038]: info: Notify received and accepted, forward to xfrd [1487507948] nsd[26037]: info: Handle incoming notify for zone domain.com 

但是,区域文件似乎没有得到更新。 通知后,我执行nsdc patch; nsdc rebuild; nsdc reload; service nsd3 restart nsdc patch; nsdc rebuild; nsdc reload; service nsd3 restart nsdc patch; nsdc rebuild; nsdc reload; service nsd3 restart从服务器,只是可以肯定的。 但是这不会改变区域文件。

另外,如果我在从属服务器上执行dig axfr @<master ip> domain.com ,我会得到一个很好的区域传输。

为什么从服务器不更新区域文件?

区域的序列号需要在任何改变之后递增

从机将在尝试传输之前首先检查它是否具有最新的区域,否则通知将被忽略。 通常的做法是使用YYYYMMDDxxforms,其中xx是次要版本号(如果意外地设置得太大,则必须遵循一个过程来再次降低数字)

在nsd nsd-control取代nsdc的更高版本的nsd中,可以使用命令transfer尝试,或者无论串行更改如何, force_transfer可以更新。