所选语种没有对应资源,请选择:

本站点使用Cookies,继续浏览表示您同意我们使用Cookies。Cookies和隐私政策>

提示

尊敬的用户,您的IE浏览器版本过低,为获取更好的浏览体验,请升级您的IE浏览器。

升级

S1720, S2700, S5700, S6720 V200R010C00 配置指南-IP单播路由

本文档介绍了设备支持的IP单播路由相关配置。主要内容包括IP路由概述,静态路由、RIP、RIPng、OSPF、OSPFv3、IS-IS(IPv4)、IS-IS(IPv6)、BGP、路由策略以及策略路由的基本原理和配置过程,并提供相关的配置案例。
评分并提供意见反馈 :
华为采用机器翻译与人工审校相结合的方式将此文档翻译成不同语言,希望能帮助您更容易理解此文档的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 华为对于翻译的准确性不承担任何责任,并建议您参考英文文档(已提供链接)。
OSPF增强功能

OSPF增强功能

OSPF VPN

定义

OSPF VPN多实例特性是为了支持在VPN场景中PE(Provider Edge)和CE(Customer Edge)之间能够运行OSPF协议、使用OSPF进行路由的学习和发布而在OSPF基础协议上进行的扩展。

目的

OSPF是一种应用广泛的IGP协议,很多情况下,VPN用户内部网络运行OSPF。如果能够在PE-CE之间使用OSPF,PE通过OSPF向CE发布VPN路由,则在CE上就不需要配置PE-CE之间的其它路由协议,从而简化CE的管理和配置。

PE-CE间运行OSPF

BGP/MPLS VPN中,PE之间使用MP-BGP传递路由信息,而PE-CE间则广泛使用OSPF进行路由学习和传递。

PE-CE间使用OSPF有如下优势:

  • 通常在一个Site内部使用OSPF学习路由。如果PE-CE间也使用OSPF则可以减少CE设备所支持的协议种类,降低对CE设备的要求。

  • 同样,Site内部和PE-CE间都使用OSPF可以降低网络管理人员的工作复杂度,不必要求管理人员对多种协议熟练掌握。

  • PE-CE间使用OSPF可以方便从一个非VPN的骨干网转化为一个BGP/MPLS VPN网络。

图1所示,CE1、CE3和CE4都属于VPN1,图中OSPF之后的数字表示PE设备上运行的OSPF多实例进程号。

图6-37  PE-CE间运行OSPF

CE1上的路由发布给CE3和CE4过程可以描述为:

  1. PE1将CE1上的OSPF路由引入到BGP中,形成BGP VPNv4路由。

  2. PE1通过MP-BGP将这些BGP VPNv4路由发布给PE2。

  3. PE2将BGP VPNv4路由引入到OSPF,再发布给CE3和CE4。

同理,CE4和CE3上的路由发布给CE1的过程类似。

PE-CE间OSPF区域配置

PE与CE之间的OSPF区域可以是非骨干区域,也可以是骨干区域(区域0),并且PE永远是ABR(Area Border Router)。

在OSPF VPN扩展应用中,MPLS VPN骨干网被看作是Area0。由于OSPF要求Area 0连续,因此,所有VPN Site的Area0必须与MPLS VPN骨干网相连。如果VPN Site中存在OSPF Area0,则CE接入的PE必须通过Area0与这个VPN Site的骨干区域相连(可以通过Virtual-link实现逻辑连通),如图2所示。

图6-38  PE-CE间OSPF区域配置

PE-CE间配置为非骨干区域1,而Site1内配置了骨干区域0,此时Site1的骨干区域就与VPN骨干区域分离了,所以在CE1与PE1间配置虚连接(Virtual link)来保持骨干区域连续。

OSPF Domain ID

本地OSPF区域和VPN远端的OSPF区域间如果相互发布区域间路由(Inter-area routes),则认为这些区域属于同一个OSPF域(OSPF Domain)。

  • 域标识符(Domain ID)用来标识和区分不同的域。

  • 每一个OSPF域都有一个或多个域标识符,其中有一个是主标识符,其它为从标识符。

  • 如果OSPF实例没有明确域标识符,则认为它的标识符为NULL。

PE把从远端PE学来的BGP路由向CE发布时,需要根据域标识符的情况选择向CE发布Type3、Type5或Type7的OSPF路由。

  • 如果本地的域标识符与BGP路由信息中携带的远端域标识符相等或相互兼容,则发布3类路由;

  • 否则,发布Type5或Type7路由。

表6-8  Domain ID

本地和远端域标识符

本地和远端域标识符是否相等

发布的路由类型

本地和远端域标识符都为NULL

相等

Inter-area路由。

远端域标识符=本地主域标识符,或者远端域标识符=本地从域标识符中的一个

相等

Inter-area路由。

远端标识符≠本地主从标识符,并且远端标识符≠本地从域标识符中的任何一个

不相等

如果本地是非NSSA(Not So Stubby Area)区域,生成External路由。

如果是NSSA区域,生成NSSA路由。

路由环路预防

PE和CE之间,如果OSPF与BGP的路由相互学习,则有可能导致路由环路问题。

图6-39  OSPF VPN路由环路

图3所示,PE1上OSPF引入了目的地址为10.1.1.1/32的BGP路由,产生5类或7类LSA发布给CE1,CE1上学到一条目的地址为10.1.1.1/32,下一跳为PE1的OSPF路由,并发布给PE2,这样PE2上就学到一条目的地址为10.1.1.1/32,下一跳为CE1的OSPF路由。

同理,CE1上也会学到一条目的地址为10.1.1.1/32,下一跳为PE2的OSPF路由,PE1上学到一条目的地址为10.1.1.1/32,下一跳为CE1的OSPF路由。

此时,CE1上存在两条等价路由,分别指向PE1和PE2,而PE1和PE2上到10.1.1.1/32的下一跳也都指向CE1,环路就产生了。

同时,由于OSPF路由的优先级高于BGP路由,PE1和PE2上到10.1.1.1/32的BGP路由被OSPF路由所替代,也就是说,PE1和PE2的路由表中活跃的是到10.1.1.1/32,下一跳为CE1的OSPF路由。

既然BGP路由转为不活跃状态,之前OSPF引入这条BGP路由时所产生的LSA就会被删除,而这样又会导致OSPF路由被撤销。路由表中没有了OSPF路由,BGP路由又变为活跃状态,继续重复之前的循环,导致路由振荡。

OSPF VPN特性专门针对这种情况提供了解决方案,如表6-9所列。

表6-9  路由环路预防

特性名

定义

作用

DN-bit

为了防止路由环路,OSPF多实例进程使用一个bit位作为标志位,称为DN位。

PE在生成Type3、Type5或Type7 LSA发布给CE时,都将DN位置位(值为1),其他类型LSA的DN位不置位(值为0)。

PE的OSPF多实例进程在进行计算时,忽略DN置位的LSA。这样就防止了PE又从CE学到发出的LSA而引起的环路。

VPN Route Tag

VPN路由标记(VPN Route Tag),PE根据收到的BGP的私网路由产生的5/7类LSA中必须包含这个参数。

VPN路由标记不在BGP的扩展团体属性中传递,只是本地概念,只在收到BGP路由并且产生OSPF LSA的PE上有意义。

当PE发现LSA的VPN路由标记(LSA的Tag值)和自己的一样,就会忽略这条LSA,因此避免了环路。

缺省路由

目的地址和掩码全为0的路由。

缺省路由用于转发源自CE和CE所在Site的流量。

解除路由环路预防

解除路由环路预防可能导致路由环路,进行该操作时应谨慎。

在BGP/OSPF路由进行交互的过程中,路由环路预防功能能够防止OSPF路由在VPN站点内的路由环路。

但在跨域VPN-OptionA方式场景下,当ASBR之间运行OSPF协议来发送VPN路由信息时,由于系统路由环路预防机制,将导致对端ASBR不能学习到本端ASBR发送的OSPF路由。

图4所示,采用OptionA方式实现跨域VPN。以CE1发送VPN路由到CE2为例说明(PE1与CE1之间运行OSPF协议为例):

图6-40  跨域VPN-OptionA组网图

  1. PE1通过私网OSPF进程学习到了去往CE1站点的路由,并将这些路由引入到MP-BGP中,发送给ASBR1。

  2. ASBR1收到MP-BGP路由后,会将这些路由引入到私网OSPF进程中,在生成Type3、Type5或Type7 LSA时,会将DN位置为1。

  3. ASBR2通过OSPF协议学习到这些LSA时,会对LSA中的DN位进行检查。发现这些LSA的DN位为1,将忽略这些路由。

综上,由于系统的路由环路预防机制,导致ASBR2上学习不到对端ASBR1发来的OSPF路由,导致了CE1与CE3之间不能互通。

为解决上面的问题,有以下的解决方法:

  • 不对DN位置位:在将BGP路由引入到OSPF过程中,不对LSA的DN位置位。例如ASBR1在将MP-BGP路由引入到OSPF中时,不对DN位置位,ASBR2收到这些路由时,检查DN位为0,可以参加选路。

  • 不对DN位检查:在收到LSA后,不检查DN位。例如ASBR1在将MP-BGP路由引入到OSPF中时,对DN位置位,ASBR2收到这些路由时,不进行DN位检查。

为增加上述方式使用的灵活性,可以只针对特定Type类型的LSA应用。对于Type3 LSA,还可以根据生成LSA设备的OSPF的router-id决定是否进行DN位置位或者检查。

图5所示,跨域VPN-OptionA方式,下ASBR之间为全连接,且都运行OSPF协议。对于ASBR2而言,可能会收到ASBR4上产生的Type3、Type5或Type7 LSA,如果在ASBR2上设置不对DN位检查,Type3 LSA会被接收,按照图5中的描述,会引起路由的环路。而对于Type5或Type7 LSA,因为LSA中携带的Route Tag与ASBR2上OSPF进程默认的VPN Route Tag一致,ASBR2上会忽略这些LSA。

针对Type 3类型的LSA容易引起路由环路的问题,可以在ASBR2上设置只针对OSPF Router ID为10.1.1.1和10.3.3.3的Type 3类型的LSA不进行DN位检查。设置后,当ASBR2再收到ASBR4产生的Type3 LSA时,因为该LSA的OSPF Router ID为10.4.4.4,ASBR2会进行DN位的检查,发现DN位已置位,从而忽略这些LSA。

图6-41  跨域VPN-OptionA ASBR全连接组网图

Multi-VPN-Instance CE

OSPF多实例通常运行在PE上,在用户局域网内部运行OSPF多实例的设备称为Multi-VPN-Instance CE(MCE),即多实例CE。

与PE上的OSPF多实例相比:

  • Multi-VPN-Instance CE不需要支持BGP/OSPF互相引入功能。

  • Multi-VPN-Instance CE通过为不同的业务建立各自的OSPF实例,相当于不同的业务使用不同的虚拟CE,从而以较低的成本解决局域网的安全问题。

  • Multi-VPN-Instance CE在同一台CE上实现不同的OSPF多实例。其实现的关键在于禁止路由环路的检查,直接进行路由计算。也就是说,MCE收到了带有DN-bit的LSA也会用于路由计算。

OSPF TE

OSPF TE(OSPF Traffic Engineering,即OSPF流量工程)是为了支持MPLS流量工程(MPLS TE),支持建立和维护TE的标签交换路径LSP(Label Switch Path)而在OSPF协议基础上扩展的新特性。在MPLS TE架构中OSPF扮演了信息发布组件的角色,负责收集扩散MPLS流量工程信息。

除了网络的拓扑信息外,流量工程还需要知道网络的约束信息(包括带宽、TE度量值、管理组和亲和属性等)。但OSPF现有的功能不足以满足这些要求。因此需要对现有的OSPF进行扩展,通过引入新类型的LSA来发布这些信息,CSPF(Constrained Shortest Path First)算法利用这些信息就可以计算出满足各种约束条件的路径。

图6-42  OSPF在MPLS-TE体系中的作用

OSPF在MPLS-TE中的作用

在MPLS-TE体系结构中OSPF起到了信息发布组件的作用:

  • 收集TE相关信息。

  • 在同一个区域中的各设备间扩散TE信息。

  • 把同步收集到的TE信息组成流量工程数据库TEDB(TE DataBase)提供给CSPF计算。

除此之外,OSPF并不关心信息具体是什么以及MPLS如何使用这些信息。

TE-LSA

OSPF通过新增Type10 Opaque LSA来实现收集和发布流量工程信息的目的。这种LSA中包含了流量工程所需要的链路状态信息,包括最大链路带宽、最大可预留带宽、当前预留带宽、链路颜色等信息。Type10 Opaque LSA利用OSPF泛洪机制在一个区域内的设备间同步这些信息,最终形成统一的TEDB,为路径计算做好准备。

OSPF TE与CSPF交互

OSPF通过Type10-LSA收集区域内的TE信息,包括带宽、优先级、链路开销(Metric)等,经过处理后,把这些信息提供给CSPF进行路径计算。

IGP Shortcut和转发邻接

OSPF支持IGP Shortcut和转发邻接(Forwarding Adjacency)特性,这两个特性允许OSPF使用隧道接口(Tunnel接口)作为到达某个目的地址的出接口。

IGP Shortcut和转发邻接的区别在于:

  • 使能IGP Shortcut特性的设备使用隧道接口作为出接口,但不将这个隧道接口链路发布给邻居,因此,其他设备不能使用此隧道。

  • 使能转发邻接特性的设备在使用隧道接口作为出接口的同时,也将这个隧道接口发布给邻居,因此,其他设备能够使用此隧道。

  • IGP Shortcut是单向的,只需要在使用该特性的设备上配置即可。

OSPF DS-TE

DS-TE(DiffSer Aware Traffic Engineering)综合了MPLS TE和差分服务模型Diff-Ser(Differentiated Services)的优点,在精确控制流量流经的路径的基础上,可以根据业务的不同服务等级,有差别地进行流量的控制和转发,从而支持在有效利用网络资源的同时,为不同的业务流预留所需的资源。

为了支持MPLS中DS-TE的应用,OSPF支持在TE-LSA中携带子TLV(Local Overbooking Multiplier Type-Length-Value)和带宽约束BC(Bandwidth Constraint)TLV,用于发布和收集链路上各优先级的每个CT(Class Type,一条或一组LSP的相同服务等级的带宽集合)的可预留带宽。

OSPF SRLG

OSPF通过获取在同一个区域的各设备间扩散TE的共享风险链路组(Shared Risk Link Group,SRLG)信息来支持MPLS中SRLG的应用。

OSPF安全

OSPF GTSM

GTSM(Generalized TTL Security Mechanism),即通用TTL安全保护机制,通过检查IP报文头中的TTL值是否在一个预先定义好的范围内来对IP层以上业务进行保护,从而达到防止攻击的目的。如果攻击者模拟真实的OSPF协议单播报文,对一台交换机不断地发送报文,交换机收到这些报文后,发现是本机报文,则直接上送控制层面的OSPF协议处理,而不加辨别其“合法性”,这样导致交换机控制层面因为处理这些“合法”报文,系统异常繁忙,CPU占用率高。

在实际应用中,GTSM特性主要用于保护建立在TCP/IP基础上的控制层面(路由协议等)免受CPU利用(CPU-utilization)类型的攻击,如CPU过载(CPU overload)。

使能了GTSM特性和策略的设备会对收到的所有报文进行策略检查。对于没有通过策略的报文丢弃或者上送控制平面,从而达到防止攻击的目的。策略内容包括:

  • 发送给本机IP报文的源地址。

  • 报文所属的VPN实例。

  • IP报文的协议号(OSPF是89,BGP是6)。

  • TCP/UDP之上协议的协议源端口号、目的端口号。

  • 有效TTL范围。

GTSM的实现手段如下:

  • 对于直连的协议邻居:将需要发出的单播协议报文的TTL值设定为255。

  • 对于多跳的邻居:可以定义一个合理的TTL范围。

GTSM的应用范围是:

  • GTSM对单播报文有效,对组播报文无效。这是因为组播报文本身具有TTL值为255的限制,不需要使用GTSM进行保护。

  • GTSM不支持基于Tunnel的邻居。

OSPF报文认证

OSPF支持报文验证功能,只有通过验证的OSPF报文才能接收,否则将不能正常建立邻居。

路由器支持两种验证方式:

  • 区域验证方式

  • 接口验证方式

当两种验证方式都存在时,优先使用接口验证方式。

OSPF GR

随着路由设备普遍采用了控制和转发分离的技术,在网络拓扑保持稳定的情况下,控制层面的重启并不会影响转发层面,转发层面仍然可以很好地完成数据转发任务,从而保证业务不受影响。

GR技术保证了在重启过程中转发层面能够继续指导数据的转发,同时控制层面邻居关系的重建以及路由计算等动作不会影响转发层面的功能,从而避免了路由震荡引发的业务中断,提高了整网的可靠性。

基本概念

GR是Graceful Restart的简称,又被称为平滑重启,是一种用于保证当路由协议重启时数据正常转发并且不影响关键业务的技术。

如果没有特殊说明,以下所说GR均表示RFC3623所规定的GR技术。

GR技术是属于高可靠性(HA,High Availability)技术的一种。HA是一整套综合技术,主要包括冗余容错、链路保证、节点故障修复及流量工程。GR是一种冗余容错技术,目前已经被广泛的使用在主备切换和系统升级方面,以保证关键业务的不间断转发。

和GR相关的概念如下:

  • Grace-LSA

    OSPF通过新增Grace-LSA来支持GR功能。这种LSA用于在开始GR和退出GR时向邻居通告GR的时间、原因以及接口地址等内容。

  • 交换机在GR中的角色

    • Restarter:重启交换机。可以通过配置支持完全GR或者部分GR。

    • Helper:协助重启交换机。可以通过配置支持有计划GR、无计划GR或者通过策略有选择支持GR。

  • GR的原因

    • Unknown:未知原因导致的GR操作。

    • Software restart:通过命令行主动触发的GR操作。

    • Software reload/upgrade:软件重启或升级导致的GR操作。

    • Switch to redundant control processor:异常主备倒换导致的GR操作。

  • GR的持续时间

    GR持续时间最长不超过1800秒。GR成功或失败都可以提前退出,不必等到超时才退出。

GR的分类
  • 完全GR(Totally GR):指当有一个邻居不支持GR功能时,整个交换机退出GR状态。

  • 部分GR(Partly GR):指当有一个邻居不支持GR时,仅该邻居所关联的接口退出GR,其它接口正常进行GR过程。

  • 有计划GR(Planned GR):指手动通过命令使交换机执行重启或主备倒换。在进行重启或主备倒换前Restarter会先发送Grace-LSA。

  • 非计划GR(UnPlanned GR):与Planned GR的区别在于,交换机是由于故障等原因进行重启或主备倒换,并且在主备倒换前不会事先发送Grace-LSA,而是直接开始主备倒换,在备板正常Up后才进入GR过程。以下的步骤同Planned GR。

GR的过程

OSPF GR分为开始、进行中和退出三个过程,如图1所示。

图6-43  OSPF GR过程
  1. OSPF GR开始

    1. 交换机执行主备倒换后,Restarter首先向每个邻居发送一个Grace-LSA,通知邻居GR的开始以及GR的周期、原因等。

      说明:
      如果是Planned-GR,Restarter会向每个邻居发送Grace-LSA,而如果是Unplanned-GR,Restarter则不发送Grace-LSA。
    2. Restarter进入GR状态前会发送一个Grace-LSA,以维持OSPF邻居关系。
    3. 当备板状态为Up后,交换机立即发送一个Grace-LSA,通知邻居自己进入GR,包括GR的周期、原因等,然后会再向每个邻居连续发送五个Grace-LSA。

      说明:
      连续发送五个Grace-LSA是为了确保邻居收到该Grace-LSA,此规定为各厂商的实现方案,非协议规定。

    此时,发送的Grace-LSA是为了告知邻居自己进入GR状态,邻居会在GR期间保持与Restarter的邻居关系,让其它交换机感知不到Restarter的倒换。

  2. OSPF GR进行中

    1. 在Restarter和Helper之间建立OSPF邻接关系。
    2. Helper检测会话对端Restarter的状态,如果发现Restarter的状态为Down,Helper则会认为Restarter能在设定的GR时间内恢复业务。在GR时间超时之前,Helper既不结束对话也不删除Restarter的拓扑或路由信息。
    3. Restarter恢复后,会向每个邻居发送信号,并在收到响应后重新建立邻居关系列表。
    4. Restarter通过与所有邻居建立会话可获得拓扑或路由信息,根据收到的拓扑或路由信息计算自己的路由表。

    管理员或故障都可触发GR Restarter倒换和GR重启。GR Restarter在发生故障倒换时既不删除路由表/转发表中的路由信息也不复位接口板,因此整个系统可以不间断地转发IP报文。

  3. GR退出

    • 如果GR成功,则Restarter在GR超时前与主备倒换前的所有邻居都重新建立好邻居关系,Helper收到Restarter发送的Age为3600秒的Grace-LSA时与Restarter的邻居关系为Full状态。

    • 如果GR失败,则Restarter端的表现为:

      • GR超时并且邻居关系尚未完全恢复。

      • Helper发送的Router-LSA或Network-LSA导致Restarter端进行双向检查时失败。

      • Restarter接口状态变化。

      • Restarter收到Helper发送的1-way Hello报文。

      • Restarter收到同一网段上另一台交换机产生的Grace-LSA。同一网段同一时间只能有一台交换机做GR。

      • Restarter同一个网段的邻居之间存在DR/BDR不一致的情况(拓扑变化)。

      Helper端的表现为:

      • 在邻居关系超时前没有收到Restarter发送的Grace-LSA。

      • Helper接口状态发生变化。

      • 收到其它交换机发送的与Helper本地数据库不一致的LSA。(可以通过配置不进行严格LSA检查排除这种情况。)

      • 同一网段上同一时间收到两台交换机发送的Grace-LSA。

      • 与其它交换机邻居关系变化。

有无GR技术的比较
表6-10  有无GR技术的比较

无GR技术的主备倒换

有GR技术的主备倒换

  • OSPF邻居重建

  • 路由重新计算

  • 转发表变化

  • 整网感知路由变化,路由短时震荡

  • 转发流量丢失,业务中断

  • OSPF邻居重建

  • 路由重新计算

  • 转发表保持不变

  • 除主备倒换设备的邻居外的其他交换机感知不到路由变化

  • 转发流量零丢失,业务不受影响

OSPF邻居震荡抑制

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

产生原因

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

相关概念

flapping_event:震荡事件,接口上最后一次邻居状态由Full切换为非Full,称之为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-interval,threshold,resume-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进程。
  • 用户通过命令行强制退出震荡抑制状态。
典型场景
基本场景

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

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

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

说明:

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

图6-45  关键路径场景的邻居震荡抑制
广播网场景

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

图6-46  广播网场景的邻居震荡抑制
多区域组网场景

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

说明:

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

图6-47  多区域组网场景的邻居震荡抑制
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、退出)为条件,详细情况请参考表6-11

表6-11  震荡抑制模式优先生效原则

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路径的目的。

图6-48  IGP-LDP联动和邻居震荡抑制同时部署的场景
误码倒换和邻居震荡抑制同时部署的场景

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

OSPF Smart-discover

定义

通常情况下,路由器会周期性地从运行OSPF协议的接口上发送Hello报文。这个周期被称为Hello Interval,通过一个Hello Timer定时器控制Hello报文的发送。这种按固定周期发送报文的方式减缓了OSPF邻居关系的建立。

通过使能Smart-discover特性,可以在特定场景下加快OSPF邻居的建立。

表6-12  OSPF Smart-discover

接口是否配置Smart-discover

处理

接口没有配置Smart-discover

  • 必须等待Hello Timer到时才能发送Hello报文;

  • 两次报文发送间隔为Hello Interval;

  • 在这期间邻居一直在等待接收报文。

接口上配置Smart-discover

  • 直接发送Hello报文,不需要等待Hello Timer超时;

  • 邻居可以很快收到报文迅速进行状态迁移。

原理

在以下场景中,使能了Smart-discover特性的接口不需要等待Hello Timer到时,可以主动向邻居发送Hello报文:

  • 当邻居状态首次到达2-way状态。

  • 当邻居状态从2-way或更高状态迁移到Init状态。

OSPF Database Overflow

定义

OSPF协议要求同一个区域中的路由器保存相同的链路状态数据库LSDB(Link-State Database)。

随着网络上路由数量不断增加,一些路由器由于系统资源有限,不能再承载如此多的路由信息,这种状态就被称为数据库超限(OSPF Database Overflow)。

目的

对于路由信息不断增加导致路由器系统资源耗尽而失效的问题,可以通过配置Stub或NSSA区域来解决,但Stub或NSSA区域的方案不能解决动态路由增长导致的数据库超限问题。为了解决数据库超限引发的问题,通过设置LSDB中External LSA的最大条目数,可以动态限制链路数据库的规模。

原理

通过设置路由器上非缺省外部路由数量的上限,来避免数据库超限。

OSPF网络中所有路由器都必须配置相同的上限值。这样,只要路由器上外部路由的数量达到该上限,路由器就进入Overflow状态,并同时启动超限状态定时器(默认超时时间为5秒),路由器在定时器超过5秒后自动退出超限状态。

表6-13  OSPF Database Overflow

Overflow状态阶段

OSPF处理流程

进入Overflow状态时

路由器删除所有自己产生的非缺省外部路由。

处于Overflow状态中

  • 不产生非缺省外部路由。
  • 丢弃新收到的非缺省外部路由,不回复确认报文。
  • 当超限状态定时器超时,检查外部路由数量是否仍然超过上限。
    • N=>退出超限状态。
    • Y=>重启定时器。

退出Overflow状态时

  • 删除超限状态定时器。
  • 产生非缺省外部路由。
  • 接收新收到的非缺省外部路由,回复确认报文。
  • 准备下一次进入超限状态。

OSPF Mesh-Group

定义

OSPF Mesh-Group是将并行链路场景中的链路分组,从而洪泛时从群组中选取代表链路进行洪泛,避免重复洪泛而造成不必要的系统压力。

缺省情况下,不使能Mesh-Group功能。

目的

当OSPF进程收到一个LSA或者新产生一个LSA时,会进行洪泛操作。并行链路场景下,OSPF会对每一条链路洪泛LSA,发送Update报文。

这样,如果有2000条并行链路,则每个LSA洪泛都要发送2000次,然而只有一次洪泛是有效的,其他1999次洪泛为重复洪泛。

为了避免这种重复洪泛而造成的系统压力,使能Mesh Group特性,可以将并行链路进行归组,选取代表链路进行洪泛。

原理

图1所示,RouterA和RouterB建立OSPF邻居关系,通过3条链路相连。当RouterA从接口4接收到新的LSA后,会将该LSA通过1、2、3接口洪泛到RouterB。

这种洪泛方式会造成并行链路的压力,因为对于存在多条并行链路的邻居来说,只需要选取一条主链路进行洪泛LSA即可。

图6-49  没有使能OSPF Mesh-Group特性时LSA的洪泛情况

使能了OSPF Mesh-Group特性的设备和邻居存在多条并行链路时,当其收到LSA后,会选取一条主链路进行泛洪,如图2所示。

当主链路上接口状态低于Exchange时,OSPF会在并行链路中重新选取主链路,并继续洪泛LSA,这是因为,OSPF规定,只有当邻居状态达到Exchange时,才能洪泛LSA。并且,当RouterB从链路1收到来自RouterA洪泛的LSA后,不会再将该LSA从链路2、3反向洪泛给RouterA。

图6-50  使能OSPF Mesh-Group特性时LSA的洪泛情况

Mesh-Group以邻居的Router ID唯一标识一个群组,接口状态大于Exchange且与同一个邻居相连的接口属于同一个Mesh-Group。

图3所示,RouterA在区域0中有一个群组,分别是接口1和接口2所在的链路。由于接口3所在的链路为广播链路,有超过一个邻居,所以不能加入到群组中。

图6-51  接口不能加入到群组中的情况

说明:

另外,路由器使能Mesh-Group后,若其直连的邻居路由器Router ID配置重复,会引起全网LSDB不同步、路由计算不正确的情况,需要重新配置邻居路由器的Router ID(注:配置重复Router ID属于错误配置)。

翻译
下载文档
更新时间:2019-04-17

文档编号:EDOC1000141402

浏览量:27131

下载量:1379

平均得分:
本文档适用于这些产品
相关文档
相关版本
分享
上一页 下一页