Domain-Name-System
DNS (NSD) 區域傳輸不起作用
我正在嘗試使用 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
更新,而不考慮串列更改。