关于OSPF邻居关系建立的故障问题及解决方案

        之前看到过一个案例,一个园区中的AB两栋楼之间用的是OSPF连接,突然通信发生了故障,无法正常访问,后面发现是AB栋的某路由器之间OSPF邻居关系没有建立成功。这里也是尝试模拟一下这个案例,同时顺便将OSPF邻居关系建立的故障因素也都列举一遍 

        按照真实情况来说,我们应该先检查物理线路有没有问题,是不是接口松动导致的问题;然后通过路由器检查两边设备的连通性,是否能ping通。如果不是这两个原因的话,就该进入到路由配置在观察配置是否出现问题。

        这里因为就不说前两步的问题了,直接到OSPF配置的故障问题

完整配置

        如上图所示,简单的配置,PC端就直接配置路由就行

接口地址配置

# AR1
[AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0]ip address 10.10.10.1 24    # 接口地址、掩码
[AR1-GigabitEthernet0/0/0]ospf network-type p2p    # 设置连接类型
[AR1-GigabitEthernet0/0/0]mtu 1500    # 生存周期
[AR1-GigabitEthernet0/0/0]ospf timer hello 10    # hello报文间隔时间
[AR1-GigabitEthernet0/0/0]ospf timer dead 40    # 路由失效间隔时间
[AR1-GigabitEthernet0/0/0]q
[AR1]int g0/0/1
[AR1-GigabitEthernet0/0/1]ip address 192.168.88.1 24
[AR1-GigabitEthernet0/0/1]q

# AR2
[AR2]int g0/0/0
[AR2-GigabitEthernet0/0/0]ip address 10.10.10.2 24
[AR2-GigabitEthernet0/0/0]ospf network-type p2p
[AR2-GigabitEthernet0/0/0]mtu 1500
[AR2-GigabitEthernet0/0/0]ospf timer hello 10
[AR2-GigabitEthernet0/0/0]ospf timer dead 40
[AR2-GigabitEthernet0/0/0]q
[AR2]int g0/0/1
[AR2-GigabitEthernet0/0/1]ip addres 172.16.88.1 24
[AR2-GigabitEthernet0/0/1]q

OSPF配置

# AR1
[AR1]ospf 1 router-id 1.1.1.1    # 设置ID
[AR1-ospf-1]area 0
[AR1-ospf-1-area-0.0.0.0]network 10.10.10.1 0.0.0.0    # 宣告网段
[AR1-ospf-1-area-0.0.0.0]authentication-mode simple cipher ren    # 认证类型和密码
[AR1-ospf-1-area-0.0.0.0]q
[AR1-ospf-1]area 192
[AR1-ospf-1-area-0.0.0.192]network 192.168.88.0 0.0.0.255
[AR1-ospf-1-area-0.0.0.192]q
[AR1-ospf-1]q
[AR1]

# AR2
[AR2]ospf 1 router-id 2.2.2.2
[AR2-ospf-1]area 0
[AR2-ospf-1-area-0.0.0.0]network 10.10.10.2 0.0.0.0
[AR2-ospf-1-area-0.0.0.0]authentication-mode simple cipher ren
[AR2-ospf-1-area-0.0.0.0]q
[AR2-ospf-1]area 172
[AR2-ospf-1-area-0.0.0.172]network 172.16.88.0 0.0.0.255
[AR2-ospf-1-area-0.0.0.172]q
[AR2-ospf-1]q
[AR2]

需要注意的是,接口配置完后用display this是看不到mtu、hello、dead这些设置的,可以用下面的命令来查看

display ospf int g0/0/0

其实按照上面的配置就已经完成了这个拓扑的需求,两边的PC机可以相互ping通了。

常见影响OSPF邻居关系建立的因素

  1. router-id冲突
  2. 未将接口网段宣告进OSPF
  3. 接口类型不一致
  4. 接口掩码不一致
  5. 接口MTU值不一致
  6. Hello interval(Hello间隔)不一致
  7. Router Dead interval(路由失效间隔)不一致
  8. 认证类型不一致或者密码错误

其实来说,这8个因素都可以很快地找到,就是对比两个路由器之间的配置找不同

通过dis curr这个命令就可以对比4个因素

dis curr

        同时根据前面所提到的dis ip int g0/0/0命令也可以查看剩下的几个因素,除了认证密码需要抓包确定。而抓包确定问题,这个是最实用也是最便捷的一个方法

修改掩码、认证密码,模拟故障

        上面这样看可能不是很明显,所以在这里修改AR2的掩码、认证密码,再次查看它们之间的区别

[AR2]int g0/0/0
[AR2-GigabitEthernet0/0/0]ip address 10.10.10.2 30    # 掩码从24改为30
[AR2-GigabitEthernet0/0/0]q
[AR2]ospf 1
[AR2-ospf-1]area 0	
[AR2-ospf-1-area-0.0.0.0]authentication-mode simple cipher zhang    # 密码从ren改为zhang
[AR2-ospf-1-area-0.0.0.0]q
[AR2-ospf-1]q
[AR2]

查看修改信息

        认证密码由于这里是加密形式,所以看不出来,不过除了抓包还有一个可以看出哪个地方出了问题的命令

dis ospf error

由于认证密码的错误,导致hello包都接收不了,至于后面的对比掩码更是看都不看就丢了

所以最好的方法还是抓包来看的全面

更改好认证密码和掩码,又可以ping通了

最后再补充一点

        本来在模拟故障这一步,我是想尝试再修改MTU的,结果修改完发现,两边的MTU不一致,却依旧可以ping通!!!

        参考一些资料后,发现OSPF要求两边的MTU一致这个说法是没有错的,但是不是特别严谨。因为MTU是在DD报文中携带的,DD报文是从exstart状态开始才交互的,而且Drother之间的最高的邻居状态是Two-way。所以MTU不同,并不影响DRother之间的建立邻居,只影响DR/BDR和其它路由器建立full状态的邻接关系

        而OSPF要求两侧MTU一致的原因。其实是担心一侧发出的报文太大了,另一侧无法接收。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值