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需要选举DR和BDR。当在所有的路由器上都配置了优先级为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.两端设备存在硬件或者软件上的不兼容。 解决办法:检测线路或者更改设备。 |
本文链接地址: https://danteng.org/ospf-neighbors-and-problem-solves/