實戰(zhàn)案例:園區(qū)兩棟樓的OSPF路由器,鄰居咋建立不起來啊?莫慌,兩招教你搞定
本期分享的案例是園區(qū)網(wǎng)的相關(guān)問題。
問題背景
某大型園區(qū)網(wǎng)絡(luò),內(nèi)部劃分多個區(qū)域,使用 OSPF 協(xié)議進(jìn)行路由通信。近期,園區(qū)內(nèi)部A、B樓棟網(wǎng)絡(luò)通信出現(xiàn)異常,無法正?;ピL。網(wǎng)絡(luò)管理員發(fā)現(xiàn),A、B棟局點的某為路由器之間OSPF鄰居關(guān)系未能成功建立,導(dǎo)致路由信息無法正常交換,進(jìn)而影響了網(wǎng)絡(luò)的連通性。
基本拓?fù)溥B接如下:
排障思路
“鄰居”和“鄰接”這兩個概念在OSPF中很重要:
- OSPF路由器首先要建立的是“鄰居關(guān)系”,這個過程是由Hello報文交互完成的;
- 鄰居過程走完后,OSPF路由器最終會成為Full狀態(tài)的“鄰接關(guān)系”,鄰接路由器的LSDB(鏈路狀態(tài)數(shù)據(jù)庫)路由信息是一致的。
本例是OSPF鄰接無法正常建立,如下:
說明是Hello報文交互出現(xiàn)了問題,所以我們重點診斷Hello報文交互進(jìn)行診斷即可,主要有硬件鏈路、軟件分析等2個層面。
基礎(chǔ)排查
第一步、物理鏈路檢查
首先查看路由器之間的物理連接線路,確認(rèn)網(wǎng)線、光纖等連接正常,無松動、損壞跡象。同時,檢查端口狀態(tài),發(fā)現(xiàn)端口均已正常UP,排除了物理鏈路層面的問題。
第二步、檢查連通性
物理鏈路檢查無問題,下一步需要進(jìn)入路由CLI界面,通過ping測試兩端設(shè)備的連通性,這里進(jìn)入R1路由的CLI界面ping對端接口:
可以看到,基本是無丟包和延時的,連通性正常。
第三步、確認(rèn)影響鄰居建立的要素
常見的影響OSPF鄰居建立的因素主要有如下幾種:
- router-id沖突
- 未將接口網(wǎng)段宣告進(jìn)OSPF
- 接口類型不一致
- 接口掩碼不一致
- 接口MTU值不一致
- Hello Interval(Hello間隔)不一致
- Router Dead Interval(路由失效間隔)不一致
- 認(rèn)證類型不一致或認(rèn)證密碼錯誤
為確認(rèn)各個影響因素,這邊我提供2種方法供大家參考。
分析影響OSPF建鄰居的因素
方法一:比對路由器配置文件結(jié)合OSPF診斷模塊(需設(shè)備支持)定位根因
本例中使用的是華為設(shè)備,可通過如下命令查看配置信息:
[R1] display current-configuration
然后比對OSPF相關(guān)配置項:
可以看到一處錯誤:R1、R2互聯(lián)接口掩碼不一致,R1是10.0.1.1/24而R2是10.0.1.2/25,這是導(dǎo)致OSPF無法建立鄰居之一。
由于認(rèn)證類型是cipher密文顯示,無法判斷兩認(rèn)證密鑰是否一致,所以還需要根據(jù)OSPF診斷模塊判斷,在R1或R2上輸入命令:
[R1] display ospf error
顯示如下:
可以從回顯看到2處錯誤:
- 錯誤原因1:對端發(fā)的Hello包中認(rèn)證密鑰與本端不一致,這個通過密文的配置信息看不出來的;
- 錯誤原因2:對端發(fā)來的Hello中接口掩碼與本段不一致,這個在上述中通過配置信息已經(jīng)明確。
所以通過查看路由配置和OSPF診斷信息可以定位問題原因,但OSPF診斷模塊并非所有設(shè)備都支持,不支持的設(shè)備可通過方法二嘗試定位解決。
方法二:對比R1、R2的OSPF報文字段定位根因(通用)
抓取R1和R2之間的鏈路報文:
比對R1和R2發(fā)出來的OSPF Hello報文:
很顯性的就能看到“掩碼不一致”和“認(rèn)證密碼不一致”兩處錯誤,這種方法適用于任何設(shè)備和場景,不依賴于設(shè)備診斷工具,我個人比較傾向該方法,同時還可以進(jìn)一步學(xué)習(xí)協(xié)議。
解決方案
修正接口子網(wǎng)掩碼:將R2的G0/0/0接口掩碼修正10.0.1.2/24
統(tǒng)一認(rèn)證密碼:兩端認(rèn)證密碼統(tǒng)一為huawei12
經(jīng)過上述操作,相關(guān)路由器之間的 OSPF 鄰居關(guān)系成功建立,路由信息開始正常交換,園區(qū)內(nèi)各區(qū)域之間的網(wǎng)絡(luò)通信恢復(fù)正常。