我正在尝试使用 NSD 创建主/从设置。我在两台服务器上安装了 NSD。服务器运行良好;当我执行常规 DNS 查询时,它们会返回区域文件中的信息。但是,当我尝试nsdc notify
在主服务器上执行此操作时,从服务器似乎没有获取新的区域配置。
主服务器上的 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
区域文件在主服务器上如下所示:
$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
如果我在主服务器上执行,以下内容会出现在从属服务器的日志中:
[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
另外,如果我在从属服务器上执行,我会得到一个良好的区域传输。
为什么从属服务器没有更新区域文件?
答案1
任何更改后,区域的序列号都需要增加
从属设备在尝试传输之前将首先检查其是否具有最新的区域,否则将忽略通知。常见的做法是使用 YYYYMMDDxx 格式,其中 xx 是次要修订号(如果不小心设置得太大,必须遵循一个过程来再次降低数字)
在 nsd 的后续版本中, nsd 取代了 nsdc,可以使用nsd-control
该命令来尝试,或者无论序列如何变化都可以进行更新。transfer
force_transfer