このページで
永続的 NAT と NAT64
ネットワーク アドレストランスレータ(NAT)は、ペイロード内で IP アドレスを伝送するアプリケーションに非常に大きな問題を引き起こすことはよく知られています。この問題を抱えるアプリケーションには、Voice Over IP と Multimedia Over IP があります。永続的NATはNATの動作を改善し、VOIPアプリケーションの動作に役立つNAT要件の一連の動作を定義します。NAT64 は、IPv6 パケットを IPv4 パケットに変換するために使用される変換メカニズムであり、その逆の場合は IP/ICMP 変換アルゴリズムに従ってパケット ヘッダーを変換します。
永続的 NAT と NAT64 について
永続的NATでは、NATファイアウォールを通過する際に、アプリケーションがNAT(STUN)プロトコルのセッショントラバーサルユーティリティを使用できます。永続的NATにより、同じ内部トランスポートアドレス(内部IPアドレスとポート)からのすべてのリクエストが、同じ反射トランスポートアドレス(STUNサーバーに最も近いNATデバイスによって作成されたパブリックIPアドレスとポート)にマッピングされます。
NAT64 は、IPv6 パケットを IPv4 パケットに変換するメカニズムであり、IPv6 クライアントはユニキャスト UDP、TCP、または ICMP を使用して IPv4 サーバーに接続できます。これは、NAT-PT(ネットワーク アドレス変換プロトコル変換)の強化です。
NAT64は以下をサポートします。
エンドポイント非依存型マッピング
エンドポイント非依存型フィルタリングとアドレス依存型フィルタリング
NAT64と永続的NATのマッピングとフィルタリング動作は同一です。
ジュニパーネットワークスデバイスでは、以下のタイプの永続的NATを設定できます。
リモートホスト — 特定の内部IPアドレスとポートからのリクエストはすべて、同じ反射的なトランスポートアドレスにマッピングされます。外部ホストは、パケットを反射的なトランスポートアドレスに送信することで、内部ホストにパケットを送信できます。
ターゲット ホスト — 特定の内部 IP アドレスとポートからのリクエストはすべて、同じ反射トランスポート アドレスにマッピングされます。外部ホストは、パケットを反射的なトランスポート アドレスに送信することで、内部ホストにパケットを送信できます。内部ホストは、以前に外部ホストのIPアドレスにパケットを送信している必要があります。
ターゲット ホスト ポート — 特定の内部 IP アドレスとポートからのリクエストはすべて、同じ反射的なトランスポート アドレスにマッピングされます。外部ホストは、パケットを反射的なトランスポート アドレスに送信することで、内部ホストにパケットを送信できます。内部ホストは、以前に外部ホストのIPアドレスとポートにパケットを送信している必要があります。
メモ:IPv6アドレスで設定された場合、ターゲットホストポート設定はNAT64ではサポートされていません。
永続的 NAT タイプのいずれかをソース NAT ルールで設定します。ソースNATルールアクションでは、ソースNATプール(ポート変換ありまたはなし)またはエグレスインターフェイスを使用できます。永続的NATバインディングは内部から外部への発信セッションに基づいているため、ディスティネーションNATには永続的NATは適用されません。
ポートオーバーロードは、Junos OSで通常のインターフェイスNATトラフィックに対してのみ使用されます。永続的NATはポートオーバーロードをサポートしていないため、[]階層レベルで以下のいずれかのオプションでポートオーバーロードを明示的にedit security nat source
無効にする必要があります。
ポートオーバーロードオフ
ポート過負荷-factor 1
永続的NATトラフィックを許可または拒否するセキュリティポリシーを設定するには、2つの新しい事前定義済みサービス、junos-stun
および junos-persistent-nat
を使用できます。
永続的 NAT は、永続的アドレス機能とは異なります( 「 ソース NAT プールの永続的アドレスについて」を参照してください)。永続的アドレス機能は、デバイスに設定されたソースNATプールのアドレスマッピングに適用されます。永続的NAT機能は、外部NATデバイス上のアドレスマッピングに適用され、特定のソースNATプールまたはエグレスインターフェイスに対して設定されます。また、永続的 NAT は STUN クライアント/サーバー アプリケーションで使用することを目的としています。
NAT(STUN)プロトコルのセッショントラバーサルユーティリティについて
NAT 環境では、ビデオアプリケーションと音声アプリケーションの多くは正常に動作しません。例えば、VoIPで使用されるSession Initiation Protocol(SIP)は、アプリケーションデータ内のIPアドレスとポート番号をエンコードします。リクエクタと受信者の間にNATファイアウォールが存在する場合、データ内のIPアドレスとポート番号の変換は情報を無効にします。
また、NAT ファイアウォールは受信 SIP メッセージのピンホールを維持しません。これにより、SIP アプリケーションは常に SIP メッセージでピンホールを更新するか、ALG を使用して登録を追跡します。これは、ゲートウェイ デバイスによってサポートされる場合とそうでない場合がある機能です。
NAT(STUN)プロトコルのセッショントラバーサルユーティリティは、 RFC 3489、 ネットワークアドレストランスレータ(NAT)を介したユーザーデータグラムプロトコル(UDP)のシンプルなトラバーサル で定義され、その後 RFC 5389の後半でNAT用セッショントラバーサルユーティリティは、シンプルなクライアント/サーバープロトコルです。STUNクライアントは、STUNサーバーにリクエストを送信し、クライアントに応答を返します。STUNクライアントは通常、パブリックIPアドレスやポートを必要とするアプリケーションの一部です。STUNクライアントは、通常、パブリックインターネットに接続されるのに対し、PCなどのエンドシステムまたはネットワークサーバーに存在する可能性があります。
STUNクライアントとSTUNサーバーの両方がアプリケーションによって提供される必要があります。ジュニパーネットワークスは、STUN クライアントまたはサーバーを提供しません。
STUN プロトコルにより、クライアントは以下を行うことができます。
アプリケーションが NAT ファイアウォールの背後にあるかどうかを確認します。
使用する NAT バインディングのタイプを決定します。
STUNサーバーに最も近いNATデバイスによって割り当てられたIPアドレスとポートバインディングである反射トランスポートアドレスを学習します。(STUN クライアントと STUN サーバーの間には複数の NAT レベルが存在する場合があります)。
クライアント アプリケーションは、SIP や H.323 などのプロトコル内の IP アドレス バインディング情報を使用できます。
NAT64 IPv6 プレフィックスから IPv4 アドレス永続的変換について
NAT64 メカニズムにより、IPv6 クライアントは IPv6 アドレスを IPv4 アドレスに変換して IPv4 サーバーに接続できます(また、その逆も同様です)。ただし、 464XLATなどのデュアル変換シナリオでは、標準NAT64を使用したIPv6のみのネットワークでは、一部のIPv4アプリケーションやサービスが正しく動作しません。このようなシナリオでは、アドレス永続的変換が必要です。
図 1 は、464XLAT アーキテクチャを示しています。これにより、IPv4 パケットが CLAT(顧客側トランスレータ)上の IPv6 パケットに変換され、IPv6 専用ネットワークを通過し、プロバイダ側トランスレータ(PLAT)上の IPv4 パケットに変換され、コア ネットワーク内のグローバルな IPv4 のみのコンテンツにアクセスします。このアーキテクチャでは、CLATでのステートレス翻訳とPLATでのステートフル翻訳を組み合わせて使用します。
デバイスがPLATとして機能する場合、1つの特定のIPv6プレフィックスと1つの変換されたIPv4アドレスの間のスティッキーマッピング関係を維持します。デバイスは、IPv6プレフィックスを単一ユーザーとして扱います。このマッピングは、 機能を使用して、IPv4ソースNATプール内の特定のIPv6プレフィックス長を address-persistent
設定することで達成されます。
図 2 は、CLAT で設定された NAT ルールを示しています。このルールは、IPv4 アドレスをアドレス固定プレフィックスを持つ IPv6 アドレスに変換します。CLATでのステートレスNAT46変換とPLATでのステートフルNAT64変換により、IPv4ホスト192.168.1.2からのトラフィックは、IPv6のみのネットワークを介してグローバルサーバー198.51.100.1に到達します。
表 1 は、他の NAT 機能とアドレス永続的機能との互換性を示しています。
機能 |
互換性 |
||
---|---|---|---|
PAT プール |
IPv4
|
NAT IPv4~IPv6 |
いいえ |
NAT IPv6~IPv4 |
はい |
||
IPv6
|
NAT IPv4~IPv6 |
いいえ |
|
NAT IPv6~IPv4 |
いいえ |
||
非 PAT プール |
いいえ |
||
ポートオーバーロード |
はい |
||
PAT プール内の永続的 NAT |
はい |
||
ポートブロック割り当て |
はい |
||
確定的 NAT |
いいえ |
||
アドレス プーリングのペア |
いいえ |
||
Alg (ネイティブ IPv6 クライアントからの FTP/PPTP/RTSP/DNS/SIP など、既存の ALG NAT 変換) |
はい |
永続的 NAT と NAT64 構成の概要
永続的NATを設定するには、ソースNATルールアクション(ソースNATプールまたはエグレスインターフェイスのいずれか)で以下のオプションを指定します。
永続的 NAT のタイプ — リモート ホスト、ターゲット ホスト、またはターゲット ホスト ポートのいずれか 1 つ。
(オプション)アドレス マッピング — このオプションにより、特定の内部 IP アドレスからのリクエストを同じ反射 IP アドレスにマッピングできます。内部および反射ポートは、任意のポートにすることができます。任意のポートを使用する外部ホストは、(外部から内部トラフィックを許可する設定された受信ポリシーを使用して)反射的なIPアドレスにパケットを送信することで、パケットを内部ホストに送信できます。このオプションが設定されていない場合、永続的NATバインディングは、特定の内部および反射的なトランスポートアドレスに対してです。
永続的 NAT タイプがリモート ホストで、ソース NAT ルール アクションが以下のアクションのいずれかである場合にのみ、 オプションを指定
address-mapping
できます。IP アドレスシフトによる NAT ソース プール
ソース NAT プール(ポート変換なし、オーバーフロー プールなし)
(オプション)非アクティブタイムアウト — バインディングエントリーのすべてのセッションが期限切れになったとき、永続的NATバインディングがデバイスのメモリに残る時間(秒単位)。構成されたタイムアウトに達すると、バインディングはメモリから削除されます。デフォルト値は300秒です。60~7200秒の値を設定します。
永続的NATバインディングのすべてのセッションが期限切れになると、指定された非アクティブタイムアウト期間にわたり、バインディングはデバイスのメモリ内のクエリ状態のままになります。非アクティブタイムアウト期間(デフォルトは 300 秒)が終了すると、クエリ バインディングは自動的にメモリから削除されます。コマ ンドを使用して、すべてまたは特定の永続的 NAT クエリー バインディングをすべて明示的に
clear security nat source persistent-nat-table
削除できます。(オプション)最大セッション数 — 永続的 NAT バインディングに関連付けられる最大セッション数。デフォルトは30セッションです。8~100の値を設定します。
インターフェイスNATでは、[]階層レベルで以下のいずれかのオプションでポートオーバーロードを明示的にedit security nat source
無効にする必要があります。
ポートオーバーロードオフ
ポート過負荷-factor 1
最後に、セキュリティ ポリシーで STUN と永続的 NAT トラフィックを許可または拒否できる事前定義されたサービスは 2 つあります。
junos-stun
—STUNプロトコルトラフィック。junos-persistent-nat
-永続的 NAT トラフィック。
永続的 NAT タイプの any remote host
場合、セキュリティ ポリシーの方向は外部から内部へです。ターゲット ホストまたはターゲット ホスト ポートの永続的 NAT タイプの場合、セキュリティ ポリシーの方向は内部から外部へです。
例:アドレス永続的 NAT64 プールの設定
この例では、アドレス永続的NAT64プールを設定して、設定されたIPv6プレフィックス長で計算される1つの特定のIPv6プレフィックスと1つの変換されたIPv4アドレスの間にスティッキーマッピング関係を確保する方法を示しています。
要件
開始する前に、既存の NAT ルールとプール設定が新しいルールと競合しないことを確認してください。
概要
この例では、NAT IPv6からIPv4への変換向けに、IPv4ソースNATプールで/64のIPv6プレフィックス長を設定します。NAT ルールと NAT プールに一致するトラフィックは、IPv6 プレフィックスと IPv4 変換アドレス間のアドレス永続的変換を実行します。この設定は、 464XLAT というデュアル変換シナリオのプロバイダ側トランスレータ(PLAT)で使用することで、IPv4 サービスを IPv6 のみのネットワーク上で動作させることができます。
構成
CLI クイックコンフィギュレーション
この例を迅速に設定するには、以下のコマンドをコピーしてテキスト ファイルに貼り付け、改行を削除し、ネットワーク設定に一致させる必要がある詳細情報を変更し、コマンドを 階層レベルの [edit]
CLI にコピー アンド ペーストして、設定モードから を入力 commit
します。
set security nat source pool NAT64 address 198.51.100.240/32 to 198.51.100.254/32 set security nat source pool NAT64 address-persistent subscriber ipv6-prefix-length 64 set security nat source rule-set RS1 from zone trust set security nat source rule-set RS1 to zone untrust set security nat source rule-set RS1 rule R1 match source-address 2001:db8::/32 set security nat source rule-set RS1 rule R1 match destination-address 198.51.100.198/32 set security nat source rule-set RS1 rule R1 then source-nat pool NAT64
手順
手順
以下の例では、設定階層内のさまざまなレベルを移動する必要があります。その方法の詳細については、 設定モードでのCLIエディターの使用を参照してください。
ソース NAT プールを作成します。
[edit security nat source] user@host# set pool NAT64 address 198.51.100.240/32 to 198.51.100.254/32
ソースNATプールのIPv6プレフィックス長を指定します。
[edit security nat source] user@host# set pool NAT64 address-persistent subscriber ipv6-prefix-length 64
ルール セットを作成します。
[edit security nat source] user@host# set rule-set RS1 from zone trust user@host# set rule-set RS1 to zone untrust
ルールに一致します。
[edit security nat source] user@host# set rule-set RS1 rule R1 match source-address 2001:db8::/32 user@host# set rule-set RS1 rule R1 match destination-address 198.51.100.198/32
ルールが一致したときに実行するアクションを指定します。
[edit security nat source] user@host# set security nat source rule-set RS1 rule R1 then source-nat pool NAT64
結果
設定モードから、 コマンドを入力して設定を show security nat
確認します。出力に意図した設定が表示されない場合は、この例の設定手順を繰り返して修正します。
[edit] user@host# show security nat source { pool NAT64 { address { 198.51.100.240/32 to 198.51.100.254/32; } address-persistent subscriber ipv6-prefix-length 64; } rule-set RS1 { from zone trust; to zone untrust; rule R1 { match { source-address 2001:db8::/32; destination-address 198.51.100.198/32; } then { source-nat { pool { NAT64; } } } } } }
デバイスの設定が完了したら、設定モードから を入力します commit
。
例:インターフェイスNATで永続的NATを設定することでネットワーク設定をサポートする
任意の永続的 NAT タイプをソース NAT ルールで設定できます。この例では、インターフェイスIPアドレスで永続的NATを適用する方法と、インターフェイスIPアドレスをNAT IPアドレスとして使用して特定の内部ホストに対して永続的NATを実行する方法を説明します。また、ホストの永続的なアドレス ポート マッピング の動作と永続的 NAT フィルターの動作を維持する方法も示します。インターフェイスNATでは、ポートオーバーロードを無効にする必要があります。
要件
この例では、以下のハードウェアとソフトウェアのコンポーネントを使用しています。
1 SRX シリーズ デバイス
PC x 4
開始する前に、以下を行います。
永続的 NAT の概念を理解する。 永続的 NAT および NAT64 構成の概要を参照してください。
概要
キャリアグレードNAT(CGN)ネットワーク導入では、インターフェイスIPアドレスをNATアドレスとして設定し、永続的なネットワークアドレス変換を実行できます。このように、内部ホストは、内部から外部に開始された発信トラフィックによって、1 つのソース NAT マッピング関係を作成できます。次に、外部ホストは、共有NATマッピング関係を介してこのインターフェイスNATアドレスにトラフィックを送信することで、この内部ホストにトラフィックを戻します。
この例では、まず int1 に設定されたインターフェイス NAT ルールを、インターフェイス ge-0/0/1 からインターフェイス ge-0/0/2 へのトラフィックと一致するように設定し、次に NAT ルール in1 を特定の送信元アドレスと宛先アドレスと一致するように設定して永続的 NAT を実行します。インターフェイスNATが実行された場合、 any remote host
永続的NATタイプを設定します。
送信元アドレス 192.0.2.0/24(内部電話)および宛先アドレス 198.51.100.0/24( STUN サーバー、 SIP プロキシ サーバー、外部電話を含む)のパケットでは、インターフェイス NAT を永続的 NAT タイプで any remote host
設定します。次に、インターフェイスNATのポートオーバーロードを無効にします。
次に、リモートホストの永続的NATタイプのいずれかに対して、外部ネットワーク(外部ゾーン)から内部ネットワーク(内部ゾーン)への永続的NATトラフィックを許可するセキュリティポリシーを設定します。
トポロジ
図 3 は、インターフェイスの永続的 NAT トポロジーを示しています。
表 2 は、この例で設定されたパラメーターを示しています。
パラメーター |
説明 |
---|---|
外部ゾーン |
外部ネットワーク |
内部ゾーン |
内部ネットワーク |
External_phones2 |
外部ネットワークの電話 2 アドレス |
Internal_phone1 |
内部ネットワークの電話1アドレス |
SIP_proxy サーバー |
外部ネットワークの SIP プロキシ サーバー アドレス |
STUN サーバー |
外部ネットワークの STUN サーバー アドレス |
サブネット 198.51.100.1/32 |
宛先 IP アドレス |
サブネット 192.0.2.2/32 |
送信元 IP アドレス |
ge-0/0/1 および ge-0/0/2 |
トラフィック方向の NAT インターフェイス |
構成
手順
CLI クイックコンフィギュレーション
この例を迅速に設定するには、以下のコマンドをコピーしてテキスト ファイルに貼り付け、改行を削除し、ネットワーク設定に一致させる必要がある詳細情報を変更し、コマンドを 階層レベルの [edit]
CLI にコピー アンド ペーストして、設定モードから を入力 commit
します。
set security nat source rule-set int1 from interface ge-0/0/1.0 set security nat source rule-set int1 to interface ge-0/0/2.0 set security nat source rule-set int1 rule in1 match source-address 192.0.2.0/24 set security nat source rule-set int1 rule in1 match destination-address 198.51.100.0/24 set security nat source rule-set int1 rule in1 then source-nat interface persistent-nat permit any-remote-host set security nat source interface port-overloading off set security policies from-zone internal to-zone external policy stun_traffic match source-address internal_phones destination-address stun_server application junos-stun set security policies from-zone internal to-zone external policy sip_proxy_traffic match source-address internal_phones destination-address sip_proxy_server application junos-sip set security policies from-zone internal to-zone external policy sip_traffic match source-address internal_phones destination-address external_phones application junos-persistent-nat set security policies from-zone internal to-zone external policy sip_traffic then permit set security policies from-zone internal to-zone external policy stun_traffic then permit set security policies from-zone internal to-zone external policy sip_proxy_traffic then permit
手順
次の例では、設定階層内のさまざまなレベルに移動する必要があります。その方法の詳細については、 CLIユーザーガイドの設定モードでのCLIエディターの使用を参照してください。
インターフェイスNATルールセットを設定するには:
インターフェイスNATの永続的NATルールを作成します。
[edit security nat source rule-set int1] user@host# set from interface ge-0/0/1.0 user@host# set to interface ge-0/0/2.0 user@host# set rule in1 match source-address 192.0.2.0/24 user@host# set rule in1 match destination-address 198.51.100.0/24 user@host# set rule in1 then source-nat interface persistent-nat permit any-remote-host
インターフェイスNATのポートオーバーロードを無効にします。
[edit security] user@host# set nat source interface port-overloading off
内部 SIP 電話から外部 STUN サーバーへの STUN トラフィックを許可するセキュリティ ポリシーを設定します。
[edit security policies] user@host# set from-zone internal to-zone external policy stun_traffic match source-address internal_phones destination-address stun_server application junos-stun
内部 SIP 電話から外部 SIP プロキシ サーバーへの SIP プロキシ トラフィックを許可するセキュリティ ポリシーを設定します。
[edit security policies] user@host# set from-zone internal to-zone external policy sip_proxy_traffic match source-address internal_phones destination-address sip_proxy_server application junos-sip
外部 SIP 電話から内部 SIP 電話への SIP トラフィックを許可するセキュリティ ポリシーを設定します。
[edit security policies] user@host# set from-zone internal to-zone external policy sip_traffic match source-address internal_phones destination-address external_phones application junos-persistent-nat user@host# set from-zone internal to-zone external policy sip_traffic then permit user@host#set from-zone internal to-zone external policy stun_traffic then permit user@host#set from-zone internal to-zone external policy sip_proxy_traffic then permit
結果
設定モードから、 および show security policies
コマンドを入力して設定をshow security nat
確認します。出力結果に意図した設定が表示されない場合は、この例の手順を繰り返して設定を修正します。
[edit] user@host# show security nat source { interface { port-overloading off; } rule-set int1 { from interface ge-0/0/1.0; to interface ge-0/0/2.0; rule in1 { match { source-address 192.0.2.0/24; destination-address 198.51.100.0/24; } then { source-nat { interface { persistent-nat { permit any-remote-host; } } } } } } } [edit] user@host# show security policies from-zone internal to-zone external { policy stun_traffic { match { source-address internal_phones; destination-address stun_server; application junos-stun; } then { permit; } } policy sip_proxy_traffic { match { source-address internal_phones; destination-address sip_proxy_server; application junos-sip; } then { permit; } } policy sip_traffic { match { source-address internal_phones; destination-address external_phones; application junos-persistent-nat; } then { permit; } } }
デバイスの設定が完了したら、設定モードから を入力します commit
。
検証
設定が正しく機能していることを確認します。
ルールが一致し、使用されていることを確認する
目的
すべてのルールが一致し、使用されていることを確認します。
アクション
動作モードから、 コマンドを show security nat source persistent-nat-table all
入力します。
user@host>show security nat source persistent-nat-table all Internal Reflective Source Type Left_time/Curr_Sess_Num/ Source In_IP In_Port I_Proto Ref_IP Ref_Port R_Proto NAT Pool Conf_time Max_Sess_Num NAT Rule 192.0.2.12 17012 udp 198.51.100.1 28153 udp interface any-remote-host 3528/3600 -/- in1 192.0.2.12 7078 udp 198.51.100.1 6133 udp interface any-remote-host -/300 1/30 in1
意味
出力には、永続的NAT情報の概要が表示されます。
NATトラフィックセッションが確立されていることを確認する
目的
デバイスでセッションが確立されていることを確認します。
アクション
動作モードから、 コマンドを show security flow session
入力します。
user@host>show security flow session Session ID: 6992, Policy name: sip_proxy_traffic/5, Timeout: 16, Valid In: 192.0.2.12/17012 --> 198.51.100.45/5060;udp, If: ge-0/0/1.0, Pkts: 4, Bytes: 1850 Out: 198.51.100.45/5060 --> 198.51.100.1/28153;udp, If: ge-0/0/2.0, Pkts: 5, Bytes: 2258 Session ID: 7382, Policy name: stun_traffic/4, Timeout: 16, Valid In: 192.0.2.12/7078 --> 198.51.100.49/3478;udp, If: ge-0/0/1.0, Pkts: 20, Bytes: 1040 Out: 198.51.100.49/3478 --> 198.51.100.1/6133;udp, If: ge-0/0/2.0, Pkts: 0, Bytes: 0
意味
コマンドは show security flow session
、デバイス上のアクティブなセッションと各セッションの関連するセキュリティポリシーを表示します。出力は、プライベートソースアドレス192.0.2.12を使用してデバイスに入るトラフィックが、198.51.100.45にあるパブリックホストを宛先とすることを示しています。このフローからのリターン トラフィックは、変換されたパブリック アドレス 198.51.100.1 に移動します。
Session IDセッションを識別する番号。このIDを使用して、ポリシー名や出入りするパケット数など、セッションに関する詳細な情報を取得します。
sip_proxy_traffic- 内部 SIP 電話から外部 SIP プロキシ サーバーへの SIP トラフィックを許可するポリシー名。
In- 受信フロー(それぞれの送信元と宛先のポート番号を持つ送信元と宛先の IP アドレス。セッションは UDP で、このセッションの送信元インターフェイスは ge-0/0/1.0 です)。
Out—リバース フロー(送信元と宛先の IP アドレスと、それぞれの送信元と宛先のポート番号を使用します。セッションは UDP で、このセッションの宛先インターフェイスは ge-0/0/2.0 です。
stun_traffic- 内部 SIP 電話から外部 STUN サーバーへの STUN トラフィックを許可するポリシー名。
例:IPv6 クライアントのアドレス依存フィルタリングの設定
この例では、NAT64を使用してIPv6クライアントにアドレス依存フィルタリングを設定する方法を示しています。
要件
開始する前に、以下を行います。
デバイスで IPv6 が有効になっていることを確認します。
既存の NAT ルールとプール設定が新しいルールと競合していないことを確認します。
概要
この例では、NAT64を使用して、IPv6内部ホストからIPv4外部ホスト、およびIPv4外部ホストからIPv4内部ホストにパケットを送信します。
トポロジ
構成
手順
CLI クイックコンフィギュレーション
この例を迅速に設定するには、以下のコマンドをコピーしてテキスト ファイルに貼り付け、改行を削除し、ネットワーク設定に一致させる必要がある詳細情報を変更し、コマンドを 階層レベルの [edit]
CLI にコピー アンド ペーストして、設定モードから を入力 commit
します。
set security nat static rule-set test_rs from interface ge-0/0/1 set security nat static rule-set test_rs rule test_rule match destination-address 2001:db8::/128 set security nat static rule-set test_rs rule test_rule then static-nat prefix 10.2.2.15/32 set security nat source pool myipv4 address 203.0.113.2 set security nat source rule-set myipv4_rs from interface ge-0/0/1 set security nat source rule-set myipv4_rs to interface ge-0/0/2 set security nat source rule-set myipv4_rs rule ipv4_rule match source-address 2001:db8::/96 set security nat source rule-set myipv4_rs rule ipv4_rule match destination-address 10.2.2.15 set security nat source rule-set myipv4_rs rule ipv4_rule then source-nat pool myipv4 set security nat source rule-set myipv4_rs rule ipv4_rule then source-nat pool persistent-nat permit target-host
手順
次の例では、設定階層内のさまざまなレベルに移動する必要があります。その方法の詳細については、 設定モードでのCLIエディターの使用を参照してください。
IPv6 クライアントのアドレス依存フィルタリングを設定するには:
NAT64 のルールセットを作成します。
[edit security nat static] user@host# set rule-set test_rs from interface ge-0/0/1
ルールに一致します。
[edit security nat static] user@host# set rule-set test_rs rule test_rule match destination-address 2001:db8::/128
ルールが一致したときに実行するアクションを指定します。
[edit security nat static] user@host# set rule-set test_rs rule test_rule then static-nat prefix 10.2.2.15/32
送信元アドレス プールを定義し、そのアドレスをプールに追加します。
[edit security nat] user@host# set source pool myipv4 address 203.0.113.2
NAT64 用の別のルール セットを作成します。
[edit security nat] user@host# set source rule-set myipv4_rs from interface ge-0/0/1
送信元アドレスとルールを一致します。
[edit security nat] user@host# set source rule-set myipv4_rs rule ipv4_rule match source-address 2001:db8::/96
宛先アドレスとルールを一致します。
[edit security nat] user@host# set source rule-set myipv4_rs rule ipv4_rule match destination-address 10.2.2.15
ルールが一致したときに実行するアクションを指定します。
[edit security nat] user@host# set source rule-set myipv4_rs rule ipv4_rule then source-nat pool myipv4
永続的 NAT を設定します。
[edit security nat] user@host# set source rule-set myipv4_rs rule ipv4_rule then source-nat pool persistent-nat permit target-host
結果
設定モードから、 コマンドを入力して設定を show nat source
確認します。出力に意図した設定が表示されない場合は、この例の設定手順を繰り返して修正します。
[edit security] user@host#show nat source pool myipv4 { address { 203.0.113.2/32; } } rule-set test_rs { rule test_rule { match { destination-address 2001:db8::/128; } } } rule-set myipv4_rs { from interface ge-0/0/1.0; to interface ge-0/0/2.0; rule ipv4_rule { match { source-address 2001:db8::/96; destination-address 10.2.2.15/32; } then { source-nat { pool { myipv4; persistent-nat { permit target-host; } } } } } } }
デバイスの設定が完了したら、設定モードから を入力します commit
。
検証
設定が正しく機能していることを確認します。
設定が有効になっていることを確認し、機能している
目的
設定が有効で動作していることを確認します。
アクション
動作モードから、以下のコマンドを入力します。
show security nat static rule test_rule
show security nat source rule ipv4_rule
show security nat source pool myipv4
例:IPv6クライアントのエンドポイント非依存型フィルタリングの設定
この例では、NAT64を使用してIPv6クライアントにエンドポイント非依存のフィルタリングを設定する方法を示しています。
要件
開始する前に、以下を行います。
デバイスで IPv6 が有効になっていることを確認する
既存の NAT ルールとプール設定が新しいルールと競合していないことを確認します。
概要
この例では、NAT64を使用して、IPv6内部ホストからIPv4外部ホスト、およびIPv4外部ホストからIPv4内部ホストにパケットを送信します。
トポロジ
構成
手順
CLI クイックコンフィギュレーション
この例を迅速に設定するには、以下のコマンドをコピーしてテキスト ファイルに貼り付け、改行を削除し、ネットワーク設定に一致させる必要がある詳細情報を変更し、コマンドを 階層レベルの [edit]
CLI にコピー アンド ペーストして、設定モードから を入力 commit
します。
set security nat static rule-set test_rs from interface ge-0/0/1 set security nat static rule-set test_rs rule test_rule match destination-address 2001:db8::/128 set security nat static rule-set test_rs rule test_rule then static-nat prefix 10.2.2.15/32 set security nat source pool myipv4 address 203.0.113.2 set security nat source rule-set myipv4_rs from interface ge-0/0/1 set security nat source rule-set myipv4_rs to interface ge-0/0/2 set security nat source rule-set myipv4_rs rule ipv4_rule match source-address 2001:db8::/96 set security nat source rule-set myipv4_rs rule ipv4_rule match destination-address 10.2.2.15 set security nat source rule-set myipv4_rs rule ipv4_rule then source-nat pool myipv4 set security nat source rule-set myipv4_rs rule ipv4_rule then source-nat pool persistent-nat permit any-remote-host
手順
次の例では、設定階層内のさまざまなレベルに移動する必要があります。その方法の詳細については、 設定モードでのCLIエディターの使用を参照してください。
IPv6クライアントにエンドポイント非依存のフィルタリングを設定するには:
NAT64 のルールセットを作成します。
[edit security nat static] user@host# set rule-set test_rs from interface ge-0/0/1
ルールに一致します。
[edit security nat static] user@host# set rule-set test_rs rule test_rule match destination-address 2001:db8::/128
ルールが一致したときに実行するアクションを指定します。
[edit security nat static] user@host# set rule-set test_rs rule test_rule then static-nat prefix 10.2.2.15/32
送信元アドレス プールを定義し、そのアドレスをプールに追加します。
[edit security nat] user@host# set source pool myipv4 address 203.0.113.2
NAT64 用の別のルール セットを作成します。
[edit security nat] user@host# set source rule-set myipv4_rs from interface ge-0/0/1
送信元アドレスとルールを一致します。
[edit security nat] user@host# set source rule-set myipv4_rs rule ipv4_rule match source-address 2001:db8::/96
宛先アドレスとルールを一致します。
[edit security nat] user@host# set source rule-set myipv4_rs rule ipv4_rule match destination-address 10.2.2.15
ルールが一致したときに実行するアクションを指定します。
[edit security nat] user@host# set source rule-set myipv4_rs rule ipv4_rule then source-nat pool myipv4
永続的 NAT を設定します。
[edit security nat] user@host# set source rule-set myipv4_rs rule ipv4_rule then source-nat pool persistent-nat permit any-remote-host
結果
設定モードから、 コマンドを入力して設定を show security nat
確認します。出力に意図した設定が表示されない場合は、この例の設定手順を繰り返して修正します。
[edit security] user@host#show security nat source { pool myipv6_prefix { address { 2001:db8::/64; } } pool myipv4 { address { 203.0.113.2/32; } } rule-set myipv6_rs { from interface ge-0/0/1.0; to interface ge-0/0/2.0; rule ipv6_rule { match { source-address 10.1.1.0/30; destination-address 2001:db8::2/96; } then { source-nat { pool { myipv6_prefix; } } } } } rule-set myipv4_rs { from interface ge-0/0/1.0; to interface ge-0/0/2.0; rule ipv4_rule { match { source-address 2001:db8::/96; destination-address 10.2.2.15/32; } then { source-nat { pool { myipv4; persistent-nat { permit target-host; } } } } } } } static { rule-set test_rs { from interface ge-0/0/1.0; rule test_rule { match { destination-address 2001:db8::/128; } then { static-nat { prefix { 10.2.2.15/32; } } } } } }
デバイスの設定が完了したら、設定モードから を入力します commit
。
検証
設定が正しく機能していることを確認します。
設定が有効になっていることを確認し、機能している
目的
設定が有効で動作していることを確認します。
アクション
動作モードから、以下のコマンドを入力します。
show security nat static rule test_rule
show security nat source rule ipv4_rule
show security nat source pool myipv4
例:最大永続的 NAT バインディングの設定
この例では、永続的 NAT 容量を増やす方法を示しています。
要件
開始する前に、「 永続的 NAT と NAT64 について」を参照してください。
概要
この例では、永続的 NAT 容量の最大化オプションを有効にします。このオプションは、SRX1K-NPC-SPC-1-10-40を搭載したSRX1400デバイスのSPC(サービス処理カード)でのみサポートされています。 SRX3K-SPC-1-10-40を搭載したSRX3000シリーズデバイス、SRX5K-SPC-2-10-40SPCおよびSRX5K-SPC3を搭載したSRX5000シリーズデバイス。SRX5K-SPC-2-10-40SPCおよびSPC3を搭載したSRX5000シリーズデバイスでは、最大セッション数を削減するコストで永続的NATバインディング数が最大であることに注意してください。
このオプションを有効にするには、サポートされる中央ポイントの最大バインディング容量を、中央ポイント セッション容量の 1/8 に最大 200 万まで増やし、サポートされる SPU 最大バインディング容量を各 SPU セッション容量の 1/4 にほぼ増やすことができます。したがって、フロー セッション容量は、CP と各 SPU の両方で 1/4 減少します。
デフォルトでは、SRX5400、SRX5600、またはSRX5800デバイスの中央ポイントとSPUの両方の永続的NATバインディング容量は64,000です。この例では、中央ポイントで最大 20,000,000、最大セッション設定で各 SPU で最大 1,100,000 のセッション容量を有効にします。このオプションを maximize-persistent-nat-capacity
有効にした場合、4 GB のメモリを搭載した SRX5400、SRX5600、SRX5800 デバイスは、中央ポイントで最大 200 万の永続的 NAT バインディングと、各 SPU で 275,000 のバインディングをサポートできます。
構成
手順
手順
永続的 NAT 容量を増やすには、次の手順にしたがっています。
永続的 NAT 容量の最大化オプションを設定します。
[edit] user@host# set security forwarding-process application-services maximize-persistent-nat-capacity
デバイスの設定が完了したら、設定をコミットします。
[edit] user@host# commit
運用モードからシステムを再起動します。
[edit] user@host# request system reboot
メモ:永続的 NAT 容量モードを最大化するためにスイッチングを行う場合、または通常モードに戻す場合は、デバイスを再起動する必要があります。
デバイスを通常モードに戻したい場合は、永続的NAT容量モードの最大設定を削除します。
[edit] user@host# delete security forwarding-process application-services maximize-persistent-nat-capacity
永続的 NAT ヘアピンの概要
トラフィックが 2 つのホスト間で送信される場合、トラフィックの送信元ホストは、そのパブリック IP アドレスによって宛先ホストのみを認識できます。実際には、宛先ホストは、送信元ホストと同じプライベートアドレス空間にある場合があります。ヘアピンとは、プライベートサブネットワーク内の宛先ホストにトラフィックを取得する方法として、トラフィックがどこから来たのかを示す方向にトラフィックを返すプロセスです。
一般に、サブネットワーク内のソースホストは、トラフィックが同じサブネットワーク内の宛先ホストを対象としていることを認識しない場合があります。これは、そのパブリックIPアドレスでのみ宛先ホストを識別するためです。NAT は IP パケットを分析し、パケットを正しいホストにルーティングします。
内部ネットワーク上の2つのホストがNATデバイス上のバインディングを使用して相互に通信したい場合、NATヘアピンサポートが必要です。この場合、NATデバイスは内部ネットワークからパケットを受信し、それを内部ネットワークに戻します。ヘアピンがサポートされていない場合、パケットの転送は失敗し、ドロップされます。
ヘアピンにより、プライベート ネットワーク上の 2 つのエンドポイント(ホスト 1 とホスト 2)は、互いの外部 IP アドレスとポートのみを使用している場合でも通信できます。ホスト1がトラフィックをホスト3に送信すると、ホスト1の内部ソースIPアドレスとポート間のNATバインディングが、外部IPアドレスとポートを持つNATテーブルに関連付けられます。ホスト 2 がトラフィックをホスト 3 に送信すると、同じことが起こります。このように、ホスト 1 とホスト 2 が通信したい場合、互いの外部 IP アドレスを識別できます。
たとえば、ホスト 1 がホスト 2 と通信する場合、NAT(ヘアピン サポート)を使用して、ホスト 2 の外部アドレスを含むパケットをホスト 2 の内部アドレスに戻します。
図 4 では、以下のパラメーターが使用されています。
ホスト1 IPアドレス -
10.10.10.2/24
ホスト2 IPアドレス -
10.10.10.10/24
ゾーン内 IP アドレス -
10.10.10.254/24
ホスト3 IPアドレス -
198.51.100.2/24
ゾーン間 IP アドレス -
198.51.100.254/24
ホスト1とホスト2はゾーン
reht0z
に、ホスト3はゾーンにありますreth1z
表 3 は、この例で使用するバインディング・テーブルを示しています。
元の送信元 IP アドレス |
変換された送信元 IP アドレス |
---|---|
10.10.10.2/24~10.10.10.11/24 |
192.0.2.1/32~192.0.2.10/32 |
永続的 NAT ヘアピンは、リモート ホストの永続的 NAT タイプにのみ適用されます。ヘアピンを許可するには、同じゾーンのエンドポイント間のトラフィックを許可するセキュリティ ポリシーを設定する必要があります。実際には、2つのエンドポイントは、2つの異なるゾーンに配置することができ、2つのホストのいずれかがピアのパブリックアドレスのみを確認できる限りです。NATヘアピン動作は、ターゲットホスト永続的NATおよびターゲットホストポート永続的NATではサポートされていません。ヘアピン動作は、リモート ホストの永続的 NAT でのみサポートされます。
例:アドレスシフトによるソースNATプールによる永続的NATヘアピンの設定
この例では、永続的 NAT ヘアピンを設定する方法を示します。
要件
開始する前に、以下を行います。
デバイス上のネットワーク インターフェイスを設定します。 『 Interfaces User Guide for Security Devices』を参照してください。
セキュリティ ゾーンを作成し、インターフェイスを割り当てます。 セキュリティ ゾーンについてを参照してください。
概要
ヘアピンにより、プライベート ネットワークからのパケットは、パブリック ネットワークに渡されるのではなく、変換された後、プライベート ネットワークにループバックできます。ヘアピン機能により、NAT テーブル内の対応するレコードを使用して、パケットがローカル ネットワーク内のホストにアドレス指定されていることを認識できます。次に、宛先 IP アドレスを変換し、パケットをローカル ネットワークに送信します(ポート マッピングの場合も同様)。これにより、2 つのホスト間のトラフィックが正しく動作します。
トポロジ
ヘアピンにより、プライベート ネットワーク上の 2 つのエンドポイント(ホスト 1 とホスト 2)は、互いの外部 IP アドレスとポートのみを使用している場合でも通信できます。これについては 、図 5 で説明します。
ホスト1がトラフィックをホスト3に送信すると、ホスト1の内部ソースIPアドレスとポート間のNATバインディングが、外部IPアドレスとポートを持つNATテーブルに関連付けられます。ホスト 2 がトラフィックをホスト 3 に送信すると、同じことが起こります。このように、ホスト 1 とホスト 2 が通信したい場合、互いの外部 IP アドレスを識別できます。
たとえば、ホスト 1 がホスト 2 と通信する場合、NAT(ヘアピン サポート)を使用して、ホスト 2 の外部アドレスを含むパケットをホスト 2 の内部アドレスに戻します。
図 5 では、以下のパラメーターが使用されています。
ホスト1 IPアドレス -
10.10.10.2/24
ホスト2 IPアドレス -
10.10.10.10/24
ゾーン内 IP アドレス -
10.10.10.254/24
ホスト3 IPアドレス -
198.51.100.2/24
ゾーン間 IP アドレス -
198.51.100.254/24
ホスト1とホスト2はゾーン
reht0z
に、ホスト3はゾーンにありますreth1z
表 4 は、この例で使用されるバインディング・テーブルを示しています。
元の送信元 IP アドレス |
変換された送信元 IP アドレス |
---|---|
10.10.10.2/24~10.10.10.11/24 |
192.0.2.1/32~192.0.2.10/32 |
構成
手順
手順
永続的 NAT ヘアピンを設定するには:
インターフェイスを設定します。
[edit] user@host# set interfaces ge-11/0/0 unit 0 family inet address 10.10.10.254/24 user@host# set interfaces ge-11/0/1 unit 0 family inet address 198.51.100.254/24
ゾーン(reth0zとres1z)を作成します。
[edit] user@host# set security zones security-zone reth0z host-inbound-traffic system-services all user@host# set security zones security-zone reth0z host-inbound-traffic protocols all user@host# set security zones security-zone reth0z interfaces ge-11/0/0.0 user@host# set security zones security-zone reth1z host-inbound-traffic system-services all user@host# set security zones security-zone reth1z host-inbound-traffic protocols all user@host# set security zones security-zone reth1z interfaces ge-11/0/1.0
ゾーン reth0z および reth1z のポリシーを作成します。
[edit] user@host# set security address-book global address subnet10 10.10.10.0/24 user@host# set security address-book global address subnet20 198.51.100.0/24 user@host# set security policies from-zone reth0z to-zone reth1z policy p1 match source-address subnet10 user@host# set security policies from-zone reth0z to-zone reth1z policy p1 match destination-address subnet20 user@host# set security policies from-zone reth0z to-zone reth1z policy p1 match application any user@host# set security policies from-zone reth0z to-zone reth1z policy p1 then permit user@host# set security policies default-policy deny-all
永続的 NAT ヘアピンを実行するために同じゾーン ポリシーを追加します。
user@host# set security policies from-zone reth0z to-zone reth0z policy p2 match source-address subnet10 user@host# set security policies from-zone reth0z to-zone reth0z policy p2 match destination-address subnet10 user@host# set security policies from-zone reth0z to-zone reth0z policy p2 match application any user@host# set security policies from-zone reth0z to-zone reth0z policy p2 then permit
ホスト 1 とホスト 2(src1)のソース NAT プールを作成します。
[edit] user@host# set security nat source pool src1 address 192.0.2.1/32 to 192.0.2.10/32
ホスト 1 とホスト 2(src1)の元の送信元 IP アドレス範囲の先頭を指定します。
[edit] user@host# set security nat source pool src1 host-address-base 10.10.10.2/24
ソース NAT ルール セット r1 を設定します。
[edit] user@host# set security nat source rule-set r1 from zone reth0z user@host# set security nat source rule-set r1 to zone reth1z user@host# set security nat source rule-set r1 to zone reth0z user@host# set security nat source rule-set r1 rule rule1 match source-address 10.10.10.0/24 user@host# set security nat source rule-set r1 rule rule1 match destination-address 10.10.10.0/24 user@host# set security nat source rule-set r1 rule rule1 match destination-address 198.51.100.0/24 user@host# set security nat source rule-set r1 rule rule1 then source-nat pool src1 user@host# set security nat source rule-set r1 rule rule1 then source-nat pool persistent-nat permit any-remote-host user@host# set security nat source rule-set r1 rule rule1 then source-nat pool persistent-nat inactivity-timeout 900 user@host# set security nat source rule-set r1 rule rule1 then source-nat pool persistent-nat max-session-number 20
結果
設定モードから、 コマンドを show security nat
入力して設定を確認します。出力に意図した設定が表示されない場合は、この例の設定手順を繰り返して修正します。
[edit]
user@host#
show security nat
source {
pool src1 {
address {
192.0.2.1/32 to 192.0.2.10/32;
}
host-address-base 10.10.10.2/24;
}
rule-set r1 {
from zone reth0z;
to zone [ reth0z reth1z ];
rule rule1 {
match {
source-address 10.10.10.0/24;
destination-address [10.10.10.0/24 198.51.100.0/24];
}
then {
source-nat {
pool {
src1;
persistent-nat {
permit any-remote-host;
inactivity-timeout 900;
max-session-number 20;
}
}
}
}
}
}
}
デバイスの設定が完了したら、設定モードから を入力します commit
。
検証
バインディングを作成するホスト間で送信されるトラフィック 1
目的
バインディング1を作成するホスト(ホスト1とホスト3)間から送信されたトラフィックを確認します。
アクション
sendip -d r28 -p ipv4 -iv 4 -is 10.10.10.2 -id 198.51.100.2 -p udp -us 69 -ud 69 198.51.100.2
Source-IP: 10.10.10.2
Source-port: 69
Dst-IP: 198.51.100.2
Dst-port: 69
Binding1 is below:
user@host>
show security nat source persistent-nat-table all
Internal Reflective Source Type Left_time/ Curr_Sess_Num/ Source
In_IP In_Port Ref_IP Ref_Port NAT Pool Conf_time Max_Sess_Num NAT Rule
10.10.10.2 69 192.0.2.1 69 src1 any-remote-host -/900 1/20 rule1
バインディングを作成するホスト間で送信されるトラフィック 2
目的
バインディング2を作成するホスト(ホスト2とホスト3)間から送信されたトラフィックを確認します。
アクション
sendip -d r28 -p ipv4 -iv 4 -is 10.10.10.10 -id 198.51.100.2 -p udp -us 69 -ud 69 198.51.100.2
Source-IP: 10.10.10.10
Source-port: 69
Dst-IP: 198.51.100.2
Dst-port: 69
Binding2 is below:
user@host>
show security nat source persistent-nat-table all
Internal Reflective Source Type Left_time/ Curr_Sess_Num/ Source
In_IP In_Port Ref_IP Ref_Port NAT Pool Conf_time Max_Sess_Num NAT Rule
10.10.10.2 69 192.0.2.1 69 src1 any-remote-host -/900 1/20 rule1
10.10.10.10 69 192.0.2.9 69 src1 any-remote-host -/900 1/20 rule1
2 つのホスト間で送信されるトラフィック
目的
ホスト1からホスト2に送信されたトラフィックを確認します。
アクション
user@host>
show security flow session
sendip -d r28 -p ipv4 -iv 4 -is 10.10.10.2 -id 192.0.2.9 -p udp -us 69 -ud 69 192.0.2.9
Session ID: 100007628, Policy name: default-policy/2, Timeout: 52, Valid
In: 10.10.10.2/69 --> 192.0.2.9/69;udp, If: ge-0/0/0.0, Pkts: 2, Bytes: 112
Out: 10.10.10.10/69 --> 192.0.2.1/69;udp, If: ge-0/0/0.0, Pkts: 0, Bytes: 0
Total sessions: 1