予定より1週間遅れましたが、ローカルサーバーの FreeBSD を 5.4 から 6.2 にバイナリアップグレードしました。イメージファイルをダウンロードして CD-R に焼いて起動させて実行。何の問題もなく終了。
そのはずでした。
念のためチェックしていると、ウェブサーバーが応答しないことが判明。Webmin で確認してみると Apache が起動していません。手動で起動させてみると、今度は名前の解決ができないとかでエラー。名前の解決を手動で試みるも、やはりエラー。
DNS サーバーの BIND を調べてみると、起動していますが設定ファイルが書き換えられています。不安を感じながらも手作業で修復。でもエラー。
散々調べた結果、問い合わせ先がローカル IP アドレスだとサーバーを見つけられないようです。localhost にしてやるとグローバルサーバーのドメインも含めて名前解決できます。まったく持って謎です。
現在はプロバイダの DNS を参照することで何とかなっていますが、ローカルマシンの名前解決ができないので不便です。原因に思い当たる方いらっしゃいましたらお助けください。
dig コマンドによる問い合わせ
- # dig @localhost example.com
- ; < <>> DiG 9.3.3 < <>> @localhost example.com
- ; (2 servers found)
- ;; global options: printcmd
- ;; Got answer:
- ;; ->>HEADER< <- opcode: QUERY, status: NOERROR, id: 31756
- ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
- ;; QUESTION SECTION:
- ;example.com. IN A
- ;; ANSWER SECTION:
- example.com. 172800 IN A 192.0.34.166
- ;; AUTHORITY SECTION:
- example.com. 21600 IN NS a.iana-servers.net.
- example.com. 21600 IN NS b.iana-servers.net.
- ;; ADDITIONAL SECTION:
- a.iana-servers.net. 172800 IN A 192.0.34.43
- b.iana-servers.net. 172800 IN A 193.0.0.236
- ;; Query time: 1075 msec
- ;; SERVER: 127.0.0.1#53(127.0.0.1)
- ;; WHEN: Sun Jan 28 17:09:25 2007
- ;; MSG SIZE rcvd: 125
- # dig @192.168.0.1 example.com
- ; <<>> DiG 9.3.3 < <>> @192.168.0.1 example.com
- ; (1 server found)
- ;; global options: printcmd
- ;; connection timed out; no servers could be reached
2007年1月29日 追記
/var/log/message
を見てみると、次のようなエラーが出てました。
- Jan 29 06:08:29 server named[668]: could not listen on UDP socket: permission denied
- Jan 29 06:08:29 server named[668]: creating IPv4 interface fxp0 failed; interface ignored
- Jan 29 06:08:29 server named[668]: could not listen on UDP socket: permission denied
- Jan 29 06:08:29 server named[668]: creating IPv4 interface fxp0 failed; interface ignored
エラーメッセージを見つけたらインターネット検索が最近のお約束です。早速 Google 様に伺うことに。1時間ごとに同様のエラーが出るというブログ記事を発見。
次のようにあったので、早速実行。
BIND9を再起動すると解消するが、BIND9はHUPシグナルを受け取らないため、「kill -HUP pid」ではなくrndcを使うか、一度終了させてから再度起動させないとうまくいかない。
うまく名前解決できました。一歩前進です。
また、次のような情報もありました。こちらはすでにやっているので違うかもしれませんが、有用に思えたので書いておきます。
options セクションに、次のコードを追加することでリクエストを受け付けてくれるようになるとのことです。自分自身への問い合わせのため、127.0.0.1 は必須です。
- listen-on { 172.16.1.16 ; 127.0.0.1 ; } ;
また、調査してなくてよくわかっていないのですが、interface-interval
というオプションの値を0にするといいらしいです。
googleして、named.confに以下を追加
options { interface-interval 0; };
このオプションについては、またあとで調べてみようと思います。
2007年2月1日 追記
listen-on
で、LAN の IP アドレスを追加することで解決しました。このサブセクションに記述された IP アドレス宛の要求を処理するとのこと。
interface-interval
は、ネットワークインターフェースのチェックをする間隔だそうです。増減することはまずないので0にしておきました。