排查配置、Cloud Router 路由器、身份验证和路由处理问题

以下指南可帮助您排查 Cloud Router 路由器的常见问题:

如需更多帮助,请参阅以下文档:

配置问题

本部分列出了一些常见的配置问题。

无法建立 BGP 会话

检查本地 BGP 路由器上的设置和 Cloud Router 路由器上的设置是否正确。如需了解详情,请参阅 Cloud Router 路由器日志

如果您要创建 Cloud VPN 隧道,请检查隧道的状态是否为 ESTABLISHED。如果不是此状态,请参阅 Cloud VPN 问题排查以排查问题。

用于 BGP 会话的 IPv4 和 IPv6 地址

对 BGP 对等互连 IPv6 地址的支持处于预览版阶段。

可用于 BGP 会话的 IPv4 和 IPv6 地址取决于您使用的产品。如需了解完整详情,请参阅 BGP 对等互连地址

字段 resource.bgp.asn 的值无效

您可能会收到以下错误:

“字段 resource.bgp.asn 的值无效:######本地 ASN 与同一区域和网络中的路由器指定的对等 ASN 冲突。”

Cloud Router 路由器正在尝试与具有相同 ASN 的本地设备建立 BGP 会话。要解决此问题,请更改设备或 Cloud Router 路由器的 ASN。

单个区域中的 Cloud Router 路由器之间的 iBGP 不起作用

虽然您可以使用相同的 ASN 创建两个 Cloud Router 路由器,但不支持 iBGP。

无法建立 IPv6 BGP 会话

如果您在与 IPv6 BGP 对等端建立连接时遇到问题,请执行以下操作:

  1. 验证相应的 VLAN 连接或高可用性 VPN 隧道是否已连接。
  2. 验证 VLAN 连接或高可用性 VPN 网关是否具有所需的栈类型 IPV4_IPV6。如果 VLAN 连接的栈类型不正确,请修改 VLAN 连接。对于高可用性 VPN 网关,请重新创建高可用性 VPN 网关及其隧道。
  3. 确保 Cloud Router 路由器已正确配置,并且本地路由器配置了匹配的 IPv6 BGP 地址。

    运行以下命令:

    gcloud compute routers describe ROUTER-NAME
    

    在命令输出中,检查以下值:

    • bgpPeers.peerIpAddress 是分配给本地路由器上的外部接口的 IPv6 地址。此 IPv6 地址用作高可用性 VPN 隧道或专用互连 VLAN 连接的与 Cloud Router 路由器的 BGP 对等互连地址。
    • bgpPeers.ipAddress 是分配给 Cloud Router 路由器接口的 IPv6 地址,与配置为本地路由器上的对等 BGP IP 地址的值匹配。
    • bgpPeers.peerAsn 与本地路由器的 ASN 匹配。
    • bgp.asn 与在本地路由器上配置的对等 ASN 匹配。

已建立 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

Cloud Router 路由器问题

本部分列出了一些常见的 Cloud Router 问题。

来自 Google Cloud 的 BGP 重置显示在您的路由器上

Cloud Router 任务是 Google Cloud 控制平面中的软件进程,通常在机器之间迁移。在此类迁移期间,Cloud Router 路由器可能会停机长达 60 秒。正常迁移不会导致流量被丢弃。

Cloud Router 路由器不位于数据路径中,也不充当第 3 层交换机,而是用作路由编程管理器。 路由实际上由 VLAN 连接或 Cloud VPN 隧道处理。

确保在本地 BGP 设备上启用优雅重启功能。启用优雅重启功能后,如果 Cloud Router 路由器或本地 BGP 设备发生故障,那么只要在优雅重启期间重新建立 BGP 会话,网络之间的流量就不会中断。

Cloud Router 路由器日志中出现 NOTIFICATION_RECEIVED 消息

当 Cloud Router 路由器从 BGP 对等端收到 NOTIFICATION 消息时,Cloud Router 路由器日志中会显示 NOTIFICATION_RECEIVED 消息。NOTIFICATION 消息是向 Cloud Router 的信号,指示它应停止 BGP 会话。

当 Cloud Router 路由器从其 BGP 对等端收到 NOTIFICATION 消息时,Cloud Router 路由器会关闭与该对等端的 BGP 连接,并移除其所有已知路由。

由于多种原因,BGP 对等方可能会发送 NOTIFICATION 消息。例如,对等方可能会发送“保留计时器过期”消息。

Cloud Router 路由器日志中出现 CONFIG_DISABLED 消息

CONFIG_DISABLED 消息表示 Cloud Router 路由器有意停止了 BGP 会话。通过停止 BGP 会话,Cloud Router 路由器会尝试立即将错误状态传递给其对等方。

由于以下任何原因,可能会出现此消息:

  • 用户已使用 Cloud Router API、Google Cloud 控制台或 Google Cloud CLI 停用 BGP 会话。请参阅停用或移除 BGP 会话
  • 对于为 Cloud VPN 设置的 BGP 会话,与 BGP 会话关联的 VPN 隧道尚未建立 IKE 和子安全关联 (SA)。如需排查 VPN 连接问题,请参阅 Cloud VPN 问题排查
  • 对于为 Cloud Interconnect 设置的 BGP 会话,VLAN 连接未配置或处于管理员关闭状态。如需进一步排查问题,请参阅 Cloud Interconnect 文档中的问题排查
  • 对于启用了 BFD 的 BGP 会话,Cloud Router 路由器上的 BFD 控制检测计时器已过期。发生这种情况时,BGP 会话会停止。如需详细了解 BFD 会话状态,请参阅 BFD 诊断消息和会话状态

当 Google 对等互连边缘路由器与 Cloud Interconnect 的 VLAN 连接之间的链路关闭时,Cloud Router 日志中会显示 LINK_DOWN 消息。对等互连边缘路由器是在您预配 Cloud Interconnect 连接的对接网点内由 Google 管理的网络设备。

LINK_DOWN 消息表示相应的 BGP 对等状态已关闭。此消息仅适用于基于 Cloud Interconnect 的 BGP 会话。

本地路由器出现 BGP 抖动

BGP 抖动可能是由各种问题造成的,包括 Cloud Router 路由器软件维护和任务自动重启

如需获取有关已完成的维护事件的详细信息,请参阅识别路由器维护事件。如需获取有关其他 Cloud Router 路由器事件的详细信息,请参阅查看 Cloud Router 路由器日志和指标

如果本地路由器的配置如下,则 Cloud Router 路由器维护事件并不表示存在问题:

  • 本地路由器可以处理优雅重启通知。
  • 本地路由器的保留计时器设置为至少 60 秒。

如需全面了解计时器设置,请参阅管理 BGP 计时器

如需监控连接方面的帮助,请参阅验证本地路由器与 Cloud Router 路由器之间的连接

身份验证问题

以下部分介绍 MD5 身份验证可能会出现的问题。

BGP 对等体状态为 MD5_AUTH_INTERNAL_PROBLEM

有时,BGP 对等体的状态会包括以下值:

  • md5AuthEnabledtrue
  • statusReasonMD5_AUTH_INTERNAL_PROBLEM

第一个值表示您已成功配置 MD5 身份验证。但是,第二个值(即 statusReason 值为 MD5_AUTH_INTERNAL_PROBLEM)表示有一个内部错误导致 Cloud Router 路由器无法配置 MD5 身份验证。因此,BGP 会话状态为 DOWN。在这种情况下,您不需要执行任何操作。Cloud Router 路由器会尝试恢复会话。如果会话的备份时间超过一小时,请与 Google Cloud 支持团队联系。

如需了解如何检查对等体的状态,请参阅检查身份验证状态

Cloud Router 路由器和对等体使用不同的 MD5 密钥

设置 MD5 身份验证时,Cloud Router 路由器及其对等路由器必须使用相同的 Secret 身份验证密钥。如果密钥不匹配,则两个路由器将无法通信。如果您认为存在不匹配的情况,一种解决方案是更新 Cloud Router 路由器使用的密钥。如需了解如何进行此项更改,请参阅更新身份验证密钥

如果您不确定是否存在密钥不匹配的情况,请在对等路由器的文档中查找问题排查解决方案。许多路由器都提供记录是否存在密钥不匹配情况的日志。

自动生成的 MD5 密钥长度超过本地设备支持的密钥长度

点击界面控制台中的生成和复制,即可自动生成 MD5 密钥。如需了解详情,请参阅向现有会话添加身份验证。如果自动生成的 MD5 密钥比您的本地设备支持的长度更长,您可以通过界面、gcloud 或 API 手动配置 MD5 密钥。

路由处理问题

本部分列出了一些常见的路由处理问题。

没有 MED 值的本地路由优先

如果 Cloud Router 路由器收到没有 MED 值的本地路由,则 Cloud Router 路由器将遵循 RFC 4271 中描述的行为进行操作。Cloud Router 路由器会假设该路由具有最低 MED 值 (0),因此视其具有最高优先级。

您无法通过第 3 层合作伙伴互连连接发送和获知 MED 值

如果您使用的是合作伙伴互连连接(第 3 层服务提供商为您处理 BGP),则 Cloud Router 路由器将无法从本地路由器获知 MED 值,也无法向该路由器发送 MED 值。这是因为 MED 值无法通过自治系统。通过这种类型的连接,您无法为 Cloud Router 路由器通告到本地路由器的路由设置优先级。您也无法为本地路由器通告到 VPC 网络的路由设置路由优先级。

某些本地 IPv4 或 IPv6 前缀不可用

如果某些本地 IPv4 或 IPv6 前缀不可用,请检查配额和限制或重叠的子网范围。

自定义已知路由不活跃

如果您已配置自定义已知路由,但遇到流量丢失、ping 错误或与路由相关的其他问题,请执行以下操作:

  • 确保已在 BGP 会话上正确配置路由。

  • 确保 BGP 会话正在运行。

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

检查配额和限制

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

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

限制 指南
关于限制

已知路由存在两个限制。这些限制不会直接定义已知路由数量上限。而是定义唯一目的地前缀的数量上限:

  • 可由给定区域中所有 Cloud Router 路由器应用于该区域内子网的已知路由的唯一目的地数量上限
  • 可由不同区域中的 Cloud Router 路由器应用于给定区域内子网的已知路由的唯一目的地数量上限

无论 VPC 网络使用的动态路由模式如何,第一个限制都是相关的。仅当 VPC 网络使用全局动态路由模式时,第二个限制才有意义。如需详细了解 Cloud Router 路由器限制,请参阅限制

已知路由 可由给定区域中所有 Cloud Router 路由器应用于该区域内子网的已知路由的唯一目的地数量上限。
日志 如果您遇到其中一个限制,则会在 Cloud Logging 中看到一条 limit-exceeded 消息。有关如何创建高级查询以查看此消息的信息,请参阅 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)。
  • 与支持团队联系。 支持团队可以与您一起重置您的 Cloud Router 路由器(如果需要)或提高限额。

检查重叠子网范围

确保 VPC 子网的 IPv4 和 IPv6 地址范围与本地网络中的通告路由不完全重叠。重叠的 IPv4 和 IPv6 范围可能会导致路由被丢弃。这也适用于与 Cloud Router 路由器获知的动态路由重叠的自定义静态路由。在以下情况下,Cloud Router 路由器接收到的前缀将被忽略(不创建自定义动态路由):

  • 获知的前缀与 VPC 网络中子网的主要或次要 IPv4 或 IPv6 地址范围完全匹配。
  • 学习的前缀与您的 VPC 网络中的自定义静态路由的目的地完全匹配。
  • 获知的前缀比 VPC 网络中子网的主要或次要 IPv4 或 IPv6 地址范围更具体(具有更长的子网掩码)。
  • 学习的前缀比您的 VPC 网络中的自定义静态路由的目的地更具体(具有更长的子网掩码)。

如需详细了解,请参阅“VPC 路由”概览中的路由的适用性和顺序

从本地网络获知的路由不传播到其他 VPC 网络

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

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

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

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

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

前缀不会被导入到 BGP 会话中(AS 路径在前)

AS 路径在前与控制层面和 VPC 网络无关。仅在每个 Cloud Router 路由器软件任务中考虑 AS 路径长度,如以下情况所述。

如果单个 Cloud Router 路由器软件任务从两个或多个 BGP 会话学习了相同目的地:

  • 该软件任务选择 AS 路径长度最短的下一个跃点 BGP 会话。
  • 软件任务会将目的地、下一个跃点和 MED 信息提交到 Cloud Router 路由器控制层面。
  • 控制层面使用该信息来创建一个或多个候选路由。每个候选者的基准优先级设为“接收 MED”。

如果两个或多个 Cloud Router 路由器软件任务从两个或多个 BGP 会话学习了相同目的地:

  • 每个软件任务会选择 AS 路径长度最短的下一个跃点 BGP 会话。
  • 每个软件任务会将目的地、下一个跃点和 MED 信息提交到 Cloud Router 路由器控制层面。
  • 控制层面使用该信息来创建两个或更多候选路由。每个候选者的基准优先级设为“接收 MED”。

Cloud Router 路由器控制平面随后根据 VPC 网络的动态路由模式在 VPC 网络中安装一个或多个动态路由。在全局动态路由模式下,每个区域动态路由的优先级在与 Cloud Router 路由器区域不同的区域中进行调整。如需详细了解 Google Cloud 如何选择路由,请参阅 VPC 文档中的路由顺序

在多 NIC 虚拟机上,每个 NIC 获得的路由不同

此行为符合预期。您必须在唯一 VPC 网络中为多 NIC 虚拟机配置每个网络接口控制器 (NIC)。每个 Cloud Router 都在一个 VPC 网络中创建自定义动态路由。因此,一个 Cloud Router 学习的路由仅适用于多 NIC 虚拟机的一个网络接口。从虚拟机的网络接口发送的数据包仅使用适用于该接口的 VPC 网络的路由。

流量的路由不对称

如果入站流量和出站流量使用不同的路径,则流量会以不对称的方式路由。例如,假设您有两个 Cloud VPN 隧道。VPC 网络的出站流量可能使用第一个隧道,而 VPC 网络的入站流量可能使用第二个隧道。

当本地路由器和 Cloud Router 通告的首选路径不一致时,就会发生非对称路由。对于进入 VPC 网络的入站流量,请使用 Cloud Router 路由器配置通告路由的优先级。如需了解详情,请参阅已知路由

请查看设备文档,了解如何选择 BGP 最佳路径,因为其他特性(例如路由器 ID 或来源 ASN)可能会影响它。例如,请参阅以下资源:

对于流出 VPC 网络的出站流量,请检查本地路由器的 MED 值。

默认路由(0.0.0.0/0::/0)向互联网网关发送流量

创建 VPC 网络时,Google Cloud 会自动创建优先级为 1000 且下一个跃点是默认互联网网关的默认路由

具有默认互联网网关的下一个跃点的路由只能由满足互联网访问要求的虚拟机使用。

访问 Google API 和服务时,也需要使用具有默认互联网网关的下一个跃点的路由,例如,使用专用 Google 访问通道时。

以下示例说明了可能导致通往互联网的流量或通往 Google API 和服务的流量被阻止的情况:

  • 如果删除自动创建的默认路由(具有默认互联网网关的下一个跃点的路由)。
  • 如果替换自动创建的默认路由且替换路由的下一个跃点与默认互联网网关不同。
  • 如果 Cloud Router 路由器学习目的地为 0.0.0.0/0::/0 且优先级比自动创建的默认路由高的路由。

下一个跃点不明确

如需了解 Google Cloud 的路由选择算法的工作原理,请参阅 VPC 路由文档中的适用范围和顺序

IPv6 流量未路由

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

  1. 验证 IPv4 路由是否已正确通告。通过先检查 IPv4 流量,您可以排除常见网络问题。如果未通告 IPv4 路由,请执行本文档中列出的常规问题排查步骤。
  2. 检查防火墙规则,以确保允许您的 VPC 网络与本地网络之间的 IPv6 流量。
  3. 验证您的 VPC 网络和本地网络中没有重叠的 IPv6 子网范围。请参阅检查重叠子网范围
  4. 确定您是否超出了已知路由的任何配额和限制。如果您已超出已知路由的配额,则系统会先丢弃 IPv6 前缀,之后才会丢弃 IPv4 前缀。请参阅检查配额和限制
  5. 验证所有需要 IPv6 配置的组件都已正确配置。
    • VPC 子网配置为使用 IPV4_IPV6 堆栈类型。
    • VPC 子网将 --ipv6-access-type 设置为 INTERNAL
    • 子网上的 Compute Engine 虚拟机配置了 IPv6 地址。
    • 专用互连的高可用性 VPN 网关或 VLAN 连接配置为使用 IPV4_IPV6 堆栈类型。
    • BGP 对等端配置为使用 IPv6,并且您为 BGP 会话配置了正确的 IPv6 下一个跃点地址。

后续步骤