前言
在对网络的管理和维护过程中,我们可能经常会遇到网络传输延迟导致上网连接时断时续或者出现上网速度异常缓慢的故障现象,并且,可能是一会正常,一会不正常,对于这类故障,相信是网络管理中比较难于判断和处理的。在对这类故障的处理中,通常的做法首先是采用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次,如下图1:
查看这个事件的参考信息:"路由器向源主机发送一个主机重定向报文通知源主机有一条到达目的主机的更好的路由"。因此,从诊断视图的ICMP主机重定向,我们得到了一个重要的提示:网络中可能存在环路。再来到数据包视图,可以详细的查看到产生该问题的原因。打开数据包视图,数据包的概要统计如下图2所示:】
选择第1和第2个数据包,其详细的解码如下图3所示:
从该数据包的解码中,可以看出,这是一个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时还没有到达目的主机,则该数据包将被丢弃,从下图4看到,该数据包的TTL值从第1个数据包的12变成了第3个数据包的10,已经呈递减的趋势。图4:
继续看第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扫描攻击等都会造成类似的问题,在遇到这些问题时,如果采用常规的一些解决方法,可能会消耗太多的时间与精力,通过网络分析的检测手段,往往能够起到事半功倍的效果。所以,如果大家以后遇到类似的网络故障时,不妨使用网络分析的检测手段,一定能够快速的解决故障,希望这篇文章能给大家带来一些启发。