资源描述
VRF技术详解
1. 原理简介
近年来网络VPN技术方兴未艾,日益成为业界关注焦点。依照VPN实现技术特点,可以把VPN技术分为如下三类:
老式VPN:FR和ATM
CPE-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服务。SITE1和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转发,并不能感知到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,每个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顾客路由时打上RD标记等VPN信息,这样CE传来VPN顾客IPv4路由被PE转换为VPN-IPv4路由,这样就能保证对端PE可以区别开属于不同VPN顾客地址重叠路由。
3、 PE向CE报文转发问题,由于IP报文格式不可更改,没有什么文章可以做,但可以在IP头之外加上某些信息(标签),由始发VPN打上标记,这样PE在接受报文时可以依照这个标记进行转发。
每一种VRF可以看作一台虚拟路由器,好像是一台专用PE设备。该虚拟路由器涉及如下元素:
一张独立路由表/转刊登,固然也涉及了独立地址空间。
一组归属于这个VRF接口集合。
一组只用于本VRF路由合同。
对于每个PE,可以维护一种或各种VRF,同步维护一种公网路由表(也叫全局路由表),各种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配备RTimport规则进行检查,如果与路由中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缩写,是阐明路由属于哪个VPN标志。理论上可觉得每个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发布路由时添加,在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 SITE1导入和导出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路由,由于S0/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 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报文,在图中用绿色方块标记。
当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经常与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连接三个部门接口分别与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.1VRF与MPLS组合应用
图3所示组网配备如下:
CE1配备:
#
sysname CE1
#
domain 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.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
#
return
PE1配备:
#
sysname PE1
#
mpls lsr-id 28.40.1.2
# /*公网运营MPLS*/
mpls
#
mpls ldp
# /*VRF配备*/
ip vpn-instance site1
route-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 Serial0/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 group 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-instance 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 vpn-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-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/0
ip address 110.11.0.2 255.255.0.0 /*连接MRT部门*/
#
interface Ethernet0/1
ip address 110.12.0.2 255.255.0.0 /*连接RD部门*/
#
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.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 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
#
return
PE配备:
#
sysname 2840
#
mpls lsr-id 28.40.0.1
#
mpls
#
展开阅读全文