思科交换机出现环路整个网络卡死,怎么先把环破掉?
问题
公司里几台思科交换机级联使用。今天网络突然卡得网页都打不开,远程登录设备都费劲,听说最近有人动过机房的线。基本判断是二层环路引发了广播风暴,但环在哪不知道,重连线、重配 VLAN 都不见好。这时候该怎么处理?
原因
环路之所以拖垮整张网,是同一个广播帧在环里被两边的交换机来回转发、越滚越多,把带宽和 CPU 一起吃光。此时最忌讳"坐下来慢慢分析"——环路状态下网络每秒都在恶化,正确次序是先破环止血,再定位源头。环路的来源通常很集中:有人把一根网线的两头都插进了同一台交换机(或级联的两台)、员工工位私接的小交换机又用一根线回接了上级、级联口之间的线被接成了圈。
解决
第一步:先做成本最低的破环。环如果是刚动过线之后出现的,直接把最近插上的那几根线拔掉,八成立刻恢复——别急着逐口排查。
第二步:没有头绪就上二分法。从核心交换机开始,拔掉一根级联线,观察网络是否恢复:恢复了,环就在拔下的那段里;没恢复,插回原位,再拔下一根。几轮下来就能把环锁定到某一台交换机、某几个口。注意一根一根来,别一次拔一片。
第三步:看日志锁定震荡口。环路里同一个 MAC 地址会在两个口之间来回漂移,思科设备会持续打印告警。命令行执行 show logging | include MACFLAP,出现 SW_MATV-4-MACFLAP_NOTIF 的日志行里写明了 VLAN 号和两个端口名——环的进出口就是它们。
第四步:到现场处理环点。去那两个口看接线,把成环的线拔掉,或先把接错的口 shutdown。确认网络恢复后,检查该口接的是不是有人私接的小交换机(典型现场:小交换机两根线都接回了墙上面板)。
第五步:补防护,防止复发。给所有接电脑、打印机的接入口配上三行命令:
spanning-tree portfast
spanning-tree bpduguard enable
storm-control broadcast level 5.00
含义:普通终端口不该收到 BPDU,一旦收到(说明有人把交换机接过来了)BPDU guard 立刻把口关死;storm-control 给广播流量限个顶,就算再成环也烧不起来。
预防
- 机柜里每个口贴标签,布线只允许 IT 统一操作,工位一律不许私接交换机;
- 新交换机上线前先把上面三行防护配好再接业务;
- 把级联结构画成一张拓扑图存档,再遇环路照图走二分法,比凭记忆快得多。