ウチのメインWebサーバー(FreeBSD)と、ブログ用のサーバー(Vine Linux)には、BINDを入れてLAN内部の名前解決をさせているのですが、何時からか、マスター(FreeBSD)、スレーブ(Vine Linux)の同期が上手く行かなくなったらしく、NSLOOKUPコマンドで試しても、逆引き時に「1.1.168.192.in-addr.arpa」ってな感じで正しいFQDNが返ってこない。故にスレーブを優先して使用させているクライアントPCは、第一DNSサーバのサーバ名取得に失敗して、第二DNSサーバーに名前解決を行っている。これはクライアントPCにしてみればタイムラグが生じてよろしくない。
まず疑ったのは第一DNSサーバーに指定していた、スレーブ(Vine Linux)サーバー側。VineはAPTコマンドでパッケージの更新が出来るので、気軽にアップデートしているのだが、何らかのパッケージがアップデートされて容認されていた設定ミスがシビアにチェックされるようになったのではないかと疑った。しかし、named.confにはシンプルなスレーブとしての記述しかなく、殆どはコメントアウトしている。
こうなると疑いはFreeBSD側になってくる。そう言えば4.11-p17にアップデートしたんだった。もしかしたらその時にBindのバージョンが上がったのかも知れない。(make worldしたからなぁ)
調べてみたら、逆引きのZONEファイルに記述ミスを発見!これ書いたのはずいぶん前で、初めてBINDを使った時だもんなぁ。最終的にはミスを修正して下記のようにした。
不要な記述は思い切って削除。これでスッキリとした。
ちなみに問題だったのは、逆引きのZONEファイルにMXレコードを書いていた事らしい(要らんやろと思って削除したら正常になった)。
もちろんマスターのZONEファイルを修正したので、手っ取り早くスレーブのBINDも再起動した。
# service named restart
今でこそZONEファイルも読めるけど、これ書いた時は何も分かってなかったもんなぁ。
(内向き&プロバイダDNSへのフォワードなので危険性は殆どないですが)
時々は設定を見直ししないとダメだな。失敗しながら経験を積んで知識が増えて来ているから、見直しするとミスに改めて気づく事が結構あるのだ。


コメント