ゾーンファイルには名前空間内の自ゾーンに関する情報を記載し、構成ファイル options ステートメントの directory で指定したディレクトリに保存する。
またゾーンファイル名は、構成ファイル
zone ステートメントの file で指定した名称と同じである必要がある。
ゾーンファイルに登録するエントリーには、次の種類がある。
- ディレクティブ
ネーム サーバーの制御情報、およびゾーンごとのオプションを記述する。
- 資源 (リソース) レコード
ホスト情報を記述する。
ゾーンファイルには、目的 (問い合わせの内容) に応じて次の種類がある。
ファイルの種類 | 役割 | 一般的な拡張子 |
正引き (forward mapping) | ドメイン(ホスト)名 → IPアドレス | .zone |
逆引き (reverse mapping) | IPアドレス → ドメイン(ホスト)名 | .rev |
ループバック | ホスト自身の特別な IP アドレス | .local |
ルート ゾーン | ルート ネーム サーバー情報 | .ca |
ゾーンファイルの書式は以下の通り。
- ファイルは一連のエントリーで構成され、基本的には1行に1つのエントリーを定義する。
- 丸括弧 ( ) は複数行にわたるデータが1つのエントリであることを示す。
丸括弧内部では、行の終端は認識されない。
- エントリー中に含まれる空白文字 (タブやスペース) は、各項目を区切るデリミタとして働く。
- セミコロン ( ; ) はコメントの始まりと解釈され、行の終端までの文字列は無視される。
- 任意の場所に空行を挿入でき、空行は無視される。
- 大文字と小文字は区別しない。
一般に、ディレクティブ名のみは大文字で、他の項目は小文字を使う傾向がある。
ディレクティブは、ドル記号 ( $ ) で始まり、その後にディレクティブの名前が続く。
一般的に使用されるディレクティブは次の通り。
ディレクティブ記述位置に、別のファイル内容を挿入する。
$INCLUDE file-name
- file-name フィールドに、挿入したいファイル名を指定する。
修飾指定のないレコードに付加するドメイン名 (起点名) を設定する。
$ORIGIN sp-name
- sp-name
資源レコードのレコード名 (ドメイン名、ホスト名) が、ドット ( .) で終わっていない場合に、レコード名の末尾に追加する文字列を記述する。
- $ORIGIN ディレクティブを省略した場合は、構成ファイルの zone ステートメントで指定した domain-name が、$ORIGIN ディレクティブ値として適用される。
自ゾーンの資源レコードの有効期間 (TTL : Time to Live) を設定する。
ここで設定した値が資源レコードの有効期間として応答メッセージ中に含まれ、
応答メッセージを受信したサーバーは TTL で定められた期間、得られた情報をキャッシュする。
$TTL time-value
- time-value
有効期間を、秒、分、時、日、週単位で設定する。
- time-value に数値のみ記述した場合は秒単位と解釈される。
数値の後に次の記号を付加した場合はそれぞれの単位となる。
- ゾーンデータの変更頻度により、次の値を time-value の目安とする。
- 頻度が低い : 数日間 ((最大で1週間程度)
- 頻度が高い : 最短で 1 時間
- 発生する DNS のトラフィックを考慮すると、1時間より短い TTL は薦められない。