OSPF 消息数据包
Hello DBD LSR LSU LSACK
Hello:
周期性发送,周期时间10s或30s(根据不同的网络类型默认10s或30s)
目的:建立并维持OSPF 邻居关系(邻居关系建立之后重当保活包功能)
释义详解:
Auth Type(认证类型):
不做认证=Null
明文认证=1
MD5认证=2 包含一个Key ID、认证数据长度、不减小的加密序列号
DN:用于基于MPLS的第3层虚拟专用网(VPN)
O:设置用来表明始发路由器支持9、10、11类LSA
DC:按需链路
E:接收和转发外部属性LSA
N:支持7类LSA
P:支持7类转5类
L:和区域间防环有关
MC:支持组播
E:支持5类LSA位,支持路由位
MT:支持多拓扑OSPF
Active Neighbor(活动邻居):当R2接口收到Hello包,检查过Hello包里邻居关系建立的条件,满足条件时,R2给R1发的Hello包里会将自己所收到的所有条件匹配的Router-ID的信息全部写在Active Neighbor列表中。
DBD:数据库描述数据包;
1.主从选举DBD:
比较双方的router-id ,router-id大的一方为主(master ),小的一方为从 (slave);主用于控制LSA的交互。
释义详解:
**接口MTU:数据包不分片的情况下,始发路由器接口可以发送的最大IP数据包报文。**
(1) R位:保留位
(2) I位(初始位Initial bit):1—发送的是最初一个数据包;0—发送的是后续的数据包
(3) M位(后继位More bit):1—发送的不是最后一个数据包;0—最后一个数据库描述数据包
(4) MS位(主/从位 Master/Slave bit):1—主路由器;0—从路由器
(5) DD Sequence Number(数据库描述序列号):
在数据库同步请求中,用来确保路由器能够收到完整的数据库描述数据包序列。
序列号由主路由器在最初发送的数据库描述数据包中随机出唯一的数值,后续数据包序列号依次增加。
当主从选举结束后,从路由器的序列号会保持与主的相同。
2.携带LSA头部信息的DBD
释义详解:
(1)LSA头部:
(2)LS age:总长16位,表示LSA产生后所经过的时间,以秒为单位。
(3)Do Not Age:用于限制LSA在按需链路中的泛洪。
OSPF通过在LSA报文中设置一个DonotAge字节,来使两端得到协商,使收到的LSA永不过期。并且在LSA中加了一个标志位,DC bit,使其他路由器知道这个LSA具有按需电路的特性,使其他路由器不会认为这条路由过期,这样就避免了在按需拨号电路上的每30分钟泛洪。
(4)LS Type:8位,代表不同LSA的类型。
(5)Link State ID:32位,与LSA中的LS Type和Advertising Router一起用来在OSPF中唯一标识一个LSA。
(6)Advertising Router:32位,记录产生此LSA的路由器的router ID。
(7)LS Sequence number:32位LSA的序列号。序列号越大代表该LSA越新,其他路由器根据这个值可以判断哪个LSA是最新的。
(8)LS checksum:16位,除了LS age外其他各域的校验和。可用于校验LSA的内容及用来确定该LSA是否最新。
(9)Length:16位,LSA的总长度,包括LSA Header,以字节为单位。
LSR:链路状态请求,按照DBD中报文的未知LSA头部进行请求。
释义详解:
(1)Link State Request:
(2)Link-State Advertisement Type:LSA的类型
(3)Link-State ID:根据LSA中的LS Type和LSA description在路由域中描述一个LSA
(4)Advertising Router:产生此LSA的路由器的Router ID
LSU:链路状态更新,携带LSA信息。
V:产生该LSA的路由器是否是虚链路
E:产生该LSA的路由器是否是ASBR
B:产生该LSA的路由器是否是ABR
不同LSA的字段均不相同。
LSACK:链路状态确认
数据包的确认:
Hello:不需要确认
DBD:通过数据库描述序列号(DD Sequence Number),从路由器R1最后(第三个)发的DBD是为了显式确认,该DBD中不包含LSA头部。
LSR:通过LSU确认,LSU中必须包含以下字段,即对方的LSA头部信息
LSU:通过LSACK确认,确认方法同上
LSACK:隐式确认