第一种类型的 OSPF 数据包 1 是 OSPF Hello 数据包。Hello 数据包用于:

 
  • 发现 OSPF 邻居并建立相邻关系。
  • 通告两台路由器建立相邻关系所必需统一的参数。
  • 在以太网和帧中继网络等多路访问网络中选举指定路由器 (DR) 和备用指定路由器 (BDR)。

建立相邻关系

在 OSPF 路由器可将其链路状态泛洪给其它路由器之前,必须确定在其每个链路上是否存在其它 OSPF 邻居。在图中,OSPF 路由器正在通过所有启用了 OSPF 的接口发送 Hello 数据包,以确定那些链路上是否存在邻居。OSPF Hello 中的信息包括发送方路由器的 OSPF 路由器 ID(路由器 ID 将在本章后续部分中讨论)。如果通过一个接口收到 OSPF Hello 数据包,即可确认该链路上存在另一台 OSPF 路由器。随后,OSPF 即与该邻居建立相邻关系。例如,在图中,R1 将与 R2 和 R3 建立相邻关系。

OSPF Hello 间隔和 Dead 间隔

两台路由器在建立 OSPF 相邻关系之前,必须统一三个值:Hello 间隔、Dead 间隔和网络类型。OSPF Hello 间隔表示 OSPF 路由器发送其 Hello 数据包的频度。默认情况下,在多路访问网段和点对点网段中每 10 秒钟发送一次 OSPF Hello 数据包,而在非广播多路访问 (NBMA) 网段(帧中继、X.25 或 ATM)中则每 30 秒钟发送一次 OSPF Hello 数据包。

在多数情况下,OSPF Hello 数据包都会通过组播发送给ALLSPFRouters 的专用地址 224.0.0.5 。由于使用了组播地址,设备的接口如果未启用为接收 OSPF 数据包,则会忽略这些数据包。这样可节省非 OSPF 设备的 CPU 处理时间。

Dead 间隔是路由器在宣告邻居进入 down(不可用)状态之前等待该设备发送 Hello 数据包的时长,单位为秒。Cisco 所用的默认断路间隔为 Hello 间隔的四倍。对于多路访问网段和点对点网段,此时长为 40 秒;而对于 NBMA 网络,则为 120 秒。

如果 Dead 间隔已到期,而路由器仍未收到邻居发来的 Hello 数据包,则会从其链路状态数据库中删除该邻居。路由器会将该邻居连接断开的信息通过所有启用了 OSPF 的接口以泛洪的方式发送出去。

选举 DR 和 BDR

为减小多路访问网络中的 OSPF 流量,OSPF 会选举一个指定路由器 (DR) 和一个备用指定路由器 (BDR)。当多路访问网络中发生变化时,DR 负责使用该变化信息更新其它所有 OSPF 路由器(称为 DROther)。BDR 会监控 DR 的状态,并在当前 DR 发生故障时接替其角色。