このページの内容
永続的な NAT および NAT64
ネットワークアドレストランスレータ(NAT)は、ペイロードにIPアドレスを転送するアプリケーションで非常に重大な問題を引き起こすことはよく知られています。この問題に悩まされるアプリケーションには、VoIPやMultimedia Over IPなどがあります。永続的 NAT は NAT の動作を改善し、VOIP アプリケーションの動作に役立つ一連の NAT 要件の動作を定義します。NAT64は、IP/ICMP変換アルゴリズムに従ってパケットヘッダーを変換することで、IPv6パケットをIPv4パケットに、またはその逆に変換するために使用される変換メカニズムです。
永続的 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]階層レベルで以下のオプションのいずれかを使用してポートオーバーロードを明示的に無効にする必要があります。
-
ポートオーバーロードオフ
-
ポートオーバーロードファクター1
永続的なNATトラフィックを許可または拒否するセキュリティポリシーを設定するには、2つの新しい定義済みサービス(junos-stun と junos-persistent-nat)を使用できます。
永続的な NAT は、永続的なアドレス機能とは異なり ます(送信元 NAT プールの永続的なアドレスについてを参照してください)。永続アドレス機能は、デバイスに設定された送信元NATプールのアドレスマッピングに適用されます。永続的な NAT 機能は、外部 NAT デバイスのアドレスマッピングに適用され、特定の送信元 NAT プールまたはエグレスインターフェイスに対して設定されます。また、永続的 NAT は、STUN クライアント/サーバー アプリケーションでの使用を目的としています。
機能エクスプローラーを使用して、特定の機能のプラットフォームとリリースのサポートを確認します。
プラットフォームに関連する注意事項については、「 プラットフォーム固有の永続的な NAT バインディングサポートの動作 」セクションを参照してください。
NAT(STUN)プロトコルのセッショントラバーサル公共について
多くのビデオおよび音声アプリケーションは、NAT環境では正しく動作しません。たとえば、VoIPで使用されるセッション開始プロトコル(SIP)は、アプリケーションデータ内のIPアドレスとポート番号をエンコードします。リクエスターと受信者の間にNATファイアウォールが存在する場合、データ内のIPアドレスとポート番号を変換すると、情報が無効になります。
また、NATファイアウォールは、受信SIPメッセージ用のピンホールを維持しません。これにより、SIPアプリケーションは、SIPメッセージでピンホールを常に更新するか、ALGを使用して登録を追跡します。この機能はゲートウェイデバイスによってサポートされている場合とサポートされていない場合があります。
最初に RFC 3489の「ネットワークアドレストランスレータ(NAT)を介したUDP(ユーザーデータグラムプロトコル)の簡易トラバーサル 」で定義され、その後の RFC 5389の「NATのセッショントラバーサル公共」で定義された、NAT用セッショントラバーサル公共で定義された、シンプルなクライアント/サーバープロトコルです。STUNクライアントは、STUNサーバーにリクエストを送信し、STUNサーバーはクライアントに応答を返します。STUNクライアントは、通常、パブリックIPアドレスやポートを必要とするアプリケーションの一部です。STUNクライアントは、PCやネットワークサーバーなどのエンドシステムに常駐できますが、STUNサーバーは通常、パブリックインターネットに接続されています。
STUNクライアントとSTUNサーバーの両方がアプリケーションによって提供される必要があります。ジュニパーネットワークスは、STUNクライアントまたはサーバーを提供しません。
STUNプロトコルを使用すると、クライアントは次のことが可能になります。
アプリケーションが NAT ファイアウォールの内側にあるかどうかを検出します。
使用されているNATバインディングのタイプを決定します。
STUNサーバーに最も近いNATデバイスによって割り当てられたIPアドレスとポートバインディングである再帰トランスポートアドレスを学習します。(STUNクライアントとSTUNサーバーの間には、複数のレベルのNATが存在する場合があります。)
クライアントアプリケーションは、SIPやH.323などのプロトコル内でIPアドレスバインディング情報を使用できます。
NAT64 IPv6プレフィックスからIPv4アドレス永続変換への理解
NAT64メカニズムにより、IPv6クライアントは、IPv6アドレスをIPv4アドレスに変換することによって(またはその逆)ことで、IPv4サーバーに接続できます。ただし、一部のIPv4アプリケーションおよびサービスは、 464XLATなどのデュアル変換シナリオで、標準NAT64を使用するIPv6のみのネットワークでは正しく動作できません。このようなシナリオでは、アドレス永続変換が必要です。
図1は464XLATアーキテクチャを示しています。IPv4パケットは、カスタマーサイドトランスレータ(CLAT)でIPv6パケットに変換され、次にIPv6専用ネットワークを通過し、プロバイダサイドトランスレータ(PLAT)でIPv4パケットに変換され戻され、コアネットワークのグローバルIPv4専用コンテンツにアクセスします。このアーキテクチャでは、CLAT でのステートレス変換と PLAT 上のステートフル変換を組み合わせて使用します。
デバイスが PLAT として機能する場合、PLAT は、1 つの特定の IPv6 プレフィックスと 1 つの変換された IPv4 アドレスの間のスティッキーマッピング関係を維持する責任があります。デバイスは、IPv6プレフィックスをシングルユーザーとして扱います。このマッピングは、 address-persistent 機能を使用してIPv4送信元NATプール内で特定のIPv6プレフィックス長を設定することで実現されます。
図2は、CLATで設定されたNATルールを示しています。このルールは、IPv4アドレスをアドレス永続プレフィックス付きのIPv6アドレスに変換します。CLAT でのステートレス NAT46 変換と PLAT でのステートフル NAT64 変換により、IPv4 ホスト 192.168.1.2 からのトラフィックは、IPv6 のみのネットワークを介してグローバル サーバー 198.51.100.1 に到達します。
でのNAT64変換
表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 のタイプ—次のいずれか: 任意のリモートホスト、ターゲットホスト、またはターゲットホストポート。
(オプション)アドレスマッピング—このオプションを使用すると、特定の内部IPアドレスからのリクエストを同じ再帰IPアドレスにマッピングできます。内部ポートとリフレクシブ ポートは、任意のポートにすることができます。任意のポートを使用する外部ホストは、(外部から内部へのトラフィックを許可する着信ポリシーが設定済み)にパケットを送信することで、内部ホストにパケットを送信できます。このオプションが設定されていない場合、永続的な NAT バインディングは特定の内部トランスポートアドレスおよびリフレクシブトランスポートアドレス用になります。
address-mappingオプションを指定することができるのは、永続的なNATタイプが任意のリモートホストであり、ソースNATルールアクションが以下のアクションのいずれかである場合だけです。IPアドレスシフトによる送信元NATプール
ポート変換とオーバーフロープールのない送信元NATプール
(オプション)非アクティブタイムアウト—バインディングエントリーのすべてのセッションが期限切れになったときに、永続的なNATバインディングがデバイスのメモリに残っている時間(秒単位)。設定されたタイムアウトに達すると、バインディングがメモリから削除されます。デフォルト値は300秒です。60〜7200秒の値を設定します。
永続的な NAT バインディングのすべてのセッションが期限切れになった場合、バインディングは指定された非アクティブタイムアウト期間、デバイスのメモリ内のクエリ状態のままになります。非アクティブタイムアウト期間(デフォルトは300秒)が終了すると、クエリバインディングがメモリから自動的に削除されます。
clear security nat source persistent-nat-tableコマンドを使用して、すべてまたは特定の永続NATクエリバインディングを明示的に削除できます。(オプション)最大セッション数—永続的なNATバインディングを関連付けることができるセッションの最大数。デフォルトは30セッションです。8〜100の値を設定します。
インターフェイスNATでは、[edit security nat source]階層レベルで以下のオプションのいずれかを使用して、ポートのオーバーロードを明示的に無効にする必要があります。
ポートオーバーロードオフ
ポートオーバーロードファクター1
最後に、セキュリティポリシーで使用して、STUNおよび永続的なNATトラフィックを許可または拒否できる2つの定義済みサービスがあります。
junos-stun—STUNプロトコルトラフィック。junos-persistent-nat—永続的な NAT トラフィック。
junos-persistent-natポリシーを配置します。または、後続のポリシーが、
junos-persistent-natポリシーの下にある永続的なNATトラフィックに一致しないことを確認します。
任意のリモートホスト、ターゲットホスト、またはターゲットホストポートの永続的なNATタイプの場合、セキュリティポリシーの方向は内部から外部です。
例:アドレス永続 NAT64 プールの設定
この例では、アドレス永続的なNAT64プールを設定して、設定されたIPv6プレフィックス長によって計算される1つの特定のIPv6プレフィックスと、変換されたIPv4アドレスの間にスティッキーなマッピング関係を確保する方法を示しています。
要件
開始する前に、既存の NAT ルールとプール設定が新しいものと競合していないことを確認してください。
概要
この例では、NAT IPv6 から IPv4 への変換用の IPv4 ソース NAT プールで IPv6 プレフィックス長を /NAT に設定します。NATルールとNATプールに一致するトラフィックは、IPv6プレフィックスとIPv4変換アドレスの間でアドレス永続変換を実行します。この設定は、IPv6 のみのネットワーク上で IPv4 サービスを動作させるために、デュアル変換シナリオ 464XLAT のプロバイダー側トランスレーター(PLAT)で使用できます。
設定
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 ルールを使用して、永続的な NAT タイプを設定できます。この例では、インターフェイスIPアドレスで永続的なNATを適用する方法と、インターフェイスIPアドレスをNAT IPアドレスとして使用して、特定の内部ホストに対して永続的なNATを実行する方法について説明します。また、ホストの永続的なアドレス ポートマッピング 動作と永続的なNATフィルターの動作を維持する方法を示しています。インターフェイス NAT のポート オーバーロードを無効にする必要があります。
要件
この例では、以下のハードウェアおよびソフトウェアコンポーネントを使用しています。
1 ファイアウォール
4台のPC
始める前に:
永続的 NAT の概念を理解します。 永続的な NAT と NAT64 の設定の概要を参照してください。
概要
キャリアグレードNAT(CGN)ネットワークの導入では、インターフェイスIPアドレスをNATアドレスとして設定し、永続的なネットワークアドレス変換を実行できます。このようにして、内部ホストは、内部から外部へ開始された発信トラフィックによって、1つの送信元NATマッピング関係を作成できます。次に、外部ホストは、共有NATマッピング関係を介してこのインターフェイスNATアドレスにトラフィックを送信し、この内部ホストにトラフィックを送り返します。
この例では、まずインターフェイスge-0/0/1からインターフェイスge-0/0/2へのトラフィックを一致させるようインターフェイスNATルールセットint1を設定し、次に永続的なNATを実行するために特定の送信元アドレスと宛先アドレスに一致するようにNATルールin1を設定します。 any remote host 永続NATタイプは、インターフェイスNATの実行時に設定します。
送信元アドレス192.0.2.0/24(内部電話)および宛先アドレス198.51.100.0/24( STUN サーバー、 SIP プロキシサーバー、外部電話を含む)のパケットの場合、 any remote host 永続NATタイプでインターフェイスNATを設定します。次に、インターフェイス 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 nat および show security policies コマンドを入力して設定を確認します。出力に意図した設定が表示されない場合は、この例の手順を繰り返して設定を修正します。
[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_ruleshow security nat source rule ipv4_ruleshow 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_ruleshow security nat source rule ipv4_ruleshow security nat source pool myipv4
例:永続的な NAT バインディングの最大数を設定する
この例では、永続的な NAT 容量を増やす方法を示しています。
要件
開始する前に、「 永続的な NAT と NAT64 について」を参照してください。
概要
この例では、永続的な NAT 容量を最大化オプションを有効にします。このオプションを有効にするには、サポートされるセントラルポイントの最大バインディング容量を、最大2Mのセントラルポイントセッション容量の約1/8まで増やし、サポートされるSPUの最大バインディング容量を各SPUセッション容量の約1/4に増やすことができます。したがって、フローセッションの容量は、CPと各SPUの両方で1/4ずつ減少します。
この例では、最大セッション設定で、中央ポイントで最大 20,000,000、各 SPU で最大 1,100,000 のセッション容量を有効にします。 maximize-persistent-nat-capacity コマンドを使用します。
設定
手順
ステップバイステップの手順
永続的な 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と通信する場合、ホスト2の外部アドレスを含むパケットをホスト2の内部アドレスにルーティングするためにNAT(ヘアピンニングサポート付き)が使用されます。
図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
この例では、永続的な NAT ヘアピン設定を設定する方法を示しています。
要件
始める前に:
デバイス上のネットワークインターフェイスを設定します。 セキュリティデバイス向けインターフェイスユーザーガイドを参照してください。
セキュリティゾーンを作成し、インターフェイスを割り当てます。 「セキュリティゾーンについて」を参照してください。
概要
ヘアピニングにより、プライベートネットワークからのパケットを変換し、パブリックネットワークに渡すのではなく、プライベートネットワークにループバックさせることができます。ヘアピン機能により、NATテーブル内の対応するレコードを使用して、パケットがローカルネットワーク内のホストに宛てられていることを認識できます。次に、宛先IPアドレスを変換し、パケットをローカルネットワークに送り返します(ポートマッピングの場合も同様です)。これにより、2つのホスト間のトラフィックが正しく動作することが保証されます。
トポロジー
ヘアピニングにより、プライベートネットワーク上の2つのエンドポイント(ホスト1とホスト2)が、互いの外部IPアドレスとポートのみを使用する場合でも通信できます。これを 図5で説明します。
ホスト1がホスト3にトラフィックを送信すると、ホスト1の内部送信元IPアドレスとポート間のNATバインディングが、その外部IPアドレスとポートとともにNATテーブルに関連付けられます。ホスト2がホスト3にトラフィックを送信しても同じことが起こります。このようにして、ホスト1とホスト2が通信したいときに、互いの外部IPアドレスを識別できます。
たとえば、ホスト1がホスト2と通信する場合、ホスト2の外部アドレスを含むパケットをホスト2の内部アドレスにルーティングするためにNAT(ヘアピンニングサポート付き)が使用されます。
図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 と reth1z)を作成します。
[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のソースNATプールを作成します(src1)。
[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とホスト3)から送信されたトラフィックを検証し、バインディング2を作成します。
アクション
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
プラットフォーム固有の永続的な NAT バインディング サポートの動作
機能エクスプローラーを使用して、特定の機能のプラットフォームとリリースのサポートを確認します。
プラットフォーム固有の動作を確認するには、以下の表を使用して下さい。
| プラットフォーム | の違い |
|---|---|
| SRXシリーズ |
|