このページの目次
ポート制御プロトコルの概要
ポート制御プロトコル(PCP)は、NAT44 やファイアウォール デバイスなどのアップストリーム デバイスによる着信パケットの転送を制御する方法と、アプリケーションのキープアライブ トラフィックを削減する方法を提供します。PCPは、MS-DPC、MS-100、MS-400、およびMS-500マルチサービスPICでサポートされています。Junos OS Release 17.4R1以降、MS-MPCおよびMS-MICでもNAPT44のPCPがサポートされます。Junos 20.2R1 以降、次世代サービスでは CGNAT DS-Lite サービス向け PCP がサポートされます。Junos OS Release 18.2R1 以降、MS-MPC および MS-MIC 上の PCP は DS-Light をサポートします。Junos OS リリース 18.1 以前のリリースでは、MS-MPC および MS-MIC 上の PCP は DS-Lite をサポートしていません。
PCP は、キャリアグレード NAT (CGN) と小規模 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サーバーを設定できます。フローは、次のソースから処理できます。
PCPリクエストを含むトラフィックは、 図1に示すように、ユーザー機器から直接受信します。
図 1: 基本的なPCP NAPT44トポロジーDS-Liteソフトワイヤイニシエータ(B4)として機能するルーターによって追加されたPCP要求を含むトラフィックのマッピング。このモードは DS-Liteプレーン モードと呼ばれ、 図 2 に示します。
図2 : DS-Liteプレーンモード を使用した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 マップ要求 (更新または削除) のクライアント ナンス検証では、PCP マッピングを作成する原因となった元のマップ要求で受信した nonce が保持されている必要があります。マッピングを作成できる最初の要求のバージョンも保持されます。nonce パラメーターとバージョン パラメーターを保存するこの動作は、PCP マッピングごとに 13 バイトが使用されることを示します。このストレージスペースのわずかな増加は、単一の要求されたマッピングに対するシステムの現在のメモリ使用量と一致する場合、重要ではありません(それとともに作成されるエンドポイント独立マッピング(EIM)およびエンドポイント依存フィルタリング(EIF)を考慮に入れます)。お客様のデプロイメントでは、PCP によって EIM および EIF マッピングがそのようなマッピングのごく一部を表すようになります。
Junos リリース 15.1 までは、サービスPICは、PCPドラフトバージョン22(バージョン1のメッセージエンコーディング)に従って、ジュニパーネットワークスのルーター上のPCPサーバーをサポートしています。PCP が Port Control Protocol (PCP) draft-ietf-pcp-base-22 (2012 年 7 月の有効期限 ) で定義されているドラフト バージョンから RFC 6887 -- Port Control Protocol(PCP)で定義されている最終的な標準バージョンに改良されたため、メッセージ エンコーディングは、ピアを認証し、必要に応じて要求をマップするためのランダムなノンス ペイロードを追加してバージョン 2 に変更されました。バージョン 1 は、バージョン 2 形式に準拠したメッセージをデコードせず、nonce 認証はサポートされていません。実際のネットワーク環境では、顧客宅内機器(CPE)デバイスがバージョン2のみをサポートするようになるため、バージョン2のメッセージを解析して送信する必要があります。バージョン 1 をサポートする CPE デバイスとの後方互換性が維持され(バージョン ネゴシエーションは標準の一部です)、v2 メッセージの使用中に要求ノンス ペイロード パケットを認証します。
コマンドの出力 show services pcp statistics
には、PCP unsupported version フィールドが含まれており、バージョンが 1 または 2 以外の場合を示すためにインクリメントされます。nonce ペイロードがマッピングに記録されたものと一致しなかった(認証に失敗した)ために無視された PCP バージョン 2 要求の数を示すために、新しいフィールド PCP 要求 nonce が既存のマッピングと一致しません が導入されました。バージョン 2 が使用されている場合は、クライアント nonce が認証に使用されます。