Stateless NAT46
ステートレスなNAT46機能を使用すると、Citrix ADCアプライアンスでセッション情報を維持することなく、IPv4からIPv6へのパケット変換(またはその逆)を介してIPv4とIPv6ネットワーク間の通信が可能になります。
ステートレスなNAT46構成の場合、アプライアンスは、RFC6145および2765で定義されているように、IPv4パケットをIPv4に変換するか、IPv6パケットをIPv4に変換します。
Citrix ADCアプライアンスのステートレスなNAT46構成には、次のコンポーネントがあります。
-
IPv4/IPv6 の INAT エントリです。IPv4 アドレスと IPv6 アドレスの 1:1 の関係を定義する INAT エントリ。つまり、アプライアンス上のIPv4アドレスは、IPv6サーバーに代わって接続要求をリッスンします。この IPv4 アドレスの IPv4 要求パケットが IPv6 パケットに変換され、IPv6 パケットが IPv6 サーバに送信されます。
アプライアンスは、IPv6応答パケットをIPv4応答パケットに変換します。送信元IPアドレスフィールドはINATエントリで指定されたIPv4アドレスとして設定されています。次に、変換されたパケットがクライアントに送信されます。
-
NAT46 IPv6 プレフィクスです。アプライアンスで設定されている長さ96ビット(128-32=96)のグローバルIPv6プレフィクス。IPv4 パケットから IPv6 パケットへの変換中に、アプライアンスは、変換された IPv6 パケットの送信元 IP アドレスを、要求パケットで受信した NAT46 IPv6 プレフィクス [96 ビットと][IPv4 送信元アドレス 32 ビットの連結に設定します] 。
IPv6パケットからIPv4パケットへの変換中、アプライアンスは、変換されたIPv4パケットの宛先IPアドレスを、IPv6パケットの宛先IPアドレスの最後の32ビットに設定します。
たとえば、企業が IPv6 アドレスを持つサーバ S1 上でサイト www.example.com をホストしているとします。IPv4クライアントとIPv6サーバーS1間の通信を可能にするために、Citrix ADCアプライアンスNS1は、サーバーS1のIPv4-IPv6 INATエントリとNAT46プレフィックスを含むステートレスNAT46構成で展開されます。INATエントリには、アプライアンスがIPv6サーバーS1に代わってIPv4クライアントからの接続要求をリッスンするIPv4アドレスが含まれています。
次の表に、この例で使用される設定を示します。
エンティティ | 名前 | 値 |
---|---|---|
クライアントの IP アドレス | Client_IPv4 (参照用のみ) | 192.0.2.60 |
サーバーの IPv6 アドレス | Sevr_IPv6 (参照用のみ) | 2001:DB8:5001::30 |
IPv6 サーバー S1 の INAT エントリで定義された IPv4 アドレス | Map-Sevr-IPv4 (参照用のみ) | 192.0.2.180 |
NAT 46 変換用の IPv6 プレフィクス | NAT46_Prefix (参照用のみ) | 2001:DB8:90: |
次に、この例のトラフィックフローを示します。
- IPv4クライアントCL1は、Citrix ADCアプライアンス上のマップサーバ-IPv4(192.0.2.180)アドレスに要求パケットを送信します。
- アプライアンスは要求パケットを受信し、NAT46 INAT エントリを検索して、マップ-sevr-IPv4(192.0.2.180)アドレスにマッピングされた IPv6 アドレスを検索します。これは、Sevr-IPv6(2001:DB 8:5001:30)アドレスを検索します。
- アプライアンスは、次のように変換されたIPv6要求パケットを作成します。
- 宛先 IP アドレスフィールド = Sevr-IPv6 = 2001: DB 8:5001:30
- 送信元 IP アドレスフィールド = NAT プレフィクス(最初の 96 ビット)とクライアント_IPv4(最後の 32 ビット)の連結 = 2001:DB 8:90:192.0.2.60
- アプライアンスは、変換された IPv6 要求を Sevr-IPv6 に送信します。
- IPv6サーバーS1は、IPv6パケットをCitrix ADCアプライアンスに送信して応答します。
- 宛先 IP アドレスフィールド = NAT プレフィクス(最初の 96 ビット)とクライアント_IPv4(最後の 32 ビット)の連結 = 2001:DB 8:90:192.0.2.60
- 送信元 IP アドレスフィールド = サーバ-IPv6 = 2001: DB 8:5001:30
- アプライアンスは IPv6 応答パケットを受信し、宛先 IP アドレスがアプライアンスで設定された NAT46 プレフィクスと一致することを確認します。宛先アドレスは NAT46 プレフィクスと一致するため、アプライアンスは NAT46 INAT エントリで、Sevr-IPv6 アドレスに関連付けられた IPv4 アドレスを検索します(2001: DB 8:5001:30)。これは、Map-Sevr-IPv4アドレス(192.0.2.180)を検索します。
- アプライアンスは、次の項目を使用して IPv4 応答パケットを作成します。
- 宛先 IP アドレスフィールド = IPv6 応答の宛先アドレスから削除された NAT46 プレフィクス = クライアント_IPv4 (192.0.2.60)
- 送信元 IP アドレスフィールド = Map-Sevr-IPv4 アドレス(192.0.2.180)
- アプライアンスは、変換された IPv4 応答をクライアント CL1 に送信します。
ステートレス NAT46 の制限事項
ステートレス NAT46 には、次の制限事項が適用されます。
- IPv4 オプションの変換はサポートされていません。
- IPv6 ルーティングヘッダーの変換はサポートされていません。
- IPv6 パケットのホップバイホップ拡張ヘッダーの変換はサポートされていません。
- IPv4 パケットの ESP および EH ヘッダーの変換はサポートされていません。
- マルチキャストパケットの変換はサポートされていません。
- 宛先オプションヘッダーおよび送信元ルーティングヘッダーの変換はサポートされていません。
- UDP チェックサムを含まないフラグメント化された IPv4 UDP パケットの変換はサポートされません。
ステートレス NAT46 の設定
Citrix ADCアプライアンスでステートレスNAT46構成に必要なエンティティを作成するには、次の手順に従います。
- ステートレスモードを有効にして、IPv4-IPv6 マッピング INAT エントリを作成します。
- NAT46 IPv6 プレフィクスを作成します。
CLI のプロシージャ
CLI を使用して INAT マッピングエントリを設定するには、次の手順を実行します。
コマンドプロンプトで入力します。
- add inat <name> <publicIPv4> <privateIPv6> -mode STATELESS
- show inat <name>
CLI を使用して NAT46 プレフィクスを作成するには、次の手順を実行します。
コマンドプロンプトで入力します。
- set inatparam -nat46v6Prefix <ipv6_addr|*>
- show inatparam
例:
> add inat exmpl-com-stls-nat46 192.0.2.180
2001:DB8:5001::30 -mode stateless
Done
> set inatparam -nat46v6Prefix 2001:DB8:90::/96
Done
<!--NeedCopy-->
GUIのプロシージャ
GUI を使用して INAT マッピングエントリを作成するには、次の手順を実行します。
-
[システム] > [ネットワーク] > [ルート] > [INAT] に移動します。
-
新しい INAT エントリを追加するか、既存の INAT エントリを編集します。
-
次のパラメーターを設定します。
- Name*
- パブリック IP アドレス*
- プライベート IP アドレス* ([IPv6] チェックボックスをオンにして、IPv6 形式でアドレスを入力します。)
- モード (ドロップダウンリストから [ステートレス] を選択します。)
*必須パラメータ
GUI を使用して NAT46 プレフィクスを作成するには、次の手順を実行します。
システムに移動 > [ネットワーク]の[設定] グループで、[ INATパラメーターの構成]をクリックし、[ プレフィックス] パラメーターを設定します。
ステートレス NAT46 のグローバルパラメータの設定
アプライアンスには、ステートレス NAT46 設定用のオプションのグローバルパラメータがいくつか用意されています。
CLI を使用してステートレス NAT46 のグローバルパラメータを設定するには、次の手順を実行します。
コマンドプロンプトで入力します。
-
set inatparam [-nat46IgnoreTOS ( YES NO )] [-nat46ZeroCheckSum ( ENABLED DISABLED )] [-nat46v6Mtu ] [-**nat46FragHeader** ( **ENABLED** DISABLED )] - show inatparam
例:
> set inatparam -nat46IgnoreTOS YES -nat46ZeroCheckSum DISABLED -nat46v6Mtu 1400 -nat46FragHeader DISABLED
Done
<!--NeedCopy-->
GUI を使用してステートレス NAT46 のグローバルパラメータを設定するには、次の手順を実行します。
[システム] > [ネットワーク] に移動し、[設定] グループで [INAT パラメータの設定] をクリックします。