Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

端口控制协议

端口控制协议概述

端口控制协议 (PCP) 提供了一种控制上游设备(如 NAT44 和防火墙设备)转发传入数据包的方法,以及一种减少应用程序激活流量的方法。MS-DPC、MS-100、MS-400 和 MS-500 多服务 PIC 支持 PCP。从 Junos OS 17.4R1 版开始,MS-MPC 和 MS-MIC 也支持 NAPT44 的 PCP。从 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 旨在同时在运营商级 NAT (CGN) 和小型 NAT(例如住宅 NAT)的环境中实施。PCP 使主机能够在 NAT 设备后面(包括在其 ISP 运行的 CGN 后面)长时间(如网络摄像头)或短时间(例如,在玩游戏或打电话时)操作服务器。PCP 使应用程序能够创建从外部 IP 地址和端口到内部 IP 地址和端口的映射。这些映射是发往位于 NAT 或防火墙后面的计算机的成功入站通信所必需的。创建传入连接的映射后,必须通知远程计算机传入连接的 IP 地址和端口。这通常以特定于应用程序的方式完成。

Junos OS 支持 PCP 版本 2 和版本 1。

PCP 由以下组件组成:

  • PCP 客户端 - 向 PCP 服务器发出 PCP 请求以获取和控制资源的主机或网关。

  • PCP 服务器 — 通常是接收和处理 PCP 请求的 CGN 网关或主机代管服务器

Junos OS 支持配置 PCP 服务器,以便使用 NAPT44 功能(如端口转发和端口块分配)映射流。可以从以下源处理流:

  • 包含直接从用户设备接收的 PCP 请求的流量,如图 1 所示。

    图 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 版开始,支持端口控制协议 (PCP) 版本 2,符合 RFC 6887。PCP 提供了一种控制上游设备(如 NAT44)和防火墙设备转发传入数据包的方法,以及一种减少应用程序保持活动流量的方法。PCP 版本 2 支持随机数身份验证。PCP 允许应用程序创建从外部 IP 地址和端口到内部 IP 地址和端口的映射。nonce有效负载可防止重播攻击,除非显式禁用,否则默认情况下会发送。

版本 2 映射请求(用于刷新或删除)的客户端随机数验证要求保留在原始映射请求中收到的导致创建 PCP 映射的随机数。还将保留允许创建映射的初始请求的版本。保存随机数和版本参数的这种行为表示每个 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 - 端口控制协议 (PCP) 中定义的最终标准版本,消息编码更改为版本 2,并添加了随机随机有效负载以根据需要对等方和映射请求进行身份验证。版本 1 不会解码符合版本 2 格式的消息,并且不支持随机数身份验证。在实字网络环境中,随着客户端设备 (CPE) 设备越来越多地仅支持版本 2,因此需要解析和发送版本 2 消息。保持与支持 V1 的 CPE 设备的向后兼容性(版本协商是标准的一部分),并在使用 v2 消息时对请求随机数有效负载数据包进行身份验证。

命令 show services pcp statistics 的输出包含 PCP 不支持的版本字段,该字段将递增以指示版本不是 1 或 2。引入了一个新字段 PCP 请求随机数与现有映射不匹配,以指示由于随机数有效负载与映射中记录的有效负载不匹配(身份验证失败)而被忽略的 PCP 版本 2 请求数。如果正在使用版本 2,则使用客户端随机数进行身份验证。

配置端口控制协议

本文介绍如何配置端口控制协议(PCP)。MS-DPC、MS-100、MS-400 和 MS-500 多服务 PIC 支持 PCP。从 Junos OS 17.4R1 版开始,MS-MPC 和 MS-MIC 也支持 NAPT44 的 PCP。从 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 版开始,用于 CGNAT 服务的 MX-SPC3 安全服务卡支持 PCP。

执行以下配置任务:

配置 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 选项。当 PCP 客户端请求不可用的特定 IP 地址/端口时,该 prefer-failure 选项请求生成错误消息,而不是从 NAT 池中分配另一个可用地址。如果未指定,NAPT44 prefer-failure 将根据配置的 NAT 选项从 NAT 池中分配可用地址/端口。
  7. (可选)- 指定用于映射的 NAT 池。
    注意:

    如果未显式指定用于映射的 NAT 池,Junos OS 将根据源 IP、源端口和协议执行部分规则匹配,Junos OS 将使用为第一个匹配规则配置的 NAT 池为 PCP 分配映射。

    必须使用显式配置才能使用多个 NAT 池。

    对于 MX-SPC3 安全服务卡和下一代服务,该 nat-options 语句仅支持将一个池名称附加到 PCP 服务器。

  8. (可选)- 配置每个客户端的最大映射数。默认值为 32,最大值为 128。

配置 PCP 规则

PCP 规则具有与所有服务集规则相同的基本选项:

  • 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. 如果您将 PCP 与 IPv4 到 IPv4 NAT 或 DS-Lite 配合使用,请配置端点无关映射 (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-rule 的和 softwire-rule.

系统日志消息配置

提供了新的系统日志类(配置选项) pcp-logs来控制 PCP 日志的生成。它提供以下级别的日志记录:

  • protocol- 与映射创建、删除相关的所有日志都包含在此日志记录级别。

  • protocol-error—–所有与协议错误相关的日志(例如映射刷新失败、PCP 查找失败、映射创建失败)。都包含在此日志记录级别中。

  • system-error- 内存和基础结构错误包含在此日志记录级别中。

监视端口控制协议操作

您可以使用以下操作命令监视端口控制协议 (PCP) 操作:

  • 对于 MS-MPC,请使用 show services nat mappings pcp 命令。

    注意:

    Junos OS 19.3R2 版中的新一代服务不支持 PCP

  • 对于 MS-MPC,请使用 show services nat mappings endpoint-independent 命令。

    对于下一代服务,请使用 show services nat source mappings endpoint-independent 命令。

  • show services pcp statistics protocol

以下是这些命令输出的示例。

示例:使用 NAPT44 配置端口控制协议

注意:

MS-DPC、MS-100、MS-400 和 MS-500 多服务 PIC 支持 PCP。从 Junos OS 17.4R1 版开始,MS-MPC 和 MS-MIC 也支持 NATP44 的 PCP。

要求

硬件要求

  • 具有 PCP 客户端的 UE。

  • 具有 MS-DPC 服务 PIC 的 MX 3D 路由器。

  • 软件要求

  • Junos OS 13.2

  • 第 3 层服务包

概述

ISP 希望使具有 PCP 客户端的 UE 能够在不超时的情况下保持与服务器的连接。PCP 客户端针对所需连接的类型和持续时间生成 PCP 请求。连接持续时间可能较长,例如使用网络摄像头的应用程序,也可能持续时间较短,例如在线游戏。MX 3D 路由器提供用于解释 PCP 客户端请求和 NAPT44 的 PCP 服务器。 图 3 显示了此示例的基本拓扑。

图 3:带有 NAPT44 PCP with NAPT44 的 PCP

PCP 配置

CLI 快速配置

要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改任何必要的详细信息以匹配您的网络配置,然后将命令复制并粘贴到 [edit] 层次结构级别的 CLI 中。

机箱配置

分步过程

要使用第 3 层服务包配置服务 PIC(FPC 2 插槽 0),请执行以下操作:

  1. 转至 [编辑机箱] 层级。

  2. 配置第 3 层服务包。

结果

接口配置

分步过程

  1. 配置服务 MS-DPC。

  2. 配置用于 NAT 和 PCP 服务的面向客户的接口。

  3. 配置面向互联网的接口。

结果

NAT 配置

分步过程

  1. [edit services nat]进入层次结构。

  2. 配置名为 的 pcp-poolNAT 池。

  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 版开始,用于 CGNAT 服务的 MX-SPC3 安全服务卡支持 PCP。
18.2R1
从 Junos OS 18.2R1 版开始,MS-MPC 和 MS-MIC 上的 PCP 支持 DS-Lite。
18.2R1
17.4R1
从 Junos OS 17.4R1 版开始,MS-MPC 和 MS-MIC 也支持 NAPT44 的 PCP。
17.4R1
从 Junos OS 17.4R1 版开始,MS-MPC 和 MS-MIC 也支持 NAPT44 的 PCP。
17.4R1
从 Junos OS 17.4R1 版开始,MS-MPC 和 MS-MIC 也支持 NATP44 的 PCP。
15.1
从 Junos OS 15.1 版开始,支持端口控制协议 (PCP) 版本 2,符合 RFC 6887。