OSPF-五種報文、七種狀態機及其工作過程

一、OSPF的五種報文

類型 報文名稱 報文描述
1 hello 發現、建立、週期保活鄰居、鄰接關係
2 DD(Database Description,數據庫描述) LSDB中LSA的頭部信息(並非完整的LSA信息),也就是本地的數據庫的目錄(摘要)
3 LSR(Link State Request,鏈路狀態請求) 基於對端發送的DD報文中的未知信息(未知的LSA)向OSPF鄰居進行查詢
4 LSU (Link State Update,鏈路狀態更新) 用於答覆對端的LSR,攜帶各種的LSA。
5 LSAck (Link State Acknowledgment,鏈路狀態確認) 對從LSU中獲取到的LSA進行確認

OSPF的報文頭部(24byte):

Hello報文:

在這裏插入圖片描述

DD報文:

在這裏插入圖片描述

LSR報文:

在這裏插入圖片描述

LSU報文:

在這裏插入圖片描述

LSAck報文:

在這裏插入圖片描述

二、OSPF的七種狀態機:

狀態機名稱 狀態機描述
Down(失效) 該狀態還沒有進行hello包的收發,一旦進行hello的收發,則進入下一狀態
Init(初始化) 接收到的hello包中並不存在本地的route-id,但是會將發送該hello包的鄰居置爲init狀態,此時雙方並沒有建立雙向通信,隨着雙方互相收發hello包,於是纔會進入下一狀態
2-way(雙向通信) 接收到的hello包中存在本地的route-id,則雙方就會進入2-way雙向通信狀態。該狀態也是OSPF最穩定的狀態之一,它標誌着鄰居關係的建立,同時也是鄰接關係建立的基礎
Exstart(預啓動) 使用類似hello的DD報文進行主從關係(Master/Slave)選舉,route-id數值大爲主,優先進入下一狀態。此時的DD報文是空的。
Exchange(準交換) 使用真正的DD報文進行數據庫目錄的共享
Loading (加載) 使用LSR、LSU、LSAck去獲取未知的LSA信息(LSDB同步)
Full(全毗鄰) 鄰接關係建立的標誌,此時不再進行LSDB的同步

三、OSPF的工作過程

224.0.0.5:指的是所有OSPF路由器所使用的組播地址;
224.0.0.6:指的是所有OSPF DR路由器所使用的組播地址。

(1)在啓動宣告配置之後,OSPF路由器會使用組播224.0.0.5進行OSPF hello包的收發;若接收到的hello包中存在本地的route-id,則建立鄰居關係,生成鄰居表

之後基於表中所有的鄰居進行條件的匹配,匹配失敗則將維持鄰居關係,僅hello包週期保活即可;

(2)匹配成功者之間可以建立鄰接關係;鄰居間使用DD數據包進行數據庫目錄的比對;之後使用LSR查詢目錄中未知的LSA信息,對端使用LSU來攜帶傳遞LSA,最終需要LSAck進行接收確認;

當本地收集到區域內所有設備的LSA信息後,生成LSDB—鏈路狀態數據庫表

(3)本地基於LSDB啓用SPF算法,計算到達所有未知網段的最短路徑,然後將其加載到路由表內;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章