OSPF邻居震荡抑制

OSPF邻居震荡抑制功能是一种震荡抑制方式,通过延迟邻居建立或调整链路开销为最大值的方法达到抑制震荡的目的。

产生原因

如果承载OSPF业务的接口状态在Up和Down之间切换,就会引起邻居状态的频繁震荡。此时,OSPF会快速发送Hello报文重新建立邻居,同步数据库LSDB,触发路由计算,会造成大量报文交互,影响现有邻居的稳定性,对OSPF业务造成较大影响,同时也会影响依赖OSPF的其他业务(如:LDP、BGP)的正常运行。为了解决这个问题,OSPF实现了邻居震荡抑制功能,即在邻居频繁震荡时,启动震荡抑制,实现邻居延迟建立,或实现业务流量延迟经过频繁震荡的链路,达到抑制震荡的目的。

相关概念

flapping_event:震荡事件,接口上最后一次邻居状态由Full切换为ExStart或Down,称之为flapping_event。flapping_event作为震荡源输入,用来触发震荡检测机制启动工作。

flapping_count:当前震荡次数。

detect-interval:震荡检测间隔,用于判断是否触发一次有效震荡事件。

threshold:震荡抑制阈值,有效震荡事件触发累计大于等于该值时,进入震荡抑制阶段。

resume-interval:恢复间隔,连续两次有效震荡事件的时间间隔超过该值时,退出震荡抑制阶段。

实现原理

震荡检测

OSPF接口启动一个flapping_count计数器,相邻两次flapping_event产生时间的间隔在detect-interval之内,记为一次有效震荡事件。flapping_count计数加1,当flapping_count计数大于等于threshold时,系统判定震荡发生,需要进入震荡抑制阶段。进入震荡抑制阶段后,flapping_count清0。在flapping_count大于等于threshold之前,如果两次flapping_event的间隔大于等于resume-interval,则flapping_count清0。邻居震荡抑制从最后一次邻居状态变为ExStart或Down开始计时。

用户可以通过命令行配置detect-intervalthresholdresume-interval三个震荡检测的关键参数。

注:resume-interval必须大于detect-interval

震荡抑制

震荡抑制分为Hold-down和Hold-max-cost两种模式:

  • Hold-down模式:针对邻居建立过程中的频繁泛洪和拓扑变化的问题,在一段时间内禁止该邻居重新建立,避免频繁的数据库同步和大量的报文交互。
  • Hold-max-cost模式:针对用户业务流量频繁切换的问题,在一段时间内将链路开销值设置为最大值Max-cost(65535),避免用户的业务流量经过频繁震荡的链路。

Hold-down模式和Hold-max-cost模式可以叠加使用,同时生效时,先进入Hold-down模式,待Hold-down模式退出后,再进入Hold-max-cost模式。

缺省情况下,OSPF使能Hold-max-cost模式,用户可以通过命令行修改震荡抑制方案和震荡抑制周期。

注:接口进入震荡抑制阶段后,接口下的全部邻居都会进入震荡抑制阶段。

退出震荡抑制

退出震荡抑制有以下几种方式:

  • 抑制定时器超时。
  • 复位OSPF进程。
  • 重启OSPFv3邻居。
  • 用户通过命令行强制退出震荡抑制状态。

典型场景

基本场景

如图1所示,正常的业务流量路径是Router A->Router B->Router C->Router E。链路故障时,业务流量路径切换为Router A->Router B->Router D->Router E。在主备路径切换初期,Router B和Router C之间很可能会发生邻居状态频繁震荡,导致Router A到Router E的用户流量在两条路径不断切换,并且每次故障引发的切换都会导致用户流量部分丢失,影响网络稳定性。此时,如果Router B和Router C之间邻居震荡满足抑制条件时,设备就会启动震荡抑制功能。

  • 采用Hold-down模式:在一段时间内禁止Router B和Router C建立邻居关系,达到将业务流量切换到Router A->Router B->Router D->Router E路径的目的。
  • 采用Hold-max-cost模式:在一段时间内将Router B和Router C之间的链路开销值设置为最大值Max-cost(65535),达到将业务流量切换到Router A->Router B->Router D->Router E路径的目的。

图1 基本场景的邻居震荡抑制:

关键路径场景

网络中只有唯一的流量转发路径,转发路径上的任何邻居断开都会导致用户流量中断。如图2所示,唯一的业务流量路径是Router A->Router B->Router C->Router E,如果Router B和Router C之间发生邻居震荡,满足抑制条件,进入震荡抑制阶段。但是,Router B和Router C之间的链路是组网中的关键链路,一旦断开,整个网络将被分割为互不连通的两个网络。因此,关键路径场景不建议采用Hold-down模式断开邻居关系,推荐采用Hold-max-cost模式抑制震荡,在一段时间内将Router B和Router C间的链路开销值设置为最大值Max-cost(65535),进行震荡抑制。待网络稳定后,抑制定时器超时,自动退出抑制状态,迅速恢复业务链路。

注:缺省情况下,OSPF使能Hold-max-cost模式。

图2 关键路径场景的邻居震荡抑制:

广播网场景

如图3所示,四台设备分别通过交换机接入到同一个广播网中,相互之间建立广播网邻居。此时,如果Router C因为链路原因一直处于震荡状态,并且Router A和Router B接入网络的时间不一致(例如,Router A更早一点),或者Router A和Router B的震荡检测参数配置不一致,导致的结果是,Router A先检测到Router C处于震荡状态,抑制了Router C,在Router A发布的Hello报文中就不会携带Router C的Router ID,但是,Router B无法检测到Router C处于震荡状态,仍然认为Router C为合法节点。在DR选举时,Router A识别到的参与DR选举的设备集合包括Router B和Router D,Router B识别到的参与DR选举的设备集合包括Router A、Router C和Router D。两者备选集合不相同,选举结果也会不一致,这样就会导致广播网中的设备对网络理解的差异,造成路由计算错误。因此,在广播网或P2MP、NBMA等一个接口下存在多个邻居的场景中,不能单独抑制某个邻居,需要对接口下的全部邻居都进行抑制,震荡检测也不能以某个邻居为单位进行检测,需要检测接口上最后一个邻居状态为ExStart或Down的震荡事件。也就是说,如果Router C震荡,广播网中的Router A、Router B和Router D都会被抑制,待网络稳定后,抑制定时器超时,自动退出抑制状态,Router A、Router B和Router D都会恢复到正常业务状态。

图3 广播网场景的邻居震荡抑制:

多区域组网场景

如图4所示,Router A、Router B、Router C、Router E和Router F通过Area 1连接,Router B、Router D和Router E通过骨干区域Area 0连接。Router A到Router F的正常的业务流量优先选取区域内路由,路径是Router A->Router B->Router C->Router E->Router F。当Router B和Router C之间发生邻居震荡,满足抑制条件,进入震荡抑制阶段时,缺省情况采用Hold-max-cost模式。但是,根据OSPF路由优选规则,区域内路由和区域间路由相互不会比较链路的开销值,区域内路由优先级大于区域间路由,也就是说,发生邻居震荡后,Router A到Router F的业务流量路径仍然是Router A->Router B->Router C->Router E->Router F,Hold-max-cost模式在此时无法达到抑制流量路径切换的目的。因此,多区域组网场景的邻居震荡抑制只能采用Hold-down模式,即在一段时间内禁止Router B和Router C建立邻居关系,达到将业务流量切换到Router A->Router B->Router D->Router E->Router F路径的目的。

注:缺省情况下,OSPF使能Hold-max-cost模式,用户可以通过命令行修改为Hold-down模式。

图4 多区域组网场景的邻居震荡抑制:

IGP-LDP联动和邻居震荡抑制同时部署的场景

如图5所示,PE1和P1之间链路发生故障时,LDP快速回切,导致新的LSP还没有完全建立时老的LSP就已经被拆除,为了避免引起业务中断,需要部署IGP-LDP联动。部署IGP-LDP联动特性后,设置新建立的邻居发布的链路开销值为最大值Max-cost(65535),避免IGP路由回切,等新的LSP建立完成后,再修改链路开销值为配置值,触发IGP路由回切,删除老的LSP,LDP业务流量切换到新建立的路径上。

IGP-LDP联动分为Hold-down模式和Hold-max-cost模式两种,邻居震荡抑制也分为Hold-down模式和Hold-max-cost模式两种。同时部署邻居震荡抑制和IGP-LDP联动时,优先生效Hold-down模式,次优生效Hold-max-cost模式,最后生效链路上配置的开销值。优先生效原则不以业务类型为条件,以最终生效的状态(Hold-down、Hold-max-cost、退出)为条件,详细情况请参考表1。

表1 震荡抑制模式优先生效原则

IGP-LDP联动抑制模式/邻居震荡抑制模式

IGP-LDP联动抑制Hold-down模式

IGP-LDP联动抑制Hold-max-cost模式

退出IGP-LDP联动抑制

邻居震荡抑制Hold-down模式

Hold-down模式

Hold-down模式

Hold-down模式

邻居震荡抑制Hold-max-cost模式

Hold-down模式

Hold-max-cost模式

Hold-max-cost模式

退出邻居震荡抑制

Hold-down模式

Hold-max-cost模式

退出IGP-LDP联动和邻居震荡抑制

例如,如图5所示,PE1和P1之间发生频繁震荡。同时部署邻居震荡抑制和IGP-LDP联动,通过震荡抑制模式优先生效原则选取抑制模式,即在一段时间内禁止PE1和P1建立邻居关系或将PE1和P1之间的链路开销值设置为最大值Max-cost(65535),达到将业务流量切换到PE1->P4->P3->PE2路径的目的。

图5 IGP-LDP联动和邻居震荡抑制同时部署的场景:

误码倒换和邻居震荡抑制同时部署的场景

误码倒换特性用于保护链路质量,当链路质量检测发现链路质量差,误码率高,就会上报误码事件,误码率高的链路上承载的用户业务会受到较大的影响,可能影响用户正常使用,因此需要将用户流量尽量调整到其他链路上。OSPF业务在收到误码事件后,会调整接口开销值为最大值Max-cost(65535),路由随即重新计算,重新选路,将业务流量切换到备选链路。误码倒换和邻居震荡抑制同时部署时,两种震荡抑制方式同时生效,优先生效Hold-down模式,次优生效Hold-max-cost模式,最后生效链路上配置的开销值。

配置OSPF邻居震荡抑制

配置OSPF邻居震荡抑制功能,通过延迟邻居建立或调整链路开销为最大值的方法达到抑制震荡的目的。

背景信息

如果承载OSPF业务的接口状态在Up和Down之间切换,就会引起邻居状态的频繁震荡。此时,OSPF会快速发送Hello报文重新建立邻居,同步数据库LSDB,触发路由计算,会造成大量报文交互,影响现有邻居的稳定性,对OSPF业务造成较大影响,同时也会影响依赖OSPF的其他业务(如:LDP、BGP)的正常运行。为了解决这个问题,OSPF实现了邻居震荡抑制功能,即在邻居频繁震荡时,启动震荡抑制,实现邻居延迟建立,或实现业务流量延迟经过频繁震荡的链路,达到抑制震荡的目的。

前置任务

在配置OSPF邻居震荡抑制之前,需完成以下任务:

操作步骤

  1. 执行命令system-view,进入系统视图。

    缺省情况下,OSPF邻居震荡抑制功能处于全局使能状态,在OSPF视图下执行suppress-flapping peer disable命令可以去使能此功能。

  2. 执行命令interface interface-type interface-number,进入接口视图。

    缺省情况下,OSPF邻居震荡抑制功能处于全局使能状态,即进程中所有接口的OSPF邻居震荡抑制功能处于使能状态,如果需要在某一指定接口去使能OSPF邻居震荡抑制功能,执行ospf suppress-flapping peer disable命令可以在指定接口去使能OSPF邻居震荡抑制功能。

  3. (对于以太网接口)执行命令undo portswitch,配置接口切换到三层模式。

    缺省情况下,以太网接口处于二层模式。

    使用该命令进行接口的二三层模式切换时,接口下只能存在属性配置信息(例如shutdowndescription配置)或者二三层接口均支持的配置信息(例如mode lacplacp system-id配置),模式切换功能才可以生效。不能有任何切换后的接口模式不支持的配置存在。如果接口上存在不支持的配置,请先将这些配置全部清除,然后再执行undo portswitch命令。

    注:如果涉及的以太网接口较多,可以在系统视图下执行命令undo portswitch batch interface-type { interface-number1 [ to interface-number2 ] } &<1-10>,批量切换以太网接口的工作模式。

  4. 执行命令ospf suppress-flapping peer hold-down interval,配置震荡抑制模式为Hold-down模式,并设置抑制持续时间。

    OSPF邻居震荡抑制分为Hold-down和Hold-max-cost两种模式:

    • Hold-down模式:针对邻居建立过程中的频繁泛洪和拓扑变化的问题,在一段时间内禁止该邻居重新建立,避免频繁的数据库同步和大量的报文交互。
    • Hold-max-cost模式:针对用户业务流量频繁切换的问题,在一段时间内将链路开销值设置为最大值Max-cost(65535),避免用户的业务流量经过频繁震荡的链路。

    Hold-down模式和Hold-max-cost模式可以叠加使用,同时生效时,先进入Hold-down模式,待Hold-down模式退出后,再进入Hold-max-cost模式。

    缺省情况下,Hold-down模式处于去使能状态,Hold-max-cost模式处于使能状态。

    执行ospf suppress-flapping peer hold-max-cost disable命令可以取消Hold-max-cost邻居震荡抑制模式。

  5. 执行命令ospf suppress-flapping peer { detecting-interval detecting-interval | threshold threshold | resume-interval resume-interval } *,配置OSPF邻居震荡抑制的检测参数。

    resume-interval resume-interval参数的作用是:

    • 指定OSPF邻居震荡抑制的震荡检测恢复门限。

      相邻两次邻居状态由Full切换为ExStart或Down的时间间隔大于resume-interval,flapping-count清0。

    • 当OSPF邻居震荡抑制采用Hold-max-cost模式时,resume-interval表示Hold-max-cost模式的持续时间。

    注:resume-interval必须大于detecting-interval

    根据网络的实际情况,可以在指定接口设置OSPF邻居震荡抑制的检测参数,推荐使用缺省值。缺省情况下,指定接口的OSPF邻居震荡抑制的震荡检测门限为60秒,震荡抑制门限为10,震荡检测恢复门限为120秒。

  6. 执行命令commit,提交配置。

检查配置结果

执行命令display ospf [ process-id ] interface interface-type interface-number verbose,可以查看OSPF邻居震荡抑制的状态。

OSPF邻居震荡抑制相关推荐

  1. HCIA-RS自用笔记(15)OSPF基础、OSPF核心工作流程、OSPF数据包类型、OSPF邻居建立条件及过程

    OSPF(7/20,41min) 开放式最短路径优先(Open Shortest Path First)协议是IETF定义的一种基于链路状态的内部网关路由协议 Open指公有协议:Cost以带宽进行计 ...

  2. eigrp ospf 邻居建立过程比较

    EIGRP邻居建立过程 1.路由器A启动,然后在链路上发送hello包 2.路由器B接收到A发来的hello包,然后做出应答,发回update包给A,告诉A它自己的路由表的信息.但是这个时候 邻居关系 ...

  3. 关于两台路由器之间的OSPF邻居关系问题!

    两台路由器A和B(loo0:X.X.X.X),RTA的接口配置为12.12.12.1,RTB的接口配置为12.12.12.2,掩码长度为24bits.然后在两台路由器上运行ospf,区域均为area ...

  4. ospf hello时间和dead_图文并茂解释OSPF邻居关系建立失败的几种常见情况(太实用了!)...

    网络工程师阿龙 中国网工圈最早的公益公众号(关注近5w+)! 关注 最近有人遇到OSPF邻居建立不起来,本期龙哥就与大家分享个人见解.如有讲错地方或有更好的见解欢迎评论区见哈~ 拓扑图 本期我讲以此拓 ...

  5. donotage标记、MTU及MTU不匹配问题、OSPF邻居状态记录

    目录 一. donotage标记 二.MTU详解 (1)-- MTU简介 (2)--图解 (3)--!!!邻居关系起不来原因: (4)-- 解决: 三.两种特殊的邻居关系: 四.OSPF邻居状态的记录 ...

  6. OSPF工作机制——OSPF邻居状态机详解(附图)

    目录 一.七种OSPF邻居状态机: 二.图解:​ 一.七种OSPF邻居状态机: init--初始状态:此状态在接受和发送OSPF--hello包,hello包目的IP地址为224.0.0.5,IP头部 ...

  7. IEEP部署企业级网络工程-OSPF邻居关系故障排除

    OSPF邻居关系故障-现象与排除 一.OSPF邻居关系故障-现象与排除 1.OSPF建立邻居关系时,将检验hello报文中的Area ID .Autype.Authentication.network ...

  8. 【LAB4-Cisco】OSPF邻居建立过程与LSDB分析

    实验需求 1.根据拓扑提示,对各路由启用OSPF路由协议并划分相应区域,并验证邻居关系以及数据库信息,从而保证内网全网互通.其中,要求R7上的回环口条目作为外部条目引进来. 2.新加入公司网络的Are ...

  9. OSPF 总结—— ospf邻居关系无法建立原因 + OSPF选路影响因素

    目录 一.ospf邻居关系无法建立原因: 二.选路影响因素: (1)宏观: (2)微观: 一.ospf邻居关系无法建立原因: 1--直接链路没有ping通 2--接口过滤OSPF的hello报文 3- ...

最新文章

  1. 怎样用matlab打开mw文,C# matlab混合编程 MWArray使用笔记
  2. 人脸识别:insightface自定义数据集制作 | 附练手数据集
  3. 一堂拯救千万股民的公开课,不能错过!
  4. 数据拟合matlab算法
  5. javaweb 要学习的东西
  6. linux 权限中加号,关于Linux中权限列中的加号及点的深度探索
  7. Netgear wndr3700v2 路由器刷OpenWrt打造全能服务器(五)SVN服务
  8. Gradle语法基础解析
  9. java就是我的幸福,嫁给幸福
  10. 手机能打开的表白代码_数据分析移动化:打开手机就能做分析
  11. 删除指定路径下指定天数之前的文件
  12. ext4.0 代理 的使用
  13. ASP.NET MVC传递Model到视图的多种方式之通用方式的使用
  14. C# HttpWebRequest 填充IP代理
  15. sata接口 图解 定义_SATA数据和电源接口定义详解
  16. 梦龙即时通讯软件测试自学,梦龙网络计划教程.pdf
  17. dell机架式服务器型号,戴尔R910机架式服务器
  18. 安装时间大于30秒_辟谣│有氧运动30分钟以上才会燃烧脂肪?你被这个观点骗了多久?...
  19. 如何从Apple电子钱包中删除旧登机牌
  20. GoF设计模式(二)-行为型模式简介

热门文章

  1. NAS-Bert——确保One-shot与Task-agnostic
  2. Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks(MAML)简析
  3. 设计零基础配色的方法有哪些?怎么样才能配好色?
  4. 使用俄罗斯老大哥的Wrap进行缩裹式半自动重拓扑
  5. Android之延时操作方法
  6. 总结论文中正负样本的选择
  7. MySQL高阶教程索引
  8. TCP/IP协议及常见状态码说明(SYN,FIN,ACK,PSH,RST)
  9. python熊猫弹幕_GitHub - weisingxcw/danmu: Python 弹幕包 A live danmu package for python
  10. 愚(鱼)人节到啦!CRI鱼人语制作小讲堂开班!