使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

使用 Cloud NAT 设置和管理网络地址转换

本页介绍如何使用 Cloud NAT 配置和管理网络地址转换。在设置 Cloud NAT 之前,请先阅读 Cloud NAT 概览

限制

  • 如果您使用手动 NAT IP 地址分配,并且更改了用于 Cloud NAT 的 IP 地址,则旧 IP 地址上的所有连接会立即关闭。为避免这种情况,请参阅排空与 NAT 关联的外部 IP 地址

  • 如果您使用静态端口分配配置 Cloud NAT 网关,并减少每个虚拟机的端口数下限,则可能会破坏已建立的 NAT 连接。如需了解详情,请参阅减少每个虚拟机的端口

  • 如果您使用动态端口分配配置了 Cloud NAT 网关,并进一步更改配置,则可能会破坏已建立的 NAT 连接。更改配置时,当前分配给每个虚拟机的端口数可能会暂时重置为配置的最小数量。

  • 如果您使用动态端口分配配置 Cloud NAT 网关,然后关闭动态端口分配,则系统会关闭使用 NAT 网关的所有虚拟机连接。

  • 如果已启用端点独立映射,则无法配置动态端口分配NAT 规则

  • Cloud NAT 不支持 IP 片段。

准备工作

在设置 Cloud NAT 之前,请完成以下任务。

获取 IAM 权限

通过 roles/compute.networkAdmin 角色,您有权在 Cloud Router 路由器上创建 NAT 网关、预留和分配 NAT IP 地址,以及指定哪些子网的流量应该使用 NAT 网关的网络地址转换。

设置 Google Cloud

开始之前,请先在 Google Cloud 中设置以下内容。

  1. 登录您的 Google Cloud 帐号。如果您是 Google Cloud 新手,请创建一个帐号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  3. 确保您的 Cloud 项目已启用结算功能。了解如何检查项目是否已启用结算功能

  4. 安装初始化 Google Cloud CLI。
  5. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  6. 确保您的 Cloud 项目已启用结算功能。了解如何检查项目是否已启用结算功能

  7. 安装初始化 Google Cloud CLI。

此页面上的 Google Cloud CLI 说明假定您在发出命令前已经设置项目 ID。

  1. 您可以使用以下命令设置项目 ID:

    gcloud config set project PROJECT_ID
    
  2. 您还可以查看已设置的项目 ID:

    gcloud config list --format='text(core.project)'
    

创建 NAT

设置简单的配置

此配置会自动分配必要的外部 IP 地址,以便为区域提供 NAT 服务。在该区域的任何子网中,没有外部 IP 地址的虚拟机实例均可通过 NAT 连接到互联网。此配置使用静态端口分配,这意味着为每个虚拟机分配相同数量的端口。此配置还会为所有日志类型启用日志记录

当您使用自动 NAT IP 地址分配功能时,Google Cloud 会自动在您的项目中预留 IP 地址。这些地址会计入您项目中的静态 IP 地址配额

您可以为网关启用或停用端点独立映射。如需了解设置,请参阅设置端点映射

控制台

  1. 在 Google Cloud Console 中,转到 Cloud NAT 页面。

    转到 Cloud NAT

  2. 点击开始使用创建 NAT 网关

  3. 输入网关名称

  4. 为 NAT 网关选择 VPC 网络

  5. 为 NAT 网关设置地区

  6. 在地区中选择或创建 Cloud Router 路由器。

  7. 点击高级配置

  8. Stackdriver Logging 下,选择翻译和错误。此操作会将所有日志发送到 Cloud Logging。

  9. 点击创建

gcloud

  1. 在设置 Cloud NAT 网关之前,请先创建 Cloud Router 路由器。您需要此 Cloud Router 路由器才能设置 Cloud NAT 网关。

  2. 设置 Cloud NAT 网关:

    gcloud compute routers nats create NAT_CONFIG \
       --router=NAT_ROUTER \
       --region=REGION \
       --auto-allocate-nat-external-ips \
       --nat-all-subnet-ip-ranges \
       --enable-logging
    

    请替换以下内容:

    • NAT_CONFIG:NAT 配置的名称。
    • NAT_ROUTER:您的 Cloud Router 路由器的名称。
    • REGION:要创建的 NAT 的区域。如果未指定,系统可能会提示您选择一个区域(仅限互动模式)。

Terraform

您可以使用 Terraform 模块创建具有 NAT 网关的 Cloud Router 路由器。

module "cloud_router" {
  source  = "terraform-google-modules/cloud-router/google"
  version = "~> 4.0"
  project = var.project_id # Replace this with your project ID in quotes
  name    = "my-cloud-router"
  network = "default"
  region  = "us-central1"

  nats = [{
    name = "my-nat-gateway"
  }]
}

生成的 NAT 网关使用以下默认值:

enable_endpoint_independent_mapping = true
icmp_idle_timeout_sec               = 30
min_ports_per_vm                    = 0
nat_ip_allocate_option              = "AUTO_ONLY"
source_subnetwork_ip_ranges_to_nat  = "ALL_SUBNETWORKS_ALL_IP_RANGES"
tcp_established_idle_timeout_sec    = 1200
tcp_transitory_idle_timeout_sec     = 30
udp_idle_timeout_sec                = 30
log_config {
    enable = true
    filter = "ALL"
}

为 NAT 指定 IP 地址

您可以为 NAT 网关手动分配 NAT IP 地址。如果您选择手动分配,请务必分配足够的 IP 地址,以避免数据包丢失。如需了解详情,请参阅 NAT IP 地址

控制台

  1. 在 Google Cloud Console 中,转到 Cloud NAT 页面。

    转到 Cloud NAT

  2. 点击开始使用创建 NAT 网关

  3. 输入网关名称

  4. 选择 VPC 网络

  5. 为 NAT 网关设置地区

  6. 在地区中选择或创建 Cloud Router 路由器。

  7. NAT IP 地址设置为手动

  8. 选择或创建用于 NAT 的静态预留外部 IP 地址。

  9. 如果要指定其他 IP 地址,请点击添加 IP 地址,然后选择或创建其他静态预留外部 IP 地址。

  10. 点击创建

gcloud

gcloud compute routers nats create NAT_CONFIG \
    --router=NAT_ROUTER \
    --region=REGION \
    --nat-all-subnet-ip-ranges \
    --nat-external-ip-pool=IP_ADDRESS1,IP_ADDRESS2

替换以下内容:

  • NAT_CONFIG:NAT 配置的名称。
  • NAT_ROUTER:您的 Cloud Router 路由器的名称。
  • REGION:要创建的 NAT 的区域。如果未指定,系统可能会提示您选择一个区域(仅限互动模式)。
  • IP_ADDRESS1:用于 NAT 的静态预留外部 IP 地址。
  • IP_ADDRESS2:用于 NAT 的另一个静态预留外部 IP 地址。

通过动态端口分配设置 NAT

此配置使用动态端口分配以及自动 NAT IP 地址分配。您还可以使用手动 NAT IP 地址分配来配置动态端口分配。

通过动态端口分配,NAT 网关可以根据使用情况为每个虚拟机分配不同数量的端口。

控制台

  1. 在 Google Cloud Console 中,转到 Cloud NAT 页面。

    转到 Cloud NAT

  2. 点击开始使用创建 NAT 网关

  3. 输入网关名称

  4. 选择 VPC 网络

  5. 为 NAT 网关设置地区

  6. 选择 Cloud Router,或点击创建新路由器以创建新的路由器。

  7. 点击高级配置

  8. 选择启用动态端口分配

  9. 选择每个虚拟机实例的端口数下限。默认值为 32。

  10. 选择每个虚拟机实例的端口数上限。默认值为 65536。

  11. 点击创建

gcloud

gcloud compute routers nats create NAT_CONFIG \
    --router=NAT_ROUTER \
    --region=REGION \
    --auto-allocate-nat-external-ips \
    --nat-all-subnet-ip-ranges \
    --enable-dynamic-port-allocation \
    [ --min-ports-per-vm=MIN_PORTS ] \
    [ --max-ports-per-vm=MAX_PORTS ]

替换以下内容:

  • NAT_CONFIG:NAT 配置的名称。

  • NAT_ROUTER:您的 Cloud Router 路由器的名称。

  • REGION:要创建的 NAT 的区域。如果未指定,系统可能会提示您选择一个区域(仅限互动模式)。

  • MIN_PORTS:要为每个虚拟机分配的端口数下限。如果动态端口分配功能已启用,MIN_PORTS 必须是 2 的幂,并且可以介于 3232768 之间。默认值为 32

  • MAX_PORTS:为每个虚拟机分配的端口数上限。MAX_PORTS 必须是 2 的幂,并且可以介于 6465536 之间。MAX_PORTS 必须大于 MIN_PORTS。默认值为 65536

指定 NAT 的子网范围

默认情况下,针对给定 VPC 网络,NAT 适用于相应地区中所有子网的所有主要和次要 IP 范围。您可以限制哪些主要和次要子网范围可以使用 NAT。

控制台

  1. 在 Google Cloud Console 中,转到 Cloud NAT 页面。

    转到 Cloud NAT

  2. 点击开始使用创建 NAT 网关

  3. 输入网关名称

  4. 选择 VPC 网络

  5. 为 NAT 网关设置地区

  6. 在地区中选择或创建 Cloud Router 路由器。

  7. NAT 映射下,将来源设置为自定义

  8. 选择子网。

  9. IP 范围下拉列表中,选择要包含的子网 IP 范围。

  10. 点击确定

  11. 如果您想指定其他范围,请点击添加子网和 IP 范围

  12. 点击创建

gcloud

gcloud compute routers nats create NAT_CONFIG \
    --router=NAT_ROUTER \
    --region=REGION \
    --auto-allocate-nat-external-ips \
    --nat-custom-subnet-ip-ranges=SUBNETS_RANGES_LIST

替换以下内容:

  • NAT_CONFIG:NAT 配置的名称。
  • NAT_ROUTER:您的 Cloud Router 路由器的名称。
  • REGION:要创建的 NAT 的区域。如果未指定,系统可能会提示您选择一个区域(仅限互动模式)。
  • SUBNETS_RANGES_LIST:子网名称的逗号分隔列表。例如:
    • SUBNET_NAME_1,SUBNET_NAME_2:仅包括 SUBNET_NAME_1SUBNET_NAME_2 的主要子网范围。
    • SUBNET_NAME:SECONDARY_RANGE_NAME:包括子网 SUBNET_NAME 的次要范围 SECONDARY_RANGE_NAME,不包括 SUBNET_NAME 的主要范围。
    • SUBNET_NAME_1,SUBNET_NAME_2:SECONDARY_RANGE_NAME:包括子网 SUBNET_NAME_1 的主要范围和子网 SUBNET_NAME_2 的指定次要范围 SECONDARY_RANGE_NAME

为 NAT 指定不同的每台虚拟机默认端口数下限

您可以配置 Cloud NAT 网关为每个虚拟机预留的端口数。如需了解详情,请参阅端口和连接

控制台

  1. 在 Google Cloud Console 中,转到 Cloud NAT 页面。

    转到 Cloud NAT

  2. 点击开始使用创建 NAT 网关

  3. 输入网关名称

  4. 选择 VPC 网络

  5. 为 NAT 网关设置地区

  6. 在地区中选择或创建 Cloud Router 路由器。

  7. 点击高级配置

  8. 每个虚拟机实例的端口数下限设为其他值。

  9. 点击创建

gcloud

gcloud compute routers nats create NAT_CONFIG \
    --router=NAT_ROUTER \
    --region=REGION \
    --auto-allocate-nat-external-ips \
    --min-ports-per-vm=128

替换以下内容:

  • NAT_CONFIG:NAT 配置的名称。
  • NAT_ROUTER:您的 Cloud Router 路由器的名称。
  • REGION:要创建的 NAT 的区域。如果未指定,系统可能会提示您选择一个区域(仅限互动模式)。

为 NAT 指定不同的超时

如需详细了解超时,请参阅 NAT 超时

控制台

  1. 在 Google Cloud Console 中,转到 Cloud NAT 页面。

    转到 Cloud NAT

  2. 点击开始使用创建 NAT 网关

  3. 输入网关名称

  4. 选择 VPC 网络

  5. 为 NAT 网关设置地区

  6. 在地区中选择或创建 Cloud Router 路由器。

  7. 点击高级配置

  8. 根据需要修改超时。

  9. 点击创建

gcloud

  • 使用此命令为这些超时创建具有自定义设置的 NAT 网关:

    • UDP 映射空闲超时
    • TCP 已建立的连接空闲超时
    • TCP 临时连接空闲超时
    • TCP TIME_WAIT 超时
    • ICMP 映射空闲超时
    gcloud compute routers nats create NAT_CONFIG \
      --router=NAT_ROUTER \
      --region=REGION \
      --auto-allocate-nat-external-ips \
      --nat-custom-subnet-ip-ranges=SUBNETS_RANGES_LIST \
      --udp-idle-timeout=60s \
      --tcp-established-idle-timeout=60s \
      --tcp-transitory-idle-timeout=60s \
      --tcp-time-wait-timeout=60s \
      --icmp-idle-timeout=60s
    

请替换以下内容:

  • NAT_CONFIG:NAT 配置的名称。
  • NAT_ROUTER:您的 Cloud Router 路由器的名称。
  • REGION:要创建的 NAT 的区域。如果未指定,系统可能会提示您选择一个区域(仅限互动模式)。
  • SUBNETS_RANGES_LIST:子网名称的逗号分隔列表。例如:
    • SUBNET_NAME_1,SUBNET_NAME_2:仅包括 SUBNET_NAME_1SUBNET_NAME_2 的主要子网范围。
    • SUBNET_NAME:SECONDARY_RANGE_NAME:包括子网 SUBNET_NAME 的次要范围 SECONDARY_RANGE_NAME,不包括 SUBNET_NAME 的主要范围。
    • SUBNET_NAME_1,SUBNET_NAME_2:SECONDARY_RANGE_NAME:包括子网 SUBNET_NAME_1 的主要范围和子网 SUBNET_NAME_2 的指定次要范围 SECONDARY_RANGE_NAME

更新 NAT

更改与 NAT 关联的子网和 IP 地址资源

控制台

  1. 在 Google Cloud Console 中,转到 Cloud NAT 页面。

    转到 Cloud NAT

  2. 点击您的 NAT 网关。

  3. 点击 修改

  4. NAT 映射下,将来源设置为自定义

  5. 选择子网。

  6. IP 范围下拉列表中,选择要包含的子网 IP 范围。

  7. 如果您想指定其他范围,请点击添加子网和 IP 范围

  8. 点击 NAT IP 地址下拉列表,然后选择自动手动

  9. 如果您选择手动,请指定外部 IP 地址

  10. 要使用手动 IP 地址实现高可用性,请点击添加 IP 地址,然后添加第二个地址。

  11. 点击保存

gcloud

gcloud compute routers nats update NAT_CONFIG \
    --router=NAT_ROUTER \
    --region=REGION \
    --nat-external-ip-pool=IP_ADDRESS2,IP_ADDRESS3 \
    --nat-custom-subnet-ip-ranges=SUBNETS_RANGES_LIST

替换以下内容:

  • NAT_CONFIG:NAT 配置的名称。
  • NAT_ROUTER:您的 Cloud Router 路由器的名称。
  • REGION:要更新的 NAT 的区域。如果未指定,系统可能会提示您选择一个区域(仅限互动模式)。
  • IP_ADDRESS2:手动外部 IP 地址
  • IP_ADDRESS3:另一个手动外部 IP 地址
  • SUBNETS_RANGES_LIST:子网名称的逗号分隔列表。例如:
    • SUBNET_NAME_1,SUBNET_NAME_2:仅包括 SUBNET_NAME_1SUBNET_NAME_2 的主要子网范围。
    • SUBNET_NAME:SECONDARY_RANGE_NAME:包括子网 SUBNET_NAME 的次要范围 SECONDARY_RANGE_NAME,不包括 SUBNET_NAME 的主要范围。
    • SUBNET_NAME_1,SUBNET_NAME_2:SECONDARY_RANGE_NAME:包括子网 SUBNET_NAME_1 的主要范围和子网 SUBNET_NAME_2 的指定次要范围 SECONDARY_RANGE_NAME

更改与 NAT 关联的外部 IP 地址

您可以更改给定网关的外部 IP 地址列表。当您执行此操作时,Google Cloud 会移除旧地址并添加新地址。旧 IP 地址上的所有现有连接都会立即关闭。要让现有连接继续运行,同时阻止通过这些 IP 地址建立新连接,请参阅排空与 NAT 关联的外部 IP 地址

控制台

  1. 在 Google Cloud Console 中,转到 Cloud NAT 页面。

    转到 Cloud NAT

  2. 点击您的 NAT 网关。

  3. 点击 修改

  4. 点击 NAT IP 地址下拉列表,然后选择自动手动

  5. 如果您选择手动,请指定外部 IP 地址

  6. 要获得高可用性,请点击添加 IP 地址,然后添加第二个地址。

  7. 点击保存

gcloud

gcloud compute routers nats update NAT_CONFIG \
    --router=NAT_ROUTER \
    --region=REGION \
    --nat-external-ip-pool=IP_ADDRESS2,IP_ADDRESS3

替换以下内容:

  • NAT_CONFIG:NAT 配置的名称。
  • NAT_ROUTER:您的 Cloud Router 路由器的名称。
  • REGION:要更新的 NAT 的区域。如果未指定,系统可能会提示您选择一个区域(仅限互动模式)。
  • IP_ADDRESS2:手动外部 IP 地址。
  • IP_ADDRESS3:另一个手动外部 IP 地址。

排空与 NAT 关联的外部 IP 地址

在移除手动配置的 IP 地址之前,您可以对其执行排空操作,以确保现有的连接不会中断。当 IP 地址已排空时,所有现有连接都可以继续运行,直到其自然到期。您可以查看日志,以检查现有连接的状态。

已排空的 IP 地址不接受新的连接。不过,这些 IP 地址会与 NAT 配置保持关联。

NAT 配置中必须至少有一个有效地址,这意味着您不能排空配置中的所有 IP 地址。

如需查看 NAT IP 地址的状态,您可以显示 NAT 状态

控制台

  1. 在 Google Cloud Console 中,转到 Cloud NAT 页面。

    转到 Cloud NAT

  2. 点击您的 NAT 网关。

  3. 点击 修改

  4. NAT IP 地址下,将相应 IP 地址旁的 IP 排空值设置为 On

  5. 点击保存

gcloud

如需排空地址,您必须在同一命令中将其从活跃池移至排空池。如果您使用一个命令将该地址从活跃池中移除,而未将其添加到排空池,那么该 IP 地址会从服务中删除,并且现有连接会立即终止。

如果您将 IP 地址从排空池移至活跃池,则会取消排空该 IP 地址。如果您同时从这两个池中移除了 NAT IP 地址,则会将该地址与 NAT 配置断开。

此命令会使 NAT 配置中的其他字段保持不变。

gcloud compute routers nats update NAT_CONFIG \
    --router=NAT_ROUTER \
    --region=REGION \
    --nat-external-ip-pool=IP_ADDRESS3 \
    --nat-external-drain-ip-pool=IP_ADDRESS2

其中:

  • --nat-external-ip-pool=IP_ADDRESS3 会更新活跃池以省略 IP_ADDRESS2
  • --nat-external-drain-ip-pool=IP_ADDRESS2 会向排空池添加 IP_ADDRESS2

请替换以下内容:

  • NAT_CONFIG:NAT 配置的名称。
  • NAT_ROUTER:您的 Cloud Router 路由器的名称。
  • REGION:要更新的 NAT 的区域。如果未指定,系统可能会提示您选择一个区域(仅限互动模式)。
  • IP_ADDRESS3:IP 地址。
  • IP_ADDRESS2:另一个 IP 地址。

查看端口用量

在修改每个虚拟机的端口用量下限之前,请查看每个虚拟机的端口用量。您可以使用 compute.googleapis.com/nat/port_usage 指标来获取此信息。

控制台

  1. 转到监控页面。

    转到监控

  2. 在导航窗格中,选择 Metrics Explorer

  3. 展开选择指标菜单,然后使用子菜单选择 compute.googleapis.com/nat/port_usage 指标:

    • 对于资源,请选择虚拟机实例
    • 对于指标类别,请选择 NAT
    • 对于指标,选择端口用量
  4. 使用过滤条件字段选择 NAT 网关。

  5. 分组依据字段中,选择 instance_id

  6. 聚合器字段设置为最大值

  7. 高级选项下,将校准器字段设置为最大值

  8. 要查看过去 30 天的用量,请使用右上角的菜单选择 1 个月

如需详细了解如何使用 Metrics Explorer,请参阅使用 Metrics Explorer 时选择指标

选择每个虚拟机的端口数下限

选择适当的端口数下限有很重要,这可帮助您最大限度地提高 NAT IP 地址用量。

在增加每个虚拟机的端口数之前,请考虑其他减少端口用量的策略。

如果您确实需要增加每个虚拟机的端口数,请先考虑网关中每个虚拟机的端口用量。如需了解如何查找此数据,请参阅查看端口用量

查看过去 30 天或您认为代表 NAT 网关的其他时间段的端口用量上限。

执行下列其中一项操作:

更改按与 NAT 关联的虚拟机分配的默认端口数下限

如需有关确定如何配置每个虚拟机的端口数下限的帮助,请参阅选择每个虚拟机的端口数下限

如需了解更改端口数下限分配的结果,请参阅以下部分:

如果您的 Cloud NAT 网关已配置动态端口分配,请参阅配置动态端口分配时更改最小或最大端口数

控制台

  1. 在 Google Cloud Console 中,转到 Cloud NAT 页面。

    转到 Cloud NAT

  2. 点击您的 NAT 网关。

  3. 点击 修改

  4. 点击高级配置

  5. 修改每个虚拟机实例的端口数下限字段。

  6. 点击保存

gcloud

此命令会使 NAT 配置中的其他字段保持不变。

gcloud compute routers nats update NAT_CONFIG \
    --router=NAT_ROUTER \
    --region=REGION \
    --min-ports-per-vm=128

请替换以下内容:

  • NAT_CONFIG:NAT 配置的名称。
  • NAT_ROUTER:您的 Cloud Router 路由器的名称。
  • REGION:要更新的 NAT 的区域。如果未指定,系统可能会提示您选择一个区域(仅限互动模式)。

更新现有 NAT 网关以使用动态端口分配

静态端口分配动态端口分配具有不同的配置要求。

在现有 NAT 网关上启用动态端口分配之前,请确保 NAT 网关配置与动态端口分配兼容。如果配置不兼容,则更改将会失败。

控制台

  1. 在 Google Cloud Console 中,转到 Cloud NAT 页面。

    转到 Cloud NAT

  2. 点击您的 NAT 网关。

  3. 点击 修改

  4. 点击高级配置

  5. 选择启用动态端口分配

  6. 如果需要,请调整每个虚拟机实例的端口数下限每个虚拟机实例的端口数上限的值。

  7. 点击保存

gcloud

此命令会使 NAT 配置中的其他字段保持不变。

gcloud compute routers nats update NAT_CONFIG \
    --router=NAT_ROUTER \
    --region=REGION \
    --enable-dynamic-port-allocation \
    [ --min-ports-per-vm=MIN_PORTS ] \
    [ --max-ports-per-vm=MAX_PORTS ]

请替换以下内容:

  • NAT_CONFIG:NAT 配置的名称。
  • NAT_ROUTER:您的 Cloud Router 路由器的名称。
  • REGION:要更新的 NAT 的区域。如果未指定,系统可能会提示您选择一个区域(仅限互动模式)。
  • MIN_PORTS:要为每个虚拟机分配的端口数下限。如果启用了动态端口分配,则 MIN_PORTS 必须是 2 的幂,并且可以介于 3232768 之间。
  • MAX_PORTS:为每个虚拟机分配的端口数上限。MAX_PORTS 必须是 2 的幂,并且可以介于 6465536 之间。MAX_PORTS 必须大于 MIN_PORTS。默认值为 65536

配置动态端口分配时更改最小或最大端口数

配置动态端口分配后,您可以更改每个虚拟机分配的端口数下限或上限。

如需有关确定如何配置每个虚拟机的端口数下限的帮助,请参阅选择每个虚拟机的端口数下限

如需了解更改端口数下限分配的结果,请参阅以下部分:

控制台

  1. 在 Google Cloud Console 中,转到 Cloud NAT 页面。

    转到 Cloud NAT

  2. 点击您的 NAT 网关。

  3. 点击 修改

  4. 点击高级配置

  5. 调整每个虚拟机实例的端口数下限每个虚拟机实例的端口数上限字段。

  6. 点击保存

gcloud

此命令会使 NAT 配置中的其他字段保持不变。

gcloud compute routers nats update NAT_CONFIG \
    --router=NAT_ROUTER \
    --region=REGION \
    --min-ports-per-vm=MIN_PORTS \
    --max-ports-per-vm=MAX_PORTS

请替换以下内容:

  • NAT_CONFIG:NAT 配置的名称。
  • NAT_ROUTER:您的 Cloud Router 路由器的名称。
  • REGION:要更新的 NAT 的区域。如果未指定,系统可能会提示您选择一个区域(仅限互动模式)。
  • MIN_PORTS:要为每个虚拟机分配的端口数下限。如果启用了动态端口分配,则 MIN_PORTS 必须是 2 的幂,并且可以介于 3232768 之间。
  • MAX_PORTS:为每个虚拟机分配的端口数上限。MAX_PORTS 必须是 2 的幂,并且可以介于 6465536 之间。MAX_PORTS 必须大于 MIN_PORTS

更改与 NAT 关联的连接超时

如需详细了解超时,请参阅 NAT 超时

控制台

  1. 在 Google Cloud Console 中,转到 Cloud NAT 页面。

    转到 Cloud NAT

  2. 点击您的 NAT 网关。

  3. 点击 修改

  4. 点击高级配置

  5. 修改您要更改的所有超时值。

  6. 点击保存

gcloud

  • 使用以下命令更改这些超时:

    • UDP 映射空闲超时
    • TCP 已建立的连接空闲超时
    • TCP 临时连接空闲超时
    • TCP TIME_WAIT 超时
    • ICMP 映射空闲超时

    此命令会使 NAT 配置中的其他字段保持不变。

    gcloud compute routers nats update NAT_CONFIG \
      --router=NAT_ROUTER \
      --region=REGION \
      --udp-idle-timeout=60s \
      --tcp-established-idle-timeout=60s \
      --tcp-transitory-idle-timeout=60s \
      --tcp-time-wait-timeout=60s \
      --icmp-idle-timeout=60s
    

请替换以下内容:

  • NAT_CONFIG:NAT 配置的名称。
  • NAT_ROUTER:您的 Cloud Router 路由器的名称。
  • REGION:要更新的 NAT 的区域。如果未指定,系统可能会提示您选择一个区域(仅限互动模式)。

将与 NAT 关联的连接超时重置为默认值

如需详细了解超时,请参阅 NAT 超时

控制台

  1. 在 Google Cloud Console 中,转到 Cloud NAT 页面。

    转到 Cloud NAT

  2. 点击您的 NAT 网关。

  3. 点击 修改

  4. 点击高级配置

  5. 移除您要重置的任何用户配置的值。

  6. 点击保存

已移除的值会重置为默认值。

gcloud

此命令会使 NAT 配置中的其他字段保持不变。

gcloud compute routers nats update NAT_CONFIG \
    --router=NAT_ROUTER \
    --region=REGION \
    --clear-udp-idle-timeout \
    --clear-icmp-idle-timeout \
    --clear-tcp-established-idle-timeout \
    --clear-tcp-time-wait-timeout \
    --clear-tcp-transitory-idle-timeout

请替换以下内容:

  • NAT_CONFIG:您的 NAT 网关的名称。
  • NAT_ROUTER:您的 Cloud Router 路由器的名称。
  • REGION:要更新的 NAT 的区域。如果未指定,系统可能会提示您选择一个区域(仅限互动模式)。

设置端点映射

您可以为网关启用或停用端点独立映射。默认情况下,该功能处于停用状态。 将端点独立映射从已启用切换为已停用(或从已停用更改为已启用)不会中断现有连接。

如果 NAT 网关使用 NAT 规则或动态端口分配,请勿启用端点独立映射。

控制台

  1. 在 Google Cloud Console 中,转到 Cloud NAT 页面。

    转到 Cloud NAT

  2. 点击您的 NAT 网关。

  3. 点击 修改

  4. 点击高级配置

  5. 如需启用端点独立映射,请选中启用端点独立映射复选框。如需停用端点独立映射,请取消选中该复选框。

  6. 点击保存

gcloud

为现有网关更新

gcloud compute routers nats update NAT_CONFIG \
    --router=NAT_ROUTER \
    --region=REGION \
    [--enable-endpoint-independent-mapping | --no-enable-endpoint-independent-mapping]

请替换以下内容:

  • NAT_CONFIG:NAT 配置的名称。
  • NAT_ROUTER:您的 Cloud Router 路由器的名称。
  • REGION:要更新的 NAT 的区域。如果未指定,系统可能会提示您选择一个区域(仅限互动模式)。

配置日志记录

如需为现有网关添加(启用)、修改或移除日志记录,请参阅配置日志记录

删除 NAT

这会从 Cloud Router 路由器中移除 NAT 配置,但不会删除路由器本身。

控制台

  1. 在 Google Cloud Console 中,转到 Cloud NAT 页面。

    转到 Cloud NAT

  2. 选中您要删除的网关配置旁边的复选框。

  3. 菜单 上,点击删除

gcloud

gcloud compute routers nats delete NAT_CONFIG \
 --router=NAT_ROUTER \
 --region=REGION

替换以下内容:

  • NAT_CONFIG:NAT 配置的名称。
  • NAT_ROUTER:您的 Cloud Router 路由器的名称。
  • REGION:要删除的 NAT 的区域。如果未指定,系统可能会提示您选择一个区域(仅限互动模式)。

查看 NAT 配置

控制台

  1. 在 Google Cloud Console 中,转到 Cloud NAT 页面。

    转到 Cloud NAT

  2. 如需查看 NAT 网关详细信息、映射信息或配置详细信息,请点击 NAT 网关的名称。

  3. 如需查看 NAT 状态,请参阅 NAT 网关的状态列。

gcloud

您可以通过运行以下命令查看 NAT 配置详细信息:

  • 查看 Cloud NAT 网关配置。

    gcloud compute routers nats describe NAT_CONFIG \
    --router=NAT_ROUTER \
    --region=REGION
    

    请替换以下内容:

    • NAT_CONFIG:NAT 配置的名称。
    • NAT_ROUTER:您的 Cloud Router 路由器的名称。
    • REGION:要描述的 NAT 的区域。如果未指定,系统可能会提示您选择一个区域(仅限互动模式)。
  • 查看分配给每个虚拟机接口的 IP:port-range(IP 地址:端口范围)映射。

    gcloud compute routers get-nat-mapping-info NAT_ROUTER \
    --region=REGION
    
  • 查看 Cloud NAT 网关的状态。

    gcloud compute routers get-status NAT_ROUTER \
    --region=REGION
    

配额和限制

如需了解配额和限制信息,请参阅配额页面。

设置示例

以下示例展示了如何使用 Google Cloud 测试 Cloud NAT:

后续步骤