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