OSPF-5種報文、3個階段、3張表

在理解OSPF各種報文之前,需先清楚OSPF協議,通過下面圖例幫助理解(口訣:5種報文、3個階段、3張表)
OSPF協商過程1
(Notice:OSPF報文頭部24字節)
1、3個階段
鄰居發現階段:
    直連路由器形成鄰居關係,在broadcast和NBMA中還要選舉DR/BDR
1
路由發現階段:
      同一個區域內所有路由器LSDB同步
2
路由選擇階段:
    LSDB同步後,進行路由計算,最佳路由信息進路由表。
3
2、3張表
鄰居表(neighbor table):
      OSPF用鄰居機制來發現和維持路由的存在,鄰居表存儲了雙向通信的OSPF路由器列表。
4
拓撲表  LSDB:
      OSPF用LSA(link state Advertisement 鏈路狀態通告)來描述網絡拓撲信息, LSA存儲在LSDB中。
5
全局路由表
      路由器的全局路由表,用於數據包轉發;OSPF把計算出來的路由,安裝到全局路由表。
6
3、5種報文(Notice:每種報文都包括24字節的OSPF報文頭部)
(1)Hello:建立和維護OSPF鄰居關係。
8
9
OSPF報文頭部分解介紹:
Version(8bit):OSPF報文的版本,最新版本是版本2
Message Type(8bit):報文的類型;1是Hello,2是DBD,3是LSR,4是LSU,5是LSAck
Packet Length(16bit):整個OSPF報文的長度(24字節頭部+各類報文的長度)
Source OSPF Router(32bit):路由器的RID
Area ID(32bit):區域ID
Packet Checksum(16bit):整個報文的校驗
Auth Type(16bit):認證類型;0表示沒有認證,1表示簡單的口令認證,2表示MD5認證
Auth Data(64bit):認證字段
Hello報文分解介紹:
Network Mask(32bit):網絡掩碼;如果這個掩碼與接收該報文接口的掩碼不一致,那麼該報文將被丟棄,無法建立鄰居關係
Hello Interval(16bit):發送Hello報文的間隔時間,默認爲10s,廣播或NMBA默認爲30s,如果與接收該報文接口的Hello Interval時間不一致,同樣無法建立鄰居關係
Options(8bit):可選項;DC位表示是否具有支持按需電路上的OSPF能力,1支持,0不支持;NP位表示對NSSA的支持,1爲NSSA區域,0爲普通區域;MC位表示對IP組播的支持,E位表示對外部路由的支持能力,1支持,0不支持(Stub區域爲0)
Router Priority(8bit):路由器優先級;用作DR與BDR的選舉,默認爲1,當爲0時,說明不具備選舉能力
Router Dead Interval(32bit):宣告鄰居無效之前需要等待的時間,通常爲4倍的Hello Interval,默認爲40s,廣播或NMBA默認爲120s,如果雙方不一致,無法建立鄰居關係
Designated Router(32bit):網絡中指定路由器的接口的IP地址(Notice:並不是指定路由器的RID,而且並不一定是最後選舉出來的DR,如果不存在,則被置爲0.0.0.0
Backup Designated Router(32bit):網絡中備用指定路由器的接口的IP地址,(Notice:並不是備用指定路由器的RID,而且並不一定是最後選舉出來的BDR,如果不存在,則被置爲0.0.0.0
Active Neighbor:有效的鄰居列表
(2)DBD:鏈路狀態數據庫描述信息(描述LSDB中LSA頭部列表),OSPF鄰居第一次建立時才交換DBD,LSR。
1
(Notice:選舉Master/Slave的報文不包含LSA頭部)
7
DBD報文分解介紹:
MTU(16bit):在不分段的情況下,始發接口可接收的最大IP包大小。當報文在虛鏈路上傳遞時,這個字段是0x0000
Options(8bit):可選項。在Hello報文中已做過介紹
DB Description(8bit):前5位總是被置0,I位爲1時,表示是第一個報文,爲0時,表示不是第一個報文;M位爲1時,表示不是最後一個報文,爲0時表示是最後一個報文;MS 爲1時,表示爲主路由器,爲0時表示爲從路由器。口訣:初始情況下,器由器發送的是I、M、MS都爲1的報文,表示這是第一個報文,不是最後一報文,且認爲自己是主路由器。
DD Sequence(32bit):DD報文序列號,由主路由器進行確定,後續報文依次增加。
(LSA頭部在以後文章中介紹)
(3)LSR:鏈路狀態請求。向OSPF鄰居請求特定的LSA。
3
1
(Notice:Link-State Advertisement Type、Link-State ID、Advertising Router三個參數唯一確定的是一個LSA,而不是唯一確定一條路由。request報文請求的是LSA,並不是某條特定的路由,比如LSA-1,我們會發現,對於在路由器上network通告的路由,對端路由器只會發送一個request請求報文,來請求對端network所有通告的路由。)
Link-State Advertisement Type(32bit):鏈路狀態類型號,主要有LSA-1(路由鏈路通告),LSA-2(網絡鏈路通告),LSA-3(ABR彙總鏈路通告),LSA-4(ASBR彙總鏈路通告),LSA-5(自治系統擴展路由通告),LSA-7(非完全端區NSSA擴展)
Link-State ID(32bit):鏈路狀態ID,每種類型的LSA定義各不相同
Advertising Router(32bit):始發LSA通行路由器的RID
2 
(4)LSU:鏈路狀態更新(包含一條或多條LSA)。
4
6
Number Of LSAs:LSA的數量,一個更新報文可以攜帶多個LSA
(Notice:下面就是具體的LSA,將在以後的文章中介紹)
(5)LSAck:對LSU中的LSA進行確認。
5
8
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章