我正在尝试使用 NSD 创建主/从设置。我在两台服务器上安装了 NSD。服务器运行良好;当我执行正常的 DNS 查询时,它们会从区域文件中返回信息。但是,当我尝试nsdc notify
在主服务器上时,从服务器似乎没有选择新的区域配置。
master 上的 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
在主服务器上执行 a ,则以下内容将出现在从属服务器的日志中:
[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
在从服务器上执行,只是为了确定。但这也不会更改区域文件。
此外,如果我dig axfr @<master ip> domain.com
在从服务器上执行 a,我会得到一个不错的区域传输。
为什么从服务器不更新区域文件?
区域的序列号需要在任何更改后递增
在尝试传输之前,从站将首先检查它是否具有最新的区域,否则将忽略通知。通常的做法是使用 YYYYMMDDxx 格式,其中 xx 是次要修订号(如果不小心设置得太大,则必须遵循一个过程来再次降低该数字)
在
nsd-control
替换 nsdc 的更高版本的 nsd 中,该命令transfer
可用于尝试或force_transfer
更新,而不考虑串行更改。