排查 BGP 路由和路由选择问题
本指南用于排查与 BGP 路由相关的问题,包括路由选择、路由传播和路由指标。
如需了解更多问题排查信息,请参阅以下内容:
已建立 IPv6 BGP 会话,但不交换 IPv4 路由
验证 VLAN 连接或高可用性 VPN 网关具有所需的栈类型
IPV4_IPV6
。如果 VLAN 连接的栈类型不正确,请修改 VLAN 连接。对于高可用性 VPN 网关,请重新创建高可用性 VPN 网关及其隧道。确保 Cloud Router 路由器已正确配置。 运行以下命令:
gcloud compute routers describe ROUTER-NAME
在输出中,检查以下值:
bgpPeers.enableIpv4
为true
- 存在
bgpPeers.ipv4NexthopAddress
和bgpPeers.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 路由器所在的区域。
输出类似于以下内容;请查找设置为 active
的 routeStatus
:
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 路由器日志记录文档中的相关查询。 |
指标 | 您还可以使用以下指标来了解当前的配额可用性和用量。这些指标以
这些指标可通过 |
解决问题 | 您可以执行以下操作来解决路由配额问题。在路由数量大大超出可用配额的情况下,应当同时执行以下两项操作:
|
已知路由(来自本地网络的路由)未传播到其他 VPC 网络
单个 Cloud Router 路由器无法将从一个 BGP 对等体获知的路由重新通告到其他 BGP 对等体,包括无法通告到其他 VPC 网络中的 Cloud Router 路由器。
例如,在以下中心辐射型拓扑中,Cloud Router 路由器无法支持在多个 VPC 网络之间进行路由通告。
在这种情况下,共享同一 VPC 网络的 Cloud Router 路由器之间没有 iBGP 会话,并且 Cloud Router 路由器仅会通告 VPC 子网和自定义配置的路由。Cloud Router 路由器不会通告 VPC 网络中的动态路由。
如需查看 Google Cloud 中网络拓扑的建议,请参阅 VPC 设计的最佳实践与参考架构。
此外,如需在 Google Cloud 中构建和管理中心辐射型拓扑,您可以使用 Network Connectivity Center。
IPv6 流量未路由
如果您在连接到 IPv6 主机时遇到问题,请执行以下操作:
验证 IPv4 路由是否已正确通告。通过先检查 IPv4 流量,您可以排除常见网络问题。如果未通告 IPv4 路由,请执行本文档中列出的常规问题排查步骤。
检查防火墙规则,以确保允许您的 VPC 网络与本地网络之间的 IPv6 流量。
确定您是否超出了已知路由的可用配额。如果您已超出已知路由的配额,则系统会先丢弃 IPv6 前缀,之后才会丢弃 IPv4 前缀。请参阅检查配额和限制。
验证所有需要 IPv6 配置的组件都已正确配置。
VPC 子网配置为使用
IPV4_IPV6
栈类型。VPC 子网将
--ipv6-access-type
设置为INTERNAL
。子网上的 Compute Engine 虚拟机配置了 IPv6 地址。
专用互连的高可用性 VPN 网关或 VLAN 连接配置为使用
IPV4_IPV6
栈类型。BGP 会话启用以通告 IPv6 路由,且下一个跃点是 IPv6 地址。
如需查看 Cloud Router 路由器状态和路由,请参阅查看 Cloud Router 路由器状态和路由。
如需查看 BGP 会话配置,请参阅查看 BGP 会话配置。
Cloud Router 未返回 ICMPv6 ping 响应
Cloud Router BGP 地址不支持 ICMPv6 ping
。如需为 Cloud Router BGP 地址测试第 3 层连接,请使用 ICMPv4 ping
。
后续步骤
如需详细了解如何使用 Cloud Logging 监控 Cloud Router 路由器,请参阅查看日志和指标。
如需更多支持,请参阅获取支持。
如需了解 BGP 会话状态,请参阅 BGP 会话状态。
如需了解与双向转发检测 (BFD) 相关的诊断消息和会话状态,请参阅 BFD 诊断消息和会话状态。
对于将 Cloud Router 路由器与路由器设备搭配使用时出现的问题,请参阅 Network Connectivity Center 文档中的排查路由器设备问题。