如何在 Linux 服务器上检查和验证 BGP 会话状态

BGP, Linux, 路由, FRRouting, Bird, 网络排障, ASN, 会话状态 0 這篇文章有幫助嗎?

问题描述

当您的服务器通过 BGP(边界网关协议)与上游网络建立对等连接时,可能会遇到网络路由异常、流量中断或连接不稳定等问题。常见症状包括:

  • 服务器无法访问特定网段或外部网络
  • 网络延迟突然升高或丢包率增加
  • BGP 会话频繁断开并重新建立(路由抖动)
  • 路由表中缺少预期的路由条目
  • 流量未按预期路径转发

本文将指导您在 Linux 服务器上使用常用工具检查 BGP 会话状态,定位并解决常见的 BGP 路由问题。

解决方案

步骤一:确认 BGP 路由守护进程运行状态

大多数 Linux 服务器使用 FRRouting (FRR)Bird 作为 BGP 路由守护进程。请先确认相关服务是否正常运行。

对于 FRRouting:

  1. 检查服务状态:sudo systemctl status frr
  2. 如果服务未运行,启动服务:sudo systemctl start frr
  3. 设置开机自启:sudo systemctl enable frr

对于 Bird:

  1. 检查服务状态:sudo systemctl status bird
  2. 如果服务未运行,启动服务:sudo systemctl start bird

步骤二:查看 BGP 邻居(Peer)会话状态

进入 BGP 控制台查看所有邻居的连接状态:

FRRouting 操作方法:

  1. 进入 vtysh 控制台:sudo vtysh
  2. 查看 BGP 邻居摘要信息:show ip bgp summary
  3. 查看特定邻居的详细信息:show ip bgp neighbors <邻居IP>

Bird 操作方法:

  1. 查看所有协议(BGP 对等)状态:sudo birdc show protocols all
  2. 查看路由表:sudo birdc show route

关键状态说明:

  • Established:BGP 会话已正常建立,路由交换正常进行。
  • Active / Connect / Idle:会话未成功建立,需要进一步排查。
  • PfxRcd(FRR):表示从该邻居接收到的路由前缀数量。如果显示数字,通常表示会话处于 Established 状态。

步骤三:检查 BGP 路由表

确认 BGP 学习到的路由是否正确:

  1. 查看 BGP 路由表:show ip bgp(FRR)或 sudo birdc show route(Bird)
  2. 检查特定前缀是否存在于路由表中:show ip bgp <目标网段>
  3. 查看路由的 AS 路径和下一跳信息,确认路径是否符合预期

步骤四:排查常见 BGP 会话故障

1. 会话无法建立(状态停留在 Active/Connect/Idle):

  • 检查本机与邻居之间的网络连通性:ping <邻居IP>
  • 确认 BGP 端口(TCP 179)未被防火墙阻止:sudo iptables -L -n | grep 179
  • 验证 BGP 配置中的 AS 号、邻居 IP 地址、密码等参数是否正确
  • 查看系统日志中的 BGP 相关错误信息:sudo journalctl -u frr --since "1 hour ago"

2. 会话频繁抖动(Flapping):

  • 检查接口是否存在丢包或错误:ip -s link show
  • 查看 BGP 事件日志,确认断开原因(Hold Timer Expired、收到 Notification 等)
  • 检查系统资源(CPU、内存)是否充足,资源不足可能导致 BGP 定时器超时

3. 路由缺失或路径异常:

  • 检查是否配置了路由过滤策略(Route Map / Filter List)导致路由被过滤
  • 确认 BGP 属性(Local Preference、MED、AS Path Prepend 等)设置是否正确
  • 验证是否存在路由聚合(Aggregate)配置意外覆盖了具体路由

步骤五:验证路由传播效果

  1. 查看 Linux 路由表中 BGP 路由是否已生效:ip route show | grep bgpip route show proto bgp
  2. 使用 traceroute 验证流量路径:traceroute <目标地址>
  3. 通过外部 Looking Glass 工具验证您的路由前缀是否已正确传播到互联网

附加建议

  • 定期监控 BGP 状态:建议部署自动化监控工具(如 Zabbix、Prometheus + BGP Exporter),实时跟踪 BGP 会话状态和路由变化。
  • 启用 BGP 日志记录:在 FRR 中可通过 log file /var/log/frr/frr.log 配置详细日志,便于事后排查问题。
  • 配置 BGP Graceful Restart:启用优雅重启功能可在路由进程重启时保持转发不中断,减少对业务的影响。
  • 备份 BGP 配置:在修改 BGP 配置前,务必备份当前配置文件(FRR: /etc/frr/frr.conf,Bird: /etc/bird/bird.conf)。
  • 使用 BGP MD5 认证:为 BGP 会话配置 MD5 密钥认证,防止未授权的 BGP 对等连接,增强安全性。
  • 了解您的 ASN 信息:如需查询 ASN 归属或路由注册信息,可使用 Hurricane Electric BGP ToolkitRADB 等公共数据库。

這篇文章有幫助嗎?

提交工单

如果您需要帮助,请向我们的支持团队提交工单。

提交工单