Cloud NAT 产品交互

本页面介绍了 Cloud NAT 与其他 Google Cloud 产品之间的重要交互。

路由交互

答 公共 NAT 网关只能使用下一个跃点是 默认互联网网关每个虚拟私有云 (VPC) 网络最初都有一个 目的地为 0.0.0.0/0 且下一个跃点是默认路由的路由 互联网网关。如需了解重要的背景信息,请参阅 路由概览

以下示例说明了可能导致 公共 NAT 网关故障:

  • 如果您创建一个自定义静态路由,并将其后续跃点设置为任何其他类型的自定义静态路由下一跃点,则目标 IP 地址与该路由目标相匹配的数据包会发送到上述下一个跃点,而不是默认互联网网关。例如,如果 您使用运行 NAT 网关、防火墙或代理的虚拟机 (VM) 实例 您可以创建自定义静态路由,将流量作为 下一个跃点下一个跃点虚拟机需要外部 IP 地址。因此, 来自依赖于下一个跃点虚拟机或下一个跃点虚拟机的虚拟机的流量 因此无法使用 公共 NAT 网关。

  • 如果您创建了下一个跃点为 Cloud VPN 的自定义静态路由 隧道 公共 NAT 不会使用该路由例如,自定义 目标为 0.0.0.0/0 且下一个跃点为 Cloud VPN 的静态路由 隧道会将流量定向到该隧道,而不是默认的互联网网关。 因此, 公共 NAT 网关不能使用 。同样, 公共 NAT 网关不能使用自定义静态 目的地更具体的路线,包括 0.0.0.0/1128.0.0.0/1

  • 如果本地路由器将自定义动态路由通告到 管理 Cloud VPN 隧道的 Cloud Router 路由器或 VLAN 连接 公共 NAT 网关不能使用该路由例如,如果您的本地路由器 通告目标为 0.0.0.0/0 的自定义动态路由, 0.0.0.0/0 将被定向到 Cloud VPN 隧道 或 VLAN 连接。即使对于 更具体的目的地,包括 0.0.0.0/1128.0.0.0/1

Private NAT 使用以下路由:

  • 对于 Inter-VPC NAT,专用 NAT 仅使用子网 两个 Web Connectivity Center VPC spoke 交换路由, 连接到 Network Connectivity Center hub。详细了解 Network Connectivity Center VPC spoke,请参阅 VPC spoke 概览
  • 对于混合 NAT(预览版),Private NAT 会使用动态路由 Cloud Router 路由器学习的 Cloud VPN。

专用 Google 访问通道交互

答 公共 NAT 网关绝不会对发送到选定节点的流量执行 NAT Google API 的外部 IP 地址, 服务。相反, Google Cloud 会自动启用专用 Google 访问通道 指定子网 IP 地址范围 公共 NAT 应用于该子网范围(主要或 次要。只要网关为子网范围提供 NAT,专用 Google 访问通道就会在该范围内有效,无法手动停用。

答 公共 NAT 不会改变 专用 Google 访问通道会正常工作。如需了解详情,请参阅 专用 Google 访问通道

专用 NAT 网关不适用于专用 Google 访问通道。

共享 VPC 交互

共享 VPC 允许单个组织中的多个服务项目在宿主项目中共用共享 VPC 网络。要为使用共享 VPC 网络的服务项目中的虚拟机提供 NAT,您必须在宿主项目中创建 Cloud NAT 网关。

VPC 网络对等互连交互

Cloud NAT 网关与单个地区和单个 VPC 网络中的子网 IP 地址范围相关联。即使对等互连网络中的虚拟机与网关位于同一区域,在一个 VPC 网络中创建的 Cloud NAT 网关也无法向使用 VPC 网络对等互连或使用 Network Connectivity Center VPC Spoke 连接的其他 VPC 网络中的虚拟机提供 NAT。

GKE 交互

答 公共 NAT 可以对集群内的节点和 Pod 执行 专用集群 这是一种 VPC 原生集群通过 公共 NAT 网关 必须配置为至少应用于以下子网 IP 地址范围 为集群使用的子网指定以下 IP 地址:

  • 子网主要 IP 地址范围(由节点使用)
  • 集群中用于 Pod 的子网次要 IP 地址范围
  • 集群中用于 Service 的子网次要 IP 地址范围

如需为整个专用集群提供 NAT,最简单的方法是 一 公共 NAT 该网关可应用于所有子网 IP 地址范围 集群子网的 IP 地址

如需了解有关 VPC 原生集群如何使用子网 IP 地址范围的背景信息,请参阅 VPC 原生集群的 IP 范围

当 公共 NAT 该网关已配置为为专用 NAT 都会为每个节点虚拟机预留 NAT 来源 IP 地址和来源端口。 Pod 可以使用这些 NAT 来源 IP 地址和来源端口,因为 Pod IP 地址是作为分配给每个节点虚拟机的别名 IP 地址范围实现的。

Google Kubernetes Engine (GKE) VPC 原生集群始终会为每个节点分配一个包含多个 IP 地址(网络掩码小于 /32)的别名 IP 地址范围。

  • 如果配置了静态端口分配,则 Public NAT 端口预留过程会为每个节点至少预留 1024 个来源端口。如果每个虚拟机的端口数下限值大于 1024,则使用该值。

  • 如果配置了动态端口分配,则最初为每个节点分配指定的端口数下限值。随后,分配的端口数会根据需要在每个虚拟机的指定端口数下限和上限值之间变化。

如需了解 Pod IP 地址范围和 VPC 原生集群,请参阅 Pod 的子网次要 IP 地址范围

独立于 公共 NAT 时,Google Kubernetes Engine 会对来源网络执行 地址转换(来源 NAT 或 SNAT) 当 Pod 将数据包发送到互联网时,使用每个节点上运行的软件 除非您更改了集群的 IP 地址伪装 配置。如果您需要 精确控制来自 Pod 的出站流量,您可以使用网络 政策

在某些情况下 公共 NAT 对非私密性而言, VPC 原生集群 由于非专用集群中的节点具有外部 IP 地址, 从节点的主要内部 IP 地址发送的数据包绝不会由 Cloud NAT。不过,如果同时满足以下两个条件, 非专用集群中的 Pod 可以由 公共 NAT 网关:

  • 对于 VPC 原生集群 公共 NAT 网关是 配置为应用到集群 Pod 的次要 IP 地址范围。

  • 集群的 IP 伪装配置未配置为针对从 Pod 发送到互联网的数据包在集群内执行 SNAT。

以下示例显示了 公共 NAT 使用 GKE:

<ph type="x-smartling-placeholder">
</ph> Public NAT 与 GKE。
公共 NAT (点击可放大)。

在此例中,您希望对容器进行 NAT 转换。如需为所有容器和 GKE 节点启用 NAT,您必须选择 Subnet 1 的所有 IP 范围作为 NAT 候选项。

  • 子网主要 IP 地址范围:10.240.0.0/24
  • 用于 Pod 的子网次要 IP 地址范围:10.0.0.0/16

不能仅对 Pod1Pod2 启用 NAT。

Private NAT 网关可以执行 专用集群和非专用集群中的节点和 Pod 的 NAT。Private NAT 网关会自动应用于集群使用的专用子网的所有子网 IP 地址范围。

直接 VPC 出站流量交互

公共 NAT 网关可为 Cloud Run 服务执行 NAT 配置有 直接 VPC 出站流量。 要使 Cloud Run 能够使用 公共 NAT 配置您的 公共 NAT 具有以下各项的 设置:

  • 要配置与您的实体关联的子网和子网 IP 地址范围, Cloud Run 实例可以使用 公共 NAT 网关 指定 --nat-all-subnet-ip-ranges--nat-custom-subnet-ip-ranges 标志:
    • 要让该区域中所有子网的所有 IP 地址范围都使用 公共 NAT 网关时,请指定 --nat-all-subnet-ip-ranges 标志。
    • 如需仅允许特定子网和子网 IP 地址范围使用 公共 NAT 请使用 --nat-custom-subnet-ip-ranges 标志。
  • --endpoint-types 标志的值设置为 ENDPOINT_TYPE_VM。此值 确保只有虚拟机和直接 VPC 出站虚拟机端点可以使用 公共 NAT 网关。
  • 如果是静态端口分配,请设置 --min-ports-per-vm 的值 设置为单个端口所需端口数的四倍 Cloud Run 实例。
  • 在手动分配 NAT IP 地址的情况下, IP 地址 公共 NAT 用来处理 Google Cloud 实例数与 Cloud Run 实例 VPC 网络。

从 Cloud Run 发送出站流量(除了网关配置之外) 服务或作业,您必须将 --vpc-egress 标志设置为 all-traffic 创建服务或作业

如果您配置了一项 Cloud Run 服务或作业, --vpc-egress 标志设置为 private-ranges-only,则服务或作业将发送 将流量仅传输到内部 IP 地址您无需 公共 NAT 用于将流量路由到内部目的地的网关。

为了防止 Cloud Run 服务或作业 将 --vpc-egress 标志设置为 private-ranges-only,以便使用 公共 NAT ,请执行以下操作:

  • 配置 公共 NAT 具有 --nat-custom-subnet-ip-ranges 标志的网关。
  • --nat-custom-subnet-ip-ranges 标志的值设置为子网名称,其中 您已部署带有 --vpc-egress 标志的 Cloud Run 服务或作业 已设置为 all-traffic

以下限制适用于 Cloud Run 服务和作业 使用 Public NAT 网关的服务提供商:

  • 直接 VPC 出站流量端点的 Cloud NAT 指标不会导出到 Cloud Monitoring。
  • 直接 VPC 出站流量的 Cloud NAT 日志不显示 Cloud Run 服务、修订版本或作业。

您不能将 Private NAT 网关与直接 VPC 出站流量搭配使用 端点。

Connectivity Tests 交互

您可以使用 Connectivity Tests 检查网络之间的连接 使用 Cloud NAT 配置的端点。 你可以运行 Connectivity Tests 在使用 Public NAT 网关的网络上 和/或 Private NAT 网关

配置分析跟踪记录中查看 NAT 配置详细信息 Connectivity Tests 测试详情页面上的窗格。

Cloud Load Balancing 交互

Google Cloud 区域级内部应用负载平衡器区域级外部应用负载平衡器 与多个区域级互联网网络端点组 (NEG) 后端进行通信。 通过为 Cloud NAT 配置 Cloud NAT 网关, 区域级互联网 NEG,您可以分配自己的一组外部 IP 地址范围 Google Cloud 流量的来源位置。健康检查和 数据平面流量来自您分配的 NAT IP 地址。

其他 Google Cloud 外部负载平衡器和健康检查系统可以 通过特殊路由连接到虚拟机后端虚拟机 不需要外部 IP 地址,Cloud NAT 网关也不管理 负载平衡器和健康检查的通信。如需了解详情,请参阅 Cloud Load Balancing 概览健康检查概览

后续步骤