1、1 原理简介近年来网络VPN技术方兴未艾,日益成为业界关注焦点。依照VPN实现技术特点,可以把VPN技术分为如下三类:老式VPN:FR和ATMCPE-based VPN:L2TP和IPSec等Provider Provisioned VPNs ( PP-VPN ):MPLS L2VPN和MPLS L3VPN。本文简介VRF特性是MPLS VPN中经常使用技术,中文含义为VPN路由转发实例。鉴于VRF与MPLS VPN密切有关,下面一方面对MPLS VPN作简要简介。图1是一种典型MPLS L3VPN组网图,运营商通过自己IP/MPLS核心网络为BLUE和YELLOW两个客户提供VPN服务。SI
2、TE1和SITE3分别为VPN BLUE两个站点,SITE2和SITE4分别为VPN YELLOW两个站点。VPN BLUE两个站点内主机可以互访,但不能访问VPN YELLOW内主机。同样,VPN YELLOW两个站点内主机可以互访,但不能访问VPN BLUE内主机。从而实现了两个VPN间逻辑划分和安全隔离。CE设备作用是把顾客网络连接到PE,与PE交互VPN顾客路由信息:向PE发布本地路由并从PE学习远端站点路由。PE作用是向直连CE学习路由,然后通过IBGP与其她PE互换所学VPN路由。PE设备负责VPN业务接入。P设备是运营商网络中不与CE直接相连设备,只要支持MPLS转发,并不能感知
3、到VPN存在。 图1 上面组网中VPN设计思想是很巧妙,但存在如下几种问题:1、 本地路由冲突问题,即:在BLUE和YELLOW两个VPN中也许会使用相似IP地址段,例如10.1.1.0/24,那么在PE上如何区别这个地址段路由是属于哪个VPN。2、 路由在网络中传播问题,上述问题会在整个网络中存在。3、 PE向CE报文转发问题,当PE接受到一种目地址在10.1.1.0/24网段内IP报文时,她如何判断该发给哪个VPN? 针对上述3个问题,分别有如下解决方案:1、 为理解决本地路由冲突问题,咱们引入了VRF概念:把每台PE路由器在逻辑上划分为多台虚拟路由器,即各种VPN路由转发实例VRF,每个
4、VRF相应一种VPN,有自己独立路由表、转刊登和相应接口。这就相称于将一台各VPN共享PE模仿成多台专用PE。这样PE与CE交互路由信息只是该VPN路由,从而实现了VPN路由隔离。由于不同VPN路由存储在不同VRF中,因此VPN路由重叠问题也解决了。2、 VPN重叠路由在网络中传播问题,可以在路由传递过程中为这条路由再添加一种标记,用以区别不同VPN。正常BGP4合同只能传递IPv4路由,由于不同VPN顾客具备地址空间重叠问题,必要修改BGP合同。BGP最大长处是扩展性好,可以在本来基本上再定义新属性,通过对BGP修改,把BGP4扩展成MP-BGP。在MP-IBGP邻居间传递VPN顾客路由时打
5、上RD标记等VPN信息,这样CE传来VPN顾客IPv4路由被PE转换为VPN-IPv4路由,这样就能保证对端PE可以区别开属于不同VPN顾客地址重叠路由。3、 PE向CE报文转发问题,由于IP报文格式不可更改,没有什么文章可以做,但可以在IP头之外加上某些信息(标签),由始发VPN打上标记,这样PE在接受报文时可以依照这个标记进行转发。 每一种VRF可以看作一台虚拟路由器,好像是一台专用PE设备。该虚拟路由器涉及如下元素:一张独立路由表/转刊登,固然也涉及了独立地址空间。一组归属于这个VRF接口集合。一组只用于本VRF路由合同。对于每个PE,可以维护一种或各种VRF,同步维护一种公网路由表(也
6、叫全局路由表),各种VRF实例互相分离独立。实现VRF并不困难,核心在于如何在PE上使用特定方略规则来协调各VRF和全局路由表之间关系。在VRF中定义和VPN业务关于两个重要参数是RT和RD,RT和RD长度都是64bit。RT是Route Target缩写,RT本质是每个VRF表达自己路由取舍及喜好方式,重要用于控制VPN路由发布和安装方略。分为import和export两种属性,前者表达了我对那些路由感兴趣,而后者表达了我发出路由属性。当PE发布路由时,将使用路由所属VRFRT export规则,直接发送给其她PE设备。对端PE接受路由时,一方面接受所有路由,并依照每个VRF配备RTimpo
7、rt规则进行检查,如果与路由中RT属性match,则将该路由加入到相应VRF中。如下图为例:SITE-1:我发路由是蓝色,我也只接受蓝色路由。SITE-2:我发路由是黄色,我也只接受黄色路由。SITE-3:我发路由是蓝色,我也只接受蓝色路由。SITE-4:我发路由是黄色,我也只接受黄色路由。这样,SITE-1与SITE-3中就只有自己和对方路由,两者实现了互访。同理SITE-2与SITE-4也同样。这时咱们就可以把SITE-1与SITE-3称为VPN BLUE,而把SITE-2与SITE-4称为VPN YELLOW。 图2 RD是Route Distinguisher缩写,是阐明路由属于哪个V
8、PN标志。理论上可觉得每个VRF配备一种RD,普通建议为每个VPNVRF都配备相似RD,并且要保证这个RD全球唯一。如果两个VRF中存在相似地址,但是由于RD不同,这两个路由在PE间发布过程中也不会混淆,由于MP BGP把RD和路由一起发送,对端PE可以依照RD拟定路由所属VPN,从而把路由安装到对的VRF中。RD并不会影响不同VRF之间路由选取以及VPN形成,这些事情由RT搞定。PE从CE接受原则路由是IPv4路由,如果需要发布给其她PE路由器,此时需要为这条路由附加一种RD。在IPv4地址加上RD之后,就变成VPN-IPv4地址族了。VPN-IPv4地址仅用于服务供应商网络内部。在PE发布
9、路由时添加,在PE接受路由后放在本地路由表中,用来与日后接受到路由进行比较。CE不懂得使用是VPN-IPv4地址。 2 组网应用2.1 VRF与MPLS组合应用下面以图3为例阐明MPLS VPN与VRF典型应用:组网中两个顾客站点SITE1和SITE2属于同一种VPN,在两个PE上分别配备VRF参数,其中VRF SITE1RD=100:1,import RT =100:3,export RT =100:2,VRF SITE2RD=100:1,import RT =100:2,export RT =100:3。通过VRF配备可见:两个VRFRD同为100:1,阐明她们属于同一种VPN;VRF S
10、ITE1导入和导出RT分别等于VRF SITE2导出和导入RT,阐明两个VRF分别可以接受对方VPN站点内路由;PE连接CE接口与VRF绑定,阐明该接口是属于对于VRF资源,其她VRF和公网是看不到。PE和CE之间可以运营OSPF、RIP2、EBGP和静态路由。运营商网络规定为MPLS网络,在PE1和PE2之间建立LSP,同步PE1与PE2间通过MP-IBGP来传播VPN路由。BGP和路由合同有关配备请参照VRP操作手册和命令手册。 图3 VPN SITE1内一条路由10.10/16被告示到VPN SITE2过程如下:PE1从接口S0/0上学习到由CE1告示10.10.0.0/16路由,由于S
11、0/0是绑定到VRF接口,因此PE1把该路由安装到相应VRF路由表中,并且分派该路由本地标签,注意该标签是本地唯一。然后通过路由重新发布把VRF路由表中路由重新发布到BGP中,此时通过附加VRF表RD、RT参数,把正常IPv4路由变成VPN-IPv4路由,如10.10.0.0/16变成100:1:10.10.0.0/16,同步把export RT值和该路由本地标签值等信息一起通过MP-IBGP会话告示给PE2。PE2收到这条VPN-IPv4路由后,先依照RD拟定该路由所属VRF,然后去掉VPN-IPv4路由所带RD值,使之恢复IPv4路由原貌,并且依照所属VRF配备导入方略(本地Import
12、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到PE1LSP标签分别为L1、L2): 图4 一方面Ping包从CE2发出,为IPv4报文,在图
13、中用绿色方块标记。当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所属VPN报文。于是PE1剥掉内层标签向CE1转发IP报文。CE1收到是还原后IP报文,后续解决与正常IP解决流程同样,这里不再赘述。2.2 VRF lite特性应用尽管VRF经
14、常与MPLS一起使用,但VRF也可以脱离MPLS单独应用。VRF lite就是典型例子。VRF lite就是在CE设备上支持VRF。图5所示为典型MPLS VPN组网中顾客侧网络,一种公司分支内部三个部门规定互相隔离,分别通过一台CE连接到PE,形成一种VPN。可见,该分支机构需要三台出口路由器,三条链路与PE连接;同步PE需要为一种公司顾客提供三个接口,这将带来端口、链路资源挥霍,直接导致成本与支出增长。 图5 针对这种状况,咱们引入VRF lite特性来解决问题,即在CE上配备VRF特性。详细组网如图6所示:此时公司分支只需要一台CE路由器与PE相连,在CE上配备VRF,CE连接三个部门接
15、口分别与VRF绑定。同步CE只需要一条物理链路与PE相连,并通过链路子接口分别与VRF绑定,完毕CE与PE上相应VRF逻辑连接。PE与CE可以在各个VRF中运营动态路由合同完毕VPN路由互换。PE上配备和图5中同样,需要配备VRF和MP-IBGP。 图6 这种方案长处有:只需要一种CE,比多CE状况简化了网络配备和管理;PE与CE间只需一条物理链路;节约了PE端口资源;容许公司内部不同部门间地址重叠;3 应用场合VRF特性用于实现VPN需求,可以与MPLS配合使用,也可以单独组网应用4 配备举例4.1 VRF与MPLS组合应用图3所示组网配备如下:CE1配备:# sysname CE1 # d
16、omain system # controller T3 3/0 using t3 # interface Aux0 async mode flow # interface Ethernet0/0 /*连接site1内网络*/ ip address 10.10.0.1 255.255.0.0 # interface Ethernet0/1 # interface Serial3/0/0 link-protocol ppp ip address 100.10.0.1 255.255.0.0 # interface NULL0 # interface LoopBack9 ip address 28
17、.40.1.1 255.255.255.255 # ospf 1 import-route direct area 0.0.0.0 network 100.10.0.0 0.0.255.255 # user-interface con 0 idle-timeout 0 0 user-interface aux 0 user-interface vty 0 4 # returnPE1配备:# sysname PE1# mpls lsr-id 28.40.1.2 # /*公网运营MPLS*/mpls # mpls ldp # /*VRF配备*/ip vpn-instance site1 route
18、-distinguisher 100:1 vpn-target 100:2 export-extcommunity vpn-target 100:3 import-extcommunity # domain system # controller T3 3/0 using t3 # interface Aux0 async mode flow # interface Ethernet0/0 /*连接P接口*/ ip address 172.16.32.59 255.255.0.0 mpls mpls ldp enable# interface Ethernet0/1 # interface S
19、erial0/0 /*连接CE接口*/ ip binding vpn-instance site1 link-protocol ppp ip address 100.10.0.2 255.255.0.0 # interface NULL0 # interface LoopBack9 ip address 28.40.1.2 255.255.255.255 # bgp 100 /*配备MP iBGP*/ undo synchronization group in100 internal peer in100 connect-interface LoopBack9 peer 46.80.1.1 g
20、roup in100 /*46.80.1.1是PE2loopback口地址*/ # ipv4-family vpn-instance blue import-route direct import-route ospf undo synchronization # ipv4-family vpnv4 peer in100 enable peer 46.80.1.1 group in100 # ospf 1 /*IP网络上跑OSPF*/ import-route direct area 0.0.0.0 network 172.16.0.0 0.0.255.255 # ospf 100 vpn-i
21、nstance site1 /*VRF中运营OSPF,与CE互换路由*/ import-route direct area 0.0.0.0 network 100.10.0.0 0.0.255.255 # user-interface con 0 idle-timeout 0 0 user-interface aux 0 user-interface vty 0 4 # return 阐明:PE2和CE2配备与PE1和CE1类似,此处不再列出。关于BGP和MPLS配备,请参照操作手册和命令手册4.2 VRF lite特性应用图6中各路由器配备如下CE配备:# sysname CE # ip v
22、pn-instance MRT /*VRF MRT */ route-distinguisher 100:1 vpn-target 100:1 export-extcommunity vpn-target 100:1 import-extcommunity # ip vpn-instance RD /*VRF RD */ route-distinguisher 200:1 vpn-target 200:1 export-extcommunity vpn-target 200:1 import-extcommunity # ip vpn-instance HR /*VRF HR */ route
23、-distinguisher 300:1 vpn-target 300:1 export-extcommunity vpn-target 300:1 import-extcommunity # domain system # local-user admin # interface Aux0 async mode flow # interface Ethernet0/0ip address 110.11.0.2 255.255.0.0 /*连接MRT部门*/# interface Ethernet0/1 ip address 110.12.0.2 255.255.0.0 /*连接RD部门*/#
24、 interface Ethernet2/0 ip address 110.13.0.2 255.255.0.0 /*连接HR部门*/# interface Ethernet2/1 # interface Ethernet2/1.1 /*VRF MRT子接口*/ ip binding vpn-instance MRT ip address 11.11.0.2 255.255.0.0 vlan-type dot1q vid 1 # interface Ethernet2/1.2 /*VRF RD子接口*/ ip binding vpn-instance RD ip address 11.12.0
25、.2 255.255.0.0 vlan-type dot1q vid 2 # interface Ethernet2/1.3 /*VRF HR子接口*/ ip binding vpn-instance HR ip address 11.13.0.2 255.255.0.0 vlan-type dot1q vid 3 # interface Serial1/0 link-protocol ppp ip address ppp-negotiate # interface NULL0 # ospf 1 vpn-instance MRT /*VRF MRT与PE跑ospf*/ import-route
26、 direct area 0.0.0.0 network 11.11.0.0 0.0.255.255 # ospf 2 vpn-instance RD /* VRF RD与PE跑ospf */ import-route direct area 0.0.0.0 network 11.12.0.0 0.0.255.255 # ospf 3 vpn-instance HR /* VRF HR与PE跑ospf */ import-route direct area 0.0.0.0 network 11.13.0.0 0.0.255.255 # user-interface con 0 user-interface aux 0 user-interface vty 0 4 authentication-mode scheme # returnPE配备:# sysname 2840 # mpls lsr-id 28.40.0.1 # mpls #