Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

決定論的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)。

アルゴリズムの使用:以下の設定を想定します。

前方翻訳

  1. Pr_Offset = Pr_Prefix – Base_Pr_Prefix

  2. Pr_Port_Offset = Pr_Offset * Block_Size

  3. Rounded_Port_Range_Per_IP = ceil[(Nr_Addr_PR_Prefix/Nr_Addr_PU_Prefix)] * Block_Size

  4. Pu_Prefix = Base_Public_Prefix + フロア(Pr_Port_Offset / Rounded_Port_Range_Per_IP)

  5. Pu_Start_Port = Pu_Port_Range_Start +(Pr_Port_Offset % Rounded_Port_Range_Per_IP)

サンプル設定を使用し、10.1.1.250:5000をソースとするサブスクライバーフローを想定します。

  1. Pr_Offset = 10.1.1.250 – 10.1.0.1 = 505

  2. Pr_Port_Offset = 505 × 249 = 125,745

  3. Rounded_Port_Range_Per_IP = ceil[(65, 533/254)] * 249 = 259 * 249 = 64,491

  4. Pu_Prefix = 32.32.32.1 + フロア(125,745 /64,491) = 32.32.32.1 +1 =32.32.32.2

  5. 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 は、ランダム割り当てが指定されているため、その範囲内のポートのいずれかをランダムに割り当てます。

逆変換

  1. Pu_Offset = Pu_Prefix – Base_Pu_Prefix

  2. Pu_Port_Offset = (Pu_Offset * Rounded_Port_Range_Per_IP) + (Pu_Actual_Port – Pu_Port_Range_Start)

  3. Subscriber_IP = Base_Pr_Prefix + フロア(Pu_Port_Offset / Block_Size)

逆変換は次のように決定されます。32.32.32.2:62278に戻るフローがあるとします。

  1. Pu_Offset = 32.32.32.2 – 32.32.32.1 = 1

  2. Pu_Port_Offset = (1 * 64,491) + (62,280 - 1024) = 125,747

  3. 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 に示します。

表 1: 決定論的 NAPT コミット制約

制限

エラー メッセージ

決定論的 NAT ブロックの総数は、設定された句アドレス以上 from である必要があります。つまり、Rounded_Port_Range_Per_IP値は 64,512 以下である必要があります。

NAT プール内のアドレスとポート ブロックの組み合わせが、'from' 句のアドレス数より少なくなっています。

IPv6 アドレスは、決定論的 NAT プール/from 句では使用しないでください。

変換タイプが決定論的NAPT44のプールp1内の無効なIPアドレス

または

v4アドレス範囲で設定された範囲がすでに存在します

from同じ決定論的 NAT プールが複数の条件/ルールで使用される場合、句アドレスは同じである必要があります。複数の条件/ルールで同じ決定論的 NAT プールを使用する場合は、1 つのfrom句アドレス/範囲のみを指定する必要があります。

変換タイプの決定論的napt44では、プールが複数のルールまたは用語で共有されている場合、同じ「送信元」アドレス/範囲を設定する必要があります

この句には from 、少なくとも 1 つの送信元アドレスが必要です。

変換タイプの決定論的napt44では、少なくとも1つの「差出人」以外のアドレス/範囲を設定する必要があります。エラー: 構成のチェックアウトに失敗しました

句のアドレスのエントリfrom間にアドレスのexcept重複があってはなりません。

「除く」エントリ間の「from」句内の重複するアドレス

決定的 NAPT に使用される NAT プール内のアドレスは、他の NAT プール内のアドレスと重複してはなりません。

NAT プール det-nat-pool1 が、サービス セット sset_det-NAT で使用される det-nat-pool と重複しています エラー: 構成のチェックアウトに失敗しました

決定論的 NAT プールは、他の変換タイプと併用できません。また、決定論的 NAT プールは、決定論的 NAPT44 および決定論的 NAPT64 NAT ルールの両方で使用することはできません。

決定論的NATプールは、他の変換タイプと併用できません

決定論的 NAPT44 は、決定論的ポートブロック割り当て設定のソース プールを使用する必要があります。

決定論的 NAPT44 は、決定論的ポートブロック割り当て設定のソース プールを使用する必要があります

が設定されている場合 address-allocation round-robin 、コミットすると、変換タイプの決定論的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 プールを設定するには、次の手順に従います。

  1. [edit services nat pool poolname]階層レベルで、プールを作成します。
  2. 範囲の上限と下限、または範囲を説明するアドレス プレフィックスを指定して、変換するアドレスの範囲を定義します。

    または

  3. 自動ポート割り当てを設定するには、順次割り当てまたはランダム割り当てを指定します。
    メモ:

    Junos OS リリース 14.2R1 以降、sequentialポートの順次割り当てを設定できるオプションが導入されました。sequential階層レベルで ステートメント[edit services nat pool nat-pool-name]で使用できる port automatic オプションrandom-allocationと は、相互に排他的です。順次割り当てのオプションとrandom-allocationポートのランダム委任のオプションを含めることができますsequential。デフォルトでは、ポートの順次割り当ては、 階層レベルで ステートメント[edit services nat pool nat-pool- name]のみport automaticを含める場合に行われます。

    Junos OS リリース 14.2R1 より前のリリースでは、 階層レベルで オプション[edit services nat pool nat-pool-name port automatic]を使用してauto、自動シーケンシャル ポート割り当てを設定します。

  4. 割り当てるポートの範囲を設定するには、ポートの下限値と上限値を指定します。自動ポート割り当てを設定しない場合は、ポートの範囲を設定する必要があります。
    メモ:

    割り当てるポートの範囲を指定した場合、この automatic ステートメントは無視されます。

  5. 決定論的なポートブロック割り当てを設定します。 ブロックサイズ を指定するか、デフォルト値の512を受け入れます。

    また、NAT プールの使用時に、NAT ルールの送信元アドレス範囲の最低アドレスと最高アドレス(ネットワーク アドレスとブロードキャスト アドレス)を変換するかどうかを指定する include-boundary-addresses こともできます。送信元アドレスのプレフィックスが /32 の場合、最小アドレスと最高アドレスが自動的に変換されます。

    例えば:

    メモ:

    deterministic-port-block-allocation設定変更を有効にするには、以下のnat poolオプションのいずれかを変更するたびにサービスPICを再起動する必要があります。

    • address または address-range

    • port range

    • port deterministic-port-block-allocation block-size

決定論的NAPTのNATルールの設定

決定的NAPTのNATルールを設定するには、次の手順に従います。

  1. NATルール名を設定します。
  2. NAT ルールの一致方向を入力として設定します。
  3. NAT ルールによって変換されるアドレスを指定します。

    1 つのアドレスを指定するには:

    アドレスの範囲を指定するには:

  4. 変換されたトラフィックのアドレスを含むNATプールを指定します。
  5. 変換タイプを決定論的 NAPT44 または決定論的 NAPT64 として設定します。

決定論的 NAT 用のサービス セットの設定

サービス セットを確定的 NAPT 用に構成するには、次のようにします。

  1. サービス・セットを定義します。
  2. 単一のサービス インターフェイスを必要とするインターフェイス サービス、または内部および外部のサービス インターフェイスを必要とするネクストホップ サービスのいずれかを設定します。

    または

  3. サービス セットで使用する NAT ルールまたはルールセットを指定します。

変更履歴テーブル

機能のサポートは、使用しているプラットフォームとリリースによって決まります。 機能エクスプローラー を使用して、機能がプラットフォームでサポートされているかどうかを判断します。

リリース
説明
17.4R1
Junos OS Release 17.4R1以降、MS-MPCおよびMS-MICで確定的NAPT64がサポートされています。
17.4R1
Junos OS Release 17.4R1以降、MS-MPCおよびMS-MICで確定的NAPT64がサポートされています。
17.3R1
Junos OSリリース17.3R1以降、MS-MPCおよびMS-MICで決定論的NAPT 44がサポートされています
17.3R1
Junos OSリリース17.3R1以降、MS-MPCおよびMS-MICで決定論的NAPT44がサポートされています
14.2R1
Junos OS リリース 14.2R1 以降、 sequential ポートの順次割り当てを設定できるオプションが導入されました。