排查 BGP 路由和路由选择问题

本指南用于排查与 BGP 路由相关的问题,包括路由选择、路由传播和路由指标。

如需了解更多问题排查信息,请参阅以下内容:

已建立 IPv6 BGP 会话,但不交换 IPv4 路由

  1. 验证 VLAN 连接或高可用性 VPN 网关具有所需的栈类型 IPV4_IPV6。如果 VLAN 连接的栈类型不正确,请修改 VLAN 连接。对于高可用性 VPN 网关,请重新创建高可用性 VPN 网关及其隧道。

  2. 确保 Cloud Router 路由器已正确配置。 运行以下命令:

    gcloud compute routers describe ROUTER-NAME
    

    在输出中,检查以下值:

    • bgpPeers.enableIpv4true
    • 存在 bgpPeers.ipv4NexthopAddressbgpPeers.peerIpv4NexthopAddress

某些本地 IPv4 或 IPv6 前缀无法访问

如果您在尝试访问 Cloud Router 路由器获知的前缀内的本地 IPv4 或 IPv6 目的地时遇到流量丢失、ping 错误或其他问题,可能有多种原因。

检查是否存在非活跃的自定义已知路由

如果您无法使用配置的自定义已知路由访问本地目的地,请执行以下操作:

  • 检查是否已在 BGP 会话上正确配置路由。
  • 检查 BGP 会话是否已启动。
  • 检查本地路由器是否正在过滤某些已知路由。

如需了解详情,请参阅检查自定义已知路由的状态

检查是否存在过滤后的已知路由

如需查看某个路由是否已过滤,请运行以下命令:

gcloud compute routers get-status ROUTER_NAME \
    --region=REGION

替换以下内容:

  • ROUTER_NAME:您的 Cloud Router 路由器的名称。
  • REGION:Cloud Router 路由器所在的区域。

输出类似于以下内容;请查找设置为 activerouteStatus

kind: compute#routerStatusResponse
result:
  bestRoutesForRouter:
  - asPaths:
    - asLists:
      - 65200
      pathSegmentType: AS_SEQUENCE
    creationTimestamp: '2024-03-22T13:57:15.533-07:00'
    destRange: 10.128.0.0/20
    kind: compute#route
    network: https://www.googleapis.com/compute/v1/projects/PROJECT/global/networks/VPC_NAME
    nextHopIp: 169.254.73.246
    nextHopVpnTunnel: https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/vpnTunnels/VPN_NAME
    priority: 100
    routeStatus: ACTIVE
    routeType: BGP
  bgpPeerStatus:
  - advertisedRoutes:
    - destRange: 10.128.0.0/20
      kind: compute#route
      network: https://www.googleapis.com/compute/v1/projects/PROJECT/global/networks/aneta-vpc
      nextHopIp: 169.254.73.245
      nextHopVpnTunnel: https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/vpnTunnels/VPN_NAME
      priority: 100
      routeType: BGP
    enableIpv6: false
    ipAddress: 169.254.73.245
    linkedVpnTunnel: https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/vpnTunnels/VPN_NAME
    md5AuthEnabled: false
    name: aneta-bgp
    numLearnedRoutes: 1
    peerIpAddress: 169.254.73.246
    state: Established
    status: UP
    uptime: 10 hours, 11 minutes, 0 seconds
    uptimeSeconds: '36660'
  network: https://www.googleapis.com/compute/v1/projects/PROJECT/global/networks/VPC_NAME

bestRoutesForRouter.routeStatus 值显示 ACTIVE 表示活跃路由,显示 DROPPED 表示过滤后的路由。

检查配额和限制

检查您的 Cloud Router 路由器是否已超出已知路由的配额。如需了解 Cloud Router 路由器的已知路由数,请查看其状态

如需了解配额、相关日志消息和指标,以及如何解决问题,请参阅下表。

主题 指南
配额简介 请参阅 Cloud Router 配额已知路由示例
日志 如果超出其中任一配额,则会在 Cloud Logging 中看到一条错误消息。如需了解如何创建高级查询以查看此消息,请参阅 Cloud Router 路由器日志记录文档中的相关查询
指标

您还可以使用以下指标来了解当前的配额可用性和用量。这些指标以 router.googleapis.com/dynamic_routes/learned_routes/ 开头:

  • used_unique_destinations

    此 VPC 网络中使用的唯一目的地数量。如果启用全球动态路由,则此指标会同时显示全球用量和区域用量。

  • unique_destinations_limit

    此 VPC 网络中允许通告的唯一目标数量。如果启用了全球动态路由,则此指标会同时显示全球配额和区域级配额。

  • any_dropped_unique_destinations

    表示此 VPC 网络是否因超出一个或两个路由配额而舍弃任何目的地。

这些指标可通过 gce_network_region 受监控的资源获得。如需详细了解 Cloud Router 路由器指标以及如何查看这些指标,请参阅“查看日志和指标”中的指标部分。

解决问题

您可以执行以下操作来解决路由配额问题。在路由数量大大超出可用配额的情况下,应当同时执行以下两项操作:

  • 配置本地路由器以汇总导出的路由,以使这些路由通告较少的目的地 (CIDR)。
  • 与支持团队联系。 支持团队可以与您一起增加配额。

已知路由(来自本地网络的路由)未传播到其他 VPC 网络

单个 Cloud Router 路由器无法将从一个 BGP 对等体获知的路由重新通告到其他 BGP 对等体,包括无法通告到其他 VPC 网络中的 Cloud Router 路由器。

例如,在以下中心辐射型拓扑中,Cloud Router 路由器无法支持在多个 VPC 网络之间进行路由通告。

Cloud Router 路由器中心辐射型拓扑。
Cloud Router 路由器中心辐射型拓扑(点击可放大)

在这种情况下,共享同一 VPC 网络的 Cloud Router 路由器之间没有 iBGP 会话,并且 Cloud Router 路由器仅会通告 VPC 子网和自定义配置的路由。Cloud Router 路由器不会通告 VPC 网络中的动态路由。

如需查看 Google Cloud 中网络拓扑的建议,请参阅 VPC 设计的最佳实践与参考架构

此外,如需在 Google Cloud 中构建和管理中心辐射型拓扑,您可以使用 Network Connectivity Center

IPv6 流量未路由

如果您在连接到 IPv6 主机时遇到问题,请执行以下操作:

  1. 验证 IPv4 路由是否已正确通告。通过先检查 IPv4 流量,您可以排除常见网络问题。如果未通告 IPv4 路由,请执行本文档中列出的常规问题排查步骤。

  2. 检查防火墙规则,以确保允许您的 VPC 网络与本地网络之间的 IPv6 流量。

  3. 确定您是否超出了已知路由的可用配额。如果您已超出已知路由的配额,则系统会先丢弃 IPv6 前缀,之后才会丢弃 IPv4 前缀。请参阅检查配额和限制

  4. 验证所有需要 IPv6 配置的组件都已正确配置。

    • VPC 子网配置为使用 IPV4_IPV6 栈类型。

    • VPC 子网将 --ipv6-access-type 设置为 INTERNAL

    • 子网上的 Compute Engine 虚拟机配置了 IPv6 地址。

    • 专用互连的高可用性 VPN 网关或 VLAN 连接配置为使用 IPV4_IPV6 栈类型。

    • BGP 会话启用以通告 IPv6 路由,且下一个跃点是 IPv6 地址。

Cloud Router 未返回 ICMPv6 ping 响应

Cloud Router BGP 地址不支持 ICMPv6 ping。如需为 Cloud Router BGP 地址测试第 3 层连接,请使用 ICMPv4 ping

后续步骤