目录

简介

先决条件

要求

使用的组件

背景信息

LFA的条件

不等式1

不等式2

不等式3

LFA路由选择标准

配置

网络图

配置

R1

R2

R3

R4

验证

案例1.链路保护

案例2.节点保护

案例3.修改内置策略

故障排除

简介

本文档介绍无环备用(LFA)机制如何提供网络中流量的快速重新路由。还讨论了两种LFA保护类型 — 链路保护和节点保护，以及它们的适用性，以便最大限度地减少因链路或节点故障而对服务的中断。

先决条件

要求

思科建议您了解开放最短路径优先(OSPFv2)。

使用的组件

本文档不限于特定的软件和硬件版本。

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您使用的是真实网络，请确保您已经了解所有命令的潜在影响。

背景信息

当路由网络中发生链路或节点故障时，在路由协议在新拓扑上重新收敛之前，流量传输不可避免地会出现中断期。在现代世界中，应用对任何流量丢失非常敏感，因此，由于链路状态协议(如OSPF和中间系统 — 中间系统(ISIS))的融合而导致的流量中断可能会以负面方式影响服务。

传统上，链路状态协议尽管具有数据库的完整视图，但从不计算备份路由。LFA旨在计算可用于路由流量的备用路由，以防主路径上的直连链路或节点发生故障。LFA会为每个主下一跳计算一个备份下一跳，并相应地对思科快速转发(CEF)表进行编程。

LFA的条件

LFA必须满足一组预定义的条件，才能成功提供链路或节点保护的备份路由。此表定义了可用于解释这些条件或不平等性的术语。

不等式1

D(N,D) < D(N,S) + D(S,D)         // Link Protection.

如果此情况成立，则它确保邻居N（正在调查的备用下一跳路由器）能够提供LFA路径以防止链路故障。此条件可确保在主链路发生故障时，为备份下一跳N而发送的流量不会发回S，如图所示。

这些链路已标有各自的OSPF开销。从源S到目的D的主OSPF路径是S > E > D。这些OSPF开销值满足此不等性，因此节点N提供最低的链路保护。

15 < 5 + 15   ------> Inequality holds true

不等式2

D(N,D) < D(S,D)                       // Downstream Path

如果此条件成立，则它确保邻居N（潜在的备用下一跳路由器）是下游路由器，并且比本地路由器S更靠近目的路由器。

如图1所示，对于OSPF开销值，不等式2不成立。因此，备用下一跳路由器N不是下游邻居。

15 < 15   ------> Inequality holds false

不等式3

D(N,D) < D(N,E) + D(E,D)     // Node Protection

如果满足此条件，则邻居N在主下一跳路由器E发生故障时能够成功提供节点保护。此条件确保LFA路径无法使用E将流量传送到目的路由器D。这与如图所示的无环节点保护定义一致。

S到D的主路径是S > E > D，开销为15。现在，如果主下一跳E发生故障，则备用路径必须使流量不会通过故障节点E流动，否则会出现流量丢失。这些开销值成功满足此不等式，因此N能够提供节点E故障保护。

25 < 20 + 10 ------> Inequality holds true

LFA路由选择标准

以下是备用前缀选择标准，其首选项按递减顺序排列。如果两个备用路由可用于受保护的主前缀，则仅根据这些属性传送的这些有序属性列表选择一个。以下是这些属性的简要说明。

修复路径选择策略分层（内置默认策略）。

- 10 srlg

- 20个主路径

- 30个接口不相交

- 40个最低度量

- 50个线路卡 — 不连接

- 60节点保护

- 70 broadcast-interface-disjoint

- 256负载分担

- 共享风险链路组(SRLG):默认LFA策略尝试避免与主路径携带相同SRLG的路径。假设多台路由器使用同一台交换机，因此它们都面临相同的风险。

- 主路径：这有助于消除非等价多路径链路或ECMP的候选。

- 接口 — 不相交：这意味着与通过主路径到达目的地所用的接口相比，修复路径位于不同的接口上。在点对点链路中，始终满足此条件。

- 最低度量：选择到达目的地的成本最低的备份路径。

- 线路卡 — 断开：这首选来自另一线卡接口的备份路由。不过，这也是SRLG的特例；这不需要任何特殊配置，并会自动处理。

- 节点保护：修复路径全部绕过主路径下一跳路由器。这可确保即使在主要下一跳路由器发生故障时也能提供完整的流量保护。

- 广播 — 接口不相交：此属性有助于确保修复路径不使用主路径使用的相同广播网络。

- 负载分担：当上述所有其他检查无法提供唯一的备份路径时，将在候选备份路由之间共享流量负载。

配置

网络图

配置

R1

!

interface Loopback1

ip address 10.1.1.1 255.255.255.255

!

router ospf 1

fast-reroute per-prefix enable area 0 prefix-priority high

fast-reroute keep-all-paths

network 10.1.1.1 0.0.0.0 area 0

network 10.10.12.1 0.0.0.0 area 0

network 10.10.13.1 0.0.0.0 area 0

network 10.10.14.1 0.0.0.0 area 0

!

R2

!

interface Loopback1

ip address 10.2.2.2 255.255.255.255

end

!

router ospf 1

network 10.2.2.2 0.0.0.0 area 0

network 10.10.12.2 0.0.0.0 area 0

network 10.10.23.2 0.0.0.0 area 0

network 10.10.24.2 0.0.0.0 area 0

!

R3

!

interface Loopback1

ip address 10.3.3.3 255.255.255.255

!

router ospf 1

network 10.3.3.3 0.0.0.0 area 0

network 10.10.13.3 0.0.0.0 area 0

network 10.10.23.3 0.0.0.0 area 0

network 10.10.34.3 0.0.0.0 area 0

!

R4

!

interface Loopback1

ip address 10.4.4.4 255.255.255.255

!

router ospf 1

network 10.4.4.4 0.0.0.0 area 0

network 10.10.14.4 0.0.0.0 area 0

network 10.10.24.4 0.0.0.0 area 0

network 10.10.34.4 0.0.0.0 area 0

!

验证

使用本部分可确认配置能否正常运行。

案例1.链路保护

请考虑此案例，讨论终端目标前缀10.4.4.4/32的链路保护，即R4的接口环回0。

主路径为R1 > R4，如图所示。

在R2和R3的不等式1中放置这些表中的开销值时，观察到只有R2能够满足该条件。

D(N,D) < D(N,S) + D(S,D)         // Link Protection.

对于R2:

10 < 10 + 10 ------> Inequality Passed

对于R3:

20 < 10 + 10 ------> Inequality Failed

这可确保R2在R1和R4之间的主链路发生故障时提供LFA。由于R3不满足给定的不等性，因此无法提供LFA路径。

R1#show ip route 10.4.4.4

Routing entry for 10.4.4.4/32

Known via "ospf 1", distance 110, metric 11, type intra area

Last update from 10.10.14.4 on Ethernet1/0, 01:08:00 ago

Routing Descriptor Blocks:

* 10.10.14.4, from 10.4.4.4, 01:08:00 ago, via Ethernet1/0

Route metric is 11, traffic share count is 1

Repair Path: 10.10.12.2, via Ethernet0/0

R1#show ip ospf rib 10.4.4.4

OSPF Router with ID (10.1.1.1) (Process ID 1)

Base Topology (MTID 0)

OSPF local RIB

Codes: * - Best, > - Installed in global RIB

LSA: type/LSID/originator

*> 10.4.4.4/32, Intra, cost 11, area 0

SPF Instance 12, age 01:01:00

Flags: RIB, HiPrio

via 10.10.14.4, Ethernet1/0

Flags: RIB

LSA: 1/10.4.4.4/10.4.4.4

repair path via 10.10.12.2, Ethernet0/0, cost 21

Flags: RIB, Repair, IntfDj, BcastDj, LC Dj

LSA: 1/10.4.4.4/10.4.4.4

输出中显示了多个标志，它们具有重要意义，如此处所述。

- 嗨：默认情况下，OSPF将所有环回或/32前缀视为高优先级前缀。但是，这些前缀的优先级可以通过此命令手动定义。OSPF中优先级较高的前缀的计算和编程比优先级较低的前缀稍早，但时间差非常小。

R1(config-router)#fast-reroute per-prefix enable area 0 prefix-priority ?

high High priority prefixes

low   Low priority prefixes

- IntfDj:这显示修复路径与主路径(Eth1/0)相比使用了不同的接口(Eth0/0)。

- BcastDj:这显示修复路径与主路径(Eth1/0)相比使用了不同的广播接口(Eth0/0)。

- LC Dj:此标志显示，与主路径（Eth1/0、模块1）相比，修复路径使用的线路卡（Eth0/0、模块0）不同。

案例2.节点保护

请考虑此案例，讨论终端目标前缀10.3.3.3/32的节点保护，即R3的接口环回0。

主路径为R1 > R4 > R3，如图所示。

表中所述的开销值满足R2的不等式数3，如下所示。

D(N,D) < D(N,E) + D(E,D)       // Node

10 < 10 + 15 ------> Inequality Passed

路由器提供节点保护所需的条件已满足，因此R2能够在主下一跳R4发生故障时提供节点保护。

R1#show ip route 10.3.3.3

Routing entry for 10.3.3.3/32

Known via "ospf 1", distance 110, metric 31, type intra area

Last update from 10.10.14.4 on Ethernet1/0, 00:08:24 ago

Routing Descriptor Blocks:

* 10.10.14.4, from 10.3.3.3, 00:08:24 ago, via Ethernet1/0

Route metric is 31, traffic share count is 1

Repair Path: 10.10.12.2, via Ethernet0/0

R1#show ip route repair-paths 10.3.3.3

Routing entry for 10.3.3.3/32

Known via "ospf 1", distance 110, metric 31, type intra area

Last update from 10.10.14.4 on Ethernet1/0, 01:14:49 ago

Routing Descriptor Blocks:

* 10.10.14.4, from 10.3.3.3, 01:14:49 ago, via Ethernet1/0

Route metric is 31, traffic share count is 1

Repair Path: 10.10.12.2, via Ethernet0/0

[RPR]10.10.12.2, from 10.3.3.3, 01:14:49 ago, via Ethernet0/0

Route metric is 41, traffic share count is 1

R1#show ip ospf rib 10.3.3.3

OSPF Router with ID (10.1.1.1) (Process ID 1)

Base Topology (MTID 0)

OSPF local RIB

Codes: * - Best, > - Installed in global RIB

LSA: type/LSID/originator

*>  10.3.3.3/32, Intra, cost 31, area 0

SPF Instance 27, age 00:08:49

Flags: RIB, HiPrio

via 10.10.14.4, Ethernet1/0

Flags: RIB

LSA: 1/10.3.3.3/10.3.3.3

repair path via 10.10.12.2, Ethernet0/0, cost 41

Flags: RIB, Repair, IntfDj, BcastDj, LC Dj, NodeProt, Downstr    // Node Protect

LSA: 1/10.3.3.3/10.3.3.3

这些输出中显示了两个新标志，并在下面进行说明：

- 节点端口：此标志显示R2提供节点保护，防止主下一跳R4发生故障。

- 下载：此标志显示R2比本地路由器R1更靠近目的地。

案例3.修改内置策略

您还可以修改默认内置策略以及选择备份下一跳路由器时考虑各种属性的顺序。此顺序可以使用命令fast-reroute per-prefix tie-break <attribute> index <n>更改。

该示例创建仅具有最低度量和srlg的新策略。

!

router ospf 1

fast-reroute per-prefix enable area 0 prefix-priority high

fast-reroute per-prefix tie-break lowest-metric index 10

fast-reroute per-prefix tie-break srlg index 20

fast-reroute keep-all-paths

network 10.1.1.1 0.0.0.0 area 0

network 10.10.12.1 0.0.0.0 area 0

network 10.10.13.1 0.0.0.0 area 0

network 10.10.14.1 0.0.0.0 area 0

!

interface Ethernet0/1

srlg gid 10                           // srlg group 10

ip address 10.10.13.1 255.255.255.0

ip ospf cost 10

!

interface Ethernet1/0

srlg gid 10                          // srlg group 10

ip address 10.10.14.1 255.255.255.0

ip ospf cost 20

!

这样，默认策略的所有其他属性都将被删除，而仅使用的属性是默认始终存在的最低度量、srlg和负载共享。

R1#show ip ospf fast-reroute

OSPF Router with ID (10.1.1.1) (Process ID 1)

Loop-free Fast Reroute protected prefixes:

Area       Topology name   Priority   Remote LFA Enabled

0                 Base       High                   No

Repair path selection policy tiebreaks:

10 lowest-metric

20 srlg

256 load-sharing

如图所示，拓扑和配置的OSPF开销值有助于理解自定义策略的行为。

R1#show ip ospf rib 10.3.3.3

OSPF Router with ID (10.1.1.1) (Process ID 1)

Base Topology (MTID 0)

OSPF local RIB

Codes: * - Best, > - Installed in global RIB

LSA: type/LSID/originator

*> 10.3.3.3/32, Intra, cost 11, area 0

SPF Instance 65, age 00:07:55

Flags: RIB, HiPrio

via 10.10.13.3, Ethernet0/1

Flags: RIB

LSA: 1/10.3.3.3/10.3.3.3

repair path via 10.10.14.4, Ethernet1/0, cost 41

Flags: RIB, Repair, IntfDj, BcastDj, SRLG, LC Dj, CostWon      // Better cost

LSA: 1/10.3.3.3/10.3.3.3

repair path via 10.10.12.2, Ethernet0/0, cost 51

Flags: Ignore, Repair, IntfDj, BcastDj                        // Ignored

LSA: 1/10.3.3.3/10.3.3.3

这些输出显示到达10.3.3.3/3.2的主路径，R3的环回接口0通过Eth0/1。除此之外，R2和R4有两个节点提供链路保护。链路R1-R4与主链路R1-R3的SRLG相同。根据默认策略，不得因为SRLG而选择R4作为备用下一跳。但是，上述定义的策略会优先于SRLG的度量。因此，由于通过R4到达10.3.3.3/32的开销较低，因此，尽管SRLG相同，它仍被选作备用路径。

故障排除

目前没有针对此配置的故障排除信息。