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

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

限制

  • 如果您更改 Cloud NAT 网关的自动分配的 IP 地址的网络层级,则旧 IP 地址上的所有连接会立即关闭。

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

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

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

  • 如果您使用动态端口分配配置 Cloud NAT 网关,然后关闭动态端口分配,则系统会关闭使用 NAT 网关的所有虚拟机连接。如需了解详情,请参阅切换端口分配方法

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

  • Cloud NAT 不支持 IP 片段。

  • Cloud NAT 配置与虚拟私有云网络相关联。因此,配置 适用于属于该网络子网的所有资源。 您无法选择要由 Cloud NAT 网关为其提供服务的特定虚拟机。

准备工作

在设置 Public NAT 网关之前,请完成以下任务。

获取 IAM 权限

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

设置 Google Cloud

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

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Install the Google Cloud CLI.
  5. To initialize the gcloud CLI, run the following command:

    gcloud init
  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  7. Make sure that billing is enabled for your Google Cloud project.

  8. Install the Google Cloud CLI.
  9. To initialize the gcloud CLI, run the following command:

    gcloud init

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

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

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

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

创建 Public NAT 配置

设置简单的配置

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

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

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

控制台

  1. 在 Google Cloud 控制台中,转到 Cloud NAT 页面。

    转到 Cloud NAT

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

  3. 输入网关名称

  4. NAT 类型列表中,选择公共

  5. 为 NAT 网关选择 VPC 网络

  6. 为 NAT 网关设置地区

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

  8. 点击高级配置

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

  10. 点击创建

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 = "~> 6.0"
  name    = "my-cloud-router"
  project = var.project_id
  network = module.vpc.network_name
  region  = "us-central1"

  nats = [{
    name                               = "my-nat-gateway"
    source_subnetwork_ip_ranges_to_nat = "LIST_OF_SUBNETWORKS"
    subnetworks = [
      {
        name                     = module.vpc.subnets["us-central1/test-subnet-01"].id
        source_ip_ranges_to_nat  = ["PRIMARY_IP_RANGE", "LIST_OF_SECONDARY_IP_RANGES"]
        secondary_ip_range_names = module.vpc.subnets["us-central1/test-subnet-01"].secondary_ip_range[*].range_name
      }
    ]
  }]
}

生成的 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 控制台中,转到 Cloud NAT 页面。

    进入 Cloud NAT

  2. 点击开始使用创建 Cloud 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 地址。

使用特定网络层级的 IP 地址设置 NAT

您可以通过分配特定网络层级的外部 IP 地址来创建 Cloud NAT 网关。

使用特定网络层级的自动 IP 地址分配设置 NAT

在创建具有自动 NAT IP 地址分配的 Cloud NAT 网关时,您可以指定 Cloud NAT 网关用于分配 IP 地址的网络服务层级(高级层级或标准层级)。

控制台

  1. 在 Google Cloud 控制台中,转到 Cloud NAT 页面。

    进入 Cloud NAT

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

  3. 输入网关名称。

  4. 为 NAT 网关选择虚拟私有云 (VPC) 网络。

  5. 为 NAT 网关设置区域。

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

  7. Cloud NAT IP 地址列表中,选择自动(推荐)

  8. 对于网络服务层级,选择高级标准

  9. 点击创建

gcloud

使用 gcloud CLI 运行 compute routers nats create 命令 (带有 --auto-network-tier 标志)。

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

替换以下内容:

  • NAT_CONFIG:NAT 配置的名称。

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

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

  • AUTO_NETWORK_TIER:为 Cloud NAT 网关自动分配 IP 地址时要使用的网络层级。允许的值包括 PREMIUMSTANDARD。如果未指定,则当前的项目级默认层级会与 Cloud NAT 网关相关联。

使用特定网络层级的手动 IP 地址分配设置 NAT

创建 Cloud NAT 网关时,您可以选择手动分配高级层级和/或标准层级的 NAT IP 地址,但需满足某些条件

控制台

  1. 在 Google Cloud 控制台中,转到 Cloud NAT 页面。

    进入 Cloud NAT

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

  3. 输入网关名称。

  4. 为 NAT 网关选择一个虚拟私有云网络。

  5. 为 NAT 网关设置区域。

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

  7. Cloud NAT IP 地址列表中,选择手动

  8. 对于网络服务层级,选择高级标准

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

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

  11. 点击创建

gcloud

如需通过从 Google Cloud 控制台手动分配外部 IP 地址来创建 NAT 网关,请执行以下操作: 特定网络层级,请使用--nat-external-ip-pool gcloud compute routers nats create 命令

如需了解如何手动分配 NAT IP 地址,请参阅指定 NAT 的 IP 地址

通过动态端口分配设置 NAT

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

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

控制台

  1. 在 Google Cloud 控制台中,转到 Cloud NAT 页面。

    进入 Cloud NAT

  2. 点击开始使用创建 Cloud 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 控制台中,转到 Cloud NAT 页面。

    进入 Cloud NAT

  2. 点击开始使用创建 Cloud 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

配置日志记录

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

查看 NAT 配置

控制台

  1. 在 Google Cloud 控制台中,转到 Cloud NAT 页面。

    转到 Cloud NAT

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

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

gcloud

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

  • 查看 Public NAT 网关配置。

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

    请替换以下内容:

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

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

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

查看分配给网关的 NAT IP 地址

如需查看自动添加的 NAT IP 地址,请参阅静态外部 IP 地址列表。这些地址不会计入每个项目的配额。

控制台

在 Google Cloud 控制台中,打开 IP 地址页面,然后点击外部 IP 地址

转到“IP 地址”

gcloud

  • 如需列出所有分配的 NAT IP 地址,请使用以下命令:

    gcloud compute routers get-nat-ip-info NAT_ROUTER \
      --region=REGION
    

    如需查看更多示例,请参阅 gcloud compute routers get-nat-ip-info

更新 NAT 配置

设置 Public NAT 网关后,您可以根据要求更新网关配置。以下部分列出了更新 Public NAT 网关时可执行的任务。

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

控制台

  1. 在 Google Cloud 控制台中,转到 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

删除与 Public NAT 关联的子网

您可以从 NAT 网关中移除不再使用的特定子网。

控制台

  1. 在 Google Cloud 控制台中,转到 Cloud NAT 页面。

    转到 Cloud NAT

  2. 点击您的 NAT 网关。

  3. 点击修改

  4. 删除要从 NAT 映射中移除的子网。

  5. 点击保存

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

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

控制台

  1. 在 Google Cloud 控制台中,转到 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 地址。

使用其他网络层级的外部 IP 地址更新 NAT

您可以通过更改与网关关联的外部 IP 地址的网络层级来更新现有 Cloud NAT 网关。

通过更改自动分配的外部 IP 地址的网络层级来更新 NAT

当您更改与现有 NAT 网关关联的自动分配的外部 IP 地址的网络层级时,Google Cloud 会移除旧地址,并添加指定的网络层级的新地址。旧 IP 地址上的所有现有连接都会立即关闭。

控制台

  1. 在 Google Cloud 控制台中,转到 Cloud NAT 页面。

    进入 Cloud NAT

  2. 点击已自动分配 IP 地址的 NAT 网关名称。

  3. 点击修改

  4. 对于网络服务层级,选择高级标准

  5. 点击保存

gcloud

使用 gcloud CLI 运行带有 --auto-network-tier 标志的 compute routers nats update 命令

gcloud compute routers nats update NAT_CONFIG \
    --router=NAT_ROUTER \
    --region=REGION \
    --auto-allocate-nat-external-ips
    --auto-network-tier=AUTO_NETWORK_TIER

替换以下内容:

  • NAT_CONFIG:NAT 配置的名称。

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

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

  • AUTO_NETWORK_TIER:自动配置时使用的网络层级 为 Cloud NAT 网关分配 IP 地址。允许的值包括 PREMIUMSTANDARD。如果未指定,则当前的项目级默认层级会与 Cloud NAT 网关相关联。

通过更改手动分配的 IP 地址的网络层级来更新 NAT

您可以通过手动指定其他层级的外部 IP 地址来更新现有 NAT。您可以分配标准层级和/或高级层级的外部 IP 地址,但需满足特定条件。在指定其他层级的外部 IP 地址之前,请先排空现有 IP 地址,以继续维持现有连接并阻止现有 IP 地址上的新连接。

控制台

  1. 在 Google Cloud 控制台中,转到 Cloud NAT 页面。

    进入 Cloud NAT

  2. 点击已手动分配 IP 地址的 NAT 网关名称。

  3. 点击修改

  4. 如需指定与当前所选层级不同层级的 IP 地址,请删除所有现有 IP 地址或为所有现有 IP 地址启用排空。

    如果为现有 IP 地址停用了排空,则无法更改网络层级。

  5. 对于网络服务层级,选择高级标准

  6. 从有效的可用 IP 地址列表中选择一个外部 IP 地址。

  7. 可选:如需添加更多 IP 地址,请点击添加 IP 地址

  8. 点击保存

gcloud

如需通过手动将现有的外部 IP 地址替换为其他网络层级的新外部 IP 地址来更新现有网关,请使用 compute routers nats update 命令--nat-external-ip-pool 字段。

如需详细了解如何手动更改现有外部 IP 地址,请参阅更改与 NAT 关联的外部 IP 地址

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

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

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

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

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

控制台

  1. 在 Google Cloud 控制台中,转到 Cloud NAT 页面。

    转到 Cloud NAT

  2. 点击您的 NAT 网关。

  3. 点击修改

  4. NAT IP 地址字段中,将相应 IP 地址旁的 IP 排空值设置为开启

  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 地址。

设置端点映射

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

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

控制台

  1. 在 Google Cloud 控制台中,转到 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 控制台中,转到 Cloud NAT 页面。

    转到 Cloud NAT

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

  3. 菜单上,点击删除

gcloud

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

替换以下内容:

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

配额和限制

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

设置示例

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

后续步骤