VRF可以在PE路由器上隔离用户路由,但是这些成千上万的客户路由如何在运营商的网络中传输呢?BGP无疑是最理想的候选人。客户VPN路由从IPv4前缀,加上我们在VRF中配置的RD后成为96bits的VPNv4前缀,从而使得每一个客户的VPNv4路由具有唯一性,可以很安全的在运营商网络中传输。接下去我们来看看详细的路由传播过程:
PE-CE的动态路由协议有多种选择,如Static、RIP、EIGRP、OSPF、IS-IS、BGP等等。PE-CE之间跑路由协议的目的是为了让PE学习到客户的VPN路由。由于PE上连接特定CE的接口是属于特定VRF的,因此从这个接口上学习到的客户路由都会进入该VRF的路由表。
PE之间运行的是MP-BGP多协议的BGP,经过扩展的BGP协议能够承载VPNv4路由。
在经过前面的步骤,PE的VRF路由表里已经学习到了客户的路由,接下去要让MP-BGP知晓这些路由,如果PE-CE之间运行的是非BGP协议,那么当然,需要将VRF路由表中的客户路由重发布到BGP中,如果PE-CE之间运行的已经是BGP了,自然不用再做重发布了。
客户的IPv4路由被注入MP-BGP后,RD被添加到了这些IPv4路由前缀前面,就构成了VPNv4路由前缀,同时RTs也被附加到VPNv4路由前缀。(红茶三杯http://weibo.com/vinsoney版权所有,转载请注明出处)
由于PE之间已经建立起了MP-BGP的邻接,因此PE将VPNv4路由前缀(连同这个前缀关联的MPLS标签、RTs等属性)一并通告给另一端的PE。
对端的PE也配置了VRF,VRF中定义了import RTs。它根据RTs将收到的VPNv4路由前缀导入特定的VRF,RD被从VPNv4路由中移除。
经过上面这部,IPv4路由就被注入到了VRF路由表中。当然,这些路由现在是BGP的路由条目。
同样的,PE-CE之间跑的路由协议帮助我们将PE上的IPv4路由最终更新给CE。