「网络」复习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包的复习。

做运维多年导致这些技术细节忘光了...


分享到:


相關文章: