我想解决 Amazon Virtual Private Cloud(Amazon VPC)中我的网络地址转换(NAT)网关上的“ErrorPortAllocation”错误。
简述
对于每个目标,NAT 网关最多支持 55,000 个同时连接。如果连接数达到此阈值,则与目标的新连接将失败,并且 Amazon CloudWatch 中 NAT 网关的 ErrorPortAllocation 指标会增加。
在开始解决 ErrorPortAllocation 错误之前,请完成以下任务:
- 确保在 Amazon VPC 级别或使用 NAT 网关的子网激活 VPC 流日志。
- 确保将 VPC 流日志配置为传输到 CloudWatch。
要解决您的 ErrorPortAllocation 错误,请完成以下步骤:
- 查找源客户端及其连接目的地。
- 使用最佳实践来解决端口分配错误
解决方法
查找源客户端及其连接目的地
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 地址关联