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(火星)
191.255.0.0/16(火星人)
192.0.0.0/24(火星人)
223.255.255.0/24(火星人)
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を設定する場合、
[edit services nat pool pool-name]階層レベルで設定するaddressプレフィックスサイズは、[edit services nat rule rule-name term term-name from]階層レベルで設定したsource-addressプレフィックス範囲よりも大きくなければなりません。また、source-addressプレフィックス範囲は、poolステートメント内の単一のサブネットまたはIPv4またはIPv6アドレスの範囲にマッピングする必要があります。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アドレスやプレフィックスをターゲットとするその他の機能など、ルーター設定内の他の場所の転送パス機能に影響を与える可能性があります。
NATの設定もルーティングプロトコルの動作に影響を与える可能性があります。これは、ルーティングプロトコルパケットがアダプティブサービス(AS)またはマルチサービスPICを通過する際に、プロトコルピアリング、ネイバー、インターフェイスアドレスが変更される可能性があるためです。
関連項目
ネットワークアドレス変換用のアドレスとポートのプールの設定の概要
NATプールの設定
poolステートメントを使用して、ネットワークアドレス変換(NAT)に使用するアドレス(またはプレフィックス)、アドレス範囲、ポートを定義できます。情報を設定するには、[edit services nat]階層レベルでpoolステートメントを含めます。
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 アドレス範囲を指定できます。単一のプール内で最大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)が送信元ポートをアウトバウンド接続に割り当てる際に、パケット送信元ポートの範囲またはパリティを保持するように設定できます。[edit services nat pool poolname port]階層レベルにpreserve-rangeおよびpreserve-parity設定ステートメントを含めることで、NATプール定義でプリプリブパリティとプリプリブレンジオプションを設定することができます。
範囲の保持とパリティの保持は、MS-DPCを搭載したMXシリーズルーター、およびMS-100、MS-400、MS-500マルチサービスPICを搭載したM Seriesルーターでサポートされています。Junos OSリリース15.1R1以降では、MS-MPCおよびMS-MICを搭載したMXシリーズルーターで、範囲の保持とパリティの保持がサポートされています。
範囲を保持—RFC 4787、 ユニキャストUDPのネットワークアドレス変換(NAT)動作要件では、0〜1023、および1024〜65,535の2つの範囲が定義されています。
preserve-rangeノブが設定されており、着信ポートがこれらの範囲のいずれかに該当する場合、CGNはその範囲からのみポートを割り当てます。ただし、範囲内に使用可能なポートがない場合、ポート割り当てリクエストは失敗し、そのセッションは作成されません。障害はカウンターとシステムロギングに反映されますが、Internet Control Message Protocol(ICMP)メッセージは生成されません。このノブが設定されていない場合、着信ポートを含むポート範囲に関係なく、設定されたポート範囲に基づいて割り当てが行われます。例外は、helloなどの特別なゾーンを持つ一部のアプリケーションレベルゲートウェイ(ALG)です。パリティーの保持—
preserve-parityノブが設定されている場合、CGNは着信ポートと同じ偶数または奇数のパリティを持つポートを割り当てます。受信ポート番号が奇数または偶数の場合、発信ポート番号も奇数または偶数になります。目的のパリティのポート番号が利用できない場合、ポート割り当て要求は失敗し、セッションは作成されず、パケットは破棄されます。
プールを設定せずに宛先プレフィックスと送信元プレフィックスを指定する
プールを設定せずに、NATで使用される宛先または送信元プレフィックスを直接指定できます。
情報を設定するには、[edit services nat]階層レベルでruleステートメントを含めます。
[edit services nat] rule rule-name { term term-name { then { translated { destination-prefix prefix; } } } }
ネットワークアドレス変換ルールの概要
NATルールを設定するには、[edit services nat]階層レベルでrulerule-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ステートメントを含める必要があります。一致を適用する場所を設定するには、[edit services nat rule rule-name]階層レベルでmatch-directionステートメントを含めます。
[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 を設定するには、ファイアウォール フィルターを設定するのと同じ方法で、宛先アドレス、宛先アドレスの範囲、送信元アドレス、または送信元アドレスの範囲を一致条件として使用できます。詳細については、 『ルーティングポリシー、ファイアウォールフィルター、およびトラフィックポリサーユーザーガイド』を参照してください。
または、[edit policy-options]階層レベルでprefix-listステートメントを含め、NATルールにdestination-prefix-listまたはsource-prefix-listのいずれかのステートメントを含めることで、送信元または宛先プレフィックスのリストを指定することができます。例については、「例:ステートフルファイアウォールルールの設定」を参照してください。
NATルールのthenステートメントのtranslation-typeステートメントがstateful-nat-64に設定されている場合、fromステートメントのdestination-address-rangeまたはdestination-prefix-listで指定された範囲は、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ルール内で([edit services nat rule rule-name term term-name then translated]階層レベルにaddress-poolingステートメントを含めることで)有効にされていますが、これは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マルチサービスPICを搭載したM Seriesルーターでサポートされています。no-translationステートメントは、Junos OSリリース15.1R1以降、MS-MPCおよびMS-MICを搭載したMXシリーズルーターでサポートされています。system logステートメントを使用すると、システムログ機能にアラートを記録できます。destination-pool、destination-prefix、source-pool、およびsource-prefixステートメントは、[edit services nat]階層レベルにpoolステートメントを含めることで定義するアドレッシング情報を指定します。詳細については、「ネットワークアドレス変換の概要のためのアドレスとポートのプールの設定」を参照してください。translation-typeステートメントは、送信元または宛先トラフィックに使用されるNATのタイプを指定します。オプションは、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です。
Junos OS Release 13.2以前では、以下の制限はCLIによって適用されませんでした。NATルールのthenステートメントのtranslation-typeステートメントがstateful-nat-64に設定されている場合、fromステートメントのdestination-address-rangeまたはdestination-prefix-listで指定された範囲は、thenステートメントのdestination-prefixステートメントで指定された範囲内である必要がありました。Junos OSリリース13.3R1以降、この制限が適用されます。
変換タイプの設定
translation-typeステートメントの9つのオプションの実装の詳細は次のとおりです。
basic-nat44—このオプションは、ポートマッピングなしに送信元IPアドレスの静的変換を実装します。ルールの一致条件でfrom source-addressステートメントを設定する必要があります。ステートメントで指定するアドレス範囲のサイズは、送信元プールと同じかそれより小さい必要があります。送信元プールまたは宛先プレフィックスを指定する必要があります。参照されるプールには複数のアドレスを含めることができますが、変換するポートを指定することはできません。注:インターフェイスサービスセットでは、サービスセットがインターフェイスに関連付けられていなくても、一致条件で指定された送信元アドレス宛のすべてのパケットが自動的にサービスPICにルーティングされます。
注:Junos OSリリース11.4R3以前は、単一のサービスセットで送信元NATプールのみを使用することができました。Junos OSリリース11.4R3以降のリリースでは、複数のサービスセットでソースNATプールを再利用できます。
basic-nat66—このオプションは、IPv6ネットワークでポートマッピングなしに送信元IPアドレスの静的変換を実装します。設定はbasic-nat44の実装と似ていますが、IPv6アドレスを使用します。MS-MPCまたはMS-MICを使用している場合は、
basic-nat66オプションは使用できません。basic-nat-pt—このオプションは、IPv6ホストが外部ドメインのIPv4ホストに対してセッションを発信する際に、またその逆のアドレスの変換を実装します。このオプションは、常にDNS ALGで実装されます。IPv4アドレスの送信元プールと宛先プールを定義する必要があります。1つのルールを設定し、2つの用語を定義する必要があります。両方のtermステートメントのfromステートメントでIPv6アドレスを設定します。ルール内の最初の条件のthenステートメントで、ソースプールと宛先プールの両方を参照し、dns-alg-prefixを設定します。同じルール内の2番目の条件のthenステートメントでソースプレフィックスを設定します。MS-MPCまたはMS-MICを使用している場合は、
basic-nat-ptオプションは使用できません。deterministic-napt44—このオプションは、宛先ポートとIPアドレスのブロックのアルゴリズムベースの割り当てを実装します。これにより、受信(送信元)IPアドレスとポートは常に同じ宛先IPアドレスとポートにマッピングされるため、アドレス変換ログが不要になります。deterministic-napt44を使用する場合は、[edit services nat pool poolname port]階層レベルでもdeterministic-port-block-allocationを使用する必要があります。deterministic-napt44オプションは、MS-DPCを搭載したMXシリーズルーター、およびMS-100、MS-400、MS-500マルチサービスPICを搭載したM Seriesルーターでサポートされています。MS-MPCまたはMS-MICでMXシリーズルーターを使用している場合のdeterministic-napt44オプションは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]階層レベルでは、destination-address値を1つだけ含める必要があります。それがプレフィックスの場合、サイズはプールプレフィックスサイズ以下である必要があります。プールは複数の条件またはルール間で共有できないため、値が一致しないプール内のアドレスは未使用のままとなります。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アドレスを使用します。MS-MPCまたはMS-MICを使用している場合は、
napt-66オプションは使用できません。napt-pt—このオプションは、送信元IPアドレスの動的アドレスとポート変換と宛先IPアドレスの静的変換を実装します。source-poolステートメントの名前を指定する必要があります。参照されるプールには、(NAPT用)ポート設定が含まれている必要があります。さらに、DNSトラフィック用と残りのトラフィック用の2つのルールを設定する必要があります。DNSトラフィック向けのルールはDNS ALGを有効にし、dns-alg-prefixステートメントを設定する必要があります。さらに、宛先IPv6アドレスをIPv4アドレスに変換するには、dns-alg-prefixステートメントで設定されたプレフィックスを2番目のルールで使用する必要があります。MS-MPCまたはMS-MICを使用している場合は、
napt-ptオプションは使用できません。stateful-nat464—このオプションは、送信元IPアドレスの464XLATプロバイダ側トランスレーター(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アドレスの静的な送信元変換と静的な宛先変換を実装し、送信元のbasic-nat44と宛先アドレスのdnat-44を組み合わせます。twice-basic-nat-44オプションは、MS-DPCとMS-100、MS-400、MS-500マルチサービスPICでサポートされています。twice-basic-nat-44オプションは、Junos OSリリース15.1R1以降のMS-MPCおよびMS-MICでサポートされています。twice-dynamic-nat-44—このオプションは、送信元のdynamic-nat44と宛先アドレスのdnat-44を組み合わせて、IPv4アドレスの送信元の動的変換と宛先の静的変換を実装します。twice-dynamic-nat-44オプションは、MS-DPCとMS-100、MS-400、MS-500マルチサービスPICでサポートされています。twice-dynamic-nat-44オプションは、Junos OSリリース15.1R1以降のMS-MPCおよびMS-MICでサポートされています。twice-napt-44—このオプションは、送信元のnapt-44と宛先アドレスのdnat-44を組み合わせて、IPv4アドレスの送信元NAPTと宛先静的変換を実装します。twice-napt-44オプションは、MS-DPCとMS-100、MS-400、MS-500マルチサービスPICでサポートされています。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シリーズルーターのIPsec機能のJunos VPN Site Secureスイートでは、ネットワークアドレス変換トラバーサル(NAT-T)はサポートされていません。Junos OSリリース14.2R7、15.1R5、16.1R2、17.1R1以降、NAT-Tに準拠していないIPsecピア間で、NAPT-44およびNAT64ルールを介してIKEv1およびIPsecパケットを渡すことがNATできます。ESPトンネルモードのみサポートされます。この機能は、MS-MPCおよびMS-MICでのみサポートされています。
NAPT-44またはNAT64のIPsecパススルーのNATルールを設定するには:
IKE ALGアプリケーションを設定します。 アプリケーションプロパティの設定を参照してください。
アプリケーションをアプリケーションセットに追加します。 アプリケーションセットの設定を参照してください。
NATプールを設定します。「 ネットワークアドレス変換の概要のためのアドレスとポートのプールの設定」を参照してください。
NATルールを設定します。
ルールの一致方向を設定します。 NATルールの一致方向の設定を参照してください。
一致条件の1つを、ステップ 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 マッピング上のインバウンド接続の数を制限するには、[edit services nat rule rule-name term term-name then translated secure-nat-mapping]階層レベルで eif-flow-limit number-of-flows ステートメントを組み込みます。
キャリアグレードのNAT実装:ベストプラクティス
次のトピックでは、キャリアグレードの NAT 実装のベスト プラクティスを紹介します。
- MS-DPCでAPPを使用する場合にラウンドロビンアドレス割り当てを使用する
- EIM 機能は、必要な場合にのみ使用してください
- 予想されるユーザーセッション数に基づいてポートブロック割り当てブロックサイズを定義
- 実行中のシステムでポートブロック割り当て設定を変更する場合の考慮事項
- 必要以上に大きい NAT プールを割り当てないでください
- 必要な場合にのみNATのシステムログを設定します
- IP フラグメントの欠落による影響を制限する
- パケットルーティングループが発生しやすい設定を使用しないでください
- 非アクティブタイムアウト
- フロー制御でダンプを有効にする
MS-DPCでAPPを使用する場合にラウンドロビンアドレス割り当てを使用する
MS-DPC を使用していて、NAT ルールでアドレス プーリング ペア(APP)を構成する場合は、NAT プールにラウンドロビン アドレス割り当てを使用する必要があります。
APP機能は、プライベートIPアドレスのすべてのNATセッションに対して、プライベートIPアドレスをNATプール内の同じパブリックIPアドレスにNATアドレスにマッピングします。
NATプールのシーケンシャルアドレス割り当てはMS-DPCのデフォルトであり、次のIPアドレスを割り当てる前にパブリックIPアドレスにすべてのポートを割り当てます。APPと併用して順次割り当てを行うと、複数のプライベートホストが同じパブリックIPアドレスにマッピングされ、その結果、NATプール内の残りのIPアドレスから他のポートをまだ使用できる一方で、パブリックIPアドレスのポートが急速に枯渇する可能性があります。
一方、ラウンドロビン割り当てでは、NATプール内の次のIPアドレスが変換が必要な次のプライベート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 を使用します。(IETF RFC 3424 IAB Considerations for Unilateral Self-Address Fixing (UNSAF) across ネットワークアドレス変換)を参照してください。
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ブロック)で処理できるプライベート加入者数となります。次に、 show services nat pool detail コマンドを使用してMXシリーズルーターを注意深く監視し、ブロックサイズを変更する必要があるかどうかを判断します。
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
MS-MICまたはMS-MPCでNAPT44を変換タイプとして使用する場合は、貴重なIPv4リソースを拘束するピークセッションレートに必要なサイズよりも大きいNATプールを設定しないでください。セッションとも呼ばれる各会話には、ingressフローとegressフローの2つのフローが含まれます。各会話には1つのポートが必要で、プール内の各IPアドレスには1024-65535のポート範囲(64K)があるため、NATプールサイズを次より大きくする必要はありません。
ピーク会話数/64K
MS-MICでNAPT44を変換タイプとして使用する場合、最大NATプールサイズを128アドレス(/25ネットワーク)にすることをお勧めします。
MS-MPCでNAPT44を変換タイプとして使用する場合、最大NATプールサイズを256アドレス(/24ネットワーク)にすることを推奨します。
MS-MICは最大1400万のフロー、つまり700万の会話をサポートし、700万のポートを必要とするため、MS-MICにNAPT-44を使用する場合の推奨される最大NATプールサイズは128IPアドレスです。128個のIPアドレスで合計700万個のポートが利用可能で、各IPアドレスのポート範囲は1024-65535です。
各スロットは最大 3,000 万のフロー、つまり 1,500 万の会話をサポートしており、これには 1,500 万個のポートが必要なため、NAPT-44 を使用する場合の MS-MPC の各スロットの最大推奨 NAT プール サイズは 256 IP アドレスです。合計 1,500 万個のポートが 256 個の IP アドレスで利用可能で、各 IP アドレスのポート範囲は 1024-65535 です。
推奨値よりも大きなプールを使用できます。また、ポートブロック割り当て(PBA)機能を使用する構成には、より大きなプールが必要であることが予想されます。これは、PBAがポートのブロックをプライベートIPアドレスに割り当て、プール効率モデルを変更するためです。
NATプールの設定の詳細については、「 ネットワークアドレス変換用アドレスとポートのプールの設定の概要」を参照してください。
MS-DPC
MS-DPCでNAPT44を変換タイプとして使用する場合、貴重なIPv4リソースを拘束するピークフローレートに必要なサイズよりも大きいNATプールを設定しないでください。各会話には 2 つのフローが含まれます (フォワード フローごとに 1 つのリバース フロー)。各会話には1つのポートが必要で、プール内の各IPアドレスには1024-65535のポート範囲(64K)があるため、NATプールサイズを次より大きくする必要はありません。
ピーク会話数/64K
MS-DPCでNAPT44を変換タイプとして使用する場合は、64を超えるアドレス(/26ネットワーク)を持つNATプールを設定しないでください。
MS-DPC は最大 800 万のフロー、つまり 400 万の会話をサポートし、最大 400 万個のポートを必要とするため、MS-DPC の最大 NAT プール サイズは 64 IP アドレスです。64のIPアドレスで合計400万個のポートが利用可能で、各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 非アクティブタイムアウトである 30 秒よりも長く、NAT セッションマッピングをメモリに保持する必要があるユーザー定義アプリケーションに対してのみ設定します。例えば、HTTPまたはHTTPSバンキングアプリケーションでは、ユーザーがデータを入力する必要があるため、30秒以上の非アクティブ状態が必要になる場合があります。
既存の非アクティブタイムアウトを変更する前に、ピーク時に以下のコマンドを数回実行してください。次に、変更を加えた後にコマンドを実行し、変更によってMXシリーズルーターのNATリソースやサービスカードのメモリが不足していないことを確認します。
次の例では、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 は、長い接続寿命を必要とする次の Apple サービスには 60 分の非アクティブタイムアウトが必要であると述べています。
Apple プッシュ サービス: インバウンド TCP ポート 5223
Exchange Active Sync: インバウンド TCP ポート 443
MobileMe: インバウンドTCPポート5222および5223
NATソリューションの使用方法(Gi 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 ステートメントがサポートされます。