什么叫ospf邻居?OSPF会在网络上发送HELLO包,如果HELLO包里面有3个内容匹配的话,就会建立邻居关系,首先是 HELLO包的死亡和更新时间,区域ID号,还有一个认证字段,可以这样简单理解,
在点到点网络中,相邻的路由器通过发送HELLO包建立邻居,邻居建立后,才能发送LSA,LSR LSU DBD等更新数据包
在多路访问网络中 会通过HELLO包建立DR和BDR,路由器只与DR和BDR建立邻居关系,发送更新LSA,与其他路由器使维持发现的two-away状态
应该够清楚了,就是邻居就是发送更新的前提,如果没有建立邻居关系,是不能更新数据的,并且建立邻居需要一定的条件
邻居建立过程如下:
1、RTA和RTB的Router ID分别为1.1.1.1和2.2.2.2。当RTA启动OSPF后,RTA会发送第一个Hello报文。此报文中邻居列表为空,此时状态为Down,RTB收到RTA的这个Hello报文,状态置为Init。
2、RTB发送Hello报文,此报文中邻居列表为空,RTA收到RTB的Hello报文,状态置为Init。
3、RTB向RTA发送邻居列表为1.1.1.1的Hello报文,RTA在收到的Hello报文邻居列表中发现自己的Router ID,状态置为2-way。
4、RTA向RTB发送邻居列表为2.2.2.2的Hello报文,RTB在收到的Hello报文邻居列表中发现自己的Router ID,状态置为2-way。
OSPF邻居共有以下八种状态:
Down:邻居会话的初始阶段。表明没有在邻居失效时间间隔内收到来自邻居设备的Hello报文。除了NBMA网络OSPF路由器会每隔PollInterval时间对外轮询发送Hello报文,包括向处于Down状态的邻居路由器(即失效的邻居路由器)发送之外,其他网络是不会向失效的邻居路由器发送Hello报文的。
Attempt:这种状态适用于NBMA网络,邻居路由器是手工配置的。邻居关系处于本状态时,路由器会每隔HelloInterval时间向自己手工配置的邻居发送Hello报文,尝试建立邻居关系。
Init:本状态表示已经收到了邻居的Hello报文,但是对端并没有收到本端发送的Hello报文,收到的Hello报文的邻居列表并没有包含本端的Router ID,双向通信仍然没有建立。
2-Way:互为邻居。本状态表示双方互相收到了对端发送的Hello报文,报文中的邻居列表也包含本端的Router ID,邻居关系建立。如果不形成邻接关系则邻居状态机就停留在此状态,否则进入ExStart状态。DR和BDR只有在邻居状态处于这个状态或者更高的状态才会被选举出来。
ExStart:协商主从关系。建立主从关系主要是为了保证在后续的DD报文交换中能够有序的发送。邻居间从此时才开始正式建立邻接关系。
Exchange:交换DD报文。本端设备将本地的LSDB用DD报文来描述,并发给邻居设备。
Loading:正在同步LSDB。两端设备发送LSR报文向邻居请求对方的LSA,同步LSDB。
Full:建立邻接。两端设备的LSDB已同步,本端设备和邻居设备建立了完全的邻接关系。