目录
一、OSPF邻居建立不成功
故障现象
OSPF邻居建立不成功。
操作步骤
- 检查邻居两端的接口物理和协议状态是否UP,状态是否稳定,接口是否有丢包,两边互ping大包是否能通。
若物理接口不Up或是不稳定(有振荡现象),请排查物理链路和链路层协议,确保物理和协议状态都是Up,并且接口无错误计数。
可以通过ping测试,长ping测试是否存在丢包现象,ping大包(1500字节以上)测试是否存在大包不通的现象。若存在,请检查数据包传送路径上各设备接口的MTU值设置是否合理。
- 检查链路两端OSPF进程的Router ID是否一致。
分别在链路两端的设备上执行命令display ospf [ process-id ] brief,查看OSPF进程的Router ID。
Router ID要保证全网唯一,否则会导致邻居不能正常建立、路由信息不正确的问题。建议在设备上单独为每个OSPF进程配置全网唯一的Router ID。
如果链路两端OSPF进程的Router ID一致,请在系统视图下执行命令ospf [ process-id ] router-id router-id,修改OSPF进程的Router ID以保证不冲突。
修改OSPF进程的Router ID之后,必须在用户视图下执行命令reset ospf [ process-id ] process后,新配置的Router ID才会生效。
- 检查链路两端OSPF区域ID是否一致。
分别在链路两端的设备上执行命令display ospf [ process-id ] brief,查看OSPF的区域ID。
如果链路两端的OSPF区域ID不一致,请在OSPF视图下执行命令area area-id,修改OSPF区域ID以保证一致。
- 检查链接两端OSPF接口的网络类型是否一致。
分别在链路两端的设备上执行命令display ospf [ process-id ] interface,查看OSPF接口的接口类型。
一般情况下,链路两端的OSPF接口的网络类型必须一致,否则双方不能正常建立起OSPF邻居关系。
如果OSPF接口的网络类型不一致,请在运行OSPF协议的接口视图下执行命令ospf network-type { broadcast | nbma | p2mp | p2p },修改OSPF接口的网络类型以保证一致。
如果链路两端OSPF接口的网络类型都是NBMA,则必须在OSPF视图下执行命令peer ip-address [ dr-priority priority ],配置NBMA网络的OSPF邻居。
- 检查链路两端OSPF接口的IP地址的掩码是否一致。
分别在链路两端的设备上执行命令display current-configuration interface interface-type interface-number,查看OSPF接口的IP地址。
一般情况下,链路两端的OSPF接口的IP地址的掩码必须一致,否则双方不能正常建立OSPF邻居关系。但在P2MP网络中,可以通过在运行OSPF协议的接口视图下配置命令ospf p2mp-mask-ignore来使设备忽略对网络掩码的检查,从而正常建立OSPF邻居关系。
如果OSPF接口的IP地址的掩码不一致,请在运行OSPF协议的接口视图下执行命令ip address ip-address { mask | mask-length },修改OSPF接口的IP地址以保证掩码一致。
- 检查链路两端OSPF接口的IP地址所在网段是否包含在区域内配置的network内。
分别在链路两端的设备上执行命令display current-configuration interface interface-type interface-number,查看OSPF接口的IP地址;执行命令display current-configuration configuration ospf,查看OSPF进程的配置。
满足下面两个条件,OSPF协议才能在接口上运行:
- 接口的IP地址掩码长度≥network命令中的掩码长度。OSPF使用反掩码,例如0.0.0.255表示掩码长度24位。
- 接口的主IP地址必须在network命令指定的网段范围之内。
如果检查发现接口IP地址与配置的network不满足上述条件,请在运行OSPF协议的接口视图下执行命令ip address ip-address { mask | mask-length },修改接口的IP地址;或者在OSPF进程对应的区域视图下执行命令network,修改配置的网段,保证满足上述条件。
- 检查链路两端OSPF接口的DR优先级是否非零。
分别在链路两端的设备上执行命令display ospf [ process-id ] interface,查看OSPF接口的DR优先级。
对于广播和NBMA类型网络,链路中至少要有一个OSPF接口的DR优先级不为0,这样才能正常选举出DR。否则两边的邻居状态只能达到2-Way。
如果链路两端OSPF接口的DR优先级都为0,请在运行OSPF协议的接口视图下执行命令ospf dr-priority priority,修改OSPF接口的DR优先级以保证至少有一个接口的DR优先级不为0。
二、OSPF不能发现其他区域的路由
故障现象
在链路正常的情况下,OSPF不能发现其他区域的路由。
操作步骤
- 检查设备所在区域是否与骨干区域相连。
在设备所在区域的ABR上执行命令display ospf [ process-id ] brief,查看ABR的区域配置信息。
OSPF规定所有非骨干区域必须与骨干区域保持连通。
如果ABR上没有配置骨干区域的信息,请在OSPF视图下执行命令area area-id,修改OSPF区域信息以保证ABR上至少有一个接口运行在骨干区域。
如果因实际组网限制,无法满足所有非骨干区域与骨干区域保持连通的要求,可以通过配置虚连接来满足需求。
- 检查设备所在区域是否为Totally Stub区域。
在设备上执行命令display current-configuration configuration ospf [ process-id ],查看OSPF进程的配置信息。
配置非骨干区域为Stub区域时,如果在ABR上配置时加上了参数no-summary (即OSPF区域视图下执行stub no-summary命令),则将该区域配置成了Totally Stub区域。
Totally Stub区域,不允许发布自治系统外部路由和区域间的路由,只允许发布区域内路由。
如果设备所在区域被配置为Totally Stub区域,请在确认需要修改的情况下,根据需求选择如下配置:
- 如果要将该Totally Stub区域恢复为普通区域,则需要在该区域的所有设备的OSPF区域视图下执行命令undo stub。
- 如果仅仅是需要将Totally Stub区域改成Stub区域,则需要在该区域的ABR的OSPF区域视图下先执行命令undo stub,然后再执行命令stub。
3. 检查设备所在区域是否为Totally NSSA区域。
-
在设备上执行命令display current-configuration configuration ospf [ process-id ],查看OSPF进程的配置信息。
配置非骨干区域为NSSA区域时,如果在ABR上配置时加上了参数no-summary (即在OSPF区域视图下执行nssa no-summary命令),则将该区域配置成了Totally NSSA区域。
Totally NSSA区域不允许发布自治系统外部路由和区域间的路由,只允许发布区域内路由。
如果设备所在区域被配置为Totally NSSA区域,请在确认需要修改的情况下,根据需求选择如下配置:-
如果要将该Totally NSSA区域恢复为普通区域,则需要在该区域的所有设备的OSPF区域视图下执行命令undo nssa。
-
如果仅仅是需要将Totally NSSA区域改成NSSA区域,则需要在该区域的ABR的OSPF区域视图下先执行命令undo nssa,然后再执行命令nssa。
-