一、OSPF 基礎特性
1. 技術背景(對比 RIP)
- RIP 的缺陷:最大跳數 15 限制、周期性發送全路由表(占用帶寬)、收斂慢、以跳數為度量值、易產生環路、30 秒更新間隔。
- OSPF 的改進:無跳數限制(支持大規模組網)、組播更新變化的路由信息、收斂快(觸發更新)、以 Cost 為度量值、用 SPF 算法防環、30 分鐘周期性更新 LSA(鏈路狀態通告)。
2. 核心特點
- 傳遞拓撲信息和路由信息(RIP 僅傳遞路由表)。
- 協議號為 89,報文直接封裝在 IP 報文中。
- 廣泛應用于互聯網,是主流路由協議。
二、OSPF 核心組件?
1. 三張關鍵表
- 鄰居表:記錄鄰居路由器的狀態和關系(如鄰居 ID、地址、狀態)。
- 拓撲表(LSDB,鏈路狀態數據庫):存儲全網鏈路狀態信息(LSA),是 SPF 算法計算路由的基礎。
- 路由表:由 SPF 算法計算生成,記錄最優路由(通過
dis ip routing-table pro ospf
查看)。
2. 五種報文類型
報文類型 | 類型值 | 作用 | 關鍵字段 / 特性 |
---|---|---|---|
Hello 報文 | 1 | 發現 / 建立 / 保活鄰居關系 | 包含網絡掩碼、Hello 間隔(默認 10s)、Dead 間隔(默認 40s)、DR/BDR 信息、鄰居 Router-ID 等;組播地址 224.0.0.5。 |
DBD(數據庫描述報文) | 2 | 交換 LSDB 中 LSA 的摘要信息 | 含 LSA 頭部(摘要)、DD 序列號(確保傳輸有序)、主從標識(Master 由 Router-ID 大的路由器擔任)。 |
LSR(鏈路狀態請求報文) | 3 | 請求本地缺少或更新的 LSA | 攜帶 “LSA 三元組”(鏈路狀態類型、鏈路狀態 ID、通告路由器),唯一標識需請求的 LSA。 |
LSU(鏈路狀態更新報文) | 4 | 發送請求的完整 LSA | 可包含多個 LSA;MA 網絡中,DROTHER 向 224.0.0.6(DR/BDR 監聽)發送,DR 再向 224.0.0.5(所有 OSPF 路由器監聽)泛洪。 |
LSAck(鏈路狀態確認報文) | 5 | 確認收到 LSU | 包含需確認的 LSA 頭部(20 字節 / 個)。 |
3. LSA(鏈路狀態通告)
(1)LSA 頭部(20 字節)
- 包含:鏈路狀態類型、老化時間(最大 3600s,1800s 周期歸零)、鏈路狀態 ID、通告路由器(Router-ID)、序列號(判斷新舊)、校驗和等。
(2)6 種核心 LSA 類型
類型 | 名稱 | 通告者 | 傳輸范圍 | 描述內容 |
---|---|---|---|---|
Type 1 | 路由器 LSA | 所有路由器 | 本區域內 | 描述路由器直連鏈路(類型、Cost 等),含鏈路 ID、鏈路數據、鏈路類型(如 P2P、廣播網、末梢網)。 |
Type 2 | 網絡 LSA | DR(指定路由器) | 本區域內 | 描述廣播 / NBMA 網絡中所有路由器的鏈路及掩碼,LS ID 為 DR 的 IP 地址。 |
Type 3 | 網絡匯總 LSA | ABR(區域邊界路由器) | 跨區域(僅相鄰區域) | 描述其他區域的網段路由,以子網形式傳播。 |
Type 4 | ASBR 匯總 LSA | ABR | 全 OSPF 域 | 描述 ASBR(自治系統邊界路由器)的位置,LS ID 為 ASBR 的 Router-ID。 |
Type 5 | AS 外部 LSA | ASBR | 全 OSPF 域(特殊區域除外) | 描述引入的外部路由(如其他 AS 的路由)。 |
Type 7 | NSSA 外部 LSA | NSSA 區域的 ASBR | 僅 NSSA/Totally NSSA 區域 | 描述 NSSA 區域引入的外部路由,ABR 會將其轉換為 Type 5 LSA 通告到其他區域。 |
三、OSPF 工作機制?
1. 鄰居與鄰接關系建立
- 鄰居關系:通過 Hello 報文交互,雙方互相發現(狀態為 2-way)。
- 鄰接關系:鄰居間同步 LSDB 后形成(狀態為 Full),僅在需要交換 LSA 的路由器間建立(如 DR 與所有路由器、BDR 與所有路由器)。
2. DR/BDR 選舉(廣播 / NBMA 網絡)
- 目的:減少鄰接關系數量(避免 n (n-1)/2 的復雜度),優化路由信息交換。
- 規則:優先級(0-255,默認 1)高者優先;優先級相同則 Router-ID 大的優先。
- 特性:無搶占性,需原 DR/BDR 失效或重置 OSPF 進程才會重新選舉。
- 關系:DR 與 BDR、DR 與 DROTHER(非 DR/BDR)、BDR 與 DROTHER 為鄰接關系;DROTHER 之間僅為鄰居關系(2-way)。
3. 工作流程
- 建立鄰居:通過 Hello 報文確認可達性,選舉 DR/BDR。
- 同步 LSDB:鄰接路由器交換 DBD(LSA 摘要)→ 發送 LSR 請求缺失 LSA → 用 LSU 發送完整 LSA → 用 LSAck 確認。
- 計算路由:基于 LSDB,通過 SPF 算法計算最短路徑,生成路由表。
4. 狀態機(鄰居 / 鄰接關系轉換)
- 鄰居狀態:Down(初始)→ Init(收到 Hello 但未確認)→ 2-way(雙方確認,穩定狀態)。
- 鄰接狀態:Exstart(協商主從)→ Exchange(交換 LSA 摘要)→ Loading(請求 / 接收 LSA)→ Full(LSDB 同步,穩定狀態)。
- 關鍵條件:2-way 需 Router-ID 無沖突、掩碼 / 區域 ID/Hello 間隔 / Dead 間隔一致;Full 需 MTU 一致、網絡類型一致。
?四、區域劃分與特殊區域
1. 基本區域規則
- 骨干區域(Area 0):所有非骨干區域必須與之直接相連,避免區域間環路。
- 非骨干區域:不能直接相連,需通過骨干區域通信。
- 路由器類型:IR(區域內)、BR(骨干)、ABR(連接骨干與非骨干)、ASBR(連接外部 AS)。
2. 特殊區域(減少 LSA 泛洪,優化路由表)
區域類型 | 特征 | 禁止的 LSA | 缺省路由 | 配置命令 |
---|---|---|---|---|
Stub(末梢區域) | 無 ASBR,不接收外部路由 | Type 4/5 | ABR 自動下發 Type 3 缺省(優先級 10) | area X stub |
Totally Stub(完全末梢) | 不接收外部及其他區域路由 | Type 3/4/5 | ABR 自動下發 Type 3 缺省 | area X stub no-summary |
NSSA(非純末梢) | 有 ASBR,可引入外部路由(Type 7) | Type 4/5 | 華為自動下發 Type 7 缺省(優先級 150) | area X nssa |
Totally NSSA(完全非純末梢) | 不接收其他區域及外部路由(除本區域引入) | Type 3/4/5 | ABR 下發 Type 3 缺省 | area X nssa no-summary |
五、路由聚合與防環
1. 路由聚合(手動聚合 LSA,減少路由條目)
- ABR 聚合(Type 3 LSA):在 ABR 上對區域內路由聚合后發布到其他區域,命令:
area X abr-summary 網絡地址 掩碼
。 - ASBR 聚合(Type 5/7 LSA):在 ASBR 上對引入的外部路由聚合,命令:
asbr-summary 網絡地址 掩碼
。 - 聚合后會生成黑洞路由,防止環路。
2. 防環機制
- 區域內:通過 SPF 算法(最短路徑優先)計算無環路由。
- 區域間:嚴格遵循 “非骨干區域必須連接骨干區域” 的劃分原則,避免環路。
六、高級配置與優化
1. 網絡類型(影響 DR 選舉、報文發送方式)
網絡類型 | 適用場景 | DR/BDR 選舉 | Hello 間隔 | Dead 間隔 | 報文發送方式 |
---|---|---|---|---|---|
Broadcast(廣播) | 以太網 | 是 | 10s | 40s | 組播(224.0.0.5) |
P2P(點到點) | PPP 鏈路 | 否 | 10s | 40s | 組播 |
NBMA(非廣播多點可達) | 幀中繼 | 是 | 30s | 120s | 單播(需手動指定鄰居) |
P2MP(點到多點) | 手動配置(如從 NBMA 轉換) | 否 | 30s | 120s | 模擬組播(需手動指定鄰居) |
2. 安全與過濾
- 認證:區域認證(
area X authentication-mode md5 密鑰
)、接口認證(interface X ospf authentication-mode md5 密鑰
),接口認證優先級更高。 - 靜默接口:禁止接口發送 OSPF 報文(
silent-interface 接口
),避免路由信息泄露。 - 路由過濾:通過 ACL 在進口(
filter-policy ACL import
)或出口(area X filter ACL export
)過濾 LSA,影響下游路由。
3. 收斂優化
- 調整 Hello 間隔(
ospf timer hello X
)和 Dead 間隔(ospf timer dead X
)。 - 修改重傳時間(默認 5s,
ospf timer retransmit X
)。 - 統一參考帶寬(
bandwidth-reference X
),確保 Cost 計算準確(Cost = 參考帶寬 / 鏈路帶寬,默認參考帶寬 100M)。
4. 缺省路由
- Type 3 缺省:特殊區域(Stub/Totally Stub)由 ABR 自動下發。
- Type 5 缺省:ASBR 手動配置(
default-route-advertise
),優先級 150。 - Type 7 缺省:NSSA 區域由 ABR 下發(華為自動,華三需手動)。
七、常見問題與故障
- 鄰居關系建立失敗:Router-ID 沖突、區域 ID 不一致、認證密碼不匹配、掩碼 / Hello 間隔 / Dead 間隔不一致、特殊區域標記不一致、無 DR(所有路由器優先級為 0)。
- 鄰接狀態卡殼:MTU 不一致(卡在 Exstart/Exchange)、網絡類型不一致(狀態 Full 但無法學習路由)。
- LSA 更新異常:序列號或校驗和錯誤、老化時間超時(3600s)。
?
?