邻居建立过程:
Down:这是邻居的初始状态,表示没有从邻居收到任何信息。
Init:在此状态下,路由器已经从邻居收到了Hello报文,但是自己的Router ID不在所收到的Hello报文的邻居列表中。
2-way:在此状态下,路由器发现自己的Router ID存在于收到的Hello报文的邻居列表中。
OSPF使用Hello报文发现和建立邻居关系。
在以太网链路上,缺省时,OSPF采用组播的形式发送Hello报文。
OSPF Hello报文中包含了路由器的Router ID、邻居列表等信息。
其中hello报文的主要作用:
邻居发现:自动发现邻居路由器
邻居建立:完成hello报文中的参数协商,建立邻居关系。
邻居保持:通过周期性发送和接受,检测邻居运行状态。
再建立邻接关系:
ExStart:邻居状态变成此状态以后,路由器开始向邻居发送DD报文。在此状态下发送的DD报文不包含链路状态描述。
Exchange:在此状态下,路由器与邻居之间相互发送包含链路状态信息摘要的DD报文。
Loading:在此状态下,路由器与邻居之间相互发送LSR报文、LSU报文、LSAck报文
Full:R1开始向R2发送LSR报文,请求那些在Exchange状态下通过DD报文发现的、并且在本地LSDB中没有的链路状态信息。 R2向R1发送LSU报文,LSU报文中包含了那些被请求的链路状态的详细信息。R1在完成LSU报文的接收之后,且没有其他待请求的LSA后,会将邻居状态从Loading变为Full。
DD报文:描述链路状态数据库(LSDB)的摘要信息,协商主从关系(在 Exstart 状态)。
LSR:请求链路状态信息,当路由器收到 DD 报文并对比自己的 LSDB 后,发现自己缺少某些 LSA 时,就会发送 LSR 报文。
LSU:更新链路状态信息,作为对 LSR 报文的响应,发送方会发送 LSU 报文。LSU 报文包含完整的 LSA 信息,用于更新邻居的 LSDB。此外,当网络拓扑发生变化时,路由器也会主动发送 LSU 报文来通告这种变化。同时也是洪泛机制的载体。
LSAck:确认链路状态信息的接收,路由器在收到 LSU 报文后,会发送 LSAck 报文来确认收到了 LSA。