BIND 9 でゾーンファイルの内容をを変更した後などに、
設定に文法上の誤りがないかチェックする方法は次の通り。
# named-checkzone [ ゾーン名 ] [ ゾーンファイル ]
○出力例1
# named-checkzone example.com example.com.zone
zone example.com/IN: loaded serial 2007011601
OK
上記のように標準出力に 「 OK 」 と出力されれば、
ゾーンファイルに文法上の誤りがないことを示している。
○エラー出力例1
example.com.zone にて、refresh の行を記載し忘れた場合。
# named-checkzone example.com example.com.zone
dns_rdata_fromtext: example.come.zone:8: near eol: unexpected end of input
zone example.com/IN: loading maser file example.com.zone: unexpected end of input
○エラー出力例2
example.com.zone にて、SOA フィールド先頭の 「@」 を記載し忘れた場合。
# named-checkzone example.com example.com.zone
zone example.com/IN:3: no current owner name
zone example.com/IN: loading maser file example.com.zone: no owner
ちなみに、エラー出力中の 「3」 は間違った定義の行番号を示している。
ここで知っておきたいのは、
named-checkzone はゾーンファイルの全ての誤りを出力するのではないということ。
始めにエラーが見つかるとそれ以降はチェックしません。
上のエラー出力例2の誤りを作ったときエラー出力例1の誤りは訂正していませんが、
3 行目でエラーを見つけたので、その分の 1 つだけしか出力されませんでした。
したがって、エラーを修正した後も必ず named-checkzone を実行する必要がある。