本站点使用Cookies,继续浏览表示您同意我们使用Cookies。 Cookies和隐私政策>

首页 信息速查 产品智能选型 IP知识百科

什么是PCEP?

PCEP(Path Computation Element Protocol)是IETF PCE(Path Computation Element)工作组定义的基于TCP的协议。它定义了一组消息和对象,用于管理PCEP会话,以及为多域流量工程LSP(TE LSP)请求和发送路径。PCEP为PCE给PCC的域外LSP执行路径计算提供了一种机制。PCEP交互包括PCC向PCE发送的LSP状态报告,以及PCE对LSP的托管和优化。

为什么需要PCEP?

在大型的多区域网络中,路径计算非常复杂。在某些场景下,为了完成路径计算,需要在控制器上部署特殊的计算组件,并需要不同区域中的节点之间协作。这使得网元在进行路径计算时效率低,还会降低网元本身的转发性能。

PCE最早是为了解决大型的多区域网络路径计算问题而被提出,通过PCE可以为TE计算跨域路径。如下图所示,PCEP网络包含如下3个部分:
  1. PCE(Path Computation Element,路径计算单元):PCE是能够基于网络拓扑信息计算满足约束的路径的部件。PCE可以部署在路由设备中,也可以部署在一个独立的服务器中。大多数时候,PCE和控制器是集成在一起的。
  2. PCC(Path Computation Client,路径计算客户端):PCC是请求路径计算单元执行路径计算的客户端应用程序。PCC向PCE发送路径请求,并接受PCE返回的路径计算结果。一般情况下,路由设备集成了PCC功能,可以认为路由设备就是PCC。
  3. PCEP(Path Computation Element Protocol,路径计算单元通信协议):PCEP是PCE和PCC、PCE和PCE之间的通信协议。
PCE架构
PCE架构

PCEP存在如下优势:

  • PCEP能够进行端到端的最优路径计算,使得承载的业务路径最优化;
  • PCEP能够进一步提高网络的带宽资源利用率,有利于用户对网络资源的优化利用,且部署维护更简单;
  • PCEP支持对TE网络拓扑信息和隧道约束进行集中配置和管理,有利于简化网络的运维。

PCEP有哪些概念?

PCEP消息

PCC与PCE之间通过交互PCEP消息完成会话建立、维护、路径计算和更新等。PCEP消息类型如下表所示:

表1-1 PCEP消息

消息名称

作用

Open

用于建立PCEP会话,描述PCEP能力信息

Keepalive

用于描述PCEP会话保活信息,用于维持PCEP会话保持活动状态

PCReq

由PCC发向PCE,用于请求算路

PCRep

用于PCE回复PCC的算路请求

PCRpt

由PCC发给PCE,用于报告LSP状态

PCUpd

由PCE发给PCC,用于更新LSP属性

PCInitiate

由PCE主动发给PCC,用于主动初始化路径

PCErr

用于通知PCEP对端请求不符合PCEP规范或条件错误

PCNtf

由PCE发给PCC,用于通告PCE状态

Close

用于关闭PCEP会话

每一个消息中可能会包含一个或多个Object(对象),用于描述特定的功能。

PCEP是怎么工作的?

首先进行PCE成员发现。成员发现完毕后,PCC与PCE 服务器之间会建立PCEP会话,以便进行相关的信息交互。当用户触发建立TE隧道时,Ingress节点作为PCC,将向PCE服务器发送路径计算请求,并等待PCE服务器返回计算结果。相较于IETF PCE,华为PCE支持对算路结果进行人工审核和设备自动审核。审核通过后,PCE服务器会将结果返回给PCC。客户端将根据结果建立LSP。

PCE成员发现

PCC在向PCE提交路径计算请求前需要发现一个可用的PCE,而PCE只是计算过程中的被动方,并不需要主动地去发现PCC。用户需要在PCC指定PCE的IP地址,PCC将根据此地址与PCE建立连接关系。用户可以为同一个PCC配置多个候选PCE服务器,PCC会根据优先级和源IP优选一个作为最终的算路服务器,首选优先级高的,如果优先级相同,则选择源IP地址小的。同时,其他的候选服务器会成为备份,如果算路服务器发生了故障,PCC会自动进行服务器的切换。

PCEP会话

PCC与PCE之间以及不同域的PCE之间将建立PCEP会话。会话建立完成后,PCC与PCE之间以及不同域的PCE之间将在此会话基础上,进行路径计算请求及结果的交互。

PCEP会话的建立流程如下图所示。

  1. PCC会主动向PCE服务器发起TCP请求,通过三次握手,建立TCP连接。
  2. PCC与PCE服务器之间会互相发送PCEP Open消息进行会话的初始化协商。协商成功后,双方会互发PCEP Keepalive消息表示接受对方会话参数,至此会话建立完毕。
PCEP会话建立
PCEP会话建立

PCEP会话的维护流程如下图所示。PCC和PCE服务器之间会周期性的发送Keepalive消息来维护PCEP会话,直至会话关闭为止,两者的发送是独立。任一方只要在固定周期内没有接收到对方的Keepalive消息,则认为会话中断。

PCEP会话维护
PCEP会话维护

PCEP通过Close消息来终止PCEP的会话,PCC或PCE服务器都可以作为终止会话的发起方。

PCEP应用

PCEP for MPLS TE

路径计算

PCE域内路径计算仅仅涉及PCC和PCE之间的信息交互。假定整网已经形成了一致的TEDB(Traffic Engineering Database)并且PCEP会话已经建立完毕,则PCE域内路径计算的简要流程如下图所示。详细流程描述请参见下表中的描述。
域内路径计算流程图
域内路径计算流程图
表1-2 域内路径计算流程

流程序号

说明

1

用户通过配置触发Ingress(即为PCC)请求建立LSP。

2

PCC向PCE服务器发送PCEP Report消息,请求PCE进行LSP托管及路径计算。

3

PCE服务器收到Report消息后,保存LSP信息到LSP DB。根据TEDB和本地策略触发路径计算或全局优化算路。

4

PCE服务器计算完毕后,如果计算结果审核通过,则PCE服务器通过Update消息将计算结果返回给PCC。

5

PCC按照计算结果发起RSVP信令,进行路径建立。

为了进一步提高网络的带宽资源利用率和简化网络的运维,出现了Stateful PCE及LSP重优化以及TE网络信息的集中配置和管理技术。

Stateful PCE及LSP重优化

MPLS TE的目标是合理分配网络资源,提高网络的带宽利用率。但是现有的TE LSP的建立机制并不能完美的达到这个目的。以下图为例,假设各链路的带宽都为10G,A-E的LSP所需带宽为6G,C-D的8G,C-G的为4G,且A-E的LSP的建立优先级高于其他两条LSP。在没有Stateful PCE情况下,由于C-D之间的链路小于12G且C-D的LSP优先级低于A-E的LSP,因此三条LSP的建立情况会是(a)中的情况。很明显,仅有三条LSP就占用了整网所有的链路。
Stateful PCE举例组网
Stateful PCE举例组网

针对以上问题,可以通过Stateful PCE技术,以便在现有技术基础上进一步提高网络的带宽利用率。Stateful PCE通过构建LSP DB来监控网络中LSP的状态(带宽分配情况,LSP建立情况等),并结合LSP DB和TEDB来一起从网络的全局进行LSP路径的最优计算。

如上图中,采用了Stateful PCE后,三条LSP的建立情况是(b)中的情况。其中A-B、B-C以及D-E之间链路全部空闲了出来,从全局来看,优化了整网的带宽利用。

在使能Stateful PCE后,PCC和PCE间会进行LSP DB的同步,最终会形成全网一致的LSP DB。PCE在计算路径时会根据TEDB和LSP DB所提供的信息来共同计算每条LSP所要经过的路径,从全局上来进行带宽资源的分配。Stateful PCE包含以下两种模式:
  • Active Stateful PCE:此模式下,PCE在为LSP做路径计算的同时,还会主动更新其名下所托管的LSP的状态和参数。
  • Passive Stateful PCE:此模式下,PCE仅仅会为LSP做路径计算,PCE不会主动更新其名下所托管的LSP的状态和参数。

TE网络信息的集中配置和管理

Stateful PCE支持在服务器端集中的配置和管理TE网络的拓扑信息及隧道属性,这样做更有利于对网络的管理和运维。配置后,PCE服务器算路时会采用本地配置的拓扑信息以及隧道属性进行算路。

PCEP for SR-MPLS TE Policy

随着SDN的发展和Segment Routing技术的兴起,PCEP又出现了针对Segment Routing的相关扩展,可以很好地支持集中式SR-MPLS TE Policy。Segment Routing能提供与RSVP-TE相同的显式指定路径的能力,并且由于不需要在中间节点维护基于流的状态,具有比RSVP-TE更好的扩展性。另一方面,正是因为中间节点不维护状态,导致Segment Routing缺乏在头节点根据带宽使用情况进行算路的能力。

基于PCE的Segment Routing能够解决这一问题,因为PCE存储了整网的拓扑信息、TE信息以及路径信息,所以能够根据整网的资源情况进行路径计算,达到优化整网资源的目的。

根据路径计算请求发出对象不同,可将PCEP for SR-MPLS TE Policy分为两种:

  • PCE-Initiated SR-MPLS TE Policy:PCE向PCC头节点发送PCInitiate消息,创建SR-MPLS TE Policy路径。
  • PCC-Initiated SR-MPLS TE Policy:PCC向PCE发起SR-MPLS TE Policy算路请求,PCE返回算路结果到PCC头节点。

PCEP针对SR-MPLS的扩展

PCEP针对SR-MPLS的扩展主要分为3部分:支持SR-MPLS的PATH-SETUP-TYPE新类型,用于通告支持SR-MPLS能力的SR PCE Capabilities sub-TLV和用于携带SR-MPLS SID的SR-MPLS ERO(Explicit Route Object,显式路由对象)和SR-MPLS RRO(Record Route Object,记录路由对象)子对象,具体如下表所示。

表1-3 PCEP针对SR-MPLS的TLV扩展

类型

名称

作用

携带位置

Type

SR Path Setup Type(PST)

用于表示通过SR-MPLS创建的TE路径

PATH-SETUP-TYPE TLV和PATH-SETUP-TYPE-CAPABILITIES TLV

Sub-TLV

SR PCE Capabilities sub-TLV

用于通告SR-MPLS能力

PATH-SETUP-TYPE-CAPABILITIES TLV中

Subobject

SR-ERO subobject

用于携带PCE计算的路径信息

ERO对象中

SR-RRO subobject

用于携带PCC的实际路径信息

RRO对象中

PCE-Initiated SR-MPLS TE Policy的基本创建流程

PCE-Initiated SR-MPLS TE Policy的基本创建流程
PCE-Initiated SR-MPLS TE Policy的基本创建流程

详细过程描述如下:

  1. PCC和PCE通过互相发送Open消息,建立PCEP会话,同时协商支持的能力。SR-MPLS TE Policy使用SR PCE Capability sub-TLV,协商SR-MPLS能力。
  2. PCE向PCC头节点发送PCInitiate消息,创建SR-MPLS TE Policy。
    1. PCE分配Symbolic Path Name作为SR-MPLS TE Policy的Candidate Path(候选路径)在PCEP中的标识。
    2. LSP对象中的PLSP-ID设置为0,表示该PLSP-ID不存在,需要PCC分配一个。
    3. SR-MPLS TE Policy标识、候选路径标识和候选路径优先级等属性信息通过Association对象携带,SR-MPLS TE Policy下的所有Candidate Path属于相同的SR Policy Association Group。
    4. 在ERO中携带路径信息,SR-MPLS TE Policy使用SR-ERO子对象携带路径信息。
  1. PCC头节点接收到PCE下发的路径信息后进行路径安装,并为Candidate Path申请PLSP-ID作为其标识。
  2. PCC头节点路径安装完成后,发送PCRpt消息给PCE,报告SR-MPLS TE Policy状态。PCRpt消息中,LSP对象的托管标记设置为1,标识将SR-MPLS TE Policy控制权托管给PCE;LSP对象中的Create标记设置为1,标识PCC创建了PCE触发的SR-MPLS TE Policy;PLSP-ID设置为PCC本地申请的唯一值。SR-RRO子对象携带SR-MPLS TE Policy实际路径信息。
  3. PCC已经将控制权托管给了PCE,网络中拓扑等信息变化会导致PCE重新计算路径。
  4. PCE会将重新计算的路径信息通过PCUpd消息下发给PCC,使用PCC上报的PLSP-ID作为标识。
  5. PCC头节点接收PCE下发的PCUpd消息后更新路径。
  6. PCC头节点路径安装完成后,发送PCRpt消息给PCE,报告SR-MPLS TE Policy状态。

PCC-Initiated SR-MPLS TE Policy的基本创建流程(Stateless Bringup模式)

PCC-Initiated SR-MPLS TE Policy的基本创建流程(Stateless Bringup模式)

详细过程描述如下:

  1. PCC和PCE通过互相发送Open消息,建立PCEP会话,同时协商支持的能力。SR-MPLS TE Policy使用SR PCE Capability sub-TLV,协商SR-MPLS能力。
  2. PCC向PCE发送PCReq消息,申请SR-MPLS TE Policy路径计算。
  3. PCE向PCC头节点发送PCRep消息,创建SR-MPLS TE Policy。
    1. PCE分配Symbolic Path Name作为SR-MPLS TE Policy的Candidate Path(候选路径)在PCEP中的标识。
    2. LSP对象中的PLSP-ID设置为0,表示该PLSP-ID不存在,需要PCC分配一个。
    3. SR-MPLS TE Policy标识、候选路径标识和候选路径优先级等属性信息通过Association对象携带,SR-MPLS TE Policy下的所有Candidate Path属于相同的SR Policy Association Group。
    4. 在ERO中携带路径信息,SR-MPLS TE Policy使用SR-ERO子对象携带路径信息。
  1. PCC头节点接收到PCE下发的路径信息后进行路径安装。并为Candidate Path申请PLSP-ID作为其标识。
  2. PCC头节点路径安装完成后,发送PCRpt消息给PCE,报告SR-MPLS TE Policy状态。PCRpt消息中,LSP对象的托管标记设置为1,标识将SR-MPLS TE Policy控制权托管给PCE;LSP对象中的Create标记设置为1,标识PCC创建了PCE触发的SR-MPLS TE Policy;PLSP-ID设置为PCC本地申请的唯一值。SR-RRO子对象携带SR-MPLS TE Policy实际路径信息。
  3. PCC已经将控制权托管给了PCE,网络中拓扑等信息变化会导致PCE重新计算路径。
  4. PCE会将重新计算的路径信息通过PCUpd消息下发给PCC,使用PCC上报的PLSP-ID作为标识。
  5. PCC头节点接收PCE下发的PCUpd消息后更新路径。
  6. PCC头节点路径安装完成后,发送PCRpt消息给PCE,报告SR-MPLS TE Policy状态。

PCC-Initiated SR-MPLS TE Policy的基本创建流程(Stateless Bringup模式)

PCC-Initiated SR-MPLS TE Policy的基本创建流程(Stateful Bringup模式)

PCC-Initiated SR-MPLS TE Policy的基本创建流程(Stateful Bringup模式)
PCC-Initiated SR-MPLS TE Policy的基本创建流程(Stateful Bringup模式)

详细过程描述如下:

  1. PCC和PCE通过互相发送Open消息,建立PCEP会话,同时协商支持的能力。SR-MPLS TE Policy使用SR PCE Capability sub-TLV,协商SR-MPLS能力。
  2. PCC头节点向PCE发送PCRpt消息,托管SR-MPLS TE Policy。
    1. PCC分配Symbolic Path Name作为SR-MPLS TE Policy的Candidate Path(候选路径)在PCEP中的标识。
    2. PCC分配LSP对象中的PLSP-ID作为SR-MPLS TE Policy的Candidate Path(候选路径)在PCEP中的标识。LSP对象的托管标记设置为1,标识将SR-MPLS TE Policy控制权托管给PCE;
    3. SR-MPLS TE Policy标识、候选路径标识和候选路径优先级等属性信息通过Association对象携带,SR-MPLS TE Policy下的所有Candidate Path属于相同的SR Policy Association Group。
    4. 在ERO中携带路径信息,SR-MPLS TE Policy使用SR-ERO子对象携带路径信息。托管时携带空的ERO对象。
  1. PCE接收到PCC头节点的托管消息后进行路径计算,并通过PCUpd消息下发给PCC头节点,使用PCC上报的PLSP-ID作为标识。
  2. PCC头节点接收到PCE下发的路径信息后进行路径安装。
  3. PCC头节点路径安装完成后,发送PCRpt消息给PCE,报告SR-MPLS TE Policy状态。PCRpt消息中,LSP对象的托管标记设置为1,标识将SR-MPLS TE Policy控制权托管给PCE;PLSP-ID设置为PCC本地申请的唯一值。SR-RRO子对象携带SR-MPLS TE Policy实际路径信息。
  4. PCC已经将控制权托管给了PCE,网络中拓扑等信息变化会导致PCE重新计算路径。
  5. PCE会将重新计算的路径信息通过PCUpd消息下发给PCC,使用PCC上报的PLSP-ID作为标识。
  6. PCC头节点接收PCE下发的PCUpd消息后更新路径。
  7. PCC头节点路径安装完成后,发送PCRpt消息给PCE,报告SR-MPLS TE Policy状态。

SR Policy Association Group

PCEP新增SR Policy Association Group对象用于携带SR-MPLS TE Policy信息。SR Policy Association Group对象又可以携带如下表所示的5种TLV。

表1-4 SR Policy Association Group携带的TLV的作用

TLV名称

作用

SRPOLICY-POL-ID TLV

用于描述SR-MPLS TE Policy标识,是SR Policy Association Group的必选TLV,只能携带一个。

SRPOLICY-POL-NAME TLV

用于描述SR-MPLS TE Policy名称,是SR Policy Association Group的可选TLV,只能携带一个。

SRPOLICY-CPATH-ID TLV

用于描述SR-MPLS TE Policy候选路径标识,是SR Policy Association Group的必选TLV,只能携带一个。

SRPOLICY-CPATH-NAME TLV

用于描述SR-MPLS TE Policy候选路径名称,是SR Policy Association Group的可选TLV,只能携带一个。

SRPOLICY-CPATH-PREFERENCE TLV

用于描述SR-MPLS TE Policy候选路径优先级,是SR Policy Association Group的可选TLV,只能携带一个。如果没有携带SRPOLICY-CPATH-PREFERENCE TLV,则SR-MPLS TE Policy候选路径的优先级取缺省值100。

自动带宽调整

通过自动带宽调整功能,可使SR-MPLS TE Policy根据实际流量大小自动调整带宽。其具体实现过程是:通过固定时间间隔A的采样(比如每隔5分钟采样一次),可以获得该隧道流量在一个自动带宽调整周期B(比如24小时)内的最大带宽。然后PCC根据此采样值向PCE(控制器)发送请求带宽,PCE根据此带宽重新计算SR-MPLS TE Policy路径,并下发更新。

PCEP for SRv6 TE Policy

随着SDN的发展和Segment Routing技术的兴起,PCEP又出现了针对Segment Routing的相关扩展,可以很好地支持集中式SRv6 TE Policy。Segment Routing能提供与RSVP-TE相同的显式指定路径的能力,并且由于不需要在中间节点维护基于流的状态,具有比RSVP-TE更好的扩展性。另一方面,正是因为中间节点不维护状态,导致Segment Routing缺乏在头节点根据带宽使用情况进行算路的能力。

基于PCE的Segment Routing能够解决这一问题,因为PCE存储了整网的拓扑信息、TE信息以及路径信息,所以能够根据整网的资源情况进行路径计算,达到优化整网资源的目的。

根据路径计算请求发出对象不同,可将PCEP for SRv6 TE Policy分为两种:

  • PCE-Initiated SRv6 TE Policy:PCE向PCC头节点发送PCInitiate消息,创建SRv6 TE Policy路径。
  • PCC-Initiated SRv6 TE Policy:通过Netconf/CLI/YANG等方式下发SRv6 TE Policy配置到PCC头节点。

PCEP针对SRv6 TE Policy的扩展

PCEP针对SRv6 TE Policy的扩展主要分为3部分:支持SRv6 TE Policy的PATH-SETUP-TYPE新类型,用于通告支持SRv6能力的SRv6 PCE Capabilities sub-TLV和用于携带SRv6 SID的SRv6 ERO和SRv6 RRO Subobject,具体如下表所示。

表1-5 PCEP针对SRv6 TE Policy的TLV扩展

类型

名称

作用

携带位置

Type

SRv6 Path Setup Type(PST)

用于表示通过SRv6创建的TE路径

PATH-SETUP-TYPE TLV和PATH-SETUP-TYPE-CAPABILITIES TLV

Sub-TLV

SRv6 PCE Capabilities sub-TLV

用于通告SRv6能力

PATH-SETUP-TYPE-CAPABILITIES TLV中

Subobject

SRv6-ERO subobject

用于携带PCE计算的路径信息

ERO对象中

SRv6-RRO subobject

用于携带PCC的实际路径信息

RRO对象中

PCE-Initiated SRv6 TE Policy的基本创建流程

PCE-Initiated SRv6 TE Policy的基本创建流程
PCE-Initiated SRv6 TE Policy的基本创建流程

详细过程描述如下:

  1. PCC和PCE通过互相发送Open消息,建立PCEP会话,同时协商支持的能力。SRv6 TE Policy使用SRv6 PCE Capability sub-TLV,协商SRv6能力。
  2. PCE向PCC头节点发送PCInitiate消息,创建SRv6 TE Policy。
    1. PCE分配Symbolic Path Name作为SRv6 TE Policy的Candidate Path(候选路径)在PCEP中的标识。
    2. LSP对象中的PLSP-ID设置为0,表示该PLSP-ID不存在,需要PCC分配一个。
    3. SRv6 TE Policy标识、候选路径标识和候选路径优先级等属性信息通过Association对象携带,SRv6 TE Policy下的所有Candidate Path属于相同的SR Policy Association Group。
    4. 在ERO中携带路径信息,SRv6 TE Policy使用SRv6-ERO子对象携带路径信息。
  1. PCC头节点接收到PCE下发的路径信息后进行路径安装。并为Candidate Path申请PLSP-ID作为其标识。
  2. PCC头节点路径安装完成后,发送PCRpt消息给PCE,报告SRv6 TE Policy状态。PCRpt消息中,LSP对象的托管标记设置为1,标识将SRv6 TE Policy控制权托管给PCE;LSP对象中的Create标记设置为1,标识PCC创建了PCE触发的SRv6 TE Policy;PLSP-ID设置为PCC本地申请的唯一值。SRv6-RRO子对象携带SRv6 TE Policy实际路径信息。
  3. PCC已经将控制权托管给了PCE,网络中拓扑等信息变化会导致PCE重新计算路径。
  4. PCE会将重新计算的路径信息通过PCUpd消息下发给PCC,使用PCC上报的PLSP-ID作为标识。
  5. PCC头节点接收PCE下发的PCUpd消息后更新路径。
  6. PCC头节点路径安装完成后,发送PCRpt消息给PCE,报告SRv6 TE Policy状态。

SR Policy Association Group

PCEP新增SR Policy Association Group对象用于携带SRv6 TE Policy信息。SR Policy Association Group对象又可以携带如下表所示的5种TLV。

表1-6 SR Policy Association Group携带的TLV的作用

TLV名称

作用

SRPOLICY-POL-ID TLV

用于描述SRv6 TE Policy标识,是SR Policy Association Group的必选TLV,只能携带一个。

SRPOLICY-POL-NAME TLV

用于描述SRv6 TE Policy名称,是SR Policy Association Group的可选TLV,只能携带一个。

SRPOLICY-CPATH-ID TLV

用于描述SRv6 TE Policy候选路径标识,是SR Policy Association Group的必选TLV,只能携带一个。

SRPOLICY-CPATH-NAME TLV

用于描述SRv6 TE Policy候选路径名称,是SR Policy Association Group的可选TLV,只能携带一个。

SRPOLICY-CPATH-PREFERENCE TLV

用于描述SRv6 TE Policy候选路径优先级,是SR Policy Association Group的可选TLV,只能携带一个。如果没有携带SRPOLICY-CPATH-PREFERENCE TLV,则SRv6 TE Policy候选路径的优先级取缺省值100。

词条统计
  • 作者: 彭丽丽
  • 最近更新: 2023-06-28
  • 浏览次数: 9843
  • 平均得分:
分享链接到: