PCEP导读

2019-05-07 09:53:38 浏览数 (1)

PCEP是什么

PCEP的全称是Path Computation Element Communication Protocol,直译过来就是路径计算单元通信协议。简单概括就是一个通信协议,基于TCP的应用层协议,具体用来干什么,会在下面逐步介绍。

PCEP的发展曲线

PCEP最初是想将路由器上的CSPF功能抽取出来,实现一个集中算路的能力,最初的时候是不温不火的;后面随着SDN大热,PCEP由于具备下发路径的能力,就被人拿出来说这不就是SDN嘛,PCEP红红火火了两年;随着SDN的降温,近几年PCEP又处于不温不火的状态了。

PCEP在发展过程中有几个关键的变更点:

  • 最初的状态是Stateless PCE
  • 之后演进为Stateful PCE,其中Stateful PCE又分为Passive Stateful PCE和Active Stateful PCE
  • 如今又进化为PCE-Initiated 下面会分别介绍这几个关键的特性。

PCEP的诞生

最初PCEP的工作组是为了实现RSVP-TE的路径计算和路径建立功能的分离,之前的RSVP-TE的路径计算都在路由器上,是一个分布式路径计算的系统;考虑到在网络中增加一个路径计算的服务器节点,为所有路由器上的RSVP-TE进行路径计算,从而可以做到集中算路,这样就要求路由器和算路服务器之间通信有一个协议,于是PCEP应运而生。

PCEP通信架构示意PCEP通信架构示意

如上图是PCEP通信架构示意,其中PCE(Path Computation Element)是算路服务器,PCC(Path Computation Client)是算路请求客户端,路径计算通过PCEP协议在PCE和PCC之间完成,而路径建立是由路由器之间通过RSVP信令协议完成,这也是一个转控分离的原始形态。详细内容请参考标准A Path Computation Element (PCE)-Based Architecture

Stateless PCE

最初的PCE相当于一个集中的CSPF(Constrained Shortest Path First)算路能力,这里之所以称为无状态是相对于LSP的,是指PCE并不记录每条LSP的路径和状态,PCE每次收到一条LSP的路径计算请求,会根据当前网络资源状态进行计算,计算完成后会将结果返回给请求者,不会记录和LSP相关的任何信息。

标准Path Computation Element (PCE) Communication Protocol是PCEP协议的基础,既定义了基础的PCEP消息,也定义了Stateless PCE。

Stateful PCE

Stateful是相对Stateless的。所谓有状态,顾名思义是PCE保存了LSP的路径和状态信息,因此从PCE上即可获取网络中LSP的所有信息。标准PCEP Extensions for Stateful PCE在之前的协议上进行了扩展,定义了Stateful PCE和相关消息。

在标准中又定义了两种不同的模式:Passive Stateful PCE和Active Stateful PCE,这里的被动和主动是区分PCE在网络中承担了不同的作用:

Passive Stateful PCE

Passive是指LSP的控制者是属于PCC路由器的,PCE只提供路径计算的服务,每次算路都是由PCC发起,PCE虽然可以看到LSP的路径和状态,但无法主动变更LSP的路径和状态:

Passive Stateful PCE请求/应答示意Passive Stateful PCE请求/应答示意

Actice Stateful PCE

与Passive Stateful PCE相反,在Active Stateful PCE中,PCC将LSP的控制权完全上交给PCE,什么时候发起算路,以及什么时候出发LSP的路径和状态变更取决于PCE,从这里可以看出,Active Stateful PCE具备更强的控制器能力,与SDN的概念更加贴合了:

Active Stateful PCE交互示意Active Stateful PCE交互示意

PCE-Initiated

在聊这个概念之前,先聊一下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:

PCE-Initiated LSP生命周期PCE-Initiated LSP生命周期

PCEP其他扩展

Segment Routing扩展

支持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的应用场景和前景

以下仅为个人看法:

PCEP的优点是相对于网络配置协议(Netconf)而言的,具备设备形态无关性、高性能的特点。但是由于该协议是基于RSVP-TE LSP诞生的,所以带着一定的局限性:作为一个异步有状态协议,使整个系统变得更下复杂,从实际的实现上也可以看出PCEP在多厂家设备间的互通性是非常差的。因此,PCEP适用于单厂商设备的同构网络。另外,PCEP这种将控制器作为服务端的通信架构不太符合SDN的理念,上层控制器如果想做负载分担或者异地保护,还需要一个单独的南向反向代理服务,在面对大规模网络时压力会很大。

对于PCEP的前景是不太看好的,因为有更多的无状态协议可以替代它,如BGP、gRPC等等。

sdn

0 人点赞