Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

如何在 OSPFv2 分段路由网络中配置微环避免

微环会消耗链路的可用带宽,从而影响有用数据包的有效传输。避免微环路可以防止环路数据包的转发。

了解 OSPF 微环避免

使用分段路由避免 OSPFv2 网络中出现微环的好处

  • 微无环路可避免延迟和流量丢失。

  • 避免微环路可以防止环路数据包的转发,避免浪费带宽消耗。
  • 仅在发生多个链路故障时,才会为受影响的链路计算微环避免路径。如果第二个链路故障未影响计算出的微环避免路径,则 OSPFv2 将继续使用相同的微环避免路径。

Junos OS 使设备能够在 OSPFv2 链路出现故障时延迟 OSPFv2 路由下载,以避免微环路。当本地链路中断时,OSPFv2 协议会使数据库泛滥整个区域。如果连接到发生故障的本地接口的节点收敛速度快于相邻节点,则连接的节点会将流量重定向到收敛路径。这种重定向可能会导致流量微环路,直到相邻节点融合。当受保护节点的主路径发生故障时,如果配置的备份路径不受影响,则连接的节点不需要快速收敛。在这种情况向融合路径的流量将延迟到配置的延迟时间。这种时间延迟有助于避免微环,因为所有路由器不会同时到达收敛后的转发状态。

图 1:OSPFv2 网络 Microloop Avoidance in OSPFv2 Networks中的微环避免

图 1 中,从源到目标的主路径为 SR0R1R2R3D。当 R2 和 R3 之间的链路出现故障时,从 S 发送到 D 的流量会受到瞬时转发环路的影响,同时路由器会更新目的地 D 的转发状态。

• 如果 R0 在 R5 之前更新其转发状态,则数据包在 R0 和 R5 之间循环

• 如果 R0 和 R5 都更新了转发状态,而 R4 没有,则数据包在 R4 和 R5 之间循环。

• R0 检测到 R2 和 R3 之间的链路故障,并暂时通过 SR 路径 [NodeSID(R4), AdjSID(R4->R3), D] 引导发往目标的流量。

• 当配置的超时时间过去时,R0 仅使用节点 SID 到 D 到达目标。

使用分段路由的 OSPFv2 网络中的微环路避免

从 Junos OS 22.1R1 版开始,您可以在设备上启用收敛后路径计算,以便在 OSPFv2 分段路由网络中发生链路或指标变化时避免出现微环。要在 OSPFv2 分段路由网络中为本地和远程网络事件(包括链路关闭、链路上行和指标更改)配置微环避免,请在[edit protocols ospf spf-options microloop avoidance post-convergence-path]层次结构级别包含maximum-labelsdelay milliseconds语句。为了有效地避免微环路,请在网络中的所有节点上配置此功能。

注意:

微环路避免不能替代 TI-LFA 等局部修复机制,后者可以非常快速地检测局部故障并激活预先计算的无环路替代路径。

实施微环路避免的路由器只有在收到事件的链路状态更新后才会计算微环路避免路径。因此,微环路避免机制不能替代 TI-LFA 等局部修复机制,后者可以非常快速地检测局部故障并在 PFE 级别激活预先计算的无环路替代路径。在上面的示例中,如果R2R3故障没有本地修复机制,则在R0检测到故障(通过全局收敛)并编程微环避免路径之前,将会有大量的流量丢失。微环避免无法避免由于故障检测延迟造成的流量损失。微环避免可避免仅因微环路造成的流量损失。必须在网络中的所有节点上启用 TI-LFA 和微环路避免等本地修复机制,以确保流量丢失在毫秒范围内。

为避免微循环,使用以下过程:

1. 在计算到 D 的新路径后,在预定的时间内,R 为 D 安装一个条目,该条目通过无环路分段路由路径将数据包引导到 D。此时间应大于网络中任何路由器的最坏延迟情况。

2. 在配置的时间延迟之后,R 为 D 安装收敛后路由条目,该条目没有任何 SID。

支持和不支持的功能

Junos OS 在以下场景中支持避免微环:

  • 所有支持 OSPF 路由协议的 Junos OS 平台都支持微环避免。

  • 只有 IPv4 网络支持微环避免。

  • 灵活的算法拓扑支持微环避免。

Junos OS 不支持以下功能以及微环避免功能:

  • 不支持需要 8 个以上标签的微环避免路径。为微环避免路径安装的最大标签数为 8。要使微环避免 ECMP 路径可用,标签数必须小于或等于最大标签数。
  • 由于控制平面收敛速度慢,无法阻止流量丢失。
  • OSPFv2 多拓扑结构不支持微环避免。
  • 邻接 SID 不支持微环避免。
  • 如果有快捷方式可用,OSPFv2 不会提供微环避免路径。

在 OSPFv2 网络中配置分段路由微环避免

概述

微环是在链路关闭、链路启动或指标更改等网络更改事件之后在网络中发生的数据包转发环路。发生网络更改事件时,不同的路由器会在不同的时间更新其转发状态。这可能导致数据包在上游和下游路由器之间短暂循环,从而导致数据包丢失、抖动和数据包乱序。微环会消耗链路的可用带宽,从而影响有用数据包的有效传输。

避免微环路可以防止环路数据包的转发。分段路由微环避免功能可检测拓扑更改后是否可实现微环路。当检测到网络更改事件时,路由会被编程为采用融合后路径,该路径使用节点和邻接 SID 的组合。这可以确保可能尚未融合的路由器不会使数据包绕行,从而导致微环路。此行为将持续一段可配置的延迟。延迟计时器到期后,将使用目标的节点 SID 正常对路由进行编程。

要求

此示例使用以下硬件和软件组件:

  • 八台 MX 系列路由器。

  • Junos OS 22.1R1 或更高版本。

拓扑学

在图 2 中,设备 R0 和设备 R7 是支持设备 CE1 和 CE2 的入口和出口路由器。设备 R1、R2、R3、R4、R5 和 R6 组成了一个仅支持 IPv4 的提供商核心网络。所有设备都属于同一个自治系统。OSPFv2 是核心中的内部网关协议,配置为支持微环避免。在此示例中,设备 R2 配置为一个 IPv4 路由反射器,其 IBGP 对等会话到 R0 和 R7。在此示例中,没有其他路由器使用 BGP。设备 R6 配置了防火墙过滤器,以检测链路关闭事件后带有微环的数据包(如果有)。

图 2:微环避免拓扑 Microloop Avoidance Topology

配置

CLI 快速配置

要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,然后将命令复制并粘贴到 [编辑] 层次结构级别的 CLI 中。

设备 R0

设备 R1

设备 R2

设备 R3

设备 R4

设备 R5

设备 R6

设备 R7

配置设备 R0

分步过程

要在 OSPFv2 网络中配置分段路由微环避免路径,请在 R0 设备上执行以下步骤:

  1. 配置设备接口以启用 IP 和 MPLS 传输。

  2. 配置用作 OSPF 会话的路由器 ID 的环路接口 (lo0) 地址。

  3. 配置路由器 ID 和自治系统 (AS) 编号,以便在属于同一 AS 的一组路由设备中传播路由信息。

  4. 定义一个策略来对数据包进行负载平衡,并应用每个数据包的策略来启用流量的负载平衡。

  5. 配置 R0 以通告环路地址。该 prefix-segment index 选项可为每个路由器的环路设置基本标签。在此示例中,基数索引设置为 reflect|路由器编号。因此,R0 使用 1000。

  6. 在所有接口上配置 MPLS,管理接口除外。同时启用流量工程。

  7. 配置 MPLS 标签范围以为链路分配静态标签。

  8. 在 R0 和路由反射器 R2 之间配置 BGP 对等互连。配置单播网络层可达性信息 (NRLI),以便为设备上的每个前缀分配唯一标签。

  9. 配置 TI-LFA 以启用链路和节点故障防护。如果主路径出现故障或变得不可用,使用 TI-LFA 的 SR 会立即将流量路由到备份路径或备用路径,从而更快地恢复网络连接。

  10. 将备份最短路径优先 (SPF) 属性(如最大等价多路径 (ECMP) 配置为 8,将 OSPFv2 协议的 TI-LFA 的最大标签数配置为 5。

  11. 在 SPRING 中为 OSPFv2 协议配置分段路由全局块 (SRGB) 的前缀、分段属性、起始标签和索引范围。

  12. 将环路接口配置为被动接口,以确保协议不会在环路接口上运行,并确保环路接口在整个网络中正确播发。

  13. 在设备 R0 的点对点接口上配置 OSPF 区域 0。

  14. 配置备份路径的计算和安装,该路径遵循 OSPFv2 协议的给定区域和接口上的收敛后路径。还要在遵循融合后路径的这些接口上启用节点链路保护。

  15. 配置微环避免,为可能受微环影响的路由临时安装收敛后路径,并为 OSPFv2 协议指定 60000 毫秒的延迟时间段。延迟计时器过期后,临时路径将还原为目标的节点 SID。

结果

检查配置结果:

验证

确认配置工作正常。

以下部分介绍了链路关闭事件的微环避免。

在禁用 R0 和 R1 之间的链路之前,验证 R0 和 R7 之间的连接

目的

验证设备 R0 是否可以到达设备 R7 上的目标。

行动

在作模式下,在设备 R0 上运行 ping 命令。

意义

这些结果确认设备 R0 可以到达 OSPFv2 网络中的设备 R7。

验证是否禁用 R0 和 R1 之间的链路

目的

验证是否禁用设备 R0 上 R0 和 R1 之间的链路

行动

在配置模式下,在设备 R0 上运行 disable interface 命令

要验证链路是否已禁用,请在作模式下对设备 R0 运行 show interfaces 命令

意义

输出指示 R0 和 R1 之间的物理链路已禁用,并且在管理上已关闭。

禁用链路后,验证为目标安装的微环避免路径

目的

通过验证 inet.3 表中的路由和 mpls.0 表中的路由标签详细信息,验证在 R0 和 R1 之间禁用链路时,从 R0 为目标路由 R7 安装的微环避免路径。

行动

在作模式下,在设备 R0 上运行 show route table inet.3 命令。

在作模式下,在设备 R0 上运行 show route label label value protocol ospf extensive 命令。

意义

输出表明,当 R0 和 R1 之间的链路断开时,将为 R7 安装从 R0 到 R4 的微环避免路径,直到延迟计时器到期。

使用微环验证数据包

目的

使用防火墙计数器信息通过微环验证数据包

行动

在作模式下,在设备 R6 上运行 show firewall 命令。

意义

输出显示设备 R6 上配置的 mplsfilter 以显示微环(如果有)。值 0 表示没有带有微环的数据包。

验证延迟计时器到期后微环避免路径对收敛后路径的更改

目的

验证为目标路由 R7 安装的微环避免路径,在延迟计时器 60000 毫秒到期后,从 R0 更改为收敛后路径。

行动

在作模式下,在设备 R0 上运行 show route table inet.3 命令。

在作模式下,在设备 R0 上运行 show route label label value protocol ospf extensive 命令。

意义

输出指示在延迟计时器到期后,微环避免路径将更改为收敛后路径。

验证 R0 和 R7 之间的连接

目的

验证设备 R0 是否可以到达设备 R7 上的目标。

行动

在作模式下,在设备 R0 上运行 ping 命令。

意义

这些结果证实,设备 R0 可以到达 OSPFv2 网络中的设备 R7,并且由于配置了微环避免路径,在链路中断的情况量流量的丢包率为 0%。

验证启用链路后路径更改为微环避免路径

目的

验证在 R0 和 R1 之间启用链路时,目标的路径是否更改为微环避免路径。

行动

在作模式下,在设备 R0 上运行 show route table inet.3 命令。

在作模式下,在设备 R0 上运行 show route label label value protocol ospf extensive 命令。

意义

输出显示从 R0 到目标 R7 的路由,其中包括微环避免路径和 R0 和 R7 之间启用链路后的收敛后路径。