【IT168 报道】我们单位用SDH设备在山东省东部县市之间组了一个环网,除了传输单位内部的办公网(主要是互联网)外,也传输其它单位的一些专网。
即SDH设备负责提供传输通道,交换机负责各个网络业务的接入,这样网络结构比较简单明了,实际运行的状态也是比较稳定的,但是最近一段时间,由于泗水所用的一台连接用户的交换机(不是核心的华为3528交换机)出现环路故障,造成整个企业的所有业务都受到了影响,在老总的强压下,我们经过七个昼夜,终于查到了故障真凶,并解决了问题。
首战失利:追查ARP攻击无果
前一段时间,东环所在的曲阜经常有人反映说上网时经常出现丢包现象,联想到最近局域网中经常出现的ARP地址欺骗病毒,我就向曲阜分管网络的技术人员介绍了一下排查局域网中ARP地址欺骗病毒的方法,希望通过找到并解决感染ARP地址欺骗病毒的机器来解决丢包的问题,结果,曲阜那边还没有查出结果,泗水那边也反映上网时有严重的丢包,我也向泗水的技术人员介绍了排查局域网中ARP地址欺骗病毒的方法,结果泗水的同事很快的在局域网中就发现了感染病毒的机器,捎带着还发现了一个问题,即由于前几天下雨打雷,单位中有几台连接用户的交换机都出现若干端口损坏的情况。
由于泗水与曲阜的故障现象极为相似,所以我们也判断曲阜的丢包除了由于病毒的原因外,还有可能是交换机由于雷击出现了故障,但是这些猜想都需要等到下星期正式工作日的时候才能得出结果,因为双休日人员不在班上不好查。但是在星期天的时候,另外一个客户Q反映故障的电话让我们重新认识到故障的严重性,这是我们为该客户在济宁至曲阜间开通了一个专网,我先用图示说明一下网络结构(由于SDH可以视为透明传输的通道,所以在图中只画交换机的组网),如图2所示,
根据以前我们对于VLAN的理解,每个VLAN都是一个独立的广播域,可以有效防止VLAN之间的互相影响,但是这次Q客户的专网也反映有频繁的丢包发生,他们的网络出现病毒的机率要少的多,难道一个VLAN发生故障,会影响另外一个VLAN?带着这个疑问,我们咨询了华为公司交换机方面的技术人员,得到华为交换机有如下特性:
当系统发现Trunk或Hybrid端口上某个VLAN中的端口被环回时,则将该Trunk或Hybrid端口处于受控工作状态,同时删除该端口对应的MAC地址表项。
根据华为工程师的描述,我们登录到交换机上,查看华为3552交换机(即位于济宁的核心交换机)上查看日志文件,果然发现了大量的告警信息,如下所示:
%Jul 21 11:11:38 2007 ZXJF_3552 DRVNI/5/LOOP BACK:
Loopback does exist on Ethernet0/2 vlan 114, please check it
%Jul 21 11:12:09 2007 ZXJF_3552 DRVNI/5/LOOP BACK:
Loopback does exist on Ethernet0/2 vlan 114, please check it
这就明确的告诉我们,是泗水上互联网的那个VLAN存在环路,并在济宁的第2个网口(即连接东环的那个网口)上检测到该VLAN上有环路的存在,而且据我们对华为交换机的观察,当检测到环路存在时,TRUNK端口会断一下,而这个端口就是位于济宁3552交换机的2口,也就是连接东环的那个端口,这个端口上包括东环上所有的业务,当这个端口断一下的时侯,整个东环的所有业务也都会跟着断一下,这也就是所有的用户都会感觉到丢包的原因了。
接着我们又登录到泗水的交换机上,也发现类似的告警:
%Jul 22 15:43:56 2007 sishui-3528 DRV_NI/5/LOOP BACK:
Loopback does exist on port 24 vlan 114, please check it
%Jul 22 15:45:59 2007 sishui-3528 DRV_NI/5/LOOP BACK:
Loopback does exist on port 24 vlan 114, please check it
这又明白无误的告诉我们是泗水交换机的第24口存在环路,下面就是我们在泗水查找故障点的过程。
据我们以前的经验,交换机上存在环路可能是由于线路上的断路造成的,比如一根网线有8根金属线组成,如果其中的任何两根连在一起了,就会形成短路,从而造成交换机上面的环路,还是一种就更简单了,把一根网线插在同一个交换机的两个端口,一个完美的环路就形成了,严重的话,整个局域网就一下子瘫痪掉了。是不是泗水所带的用户线路由于雷击造成了线路的短路,从而造成了交换机的环路呢?
这个结构也不复杂,当时我们思路是定位在查找具体是交换机B及交换机C上面的哪个端口存在环路,采用如下方式查找(这时要先把华为3528交换机1口(即向上的级联口)的网线拨下来,防止查找故障的过程对上级的网络产生影响):
1、将交换机B至交换机C的级联的网线断掉,这时没有环路。
2、保持交换机B与C的断开状态,再将华为3528交换机至交换机B级联的网线插到交换机C上,这时有环路产生,说明是交换机C上面的端口存在环路。
那么再判断是交换机C上面的哪个端口存在环路,其实也有两个方案,但是当时我们有个同事一股脑把所有连接的用户的网线全部拨下来,仍然在华为3528交换机上检测到有环路出现,这时我们对于故障的判断就变成了可能是交换机本身就存在环路,而不是交换机上面的端口存在环路。
这时我们仔细观察交换机的状态,发现即使在不插任何网线的状态下,交换机上面仍然有几个端口的指示灯是亮的,到此时,我们确定判定此交换出现了环路故障。找到了故障点,更换了交换机C,故障就排除了。最近这几天不时的登录到华为交换机上查看日志文件,没有发现再有环路告警产生。
问题解决了,但这个问题却影响了公司几天正常业务,造成了无形的巨大损失。这么严重的问题,到底是因为什么原因造成的呢?我们不能不找出幕后真凶。
最基本的是交换机质量不好或老化,导致机器回路,但这可能性很小,因为这个华为交换机刚买不到一年,而交换机本身回路的可能性微乎其微。
我们突然想到了这个细节:泗水的同事很快的在局域网中就发现了感染病毒的机器,捎带着还发现了一个问题,即由于前几天下雨打雷,单位中有几台连接用户的交换机都出现若干端口损坏的情况。
有这样的可能:雷击不仅打交换机的端口打坏了,它还将交换机的内部电路击穿,从而导致交换机回路。 从当前的情况看,真凶基本上可以确定是雷击!
本来文章到这儿就可以结尾了,但是最近发生的一次故障又让我们对于交换机本身故障产生的故障对于整个局域网的危害产生了更深刻的认识。我们手头上有一台旧的交换机,好长时间没用了,正好最近需要临时扩展一个网络,就拿出来想试一下。
当时我们办公室是连的互联网(即外网),找了一个可以上网的网线,将其插到这台交换机上,再用一台笔记本接到这台交换机上,看能不能上网,发现不能上网,但是很快的其它屋里面的同事就打电话过来反映说他们屋里上不去网了,这时我们才意识到可能是由于这台交换机的原因引进的其它层里面的同事上网故障,这时重新我们这个楼层的交换机已经解决不了问题了,又重启的核心三层交换机才解决了问题。
事后我们回忆起来,原来这台交换机也是由于雷击以后出现故障,当时也只是以为是损坏了几个端口,想不到是整机都有问题。这还好是我们只影响了外网,如果将这台交换机直接接入到要扩展的网络(这可是一个很重要的内网啊),那问题可严重了。
这两起事件让我们对于由于雷击对交换机的损坏有了新的认识,即会使交换机本身就产生环路,从而对于整个网络产生严重的影响,如何有效的预防此类问题的产生是我们日后工作中需要重点解决的问题。