路由故障分析——不能路由的路由表

  一、故障现象

  路由器是实现内网与外网互联的重要设备,根据网络复杂程度可设置静态路由和动态路由。对于简单的网络设置静态路由可方便于管理,但路由列表设置不当会引发一些网络互联故障。

  举例:某企业网一部门(下称部门A)中有人反映不能访问上级部门(部门B)的网络。从用户所用的计算机A1(IP地址为10.20.12.11/24)上用ping命令向部门B网络中的计算机B1(IP地址为10.20.30.110/24)和B2(IP地址为10.20.30.111/24)发送测试数据包,丢包率达100%,ping本部门的其它计算机则显示连接正常。检查其计算机IP设置,发现网关设置正确(正确网关为10.20.12.1),于是怀疑路由器不能正常工作。使用部门A办公室计算机A2、A3测试,发现以下奇怪现象。

  (1) 在计算机A2(IP为10.20.12.12/24)上用ping命令分别ping部门B网络中计算机B1和B2,发现B1有正常回应,B2的回应率在20%~50%之间;在计算机A3(IP为10.20.12.13/24)中用ping命令分别ping计算机B1和B2,回应显示连接正常,丢包率为0。

  (2) 将计算机A3的IP地址改为10.20.12.12/24后测试,ping得的结果同(1)中的计算机A2测试情况。

  (3) 将计算机A2的IP地址改为尚未使用过的IP地址:10.20.12.22/24,测试与B1和B2的连接,结果显示正常,丢包率为0。

  (4) 将计算机A1的IP地址改为尚未使用过的IP地址:10.20.12.23/24,测试与B1和B2的连接,结果显示正常,丢包率为0。

  二、故障分析

  考虑到网络连通情况与本机IP地址有关,参考网络拓扑结构图(如图1),于是怀疑可能是由于部门B网络的防火墙设置引发该故障。由于部门B与本部门分别位于城市中两个不同地方,不方便查看其防火墙设置,于是打电话询问。但该部门网络管理员告之其防火墙是针对网络IP段设置的,也就是说,该防火墙对于部门A的整个网络IP段都是允许访问的。

  分析以上原因,可能是本部门中某些计算机向部门B网络发送过非法访问信息,部门B的防火墙自动将该IP列入侵计算机名单,屏蔽了其发送的IP数据包,从而引发网络连接不正常的现象。调查本部门中所有计算机,将不能正常访问外部网络(部门B网络)的计算机的IP更换为新的IP地址,问题暂时解决。

  但一个星期后,网络又出现相同故障,看来问题不在防火墙上。

  在计算机A2(IP地址为10.20.12.12/24)用Tracert 命令跟踪测试,现象如下:

  c:\>Tracert 10.20.30.110

  Tracing route to 10.20.30.110 over a maximum of 30 hops

  1 <1 ms <1 ms <1 ms 10.20.12.1

  2 1 ms <1 ms 1 ms 192.168.10.2

  3 1 ms 1 ms 1 ms 10.20.30.1

  4 2 ms 1 ms 2 ms 10.20.30.110

  将计算机上A2的IP地址改为10.20.12.22/24,用Tracert 命令跟踪测试,现象如下:

  Tracing route to 10.20.30.110 over a maximum of 30 hops

  1 <1 ms <1 ms <1 ms 10.20.12.1

  2 1 ms * * 192.168.10.2

  3 * 2 ms * 10.20.30.1

  4 * * * Request timed out

1.png

  图1

  回顾近期网络结构变动情况,原本网关的位置用的是一台三层交换机,当时内网能正常访问外部网络,在一星期前更换为MSR3040路由器,重新配置好设备后就出现以上网络故障。检查MSR3040的配置,发现端口IP地址配置正常,而在路由表中有两条缺省路由:

  ip route-static-static 0.0.0.0 0.0.0.0 192.168.10.2

  ip route-static-static 0.0.0.0 0.0.0.0 10.20.12.254

  而本部门网络只有一条出口链路,只需要在MSR3040加入一条缺省路由“ip route-static-static 0.0.0.0 0.0.0.0 192.168.10.2”就可以将本部门对外部网络的的访问都转发到部门B的路由器Router B,从而实现网络的互联。可能由于设置人员的失误,在路由表中多加了一条并不存在的下一跳节点“ip route-static 0.0.0.0 0.0.0.0 10.20.12.254”。以致当内网中的计算机访问外部网络时,路由器有时不能将IP数据包正确地发送到192.168.10.2中,由于路由器加电工作后,内存中保存了内网对外网的访问路由列表,使得一些计算机一直能正常访问外网,而另一些计算机不能正常访问,当路由器重新启动(如第二个星期一早上重启路由器)后,访问路由列表重新建立,使得内部计算机访问外网的现象发生变化。

  三、故障排除

  在路由器下删除无用的路由列表:

  [RouterA] ip route-static 0.0.0.0 0.0.0.0 10.20.12.254

  重启路由器后,本部门所有计算机都能正常访问部门B的网络及单位广域网,故障得到彻底解决。由此得出故障原因,如果网络中存在无效的等值路由,其可能会导致设备匹配错误的表项进行转发,而导致数据转发失败。

2015年10月