本指南可帮助您诊断和解决 Cloudflare WAN 的常见路由与 BGP 问题。这些问题可能会影响流量交付、导致非预期的延迟或导致连接丢失。
如果您遇到路由或 BGP 问题,请先检查以下项目:
- BGP 会话状态:验证会话是否为 Established,而不是卡在 Connect(连接) 或 Active(活动)。
- 防火墙规则:确保您的路由器与 Cloudflare 之间双向允许 TCP 端口
179。 - 隧道或 CNI 健康状况:检查底层连接是否健康。降级的隧道会影响路由优先级。
- 静态路由冲突:在优先级相同的情况下,静态路由优先于 BGP 路由。
本节涵盖您的网络与 Cloudflare 之间通过 CNI 或隧道建立的 BGP 对等互联会话(Beta)。
- BGP 会话从未达到 Established 状态
- 未通告或接收到任何路由
- 路由器日志显示重复的连接尝试
| 状态 | 含义 | 建议操作 |
|---|---|---|
| Established | 会话已建立,正在交换路由 | 正常运行 |
| Active(活动) | 正在尝试发起连接 | 检查防火墙规则,验证邻居 IP |
| Connect(连接) | TCP 连接正在进行中 | 检查端口 179 访问,验证对等互联 IP |
| Idle | 会话关闭,无连接尝试 | 检查配置,验证 BGP 是否启用 |
- 验证您的防火墙在您的路由器与 Cloudflare 对等互联地址之间双向允许 TCP 端口
179。 - 确认邻居 IP 与 Cloudflare 提供的对等互联地址完全匹配。
- 验证您的 ASN 配置与仪表板设置相匹配。仅支持 eBGP,因此您的 ASN 必须与 Cloudflare 账户 ASN 不同。
- 如果使用 MD5 身份验证,请验证双方的密码是否一致。
- 来自特定区域的流量被路由到遥远的数据中心
- 区域用户的延迟高于预期
- 流量未使用最近的隧道或 CNI
- 隧道健康状况降级导致路由优先级下降
- 区域路由范围(regional route scoping)配置错误
- BGP 路由优先级未按预期设置
- 静态路由覆盖了 BGP 路由
检查隧道 health 状况:降级的隧道会在其路由优先级值上增加 500,000。关闭的隧道会增加 1,000,000。流量会转移到更健康的路径,这可能位于不同的区域。诊断步骤请参阅 排除隧道健康状况故障。
-
检查路由优先级:较低的优先级值表示较高的首选项。验证您的路由是否具有预期的优先级配置。
- 默认 BGP 路由优先级:
100 - 优先级为
100的静态路由优先于优先级为100的 BGP 路由
- 默认 BGP 路由优先级:
-
检查区域范围:如果您使用区域范围路由,请确保所有区域都有路由覆盖。到达没有匹配路由的区域的流量将被丢弃。
使用 Network Analytics:查看流量模式以识别流量的落地位置及其遵循的路径。使用说明请参阅 Network Analytics。
- 仪表板中显示 CNI 关闭
- 基于 CNI 的 BGP 会话掉线
- 流量故障转移到隧道或备用 CNI
CNI 问题可能会在多个层级发生:
| 问题类型 | 影响 | 检查内容 |
|---|---|---|
| 物理链路关闭 | 影响流经该 CNI 的所有流量 | 光功率、交叉连接状态 |
| BGP 会话关闭 | 撤销动态路由 | 您的路由器上的 BGP 邻居状态 |
| 前缀被撤销 | 特定路由不可用 | BGP 通告和接收的路由 |
健康的物理链路仍可能会出现 BGP 问题。也可能在特定前缀被撤销时,BGP 会话仍处于健康状态。
检查物理层(您侧):
- 验证您的路由器上该接口在管理上处于开启状态。
- 检查光功率(Tx/Rx dBm)。异常读数表示光纤或收发器存在问题。
- 如果您接收侧的光功率较低或没有,请联系您的数据中心以验证交叉连接状态。
检查 BGP 会话:
- 验证您路由器上的 BGP 邻居状态显示为 Established。
- 如果配置了身份验证,请检查是否存在 MD5 身份验证不匹配。
- 查看 BGP 日志,了解说明会话掉线原因的错误消息。
检查是否正在进行维护:
- 查看 Cloudflare Status ↗ 以了解影响您的 CNI 位置的计划维护。
- 某些维护事件可能会临时影响 CNI 连接,即使被标记为无中断。
有关 CNI 配置和设置信息,请参阅 Network Interconnect。
- 尽管已学习到 BGP 路由,但未被使用
- 流量未遵循预期的 BGP 路径
- 路由更改未按预期生效
当静态路由和 BGP 路由共享相同的前缀和优先级时,Cloudflare 会优先选择静态路由。这可确保手动配置的路由具有最高优先级,除非明确降低其优先级。
根据您的偏好调整路由优先级:
- 若要首选 BGP 路由:将静态路由优先级设置为较大的数值(例如,
150或200)。较大的数值表示较低的优先级。 - 若要首选静态路由:将静态路由优先级保持在
100或以下。BGP 路由默认优先级为100。
| 路由类型 | 前缀 | 优先级 | 是否被选中 |
|---|---|---|---|
| 静态 | 10.0.0.0/24 |
100 |
是(相同优先级时静态胜出) |
| BGP | 10.0.0.0/24 |
100 |
否 |
要在此示例中使 BGP 路由成为首选路由,请将静态路由优先级更改为 150 或更高,或完全删除静态路由。
有关优先级如何工作的详细信息,请参阅 路由优先级。
了解这些组件之间的关系有助于诊断路由问题:
| 组件 | 监控内容 | 不健康时的影响 |
|---|---|---|
| CNI 健康状况 | 物理或虚拟互联链路状态 | BGP 会话可能会掉线。影响流经该 CNI 的所有流量。 |
| 隧道健康状况 | 通过健康检查探测逻辑 GRE 或 IPsec 隧道 | 路由优先级会受到惩罚。流量转向更健康的隧道。 |
| BGP 会话 | 动态路由的控制平面连接 | 撤销动态路由。静态路由不受影响。 |
如果健康检查探测被阻止或配置错误,健康的 CNI 也可能会有不健康的隧道。即使底层物理链路运行正常,BGP 路由也可能被撤销。
如果您已阅读本指南但仍遇到路由问题,请在联系 Cloudflare 支持之前收集以下信息。
- 账户 ID 和受影响的前缀、隧道名称或 CNI 标识符
- 发生问题时的时间戳(使用 UTC 时区)
- BGP 配置详细信息:
- 您的 ASN 和 Cloudflare 对等互联 ASN
- 邻居 IP 地址
- 净化后的路由器配置(删除密码和密钥)
- 当前状态信息:
- 路由器中的 BGP 会话状态
- 显示前缀、路由或隧道状态的仪表板截图
- 路由器日志:覆盖事件发生时间段的 BGP 邻居日志
- Traceroute 结果:从受影响的源网络到您的前缀
- 针对 CNI 问题:您设备的光功率读数
收集这些命令的输出(语法因厂商而异):
# 显示 BGP 邻居状态
show bgp neighbors
# 显示 BGP 摘要
show bgp ipv4 unicast summary
# 显示 BGP 表中的特定前缀
show bgp ipv4 unicast <YOUR_PREFIX>
# 显示接口状态(针对 CNI)
show interface <YOUR_INTERFACE_NAME>
# 显示接收到的路由和通告的路由
show bgp ipv4 unicast neighbors <YOUR_NEIGHBOR_IP> routes
show bgp ipv4 unicast neighbors <YOUR_NEIGHBOR_IP> advertised-routes- 流量引导:路由优先级、BGP 社群和 ECMP 行为
- 配置路由:静态路由配置
- Network Interconnect:CNI 设置和 BGP 对等互联
- 排除隧道健康状况故障:特定于隧道的诊断步骤
- Network Analytics:流量分析和监控
- Cloudflare Status ↗:维护和事件通知