BIND 9 で設定ファイル ( named.conf ) をチェックする





BIND 9 で named.conf を変更した後などに、
設定に文法上の誤りがないかチェックする方法は次の通り。


# named-checkconf
#

上記のように標準出力に何も出力されない場合は、
named.conf に文法上の誤りがないことを示している。


○エラー出力例1

named.conf にて、example.com ゾーンに対して slave と指定しているのに、
master サーバの指定を忘れた場合。

# named-checkconf
/etc/named.conf:15: zone 'example.com.': missing 'masters' entry
#

ちなみに、エラー出力中の 「15」 は間違った定義のゾーンの開始位置を示している。


○エラー出力例2

named.conf にて、type master のつづりを間違えた場合。

# named-checkconf
/etc/named.conf:11: 'masterr' unexpected
#

ちなみに、エラー出力中の 「11」 は間違った定義の行番号を示している。


○エラー出力例3

named.conf にて、type master; のセミコロンを忘れた場合。

# named-checkconf
/etc/named.conf:18: missing ';' before 'file'
#

ちなみに、エラー出力中の 「18」 はセミコロンを忘れた行の次の行番号を示している。


ここで知っておきたいのは、
named-checkconf は named.conf の全ての誤りを出力するのではないということ。

始めにエラーが見つかるとそれ以降はチェックしません。

上の例2の誤りを作ったとき例1の誤りは訂正していませんが、
11 行目でエラーを見つけたので、その分の 1 つだけしか出力されませんでした。

したがって、エラーを修正した後も必ず named-checkconf を実行する必要がある。