做 NATP 的路由器可能会用完端口吗?

网络工程 路由器 IPv4 ddos
2022-02-14 01:24:03

NATP 帮助客户端设备上的每个连接在 Internet 上获得“临时身份”,方法是在其本地 ip-port 与 WAN ip-port 之间保持一对一的关系。绑定不能是一对多或多对一的,否则,数据包将无法正确地从服务器路由回客户端设备。

但是对于每一个单独的客户端设备,一次有很多连接(最多65535),通常是几十到几百。一个执行 NATP 的路由器正在为成千上万的设备提供服务。如果每个连接都使用路由器上的一个端口,则端口可能不够用。是对的吗?

假设我有 10 个公共 WAN ip,所以我的容量是 10x65535=655350 连接。我认为这不是一个很大的数字,因为现在每个人都携带很多设备,每个设备都以多种方式使用互联网。

如果是我所说的,我认为有办法进行 dDOS 攻击,即故意建立大量无用的连接并耗尽端口。

如果我的想法有问题,请告诉我。谢谢你。

1个回答

你少了几把钥匙。NAT(或任何连接跟踪)的索引是 src IP端口加上 dst IP端口。(有些系统甚至会注意 TCP 序列号。)因此,一个节点最多可以打开 65535 个连接到相同的 dst IP/端口 -- 192.168.1.1:[1-65535] 到 (www):80。更改目标 IP 或端口,这是一个不同的集合。

换句话说,有四个变量定义了一个唯一的连接:源 IP、源端口、目标 IP、目标端口。如果源 IP 是固定的(具有单个地址的路由器),每个目标 IP + 端口仍然有 64k 个可能的源端口。因此,您可以让 6000 个节点同时打开到同一个网站的 10 个连接,而不会耗尽端口。(事实上​​,大多数系统在端口用完之前就用完了内存。)