OSPF(開放最短路徑優先)

一、ospf簡介

OSPF是基于鏈路狀態的內部網關協議,與距離矢量協議不同,鏈路狀態協議通告的是鏈路狀態而不是路由表。OSPF是用于自治系統(AS)內部的路由決策,特點有,收斂速度快,安全性好,避免環路。
目前ipv4主要用OSPFV2版本,而ipv6則是OSPFv3版本。

二、OSPF工作流程

1、建立鄰居

  • 路由器通過周期性的發送hello報文,來發現并維護鄰居關系。
  • 如果兩臺路由器的參數相匹配,比如區域id,版本,認證方式等,就會建立鄰居關系。
  • 鄰居關系建立后就會進行條件匹配(在BMA或NBMA網絡中通過優先級比較和RID對比來選舉DR和BDR),如果條件匹配成功則進入后續狀態,匹配失敗則停留在鄰居階段,僅僅依靠hello報文保活
    在這里插入圖片描述

2、鏈路狀態信息同步

  • DR/BDR選舉,在以太網中,為了減少鏈路狀態信息的交換次數,設置了選舉指定路由器和備份指定路由器。選舉依據優先級和router id ,高優先級的路由器當選。優先級一樣,則router id 大的當選。
  • 鏈路狀態通告,當鄰居關系建立成功后,路由器會向鄰居發送LSA,其中包含了路由器的鏈路狀態信息,如接口的ip,子網掩碼,鄰居等,LSA會在ospf區域類傳播,確保所有的路由器都能獲取到相同的鏈路狀態信息,
  • 數據庫同步,收到LSA的路由器會和自己的LSDB中的進行對比,若收到的LSA是新的或者是更優的,就將其添加到LSDB中,并傳播該LSA給鄰居。
    在這里插入圖片描述

3、路由計算

  • 利用最短路徑優先算法,計算到達各個目的網絡的最短路徑,路由器將路徑信息轉換成路由條目,添加到路由表中。路由表中包含網絡地址,下一跳地址,出接口信息,路由器將依據路由表轉發數據包。

在這里插入圖片描述
在這里插入圖片描述

4、路由更新

基于組播進行更新(224.0.0.5 /224.0.0.6)
支持觸發更新,每30分鐘進行一次周期更新

三、OSPF區域

為了適應大型網絡,OSPF在AS內劃分了多個區域,每個路由器只用維護自己所在區域的鏈路狀態信息
區域劃分的優點為:
盡量減少路由條目,使得拓撲的變化只影響本區域內部

區域劃分的規則:

  • 星型結構
  • 骨干區域為0區;大于0的為非骨干區域
  • 所有非骨干區域必須連接在骨干區域上
  • 兩個區域相連時必須存在ABR(域間路由器)

Router-ID : 路由器標識符,用于在一個ospf域中唯一的標識一臺路由

四OSPF數據包類型

1.HELLO包

  • 發現和維護鄰接關系:用于鄰居節點的發現,建立初始連接,并周期性發送以維持鄰接狀態。

  • 協商參數一致性:檢查凝聚節點的參數(如區域id,hello時間,認證方式等)是否匹配。

2.DBD包(數據庫描述包)

  • 同步鏈路狀態數據庫:在鄰接關系建立初期,主從路由器通過交換DBD包,描述本地LSDB中的鏈路狀態摘要。
  • 主從關系協商:確定數據同步的主從角色(router Id大的一方為主路由器)

3.鏈路狀態請求包(LSR)

  • 請求特定的LSA信息:當路由器發現本地LSDB中缺少或存在過時的LAS時,向鄰居發送LSR 包,請求完整的LSA數據。

4.鏈路狀態更新包(LSU)

  • 發送完整的LSA數據,響應LSR請求,或主動泛洪最新的LSA信息,確保全網LSDB一致。

5.鏈路狀態確認包(LSACK)

  • 確認LSA可靠傳輸:接收方收到LSU后,向發送方返回lsack包,確保lsa已正確接收,避免數據丟失。

五、OSPF狀態機

Down狀態

  • 初始狀態:路由器未在接口上收到來自任何鄰居的hello數據包,或鄰居通信中斷
  • 周期性發送hello數據包,(默認10秒或30秒),嘗試發現鄰居。
  • 當收到合法的hello包時,若hello包中未含自身router id 時,則進入init狀態。

Init狀態

  • 路由器收到鄰居的hello包,但尚未被鄰居識別。

  • 驗證hello包中的參數一致性

  • 區域id是否匹配(是否在同一個區域)

  • 認證方式和密鑰是否一致

  • hello時間和dead時間是否匹配

  • 當鄰居的hello包中發現自身router Id:確認雙向通信建立,進入Two-Way狀態

Two-Way狀態

  • 雙向通信完成:雙方hello包中均含對方router id,鄰居關系初步建立。
    核心功能:

  • DR/BDR選舉(僅在廣播型網絡和NBMA網絡中):
    接口優先級(默認為1,0-255)和router id決定選舉結果.
    優先級就高的為DR,次高為BDR;優先級相同時,router Id大的為DR

  • 廣播網絡中需要同步LSDB的節點(如DR和BDR,DR和DROther)進入Exstart狀態

  • 點到點網絡或不需要同步的場景(如p2p,loopback接口)直接進入exstart狀態,無須選舉DR與BDR

Exstart狀態

  • 主從關系協商階段:兩臺路由器準備交換DBD包,需要先確認主路由器和從路由器
  • router Id較大的一方成為主路由器,負責控制dbd包的發送順序。
  • 主從關系協商完成:雙方達成一致,進入exchange狀態。

Exchange狀態

  • LSDB摘要同步階段:主路由器通過交換dbd包,傳遞本地lsdb中的lsa頭部信息(如lsa類型,鏈路狀態id,通告路由器等)
  • 主路由器發送攜帶lsa頭部列表的dbd包,序號遞增;從路由器接收后返回dbd包,并確認序號。
  • 接收方對比本地lsdb,標記缺失或過時的lsa
  • 雙方完成lsdb摘要對比,進入loading狀態。

Loading狀態

-請求缺失的lsa的完整數據:路由器根據exchange階段發現的缺失lsa,向鄰居發送鏈路狀態請求包(LSR),獲取對應的lsa

  • 所有的LSA獲取并確認,進入FULL狀態。

FULL狀態

  • 鄰接關系完全建立:雙方LSDB完全一致,可基于LSD運行Dijkstra算法計算最短路徑樹,生成路由表
  • 若超過dead時間未收到hello包,或者lsdb同步失敗,可能退回到Down狀態,重新建立鄰接。

Attempt狀態(僅用于NBMA網絡)

  • 非廣播多路訪問網絡(NBMA)特有:用于描述對靜態配置鄰居的輪詢狀態(如幀中繼,atm網絡)
  • 當鄰居配置為靜態鄰居,且未收到其hello包時,路由器定期向該鄰居單播發送hello包,嘗試建立連接。
  • 若持續未響應,維持Attempt狀態;若收到響應,則進入Two-Way狀態

狀態機轉變

在這里插入圖片描述
在ar5上查看狀態機:

  • 收到了AR7發送的hello包,鄰居狀態由down轉換成init狀態

在這里插入圖片描述

  • 再次收到hello包,且包含自己的router id,轉變成two-way狀態

在這里插入圖片描述

  • 發送DD報文進入Exstart狀態

在這里插入圖片描述

  • 交互DD報文并發送LSR請求LSU,并進入Exchange狀態

在這里插入圖片描述

  • 交互完畢進入Loading狀態

在這里插入圖片描述

  • 最后是full狀態

在這里插入圖片描述

六、基礎配置

[R1]ospf 1 router-id 1.1.1.1 確定ospf進程的同時配置RID  
[R1-ospf-1]area 0  創建0區/進入0區
[R1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
[R1-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.255
反掩碼:掩碼反過來
[R1]display ospf peer 查看詳細鄰居關系   
[R1]display ospf lsdb 查看數據庫表的目錄 
[R1]display ospf lsdb router 2.2.2.2  打開具體的數據庫目錄內容
[R2]display ip routing-table protocol ospf  查看由OSPF生成的路由表 

實驗拓撲

在這里插入圖片描述

配置命令

AR3

[Huawei]ospf 1 router-id  3.3.3.3
[Huawei-ospf-1]area 1
[Huawei-ospf-1-area-0.0.0.1]network  192.168.1.0 0.0.0.255

AR1

	
[Huawei]ospf 1 router-id  1.1.1.1	
[Huawei-ospf-1]area 1
[Huawei-ospf-1-area-0.0.0.1]network 192.168.1.0 0.0.0.255
[Huawei-ospf-1]area 0
[Huawei-ospf-1-area-0.0.0.0]network 192.168.2.0 0.0.0.255

[R1]display ospf peer 查看詳細鄰居關系

在這里插入圖片描述

[R1]display ospf lsdb 查看數據庫表的目錄
在這里插入圖片描述
[R1]display ospf lsdb router 2.2.2.2
在這里插入圖片描述
display ip routing-table protocol ospf 查看由OSPF生成的路由表

在這里插入圖片描述

AR2

	
[Huawei]ospf 1 router-id  2.2.2.2[Huawei-ospf-1]area 0[Huawei-ospf-1-area-0.0.0.0]network  192.168.2.0 0.0.0.255[Huawei-ospf-1]area 2[Huawei-ospf-1-area-0.0.0.2]network  192.168.3.0 0.0.0.255

AR4

	
[Huawei]ospf 1 router-id  4.4.4.4[Huawei-ospf-1-area-0.0.0.2]network  192.168.3.0 0.0.0.255

七、拓展配置

選舉DR/BDR時修改接口優先級

[R1-GigabitEthernet0/0/0]ospf dr-priority 3 更改參選接口的優先級為3<R1>reset ospf process  重啟ospf進程

在鄰居間接口上做認證

[R1-GigabitEthernet0/0/0]ospf authentication-mode md5 1 cipher 123456  

手工匯總

在ABR(域間路由器)上將A區域的路由共享到B區域時,方可進行手工匯總的配置。

[R2-ospf-1-area-0.0.0.0]abr-summary 1.0.0.0 255.0.0.0  

沉默接口

沉默接口—僅接收不發送路由協議信息,只能用于連接用戶PC的接口去使用。

[R1-ospf-1]silent-interface g 0/0/1 設置沉默接口

加快收斂

鄰居間直連接口的hello time 和dead time 時間若不一致 將不能建立鄰居關系 ;同時修改時也不建議修改的過小 / 不建議修改時間

[R1-GigabitEthernet0/0/0]ospf timer hello 10 
修改hello  time 時間為10s
[R1-GigabitEthernet0/0/0]ospf timer dead 40
修改 dead time 時間為40s 

缺省路由

在連接外網的邊界路由器上,配置一條缺省路由信息后,該設備將向內網發送信息,是的內部所有ospf設備,生成缺省路由,下一跳全部指向邊界路由起方向,但是邊界路由器通往外網的路由條目仍需網絡管理員手工邊寫。

[R3-ospf-1]default-route-advertise always 

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

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

相關文章

全面擁抱vue3

Vue 3 性能全面解析&#xff1a;為何性能飛躍提升 Vue 3 在性能方面實現了質的飛躍&#xff0c;相比 Vue 2 在多個維度都有顯著提升。以下是 Vue 3 性能優化的全面解析&#xff1a; 一、核心架構優化 1. 響應式系統重寫&#xff08;Proxy 替代 defineProperty&#xff09; …

C#最佳實踐:考慮為類重寫ToString()方法

C#最佳實踐:考慮為類重寫ToString()方法 在 C# 編程的日常開發中,ToString()方法是一個既基礎又容易被忽視的重要成員。它是System.Object類的虛方法,所有類都繼承自System.Object,這意味著每個類都擁有ToString()方法。然而,默認的ToString()方法往往無法滿足實際需求,…

從0開始學習計算機視覺--Day05--優化

除了得到最小的W之外&#xff0c;如何節省這個探索最優W的過程&#xff0c;也是很重要的一點。假如把這個過程比作從山上的頂點開始下山&#xff0c;把圖中必定游玩的經典比作最優權重&#xff0c;那么節省的過程&#xff0c;就是找到下山的最短路徑的過程。而在下山的過程中&a…

OpenCV計算機視覺實戰(14)——直方圖均衡化

OpenCV計算機視覺實戰&#xff08;14&#xff09;——直方圖均衡化 0. 前言1. CLAHE 自適應均衡1.1 應用場景1.2 實現過程 2. 直方圖反向投影2.1 應用場景2.2 實現過程 3. 基于顏色的目標追蹤小結系列鏈接 0. 前言 在圖像處理與計算機視覺領域&#xff0c;直方圖技術是最直觀且…

基于uniapp的老年皮膚健康管理微信小程序平臺(源碼+論文+部署+安裝+售后)

感興趣的可以先收藏起來&#xff0c;還有大家在畢設選題&#xff0c;項目以及論文編寫等相關問題都可以給我留言咨詢&#xff0c;我會一一回復&#xff0c;希望幫助更多的人。 系統背景 近年來&#xff0c;我國人口老齡化進程不斷加快&#xff0c;據國家統計局數據顯示&#…

MySQL(106)如何設計分片鍵?

設計分片鍵&#xff08;Sharding Key&#xff09;是數據庫分片的核心&#xff0c;它決定了將數據分配到不同分片的方式。一個好的分片鍵應該能夠均衡地分布數據&#xff0c;避免熱點問題&#xff0c;提高查詢性能。下面將詳細介紹如何設計分片鍵&#xff0c;并結合代碼進行說明…

汽車一鍵啟動升級手機控車

汽車一鍵啟動升級手機控車實現手機遠程啟動&#xff0c;不改變原車任何功能且全部免接線。升級后原車遙控器能在有效范圍內啟動車輛。移動管家手機控車一鍵啟動系統用手機遠程控制&#xff0c;完美兼容原車遙控器。支持長安、別克、寶馬、奧迪等眾多系列車型&#xff0c;市場99…

【開源項目】「安卓原生3D開源渲染引擎」:Sceneform?EQR

「安卓原生3D開源渲染引擎」&#xff1a;Sceneform?EQR 渲染引擎 “那一夜凌晨3點&#xff0c;第一次提交 PR 的手在抖……”——我深刻體會這種忐忑與激動。 倉庫地址&#xff1a;(https://github.com/eqgis/Sceneform-EQR)。 一、前言&#xff1a;開源對我意味著什么 DIY 的…

建造者模式 - Flutter中的樂高大師,優雅組裝復雜UI組件!

痛點場景&#xff1a;復雜的對話框配置 假設你需要創建一個多功能對話框&#xff1a; CustomDialog(title: 警告,content: 確定要刪除嗎&#xff1f;,titleStyle: TextStyle(fontSize: 20, color: Colors.red),contentStyle: TextStyle(fontSize: 16),backgroundColor: Color…

基于Java+Spring Boot的大學校園生活信息平臺

源碼編號&#xff1a;S559 源碼名稱&#xff1a;基于Spring Boot的大學校園生活信息平臺 用戶類型&#xff1a;雙角色&#xff0c;用戶、管理員 數據庫表數量&#xff1a;17 張表 主要技術&#xff1a;Java、Vue、ElementUl 、SpringBoot、Maven 運行環境&#xff1a;Wind…

C# .NET Framework 中的高效 MQTT 消息傳遞

介紹&#xff1a; 在當今互聯互通的世界里&#xff0c;設備之間高效可靠的通信至關重要。MQTT&#xff08;消息隊列遙測傳輸&#xff09;就是為此而設計的輕量級消息傳遞協議。本文將探討 MQTT 是什么、它的優勢以及如何在 .NET 框架中設置和實現它。最后&#xff0c;您將對 M…

nn.Embedding 和 word2vec 的區別

理解它們的關鍵在于??區分概念層級和職責??。 可以將它們類比為&#xff1a; ??word2vec&#xff1a;?? 一個??專門制作高質量詞向量模型的“工廠”??。??nn.Embedding&#xff1a;?? 一個??可存儲、查找并訓練詞向量的“智能儲物柜”??&#xff08;作為…

華為云Flexus+DeepSeek征文|??華為云ModelArts Studio大模型 + WPS:AI智能PPT生成解決方案?

引言&#xff1a;告別繁瑣PPT制作&#xff0c;AI賦能高效辦公 ?? 在商業匯報、學術研究、產品發布等場景中&#xff0c;制作專業PPT往往需要耗費大量時間進行內容整理、邏輯梳理和視覺美化。??華為云ModelArts Studio大模型??與??WPS??深度結合&#xff0c;推出AI-P…

【連接redis超時】

報錯 客戶端輸出緩沖區超限 Client … scheduled to be closed ASAP for overcoming of output buffer limits 表示這些客戶端&#xff08;通過 psubscribe 命令進行發布訂閱操作&#xff09;的輸出緩沖區超過了 Redis 配置的限制&#xff0c;Redis 會關閉這些客戶端連接來避免…

PHP「Not enough Memory」實戰排錯筆記

目錄 PHP「Not enough Memory」實戰排錯筆記 1. 背景 2. 快速定位 3. 為什么 5 MB 的圖片能耗盡 128 MB&#xff1f; 3.1 粗略估算公式&#xff08;GD&#xff09; 4. 實際峰值監控 5. 解決過程 6. 最佳實踐與防御措施 7. 總結 PHP「Not enough Memory」實戰排錯筆記 —…

Java垃圾回收機制和三色標記算法

一、對象內存回收 對于對象回收&#xff0c;需要先判斷垃圾對象&#xff0c;然后收集垃圾。 收集垃圾采用垃圾收集算法和垃圾收集器。 判斷垃圾對象&#xff0c;通常采用可達性分析算法。 引用計數法 每個對象設置一個引用計數器。每被引用一次&#xff0c;計數器就加1&am…

基于python網絡數據挖掘的二手房推薦系統

基于網絡數據挖掘的二手房推薦系統設計與實現 【摘要】 隨著互聯網技術在房地產行業的深入應用&#xff0c;線上房源信息呈爆炸式增長&#xff0c;給購房者帶來了信息過載的挑戰。為了提升二手房篩選的效率與精準度&#xff0c;本文設計并實現了一個基于網絡數據挖掘的二手房推…

Java + 阿里云 Gmsse 實現 SSL 國密通信

前言 解決接口或頁面僅密信瀏覽器&#xff08;或 360 國密瀏覽器&#xff09;能訪問的問題 測試頁面 測試網站-中國銀行&#xff1a;https://ebssec.boc.cn/boc15/help.html 使用其他瀏覽器&#xff08;google&#xff0c;edge等&#xff09;打開 使用密信瀏覽器打開 解決…

國產數據庫分類總結

文章目錄 一、華為系數據庫1. 華為 GaussDB 二、阿里系數據庫1. 阿里云 OceanBase2. PolarDB&#xff08;阿里云自研&#xff09; 三、騰訊系數據庫1. TDSQL&#xff08;騰訊云&#xff09;2. TBase&#xff08;PostgreSQL增強版&#xff09; 四、傳統國產數據庫1. 達夢數據庫&…

解密閉包:函數如何記住外部變量

&#x1f9e0; 什么是閉包&#xff1f; 閉包是一個函數對象&#xff0c;它不僅記住它的代碼邏輯&#xff0c;還記住了定義它時的自由變量&#xff08;即非全局也非局部&#xff0c;但被內部函數引用的變量&#xff09;。即使外部函數已經執行完畢&#xff0c;這些自由變量的值…