基于网络分析的故障检测 <?XML:NAMESPACE PREFIX = O />

前言

在对网络的管理和维护过程中,我们可能经常会遇到网络传输延迟导致上网连接时断时续或者出现上网速度异常缓慢的故障现象,并且,可能是一会正常,一会不正常,对于这类故障,相信是网络管理中比较难于判断和处理的。在对这类故障的处理中,通常的做法首先是采用 ping 测试, ping 网关、 DNS 或者外网 IP 的时候,几乎都会出现丢包或较大延迟的现象。那么,我们该如何准确、有效及快速的解决这类网络故障现象?以下是我自己在遇到此类故障时的一些解决方法和一点心得,希望和广大兄弟分享交流,并希望可以对广大的网管兄弟们带来一点启发!

  故障回放

      我们单位是一家以机械为主的制造企业,规模不大,局域网的只有近 100 台计算机,都 同时接入到了互联网,网络结构也比较简单,外网进来接的是侠诺路由器,路由器下接的是侠诺三层交换机,在交换机上做了 VLAN 划分, 192.168.0.0/24 为服务器群,其中, 192.168.0.3 同时提供 DHCP DNS 以及 AD 域控服务,其他的 VLAN 192.168.10.0/24 192.168.20.0/24 等共 5 VLAN ,局域网网络运行一直比较稳定。由于最近网络做了改造,采用了双 WAN 口访问,所以重新配置了路由器,网络产生了一些异常故障,具体现象为:某 VLAN 内的主机突然发生网络传输中断故障,不能连接 192.168.0.3 服务器,但是一段时间后(几分钟或几小时)又自动恢复正常,产生这种故障的主机不确定是某一台,偶尔是这台,偶尔又是另外一台,在故障发生的时候, ping 服务器 192.168.0.3 ,均能够 ping IP 地址,但却不能 ping 通域名,检查 DNS 服务器,未发现任何错误。

  故障排查

      经过分析,初步 认为该故障多半与广播风暴、网络病毒***等因素有关。为了进一步查找和定位故障原因,于是将笔记本连接到交换机上镜像端口,并运行科来网络分析系统来捕获网络的数据包通讯,希望能够借此快速的查明原因。

     大约 2 分钟后,停止捕获,现在对捕获的数据包进行详细的分析, 具体分析如下:

首先,通过科来的概要统计来看,网络的流量、广播流量、数据包大小分布以及 TCP 连接的信息均没有发现异常,随后,在诊断视图下看到,发生的网络事件全是 ICMP 主机重定向,达到了 1771 次,如下图:


查看这个事件的参考信息:“路由器向源主机发送一个主机重定向报文通知源主机有一条到达目的主机的更好的路由”。因此,从诊断视图的 ICMP 主机重定向,我们得到了一个重要的提示:网络中可能存在环路。再来到数据包视图,可以详细的查看到产生该问题的原因。打开数据包视图,数据包的概要统计如下图所示:


选择第 1 和第 2 个数据包,其详细的解码如下图所示:


从该数据包的解码中,可以看出,这是一个 ICMP 重定向数据包,大概的意思是:路由器 192.168.0.10 告诉 192.168.0.3 应该去访问 192.168.0.254 ,这才是一个更好的路径。查看该 ICMP 数据包携带的数据,这个数据包是由 192.168.21.172 在访问 192.168.0.3 时造成的。

继续往下看,这是第 3 个数据包的详细解码,只有一个字段发生了变化,就是生存时间( TTL ),我们都知道,一个 IP 数据包每经过一个路由,其 TTL 就会减 1 ,当 TTL 0 时还没有到达目的主机,则该数据包将被丢弃,从下图看到,该数据包的 TTL 值从第 1 个数据包的 12 变成了第 3 个数据包的 10 ,已经呈递减的趋势。


继续看第 4 、第 5 以及后面的数据包, TTL 值一直在递减,直到第 13 14 个数据包时, TTL 值为 0 ,显示超时。所以,从第 1 个数据包到第 14 个包, ICMP 数据包 里面的 IP 报头的 TTL 值不断递减,直到 TTL 超时,因此,明显是网络中产生了环路才会造成这种现象。而从数据包地址来看,产生 ICMP 重定向的地址全是 192.168.21 网段的主机 IP ,可能是在抓包的同时,正好是这个网段的主机与 192.168.0.3 通讯时产生了该事件。

至此,通过对科来网络分析系统捕获的数据通讯分析,我们已经可以确定,前面出现的故障现象肯定是有环路引起的,而结合前面配置路由表信息,终于找到了原因所在:原来是在配置路由表的时候,考虑不周到,由于在路由器添加了路由条目: 192.168.0.0/16 下一条 0.254 ,而在 254 上的路由条目却没找到 21 网段的匹配项,于是发给默认路由 192.168.0.10 ,而默认路由又去查找下一跳: 192.168.0.254 ,从而造成了环路。重新配置路由表后,改问题得到解决。

      其实,造成网络数据丢包现象的因素有很多,除了路由环路外,蠕虫病毒造成的***行为:如 ICMP 扫描***、 TCP 扫描***等都会造成类似的问题,在遇到这些问题时,如果采用常规的一些解决方法,可能会消耗太多的时间与精力,通过网络分析的检测手段,往往能够起到事半功倍的效果。所以,如果大家以后遇到类似的网络故障时,不妨使用网络分析的检测手段,一定能够快速的解决故障,希望这篇文章能给大家带来一些启发。
本文出自 “网络人生” 博客,请务必保留此出处http://lbzxy.blog.51cto.com/497155/163116