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 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)。

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

フォワードトランスレーショニング

  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 internal-host および show services nat deterministic-nat nat-port-block コマンドを使用して、フォワードマッピングとリバースマッピングを表示できます。ただし、決定論的なポートブロック割り当てブロックサイズまたはNATルールの from 句を再設定すると、マッピングは変更されます。マッピングに関する履歴情報を提供するために、以前の設定の特定のマッピングを表示できるスクリプトを作成することをお勧めします。

決定論的NAPT制限

決定論的NAPTを設定する場合、以下の制限事項に注意する必要があります。制限に違反すると、コミットエラーが発生します。制限とそのエラーメッセージを 表1に示します。

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

制約事項

エラーメッセージ

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

NATプール内のアドレスとポートブロックの組み合わせの数が、「from」句のアドレス数より少ない

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

変換タイプdeterministic-napt44のプールp1の無効なIPアドレス

または

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

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

translation-type deterministic-napt44では、プールが複数のルールまたは条件によって共有されている場合、同じ「送信元」アドレス/範囲を設定する必要があります

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

translation-type deterministic-napt44では、少なくとも1つの非例外の「from」アドレス/範囲を設定する必要があります。エラー:設定のチェックアウトに失敗しました

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

「except」エントリ間の「from」句の重複アドレス

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

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

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

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

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

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

address-allocation round-robinが設定されている場合、コミットすると、translation-type deterministic-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プールを設定するには:

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

    または

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

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

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