四、MPLS VPN跨域解决方案

1 跨域和非跨域的区别

在了解跨域和非跨域的区别前,先看下面两点

  • 多AS的特点
    1、每个AS都拥有各自的IGP协议,区域之间不可能交换所有的路由信息,而是选择性的交换
    2、AS之间使用eBGP协议连接
    3、无论是单AS还是多AS,客户路由是不能出现在公网中的,防止和正常使用的公网IP冲突
  • LDP的特点
    1、不会为BGP条目分配标签

综上,出现一个问题:
ASBR之间也就是AS边界设备之间将无法使用LDP协议来进行跨跳建立邻居的路由黑洞避免,所以衍生出以下三种方案

2 标签的回顾以及深入研究

2.1 标签的种类

标签分三种

  • 1、LDP标签
    封装在最外层,代替公网使用的标签,用于防止iBGP跨跳建立邻居时的路由黑洞问题
  • 2、BGP-Label标签
    封装在中间层,用于跨域MPLS VPN的Option C方案里的两个ASBR之间的流量的转发
  • 3、MP-BGP标签
    封装在最内层,用于存在VRF的场景中,负责根据将数据流转发到指定的关联VRF的接口

2.2 标签的生成和转发

  • 表项生成
    在这里插入图片描述
  • 标签的装填(生成)和转发
    前者依赖FIB表,后者依赖LFIB表;
  • 标签变化位置
    无论哪一种标签,标签变化的位置都是在NH(下一跳)变化的位置,其中的NH要看是哪一种标签;
    LDP标签就是LDP的下一个邻居位置,BGP-Label标签就是IPV4 BGP的下一个BGP邻居位置(如果有next-hop-self的话),MP-BGP标签就是下一个MP-BGP邻居的位置(MP-BGP的iBGP邻居会自动next-hop-self);

2.3 LDP标签特性说明

  • 特性一
    LDP不为路由表中的BGP路由分发标签也就是开头有个“R”的条目
  • 特性二
    当本地访问的IP是BGP路由匹配的IP时,封装的LDP标签应该是:LDP邻居发来的,本地BGP路由条目经过在BGP条目中“递归查找”后得出的最优的下一跳的IP的标签;(附带VRF特性说明,VRF的RIB在生成FIB时,会调用全局的RIB来进行“递归查找”等操作生成VRF的FIB

图示说明 在这里插入图片描述


例子1:
PE2开启VRF 1关联的接口下连CEA-2 在这里插入图片描述
查看PE2表项

  • 按照LDP分发逻辑打上的标签是邻居发来的5.5.5.5对应的标签,但是显然不是;
  • 而是经过递归后得出的邻居发来的8.8.8.8对应的标签;
  • 所以得出结论,对于BGP条目,需要递归到有效BGP路由中最优的下一跳然后封装邻居发来的这个IP对应的标签;
    在这里插入图片描述
    在这里插入图片描述

例子2:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 特性三
    对于多标签情况,我们根据上一层标签的NH来作为下一层标签的network(当然,需要开启相关的协议才可以)

例子1:
随便举例,MPLS VPN C里面的标签封装,后面会详细介绍
在这里插入图片描述

  • 特性四
    对于MPLS标签和BGP-Label标签,默认都开启PHP机制(次末跳弹出机制)

3 跨域MPLS VPN解决方案

3.1 Option A

  • 方案介绍
    需要跨域的VPN在ASBR间通过专用的接口管理自己的VRF路由(子接口),VRF-to-VRF;

  • 方案优势
    1、 ISP可以自己定义RT值,不需要多个ISP协商

  • 方案缺陷
    1、ASBR设备负担较大,需要承载所有客户路由
    2、ASBR设备间链路负担较大,因为需要开子接口,一条链路多个子接口共用,带宽有限
    3、对于跨越多个运营商(超过两个),配置比较麻烦
    4、以上缺陷注定客户的节点数和需要传递的网络数不能太多,也就是网络规模不能过大

  • 方案细节
    在这里插入图片描述

  • 转发原理
    (1)CE2向PE2绑定了VRF的接口发出目的IP为Client的流量
    (2)PE2的VRF接口收到流量之后,根据访问的目的IP查询对应VRF的VPNV4的表项,封装上VPNV4标签
    (3)由于还有开启LDP协议,所以再把对应VPNV4表项内的NH作为MPLS表项的network来查找标签的进行封装,最后打上了两层标签(一弹出层内网标签,一层外网标签)根据最外层标签的NH发往P2
    (4)P2接收之后将最外层标签弹出,发往ASBR2
    (5)ASBR2收到之后,弹出MP-BGP标签发往ASBR1
    (6)ASBR1的VRF接口收到不带标签的流量之后,根据访问的目的IP查询对应VRF的VPNV4的表项,封装上VPNV4标签
    (7)由于还有开启LDP协议,所以再把对应VPNV4表项内的NH作为MPLS表项的network来查找标签的进行封装,最后打上了两层标签(一弹出层内网标签,一层外网标签)发往P1
    (8)P1接收之后将最外层标签弹出,发往PE1
    (9)PE1接收到带内网标签的报文之后,将流量导入对应的VRF,CE1接收到流量完成流量的转发

3.2 Option B

  • 方案介绍
    ASBR间通过MP-EBGP发布标签VPNV4路由,也称为单跳MP-EBGP跨域方式
  • 方案优势
    1、较OptionA而言,ASBR中间链路负担小,因为不用划分子接口
  • 方案缺陷
    1、RT值需要两个ISP协商
    2、ASBR需要保存VPNV4前缀信息,ASBR负担较重可能成为瓶颈
    2、对于跨越多个运营商(超过两个),配置比较麻烦
  • 方案细节
    在这里插入图片描述
  • 转发原理
    (1)CE2向PE2绑定了VRF的接口发出目的IP为Client的流量
    (2)PE2的VRF接口收到流量之后,根据访问的目的IP查询对应VRF的VPNV4的表项,封装上VPNV4标签
    (3)由于还有开启LDP协议,所以再把对应VPNV4表项内的NH作为MPLS表项的network来查找标签的进行封装,根据最外层标签的NH发往P2
    (4)P2接收之后将最外层标签弹出,发往ASBR2
    (5)ASBR2收到之后,交换MP-BGP标签发往ASBR1(此时就一层内层标签)
    (6)ASBR1收到之后,先根据MP-BGP表项交换MP-BGP标签,然后再将该标签的NH做为MPLS表项的network来查找标签进行封装,最后根据最外层标签的下一跳发出流量(此时携带两层的标签)
    (7)P1接收到之后将最外层标签弹出,发往PE1
    (8)PE1接收到带内网标签的报文之后,将流量导入对应的VRF,CE1接收到流量完成流量的转发

3.3 Option C

  • 方案介绍
    PE或RR之间通过Multi-hop MP-EBGP发布VPNV4路由,也称为多跳MP-EBGP跨域方式,也是现网最常使用的方式

  • 方案优势
    1、对于跨多ISP的情况下部署更加合理

  • 方案缺陷
    1、方案贼几把难理解
    2、方案配置较复杂
    3、RT值需要ISP之间协商

  • 方案细节
    在这里插入图片描述

  • 转发原理
    (1)CE2向PE2绑定了VRF的接口发出目的IP为Client的流量
    (2)PE2的VRF接口收到流量之后,根据访问的目的IP查询对应VRF的VPNV4的表项,封装上VPNV4标签
    (3)由于有开启BGP-Label协议,所以再把对应VPNV4表项内的NH作为BGP-Label表项的network来查找标签的进行封装
    (4)由于还有开启LDP协议,所以再把对应BGP-Label表项内的NH作为MPLS表项的network来查找标签的进行封装,根据最外层标签的NH发往P2(此时一共三层标签,一层内网标签,两层外网标签)
    (5)P2接收之后将最外层标签弹出,发往ASBR2
    (5)ASBR2收到之后,交换中层标签,根据其NH发往ASBR1
    (6)ASBR1收到之后,弹出中层标签,然后再将该标签的NH做为MPLS表项的network来查找标签进行封装,最后根据最外层标签的下一跳发出流量到P1(此时携带两层的标签)
    (7)P1接收到之后将最外层标签弹出,发往PE1
    (8)PE1接收到带内网标签的报文之后,将流量导入对应的VRF,CE1接收到流量完成流量的转发

4 部分实现代码

(代码仅是事例和拓扑图配置无关)

  • Option A
    在这里插入图片描述
    (1)每个设备配置物理接口IP以及环回接口IP
    (2)搭建Underlay网络,每个蓝色区域内使用IGP协议实现AS内互通,并且都启用LDP协议
    (3)配置PE和ASBR的VRF并且关联接口(其中两个ASBR之间接口用子接口关联),并且CE与PE的VRF之间建立普通eBGP邻居(环回口建立邻居)
  • VRF配置事例
    创建VRF并且设定RD和RT值
    R1(config)#ip vrf sb
    R1(config-vrf)#rd 250:520
    R1(config-vrf)#route-target both 5:21
    将相关接口关联进VRF
    R1(config)#int f0/0
    R1(config-if)#ip vrf forwarding sb
  • 子接口设置
    R1(config)#int f0/0.1
    R1(config-subif)#
  • eBGP环回接口建邻
    R1(config)#router bgp 1
    R1(config-router)#address-family ipv4 在IPV4地址族内用VRF和CE建立邻居
    R1(config-router-af)#neighbor 3.3.3.3 remote-as 3
    R1(config-router-af)#neighbor 3.3.3.3 update-source loopback 0
    R1(config-router-af)#neighbor 3.3.3.3 ebgp-multihop 10 开启多跳(默认TTL=1)同时也取消了eBGP的直连检测

(4)PE1和ASBR1建立MP-iBGP邻居,PE2和ASBR2同理

  • MP-iBGP配置事例
    R1(config)#router bgp 1
    R1(config-router)#no bgp default ipv4-unicast 当建立MP-BGP邻居之后关闭默认建立的普通的IPV4邻居
    R1(config-router)#neighbor 3.3.3.3 remote-as 1
    R1(config-router)#neighbor 3.3.3.3 update-source loopback 0
    R1(config-router)#address-family vpnv4 在VPNV4地址族内激活MP-BGP
    R1(config-router-af)#neighbor 3.3.3.3 activate

(5)CE侧宣告内网路由

  • Option B

在这里插入图片描述1、每个设备配置物理接口IP以及环回接口IP
2、搭建Underlay网络,每个蓝色区域内使用IGP协议实现AS内互通,并且都启用LDP协议
3、配置PE的VRF并且关联接口(ASBR之间接口不需要配置VRF接口),并且CE与PE的VRF之间建立普通eBGP邻居(环回口建立邻居)
4、PE1和ASBR1建立MP-iBGP邻居,PE2和ASBR2同理
5、ASBR1和ASBR2之间建立MP-eBGP邻居,并且关闭RT检测(默认需要RT匹配才会导入VPNV4数据库,并且转发VPNV4前缀信息)

  • 关闭RT检测功能
    R1(config)#router bgp 1
    R1(config-router)#no bgp default route-target filter

6、CE侧宣告内网路由

  • Option C

在这里插入图片描述
1、每个设备配置物理接口IP以及环回接口IP
2、搭建Underlay网络,每个蓝色区域内使用IGP协议实现AS内互通,并且都启用LDP协议
3、配置PE的VRF并且关联接口(ASBR之间接口不需要配置VRF接口),并且CE与PE的VRF之间建立普通eBGP邻居(环回口建立邻居)
4、PE1与ASBR1建立普通iBGP邻居,ASBR之间建立普通eBGP邻居,PE2与ASBR2建立普通iBGP邻居,以上邻居全部使用环回接口建立,并且在iBGP邻居之间使用next-hop-self;同时,这些邻居之间在普通BGP邻居的基础上还要发送BGP标签;
5、PE1,PE2在BGP中宣告自身环回接口路由
6、PE1和PE2建立MP-eBGP邻居(开启ebgp多跳,如果邻居一直处于 Idle状态可能就是没开,一定要用环回接口建立邻居

  • 关闭默认建立IPv4邻居以及开启多跳(默认就关闭了直连检测)
    router bgp 2
    no bgp default ipv4-unicast
    neighbor 67.67.67.7 remote-as 3
    neighbor 67.67.67.7 ebgp-multihop 10

7、CE侧宣告内网路由

5 MPLS VPN排错

5.1 查看类命令

  • 查看 VPNV4标签
    show ip bgp vpnv4 all labels
  • 查看LDP 标签
    show mpls ldp bindings
  • 查看BGP标签
    show ip bgp labels
  • 查看VRF的CEF表
    show ip vef vrf CE1

5.2 排错思路

控制层

  • 私网路由是否送往对端
    通过查看PE设备的VPNV4表项以及CE设备的路由表可以确定

转发层

  • 设备是否支持或者开启MPLS转发功能
    a、所有设备是否开启了CEF转发功能,这一功能决定了思科设备是否能够将标签压入?
    b、应该开启MPLS 转发功能的接口是否开启功能,以及是否是LDP协商?
  • 在部分方案中是否还顺利分配了其他标签
    a、如Option C的BGP-Label?
  • 标签的分配是否正确?
    a、是否会存在由于下一跳的错误配置导致标签提前剥离的情况(这种情况会导致路由黑洞)?

最终数据是否能够通达

  • 实际测试业务流量就可以知道是否能通达,一般不通就是上面两层出现问题导致的

5.3 错误案例

  • 错误案例一
    错误原因:Option C中的MP-eBGP邻居使用物理接口建立邻居关系,导致隧道提前中断
    示范:
    在这里插入图片描述
  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

辽胜于无

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值