OSPF 路由協議詳解(一)

Joker_BLOG發表於2022-04-10

ospf 協議是網路層協議

此篇文章適合有一定網路基礎的人

ospf 協議最多應用在企業網路中,針對於運營商網路並不是特別的適用,埠號為 89 通過 IP 進行資料的轉發

ospf 基礎知識

  • ospf 的路由更新通過組播地址:224.0.0.5 / 224.0.0.6 進行更新

  • spf 演算法是 ospf 路由協議的基礎,spf 演算法有時也被稱為 Dijkstra (迪傑斯特拉)演算法

  • ospf 協議的普及率要比 is-is 協議的普及率高

  • ospf 協議的內部路由優先順序為 10 ,外部路由優先順序為 150 ,開銷值為 1

  • ospf 中修改頻寬的參考值命令:

    在這裡插入圖片描述

    ospf 的度量值計算:參考頻寬除以實際頻寬

  • Stub 網路沒有鄰居(末節網路),Transnet 網路有鄰居(記錄出去的開銷)

  • ospf 協議在域內是鏈路狀態協議,在域間是距離向量協議

    因為 ABR 會把一類和二類的 LSA 一同轉換為三類的 LSA 傳遞出去

  • ospf 的程式號只具有本地意義,如果只有一個區域,那麼任何區域都可以作為骨幹區域

路由協議通用小知識

  • ospf 可以直接配置負載均衡

    在這裡插入圖片描述

    配置通過多種路徑進行轉發報文

  • 不配置等價路由的情況下影響路由選路

    在這裡插入圖片描述

ospf 中的網路型別

在 ospf 協議中一共有四種網路型別:

  • 廣播網路(broadcast)

  • 點到點網路(P2P)

  • 點到多點網路型別(P2MP)

  • NBMA 網路

ospf 的工作流程

1、鄰居建立

  • DOWN 狀態習互相傳送 Hello 報文,雙方在接收到報文之後會進入 Init 狀態

  • Init 狀態習會傳送帶有鄰居 ID 的 hello 報文,對方會進入 2-way 狀態,之後鄰居也會向本裝置傳送同樣的帶有鄰居 ID 的 hello 報文----此狀態經歷完成之後,標誌著鄰居建立完成

  • 對於不支援組播網路的網路需要進行手動指定鄰居

  • ospf 支援手動指定鄰居,通過單播的方式

在這裡插入圖片描述

  • 幀中繼網路建立鄰居會進入 Attempt 狀態嘗試喚醒狀態

2、同步鏈路狀態資料庫

Exstart 狀態,傳送 DD 報文,確認主從

Exstart 狀態裡面有一些序列號:

  • x 為序列號
  • I 表示為第一個資料包
  • MS 確認是否為 Master (主從關係)
  • M 表示後面還有其他的資料包

主從關係的選舉是根據誰的 RID 大的為主,選舉主從是為了隱式確認(主從序列號)

當 ospf 開啟了 MTU 檢測之後,當 MTU 超過 1500 之後鄰居的狀態會卡在 Exstart 狀態

Exchange 狀態

Exchange 狀態,第一次傳送的 DD 裡面攜帶各自的序列號,選舉主從之後會響應主裝置的序列號,之後開始對比 LSDB 資料庫進行摘要資訊的互動,此狀態可以直接進入 Full 狀態

Loading 狀態

經過 exchange 狀態的對比,雙方都會知道自己缺少什麼資訊,在 Loading 狀態就會向對方請求回覆以及進行確認訊息

LSR -- 請求

LSU -- 回覆--最重要的 LSA 就存在於 LSU 報文中

LSACK -- 確認--當對方之後收到路由資訊之後會傳送一個確認收到的資訊

3、計算最優路由

執行 spf 演算法進行計算最短路徑樹

ospf 鄰居狀態機

  • Down:在此狀態下的路由器不會從鄰居收到任何的資訊。
  • Init:傳送 hello 報文,此狀態傳送的 hello 報文是單向的 hello 報文。
  • Attempt:此狀態只存在於 NBMA 環境中手動配置鄰居的情況(一般情況下見不到此狀態)。
  • 2-way:傳送 hello 報文,此狀態下鄰居雙發都傳送過彼此的 hello 報文,此狀態標誌著鄰居狀態建立成功。
  • Exstart:此狀態傳送的 DD 報文是一個假的 DD 報文,主要是用來選舉主從關係的報文。
  • Exchange:真的 DD 報文,傳送 DD 報文用於告訴對方自己簡要的 LSDB 摘要資訊。
  • Loading狀態:裡面包含 LSR、LSU、LSACK LSU(裡面包含的LSA),通過請求、傳送資訊和確認最後進入 Full 狀態進行計算最短路徑樹。
  • Full:開始計算到各個節點的路由--標誌著鄰接關係的建立成功。

作者:Joker

相關文章