OSPF数据包
OSPF数据包主要有5种类型:Hello数据包、DD(Database Description,数据库描述)数据包、LSR(Link State Request,链路状态请求)数据包、LSU(Link State Update,链路状态更新)数据包和LSACK(Link State ACKnowledgment,链路状态应答)数据包。它们使用相同的OSPF数据包包头格式。
OSPF数据包包头各字段含义。
其中
-
Version(版本):OSPF版本号,当前使用的是 OSPFv2。OSPFv3是针对 IPv6的。
-
Type(数据包类型):类型1的数据包是 Hello数据包;类型2的数据包是 DD数据包;类型3的数据包是 LSR数据包;类型4的数据包是 LSU数据包;类型5的数据包是 LSACK数据包。
-
Packet Length(数据包长度):数据包长度。
-
Router ID(路由器 ID):路由器 ID,是每台路由器的唯一标识。
-
Area ID(区域 ID):区域号,发送数据包的路由器接口所在的 OSPF区域号。
-
Checksum(校验和):用于对端路由器校验数据包的完整性和正确性。
-
Authentication Type(验证类型):验证类型有3种,其中,0表示不验证;1表示简单密码验证;2表示 MD5验证。
-
●Authentication(验证):具体值根据不同验证类型而定。当验证类型为不验证时,此字段没有数据;当验证类型为简单密码验证时,此字段为验证密码;当验证类型为 MD5验证时,此字段为 MD5摘要消息。
OSPF数据包的详解
1.Hello数据包
Hello数据包用于建立和维护相邻路由器之间的邻接关系。
Hello数据包相关字段含义如下所述。
-
Network Mask(网络掩码):发送 Hello数据包接口的 IP地址所对应的子网掩码。
-
Hello Interval(Hello间隔):指定发送 Hello数据包的时间间隔。在不同网络类型中,OSPF的 Hello间隔也不相同。在默认情况下,在广播型网络和点到点网络中,默认的 Hello间隔为10 s;在 NBMA网络中,Hello间隔为30 s。死亡间隔(Dead Interval)是 Hello间隔的4倍。路由器的Hello间隔和死亡间隔可以通过以下命令进行修改:[插图]
-
Options(选项):选项信息。
-
Priority(优先级):指定本路由器接口优先级,默认为1,主要用于 DR 和 BDR选举。
-
Router Dead Interval(路由器死亡间隔):指定检测本地路由器失效时间。表示收到此 Hello数据包的路由器在此时间内没有收到本路由器再次发来的 Hello数据包。
-
Designated Router(指定路由器,DR):指定路由器的 Router ID。
-
Backup Designated Router(备用指定路由器,BDR):备用指定路由器的Router ID。
-
List of Neighbors(邻居列表):指定邻居路由器的路由器 ID。
2.DD数据包
DD数据包用于描述本地LSDB的摘要信息和两台路由器进行数据库同步,接收路由器在收到摘要信息后会将其与本地的链路状态数据库进行对比,检查邻居路由器和自身的链路状态数据库是否同步。
3.LSR数据包
接收路由器可以发送LSR数据包向对方请求自身链路状态数据库中缺少的LSA数据包。路由器只有在OSPF邻居双方成功交换DD数据包后才会向对方发出LSR数据包。
4.LSU数据包
LSU数据包用于更新OSPF路由信息,回复LSR数据包请求,向对方发送其所需要的LSA数据包。
5.LSACK数据包
当收到一个LSU数据包时,路由器发送LSACK数据包进行确认。