- 背景:CN2 为运营商到国际/香港等链路提供低延迟路径,BGP 决定可达性与策略,运维需保证稳定与切换及时。
- 目标:通过可复制的操作步骤,验证会话稳定、路由可达、并在发生抖动时快速定位与切换。
- 本地工具:ssh、traceroute、mtr、tcpdump、ping、bgpd/bird/vtysh(或路由器 CLI)。
- 远端工具:使用运营商 Looking Glass、RIPE/RouteViews、公网监控(例如 bgp.he.net)。收集对端 ASN、邻居 IP、公告前缀、BGP community 策略与本地出口/入口接口信息。
- Cisco/IOS-XE:show ip bgp summary;show bgp ipv4 unicast neighbors x.x.x.x;show ip route x.x.x.x。
- Juniper:show bgp summary;show route protocol bgp exact-prefix;show interfaces terse。
- Linux+FRR:vtysh -c "show ip bgp summary";或 birdc show status。观察 State、Prefixes、uptime、Last read/written。
- traceroute: traceroute -n -w 2 -q 1 目标IP(或 traceroute -T 进行 TCP 路由探测);记录跃点丢包与延迟突增点。
- mtr 持续测量:mtr -rwbc 100 目标IP,查看丢包发生在哪一跳(注意:目标端限制 ICMP 时需改用 TCP)。
- ping 压力测试:ping -c 100 -s 1400 -M do 目标IP,观察分片与连续丢包模式。
- 抓取 BGP 握手/更新包:tcpdump -i eth0 -n port 179 -w bgp-<时间>.pcap。
- 分析:用 Wireshark 打开 pcap,过滤 BGP UPDATE, NOTIFICATION,查看是否有 NOTIFICATION(错误)、OPEN 重协商、持续 KEEPALIVE 超时导致的会话重建。
- 前缀过滤:在入站使用 prefix-list/route-filter 拒绝无权限前缀,防止播错路由。示例(Cisco):ip prefix-list FROM-HK seq 5 permit 1.2.3.0/24;route-map IN-HK permit 10; match ip address prefix-list FROM-HK; neighbor x.x.x.x route-map IN-HK in。
- AS-path 改写与本地偏好:为出站在 route-map 上做 AS-path prepend 或设置 local-preference 以控制回流路径。使用 BGP community(若对端支持 CN2 特定 community)实现精细流量工程。
- 快速检测:启用 BFD(若对端支持)缩短故障检测时间;Cisco 示例:bfd on;neighbor x.x.x.x fall-over bfd。
- 路由切换:配置跟踪(tracking)与 route-map 结合,或在防火墙/负载均衡做链路健康探针,失败后自动切换到备用 ASN/链路。
- 指标采集:监控 BGP 会话状态、Prefix 数量、BGP 更新速率、端到端延迟与丢包。可用 Prometheus+node_exporter+snmp_exporter,或专用 BGP 监控(BGPStream、OpenBMP)。
- 告警策略:BGP 会话 DOWN、prefix 突降 >20%、MTR 某跳丢包率持续 >5% 都触发告警并短信/邮箱通知,记录事件以便归档 RCA。
- 第一步(确认):检查本端 BGP 会话(show ip bgp summary);对端是否显示建立。
- 第二步(路由核对):比对收发 prefix 和 AS-path;确认是否有 route-flap / 大量 withdraw。
- 第三步(链路层):查看接口错误/丢包(show interfaces),抓包确认 TCP 3W 握手是否正常或有 RST/ICMP。
- 第四步(跨域验证):使用公网上的 Looking Glass/traceroute 验证是否为全球可见问题或仅对某运营商影响。
- 第五步(缓解):临时做 AS-path prepend 或更改 local-pref,或向对端提交 ticket 要求调整 community 或路由策略。
- SLA 验证:长期记录延迟/丢包/可用率,和 CN2 提供方的 SLA 对照(记录时间窗、丢包阈值)。
- 常规建议:在 CN2 上保留备用出口,定期做 BGP 冗余测试(切换演练)、维护 prefix 白名单并和对端保持沟通渠道(告警/邮件/工单)。
问:如何快速判断是本地路由问题还是对端 CN2 路由波动?
答:先在本端查看 BGP 会话(show ip bgp summary),若会话 UP 且前缀突然不可达,用公共 Looking Glass 或 RIPE/RouteViews traceroute 验证;若多个独立监测点都不可达,多半为对端或中间链路问题;若仅本地或本 ASN 出现,优先检查本地路由策略与接口链路。
问:发生 BGP 会话频繁重建的常见根因及快速缓解措施?
答:常见根因包括 TCP 会话被中间设备丢弃、接口不稳定、对端重启、路由策略触发大量更新(导致资源耗尽)。快速缓解:开启 BFD(或延长 keepalive/timer 临时降低重连),在路由器侧限流 UPDATE,暂时过滤非必要前缀并提交运营商工单排查物理链路。
问:如何在运维层面验证 CN2 路由的可用性 SLA?
答:持续采集端到端延迟与丢包(针对关键目的地做 mtr、ping 定时任务),记录 BGP 会话 uptime 与前缀可见性变化,按小时/日统计可用率并与运营商 SLA 对比;出现不达标时导出 pcap、BGP update 日志和 traceroute 结果作为工单证据。