排查常见网络问题


排查网络延迟问题

如需了解如何缩短 Google Cloud 中流程之间的连接延迟时间以及缩短 TCP 连接的延迟时间,请参阅 Google Cloud 和混合场景中针对网络性能的 TCP 优化

对网络流量下降进行问题排查

Compute Engine 只允许项目的防火墙规则明确允许的网络流量进入您的实例。默认情况下,所有项目都会自动提供一个默认网络,该网络允许建立特定类型的连接。默认情况下,如果您拒绝所有流量,则 SSH 连接和所有内部流量也会被拒绝。如需了解详情,请参阅防火墙规则页面。

此外,您可能需要调整 TCP 持久性连接设置以规避默认闲置连接超时时间(10 分钟)。如需了解详情,请参阅在实例和互联网之间通信

对实例上的防火墙规则或路由进行问题排查

Google Cloud Console 会提供实例的每个网络接口的网络详细信息。您可以查看适用于某个接口的所有防火墙规则或路由,也可以仅查看该接口使用的规则和路由。 这两种查看方式都可以帮助您对该实例适用以及实际使用的防火墙规则和路由进行问题排查(在优先级和处理顺序替换其他规则或路由的情况下)。

如需了解详情,请参阅虚拟私有云文档中的问题排查信息:

对专用转发规则的协议转发进行问题排查

请参阅以下部分,以解决与专用转发规则的协议转发相关的常见问题。

区域限制

专用转发规则的协议转发是一种区域性产品。 所有客户端和目标实例虚拟机必须位于同一区域中。

错误消息:“An internal target instance can only be the target of one forwarding rule”(一个内部目标实例只能是一条转发规则的目标)

如果您看到错误消息 An internal target instance can only be the target of one forwarding rule,则说明您可能正试图将两条转发规则配置为指向同一目标实例。您不能将多条转发规则指向同一目标实例。

排查处理高数据包速率时 Compute Engine 虚拟机上的延迟时间问题

如果您的虚拟机在处理高数据包速率时遇到了延迟、数据包丢失或数据包重新传输的情况,则您的虚拟机可能在处理这些数据包的网络接口 (NIC) 上没有足够的接收 (RX) 队列或传输 (TX) 队列。

如需解决这些问题,请参阅接收和传输队列,了解 Compute Engine 如何分配 RX 和 TX 队列。

排查自定义 NIC 队列超额订阅问题

使用队列超额订阅时,虚拟机的最大队列数量为:

[maximum queue count per VM] * [number of NICs]

但是,您必须满足自定义队列分配中指定的条件。例如,如果您没有为为虚拟机配置的其中一个 NIC 指定自定义队列数量,则会收到类似于以下内容的错误:

ERROR: (gcloud.compute.instances.create) Could not fetch resource:
 - Invalid value for field 'resource.networkInterfaces': ''. The total
 networking queue number is more than the number of vCPUs. Please specify
 the queue count for all of the interfaces.

已迁移到可用区级 DNS 的项目,但新项目中的虚拟机使用的是全球 DNS

如果您完成了现有项目从使用全球 DNS 到使用可用区级 DNS 的迁移,但发现新创建的项目中的虚拟机具有全球 DNS 名称,则您未在组织或文件夹级层强制执行布尔值组织政策 constraints/compute.setNewProjectDefaultToZonalDNSOnly。此政策会覆盖默认 DNS 设置,因此新创建的项目会默认使用内部可用区级 DNS。

如需了解如何强制执行此政策,请参阅默认情况下仅针对新项目强制执行可用区级 DNS

如果您没有使用组织政策,而是使用项目或虚拟机的元数据条目 VmDnsSetting=ZonalOnly,请检查虚拟机的元数据值。如果虚拟机在其元数据中配置了 VmDnsSetting=GlobalDefault,则此值会覆盖在项目级层设置的元数据值。

如需了解如何设置项目元数据值或虚拟机元数据值,请参阅设置自定义元数据