2. Overview (概要)
このセクションはDNS64メカニズムの紹介を提供します。
IPv4ネットワークとIPv6ネットワークを接続する1つ以上のIPv6/IPv4トランスレータボックスがあると仮定します。IPv6/IPv4トランスレータデバイスは, 2つのネットワーク間で変換サービスを提供し, IPv4のみのホストとIPv6のみのホスト間の通信を可能にします。(注: "IPv6のみのホスト"とは, IPv6のみのアプリケーションを実行しているホストとIPv6のみを使用できるホスト, およびクライアントにIPv6接続のみが利用可能な場合を意味します。"IPv4のみのサーバー"とは, IPv4のみのアプリケーションを実行しているサーバーとIPv4のみを使用できるサーバー, およびサーバーにIPv4接続のみが利用可能な場合を意味します)。DNS64と組み合わせて使用される各IPv6/IPv4トランスレータは, IPv6のみのホストからIPv4のみのホストへ開始される通信を許可しなければなりません (MUST)。
IPv6イニシエータが標準のAAAAレコードDNSルックアップを実行してレスポンダのアドレスを学習できるようにするため, DNS64は, DNS64がクエリされた名前のAAAAレコードを取得できない場合に, レスポンダの実際のIPv4アドレスを含むAレコードからAAAAレコードを合成するために使用されます。DNS64サービスは, IPv6イニシエータに対して通常のDNSサーバーまたはリゾルバとして表示されます。DNS64は, IPv6イニシエータによって生成されたAAAA DNSクエリを受信します。最初に要求されたAAAAレコードの解決を試みます。ターゲットノードに利用可能なAAAAレコードがない場合 (これはターゲットノードがIPv4のみのノードである場合の通常のケースです), DNS64はAレコードのクエリを実行します。発見された各Aレコードについて, DNS64はAレコードRRで取得された情報から合成AAAAレコードRRを作成します。
合成AAAAレコードRRのオーナー名はオリジナルのAレコードRRと同じですが, オリジナルのAレコードRRに含まれるIPv4アドレスのIPv6表現がAAAAレコードRRに含まれます。IPv4アドレスのIPv6表現は, IPv4アドレスとDNS64で設定された追加パラメータから, アルゴリズム的に生成されます。DNS64で設定されたパラメータの中には, 少なくとも1つのIPv6プレフィックスがあります。明示的に言及されていない場合, すべてのプレフィックスは等しく扱われ, 本文書で説明される操作は利用可能なプレフィックスを使用して実行されます。一般的であるため, これらのプレフィックスのいずれかをPref64::/nと呼び, 汎用プレフィックスPref64::/nで行われる操作を説明します。DNS64によって合成されたAAAAレコードRRに含まれるIPv4アドレスを表すIPv6アドレスには, Pref64::/nが含まれ, オリジナルのIPv4アドレスも埋め込まれています。
同じアルゴリズムと同じPref64::/nプレフィックスは, DNS64デバイスとIPv6/IPv4トランスレータの両方で設定されなければならず (MUST), 両方が与えられたIPv4アドレスに対して同じIPv6表現をアルゴリズム的に生成できるようにします。さらに, Pref64::/nを含むIPv6宛先アドレス宛のIPv6パケットが, その特定のPref64::/nが設定されたIPv6/IPv4トランスレータに配信され, IPv4パケットに変換できるようにする必要があります。
DNS64がAAAAレコードRRsを合成すると, 合成AAAAレコードRRsはIPv6イニシエータに返され, IPv4レシーバに関連付けられたIPv6アドレスとのIPv6通信を開始します。パケットはIPv6/IPv4トランスレータにルーティングされ, IPv4ネットワークに転送されます。
一般に, DNS64とIPv6/IPv4トランスレータ間の唯一の共有状態は, Pref64::/nとオプションの静的パラメータのセットです。Pref64::/nと静的パラメータのセットは, 両方で同じように設定されなければなりません (MUST)。DNS64デバイスとIPv6/IPv4トランスレータ機能間に通信はありません。DNS64のパラメータを設定するために使用されるメカニズムは, 本文書の範囲外です。
Pref64::/nとして使用されるプレフィックスとその適用可能性は, [RFC6052]で議論されています。Pref64::/nとして使用できるプレフィックスには2つのタイプがあります。
-
Pref64::/nは, IPv6アドレス空間でIPv4アドレスを表す目的で[RFC6052]によって予約されたWell-Known Prefix 64:ff9b::/96にすることができます。
-
Pref64::/nは, Network-Specific Prefix (NSP)にすることができます。NSPは, IPv4アドレスのIPv6表現を作成するために組織によって割り当てられたIPv6プレフィックスです。
2つのタイプのプレフィックスの性質の主な違いは, NSPが変換サービスを提供している組織の制御下にあるローカルに割り当てられたプレフィックスであるのに対し, Well-Known Prefixは, IPv6アドレス空間でIPv4アドレスを表す特定の目的で割り当てられているため, グローバルな意味を持つプレフィックスであることです。
DNS64機能は3つの場所のいずれかで実行できます。以下の用語はセクション4でより正式に定義されています。
最初のオプションは, DNS64機能をゾーンの権威サーバーに配置することです。この場合, 権威サーバーは, そのゾーン内のIPv4のみのホストに対して合成AAAAレコードRRsを提供します。これは1つのタイプのDNS64サーバーです。
別のオプションは, エンドホストにサービスを提供する再帰ネームサーバーにDNS64機能を配置することです。この場合, IPv6のみのホストがIPv4のみのホストのAAAAレコードRRsをネームサーバーに問い合わせると, ネームサーバーはAAAAレコードRRsの合成を実行し, IPv6のみのイニシエータに返すことができます。このモードの主な利点は, 現在のIPv6ノードが変更を必要とせずにこのメカニズムを使用できることです。このモードは"DNS64 in DNS recursive-resolver mode"と呼ばれます。これは2つ目のタイプのDNS64サーバーであり, また1つのタイプのDNS64リゾルバでもあります。
最後のオプションは, ローカル(スタブ)リゾルバに結合されて, エンドホストにDNS64機能を配置することです。この場合, スタブリゾルバは(実際の)AAAAレコードRRsを取得しようとし, それらが利用できない場合, DNS64機能は内部使用のためにAAAAレコードRRsを合成します。このモードは, エンドホストでのDNSSEC検証などの一部の機能と互換性があります。このモードの主な欠点は, エンドホストの変更が必要なため, 展開可能性です。このモードは"DNS64 in stub-resolver mode"と呼ばれます。これは2つ目のタイプのDNS64リゾルバです。