7. Deployment Scenarios and Examples (展開シナリオと例)
このセクションでは, 一般的であると予想されるさまざまなシナリオでDNS64がどのように動作するかを示します。特に, [RFC6144]で定義されている以下のシナリオを検討します: "an IPv6 network to the IPv4 Internet"シナリオ (DNS64がDNSサーバーモードとスタブリゾルバモードの両方で) および"IPv6 Internet to an IPv4 network"セットアップ (DNS64がDNSサーバーモードのみで)。
以下のすべての例では, IPv6ドメインをIPv4ドメインに接続するIPv6/IPv4トランスレータがあります。また, デュアルスタックノードであるネームサーバーがあるため, IPv6を使用してIPv6ホストと通信でき, IPv4を使用してIPv4ノードと通信できます。さらに, 例では, DNS64機能が手動設定を通じてIPv4アドレス空間をマッピングするために必要なIPv6プレフィックスを学習すると仮定します。
7.1. Example of "an IPv6 Network to the IPv4 Internet" Setup with DNS64 in DNS Server Mode ("IPv6ネットワークからIPv4インターネット"セットアップの例: DNSサーバーモードのDNS64)
この例では, IPv6のみのサイトに位置するIPv6ノードが, IPv4インターネットに位置するIPv4ノードとの通信を開始する場合を考えます。
このケースのシナリオは次の図に示されています:
+---------------------+ +---------------+
|IPv6 network | | IPv4 |
| | +-------------+ | Internet |
| |--| Name server |--| |
| | | with DNS64 | | +----+ |
| +----+ | +-------------+ | | H2 | |
| | H1 |---| | | +----+ |
| +----+ | +------------+ | 192.0.2.1 |
| |---| IPv6/IPv4 |--| |
| | | Translator | | |
| | +------------+ | |
| | | | |
+---------------------+ +---------------+
図4: "IPv6ネットワークからIPv4インターネット"セットアップ
DNSサーバーモードのDNS64
図は, IPv6ノードH1とIPv4アドレス192.0.2.1およびFQDN h2.example.comを持つIPv4ノードH2を示しています。
IPv6/IPv4トランスレータは, そのIPv4インターフェースにIPv4アドレス203.0.113.1が割り当てられており, IPv4アドレスのIPv6表現を作成するためにWell-Known Prefix 64:ff9b::/96を使用しています。同じプレフィックスがローカルネームサーバーのDNS64機能で設定されています。
この例では, IPv6ホストがスタブリゾルバのみを持ち, 常にクエリして再帰検索を実行する必要があるネームサーバーのIPアドレスで設定されている (以降"再帰ネームサーバー"と呼ばれる) 典型的なDNS状況を想定します。
H1がH2との通信を確立するステップは次のとおりです:
-
H1はh2.example.comのDNSルックアップを実行します。H1は, H2のAAAAレコードのDNSクエリを再帰ネームサーバーに送信することによってこれを行います。再帰ネームサーバーはDNS64機能を実装しています。
-
再帰ネームサーバーはクエリを解決し, H2にAAAAレコードがないことを発見します。
-
再帰ネームサーバーはH2のAレコードクエリを実行し, IPv4アドレス192.0.2.1を含む単一のAレコードを含むRRSetを受け取ります。その後, ネームサーバーはAAAAレコードを合成します。AAAAレコードのIPv6アドレスには, 上位96ビットにIPv6/IPv4トランスレータに割り当てられたプレフィックスが含まれ, 下位32ビットに受信したIPv4アドレスが含まれます。つまり, 結果のIPv6アドレスは64:ff9b::192.0.2.1です。
-
H1は合成AAAAレコードを受信し, H2に向けてパケットを送信します。パケットは宛先アドレス64:ff9b::192.0.2.1に送信されます。
-
パケットはIPv6/IPv4トランスレータのIPv6インターフェースにルーティングされ, その後の通信はIPv6/IPv4トランスレータメカニズムによって流れます。
7.2. Example of "an IPv6 Network to the IPv4 Internet" Setup with DNS64 in Stub-Resolver Mode ("IPv6ネットワークからIPv4インターネット"セットアップの例: スタブリゾルバモードのDNS64)
このケースは次の図に示されています:
+---------------------+ +---------------+
|IPv6 network | | IPv4 |
| | +--------+ | Internet |
| |-----| Name |----| |
| +-----+ | | server | | +----+ |
| | H1 | | +--------+ | | H2 | |
| |with |---| | | +----+ |
| |DNS64| | +------------+ | 192.0.2.1 |
| +----+ |---| IPv6/IPv4 |--| |
| | | Translator | | |
| | +------------+ | |
| | | | |
+---------------------+ +---------------+
図5: "IPv6ネットワークからIPv4インターネット"セットアップ
スタブリゾルバモードのDNS64
図は, DNS64機能を実装しているIPv6ノードH1と, IPv4アドレス192.0.2.1およびFQDN h2.example.comを持つIPv4ノードH2を示しています。
IPv6/IPv4トランスレータは, そのIPv4インターフェースにIPv4アドレス203.0.113.1が割り当てられており, IPv4アドレスのIPv6表現を作成するためにWell-Known Prefix 64:ff9b::/96を使用しています。同じプレフィックスがH1のDNS64機能で設定されています。
この例では, IPv6ホストがスタブリゾルバのみを持ち, 常にクエリして再帰検索を実行する必要があるネームサーバーのIPアドレスで設定されている (以降"再帰ネームサーバー"と呼ばれる) 典型的なDNS状況を想定します。再帰ネームサーバーはDNS64機能を実行しません。
H1がH2との通信を確立するステップは次のとおりです:
-
H1はh2.example.comのDNSルックアップを実行します。H1は, H2のAAAAレコードのDNSクエリを再帰ネームサーバーに送信することによってこれを行います。
-
再帰DNSサーバーはクエリを解決し, H1に応答を返します。グローバルDNSにH2のAAAAレコードがないため, 応答は空です。
-
その後, H1のスタブリゾルバはH2のAレコードをクエリし, IPv4アドレス192.0.2.1を含むAレコードを受け取ります。その後, H1内のDNS64機能はAAAAレコードを合成します。AAAAレコードのIPv6アドレスには, 上位96ビットにIPv6/IPv4トランスレータに割り当てられたプレフィックスが含まれ, その後下位32ビットに受信したIPv4アドレスが含まれます。結果のIPv6アドレスは64:ff9b::192.0.2.1です。
-
H1はH2に向けてパケットを送信します。パケットは宛先アドレス64:ff9b::192.0.2.1に送信されます。
-
パケットはIPv6/IPv4トランスレータのIPv6インターフェースにルーティングされ, その後の通信はIPv6/IPv4トランスレータメカニズムを使用して流れます。
7.3. Example of "the IPv6 Internet to an IPv4 Network" Setup with DNS64 in DNS Server Mode ("IPv6インターネットからIPv4ネットワーク"セットアップの例: DNSサーバーモードのDNS64)
この例では, IPv6インターネットに位置するIPv6ノードが, IPv4サイトに位置するIPv4ノードとの通信を開始する場合を考えます。
一部のケースでは, このシナリオは任意の形式のDNS64機能を使用せずに対処できます。これは, 各IPv4ノードに固定のIPv6アドレスを割り当てることが可能だからです。このようなIPv6アドレスは, [RFC6052]で定義されたアドレス変換アルゴリズムを使用して構築されます。このアルゴリズムは, 入力としてPref64::/96とIPv4ノードのIPv4アドレスを取ります。IPv4アドレスはパブリックまたはプライベートアドレスにすることができます。後者は追加の困難を提示しません。なぜなら, NSPをPref64::/96として使用する必要があるからです (このシナリオでは, [RFC6052]で議論されているように, Well-Known Prefixの使用はサポートされていません)。IPv6インターネットでIPv4ノードを表すためにこれらのIPv6アドレスが割り当てられると, これらのアドレスを含む実際のAAAAレコードRRsをサイトのドメインの下のDNSに公開できます。これは, クエリ時にAAAAレコードを合成することを含まないため, このシナリオを処理するための推奨アプローチです。
ただし, AAAAレコードRRsをこのセットアップで合成することが必要になる可能性のある, よりダイナミックなシナリオがいくつかあります。特に, IPv4サイトでDNS Update [RFC2136]を使用してIPv4ノードのAレコードRRsを更新する場合, 2つのオプションがあります。1つのオプションは, 動的DNS更新を受信するDNSサーバーを変更することです。これは通常, ゾーンの権威サーバーです。したがって, 権威ゾーンには, 動的更新が発生すると合成される通常のAAAAレコードRRsがあります。もう1つのオプションは, ゾーンに対する合成AAAAレコードを生成するためにすべての権威サーバーを変更することです。これは, おそらく追加の制約に基づいて, AAAAレコードRRに対するDNSクエリの受信時に行われます。最初のオプション - DNS更新メッセージを受信したときにAAAAが合成され, データが関連ゾーンに公開される - は, 2番目のオプション (つまり, AAAA DNSクエリの受信時の合成) よりも推奨されます。これは, DNS応答が動的に生成されていない場合, 通常, 誤設定の問題を解決しやすいためです。ただし, プライマリサーバー (すべての更新を受信する) が何らかの理由でアップグレードできないが, セカンダリが (比較的少量の) AAAAクエリを処理するためにアップグレードできる場合があります。このような場合, 次に説明するDNS64を使用することが可能です。このセクションで説明するDNS64の動作は, DNSクエリが到着したときにAAAAレコードRRを合成する場合をカバーしています。
このケースのシナリオは次の図に示されています:
+-----------+ +----------------------+
| | | IPv4 site |
| IPv6 | +------------+ | +----+ |
| Internet |----| IPv6/IPv4 |--|---| H2 | |
| | | Translator | | +----+ |
| | +------------+ | |
| | | | 192.0.2.1 |
| | +------------+ | |
| |----| Name server|--| |
| | | with DNS64 | | |
+-----------+ +------------+ | |
| | | |
+----+ | |
| H1 | +----------------------+
+----+
図6: "IPv6インターネットからIPv4ネットワーク"セットアップ
DNSサーバーモードのDNS64
図は, IPv6ノードH1とIPv4アドレス192.0.2.1およびFQDN h2.example.comを持つIPv4ノードH2を示しています。
IPv6/IPv4トランスレータは, IPv4アドレスのIPv6表現を作成するためにNSP 2001:db8::/96を使用しています。同じプレフィックスがローカルネームサーバーのDNS64機能で設定されています。DNS64機能を実装するネームサーバーは, ローカルドメインの権威ネームサーバーです。
H1がH2との通信を確立するステップは次のとおりです:
-
H1はh2.example.comのDNSルックアップを実行します。H1は, H2のAAAAレコードのDNSクエリを送信することによってこれを行います。クエリは最終的にIPv4サイト内のサーバーに転送されます。
-
ローカルDNSサーバーは (ローカルで) クエリを解決し, H2にAAAAレコードがないことを発見します。
-
ネームサーバーは, h2.example.comとそのAレコードRRが, ローカルポリシーがAAAAレコードRRの生成を許可するものとして定義するものの中にあることを確認します。その場合, ネームサーバーはAレコードRRとプレフィックス2001:db8::/96からAAAAレコードを合成します。AAAAレコードのIPv6アドレスは2001:db8::192.0.2.1です。
-
H1は合成AAAAレコードを受信し, H2に向けてパケットを送信します。パケットは宛先アドレス2001:db8::192.0.2.1に送信されます。
-
パケットはIPv6インターネットを通じてIPv6/IPv4トランスレータのIPv6インターフェースにルーティングされ, 通信はIPv6/IPv4トランスレータメカニズムを使用して流れます。