OSPF邻居建立不成功的原因介绍:
1、检查邻居两端的接口物理和协议状态是否UP,状态是否稳定,接口是否有丢包,两边互ping大包是否能通。
若物理接口不Up或是不稳定(有振荡现象),请排查物理链路和链路层协议,确保物理和协议状态都是Up,并且接口无错误计数。
可以通过ping测试,长ping测试是否存在丢包现象,ping大包(1500字节以上)测试是否存在大包不通的现象。
2、检查链路两端OSPF进程的Router ID是否一致。
分别在链路两端的设备上执行命令display ospf 1 brief,查看OSPF进程的Router ID。
Router ID要保证全网唯一,否则会导致邻居不能正常建立、路由信息不正确的问题。建议在设备上单独为每个OSPF进程配置全网唯一的Router ID。
修改OSPF进程的Router ID之后,必须在用户视图下执行命令reset ospf 1 process后,新配置的Router ID才会生效。
3、检查链路两端OSPF区域ID是否一致。
分别在链路两端的设备上执行命令display ospf 1 brief,查看OSPF的区域ID。
4、检查链接两端OSPF接口的网络类型是否一致。
分别在链路两端的设备上执行命令display ospf 1 interface,查看OSPF接口的接口类型。
一般情况下,链路两端的OSPF接口的网络类型必须一致,否则双方无法建立起邻居关系。
本设备接口配置的网络类型为P2P或P2MP时,会检查收到的Hello报文的DR和Router Priority字段。如果两个字段都不是0,会认为对端配置不正确并丢弃该报文,此时两设备无法建邻居;否则正常处理,可能导致当对端接口配置的网络类型不是P2P或P2MP时(例如广播网),也能建邻居,但无法正确计算路由。
5、检查链路两端OSPF接口的IP地址的掩码是否一致。
一般情况下,链路两端的OSPF接口的IP地址的掩码必须一致,否则双方不能正常建立OSPF邻居关系。但在P2MP网络中,可以通过在运行OSPF协议的接口视图下配置命令ospf p2mp-mask-ignore来使设备忽略对网络掩码的检查,从而正常建立OSPF邻居关系。
6、检查链路两端OSPF接口的IP地址所在网段是否包含在区域内配置的network内。
执行命令display current-configuration configuration ospf,查看OSPF进程的配置。
满足下面两个条件,OSPF协议才能在接口上运行:
•接口的IP地址掩码长度≥network命令中的掩码长度。OSPF使用反掩码,例如0.0.0.255表示掩码长度24位。
•接口的主IP地址必须在network命令指定的网段范围之内。
7、检查链路两端OSPF接口的DR优先级是否非零。
分别在链路两端的设备上执行命令display ospf 1 interface,查看OSPF接口的DR优先级。
对于广播和NBMA类型网络,链路中至少要有一个OSPF接口的DR优先级不为0,这样才能正常选举出DR。否则两边的邻居状态只能达到2-Way。
如果链路两端OSPF接口的DR优先级都为0,请在运行OSPF协议的接口视图下执行命令ospf dr-priority 1,修改OSPF接口的DR优先级以保证至少有一个接口的DR优先级不为0。
8、检查链路两端OSPF接口发送Hello报文的时间间隔是否一致。
分别在链路两端的设备上执行命令display ospf 1 interface,查看OSPF接口发送Hello报文的时间间隔。
如果链路两端OSPF接口发送Hello报文时间间隔不一致,可能会导致邻居建立不成功。如果不一致,请在运行OSPF协议的接口视图下执行命令ospf timer hello 5,修改接口发送Hello报文的时间间隔,使得链路两端保持一致。