丢弃测试数据包的原因

Connectivity Tests 可能会由于以下任何原因而丢弃测试数据包。

如需查看可能原因的完整列表,请参阅配置分析状态

不允许使用外部 IP 地址

数据包会被丢弃,因为只有在启用 IP 转发时,Compute Engine 实例才能发送或接收具有外部 IP 地址的数据包。

可能的原因

虚拟机实例未启用 IP 转发,但通过它的数据包的来源或目标 IP 地址与实例的 IP 地址不匹配。例如,当使用将该虚拟机实例作为下一个跃点的静态路由将数据包传送到该实例时,就可能发生这种情况。

建议

创建启用了 IP 转发的 Compute Engine 实例,或为现有实例设置相应的特性。如需了解详情,请参阅为实例启用 IP 转发

因为防火墙规则而被丢弃

数据包可能因防火墙规则而被丢弃,除非因连接跟踪而允许数据包。

可能的原因

Connectivity Tests 可能会拒绝测试数据包,因为该数据包与屏蔽防火墙规则防火墙规则规则匹配。但是,由于防火墙规则上的连接跟踪,实际的数据平面可能允许数据包通过。尽管有防火墙规则,连接跟踪允许返回现有连接的数据包。

每个 VPC 网络都有两条隐式防火墙规则,允许出站流量流向任何位置,并阻止来自任何位置的传入流量。您可能还有优先级更高的拒绝出站防火墙规则。

为使连接成功,您需要在来源处创建一条允许访问目标端点的出站防火墙规则,并在目的地处有一条入站防火墙规则以允许此连接。

VPC 防火墙规则是有状态的。如果指定的目的地端点通常是发起通信的一端,则连接跟踪会自动允许响应流量,并且无需入站流量防火墙规则。

建议

根据连接测试结果中的详细信息删除拒绝规则,或创建允许规则。如需了解详情,请参阅防火墙规则使用 VPC 防火墙规则

因没有匹配的路由而被丢弃

数据包因没有匹配的路由而被丢弃。

可能的原因

在数据包网络和区域中,没有与数据包属性(例如目标 IP 地址)匹配的活跃路由。

建议

在 Google Cloud 控制台中验证有效路由列表。如果您刚刚创建了新路由,请注意,Connectivity Tests 可能需要一些时间才能收到配置更新并将其纳入分析。

如果您尝试使用目标端点的内部 IP 地址访问目标端点,请确保已连接来源网络和目标网络(例如,使用 VPC 网络对等互连Network Connectivity Center 或 Cloud VPN 等混合连接解决方案)。

请注意,不支持传递 VPC 对等互连。请考虑直接连接来源网络和目标网络,或使用混合连接解决方案。

如果您尝试通过互联网访问目标端点,请确保您为目标 IP 地址设置了下一个跃点互联网网关的路由。

如果数据包经过混合连接网络端点组,请考虑有关路由适用性的其他要求。您在路由视图表中看到的某些路由可能不适用于来自混合 NEG 的流量。

如需了解详情,请参阅路由使用路由

数据包被发送至错误的网络

数据包被发送到了意外的网络。例如,您执行从 network-1 网络中的 Compute Engine 实例到 network-2 网络中的 Compute Engine 实例的测试,但数据包会发送到 network-3 网络。

可能的原因

network-1 网络的路由具有目标范围,其中包含目标实例 IP 地址,其下一个跃点位于其他网络(上例中的 network-3)中。

建议

在 Google Cloud 控制台中验证有效路由列表适用于源实例的路由列表。如需详细了解路由创建和applicability,请参阅路由使用路由

路由的下一个跃点 IP 地址未解析

数据包通过无效路由发送到目的地,且下一个跃点 IP 地址未分配给任何资源。

可能的原因

如果这是具有 next-hop-address 的路由,则下一个跃点地址必须是路由的 VPC 网络中 Compute Engine 实例的主要内部 IPv4 地址或 IPv6 地址。不支持对等互连网络中的地址。

如果这是具有 next-hop-ilb 的路由,则下一个跃点地址必须是内部直通式网络负载平衡器的地址(不支持其他负载平衡器、协议转发或作为 Private Service Connect 端点使用的转发规则)。该 IP 地址必须分配给路由的 VPC 网络中的资源,或者分配给通过 VPC 网络对等互连连接到该网络的网络中的资源。

建议

验证下一个跃点 IP 地址是否属于受支持的资源。如需了解详情,请参阅下一个跃点实例的注意事项内部直通式网络负载平衡器下一个跃点的注意事项

路由下一个跃点实例的 NIC 位于错误的网络中

数据包使用无效路由发送到目的地,并且下一个跃点 Compute Engine 实例在路由的网络中没有网络接口控制器 (NIC)。

可能的原因

用作路由下一个跃点的 Compute Engine 实例必须在路由的网络(而不是对等互连的 VPC 网络)中具有 NIC。

建议

验证下一个跃点 Compute Engine 实例在路由的网络中是否具有 NIC。如需了解详情,请参阅下一个跃点实例的注意事项

路由下一个跃点地址不是虚拟机主要 IP 地址

数据包使用无效路由发送到目的地,下一个跃点 IP 地址 (next-hop-address) 不是 Compute Engine 实例的主要 IP 地址。

可能的原因

路由的下一个跃点 IP 地址 (next-hop-address) 必须是 Compute Engine 实例的主要内部 IPv4 地址。不支持别名 IP 地址范围

建议

验证下一个跃点 IP 地址是否为 Compute Engine 实例的主要内部 IPv4 地址。如需了解详情,请参阅下一个跃点实例的注意事项

路由下一个跃点转发规则类型无效

数据包通过无效的路由发送到目的地,并且下一个跃点转发规则 (next-hop-ilb) 不是内部直通式网络负载平衡器的转发规则。

可能的原因

路由的下一个跃点转发规则必须是内部直通式网络负载平衡器的转发规则。如需了解详情,请参阅内部直通式网络负载平衡器下一个跃点的注意事项

建议

创建路由,以定位受支持的转发规则,而不是无效路由。

到互联网的专用流量

具有内部目标地址的数据包已发送到互联网网关。

可能的原因

数据包的目标 IP 地址是专用 IP 地址,无法通过互联网访问。但是,该数据包会离开源 Compute Engine 实例,并与下一个跃点互联网网关匹配路由。

建议

如果您想通过互联网访问目标,请确保源 Compute Engine 实例具有互联网连接(例如,具有外部 IP 地址或使用 Cloud NAT),并在测试中使用目标端点的外部 IP 地址。

如果您希望通过其内部 IP 地址访问目标,则需要在来源网络和目标网络之间建立连接(创建路由)。您可以通过以下任一方式来执行此操作:

  1. 如果目标端点位于本地网络内,请使用 Network Connectivity Center 解决方案或混合连接解决方案,例如 Cloud VPNCloud Interconnect
  2. 如果您的目标端点在 Google Cloud 中:
    1. 在 VPC 网络之间配置 VPC 网络对等互连
    2. 在 VPC 网络之间配置 Cloud VPN
    3. 使用 Network Connectivity Center VPC spoke 配置网络连接。
  3. 如果您已连接到目标网络,请执行以下操作:

    1. 来源端点网络没有通过此连接的路由,或者使用通过互联网网关的默认路由。在 Google Cloud 控制台中验证有效路由列表适用于源实例的路由列表。如需详细了解路由创建和applicability,请参阅路由使用路由

    如果您要测试对等互连网络中的本地网络连接,请参阅此示例以了解自定义通告、网络路由模式和交换自定义路由。

    不支持传递性 VPC 网络对等互连。您可以将 VPN 或对等互连用于这两个 VPC 网络。

不允许使用专用 Google 访问通道

仅具有内部 IP 地址的 Compute Engine 实例尝试访问 Google API 和服务的外部 IP 地址,但实例的子网中未启用专用 Google 访问通道。

建议

您可以通过以下任一方式允许 Compute Engine 虚拟机实例访问 Google API 和服务的外部 IP 地址:

  1. 为实例的子网启用专用 Google 访问通道
  2. 为 Compute Engine NIC 分配外部 IP 地址。
  3. 为该虚拟机实例的子网启用 Cloud NAT

不支持通过 VPN 隧道进行专用 Google 访问通道

具有内部 IP 地址的来源端点会尝试通过 VPN 隧道连接到另一个网络来访问 Google API 和服务的外部 IP 地址,但需要在来源端点网络中启用专用 Google 访问通道。

可能的原因

从来源端点到 Google API 和服务的外部 IP 地址的数据包通过 Cloud VPN 隧道路由,但此类配置不受支持。

建议

如果来源端点是 Google Cloud 端点(例如 Compute Engine 虚拟机实例),请考虑在其来源子网中启用专用 Google 访问通道

如果源端点是本地端点,请参阅适用于本地主机的专用 Google 访问通道,了解详细说明。

转发规则不匹配

转发规则的协议和端口与数据包标头不一致。

可能的原因

数据包是使用转发规则不支持的协议发送的,或者数据包已发送到与转发规则支持的端口不匹配的目标端口。

建议

确认目标转发规则协议和端口。

转发规则区域不匹配

转发规则未启用全球访问权限,并且其区域与数据包的区域不匹配。

可能的原因

此外,根据负载均衡器及其层级,转发规则可以是全球级,也可以是区域级。如需了解详情,请参阅负载均衡器类型表

如果转发规则是区域性的,则客户端(例如虚拟机或 VPC 连接器)应与负载均衡器位于同一区域。

建议

如果您从 Google Cloud 端点(例如 Compute Engine 虚拟机实例)连接到负载均衡器,请确保它与转发规则位于同一区域。

从本地网络建立连接时,确保客户端通过与负载均衡器位于同一区域的 Cloud VPN 隧道或 VLAN 连接来访问负载均衡器。如需了解详情,请参阅内部应用负载均衡器和连接的网络

您可以在内部应用负载均衡器和区域级内部代理网络负载均衡器上启用全球访问权限,以访问任何区域的客户端。默认情况下,这些负载均衡器的客户端必须与负载均衡器位于同一区域。如需了解详情,请参阅为内部应用负载平衡器启用全球访问权限为区域级内部代理网络负载平衡器启用全球访问权限

阻止负载均衡器后端健康检查的防火墙

防火墙会阻止对后端的健康检查探测,导致后端无法接收来自负载均衡器的流量。

可能的原因

为了让健康检查正常运行,您必须创建入站流量允许防火墙规则,以允许来自 Google Cloud 探测器的流量到达您的后端。否则,后端会被视为运行状况不佳。

建议

根据探测 IP 地址范围和防火墙规则表创建入站允许防火墙规则。如需了解详情,请参阅必需的防火墙规则

没有可用的外部地址

仅具有内部 IP 地址的虚拟机实例尝试了通过下一个跃点是默认互联网网关的路由来访问外部主机。在子网中未启用 Cloud NAT 或没有使用其他类型的下一个跃点(例如代理虚拟机)的其他默认路由时,会出现这种情况。

可能的原因

仅具有内部 IP 地址的实例尝试访问外部主机,但它没有外部 IP 地址或未在子网中启用 Cloud NAT。

建议

如果要访问外部端点,您可以为实例分配外部 IP 地址。或者,您也可以在其子网上启用 Cloud NAT,除非连接通过一个可提供互联网访问权限的代理实例。

没有实例的转发规则

转发规则没有配置后端。

可能的原因

您尝试访问的转发规则未配置任何后端。

建议

检查负载均衡器配置,并确保负载均衡器的后端服务已配置后端。

流量类型被屏蔽

流量类型被阻止,您无法配置防火墙规则来启用它。如需了解详情,请参阅始终禁止的流量

可能的原因

默认情况下,此流量类型被阻止,并且无法通过创建防火墙规则来启用。常见场景如下:

  1. 使用 TCP 端口 25 (SMTP) 将出站流量发送到外部目的地。如需了解详情,请参阅始终禁止的流量
  2. 将流量发送到 Cloud SQL 实例上不受支持的端口。例如,将流量发送到 TCP 端口 3310 到打开端口 3306 的 MySQL Cloud SQL 实例。
  3. 从 App Engine 标准环境版本、Cloud Function 或使用 TCP 或 UDP 以外的协议的 Cloud Run 修订版本发送出站流量。

建议

对于出站流量 SMTP(具有 TCP 端口 25 的外部目的地的出站流量),请参阅从实例发送电子邮件

对于 DHCP 协议,包括发送到目标端口 68 的 UDP IPv4 数据包(DHCPv4 响应)和到目标端口 546 的 UDP IPv6 数据包(DHCPv6 响应),仅允许来自元数据服务器 (169.254.169.254) 的 DHCP 流量。

对于 Cloud SQL 连接,请确保使用的端口正确无误。

未配置无服务器 VPC 访问通道连接器

数据包已被丢弃,因为 App Engine 标准环境版本、Cloud Function 或 Cloud Run 修订版本未配置无服务器 VPC 访问通道连接器

可能的原因

目标 IP 地址是专用 IP 地址,无法通过互联网访问。数据包离开来源,但没有为 App Engine 标准环境版本、Cloud Function 或 Cloud Run 修订版本配置无服务器 VPC 访问通道连接器。

建议

如果您尝试使用目标端点的专用 IP 地址访问目标端点,请确保您已为 App Engine 标准环境版本、Cloud Function 或 Cloud Run 修订版本配置无服务器 VPC 访问通道连接器。

无服务器 VPC 访问通道连接器未在运行

由于无服务器 VPC 访问通道连接器未在运行,数据包被丢弃。

可能的原因

由于所有无服务器 VPC 访问通道连接器实例都已停止,数据包被丢弃。

建议

如需查看问题排查步骤的列表,请参阅问题排查

Private Service Connect 连接未被接受

由于 Private Service Connect 连接未被接受,数据包被丢弃。

可能的原因

Private Service Connect 端点属于未获准连接到服务的项目。如需了解详情,请参阅查看端点详情

建议

确保 Private Service Connect 端点位于已获准连接到代管式服务的项目中。

从对等互连网络访问 Private Service Connect 端点

数据包会发送到对等互连网络中的 Private Service Connect 端点,但此类配置不受支持

建议

请考虑使用 Private Service Connect 部署模式页面介绍的一种连接模式。您还可以使用 Private Service Connect 后端访问 Google API 和已发布的服务。