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 自身の名前解決をしてしまうために, 現象が再現せず, かなり悩みました.

でも, 構築時のチェック漏れが根本原因.

反省です...