当在接口上启用 OSPF 时,路由器必须确定链路上是否存在另一个 OSPF 邻居。 为此,路由器将通过所有启用 OSPF 的接口转发包含其路由器 ID 的 Hello 数据包。 OSPF 进程使用 OSPF 路由器 ID 唯一标识 OSPF 区域中的每个路由器。 路由器 ID 是为识别 OSPF 对等设备中的特定路由器而分配的 IP 地址。

当启用了 OSPF 的相邻路由器收到一个 Hello 数据包,但该数据包的路由器 ID 不在其邻居列表中,接收路由器会尝试与源路由器建立邻接关系。

请参考图 1 中的 R1。 当启用 OSPF 后,已启用的 Gigabit Ethernet 0/0 从 Down 状态转变为 Init 状态。 R1 开始通过所有启用 OSPF 的接口发送 Hello 数据包,以发现要建立邻接关系的 OSPF 邻居。

在图 2 中,R2 从 R1 接收 Hello 数据包,并将 R1 的路由器 ID 添加到其邻居列表。 R2 随后向 R1 发送 Hello 数据包。 数据包在同一接口的邻居列表中包含 R2 路由器 ID 和 R1 路由器 ID。

在图 3 中,R1 收到 Hello 数据包,并将 R2 的路由器 ID 添加到其 OSPF 邻居列表。 它也在 Hello 数据包的邻居列表中注意到了自己的路由器 ID。 当路由器收到一个 Hello 数据包,且其路由器 ID 在邻居列表中,路由器将从 Init 状态转变为 Two-Way 状态。

Two-Way 状态下执行的操作取决于相邻路由器之间的连接类型:

由于 R1 和 R2 通过以太网络相互连接,因此需要进行 DR 和 BDR 选举。 如图 4 所示,R2 成为 DR,R1 成为 BDR。 此过程只在多路访问网络上发生(如以太网 LAN)。

Hello 数据包不断进行交换以维护路由器信息。