MCE 功能是Multi-CE 的简称,具有MCE 功能的网络设备可以在BGP/MPLS VPN 组网应用中承担多个VPN 实例的CE 功能,减少用户网络设备的投入。
BGP/MPLS VPN以隧道的方式解决了在公网中传送私网数据的问题,但传统的BGP/MPLS VPN架构要求每个VPN实例单独使用一个CE与PE相连,如图 所示。
随着用户业务的不断细化和安全需求的提高,很多情况下一个私有网络内的用户需要划分成多个VPN,不同VPN 用户间的业务需要完全隔离。此时,为每个VPN 单独配置一台CE 将加大用户的设备开支和维护成本;而多个VPN 共用一台CE,使用同一个路由表项,又无法保证数据的安全性。使用MCE 功能,可以有效解决多VPN 网络带来的用户数据安全与网络成本之间的矛盾,它使用CE 设备本身的VLAN 接口编号与网络内的VPN 进行绑定,并为每个VPN 创建和维护独立的路由转发表(Multi-VRF)。这样不但能够隔离私网内不同VPN 的报文转发路径,而且通过与PE 间的配合,也能够将每个VPN 的路由正确发布至对端PE,保证VPN报文在公网内的传输。
下面举例介绍MCE对多个VPN的路由表项进行维护,并与PE交互VPN路由的过程:
如右图所示,左侧私网内有两个VPN站点:VPN1 和VPN2,分别通过MCE设备接入MPLS骨干网,其中VPN1 和VPN2 的用户,需要分别与远端VPN1用户和VPN2 用户建立VPN隧道。通过配置MCE 功能,可以在MCE 设备上为VPN1 和VPN2 创建各自的路由转发表,并使用VLAN 2 接口与VPN1 进行绑定、VLAN 3 与VPN2 进行绑定。在接收路由信息时,MCE 设备根据接收接口的编号,即可判断该路由信息的来源,并将其维护到对应VPN 的路由转发表中。同时,在PE1 上也需要将连接MCE 的接口与VPN 进行绑定,绑定的方式与MCE 设备一致。MCE与PE1 之间通过Trunk 链路连接,并允许VLAN 2 和VLAN 3 的报文携带VLAN Tag 传输,从而使PE1 在接收时可以根据报文所属VLAN 判别该报文属于哪一个VPN,将报文在指定的隧道内传输。
MCE 设备是如何将多个VPN 实例的私网路由信息准确传播到PE 设备?这包括两部分:MCE与VPN站点的路由信息交换,MCE与PE之间的路由信息交换。这些路由信息的交换都有很多种方法,如静态路由、RIP、OSPF、ISIS、BGP路由协议。如果使用BGP路由协议来实现路由信息交换,则就是使用BGP MCE功能,因此BGP MCE功能就是BGP协议支持VRF,能够实现VRF下BGP路由信息的交换。需要在MCE 上为每个VRF 实例配置BGP 对等体,并引入相应VPN 内的IGP 路由信息。由于各个VPN 间正常情况下是处在不同的AS 内,因此使用EBGP 进行路由的传播。