目錄

簡介

必要條件

需求

採用元件

背景資訊

LFA的條件

不平等性一

不等式二

不等式三

LFA路由選擇標準

設定

網路圖表

組態

R1

R2

R3

R4

驗證

案例1.連結保護

案例2.節點保護

案例3.修改內建策略

疑難排解

簡介

本檔案介紹無回圈替代(LFA)機制如何提供網路中流量的快速重新路由。它還討論了兩種型別的LFA保護 — 鏈路保護和節點保護及其適用性，以便提供由於鏈路或節點故障導致的最小服務中斷。

必要條件

需求

思科建議您瞭解開放最短路徑優先(OSPFv2)知識。

採用元件

本文件所述內容不限於特定軟體和硬體版本。

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路正在作用，請確保您已瞭解任何指令可能造成的影響。

背景資訊

當路由網路中出現鏈路或節點故障時，必然會有一段時間中斷流量的傳輸，直到路由協定在新的拓撲上重新收斂。在現代世界，應用對任何流量丟失都非常敏感，因此，由於OSPF和中間系統 — 中間系統(ISIS)等鏈路狀態協定融合導致的流量中斷可能會以負面方式影響服務。

傳統上，鏈路狀態協定儘管擁有資料庫的完整檢視，但從未計算備份路由。LFA旨在計算在主路徑上直連鏈路或節點出現故障時可用於路由流量的備用路由。LFA計算每個主下一跳的備份下一跳，並相應地對Cisco Express Forwarding(CEF)表程式設計。

LFA的條件

LFA必須滿足一組預定義條件，才能成功提供針對鏈路或節點保護的備份路由。下表定義了可用於解釋這些條件或不等性的術語。

不平等性一

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

如果此條件為true，則它確保鄰居N（正在調查的備用下一跳路由器）能夠提供用於防止鏈路故障的LFA路徑。此條件確保在主鏈路出現故障時，為備份下一跳N而傳送的流量不會傳送回S，如圖所示。

這些鏈路已標有各自的OSPF開銷。從源S到目標D的主要OSPF路徑為S > E > D。這些OSPF開銷值滿足此不等式，因此節點N提供了最小的鏈路保護。

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

不等式二

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

如果此條件成立，它將確保鄰居N（潛在的備用下一跳路由器）是下游路由器，並且比本地路由器S更靠近目標路由器。

如圖所示，對於圖1中所述的OSPF開銷值，不等式2不成立。因此，備份下一跳路由器N不是下游鄰居。

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

不等式三

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秒差距

- 20 primary-path

- 30 interface-disjoint

- 40最低度量

- 50 linecard-disjoint

- 60節點保護

- 70 broadcast-interface-disjoint

- 256負載共用

- 共用風險連結組(SRLG):預設LFA策略嘗試避免使用與主路徑具有相同SRLG的路徑。假設多台路由器使用同一台交換機，因此它們共用相同的風險。

- Primary-path:這有助於消除不等於開銷的多路徑鏈路或ECMP的候選項。

- Interface-Disjoint:這表示與透過主要路徑到達目的地的介面相比，修復路徑位於不同的介面上。對於點對點鏈路，始終滿足此條件。

- 最低度量：選擇到達目標所需成本最低的備份路徑。

- 線路卡不交叉：這首選從位於另一線卡上的介面發出的備用路由。然而，這也是斯勒格組織的一種特殊情況；這不需要任何特殊配置，並自動處理。

- 節點保護：全部修復路徑會繞過主路徑下一跳路由器。這可確保即使在主要下一跳路由器發生故障時也能提供完整的流量保護。

- Broadcast-interface-disjoint :此屬性有助於確保修復路徑不會使用主路徑使用的同一廣播網路。

- 負載共用：當上述所有其它檢查均無法提供唯一備份路徑時，會在候選備份路由之間共用流量。

設定

網路圖表

組態

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，如下圖所示。

這些表中所提及的成本值放在不等式1中時（如此處對於R2和R3所示），觀察到只有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

輸出中顯示了多個標誌，它們具有此處所解釋的重要意義。

- HiPrio:預設情況下，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，如下圖所示。

表中提到的成本值滿足不等式3，如下面的R2所示。

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

這些輸出中顯示了兩個新標誌，下面將對此進行說明：

- NodeProt:此標籤顯示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，仍會選擇它作為備份路徑。

疑難排解

目前尚無適用於此組態的具體疑難排解資訊。