这是本人发表的第一份博客,希望这是一个好的开始,做博客的目的既能方便自己还能给爱好网络的朋友们提供一点帮助吧,再次,希望广大网友的力挺和支持,我也会不断的努力!!! 1  .原理简介
近年来网络×××技术方兴未艾,日益成为业界关注的焦点。根据×××实现的技术特点,可以把×××技术分为以下三类:
传统×××:FR和ATM
CPE-based ×××:L2TP和IPSec等
Provider Provisioned ×××s ( PP-××× ):MPLS L2×××和MPLS L3×××。
本文介绍的VRF特性是MPLS ×××中经常使用的技术,中文含义为×××路由转发实例。鉴于VRF与MPLS ×××密切相关,下面首先对MPLS ×××作简要介绍。
图1是一个典型的MPLS L3×××的组网图,运营商通过自己的IP/MPLS核心网络为BLUE和YELLOW两个客户提供×××服务。SITE1和SITE3分别为××× BLUE的两个站点,SITE2和SITE4分别为××× YELLOW的两个站点。××× BLUE两个站点内的主机可以互访,但不能访问××× YELLOW内的主机。同样,××× YELLOW两个站点内的主机可以互访,但不能访问××× BLUE内的主机
 
VRF的技术原理介绍_VRF 思科网络
                                                                                                                                                                                  
上面组网中×××的设计思想是很巧妙的,但存在如下几个问题:
1、    本地路由冲突问题,即:在BLUE和YELLOW两个×××中可能会使用相同的IP地址段,比如10.1.1.0/24,那么在PE上如何区分这个地址段的路由是属于哪个×××的。
2、    路由在网络中的传播问题,上述问题会在整个网络中存在。
3、    PE向CE的报文转发问题,当PE接收到一个目的地址在10.1.1.0/24网段内的IP报文时,他如何判断该发给哪个×××? 
2.组网应用
2.1              VRF与MPLS组合应用
下面以图3为例说明MPLS ×××与VRF的典型应用:
组网中两个用户站点SITE1和SITE2属于同一个×××,在两个PE上分别配置VRF参数,其中VRF SITE1的RD=100:1,import RT =100:3,export RT =100:2,VRF SITE2的RD=100:1,import RT =100:2,export RT =100:3。通过VRF的配置可见:
两个VRF的RD同为100:1,说明他们属于同一个×××;
VRF SITE1导入和导出的RT分别等于VRF SITE2导出和导入的RT,说明两个VRF分别可以接收对方的×××站点内的路由;
PE连接CE的接口与VRF绑定,说明该接口是属于对于VRF的资源,其他VRF和公网是看不到的。
PE和CE之间可以运行OSPF、RIP2、EBGP和静态路由。运营商网络要求为MPLS网络,在PE1和PE2之间建立LSP,同时PE1与PE2间通过MP-IBGP来传播×××路由。BGP和路由协议的相关配置请参考VRP操作手册和命令手册。
 

VRF的技术原理介绍_VRF 思科网络_02

                                                                                                                                                                                  
××× SITE1内的一条路由10.10/16被通告到××× SITE2的过程如下:
PE1从接口S0/0上学习到由CE1通告的10.10.0.0/16的路由,由于S0/0是绑定到VRF的接口,所以PE1把该路由安装到对应VRF的路由表中,并且分配该路由的本地标签,注意该标签是本地唯一的。
然后通过路由重新发布把VRF路由表中的路由重新发布到BGP中,此时通过附加VRF表的RD、RT参数,把正常的IPv4路由变成×××-IPv4路由,如10.10.0.0/16变成100:1:10.10.0.0/16,同时把export RT值和该路由的本地标签值等信息一起通过MP-IBGP会话通告给PE2。
PE2收到这条×××-IPv4路由后,先根据RD确定该路由所属的VRF,然后去掉×××-IPv4路由所带的RD值,使之恢复IPv4路由原貌,并且根据所属VRF配置的导入策略(本地Import RT与收到的export RT是否一致)决定是否在本地VRF中安装此路由。本例中导入策略允许,所以PE2把10.10.0.0/16路由添加到VRF路由表中,同时记录对应的标签。
PE2再通过CE和PE之间的路由协议,把10.10.0.0/16路由通过与VRF绑定的接口S0/1通告出去,CE2学习到这条路由后把该路由添加到路由表中。
同样的道理SITE2内的路由10.11.0.0/16也可以被CE1学到。
下面说明从CE2 Ping 10.10.0.0/16时数据报文的转发过程(假设PE1为该路由分配的标签为10,从PE2到PE1的LSP标签分别为L1、L2):
 

VRF的技术原理介绍_VRF 思科网络_03

                                                                                                                                                                                  
首先Ping包从CE2发出,为IPv4报文,在图中用绿色方块标识。
当IP报文到达PE2时,PE2根据目的地址查找VRF的转发表,发现该路由出标签为10,同时该路由下一跳为PE1,而PE1对应的LSP标签为L1,于是PE2给报文分别打上10、L1作为内外层标签,进行MPLS转发。
MPLS报文到达P时,P根据MPLS转发表项把外层标签替换为L2继续转发。
MPLS报文到达PE1时,因为PE1是LSP的终点,所以外层标签被剥掉。PE1根据露出的内层标签10判断出该报文是发往SITE1所属×××的报文。于是PE1剥掉内层标签向CE1转发IP报文。
CE1收到的是还原后的IP报文,后续处理与正常IP处理流程一样,这里不再赘述。