丢弃测试数据包的原因

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

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

不允许使用外国 IP 地址

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

可能的原因

虚拟机实例未启用 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 控制台中,验证有效路由列表适用于源实例的路由列表。如需详细了解路由的创建和适用性,请参阅路由使用路由

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

系统使用下一个跃点 IP 地址未分配给任何资源的无效路由将数据包发送到目的地。

可能的原因

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

如果这是包含 next-hop-ilb 的路由,则下一个跃点地址必须是内部直通式网络负载平衡器的地址(不支持其他负载平衡器使用的转发规则、协议转发或作为 Private Service Connect 端点)。IP 地址必须分配给路由的 VPC 网络中的资源,或者分配给通过 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 控制台中,验证有效路由列表适用于源实例的路由列表。如需详细了解路由的创建和适用性,请参阅路由使用路由

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

    不支持传递性 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. 从使用 TCP 或 UDP 以外的协议的 App Engine 标准环境版本、Cloud Run 函数或 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 Run 函数或 Cloud Run 修订版本未配置无服务器 VPC 访问通道连接器,数据包被丢弃。

可能的原因

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

建议

如果您尝试使用其专用 IP 地址访问目标端点,请确保已为 App Engine 标准环境版本、Cloud Run 函数或 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 和已发布的服务。