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 播发前缀 10.0.1.0/24 的汇总 LSA。此外,从 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 配置,请执行以下作:

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

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 会为遍历受保护接口的所有目标路由创建通往下一跃点主跃点的备用路径。如果您假设只有一个链路可能变得不可用,但相邻节点仍可通过其他接口使用,则使用链路保护。

要求

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

概述

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

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

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

拓扑学

图 2 显示了示例网络。

图 2:OSPF 链路保护 OSPF Link Protection

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

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

配置

CLI 快速配置

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

设备 R1

设备 R2

设备 R3

设备 R4

设备 R5

设备 R6

程序

分步过程

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

要配置设备 R1,请执行以下作:

  1. 配置设备接口。

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

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

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

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

  6. 在接口上启用 LDP。

  7. (选答)配置按数据包的负载平衡。

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

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

结果

在配置模式下,输入show interfacesshow protocolsshow policy-options、和show 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 接口排除为受保护接口的备份接口,请执行以下作:

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

在以下示例中,接口 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 实例或拓扑的备份下一跃点计算,请执行以下作:

  • [edit protocols (ospf | ospf3) backup-spf-options][edit protocols ospf backup-spf-options topology topology-name] 层次结构级别包含disable语句。

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

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

要防止路由设备在路由表或转发表中安装备份下一跃点,请执行以下作:

  • [edit protocols (ospf | ospf3) backup-spf-options]或 层次[edit protocols ospf topology topology-name]结构级别包含no-install语句。

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

您可以将备份下一跃点的计算限制为 下游路径,如 RFC 5286 中所定义。您可以指定 Junos OS 仅将下游路径用作 OSPF 实例或 OSPF 实例中特定拓扑结构的受保护接口的备份下一跃点。在下行路径中,从备份邻接方到目标的距离必须小于从计算路由设备到目标的距离。仅将下游路径用作受保护接口的无环路备用路径,可确保这些路径不会产生微环路。但是,您的网络备份覆盖率可能不尽如人意。

要将备份下一跃点的计算限制为下游路径,请执行以下作:

  • [edit protocols (ospf | ospf3) backup-spf-options][edit protocols ospf backup-spf-options topology topology-name] 层次结构级别包含downstream-paths-only语句。

在以下示例中,仅将下行路径计算为拓扑 语音的备份下一跃点:

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

配置 OSPF 接口进行链路保护或节点链路保护时,依靠单跳邻居备份路径的最短路径优先 (SPF) 计算可能会导致特定网络拓扑的备份覆盖率低于 100%。您可以通过将 RSVP LSP 配置为备份路径来扩大 OSPF 和 LDP 标签交换路径 (LSP) 的覆盖范围。

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

注意:

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

要将特定 RSVP LSP 配置为备份路径,请执行以下作:

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

在以下示例中,RSVP LSP f-to-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 使用扩展的 hello 消息来表示愿意建立目标 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 自动定向邻接的路由器发送有针对性的问候。

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

概述

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

拓扑学

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

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

配置

CLI 快速配置

要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,将命令复制并粘贴到层 [edit] 级的 CLI 中,然后从配置模式进入 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-options、和show 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 的备份邻接方。