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 也支持 PCP for NAPT44。从 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 支持使用 NAPT44 功能(如端口转发和端口块分配)配置 PCP 服务器以映射流。可以从以下来源处理流量:

  • 包含直接从用户设备接收的 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 地址和端口的映射。随机数有效负载可防止重播攻击,并且默认发送,除非显式禁用。

版本 2 映射请求(用于刷新或删除)的客户端随机数验证要求保留在导致创建 PCP 映射的原始映射请求中收到的随机数。用于创建映射的初始请求的版本也将保留。这种保存随机数和版本参数的行为表示每个 PCP 映射使用 13 个字节。对于单个请求的映射,当与系统的当前内存使用量相匹配时,存储空间的这种轻微增加并不显著(考虑到与之一起创建的与端点无关的映射 (EIM) 和与端点无关的过滤 (EIF)。在客户部署中,PCP 会导致 EIM 和 EIF 映射仅占所有此类映射的一小部分。

在 Junos 15.1 版之前,服务 PIC 根据 PCP 草案版本 22(采用版本 1 消息编码)支持瞻博网络路由器上的 PCP 服务器。随着 PCP 从 端口控制协议 (PCP) draft-ietf-pcp-base-22(2012 年 7 月到期) 中定义的草案版本改进为 RFC 6887 中定义的最终标准版本 -- 端口控制协议 (PCP),消息编码更改为版本 2,并添加了随机随机数有效负载,以便根据需要对对等方和映射请求进行身份验证。版本 1 无法解码符合版本 2 格式的消息,并且不支持随机数身份验证。在实际网络环境中,由于客户端设备 (CPE) 设备越来越多地仅支持版本 2,因此需要解析和发送版本 2 消息。保持与支持版本 1 的 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 也支持 PCP for NAPT44。从 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-party 并且 prefer-failure.需要第三方选项才能启用 PCP 客户端的第三方请求。DS-Lite 需要该 third-party 选项。当 PCP 客户端请求不可用的特定 IP 地址/端口时,该 prefer-failure 选项请求生成错误消息,而不是从 NAT 池中分配另一个可用地址。如果 prefer-failure 未指定,NAPT44 将根据配置的 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)。
    注意:

    如果未使用 PCP 为 IPv4 到 IPv4 NAT 或 DS-Lite 配置 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.

SYSLOG 消息配置

提供了新的系统日志类,配置选项, 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 也支持 PCP for NATP44。

要求

硬件要求

  • 带有 PCP 客户端的 UE。

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

  • 软件要求

  • Junos OS 13.2

  • 第 3 层服务包

概述

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

图 3:带有 NAPT44 PCP with NAPT44 的 PCP

PCP 配置

CLI 快速配置

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

机箱配置

分步过程

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

  1. 转到 [edit chassis] 层次结构级别。

  2. 配置第 3 层服务包。

结果

接口配置

分步过程

  1. 配置服务 MS-DPC。

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

  3. 配置面向 Internet 的接口。

结果

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 版开始,用于 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 也支持 PCP for NAPT44。
17.4R1
从 Junos OS 17.4R1 版开始,MS-MPC 和 MS-MIC 也支持 PCP for NAPT44。
17.4R1
从 Junos OS 17.4R1 版开始,MS-MPC 和 MS-MIC 也支持 PCP for NATP44。
15.1
从 Junos OS 15.1 版开始,支持端口控制协议 (PCP) 版本 2,这符合 RFC 6887。