DNS サーバーで自分自身の名前解決ができないとき
セカンダリ DNS サーバーを構築していて, 自分自身の名前解決ができなくなってはまりました...
現象
プライマリ DNS が生きている時は正常だが, プライマリ DNS がダウンすると, セカンダリ DNS の 自分自身の名前解決ができなくなる.
結果的に, 自ドメインの名前解決もできなくなる.
プライマリ DNS が正常な場合でも, 自ホストで dig を実行した場合に名前解決ができない.
下記のようになってしまう.
$ dig @slave.example.jp www.example.jp ;; reply from unexpected source: xxx.xxx.xxx.xxx#53, expected 127.0.0.1#53 ;; reply from unexpected source: xxx.xxx.xxx.xxx#53, expected 127.0.0.1#53 ;; reply from unexpected source: xxx.xxx.xxx.xxx#53, expected 127.0.0.1#53
原因
/etc/hosts に自ホストが登録されていなかったため.
自ホストを追加することで解消されました.
--- /etc/hosts.bak 2009-03-04 19:27:20.000000000 +0900 +++ /etc/hosts 2009-03-04 19:46:25.000000000 +0900 @@ -12,7 +12,6 @@ # ::1 localhost slave.example.jp 127.0.0.1 localhost slave.example.jp +xxx.xxx.xxx.xxx slave.example.jp slave # # Imaginary network. #10.0.0.2 myname.my.domain myname
通常の運用なら, 自ホストが登録されてないと, メールの配送トラブルなどにつながるので, すぐに解るのですが, 今回は jail を使用して構築しており, DNS 以外のサービスを動かしていなかったので発見が遅れました.
また, プライマリ DNS が正常に動作しているときは, プライマリ DNS がセカンダリ DNS 自身の名前解決をしてしまうために, 現象が再現せず, かなり悩みました.
でも, 構築時のチェック漏れが根本原因.
反省です...