四、MPLS VPN跨域解决方案

1 跨域和非跨域的区别

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

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

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

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

注:为了方便理解,本文讲解没有考虑标签的“次末跳弹出”机制;

2.1 标签的分类

标签类型封装位置标签简称标签作用分发标签源分发的FEC
MP-BGP标签最内层V将流量导入对应的VRFMPeBGP邻居 / MPiBGP邻居(nhs)流量对应的BGP条目的前缀
BGP-Label标签中间层B负责跨AS时流量的传递eBGP邻居(Label) / iBGP邻居(Label+nhs)流量对应的BGP条目的NH
LDP标签最外层T解决跨跳传递BGP路由导致的流量黑洞问题直连下一跳流量对应的BGP条目的现实NH

2.2 常见的标签动作

标签动作作用常见场景
push加标签MPLS-VPN中的入口PE处
pop弹出首层标签MPLS-VPN的出口PE处
swap标签交换MPLS-VPN的中间节点
untag弹出所有标签路由下一跳的LDP邻居还没建立时将流量发往下一跳会弹出流量的所有标签
2.2.1 标签的push操作举例

我们直接拿MPLS VPN OptionC 来举例子
在这里插入图片描述

当我们准备发送流量 FROM 172.16.0.1 TO 192.168.0.1 时,会在PE1进行标签的push操作,在OptionC(没有RR)的场景下,通常会上三层的标签,我们将由内到外(即VBT的顺序)依次讨论标签的push规则;

  • V
    MPLS-VPN标签,为流量对应的BGP路由前缀分配的标签,分配标签的源是对应BGP前缀的NH;
    在这里插入图片描述
  • B
    BGP-Label标签,为流量对应的BGP路由前缀的NH分配的标签,分配标签源是对应BGP前缀的NH;
    在这里插入图片描述
  • T
    LDP标签,为BGP路由迭代后最终的NH分配的标签,分配标签源最终流量的直连下一跳
    在这里插入图片描述
2.2.2 标签的swap操作举例

还是引用MPLS VPN的Option C,比如拿ASBR1举例,swap操作本质上就是poppush标签的结合体;
T2和B1的NH都是自己,所以pop两层标签,还剩最内层标签,由于最内层的标签的NH是PE2,而且存在中层标签的路由,所以打上从ASBR2收到的B2标签;
在这里插入图片描述

2.3 标签的宣告方式

1、本地先为各个FEC生成in Label,并且交换各自的in Label;
在这里插入图片描述

2、本地根据路由表的下一跳在多个远端接收到的相同FEC的in Label 中选择最优那个作为out Label;
在这里插入图片描述

3、后续作为本地设备的上游设备要访问该FEC需要先打上本地设备的in Label;本地设备要访问下游的FEC,则需要打上out Label;
在这里插入图片描述

2.4 LDP标签特性说明

  • 特性一
    LDP不为路由表中的BGP路由分发标签也就是开头有个“R”的条目
  • 特性二
    当本地访问的IP是BGP路由匹配的IP时,封装的LDP标签应该是:LDP邻居发来的,本地BGP路由条目经过在BGP条目中“递归查找”后得出的最优的下一跳的IP的标签【这条适用于BGP-Label标签】;(附带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、以上缺陷注定客户的节点数和需要传递的网络数不能太多,也就是网络规模不能过大
  • 方案细节
    在这里插入图片描述

3.2 Option B

  • 方案介绍
    ASBR间通过MP-EBGP发布标签VPNV4路由,也称为单跳MP-EBGP跨域方式
  • 方案优势
    1、较OptionA而言,ASBR中间链路负担小,因为不用划分子接口
  • 方案缺陷
    1、RT值需要两个ISP协商
    2、ASBR需要保存VPNV4前缀信息,ASBR负担较重可能成为瓶颈
    2、对于跨越多个运营商(超过两个),配置比较麻烦
  • 方案细节
    在这里插入图片描述

3.3 Option C-NRR

  • 方案介绍
    PE或RR之间通过Multi-hop MP-EBGP发布VPNV4路由,也称为多跳MP-EBGP跨域方式,也是现网最常使用的方式
  • 方案优势
    1、对于跨多ISP的情况下部署更加合理
  • 方案缺陷
    1、RT值需要ISP之间协商
    2、跨域维护隧道难度较大,排错难度较大
    3、可拓展性较弱,拓展业务流程较繁琐
    4、由于VPNV4前缀分散在不同的PE中,对于VPNV4的整体管理较麻烦
  • 方案细节
    在这里插入图片描述

3.4 Option C-RR

  • 方案介绍
    PE或RR之间通过Multi-hop MP-EBGP发布VPNV4路由,也称为多跳MP-EBGP跨域方式,也是现网最常使用的方式
  • 方案优势
    1、对于跨多ISP的情况下部署更加合理
    2、可拓展性更强,只需要在RR和PE见建立MP-iBGP邻居即可
    3、集中管理VPNV4前缀,管理更便捷
  • 方案缺陷
    1、RT值需要ISP之间协商
    2、跨域维护隧道难度较大,排错难度较大
  • 方案细节
    在这里插入图片描述

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邻居(开启Nhs),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)#neighbor 3.3.3.3 next-hop-self
    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状态可能就是没开,一定要用环回接口建立邻居

  • 可以只建立MP-BGP邻居,而不建立普通的BGP邻居,同时开启ebgp跨跳建邻
    router bgp 2
    no bgp default ipv4-unicast
    neighbor 2.2.2.2 remote-as 1
    neighbor 2.2.2.2 update-source loop0
    neighbor 2.2.2.2 ebgp-multihop 10
    address family vpnv
    neighbor 2.2.2.2 active
    ————————————————————————
    注:在使用命令no bgp default ipv4-unicast后,正常步骤是无法建立普通的ipv4 BGP邻居的
    如以下方法,是无法正常建立ipv4 BGP邻居的
    router bgp 2
    neighbor 2.2.2.2 remote-as 1
    需要额外加一条
    address-family ipv4
    neighbor 2.2.2.2 activate

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邻居使用物理接口建立邻居关系,导致隧道提前中断
    示范:
    在这里插入图片描述
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

辽胜于无

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

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

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

打赏作者

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

抵扣说明:

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

余额充值