1故障现象



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


(文末有福利)



2网络拓扑



配置思路:

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状态(邻接)。




3故障重现及分析


接下来,故障重现:该场景是我们没有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路由了。


©著作权归作者所有:来自51CTO博客作者mob604756ef35df的原创作品,如需转载,请注明出处,否则将追究法律责任

你的鼓励让我更有动力

赞赏

0人进行了赞赏支持

更多相关文章

  1. 2021年5月IDEA最新激活码,解决This license BISACXYELK has 。。
  2. CentOS6.8配置GO语言开发环境
  3. PHP:cURL error 60: SSL certificate unable to get l
  4. centos 配置DNS
  5. Saltstack自动化操作记录(2)-配置使用
  6. Tomcat通过Memcached实现session共享的完整部署记录
  7. 使用AMD灵活配置实例使PeopleSoft降本增效
  8. WinForm基于插件开发实现多项配置存储
  9. linux下配置免安装版zabbix-agent配置详解

随机推荐

  1. linux解决端口号被占用
  2. linux中常用时间和字符串之间相互转化
  3. Linux下CPU显示信息解释
  4. Git: 合并几个commit为一个commit
  5. Ubuntu 12.04安装Bochs 2.6.2, 调试linux
  6. 如果后台的SVN服务器IP地址更改了,如何修
  7. linux中的nm命令简介
  8. 获取Linux 内存页大小的命令
  9. linux线程函数中代替sleep的方法
  10. [Redhat9.0]Models-3安装备忘录之LINUX篇