NSDを使用してマスター/スレーブセットアップを作成しようとしています。 NSDを2台のサーバーにインストールしています。サーバーは正常に動作しています。通常の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
を実行すると、ニースゾーン転送が行われます。
スレーブサーバーがゾーンファイルを更新しないのはなぜですか?
ゾーンのシリアル番号は変更後にインクリメントする必要があります
スレーブは、転送を試みる前に、最初に最新のゾーンがあるかどうかを確認します。そうでない場合、通知は無視されます。一般的な方法は、YYYYMMDDxxの形式を使用することです。xxはマイナーリビジョン番号(誤って大きく設定しすぎた場合は、番号を再度下げるために実行する必要のあるプロセスがあります)
Nsdのそれ以降のバージョンでは、nsd-control
nsdcを置き換え、コマンドtransfer
を使用して試行するか、force_transfer
シリアルの変更に関係なく更新します。