OSPF 的工作過程、Router ID 機制、報文結構

視頻版講解>>>>>>>>>>>>>>路由協議深度解析:從靜態路由到 OSPF 實戰

一、回顧靜態路由:拓撲與核心邏輯

我們先回到上周講解的拓撲圖,這張圖是理解靜態路由的核心載體 —— 路由器作為網段分割的核心設備,而兩臺交換機僅用于擴展端口,不具備分割網段的功能,因此全網可簡化為三個網段。默認情況下,PC1 與 PC2 處于不同網段,無法直接互通;要實現二者通信,需在 R1 上配置指向 PC2 所在網段的靜態路由,同時在 R2 上配置指向 PC1 所在網段的靜態路由,通過手工指定 “目的網段 + 下一跳” 的方式,構建跨網段轉發路徑。

二、靜態路由的局限性:為何需要動態路由?

靜態路由雖能實現基礎互通,但在實際網絡中存在不可忽視的問題,無法滿足復雜場景需求:

1.手工配置易出錯:所有路由需管理員逐臺設備配置,網絡規模越大,配置條目越多,輸錯網段、下一跳的概率越高;

2.大型網絡配置復雜:若網絡包含數十臺路由器、上百個網段,需維護的靜態路由條目呈指數級增長,后期運維成本極高;

3.無法動態適應網絡變化:以 “R1→R2→PC2” 為主路徑、“R1→R3→PC2” 為備份路徑為例,若 R2 與 PC2 之間的鏈路(如 R2-R4 鏈路)故障,R1 僅能檢測到 “下一跳 R2 可達”,仍會將流量發往 R2,導致數據丟失 ——R1 無法感知 R2 后端的鏈路故障,無法自動切換到備份路徑。

不過靜態路由并非完全無用:在小型網絡(如僅 2-3 臺路由器)或固定網絡出口場景(如企業僅一條專線連外網)中,因其 “配置簡單、無協議開銷” 的特點,仍有廣泛應用(后續講解 NAT 時會進一步展開)。

三、動態路由協議:核心特點與分類

靜態路由的痛點,正是動態路由協議的優勢所在 —— 無需手工配置路由,能自動感知網絡變化并調整轉發路徑。

3.1 動態路由協議的核心優勢

1.自動計算路由:無需管理員指定 “目的網段 + 下一跳”,協議會基于網絡拓撲自動生成路由條目;

2.動態適配拓撲變化:當鏈路故障、新增設備或網段時,協議能實時檢測變化,自動更新路由表,確保流量始終走最優路徑。

3.2 按工作機制分類:距離矢量 vs 鏈路狀態

動態路由協議按算法可分為兩類,核心區別在于 “是否傳遞全網拓撲信息”:

(1)距離矢量路由協議(如 RIP、BGP)

僅傳遞路由信息(目的網段、距離、下一跳),不傳遞拓撲信息,因此運行該協議的設備 “無法得知全網結構”。

通俗類比:去黑龍江時,打開地圖僅搜索 “黑龍江” 的幾條候選路徑,選標注 “最短” 的一條就出發 —— 但地圖可能不是最新版(未標注新修道路或某條路已封閉),最終選的路徑可能不是最優的。

(2)鏈路狀態路由協議(如 OSPF、IS-IS)

既傳遞路由信息,也傳遞拓撲信息(全網設備、鏈路連接關系),運行該協議的設備 “能構建完整的全網拓撲圖”。

通俗類比:去黑龍江前,先下載 “全國完整交通地圖”(包含所有道路、橋梁、隧道的實時狀態),再基于地圖遍歷所有可能路徑,選出真正最優的一條 —— 因考慮了全網信息,不會出現 “選到無效路徑” 的問題。

注:BGP 雖屬于距離矢量協議,但因應用場景特殊(多用于跨自治系統路由),IA 階段暫不深入,重點聚焦鏈路狀態協議中的 OSPF。

四、OSPF 實戰:鏈路狀態路由協議的核心解析

OSPF(Open Shortest Path First,開放式最短路徑優先協議)是 IA 階段唯一需要掌握的動態路由協議,其名字已點明核心特性:“開放式”(協議標準公開,所有廠商設備支持)、“最短路徑優先”(基于全網拓撲計算最優路徑)。

4.1 OSPF 的工作過程:三步自動構建路由表

OSPF 的核心目標是 “自動生成路由表”,整個過程無需人工干預,僅需基礎配置即可觸發,分為三個關鍵步驟:

步驟 1:建立 OSPF 鄰居關系

兩臺運行 OSPF 的路由器(如 R1 和 R2)初始 “互不認識”,需先通過發送 Hello 報文 建立鄰居關系 ——Hello 報文會攜帶 “OSPF 版本、區域 ID、Router ID” 等信息,確認對方是否為 “同一區域的 OSPF 設備”,完成初步 “認識”。

步驟 2:同步 LSDB(鏈路狀態數據庫)

鄰居關系建立后,路由器會開始傳遞核心信息 ——LSA(鏈路狀態通告),并同步各自的 LSDB(鏈路狀態數據庫):

LSDB:每臺 OSPF 路由器都有的 “數據庫”,存儲全網的路由信息和拓撲信息,相當于 “全網拓撲地圖”;

LSA:承載信息的 “載體”,每臺路由器會生成包含自身直連網段、鄰居信息的 LSA,通過 LSA 與鄰居交換信息;

同步邏輯:鄰居間互相發送 LSA,“你沒有的我發給你,我沒有的你發給我”,最終讓所有鄰居的 LSDB 完全一致(即 “同頻”)。

步驟 3:SPF 算法計算最優路由

LSDB 同步完成后,每臺 OSPF 路由器會自動執行 SPF(最短路徑優先)算法:基于同步后的 LSDB(全網拓撲圖),計算去往每個網段的 “最短路徑”,并將最優路由條目寫入自身路由表 —— 至此,OSPF 構建路由表的任務完成,后續數據轉發可直接基于路由表進行。

4.2 OSPF 報文:驅動協議運行的 “核心載體”

OSPF 的所有工作過程(建立鄰居、同步 LSDB、更新路由)都依賴報文實現,需重點掌握 “報文結構” 和 “核心報文類型”。

(1)報文三層結構

OSPF 報文工作在 “網絡層之上”,自上而下分為三層,各層功能明確:

1.以太網層(數據鏈路層):包含源 MAC、目的 MAC,用于局域網內設備間的報文轉發;

2.IP 層(網絡層):包含源 IP、目的 IP,且 IP 頭部的 “協議號” 為 89(用于標識上層為 OSPF 協議,需重點記憶,常考);

3.OSPF 層:所有 OSPF 報文的核心,分為 “OSPF 頭部” 和 “報文詳細內容”—— 所有類型的 OSPF 報文共用相同的 OSPF 頭部,僅 “詳細內容” 不同。

(2)核心報文類型

通過抓包可觀察到 OSPF 有 5 類核心報文,對應不同工作階段:

Hello 報文:用于建立和保活鄰居關系(步驟 1 核心);

DD 報文(Database Description):描述自身 LSDB 的 “摘要”(如包含哪些 LSA 的標識),用于鄰居間確認 “哪些 LSA 是對方有而自己沒有的”;

LSR 報文(Link State Request):向鄰居請求缺失的 LSA(如發現 DD 報文中有自己沒有的 LSA,發送 LSR 索要);

LSU 報文(Link State Update):攜帶具體的 LSA 內容,響應 LSR 請求或主動更新 LSA(步驟 2 核心);

LSACK 報文(Link State Acknowledgment):確認收到 LSU 報文,保證 LSA 傳遞的可靠性。

(3)OSPF 頭部關鍵字段

所有 OSPF 報文的頭部結構相同,關鍵字段需理解:

1.Version(版本):OSPFv2(用于 IPv4 網絡,IA 階段重點)、OSPFv3(用于 IPv6 網絡);

2.Router ID:OSPF 路由器的 “身份證”,唯一標識一臺 OSPF 設備(無通信功能,僅用于標識,如 R1 可配置為 1.1.1.1,R2 配置為 2.2.2.2);

3.區域 ID:OSPF 支持區域劃分,IA 階段僅學 “單區域”—— 骨干區域 ID 為 0,非骨干區域 ID≠0;

4.認證字段:默認全 0(無認證),配置認證后攜帶認證信息,用于提高 OSPF 網絡安全性。

4.3 Router ID:OSPF 路由器的 “唯一標識”

Router ID 是 OSPF 的核心標識,需掌握其 “配置方式” 和 “自動選舉規則”,確保每臺路由器的 Router ID 唯一。

(1)手工配置(推薦)

命令:全局視圖下執行 ospf 進程號 router-id 路由器 ID(如 R1 配置 ospf 1 router-id 1.1.1.1);

作用:① 創建 OSPF 進程;② 指定 Router ID;③ 進入 OSPF 進程視圖,用于后續配置;

注意:修改 Router ID 后,需重啟 OSPF 進程(用戶視圖下執行 reset ospf 進程號),新 Router ID 才能生效。

(2)自動選舉(無手工配置時)

若未手工指定 Router ID,設備會按以下優先級自動選舉:

1.優先從 Loopback 接口 中選擇 “IP 地址最大” 的作為 Router ID(Loopback 接口穩定性高,推薦配置);

2.若無 Loopback 接口,從 物理接口 中選擇 “IP 地址最大” 的作為 Router ID(如 R1 物理接口 IP 為 192.168.1.254 和 10.1.12.1,自動選 192.168.1.254)。

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

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

相關文章

Qt 6 與 Qt 5 存在的兼容性差異

之前有提到。我的是Qt5,我朋友的是Qt 6,由于版本不兼容問題,在遷移時會有問題。所以這一我們說說這兩個的區別。( 正文開始嘍! 總結來說:Qt5遷移至 Qt 6 需:1. 破壞性變更(必須修改…

本地windows電腦部署html網頁到互聯網:html+node.js+ngrok/natapp

目錄 核心概念:為什么不能直接分享HTML文件? 1,html文件修改 2,安裝設置node.js 3,路由器虛擬服務器 4,采用ngrok工具進行內網穿透(國外工具) 5,采用natapp工具進行…

electron離線開發核心環境變量npm_config_cache

npm_config_cache 這個環境變量。它在離線環境配置中扮演著核心角色。什么是 npm_config_cache?npm_config_cache 是一個環境變量,用于直接設置 npm 的緩存目錄的絕對路徑。npm 在安裝包時,會遵循一個特定的工作流程:檢查緩存&…

CTFshow系列——命令執行web57-60

本篇文章介紹命令執行的另一種情況,CTFshow的Web57-60關的講解解析;要想了解其它關卡可查看我以往的文章,感謝關注。 文章目錄Web57(新方法)Web58(POST型)不可用函數可用函數Web59第二種方法&am…

域名、ip、DSN、URL

目錄 1、ip 2、域名 3、DSN 4、URL 1、ip 每個連接到Internet上的主機都會分配一個IP地址,此ip是該計算機在互聯網上的邏輯地址的唯一標識,計算機之間的訪問就是通過IP地址來進行的。寫法:十進制的形式,用“.”分開&#xff0…

【JAVA實現websocket】

JAVA實現websocket背景依賴問題代碼實現測試背景 近期項目中需要用到websocket&#xff0c;實現即時通信。 依賴 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId></depen…

2.6 提示詞調優編碼實戰(一)

目錄 寫在前面 一,需求定義 二,簡單提示詞 2.1 代碼示例 2.2 輸出結果 三,提示詞模版 3.1 提示詞 3.1.1 任務描述 3.1.2 用戶輸入 3.1.3 模型輸出格式 3.1.4 Prompt模版 3.2 輸出結果 寫在前面 前面我們總結了提示詞對于模型的意義,接下來我們來通過向模型輸入…

使用Stone 3D快速制作第一人稱視角在線小游戲

首先得有個怪物模型&#xff0c;怪物帶有idle, attack動作 然后有個場景模型&#xff0c;把怪物&#xff08;如果模型較大&#xff0c;建議使用remote-mesh來加載&#xff09;擺放到想放的位置。 給相機加上fps-controls和character組件 給所有怪物加上character組件 可以在…

嵌入式第三十七課!!!TCP機制與HTTP協議

TCP的其他機制TCP頭部標志位SYN&#xff1a;請求建立連接標志位 ACK&#xff1a;響應報文標志位 PSH&#xff1a;攜帶數據標志位&#xff0c;通知接收方該從緩沖區讀數據 FIN&#xff1a; 請求斷開連接標志位 RST&#xff1a;復位標志位 URG: 緊急數據標志…

【測試】pytest測試環境搭建

使用pytest進行API測試&#xff0c;vscode運行 創建虛擬環境&#xff0c;安裝pytest&#xff0c;httpx&#xff0c;requests&#xff0c;dotenvvscode中ctrlshiftp&#xff0c;選擇python: Configure Tests&#xff0c;選擇pytest&#xff0c;目錄左側插件testing里面可以看到有…

javaweb開發筆記——微頭條項目開發

第八章 微頭條項目開發 一 項目簡介 1.1 微頭條業務簡介 微頭條新聞發布和瀏覽平臺,主要包含業務如下 用戶功能 注冊功能 登錄功能 頭條新聞 新聞的分頁瀏覽 通過標題關鍵字搜索新聞 查看新聞詳情 新聞的修改和刪除 權限控制 用戶只能修改和自己發布的頭條新聞 1.…

Linux(二十二)——服務器初始化指南

文章目錄前言一、配置國內 Yum 源&#xff08;加速軟件安裝&#xff09;二、更新系統與安裝必備工具三、網絡連接驗證四、配置主機名五、同步時間六、配置防火墻6.1 使用 iptables6.1.1 整體思路6.1.2 詳細步驟6.1.3 完整配置腳本示例6.1.4 常用管理命令6.2 使用 firewalld總結…

我用Photoshop Firefly+Blender,拯救被環境毀掉的人像大片

今日陽光正好。這樣的天氣對于攝影師來說是種饋贈&#xff0c;但也讓我想起了這個行業最普遍也最無奈的痛點&#xff1a;我們精心策劃了一場拍攝&#xff0c;模特的表現、光線的質感都近乎完美&#xff0c;但最終卻因為一個平淡的陰天、一處雜亂的背景&#xff0c;或是一個無法…

【線性代數】常見矩陣類型

目錄 1. 方陣(Square Matrix) 2. 對稱矩陣(Symmetric Matrix) 3. 反對稱矩陣 / 斜對稱矩陣(Skew-Symmetric Matrix) 4. 對角矩陣(Diagonal Matrix) 5. 三角矩陣 6. 正交矩陣(Orthogonal Matrix) 7. 冪等矩陣(Idempotent Matrix) 8. 正定矩陣 / 半正定矩陣 …

達夢數據庫統計信息收集

達夢數據庫統計信息收集 檢查統計信息收集情況 如何手動收集統計信息 查看統計信息收集結果 統計信息手動收集策略 統計信息的自動收集 檢查統計信息收集情況 檢查最近一次統計信息收集時間: --表的最近一次統計信息收集時間 SQL> select owner,table_name,last_analyzed…

【目標檢測】論文閱讀4

Fast and accurate object detector for autonomous driving based on improved YOLOv5 發表時間&#xff1a;2023年&#xff1b;期刊&#xff1a;scientific reports 論文地址 摘要 自動駕駛是人工智能的一個重要分支&#xff0c;實時準確的目標檢測是保證自動駕駛車輛安全穩…

wpf之DockPanel

前言 DockPanel是一個容器控件&#xff0c;容器中的子控件通過設置DockPanel.Dock屬性來調整位置 1、DockPanel.Dock DockPanel.Dock的值有Left、Right、Top、Bottom 1.1 Left 指示控件靠左停靠 1.2 Right 指示控件靠右停靠 1.3 Top 指示控件靠上停靠 1.4 Bottom 指示…

解決VSCode中Cline插件的Git鎖文件沖突問題

文章目錄 問題現象 錯誤分析 解決方案 方法一:手動刪除鎖文件(推薦) 方法二:檢查并終止Git進程 方法三:重置檢查點目錄 方法四:完全重新初始化 預防措施 總結 在使用VSCode進行開發時,許多開發者會選擇安裝Cline插件來提升工作效率。然而,在使用過程中,可能會遇到一些…

視頻合成素材視頻-多合一功能-青檸剪吧

剪輯繁瑣耗時&#xff1f;這款工具正在改變創作者的日常。最近很多人都在用的剪輯神器&#xff0c;叫青檸剪吧。它尤其適合需要批量處理視頻的朋友&#xff0c;內置40多項功能&#xff0c;從替換、分割到對齊、導出&#xff0c;基本覆蓋了剪輯全流程。操作簡單&#xff0c;哪怕…

未成功:使用 Nginx 搭建代理服務器(正向代理 HTTPS 網站)

下載 nginx: download 解壓配置http 編譯conf/nginx.conf http {server {listen 8080; # 代理服務器監聽端口resolver 8.8.8.8; # DNS 解析器location / {proxy_pass $scheme://$host$request_uri; # 轉發請求proxy_set_header Host $host;proxy_set_header X-Real-IP $…