01 | 运维人的痛:凌晨 2 点的“shutdown/no shutdown”
“滴滴——”
手机告警:接入交换机端口down。
VPN 登上去,show int status err-disabled 一片红。
30 个端口,30 个 shutdown/no shutdown 敲到天亮?
不,我们要让它自己好起来!
02 | 什么是 errdisable?
当交换机检测到“致命”错误(BPDU、环路、MAC 超限、链路震荡……)
会强制把端口关进小黑屋——状态显示:
Ethernet0/1is down, err-disabled
默认永不禁足,只能人工捞。
规模一大,这就是重复性体力活。
03 | 自动恢复:给端口一次“重新做人”的机会
Cisco 早就内置“定时放风”功能:
告诉交换机:“×× 原因关的端口,60 秒后自己放出来。”
优点:
✅ 减少工单
✅ 降低深夜加班
✅ 用户投诉秒变“自愈”惊喜
04 | 5 行命令,接入层秒变“无人区”
configure terminal
errdisable recovery cause bpduguard# 防环路
errdisable recovery cause udld# 防单纤
errdisable recovery causelink-flap# 防震荡
errdisable recovery interval60# 60 秒后自动出狱
end
writememory
复制→粘贴→回车,全程 10 秒搞定。
05 | 效果验证
showerrdisable recovery
ErrDisableReason Timer Time Left(sec)
bpduguardEnabled 58
udldEnabled 59
link-flap Enabled 57
端口down 了?
去倒杯咖啡,回来它已经up。
06 | 这些坑别踩
场景 |
建议 |
---|---|
开放办公室/ 学生宿舍 |
别开port-security 自动恢复,易被 DoS |
核心/ 汇聚链路 |
人工介入,别自动放通,防止震荡扩散 |
恢复间隔 |
30 s 太短易抖,300 s 太长用户骂,60~120 s 黄金值 |
07 | 端口又挂了?3 秒定位原因
showinterfaces status err-disabled
showlogging|include errdisable
典型现场:
SPANTREE-2-BLOCK_BPDUGUARD: Port 0/1 blocked by BPDU guard
日志+时间戳,根因一目了然。
08 | 一键脚本(适配 90% 接入交换机)
# errdisable_auto_recovery.sh
cat<<EOF | ssh admin@SWITCH_IP
configure terminal
errdisable recovery cause bpduguard
errdisable recovery cause udld
errdisable recovery cause link-flap
errdisable recovery interval 60
end
write memory
exit
EOF
echo"Done! 60 秒自愈已生效。"
放到Ansible / Python批量推,百台交换机 5 分钟收工。
09 | 运维 KPI 瞬间好看
-
夜间工单↓ 85%
-
MTTR 从 30 min → 1 min
-
用户感知↓ 0(自动恢复)
-
咖啡满意度↑ 100%
10 | 总结:一句话背下来
“接入层先开 bpduguard/udld/link-flap 自动恢复,间隔 60 秒,核心不动,日志跟上。”
从此,让端口自己“爬起来”,把夜晚还给自己。
如果这篇文章帮到你
↘️ 点个“赞”+“在看”
-
转给正在值班的小伙伴
-
下次再遇到errdisable,你只需淡定喝口水——
-
剩下的,交给交换机!
发表回复