目錄

簡介

必要條件

需求

採用元件

背景資訊

設定

網路圖表

組態

DN位

域標籤

驗證

疑難排解

簡介

本文說明在提供商邊緣(PE)和客戶邊緣(CE)路由器之間運行開放最短路徑優先(OSPF)路由協定時的環路預防功能和最低配置步驟。它提供一個網路情景，說明向下位元(DN)的使用，這是連結狀態通告(LSA)和網域標籤中的選項。

必要條件

需求

思科建議您瞭解OSPF和多協定標籤交換(MPLS)第3層VPN。

採用元件

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

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

背景資訊

服務提供商(SP)和CE路由器使用SP和客戶共同同意的路由協定交換路由。本文的範圍是描述使用OSPFv2時的環路預防機制。

在屬於特定虛擬路由和轉發(VRF)或VPN的PE-CE鏈路上使用OSPFv2時，PE路由器：

- 將通過VPN的OSPF接收的路由重新分配到多協定邊界網關協定(MP-BGP)中，並將其通告給其他PE路由器。

- 通過MP-BGP將安裝在VPN中的BGP路由重分佈到該VPN的OSPF例項中，並將其通告給CE路由器。

設定

網路圖表

請考慮使用以下網路拓撲，以瞭解環路預防技術。

在此設定中，可能存在環路。例如，如果CE1將OSPF LSA型別1通告給PE1,PE1將路由重新分發到VPNv4並將其通告給PE2，則PE2將彙總LSA通告給CE2。CE2接收的此路由可以通告回PE3。第三台PE路由器獲知OSPF路由，該路由優於BGP路由，並將該路由重新通告到BGP作為本地路由給客戶站點2。 PE3從未獲知通告的路由並非源自客戶站點2。

為了克服這種情況，當路由從MP-BGP重分發到OSPF時，會在LSA第3、5或7類中標籤DN位，並具有第5和7類LSA的域標籤。

組態

以下是PE路由器上的配置示例。此配置包括VRF配置、在PE-CE路由器之間運行的OSPF進程2、在MPLS核心中作為內部網關協定(IGP)運行的OSPF進程1，以及MP-BGP配置。

DN位

OSPF LSA Options欄位中以前未使用的位稱為DN位。當MP-BGP路由重分發到OSPF時，在型別3、5和7 LSA上設定此位。當另一台PE路由器收到來自已設定DN位的第3、5或7類CE路由器的LSA時，該LSA的資訊不會用於OSPF路由計算。

PE2根據網路拓撲設定重分佈的LSA的DN位，並且PE3上的OSPF進程2從未考慮此LSA進行路由計算。因此，PE3從未將此路由重分佈回MP-BGP。

以下是OSPF報頭的一個示例，其中顯示DN位設定，當PE路由器為第3類LSA通告路由時：

Open Shortest Path First

OSPF Header

Version: 2

Message Type: LS Update (4)

Packet Length: 56

Source OSPF Router: 10.10.23.3 (10.10.23.3)

Area ID: 0.0.0.0 (0.0.0.0) (Backbone)

Checksum: 0x4034 [correct]

Auth Type: Null (0)

Auth Data (none): 0000000000000000

LS Update Packet

Number of LSAs: 1

Summary-LSA (IP network)

.000 1110 0001 0000 = LS Age (seconds): 3600

0... .... .... .... = Do Not Age Flag: 0

Options: 0xa2 (DN, DC, E)

1... .... = DN: Set

.0.. .... = O: Not set

..1. .... = DC: Demand Circuits are supported

...0 .... = L: The packet does NOT contain LLS data block

.... 0... = NP: NSSA is NOT supported

.... .0.. = MC: NOT Multicast Capable

.... ..1. = E: External Routing Capability

.... ...0 = MT: NO Multi-Topology Routing

域標籤

域標籤僅適用於OSPF第5類和第7類LSA。當VPNv4路由從MP-BGP重分發到PE路由器上的OSPF時，會為OSPF外部路由設定域標籤。可以在OSPF Process下使用domain-tag命令手動設定標籤，也可以自動生成32位值：

根據網路拓撲，PE2在將VPNv4路由重分發到OSPF時設定第5類和第7類LSA的域標籤。從未將此LSA考慮用於路由計算，因為DN位已經設定，但它也設定了域標籤，因此LSA被忽略，因為域標籤與VPN/VRF標籤匹配。因此，該路由絕不會重分佈到OSPF中。

此示例顯示從CE3收到的LSA型別5被忽略，其域標籤集與PE3上的本地VRF域標籤集相同：

*Jan 31 00:29:23.947: OSPF-2 EXTER:  adv_rtr 10.10.57.5, age 3, seq 0x80000001,

metric 10, metric-type 2, fw-addr 0.0.0.0

*Jan 31 00:29:23.947: OSPF-2 EXTER: Tag equals to VPN Tag, ignoring the LSA

*Jan 31 00:29:23.947: OSPF-2 EXTER: Process partial nssa spf queue

PE3#show ip ospf database external 192.168.5.5

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

OSPF Router with ID (10.10.68.6) (Process ID 2)

Type-5 AS External Link States

LS age: 38

Options: (No TOS-capability, DC)

LS Type: AS External Link

Link State ID: 192.168.5.5 (External Network Number )

Advertising Router: 10.10.57.5

LS Seq Number: 80000001

Checksum: 0x89A3

Length: 36

Network Mask: /32

Metric Type: 2 (Larger than any link state path)

MTID: 0

Metric: 10

Forward Address: 0.0.0.0

External Route Tag: 3489725928

驗證

用於發現是否為LSA設定了DN位以及應用了域標籤的命令與用於檢查LSA資料庫的命令相同。

此輸出顯示了OSPF第3類和第5類LSA的示例，並突出顯示了當VPNv4路由重新分發到PE2上的OSPF時設定的DN位和標籤：

附註：MPLS VPN OSPF PE-CE總是包含環路預防機制來處理問題。在舊版Cisco IOS®中，按原始IETF草案第3類LSA使用LSA中的DN位，第5類LSA使用標籤。較新的RFC 4576要求為第3類和第5類LSA使用DN位。

這是透過思科錯誤ID CSCtw79182提交的。

具有修復此缺陷的Cisco IOS映像的PE路由器將發起具有DN位和標籤的5類外部LSA，作為環路預防機制。先前的Cisco IOS版本通告了外部路由的唯一用於此目的的標籤。

行為發生變化是因為標籤可以重寫（通過更改VPN域ID或通過路由對映），但DN位不是使用者可控制的。在某些角落案例設計中，某些客戶可能故意禁用了環路預防機制，並覆蓋外部LSA的標籤，以便PE路由器優先使用OSPF路由而非BGP路由。

在較新版本的Cisco IOS中，這是不可能的。絕大多數在教科書配置中使用PE-CE OSPF的客戶不會受到影響。覆蓋標籤的客戶可能會看到行為上的變化。

疑難排解

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