「網絡」複習OSPF的Hello包

無需實驗拓撲,直接抓取OSPF Hello包分析:

「網絡」複習OSPF的Hello包

篩選OSPF包


先看IP包頭中一些需要注意的地方:

「網絡」複習OSPF的Hello包

IP包頭

Differentiated Services Field: 0xc0 (DSCP: CS6, ECN: Not-ECT):DSCP:CS6,該級別已經非常優先,因此在網絡發生擁塞時,OSPF協議本身會被優先轉發,不易丟棄。

Protocol: OSPF IGP (89):OSPF協議號是89

Source: 12.12.12.1:數據包的源地址(接口地址,不是Router-ID)。

Destination: 224.0.0.5:數據包的目的地址。這裡需要注意,在MA類型網絡中OSPF接口之間會選舉DR和BDR,其餘為DRother。DR和BDR偵聽224.0.0.5和224.0.0.6,DRother偵聽224.0.0.5。(所有OSPF路由器都能夠接收和傳遞目標地址為224.0.0.5的數據包,但只有DR和BDR能夠接收目標地址是224.0.0.6的數據包)

下面抓一個接口是DRother所發的包:(目標地址是224.0.0.6,只能被DR、BDR接收)

「網絡」複習OSPF的Hello包

DRother

「網絡」複習OSPF的Hello包

組播地址224.0.0.6


接下來看OSPF包頭部分:

「網絡」複習OSPF的Hello包

Header

Version: 2:目前普遍用的還是OSPF版本2(v3用在IPv6)。

Message Type: Hello Packet (1):表明是Hello包。

Packet Length: 44:包長度。

Source OSPF Router: 1.1.1.1:該Hello包是由Router-ID是1.1.1.1的路由器發出的。【特別注意】相鄰路由器如果Router-ID相同無法建立鄰居。

Area ID: 0.0.0.0 (Backbone):區域ID。【特別注意】區域ID不同無法建立鄰居。

Checksum: 0xd28f [correct]:校驗和。

Auth Type: Null (0):認證類型。【特別注意】認證類型不同無法建立鄰居。

Auth Data (none): 0000000000000000:認證密碼。【

特別注意】認證密碼不同無法建立鄰居。

補充說明,認證類型分為:

0:不認證、1:明文認證、2:MD5認證

抓個明文認證、密碼為ljds的Hello包:

「網絡」複習OSPF的Hello包

開啟明文認證的Hello包


上面還只是OSPF包頭中的信息,接下來才是真正的Hello包:

「網絡」複習OSPF的Hello包

Hello Packet

Network Mask: 255.255.255.0:接口掩碼。【特別注意】MA網絡中掩碼一致才能建立鄰居。P2P網絡可不一致。

Hello Interval [sec]: 10:Hello包間隔時間。【特別注意】Hello時間一致才能建立鄰居。

Options: 0x12, (L) LLS Data block, (E) External Routing

:可選項字段。這裡只簡單列舉2個:

.... 0... = (N) NSSA: Not supported:支持NSSA外部LSA時為1。

「網絡」複習OSPF的Hello包

NSSA配置

「網絡」複習OSPF的Hello包

NSSA抓包

.... ..1. = (E) External Routing: Capable:具備接受外部LSA時為1。stub區域該值為0。

「網絡」複習OSPF的Hello包

STUB配置

「網絡」複習OSPF的Hello包

STUB抓包

特別注意】以上2個bit位【N位、E位】如果不同,也無法建立鄰居。會報類似以下錯誤:

OSPF: Hello from 23.23.23.2 with mismatched NSSA option bit

OSPF: Hello from 23.23.23.2 with mismatched Stub/Transit area option bit

Router Priority: 1:用於選舉DR、BDR。為0時無法成為DR、BDR。

Router Dead Interval [sec]: 40:路由器失效時間。【特別注意】Dead時間一致才能建立鄰居。

Designated Router: 12.12.12.1:DR地址(接口地址)。

Backup Designated Router: 12.12.12.2:BDR地址(接口地址)。

Active Neighbor: 2.2.2.2:鄰居的Router-ID。


以上是對OSPF Hello包的複習。

做運維多年導致這些技術細節忘光了...


分享到:


相關文章: