在HCIE-Routing&Switching学习中,我们经常会遇到有关MPLS LDP的知识点,MPLS建立外层隧道的方式有很多,一般我们使用LDP的方式,今天让我们讨论一下在LDP方式下当发生路径切换时如何减少被丢弃流量的产生。
通过LDP方式构建外层隧道的MPLS网络中,可能会因为某个节点或者链路出现故障,LSP隧道重新建立发生了路径切换,从而产生丢包,这种情况是控制平面+转发平面都出现了问题。还有一种情况是控制层面故障了,但是转发层面是没问题的。今天让我们一下来看一下,在不同场景下,如何减少被丢弃流量的产生,主要通过如下两种方式:
1、故障检测:加快故障检测速度,保证故障时候能够尽快使用故障保护技术。
2、流量保护技术:
即控制平面+转发平面出现问题;
控制平面出问题,转发平面没问题。
接下来我们先来讲讲LDP中的故障检测技术,以如下拓扑为例:
手工模式(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是怎么保证设备重启或主备倒换时候,做到保证数据转发不中断的。还是以一开始的拓扑作为例子。
假如我们要保证R1设备重启,流量不中断,那么我们定义R1为GR Restarter,R2作为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(平滑重启)
以上就是有关于MPLS LDP中丢包的知识点啦,大家不妨自己动手实验一番增强记忆哦!