Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

为 OSPF 配置无环路替代路由

每个前缀 OSPF 无环路替代产品

在某些拓扑和使用场景中,当多个目标发起同一个前缀时,没有可行的 LFA 给最佳前缀发起方,而非最佳前缀发起方则有一个。 按前缀 LFA 是一种技术,通过该技术,可以使用对非最佳前缀发起者的 LFA 代替最佳前缀发起者的 LFA,以提供本地修复。这还可用于增加 OSPF 协议的本地维修覆盖范围。

每个前缀的无环路替代项 (LFA) — 无环路替代项 (LFA) 是一种技术,通过该技术,邻接方可用作下一跃点的备份,为流量提供本地修复路径,以便流量在主下一跃点(节点或链路)出现故障时临时流动。为此,基本要求是,所选的备份邻接方为指向目标的主下一跃点提供一个无环路路径,从而发起一组内部网关协议 (IGP) 前缀。

以下拓扑解释了每个前缀 LFA 功能的适用部署情况。

图 1:每个前缀 LFA 使用场景 Per-Prefix LFA Usage Scenario

ABR1 和 ABR2 是双宿主 IPv6 核心网络的区域边界路由器 (ABR),其播发前缀 10.0.1.0/24 的汇总 LSA,指标为 10。此外,从 PE 路由器的角度来看,ABR1 是 10.0.1.0/24 的最佳前缀发起方。在这种情况下,P2 不是 ABR1 的有效 LFA,因为等价多路径 (ECMP) {P2、PE、P1、ABR1} 和 {P2、ABR2、ABR1} 导致部分流量通过路由器 PE 循环回(无有效 LFA)。但是,对于 ABR2(也是 10.0.1.0/24 的前缀发起方),P2 是有效的 LFA,因为唯一路径是 {P2,ABR2}。

为 OSPF 配置每个前缀 LFA

每个前缀 LFA 是一种机制,通过该机制,可以使用 LFA 到非最佳前缀发起方,以代替最佳前缀发起国的 LFA,以提供本地修复。在这种情况下,每个前缀 LFA 可用于增加 OSPF 协议的本地修复覆盖范围。

无环路替代项 (LFA) 是一种机制,通过此机制,邻接方可用作下一跃点的备份,为流量提供本地修复路径,以防主下一跃点(节点或链路)出现故障时临时流动。为此,基本要求是,所选的备份邻接方为向始发一组 IGP 前缀的目标的下一跃点提供一个无环路路径。在某些拓扑和使用场景中,可能有多个目标发起同一前缀,而最佳前缀发起方没有可行的 LFA,而非最佳前缀发起方则有一个。每个前缀 LFA 是一种机制,通过该机制,可以使用 LFA 到非最佳前缀发起方,以代替最佳前缀发起国的 LFA,以提供本地修复。在这种情况下,每个前缀 LFA 可用于增加 OSPF 协议的本地修复覆盖范围。

要为 OSPF 接口配置每个前缀 LFA:

per-prefix-calculation层次结构级别配置配置语句[edit protocols (ospf | ospf3) backup-spf-options]

适用于 OSPF 的无环路替代路由概述

支持 OSPF 无环路备用路由,这实际上增加了适用于 OSPF 的 IP 快速重新路由功能。Junos OS 可预计算所有 OSPF 路由的无环路备份路由。这些备份路由预安装在数据包转发引擎中,当特定路由的主下一跃点的链路不再可用时,该引擎会执行本地修复和实施备份路径。通过本地修复,数据包转发引擎可以在从路由引擎接收预先计算的路径之前纠正路径故障。本地维修将重新路由流量所需的时间减少到 50 毫秒以内。相比之下,计算新路由需要 800 毫秒的全局修复时间。本地修复使流量可以使用备份路径继续路由,直到全局修复能够计算出新路由。

无环路路径是指不会通过路由设备转发流量以到达给定目标的路径。也就是说,第一个到达目标的最短路径的邻接方将遍历未用作该目标的备份路由设备的邻接方。要确定 OSPF 路由的无环路备用路径,Junos OS 对每个单跳邻接方运行最短路径优先 (SPF) 计算。您可以在任何 OSPF 接口上启用对替代无环路路由的支持。由于常见做法是在已启用 OSPF 的接口上启用 LDP,因此此功能还支持 LDP 标签交换路径 (LSP)。

注意:

如果在同时为 LDP 和 OSPF 配置的接口上启用对备用无环路路由的支持,则可以使用 traceroute 命令将活动路径跟踪到主下一跃点。

通过 OSPF 路由提供的备份覆盖范围级别取决于实际的网络拓扑结构,对于任何给定路由设备上的所有目标,通常不到 100%。您可以扩展备份覆盖范围,以包括 RSVP LSP 路径。

Junos OS 通过备用无环路路由为 OSPF 提供三种路由冗余机制:

  • 链路保护 — 提供每链路流量保护。如果假设只有单个链路可能不可用,但主路径上的邻接节点仍可通过另一个接口使用,请使用链路保护。

  • 节点链路保护 — 通过不同的路由设备完全建立备用路径。如果某个链路不再可用,假设对某个节点的访问将丢失,请使用节点链路保护。因此,Junos OS 会计算可避开主下一跃点路由设备的备份路径。

  • 每个前缀的无环路替代项 (LFA) — 该技术可将邻接方用作下一跃点的备份,为流量提供本地修复路径,以防主下一跃点(节点或链路)出现故障时临时流动。为此,基本要求是,所选的备份邻接方为指向目标的主下一跃点提供一个无环路路径,从而发起一组内部网关协议 (IGP) 前缀。

    在某些拓扑和使用场景中,可能有多个目标发起同一个前缀,而最佳前缀发起方没有可行的 LFA,而非最佳前缀发起方则具有可行的 LFA。 按前缀 LFA 是一种机制,通过该机制,可以使用 LFA 到非最佳前缀发起方,以代替最佳前缀发起人的 LFA,以提供本地修复。在这种情况下,每个前缀 LFA 可用于增加 OSPF 协议的本地修复覆盖范围。

在 OSPF 接口上启用链路保护或节点链路保护时,Junos OS 会为遍历受保护接口的所有目标路由创建到主下一跃点的替代路径。

排除 OSPF 接口作为受保护接口的备份

默认情况下,属于默认实例或特定路由实例的所有 OSPF 接口均有资格作为配置了链路保护或节点链路保护的接口的备份接口。您可以指定排除任何 OSPF 接口,无法用作受保护接口的备份接口。

要排除 OSPF 接口作为受保护接口的备份接口:

  • no-eligible-backup 层次结构级别包括语句 [edit protocols (ospf | ospf3) area area-id interface interface-name]

在以下示例中,接口 so-0/0/0.0 已配置为禁止以受保护接口为目的地的流量的备份流量。这意味着,如果受保护接口的相邻下一跃点路径或节点发生故障,则接口 so-0/0/0.0 无法用于将流量传输到备份路径。

为受保护的 OSPF 接口配置备份 SPF 选项

默认情况下,如果为链路保护或节点链路保护至少配置了一个 OSPF 接口,Junos OS 会计算 OSPF 实例中所有拓扑的备份下一跃点。您可以配置以下备份最短路径优先 (SPF) 选项以覆盖默认行为:

  • 禁用 OSPF 实例或实例中特定拓扑的备份下一跃点的计算。

  • 防止在路由表中或者 OSPF 实例或实例中的特定拓扑的转发表中安装备份下一跃点。

  • 将备份下一跃点的计算限制在 RFC 5286《 IP 快速重新路由基本规范:无环路替代项》中定义的路径子集。

您可以为 OSPF 实例或实例中的特定拓扑禁用备份 SPF 算法。这样做会阻止计算该 OSPF 实例或拓扑的备份下一跃点。

要禁用 OSPF 实例或拓扑的备份下一跃点计算:

  • disable[edit protocols ospf backup-spf-options topology topology-name]层级包括语句[edit protocols (ospf | ospf3) backup-spf-options]

在以下示例中,OSPF 拓扑 语音禁用备份下一跃点的计算:

您可以对路由设备进行配置,以防止在路由表中或 OSPF 实例的转发表中安装备份下一跃点,或者在 OSPF 实例中安装特定拓扑。SPF 算法会继续计算备份的下一跃点,但尚未安装。

要防止路由设备在路由表或转发表中安装备份的下一跃点,

  • no-install层级或[edit protocols ospf topology topology-name]层级包括语句[edit protocols (ospf | ospf3) backup-spf-options]

在以下示例中,路由表或转发表中未安装 OSPF 拓扑 语音 的备份下一跃点。将继续安装其他 OSPF 实例或拓扑计算出的任何备份下一跃点。

您可以根据 RFC 5286 中的定义,将备份下一跃点的计算限制为 下游路径。您可以指定 Junos OS 仅将下游路径用作 OSPF 实例或 OSPF 实例中特定拓扑的受保护接口的备份下一跃点。在下行路径中,备用邻接方到目标的距离必须小于计算路由设备到目标的距离。仅将下游路径用作受保护接口的无环路备用路径,可确保这些路径不会导致微网络。但是,您的网络的备份覆盖范围可能不够理想。

将备份下一跃点的计算限制为下游路径:

  • downstream-paths-only[edit protocols ospf backup-spf-options topology topology-name]层级包括语句[edit protocols (ospf | ospf3) backup-spf-options]

在以下示例中,只有下游路径计算为 语音拓扑的备份下一跃点:

将 RSVP 标签交换路径配置为 OSPF 的备用路径

配置 OSPF 接口以实现链路保护或节点链路保护时,依靠单跃点邻接方备份路径的最短路径优先 (SPF) 计算可能会导致特定网络拓扑的备份覆盖范围不足 100%。您可以将 RSVP LSP 配置为备用路径,从而扩大 OSPF 和 LDP 标签交换路径 (LSP) 的覆盖范围。

配置 LSP 时,必须指定出口路由器的 IP 地址。

注意:

RSVP LSP 只能用作 OSPFv2 的默认拓扑的备份路径,而不能用作已配置的拓扑。此外,RSVP LSP 不能为 OSPFv2 或 OSPFv3 的非默认实例使用备份路径。

将特定 RSVP LSP 配置为备份路径:

  1. backup 层次结构级别包括语句 [edit protocols mpls labeled-switched-path lsp-name]
  2. 通过在层次结构级别包含语句, to ip-address 指定出口路由器的 [edit protocols mpls label-switched-path] 地址。

在以下示例中,RSVP LSP f-to-g 配置为受保护 OSPF 接口的备份 LSP。出口路由器的 IP 地址为 192.168.1.4

示例:为 OSPF 配置无环路替代路由

此示例演示了对启用 OSPF 的接口使用链路保护。

启用链路保护后,Junos OS 会为遍历受保护接口的所有目标路由创建到主下一跃点的备用路径。如果假设只有单个链路可能不可用,但相邻节点仍可通过另一个接口使用,请使用链路保护。

要求

配置此示例之前,不需要除设备初始化之外的特殊配置。

概述

在此示例中,为 6 个 OSPF 邻接方配置了链路保护。这会使 Junos OS 为遍历每个受保护接口的所有目标路由创建到主下一跃点的替代路径。此处使用了链路保护,因为即使某个链路不可用,邻接节点仍然可以通过另一个接口使用。

此示例显示了两个拓扑。一种是默认拓扑,另一种是语音拓扑。有关多拓扑路由的更多信息,请参阅 《多拓扑路由用户指南》。

该示例还包括配置为受保护 OSPF 接口的备份 LSP 的 RSVP LSP。

拓扑

图 2 显示了示例网络。

图 2:OSPF 链路保护 OSPF Link Protection

CLI 快速配置 显示了 图 2 中所有设备的配置。

#d89e65__d89e783 节介绍了设备 R1 上的步骤。

配置

CLI 快速配置

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

设备 R1

设备 R2

设备 R3

设备 R4

设备 R5

设备 R6

程序

逐步过程

以下示例要求您在配置层次结构中的各个级别上导航。有关导航 CLI 的信息,请参阅 CLI 用户指南中的在配置模式下使用 CLI 编辑器。

要配置设备 R1:

  1. 配置设备接口。

  2. 扩展备份覆盖范围,以包括 RSVP LSP 路径。

  3. 在接口上启用 MPLS,并将备份 LSP 配置为设备 R3。

  4. 配置 OSPF 连接、链路指标和链路保护。

  5. (可选)为语音流量配置特定的 OSPF 拓扑。

  6. 在接口上启用 LDP。

  7. (可选)配置按数据包负载均衡。

  8. 配置路由协议进程 (rpd), 以在创建新的转发下一跃点时请求确认。

    我们建议在使用 indirect-next-hop-change-acknowledgements 保护机制时配置语句。其中包括 MPLS RSVP 保护,例如快速重新路由 (FRR)以及内部网关协议 (IGP) 无环路备用 (LFA) 链路或节点保护。

结果

在配置模式下,输入 show interfacesshow protocolsshow policy-optionsshow routing-options 命令,以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明,以更正配置。

完成设备配置后,请从配置模式进入 commit

验证

确认配置工作正常。

验证设备 R1 上的路由

目的

在设备 R1 上,检查路由表中的 OSPF 路由。

行动
意义

正如预期的那样,设备 R1 具有多个通往每个目标的可能路由。

检查备份覆盖范围

目的

在设备 R1 上,使用 show (ospf | ospf3) backup coverage 命令检查网络中所有节点和前缀可用的备份覆盖范围级别。

行动

检查备份 LSP

目的

在设备 R1 上,使用 show (ospf | ospf3) backup lsp 命令检查指定为 OSPF 路由备份路由的 LSP。

行动

检查备用邻接方

目的

在设备 R1 上,使用 show (ospf | ospf3) backup neighbor 命令检查通过哪些邻接方提供了备份路径的直接下一跃点。

行动

检查 SPF 计算

目的

在设备 R1 上,使用 show (ospf | ospf3) backup spf detail 命令检查备份路径的 OSPF 最短路径优先 (SPF) 计算。要限制输出,命令中指定语音拓扑。

行动

OSPF 网络中通过 LDP 隧道的远程 LFA 概述

在 OSPF 网络中,无环路备用 (LFA) 是直接连接的邻接方,为通过本地修复点 (PLR) 上的受保护链路可访问的目标提供预先计算的备用路径。远程 LFA 不会直接连接到 PLR,而是使用动态创建的 LDP 隧道向远程 LFA 节点提供预计算的备份路径。当主链路发生故障时,PLR 使用此远程 LFA 备份路径。远程 LFA 的主要目标是扩大 OSPF 网络的备份覆盖范围,并为第 1 层城域网提供保护。

LFA 无法为 OSPF 网络提供完全的备份覆盖范围。这是通常被塑造成环形拓扑的城域以太网网络的主要挫折。为了克服这种挫折,资源预留协议 - 流量工程 (RSVP-TE) 备份隧道通常用于扩展备份覆盖范围。但是,大多数网络提供商已将 LDP 作为 MPLS 隧道设置协议实施,不想仅仅为了备份覆盖范围而实施 RSVP-TE 协议。LDP 会自动向 OSPF 网络中的所有潜在目标提出传输隧道,因此是首选协议。为 MPLS 隧道设置实施的现有 LDP 可以用于保护 OSPF 网络和后续 LDP 目标,从而不再需要 RSVP-TE 备份隧道进行备份覆盖。

要计算远程 LFA 备份路径,OSPF 协议将按以下方式确定远程 LFA 节点:

  1. 首先计算从相邻路由器通过 PLR 的受保护链路的反向最短路径。反向最短路径首先使用传入链路指标(而非传出链路指标)到达相邻节点。

    结果是一组链路和节点,这是从每个叶节点到根节点的最短路径。

  2. 计算剩余相邻路由器上的最短路径优先 (SPF),以查找无需遍历受保护链路即可访问的节点列表。

    结果是,从根节点到所有叶节点的最短路径上还有另一组链路和节点。

  3. 根据上述结果确定公共节点。这些节点是远程 LFA。

OSPF 侦听 LDP 路由的播发标签。对于每个播发的 LDP 路由,OSPF 会检查其是否包含提供的 LDP 下一跃点。如果相应的 OSPF 路由有备份下一跃点,则 OSPF 将运行备份策略并添加一个附加跟踪路由,并将相应的 LDP 标签交换路径下一跃点作为备份下一跃点。如果没有备用下一跃点,LDP 会构建到远程 LFA 的动态 LDP 隧道,LDP 在远程 LFA 节点和 PLR 节点之间建立目标邻接。此备份路由有两个 LDP 标签。顶部标签是 OSPF 路由,表示从 PLR 到远程 LFA 路由的备份路径。底部标签是 LDP MPLS 标签交换路径,表示从远程 LFA 到达最终目标的路由。当 LDP 会话中断且远程隧道不再可用时,OSPF 会更改一直使用此备用 LDP 隧道的所有路由。

注意:

目前,Junos OS 仅支持 IPv4 传输 LSP。如果需要为 IPv6 IGP 网络重用 IPv4 传输 LSP,请将 IPv6 显式 NULL 标签添加到跟踪路由的标签堆栈中。系统会自动将 IPv4 LSP 转换为 IPv6 LSP。

LDP 可能会受到自动目标邻接的攻击,可以使用以下全部或部分机制来缓解这些威胁:

  • 距离多个跃点的远程 LFA 使用扩展的 hello 消息来表示愿意建立有针对性的 LDP 会话。远程 LFA 可以通过过滤并仅接受来自访问或过滤器列表允许的来源来减少欺骗扩展的 hello 消息的威胁。

  • 需要使用 TCP-MD5 验证给定 IGP/LDP 域中的所有自动目标 LDP 会话,并使用应用组或 LDP 全局级别身份验证。

  • 作为一项增加的安全措施,维修或远程隧道端点路由器应从路由域外部无法访问的一组地址进行分配。

通过 OSPF 网络中 LDP 隧道配置远程 LFA 备份

远程无环路备用 (LFA) 的主要目标是扩大 OSPF 路由的备份覆盖范围,特别是为第 1 层城域网提供保护。用于 MPLS 隧道设置的现有 LDP 可以用于保护 OSPF 网络和后续 LDP 目标。OSPF 协议会创建一个动态 LDP 隧道,从本地修复点 (PLR) 到达远程 LFA 节点。当主链路发生故障时,PLR 使用此远程 LFA 备份路径。

在 OSPF 网络中通过 LDP 隧道配置远程 LFA 之前,必须请执行以下操作:

  1. 在环路接口上启用 LDP。

    配置环路接口,因为如果没有环路接口,就无法形成以邻接为目标的 LDP。LDP 目标邻接对于确定远程 LFA 备份路径至关重要。

  2. 确保远程 LFA 允许非对称远程邻接方发现,也就是说,它必须向发起远程邻接的路由器发送周期性的定向 hello 消息,以实现 LDP 自动定向邻接。

  3. 在 PLR 上配置链路保护或节点链路保护。

要通过 OSPF 网络中 LDP 隧道配置远程 LFA 备份:

  1. 启用远程 LFA 备份,以使用动态 LDP 标签交换路径确定备份的下一跃点。
  2. 使用 PLR 和远程 LFA 节点之间的环路地址,启用自动定向 LDP 会话。
  3. 指定一个保持目标 LDP 会话的时间间隔,即使在远程 LFA 节点关闭之后。

    例如,要设置 60 秒的撕裂延迟值:

  4. 指定用于优化内存使用情况的自动目标 LDP 会话的最大数量。

    例如,将允许的最大会话数设置为 20:

示例:在 OSPF 网络中通过 LDP 隧道配置远程 LFA

在 OSPF 网络中,无环路备用 (LFA) 是直接连接的邻接方,为通过本地修复点 (PLR) 上的受保护链路可访问的目标提供预先计算的备用路径。远程 LFA 不会直接连接到 PLR,而是使用动态创建的 LDP 隧道向远程 LFA 节点提供预计算的备份路径。当主链路发生故障时,PLR 使用此远程 LFA 备份路径。远程 LFA 的主要目标是扩大 OSPF 网络的备份覆盖范围,并为第 1 层城域网提供保护。此示例说明如何在 OSPF 网络中为 LDP 隧道配置远程 LFA,以扩展备份保护。

要求

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

  • 连接的接口上支持 OSPF 协议和 LDP 的 9 台 MX 系列路由器。

  • 在所有设备上运行的 Junos OS 15.1 或更高版本。

在 OSPF 网络中通过 LDP 隧道配置远程 LFA 之前,请确保以下内容:

  • 环路接口上启用了 LDP。如果没有环路接口,就无法形成针对邻接的 LDP。如果没有 LDP 目标邻接,就无法配置远程 LFA。

  • 远程 LFA 必须允许非对称远程邻接方发现,也就是说,它必须定期向发起远程邻接方 LDP 自动定向邻接的路由器发送定向问候。

  • 必须在本地修复点 (PLR) 上配置链路保护或节点链路保护。

概述

示例包含环状拓扑中的 9 个路由器。在直连接口上配置 OSPF 协议。设备 R6 是 PLR。此示例验证 Junos OS 是否使用 LDP 下一跃点路由作为备份路由来更新设备 R6 的路由表。

拓扑

拓扑 图 3 显示了在设备 R6 上配置的 OSPF 网络中基于 LDP 隧道的远程 LFA。

图 3:通过 LDP 隧道的远程 LFA 示例 Example Remote LFA over LDP Tunnels

配置

CLI 快速配置

要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,将命令复制并粘贴到层级的 [edit] CLI 中,然后从配置模式进入 commit

R0

R1

R 2

R3

R4

R5

R6

R7

R8

配置设备 R6

逐步过程

以下示例要求您在配置层次结构中的各个级别上导航。有关导航 CLI 的信息,请参阅 CLI 用户指南中的在配置模式下使用 CLI 编辑器。

要配置设备 R6:

  1. 配置接口。

  2. 为设备分配环路地址。

  3. 配置路由器 ID。使用导出语句将策略应用于本地路由器的转发表。

  4. 启用远程 LFA 备份,使用动态 LDP 标签交换路径计算备份下一跃点。

  5. 为 OSPF 区域中的接口配置流量工程和链路保护。

  6. 指定在远程 LFA 关闭时,目标 LDP 会话保持正常运行的时间间隔,并指定最大自动目标 LDP 会话数,以优化内存使用。

  7. 在接口上配置 LDP 协议。

  8. 配置策略选项,以对策略语句路由策略的每数据包进行负载平衡。

结果

在配置模式下,输入 show interfacesshow protocolsshow policy-optionsshow routing-options 命令,以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明,以更正配置。

完成设备配置后,请从配置模式进入 commit

验证

确认配置工作正常。

验证路由

目的

验证是否已学习到预期的路由。

行动

在设备 R6 上,从操作模式运行 show route 10.6.6.6/24 命令以显示路由表中的路由。

意义

输出显示设备 R6 路由表中的所有路由。

验证 LDP 路由

目的

验证自动定位的 LDP 路由。

行动

在操作模式下,输入 show ldp session auto-targeted detail 命令。

验证 OSPF 路由

目的

显示设备 R6 的 OSPF 路由表中的所有 LDP 备份路由。

行动

在设备 R6 上,从操作模式运行 show ospf route 命令以显示 OSPF 路由表中的路由。

意义

输出显示设备 R6 的 OSPF 路由表中的所有 LDP 备份路由。

验证指定备份路径节点

目的

显示为给定目标确定的远程 LFA 下一跃点。

行动

在操作模式下,输入 show ospf backup spf results 命令。

意义

输出指示特定接口或节点是否已被指定为远程备份路径,以及原因。

验证备用邻接方

目的

显示设备 R6 的备份邻接方

行动

在操作模式下,输入 show ospf backup neighbor 命令。

意义

输出显示可用于区域 0.0.0.0.0 的备用邻接方。