named-checkconf コマンドで BIND の設定をチェック

2010-3-27 09:15
このエントリーをはてなブックマークに追加

DNS サーバである BIND の設定ファイル named.conf を書き換えた後、いきなり再起動してしまうと、記述エラーがあったときにデーモンが起動せず焦ります。

named-checkconf コマンドを使えば、事前に named.conf の記述が正しいかチェックをしてくれます。ただしチェックできるのは文法エラーとか、ファイルの存在有無だけです。ゾーンファイルの A レコードの値が正しいかとか TTL が適切かといった部分はチェックできませんので、DNS が稼動している状態で名前解決ができないなどのトラブルのときに使うものではありません。

# named-checkconf /etc/named.conf

chroot している場合は、-t オプションを使います。

# named-checkconf -t /var/named/chroot /etc/named.conf

named-checkconf コマンド実行後に何か出力がなければエラーはありません。エラーがある場合はその行とメッセージが表示されます。

/etc/named.conf:111: missing ';' before '}'

このようなメッセージの時は記述ミスで、 } の後にセミコロンが抜けています。

/etc/named.conf:54: open: /etc/named.root.hints: file not found

これは、named.conf の中で指定されているヒントファイル /etc/named.root.hints が見つからないというエラーです。たいていの場合、named.conf をサンプルからコピーして作ったときに出くわします。サンプル同様 /usr/share/doc/bind-*/sample/etc/named.root.hints ファイルをコピーすれば解決します。named.root ファイルも /var/named/ にコピーしましょう。この際、次のエラーが出ることがあります。

/etc/named.rfc1912.zones:10: zone '.': already exists previous definition: /etc/named.root.hints:12

エラーの意味は named.rfc1912.zones と named.root.hints の2つのファイルに ‘.’ という root ゾーンの定義が含まれており衝突していることです。DNS やネットワークによる解決策は異なりますので参考に止めて頂きたいのですが、それぞれが参照しているゾーンファイル named.ca と named.root の中身は同じものです。named.rfc1912.zones の named.root はローカル以外からも利用しますので、named.ca をコメントにする方がよいと思います。

また、それぞれのゾーンファイルの中身をチェックするには named-checkzone コマンドを使います。

# named-checkzone "example.com" example.com.zone

のようにします。

  • ブックマーク : アクセス: 147,504回
  • カテゴリー : Linux
  • キーワード : ,

コメントはまだありません

No comments yet.

Sorry, the comment form is closed at this time.

33 queries. HTML convert time: 0.087 sec. Powered by WordPress. Valid XHTML
Copyright © 2003-2017 @ futuremix.org ログイン