案例:BGP 路由震荡的排查与解决
现象
某运营商互联BGP 会话中,特定路由频繁出现/消失(flapping),业务间歇性中断。
排查步骤
第一步:确认是哪个邻居的问题
show ip bgp summary
观察哪个邻居状态变化最频繁。
第二步:查看路由更新日志
show ip bgp neighbors <peer-ip> advertised-routes
show ip bgp neighbors <peer-ip> received-routes
发现某条 192.168.50.0/24 路由在被撤销和重新宣告之间反复。
第三步:开启 debug(小心使用)
debug ip bgp updates <peer-ip>
发现每次震荡都伴随着 AS-path 不一致的 update。
第四步:抓包确认
tcpdump -i eth0 -w bgp.pcap host <peer-ip> and port 179
用 Wireshark 打开,分析 UPDATE 消息:
- 📍 NLRI 字段(网络前缀)
- 📍 Path Attributes(特别是 AS_PATH)
- 📍 撤销路由(Withdrawn Routes)
🎯 根因
对方运营商路由策略配置错误,对同一条路由使用了不同的 AS-path:
正常时: 65001 65002
震荡时: 65001 65003 65002
我们的设备每次收到不同 AS-path 就更新 BGP 表,触发路由震荡。
解决
- 与对方运维沟通,统一 AS-path 策略
- 本侧配置 route dampening 抑制震荡:
router bgp 65001
bgp dampening 15 750 2000 60
参数说明:
- 15:半衰期(分钟)
- 750:reuse 阈值
- 2000:suppress 阈值
- 60:最大抑制时间(分钟)
💡 经验
- BGP 路由震荡 = 对端问题居多,先沟通再排查
bgp dampening是缓解手段,不是根治- 抓包分析 BGP 问题最高效
- 大型网络中开启 dampening 前先在测试环境验证
关注公众号「网英的日常」,更多协议分析案例。