《VRF技术详解(2020年12月整理).pptx》由会员分享,可在线阅读,更多相关《VRF技术详解(2020年12月整理).pptx(13页珍藏版)》请在金锄头文库上搜索。
1、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 的组网图
2、,运营商通过自己的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 作
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、路由在网络中的传播问题,上述问题会在整个网络中存在。,1,2,3、PE 向 CE 的报文
4、转发问题,当 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
5、路由重叠的问题也解决了。 2、VPN 重叠路由在网络中的传播问题,可以在路由传递的过程中为这条路由再添加一个标识, 用以区别不同的 VPN。正常的 BGP4 协议只能传递IPv4 的路由,由于不同 VPN 用户 具有地址空间重叠的问题,必须修改BGP 协议。BGP 最大的优点是扩展性好,可以 在原来的基础上再定义新的属性,通过对BGP 修改,把 BGP4 扩展成MP-BGP。在 MP-IBGP 邻居间传递 VPN 用户路由时打上 RD 标记等 VPN 信息,这样 CE 传来的 VPN 用户的IPv4 路由被 PE 转换为 VPN-IPv4 路由,这样就能保证对端 PE 能够区 分开属于不同 V
6、PN 用户的地址重叠的路由。 3、PE 向 CE 的报文转发问题,由于 IP 报文的格式不可更改,没有什么文章可以做,但可以在 IP 头之外加上一些信息(标签),由始发的 VPN 打上标记,这样 PE 在接收报文时可以根据 这个标记进行转发。 每一个 VRF 可以看作一台虚拟的路由器,好像是一台专用的 PE 设备。该虚拟路由器 包括如下元素: 一张独立的路由表/转发表,当然也包括了独立的地址空间。 一组归属于这个VRF 的接口集合。 一组只用于本VRF 的路由协议。 对于每个 PE,可以维护一个或多个 VRF,同时维护一个公网的路由表(也叫全局路由表), 多个VRF 实例相互分离独立。实现VR
7、F 并不困难,关键在于如何在 PE 上使用特定的策略规 则来协调各VRF 和全局路由表之间的关系。 在VRF 中定义的和 VPN 业务有关的两个重要参数是 RT 和 RD,RT 和 RD 长度都是 64bit。 RT 是Route Target 的缩写,RT 的本质是每个 VRF 表达自己的路由取舍及喜好的方式,主要 用于控制 VPN 路由的发布和安装策略。分为import 和export 两种属性,前者表示了我对那些 路由感兴趣,而后者表示了我发出的路由的属性。当 PE 发布路由时,将使用路由所属 VRF 的 RT export 规则,直接发送给其他的 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 称为VPN BLUE,而
9、把SITE-2 与SITE-4 称为VPN YELLOW。,图 2 RD 是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 地址。 组网应用 VRF 与 MPLS 组合应用 下面以图 3 为例说明MPLS VPN 与VRF 的典型应用: 组网中两个用户站点SITE1 和SITE2 属于同一个 VPN,在两个 PE 上
11、分别配置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,说明他们属于同一个 VPN; VRF SITE1 导入和导出的 RT 分别等于 VRF SITE2 导出和导入的 RT,说明两个 VRF 分别可以 接收对方的VPN 站点内的路由;,3,PE 连接 CE 的接口与 VRF 绑定,说明该接口是属于对于 VRF 的资源,其他 VRF 和公网 是
12、看不到的。 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 的路由表中,并且分配该路由的本
13、地标签,注意 该标签是本地唯一的。 然后通过路由重新发布把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 R
14、T 与收到的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
15、 的LSP 标签分别为 L1、L2):,4,图 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 判断出该报文是发往
16、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,5,针对这种情况,我们引入VRF lite 特性来解决问题,即在 CE 上配置VRF 特性。具体组网如图 6 所 示:此时企业分支只需要一台 CE 路由器与 PE 相连,在 CE 上配置VRF,CE 连接三个部门的接口分别 与VRF 绑定。同时 CE 只需要一条物理链路与 PE 相连