MPLS-VPN路由交互模型

2020-12-23 16:43:59 云杰 109

  

MPLS-VPN路由交互模型

  从宏观层面上看,PE上的VPN实例可以隔离及区分不同客户的私网路由,PE将连接到不同的客户的接口添加到不同的VPN实例中。PE通过PE-CE之间的路由协议(可以是IGP,也可以是eBGP)从VPN实例接口学习到客户的路由后,路由被放入相应的VPN路由表,这些路由就是客户的私网IPv4路由。

  VPN私网路由如何在运营商网络中传递?

  通过启用BGP协议。在PE1及PE2之间建立MP-iBGP邻居关系,为运载客户路由做好准备。客户站点的IPv4私网路由,加上我们在VPN-Instance中配置的RD形成96bits的VPNv4前缀,使得每一个客户的VPNv4路由具有唯一性,可以在公共的运营商网络中传输。目前为止我们接触的BGP,都只能够承载32bits的IPv4的路由前缀,这里要承载96bits的VPNv4前缀,就需要对BGP做一些协议上的扩展,我们把这种扩展后的、能够支持多协议的BGP成为Multi-prototol BGP,简称MP-BGP。如果PE-CE之间运行的是非BGP协议,那么当然需要将VPN路由表中的客户路由重发布到MP-BGP中,如果PE-CE之间运行的已经是BGP了,自然不用再做重发布了。

  客户站点的私网IPv4路由被注入MP-BGP后,RD被添加到了这些IPv4路由前缀前面,就构成了96bits的VPNv4路由前缀,同时RTs也被附加到VPNv4路由前缀。由于PE之间已经建立起了MP-BGP的邻接,因此PE将VPNv4路由前缀一并通告给另一端的PE。

  VPNv4路由被传递到了PE2,由于PE2也配置了VPN-Instance,在VPN-Instance中定义了import RTs(RT分导入和导出值,PE2的导入值要与PE1的导出值对应上)。它根据RTs将收到的VPNv4路由前缀导入特定的VPN路由表中,然后RD被从VPNv4路由中移除,这就得到了IPv4路由前缀。经过上面这步,IPv4路由就被注入到了VPN路由表中。当然,这些路由现在是BGP的路由条目。PE2与CE之间跑的路由协议帮助我们将PE上的IPv4路由最终更新给CE。

  如果PE2与CE之间运行的路由协议是eBGP,那么无需做路由重发布,CE即可通过BGP获取到站点1的路由,而如果PE2与CE之间运行的不是eBGP而是其他的IGP,那么就需要在PE2上将BGP路由重发布到IGP。