技福小咖
作者技福小咖·2022-11-16 12:11
网络工程师·技福小咖

三个最常见OSPF故障的实操检测步骤

字数 4789阅读 744评论 0赞 1

大家好,我是小咖老师。

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以保证一致。

· 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 statisticsall命令清除设备上的GTSM统计信息。

(2)复位OSPF

操作说明

如果需要复位OSPF连接,可在用户视图下选择执行以下命令。复位OSPF连接(执行reset ospf命令)会导致交换机之间的OSPF邻接关系中断。务必仔细确认是否必须执行复位OSPF连接的操作。

操作步骤

在用户视图下执行

reset ospf[ process-id] process [flush-waiting-timer time|graceful-restart] 命令重启OSPF进程

懂知识就是有福气!关注我分享更多网络实用操作!感谢帮忙点赞分享,您的支持是我们最大的动力!

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

1

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

X社区推广