CCNP——路由器运行OSPF协议邻居关系建立不起来的一些原因汇总

当路由器运行OSPF协议时,有时路由器之间无法建立起邻接关系,这个时候就无法传递LSA,也就无法传递路由,生成路由表,所以在这里分析一下OSPF无法建立起来邻接关系的几个原因:

  • hello time和dead time不匹配
  • 接口两端掩码不一致
    如果网络类型是P2P,则掩码不一致也可以建立邻居关系,对于MA网络
    这个时候会出现能ping通但是无法建立邻居
  • 区域不一致
  • router-id冲突
  • 认证不一致
  • 建立邻居的接口被配置成passive(被动接口)
  • 接口没有激活OSPF
  • OSPF主IP地址不一致(不一致指的是要建立邻接关系的两个路由器的接口的IP地址不属于同一个网段),一定建立不起来邻居关系
  • 物理层或者链路层协议down
    相当于接口关闭,所以当对接口执行shutdown命令时,邻居关系直接down掉
  • ospf的hello组播地址被ACL拒绝
  • hello中的option
  • 区域类型不匹配(特殊区域)
  • 两端接口优先级全是0
    如果MA网络中只有两台设备,而且两台设备的接口优先级全部都是0,那么这两台设备就会卡在2-way状态,无法建立邻接关系
  • MTU不一致会卡在exstart状态
    如果OSPF的接口MTU不一致,会影响LSDB的同步,LSDB同步的时候会选择M/S(主/从)
    exstart状态会选择主从(即选举DR和BDR)
    如果从的MTU小于主的,那么主和从都会卡在exstart状态
    如果从的MTU大于主的,那么从会卡在exstart,主会卡在exchange状态
    MTU建立邻接关系的两个接口,如果MTU不一致会导致建立不了邻接关系
    卡在主从选举的位置

下面我们来使用一个简单的拓扑来验证其中的几个原因:

网络拓扑

一、hello time和dead time不匹配

首先我们先来修改hello time(即路由器之间发送hello报文的时间间隔),我们先来看一下不修改的时候hello time的时间是多少
查看接口类型

我们从图中可以看出:

  • 网络类型是点对点网络(P2P网络)
  • hello time是10秒,dead time是40秒,wait time是40秒

注:dead time默认是hello time的4倍,我们在修改hello time的时候,dead time的时间默认情况下也会改变,比如:将hello time修改为20秒的时候,dead time默认就变成了80秒

所以我们在一开始配置好OSPF以后,发现邻居已经建立起来,并且可以征程传路由,这个时候我们把其中一台路由器的hello time的时间修改后,我们发现:邻接关系会立即down掉此时,如果我们再将另一台路由器的hello time修改到与前一台一致,我们发现邻居关系又重新建立起来

二、接口两端掩码不一致

P2P网络

  • 删除一中的配置,是路由器恢复到配置好OSPF的状态,这个时候通过一中,查看接口信息的图,我们可以知道现在是点对点的网络类型
  • 然后我们先删除掉先前配置在r1路由器上s1/0接口的IP地址,我们发现邻接关系瞬间down掉,如上图所示,接着我们重新配置IP地址,地址不变,只修改掩码,我们发现邻接状态重新建立起来

下面我们来看一下MA的网络类型的情况:
MA网络
我们先恢复到最初的配置(即刚配置好OSPF建立起邻接关系),然后将网络类型由point-to-point类型改成broadcast类型,然后重复上述操作,发现:重新配置上IP地址后,依然无法回复邻接关系,然后重新把两个路由器接口的IP地址的掩码改回到一致,邻接关系才又重新建立起来

三、MTU不一致会卡在exstart状态

重新恢复到最初的配置,然后修改从路由器(BDR)的MTU值为1000
修改
默认情况下MTU为1500个字节,这个时候从路由器的MTU值就小于主路由器,接下来我们发现两台路由器均卡在了exstart状态:
主从
如果此时再修改主路由器的MTU的值为900,这时,从路由器的MTU值大于主路由器,接下来我们发现:从会卡在exstart状态,主会卡在exchange状态:
从
主

该实现涉及到的相关配置命令:

  • show ip ospf int s1/0 ——查看hello time和dead time
  • r2(config)#int s1/0
    r2(config-if)#ip ospf hello-interval 1-65535——该命令表示修改接口hello time的发送时间(单位:秒)
  • r2(config)#int s1/0
    r2(config-if)#ip ospf dead-interval 1-65535——该命令表示修改接口dead time的发送时间(单位:秒)
  • r2#clear ip ospf process—— 清空OSPF进程
  • r2(config)#router ospf 1
    r2(config-router)#passive-interface default——该命令表示所有运行了OSPF路由协议的接口都开启passive
  • r2(config-router)#no passive-interface serial 1/0——该命令表示取消s1/0被动接口配置
  • r2(config)#int s1/0
    ip mtu 1400——该命令表示修改接口处MTU最大值为1400个字节(值可以根据自己需要设定)
  • r2(config)#int lo0
    r2(config-if)#ip ospf network point-to-point——该命令表示修改接口处的网络类型为点对点网络
发布了82 篇原创文章 · 获赞 176 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/loveCC_orange/article/details/89060034