OSPF筆記整理

一、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網絡 LSADR(指定路由器)本區域內描述廣播 / NBMA 網絡中所有路由器的鏈路及掩碼,LS ID 為 DR 的 IP 地址。
Type 3網絡匯總 LSAABR(區域邊界路由器)跨區域(僅相鄰區域)描述其他區域的網段路由,以子網形式傳播。
Type 4ASBR 匯總 LSAABR全 OSPF 域描述 ASBR(自治系統邊界路由器)的位置,LS ID 為 ASBR 的 Router-ID。
Type 5AS 外部 LSAASBR全 OSPF 域(特殊區域除外)描述引入的外部路由(如其他 AS 的路由)。
Type 7NSSA 外部 LSANSSA 區域的 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. 工作流程

  1. 建立鄰居:通過 Hello 報文確認可達性,選舉 DR/BDR。
  2. 同步 LSDB:鄰接路由器交換 DBD(LSA 摘要)→ 發送 LSR 請求缺失 LSA → 用 LSU 發送完整 LSA → 用 LSAck 確認。
  3. 計算路由:基于 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/5ABR 自動下發 Type 3 缺省(優先級 10)area X stub
Totally Stub(完全末梢)不接收外部及其他區域路由Type 3/4/5ABR 自動下發 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/5ABR 下發 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(廣播)以太網10s40s組播(224.0.0.5)
P2P(點到點)PPP 鏈路10s40s組播
NBMA(非廣播多點可達)幀中繼30s120s單播(需手動指定鄰居)
P2MP(點到多點)手動配置(如從 NBMA 轉換)30s120s模擬組播(需手動指定鄰居)

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)。

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/93905.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/93905.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/93905.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

sqLite 數據庫 (3):以編程方式使用 sqLite,4 個函數,以及 sqLite 移植,合并編譯

(22) 只有四個函數 :以及 :(23)以及 :(24)(25) sqLite 的源代碼很少 :(26)(27)&#x…

Nginx跨域問題與 MIME 類型錯誤深度排錯指南:解決 MIME type of “application/octet-stream“ 報錯

前言:在 Web 開發中,跨域請求和資源加載錯誤是前端工程師和運維人員經常遇到的棘手問題。本文將詳細解析 Nginx 環境下跨域配置的多種方案、gzip 類型參數的優化要點,以及.mjs 文件 MIME 類型錯誤的解決方法,并結合排錯思路和原理…

什么是大端?什么是小端?如何驗證?

什么是大端?什么是小端?如何驗證? 在計算機系統中,大端(Big-Endian) 和小端(Little-Endian) 是兩種不同的字節序(Byte Order),用于描述多字節數據…

JavaScript 語句和函數

1. JavaScript 語句 1)if語句 if (condition) statement1 else statement2這里的條件(condition)可以是任何表達式,并且求值結果不一定是布爾值。 ECMAScript會自動調用Boolean()函數將這個表達式的值轉換為布爾值。 如果條件…

代碼隨想錄刷題Day22

替換數字 這道題比較簡單&#xff0c;遇到字母就copy到新的字符數組&#xff0c;如果是遇到數字&#xff0c;就在新字符數組中加入number的字符串。代碼如下&#xff1a; #include<stdio.h> #include<ctype.h> #include<string.h> #define Max 1000000 int…

邏輯回歸參數調優實戰指南

邏輯回歸的參數調節參數展示 LogisticRegression(penaltyl2,dualFalse,tol1e4,C1.0,fit_interceptTrue,intercept_scaling1,class_weightNone,random_stateNone,solverliblinear,max_iter100,multi_classovr,verbose0,warm_startFalse, n_jobs1)在前面的學習中&#xff0c;我們…

cocosCreator2.4 googlePlay登錄升級、API 35、16KB內存頁面的支持

環境&#xff1a;我這里是cocosCreator 2.4.12 導出的android 工程 登錄升級 后臺收到的google 的提醒&#xff1a; 之前是通過implementation com.google.android.gms:play-services-auth:20.0.0 來獲取玩家 uid 和 郵箱&#xff0c;然后發送到我們的服務器獲取賬號。 升級…

unity avpro實現互動影游關鍵問題

創建視頻播放器?在Hierarchy面板中右鍵創建&#xff1a;Video > AVPro Video - MediaPlayer創建后會生成一個MediaPlayer對象&#xff0c;用于控制視頻播放添加視頻資源將視頻文件放入項目的StreamingAssets文件夾下在MediaPlayer組件的設置中選擇要播放的視頻文件在UI上顯…

【C找第一個只出現一次的字符】2022-8-18

緣由樣例通過&#xff0c;請問為什么錯了呢&#xff1f;(語言-c語言)-編程語言-CSDN問答 char str[100000];fgets(str, 100000, stdin);int a[26]{}, i, count 0;int len strlen(str);for (i 0; i<len; i) a[str[i] - a];for (i 0; i<len; i){if (a[str[i] - a] 1){…

MCP AI應用通信的底層機制

技術小館專注AI與Java領域的前沿技術知識庫 技術小館官網 在AI應用快速發展的今天&#xff0c;不同AI系統之間的高效通信成為技術架構的關鍵挑戰。MCP&#xff08;Model Context Protocol&#xff09;作為新一代AI應用通信協議&#xff0c;正在重新定義AI工具生態的構建方式。…

UI測試平臺TestComplete如何實現從Git到Jenkins的持續測試

還在為手動做UI測試又慢又累發愁&#xff1f;更頭痛的是&#xff0c;代碼改完還得等半天才能測&#xff0c;測完了結果又散得到處都是&#xff0c;根本看不清質量全貌?TestComplete幫你搞定&#xff1a;直接連上你的Git倉庫&#xff0c;代碼一有動靜就能感知。接著&#xff0c…

【Debian】4-?2 Gitea搭建

【Debian】4-?2 Gitea搭建一、準備工作二、創建 Gitea 用戶&#xff08;推薦&#xff09;三、下載并安裝 Gitea四、配置Gitea4-1 創建目錄結構4-2 創建配置目錄五、配置 Systemd 服務六、訪問 Gitea Web 界面七、小插曲一、準備工作 更新系統軟件為最新 sudo apt update &am…

【CDH × Docker】一次測試部署,N 次復用的環境鏡像方案

&#x1f680; 一次測試環境的探索&#xff1a;我如何將 CDH 集群打包成 Docker 鏡像&#xff0c;留給未來的自己 &#x1f9e9; 背景故事 最近在項目中&#xff0c;我們計劃上線一個基于 CDH&#xff08;Cloudera Distribution Hadoop&#xff09; 的大數據平臺。正式上生產環…

Java 日期時間格式化模式說明

Java 中日期時間格式化使用特定的模式字符串來定義輸出格式。以下是常見的格式化符號及其含義&#xff0c;適用于 SimpleDateFormat 和 DateTimeFormatter一、日期部分格式化符號符號含義示例y年 (Year)yyyy → 2023M月 (Month)MM → 09, MMM → Sep, MMMM → Septemberd月中的…

代碼隨想錄算法訓練營三十三天|動態規劃part06

LeetCode 322 零錢兌換 題目鏈接&#xff1a;322. 零錢兌換 - 力扣&#xff08;LeetCode&#xff09; 給你一個整數數組 coins &#xff0c;表示不同面額的硬幣&#xff1b;以及一個整數 amount &#xff0c;表示總金額。 計算并返回可以湊成總金額所需的 最少的硬幣個數 。…

【大模型LLM】大模型訓練加速 - 梯度累積(Gradient Accumulation)原理詳解

梯度累積&#xff08;Gradient Accumulation&#xff09;原理詳解 梯度累積是一種在深度學習訓練中常用的技術&#xff0c;特別適用于顯存有限但希望使用較大批量大小&#xff08;batch size&#xff09;的情況。通過梯度累積&#xff0c;可以在不增加單個批次大小的情況下模擬…

【數據分享】各省文旅融合耦合協調度及原始數據(2012-2022)

數據介紹引言 文旅融合是推動區域經濟高質量發展、促進共同富裕的重要路徑。黨的二十大報告明確提出“推進文化和旅游深度融合發展”的戰略目標&#xff0c;文旅產業通過資源整合與業態創新&#xff0c;可顯著縮小城鄉、區域差距&#xff0c;提升物質與精神雙重福祉&#xff08…

Linux編程: 10、線程池與初識網絡編程

今天我計劃通過一個小型項目&#xff0c;系統講解線程池與網絡編程的核心原理及實踐。項目將圍繞 “利用線程池實現高并發網絡通信” 這一核心需求展開&#xff0c;具體設計如下&#xff1a; 為保證線程安全&#xff0c;線程池采用單例模式設計&#xff0c;確保全局唯一實例避…

藏云閣 Logo 庫(開源項目SVG/PNG高清Logo)

在日常技術方案設計、架構圖繪制或PPT制作中&#xff0c;常常會遇到一些問題&#xff0c;比如&#xff1a; 找不到統一風格的開源項目組件圖標&#xff0c;PPT中的logo五花八門下載的圖標分辨率不足&#xff0c;放大后模糊失真不同來源的圖標顏色風格沖突&#xff0c;破壞整體…

從0開始學習R語言--Day64--決策樹回歸

對于沒有特征或者說需要尋找另類關系的數據集&#xff0c;我們通常會用聚合或KNN近鄰的方法來分類&#xff0c;但這樣的分類或許在結果上是好的&#xff0c;但是解釋性并不好&#xff0c;有時候我們甚至能看到好的結果反直覺&#xff1b;而決策樹回歸做出的結果&#xff0c;由于…