什么是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(Path Computation Element,路径计算单元):PCE是能够基于网络拓扑信息计算满足约束的路径的部件。PCE可以部署在路由设备中,也可以部署在一个独立的服务器中。大多数时候,PCE和控制器是集成在一起的。
- PCC(Path Computation Client,路径计算客户端):PCC是请求路径计算单元执行路径计算的客户端应用程序。PCC向PCE发送路径请求,并接受PCE返回的路径计算结果。一般情况下,路由设备集成了PCC功能,可以认为路由设备就是PCC。
- PCEP(Path Computation Element Protocol,路径计算单元通信协议):PCEP是PCE和PCC、PCE和PCE之间的通信协议。
PCE架构
PCEP存在如下优势:
- PCEP能够进行端到端的最优路径计算,使得承载的业务路径最优化;
- PCEP能够进一步提高网络的带宽资源利用率,有利于用户对网络资源的优化利用,且部署维护更简单;
- PCEP支持对TE网络拓扑信息和隧道约束进行集中配置和管理,有利于简化网络的运维。
PCEP有哪些概念?
PCEP消息
PCC与PCE之间通过交互PCEP消息完成会话建立、维护、路径计算和更新等。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会话的建立流程如下图所示。
- PCC会主动向PCE服务器发起TCP请求,通过三次握手,建立TCP连接。
- PCC与PCE服务器之间会互相发送PCEP Open消息进行会话的初始化协商。协商成功后,双方会互发PCEP Keepalive消息表示接受对方会话参数,至此会话建立完毕。
PCEP会话建立
PCEP会话的维护流程如下图所示。PCC和PCE服务器之间会周期性的发送Keepalive消息来维护PCEP会话,直至会话关闭为止,两者的发送是独立。任一方只要在固定周期内没有接收到对方的Keepalive消息,则认为会话中断。
PCEP会话维护
PCEP通过Close消息来终止PCEP的会话,PCC或PCE服务器都可以作为终止会话的发起方。
PCEP应用
PCEP for MPLS TE
路径计算
域内路径计算流程图
流程序号 |
说明 |
---|---|
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重优化
Stateful PCE举例组网
针对以上问题,可以通过Stateful PCE技术,以便在现有技术基础上进一步提高网络的带宽利用率。Stateful PCE通过构建LSP DB来监控网络中LSP的状态(带宽分配情况,LSP建立情况等),并结合LSP DB和TEDB来一起从网络的全局进行LSP路径的最优计算。
如上图中,采用了Stateful PCE后,三条LSP的建立情况是(b)中的情况。其中A-B、B-C以及D-E之间链路全部空闲了出来,从全局来看,优化了整网的带宽利用。
- 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,记录路由对象)子对象,具体如下表所示。
类型 |
名称 |
作用 |
携带位置 |
---|---|---|---|
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的基本创建流程
详细过程描述如下:
- PCC和PCE通过互相发送Open消息,建立PCEP会话,同时协商支持的能力。SR-MPLS TE Policy使用SR PCE Capability sub-TLV,协商SR-MPLS能力。
- PCE向PCC头节点发送PCInitiate消息,创建SR-MPLS TE Policy。
- PCE分配Symbolic Path Name作为SR-MPLS TE Policy的Candidate Path(候选路径)在PCEP中的标识。
- LSP对象中的PLSP-ID设置为0,表示该PLSP-ID不存在,需要PCC分配一个。
- SR-MPLS TE Policy标识、候选路径标识和候选路径优先级等属性信息通过Association对象携带,SR-MPLS TE Policy下的所有Candidate Path属于相同的SR Policy Association Group。
- 在ERO中携带路径信息,SR-MPLS TE Policy使用SR-ERO子对象携带路径信息。
- PCC头节点接收到PCE下发的路径信息后进行路径安装,并为Candidate Path申请PLSP-ID作为其标识。
- 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实际路径信息。
- PCC已经将控制权托管给了PCE,网络中拓扑等信息变化会导致PCE重新计算路径。
- PCE会将重新计算的路径信息通过PCUpd消息下发给PCC,使用PCC上报的PLSP-ID作为标识。
- PCC头节点接收PCE下发的PCUpd消息后更新路径。
- PCC头节点路径安装完成后,发送PCRpt消息给PCE,报告SR-MPLS TE Policy状态。
PCC-Initiated SR-MPLS TE Policy的基本创建流程(Stateless Bringup模式)
详细过程描述如下:
- PCC和PCE通过互相发送Open消息,建立PCEP会话,同时协商支持的能力。SR-MPLS TE Policy使用SR PCE Capability sub-TLV,协商SR-MPLS能力。
- PCC向PCE发送PCReq消息,申请SR-MPLS TE Policy路径计算。
- PCE向PCC头节点发送PCRep消息,创建SR-MPLS TE Policy。
- PCE分配Symbolic Path Name作为SR-MPLS TE Policy的Candidate Path(候选路径)在PCEP中的标识。
- LSP对象中的PLSP-ID设置为0,表示该PLSP-ID不存在,需要PCC分配一个。
- SR-MPLS TE Policy标识、候选路径标识和候选路径优先级等属性信息通过Association对象携带,SR-MPLS TE Policy下的所有Candidate Path属于相同的SR Policy Association Group。
- 在ERO中携带路径信息,SR-MPLS TE Policy使用SR-ERO子对象携带路径信息。
- PCC头节点接收到PCE下发的路径信息后进行路径安装。并为Candidate Path申请PLSP-ID作为其标识。
- 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实际路径信息。
- PCC已经将控制权托管给了PCE,网络中拓扑等信息变化会导致PCE重新计算路径。
- PCE会将重新计算的路径信息通过PCUpd消息下发给PCC,使用PCC上报的PLSP-ID作为标识。
- PCC头节点接收PCE下发的PCUpd消息后更新路径。
- 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和PCE通过互相发送Open消息,建立PCEP会话,同时协商支持的能力。SR-MPLS TE Policy使用SR PCE Capability sub-TLV,协商SR-MPLS能力。
- PCC头节点向PCE发送PCRpt消息,托管SR-MPLS TE Policy。
- PCC分配Symbolic Path Name作为SR-MPLS TE Policy的Candidate Path(候选路径)在PCEP中的标识。
- PCC分配LSP对象中的PLSP-ID作为SR-MPLS TE Policy的Candidate Path(候选路径)在PCEP中的标识。LSP对象的托管标记设置为1,标识将SR-MPLS TE Policy控制权托管给PCE;
- SR-MPLS TE Policy标识、候选路径标识和候选路径优先级等属性信息通过Association对象携带,SR-MPLS TE Policy下的所有Candidate Path属于相同的SR Policy Association Group。
- 在ERO中携带路径信息,SR-MPLS TE Policy使用SR-ERO子对象携带路径信息。托管时携带空的ERO对象。
- PCE接收到PCC头节点的托管消息后进行路径计算,并通过PCUpd消息下发给PCC头节点,使用PCC上报的PLSP-ID作为标识。
- PCC头节点接收到PCE下发的路径信息后进行路径安装。
- PCC头节点路径安装完成后,发送PCRpt消息给PCE,报告SR-MPLS TE Policy状态。PCRpt消息中,LSP对象的托管标记设置为1,标识将SR-MPLS TE Policy控制权托管给PCE;PLSP-ID设置为PCC本地申请的唯一值。SR-RRO子对象携带SR-MPLS TE Policy实际路径信息。
- PCC已经将控制权托管给了PCE,网络中拓扑等信息变化会导致PCE重新计算路径。
- PCE会将重新计算的路径信息通过PCUpd消息下发给PCC,使用PCC上报的PLSP-ID作为标识。
- PCC头节点接收PCE下发的PCUpd消息后更新路径。
- 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。
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,具体如下表所示。
类型 |
名称 |
作用 |
携带位置 |
---|---|---|---|
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的基本创建流程
详细过程描述如下:
- PCC和PCE通过互相发送Open消息,建立PCEP会话,同时协商支持的能力。SRv6 TE Policy使用SRv6 PCE Capability sub-TLV,协商SRv6能力。
- PCE向PCC头节点发送PCInitiate消息,创建SRv6 TE Policy。
- PCE分配Symbolic Path Name作为SRv6 TE Policy的Candidate Path(候选路径)在PCEP中的标识。
- LSP对象中的PLSP-ID设置为0,表示该PLSP-ID不存在,需要PCC分配一个。
- SRv6 TE Policy标识、候选路径标识和候选路径优先级等属性信息通过Association对象携带,SRv6 TE Policy下的所有Candidate Path属于相同的SR Policy Association Group。
- 在ERO中携带路径信息,SRv6 TE Policy使用SRv6-ERO子对象携带路径信息。
- PCC头节点接收到PCE下发的路径信息后进行路径安装。并为Candidate Path申请PLSP-ID作为其标识。
- 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实际路径信息。
- PCC已经将控制权托管给了PCE,网络中拓扑等信息变化会导致PCE重新计算路径。
- PCE会将重新计算的路径信息通过PCUpd消息下发给PCC,使用PCC上报的PLSP-ID作为标识。
- PCC头节点接收PCE下发的PCUpd消息后更新路径。
- PCC头节点路径安装完成后,发送PCRpt消息给PCE,报告SRv6 TE Policy状态。
SR Policy Association Group
PCEP新增SR Policy Association Group对象用于携带SRv6 TE Policy信息。SR Policy Association Group对象又可以携带如下表所示的5种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
- 平均得分: