Hello协议
第一种类型的 OSPF 数据包 1 是 OSPF Hello 数据包。Hello 数据包用于:
l 发现 OSPF 邻居并建立相邻关系。
l 通告两台路由器建立相邻关系所必需统一的参数。
l 在以太网和帧中继网络等多路访问网络中选举指定路由器 (DR) 和备用指定路由器 (BDR)。
重要字段包括:
l 类型:OSPF 数据包类型:Hello (1)、DD (2)、LS 请求 (3)、LS 更新 (4) 或 LS 确认 (5)
l 路由器 ID:始发路由器的 ID
l 区域 ID:数据包的始发区域
l 网络掩码:与发送方接口关联的子网掩码
l Hello 间隔:发送方路由器连续两次发送 hello 数据包之间的秒数
l 路由器优先级:用于 DR/BDR 选举
l 指定路由器 (DR):DR 的路由器 ID(如果有的话)
l 备用指定路由器 (BDR):BDR 的路由器 ID(如果有的话)
l 邻居列表:列出相邻路由器的 OSPF 路由器 ID
建立相邻关系
在 OSPF 路由器可将其链路状态泛洪给其它路由器之前,OSPF首先要建立邻居。OSPF Hello 中的信息包括发送方路由器的 OSPF 路由器 ID。如果通过一个接口收到 OSPF Hello 数据包,即可确认该链路上存在另一台 OSPF 路由器。随后,OSPF 即与该邻居建立相邻关系。
OSPF Hello 间隔和 Dead 间隔
两台路由器在建立 OSPF 相邻关系之前,必须统一三个值:Hello 间隔、Dead 间隔和网络类型。OSPF Hello 间隔表示 OSPF 路由器发送其 Hello 数据包的频度(默认情况下,在多路访问网段和点对点网段中每 10 秒钟发送一次 OSPF Hello 数据包,而在非广播多路访问 (NBMA) 网段(帧中继、X.25 或 ATM)中则每 30 秒钟发送一次 OSPF Hello 数据包。)Hello数据包使用组播发送给ALLSPFRouters 的专用地址 224.0.0.5 。
Dead 间隔是路由器在宣告邻居进入 down(不可用)状态之前等待该设备发送 Hello 数据包的时长,单位为秒。Cisco 所用的默认断路间隔为 Hello 间隔的四倍。如果 Dead 间隔已到期,而路由器仍未收到邻居发来的 Hello 数据包,则会从其链路状态数据库中删除该邻居。
选举 DR 和 BDR
为减小多路访问网络中的 OSPF 流量,OSPF 会选举一个指定路由器 (DR) 和一个备用指定路由器 (BDR)。当多路访问网络中发生变化时,DR 负责使用该变化信息更新其它所有 OSPF 路由器(称为 DROther)。BDR 会监控 DR 的状态,并在当前 DR 发生故障时接替其角色。
(点对点链路相互连接,不会执行 DR/BDR 选举。)