• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 新华三人才研学中心
  • 关于我们

PCEP技术白皮书-6W100

手册下载

PCEP技术白皮书-6W100-整本手册.pdf  (409.18 KB)

  • 发布时间:2023/6/7 22:34:31
  • 浏览量:
  • 下载量:

PCEP技术白皮书

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Copyright © 2022 新华三技术有限公司 版权所有,保留一切权利。

非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。

除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。

本文中的内容为通用性技术信息,某些信息可能不适用于您所购买的产品



1 概述

1.1  产生背景

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

PCEPPath Computation Element Communication Protocol,路径计算单元通信协议)通过将网络内的路径计算功能进行集中控制,由计算单元来单独完成MPLSSRv6路径的计算,来解决上述问题。PCEP这种集中计算的核心思想与SDN技术非常匹配。因此,PCEP也作为MPLS网络向SDN网络迁移的一种方案。

说明

本文档仅介绍通过PCEP技术计算LSP路径的相关内容。

 

1.2  技术优点

PCEP具有如下特点:

·     集中控制:将网络内的路径计算功能进行集中控制,提升路径计算效率,易于管理与维护网络。

·     跨域路径计算:在大型多域网络中,可以通过多个PCE协作完成跨域路径的计算。

2 技术实现

2.1  PCEP网络模型

图2-1 PCEP网络模型

 

2-1所示,典型的PCEP网络包括如下几部分:

·     PCEPath Computation Element,路径计算单元):网络中的一个实体,用于为网络上的设备提供路径计算服务,可进行区域内的路径计算,也可在复杂的网络环境中计算完整的LSP路径。

·     PCCPath Computation Client,路径计算客户端):请求PCE执行路径计算,并根据PCE返回的路径信息建立LSP

·     PCEP会话:PCCPCEPCEPCE之间建立的会话。PCEP会话分为如下两种类型:

¡     Stateless PCEP会话Stateless Path Computation Element Protocol,无状态PCEP):该类型PCEP会话下,PCC请求PCE执行路径计算PCE仅提供路径计算服务。

¡     Stateful PCEP会话Stateful Path Computation Element Protocol,有状态PCEP):该类型PCEP会话下,PCCPCE上报网络内所有LSP信息PCE除了提供路径计算服务外,可以创建、删除和优化域内的LSP,以达到最大程度分配和使用网络资源的目的。Stateful PCE会话包括如下两种类型

-     Active-Stateful PCEP会话Active-Stateful Path Computation Element Protocol,主动有状态PCEP:主动有状态PCEP会话下,PCC可以将LSP托管给PCEPCE可以对LSP进行优化。

-     Passive-Stateful PCEP会话Passive-Stateful Path Computation Element Protocol,被动有状态PCE:被动有状态PCEP会话下,PCE仅维护PCC上报的LSP信息,不支持LSP托管和优化。

说明

LSP托管是指PCC授权PCE可以修改PCC上的LSP

 

·     PCEPPath Computation Element Protocol,路径计算单元通信协议):运行于PCCPCE之间、或者PCEPCE之间的通信协议,用于建立PCEP会话,交互PCEP消息。该协议基于TCP

·     PCEP对等体:建立PCEP会话的两端称为PCEP对等体。

2.2  PCEP消息

PCCPCE之间通过交互PCEP消息完成会话建立、维护、路径计算和更新等。PCEP消息由一个PCEP报文头和一个长度可变的消息主体组成,消息主体由一个或多个对象组成。PCEP消息的主要内容通过不同的对象来携带。

2.2.1  消息类型

PCEP消息包含如下几类:

·     Open消息:用于启动PCEP会话。

·     Keepalive消息:PCEP会话的保活消息

·     PCReqPath Computation Request,路径计算请求)消息:PCCPCE发送的请求路径计算消息。

·     PCRepPath Computation Reply,路径计算应答)消息:PCEPCC发送的路径计算应答消息。

·     PCNtfPath Computation Notification,路径计算通知)消息:由PCC发送给PCE或由PCE发送给PCC的事件通知消息。

·     PCErrPath Computation Error,路径计算错误)消息:由PCC发送给PCE或由PCE发送给PCC错误通知消息。

·     Close消息:用于关闭PCEP会话的消息。

·     PCRptPath Computation LSP State Report,路径状态上报)消息:PCCPCE发送的用于报告LSP当前状态的消息。

·     PCUpdPath Computation LSP Update Request,路径更新请求)消息:PCEPCC发送的用于更新LSP信息PCEP消息。

·     PCInitiateLSP Initiate RequestLSP初始化请求)消息:PCEPCC发送的用于创建LSPPCEP消息。

2.2.2  PCEP报文头格式

2-2所示,PCEP消息的报文头包含的内容如下:

·     VerPCEP版本号,长度为3bits

·     Flags:标志位,长度为5bits。当前未定义,在报文中全部填充为0

·     Message-Type:消息类型,长度为8bits。当前支持如下消息类型:

¡     1Open

¡     2Keepalive

¡     3PCReq

¡     4PCRep

¡     5PCNtf

¡     6PCErr

¡     7Close

¡     10PCRpt

¡     11PCUpd

¡     12PCInitiate

·     Message-Length包括PCEP报文头在内的PCEP消息的总长度,长度为16bits

图2-2 PCEP报文头格式

 

2.2.3  对象报文格式

1. 对象由对象头和对象体两部分构成。

2-3所示,对象头包含的内容如下:

·     Object-ClassPCEP对象类,长度为8bits

·     OTObject-Type):PCEP对象类型,长度为4bitsObject-ClassObject-Type字段唯一标识一个PCEP对象。

·     Res:保留字段,长度为2bits。该字段在传输时必须设置为零,并且在接收时必须被忽略。

·     PProcessing-Rule):P标志用于在PCC发给PCEPCEP消息中标识指定对象在路径计算期间是否必须被PCE考虑。P标志被置为1时,标识PCE在路径计算时必须考虑该对象。相反,当P标志被置为0时,标识该对象是可选的,即PCE可以忽略该对象。

·     IIgnore):I标志用于在PCEP消息中向PCC标识PCE是否考虑了可选对象。当I标志被置为1时,标识可选对象在路径计算期间被忽略。相反,当I标志被置为0时,标识PCE在路径计算期间考虑了可选对象。当对应的PCReq消息中I标志为1时,I标志在PCRep消息中没有意义。

·     Object Length:表示包括对象头在内的总对象长度,以字节为单位。对象长度字段必须始终是4的倍数,并且至少为4最大对象长度为65528字节。

图2-3 对象头报文格式

 

不同的对象体具有不同的报文格式,以下列举几类常见的对象体。

2. Open对象

Open对象的Object-ClassObject-Type字段取值分别为11。如2-4所示,Open对象体包含如下内容:

·     VerPCEP版本号,长度为3bits

·     Flags:标志位,长度为5bits。当前未定义,在报文中全部填充为0

·     Keepalive:发送Keepalive消息的时间间隔。

·     DeadTimerPCEP会话的老化时间。

·     SIDPCEP会话ID

·     Optional TLVs:可选TLV。例如STATEFUL-PCE-CAPABILITY TLV

图2-4 Open对象体报文格式

 

3. Bandwidth对象

Bandwidth对象的Object-Class字段取值为5Object-Type字段包含2种取值。取值为1时,表示请求的链路带宽;取值为2时,表示在自动带宽调整场景中,需要调整的链路的当前带宽。如2-5所示,Bandwidth对象体长度固定为4字节,带宽取值的单位为每秒字节数。

图2-5 Bandwidth对象体报文格式

 

4. Metric对象

Metric对象的Object-ClassObject-Type字段取值分别为61。如2-6所示,Metric对象体包含如下内容:

·     Reserved:保留字段,长度为16bits当前未定义,在报文中全部填充为0

·     Flags:标志位,长度为8bits。当前已定义的标志位为BBound)和C(Computed Metric)

·     T:度量类型。当前定义的度量类型为:

¡     1IGP度量

¡     2TE度量

¡     3跳数。

·     Metric value度量值

图2-6 Metric对象体报文格式

 

5. Explicit Route对象

Explicit Route对象的Object-ClassObject-Type字段取值分别为71。如2-7所示,Explicit Route对象体包含如下内容:

·     LL标志位,在报文中必须置为0

·     Type:类型。当前定义的类型为:

¡     1:表示IPv4类型。

¡     2:表示IPv6类型。

¡     3,表示Label类型。

·     Length:对象体长度。

·     U:指示标签方向的标志位。取值为0,表示下游标签;取值为1,表示上游标签。

·     C-type:服务类型。

·     Label:路径的标签值。

图2-7 Explicit Route对象体报文格式

 

6. SRP对象

SRPStateful PCE Request Parameters,有状态PCE请求参数)对象的Object-ClassObject-Type字段取值分别为331。如2-8所示,SRP对象体包含如下内容:

·     Flags:标志位,长度为16bits。当前未定义,在报文中全部填充为0

·     SRP IDStateful PCE请求ID

·     Optional TLVs:可选TLV。例如PATH-SETUP-TYPE TLV

图2-8 Explicit Route对象体报文格式

 

2.2.4  Open消息

Open消息是PCEP对等体之间发送的用于建立、维护PCEP会话的消息。Open消息必须是PCC发送给PCEPCE发送给PCC的第一个PCEP消息。

在建立PCEP会话阶段,PCEP对等体之间会协商Open消息携带的PCEP会话参数。如果双方对这些参数协商一致,则成功建立PCEP会话;否则,会关闭PCEP对等体之间的TCP连接。Open消息中包含的会话参数如下:

·     PCEP版本

·     Keepalive发送时间间隔

·     会话的老化时间

·     PCEP会话ID

·     PCEP能力集合。例如:PCEP会话类型(有状态、无状态)本端是否具备Segment Routing能力

2.2.5  Keepalive消息

Keepalive消息是PCCPCE为了保持会话处于活跃状态而发送的PCEP消息。Keepalive消息还用于响应Open消息,以确认已收到Open消息并且Open消息中携带的PCEP会话参数是可接受的。

Keepalive消息不携带任何对象,发送Keepalive消息的时间间隔通过Open消息中携带的Keepalive发送时间间隔协商。PCEP对等体之间发送Keepalive消息的时间间隔可以不同。

任何PCEP消息都具备会话保活功能。

2.2.6  PCReq消息

PCReq消息是PCCPCE发送的请求路径计算的PCEP消息。

PCReq消息中主要携带如下信息:

·     路径计算请求ID

·     请求计算的路径源IP地址。

·     请求计算的路径目的IP地址。

·     路径计算的约束条件:

¡     优先级。

¡     路径约束:包含、排除某个节点、SRLGShared Risk Link Group,共享风险链路组)或接口地址。

¡     亲和属性。

¡     带宽信息。

¡     度量信息

2.2.7  PCRep消息

PCRep消息是PCE响应接收到的PCReq消息而向PCC发送的路径计算应答消息。

如果PCE路径计算成功,则回复的PCRep消息中主要携带如下信息:

·     路径计算请求ID。该ID与对应的PCReq消息携带的路径计算请求ID一致。

·     计算出的路径信息。

如果PCE路径计算失败,则回复的PCRep消息中主要携带路径计算失败的原因。

2.2.8  PCNtf消息

PCNtf消息可以由PCE发送给PCC,也可以由PCC发送给PCE,用于通知特定事件。主要的事件如下:

·     PCC取消路径计算请求。

·     PCE当前处于过载状态。

·     PCE当前不再处于过载状态。

2.2.9  PCErr消息

PCErr消息可以由PCE发送给PCC,也可以由PCC发送给PCE,用于通知PCEP对等体之间发生的错误。主要在以下情况下发送PCErr消息:

·     发生协议错误。例如,PCInitiate消息创建的LSPPCC上已经存在。

·     PCEP消息不符合PCEP协议规范。例如,接收到格式错误的消息,接收到的消息缺失对象等。

2.2.10  Close消息

Close消息可以由PCE发送给PCC,也可以由PCC发送给PCE,用于关闭已建立的PCEP会话。

在收到Close消息后,PCEP对等体必须取消所有待处理的请求,且不能再发送其他类型的PCEP消息,并关闭PCEP对等体之间的TCP连接。

2.2.11  PCRpt消息

PCRpt消息是PCCPCE发送的用于报告LSP当前状态的PCEP消息。如下场景会触发PCCPCE发送PCRpt消息:

·     PCC接收到来自PCELSP更新请求。

·     PCCLSP的状态发生变化。

PCRpt消息主要包含如下内容:

·     PLSP ID:标识一条LSP

·     LSP操作标记和状态标记。操作标记如托管、上报和同步等,状态标记如UpDownActive等。

·     Stateful PCE请求ID。该ID与对应的PCUpd消息携带的Stateful PCE请求ID一致。

·     路径信息。

·     带宽信息。

·     度量信息

·     亲和属性。

·     优先级。

2.2.12  PCUpd消息

PCUpd消息是PCEPCC发送的用于更新LSP信息的PCEP消息。PCUpd消息主要包含如下内容:

·     PLSP ID:标识一条LSP

·     LSP操作标记和状态标记。操作标记包括托管、上报和同步等,状态标记包括UpDownActive等。

·     路径信息。

·     Stateful PCE请求ID:标识一次更新请求。

·     带宽信息。

·     链路度量

·     亲和属性。

·     优先级。

2.2.13  PCInitiate消息

LSP托管场景中,PCInitiate消息是PCEPCC发送的用于创建LSPPCEP消息。PCInitiate消息主要包含如下内容:

·     PLSP ID:标识一条LSP

·     LSP操作标记和状态标记。操作标记包括托管、同步等,状态标记包括UpDownActive等。

·     路径信息。

·     Stateful PCE请求ID

·     带宽信息。

·     度量信息

·     亲和属性。

·     优先级。

2.3  工作机制

本章节以PCCPCE之间建立PCEP会话为例,介绍PCEP会话建立、路径计算和LSP托管的工作机制。

2.3.1  PCEP会话建立

PCC可以通过如下方式发现网络中的PCE,以便与其建立PCEP会话:

·     PCC设备上静态指定PCE设备。

·     通过OSPF TEPCEIP地址发布到网络中。

2-9所示,PCEP对等体之间建立PCEP会话的过程为:

(1)     PCEP对等体之间建立TCP连接。

(2)     PCCPCE发送Open消息。

(3)     PCEPCC发送Open消息。

(4)     PCE收到Open消息后,根据Open消息中携带的信息进行会话参数协商。若协商成功,则发送Keepalive消息确认。

(5)     PCC收到Open消息后,根据Open消息中携带的信息进行会话参数协商。若协商成功,则发送Keepalive消息确认。

(6)     PCEP对等体都收到了来自对方的Keepalive消息,则认为PCEP会话建立完成。

图2-9 PCEP会话建立示意图

 

2.3.2  路径计算

路径计算是指PCC主动向PCE发起路径计算请求,由PCEPCC计算路径, PCC再根据PCE的路径计算结果建立LSP

1. 域内路径计算

2-10所示,在AS 1内需要计算一条从Ingress节点到Egress节点的LSP,域内路径计算的具体过程为:

(1)     PCCPCE发送PCReq消息。

(2)     PCE收到PCRep消息后,使用基于约束的路径优先算法,在TEDBTE DataBase,流量工程数据库)中计算出一条到达目的节点的符合约束条件的路径。

(3)     PCE路径计算成功后,向PCE发送PCRep消息。

(4)     PCC收到发送PCRep消息后,根据PCE计算的路径建立LSP

图2-10 域内路径计算示意图

 

2. 跨域路径计算

2-11所示,在跨域场景中,由于AS 1内的PCE 1无法学习到Egress节点所在的AS 2内的IGP路由,所以无法计算出到达Egress节点的LSP路径。因此需要AS 2内的PCE 2协作计算跨域的LSP路径。跨域路径计算具体过程为:

(1)     PCCPCE 1发送PCReq消息请求计算到达Egress节点LSP,其中PCReq消息中携带了PCE 1PCE 2的地址。

(2)     PCE 1收到PCReq消息后,发现无法计算到达Egress节点的路径信息,则将PCReq消息发送给PCE 2,请求PCE 2计算PCE 1Egress节点的路径信息。

(3)     PCE 2收到PCRep消息后,使用基于约束的路径优先算法,在TEDB中计算出一条到达目的节点的符合约束条件的路径,然后将路径信息通过PCReq消息发送给PCE 1

(4)     PCE 1收到PCE 2PCReq消息后,计算Ingress节点到达PCE 1的路径信息,将计算后的路径信息与PCE 1Egress节点的路径信息汇总,再通过PCRep消息对PCC进行应答。

(5)     PCC收到PCRep消息后,根据PCE计算的路径建立LSP

图2-11 跨域路径计算示意图

 

2.3.3  LSP托管

LSP托管是指PCE具有修改PCCLSP的权限,由PCE主动发起LSP路径创建和更新。

2-12所示,PCCPCE之间建立了Active-Stateful PCEP会话。可以通过如下方式在PCC上建立或更新LSP

·     PCC通过发送PCRpt消息将LSP 1托管给PCEPCE计算出LSP 1的路径后,通过PCUpd消息通知PCC更新LSP 1

·     PCE主动向PCC发送PCInitiate消息来要求PCC创建LSP 2PCC收到PCInitiate消息后,根据路径信息在PCC上创建LSP 2,然后通过PCRpt消息将LSP 2上报并托管给PCE

图2-12 LSP托管、更新与创建示意图

 

3 典型组网

3.1  跨域网络

3-1所示,在大型跨域网络中,通过部署PCE节点,可以提升域内、跨域路径计算的效率。由于网络内的路径计算功能由PCE集中控制,易于管理员管理与维护网络。PCCLSP上报、托管给PCE,由PCE维护网络内的TEDB,还可以减轻网络内其他网元的压力。因为,在大型的跨域MPLS网络内,PCEP的应用十分广泛。

图3-1 跨域网络示意图

 

4 参考文献

·     RFC 5440Path Computation Element (PCE) Communication Protocol (PCEP)

·     RFC 8231Path Computation Element Communication Protocol (PCEP) Extensions for Stateful PCE

·     RFC 8281:Path Computation Element Communication Protocol (PCEP) Extensions for PCE-Initiated LSP Setup in a Stateful PCE Model

·     RFC 8408:Conveying Path Setup Type in PCE Communication Protocol (PCEP) Messages

新华三官网
联系我们