故障案例——OSPF邻居都Full,为啥还不通呢?

Posted 李白你好

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了故障案例——OSPF邻居都Full,为啥还不通呢?相关的知识,希望对你有一定的参考价值。

《网络¥安全联盟站》-李白

故障现象

1、分支点的路由器R2与R1 建议OSPF邻接关系,在OSPF 区域1 内,状态均为Full,但R2无法ping 通 4.4.4.4等OSPF路由,而R3没问题。
2、该场景只有R2、R3 的登录权限,其他均无登录权限查看。

网络拓扑

配置思路

  • 1、搭好拓扑图,连接好线;
  • 2、标注IP信息、router id;
  • 3、启动设备,配置好设备名、router-id,每个设备直连IP信息。
  • 4、配置各个设备的loopback接口、物理接口ip地址。
  • 5、配置OSPF路由协议。

关键配置

R1(注:为了重现故障现象,R1某一个接口配置先不展示

ospf 1 
 area 0.0.0.0 
  network 1.1.1.1 0.0.0.0 
  network 14.1.1.1 0.0.0.0 
 area 0.0.0.1 
  network 12.1.1.1 0.0.0.0 
 area 0.0.0.2 
  network 13.1.1.1 0.0.0.0 

R2

ospf 1 
 area 0.0.0.1 
  network 2.2.2.2 0.0.0.0 
  network 12.1.1.2 0.0.0.0 

R3

ospf 1 
 area 0.0.0.2 
  network 3.3.3.3 0.0.0.0 
  network 13.1.1.3 0.0.0.0 

R4

ospf 1 
 area 0.0.0.0 
  network 4.4.4.4 0.0.0.0 
  network 14.1.1.4 0.0.0.0 

检查邻居状态:
R1与R2、 R3、R4邻居状态均为Full状态(邻接)。

故障重现及分析

接下来,故障重现:该场景是我们没有R1核心的登录权限。

在R2上去ping 4.4.4.4:

邻居也正常:

到R3上 ping 4.4.4.4 看看:

结果,R3是可以ping通4.4.4.4的。

再R2上看看路由表,我们都知道,如果不能ping通,就先看看路由表有没有相关路由。

从R2的路由表,可知,没有任何OSPF路由。

这说明一下现象:即R2与R1 OSPF邻居建立OK,只是路由层面出了问题。

这时,我们需要想办法排查路由层面的。

我们可以通过抓包或debug,分析看看。

先用debug看看,在R2开启debug相关命令。(友情提示:在生产网中,请谨慎开启debug

<R2>terminal monitor 
Info: Current terminal monitor is on.
<R2>
<R2>terminal  debugging 
Info: Current terminal debugging is on.
<R2>
<R2>debugging ospf packet brief

等待一会儿,看到屏幕有一些debug信息,就可以先关掉debug了

<R2>undo debug all
Info: All possible debugging has been turned off
<R2>

现在我们来看看debug信息:

看到R2发送了一个hello包,DR 优先级是1,自己是DR,即12.1.1.2

也看到了R2收了一个Hello包,对端发过来的,不过DR和BDR居然均0.0.0.0

由此可知,R2发出来的Hello包是有携带DR和BDR的,R1发过来的Hello包 DR和BDR字段是全0。设备默认OSPF网络类型是broadcast,需要选举DR和BDR,而R1没有DR和BDR,说明R1的G0/0/0接口网络类型,肯定不是broadcast。

我们知道,邻居正常,如果网络类型不一致,会导致OSPF计算路由时,出错,无法计算正确的拓扑。

所以,接下来解决办法:把R2的G0/0/0接口也修改一下网络类型。

[R2]int g0/0/0 
[R2-GigabitEthernet0/0/0]ospf network-type  p2p

现在,我们在R4上ping 4.4.4.4看看:

可以通的原因是:ospf可以正确计算路由,学习到OSPF路由了。

以上是关于故障案例——OSPF邻居都Full,为啥还不通呢?的主要内容,如果未能解决你的问题,请参考以下文章

路由软件quagga和bird日志配置打印ospf邻居变化

ospf邻居down故障排查

再回顾CCNP之OSPF邻居建立时的几个状态

为啥gre能让ospf 互相发现邻居 而 ipsec vpn不可以

OSPF路由协议建立邻居关系邻接关系和路由汇聚过程中的表类型包类型及状态类型

IEEP-OSPF域内路由故障-现象与排障思路