[不吐不快]关于一次离奇的网络故障。

2016-12-17 02:32:05 +08:00
 falseen

这件事呢,本来是不想发到网上的,因为我是个特立独行的人,不到万不得已我是绝不会到网上求助的。但这一次,我是真的没办法了,虽然事情已经过去了很久,并且故障已经得到了解决。但是对于故障的根本原因,我仍然是百思不得其解。所以思来想去还是决定发到这里,看看大家有没有什么高见。

事情是这样的:我是做网络维护的,前一段时间接到了一个单。有个客户的网络出了点故障,让我过去看看。我去到了以后发现他们整个局域网都瘫痪了。网络结构也不是很复杂,都是一些傻瓜型的二层交换机。我注意到交换机的灯闪的非常慢,说明此时的数据量是比较小的。稍微了解了一下情况之后我开始接上电脑 ping 网关,不通, ping 同网段的其他设备,也不通。于是接上电脑开始抓包,这时令我震惊的一幕出现了---我惊奇的发现我竟然收到了网关的回应包( ICMP ),但是为什么之前 ping 的时候却显示超时呢 ?我又 ping 了一次,还是显示超时。这时我真的有点不敢相信自己的眼睛了,难道我见鬼了吗?我盯着网关返回来的包看了很久很久,然后突然想到会不会是 IP 包的校验码不对?因为之前就一直怀疑可能存在 ARP 攻击,所以 IP 包校验码错误也不是没有可能的。正当我准备用 python 重新计算校验码之际,我突然瞥到了 wirshark 中 ICMP 的一个值:[Response time: 4018.850 ms]。靠,搞了半天原来是这个原因。原来真的是“超时”了啊!

但是,为什么会超时呢?同一个局域网内怎么会超时呢 ?为什么网关过了那么久才回应?是网关的问题?还是交换机的问题?抑或是真如我所料出现了 ARP 欺骗?于是我开始慢慢排查原因,在检查了 MAC 地址和分析了大量的数据包之后,我基本上排除了 ARP 欺骗。数据包看起来没有任何异常。在用尽了各种办法之后,我开始用最原始的排除法来找原因---分别拔下交换机上的网线,从而找到是哪台设备出了问题。他们大概有四台二层交换机,每台交换机上都接了很多设备。于是我开始拔掉这些二层交换机上的主网线,在拔掉一台交换机上的主网线之后,网络立马恢复了正常,插上,网络又立马瘫痪。反复多次之后基本上确定了就是这台设备的问题。为了节省时间,我直接换了一台新的交换机。但是换上之后问题还是存在,说明不是交换机的问题。于是开始依次拔掉这台交换机上的网线,可能是我的运气不太好,在拔掉最后一根网线的时候,网络才恢复了正常。然后我反复的拔掉网线又插上网线,最终找到了两台有问题的 PC 。只要把这两台 PC 的网线一插上,网络就整个瘫痪。一拔掉,网络立马就恢复。

我以为找到了原因,剩下的就好办了。但事实完全相反,真正麻烦的才刚刚开始。我一开始怀疑是病毒,所以首先是在故障 PC 进行了抓包,没有发现任何异常。然后用 U 盘进入 PE ,把 IP 设置成原来的,发现一切正常,网络没有出现问题。于是开始在 PE 下杀毒,花了很长时间,终于杀完了,但重启之后问题依旧。这时候我开始头疼了,杀毒无效,那就只能重装系统了。但此时我发现了一个更加令人震惊的事实,我在另外一台故障 PC 上进入 win7 PE 之后问题竟然又出现了(之前那台进的是 03PE ,故障 PC 也是 win7 系统)!!这个时候我是有点懵逼的,不知道该怎么办。我不敢相信在 PE 中也会出现这种情况,难道是 PE 的问题?虽然心中有疑惑,但此时我已经没有别的选择了,只能硬着头皮重装系统。祈祷重装之后一切都恢复正常。但结果总是事与愿违。。。

花了很长时间把两台 PC 都重装了系统之后,我以为问题会得到解决,但结果却是。。。。问题依旧!!还是只要接上网线,整个网络就瘫痪。这个时候我是崩溃的,习惯性的打开 wireshark 抓包,依旧没有任何异常!这该如何是好啊,我看了一下时间,已经下午五点多了,人家也快到下班时间了。从上午 10 点多到下午五点多,搞了这么久也没搞好。我一直认为是在网络方面的经验还是挺丰富的,没想到竟然被这个问题给难倒了。唉。想了一下,时间也不早了,我要尽快做出决定。思索了一番之后,我决定做最后一次尝试---更新网卡驱动。说实话,在试之前我是没有抱太大希望的,纯粹是死马当活马医。正所谓“有心栽花花不开,无心插柳柳成荫”,我万万没想到的是,在更新了网卡驱动之后奇迹出现了---网络竟然不再瘫痪了!问题解决了!我做梦也没想到竟然是网卡驱动的问题!这让我有点欣喜若狂,总算是可以交差了。于是就这样问题得到了圆满的解决,在跟客户说明了问题和解决过程之后我就走了。

本来这件事到这里基本上就结束了,但偏偏我是个喜欢刨根问底的人。虽然那天的问题解决了,但对于问题的根本原因,我仍然是百思不得其解。我想不明白一张网卡是如何影响整个网络的,更想不明白如何在数据包没有任何异常的情况下影响整个网络。即便是网卡有问题,也不可能说影响整个网络,更何况网卡本身没有太大问题,只是驱动可能存在一些 BUG 。但是一个有问题的网卡驱动又是如何影响整个网络的呢?那天晚上回去之后,我开始分析白天保存的数据包,上网查了很多资料,也问了很多朋友。但始终没有得到满意的答案。有朋友说,可能是在物理层影响的,所以抓不到异常的包。但是在我看来,如果是物理上的影响的话,应该只会影响当前的交换机,不会影响跟它相连的其它交换机才对。但实际情况却是,出现问题的时候,其他相邻的交换机也瘫痪了。真是百思不得其解啊。

以上就是这次离奇的网络故障的全部经过,为了各位能完全明白当时的情况,写的稍微有点啰嗦,请大家见谅。我本身很少在网上发帖,这次发帖主要是想听听大家的意见,毕竟一个人的思维是有限的。希望大家能帮我分析一下导致这次网络故障的根本原因,感激不尽!

补充:暂时不知道怎么发图,稍后再把图补上吧。

9078 次点击
所在节点    DevOps
55 条回复
cnusrso
2016-12-17 02:43:54 +08:00
应该备份下旧的网卡驱动,有时间可以分析。
falseen
2016-12-17 02:50:49 +08:00
@cnusrso 最重要的一点忘说了,两台故障 PC 的网卡是同一型号的板载网卡,其他没有故障的 PC 的网卡型号跟他们两个不一样。

网卡的型号是 qualcomm atheros ar8151 ,驱动是 GHOST 系统自带的,以及 win7PE 自带的驱动,也是同样的情况。
lydasia
2016-12-17 03:02:17 +08:00
Ghost ,盗版不说,也太业余了吧。
falseen
2016-12-17 03:02:40 +08:00
另外需要补充的一点是,用 03PE 自带的驱动是没有任何问题的。而且在问题出现之前,他们的系统和驱动都没有人动过。那之前他们的 PC 是如何正常工作的?为何突然就不能正常工作了呢 ?如果是物理上的原因的话,不可能两台 PC 的网卡同时坏掉。我觉得最有可能的情况是网卡驱动本身存在 BUG ,但在一般情况下,这个 BUG 不会发作。只有某种特殊的条件满足的时候,这个 BUG 才会显现出来。那么这个特殊的条件又是什么呢 ?什么样的网络环境才会导致这个 BUG 的发作 ?
falseen
2016-12-17 03:03:59 +08:00
@lydasia 时间就是金钱啊,用原版去装那得浪费多少时间。
ewBuyVmLZMZE
2016-12-17 03:11:51 +08:00
MAC 冲突了而已
falseen
2016-12-17 03:14:45 +08:00
补一张图,其中 192.168.1.1 是网关:

[Imgur]( )
longear
2016-12-17 05:24:55 +08:00
认真看完了,行文流畅,有种惊悚的感脚 🙃
dynaguy
2016-12-17 05:31:22 +08:00
arp flood/storm?
gino86
2016-12-17 08:22:58 +08:00
记得以前遇到过类似的,一台电脑 Hardware Malfunction 蓝屏,结果整个网络瘫了
21grams
2016-12-17 08:29:50 +08:00
没必要深究,一台电脑搞得整个网络瘫痪是很常见的事
ovear
2016-12-17 08:46:43 +08:00
看看网卡驱动更新日志
我能想到的是网络风暴,但是流量很小就不怎么符合了
Fleey
2016-12-17 08:47:57 +08:00
好东西 - - 有时间我也去研究一下。这东西威力巨大
nikoo
2016-12-17 08:50:43 +08:00
两台有问题的 PC 是新接入的机器?还是之前没问题突然出问题了?
zangev5
2016-12-17 09:23:26 +08:00
我居然看完了,厉害了我的楼主
xfspace
2016-12-17 09:43:22 +08:00
用的 Ghost ,估计驱动被植入病毒(要不就是 BUG),把路由器弄死了,看看进程和负载,揪出那个进程。
你也说到,傻瓜交换,那整个局域网都是同一广播域,同一路由器做网关,路由器处于半挂死状态,数据自然出不去。
cnkuner
2016-12-17 09:46:20 +08:00
我看到中间的时候就感觉是网卡的问题。
其实将网线中的两条短路也有这个效果。
mortal
2016-12-17 09:48:58 +08:00
不太清楚,我只知道我家大法电视要是 LAN 连接到路由器上,网就瘫痪了;只能用 WLAN 。
yydcool
2016-12-17 10:00:39 +08:00
@falseen ghost 装系统很好用啊
a2
2016-12-17 10:10:47 +08:00
Too long

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/328213

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX