目錄

簡介

必要條件

需求

採用元件

背景資訊

問題

問題1

問題2

問題3

解決方案

問題1解決方案

第2類LSA

第3類LSA

第5類LSA

問題2解決方案

問題3解決方案

相關資訊

簡介

本文說明如何解決正常網路運作中遇到的可能會降低網路連線的開放最短路徑優先(OSPF)錯誤訊息。

必要條件

需求

Cisco建議您瞭解OSPF基礎知識。

採用元件

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

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

背景資訊

OSPF協定是在企業和服務提供商網路中廣泛部署的內部網關協定(IGP)。

開發此協定是因為Internet社群需要為TCP/IP協定系列引入高功能、非專有的IGP。關於為網際網路建立通用互操作IGP的討論始於1988年，直到1991年才正式確定。當時，OSPF工作組要求考慮OSPF以推進網際網路標準草案。

OSPF協定基於鏈路狀態技術，不同於傳統的Internet路由協定(如路由資訊協定(RIP))中使用的基於Bellman-Ford向量的演算法。

問題

本節介紹三個可能會降低網路連線性的OSPF問題。

問題1

您將收到OSPF-4-FLOOD_WAR錯誤消息。當路由器反複收到自己的鏈路狀態通告(LSA)並將其從網路中刷新或傳送新版本的時，就會發生OSPF泛洪戰爭。這是為了檢測當網路中出現重複的IP地址時第2類LSA的問題，或者當不同OSPF區域中存在重複的路由器ID時第5類LSA的問題。

在典型場景中，網路中有一台路由器發起LSA，另一台路由器刷新LSA。

此圖說明了第一台路由器和第二台路由器（分別命名為R1和R2）之間的發起和清除事件：

問題2

您將收到%OSPF-4-CONFLICTING_LSAID錯誤消息。此錯誤消息表示由於與具有相同鏈路狀態ID但子網掩碼不同的當前LSA發生衝突，導致阻止了LSA的發生。

RFC 2328（附錄E）中的演算法用於解決通告具有相同字首和不同掩碼的多個LSA時的衝突。當使用此演算法並通告主機路由時，存在無法解決衝突，並且主機路由或衝突字首未通告的情況。

以下是錯誤訊息的範例片段：

%OSPF-4-CONFLICTING_LSAID: LSA origination prevented by existing LSA with same LSID

but a different mask

Existing Type 5 LSA: LSID 192.168.1.0/31

New Destination: 192.168.1.0/32

問題3

配置OSPF以使用導致高CPU的快速問候資料包功能。快速呼叫資料包的OSPF支援功能允許配置，以便以不到一秒的間隔傳送呼叫資料包。這些型別的配置會使OSPF網路中的收斂速度更快。

此命令是用來設定必須接收至少一個Hello封包或鄰居視為關閉的間隔：

ip ospf dead-interval minimal hello-multipliermultiplier

以下是範例：

Router(config-if)# ip ospf dead-interval minimal hello-multiplier 5

在本示例中，使用minimal關鍵字、hello-multiplier關鍵字和值的說明啟用了對快速Hello資料包的OSPF支援。由於乘數設定為5，因此每秒傳送五個Hello資料包。

解決方案

本節介紹解決上一節中所述問題的可能方法。

問題1解決方案

在嘗試排除泛洪警告消息故障時，請務必瞭解錯誤消息。消息在源路由器和刷新路由器上的顯示不同。因此，必須關注報告泛洪戰爭消息的LSA型別，因為每個LSA型別都以不同方式進行故障排除。

以下是OSPF泛洪戰爭消息的一個示例片段：

%OSPF-4-FLOOD_WAR: Process 1 re-originates LSA ID 172.16.254.25 type-2 adv-rtr

172.16.253.1 in area 0

%OSPF-4-FLOOD_WAR: Process 1 flushes LSA ID 172.16.254.25 type-2 adv-rtr

172.16.253.1 in area 0

以下是所描述的報文元件：

- Process — 這是報告錯誤的OSPF進程。

- reoriginates或flushes — 這表示此路由器是起始還是刷新LSA。

- LSA ID — 這是檢測到泛洪戰爭的LSA ID。

- Type — 這是LSA型別。

附註：每個LSA的泛洪戰爭都有不同的根本原因。

- adv-rtr — 這是發起LSA的廣告路由器。

- Area — 這是LSA所屬的區域。

第2類LSA

附註：如果針對第2類LSA列印了泛洪警告，請參閱RFC 2328 (Chapter 13.4, Case 3)以瞭解其他資訊。

如果路由器收到的2類網路LSA的LSA ID與與該路由器關聯的某個介面的IP地址相同，則路由器應刷新LSA。此案例的根本原因是源路由器和清除路由器上存在重複的IP地址。

為了解決此問題，請重新配置其中一個介面的IP地址，或關閉具有重複IP地址的介面。

附註：在關閉的介面上執行此檢查，檢查重複的IP地址。介面必須處於admin-down模式才能繞過檢查。在某些情況下，還會報告管理性關閉介面的泛洪攻擊，因此永久解決方案是刪除網路中的重複IP地址。

第3類LSA

3型LSA很少遇到洪災戰爭問題。在OSPF域中傳播頻繁擺動鏈路的IP子網時，已記錄第3類LSA的泛洪警告錯誤消息。

如果您因第3類LSA而遇到洪災戰爭問題，思科建議您向思科技術支援中心(TAC)提交支援案例。

第5類LSA

當位於不同區域的路由器上存在重複的路由器ID時，會發生由第5類LSA引起的泛洪戰爭。必須更改其中一台路由器的路由器ID。

第5類泛洪戰爭的另一個例項是，有兩個路由器具有相同的邊界網關協定(BGP)network語句，並且兩個路由器將這些BGP網路重新分發到OSPF。如果其中任一BGP路由器通過OSPF到達網路，則會報告由於第5類LSA而引起的OSPF泛洪戰爭。

總而言之，請確保路由器ID不同，並且正確重新分配外部LSA應能防止由於第5類LSA引起的泛洪戰爭問題。

問題2解決方案

嘗試解決OSPF-CONFLICTING_LSAID錯誤消息時應採取的初始步驟是查詢未通告的字首以及衝突的字首。

要查詢這些命令，請在CLI中輸入show ip route和show ip ospf database命令。管理員必須跟蹤「新目標」的來源：192.168.1.0/32，如問題2部分描述的示例案例所示，並更正網路的子網掩碼。

LSA ID衝突的常見情況記錄在OSPF的最近更改之後，並在您更正OSPF network語句中的子網掩碼配置之後得到解決。

問題3解決方案

當客戶在Cisco Catalyst系列交換機上部署OSPF快速Hello時，Cisco TAC會記錄高CPU案例。

附註：Cisco建議您不要配置OSPF快速Hello。

Cisco IOS®在非搶佔式模式下運行，而快速呼叫資料包功能要求比一秒停頓間隔更頻繁地處理OSPF Hello。OSPF很可能無法在具有其他長時間運行的進程的系統上獲取所需的資源。根據您的環境和路由器上配置的其他協定和應用程式，使用此功能可能會出現問題。

通過雙向轉發檢測(BFD)引入亞秒Hello的替代方案，其中BFD是為快速鄰居關閉檢測而開發的。BFD以中斷模式運行，不會出現OSPF快速Hello所觀察到的問題。思科建議您使用BFD來加快收斂速度。

以下是OSPF快速Hello產生的兩個已知缺陷：

- 思科錯誤ID CSCut14044:WS-C3750X-48 / OSPF Fast hello 333msec /鄰接丟棄/15.0(2)SE6

- 思科錯誤ID CSCsd17835:ospf/hsrp快速hello鄰接關係不斷擺動

相關資訊

- 使用OSPF排除重複的路由器ID故障

- 支援和下載 — Cisco Systems

- 技術支援與檔案 — Cisco Systems