路由自动汇总设置出故障
2015-12-10
最近一段时间,因为新增了部分汇聚层路由器及相关子网,导致之前很多64K链路节点出现随机性网络不可达故障,网络结构如图1所示。
图1 网络拓扑结构
在该网络中R4为新增的汇聚层路由器。R1和R2为本单位上联路由器,并通过VRRP为内网提供冗余网关。R3为早期64K链路汇聚路由器,为早期业务点提供64KWAN口链路接入能力。
故障现象
之前网络一直运行稳定,但最近一段时间随机性出现64K连接点用户申告业务系统无法登录的故障,网络管理员检查R1、R2以及R3路由器发现,针对故障点子网路由发生错误。只能在R1、R2及R3上通过ip route命令来指定到故障节点的静态路由来恢复业务网络的可用性。但随着时间的推移,越来越多的64K链路连接都需要使用静态路由来实现,这引起了网络维护部门的高度重视。
故障排查
为了彻底找到问题发生的原因,单位网络维护组进行了认真的分析和研究。在连接点用户申告业务系统无法登录期间,笔者和同事检查发现,连接R3及故障点的WAN口其实是一直连通的,笔者可以通过R3对应的故障点WAN口IP地址登录到故障点路由器,在故障点路由器使用Ping命令,可以Ping通R3路由器,但在R1或者R2上均无法Ping通故障点路由器的内网IP地址。
使用路由追踪命令traceroute,发现本该到故障点路由器路由被奇妙地指到了R4路由器上,后来询问才得知,该路由器为通级单位新增的业务点路由器。检查该路由器配置发现该路由器在EIGRP配置中启用了Auto-Summary(路由自动汇总)功能。通过路由器命令show ip route命令查看路由,发现到故障点路由在R1、R2中不存在,只有一条指向WAN口边界地址的汇总路由。将R4上的Auto-Summary (路由自动汇总)功能关闭后,网络恢复正常。
故障分析
因为本单位网络规模较大,同时为了节省IP地址,因此网络在规划初期在路由器WAN口间使用了168.168.0.0的变长掩码地址设置。比如,在R3中 设置的对故障点的WAN口地址 为168.168.101.117/30,对端WAN口地址为168.168.101.118/30。 这样,当R4上启用了Auto-Summary (路由自动汇总)功能,则会自动将路由进行汇总,通告路由不携带子网掩码,或者说子网掩码会被自动设置成标准的B类地址掩码。最后R1、R2只会学习到168.168.0.0的路由信息,而实际上到达168.168.101.118的路由信息因为路由汇总之后就被覆盖了,从而导致网络不可达故障。将AUTOSUMMARY功能关闭后,此时路由器向外宣告路由信息时,携带了真实子网掩码,此时R4只向外宣布自己的路由信息,不会将其他无类子网路由信息覆盖掉从而导致故障发生。
经验总结
路由器作为网络的核心设备,其功能无可替代。但因为在生产环境中的关系,经常需要进行类似升级、故障替换等操作。很多时候如果本地路由器参数设置不当,可能会引发全局性网络故障。这一方面需要网络管理维护人员加强自我的技术学习和升级,另一方面,在出现网络问题后,也要从整体来对网络进行分析,切不可只看局部忽略全局。因为此地的网络问题其真实原因未必就一定是此地设备导致的。