如果路由器(执行 NAT)的所有端口都被占用,会发生什么情况?

如果路由器(执行 NAT)的所有端口都被占用,会发生什么情况?

假设有 n 台计算机连接到路由器 R。路由器正在进行 NAT,但突然发现所有端口都被占用。那么当新计算机 N 尝试连接时,路由器会做什么?是简单地不连接计算机还是终止部分计算机并连接到计算机 N?假设这么多连接不会影响路由器性能?

答案1

过载情况下会发生什么取决于具体的 NAT 实现。在有空闲端口可用之前,新连接被丢弃并不奇怪。NAT 盒可能会响应 ICMP 错误消息。但无论如何,某些连接会以某种方式失败。

几乎所有 NAT 系统在关闭时或经过一段特定时间后,都会使地址转换过期。因此,在导致流量的系统停止后,很快就会出现过载情况。

过载可能会造成很大的破坏。这基本上就是对内部用户的拒绝服务。

有人打电话给我,说有人在 NAT 过载情况下遇到防火墙问题。这种情况通常发生在几个感染恶意软件的系统开始快速扫描互联网上的主机以传播恶意软件时。一些受感染的主机通常可以很快填满您的 NAT 表。

您当然可以防止这种情况。限制传出连接的速率,可能限制每个主机的最大连接数,也许是 IPS 类型的设备将明显造成问题的主机列入黑名单。我相信各种防火墙/NAT 实现都可以用各种方式处理这种情况。

在低端硬件上,某些事情可能会导致 NAT 耗尽,也可能会耗尽路由器/防火墙的内存或 CPU 能力。

相关内容