[Cloud Networking] OSPF

OSPF 開放式最短路徑優先(Open Shortest Path First)是一種動態路由協議,它屬于鏈路狀態路由協議,具有路由變化收斂速度快、無路由環路、支持變長子網掩碼和匯總、層次區域劃分等優點。

1 OSPF Area

為了適應大型網絡,OSPF在AS內劃分了多個Area,每個OSPF路由器值維護所在區域的完整鏈路狀態信息。劃分區域時,會創建一個稱為Area 0的中心區域,其他區域始終與Area 0相連。

路由器分類說明
區域內路由器IR所連接的網絡屬于同一個區域,IR只運行一個OSPF協議實例。
主干路由器BBR主干區域中的路由器
區域之間的路由器 ABR(匯聚IP)連接到多個AS,且必須連到主干區域,為每個鏈接Area分別運行一個OSPF協議實例
AS邊界路由器 ASBR與其他AS交換路由信息

在這里插入圖片描述
虛擬鏈路

  • 主干區域必須是聯通的,所有區域邊界路由器ABR都能通過主干區域到達其他區域邊界路由器
  • 如果不滿足上面的條件,主干區域可以配置虛擬鏈路(virtual link)使其變成聯通的

下圖中 R3 和 R4 在主干區域,但是需要通過Area3才能實現聯通。這時,可以在主干區域的R3、R4之間配置一條 virtual link,使得主干區域連續,實際上這條鏈路是通過N1中的物理連接來進行通信

在這里插入圖片描述

2 Route ID / DR / BDR

Router ID 路由器ID,32位無符號整數,默認用loopback接口中最大的IP作為 Router ID。

NameInfo
DRDesignated Router, 選舉Router ID最大的路由為DR
只有DR能代表該網絡發送網絡的鏈路狀態
BDRBackup Designated Router,選舉Router ID第二大的路由為 BDR
DR發生故障的時候,BDR變成DR
DROTHERNot DR nor BDR

在這里插入圖片描述

R1> show ip ospf neighbor
Neighbor ID     Pri   State       Dead Time   Address       Interface
192.168.123.2   1   FULL/BDR      00:00:32    192.168.123.2 FastEthernet0/0
192.168.123.3   1   FULL/DR       00:00:31    192.168.123.3 FastEthernet0/0R3> show ip ospf neighbor
Neighbor ID     Pri   State       Dead Time   Address         Interface
192.168.123.1   1   FULL/DROTHER  00:00:36    192.168.123.1 FastEthernet0/0
192.168.123.2   1   FULL/BDR      00:00:39    192.168.123.2 FastEthernet0/0R2> show ip ospf neighbor
Neighbor ID     Pri   State       Dead Time   Address         Interface
192.168.123.1   1   FULL/DROTHER  00:00:31    192.168.123.1 FastEthernet0/0
192.168.123.3   1   FULL/DR       00:00:32    192.168.123.3 FastEthernet0/0

3 LSA / OSPF 鄰居表 / LSDB / OSPF路由表

LSA (Link State Advertisement)鏈路狀態通告,用于描述鏈路狀態信息,路由器接口的狀態信息,例如接口開銷、連接的對象。

借用CSDN其他文章中的圖 原文鏈接
在這里插入圖片描述

  • 相鄰路由器之間周期性發送HELLO報文,以便建立和維護鄰居關系
  • 建立鄰居關系后,給鄰居路由器發送數據庫描述報文(DBD),也就是將自己鏈路狀態數據庫中的所有鏈路狀態項目的摘要信息發送給鄰居路由器
  • 收到數據庫描述報文后,若發現自己缺少其中某些鏈路狀態項目,則會發送鏈路狀態請求報文(LSR)。
  • 對方收到鏈路狀態請求報文后,則會將其所缺少的鏈路狀態項目的詳細信息封裝在鏈路狀態更新報文(LSU)中發送回去
  • 收到鏈路狀態更新報文后,將這些信息添加到自己的鏈路狀態數據庫中,隨后發回鏈路狀態確認報文(LSACK)

如上,OSPF在傳遞鏈路狀態信息之前,需要建立 OSPF鄰居關系 ,通過hello包文件里,OSPF鄰居表顯示了OSPF路由器之間的鄰居狀態,使用 display ospf peer 查看:

在這里插入圖片描述

R1 > display ospf peerOSPF Process 1 with Router ID 10.0.1.1Neighbors
Area 0.0.0.0 interface 10.0.12.1(G1/0/0)'s neighbors
Router ID:10.0.12.1 Address: 10.0.12.2 GR State: NormalState: Rull Mode:Nbr is Master Priority:1DR: 10.0.12.1 BDR:10.0.12.2 MTU:0...

LSDB(Link State DataBase, 鏈路狀態數據庫),用于描述AS內部的拓撲結構。

每個路由器負責發現、維護與鄰居的關系,并將已知的鄰居和鏈路費用 LSA報文 描述,通過可靠的泛洪與 AS 內的其他路由器周期性交互,每個 AS 內的路由器收到所有 LSA 并放入自己的 LSDB

每臺路由器基于 LSDB,使用 SPF(Shortest Path First,最短路徑優先) 算法進行計算,每臺路由器都計算出一棵以自己為根、無環的、擁有最短路徑的樹,這樣路由器就已經知道了到達所有網段的優選路徑。

邊界路由器可以通過距離矢量算法互相傳遞路由,從而實現整個網絡的互聯。

每隔一段時間或鏈路狀態發生變化時,重新生成LSA,路由器通過泛洪將LSA通告出去,實現路由實時更新。

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

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

相關文章

可編程定時計數器8253/8254 - 8253入門

時鐘-給設備打拍子 概述 在計算機系統中,為了使所有設備之間的通信井然有序,各通信設備間必須有統一的節奏,不能各干各的,這個節奏就被稱為定時或時鐘 時鐘并不是計算機處理速度的衡量,而是一種使設備間相互配合而避…

【2024-06-21】網易互娛秋招實習筆試三道編程題解

恭喜發現寶藏!搜索公眾號【TechGuide】回復公司名,解鎖更多新鮮好文和互聯網大廠的筆經面經。 作者@TechGuide【全網同名】 訂閱專欄: 【專享版】2024最新大廠筆試真題解析,錯過必后悔的寶藏資源! 第一題:陰陽師斗技 題目描述 小蓋正在參加陰陽師的斗技。已知斗技的規…

Linux 磁盤掛載與分區

Linux 磁盤掛載與分區 vda1: 其中vd表示虛擬磁盤,a表示第一塊磁盤,b表示第二塊磁盤,1表示第一塊磁盤的第一分區(顯然兩塊磁盤都只有一個分區)圖中可以看到,vda1磁盤只有一個分區,且全部掛載到根…

vue3使用vant4的列表vant-list點擊進入詳情自動滾動到對應位置,踩坑日記(一天半的踩坑經歷)

1.路由添加keepAlive <!-- Vue3緩存組件&#xff0c;寫法和Vue2不一樣--><router-view v-slot"{ Component }"><keep-alive><component :is"Component" v-if"$route.meta.keepAlive"/></keep-alive><component…

如何在MySQL中按字符串中的數字排序

在管理數據庫時&#xff0c;我們經常遇到需要按嵌入在字符串中的數字進行排序的情況。這在實際應用中尤為常見&#xff0c;比如文件名、代碼版本號等字段中通常包含數字&#xff0c;而這些數字往往是排序的關鍵。本文將詳細介紹如何在MySQL中利用正則表達式提取字符串中的數字并…

LiteDB - 一個單數據文件 .NET NoSQL 文檔存儲

LiteDB 一個小巧、快速、輕量級的 NoSQL 嵌入式數據庫。 Serverless NoSQL 文檔存儲類似于 MongoDB 的簡單 API100% C# 代碼,支持 .NET 3.5 / .NET 4.0 / NETStandard 1.3 / NETStandard 2.0,單 DLL (小于 300 kb)支持線程和進程安全支持文檔/操作級別的 ACID支持寫失敗后的數…

Google 發布最新開放大語言模型 Gemma 2,現已登陸 Hugging Face Hub

Google 發布了最新的開放大語言模型 Gemma 2&#xff0c;我們非常高興與 Google 合作&#xff0c;確保其在 Hugging Face 生態系統中的最佳集成。你可以在 Hub 上找到 4 個開源模型 (2 個基礎模型和 2 個微調模型) 。發布的功能和集成包括&#xff1a; Hub 上的模型https://hf.…

Java家教系統小程序APP公眾號h5源碼

讓學習更高效&#xff0c;更便捷 &#x1f31f; 引言&#xff1a;家教新選擇&#xff0c;小程序來助力 在快節奏的現代生活中&#xff0c;家長們越來越注重孩子的教育問題。然而&#xff0c;如何為孩子找到一位合適的家教老師&#xff0c;成為了許多家長頭疼的問題。現在&…

交叉編譯中的 --build、 --host和 --target

在交叉編譯中比較常見的一些參數就是build、host和target了,正確的理解這三者的含義對于交叉編譯是非常重要的,下面就此進行解釋   --build=編譯該軟件所使用的平臺   --host=該軟件將運行在哪個平臺   --target=該軟件所處理的目標平臺 我們經常會看到如下代碼:   …

谷歌個人號,20人連續封測14天所需設備該怎么解決?

現在&#xff0c;在Google Play上架應用&#xff0c;對于大部分開發者來說&#xff0c;真的是不小的挑戰&#xff0c;因為目前谷歌上架政策越來越嚴格了。特別是從2023年11月13日起&#xff0c;新政策要求個人開發者賬號的應用必須經過20個獨立用戶連續14天的封閉測試&#xff…

【C語言】--分支和循環(1)

&#x1f37f;個人主頁: 起名字真南 &#x1f9c7;個人專欄:【數據結構初階】 【C語言】 目錄 前言1 if 語句1.1 if1.2 else1.3 嵌套if1.4 懸空else 前言 C語言是結構化的程序設計語言&#xff0c;這里的結構指的是順序結構、選擇結構、循環結構。 我們可以用if、switch實現分支…

vue2實例實現一個初步的vuex

vue2實例實現一個初步的vuex 實現源碼&#xff1a;vue2-review 1.App.vue 2.store目錄下的index.js 3.效果 微信公眾號&#xff1a;刺頭拾年

MATLAB的.m文件與Python的.py文件:比較與互參

simulink MATLAB的.m文件與Python的.py文件&#xff1a;比較與互參相似之處**1. 基本結構****2. 執行邏輯****3. 可讀性和維護性** 差異性**1. 語法特性****2. 性能和應用****3. 開發環境** 互相學習的可能性結論 MATLAB的.m文件與Python的.py文件&#xff1a;比較與互參 在編…

擴展閱讀:什么是中斷

如果用一句話概括操作系統的原理,那就是:整個操作系統就是一個中斷驅動的死循環,用最簡單的代碼解釋如下: while(true){doNothing(); } 其他所有事情都是由操作系統提前注冊的中斷機制和其對應的中斷處理函數完成的。我們點擊一下鼠標,敲擊一下鍵盤,執行一個程序,…

重生之我要學后端100--計算機網絡部分概念(持續更新)

TCP/IP、DNS、負載均衡器等等 前言一、TCP/IP&#xff08;傳輸控制協議/互聯網協議&#xff09;二、DNS&#xff08;域名系統&#xff09;三、負載均衡器其他網絡概念 前言 了解網絡基礎知識對于后端開發者至關重要&#xff0c;因為這些知識有助于理解應用程序是如何在更廣闊的…

中英雙語介紹美國的州:麻省,馬塞諸塞州(Massachusetts)

中文版 馬薩諸塞州&#xff08;Massachusetts&#xff09;位于美國東北部的新英格蘭地區&#xff0c;是美國歷史最悠久、文化最豐富的州之一。以下是對馬薩諸塞州各方面的詳細介紹&#xff1a; 人口 截至2020年&#xff0c;美國人口普查數據顯示&#xff0c;馬薩諸塞州的人口…

C++ 之運算符

作用&#xff1a;用于執行代碼的運算 主要的運算符類型&#xff1a; 運算符類型作用算術運算符用于處理四則運算賦值運算符用于將表達式的值賦給變量比較運算符用于表達式的比較&#xff0c;并返回一個真值或假植邏輯運算符用于根據表達式的值返回真值或假植 1 算術運算符 …

Spring MVC中的DispatcherServlet、HandlerMapping和ViewResolver的作用

在Spring MVC框架中&#xff0c;DispatcherServlet、HandlerMapping和ViewResolver是核心組件&#xff0c;它們各自承擔著不同的角色和任務&#xff1a; 1.DispatcherServlet&#xff1a;它是Spring MVC生命周期中的前端控制器&#xff0c;負責接收HTTP請求并將它們分發給相應的…

5.x86游戲實戰-CE定位基地址

免責聲明&#xff1a;內容僅供學習參考&#xff0c;請合法利用知識&#xff0c;禁止進行違法犯罪活動&#xff01; 本次游戲沒法給 內容參考于&#xff1a;微塵網絡安全 上一個內容&#xff1a;4.x86游戲實戰-人物狀態標志位 上一個內容通過CE未知的初始值、未變動的數值、…

機器學習SVR 隨機森林 RBF神經網絡做回歸預測的MATLAB代碼

SVR 參考這篇文章 Libsvm使用筆記【matlab】 close all; clc clear %% 下載數據 load(p_train.mat); load(p_test.mat); load(t_train.mat); load(t_test.mat); %% 數據歸一化 %輸入樣本歸一化 [pn_train,ps1] mapminmax(p_train); pn_train pn_train; pn_test mapminma…