问题排查

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

配置问题

BGP 会话建立失败

  • 检查本地 BGP 路由器上的设置和 Cloud Router 路由器上的设置是否正确。查看 Cloud Router 路由器日志以获取详细信息。
  • 如果您要创建 Cloud VPN 隧道,请检查隧道的状态是否为 ESTABLISHED。如果不是此状态,请查看 Cloud VPN 问题排查来排查问题。

BGP 会话的 IP 地址

您必须将链路本地 IP 地址 (169.254.0.0/16) 用于 BGP 会话。您不能使用任何其他外部或内部 IP 地址。

resource.bgp.asn 字段的值无效

您可能会收到以下错误:“resource.bgp.asn 字段的值无效:###### 本地 ASN 与同一区域和网络中的路由器指定的对等 ASN 冲突。”

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

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

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

Cloud Router 路由器问题

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

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

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

路由处理问题

没有 MED 值的本地路由优先

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

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

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

某些本地 IP 前缀不可用

检查配额和限制

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

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

关于限制 已知路由存在两个限制。这些限制没有直接定义已知路由数上限。而是定义了唯一目标前缀的数量上限:
  • 可由同一区域中所有 Cloud Router 路由器应用于给定区域内子网的已知路由的唯一目的地数量上限
  • 可由不同区域中的 Cloud Router 路由器应用于给定区域内子网的已知路由的唯一目的地数量上限
无论 VPC 网络使用的动态路由模式如何,第一个限制都是相关的。仅当 VPC 网络使用全局动态路由模式时,第二个限制才有意义。如需详细了解限制,请参阅 Cloud Router 路由器的“限制”页面
日志 如果您遇到其中一个限制,则会在 Cloud Logging 中看到一条 limit-exceeded 消息。如需了解如何创建高级查询以查看此消息,请参阅 Cloud Router 路由器日志记录文档中的 limit-exceeded 查询。
指标 您还可以通过以下指标了解当前的限制和用量。
  • router.googleapis.com/dynamic_routes/learned_routes/used_unique_destinations:此 VPC 网络中当前使用的唯一目的地数量。如果启用全局动态路由,则此指标会同时显示全球用量和区域使用量。
  • router.googleapis.com/dynamic_routes/learned_routes/unique_destinations_limit:此 VPC 网络中允许的唯一目的地数量。如果启用了全局动态路由,则此指标会同时显示全局限制和区域限制。
  • router.googleapis.com/dynamic_routes/learned_routes/any_dropped_unique_destinations:表示此 VPC 网络是否因超过一个或全部路由配额上限而舍弃任何目标。
这些指标可通过 gce_network_region 受监控资源获取。如需详细了解 Cloud Router 指标以及如何查看这些指标,请参阅“查看日志和指标”中的指标部分。
解决问题 您可以执行以下操作来解决路由限制问题。在路由数量大大超过限制的情况下,应当同时执行以下两项操作:
  • 配置本地路由器以聚合导出的路由,以使这些路由通告较少的目的地 (CIDR)。
  • 与支持团队联系。支持团队可以与您一起重置您的 Cloud Router 路由器(如果需要)或增加限制。

检查重叠子网范围

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

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

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

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

单个 Cloud Router 路由器无法将从一个 BGP 对等端学习的路由重新通告给其他 BGP 对等端,包括通告到其他 VPC 中的 Cloud Router 路由器。以下中心辐射型拓扑描述了此限制。

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

考虑此拓扑的以下替代方案:

  • 创建单个 VPC 网络以替换多个现有 VPC 网络。使用 Cloud VPN 或 Cloud Interconnect 将此替换 VPC 网络连接到本地网络。如果您需要保留通过单个 VPC 网络委派项目间管理功能的配置,请使用共享 VPC。请注意,您必须在此单个替换网络中重新创建虚拟机实例和其他资源。而不能简单地将其从一个网络迁移到另一个网络。
  • 继续保留单独的 VPC 网络。使用 Cloud VPN 或 Cloud Interconnect 将每个网络连接到本地网络。
  • 使用 VPC 网络对等互连将两个 VPC 网络连接在一起。配置其 Cloud Router 路由器从本地导入路由的网络以导出其自定义路由。如需了解详情,请参阅导入和导出自定义路由

Cloud Router 路由器未在源 ASN 不同的路由之间使用等价多路径 (ECMP)

对于有多个本地路由器连接到单个 Cloud Router 路由器的情况,Cloud Router 路由器会从 ASN 最低的路由器处获知路由并进行传播。Cloud Router 路由器会忽略具有较高 ASN 的路由器所通告的路由,这可能会导致意外行为。 例如,您可能有两个本地路由器,它们通告的路由使用两个不同的 Cloud VPN 隧道。您希望在隧道之间实现流量负载平衡,但 Google Cloud 只会使用其中一个隧道,因为 Cloud Router 路由器只会从 ASN 较低的本地路由器传播路由。

前缀不会被导入到 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 如何选择路由,请参阅路由顺序

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

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

流量的路由不对称

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

如果本地路由器通告的首选路径与网络连接不一致,则会进行非对称路由。对于进入 VPC 网络的入站流量,请使用网络连接来配置通告路由的优先级。如需了解详情,请参阅从 Google Cloud 到本地网络的出站流量最佳路径

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

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

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

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

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

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

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

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

下一个跃点不明确

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