PCEP的全称是Path Computation Element Communication Protocol,直译过来就是路径计算单元通信协议。简单概括就是一个通信协议,基于TCP的应用层协议,具体用来干什么,会在下面逐步介绍。
PCEP最初是想将路由器上的CSPF功能抽取出来,实现一个集中算路的能力,最初的时候是不温不火的;后面随着SDN大热,PCEP由于具备下发路径的能力,就被人拿出来说这不就是SDN嘛,PCEP红红火火了两年;随着SDN的降温,近几年PCEP又处于不温不火的状态了。
PCEP在发展过程中有几个关键的变更点:
最初PCEP的工作组是为了实现RSVP-TE的路径计算和路径建立功能的分离,之前的RSVP-TE的路径计算都在路由器上,是一个分布式路径计算的系统;考虑到在网络中增加一个路径计算的服务器节点,为所有路由器上的RSVP-TE进行路径计算,从而可以做到集中算路,这样就要求路由器和算路服务器之间通信有一个协议,于是PCEP应运而生。
如上图是PCEP通信架构示意,其中PCE(Path Computation Element)是算路服务器,PCC(Path Computation Client)是算路请求客户端,路径计算通过PCEP协议在PCE和PCC之间完成,而路径建立是由路由器之间通过RSVP信令协议完成,这也是一个转控分离的原始形态。详细内容请参考标准A Path Computation Element (PCE)-Based Architecture
最初的PCE相当于一个集中的CSPF(Constrained Shortest Path First)算路能力,这里之所以称为无状态是相对于LSP的,是指PCE并不记录每条LSP的路径和状态,PCE每次收到一条LSP的路径计算请求,会根据当前网络资源状态进行计算,计算完成后会将结果返回给请求者,不会记录和LSP相关的任何信息。
标准Path Computation Element (PCE) Communication Protocol是PCEP协议的基础,既定义了基础的PCEP消息,也定义了Stateless PCE。
Stateful是相对Stateless的。所谓有状态,顾名思义是PCE保存了LSP的路径和状态信息,因此从PCE上即可获取网络中LSP的所有信息。标准PCEP Extensions for Stateful PCE在之前的协议上进行了扩展,定义了Stateful PCE和相关消息。
在标准中又定义了两种不同的模式:Passive Stateful PCE和Active Stateful PCE,这里的被动和主动是区分PCE在网络中承担了不同的作用:
Passive是指LSP的控制者是属于PCC路由器的,PCE只提供路径计算的服务,每次算路都是由PCC发起,PCE虽然可以看到LSP的路径和状态,但无法主动变更LSP的路径和状态:
与Passive Stateful PCE相反,在Active Stateful PCE中,PCC将LSP的控制权完全上交给PCE,什么时候发起算路,以及什么时候出发LSP的路径和状态变更取决于PCE,从这里可以看出,Active Stateful PCE具备更强的控制器能力,与SDN的概念更加贴合了:
在聊这个概念之前,先聊一下RSVP-TE LSP是怎么生成的,所有的设备厂商都一样,在设备上配置一条RSVP-TE Tunnel后就会生成相应的LSP信息,所以可以认为之前的RSVP-TE LSP都是配置生成的。因此PCE-Initiated提出了一种PCE-Initiated LSP,即不通过配置下发,而通过一个PCEP的消息创建RSVP-TE LSP,相关标准参考PCEP Extensions for PCE-Initiated LSP Setup in a Stateful PCE Model:
支持SR-TE LSP,草案PCEP Extensions for Segment Routing
其他还有一些基于PCEP for SR的扩展,如绑定标签(Binding SID)或者路径标签(Path SID),感兴趣者可以自己研究一下。
支持LSP关联组,草案PCEP Extensions for Establishing Relationships Between Sets of LSPs
支持LSP保护关系,主要用于hot-standby LSP,草案PCEP Extensions for Associating Working and Protection LSPs with Stateful PCE
相对于保护关联组,还有基于正反向LSP关联组的扩展,感兴趣者也可以自己研究。
以下仅为个人看法:
PCEP的优点是相对于网络配置协议(Netconf)而言的,具备设备形态无关性、高性能的特点。但是由于该协议是基于RSVP-TE LSP诞生的,所以带着一定的局限性:作为一个异步有状态协议,使整个系统变得更下复杂,从实际的实现上也可以看出PCEP在多厂家设备间的互通性是非常差的。因此,PCEP适用于单厂商设备的同构网络。另外,PCEP这种将控制器作为服务端的通信架构不太符合SDN的理念,上层控制器如果想做负载分担或者异地保护,还需要一个单独的南向反向代理服务,在面对大规模网络时压力会很大。
对于PCEP的前景是不太看好的,因为有更多的无状态协议可以替代它,如BGP、gRPC等等。
联系客服