网络故障分析案例:快速定位异常流量原因
2007-07-16    何黎明 李果 黄振   
打印自: 安恒公司
地址: HTTP://jackpapid.anheng.com.cn/news/article.php?articleid=1146
网络故障分析案例:快速定位异常流量原因,

编者按:对于当前的网络主管们,最关心的莫过于:当出现网络故障时,如何进行快速的定位?本文以解决冲击波病毒为例,从设备故障、网络流量、协议分析等多种途径分析网络故障来源之所在,最后总结出解决网络故障的一般思路和方法。

笔者所维护的网络是某省政府电子政务网专网,它覆盖全省、市、县(区)三级党政机关,鉴于它的典型性和广泛性,我希望将自己两年来分析定位及解决网络故障的经验与大家分享,共同进步。

网络医生前提:了解对手

网络故障的现象总是多种多样,令人扑嗍迷离,然而最终追究起原因,大抵分为以下几个层面的故障:物理层中物理设备相互连接失败或者硬件及线路本身的问题;数据链路层的网络设备的接口配置问题;网络层网络协议配置或操作错误;传输层的设备性能或通信拥塞问题;上三层或网络应用程序错误。 而如今,随着黑客集团的迅速崛起,网络病毒日益猖獗,病毒的种类繁多且攻势强大,这种故障占据了网络故障的80%以上。

所以想成为一名优秀的网络管理工程师,必须对时下的各种病毒特征有着基本的了解,当遇到网络病毒引起的网络故障时才能准确定位并及时排除。

下面,我借助自己所遇到的一则实例向大家讲述遇到网络病毒引起的故障时的定位及解决的典型过程,我所维护的网络环境为:港湾Flex2024E作为接入交换机下接用户,上联当地汇聚交换机Flex5010,Flex5010通过光纤上联到市级政务信息网平台。

拓扑图为:


故障定位一:排除线路故障可能

2005年2月24日,我们在网管平台监控发现宜春市袁州区Flex5010时通时断,网络延时大,有丢包现象发生。

 

但是所运行的业务正常。2月25日,该设备时通时断的频率变大了,有时候还不能远程telnet登陆设备进行管理查看。

在保证中间物理线路畅通的前提下,一般面对设备时通时断,首先应该登陆设备查看设备的板卡是否正常,查看设备的各项性能参数是否正常,如内存利用率,cpu利用率,各个端口实时速率是否在正常范围内。

我们在联系当地网管中心确保线路无故障后,登陆设备查看Flex5010 cpu利用率,高达60%

sh cpu u
YC_YZSFH5010_01(config)# sh cpu usage
cpu usage: 60%

并实时监控交换机带宽,如下图。发现端口(流入流出)流量并不大,25口为上行端口,最大流量还没有500kbps。下联端口最大流量的端口11,流量还没有100kbps。


故障定位二:是交换机,还是下挂用户有问题?

于是联系当地信息中心询问情况,反映上网速度很慢,几乎上不了。拔掉流量较大的几个端口port11、port9的双绞线,过段时间观测,正常。但是一旦插上port9、port11的双绞线,过一段时间观测,设备又有上述问题。当地信息中心工程师得出结论是,Flex5010只能下接8个交换机,如果在任意端口下加挂一台交换机的话,就会出现问题:设备down,不能远程登陆,用户不能上网。

出现上述情况只有两种可行性:一是Flex5010交换机设备本身有问题,二是交换机下挂交换机用户有病毒。后联系港湾工程师,反映设备出现问题的概率很小,建议抓包看看是否有病毒。

在Flex5010上,做端口镜像,用sniffer pro进行抓包分析:
启用镜像组1,将交换机端口23作为监控端口,下接装有sniffer pro软件的pc。

Harbour(config)#config mirroriing 1 to 23
24口为上行口,添加被镜像端口24
Harbour(config)#config mirroring 1 add port 24 egress (出端口的数据流
Harbour(config)#config mirroring 1 add port 24 inress(入端口的数据流)

在端口23接一台装有sniffer pro软件的电脑上面,抓包如下图:

 

通过上图可以看出,ip地址为10.98.21.30的pc向外发送了大量目的端口为139帧长为66字节的数据包。很明显,这是冲击波病毒在作怪。冲击波(Worm.Blaster)病毒2003年8月12日全球爆发,该病毒由于是利用系统漏洞进行传播,没有打补丁的电脑用户都会感染该病毒,从而使电脑出现系统重启、无法正常上网等现象。冲击波(Worm.Blaster)病毒利用的是系统的RPC DCOM漏洞,监听端口69,模拟出一个TFTP服务器,并启动一个攻击传播线程,不断地随机生成攻击地址,尝试用有RPC漏洞的135、139端口进行传播,病毒攻击系统时会使RPC服务崩溃。

 

故障定位三:锁定冲击波病源

我们知道,超长帧(超过1518字节)有封闭网络的作用,主要是引起网络速度变慢或网络瘫痪,而短帧(小余64字节)达到一定流量则会对网络设备的工作协议造成一定程度的破坏,引起设备死机,一般在网络中是不容许大量出现的。小包同样存在这样的问题。由于开始Flex5010下挂少量用户交换机,这个时候网络中短帧虽然存在,但是交换机cpu还有能力处理,一旦超过交换机的负荷(增加下挂用户交换机),网络中存在大量冲击波病毒向外发包(发送目的地址并不存在的arp请求,交换机得到请求之后,不断去寻找目的地址,但是实际上不能转发该报文),当所有的下挂用户电脑中的冲击波同时并发时,交换机这个时候就处理不过来;又因为是小包,故网络带宽并不大。

针对上述分析,在Flex5010上做常见病毒acl访问控制,关闭病毒端口。

启用acl
Harbour(config)#service acl enable
针对常见病毒端口,制定相应的规则,阻止其传播。

Harbour(config)#create acl acl1 tcp DIP any ip-port 113 SIP any ip-port any deny ports any
Harbour(config)#create acl acl2 udp DIP any ip-port 135 SIP any ip-port any deny ports any
Harbour(config)#create acl acl3 tcp DIP any ip-port 135 SIP any ip-port any deny ports any
Harbour(config)#create acl acl4 udp DIP any ip-port 137 SIP any ip-port any deny ports any
Harbour(config)#create acl acl5 udp DIP any ip-port 138 SIP any ip-port any deny ports any
Harbour(config)#create acl acl6 tcp DIP any ip-port 139 SIP any ip-port any deny ports any
Harbour(config)#create acl acl7 udp DIP any ip-port 139 SIP any ip-port any deny ports any
Harbour(config)#create acl acl8 udp DIP any ip-port 445 SIP any ip-port any deny ports any
Harbour(config)#create acl acl9 tcp DIP any ip-port 445 SIP any ip-port any deny ports any
Harbour(config)#create acl acl10 tcp DIP any ip-port 593 SIP any ip-port any deny ports any
Harbour(config)#create acl acl11 udp DIP any ip-port 593 SIP any ip-port any deny ports any
Harbour(config)#create acl acl12 tcp DIP any ip-port 1022 SIP any ip-port any deny ports any
Harbour(config)#create acl acl13 tcp DIP any ip-port 1023 SIP any ip-port any deny ports any
Harbour(config)#create acl acl14 tcp DIP any ip-port 1025 SIP any ip-port any deny ports any
Harbour(config)#create acl acl15 tcp DIP any ip-port 1029 SIP any ip-port any deny ports any
Harbour(config)#create acl acl16 tcp DIP any ip-port 1034 SIP any ip-port 80 deny ports any
Harbour(config)#create acl acl17 tcp DIP any ip-port 1068 SIP any ip-port any deny ports any
Harbour(config)#create acl acl18 udp DIP any ip-port 1434 SIP any ip-port any deny ports any
Harbour(config)#create acl acl19 tcp DIP any ip-port 1871 SIP any ip-port any deny ports any
Harbour(config)#create acl acl20 tcp DIP any ip-port 2745 SIP any ip-port any deny ports any
Harbour(config)#create acl acl21 tcp DIP any ip-port 3067 SIP any ip-port any deny ports any
Harbour(config)#create acl acl22 tcp DIP any ip-port 3127 SIP any ip-port any deny ports any
Harbour(config)#create acl acl23 tcp DIP any ip-port 3208 SIP any ip-port any deny ports any
Harbour(config)#create acl acl24 tcp DIP any ip-port 4331 SIP any ip-port any deny ports any
Harbour(config)#create acl acl25 tcp DIP any ip-port 4334 SIP any ip-port any deny ports any
Harbour(config)#create acl acl26 tcp DIP any ip-port 4444 SIP any ip-port any deny ports any
Harbour(config)#create acl acl27 tcp DIP any ip-port any SIP any ip-port 4444 deny ports any
Harbour(config)#create acl acl28 tcp DIP any ip-port 4510 SIP any ip-port any deny ports any
Harbour(config)#create acl acl29 tcp DIP any ip-port 4557 SIP any ip-port any deny ports any
Harbour(config)#create acl acl30 tcp DIP any ip-port 5554 SIP any ip-port any deny ports any
Harbour(config)#create acl acl31 tcp DIP any ip-port 5800 SIP any ip-port any deny ports any
Harbour(config)#create acl acl32 tcp DIP any ip-port 5900 SIP any ip-port any deny ports any
Harbour(config)#create acl acl33 tcp DIP any ip-port 6129 SIP any ip-port any deny ports any
Harbour(config)#create acl acl34 tcp DIP any ip-port 6667 SIP any ip-port any deny ports any
Harbour(config)#create acl acl35 tcp DIP any ip-port 9995 SIP any ip-port any deny ports any
Harbour(config)#create acl acl36 tcp DIP any ip-port 9996 SIP any ip-port any deny ports any
Harbour(config)#create acl acl37 tcp DIP any ip-port 10080 SIP any ip-port any deny ports any
Harbour(config)#create acl acl38 tcp DIP any ip-port 20168 SIP any ip-port any deny ports any

做上述操作之后,网络正常,flex5010再也不会时通时断了。在下班时刻(此时几乎没有什么用户在上网)查看设备端口:

Harbour(config)#sh po 9 st
---------------------------------------------------------------------------
                 Port:9 's Statistics Information

Tx good frames     : 0               Tx total frames    : 0              
Tx multicast frames: 0               Tx broadcast frames: 0              
Rx good frames     : 328             Rx total frames    : 328            
Rx multicast frames: 61              Rx broadcast frames: 185            

CRC error frames   : 0               Oversize frames    : 0              
Fragments          : 0               Jabber             : 0              
Dropped frames     : 0               Undersize frames   : 0              
Collision          : 0               Late collision     : 0              

Last 5 minutes ucast input rate             0 packets/sec
Last 5 minutes ucast output rate            0 packets/sec
Last 5 minutes mcast input rate             0 packets/sec
Last 5 minutes mcast output rate            0 packets/sec
Last 5 minutes bcast input rate             0 packets/sec
Last 5 minutes bcast output rate            0 packets/sec
Last 5 minutes input rate                   15 bits/sec
Last 5 minutes output rate                  0 bits/sec
Harbour(config)#

此时网络中仍有冲击波病毒:交换机端口9收到了328个数据包,因交换机启用了acl,对比后认为是病毒并丢弃,结果交换机全部丢弃,传输了0个数据包。第二天通知当地给电脑打好补丁并及时查杀病毒,网络恢复正常运行。

 

后记:

网络故障诊断以网络原理、网络配置和网络运行的知识为基础。从故障现象出发,以网络诊断工具为手段获取诊断信息,确定网络故障点,查找问题的根源,排除故障,恢复网络正常运行。

解决网络病毒引起的网络突发故障,需要综合利用各种网管工具。营造一个安全顺畅的网络环境,需要用户端电脑及时打好操作系统补丁,更新杀毒软件病毒库;需要我们网管在交换机、路由器设备上及时做好针对各种病毒、木马的acl,过滤一些有害的端口,保障网络的稳定运行。

 

责任编辑: admin