OSPF邻居的八种状态

OSPF在邻居路由器之间创建邻接体关系来交换路由信息,其邻居的建立过程一共可能出现八种状态,每种状态代表的具体含义如下:

         Down   没有从邻居处收到hello数据包。

         Attempt   用于NBMA网络的连接,并表明没有新的信息从这个邻居处收到。

         Init   从另外的路由器收到hello报文,但是在此hello报文中没有看到自己的router ID。

         2way   从邻居处接收到的hello报文的邻居字段中包含有自己的router ID。这个状态下选举DR和BDR。

         ExStart   建立主/从关系并决定初始的DD序号以便准备交换DD报文。带有最高router ID的路由器将成为主路由器。

         Exchange   路由器通过发送DD报文向邻居描述它自己的完整的链路状态数据库,同时,路由器也可以发送LSR报文来请求更新的LSA。

         Loading   路由器将发送LSR给邻居请求在Exchange状态下发现的新的LSA,并接收对请求的LSA的响应报文(LSU)。

         Full   建立起邻接的邻居中所有LSA信息都是同步的。

OSPF邻居状态常见故障分析

故障一:OSPF邻居停滞于ATTEMPT状态

可能的原因

判断方法和解决方案

1.配置了错误的neighbor语句

show ip ospf neighbor查看,邻居状态停滞于ATTEMPT状态。

如果配置了neighbor命令,OSPF将在NBMA接口发送一个单播分组,如果neighbor语句不正确。OSPF就不能向正确的邻居发送分组,也就不会从邻居收到任何回应。

解决办法:配置正确的neighbor语句。

2.在NBMA网络中单播中断了

show ip ospf neighbor查看,邻居状态停滞于ATTEMPT状态。

如果配置了neighbor命令,OSPF将在NBMA接口发送一个单播分组,如果网络中单播中断,将永远不会形成邻接关系。通过PING包验证单播是否存在问题。

解决办法:查看单播不通的原因:ACL、错误的DLCI号等。

 

故障二:OSPF邻居停滞于INIT状态

可能的原因

判断方法和解决方案

1.访问列表在某一边阻塞了OSPF Hello包

show ip ospf neighbor查看,邻居状态停滞于INIT状态。

OSPF使用一个组播地址224.0.0.5用于发送和接收HELLO分组。使用IP协议号89。如果在某一边使用了访问列表限制了HELLO报文,则邻居关系将停滞于INIT状态。

解决方法:查看配置,去掉访问列表。

2.在某一边的fame-relay map语句中缺少broadcast关键字

show ip ospf neighbor查看,邻居状态停滞于INIT状态。

如在fame-relay map语句中缺少broadcast关键字,在网络的第二层将不能发送任何广播或者组播分组。同时组播的HELLO报文也将不能正常发送

解决办法:在fame-relay map语句中加上broadcast关键字。

    

故障三:OSPF邻居停滞于TWO-WAY状态

可能的原因

判断方法和解决方案

1.DRother之间的状态为2-WAY

在广播网络中,DRother之间的状态为2-WAY。这个是正常的,DRother只需要跟DR和BDR建立FULL关系。

2.在所有的路由器上都配置了优先级为0

show ip ospf neighbor查看,邻居状态停滞于2-WAY状态。

在广播网络中,OSPF需要选举DRBDR。当在所有的路由器上都配置了优先级为0,那么所有的路由器都不会参与DR/BDR的选举,邻居状态将停在此状态下。

通过命令sh ip ospf interface查看接口的优先级。

解决办法:查看配置,更改其中的路由器优先级使其不为0

 

故障四:OSPF邻居停滞于EXSTART/EXCHANGE状态

可能的原因

判断方法和解决方案

1.两端接口的MTU不一致

show ip ospf neighbor查看,邻居状态停滞于EXSTART/EXCHANGE状态。

OSPF在一个数据库描述分组中发送接口的MTU,如果和对端的MTU值不匹配,OSPF将不会形成FULL状态。

通过命令sh ip ospf interface查看接口的MTU值。

解决方法:1、修改两端接口MTU值,使其相同。

2、在两端的接口上配置ip ospf mtu-ignore

2.邻居的Router ID冲突

show ip ospf neighbor查看,邻居状态停滞于EXSTART/EXCHANGE状态。

OSPF发送一个DD分组来选举一个主设备和从设备的时候。具有最大router ID的路由器变成主设备。如果两个邻居的router ID冲突,选举将不会成功,邻居停滞于EXSTART/EXCHANGE状态。

通过命令sh ip ospf interface查看邻居的router ID

解决办法:改变其中一台路由器的router ID,并重启OSPF进程。

    

故障五:OSPF邻居停滞于LOADING状态

可能的原因

判断方法和解决方案

1.两端接口的MTU不一致

show ip ospf neighbor查看,邻居状态停滞于LOADING状态。

在有些厂家的设备邻居协商不会比较MTU值,所以能通过前一阶段EXSTART/EXCHANGE状态的协商。这时邻居有可能会发送一个大的MTU分组作为一个链路状态更新,接收端将不能正常地接收到这个分组,因此邻居停滞于LOADING状态。

通过命令sh ip ospf interface查看接口的MTU值。

解决方法:1、修改两端接口MTU值,使其相同。

2.链路状态请求分组损坏了

show ip ospf neighbor查看,邻居状态停滞于LOADING状态。

当一个链路状态请求分组损坏了,邻居丢弃这个分组而本地路由器不会从邻居收到回应,这导致OSPF邻居停滞于LOADING状态

链路状态请求分组损坏的可能原因:

1   中间线路存在误码,破坏了这个分组;

2   两端设备存在硬件或者软件上的不兼容。

解决办法:检测线路或者更改设备。