Citrix ADC

ステートフル NAT64 変換

ステートフルなNAT64機能を使用すると、Citrix ADCアプライアンスでセッション情報を維持しながら、IPv6からIPv4へのパケット変換(またはその逆)を介してIPv6クライアントとIPv4サーバー間の通信が可能になります。

Citrix ADCアプライアンスのステートフルなNAT64構成には、次のコンポーネントがあります。

  • NAT64ルール— ACL6ルールとネットプロファイルで構成されるエントリで、Citrix ADCが所有するSNIPアドレスのプールで構成されます。
  • NAT64 IPv6 プレフィクス — アプライアンス上で構成されている長さ 96 ビット(128 ~ 32 = 96)のグローバル IPv6 プレフィクス。 注:現在、Citrix ADCアプライアンスは、すべてのNAT 64ルールで一般的に使用される接頭辞を1つだけサポートしています。

Citrix ADCアプライアンスは、次の条件がすべて満たされた場合に、NAT64変換用の受信IPv6パケットを考慮します。

  • 着信 IPv6 パケットは、NAT64 ルールにバインドされた ACL6 ルールと一致します。
  • IPv6 パケットの宛先 IP アドレスは、NAT64 IPv6 プレフィクスと一致します。

Citrix ADCアプライアンスによって受信されたIPv6要求パケットがNAT64ルールで定義されたACL6と一致し、パケットの宛先IPがNAT64 IPv6プレフィックスと一致する場合、Citrix ADCアプライアンスはIPv6パケットを変換対象とみなします。

アプライアンスは、このIPv6パケットを、NAT64ルールで定義されたネットプロファイルにバインドされたIPアドレスと一致する送信元IPアドレスと、IPv6要求パケットの宛先IPv6アドレスの最後の32ビットで構成される宛先IPアドレスを持つIPv4パケットに変換します。Citrix ADCアプライアンスは、この特定のフローのNAT64セッションを作成し、IPv4サーバーにパケットを転送します。IPv4 サーバからの後続の応答と IPv6 クライアントからの要求は、特定の NAT64 セッションの情報に基づいてアプライアンスによって変換されます。

たとえば、企業が IPv4 アドレスを持つサーバ S1 上でサイト www.example.com をホストしているとします。IPv6クライアントとIPv4サーバーS1間の通信を可能にするために、Citrix ADCアプライアンスNS1は、NAT64ルールとNAT64プレフィックスを含むステートフルNAT64構成で展開されます。サーバ S1 のマッピング IPv6 アドレスは、NAT64 IPv6 プレフィクス[96 ビット]と IPv4 送信元アドレス[32 ビット]を連結することによって形成されます。このマッピングされた IPv6 アドレスは、DNS サーバで手動で構成されます。IPv6 クライアントは、IPv4 サーバ S1 と通信するために DNS サーバからマッピングされた IPv6 アドレスを取得します。

nat64

次の表に、この例で使用される設定を示します。ステートフル NAT64 変換の設定例

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

  1. IPv6 クライアント CL1 は、マップサーバ-IPv6(2001: DB 8:300:: 192.0.2.60)アドレスに要求パケットを送信します。

  2. Citrix ADCアプライアンスは要求パケットを受信します。要求パケットがNAT64ルールで定義されたACL6と一致し、パケットの宛先IPアドレスがNAT64 IPv6プレフィックスと一致する場合、Citrix ADCはIPv6パケットを変換対象とみなします。

  3. アプライアンスは、次のように変換された IPv4 要求パケットを作成します。

    • IPv6 要求の宛先アドレスから削除された NAT64 プレフィクスを含む宛先 IP アドレスフィールド(Sevr_IPv4 = 192.0.2.60)
    • Netprofile-1 にバインドされた IPv4 アドレスのいずれかを含む送信元 IP アドレスフィールド(この例では 192.0.2.100)
  4. Citrix ADCアプライアンスは、このフローのNAT64セッションを作成し、変換されたIPv4要求をサーバーS1に送信します。

  5. IPv64サーバーS1は、以下の方法でIPv4パケットをCitrix ADCアプライアンスに送信することで応答します。

    • 192.0.2.100 を含む宛先 IP アドレスフィールド
    • Sevr_IPv4 のアドレスを含む送信元 IP アドレスフィールド(192.0.2.60)
  6. アプライアンスは IPv4 応答パケットを受信し、すべてのセッションエントリを検索し、IPv6 応答パケットがステップ 4 で作成した NAT64 セッションエントリと一致することを検出します。アプライアンスは IPv4 パケットを変換対象と見なします。

  7. アプライアンスは、次のように変換されたIPv6応答パケットを作成します。

    • 宛先 IP アドレスフィールド = クライアント IPv6 = 2001: DB 8:5001:30
    • 送信元 IP アドレスフィールド = NAT64 プレフィクス(最初の 96 ビット)とサーバ_IPv4(最後の 32 ビット)の連結 = 2001: DB 8:300:: 192.0.2.60
  8. アプライアンスは、変換された IPv6 応答をクライアント CL1 に送信します。

ステートフル NAT64 の制限事項

ステートフル NAT64 には、次の制限が適用されます。

  • IPv4 オプションの変換はサポートされていません。
  • IPv6 ルーティングヘッダーの変換はサポートされていません。
  • IPv6 パケットのホップバイホップ拡張ヘッダーの変換はサポートされていません。
  • IPv6 パケットの ESP および EH ヘッダーの変換はサポートされていません。
  • マルチキャストパケットの変換はサポートされていません。
  • Packets of Stream Control Transmission Protocol (SCTP)、Datagram Congestion Control Protocol (DCCP)、および IPSec のパケットは変換されません。

ステートフル NAT64 の設定

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

  1. アクションが許可された ACL6 ルールを追加します。
  2. 複数の IP アドレスをバインドする ipset を追加します。
  3. ネットプロファイルを追加し、ipset をバインドします。1 つの IP アドレスだけをバインドする場合は、ipset エンティティを作成する必要はありません。その場合は、IP アドレスを netprofile に直接バインドします。
  4. NAT64 ルールを追加します。これには、ACl6 ルールとネットプロファイルを NAT 64 ルールにバインドすることが含まれます。
  5. NAT64 IPv6 プレフィクスを追加します。

CLI のプロシージャ

CLI を使用して ACL6 ルールを追加するには、次の手順を実行します。

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

  • add ns acl6 <acl6name> <acl6action> …

CLI を使用して IP セットを追加し、複数の IP をバインドするには、次の手順を実行します。

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

  • add ipset <name>
  • bind ipset <name> <IPaddress …>

CLI を使用してネットプロファイルを追加するには、次の手順を実行します。

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

  • add netprofile <name> -srcIP <IPaddress or IPset>

CLI を使用して NAT64 ルールを追加するには、次の手順を実行します。

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

  • add nat64 <name> <acl6name> -netProfile <string>

CLI を使用して NAT64 プレフィクスを追加するには、次の手順を実行します。

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

  • set ipv6 -natprefix <ipv6_addr|*>

例:

 > add acl6 ACL6-1 ALLOW -srcIPv6 2001:DB8:5001::30
 Done

> apply acls6
 Done

> add ip 192.0.2.100 255.255.255.0 –type SNIP
 Done

> add ip 192.0.2.102 255.255.255.0  –type SNIP
 Done

> add ipset IPset-1
 Done

> bind ipset IPset-1 192.0.2.100 192.0.2.102
IPAddress "192.0.2.100" bound
IPAddress "192.0.2.102" bound
 Done

> add netprofile Netprofile-1 -srcIP IPset-1
 Done

> add nat64 NAT64-1 ACL6-1 -netprofile Netprofile-1
 Done

> set ipv6 -natprefix 2001:DB8:300::/96
 Done

GUIのプロシージャ

GUI を使用して NAT64 ルールを追加するには、次の手順を実行します。

[システム] > [ネットワーク] > [ルート] > [NAT64] に移動して、新しい NAT64 ルールを作成するか、既存のルールを編集します。

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

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

ステートフル NAT64 変換