bind でmasterからslaveへゾーン転送できない。

事象

bind でmasterからslaveへゾーン転送できない。

調査

①プロセスが死んでいるのか
  ⇒ps -ef | grep named | grep -v grep

②応答は返すのか
  ⇒お互いのサーバから通信する。
   nslookup memo.wakaue.info ns01.wakaue.info
   nslookup memo.wakaue.info ns02.wakaue.info

③tcp53番、udp53番が生きているか。
  ⇒telnet ns01.wakaue.info 53
   telnet ns02.wakaue.info 53
   
   nmapなどのポートスキャンモジュールがあればそれでもよい。

④ログは正常に出力されているか
  ⇒tail -f /var/named/chroot/var/log/named.log
   tail -f /var/log/messages

⑤シリアル番号がmasterよりslaveのほうが大きくなっていないか

解決方法

①②③④は、該当サーバのnamedをrestartしてみる。
おそらく、下記のようなメッセージとなる。
/etc/init.d/named restart
Stopping named: .umount: /var/named/chroot/var/named: device is busy.
    (In some cases useful info about processes that use
     the device is found by lsof(8) or fuser(1))
[ OK ] Starting named: [ OK ]

⑤は、slaveの対象ゾーンファイルを削除して、slaveのnamedを再起動する。
ゾーン転送が開始される。

※⑤④のエラーで実際に転送できない状態となっていたことがある。
上記対処をして、「device is busy.」表示が出たが、転送が正常にできた。
ログにも正常に転送できたログが出力された。
Jul xx xx:xx:xx ns02 named[1234]: transfer of 'memo.wakaue.info' from xxxxxxx#53: Transfer completed: 1 messages, 5 records, 275 bytes, 0.001 secs (275000 bytes/sec)

「device is busy.」になった場合は、namedをストップして、namedにてマウント
されるものを全て解除する。
その後にnamedをスタートしたら治った。

以上

おすすめの記事