このページの内容
決定論的 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 Seriesルーターでサポートされています。決定論的NAPT 44は、Junos OSリリース17.3R1以降、Junos OSリリース14.2R7以降の14.2リリース、およびJunos OSリリース15.1R3以降の15.1リリース以降のMS-MPCおよびMS-MICでサポートされています。Junos OSリリース17.4R1以降、決定論的NAPT64がMS-MPCおよびMS-MICでサポートされます。
決定論的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がゼロに設定されている場合、ブロックサイズの計算方法は次のように計算されます。ブロックサイズ = 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—1024からのポストNATポートのオフセットを、ポストNAT IPアドレスのオフセットと各ポストNAT IPアドレスで使用可能なポート数の積に追加します。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 internal-host および show services nat deterministic-nat nat-port-block コマンドを使用して、フォワードマッピングとリバースマッピングを表示できます。ただし、決定論的なポートブロック割り当てブロックサイズまたはNATルールの from 句を再設定すると、マッピングは変更されます。マッピングに関する履歴情報を提供するために、以前の設定の特定のマッピングを表示できるスクリプトを作成することをお勧めします。
決定論的NAPT制限
決定論的NAPTを設定する場合、以下の制限事項に注意する必要があります。制限に違反すると、コミットエラーが発生します。制限とそのエラーメッセージを 表1に示します。
制約事項 |
エラーメッセージ |
|---|---|
決定論的NATブロックの総数は、設定された |
NATプール内のアドレスとポートブロックの組み合わせの数が、「from」句のアドレス数より少ない |
IPv6アドレスは、決定論的なNATプール/from句で使用しないでください。 |
変換タイプdeterministic-napt44のプールp1の無効なIPアドレス または v4アドレス範囲で設定された範囲がすでに存在します |
|
translation-type deterministic-napt44では、プールが複数のルールまたは条件によって共有されている場合、同じ「送信元」アドレス/範囲を設定する必要があります |
|
translation-type deterministic-napt44では、少なくとも1つの非例外の「from」アドレス/範囲を設定する必要があります。エラー:設定のチェックアウトに失敗しました |
|
「except」エントリ間の「from」句の重複アドレス |
決定論的 NAPT に使用される NAT プール内のアドレスは、他の NAT プール内のアドレスと重複してはなりません。 |
NATプールdet-nat-pool1がサービスセットで使用されるdet-nat-poolと重複します sset_det-NATエラー:設定のチェックアウトに失敗しました |
決定論的 NAT プールは、他の変換タイプでは使用できません。さらに、決定論的 NAT プールは、決定論的 NAPT44 と決定論的 NAPT64 NAT ルールの両方で使用することはできません。 |
決定論的 NAT プールは、他の変換タイプでは使用できません |
決定論的NAPT44は、決定論的なポートブロック割り当て設定のソースプールを使用する必要があります。 |
決定論的NAPT44は、決定論的なポートブロック割り当て設定のソースプールを使用する必要があります |
|
アドレス割り当てのラウンドロビンは、translation-type deterministic-napt44では必要ありません |
決定論的NATプールに割り当てられるIPアドレスの総数は、224 (16777216)以下である必要があります。 |
deterministic-napt44変換を使用するプール内のアドレスの数は、最大で16777216(2^24)に制限されます。 |
決定論的NAPTの設定
決定論的NAPT44は、MS-DPCを搭載したMXシリーズルーターおよびMS-100、MS-400、MS-500マルチサービスPICを搭載したM Seriesルーターでサポートされています。決定論的NAPT44は、Junos OSリリース17.3R1以降、Junos OSリリース14.2R7以降の14.2リリース、およびJunos OSリリース15.1R3以降の15.1リリース以降のMS-MPCおよびMS-MICでサポートされています。Junos OSリリース17.4R1以降、決定論的NAPT64がMS-MPCおよびMS-MICでサポートされます。
決定論的なNAPTを設定するには、以下を実行します。
決定論的NAPTのためのNATプールの設定
決定論的NAPT用にNATプールを設定するには:
関連項目
決定論的NAPTのためのNATルールの設定
決定論的NAPTのNATルールを設定するには:
決定論的 NAT 用のサービス セットの設定
決定論的NAPT用にサービスセットを設定するには:
変更履歴テーブル
サポートされる機能は、使用しているプラットフォームとリリースによって決まります。 機能エクスプローラー を使用して、機能がお使いのプラットフォームでサポートされているかどうかを確認します。
sequential オプションが導入されました。