要約

  • カタログゾーンは単なる台帳ではなく、メンバーゾーンの追加・削除・再設定を消費サーバーに行わせる構成入力である。
  • TSIGやTLS付きゾーン転送は経路と相手を検証できるが、空の一覧が意図どおりかは判断しない。安全性には元台帳、消費側の制限、状態の保管、実際の応答証拠が必要だ。

構文エラーのない空白ほど危険なものはない。

生成処理が、SOAとNS、値が一つだけのversion.$CATZ = 2、前より新しいシリアルを備えたカタログを作ったとする。転送は認証済みで、重複PTRも不正な既知プロパティもない。ただしメンバーが一件もない。

RFC 9432上、これは壊れたカタログではない。以前に同じカタログから設定されたメンバーが削除されたという、有効な表現である。標準は、生成スクリプトが誤って空のカタログを作れば、数秒で数百万のメンバーゾーンがセカンダリから削除され得ると警告する。これは仕様書の例示であり、特定の実事故を示すものではない。

正しい認証が、誤った意思を正しく運ぶことはある。

データ転送より上流の制御面

AXFRとIXFRは、すでに設定された一つのゾーン内容を同期する。どのゾーンをサーバーが受け持つべきかまでは配らない。Catalog Zoneは、その一覧を通常のDNSゾーン形式で転送する。zones.$CATZ配下の固有ラベルにあるPTRがメンバー名を示し、消費側は更新後に構成を自動生成できる。

したがって、メンバーゾーンは「何を答えるか」を、カタログは「そもそもこのサーバーが答える主体になるか」を決める。RFC 9432は、提供ゾーンに対する管理上の制御が消費者からカタログ内容の所有者へ移ると明記する。同時に、消費者が許容名をパターンや別データベースで絞ることも勧告する。共通形式は命令を運ぶが、実行可能範囲まで奪うものではない。

壊れた状態を維持命令に読み替えない

未対応のバージョン、重複メンバー、不正なRRsetなどはカタログを壊れたものにする。その場合、新しい解釈を止め、直前まで有効だったメンバーを削除も再構成もしない。再起動後も最後の有効状態を提供し続けることが推奨される。期限切れも一括削除の合図ではない。

このフェイルセーフは「意味を解釈できない」場合に強い。しかし、意味が明確な空集合、契約外の有効なドメイン、大量の正規削除までは止めない。必要なのは三つの判定だ。RFC構造が正しいか、期待した相手から来たか、そしてこの差分をこの消費者が今受け入れてよいか。最後の判断は暗号署名やシリアル番号からは出てこない。

不透明なラベルが状態の継続を左右する

メンバーラベルには業務上の意味がないが、変更すると削除と再追加として扱われる。ゾーンデータやDNSSEC鍵などの関連状態が失われ、作り直され得る。

cooは旧カタログから新カタログへの移行を調整する。消費側は新側にメンバーが現れるまで待ち、旧側の引渡し指示が残っていることを再確認する。同じラベルなら状態を引き継げる場合があり、違うラベルならリセットされる。監査はドメイン名だけでなく、旧新ラベル、出所カタログ、鍵・ジャーナル・タイマーの扱いを記録しなければならない。

全消費者がcooを理解しない環境では、旧側の削除より新側の追加が先に届き、名前衝突として無視されることがある。RFCは復旧方法を一つに固定していない。運用者は順序を確認し、必要なら再転送し、稼働応答を確認する。

同じ入力でも実装は同じ意味にしない

groupの意味は生産者と消費者の合意に依存する。未知の値は無視され、複数値は全部、一部、または何も処理されないことがある。*.extに相互運用保証はない。

BINDはview単位の処理と最小更新間隔を文書化する。PowerDNSは利用可能なバックエンドや一部プロパティ対応の限界を示す。Knot DNSは外部検証、テンプレート、現在の実装における即時パージや移行制約を説明する。これらは製品固有の事実でありRFCの共通命令ではない。

よって、同一ハッシュのカタログを受け取ったことだけでは足りない。実装と版、viewやテンプレート、受理したプロパティ、永続化、パージ、最終的な構成済みゾーン集合を証拠に含める必要がある。

暗号は経路を守るが、意思を審査しない

TSIGは共有鍵を使ってDNSトランザクションの送信元と完全性を確認する。XFR over TLSは適切な構成なら機密性とエンドポイント認証を加えられる。顧客ゾーン一覧や処理属性が漏れ得るため、どちらも重要である。

しかし、データベース結合が失敗してゼロ件になったことをTSIGは知らない。解約対象の抽出が全顧客を選んだことをTLSは知らない。証拠はDNSより前から始める必要がある。承認済み元台帳、期待件数、生成器版、入力・出力ハッシュ、追加・削除・ラベル変更を保持する。その後にシリアル、転送相手、消費側判定、実構成、各メンバー転送、SOAと鍵、各拠点の直接問い合わせをつなぐ。

親ゾーンのNS委任は別の状態である。セカンダリから消えたからといって親の委任は消えず、問い合わせは権威を失ったサーバーへ届き続ける可能性がある。カタログ処理完了は公開サービス完了ではない。

主要資料