HCIA筆記7--OSPF協議入門

文章目錄

      • 0. 路由分類
      • 1. OSPF介紹
        • 1.1 概念
        • 1.2 報文類型
      • 2. 鄰接關系的建立
        • 2.1 鄰居關系的建立
        • 2.2 鄰接關系的形成
        • 2.3 ospf狀態機
      • 3. DR與BDR
        • 3.1 為什么要有DR和BDR?
        • 3.2 DR和BDR的選舉原則
      • 4. ospf的配置
        • 4.1 內部優先級
      • 5. 問題
        • 5.1 三層環路如何解決?
      • Ref

0. 路由分類

  1. 直連路由
  2. 靜態路由:需要管理員手動配置的路由
  3. 動態路由
    • IGP(internal Gateway Protocol)內部網關協議,運行在AS內部;主要協議有:RIP、OSPF、ISIS、EIGRP(思科)
    • EGP(External Gateway Protocol)外部網關協議,運行在AS之間

1. OSPF介紹

OSPF: Open Shortest Path First 開放最短路徑優先

1.1 概念

LSA: Link State Advertcment; 鏈路狀態通告,主要包含了網段信息。
LSDB:Link State DataBase, ospf路由器中來存儲鏈路狀態信息的數據庫。
RID: router ID, 在ospf網絡中唯一標識一臺路由器。

主要工作流程:
在這里插入圖片描述
ospf路由器通過將LSA信息泛洪,獲得整個ospf網絡的鏈路狀態信息,進而形成各自的LSDB。根據形成了的LSDB,使用SPF算法生成一顆最短路徑樹;最終通過路由計算,比較路由表中的表項,添加到路由表中。

1.2 報文類型
  1. hello報文
  2. DD(Database Description)報文
  3. LSR(Link State Request)報文
  4. LSU(Link State Update)報文
  5. LSACK(Link State Acknowledgment)報文

2. 鄰接關系的建立

在ospf網絡中,兩個路由器間要完成LSA信息的交互,首先就要先進行鄰接關系的建立。

鄰接關系的建立分為兩個階段:

  1. 鄰居關系的建立
  2. 鄰接關系的形成
2.1 鄰居關系的建立

在這里插入圖片描述

鄰居關系的建立是通過hello 報文完成的。

  1. 路由器A向路由器B發送Hello報文,報文中表明自己并沒有發現B。
  2. 路由器B收到報文后意識到鄰居A的存在,在發往路由器A的報文中聲明這一點。路由器B的狀態由Down變為Init。
  3. 路由器A收到路由器B的報文,自己意識到了鄰居的存在。在B發來的報文中B意識到A的存在。A直接進入2-way狀態。但A需要再發一個Hello報文, 在報文中聲明自己知道了B鄰居的存在。
  4. 路由器B收到報文,知道路由器A了解到自己的存在。路由器B進入2-way狀態。

Hello報文除了負責鄰居關系的建立,還負責維護鄰居關系(保活)。
Hello報文10s發送一次(Hello Time), 如果在40s內沒有收到對端的Hello報文,則認為鄰居關系失效,變為Down狀態。

2.2 鄰接關系的形成

鄰接關系的形成分為兩個階段,第一階段主要是獲取LSDB的目錄,相互之間了解缺少對方的哪部分報文;第二階段進行真正的LSA鏈路數據表項之間的請求交換。

第一階段開始,會發送兩個空的DD報文進行主從選舉,RID大的成為主路由器。選舉完成之后,開始交互真正的DD報文,真正報文在交互過程中,從路由器的DD報文序列號使用主路由器發過來的序列號,主路由器的DD報文序列號使用從路由器的序列號加一。這樣一種確認的機制叫作隱式確認,它保證了DD報文之間交互的可靠性。
在這里插入圖片描述
第二階段就是真正的鏈路信息交換了,這里用到的是顯示確認機制。

從路由器向主路由器發送LSR(鏈路信息請求)報文,主路由器發送帶有鏈路信息LSU(鏈路信息更新)報文給從路由器;最后從路由器收到LSU后再發給主路由器對于這一條鏈路信息的確認LSACK報文。

不斷重復上面的過程,直到從路由器跟主路由器的LSDB同步了。

在這里插入圖片描述

2.3 ospf狀態機

在這里插入圖片描述

3. DR與BDR

DR(Designated Router): 指定路由器
BDR(Backup Designated Router): 備份指定路由器
DR other: 非DR各BDR的其他路由器

3.1 為什么要有DR和BDR?

對于沒有DR和BDR的網絡中,要知道整個網絡的鏈路信息,兩兩路由器之間就需要形成鄰接關系。

如果網絡中有n臺路由器,在沒有DR和BDR的網絡中, 則需要建立n(n-1)/2對鄰接關系;而如果是在DR和BDR的網絡中,其他路由器只需要各DR和BDR之間建立鄰接關系,只需要建立2n-3對鄰接關系即可。

而建立鄰接關系的第二階段會進行LSDB的交換,這部分報文比較大會浪費鏈路帶寬;因此對DR other 之間的路由器只需建立鄰居關系而不交換路由信息,因此可以大大節省鏈路帶寬。
在這里插入圖片描述

3.2 DR和BDR的選舉原則

如果DR由于某種故障而失效,則網絡中的路由器必須重新選舉DR,并與新的DR同步。這需要較長的時間,在這段時間內,路由的計算有可能是不正確的。

為了能夠縮短這個過程,OSPF提出了BDR(Backup Designated Router)的概念。BDR是對DR的一個備份,在選舉DR的同時也選舉出BDR,BDR也和本網段內的所有路由器建立鄰接關系并交換路由信息。當DR失效后,BDR會立即成為DR。由于不需要重新選舉,并且鄰接關系已建立,所以這個過程非常短暫,這時還需要再重新選舉出一個新的BDR,雖然一樣需要較長的時間,但并不會影響路由的計算。

DR和BDR的選舉原則:

  1. 首先比較優先級,優先級范圍0~255, 優先級數值越大越優先。
  2. 如果優先級相同,則比較RID, RID越大越優先。
  3. 如果網絡中新增一臺優先級更高的路由器,其不會被選為新的DR路由器, DR不能被搶奪,我們稱之為DR的穩定性原則。
  4. 如果一臺DR故障,則BDR直接成為新的DR, 然后在DR other中再選舉一個新的BDR。
  5. 如果一臺路由器的優先級為0,則路由器不具備選舉權,它一定是DR other路由器。
  6. DR和BDR基于接口選舉,基于網段選舉。

4. ospf的配置

在這里插入圖片描述

ospf進程號,這里只使用進程1

ospf 1 route-id 1.1.1.1

ospf是分區域的,區域0是核心區域。

area 0

直連網段宣告

network 10.1.12.0 0.0.0.255
network 192.168.1.0 0.0.0.255

ospf在接口宣告了網段信息后就會向相應的直連網段發送Hello報文,開始鄰居關系的建立。

精確宣告

network 10.1.12.2 0.0.0.0

還可以在接口下進行宣告

ospf enable area 1

查看ospf鄰居信息

display ospf peer brief

查看ospf接口信息

display ospf interface g0/0/1

ospf的hello時間是能改的, 但一般不改。兩臺路由器之間hello時間不同無法建立鄰居關系。

ospf timer hello

修改優先級

ospf dr-priority 0
4.1 內部優先級

如上面的圖所示,如果路由器AR1與AR2之間有兩條路由;一條是ospf的路徑(10.1.12.0/24),另外一條是靜態路由(10.1.21.0/24)。

如果我們將靜態路由的優先級設置為10,也就是與ospf的默認優先級一致。我們會發現最終路由表上的是ospf的這條路徑。

這是因為路由器在比較完前綴和外部優先級后,繼續比較內部優先級,

這所謂的內部優先級其實就是協認的默認優先級的大小。

ospf的默認優先值為10,靜態路由的默認優先值為60,因此ospf更優先,因此加入路由表的是ospf的路徑。

更加具體的在前面的路由器工作原理那里有提及,在這里實際解釋內外優先級。內部優先級就是協議默認優先級,外部優先級就是可以配置的優先級。
在這里插入圖片描述
在這里插入圖片描述

5. 問題

5.1 三層環路如何解決?
  1. IP報文中有TTL字段,每次經過一個路由器都會減去一;TTL值為0的時候,路由器就會丟棄該包
  2. 路由協議設計也會防止環路的產生。比如ospf會通過SPF算出到目標網段的路徑,另一方面ospf有區域劃分,非核心區域之間不直接相連也能阻止環的產生。

Ref

huawei-support

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

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

相關文章

C05S06-Nginx的內置變量和代理

一、常見內置變量 內置變量說明$uri請求的URL,不包括主機和參數$request_uri請求的URL,包括主機和參數$host請求的主機名$http_user_agent客戶端信息,瀏覽器和操作系統$remote_addr客戶端IP地址$remote_port客戶端端口$server_addr服務端IP地…

mysql排序問題

mysql 建數據庫時,需要指定 字符集 和 排序規則 建表時,也可以指定 也可以指定具體的字段 安照下面的sql順序執行插入,它們的排序是什么樣的? INSERT into test_sort (uid,create_time) VALUE (d,now()) INSERT into test_sort (u…

JAVA 圖形界面編程 AWT篇(1)

前言 為了應對JAVA課設,小編走上了java的圖形界面編程的道路,通過博客分享自己的學習歷程,并進行筆記的記錄。 AWT(Abstract Window Toolkit)介紹 AWT(抽象窗口工具包)是 Java 最早的圖形用戶界…

vulhub復現CVE-2021-44228log4j漏洞

目錄 一:漏洞概述 二:漏洞原理 三:漏洞利用 lookup功能: JNDI解析器: ldap服務: RMI: 四:漏洞復現 4.1靶場 4.2dnslog測試 4.3部署jndi-injection-exploit 4.4打開監聽端口 4.5觸發請…

ip地址獲取失敗啥意思?ip地址獲取失敗怎么回事

在日常的網絡使用中,我們時常依賴于穩定的IP地址來確保數據的順暢傳輸和設備的正常識別。然而,有時我們會遇到“IP地址獲取失敗”的困擾,這不僅阻礙了我們的網絡訪問,還可能帶來一系列的網絡連接問題。那么,IP地址獲取…

如何在 Android 項目中實現跨庫傳值

背景介紹 在一個復雜的 Android 項目中,我們通常會有多個庫(lib),而主應用程序(app)依賴所有這些庫。目前遇到的問題是,在這些庫中,libAd 需要獲取 libVip 的 VIP 等級狀態&#xf…

非常規使用client-go踩坑記

0x01 背景 編程者總有想偷懶的傾向。至少我的初衷時,盡量復用現有的代碼。但有時也會變得弄巧成拙。 這不,最近需要在一個Go服務里添加一個CRD的緩存等待。熟悉k8s的同學都知道,向 kube-apiserver 提交一個更新,到同一個進程中的…

OpenGL ES詳解——多個紋理實現混疊顯示

目錄 一、獲取圖片紋理數據 二、著色器編寫 1. 頂點著色器 2. 片元著色器 三、綁定和繪制紋理 1. 綁定紋理 2. 繪制紋理 四、源碼下載 一、獲取圖片紋理數據 獲取圖片紋理數據代碼如下: //獲取圖片1紋理數據 mTextureId loadTexture(mContext, R.mipmap.…

java引用相關(四大引用類型,軟引用避免oom,弱引用表,虛引用和引用隊列,可達性分析算法)

1. 什么是引用? 問題:什么是引用?Java中的引用是如何工作的? 答案: 引用 是對象的句柄,用于訪問堆內存中的對象。在Java中,引用變量實際上存儲的是對象的地址,而不是對象本身。通…

十一、容器化 vs 虛擬化-Docker

文章目錄 前言一、Docker 介紹1. 簡介2. 應用場景3. 特點4. Docker和虛擬機之間的區別5. 解決痛點1. 解決依賴兼容2. 解決操作系統環境差異3. 小結 二、Docker 架構三、工作流程五、Docker 核心組件及其工作機制1. Docker 客戶端(Docker Client)2. Docke…

linux學習筆記01 基礎命令

目錄 創建 touch 創建文件 (創建但是不打開) vi / vim 創建文件 (創建一個文件并打開) mkdir 創建文件夾 切換目錄 cd 查看 pwd 查看當前目錄完整路徑 ls 查看目錄信息 dir 查看目錄信息 ll 表示查看目標目錄下的信息 ls -a 查看當前目錄下的…

【深度學習】深刻理解多模態模型CLIP

CLIP(Contrastive Language-Image Pretraining) 是由 OpenAI 提出的一個多模態模型,旨在學習視覺和語言的聯合表示,能夠通過圖像和文本之間的對比學習來實現圖像和文本之間的緊密聯系。CLIP 模型可以通過自然語言描述理解和處理圖…

android 聊天界面鍵盤、表情切換絲滑

1、我們在聊天頁面時候,往往會遇到,鍵盤、表情、其他選擇切換時候頁面會出現掉下來再彈起問題,這是因為,我們切換時候,鍵盤異步導致內容View高度變化,頁面掉下來后,又被其他內容頂起這種很差視覺…

Nginx 緩存系統 proxy_cache詳解

系列文章目錄 提示:這里可以添加系列文章的所有文章的目錄,目錄需要自己手動添加 例如:第一章 Python 機器學習入門之pandas的使用 提示:寫完文章后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目…

mysql時間戳格式化yyyy-mm-dd

格式化到 年月日 # 將時間換成列名就行;當前是秒級時間戳,如果是毫秒的 / 1000即可 # SELECT FROM_UNIXTIME(1602668106666.777888999 / 1000,%Y-%m-%d) AS a; # SELECT FROM_UNIXTIME(列名 / 1000,%Y-%m-%d) AS a; SELECT FROM_UNIXTIME(1602668106.666…

PDFMathTranslate,PDF多語言翻譯,批量處理,學術論文,雙語對照(WIN/MAC)

分享一個非常實用的PDF文檔翻譯項目——PDFMathTranslate。作為一個經常逛GitHub的開發者,我總喜歡翻看各種項目附帶的論文,雖然大多時候是瞎研究,但卻樂在其中。該項目能夠完美保留公式、圖表、目錄和注釋,對于需要閱讀外文文獻的…

網絡藥理學:(待更)Alphafold3和批量分子動力學模擬(Desmond、AutoMD)

批量動力學模擬 注意全都需要在類linux平臺上進行 安裝Desmond模塊: https://github.com/Wang-Lin-boop/Schrodinger-Script 安裝AutoMD模塊: Wang-Lin-boop/CADD-Scripts: Scripts for virtual screening, cross docking and protein relax using Sc…

爬蟲基礎之代理的基本原理

在做爬蟲的過程中經常會遇到一種情況,就是爬蟲最初是正常運行、正常抓取數據的,一切看起來都是那么美好,然而一杯茶的工夫就出現了錯誤,例如 403 Forbidden,這時打開網頁一看,可能會看到“您的IP訪問頻率太…

第十七屆山東省職業院校技能大賽 中職組“網絡安全”賽項資源任務書樣題③

第十七屆山東省職業院校技能大賽 中職組“網絡安全”賽項資源任務書樣題③ 模塊A 基礎設施設置與安全加固(200分)A-1 登錄安全加固(Windows, Linux)A-2 Nginx安全策略(Linux)A-3日志監控(Windows)A-4中間件…

鯤鵬麒麟安裝Kafka-v1.1.1

因項目需要在鯤鵬麒麟服務器上安裝Kafka v1.1.1,因此這里將安裝配置過程記錄下來。 環境說明 # 查看系統相關詳細信息 [roottest kafka_2.12-1.1.1]# uname -a Linux test.novalocal 4.19.148 #1 SMP Mon Oct 5 22:04:46 EDT 2020 aarch64 aarch64 aarch64 GNU/Li…