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 是区域边界路由器 (ABR),双宿主到 IPv6 核心网络,该网络通告前缀 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 的接口使用链路保护。

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

要求

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

概述

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

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

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

拓扑学

图 2 显示了示例网络。

图 2:OSPF 链路保护 OSPF Link Protection

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

#d148e65__d148e783 部分介绍了设备 R1 上的步骤。

配置

CLI 快速配置

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

设备 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 语句。这包括快速重新路由 (FRR) 等 MPLS RSVP 保护,以及内部网关协议 (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 接口作为受保护接口的备份

默认情况下,属于默认实例或特定路由实例的所有 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 到g 配置为受保护 OSPF 接口的备份 LSP。出口路由器配置了 IP 地址 192.168.1.4

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 使用扩展你好消息来指示愿意建立目标 LDP 会话。远程 LFA 可以通过过滤这些消息并仅接受源自访问或过滤器列表允许的来源的消息来减少欺骗性扩展你好消息的威胁。

  • 需要使用应用组或 LDP 全局级别身份验证,通过 TCP-MD5 对给定 IGP/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 允许非对称远程邻接方发现,也就是说,它必须定期向启动远程邻接方以实现 LDP 自动定向邻接的路由器发送有针对性的 你好 消息。

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

要在 OSPF 网络中通过 LDP 隧道配置远程 LFA 备份,请执行以下操作:

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

    例如,要将拆解延迟值设置为 60 秒:

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

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

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

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

要求

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

  • 九个 MX 系列路由器,连接的接口上启用了 OSPF 协议和 LDP。

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

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

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

  • 远程 LFA 必须允许非对称远程邻居发现,也就是说,它必须定期向启动远程邻居以进行 LDP 自动目标邻接的路由器发送有针对性的 hellos。

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

概述

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

拓扑学

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

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

配置

CLI 快速配置

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

R0

R1

R2

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 的备份邻居。