技术支持 > 技术文章 > 层层深入探究“网络丢包”
 
实例讲解:解决Cisco路由器严重丢包现象

  
    近日,我部门(下称部门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),于是怀疑路由器不能正常工作。回来我自己办公室,用本办公室计算机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。
故障分析
  分析以上原因,可能是本部门中某些计算机向部门B网络发送过非法访问信息,部门B的防火墙自动将该IP列入侵计算机名单,屏蔽了其发送的IP数据包,从而引发网络连接不正常的现象。调查本部门中所有计算机,将不能正常访问外部网络(部门B网络)的计算机的IP更换为新的IP地址,问题暂时解决。
  但一个星期后,网络又出现故障,有几个原来能正常访问部门B计算机出现丢包现象,而有几个原来不能正常访问外部网络的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
  Trace complete
  将计算机上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
  5 * * * Request timed out
  6 * * 2 ms 10.20.30.110
  Trace complete
  Trace complete
  →
  有时用Tracert跟踪测试得到4、5行及以后显示的都是Request timed out。
  回顾近期网络结构变动情况,原来本部门中网关的位置用的是一个三层交换机(只使用其路由功能),当时内网能正常访问外部网络,在一星期前换为Cisco 3640路由器,将按三层交换机中的配置重新配置3640路由器,换后不久就出现以上网络故障。检查Cisco 3640的端口配置和路由配置,发现端口IP地址配置正常,而在路由列表中有两条路由:
  ip route 0.0.0.0 0.0.0.0 192.168.10.2
  ip route 0.0.0.0 0.0.0.0 10.20.12.254
  因本部门网络是单位广域网中最下层子网,根据业务需要访问本单位整个广域网,而本部门网络只通过一台Cisco 3640路由器Router A接入部门B网络中,再通过部门B的路由器Router B接入单位广域网(见前面网络拓朴图)。为方便设置,我们只需要在Cisco 3640加入一条缺省路由“ip route 0.0.0.0 0.0.0.0 192.168.10.2”就可以将本部门对外部网络的的访问都转发到部门B的路由器Router B,从而实现网络的互联。可能由于设置人员的失误,在路由表中多加了一条并不存在的下一跳节点“ip route 0.0.0.0 0.0.0.0 10.20.12.254”。以致当内网中的计算机访问外部网络时,路由器有时不能将IP数据包正确地发送到192.168.10.2中,由于路由器加电工作后,内存中保存了内网对外网的访问路由列表,使得一些计算机一直能正常访问外网,而另一些计算机不能正常访问,当路由器重新启动(如第二个星期一早上重启路由器)后,访问路由列表重新建立,使得内部计算机访问外网的现象发现变化。
故障排除
  在路由器特权模式下删除无用的路由列表:
  # no ip route 0.0.0.0 0.0.0.0 10.20.12.254
  #wr
  重启路由器后,本部门所有计算机都能正常访问部门B的网络及单位广域网,故障得到彻底解决。
  路由表的一般形式为:
  Destination Gateway Flag Refs Use Inerface
  其中,Destination目标网络或主机的IP地址;Gateway到达指定目地的使用网关;Flag标志字段,描述这一路由的一些特性;Refcnt 表示为了建一次连接,该路由使用的次数;Use表示通过该路由传输的分组报文数;Interface 表示该路由使用的网络接口名。
  一个典型的路由表的例子
  Destination Gateway Flags Refs Use Interface
  default 26.112.191.98 UGS 0 0 net0
  default 26.112.191.98 UGS 0 18 net0
  26.112.191 26.112.191.2 UC 1 0 net0
  26.112.191.2 127.0.0.1 UGHS 3 92 lo0
  127.0.0.1 127.0.0.1 UH 3 9786480 lo0
  224 26.112.191.2 UCS 0 0 net0
 

 
苏ICP备09091153号 Copyright ® 2009 Design By Topsi.net.cn 隐私保护 | 联系我们 | 技术支持 | 众衡论坛