案例: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 表,触发路由震荡。

解决

  1. 与对方运维沟通,统一 AS-path 策略
  2. 本侧配置 route dampening 抑制震荡:
router bgp 65001
 bgp dampening 15 750 2000 60

参数说明: - 15:半衰期(分钟) - 750:reuse 阈值 - 2000:suppress 阈值 - 60:最大抑制时间(分钟)

💡 经验

  • BGP 路由震荡 = 对端问题居多,先沟通再排查
  • bgp dampening缓解手段,不是根治
  • 抓包分析 BGP 问题最高效
  • 大型网络中开启 dampening 前先在测试环境验证

关注公众号「网英的日常」,更多协议分析案例。