DNS設定を読み解く

ゾーンファイル

省略された名前を展開し、レコードの内容と継承関係を確認します。

ゾーンファイル

ゾーン入力

結果

テキストはこのブラウザー内で処理し、DNS問い合わせは送りません。

解析の基準

レコードを作成

SOA:主サーバー、管理者名、シリアル、refresh、retry、expire、minimum。TXT/CAA:外側の引用符なしで入力。

TTL換算

3600 秒 · 0日 1時間 0分 0秒

11件のレコード・0件の警告

UTF-8で1MiB、5000レコードまで。稼働中のDNSは確認しません。 整形後の出力も1MiBまでです。

DNSの移行でゾーンファイルをコピーするとき、短い名前をそのまま別の場所へ移すと意味が変わることがあります。行頭の空白や$ORIGINは単なる見た目ではありません。展開した表で所有者名とTTLの出所を確認してから変更できます。

入力した原文と整形結果は別に表示します。設定の編集によって結果が古くなった間は保存できません。構文が通っても委任やサーバー側への反映までは分からないため、読み込み先の検証も行ってください。

ゾーンファイルを展開して確認する理由

空白が示す所有者を確認

ゾーンファイルでは行頭が空白のレコードが前の所有者名を引き継ぎます。途中で$ORIGINが変わっても、その名前を新しいoriginで作り直すことはありません。表には絶対名を表示し、対象名に末尾の点がない場合も実際の展開結果を示します。

省略されたゾーンの記述が完全な名前とTTLを持つ表へ展開される図。

追加する前に競合を見つける

DNSレコード生成ではSRVの優先度・重み・ポートを個別に指定できます。CAAはフラグ、タグ、値を入力します。生成した一行だけでなく、元の設定に追加した状態をチェックし、CNAMEと別種類のデータが同居する場合は適用前に止めます。

追加予定のサービスレコードを既存のゾーンと照合してから適用する図。

変更前に見ておきたい三つのポイント

01

初期値の役割を区別する

$ORIGINを含むファイルならorigin欄は空のままで構いません。相対名だけの断片にはoriginを指定します。TTL設定の3600秒はこのページの補助値で、レコードにも$TTLにも値がない場合だけ使われます。

02

表を使って原文と照合する

レコード表示に切り替えると完全な名前、TTL秒数と継承元が分かります。タイプで絞り込んでも保存対象は全レコードのままです。診断のリンクを選ぶと該当行に移動します。表は50件ずつ追加表示します。

03

更新と適用のタイミングを知る

自動チェックは入力が止まって350ミリ秒後に実行します。無効にするとボタンまたはCtrl/Cmd + Enterで実行できます。整形の適用前には書き換える件数と削除するコメント・空行の数が表示され、適用後は一度取り消せます。

名前・時間・レコードの関係を確認

BIND形式の読み取り

ゾーンファイル検証では$ORIGIN、$TTL、@、所有者の省略、TTLとINの順序違い、セミコロンのコメント、括弧による継続行を扱います。SOAの時間には1hなどの単位を使用できます。

十種類のレコードを処理

A、AAAA、NS、CNAME、MX、TXT、SOA、SRV、CAA、PTRを読み取り、フォームから作成できます。TXTの文字列片は順番を保持し、エスケープを解釈した後の各片が255バイト以内かを確認します。

名前同士の矛盾を診断

IPアドレス、必須フィールド、整数の範囲に加え、重複、同一RRsetのTTL不一致、CNAMEの競合と循環を検出します。SOAやNSの不足は警告にとどめるため、レコードの断片も確認できます。

TTLを独立して換算

1h30mや1w2dを秒数と日・時・分・秒に変換します。計算結果はファイルへ自動反映しません。キャッシュの残り時間を問い合わせる機能でも、反映完了までのカウントダウンでもありません。

対応範囲と書き換え時の注意

稼働中のDNSは確認しない
DNS問い合わせ、AXFR、設定の公開、委任の確認、DNSSEC署名の検証は行いません。ローカルで問題が見つからないことと、権威サーバーがその内容を返すことは別の確認事項です。
非対応の構文では保存を止める
INクラスと記載した十種類が対象です。$INCLUDE、$GENERATE、未知のタイプ、バックスラッシュでエスケープしたDNS名はエラーになります。TXTとCAAのテキスト内エスケープは扱えます。
コメントと空行は残らない
整形すると各レコードを一行にし、所有者と名前型の対象を完全な名前で書き出します。レコード順序とTXTの分割は保持しますが、コメントや空行は除去します。重複削除やSOAシリアルの更新は自動では行いません。
TTLの不一致を自動修正しない
$TTLがない場合の補助値はページ設定です。SOAのminimumから古い実装の動きを推測しません。同じ名前と種類でTTLが異なる場合は警告し、値自体は保持するので、利用前に揃えてください。
一つのテキストを対象にする
UTF-8で1MiB、5000レコードまで処理します。URLからの読み込みや複数ファイルは対象外です。入力・設定の変更で結果が古くなった場合と、エラーがある場合はコピーも保存もできません。 整形後の出力も1MiBまでです。

ゾーンファイルのよくある質問

ドメインのゾーン情報を編集するには?

このゾーンファイル用の作業画面では、手元のテキストを編集し、整形結果や追加案を確認できます。適用は作業中の入力を書き換えるだけです。実際のDNSに反映するには、管理サービスへ読み込むか、権威サーバーの手順に従います。

名前の最後の点を省くとどうなりますか?

現在のoriginを補う相対名になります。example.com.の中ではmailはmail.example.com.ですが、mail.example.comはmail.example.com.example.com.です。自動補正せず、展開結果を表に表示します。

行の先頭に名前がないのはなぜですか?

先頭が空白なら、直前のレコードの所有者名を引き継ぐ書き方です。@を意味するわけではありません。直前に所有者がなければエラーになり、整形後は引き継いだ名前も明示されます。

$INCLUDEと$GENERATEは使えますか?

今回の対象には含めていません。外部ファイルの参照やBIND独自のレコード展開を無視して保存すると情報を落とすため、該当行を示して完全な出力を止めます。原文はそのまま編集できます。

TTLを書かなかったレコードは何秒になりますか?

まず有効な$TTLを使い、それもなければ選択した補助値を使います。初期値は3600秒です。SOAの最後の値は負のキャッシュに関わる値として扱い、全レコードの既定値へ流用しません。

必要なチェックが足りませんか?

ゾーンファイルの確認を始める

ゾーンファイルの短い記述がどの名前を表しているか、移行前に確かめておきましょう。

例のレコードを表で見比べてから、追加したい一行をプレビューできます。