解决IS-IS邻居频繁震荡,这个办法值得收藏
解决IS-IS邻居频繁震荡,这个办法值得收藏
如果承载IS-IS业务的接口状态在Up和Down之间切换,就会引起邻居状态的频繁震荡。此时,IS-IS会快速重新建立邻居,触发路由计算,会造成大量报文交互,影响现有邻居的稳定性,对IS-IS业务造成较大影响,同时也会影响依赖IS-IS的其他业务(如:LDP、BGP)的正常运行。为了解决这个问题,IS-IS实现了邻居震荡抑制功能,即在邻居频繁震荡时,启动震荡抑制,实现邻居延迟建立,或实现业务流量延迟经过频繁震荡的链路,达到抑制震荡的目的。
正常的业务流量路径是Device A->Device B->Device C->Device E。链路故障时,业务流量路径切换为Device A->Device B->Device D->Device E。在主备路径切换初期,Device B和Device C之间很可能会发生邻居状态频繁震荡,导致Device A到Device E的用户流量在两条路径不断切换,并且每次故障引发的切换都会导致用户流量部分丢失,影响网络稳定性。此时,如果Device B和Device C之间邻居震荡满足抑制条件时,设备就会启动震荡抑制功能。
采用Hold-down模式:在一段时间内禁止Device B和Device C建立邻居关系,达到将业务流量切换到Device A->Device B->Device D->Device E路径的目的。
采用Hold-max-cost模式:在一段时间内将Device B和Device C之间的链路开销值设置为最大值Max-cost(IS-IS Wide模式的Max-cost=16777214,IS-IS Narrow模式的Max-cost=63),达到将业务流量切换到Device A->Device B->Device D->Device E路径的目的。
图1 基本场景的邻居震荡抑制
在配置IS-IS邻居震荡抑制之前,需完成以下任务:
•配置接口的网络层地址,使相邻节点之间网络层可达。
•配置IS-IS的基本功能。
操作步骤
1.执行命令system-view,进入系统视图。
缺省情况下,IS-IS邻居震荡抑制功能处于全局使能状态。在IS-IS视图下执行suppress-flapping peer disable命令可以去使能此功能。
2.执行命令interface interface-type interface-number,进入接口视图。
缺省情况下,IS-IS邻居震荡抑制功能处于全局使能状态,即进程中所有接口的IS-IS邻居震荡抑制功能处于使能状态,如果需要在某一指定接口去使能IS-IS邻居震荡抑制功能,请执行isis suppress-flapping peer disable命令。
3.执行命令isis suppress-flapping peer hold-down interval,配置震荡抑制模式为Hold-down模式,并设置抑制持续时间。
IS-IS邻居震荡抑制分为Hold-down和Hold-max-cost两种模式:
•Hold-down模式:针对邻居建立过程中的频繁泛洪和拓扑变化的问题,在一段时间内禁止该邻居重新建立,避免频繁的数据库同步和大量的报文交互。
•Hold-max-cost模式:针对用户业务流量频繁切换的问题,在一段时间内将链路开销值设置为最大值Max-cost(wide模式下Max–cost为16777214,narrow模式下Max–cost为63),避免用户的业务流量经过频繁震荡的链路。
Hold-down模式和Hold-max-cost模式可以叠加使用,同时生效时,先进入Hold-down模式,待Hold-down模式退出后,再进入Hold-max-cost模式。
缺省情况下,Hold-max-cost模式处于使能状态。
执行isis suppress-flapping peer hold-max-cost disable命令可以取消Hold-max-cost邻居震荡抑制模式。
4.执行命令isis suppress-flapping peer { detecting-interval detecting-interval | threshold threshold | resume-interval resume-interval } *,配置IS-IS邻居震荡抑制的检测参数。
IS-IS接口启动一个flapping-count计数器,相邻两次邻居状态为ExStart或Down的时间间隔小于等于detecting-interval时,设备识别为一次有效震荡事件,flapping-count计数加1。flapping-count(有效震荡事件次数)大于等于threshold时,进入震荡抑制阶段。相邻两次邻居状态为ExStart或Down的时间间隔大于等于resume-interval,退出邻居震荡抑制状态,flapping-count清0。
根据网络的实际情况,可以在指定接口设置IS-IS邻居震荡抑制的检测参数。推荐使用缺省值,缺省情况下,指定接口的IS-IS邻居震荡抑制的震荡检测门限为60秒,震荡抑制门限为10,震荡退出门限为120秒。
5.执行命令quit,返回系统视图。
6.执行命令quit,返回用户视图。
7.执行命令reset isis process-id suppress-flapping peer [ interface interface-type interface-number ] [ notify-peer ],强制IS-IS接口退出邻居震荡抑制阶段。
退出邻居震荡抑制阶段有以下几种方式:
•抑制定时器超时。
•复位IS-IS进程。
•执行reset isis peer命令重启IS-IS邻居。
•执行suppress-flapping peer disable (IS-IS)命令全局去使能IS-IS邻居震荡抑制功能。
•执行reset isis suppress-flapping peer命令强制退出震荡抑制阶段。
•对端执行reset isis suppress-flapping peer [ interface-type interface-number ] notify-peer命令强制退出震荡抑制阶段。