OSPF 的报文格式
OSPF 的报文直接封装在IP 数据包 协议号为89 一个比较完整的OSPF 报文格式如下

IP header
Ospf packet header
Number LAS s
LSA header
lsa Data
1.       OSPF 报文头
OSPF 有五种报文类型 它们有相同的报头

Version(8)
Type(8)
Packet length(16)
Router-id(32)
Area-id(32)
Checksum(16)             
Autype(24)
Authentication(32)
Authentication(32)
字段解释如下
Version 是ospf 的版本 ospfv2 其值为 2
Type :ospf 类型有五种报文 分别为 1: hello 2:dd 3:lsr 4 :lsu 5 lsack
Packet length ospf 报文的总长度 包括报头在内 单位是字节
Router-id 始发该LSA的路由器ID
Area-id 始发该LSA 的区域ID
Checksum :对整个报文校验
Autype :验证类型 可分为不验证、明文验证、MD5验证 值分别为 0 1 2
Authenication :其值根据验证类型来定义, 验证为0时未作定义 为1是为密码验证 为2时为KEY-ID 和密码的MD5 验证
MD5数据添加在OSPF 报文后面不在authentication 字段里
二:hello 报文 (hello packet)
它是周期性的发送 来维持邻居关系 和dr /bdr 选举内容主要包括:定时器数值、DR BDR 以及自己已知的邻居 起报文格式如下图
 

Version(8)
1
Packet length(16)
Router-id(32)
Area-id(32)
Checksum(16)      
Autype(24)
Authentication(32)
Authentication(32)
Network mask(32)
Hellointerval   (16)                            options  (8)              RTR pri
Routerdeadtimeinterval(32)
DR(32)
BDR(32)
Neighbor (32)
--------
Network mask 发送hello 包 时 接口下的子网掩码不同不能建立邻居关系
Hellointerval 发送hello 报的时间间隔不同不能建立邻居关系
RTr pri :路由器的本地优先级
Routerdeadtimeinterval:失效时间 如果在规定的时间内没有收到来自邻居的hello包则视为失效,失效时间间隔不同不能建立邻居
Designated router 指路由器本地接口的IP
Neighbor 指邻居路由器的Ip
DD 报文(database description packet )
两台路由器进行数据库同步时,用DD报文来描述自己的LSDB 内容包括LSDB中每一条LSA 的header    LSA header 只占一个条LSA的整个数据流的一小部分 这样可以减少路由器之间的协议报文流量,对端的路由器可以根据LSA 的头部 能够判断是否有这条LSA

Version(8)
2
Packet length(16)
Router-id(32)
Area-id(32)
Checksum(16)             
Autype(24)
Authentication(32)
Authentication(32)
Interface MTU
option
i=1    M=1   ms=1 
DD Sequence number
LSA header
 主要字段解释如下:
Interface MTU :在不分片情况下 在接口处容许最大发出的IP报文长度
I(initial)当发送连续的DD 时 如果是第一个报文则为1
M(more) 表示多个DD 连续发送报文,如果是最后一个dd 则表示为0 反则为1
MS :在双方交换DD 时还要确认他们的主从关系 ms=1 表示发送方为主位
Dd sequence number :双方用序列号来确认DD 收发的持续性和完整性
三:LSR报文(link state request)
两台路由器互相交换数据到最后一个LSA 时 如果一方发现自己还有很多不知道的DD 时就会请求对方 lsr 来继续更新自己的DATABASE

Version(8)
3
Packet length(16)
Router-id(32)
Area-id(32)
Checksum(16)             
Autype(24)
Authentication(32)
Authentication(32)
LS TYPE
Link state ID
Advertising  router
 LS Type :LSA 的类型 例如Type 1表示router lsa
Link state ID 链路状态标识
Advertising router: 产生此lsa 的路由器
5.LSU 报文
LSU 是对LSR 寻求的回答

Version(8)
4
Packet length(16)
Router-id(32)
Area-id(32)
Checksum(16)             
Autype(24)
Authentication(32)
Authentication(32)
Number of LSAs
LSAs
Number of LSAs 该报文包含LSA 的数量
LASs :包含所有的LSA
6.LSAck 
LSACK 报文是用来对接收到的LSU 报文的进行确认的 内容是需要确认LSA 的header

Version(8)
Type(8)
Packet length(16)
Router-id(32)
Area-id(32)
Checksum(16)             
Autype(24)
Authentication(32)
Authentication(32)
LSA header
LSA header :该报文包含LSA 的头部
7.LSA 头格式
所有的LSA 都有相同的报文头

LS age
Options
LS type
Linke state ID
Adbertising router
LS sequence number
Ls checksum
length
LS age :LSA 产生后所经过的时间 LSA 会在LSDB中有老化时间 但在传输过程中不会
LS type :LSA 类型 3 4 5 7
LS sequence number 其他路由器可以根据其值来判断是否是最新的LSA
Length:LSA 的总长度 以字节为单位
LS checksum 对LSA 的报文检查出了LS age
LSA 类型

LS age
Options
1
Linke state ID
Adbertising router
LS sequence number
Ls checksum
length
0
V
E
B
0
#links
Link id
 
Type
Tos
metric
 
 
TOS
0
TOS metric
Link ID
 
Link data
 
Link state id :产生此LSA 的路由器的router id
V(virtual link) 如果产生此LSA 的路由器是虚连接的端点 则 值为1
E (external): 如果产生此LSA 的路由器是ASBR 值为1
B (border):如果产生此LSA 的路由器是ABR 值为1
#links:LSA 中所描述的链路信息的数量,包括路由器处于某区域中所有链路和接口
Link ID :链路标识 具体的数值根据链路类型而定
Link data 链路数据具体的值根据类型而定
Type :链路类型 取值为1表示通过点对点链路与另一个路由器相连,取值为2 表示连接到传送网络,取值为3 表示连接到STUB 网络 取值为4 表示虚电路
#TOS 链路不同方式的数量
Metric :链路开销
Tos :服务类型
Tos metric :指定服务类型的链路开销
2.       network LSA
它是由广播或NBMA 网络中的DR 发出,LSA 中记录了这一段上所以路由器的router-id

LS age
Options
2
Linke state ID
Adbertising router
LS sequence number
Ls checksum
length
Network mask
Attached router
Link state id :DR 的IP 地址
Network mask :BMA/NBMA 网络地址的掩码
Attached router:连接在同一网段上的所有与DR 建立邻接关系的router-id 也包括自身的router-id
3.       summary LSA
network summary LSA(type3) 和ASBR summary LSA (type4)

LS age
Options
3 or 4
Linke state ID
Adbertising router
LS sequence number
Ls checksum
length
Network mask
0
metric 
Tos
tos metric
Link state id :对于type3来说 它是通告到区域外的网络地址 对于type4来说 它是通告到区域外的ASBR的router id
Network mask :BMA/NBMA 网络地址的掩码
Attached router:连接在同一网段上的所有与DR 建立邻接关系的router-id 也包括自身的router-id
4.       AS external LSA
由ASBR 产生 描述到AS 外部的路由信息

LS age
Options
3 or 4
Linke state ID
Adbertising router
LS sequence number
Ls checksum
Length
Network mask
E
0
metric
Forwarding address
External route lag
E
tos
tos metric
Forwarding address
External route lag
主要字段解释
Link state id :所要通告的其他外部AS 的目的地址,如果通告的是一条是缺省路由则LS ID和子网掩码都为0.0.0.0
Network mask :所通告的目的地址掩码
E: 外部度量值
5.       NSSA external LSA
由NSSA 区域内的ASBR产生 并且在NSSA 内部传送和type5 相似