您好,欢迎访问安山云泽教育官网!
+

加关注

新闻资讯
联系我们 CONTACT US
电话:
029-88091333
地址:
陕西省西安市浐灞生态区浐灞大道1366号欣源里·生活广场6楼D03
邮件:
yunzeedu@anshanyunze.com
传真:

新闻资讯 NEWS CENTER

当前位置: 首页 > 新闻资讯 > 技术资讯

HCIE-Routing&Switching知识点:解析LDP方式下的流量切换优化

浏览次数: / 更新时间:2022-03-17 20:52:17 / 发布人:小编

在HCIE-Routing&Switching学习中,我们经常会遇到有关MPLS LDP的知识点,MPLS建立外层隧道的方式有很多,一般我们使用LDP的方式,今天让我们讨论一下在LDP方式下当发生路径切换时如何减少被丢弃流量的产生。

通过LDP方式构建外层隧道的MPLS网络中,可能会因为某个节点或者链路出现故障,LSP隧道重新建立发生了路径切换,从而产生丢包,这种情况是控制平面+转发平面都出现了问题。还有一种情况是控制层面故障了,但是转发层面是没问题的。今天让我们一下来看一下,在不同场景下,如何减少被丢弃流量的产生,主要通过如下两种方式:

1、故障检测:加快故障检测速度,保证故障时候能够尽快使用故障保护技术。

2、流量保护技术:

即控制平面+转发平面出现问题;

控制平面出问题,转发平面没问题。

接下来我们先来讲讲LDP中的故障检测技术,以如下拓扑为例:

前提条件:该环境中底层已经全部部署IGP,并将互联接口全部宣告进IGP。

正常情况下,R1访问R4走如下路径:R1->R2->R3(主LSP),当主LSP出现问题时会切换到备LSP:R1->R4->R2->R3

如果R1---R2的链路掉了,LDP需要多久才能知道我跟邻居失效了?有计时器对不对,LDP的Hello包5s一次,15s没收到认为邻居失效。当然在上图的场景,接口掉线,设备会立即知晓,物理层会告诉LDP;但是如果R1--R2中有二层设备,这个时候R1、R2感知到LDP邻居关系出现问题均需要15s的时间,这会极大影响业务的正常运行。

有什么办法可以解决该问题,加速路径切换呢?我们可以使用BFD联动LDP,实现快速感知LDP邻居故障,从而将主LSP切换到备LSP,缩短业务故障时间。

R1的配置命令:

FEC-list   R1toR3  //创建一个FEC列表

FEC-node 3.3.3.3   //Fec为3.3.3.3

Mpls//进入Mpls视图

Mpls bfd-trigger fec-list R1toR3 //指定检测R1--R3的路径

Mpls bfd enable //使能BFD检测mpls

Mpls bfd min-tx-interval 150 min-rx-interval 150 

//指定每个包的发送时间,单位为毫秒ms

R3的配置命令:

BFD

Mpls-passive//在R3上配置被动使能BFD for LSP能力

在R1、R3上完成以上配置之后,R1会通过BFD协议定期检测前往R3(3.3.3.3)的连通性,如果R1前往R3的中间链路出现问题,则无需等待15s的定时器,BFD模块会直接通知LDP模块进行重新收敛。

现在通过部署BFD,LDP能够实现快速收敛,但该收敛需要多久完成呢?让我们继续分析。

还是这个场景,R1---R2链路出现问题,R1与R2之间的链路出现故障,LDP在感知到故障之后,重新计算IGP路由、LSP,但此时若存在流量经由R1前往R3,由于IGP、LDP收敛还未完成,R1无法对流量执行转发操作,流量将会被丢弃。

是否存在某种方式无需重新进行IGP收敛?

我们可以使用IP FRR技术。

R1的配置:

router-policy  XXX //创建一个策略

Apply backup-interface XXX//设备备份出接口

Apply backup-nexthop XXX//设置备份下一跳

Ip frr router-policy XXX//使能IP FRR功能

R1与R2之间的链路出现问题,备份路由将会直接生效,IP FRR跳过了IGP收敛过程。IGP路由切换之后,,LDP也需要建立邻居发布标签了。此时LDP等IGP收敛完毕后,开始重新建立邻居,发布标签,那如果在LDP分配标签的这个时候来了流量,是不是又会丢包?为了解决这个问题,有一种技术叫LDP FRR,依旧使用之前的Topo为例,当主LSP出现问题的时候,备LSP立即生效用于指导报文转发。这就是LDP FRR的作用,一起来看看配置:

手工模式(Manual LDP FRR)

直接在R1主LSP的接口下,也就是G0/0/1口下,

配置:

mpls ldp frr nexthop 4.4.4.4//配置备份LSP的下一跳

自动模式

在底层IGP中,直接配置

loop-free-alternate //开启自动模式的LDP FRR

在mpls视图下

Lsp trigger all //为所有路由分配标签(保证每个FEC都可以有备份)

配置完IP FRR、LDP FRR之后,当发生链路故障时流量可以快速从主LSP切换到备LSP,接下来再分析…..

接下来再分析一个细节问题,如果现在流量已经快速切换到了备LSP,此时,主LSP恢复正常了,会出现什么样的情况?

1、流量通过备LSP走。

2、主LSP链路故障消失恢复,流量按照备LSP转发,此时IGP、LDP会再次进行重新计算,此时我们的LDP FRR和IP FRR会生效吗?不会的,因为我们设置的是当主LSP故障,切换到备LSP。这样的过程我们称回切故障,流量重新切换回主LSP的过程我们成为回切,那么在回切过程中会产生什么问题呢:由于IGP的收敛速度快于LDP的速度,因此当IGP收敛完毕后,R1去往R3的下一跳已经切换到了主LSP,可是,标签还没分发完,此时访问就会造成丢包现象,所以我们设定了一个定时器:Hold-down-timer,该定时器指定了接口不建立OSPF邻居而等待LDP会话建立的时间间隔,在接口Up之后等待一段时间,在该时间内LDP邻居先完成了建立。

这个是回切故障需要注意的一个点。

3、再来一种情况,主LSP的链路正常,LDP故障了,那么此时我们可以设置一个定时器---Hold-max-cost(用来配置OSPF在本地设备的LSA中保持通告最大开销值的时间),当主LSP的LDP出现故障,但是IGP运行正常,此时R1的下一跳肯定还是R2,不是R4,可是R1--R2的LDP出现了问题,此时流量过来,就无法走MPLS转发了,那么我们用这个定时器,当LDP会话出现问题时,把R1---R2的cost改到最大持续一段时间,那么R1此时的下一跳就是R4了,走备份LSP即可,等LDP会话恢复,Cost值不再维持最大开销,则又可以通过主LSP转发了。

现在来看下这两个命令:

ospf timer ldp-sync hold-down 8 //Hold-down-timer为8s

ospf timer ldp-sync hold-max-cost 9 //cost改为9

现在看最后一种情况,在MPLS网络中,设备协议重启或主备倒换时,设备会删除转发平面上的标签转发表项,导致数据转发中断。也就是我们开头说的,控制平面某个节点出现问题,但是转发平面没问题。比如设备重启了,我们希望设备在重启的过程中流量依然能够正常转发,那么就得用到LDP GR技术。我们来分析一下LDP GR是怎么保证设备重启或主备倒换时候,做到保证数据转发不中断的。还是以一开始的拓扑作为例子。

假如我们要保证R2设备重启,流量不中断,那么我们定义R2为GR Restarter,R1作为GR Helper。

1、R1---R2之间先建立LDP会话然后协商GR能力

2、R1时重启,立即启动一个计时器--MPLS转发状态定时器,在这个定时器存在的时间内,R1保留原有的MPLS转发表项,并且发送LDP Init消息给R2,R2收到后,尝试和R1建立LDP发现失败,意识到R1在重启,R2就保留有关R1的MPLS转发表项,这样就可以保证R1重启时,转发不中断!

3、等R1重启后,重新和R2建立LDP会话,R2帮助R1恢复MPLS转发表项。

配置命令:

在MPLS LDP视图下

执行 graceful-restart命令即可

补充:GR的全称:Graceful-restart(平滑重启)