Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

ポート制御プロトコル

ポート制御プロトコルの概要

ポート制御プロトコル(PCP)は、NAT44やファイアウォールデバイスなどのアップストリームデバイスによる受信パケットの転送を制御する方法と、アプリケーションのキープアライブトラフィックを削減する方法を提供します。PCPは、MS-DPC、MS-100、MS-400、MS-500マルチサービスPICでサポートされています。Junos OSリリース17.4R1以降、PCP for NAPT44はMS-MPCおよびMS-MICでもサポートされています。Junos 20.2R1以降、次世代サービスではCGNAT DS-Liteサービス用のPCPがサポートされています。Junos OSリリース18.2R1以降、MS-MPCおよびMS-MIC上のPCPはDS-Liteをサポートします。Junos OSリリース18.1以前のリリースでは、MS-MPCおよびMS-MIC上のPCPはDS-Liteをサポートしていません。

PCP は、CGN(キャリアグレード NAT)と小規模 NAT(住宅 NAT など)の両方のコンテキストで実装されるように設計されています。PCPを使用すると、ISPが運用するCGNの背後を含む、NATデバイスの背後で長時間(Webカメラの場合など)または短時間(ゲームのプレイ中や通話中など)サーバーを操作できます。PCPを使用すると、アプリケーションは外部IPアドレスとポートから内部IPアドレスとポートへのマッピングを作成できます。これらのマッピングは、NATまたはファイアウォールの背後にあるマシン宛ての受信通信を成功させるために必要です。受信接続のマッピングが作成された後、受信接続の IP アドレスとポートについてリモート コンピューターに通知する必要があります。これは通常、アプリケーション固有の方法で行われます。

Junos OSは、PCPバージョン2およびバージョン1をサポートしています。

PCP は、以下のコンポーネントで構成されています。

  • PCPクライアント—リソースを取得して制御するためにPCPサーバーにPCPリクエストを発行するホストまたはゲートウェイ。

  • PCPサーバー—通常、PCPリクエストを受信して処理するCGNゲートウェイまたはコロケーションサーバー

Junos OSでは、ポートフォワーディングやポートブロック割り当てなどのNAPT44機能を使用して、フローをマッピングするためのPCPサーバーを設定できます。フローは、以下のソースから処理できます。

  • 図1に示すように、ユーザー機器から直接受信したPCPリクエストを含むトラフィック。

    図1:基本的なPCP NAPT44トポロジー Basic PCP NAPT44 Topology
  • DS-Lite ソフトワイヤ イニシエーター(B4)として機能するルーターによって追加された PCP 要求を含むトラフィックのマッピング。 DS-Liteプレーンモードと呼ばれるこのモードを 図2に示します。

    図2:DS-LiteプレーンモードPCP with DS-Lite Plain Modeを備えたPCP
注:

Junos OSは、PCP発のトラフィックに対する決定論的なポートブロック割り当てをサポートしていません。

ポート制御プロトコルのメリット

多くのNAT対応アプリケーションは、セッションがNATデバイスによってタイムアウトされないように、アプリケーションレベルのメッセージを頻繁に送信します。PCPは以下の目的で使用されます。

  • これらの NAT キープアライブ メッセージの頻度を減らします

  • 加入者のアクセスネットワークの帯域幅を削減する

  • サーバーへのトラフィックを削減

  • モバイルデバイスのバッテリー消費量を削減

ポート制御プロトコルバージョン2

Junos OSリリース15.1以降、RFC 6887に準拠したポート制御プロトコル(PCP)バージョン2がサポートされます。PCPは、NAT44などのアップストリームデバイスやファイアウォールデバイスによる受信パケットの転送を制御する方法と、アプリケーションのキープアライブトラフィックを削減する方法を提供します。PCPバージョン2は、ナンス認証をサポートしています。PCPを使用すると、アプリケーションは外部IPアドレスとポートから内部IPアドレスとポートへのマッピングを作成できます。ノンスペイロードはリプレイ攻撃を防ぎ、明示的に無効にしない限り、デフォルトで送信されます。

バージョン2のマップ要求(更新または削除用)のクライアントnonce検証では、PCPマッピングの作成の原因となる元のマップ要求で受信したnonceが保持されている必要があります。マッピングの作成を可能にする初期リクエストのバージョンも保持されます。nonceパラメーターとバージョンパラメーターを保存するこの動作は、PCPマッピングごとに13バイトが使用されることを示しています。このストレージ領域のわずかな増加は、単一の要求されたマッピングに対するシステムの現在のメモリ使用量と一致した場合、有意ではありません(それに伴って作成されるエンドポイント独立マッピング(EIM)とエンドポイント独立フィルタリング(EIF)を考慮します)。顧客デプロイメントでは、PCP によって EIM マッピングと EIF マッピングがそのようなマッピングのほんの一部を占めるようにします。

Junosリリース15.1まで、サービスPICは、バージョン1のメッセージエンコーディングを備えたPCPドラフトバージョン22に従って、ジュニパーネットワークスルーター上のPCPサーバーをサポートします。PCPが、 ポート制御プロトコル(PCP)draft-ietf-pcp-base-22(2012年7月有効期限) で定義されたドラフトバージョンから、RFC 6887で定義された最終的な標準バージョンに改良されたことにより、必要に応じてピアとマッピングリクエストを認証するためのランダムナンスペイロードが追加され、メッセージエンコーディングがバージョン2に変更されました。バージョン1は、バージョン2形式に準拠したメッセージをデコードせず、ナンス認証はサポートされていません。実際のネットワーク環境では、カスタマー構内機器(CPE)デバイスがバージョン2のみをサポートするようになったため、バージョン2メッセージを解析して送信する必要があります。バージョン1をサポートするCPEデバイスとの下位互換性は維持され(バージョンネゴシエーションは標準の一部です)、v2メッセージの使用中にリクエストナンスペイロードパケットを認証します。

show services pcp statisticsコマンドの出力には、PCPサポートされていないバージョンフィールドが含まれており、バージョンが1または2でないときはいつでもインクリメントされます。新しいフィールド「PCPリクエストnonceは既存のマッピングに一致しません」が導入され、nonsペイロードがマッピングに記録されたものと一致しなかったために無視されたPCPバージョン2リクエストの数を示します(認証に失敗しました)。バージョン2が使用されている場合、クライアントナンスが認証に使用されます。

ポート制御プロトコルの設定

このトピックでは、ポート制御プロトコル(PCP)の設定方法について説明します。PCPは、MS-DPC、MS-100、MS-400、MS-500マルチサービスPICでサポートされています。Junos OSリリース17.4R1以降、PCP for NAPT44はMS-MPCおよびMS-MICでもサポートされています。Junos OSリリース18.2R1以降、MS-MPCおよびMS-MIC上のPCPはDS-Liteをサポートします。Junos OSリリース18.1以前のリリースでは、MS-MPCおよびMS-MIC上のPCPはDS-Liteをサポートしていません。Junos OSリリース20.2R1以降、PCPはCGNATサービスのMX-SPC3セキュリティサービスカードでサポートされています。

以下の設定タスクを実行します。

PCP サーバー オプションの設定

  1. PCPサーバー名を指定します。
  2. サーバーのIPv4またはIPv6アドレスを設定します。PCP DS-Liteの場合、 ipv6-address がAFTR(アドレスファミリー移行ルーターまたはソフトワイヤコンセントレータ)のアドレスと一致する必要があります。
    注:

    Junos OSリリース18.2R1以降、MS-MPCおよびMS-MIC上のPCPはDS-Liteをサポートします。Junos OSリリース18.1以前のリリースでは、MS-MPCおよびMS-MIC上のPCPはDS-Liteをサポートしていません。

    または

  3. PCP DS-Liteの場合、DS-Liteソフトワイヤーコンセントレータ設定の名前を入力します。
  4. サーバーの最小および最大マッピングライフタイムを指定します。
  5. 短ライフタイムエラーまたは長ライフタイムエラーを生成する時間制限を指定します。
  6. (オプション)—指定されたPCPサーバーでPCPオプションを有効にします。third-partyprefer-failureのオプションがあります。PCPクライアントによるサードパーティの要求を有効にするには、サードパーティオプションが必要です。DS-Liteには third-party オプションが必要です。 prefer-failure オプションは、PCPクライアントが使用できない特定のIPアドレス/ポートを要求した場合、NATプールから別の使用可能なアドレスを割り当てるのではなく、エラーメッセージの生成を要求します。 prefer-failure が指定されていない場合、NAPT44は、設定されたNATオプションに基づいて、NATプールから使用可能なアドレス/ポートを割り当てます。
  7. (オプション)—マッピングに使用するNATプールを指定します。
    注:

    マッピングするNATプールを明示的に指定しない場合、Junos OSは送信元IP、送信元ポート、プロトコルに基づいて部分的なルール一致を実行し、Junos OSは最初の一致ルールに設定されたNATプールを使用してPCPにマッピングを割り当てます。

    複数のNATプールを使用するには、明示的な設定 を使用する必要があります

    MX-SPC3セキュリティサービスカードと次世代サービスの場合、 nat-options ステートメントはPCPサーバーにアタッチするプール名を1つだけサポートします。

  8. (オプション)—クライアントごとのマッピングの最大数を設定します。デフォルトは32、最大値は128です。

PCPルールの設定

PCPルールには、すべてのサービスセットルールと同じ基本オプションがあります。

  • 1つのルールに複数のアプリケーションを許可する term オプション。

    次世代サービス向けにMX-SPC3セキュリティサービスカードを実行する場合、用語は必要ありません。

  • ルールの対象となるトラフィックを識別する from オプション。

  • 実行するアクションを特定する then オプション。PCPルールの場合、このオプションは、選択したトラフィックを処理するpcpサーバーを識別します

  1. [edit services pcp rule rule-name]階層レベルに移動し、match-direction入力を指定します。
  2. [edit services pcp rule rule-name term term-name]階層レベルに移動し、用語名を指定します。

    次世代サービス用MX-SPC3セキュリティサービスカードを実行している場合、この手順は必要ありません。

  3. (オプション)—ルールによって処理するために選択されるトラフィックをフィルタリングする from オプションを提供します。 from オプションを省略すると、サービスセットのサービスインターフェイスによって処理されるすべてのトラフィックがルールの対象となります。 [edit services pcp rule rule-name term term-name from] 階層レベルでは、以下のオプションを使用できます。
    application-sets set-name

    アプリケーションセットのトラフィックは、PCPルールによって処理されます。

    次世代サービス用MX-SPC3セキュリティサービスカードを実行している場合、この手順は必要ありません。

    applications [ application-name ]

    アプリケーションのトラフィックは、PCPルールによって処理されます。

    次世代サービス用のMX-SPC3セキュリティサービスカードを実行している場合、このオプションは必要ありません。

    destination-address address <except>

    宛先アドレスまたはプレフィックス向けのトラフィックは、PCPルールによって処理されます。 except オプションを含めると、宛先アドレスまたはプレフィックスのトラフィックはPCPルールによって処理 されません

    destination-address-range high maximum-value low minimum-value <except>

    宛先アドレス範囲のトラフィックは、PCPルールによって処理されます。 except オプションを含めると、宛先アドレス範囲のトラフィックはPCPルールによって処理 されません

    destination-port high maximum-value low minimum-value

    宛先ポート範囲のトラフィックは、PCPルールによって処理されます。

    destination-prefix-list list-name <except>

    プレフィックスリスト内の宛先アドレスへのトラフィックは、PCPルールによって処理されます。 except オプションを含めると、プレフィックスリスト内の宛先アドレスのトラフィックはPCPルールによって処理 されません

    source-address address <except>

    送信元アドレスまたはプレフィックスからのトラフィックは、PCPルールによって処理されます。 except オプションを含めると、送信元アドレスまたはプレフィックスからのトラフィックはPCPルールによって処理 されません

    source-address-range high maximum-value low minimum-value <except>

    送信元アドレス範囲からのトラフィックは、PCPルールによって処理されます。 except オプションを含める場合、送信元アドレス範囲からのトラフィックはPCPルールによって処理 されません

    source-prefix-list list-name <except>

    プレフィックスリスト内の送信元アドレスからのトラフィックは、PCPルールによって処理されます。 except オプションを含めると、プレフィックスリスト内の送信元アドレスからのトラフィックはPCPルールによって処理 されません

  4. thenオプションを設定して、ターゲットPCPサーバーを特定します。

NATルールの設定

NATルールを設定するには:

  1. NATルール名と一致方向を設定します。
  2. 使用するNATプールを指定します。
  3. 変換タイプを設定します。
  4. IPv4 から IPv4 への NAT または DS-Lite で PCP を使用している場合は、エンドポイント独立マッピング(EIM)とエンドポイント独立フィルタリング(EIF)を設定します。
    注:

    IPv4 から IPv4 への NAT または DS-Lite の PCP で EIM および EIF を設定しない場合、PCP マッピングは作成されません。

PCPを適用するためのサービスセットの設定

PCPを使用するには、 pcp-rule rule-name オプションにルール名(またはルール名のリストの名前)を指定する必要があります。

  1. [edit services service-set service-set-name階層レベルに移動します。
  2. これが新しいサービス セットである場合は、インターフェイス情報や適用されるその他のルールを含む、基本的なサービス セット情報を提供します。
  3. 指定されたPCPサーバーへのトラフィック送信に使用されるPCPルールまたはルールリストの名前を指定します。
注:

また、サービスセットは、必要な nat-rulesoftwire-ruleを特定する必要があります。

SYSLOGメッセージの設定

PCPログ生成を制御するために、新しいsyslogクラス、設定オプション、 pcp-logsが提供されました。以下のレベルのログ記録を提供します。

  • protocol—マッピングの作成、削除に関連するすべてのログがこのレベルのログに含まれます。

  • protocol-error—–すべてのプロトコル エラー関連のログ(マッピングの更新に失敗した、PCPルックアップに失敗した、マッピングの作成に失敗したなど)。は、このレベルのログに含まれます。

  • system-error—メモリとインフラストラクチャのエラーは、このレベルのログに含まれます。

ポート制御プロトコル動作の監視

以下の運用コマンドを使用して、ポート制御プロトコル(PCP)の動作を監視できます。

  • MS-MPCの場合は、 show services nat mappings pcp コマンドを使用します。

    注:

    PCPは、Junos OSリリース19.3R2の次世代サービスではサポートされていません

  • MS-MPCの場合は、 show services nat mappings endpoint-independent コマンドを使用します。

    次世代サービスの場合は、 show services nat source mappings endpoint-independent コマンドを使用します。

  • show services pcp statistics protocol

以下に、これらのコマンドの出力例を示します。

例:NAPT44 を使用したポート制御プロトコルの設定

注:

PCPは、MS-DPC、MS-100、MS-400、MS-500マルチサービスPICでサポートされています。Junos OSリリース17.4R1以降、NATP44向けPCPはMS-MPCおよびMS-MICでもサポートされています。

要件

ハードウェア要件

  • PCP クライアントを使用した UE。

  • MS-DPCサービスPICを備えたMX 3Dルーター。

  • ソフトウェア要件

  • Junos OS 13.2

  • レイヤー3サービスパッケージ

概要

ISPは、PCPクライアントを持つUEがタイムアウトすることなくサーバーへの接続を維持できるようにしたいと考えています。PCP クライアントは、必要な接続のタイプと期間に対して PCP リクエストを生成します。接続時間は、Web カメラを使用するアプリケーションなど、長時間の場合もあれば、オンライン ゲームなどの短い場合もあります。MX 3Dルーターは、PCPクライアントリクエストとNAPT44を解釈するPCPサーバーを提供します。 図3 は、この例の基本的なトポロジーを示しています。

図3:NAPT44PCP with NAPT44を用いたPCP

PCPの設定

CLIクイックコンフィグレーション

この例をすばやく設定するには、以下のコマンドをコピーしてテキストファイルに貼り付け、改行を削除して、ネットワーク構成に合わせて必要な詳細を変更し、[edit]階層レベルのCLIにコマンドをコピー&ペーストします。

シャーシ構成

ステップバイステップの手順

レイヤー 3 サービス パッケージでサービス PIC(FPC 2 スロット 0)を設定するには、次の手順に従います。

  1. [edit chassis]階層レベルに移動します。

  2. レイヤー3サービスパッケージを設定します。

結果

インターフェイス設定

ステップバイステップの手順

  1. サービスMS-DPCを設定します。

  2. NATおよびPCPサービスに使用する顧客向けインターフェイスを設定します。

  3. インターネットに接続するインターフェイスを設定します。

結果

NAT設定

ステップバイステップの手順

  1. [edit services nat]階層に移動します。

  2. pcp-poolというNATプールを設定します。

  3. pcp-ruleというNATルールを設定します。

結果

PCPの設定

ステップバイステップの手順

PCPサーバーとPCPルールのオプションを設定します。

  1. サーバーの edit services pcp 階層レベルに移動します pcp-s1

  2. PCP サーバーのオプションを設定します。

  3. PCPルールを作成します。

  4. PCPルールオプションを設定します。

結果

サービスセットの設定

ステップバイステップの手順

  1. edit services service-set階層レベルでサービスセットsset_0を作成します。

  2. サービスセットに関連付けられたNATルールを特定します。

  3. サービスセットに関連付けられたPCPルールを特定します。

  4. サービスセットに関連付けられたサービスインターフェイスを特定します。

結果

変更履歴テーブル

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

リリース
説明
20.2R1
Junos 20.2R1以降、次世代サービスではCGNAT DS-Liteサービス向けPCPがサポートされています。
20.2R1
Junos OSリリース20.2R1以降、PCPはCGNATサービスのMX-SPC3セキュリティサービスカードでサポートされています。
18.2R1
Junos OSリリース18.2R1以降、MS-MPCおよびMS-MIC上のPCPはDS-Liteをサポートします。
18.2R1
17.4R1
Junos OSリリース17.4R1以降、PCP for NAPT44はMS-MPCおよびMS-MICでもサポートされています。
17.4R1
Junos OSリリース17.4R1以降、PCP for NAPT44はMS-MPCおよびMS-MICでもサポートされています。
17.4R1
Junos OSリリース17.4R1以降、NATP44向けPCPはMS-MPCおよびMS-MICでもサポートされています。
15.1
Junos OSリリース15.1以降、RFC 6887に準拠したポート制御プロトコル(PCP)バージョン2がサポートされます。