【HCIP学习记录】OSPF之DD报文

2023-12-19 05:54:51

1.OSPF报文格式

24字节

image-20231218193243012
字段长度含义
Version1字节版本,OSPF的版本号。对于OSPFv2来说,其值为2。
Type1字节类型,OSPF报文的类型,有下面几种类型: 1:Hello报文;● 2:DD报文;● 3:LSR报文;● 4:LSU报文;● 5:LSAck报文。
Packet length2字节OSPF报文的总长度,包括报文头在内,单位为字节
Router ID4字节发送该报文的路由器标识。
Area ID4字节发送该报文的所属区域。
Checksum2字节校验和,包含除了认证字段的整个报文的校验和。
AuType2字节验证类型,值有如下几种表示:● 0:不验证。● 1:简单认证。● 2:MD5认证。
Authentication8字节鉴定字段,其数值根据验证类型而定:● 当验证类型为0时未作定义。● 类型为1时此字段为密码信息 ● 类型为2时此字段包括Key ID、MD5验证数据长度和序列号的信 MD5验证数据添加在OSPF报文后面,不包含在Authenticaiton字段

2. DD报文-database description

作用:用于数据库的同步,

  • 对比对端链路状态通告(LSA)和自己链路状态通告的差异(通过LSA中的LSA Type 、Link-state ID、adveriting Router,全部一致才认为自己有该LSA)

  • 如果自己存在对端的LSA,还要比较LSA的新旧(通过sequence number,越大越优,相同则比较checksum,再相同比较LSA Age)

    为什么不直接发送全部的LSA给其他路由器?原因在于只比对摘要信息判断是否需要更新自己数据库,可以节省链路开销,有针对性的更新需要的路由条目,按需索取。

    DD报文格式

image-20231218193402739
字段长度含义
Interface MTU16比特在不分片的情况下,此接口最大可发出的IP报文长度。华为OSPFv2默认不检查,该值为0,华为OSPFv3需要检查。
Options8比特可选项:● E:允许Flood AS-External-LSAs;● MC:转发IP组播报文;● N/P:处理Type-7 LSAs;● DC:处理按需链路。
I (Init)1比特当发送连续多个DD报文时,如果这是第一个DD报文,则置为1,否则置为0。
M(More)1比特当发送连续多个DD报文时,如果这是最后一个DD报文,则置为0。否则置为1,表示后面还有其他的DD报文。
MS(Master/Slave)1比特当两台OSPF路由器交换DD报文时,首先需要确定双方的主从关系,Router ID大的一方会成为Master。当值为1时表示发送方为Master。
DD sequence number32比特DD报文序列号。主从双方利用序列号来保证DD报文传输的可靠性和完整性。
An LSA Header每个20字节该DD报文中所包含的LSA的头部信息。

OSPF是承载于IP之上,IP是不可靠的,通过OSPF自身报文保证可靠性。其中,DD sequence number可以保证DD报文可靠性和有序性,I 、M(More)、MS(Master/Slave)保证DD报文可控性。

抓包验证:

image-20231219000608898

在AR1的g0/0/0进行抓包分析

第一个DD包:10.1.12.1 ->10.1.12.2,没有LSA摘要

image-20231218200008229

10.1.12.2->10.1.12.1 .2 RouterID大为master,没有LSA摘要

image-20231218200233939

10.1.12.1 ->10.1.12.2 序列号这个master保持一致,通过这种类似三次握手的方式保持可靠性。发送LSA摘要给.2

image-20231218200520836

10.1.12.2->10.1.12.1 .2向.1发送LSA 摘要,序列号+1

image-20231218201118476

10.1.12.1 ->10.1.12.2 确认上一个报文,LSA 摘要为空,回复报文序列号于master发送序列号相同。

image-20231218201544275

在AR1上开启Debug模式看DD报文:

<R1>terminal debugging 
<R1>debugging ospf packet dd 
# 由于前面已经到达FULL状态,不会再交互DD报文,这里reset一下OSPF进程
<R1>reset ospf process 
# 关闭debug
<R1>undo debugging all 

可以看到第一DD报文信息,与抓包的一致:I、M、MS置位,LSA头部长度为0

image-20231218231427328

.1发送给.2的第二条DD报文:可以看到I、M、MS已经复位,LSA头部长度为1,有一条摘要

.1发送给.2的第三条DD报文:可以看到I、M、MS已经复位,LSA头部长度为0,没有LSA header

image-20231218232032661

文章来源:https://blog.csdn.net/cskywit/article/details/135074374
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。