如何解决 Amazon VPC 中我的 NAT 网关上的“ErrorPortAllocation”错误?

2 分钟阅读
0

我想解决 Amazon Virtual Private Cloud(Amazon VPC)中我的网络地址转换(NAT)网关上的“ErrorPortAllocation”错误。

简述

NAT 网关支持每个目的地最多 55,000 个同时连接。如果连接数达到此阈值,则与目标的新连接将失败,并且 Amazon CloudWatch 中 NAT 网关的 ErrorPortAllocation 指标会增加。

在开始解决 ErrorPortAllocation 错误之前,请完成以下任务:

  • 确保在 Amazon VPC 级别或使用 NAT 网关的子网激活 VPC 流日志。
  • 确保将 VPC 流日志配置为传输到 CloudWatch。

要解决您的 ErrorPortAllocation 错误,请完成以下步骤:

  1. 查找源客户端及其连接目的地。
  2. 使用最佳实践来解决端口分配错误

解决方法

查找源客户端及其连接目的地

1.打开 CloudWatch 控制台

2.在导航窗格中,选择洞见

3.对于日志组,选择记录流日志的日志组。

4.确定在收到端口分配错误的时间段,响应数量最多的流量的目标 IP 地址:

**注意:**将 example-NAT-gateway-private-IP 替换为要定位流量目的地的 NAT 网关的私有 IP 地址。将 example-y.y 替换为 Amazon VPC CIDR 范围的前两个八位位组。

filter (srcAddr like example-NAT-gateway-private-IP and dstAddr not like example-y.y)
| stats count(*) as numaccept by dstAddr
| sort numaccept desc
| limit 10

5.确定向目标 IP 地址发送流量的源客户端:

**注意:**将 example-destination-IP 替换为步骤 4 中的目标 IP 地址。将 example-y.y 替换为 Amazon VPC CIDR 范围的前两个八位位组。

filter (dstAddr like example-destination-IP and srcAddr like example-y.y)
| stats sum(bytes) as bytesTransferred by srcAddr, dstAddr
| sort bytesTransferred desc
| limit 10

使用最佳实践来解决端口分配错误

要解决端口分配错误,请使用以下最佳实践:

  • 关联辅助 IPv4 地址以增加可用端口数量,并提高工作负载可以建立的并发连接的数量限制。您的 NAT 网关最多可以关联八个 IPv4 地址(1 个主 IPv4 地址和 7 个辅助 IPv4 地址)。
  • 在每个可用区创建一个 NAT 网关,并将您的客户端分配到多个可用区。使用 NAT 网关在与您的客户端相同的可用区内路由流量。这有助于降低跨可用区的数据费用。
  • 如果 CloudWatch 中的 IdleTimeoutCount 指标增加,请将您的应用程序或私有实例配置为关闭空闲连接。这允许 NAT 网关将源端口分配给新连接。
  • 限制您的客户端可以与单个目的地建立的连接数量。
  • 如果流量通过同一 AWS 区域中的 Amazon Simple Storage Service(Amazon S3)或 Amazon DynamoDB 公共 IP 地址,则使用网关端点。当您使用网关 Amazon VPC 端点时,系统不收取任何数据费用。

相关信息

示例查询

使用 Amazon CloudWatch 监控 NAT 网关

编辑辅助 IP 地址关联

AWS 官方
AWS 官方已更新 6 个月前