

# 使用 NAT 网关
<a name="nat-gateway-working-with"></a>

您可以使用 Amazon VPC 控制台创建和管理 NAT 网关。

**Topics**
+ [控制 NAT 网关的使用](#nat-gateway-iam)
+ [创建 NAT 网关](#nat-gateway-creating)
+ [编辑辅助 IP 地址关联](#nat-gateway-edit-secondary)
+ [标记 NAT 网关](#nat-gateway-tagging)
+ [删除 NAT 网关](#nat-gateway-deleting)
+ [命令行概述](#nat-gateway-api-cli)

## 控制 NAT 网关的使用
<a name="nat-gateway-iam"></a>

默认情况下，用户无权使用 NAT 网关。您可以创建一个 IAM 角色，并向该角色附加一个向用户授予 NAT 网关创建、描述和删除权限的策略。有关更多信息，请参阅 [适用于 Amazon VPC 的 Identity and Access Management](security-iam.md)。

## 创建 NAT 网关
<a name="nat-gateway-creating"></a>

请按照以下过程创建 NAT 网关。

**相关限额**
+ 如果您已耗尽分配给账户的弹性 IP 地址数量，则将无法创建公有 NAT 网关。有关更多信息，请参阅 [弹性 IP 地址](amazon-vpc-limits.md#vpc-limits-eips)。
+ 私有 NAT 网关最多可以分配 8 个私有 IPv4 地址。此限制不可调整。
+ 默认情况下，公有 NAT 网关只能关联 2 个弹性 IP 地址。您可以通过请求调整限额来提高此限制。有关更多信息，请参阅 [弹性 IP 地址](amazon-vpc-limits.md#vpc-limits-eips)。

**创建 NAT 网关**

1. 通过以下网址打开 Amazon VPC 控制台：[https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)。

1. 在导航窗格中，选择 **NAT 网关**。

1. 选择**创建 NAT 网关**。

1. （可选）指定 NAT 网关的名称。这将创建一个标签，其中键为 **Name**，值是您指定的名称。

1. 选择要在其中创建 NAT 网关的子网。

1. 对于**连接类型**，保持默认的**公有**选择不变，以创建公有 NAT 网关，或者选择**私有**，以创建私有 NAT 网关。有关公有和私有 NAT 网关之间差异的更多信息，请参阅 [NAT 网关](vpc-nat-gateway.md)。

1. 如果您选择**公有**，请执行以下操作；否则，请跳至第 8 步：

   1. 选择**弹性 IP 分配 ID**为 NAT 网关分配弹性 IP 地址，或者选择**分配弹性 IP** 为公有 NAT 网关自动分配。默认情况下，公有 NAT 网关只能关联 2 个弹性 IP 地址。您可以通过请求调整限额来提高此限制。有关更多信息，请参阅 [弹性 IP 地址](amazon-vpc-limits.md#vpc-limits-eips)。
**重要**  
当您为公有 NAT 网关分配弹性 IP 地址时，EIP 的网络边界组必须与您启动公有 NAT 网关的可用区（AZ）的网络边界组相匹配。如果不匹配，NAT 网关将无法启动。可以通过查看子网的详细信息来了解子网可用区的网络边界组。同样，可以通过查看 EIP 地址的详细信息来了解 EIP 的网络边界组。有关更多信息，请参阅 [1. 分配弹性 IP 地址](WorkWithEIPs.md#allocate-eip)。

   1. （可选）选择**其他设置**，然后在**私有 IP 地址 – 可选**下，为 NAT 网关输入私有 IPv4 地址。如果不输入地址，AWS 会自动从 NAT 网关所在的子网中为 NAT 网关随机分配一个私有 IPv4 地址。

   1. 跳至步骤 11。

1. 如果您选择**私有**，请选择**其他设置**，然后在**私有 IP 地址分配方法**下，选择下列选项中的一种：
   + **自动分配**：AWS 将为 NAT 网关选择主私有 IPv4 地址。对于**自动分配的私有 IPv4 地址数量**，您可以选择为 NAT 网关指定辅助私有 IPv4 地址的数量。AWS 将从 NAT 网关的子网中随机选择这些 IP 地址。
   + **自定义**：对于**主私有 IPv4 地址**，选择 NAT 网关的主私有 IPv4 地址。对于**辅助私有 IPv4 地址**，您可以选择为 NAT 网关指定最多 7 个辅助私有 IPv4 地址。

1. 如果您在步骤 8 中选择了**自定义**，请跳过此步骤。如果您选择了**自动分配**，请在**自动分配的私有 IP 地址数量**下，选择您希望 AWS 分配给该私有 NAT 网关的辅助 IPv4 地址数量。最多可以选择 7 个 IPv4 地址。
**注意**  
辅助 IPv4 地址是可选的，如果使用 NAT 网关的工作负载与单个目标的并发连接超过 55,000 个（相同的目标 IP、目标端口和协议），则应当分配辅助 IPv4 地址。辅助 IPv4 地址增加了可用的端口数量，从而提高了工作负载使用 NAT 网关建立连接的并发连接数限制。

1. 如果您在步骤 9 中选择了**自动分配**，请跳过此步骤。如果您选择了**自定义**，请执行以下操作：

   1. 在**主要私有 IPv4 地址**下，输入私有 IPv4 地址。

   1. 在**辅助私有 IPv4 地址**下，输入辅助私有 IPv4 地址，不超过 7 个。

1. （可选）若要向 NAT 网关添加标签，请选择 **Add new tag**（添加新标签），然后输入该标签的键和值。最多可以添加 50 个标签。

1. 选择**创建 NAT 网关**。

1. NAT 网关的初始状态为 `Pending`。状态更改为 `Available` 后，NAT 网关即可供您使用。请务必按需新路由表。有关示例，请参阅 [NAT 网关使用案例](nat-gateway-scenarios.md)。

如果 NAT 网关的状态变成 `Failed`，则表示在创建过程中发生了错误。有关更多信息，请参阅 [NAT 网关创建失败](nat-gateway-troubleshooting.md#nat-gateway-troubleshooting-failed)。

## 编辑辅助 IP 地址关联
<a name="nat-gateway-edit-secondary"></a>

对于每个唯一目标，每个 IPv4 地址最多可以支持 55,000 个并发连接。唯一目标由目标 IP 地址、目标端口和协议（TCP/UDP/ICMP）的唯一组合标识。您可以通过将最多 8 个 IPv4 地址（1 个主要 IPv4 地址和 7 个辅助 IPv4 地址）关联到 NAT 网关来提高此限制。默认情况下，公有 NAT 网关只能关联 2 个弹性 IP 地址。您可以通过请求调整限额来提高此限制。有关更多信息，请参阅 [弹性 IP 地址](amazon-vpc-limits.md#vpc-limits-eips)。

您可以使用 [NAT 网关 CloudWatch 指标](metrics-dimensions-nat-gateway.md) *ErrorPortAllocation* 和 *PacketsDropCount* 来确定 NAT 网关是否正在生成端口分配错误或丢弃数据包。要解决此问题，请将辅助 IPv4 地址添加到 NAT 网关。

**注意事项**
+ 您可以在创建私有 NAT 网关时或在使用本部分中的步骤创建 NAT 网关后添加辅助私有 IPv4 地址。只有在使用本部分中的过程创建 NAT 网关后，才能将弹性 IP 地址添加到公有 NAT 网关。
+ NAT 网关最多可以关联 8 个 IPv4 地址（1 个主要 IPv4 地址和 7 个辅助 IPv4 地址）。私有 NAT 网关最多可以分配 8 个私有 IPv4 地址。默认情况下，公有 NAT 网关只能关联 2 个弹性 IP 地址。您可以通过请求调整限额来提高此限制。有关更多信息，请参阅 [弹性 IP 地址](amazon-vpc-limits.md#vpc-limits-eips)。

**编辑辅助 IPv4 地址关联**

1. 通过 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 打开 Amazon VPC 控制台。

1. 在导航窗格中，选择 **NAT 网关**。

1. 选择要编辑其辅助 IPv4 地址关联的 NAT 网关。

1. 选择**操作**，然后选择**编辑辅助 IP 地址关联**。

1. 如果要编辑私有 NAT 网关的辅助 IPv4 地址关联，请在**操作**下，选择**分配新 IPv4 地址**或**取消分配现有 IPv4 地址**。如果要编辑公有 NAT 网关的辅助 IPv4 地址关联，请在**操作**下，选择**关联新 IPv4 地址**或**取消关联现有 IPv4 地址**。

1. 请执行以下操作之一：
   + 如果您选择分配或关联新 IPv4 地址，请执行以下操作：

     1. 这个步骤为必填项。您必须选择一个私有 IPv4 地址。选择**私有 IPv4 地址分配方法**：
        + **自动分配**：AWS 会自动选择主要私有 IPv4 地址。如果您希望 AWS 将最多 7 个辅助私有 IPv4 地址分配给 NAT 网关，则可以选择该选项。AWS 会自动从 NAT 网关所在的子网中随机选择并进行分配。
        + **自定义**：选择要分配给 NAT 网关的主要私有 IPv4 地址和最多 7 个辅助私有 IPv4 地址。

     1. 在**弹性 IP 分配 ID** 下，选择要添加为辅助 IPv4 地址的弹性 IP 地址。这个步骤为必填项。您必须选择一个弹性 IP 地址以及一个私有 IPv4 地址。如果您为**私有 IP 地址分配方法**选择了**自定义**，则还必须为您添加的每个弹性 IP 地址输入一个私有 IPv4 地址。
**重要**  
当您为公有 NAT 网关分配辅助 EIP 时，该 EIP 的网络边界组必须与公有 NAT 网关所在可用区（AZ）的网络边界组匹配。如果不匹配，EIP 将无法分配。可以通过查看子网的详细信息来了解子网可用区的网络边界组。同样，可以通过查看 EIP 地址的详细信息来了解 EIP 的网络边界组。有关更多信息，请参阅 [1. 分配弹性 IP 地址](WorkWithEIPs.md#allocate-eip)。

     NAT 网关最多可以关联 8 个 IP 地址。如果这是公有 NAT 网关，则每个区域的弹性 IP 地址都有默认限额限制。有关更多信息，请参阅 [弹性 IP 地址](amazon-vpc-limits.md#vpc-limits-eips)。
   + 如果您选择取消分配或取消关联新 IPv4 地址，请完成以下操作：

     1. 在**要取消分配的现有辅助 IP 地址**下，选择要取消分配的辅助 IP 地址。

     1. （可选）在**连接耗尽持续时间**下，输入连接仍在进行时强制释放 IP 地址之前的最长等待时间（以秒为单位）。如果不输入值，则默认值为 350 秒。

1. 选择**保存更改**。

如果 NAT 网关的状态变成 `Failed`，则表示在创建过程中发生了错误。有关更多信息，请参阅 [NAT 网关创建失败](nat-gateway-troubleshooting.md#nat-gateway-troubleshooting-failed)。

## 标记 NAT 网关
<a name="nat-gateway-tagging"></a>

您可以对 NAT 网关进行标记，以帮助您识别它或根据组织的需要对其进行分类。有关使用标签的信息，请参阅《*Amazon EC2 用户指南*》中的[标记您的 Amazon EC2 资源](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html)。

对于 NAT 网关支持成本分配标签。因此，您还可以使用标签来整理 AWS 账单并反映您自己的成本结构。有关更多信息，请参阅 *AWS Billing 用户指南*中的[使用成本分配标签](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)。有关设置包含标签的成本分配报告的更多信息，请参阅*关于 AWS 账户账单*中的[月度成本分配报告](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/configurecostallocreport.html)。

**标记 NAT 网关**

1. 通过 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 打开 Amazon VPC 控制台。

1. 在导航窗格中，选择 **NAT 网关**。

1. 选择要标记的 NAT 网关，然后选择**操作**。然后选择**管理标签**。

1. 选择**添加新标签**，并定义标签的**键**和**值**。最多可以添加 50 个标签。

1. 选择**保存**。

## 删除 NAT 网关
<a name="nat-gateway-deleting"></a>

您可以删除不再需要的 NAT 网关。删除 NAT 网关之后，其条目在一小时左右在 Amazon VPC 控制台中保持可见，在此之后自动删除。您无法自己删除此条目。

删除 NAT 网关会解除其弹性 IP 地址关联，但不会从您的账户释放该地址。如果删除 NAT 网关，则 NAT 网关路由会保留为 `blackhole` 状态，直到您删除或更新这些路由。

**删除 NAT 网关**

1. 通过以下网址打开 Amazon VPC 控制台：[https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)。

1. 在导航窗格中，选择 **NAT 网关**。

1. 选择 NAT 网关对应的单选按钮，然后选择 **Actions**（操作）、**Delete NAT gateway**（删除 NAT 网关）。

1. 提示进行确认时，输入 **delete**，然后选择 **Delete**（删除）。

1. 如果您不再需要与公有 NAT 网关关联的弹性 IP 地址，建议您释放该地址。有关更多信息，请参阅 [5. 释放弹性 IP 地址](WorkWithEIPs.md#release-eip)。

## 命令行概述
<a name="nat-gateway-api-cli"></a>

您可以使用命令行执行此页面上介绍的任务。

**将私有 IPv4 地址分配给私有 NAT 网关**
+ [assign-private-nat-gateway-address](https://docs.aws.amazon.com/cli/latest/reference/ec2/assign-private-nat-gateway-address.html)（AWS CLI）
+ [Register-EC2PrivateNatGatewayAddress](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2PrivateNatGatewayAddress.html)（AWS Tools for Windows PowerShell）

**将弹性 IP 地址和私有 IPv4 地址与公有 NAT 网关相关联**
+ [associate-nat-gateway-address](https://docs.aws.amazon.com/cli/latest/reference/ec2/associate-nat-gateway-address.html)（AWS CLI）
+ [Register-EC2NatGatewayAddress](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2NatGatewayAddress.html)（AWS Tools for Windows PowerShell）

**创建 NAT 网关**
+ [create-nat-gateway](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-nat-gateway.html) (AWS CLI)
+ [New-EC2NatGateway](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2NatGateway.html) (AWS Tools for Windows PowerShell)

**删除 NAT 网关**
+ [delete-nat-gateway](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-nat-gateway.html) (AWS CLI)
+ [Remove-EC2NatGateway](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2NatGateway.html) (AWS Tools for Windows PowerShell)

**描述 NAT 网关**
+ [describe-nat-gateways](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-nat-gateways.html) (AWS CLI)
+ [Get-EC2NatGateway](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2NatGateway.html) (AWS Tools for Windows PowerShell)

**将辅助弹性 IP 地址与公有 NAT 网关取消关联**
+ [disassociate-nat-gateway-address](https://docs.aws.amazon.com/cli/latest/reference/ec2/disassociate-nat-gateway-address.html)（AWS CLI）
+ [Unregister-EC2NatGatewayAddress](https://docs.aws.amazon.com/powershell/latest/reference/items/Unregister-EC2NatGatewayAddress.html)（AWS Tools for Windows PowerShell）

**标记 NAT 网关**
+ [create-tags](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-tags.html)（AWS CLI）
+ [New-EC2Tag](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Tag.html)（AWS Tools for Windows PowerShell）

**从私有 NAT 网关取消分配辅助 IPv4 地址**
+ [unassign-private-nat-gateway-address](https://docs.aws.amazon.com/cli/latest/reference/ec2/unassign-private-nat-gateway-address.html)（AWS CLI）
+ [Unregister-EC2PrivateNatGatewayAddress](https://docs.aws.amazon.com/powershell/latest/reference/items/Unregister-EC2PrivateNatGatewayAddress.html)（AWS Tools for Windows PowerShell）