实战案例:园区两栋楼的OSPF路由器,邻居咋建立不起来啊?莫慌,两招教你搞定

本期分享的案例是园区网的相关问题。

问题背景

某大型园区网络,内部划分多个区域,使用 OSPF 协议进行路由通信。近期,园区内部A、B楼栋网络通信出现异常,无法正常互访。网络管理员发现,A、B栋局点的某为路由器之间OSPF邻居关系未能成功建立,导致路由信息无法正常交换,进而影响了网络的连通性。

基本拓扑连接如下:

排障思路

“邻居”和“邻接”这两个概念在OSPF中很重要:

OSPF路由器首先要建立的是“邻居关系”,这个过程是由Hello报文交互完成的;邻居过程走完后,OSPF路由器最终会成为Full状态的“邻接关系”,邻接路由器的LSDB(链路状态数据库)路由信息是一致的。

本例是OSPF邻接无法正常建立,如下:

说明是Hello报文交互出现了问题,所以我们重点诊断Hello报文交互进行诊断即可,主要有硬件链路、软件分析等2个层面。

基础排查

第一步、物理链路检查

首先查看路由器之间的物理连接线路,确认网线、光纤等连接正常,无松动、损坏迹象。同时,检查端口状态,发现端口均已正常UP,排除了物理链路层面的问题。

第二步、检查连通性

物理链路检查无问题,下一步需要进入路由CLI界面,通过ping测试两端设备的连通性,这里进入R1路由的CLI界面ping对端接口:

可以看到,基本是无丢包和延时的,连通性正常。

第三步、确认影响邻居建立的要素

常见的影响OSPF邻居建立的因素主要有如下几种:

router-id冲突未将接口网段宣告进OSPF接口类型不一致接口掩码不一致接口MTU值不一致Hello Interval(Hello间隔)不一致Router Dead Interval(路由失效间隔)不一致认证类型不一致或认证密码错误

为确认各个影响因素,这边我提供2种方法供大家参考。

分析影响OSPF建邻居的因素

方法一:比对路由器配置文件结合OSPF诊断模块(需设备支持)定位根因

本例中使用的是华为设备,可通过如下命令查看配置信息:

复制
[R1] display current-configuration1.

然后比对OSPF相关配置项:

可以看到一处错误:R1、R2互联接口掩码不一致,R1是10.0.1.1/24而R2是10.0.1.2/25,这是导致OSPF无法建立邻居之一。

由于认证类型是cipher密文显示,无法判断两认证密钥是否一致,所以还需要根据OSPF诊断模块判断,在R1或R2上输入命令:

复制
[R1] display ospf error1.

显示如下:

可以从回显看到2处错误:

错误原因1:对端发的Hello包中认证密钥与本端不一致,这个通过密文的配置信息看不出来的;错误原因2:对端发来的Hello中接口掩码与本段不一致,这个在上述中通过配置信息已经明确。

所以通过查看路由配置和OSPF诊断信息可以定位问题原因,但OSPF诊断模块并非所有设备都支持,不支持的设备可通过方法二尝试定位解决。

方法二:对比R1、R2的OSPF报文字段定位根因(通用)

抓取R1和R2之间的链路报文:

比对R1和R2发出来的OSPF Hello报文:

很显性的就能看到“掩码不一致”和“认证密码不一致”两处错误,这种方法适用于任何设备和场景,不依赖于设备诊断工具,我个人比较倾向该方法,同时还可以进一步学习协议。

解决方案

修正接口子网掩码:将R2的G0/0/0接口掩码修正10.0.1.2/24

统一认证密码:两端认证密码统一为huawei12

经过上述操作,相关路由器之间的 OSPF 邻居关系成功建立,路由信息开始正常交换,园区内各区域之间的网络通信恢复正常。

THE END
本站服务器由亿华云赞助提供-企业级高防云服务器