周三上午十点多,客户前台打电话过来,说电脑打不开网页了,微信也转圈。我让他们先别急,问了一句是不是全公司都这样,她说是,楼上楼下都一样。

先看出口。我们那条专线带宽跑得不高,一百兆的线用了不到二十兆,不是被占满。再看网关的负载,CPU 上到 90% 多,一半都是软中断。这个数字一出来,我心里大概有数了——不是出口的问题,是内网在自嗨。

回到客户机房,一进门就听见交换机那边风扇狂转。看了一眼端口灯的闪法,所有口的灯几乎长亮,不是正常那种一明一暗。这种状态八成是二层环路,广播包在内网里打转,越滚越大。

客户说上午有人整理机柜,把一根网线从配线架拔了又插回去。我顺着线找,果然,有两根网线把同一台接入交换机的两个口连成了一根——大概率是那个人看到桌上有一根多余的网线,顺手就给插上了。

这台接入交换机是老型号,默认没开生成树。正常做冗余的时候 STP 会把其中一个口 block 掉,可它没开,两个口都转发,广播包就从这对口里无限循环,几十秒就把整个网段刷爆了。

应急很快:把那根多余的线拔掉。灯闪法立马正常,网关 CPU 从 90% 掉到个位数,前台网页也能开了。前后不到两分钟。

但这不是长久之计。做三件事:

一是把那台接入交换机的生成树开起来,模式选 RSTP,收敛快。二是所有接终端的口开 BPDU Guard,一旦收到 BPDU 就把口 err-disable 掉,宁可按掉一个口,也别让环路拖垮整个网。三是把配线架上那几根没人认领的网线贴上标签,谁在用、通到哪台机,写清楚。

这种故障最烦的地方在于,它看着像网络断了,其实是网络太“通”了。出口查半天查不出问题,因为问题根本不在出口。以后凡是遇到全网一起卡、出口带宽又不高的情况,先别怀疑运营商,去机房看看端口灯。