Citrix ADC

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::

次に、この例のトラフィックフローを示します。

  1. IPv4クライアントCL1は、Citrix ADCアプライアンス上のマップサーバ-IPv4(192.0.2.180)アドレスに要求パケットを送信します。
  2. アプライアンスは要求パケットを受信し、NAT46 INAT エントリを検索して、マップ-sevr-IPv4(192.0.2.180)アドレスにマッピングされた IPv6 アドレスを検索します。これは、Sevr-IPv6(2001:DB 8:5001:30)アドレスを検索します。
  3. アプライアンスは、次のように変換されたIPv6要求パケットを作成します。
    • 宛先 IP アドレスフィールド = Sevr-IPv6 = 2001: DB 8:5001:30
    • 送信元 IP アドレスフィールド = NAT プレフィクス(最初の 96 ビット)とクライアント_IPv4(最後の 32 ビット)の連結 = 2001:DB 8:90:192.0.2.60
  4. アプライアンスは、変換された IPv6 要求を Sevr-IPv6 に送信します。
  5. 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
  6. アプライアンスは IPv6 応答パケットを受信し、宛先 IP アドレスがアプライアンスで設定された NAT46 プレフィクスと一致することを確認します。宛先アドレスは NAT46 プレフィクスと一致するため、アプライアンスは NAT46 INAT エントリで、Sevr-IPv6 アドレスに関連付けられた IPv4 アドレスを検索します(2001: DB 8:5001:30)。これは、Map-Sevr-IPv4アドレス(192.0.2.180)を検索します。
  7. アプライアンスは、次の項目を使用して IPv4 応答パケットを作成します。
    • 宛先 IP アドレスフィールド = IPv6 応答の宛先アドレスから削除された NAT46 プレフィクス = クライアント_IPv4 (192.0.2.60)
    • 送信元 IP アドレスフィールド = Map-Sevr-IPv4 アドレス(192.0.2.180)
  8. アプライアンスは、変換された IPv4 応答をクライアント CL1 に送信します。

ステートレス NAT46 の制限事項

ステートレス NAT46 には、次の制限事項が適用されます。

  • IPv4 オプションの変換はサポートされていません。
  • IPv6 ルーティングヘッダーの変換はサポートされていません。
  • IPv6 パケットのホップバイホップ拡張ヘッダーの変換はサポートされていません。
  • IPv4 パケットの ESP および EH ヘッダーの変換はサポートされていません。
  • マルチキャストパケットの変換はサポートされていません。
  • 宛先オプションヘッダーおよび送信元ルーティングヘッダーの変換はサポートされていません。
  • UDP チェックサムを含まないフラグメント化された IPv4 UDP パケットの変換はサポートされません。

ステートレス NAT46 の設定

Citrix ADCアプライアンスでステートレスNAT46構成に必要なエンティティを作成するには、次の手順に従います。

  1. ステートレスモードを有効にして、IPv4-IPv6 マッピング INAT エントリを作成します。
  2. 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

GUIのプロシージャ

GUI を使用して INAT マッピングエントリを作成するには、次の手順を実行します。

  1. [システム] > [ネットワーク] > [ルート] > [INAT] に移動します。

  2. 新しい INAT エントリを追加するか、既存の INAT エントリを編集します。

  3. 次のパラメーターを設定します。

    • 名前*
    • パブリック IP アドレス*
    • プライベート IP アドレス* ([IPv6] チェックボックスをオンにして、IPv6 形式でアドレスを入力します。)
    • モード (ドロップダウンリストから [ステートレス] を選択します。)

    *必須パラメータ

GUI を使用して NAT46 プレフィクスを作成するには、次の手順を実行します。

システムに移動 > [ネットワーク]設定] グループで、[INATパラメーターの構成]をクリックし、[プレフィックス] パラメーターを設定します。

ステートレス NAT46 のグローバルパラメータの設定

アプライアンスには、ステートレス NAT46 設定用のオプションのグローバルパラメータがいくつか用意されています。

CLI を使用してステートレス NAT46 のグローバルパラメータを設定するには、次の手順を実行します。

コマンドプロンプトで、次のように入力します。

  • set inatparam [-nat46IgnoreTOS ( YES NO )] [-nat46ZeroCheckSum ( ENABLED DISABLED )] [-nat46v6Mtu <positive_integer>] [-nat46FragHeader ( ENABLED DISABLED )]
  • show inatparam

例:

> set inatparam -nat46IgnoreTOS YES -nat46ZeroCheckSum DISABLED -nat46v6Mtu 1400 -nat46FragHeader DISABLED
 Done

GUI を使用してステートレス NAT46 のグローバルパラメータを設定するには、次の手順を実行します。

[システム] > [ネットワーク] に移動し、[設定] グループで [INAT パラメータの設定] をクリックします。

Stateless NAT46