このページではLinuxサーバーで運用するBIND/named設定ファイルnamed-checkconf/named-checkzoneでのチェック法について解説します。
お便利サーバー.com+相互リンクサイト内をキーワードで検索
自宅内DNSサーバーの構築

DNSサーバーの構築

hostsファイルの設定

BINDについて(〜9.3.x)

BINDについて(9.7.x〜)

named.confの設定(〜9.3.x)

named.confの設定(9.7.x〜)

ゾーンファイルの書式

ゾーンファイルの省略方法

既存のゾーンファイル(〜9.3.x)

既存のゾーンファイル(9.7.x〜)

正引きゾーンファイルの作成

逆引きゾーンファイルの作成

設定ファイルの書式チェック

namedの起動とコントロール

namedの動作確認

ルーターとホストの設定

DNSSECについて


設定ファイルの書式チェックコマンドについて

WBEL CentOS インストール の「パッケージグループの選択」で、 "DNSネームサーバ" ( BIND )を選択しておくと WBEL3のインストール「パッケージグループの選択」 CentOS3のインストール「パッケージグループの選択」 WBEL4のインストール「パッケージグループの選択」 CentOS4のインストール「パッケージグループの選択」 CentOS5のインストール「パッケージグループの選択」 、ブートファイルの書式チェック コマンド "named-checkconf" と、ゾーンファイルの書式チェックコマンド "named-checkzone" が自動的にインストールされています。

これらのコマンドは、それぞれ保存済みのブートファイル"/etc/named.conf(WBEL3,CentOS3)"、"/var/named/chroot/etc/named.conf(WBEL4,CentOS4,CentOS5)"、及び任意のゾーンファイルに対して 「文法的な誤り」 を探し出し、レポートします。

チェックの対象となるのはあくまで保存されているファイルで、実行中の named ではないことに注意してください。

細かいパラメータの修正程度ならば、これらのコマンドでいちいちチェックする必要はありません。

しかし、ゾーンの記述を新規に作成したり、大幅に内容を書き換えたりしたときは必ずチェックを行うようにしましょう。

ただしチェックできるのは、例えば「"("が抜けている」のような文法上の誤りだけで、設定内容そのものの間違いはチェックできませんので意味を間違えないようにしてください。

関連セクションへ 関連セクション・ 固定IPでDNSサーバー構築


"named-checkconf"コマンドの使い方

named-checkconf コマンド は、"/usr/sbin/"以下にありますが、このディレクトリはroot アカウント にのみ パス が通っていますので パスが通っているとは 、一般の ユーザーアカウント から実行するときはパス名付きで実行する必要があります パスが通っているとは

また、チェック対象となる"/etc/named.conf"は、同時にゾーンファイルの格納ディレクトリである"/var/named/"を参照しますが、"/var/named/"は一般ユーザーからの参照が パーミッション で許可されていません。

従って、 デフォルト の位置にある"/etc/named.conf(WBEL3,CentOS3)"、"/var/named/chroot/etc/named.conf(WBEL4,CentOS4,CentOS5)"は、事実上rootアカウント以外ではチェックを実行できないことに注意してください。

named-checkconfは通常、オプションスイッチや引数は付けず、 コマンド 名だけで実行します。

すると、デフォルトのディレクトリにある"/etc/named.conf(WBEL3,CentOS3)"、"/var/named/chroot/etc/named.conf(WBEL4,CentOS4,CentOS5)"がチェックの対象となります。

書式に問題がなければ、次のように何のメッセージも出さずに正常終了します。

[tanaka@web1 ~]$ su -Enter
Password: "root"のパスワードを入力します。 Enter
[root@web1 ~]# named-checkconfEnter
[root@web1 ~]#

例えば、ゾーン名"obenri.com"の記述部分で、補助命令"type_master"の後ろに付けるべき";"を忘れていたとすると、次のように警告されます。

[root@web1 ~]# named-checkconfEnter
/etc/named.conf:51: missing ';' before 'file'
 「/etc/named.confの51行目、'file'の前に';'がありません。」
[root@web1 ~]#

これは、"type_master"の次の行(51行目)"file "obenri.com.zone";"の前に、補助命令の区切りを示す";"がない、ということを指摘されていることを示しています。

デフォルト以外の場所にあるブートファイルをチェックしたいときは、引数にファイル名を指定します。ファイル名は 絶対パス名 でも 相対パス名 でもかまいません。

[root@web1 ~]# named-checkconf /home/tanaka/named.conf.newEnter
 ↑"/home/tanaka/named.conf.new"をチェックします。
[root@web1 ~]#

ブートファイルはカッコや区切り記号が非常に多く、書式を間違えやすいので、書き換える部分が多いときは忘れずにチェックしましょう。

関連セクションへ 関連セクション・ 固定IPでDNSサーバー構築


このページの先頭へ↑

"named-checkzone"コマンドの使い方

named-checkzone コマンド も、named-checkconfコマンドと同じく"/usr/sbin/"以下にありますから、一般の ユーザーアカウント から実行するときはパス名付きで実行する必要があります。

DNSサーバーの構築に、
とても役に立った一冊です

また、チェック対象も通常はディレクトリ"/var/named/(WBEL3,CentOS3)"、"/var/named/chroot/var/named/(WBEL4,CentOS4,CentOS5)"のはずですから、上で説明したnamed-checkconf同様、事実上rootアカウント以外ではチェックを実行できないことに注意してください。

named-checkzoneは、

named-checkzone [ゾーン名] [チェックするゾーンファイル名]

という書式で実行します。named-checkzoneコマンドはnamed-checkconfコマンドと異なり、チェックする対象が デフォルト では決められていませんので、引数を省略することはできません。

[ゾーン名]は、ブートファイルの記述をタイプします。

[チェックするゾーンファイル名]は 絶対パス名 でも 相対パス名 でもかまいませんから、 cd コマンドで カレント ディレクトリを"/var/named/(WBEL3,CentOS3)"、"/var/named/chroot/var/named/(WBEL4,CentOS4,CentOS5)"に移してから作業するとよいでしょう。

[tanaka@web1 ~]$ su -Enter
Password: "root"のパスワードを入力します。 Enter
[root@web1 ~]# cd /var/namedEnter
[root@web1 named]# named-checkzone obenri.com obenri.com.zoneEnter
zone obenri.com/IN: loaded serial 2005111401
OK
[root@web1 named]# named-checkzone 100.168.192.in-addr.arpa 100.168.192.in-addr.arpa.zoneEnter
zone 100.168.192.in-addr.arpa/IN: loaded serial 2005111401
OK
[root@web1 named]#

このように、メッセージの最後に "OK" が表示されれば、書式に問題はありません。

しかし例えばレコードのタイプで、 "MX" と書くべきところを "NX" と間違えて書いたとすると、次のように警告されます。

[root@web1 named]# named-checkzone obenri.com obenri.com.zoneEnter
dns_master_load: obenri.com.zone:10: unknown RR type 'NX'
zone obenri.com/IN: loading master file obenri.com.zone: unknown class/type
 「dnsのマスターゾーンobenri.com.zoneをロード:"NX"という不明のリソースタイプがあります...。」
[root@web1 ~]#

繰り返しますが、named-checkzoneは書式をチェックするだけのコマンドですから、例えば、"192.168.100.11"と書くべきところを、"192.168.100,11"と間違えたのであればきちんと間違いを指摘してくれますが、"192.168.100.111"のように「設定としては間違っているが、書式としては正しい。」ものは正常と判断されます。

くれぐれもチェックコマンドを過信しないようにしてください。

関連セクションへ 関連セクション・ 固定IPでDNSサーバー構築


このサイトは リンクフリー です。趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。今のところ更新予定はありませんのでご了承ください。
”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。