在基本BGP/MPLSIPVPN组网中,VPN路由信息的发布涉及CE和PE,P路由器只维护骨干网的路由,不需要了解任何VPN路由信息。PE路由器也只维护与它直接相连的VPN的路由信息,不维护所有VPN路由。因此,BGP/MPLSIPVPN网络具有良好的可扩展性。
VPN路由信息的发布过程包括三部分:本地CE到入口PE、入口PE到出口PE、出口PE到远端CE。完成这三部分后,本地CE与远端CE之间将建立可达路由,VPN私网路由信息能够在骨干网上发布。下面分别对这三部分进行介绍。
1.本地CE到入口PE的路由信息交换
CE与直接相连的PE建立邻接关系后,把本站点的VPN路由发布给PE。
CE与PE之间可以使用静态路由、RIP、OSPF、IS-IS或BGP。无论使用哪种路由协议,CE发布给PE的都是标准的IPv4路由。
通常情况下,静态路由只用于stubVPN的CE与PE间交换路由。
如果一个VPN接收本VPN以外的、非PE发布的路由,并将这些路由发布给PE,这类VPN称为过渡VPN(transitVPN)。只接收本VPN路由以及PE发布的路由的VPN称为stubVPN。
2.入口PE到出口PE的路由信息交换
PE从CE学到VPN路由信息后,为这些标准IPv4路由增加RD和VPNTarget属性,形成VPN-IPv4路由,存放到为CE创建的VPN实例中。
入口PE通过MP-BGP把VPN-IPv4路由发布给出口PE。出口PE根据VPN-IPv4路由的ExportTarget属性与自己维护的VPN实例的ImportTarget,决定是否将该路由加入到VPN实例的路由表。PE之间通过IGP来保证内部的连通性。
3.出口PE到远端CE的路由信息交换
远端CE有多种方式可以从出口PE学习VPN路由,包括静态路由、RIP、OSPF、IS-IS和BGP。与本地CE到入口PE的路由信息交换相同。
4.BGP的AS号替换
在BGP/MPLSIPVPN中,如果PE和CE之间运行EBGP,由于BGP使用AS号检测路由环路,为保证路由信息的正确发送,需要为物理位置不同的节点分配不同的AS号。
如果物理分散的CE复用相同的AS号,则PE上应配置BGP的AS号替换功能。此功能是BGP的出口策略,在发布路由时有效。
使能了BGP的AS号替换功能后,当PE向指定对等体中的CE发布路由时,如果路由的AS_PATH中有与CE相同的AS号,将被替换成PE的AS号后再发布。
在上图中,CE1和CE2都使用AS号800,在PE2上使能针对CE2的AS号替换功能。当CE1发来的Update信息从PE2发布给CE2时,PE2发现AS_PATH中存在与CE2相同的AS号800,就把它替换为自己的AS号100,这样,CE2就可以正确接收CE1的路由信息。
对于PE使用不同接口连接多个CE的情况,如上图中的CE2和CE3,也可以使用BGP的AS号替换功能。
对于CE连接到多个PE的情况(Multi-homedCE),单独使用BGP的AS号替换功能将可能导致路由环路,需要配合SOO(Site-of-Origin)特性一起使用。
【编辑推荐】