一、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算法,計算到達所有未知網段的最短路徑,然后將其加載到路由表內;
-
路由器
+關注
關注
22文章
3707瀏覽量
113539 -
數據庫
+關注
關注
7文章
3765瀏覽量
64276 -
OSPF
+關注
關注
0文章
80瀏覽量
14871 -
狀態機
+關注
關注
2文章
492瀏覽量
27478
原文標題:OSPF的五種報文和七種狀態機,這篇文章列舉的讓我有種收藏的沖動!
文章出處:【微信號:網絡技術干貨圈,微信公眾號:網絡技術干貨圈】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論