ospf hello时间和dead_OSPF邻居关系建立失败的几种常见情况(太实用了!)

最近有人遇到OSPF邻居建立不起来,本期龙哥就与大家分享个人见解。如有讲错地方或有更好的见解欢迎评论区见哈~

拓扑图

591166f5efa760e1f8adce5c3a94780f.png

本期我讲以此拓扑图为基础,来演示几种常见OSPF邻居建立不起来的情况,物理层面的原来暂无法演示,比如光衰问题,网线老化等。

1、接口未宣告到OSPF进程

f798fd7d2fec3513eed3c36cdc50a2c4.png

R1关键配置如下:

#

interface GigabitEthernet0/0/0

ip address 12.1.1.1 255.255.255.0

#

ospf 1

area 0.0.0.1

network 1.1.1.1 0.0.0.0

network 12.1.1.1 0.0.0.0

#

return

[R1-ospf-1]

R2关键配置如下:

#

interface GigabitEthernet0/0/0

ip address 12.1.1.2 255.255.255.0

#

#

ospf 1

area 0.0.0.0

network 2.2.2.2 0.0.0.0

network 24.1.1.2 0.0.0.0

area 0.0.0.1

network 12.1.1.2 0.0.0.0

area 0.0.0.2

network 23.1.1.2 0.0.0.0

#

00bf716eca4cee977bc6ecb16f08ce3e.png

现象:R1的OSPF邻居表为空。

原因:大家回顾一下,我们学OSPF时,有提到报文类型,是不是有个Hello包,那回顾一下,Hello是干嘛用的? 不管你学到什么P,什么E,不管你是不是大神级别,初心一定不能忘!忘了就没法玩了。Hello是用于建立和维护邻接关系。 本实例中,R2没有把G0/0/0的接口IP宣告到OSPF进程中的区域中,那么意思就是该接口也没有参与到OSPF进程,就不会去发Hello包。R2的G0/0/0不发hello包,R1就不会收到,没有收,怎么握手,怎么建立OSPF邻居呢 是吧~

解决办法:R2的接口宣告到OSPF进程中的区域1下。

4e735f806274731b41f7423a18a5e2b5.png

检查:

0e485bf3bc966684e3a903edd7df7e0c.png

2、接口虽然参与到OSPF进程了但被静默了

118a1a1219103c93fd87014f89fbeca0.png

R1关键配置不变,如上。

R2关键配置如下:

#

interface GigabitEthernet0/0/0

ip address 12.1.1.2 255.255.255.0

#

#

ospf 1

silent-interface GigabitEthernet0/0/0

area 0.0.0.0

network 2.2.2.2 0.0.0.0

network 24.1.1.2 0.0.0.0

area 0.0.0.1

network 12.1.1.2 0.0.0.0

area 0.0.0.2

network 23.1.1.2 0.0.0.0

#

7188a3cd421ff204fba015ad119563c9.png

现象:R1的OSPF邻接表为空,R2对应接口也宣告到OSPF进程了。

原因:R2的OSPF进程下,使用了silent-interface命令用来禁止G0/0/0接口接收和发送OSPF报文。OSPF报文都不能发,更何况是Hello包了,所以邻居也就无法建立了。

解决办法:删除silient-interface命令即可。

09cfb99e362e76715ab4e333cceead36.png

检查:

d8a27a7eda52e85547a92e871c969db2.png

3、广播网络中,OSPF进程反掩码写错了。

R1关键配置不变,如例1。

R2关键配置如下:

#

interface GigabitEthernet0/0/0

ip address 12.1.1.2 255.255.255.0

#

#

ospf 1

area 0.0.0.0

network 2.2.2.2 0.0.0.0

network 24.1.1.2 0.0.0.0

area 0.0.0.1

network 12.1.0.0 0.0.0.255

area 0.0.0.2

network 23.1.1.2 0.0.0.0

#

现象:R1的OSPF邻接表为空

7188a3cd421ff204fba015ad119563c9.png

原因:OSPF进程area1宣告的网络掩码写错了,宣告OSPF时,反掩码的0表示精确匹配,255表示不检查。从配置可以看出,OSPF进程精确去查找,将这个12.1.0.x宣告到进程中,但是R2没有哪一个接口属于这个网段的,所以等同于G0/0/0没有宣告到OSPF进程中。

解决办法:要么精确匹配,写4个0,即0.0.0.0,要么修改反掩码为0.0.255.255。

54b5867f793b53ed23583cec61d40034.png

检查:这时就有邻居了。

d193fde872c0e221a3db837be18b3c99.png

4、两端的hello间隔和dead间隔时间不匹配

R1关键配置不变,如例1。

R1的hello、dead间隔时间还是默认,没有修改:

961c5dee9b892a8e689ed3e770e4d95e.png

R2关键配置如下,修改了G0/0/0的OSPF hello间隔时间。

46c8ae1607be4fc820c01b29b625245c.png
7dffcf8efdec93fc0003bb754f277756.png

R1和R2两端的Hello间隔和dead间隔不一样,会收到如下日志:

22111fe8fbf32eb5a4395aad5adb5f04.png

我们有也可以抓包看看:

a177b145d712b6b53dc9fc05c6cc073d.png
8f8b187a9550ff2a2ee649c2436cbc97.png

很明显可以看出两端的报文,hello和dead间隔时间不一致,两边设备收到对端hello报文,检查发现不一致,丢弃,于是邻居无法建立。

我们也可以使用display ospf error 更加快速地定位出问题:

dd1e1f54fc070543fc7db97fbe4ec855.png
465f902c1adb34268f502d0d31805898.png

解决办法:

R2的G0/0/0的Hello间隔改回默认,或者R1的G0/0/0 OSPF的Hello间隔也改为20秒。

9cd4d942a18f61172556b6480e97a1b6.png

检查:

453940a466c2373d64e4d210b72aeee4.png

5、区域ID不一致

R1关键配置不变,如例1。

R2关键配置如下:

#

ospf 1

area 0.0.0.0

network 2.2.2.2 0.0.0.0

network 12.1.1.2 0.0.0.0

network 24.1.1.2 0.0.0.0

area 0.0.0.2

network 23.1.1.2 0.0.0.0

#

return

[R2-ospf-1]

现象也是:R1的OSPF邻居表为空。

f57ee4f3a7a744308cef6c2615308801.png

分析:

排查错,有时候,如果你不知道该如何入手?建议可以从Hello报文格式来,根据报文格式,检查一下是不是哪些不匹配?

6e4982e7c5ae3cd78e879ee568125bb1.png

现在我们再来抓包,看一下R1和R2的hello:

R1的hello包如下:

7dbd8eca5416f664e395f03ea641e581.png

R2的Hello包如下:

734b8be0b64e1ce1868638ad64a2bda5.png

很明显可以看出,R1和R2的区域id字段不一致,R1在区域1,R2在区域0,两边区域ID不一致,双方收到对端hello包,发现不一致,握手失败,所以邻居也就无法建立了。

当然,你也可以使用display ospf error来得快一些:

0ce806454a73c9fbc3c2ddb4087fd9ba.png

解决办法:

ospf 1

area 0.0.0.0

network 2.2.2.2 0.0.0.0

network 24.1.1.2 0.0.0.0

area 0.0.0.1

network 12.1.1.2 0.0.0.0

area 0.0.0.2

network 23.1.1.2 0.0.0.0

#

检查:

16d64625fbc9947bd2498e74e2010f96.png

6、认证类型活密码不一致

R1关键配置如下:

interface GigabitEthernet0/0/0

[R1-GigabitEthernet0/0/0]ospf authentication-mode simple along123

R2关键配置如下:

[R2]int g0/0/0

[R2-GigabitEthernet0/0/0]ospf authentication-mode simple along456

现象:R1的OSPF 邻居列表为空,与R2OSPF邻居建立不起来。

分析:

c63e8facfb610710ee3d13c0782aba02.png
53a3c8bca130452b34fd520e461485c0.png

抓包的话,由于是明文,很容易看出密码不一样:

R1:

63937cdf89f697d18077d6bba55d9f83.png

R2:

fb288797f15fc7cbd7bf0e8abdee2e51.png

7、广播网络中,接口IP掩码写错了

R1的接口IP如下:

#

interface GigabitEthernet0/0/0

ip address 12.1.1.1 255.255.255.0

R2的接口IP如下:

#

interface GigabitEthernet0/0/0

ip address 12.1.1.2 255.255.255.128

OSPF配置均没变化。

现象:R1的OSPF邻居列表为空,建立失败。

分析:

从报文的字段去分析,广播网络中会检查掩码,发现不一致,就无法成功建立OSPF邻居,可以使用如下命令快速定位。

f035bf29238bbedf30add77e5be7f2fc.png
935d1059a0c33b4af2c86565f66dc7fd.png
0d8f88a11e219fc6c7c2e7562caa8910.png
6c395c34ed1f7d2954bd02a61ff08f97.png

解决办法:修改正确的掩码即可。

8

特殊区域类型不匹配,比如stub区域

R2的OSPF配置如下:

#

ospf 1

area 0.0.0.0

network 2.2.2.2 0.0.0.0

network 24.1.1.2 0.0.0.0

area 0.0.0.1

network 12.1.1.2 0.0.0.0

area 0.0.0.2

network 23.1.1.2 0.0.0.0

stub

#

return

[R2-ospf-1]

R3的OSPF配置如下:

#

ospf 1

area 0.0.0.2

network 3.3.3.3 0.0.0.0

network 23.1.1.3 0.0.0.0

#

return

[R3-ospf-1]

现象:R2和R3无法建立OSPF邻居关系。

分析:

302911a94d7a6e707feb5fe033446515.png

可知,Hello包里面的option字段不匹配,应该是一边可以支持外部路由,一边不支持外部路由。

5bef729514db014e5ab7af831958a27a.png

咱们,也可以抓个包看看,到底什么情况呢?

af9f1df202f2366b230be0f92bfbc1b6.png

再看看R3,

ed52513aa61cabd98288128b12a9302a.png

到这来,你应该知道配特殊区域,是需要两端都要配了吧。

解决办法:

将R3也配置为stub

[R3-ospf-1]area 2

[R3-ospf-1-area-0.0.0.2]stub

[R3-ospf-1-area-0.0.0.2]

验证:

2695898bc7f906835bc2f470674861e1.png

好了,本期就与大家分享到这,当然还有很多原因导致OSPF邻居建立不起来,大家还遇到过什么情况?欢迎在评论区留下,一起交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值