| Su | Mo | Tu | We | Th | Fr | Sa |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
なんかnamedがだめぽ。外のIPアドレスを引くのは問題ないのだが、windy.acのゾーンへの問い合わせを捌けていない。dig @localhost windy.acとかやっても失敗してくれる。ログを見ると
[root@shalm ]# tail /var/log/messages
May 29 19:17:58 shalm named[5062]: listening on IPv4 interface lo, 127.0.0.1#53
May 29 19:17:58 shalm named[5062]: listening on IPv4 interface eth0, 192.168.1.1#53
May 29 19:17:58 shalm named[5062]: couldn't add command channel 127.0.0.1#953: not found
May 29 19:17:58 shalm named[5062]: couldn't add command channel ::1#953: not found
May 29 19:17:58 shalm named[5062]: running
とある。"couldn't add command channel"ってのが怪しいのでぐぐる。と、rndcとかいうリモートでnamedをコントロールするためのデーモンがちゃんと動いていないらしい。/etc/rndc.confやら/etc/rndc.keyやらをいじくるが一向に改善せず。わけわかめ。直截叩いてもなんか怒られるし。
[root@shalm ]# /usr/sbin/rndc status
rndc: connect failed: connection refused
つーかこのrndc、リモート操作のためだけのデーモンでnamedの動作にはまったく関わらないらしい。なのでrndcが動いていようがいまいがwindy.acのゾーンが引けないという問題には関係しないっぽい。さらにぐぐるとbindの設定ファイルをチェックするコマンドがあることが分かる。試してみる。
[root@shalm named]# /usr/sbin/named-checkconf /etc/named.conf
[root@shalm named]# /usr/sbin/named-checkzone windy.ac. /var/named/windy.ac.zone
/var/named/windy.ac.zone:2: no TTL specified; using SOA MINTTL instead
zone windy.ac/IN: loaded serial 2004053003
OK
設定ファイルは大丈夫っぽい。んじゃ何が悪いのだ。で、検索クエリに"fedora"を含めてみたらやっと原因に突き当たった。
http://www.linux.co.jp/bbs/bbs2/bbs.cgi?num=4671&ope=v&page=
Fedoraのbindはchrootされているようです
bind-chrootパッケージがインストールされて
設定ファイルは、下記ディレクトリに置くようです
/var/named/chroot/etc
/var/named/chroot/var/named
空のnamed.confファイルが/var/named/chroot/etcに作られています
つーわけで/etc/named.conf, /etc/rndc.conf, /etc/rndc.key, /var/named以下を/var/named/chroot以下のしかるべき場所に移動してnamedを再起動。ちゃんと動くようになりましたとさ。
……しかし、これにはfedoraの不親切さに文句を付けたいという気がする。デフォルトの状態で/var/named/chroot/etcに空っぽのnamed.confが作られており、こいつのせいで/etc/rc.d/init.d/named startを打てばとりあえずはnamedが起動してしまう。このために、設定ファイルを置く場所が間違っているということに気づきにくい。「BINDの設定ファイルは/etc/named.confに置く」ということが慣習としてあり、そこから逸れたことをしようとしているのだから、然るべきインストラクションを出すことが必要なんじゃないかしらん。エラーメッセージとして、"設定ファイルを/etc/named/chroot/以下においてください"って言ってくれればすぐに分かるのだから。

