| ファイル名拡張子 | .zone |
|---|---|
| インターネットメディアの種類 |
テキスト/DNS |
| 開発者 | インド |
| 初回リリース | 1987年 |
| フォーマットの種類 | ファイル形式 |
| 標準 | RFC1034、1035、2308、4027 |
| オープンフォーマット? | はい |
ドメインネーム システム(DNS)ゾーン ファイルは、DNS ゾーンを記述するテキスト ファイルです。DNS ゾーンは、DNS の階層型ドメイン名構造のサブセット (多くの場合、単一のドメイン) です。ゾーン ファイルには、ドメイン名とIP アドレスおよびその他のリソース間のマッピングが、リソース レコード(RR)のテキスト表現の形式でまとめられています。ゾーン ファイルは、ゾーンを正式に記述する DNS マスター ファイルである場合もあれば、DNS キャッシュの内容を一覧表示するために使用される場合もあります。[1]
ファイル形式
ゾーン ファイルの形式は、RFC 1035 (セクション 5) およびRFC 1034 (セクション 3.6.1) で定義されています。この形式は、もともとBerkeley Internet Name Domain (BIND) ソフトウェア パッケージで使用されていましたが、他の DNS サーバー ソフトウェアでも広く採用されています。ただし、一部のソフトウェア ( NSD、PowerDNSなど) では、ゾーン ファイルをデータベース形式にコンパイルするための開始点としてのみ使用しています。Microsoft DNSとActive Directory のデータベース統合も参照してください。
ゾーン ファイルは、行指向のエントリのシーケンスです。各エントリは、単一のリソース レコード( RR ) を定義するディレクティブまたはテキスト記述のいずれかです。エントリは、任意の組み合わせの空白 (タブとスペース) で区切られたフィールドで構成され、引用符で囲まれた文字列フィールド値または囲む書式設定括弧のペアを除いて、行の境界で終了します。どの行も、セミコロンを先頭に付けたコメント テキストで終了できます。また、ファイルには任意の数の空白行を含めることができます。
エントリはゾーン ファイル内で任意の順序で出現できますが、SOAレコードはゾーンの先頭になければなりません。
ディレクティブは、ゾーン ファイルの残りの部分に影響を与える制御エントリです。ディレクティブの最初のフィールドは、ドル記号とそれに続くキーワードで構成されます。
- $ORIGIN の後には、後続の相対ドメイン名の起点として使用されるドメイン名が続きます。
- $INCLUDE の後には、その内容を解釈するときに使用するファイル名とオプションの origin ドメイン名が続きます (これらは親ファイルに出現した場合と同様に扱われ、その後にディレクティブの評価の前に origin 値にリセットされます)。
- RFC 2308 (セクション 4)で定義されている $TTL の後に、デフォルトのTTL (存続可能時間) として使用される数値が続きます。
- $GENERATE は、1 つのエントリで複数のリソース レコードを挿入するために BIND やその他のネーム サーバーソフトウェアで受け入れられる非標準の拡張機能であり、その後に負でない数字の増加シーケンスの簡潔な表現が続き、その後にテンプレート RR エントリが続きます。シーケンス内の各数字に対して、エスケープされていない "$" 文字を数字に置き換えたテンプレートを使用して、リソース レコードが追加されます。
リソース レコード エントリは、次の複数のフィールドで構成されます (両方のフィールド順序が許容され、互換的に使用できます)。
名前フィールドは空白のままにしておくことができます。その場合、レコードは前のレコードからフィールドを継承します。現在のオリジンを示すために、独立した @ が使用されます。
ttlフィールドは、キャッシュ クライアントがレコードを破棄し、新しい情報を取得するために新しい解決操作を実行するまでの秒数を指定します。BIND を含む一部のネーム サーバーは、時間単位の省略形を使用する非標準の表現を許可しています (たとえば、「2d」は 24 時間の 2 日を意味し、「1h30m」は 1 時間 30 分を意味します)。省略することもできます。その場合、結果の値は、デフォルトの TTL (定義されている場合) または前のレコードから設定されます。
レコードクラスフィールドは、レコード情報の名前空間を示します。省略することもできます。その場合、結果の値は前のレコードから設定されます。最も一般的に使用される名前空間は、パラメータINで示されるインターネットの名前空間ですが、CHAOSなど、他の名前空間も存在し、使用されています。
レコードタイプフィールドは、最後のフィールドであるレコード データに格納される情報のタイプの略語です。たとえば、アドレス レコード(IPv4 の場合はタイプA、IPv6 の場合はタイプAAAA ) は、最初のフィールドのドメイン名をレコード データ内のIP アドレスにマッピングします。メール エクスチェンジャレコード (タイプMX ) は、ドメインのSimple Mail Transfer Protocol (SMTP) メール ホストを指定します。
レコード データフィールドは、各レコード タイプの要件に応じて、1 つ以上の情報要素で構成されます。たとえば、アドレス レコードにはアドレスのみが必要ですが、メール エクスチェンジャ レコードには優先度とドメイン名が必要です。このような情報要素は、空白で区切られたフィールドとして表されます。
サンプルファイル
ドメインexample.comのゾーン ファイルの例を次に示します。
$ORIGIN example.com. ; designates the start of this zone file in the namespace$TTL 3600 ; default expiration time (in seconds) of all RRs without their own TTL valueexample.com. IN SOA ns.example.com. username.example.com. ( 2020091025 7200 3600 1209600 3600 )example.com. IN NS ns ; ns.example.com is a nameserver for example.comexample.com. IN NS ns.somewhere.example. ; ns.somewhere.example is a backup nameserver for example.comexample.com. IN MX 10 mail.example.com. ; mail.example.com is the mailserver for example.com@ IN MX 20 mail2.example.com. ; equivalent to above line, "@" represents zone origin@ IN MX 50 mail3 ; equivalent to above line, but using a relative host nameexample.com. IN A 192.0.2.1 ; IPv4 address for example.comIN AAAA 2001:db8:10::1 ; IPv6 address for example.comns IN A 192.0.2.2 ; IPv4 address for ns.example.comIN AAAA 2001:db8:10::2 ; IPv6 address for ns.example.comwww IN CNAME example.com. ; www.example.com is an alias for example.comwwwtest IN CNAME www ; wwwtest.example.com is another alias for www.example.commail IN A 192.0.2.3 ; IPv4 address for mail.example.commail2 IN A 192.0.2.4 ; IPv4 address for mail2.example.commail3 IN A 192.0.2.5 ; IPv4 address for mail3.example.com
ゾーン ファイルでは、少なくとも、ゾーンの権限のあるマスター ネーム サーバーの名前と、ネーム サーバーの管理責任者の電子メール アドレス (通常の @ 記号の代わりにピリオド文字を使用したドメイン名で表されます) を含む Start of Authority ( SOA )レコードを指定する必要があります。SOA レコードのパラメーターでは、タイミングと有効期限のパラメーター (シリアル番号、スレーブ更新期間、スレーブ再試行時間、スレーブ有効期限、レコードをキャッシュする最大時間) のリストも指定します。BIND などの一部のネーム サーバーでは、少なくとも 1 つの追加の NS レコードも必要です。
ゾーン ファイルでは、ピリオド文字で終わるドメイン名 (上記の例では「 example.com. 」など) は完全修飾ドメイン名ですが、ピリオドで終わらないドメイン名は現在のオリジンに対して相対的です (上記の例ではwwwがwww.example.comを参照するのはそのためです)。
ゾーン ファイルは、ネーム サーバー ソフトウェアの構成ファイルによって参照されます。たとえば、BIND では通常、次のようなステートメントが使用されます。
ゾーン "example.com" { タイプ master; ファイル "/var/named/db.example.com"; };
ルートゾーンとトップレベルドメイン
DNS ルート ゾーンおよびトップレベル ドメインセットのゾーン ファイルには、各ドメイン名の権限のあるドメイン ネーム サーバーのリソース レコードのみが含まれます。
一部のサーバー ソフトウェアでは、 localhostなどの特別に認識されたドメインまたはホスト名のリソース レコードが自動的に構成されますが、カスタマイズされたゾーン マスター ファイルが使用される場合もあります。
localhostの転送ゾーンを手動で構成する例は次のとおりです。
$ORIGIN localhost. @ 86400 IN SOA @ root ( 1999010100 ; シリアル 10800 ; 更新 (3 時間) 900 ; 再試行 (15 分) 604800 ; 有効期限 (1 週間) 86400 ; 最小 (1 日) ) @ 86400 IN NS @ @ 86400 IN A 127.0.0.1 @ 86400 IN AAAA ::1
対応する逆ゾーン定義は次のとおりです。
;; 127.0.0.1 および ::1 の逆ゾーン ファイル
$TTL 1814400 ; 3 週間@ 1814400 IN SOA localhost. root.localhost. ( 1999010100 ; シリアル 10800 ; 更新 (3 時間) 900 ; 再試行 (15 分) 604800 ; 有効期限 (1 週間) 86400 ; 最小 (1 日) ) @ 1814400 IN NS localhost. 1 1814400 IN PTR localhost.
このファイルはオリジンを指定しないため、次の構成で IPv4 と IPv6 の両方に使用できます。
ゾーン "0.0.127.in-addr.arpa" IN {
タイプ マスター;ファイル "
r.local " ;
} ;
ゾーン "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
タイプ マスター;ファイル "r.local"
; } ;
ブロードキャスト アドレスとヌル アドレスの逆解決用に、同様のゾーン マスター ファイルを作成することもできます。このようなゾーン ファイルにより、DNS サーバーが他の (場合によっては外部の) DNS サーバーを参照することが防止されます。
参照
外部リンク
- ゾーンファイルを作成する 2020年11月12日アーカイブ、Wayback Machine
参考文献
- ^ RFC 1035、ドメイン名 - 実装と仕様、P. Mockapetris、(1987 年 11 月)
