NAT 構成の概要
ネットワーク アドレス変換構成の概要
ネットワーク アドレス変換(NAT)を設定するには、次の大まかな手順を実行します。
- 送信元アドレスと宛先アドレスを設定します。詳細については、 送信元アドレスと宛先アドレスの設定ネットワークアドレス変換の概要を参照してください。
- NAT に使用するアドレスまたはプレフィックス、アドレス範囲、ポートを定義します。詳細については、 ネットワークアドレス変換のアドレスとポートのプールの設定の概要を参照してください。
- 該当する場合は、ネットワーク アドレス ポート変換(NAPT)のアドレス プールを構成します。詳細については、 ネットワークアドレスポート変換(NAPT)のアドレスプールの設定の概要を参照してください。
- NAT ルールを設定します。ルール内には、一致方向、一致条件、アクション、変換タイプを含めます。詳細については、 ネットワーク アドレス変換ルールの概要を参照してください。
- NAT処理用にサービスセットを設定します。各サービスセット内で、インバウンドとアウトバウンドのトラフィックとNATルールまたはルールセットを処理するためのインターフェイスを定義します。詳細については、 ネットワークアドレス変換のためのサービスセットの設定を参照してください。
「」も参照
送信元アドレスと宛先アドレスの設定ネットワーク アドレス変換の概要
特定のアドレス、プレフィックス、またはアドレス範囲の境界を設定する必要があります。
で有効な以下の
inet.0
アドレスは、NAT変換には使用できません。0.0.0.0/32
127.0.0.0/8(ループバック)
128.0.0.0/16(martian)
191.255.0.0/16(martian)
192.0.0.0/24(martian)
223.255.255.0/24(martian)
224.0.0.0/4(マルチキャスト)
240.0.0.0/4(予約済み)
255.255.255.255(ブロードキャスト)
ルーティング・テーブルで
inet.0
有効として指定され、NAT変換ではサポートされていないアドレスは、フィルター・タイプにorlonger
一致します。NATプール内のそのようなアドレスプレフィックス内のリージョンは指定できません。MS-MPCおよびMS-MICを搭載したMXシリーズルーターでは、プレフィックス長が/16以上のNATアドレスプールを設定した場合、PICには設定されたプールをプロビジョニングするのに十分なメモリが含まれていません。また、合計 IP アドレスが /16 を超える多数のプールを設定しようとすると、メモリ使用率の問題が発生する可能性があります。このような状況では、NAT プール名の作成に失敗し、サービス セットがアクティブ化されていないことを示すシステム ログ メッセージが生成されます。MS-MPC および MS-MIC では、プレフィックス長が /16 以上の NAT プールを設定しないでください。
1つ以上のIPv4アドレスプレフィックスを
pool
ステートメントとNATルール条件の句でfrom
指定できます。これにより、サブネット内の各アドレスのルール条件を定義することなく、プライベートサブネットからパブリックサブネットへのソース変換を設定できます。宛先変換は、この方法では設定できません。詳細については、「 例: NAT ルールの設定」を参照してください。静的ソースNATを設定する場合、
address
階層レベルで設定するプレフィックスサイズは、[edit services nat pool pool-name]
階層レベルで[edit services nat rule rule-name term term-name from]
設定されたプレフィックス範囲よりもsource-address
大きくなければなりません。また、プレフィックス範囲はsource-address
、 ステートメント内の単一のサブネットまたはIPv4またはIPv6アドレスの範囲にマッピングするpool
必要があります。プレフィックス範囲でsource-address
使用されていないプールアドレスは、使用されていません。プールを共有できません。[
edit services nat pool nat-pool-name
] 階層レベルで ステートメントを使用address
して NAT アドレス プール プレフィックス サイズを設定する場合、サブネット アドレスとブロードキャスト アドレスは使用可能な IP アドレスのリストに含まれません。たとえば、NAT プールで使用address 10.11.12.0/28
する場合、アドレス 10.11.12.0(サブネット アドレス)と 10.11.12.15(ブロードキャスト アドレス)は使用できません。
IPアドレスを変更するNAT設定を含めると、ソースクラス使用率(SCU)、宛先クラス使用率(DCU)、フィルターベースの転送、特定のIPアドレスやプレフィックスをターゲットとするその他の機能など、ルーター設定の他の場所にある転送パス機能に影響を与える可能性があります。
また、ルーティングプロトコルパケットがアダプティブサービス(AS)またはマルチサービスPICを通過する際に、プロトコルピアリング、ネイバー、およびインターフェイスアドレスを変更できるため、NAT設定はルーティングプロトコルの動作に影響を与える可能性があります。
「」も参照
ネットワークアドレス変換用のアドレスとポートのプールの設定の概要
NAT プールの設定
ステートメントを pool
使用して、アドレス(またはプレフィックス)、アドレス範囲、およびネットワークアドレス変換(NAT)に使用するポートを定義できます。情報を設定するには、 階層レベルで pool
ステートメントを [edit services nat]
含めます。
Junos OS リリース 14.2 以降、NAT プールを次のように設定します。Junos OS リリース 16.1 以降、 limit-ports-per-address
ステートメントがサポートされています。
[edit services nat] pool nat-pool-name { address ip-prefix</prefix-length>; address-range low minimum-value high maximum-value; limit-ports-per-address number; port { automatic (sequential | random-allocation); range low minimum-value high maximum-value random-allocation; preserve-parity; preserve-range { } }
Junos OS リリース 14.1 以前では、NAT プールを以下のように設定します。
[edit services nat] pool nat-pool-name { address ip-prefix</prefix-length>; address-range low minimum-value high maximum-value; port (automatic | range low minimum-value high maximum-value); preserve-parity; preserve-range { } }
従来の NAT のプールを設定するには、宛先プールまたはソース プールのいずれかを指定します。
静的ソース NAT と動的ソース NAT では、複数の IPv4 アドレス(またはプレフィックス)と IPv4 アドレス範囲を指定できます。1 つのプール内で最大 32 個のプレフィックスまたはアドレス範囲(または組み合わせ)をサポートできます。
静的な宛先 NAT では、1 つの条件で複数のアドレス プレフィックスとアドレス範囲を指定することもできます。複数の宛先 NAT 条件で、宛先 NAT プールを共有できます。ただし、アドレスのネットマスクまたは範囲 from
は、宛先プール アドレスのネットマスクまたは範囲以下である必要があります。プールを必須より大きく定義した場合、一部のアドレスは使用されません。例えば、プール・サイズを 100 アドレスとして定義し、ルールが 80 個のアドレスのみを指定した場合、プール内の最後の 20 個のアドレスは使用されません。
特定の変換タイプに関する制約については、 ネットワーク アドレス変換ルールの概要を参照してください。
ソーススタティックNATでは、プレフィックスとアドレス範囲を個別のプール間で重複させることはできません。
アドレス範囲では、値は low
値よりも high
低い数値にする必要があります。複数のアドレス範囲とプレフィックスが設定されている場合、最初にプレフィックスが枯渇し、その後にアドレス範囲が続きます。
動的ソースNATのポートを指定する場合、アドレス範囲は最大65,000アドレスに制限され、合計(65,000 x 65,535)または4,259,775,000フローに制限されます。アドレス ポート変換のない動的 NAT プールは、最大 65,535 個のアドレスをサポートします。静的ソース NAT のプール サイズに制限はありません。
範囲を保持し、パリティを保持
アウトバウンド接続にソースポートを割り当てる際に、パケットソースポートの範囲またはパリティを保持するように、キャリアグレードNAT(CGN)を設定できます。階層レベルで および 設定ステートメントを含 preserve-range
めることで、NATプール定義の下でパリティ保持オプションと preserve-parity
範囲保持オプションを [edit services nat pool poolname port]
設定できます。
範囲の維持とパリティの保持は、MS-DPCを搭載したMXシリーズルーターと、MS-100、MS-400、MS-500マルチサービスPICSを搭載したMシリーズルーターでサポートされています。範囲の維持とパリティの保持は、Junos OS リリース 15.1R1 以降の MS-MPC および MS-MIC を搭載した MX シリーズ ルーターでサポートされています。
範囲を保持する - RFC 4787、 ユニキャストUDPのネットワークアドレス変換(NAT)動作要件は、0~1023、1024~65,535の2つの範囲を定義します。ノブが
preserve-range
設定され、受信ポートがこれらの範囲のいずれかになると、CGN はその範囲からのみポートを割り当てます。ただし、範囲内に使用可能なポートがない場合、ポート割り当て要求は失敗し、そのセッションは作成されません。この障害はカウンターとシステム ロギングに反映されますが、ICMP(Internet Control Message Protocol)メッセージは生成されません。このノブが設定されていない場合、割り当ては、受信ポートを含むポート範囲に関係なく、設定されたポート範囲に基づきます。例外は、hello などの特殊なゾーンを持つ一部のアプリケーション レベル ゲートウェイ(ALG)です。パリティーを保持 — ノブが
preserve-parity
設定されている場合、CGN は受信ポートと同じ偶数または奇数のパリティを持つポートを割り当てます。受信ポート番号が奇数または偶数の場合、出力ポート番号は奇数または偶数にする必要があります。目的のパリティのポート番号が利用できない場合、ポート割り当てリクエストは失敗し、セッションは作成されず、パケットはドロップされます。
プールを設定せずに宛先と送信元のプレフィックスを指定する
プールを設定することなく、NATで使用される宛先またはソースプレフィックスを直接指定できます。
情報を設定するには、 階層レベルで rule
ステートメントを [edit services nat]
含めます。
[edit services nat] rule rule-name { term term-name { then { translated { destination-prefix prefix; } } } }
ネットワーク アドレス変換ルールの概要
NAT ルールを設定するには、 階層レベルで ステートメントを[edit services nat]
含めますrule
rule-name
。
[edit services nat] allow-overlapping-nat-pools ; apply-groups; apply-groups-except; pool pool-name; port-forwarding port-forwarding-name; rule rule-name { match-direction (input | output); term term-name { from { application-sets set-name; applications [ application-names ]; destination-address (address | any-unicast) <except>; destination-address-range low minimum-value high maximum-value <except>; destination-prefix-list list-name <except>; source-address (address | any-unicast) <except>; source-address-range low minimum-value high maximum-value <except>; source-prefix-list list-name <except>; } then { no-translation; translated { address-pooling paired; clat-prefix clat-prefix; destination-pool nat-pool-name; destination-prefix destination-prefix; dns-alg-pool dns-alg-pool; dns-alg-prefix dns-alg-prefix; filtering-type endpoint-independent; mapping-type endpoint-independent; overload-pool overload-pool-name; overload-prefix overload-prefix; source-pool nat-pool-name; source-prefix source-prefix; translation-type { (basic-nat-pt | basic-nat44 | basic-nat66 | dnat-44 | dynamic-nat44 | napt-44 | napt-66 | napt-pt | stateful-nat464 | stateful-nat64 | twice-basic-nat-44 | twice-dynamic-nat-44 | twice-napt-44); } } syslog; } } }
各ルールには、 match-direction
一致が適用される方向を指定するステートメントを含める必要があります。
ACX シリーズ ルーターは、一致方向としてのみ input サポートします。
さらに、各 NAT ルールは、 ファイアウォール フィルターと同様の一連の条件で構成されています。用語は、以下で構成されています。
from
ステートメント— 含まれ、除外される一致条件とアプリケーションを指定します。then
ステートメント—ルーターソフトウェアが実行するアクションとアクション修飾子を指定します。
次のセクションでは、NAT ルールのコンポーネントについて説明します。
NAT ルールの一致方向の設定
各ルールには、 match-direction
一致が適用される方向を指定するステートメントを含める必要があります。一致が適用される場所を設定するには、 階層レベルで match-direction
ステートメントを [edit services nat rule rule-name]
含めます。
[edit services nat rule rule-name] match-direction (input | output);
一致方向は、マルチサービス DPC とマルチサービス PIC を通過するトラフィック フローに対して使用されます。パケットが PIC に送信されると、それに伴って方向情報が送信されます。パケットの方向は、以下の基準に基づいて決定されます。
インターフェイスサービスセットでは、パケットの方向は、パケットがサービスセットが適用されているインターフェイスに入るかどうかによって決定されます。
ネクストホップサービスセットでは、パケットの方向は、マルチサービスDPCまたはマルチサービスPICへのパケットのルーティングに使用されるインターフェイスによって決定されます。パケットのルーティングに内部インターフェイスを使用する場合、パケット方向が入力されます。外部インターフェイスを使用してパケットをPICまたはDPCに向ける場合、パケットの方向が出力されます。内部および外部インターフェイスの詳細については、 サービスインターフェイス に適用されるサービスセットの設定を参照してください。
マルチサービス DPC とマルチサービス PIC では、フロー ルックアップが実行されます。フローが見つからない場合は、ルール処理が実行されます。サービス セット内のすべてのルールが考慮されます。ルールの処理中に、パケットの方向がルールの方向と比較されます。パケットの方向に一致する方向情報を持つルールのみが考慮されます。
NAT ルールでの一致条件の設定
NAT 一致条件を設定するには、 階層レベルで ステートメントを[edit services nat rule rule-name term term-name]
含めますfrom
。
[edit services nat rule rule-name term term-name] from { application-sets set-name; applications [ application-names ]; destination-address (address | any-unicast) <except>; destination-address-range low minimum-value high maximum-value <except>; destination-prefix-list list-name <except>; source-address (address | any-unicast) <except>; source-address-range low minimum-value high maximum-value <except>; source-prefix-list list-name <except>; }
従来のNATを設定するには、ファイアウォールフィルターを設定するのと同じ方法で、宛先アドレス、宛先アドレスの範囲、送信元アドレス、または送信元アドレスの範囲を一致条件として使用できます。詳細については、 ルーティングポリシー、ファイアウォールフィルター、およびトラフィックポリサーユーザーガイドを参照してください。
または、 階層レベルで ステートメントを含め、NATルールに または source-prefix-list
ステートメント[edit policy-options]
のいずれかをdestination-prefix-list
含prefix-list
めることで、送信元または宛先プレフィックスのリストを指定できます。例については、「 例: ステートフル ファイアウォール ルールの設定」を参照してください。
translation-type
NAT ルールの ステートメント内then
の ステートメントが にstateful-nat-64設定されている場合、 または destination-prefix-list
ステートメントで指定されたdestination-address-range
範囲は、 ステートメントでfrom
then
指定されたdestination-prefix
範囲内でなければなりません。
NATルール内の少なくとも1つのNAT条件で、アドレスプーリングペア(APP)機能が有効になっている場合(階層レベルに [edit services nat rule rule-name term term-name then translated]
ステートメントを含めることでaddress-pooling
、APPが有効になっている条件のアドレスプールとして同じNATアドレスプールを使用するNATルールの他のすべての条件はAPPが有効になっている必要があります。それ以外の場合、APPが有効になっている他の条件を含むルールにAPPを有効にせずにNATルール条件を追加すると、NATルールでAPPが有効になっているすべての条件は、NATルールの指定された基準に一致するトラフィックフローを削除します。
MS-MICおよびMS-MPCを搭載したMXシリーズルーターでは、アドレスプーリングペア(APP)機能はNATルール内で有効になっています(階層レベルに ステートメントをaddress-pooling
[edit services nat rule rule-name term term-name then translated]
含めることで)、それはNATプールの特性です。APP が有効になっているこのような NAT プールは、APP が設定されていない NAT ルールと共有できません。
NATを設定する際、次のアドレス宛てのトラフィックがNATフローまたはNATルールに一致しない場合、トラフィックは破棄されます。
宛先変換を使用する場合の
from destination-address
ステートメントで指定されたアドレスソース変換を使用する場合、ソース NAT プールで指定されたアドレス
NAT ルールでのアクションの設定
NATアクションを設定するには、 階層レベルで ステートメントを[edit services nat rule rule-name term term-name]
含めますthen
。
[edit services nat] rule rule-name { term term-name { from { destination-address-range low minimum-value high maximum-value <except>; destination-prefix-list list-name <except>; } then { destination-prefix destination-prefix; }
[edit services nat rule rule-name term term-name] then { no-translation; syslog; translated { clat-prefix clat-prefix; destination-pool nat-pool-name; destination-prefix destination-prefix; source-pool nat-pool-name; source-prefix source-prefix; translation-type (basic-nat-pt | basic-nat44 | basic-nat66 | dnat-44 | dynamic-nat44 | napt-44 | napt-66 | napt-pt | stateful-nat464 | stateful-nat64 | twice-basic-nat-44 | twice-dynamic-nat-44 | twice-napt-44); } } }
no-translation
ステートメントでは、NATから除外したいアドレスを指定できます。ステートメントは
no-translation
、MS-DPCを搭載したMXシリーズルーター、およびMS-100、MS-400、MS-500マルチサービスPICSを搭載したMシリーズルーターでサポートされています。ステートメントはno-translation
、Junos OSリリース15.1R1以降のMS-MPCとMS-MICを搭載したMXシリーズルーターでサポートされています。system log
ステートメントを使用すると、システムロギングファシリティにアラートを記録できます。、
destination-prefix
ステートメントは、 階層レベルで ステートメントを含pool
めることで定義するアドレス情報を[edit services nat]
指定します。詳細については、 ネットワークアドレス変換用のアドレスとポートのプールの設定の概要を参照してください。destination-pool
source-prefix
source-pool
ステートメントは
translation-type
、送信元または宛先トラフィックに使用されるNATのタイプを指定します。オプションは、basic-nat-pt
、basic-nat44
、basic-nat66
、 、dnat-44
、napt-44
stateful-nat464
napt-66
dynamic-nat44
stateful-nat64
twice-basic-nat-44
napt-pt
twice-dynamic-nat-44
およびtwice-napt-44
です。
Junos OS リリース 13.2 以前では、CLI translation-type
では以下の制限が適用されていません。NAT ルールの ステートメント内then
の ステートメントが 、 stateful-nat-64ステートメントでdestination-address-range
指定された範囲である、 または destination-prefix-list
ステートメントで指定された範囲が ステートメントでfrom
then
指定されているdestination-prefix
範囲内である必要があります。Junos OS リリース 13.3R1 以降では、この制限が適用されます。
変換タイプの設定
ステートメントの9つのオプションの実装詳細 translation-type
は次のとおりです。
basic-nat44
—このオプションは、ポートマッピングを行うことなく、ソースIPアドレスの静的変換を実装します。ルールのfrom source-address
一致条件で ステートメントを設定する必要があります。ステートメントで指定されたアドレス範囲のサイズは、送信元プールと同じか小さいでなければなりません。送信元プールまたは宛先プレフィックスのいずれかを指定する必要があります。参照先プールに複数のアドレスを含めることはできませんが、変換用のポートを指定することはできません。メモ:インターフェイスサービスセットでは、 一致条件で指定された送信元アドレス宛てのパケットはすべて、サービスセットがインターフェイスに関連付けられていない場合でも、サービスPICに自動的にルーティングされます。
メモ:Junos OS リリース 11.4R3 以前は、ソース NAT プールは 1 つのサービス セットでしか使用できませんでした。Junos OS リリース 11.4R3 以降のリリースでは、ソース NAT プールを複数のサービス セットで再利用できます。
basic-nat66
—このオプションは、IPv6 ネットワークでポートマッピングを行うことなく、ソース IP アドレスの静的変換を実装します。設定は実装とbasic-nat44
似ていますが、IPv6 アドレスを持ちます。この
basic-nat66
オプションは、MS-MPC または MS-MIC を使用している場合は使用できません。basic-nat-pt
—このオプションは、外部ドメインの IPv4 ホストへのセッションを開始する際に、IPv6 ホストのアドレス変換を実装します。その逆も同様です。このオプションは、常に DNS ALG で実装されます。IPv4 アドレスの送信元プールと宛先プールを定義する必要があります。1つのルールを設定し、2つの用語を定義する必要があります。両方term
のステートメントの ステートメントで IPv6 アドレスをfrom
設定します。then
ルール内の最初の条件の ステートメントで、送信元プールと宛先プールの両方を参照し、 を設定しますdns-alg-prefix
。同じルール内のthen
2番目の条件のステートメントでソースプレフィックスを設定します。この
basic-nat-pt
オプションは、MS-MPC または MS-MIC を使用している場合は使用できません。deterministic-napt44
—このオプションは、宛先ポートと IP アドレスのブロックのアルゴリズムベースの割り当てを実装します。これにより、受信(送信元)IP アドレスとポートが常に同じ宛先 IP アドレスとポートにマッピングされるため、アドレス変換ロギングが不要になります。を使用deterministic-napt44
する場合は、 階層レベルでも使用deterministic-port-block-allocation
する[edit services nat pool poolname port]
必要があります。このオプションは
deterministic-napt44
、MS-DPCを搭載したMXシリーズルーターと、MS-100、MS-400、MS-500マルチサービスPICSを搭載したMシリーズルーターでサポートされています。deterministic-napt44
MS-MPCまたはMS-MICを搭載したMXシリーズルーターを使用している場合のオプションは、Junos OSリリース14.2R7以降の14.2リリースおよびリリース15.1R3以降の15.1リリースでのみサポートされています。dnat-44
—このオプションは、ポートマッピングを行うことなく、宛先IPアドレスの静的変換を実装します。プール・アドレス・スペースのサイズは、宛先アドレス・スペースと同じまたはそれ以上でなければなりません。ステートメントの名前を指定するdestination pool
必要があります。プール内のNATアドレスの数が ステートメント内の宛先アドレスの数よりも大きい限り、参照先プールには複数のアドレス、範囲、またはプレフィックスをfrom
含めることができます。階層レベルには[edit services nat rule rule-name term term-name from]
、1 つのdestination-address
値を正確に含める必要があります。プレフィックスの場合、サイズはプール プレフィックス サイズ以下である必要があります。値に一致しないプール内のアドレスは、プールが複数の用語またはルール間で共有できないため、未使用のままになります。dynamic-nat44
—このオプションは、ポートマッピングを行うことなく、ソースIPアドレスの動的変換を実装します。を指定source-pool
する必要があります。参照先プールには、(アドレスのみの変換の場合)設定をaddress
含める必要があります。アドレスのみのオプションでは
dynamic-nat44
、最大 16,777,216 個のアドレスをより小さなサイズのプールに変換できます。送信元アドレス範囲からの要求は、プールが使用され、追加の要求が拒否されるまで、プール内のアドレスに割り当てられます。ホストに割り当てられたNATアドレスは、そのホストからのすべての同時セッションに使用されます。アドレスは、そのホストのすべてのセッションの有効期限が切れた後にのみプールに解放されます。この機能により、ルーターは複数のプライベート ホスト間でいくつかのパブリック IP アドレスを共有できます。すべてのプライベート ホストが同時にセッションを作成するわけではないため、いくつかのパブリック IP アドレスを共有できます。napt-44
—このオプションは、ポートマッピングによるソースIPアドレスの動的変換を実装します。ステートメントの名前を指定するsource-pool
必要があります。参照先プールには、構成を含めるport
必要があります。ポートが自動として設定されているか、ポート範囲が指定されている場合は、 NAPT(ネットワーク アドレス ポート変換 )が使用されることを意味します。napt-66
—このオプションは、IPv6 アドレスのポートマッピングを使用して、送信元 IP アドレスの動的アドレス変換を実装します。設定は実装とnapt-44
似ていますが、IPv6 アドレスを持ちます。この
napt-66
オプションは、MS-MPC または MS-MIC を使用している場合は使用できません。napt-pt
—このオプションは、宛先 IP アドレスの送信元および静的変換用の動的アドレスとポート変換を実装します。ステートメントの名前を指定するsource-pool
必要があります。参照先プールには、ポート構成 (NAPT 用) が含まれている必要があります。さらに、DNS トラフィック用と残りのトラフィック用の 2 つのルールを設定する必要があります。DNS トラフィック用のルールは、DNS ALG を有効にし、 ステートメントをdns-alg-prefix
構成する必要があります。さらに、 ステートメントでdns-alg-prefix
設定されたプレフィックスは、宛先IPv6アドレスをIPv4アドレスに変換するために、2番目のルールで使用する必要があります。この
napt-pt
オプションは、MS-MPC または MS-MIC を使用している場合は使用できません。stateful-nat464
—このオプションは、送信元 IP アドレスの 464XLAT PROVIDER-Side Translater(PLAT)アドレス変換と、宛先 IPv4 アドレスの IPv6 プレフィックス除去変換を実装します。変換に使用する IPv4 アドレスを [edit services nat pool] 階層レベルで指定する必要があります。このプールは、IPv6 アドレスを IPv4 に変換するルールで参照する必要があります。この
stateful-nat464
オプションは、MS-MPC または MS-MIC を使用している場合にのみ使用でき、Junos OS リリース 17.1R1 以降でサポートされています。stateful-nat64
—このオプションは、送信元 IP アドレスの動的アドレスとポート変換、および宛先 IP アドレスのプレフィックス削除変換を実装します。階層レベルでの変換に使用する IPv4 アドレスを指定する[edit services nat pool]
必要があります。このプールは、IPv6 アドレスを IPv4 に変換するルールで参照する必要があります。twice-basic-nat-44
—このオプションは、IPv4 アドレスに対する静的ソース変換と静的宛先変換を実装するため、送信元アドレスとdnat-44
宛先アドレスをbasic-nat44
組み合わせています。オプションは
twice-basic-nat-44
、MS-DPC、MS-100、MS-400、MS-500 マルチサービス PICS でサポートされています。このtwice-basic-nat-44
オプションは、Junos OS リリース 15.1R1 以降の MS-MPC および MS-MIC でサポートされています。twice-dynamic-nat-44
—このオプションは、送信元アドレスと宛先アドレスを組み合わせてdynamic-nat44
、IPv4 アドレスのソース動的およびdnat-44
宛先静的変換を実装します。オプションは
twice-dynamic-nat-44
、MS-DPC、MS-100、MS-400、MS-500 マルチサービス PICS でサポートされています。このtwice-dynamic-nat-44
オプションは、Junos OS リリース 15.1R1 以降の MS-MPC および MS-MIC でサポートされています。twice-napt-44
—このオプションは、送信元アドレスと宛先アドレスを組み合わせてnapt-44
、IPv4 アドレスのソース NAPT とdnat-44
宛先の静的変換を実装します。オプションは
twice-napt-44
、MS-DPC、MS-100、MS-400、MS-500 マルチサービス PICS でサポートされています。このtwice-napt-44
オプションは、Junos OS リリース 15.1R1 以降の MS-MPC および MS-MIC でサポートされています。
NAT 方法の詳細については、 RFC 2663、 IP ネットワーク アドレストランスレータ(NAT)の用語と考慮事項を参照してください。
非 NAT-T ピアの IPsec パススルーの NAT ルールの設定
Junos OS リリース 17.4R1 以前は、MX シリーズ ルーター上の Junos VPN Site Secure スイートの IPsec 機能に対して、ネットワーク アドレス変換トラバーサル(NAT-T)はサポートされていません。Junos OS リリース 14.2R7、15.1R5、16.1R2、17.1R1 以降、NAT-T に準拠していない IPsec ピア間で NAPT-44 および NAT64 ルールを介して IKEv1 および IPsec パケットを渡すことができます。ESP トンネル モードのみがサポートされています。この機能は、MS-MPCとMS-MICでのみサポートされています。
NAPT-44 または NAT64 の IPsec パススルーの NAT ルールを設定するには、次の手順に従います。
IKE ALGアプリケーションを設定します。 アプリケーションプロパティの設定を参照してください。
アプリケーション・セットにアプリケーションを追加します。 アプリケーション セットの設定を参照してください。
NAT プールを設定します。 ネットワークアドレス変換のアドレスとポートのプールの設定の概要を参照してください。
NAT ルールを設定します。
ルールの一致方向を設定します。 NAT ルールの一致方向の設定を参照してください。
ステップ 2で設定したIKEおよびIPsecパススルーのアプリケーションセットとして、一致条件のいずれかを設定します。
[edit services nat rule rule-name term term-name from] user@host# set application-sets set-name
その他の一致条件を設定します。 NAT ルールでの一致条件の設定を参照してください。
変換タイプを NAPT-44 または NAT64 として設定します。
[edit services nat rule rule-name term term-name then translated] user@host# set translation-type (napt-44 | stateful-nat64)
他のNATアクションを設定します。 NAT ルールでのアクションの設定を参照してください。
NAT ルールをサービス セットに割り当てます。
[edit services] user@host# set service-set service-set-name nat-rules rule-name
「」も参照
サービス拒否(DOS)攻撃から CGN デバイスを保護
DOS(サービス拒否)攻撃の防止または最小化に役立つ設定オプションを選択できるようになりました。
マッピング更新動作
このトピックで説明するNATマッピング更新動作を設定するための新しいオプションを実装する前に、インバウンドまたはアウトバウンドのフローがアクティブな場合、会話は有効な状態を維持していました。これはデフォルトの動作のままです。また、インバウンド フローのみにマッピング更新を指定することも、アウトバウンド フローのみにマッピング更新を指定することもできます。マッピング更新動作を設定するには、 階層レベルで ステートメントを[edit services nat rule rule-name term term-name then translated secure-nat-mapping]
含mapping-refresh (inbound | outbound | inbound-outbound)
めます。
EIF インバウンド フローの制限
先に。EIF マッピング上のインバウンド接続の数は、システムで許可された最大フローによってのみ制限されました。EIF で許可されるインバウンド フローの数を設定できるようになりました。EIF マッピング上のインバウンド接続の数を制限するには、 階層レベルに eif-flow-limit number-of-flows
ステートメントを [edit services nat rule rule-name term term-name then translated secure-nat-mapping]
含めます。
キャリアグレード NAT の実装:ベスト プラクティス
キャリアグレード NAT 実装のベスト プラクティスを次のトピックで紹介します。
- MS-DPCでAPPを使用する場合、ラウンドロビンアドレス割り当てを使用する
- EIM 機能は、必要な場合にのみ使用する
- 予想されるユーザー セッション数に基づいて、ポート ブロック割り当てブロック サイズを定義します。
- 実行中のシステムでポート・ブロック割り当て構成を変更する際の考慮事項
- 必要以上の NAT プールを割り当てない
- NATのシステムロギングを必要な場合にのみ設定する
- 欠落している IP フラグメントの影響を制限する
- パケット ルーティング ループが発生しやすい設定を使用しない
- 非アクティブタイムアウト
- フロー制御でダンプを有効にする
MS-DPCでAPPを使用する場合、ラウンドロビンアドレス割り当てを使用する
MS-DPCを使用し、NATルールでアドレスプーリングペア(APP)を設定する場合、NATプールにラウンドロビンアドレス割り当てを使用する必要があります。
APP機能は、そのプライベートIPアドレスのすべてのNATセッションに対して、NATプール内の同じパブリックIPアドレスにプライベートIPアドレスをマッピングします。
NAT プールの順次アドレス割り当ては MS-DPC のデフォルトで、次の IP アドレスを割り当てる前にパブリック IP アドレスのすべてのポートを割り当てます。APP と一緒に順次割り当てを行うと、複数のプライベート ホストを同じパブリック IP アドレスにマッピングしてしまうと、パブリック IP アドレスのポートが速く枯渇し、他のポートは NAT プール内の残りの IP アドレスから引き続き利用できるようになります。
一方、ラウンドロビン割り当ては、変換が必要な次のプライベートIPアドレスにNATプール内の次のIPアドレスを割り当て、1つのパブリックIPアドレスのすべてのポートが枯渇する可能性を低減します。
APP およびラウンドロビン 方式のアドレス割り当ての詳細については、「 ネットワーク アドレス ポート変換(NAPT)用のアドレス プールの設定」を参照してください。
MS-MPCとMS-MICは、ラウンドロビン割り当てのみを使用します。
次の例は、ラウンドロビンアドレス割り当てを示しています。
[edit services] nat pool natpool-1 { port { automatic; } address-allocation round-robin; mapping-timeout 120; }
EIM 機能は、必要な場合にのみ使用する
Junos ALG を含む NAT ルール用語では、エンドポイント非依存マッピング(EIM)を使用しないでください。EIM は、プライベート ホストから特定のセッションに同じ外部 NAT アドレスとポートを割り当てますが、処理オーバーヘッドが追加されます。EIM は、EIM が使用する機能をすでに採用している Junos ALG には何のメリットもありません。
ソース ポートを再利用し、CGNAT デバイスに依存して、異なる宛先に送信されたすべてのトラフィックに対して同じアドレスとポート マッピングを維持するアプリケーションで EIM を有効にします。たとえば、Xbox や PS4 などのコンソール ゲーム アプリケーションや、一方的な自己アドレス修復方法(UNSAF)を使用するアプリケーションには EIM を使用します。(ネットワーク アドレス変換全体の UNSAF(一方的な自己アドレス修復)に関する IETF RFC 3424 IAB の考慮事項)を参照してください。
EIM の詳細については、「 ネットワーク アドレス ポート変換(NAPT)用のアドレス プールの設定」を参照してください。
次の例では、NAT ルールで Junos SIP ALG を使用しているため、EIM は使用 されません 。
[edit services nat] rule natrule-1 { match-direction input; term1 { from { applications junos-sip; } } then { translated { source-pool natpool-3; translation-type { napt-44; } address-pooling paired; } } }
予想されるユーザー セッション数に基づいて、ポート ブロック割り当てブロック サイズを定義します。
セキュア・ポート・ブロック割り振りおよび決定論的ポート・ブロック割り振りについては、ユーザーが予想するアクティブ・セッションの平均数の 2~4 倍のポート・ブロック割り振りブロック・サイズを定義します。例えば、ユーザーが平均約 200~250 の NAT セッションがアクティブになると予想される場合、ブロック サイズを 512 または 1024 に設定すると、自由な割り当てが実現します。
MXシリーズをNATデバイスとして使用して安全なポートブロック割り当てを展開し、加入者ユーザープロファイルとトラフィックプロファイルが分からない場合、推定されるプライベート加入者のピーク数を処理するのに十分なNAT IPアドレスがある場合、ポートブロックサイズを1024に設定します。NAT IP アドレスの回数 62 は、ポート ブロック サイズ 1024 で処理できるプライベート 加入者の数を示します(IP アドレスあたり 62 ブロック)。次に、 コマンドを使用してMXシリーズルーターを show services nat pool detail
注意深く監視して、ブロックサイズを変更する必要があるかどうかを判断します。
NAT プールに割り当てる IP アドレスの数が限られている場合、ブロック サイズを大きくしすぎないように注意してください。加入者に効率的にブロックを割り当てるのに十分な大きさのポート・ブロック・サイズを作成すると、すべてのポート・ブロックが縛られる可能性があります。
セキュアなポートブロック割り当ては、NAT44またはNAT64用にポートのブロックを特定のユーザーに割り当てます。セキュアなポートブロック割り当てでは、ポートのブロックごとに1つのsyslogのみを生成することで、syslogメッセージの数を制限します。
ただし、ブロックサイズを不適切に設定すると、NATリソースの使用やパフォーマンスの問題が非効率的につながる可能性があります。たとえば、1 つの HTML ページに対してかなりの数のソケットを確立する必要がある Web サイトにユーザーが接続する場合、対応する数の新しいポートを割り当てる必要があります。ポート・ブロック・サイズは、新規ブロックの継続的な割り振りを防ぐのに十分な大きさでなければなりません。プライベート加入者の同時セッション数がアクティブなポートブロックで使用可能なポート数を超えた場合、加入者に割り当てられた他のポートブロックが使用可能なポートに対してスキャンされるか、新しいブロックが加入者のフリーブロックプールから割り当てられます。割り当てられたポート・ブロックをスキャンし、追加のブロックを割り当てると、新規セッションのセットアップや Web ページの読み込みが遅れる可能性があります。
ポートブロック割り当ての詳細については、 保護されたポートブロック割り当ての設定 と 決定論的NAPTの設定を参照してください。
次の例では、ポートブロックサイズを1024に設定します。
[edit services nat] pool natpool-1 { address-range low 192.0.2.0 high 192.0.2.10; port { automatic; secure-port-block-allocation { block-size 1024; max-blocks-per-user 8; active-block-timeout 300; } } mapping-timeout 300; }
実行中のシステムでポート・ブロック割り当て構成を変更する際の考慮事項
MS-MPC または MS-MIC を使用する場合、実行中のシステムでセキュア なポート ブロック割り当てまたは確定的なポート ブロック設定を変更する前に、NAT セッションを迅速に中断するための計画を立てましょう。設定が変更された場合、現在のすべてのNATセッションが再作成されます。
MS-DPC 使用時に実行中のシステムでポート ブロック割り当て設定を変更する前に、サービスの中断を計画します。設定を変更した後、MS-DPCを再起動する必要があります。またはこれが不可能な場合は、サービスセットを無効化して再有効化する必要があります。
ポートブロック割り当て構成の変更には、以下が含まれます。
NAT プール PBA 設定を変更する。
PBA NAT プールを非 PBA NAT プールに変更する。
PBA NAT プール以外の PBA NAT プールを変更する。
ポートブロック割り当ての設定の詳細については、 保護されたポートブロックの割り当ての設定 と 決定論的NAPTの設定を参照してください。
必要以上の NAT プールを割り当てない
MS-MPC および MS-MIC
NAPT44 を MS-MIC または MS-MPC で変換タイプとして使用する場合、ピーク セッションレートに必要以上の NAT プールを設定しないでください。これは、貴重な IPv4 リソースを結び付ける可能性があります。セッションとも呼ばれる各会話には、イングレスフローとエグレスフローという2つのフローが含まれます。それぞれの会話には 1 つのポートが必要で、プール内の各 IP アドレスのポート範囲は 1024~65535(64K)であるため、NAT プール のサイズを以下の数より大きくする必要はありません。
最大会話数/64,000
MS-MIC で NAPT44 を変換タイプとして使用する場合、最大 NAT プール サイズは 128 アドレス(/25 ネットワーク)をお勧めします。
MS-MPC で NAPT44 を変換タイプとして使用する場合、最大 NAT プール サイズは 256 アドレス(/24 ネットワーク)をお勧めします。
MS-MIC で NAPT-44 を使用する場合、推奨される NAT プール サイズの最大は 128 IP アドレスです。MS-MIC は最大 1,400 万フロー、または 700 万の会話をサポートしているため、700 万ポートが必要です。合計 700 万個のポートがあり、128 個の IP アドレスを持ち、各 IP アドレスのポート範囲は 1024~65535 です。
NAPT-44 を使用する場合、MS-MPC の各スロットで推奨される最大 NAT プール サイズは 256 IP アドレスです。各スロットは最大 3,000 万フローをサポートするため、または 1,500 万ポートが必要な 1,500 万の会話がサポートされるためです。合計 1,500 万個のポートがあり、256 個の IP アドレスがあり、各 IP アドレスのポート範囲は 1024~65535 です。
推奨値よりも大きなプールを使用でき、ポート・ブロック割り当て (PBA) 機能を使用する構成ではより大きなプールが必要であると予想できます。これは、PBA がプライベート IP アドレスにポートのブロックを割り当てることで、プール効率モデルが変更されるためです。
NATプールの設定の詳細については、 ネットワークアドレス変換用のアドレスとポートのプールの設定の概要を参照してください。
MS-DPC
MS-DPC で NAPT44 を変換タイプとして使用する場合、ピーク フロー レートに必要以上の NAT プールを設定しないでください。これは、貴重な IPv4 リソースを結びつける可能性があります。各会話には、2 つのフロー(順方向フローごとに 1 つのリバース フロー)が含まれています。それぞれの会話には 1 つのポートが必要で、プール内の各 IP アドレスのポート範囲は 1024~65535(64K)であるため、NAT プール のサイズを以下の数より大きくする必要はありません。
最大会話数/64,000
MS-DPC で NAPT44 を変換タイプとして使用する場合、64 を超えるアドレス(/26 ネットワーク)を持つ NAT プールを設定しないでください。
MS-DPC は最大 800 万フロー、または最大 400 万ポートを必要とする 400 万の会話をサポートするため、MS-DPC の最大 NAT プール サイズは 64 IP アドレスです。合計 400 万個のポートがあり、64 個の IP アドレスを持ち、各 IP アドレスのポート範囲は 1024~65535 です。APP、EIM、EIF が有効になっている場合、MS-DPC は最大 580 万フロー、または 290 万会話をサポートするため、最大 NAT プール サイズは以下になります。
NATプールの設定の詳細については、 ネットワークアドレス変換用のアドレスとポートのプールの設定の概要を参照してください。
NATのシステムロギングを必要な場合にのみ設定する
セキュアなポートブロック割り当て設定では、セッションごとにシステムログを有効にしないでください。
確定的な NAT 設定のシステム ロギングを有効にしません。
可能な場合は、サービスインターフェイスレベルではなく、サービスセットレベルでシステムロギングを有効にします。
実稼働ネットワークでは、常に外部システム ログ サーバーにログ メッセージを送信します。これにより、メッセージがローカルでログに記録された場合に発生するルーティングエンジンにCPU負荷を追加することを回避できます。
システム・ログ・クラスを指定して、関心のあるアプリケーション・クラスへのロギングを制限します。
NAT ルール条件内でシステム ロギングを設定する場合、ステートフル ファイアウォール ルールを使用して、NAT ルール条件に達するトラフィックを制限します。
システム ログ メッセージは、セッションの作成と削除の頻度によって、サービス カードのパフォーマンスに悪影響を及ぼす可能性があります。サービス カードによって作成されたすべてのシステム ログ メッセージにはサービス カードでの CPU 処理が必要です。システム ログ メッセージ自体が MX シリーズ ルーターを介して送信されるトラフィックを構成し、外部のログ サーバーに到達するためのユーザー トラフィックと競合します。
セキュアなポートブロック割り当てにより、ブロックとブロックサイズを把握し、各ユーザーに割り当てられたポートを導き出すことができるため、セッションごとにログを設定する必要がなくなります。
決定的 NAT では、ポート割り当てに関するすべての情報を数学的に推測できるため、ログを記録する必要がなくなります。
次の例では、NAT イベントへのロギングを制限し、外部ログ サーバー 203.0.113.4 にログ メッセージを送信します。
[edit services service-set S-SET-1] class { nat-logs; } syslog { host 203.0.113.4; }
NAT ルール条件内でシステム ロギングを設定すると、NAT ルール条件に入るすべてのトラフィックがログを生成し、過剰なロギングが発生する可能性があります。その結果、ログレート制限に達し、必要なログが失われる可能性があります。
NATのシステムロギングの設定の詳細については、 NATセッションログの設定を参照してください。
欠落している IP フラグメントの影響を制限する
NAT用に設定されたサービスインターフェイスでは、以下を設定することで、欠落しているフラグメントまたは遅延フラグメントの影響を制限します。
パケットの最大フラグメント数
欠落しているフラグメントの最大待機時間
NAT用に設定されたサービスカードが受信したIPフラグメントは、到着時にバッファリングされます。これにより、パケットがNATによって処理される前に、パケットが完全に再構築されたパケットの整合性チェックが可能になります。欠落または遅延したフラグメントは、内部バッファがフルになるまですでに受信したフラグメントが保持され、フラッシュアウトされ、CPU使用率のオーバーヘッドが発生し、トラフィック転送が減少する可能性があります。
パケットが持つ最大フラグメント数を設定し、欠落しているフラグメントの待機時間を制限することで、内部バッファがフルになる可能性が低下します。
次の例では、フラグメントの最大数を 10 に設定し、最大待機時間を 3 秒に設定します。
[edit interfaces ms-0/0/0] services-options { fragment-limit 10; reassembly-timeout 3; }
パケット ルーティング ループが発生しやすい設定を使用しない
目的のトラフィックのみがサービスカードに到達し、サービスセットNATルールによって処理されるようにすることで、パケットルーティングループを防止します。以下を実行できます。
可能な場合は NAT ルールの下で送信元アドレス範囲を設定します。
ネクストホップスタイルのサービスセットでNATルールでサービスを提供するトラフィックのみを受け入れるファイアウォールフィルターを設定します。
パケット転送エンジンとサービスカードの間でパケットループが発生すると、サービスカードのCPU使用率が持続的に高くなります。パケットループは、サービスカードが予期しないプライベートソースネットワークからトラフィックを受信することで発生する可能性があります。予期しないトラフィックを NAT によって処理するとピンホールが作成され、EIF の場合は多くのピンホールが作成される可能性があります。これらのピンホールは、リターン トラフィック ルートがサービス カードを経由して戻ると、ルーティング ループを引き起こします。
以下の例では、198.51.100.0/24 からのトラフィックのみが、ネクストホップ サービス セットの内部インターフェイスであるサービス インターフェイス ms-1/0/0 に到達することを許可するファイアウォール フィルターを示しています。
[edit firewall filter to_be_serviced] term 1 { from } address { } 198.51.100.0/24; } then accept; } term 2 { then disard; } [edit interfaces ms-1/0/0] unit 1 { family intet { filter { output to_be_serviced; } } service-domain inside; }
ファイアウォールフィルターの設定の詳細については、 ルーティングポリシー、ファイアウォールフィルター、およびトラフィックポリサーユーザーガイドを参照してください。
以下の例では、198.51.100.0/24 からのトラフィックのみを処理する NAT ルールを示しています(他のトラフィックはサービス インターフェイスに到達しますが、処理されません)。
[edit services nat] rule rule_1 { match-direction input; term t1 { from { source-address { 198.51.100.0/24; } } then { translated { source-pool pool1; translation-type { napt-44; } } } } }
NAT ルールの設定の詳細については、 ネットワーク アドレス変換ルールの概要を参照してください。
非アクティブタイムアウト
NAT セッション マッピングをメモリに残し、デフォルトの NAT 非アクティブ タイムアウト(30 秒)よりも長く保持する必要があるユーザー定義アプリケーションに対してのみ、非アクティブタイムアウトを設定します。たとえば、HTTP または HTTPS バンキング アプリケーションでは、ユーザーがデータを入力する必要があるため、30 秒以上の非アクティブが必要になる場合があります。
既存の非アクティブタイムアウトに変更を加える前に、ピーク時に以下のコマンドを数回実行してください。次に、変更を行った後にコマンドを実行し、変更がNATリソースのMXシリーズルーターやメモリのサービスカードに不足されていないことを確認します。
次の例では、HTTPS および HTTP アプリケーションの非アクティブタイムアウトが 1800 秒に設定されていることを示しています。
[edit applications] application https { inactivity-timeout 1800; destination-port 443; protocol tcp; } application http { inactivity-timeout 1800; destination-port 443; protocol tcp; }
ユーザー定義アプリケーションの設定の詳細については、「 アプリケーションプロパティの設定」を参照してください。
すべてのトラフィックに対して、非アクティブなタイムアウトを高く設定するリスクを評価する必要があります。一部のユーザー定義アプリケーションでは、デフォルトのNAT非アクティブタイムアウトが30秒と低すぎる場合があります。ただし、タイムアウト値を高すぎるとNATリソースが結びつく可能性があります。たとえば、高い非アクティブタイムアウト値を設定すると、作成からわずか数分で非アクティブな TCP セッションを結び付けることができます。TCP セッションがクライアントまたはサーバーによって FIN または RST によって完全に閉じられない場合、セッションはメモリ内に座り、タイムアウト値が期限切れになるまで割り当てられた NAT リソースを結び付けます。
すべてのUDPやTCPポートに影響を与えるより高い非アクティブタイムアウトを設定するのは危険です。特にDNSなどのUDPトラフィックでは危険です。TCPとは異なり、UDPはタイムアウト以外にセッションを終了する方法がないため、すべてのUDPセッションは完全な非アクティブタイムアウト値でアクティブなままになります。
以下の例は、すべてのTCPおよびUDPトラフィックに対して高い非アクティブタイムアウト値を設定するため、推奨される設定 ではありません 。
[edit applications] application UDP-All { protocol UDP; source-port 1-65535; inactivity-timeout 3600; } application TCP-All { protocol TCP; source-port 1-65535; inactivity-timeout 3600; }
非アクティブタイムアウト値は、具体的には推奨されません。適切な非アクティブタイムアウト値は、以下を含むいくつかの要因に依存します。
エンドユーザーのネットワークで使用されるアプリケーション
たとえば、以下の Apple サービスでは、非アクティブタイムアウトが 60 分必要とされています。これには、長い接続ライフタイムが必要です。
Apple Push Services:インバウンド TCP ポート 5223
Exchange Active Sync:インバウンド TCP ポート 443
MobileMe:インバウンド TCP ポート 5222 および 5223
GI NATデバイスやエンタープライズエッジルーターなど、NATソリューションの使用方法
NAT プールの大きい
ピーク負荷時に各サービス カードが受信するトラフィック量
利用可能なメモリの量
フロー制御でダンプを有効にする
実稼働ネットワークで NAT トラフィックを処理するすべてのサービス カードに対して、dump-on-flow-control オプションを有効にします。このオプションは、サービスカードがロックアップされた場合を検出し、ジュニパーネットワークスが分析できるコアダンプを書き込んでカードがロックアップした理由を判断し、再起動してサービスカードを復旧します。
MS-MIC および MS-MPC では、ルーティング エンジンからサービス カードに制御トラフィックを送信するために使用される pc- インターフェイスで dump-on-flow-control オプションを設定します。次の例は、サービス インターフェイスが ms-2/1/0 の場合の設定を示しています。
[edit interfaces pc-2/1/0] multiservice-options { flow-control-options { dump-on-flow-control; } }
MS-DPC の場合、sp-インターフェイスで dump-on-flow 制御オプションを設定します。以下の例は、サービスインターフェイスがsp-2/1/0の場合の設定を示しています。
[edit interfaces sp-2/1/0] multiservice-options { flow-control-options { dump-on-flow-control; } }
「」も参照
limit-ports-per-address
ステートメントがサポートされています。