OSPF协议邻居建立以及报文
一、OSPF报文有五种报文形式
1、 Hello报文:周期性发送,用来发现和维持OSPF邻居关系。(DR\BDR使用组播地址224.0.0.5向邻居发送报文,其他路由器向DR和BDR使用224.0.0.6发送报文。P2p和广播hello时间是10S,NBMA和P2MP是30秒。)
2、DD报文(Database Description packet):描述了本地LSDB的摘要信息,用于两台路由器进行数据库同步。(即LSA的HEAD信息)
3、 LSR报文(Link State Request packet):向对方请求所需的LSA。只有在双方成功交换DD报文后才会向对方发出LSR报文
4、LSU报文(Link State Update packet):向对方发送其所需要的LSA
5、LSAck报文(Link State Acknowledgment packet):用来对收到的LSA进行确认。(由于可靠的Tcp传输,所以需要lsack确认。内容是LSA的head,)
通过LSA形成LSDB,OSPF设备将LSDB转换成一张有向带权图,同一个区域内的LSDB相同,每台设备根据SPF算法计算出依自己为根的最短路径树。
二、OSPF邻居的八种状态
1、Down 没有从邻居处收到hello数据包。
2、Attempt 用于NBMA网络的连接,并表明没有新的信息从这个邻居处收到。
3、 Init 从另外的路由器收到hello报文,但是在此hello报文中没有看到自己的router ID。
4、2way 从邻居处接收到的hello报文的邻居字段中包含有自己的router ID。这个状态下选举DR和BDR。
5、ExStart 建立主/从关系并决定初始的DD序号以便准备交换DD报文。带有最高router ID的路由器将成为主路由器。
6、Exchange 路由器通过发送DD报文向邻居描述它自己的完整的链路状态数据库,同时,路由器也可以发送LSR报文来请求更新的LSA。
7、 Loading 路由器将发送LSR给邻居请求在Exchange状态下发现的新的LSA,并接收对请求的LSA的响应报文(LSU)。
8、Full 邻居路由器的LSDB中所有的LSA都有了,本路由器和邻居路由器形成邻接关系(adjacen