このページの目次
決定論的NAT
決定論的 NAPT の概要
決定論的 NAPT44 を設定することで、元の送信元 IPv4 アドレスとポートが常に同じ NAT 後の IPv4 アドレスとポート範囲にマッピングされ、特定の変換された外部 IPv4 アドレスとポートのリバース マッピングが常に同じ内部 IPv4 アドレスにマッピングされるようにすることができます。決定論的 NAPT64 を設定することで、元の送信元 IPv6 アドレスとポートが常に同じ NAT 後の IPv4 アドレスとポート範囲にマッピングされ、特定の変換された外部 IPv4 アドレスとポートのリバースマッピングが常に同じ内部 IPv6 アドレスにマッピングされるようにすることができます。決定論的NAPTは、宛先ポートのブロックのアルゴリズムベースの割り当てを使用します。
決定論的NAPT44は、MS-DPCを搭載したMXシリーズルーター、およびMS-100、MS-400、MS-500マルチサービスPICを搭載したMシリーズルーターでサポートされています。Junos OSリリース17.3R1、Junos OSリリース14.2R7以降の14.2リリース、Junos OSリリース15.1R3以降の15.1リリースでは、MS-MPCおよびMS-MICで決定論的NAPT 44がサポートされています。Junos OS Release 17.4R1以降、MS-MPCおよびMS-MICで確定的NAPT64がサポートされています。
決定論的 NAPT ルールの条項の from
送信元アドレスに /32 のプレフィックスがない場合、 を設定し include-boundary-addresses
ない限り、送信元アドレス範囲内のネットワーク アドレスとブロードキャスト アドレスは変換されません。
決定論的 NAPT の設定方法の詳細については、 決定論的 NAPT の設定を参照してください。
決定論的NAPTの利点
IP アドレスは常に同じ外部 IP アドレスとポート範囲にマップされ、特定の変換された外部 IP アドレスとポートのリバース マッピングは常に同じ内部 IP アドレスにマップされるため、アドレス変換のログ記録が不要になります。
決定論的NAPTアルゴリズムの理解
決定論的 NAPT の実装の有効性は、サブスクライバー要件の分析によって異なります。指定するブロック サイズは、該当する NAT ルールで指定された句の範囲 from
から、各着信サブスクライバ アドレスで使用可能になるポートの数を示します。割り当てアルゴリズムは、オフセット値を計算して、送信 IP アドレスとポートを決定します。逆のアルゴリズムを使用して、送信元の加入者アドレスを導き出します。
ログを使用せずに加入者を追跡するには、ISPはリバースアルゴリズムを使用して、変換されたアドレスから加入者(送信元)アドレスを導き出す必要があります。
次の変数は、順計算 (プライベート サブスクライバ IP アドレスからパブリック IP アドレス) と逆計算 (パブリック IP アドレスからプライベート サブスクライバ IP アドレス) で使用されます。
Pr_Prefix—NAT以前のIPv4加入者アドレス。
Pr_Port - NAT前のプロトコルポート。
Block_Size - 各Pr_Prefixで使用可能に設定されたポートの数。
block-size
が 0 に設定されている場合、ブロック サイズの計算方法は次のように計算されます。ブロックサイズ = int(64512/ceil[(Nr_Addr_PR_Prefix/Nr_Addr_PU_Prefix)])
ここで、64512 はパブリック IP アドレスごとに使用可能な最大ポート範囲です。
Base_PR_Prefix:NATルールの条項内で
from
最初に使用可能なプレNAT前IPv4加入者アドレス。Base_PU_Prefix—NATプールで設定された最初の使用可能なNAT後IPv4加入者アドレス。
Pu_Port_Range_Start—最初に使用可能なNAT後のポート。これは1024です。
Pr_Offset—NATルールの句で
from
、最初に使用可能なNAT前IPv4加入者アドレスから変換されるNAT前IPアドレスのオフセット。PR_Offset = Pr_Prefix – Base_Pr_Prefix。PR_Port_Offset—NAT 前 IP アドレスのオフセットにブロック サイズを乗算したもの。PR_Port_Offset = Pr_Offset * Block_Size。
Pu_Prefix—特定のPr_PrefixのNAT後のアドレス。
Pu_Start_Port - 特定のPr_Prefixからのフローの NAT 後開始ポート
Pu_Actual_Port - リバース フローで見られる NAT 後のポート。
Nr_Addr_PR_Prefix — NATルールの
from
句節で使用可能なNAT前IPv4加入者アドレスの数。Nr_Addr_PU_Prefix — NATプールで設定された使用可能なポストNAT後IPv4アドレスの数。
Rounded_Port_Range_Per_IP — 各ポストNATのIPアドレスで使用可能なポートの数。Rounded_Port_Range_Per_IP = ceil[(Nr_Addr_PR_Prefix/Nr_Addr_PU_Prefix)] * Block_Size.
Pu_Offset - 使用可能な最初の NAT 後アドレスからの NAT 後 IP アドレスのオフセット。Pu_Offset = Pu_Prefix – Base_Pu_Prefix。
Pu_Port_Offset:ポストNATIPアドレスのオフセットと各ポストNATIPアドレスで使用可能なポート数の積に追加された1024からのポストNATポートのオフセット。Pu_Port_Offset = (Pu_Offset * Rounded_Port_Range_Per_IP) + (Pu_Actual_Port – Pu_Port_Range_Start)。
アルゴリズムの使用:以下の設定を想定します。
services { nat { pool src-pool { address-range low 32.32.32.1 high 32.32.32.254; port { automatic { random-allocation; } deterministic-block-allocation { block-size 249; } } } rule det-nat { match-direction input; term t1 { from { source-address { 10.1.0.0/16; } } then { translated { source-pool src-pool; translation-type { deterministic-napt44; } } } }
前方翻訳
Pr_Offset = Pr_Prefix – Base_Pr_Prefix
Pr_Port_Offset = Pr_Offset * Block_Size
Rounded_Port_Range_Per_IP = ceil[(Nr_Addr_PR_Prefix/Nr_Addr_PU_Prefix)] * Block_Size
Pu_Prefix = Base_Public_Prefix + フロア(Pr_Port_Offset / Rounded_Port_Range_Per_IP)
Pu_Start_Port = Pu_Port_Range_Start +(Pr_Port_Offset % Rounded_Port_Range_Per_IP)
サンプル設定を使用し、10.1.1.250:5000をソースとするサブスクライバーフローを想定します。
Pr_Offset = 10.1.1.250 – 10.1.0.1 = 505
Pr_Port_Offset = 505 × 249 = 125,745
Rounded_Port_Range_Per_IP = ceil[(65, 533/254)] * 249 = 259 * 249 = 64,491
Pu_Prefix = 32.32.32.1 + フロア(125,745 /64,491) = 32.32.32.1 +1 =32.32.32.2
Pu_Start_Port = 1,024 + (125,745 % 64,491) = 62278
10.1.1.250 は 32.32.32.2 に変換されます。
開始ポートは 62278 です。設定されたブロックサイズに基づいて、加入者が使用できるポートは 249 個あります。使用可能なポート範囲は、ポート 62278 から 62526 (両端を含む) です。
特定のフロー 10.1.1.250:5000 は、ランダム割り当てが指定されているため、その範囲内のポートのいずれかをランダムに割り当てます。
逆変換
Pu_Offset = Pu_Prefix – Base_Pu_Prefix
Pu_Port_Offset = (Pu_Offset * Rounded_Port_Range_Per_IP) + (Pu_Actual_Port – Pu_Port_Range_Start)
Subscriber_IP = Base_Pr_Prefix + フロア(Pu_Port_Offset / Block_Size)
逆変換は次のように決定されます。32.32.32.2:62278に戻るフローがあるとします。
Pu_Offset = 32.32.32.2 – 32.32.32.1 = 1
Pu_Port_Offset = (1 * 64,491) + (62,280 - 1024) = 125,747
Subscriber_IP = 10.1.0.1 + フロア(125,747 / 249) = 10.1.0.1 + 505 = 10.1.1.250
メモ:逆変換では、元のプライベートIPアドレスのみを導き出すことができ、使用中の元のポートは導き出すことができません。これは、法執行機関の要件としては十分にきめ細かいものです。
決定論的 NAPT を構成した場合、 および show services nat deterministic-nat nat-port-block
コマンドを使用して、show services nat deterministic-nat internal-host
順方向マッピングと逆方向マッピングを表示できます。ただし、決定論的ポートブロック割り当てブロックサイズまたはNATルールのfrom
句を再設定すると、マッピングが変更されます。マッピングに関する履歴情報を提供するために、以前の構成の特定のマッピングを表示できるスクリプトを記述することをお勧めします。
決定論的 NAPT の制限
決定論的 NAPT を構成する場合は、以下の制約事項に注意する必要があります。制限に違反すると、コミットエラーが発生します。制約事項とそのエラー・メッセージを 表 1 に示します。
制限 |
エラー メッセージ |
---|---|
決定論的 NAT ブロックの総数は、設定された句アドレス以上 |
NAT プール内のアドレスとポート ブロックの組み合わせが、'from' 句のアドレス数より少なくなっています。 |
IPv6 アドレスは、決定論的 NAT プール/from 句では使用しないでください。 |
変換タイプが決定論的NAPT44のプールp1内の無効なIPアドレス または v4アドレス範囲で設定された範囲がすでに存在します |
|
変換タイプの決定論的napt44では、プールが複数のルールまたは用語で共有されている場合、同じ「送信元」アドレス/範囲を設定する必要があります |
この句には |
変換タイプの決定論的napt44では、少なくとも1つの「差出人」以外のアドレス/範囲を設定する必要があります。エラー: 構成のチェックアウトに失敗しました |
句のアドレスのエントリ |
「除く」エントリ間の「from」句内の重複するアドレス |
決定的 NAPT に使用される NAT プール内のアドレスは、他の NAT プール内のアドレスと重複してはなりません。 |
NAT プール det-nat-pool1 が、サービス セット sset_det-NAT で使用される det-nat-pool と重複しています エラー: 構成のチェックアウトに失敗しました |
決定論的 NAT プールは、他の変換タイプと併用できません。また、決定論的 NAT プールは、決定論的 NAPT44 および決定論的 NAPT64 NAT ルールの両方で使用することはできません。 |
決定論的NATプールは、他の変換タイプと併用できません |
決定論的 NAPT44 は、決定論的ポートブロック割り当て設定のソース プールを使用する必要があります。 |
決定論的 NAPT44 は、決定論的ポートブロック割り当て設定のソース プールを使用する必要があります |
が設定されている場合 |
アドレス割り当てのラウンドロビンは、変換タイプの決定論的napt44では必要ありません |
決定的NATプールに割り当てられるIPアドレスの総数は、224 (16777216)以下である必要があります。 |
決定論的NAPT44変換のプール内のアドレス数は、最大で16777216(2^24)に制限される |
決定論的 NAPT の設定
決定論的NAPT44は、MS-DPCを搭載したMXシリーズルーター、およびMS-100、MS-400、MS-500マルチサービスPICを搭載したMシリーズルーターでサポートされています。Junos OSリリース17.3R1、Junos OSリリース14.2R7以降の14.2リリース、Junos OSリリース15.1R3以降の15.1リリース以降では、MS-MPCおよびMS-MICで決定論的NAPT44がサポートされています。Junos OS Release 17.4R1以降、MS-MPCおよびMS-MICで確定的NAPT64がサポートされています。
決定論的 NAPT を設定するには、次の手順を実行します。
決定論的NAPT用のNATプールの設定
決定論的 NAPT 用に NAT プールを設定するには、次の手順に従います。
関連項目
決定論的NAPTのNATルールの設定
決定的NAPTのNATルールを設定するには、次の手順に従います。
決定論的 NAT 用のサービス セットの設定
サービス セットを確定的 NAPT 用に構成するには、次のようにします。
変更履歴テーブル
機能のサポートは、使用しているプラットフォームとリリースによって決まります。 機能エクスプローラー を使用して、機能がプラットフォームでサポートされているかどうかを判断します。
sequential
ポートの順次割り当てを設定できるオプションが導入されました。