大家好,我是小咖老师。
OSPF排错咱们已经讲过几期了,有同学反馈说看不懂,内容太多也不好记,今天咱就挑最常见的三个,给大家分析讲解一下。
1、OSPF邻居建立不成功
2、OSPF不能发现其他区域的路由
3、CPU过高问题
OSPF邻居建立不成功
故障现象要点
建立邻接关系,过程如下:
a. 本端设备通过接口向外发送Hello报文与对端设备建立邻居关系。
b. 两端设备进行主/从关系协商和DD报文交换。
c. 两端设备通过更新LSA完成链路数据库LSDB的同步。
此时,邻接关系建立成功。
检测操作步骤
· 1 检查邻居两端的接口物理和协议状态是否UP,状态是否稳定,接口是否有丢包,两边互ping大包是否能通。
若物理接口不Up或是不稳定(有振荡现象),请排查物理链路和链路层协议,确保物理和协议状态都是Up,并且接口无错误计数。
可以通过ping测试,长ping测试是否存在丢包现象,ping大包(1500字节以上)测试是否存在大包不通的现象。若存在,请检查数据包传送路径上各设备接口的MTU值设置是否合理。
· 2 检查链路两端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才会生效。
· 3 检查链路两端OSPF区域ID是否一致。
分别在链路两端的设备上执行命令display ospf [ process-id ] brief,查看OSPF的区域ID。
如果链路两端的OSPF区域ID不一致,请在OSPF视图下执行命令area area-id,修改OSPF区域ID以保证一致。
ospf排错
· 4 检查链接两端OSPF接口的网络类型是否一致。
如果链路两端OSPF接口的网络类型都是NBMA,则必须在OSPF视图下执行命令peer ip-address [ dr-priority priority ],配置NBMA网络的OSPF邻居。
先分别在链路两端的设备上执行命令display ospf [ process-id ] interface,查看OSPF接口的接口类型。
一般情况下,链路两端的OSPF接口的网络类型必须一致,否则双方不能正常建立起OSPF邻居关系。
如果OSPF接口的网络类型不一致,请在运行OSPF协议的接口视图下执行命令ospf network-type {broadcast|nbma|p2mp|p2p },修改OSPF接口的网络类型以保证一致。
· 5 检查链路两端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地址以保证掩码一致。
· 6 检查链路两端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,修改配置的网段,保证满足上述条件。
· 7 检查链路两端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不能发现其他区域的路由
故障现象要点
在上述邻居状态机的变化中,有两处决定是否建立邻接关系:
当与邻居的双向通讯初次建立时。
当网段中的DR和BDR发生变化时。
OSPF在不同网络类型中,OSPF邻接关系建立的过程不同,分为广播网络,NBMA网络,点到点/点到多点网络。
在链路正常的情况下,OSPF不能发现其他区域的路由。
检测操作步骤
· 1 检查设备所在区域是否与骨干区域相连。
在设备所在区域的ABR上执行命令display ospf [ process-id ] brief,查看ABR的区域配置信息。
OSPF规定所有非骨干区域必须与骨干区域保持连通。
如果ABR上没有配置骨干区域的信息,请在OSPF视图下执行命令area area-id,修改OSPF区域信息以保证ABR上至少有一个接口运行在骨干区域。
如果因实际组网限制,无法满足所有非骨干区域与骨干区域保持连通的要求,可以通过配置虚连接来满足需求。
· 2 检查设备所在区域是否为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。
CPU过高
故障现象要点
大规格OSPF邻居状态震荡造成设备
检测操作步骤
通过执行命令ospf suppress-flapping peer hold-down配置震荡抑制模式为Hold-down模式,在一段时间内禁止该邻居重新建立,避免频繁的数据库同步和大量的报文交互,缓解CPU压力。
通过执行命令ospf suppress-flapping peer修改指定接口的OSPF邻居震荡抑制的检测参数。
缺省情况下,指定接口的OSPF邻居震荡抑制的震荡检测门限为60秒,震荡抑制门限为10,震荡检测恢复门限为120秒,可以尝试将震荡抑制门限调小从而触发抑制机制,防止接口状态造成ospf邻居反复震荡造成大量协议报文交互。
例如执行:ospf suppress-flapping peer detecting-interval 60 threshold 3 resume-interval 120
通过执行命令retransmission-limit命令使能OSPF重传限制功能,避免在邻居收不到报文的情况下,一直重传消耗CPU和造成死循环。
例如执行:retransmission-limit 5
2个提示
(1)清除OSPF
操作说明
在确认需要清除OSPF的运行信息后,请在用户视图下执行以下命令,清除OSPF的信息后,以前的信息将无法恢复,务必仔细确认。
操作步骤
1 执行reset ospf [ process-id ] counters [neighbor[interface-type interface-number] [router-id] ]命令清除OSPF计数器。
🔹counters表示用来将OSPF计数器清零。
🔹neighbor表示指定接口上邻居的信息。
2 执行reset ospf [process-id] redistribution命令重新引入路由。
3 执行reset gtsm statistics all命令清除设备上的GTSM统计信息。
(2)复位OSPF
操作说明
如果需要复位OSPF连接,可在用户视图下选择执行以下命令。复位OSPF连接(执行reset ospf命令)会导致交换机之间的OSPF邻接关系中断。务必仔细确认是否必须执行复位OSPF连接的操作。
操作步骤
在用户视图下执行
reset ospf [process-id] process [flush-waiting-timer time|graceful-restart] 命令重启OSPF进程
懂知识就是有福气!关注我分享更多网络实用操作!感谢帮忙点赞分享,您的支持是我们最大的动力!