ステートレス NAT46
ステートレスNAT46機能により、NetScalerアプライアンスのセッション情報を維持することなく、IPv4からIPv6へのパケット変換、またはその逆のパケット変換によるIPv4ネットワークとIPv6ネットワーク間の通信が可能になります。
ステートレスNAT46構成の場合、アプライアンスはRFC 6145および2765で定義されているように、IPv4パケットをIPv6に変換するか、IPv6パケットをIPv4に変換します。
NetScalerアプライアンスのステートレスNAT46構成には、次のコンポーネントがあります。
-
IPv4-IPv6 INAT エントリ。IPv4 アドレスと IPv6 アドレスの間の 1:1 の関係を定義する INAT エントリ。つまり、アプライアンス上のIPv4アドレスは、IPv6サーバーに代わって接続要求を受信します。このIPv4アドレスのIPv4要求パケットがIPv6パケットに変換され、IPv6パケットがIPv6サーバーに送信されます。
アプライアンスは、IPv6応答パケットを、送信元IPアドレスフィールドがINATエントリで指定されたIPv4アドレスとして設定されたIPv4応答パケットに変換します。その後、変換されたパケットはクライアントに送信されます。
-
NAT46 IPv6 prefix. アプライアンスで設定されている長さ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間の通信を可能にするために、NetScalerアプライアンスNS1は、サーバーS1のIPv4-IPv6 INATエントリとNAT46プレフィックスを含むステートレスNAT46構成で展開されます。INATエントリには、アプライアンスがIPv6サーバーS1の代わりにIPv4クライアントからの接続要求を受信するIPv4アドレスが含まれています。
次の表に、この例で使用されている設定の一覧を示します。
エンティティ | 名前 | 値 |
---|---|---|
クライアントの IP アドレス | クライアント_IPv4 (参照用のみ) | 192.0.2.60 |
サーバーの IPv6 アドレス | SEVR_IPv6 (参照のみを目的としています) | 2001:DB8:5001::30 |
IPv6 サーバー S1 の INAT エントリで定義されている IPv4 アドレス | マップ-SevR-IPv4 (参照用のみ) | 192.0.2.180 |
NAT 46 変換用の IPv6 プレフィックス | NAT46_プレフィックス (参照用のみ) | 2001:DB8:90: |
次に、この例のトラフィックフローを示します。
- IPv4クライアントCL1は、NetScalerアプライアンス上のMap-SevR-IPv4(192.0.2.180)アドレスにリクエストパケットを送信します。
- アプライアンスは要求パケットを受信し、NAT46 INATエントリを検索して、MAP-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 ビット) と Client_IPv4 (最後の 32 ビット) を連結したもの = 2001: DB 8:90:: 192.0.2.60
- アプライアンスは、変換された IPv6 要求を SevR-IPv6 に送信します。
- IPv6サーバーS1は、次のようにIPv6パケットをNetScalerアプライアンスに送信することで応答します。
- 宛先 IP アドレスフィールド = NAT プレフィックス (最初の 96 ビット) と Client_IPv4 (最後の 32 ビット) を連結したもの = 2001: DB 8:90:: 192.0.2.60
- ソース IP アドレスフィールド = SEVR-IPv6 = 2001: DB 8:5001:30
- アプライアンスは IPv6 応答パケットを受信し、その宛先 IP アドレスがアプライアンスに設定されている NAT46 プレフィックスと一致することを確認します。宛先アドレスは NAT46 プレフィックスと一致するため、アプライアンスは NAT46 INAT エントリを検索して SEVR-IPv6 アドレス(2001:DB 8:5001:30)に関連付けられた IPv4 アドレスを検索します。マップサービスの IPv4 アドレス (192.0.2.180) を検索します。
- アプライアンスは以下を含むIPv4応答パケットを作成します。
- 宛先 IP アドレスフィールド = IPv6 応答の宛先アドレスから削除された NAT46 プレフィックス = Client_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 の設定
NetScalerアプライアンスでステートレス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 エントリを編集します。
-
次のパラメーターを設定します。
- 名前*
- パブリック 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
<!--NeedCopy-->
GUI を使用してステートレス NAT46 のグローバルパラメータを設定するには:
[ システム ] > [ ネットワーク] に移動し、[ 設定 ] グループで [ INAT パラメータの設定] をクリックします。