1、VRF技术详解.VRF技术详解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 的组网图
2、,运营商通过自己的IP/MPLS 核心网络为 BLUE 和 YELLOW两个客户提供 VPN 服务。 SITE1 和 SITE3 分别为 VPN BLUE的两个站点, SITE2 和 SITE4 分别为 VPNYELLOW 的两个站点。 VPN BLUE两个站点内的主机可以互访,但不能访问 VPN YELLOW 内的主机。 同样,VPN YELLOW 两个站点内的主机可以互访,但不能访问VPN BLUE 内的主机。从而实现了两个 VPN间的逻辑划分和安全隔离。CE 设备的作用是把用户网络连接到PE ,与 PE 交互 VPN 用户路由信息:向PE 发布本地路由并从 PE 学习远端站点路由。PE
3、作用是向直连的 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
4、 接收到一个目的地址在 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 路由
5、重叠的问题也解决了。2、VPN 重叠路由在网络中的传播问题,可以在路由传递的过程中为这条路由再添加一个标识,用以区别不同的 VPN 。协议只能传递 IPv4 的路由, 由于不同 VPN 用户具有正常的 BGP4地址空间重叠的问题,必须修改BGP 协议。 BGP 最大的优点是扩展性好,可以在原来的基础上再定义新的属性, 通过对 BGP 修改,把 BGP4 扩展成 MP-BGP 。在 MP-IBGP邻居间传递 VPN 用户路由时打上RD 标记等 VPN 信息,这样 CE 传来的 VPN 用户的IPv4 路由被 PE 转换为 VPN-IPv4路由,这样就能保证对端PE 能够区分开属于不同VPN 用户
6、的地址重叠的路由。3、 PE 向 CE 的报文转发问题, 由于 IP 报文的格式不可更改,没有什么文章可以做,但可以在 IP头之外加上一些信息(标签),由始发的 VPN 打上标记,这样 PE 在接收报文时可以根据这个标记进行转发。每一个 VRF 可以看作一台虚拟的路由器,好像是一台专用的 PE 设备。该虚拟路由器包括如下元素:一张独立的路由表 /转发表,当然也包括了独立的地址空间。一组归属于这个 VRF 的接口集合。一组只用于本 VRF 的路由协议。对于每个 PE ,可以维护一个或多个 VRF ,同时维护一个公网的路由表(也叫全局路由表),多个 VRF 实例相互分离独立。 实现 VRF 并不困
7、难, 关键在于如何在 PE 上使用特定的策略规则来协调各 VRF 和全局路由表之间的关系。在 VRF 中定义的和 VPN 业务有关的两个重要参数是 RT 和 RD ,RT 和 RD 长度都是 64bit 。RT 是 Route Target 的缩写, RT 的本质是每个 VRF 表达自己的路由取舍及喜好的方式, 主要用于控制 VPN 路由的发布和安装策略。分为 import 和 export 两种属性,前者表示了我对那些路由感兴趣, 而后者表示了我发出的路由的属性。 当 PE 发布路由时, 将使用路由所属 VRF 的 RTexport 规则,直接发送给其他的 PE 设备。对端 PE 接收路由时
8、,首先接收所有的路由,并根据每个 VRF 配置的 RT 的 import 规则进行检查,如果与路由中的 RT 属性 match ,则将该路由加入到相应的 VRF 中。以下图为例:SITE-1 :我发的路由是蓝色的,我也只接收蓝色的路由。SITE-2 :我发的路由是黄色的,我也只接收黄色的路由。SITE-3 :我发的路由是蓝色的,我也只接收蓝色的路由。SITE-4 :我发的路由是黄色的,我也只接收黄色的路由。;.这样, SITE-1 与 SITE-3 中就只有自己和对方的路由,两者实现了互访。同理 SITE-2 与 SITE-4 也一样。这时我们就可以把 SITE-1 与 SITE-3 称为 V
9、PN BLUE ,而把 SITE-2 与 SITE-4 称为 VPN YELLOW 。图 2RD 是 Route Distinguisher的缩写,是说明路由属于哪个VPN的标志。理论上可以为每个VRF配置一个 RD ,通常建议为每个VPN 的 VRF 都配置相同的 RD ,并且要保证这个 RD 全球唯一。如果两个 VRF 中存在相同的地址,但是由于RD 不同,这两个路由在PE 间发布过程中也不会混淆,因为 MP BGP 把 RD 和路由一起发送,对端PE 可以根据 RD 确定路由所属的 VPN ,从而把路由安装到正确的VRF 中。RD 并不会影响不同VRF 之间的路由选择以及VPN 的形成,
10、这些事情由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 上分别配
11、置 VRF 参数,其中 VRFSITE1 的 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 ,说明他们属于同一个 VPN ;VRF SITE1 导入和导出的 RT 分别等于 VRF SITE2 导出和导入的 RT ,说明两个 VRF 分别可以接收对方的 VPN 站点内的路由;PE 连接 CE 的接口与 VRF 绑定, 说明该接口是属于对于 VRF 的资源, 其他 V
12、RF 和公网是看不到的。;.PE 和 CE 之间可以运行 OSPF 、RIP2 、EBGP 和静态路由。 运营商网络要求为 MPLS 网络,在 PE1 和 PE2 之间建立 LSP ,同时 PE1 与 PE2 间通过 MP-IBGP 来传播 VPN 路由。 BGP 和路由协议的相关配置请参考 VRP 操作手册和命令手册。图 3VPN SITE1 内的一条路由 10.10/16 被通告到 VPN SITE2 的过程如下:PE1 从接口 S0/0 上学习到由 CE1 通告的 10.10.0.0/16 的路由,由于 S0/0 是绑定到 VRF 的接口,所以 PE1 把该路由安装到对应 VRF 的路由
13、表中, 并且分配该路由的本地标签, 注意该标签是本地唯一的。然后通过路由重新发布把 VRF 路由表中的路由重新发布到 BGP 中,此时通过附加 VRF 表的 RD、RT 参数,把正常的 IPv4 路由变成 VPN-IPv4 路由,如 10.10.0.0/16 变成 100:1:10.10.0.0/16 ,同时把 exportRT 值和该路由的本地标签值等信息一起通过 MP-IBGP 会话通告给 PE2 。PE2 收到这条 VPN-IPv4 路由所带的 RD 值,使之恢复与收到的 export RT 是否一致路由后,先根据 RD 确定该路由所属的 VRF ,然后去掉 VPN-IPv4IPv4 路
14、由原貌,并且根据所属 VRF 配置的导入策略 (本地 Import 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 为该路由分配的标
15、签为 10 ,从PE2 到 PE1 的 LSP 标签分别为 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 的终点, 所以外层标
16、签被剥掉。 PE1 根据露出的内层标签 10 判断出该报文是发往 SITE1 所属 VPN 的报文。于是 PE1 剥掉内层标签向 CE1 转发 IP 报文。CE1 收到的是还原后的 IP 报文,后续处理与正常 IP 处理流程一样,这里不再赘述。2.2 VRF lite 特性应用尽管 VRF 经常与 MPLS 一起使用,但 VRF 也可以脱离 MPLS 单独应用。 VRF lite 就是典型例子。 VRFlite 就是在 CE 设备上支持 VRF 。图 5 所示为典型 MPLS VPN 组网中用户侧网络,一个企业分支内部的三个部门要求相互隔离,分别通过一台 CE 连接到 PE ,形成一个 VPN
17、 。可见,该分支机构需要三台出口路由器,三条链路与 PE 连接;同时 PE 需要为一个企业用户提供三个接口,这将带来端口、链路资源的浪费,直接导致成本与支出的增加。图 5;.针对这种情况,我们引入 VRF lite 特性来解决问题,即在 CE 上配置 VRF 特性。具体组网如图 6 所示:此时企业分支只需要一台 CE 路由器与 PE 相连,在 CE 上配置 VRF ,CE 连接三个部门的接口分别与VRF 绑定。同时 CE 只需要一条物理链路与 PE 相连,并通过链路的子接口分别与 VRF 绑定,完成 CE 与PE 上对应 VRF 的逻辑连接。 PE 与 CE 可以在各个 VRF 中运行动态路由
18、协议完成 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/0using t3#interface Aux0
19、async mode flow;.#interface Ethernet0/0 /*连接 site1 内的网络 */ip address 10.10.0.1 255.255.0.0#interface Ethernet0/1#interface Serial3/0/0link-protocol pppip address 100.10.0.1 255.255.0.0#interface NULL0#interface LoopBack9ip address 28.40.1.1 255.255.255.255#ospf 1 import-route direct area 0.0.0.0netw
20、ork 100.10.0.0 0.0.255.255#user-interface con 0idle-timeout 0 0user-interface aux 0user-interface vty 0 4#returnPE1 配置:#sysname PE1#mpls lsr-id 28.40.1.2#mpls#mpls ldp#/*公网运行 MPLS*/*VRF 配置 */ip vpn-instance site1route-distinguisher 100:1vpn-target 100:2 export-extcommunityvpn-target 100:3 import-ext
21、community#domain system#controller T3 3/0;.using t3#interface Aux0async mode flow#interface Ethernet0/0 /*连接 P 的接口 */ip address 172.16.32.59 255.255.0.0mplsmpls ldp enable#interface Ethernet0/1# interface Serial0/0 /*连接 CE 的接口 */ip binding vpn-instance site1link-protocol pppip address 100.10.0.2 255
22、.255.0.0#interface NULL0# interface LoopBack9ip address 28.40.1.2 255.255.255.255#bgp 100/*配置 MP iBGP*/undo synchronizationgroup in100 internalpeer in100 connect-interface LoopBack9peer 46.80.1.1 group in100/*46.80.1.1 是 PE2的 loopback口地址 */#ipv4-family vpn-instance blueimport-route directimport-rout
23、e ospfundo synchronization#ipv4-family vpnv4peer in100 enablepeer 46.80.1.1 group in100#ospf 1 /*IP 网络上跑 OSPF*/import-route directarea 0.0.0.0network 172.16.0.0 0.0.255.255#ospf 100 vpn-instance site1 /*VRF 中运行 OSPF ,与 CE 交换路由 */ import-route directarea 0.0.0.0network 100.10.0.0 0.0.255.255;.#user-i
24、nterface con 0idle-timeout 0 0user-interface aux 0user-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:1vpn-target 100:1 export-extcommunityvpn-target
25、 100:1 import-extcommunity#ip vpn-instance RD /*VRF RD */route-distinguisher 200:1vpn-target 200:1 export-extcommunityvpn-target 200:1 import-extcommunity#ip vpn-instance HR /*VRF HR */route-distinguisher 300:1vpn-target 300:1 export-extcommunityvpn-target 300:1 import-extcommunity#domain system#loc
26、al-user admin#interface Aux0async mode flow#interface Ethernet0/0ip address 110.11.0.2 255.255.0.0 /* 连接 MRT 部门 */#;.interface Ethernet0/1ip address 110.12.0.2 255.255.0.0/* 连接 RD部门 */#interface Ethernet2/0ip address 110.13.0.2 255.255.0.0/* 连接 HR部门 */#interface Ethernet2/1#interface Ethernet2/1.1/*
27、VRF MRT的子接口 */ip binding vpn-instance MRTip address 11.11.0.2 255.255.0.0vlan-type dot1q vid 1#interface Ethernet2/1.2/*VRF RD的子接口 */ip binding vpn-instance RDip address 11.12.0.2 255.255.0.0vlan-type dot1q vid 2#interface Ethernet2/1.3/*VRF HR的子接口 */ip binding vpn-instance HRip address 11.13.0.2 25
28、5.255.0.0vlan-type dot1q vid 3#interface Serial1/0link-protocol pppip address ppp-negotiate#interface NULL0#ospf 1 vpn-instance MRT/*VRF MRT 与 PE 跑 ospf*/import-route directarea 0.0.0.0network 11.11.0.0 0.0.255.255#ospf 2 vpn-instance RD/* VRF RD与 PE跑 ospf */import-route directarea 0.0.0.0network 11.12.0.0 0.0.255.255
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1