導入
DNS ゾーン転送(ニーモニック オペコードAXFRとしても知られる) は、DNS トランザクションの一種です。これは、一連の DNS サーバー間で DNS データを含む分散データベースを複製するために使用できるいくつかのメカニズムの 1 つです。ゾーン転送は、フル ゾーン転送 (AXFR) またはインクリメンタル ゾーン転送 (IXFR) の 2 つの異なる方法で実行できます。一時はほぼ普遍的でしたが、最近の DNS システムが提供する他のデータベース レプリケーション メカニズムが支持され、衰退しつつあります。

機能している
AXFR動作(フル転送)
ゾーン転送は、TCP 経由のクライアントサーバー モードのトランザクションで機能します。分散データベースの一部 (ゾーン) からの情報を提供するサーバー (マスター) からの情報を必要とするクライアント (スレーブ) があります (RFC 2136)。ゾーンごとに常に 1 つのマスター プライマリ サーバーが存在します。これらの定義は、RFC 1035 (プライマリおよびセカンダリ) の定義を補完するものです。
ゾーン転送は、問題のゾーンの SOA DNS レコードをチェックすることから始まります。そのうちの 4 つのパラメータは、ゾーン転送プロセス専用です。
- シリアル番号 (またはシリアル番号) によってデータのバージョンが決まります。
- スレーブサーバーがマスターに再度クエリを実行するまでの時間を秒単位で決定するリフレッシュ期間 (またはリフレッシュ)、
- リフレッシュ試行 (またはretry ) の期間。ゾーン転送の失敗後にスレーブ サーバーがマスターに再度クエリを実行するまでの時間を秒単位で決定します。
- ゾーン転送が連続して失敗した場合にスレーブ サーバーがデータの有効期限が切れたとみなす必要がある時間を決定する有効期限 (またはExpires ) (スレーブ サーバーはゾーン内のドメイン名を解決しなくなります)。
このチェック中に、マスターのゾーンのシリアル番号 (バージョン) がスレーブが所有するゾーンの最後のコピーのシリアル番号 (バージョン) と同じ (またはそれより小さい) 場合、変更が行われないため、転送は停止します。このバージョンが新しい場合 (マスター ゾーンのシリアル番号がスレーブ ゾーン コピーのシリアル番号より大きい場合)、スレーブはそのようにゾーン転送要求を作成します。
実際のゾーン転送は、クライアントが AXFR (値 252) に対応する QTYPE (クエリ タイプ) を持つ DNSクエリ(オペコード 0) を TCP 接続経由でマスター サーバーに送信することで始まります。サーバーは、ゾーンのすべての登録済みリソース (RRdata) を含む一連の応答メッセージで応答します。最初の応答にはゾーンの SOA レコードが含まれ、その他のレコードは事前定義された順序で続きません。転送の終了は、SOA レコードの新規送信によって指定されます。
一部のゾーン転送クライアントは、標準解像度クライアントを使用して、ゾーン転送 (UDP) の前に SOA リクエストを実行します。これらのクライアントは、ゾーン転送が必要になるまで、サーバーへの TCP 接続を開きません。いずれにせよ、TCP はゾーン転送などの通常の DNS トランザクションを実行するプロトコルとして同じ意味で使用できますが、他のゾーン転送クライアントは同じ TCP 接続で最初の SOA クエリを実行し、次にゾーン転送を実行できます。これらのクライアントは、ゾーン転送の前に、SOA リクエストのマスター サーバー上で TCP 接続を体系的に開きます。

IXFR動作(インクリメンタル転送)
インクリメンタル ゾーン転送は、次の点でのみフル ゾーン転送と異なります。
- スレーブは QTYPE AXFR の代わりに QTYPE IXFR (値 251) を使用し、正しいと考えるゾーンのバージョン (シリアル番号) をサーバーに指定します (SOA の前のリクエストで取得したばかりのもの) )、
- スレーブは、保持しているゾーンのコピーの SOA エントリをマスターに送り返します。
- その後、マスター サーバーは AXFR プロトコルに従って応答し、前述のとおり、またはインクリメンタル IXFR プロトコルに従って完全なゾーンを転送できます。後者には、スレーブが保持する最後のゾーンのシリアル番号と現在マスターが保持するゾーンのシリアル番号の間の連続するシリアル番号 (バージョン) の順序で、ゾーン (RRdata) の記録されたリソースの変更リストが含まれます。編集には 2 つのリストが含まれており、1 つは削除するレコードのリストで、もう 1 つは挿入するレコードのリストです。
通知操作
ゾーン転送は完全にスレーブの主導で行われます。これにより、最初はゾーンにレコードがないとき (空のゾーン)、次にゾーンの SOA レコードで指定された更新値、再試行値、および期限切れ値に続いて定期的にゾーン転送がスケジュールされます。
ただし、一部のマスター サーバーは、リブートまたはリロード後にマスター サーバーがゾーンのシリアル番号の変更を検出するとすぐに、宣言されたスレーブ サーバーに NOTIFYメッセージを送信し、スレーブによって計画された期間外にゾーン転送を引き起こす可能性があります。

安全
TSIG (RFC 2845) を使用すると、マスターとスレーブの交換を認証し、スレーブ サーバーによって取得されるデータの整合性を保証することができます。このメカニズムにより、ゾーンの責任者は、スレーブ サーバーによって提供されたデータが正しいマスター サーバーからのものであり、交換中に第三者によって変更されていないことを確認できます。
DNS BIND実装では、このメカニズムの使用が可能になります。
