这件事呢,本来是不想发到网上的,因为我是个特立独行的人,不到万不得已我是绝不会到网上求助的。但这一次,我是真的没办法了,虽然事情已经过去了很久,并且故障已经得到了解决。但是对于故障的根本原因,我仍然是百思不得其解。所以思来想去还是决定发到这里,看看大家有没有什么高见。
事情是这样的:我是做网络维护的,前一段时间接到了一个单。有个客户的网络出了点故障,让我过去看看。我去到了以后发现他们整个局域网都瘫痪了。网络结构也不是很复杂,都是一些傻瓜型的二层交换机。我注意到交换机的灯闪的非常慢,说明此时的数据量是比较小的。稍微了解了一下情况之后我开始接上电脑 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 。但是一个有问题的网卡驱动又是如何影响整个网络的呢?那天晚上回去之后,我开始分析白天保存的数据包,上网查了很多资料,也问了很多朋友。但始终没有得到满意的答案。有朋友说,可能是在物理层影响的,所以抓不到异常的包。但是在我看来,如果是物理上的影响的话,应该只会影响当前的交换机,不会影响跟它相连的其它交换机才对。但实际情况却是,出现问题的时候,其他相邻的交换机也瘫痪了。真是百思不得其解啊。
以上就是这次离奇的网络故障的全部经过,为了各位能完全明白当时的情况,写的稍微有点啰嗦,请大家见谅。我本身很少在网上发帖,这次发帖主要是想听听大家的意见,毕竟一个人的思维是有限的。希望大家能帮我分析一下导致这次网络故障的根本原因,感激不尽!
补充:暂时不知道怎么发图,稍后再把图补上吧。
1
cnusrso 2016-12-17 02:43:54 +08:00 via Android
应该备份下旧的网卡驱动,有时间可以分析。
|
2
falseen OP @cnusrso 最重要的一点忘说了,两台故障 PC 的网卡是同一型号的板载网卡,其他没有故障的 PC 的网卡型号跟他们两个不一样。
网卡的型号是 qualcomm atheros ar8151 ,驱动是 GHOST 系统自带的,以及 win7PE 自带的驱动,也是同样的情况。 |
3
lydasia 2016-12-17 03:02:17 +08:00
Ghost ,盗版不说,也太业余了吧。
|
4
falseen OP 另外需要补充的一点是,用 03PE 自带的驱动是没有任何问题的。而且在问题出现之前,他们的系统和驱动都没有人动过。那之前他们的 PC 是如何正常工作的?为何突然就不能正常工作了呢 ?如果是物理上的原因的话,不可能两台 PC 的网卡同时坏掉。我觉得最有可能的情况是网卡驱动本身存在 BUG ,但在一般情况下,这个 BUG 不会发作。只有某种特殊的条件满足的时候,这个 BUG 才会显现出来。那么这个特殊的条件又是什么呢 ?什么样的网络环境才会导致这个 BUG 的发作 ?
|
6
ewBuyVmLZMZE 2016-12-17 03:11:51 +08:00
MAC 冲突了而已
|
7
falseen OP |
8
longear 2016-12-17 05:24:55 +08:00 8
认真看完了,行文流畅,有种惊悚的感脚 🙃
|
9
dynaguy 2016-12-17 05:31:22 +08:00
arp flood/storm?
|
10
gino86 2016-12-17 08:22:58 +08:00
记得以前遇到过类似的,一台电脑 Hardware Malfunction 蓝屏,结果整个网络瘫了
|
11
21grams 2016-12-17 08:29:50 +08:00 via Android
没必要深究,一台电脑搞得整个网络瘫痪是很常见的事
|
12
ovear 2016-12-17 08:46:43 +08:00 via Android
看看网卡驱动更新日志
我能想到的是网络风暴,但是流量很小就不怎么符合了 |
13
Fleey 2016-12-17 08:47:57 +08:00
好东西 - - 有时间我也去研究一下。这东西威力巨大
|
14
nikoo 2016-12-17 08:50:43 +08:00
两台有问题的 PC 是新接入的机器?还是之前没问题突然出问题了?
|
15
zangev5 2016-12-17 09:23:26 +08:00 1
我居然看完了,厉害了我的楼主
|
16
xfspace 2016-12-17 09:43:22 +08:00 via Android
用的 Ghost ,估计驱动被植入病毒(要不就是 BUG),把路由器弄死了,看看进程和负载,揪出那个进程。
你也说到,傻瓜交换,那整个局域网都是同一广播域,同一路由器做网关,路由器处于半挂死状态,数据自然出不去。 |
17
cnkuner 2016-12-17 09:46:20 +08:00 via Android
我看到中间的时候就感觉是网卡的问题。
其实将网线中的两条短路也有这个效果。 |
18
mortal 2016-12-17 09:48:58 +08:00
不太清楚,我只知道我家大法电视要是 LAN 连接到路由器上,网就瘫痪了;只能用 WLAN 。
|
20
a2 2016-12-17 10:10:47 +08:00 via iPhone
Too long
|
21
xmh51 2016-12-17 10:18:05 +08:00
目测广播风暴 好多人都是这样,一台电脑瘫痪整个局域网。
http://www.clxp.net.cn/thread-1993-1-1.html |
22
a87150 2016-12-17 10:44:19 +08:00
勉強になります
|
24
zjqzxc 2016-12-17 11:17:06 +08:00
在学校的时候处理过一次广播风暴,因为二层交换机有管理功能,直接看端口流量发现异常了,封端口问题解决。(后续我没再跟进);
当时连入网络的机器有 10MB/s 的下行流量(百兆网),抓包后发现大量广播包,很容易判定。如果说楼主抓包未见异常,交换机灯闪烁比较慢,估计不是广播风暴。 不知道楼主有没有保存当时抓包的结果呢 想了半天,认为可能的(非根本)原因是路由上的交换机芯片超载或者是路由器超载了,诱因可能是那两台电脑向网关发送了异常的包导致交换机(指的是路由器上的交换机芯片或者路由器本身)死循环了。 根本原因猜不到,对数据链路层没研究过,不知道有没有一些特殊的包可以骗交换机进入死循环。。如果楼主抓包时间足够的话,可能已经抓到了可能是罪魁祸首的包。 |
25
wemore 2016-12-17 12:04:30 +08:00 via iPhone
借楼主帖问个问题,我的腾讯云 centos6 ping 显示 unknown host 。 ping ip 没问题, dns 也没改过,网卡服务重启,机子重启也不行。在安全组也是全放行的,防火墙啥的应该没有开,各位有啥解决方法吗_(:з」∠)_
|
26
redsonic 2016-12-17 12:46:53 +08:00
我怎么感觉是那些傻瓜型的二层交换机的锅。 回想上大学的那会儿,宿舍两个网口,有 SB 把两个口直接连起来了,先后导致楼栋里的两台华为交换机烧了,后来换思科的就没事了。难道华为的连防风暴的功能都没有,现在想想那会儿华为还是皮包公司也就说的通。
|
27
redsonic 2016-12-17 12:59:26 +08:00
关于网络设备的缺陷我又想到一个, intel ping of death ,就是发一些 icmp 包就能让 intel 网卡内部重启:
http://www.kriskinc.com/intel-pod 这个我经历过,从此认识到硬件开源的重要性。 |
28
ndd200 2016-12-17 13:15:54 +08:00
十几年前。我碰到过和楼主类似的经历。
某一批板载网卡,会乱发包导致整个交换机断网。 每次只要重启交换机就能好,而且那批机器数量很大。当时也很难想到是一整批网卡的问题,单台拿出来用怎么都是正常的。 所以问题最终定位花了一个多月。最后,换了更好的交换机再没故障过。 |
30
MasterMonkey 2016-12-17 15:15:34 +08:00 via iPad 1
看楼主这么难过,我分享下我的经历吧,大概十年前我们机房的电脑总是启动不了,搞不明白,后来发现不联网线就可以,启动后联网就可以。
后来不服气,接上网络软件分析下,果然有奇怪的包,再后来,没继续关注。 我对开机之前电脑基于网络进行的操作只局限于 Wake on lan ,但是,显然还有更多可能,应该有规范说明,或者网卡自己的特殊指令,这也说明了商业的产品里面有多少后门你根本不知道。 |
31
iCyMind 2016-12-17 15:54:56 +08:00 via Android
文笔真棒,各种疑问句抛出悬念,引人入胜,楼主没少看走进科学吧
|
32
guanaco 2016-12-17 16:24:39 +08:00
mac 问题
|
33
falseen OP @zjqzxc 你说的也有道理。确实有可能是故障 PC 向交换机发了一个特殊的包,导致交换机进入死循环。如果是这样的话,那这种发包频率肯定很频繁。因为实际情况是只要插上网线网络就瘫痪,拔掉,网络就恢复。我结合这个情况查找了故障 PC 的发包记录,发现最频繁的是 DNS 请求,其次是一些软件的请求。但是,这其中并没有异常包。
另外需要说明的是,故障出现的时候,不止是网关 ping 不同,其他同网段的 PC 也 ping 不通。 通过抓包来看,故障 PC 偶尔是可以正常通信的(其他是 PC 完全无法通信,当然 UDP 包是可以收到的,因为 UDP 不存在超时),但无法 ping 通网关,也无法打开网页(当然,所有对外的通信都是经过网关的, MAC 地址是一致的)。如图: |
35
yekailee 2016-12-17 17:30:52 +08:00 via Android
检查 mac 地址没有,是不是网卡 mac 地址和网关一样的?
|
36
D3EP 2016-12-17 17:40:40 +08:00 via Android
可能和 mac 地址有关?
|
37
datocp 2016-12-17 18:55:50 +08:00
遇到过 2 次广播风暴,
一次是人家不懂,一根网络接在交换机 2 个口上。 第二次是教学软件 netop school 产生的广播包冲击主路由, 最终解决方法,由于 vlan5 里所有的设备都是用静态网关就直接把所有的广播,多播全部丢弃 insmod ebtables insmod ebtable_filter insmod ebt_pkttype iptables -I INPUT -i vlan5 -m pkttype --pkt-type broadcast -j DROP iptables -I INPUT -i vlan5 -m pkttype --pkt-type multicast -j DROP #iptables -I INPUT -i vlan5 -m pkttype --pkt-type unicast -j DROP 该包不能丢弃,不然网络访问有问题。 如果知道是哪个端口的话也可以这样 1900 是 windows 的 upnp 1971 netop school 10001uap 广播包 iptables -I INPUT -p udp -m multiport --dport 1900,1971,10001 -d 255.255.255.255 -j REJECT --reject-with icmp-proto-unreachable |
38
raptor 2016-12-17 19:24:03 +08:00
这种问题我的经验一般是硬件问题,可能是因为网卡发生了某种硬件故障,而原来的驱动无法处理,换了驱动只是暂时解决,可能未来某个时候这种故障还会扩大。
|
39
alect 2016-12-17 21:12:56 +08:00
我之前的一个台式机也是出现过这个问题,插上网线后发现网卡的流量包突增,新装系统也不行,网络几分钟就瘫痪了,然后插上无线网卡上网没问题
|
40
cat9life 2016-12-17 21:20:58 +08:00 via Android
交换机要是有 snmp 的话 建议监控交换机的 cpu 内存使用率。细节分析估计就麻烦了,真得去反编调试分析驱动了。
|
41
mazyi 2016-12-17 21:59:01 +08:00
不是网络风暴,我感觉可能是那两台 PC 的网卡和交换机的某个 bug 撞到一起了,我觉的只要用相同的网卡和交换机应该是可以重现问题的,这样的话就只需要在连接上问题 PC 之前一直对交换机进行监控就可以了,这样应该可以找到最终的问题。
数据量很小 and 并不是丢包而是响应时间变得超长很有可能是问题 PC 的网卡伪装了。 |
42
etnperlong 2016-12-17 22:04:56 +08:00
一字一句看完了,有种悬疑小说的感觉。最有可能应该是硬件 bug ,收到特殊构造的包,导致交换机死循环吧。
|
43
jimzhong 2016-12-17 22:39:07 +08:00
你需要一个有端口镜像功能的三层交换机。
|
44
lemonda 2016-12-17 22:47:28 +08:00
没人和楼主一样有过这种问题解决了但是不明白为什么如鲠在喉的感觉么
|
45
wohenyingyu02 2016-12-17 23:07:31 +08:00 via iPhone
楼主是写小说出生的么,剧情描绘的跌宕起伏,有理有据,一看根本停不下来,表达清晰无比,如此复杂的情况大家一看就懂,和 V2EX 其他问题求助帖有天壤之别,实在佩服。
|
46
MikuM97 2016-12-17 23:20:17 +08:00
蛋疼的是,级联的都是傻瓜交换机,如果级联的是可网管的交换机,应该去交换机上面看看 cpu 占用,以及 mac 地址表是不是有翻动的情况。根据你的描述,问题应该出现在网卡驱动上面,如果你有驱动备份以及相应的硬件,可以尝试复现这个问题,然后用有端口镜像功能的交换机抓包试试。
|
49
webjin1 2016-12-18 02:25:06 +08:00 via Android
百度搜下 vlan 1 攻击。可网管交换机我们也不用默认 vlan1
|
50
rssf 2016-12-18 08:55:46 +08:00 via iPhone
做网络维护你居然用 ghost 系统,明显是给自己挖坑
|
51
realpg 2016-12-18 22:45:54 +08:00
@falseen 回复 33 楼
你这根本明显就不是三层以及更高层的问题 你总拿抓到的解析过的三层包说事儿…… 另外 回复你的整体这个问题 这并不是网卡驱动 BUG 。你进 windows 网络,右键有线网卡属性(本地连接),点配置,高级 看到会有一系列更高级的底层参数了吧? 你重装驱动的过程会重置这些参数到默认。 你这个问题很有可能就是这些底层的参数被用户瞎改了,这里面会有很多网卡的高级功能,有很多是独家的比如各家的巨大帧之类的开关,比如一些特殊的 VLAN 透传策略,比如各家自定义的 trunk 模式,很可能其中一个被用户瞎改了,这里发出去的就不是标准的包了,而交换机处理这种异常会耗死 CPU ,导致网络处理能力下降,继而导致转发性能下降…… |
53
falseen OP @realpg 不是三层包,是二层包。设备的数量并不多,所有没有分 VLAN 。
关于你说的网卡属性的问题,我可以百分百确定,不是网卡属性的问题。因为我重装了系统之后问题还是存在,甚至在 WIN7PE 下这个问题也仍然存在。所以可以确定是驱动引起的,当然应该不全是驱动问题,应该还存在其它诱因。 |
54
rssf 2016-12-19 08:37:15 +08:00 via iPhone
收费给人维护还用 ghost 系统,只能证明是忽悠
|
55
send2me 2019-12-05 16:52:05 +08:00
|