前言
欢迎指正错误
OSPF协议基于IP运行,协议的数据报文直接采用IP封装,IP报文头部对应的协议号为89。
介绍OSPF五种报文
1.hello报文:
hello报文用于发现邻居和维护邻居关系。hello报文中携带这些参数,只有参数匹配两者才能正确建立邻居关系。
network mask:网络掩码。
hello interval:接口周期发送hello间隔时间。缺省情况下,OSPF在P2P或broadcast类型的接口上hello间隔为10s,在NBMA和P2MP类型接口上hello间隔为30s。
options:可选项。路由器通过设置相应的options字段来通告自己支持某些特性或能力,比如E:允许flood AS-external-LSAs MC:转发IP组播报文等。。。
Rtr Pri:Router priority 路由器优先级,也叫DR优先级。用于DR、BDR的选举。缺省值为1。如果设置为0则路由器不能参见DR、BDR的选举。
Router dead interval :路由器失效时间。缺省情况下该路由接口为hello interval的4倍关系,如果在此时间内未收到邻居发来的hello报文,则认为邻居失效。
designated Router:指定路由器。网络中DR的接口地址。如果字段为0.0.0.0表示DR尚未选择出来或者没有DR。
backup designated Router:备份指定路由器。网络中BDR的接口IP地址。同上
neighbor:邻居。此处填充的是邻居的Router ID。
2.DD报文
DD报文用于描述自己的LSDB,进行LSDB数据库同步。该报文中携带的LSDB中LSA的头部数据。master、salve也是通过交互DD报文来完成的。
interface MTU:最大接口数据单元。此接口最大发出IP报文长度,缺省为0。
options:可选项。
I : initial bit 初始化位。当发送连续多个DD报文时,如果这是第一个DD报文,则置为1否则置为0
M:more。如果设置为1表示后面还有其他的DD报文,如果这是最后一个DD报文则设置为0.
M/S:此位设置为1表示我为master路由器。
DD sequence number DD报文***。主从双方利用***来保证DD报文传输的可靠性和完整性。
LSA headers:DD报文中所含LSA的头部信息。
3.LSR
用来LSR报文请求完整的LSA。
三元组:
链路状态类型:LSA的类型。
链路状态ID:LSA标识
通告路由器:产生该LSA的路由器Router ID。
4.LSU报文 路由器收到LSR后会以LSU报文进行回应,在LSU报文中就包含了对方请求的LSA完整的信息。
详细LSA报文分开来写,包括LSA头部,Router-LSA,network-LS。。。
5.LSAck报文
用来对接接受到的LSU报文进行确认。内容是需要确认的LSA的header,一个LSACK报文可以对多个LSA进行确认。link state acknowledgment packet根据不同链路以单播或组播的形式发送。