OSPF报文结构
OSPF共有5种类型的协议报文
- Hello报文:周期性发送,用来发现维持OSPF邻居关系。
- DD报文:描述了本地LSDB的摘要信息,用于两台路由器进行数据库同步。
- LSR报文:向对方请求所需的LSA,只有双方成功开始交换DD报文后才会发送。
- LSU报文:向对方发送所需的完整LSA或泛洪自己更新的LSA。
- LSAck报文:用来对收到的LSA进行确认的报文。
OSPF报文头
Version:8位的OSPF版本号,OSPFv2是2,OSPFv3是3。
Type:8位的OPSF报文类型,1:Hello、2:DD、3:LSR、4:LSU、5:LSAck。
Packetlength:16位,OSPF报文总长度包括OSPF头,单位:Byte。
Router ID:32位,发送该报文的路由器标识ID。
AreaID: 32位,发送该报文路由器所属的区域。
Checksum:16位,包含除了认证字段的整个报文校验和。
AuType:64位,0:不含验证信息、1:明文认证、2:MD5认证
OSPF的Hello报文
Network Mask:32位,发送Hello报文接口所在网络的掩码。
Hello Interval:16位,发送Hello报文的时间间隔。
Options:8位,含义同OSPF报文头中一致。
Rtr Pri:8位,DR优先级,默认为1,0则表示路由器不能参选。
Router Dead Interval:32位,邻居失效时间,在此时间内未收到邻居的Hello报文则认为邻居失效,并从邻居列表移除该邻居,从路由表撤销指向其的路由。
Designated Router:32位,本网段DR路由器的接口IP。
Backup Designated Router:32位,本网段BDR路由器的接口IP。
Neighbor:32位,邻居列表,用Router ID标识当前路由器已知邻居ID。
OSPF的DD报文
Interface MTU:16位,此接口最大可发出IP报文的长度,华为默认不填充为0。
Options:含义同OSPF报文头一致。
I位:1位,当连续发送多个DD报文时,是第一个DD报文时为1,否则为0。
M位:1位,当连续发送多个DD报文时,后续没有LSA头要传时,则为0。
M/S位:1位,当两台路由器交换DD报文需选举主从,RouterID大的为主,当值位1则为Master。
DDS equence Number:32位,DD报文序列号,主从交互DD利用序列号保证DD报文传输的可靠性和稳定性。
LSA Headers:本地LSDB的头部信息。
OSPF的LSR报文
LS type:32位,LSA的类型
Link State ID:32位,根据LSA中的LSA Type和LSA Description在路由域中描述一个LSA。
Advertising Router:32位,产生此LSA的路由器Router ID。
OSPF的LSU报文
Number of LSAs:32位,表示此Update中包含的LSA数量。
LSAs:多个完整的LSA内容。
OSPF的LSAck报文
LSA Headers:LSA头列表,OSPF通过LSA头对完整的LSA做确认,一份LSA可以对多份LSU中的LSA做确认。