Dois fatores afetam o número máximo possível de mapeamentos NAT para um único dispositivo: o tipo de NAT e o quantidade de memória disponível para a tabela NAT:
-
Quanto ao tipo de NAT, vamos considerar um NAT full-cone, para ver como isso afeta o número de possíveis mapeamentos: cada par
ip:port
interno é mapeado para um parip:port
externo. Vamos supor agora que o NAT tem apenas um endereço IP externo disponível, o número máximo de mapeamentos possíveis é limitado pelo número possível de portas externas, que é 2 ^ 16. -
Quanto à quantidade de memória disponível para a tabela NAT, temos que separar duas classes distintas de NATs: "hardware" e "software" NATs. Eu considero que dispositivos feitos especificamente, como roteadores domésticos ou equipamentos de rede profissionais, sejam NATs de hardware, enquanto PCs de estoque que executam um sistema operacional de propósito geral, junto com algum software NAT, fazem um software NAT.
Considerando que os NATs de software são obviamente limitados pela quantidade de memória que a máquina host possui, os NAT de hardware possuem memória para mapeamentos NAT integrados, o que normalmente não é expansível, a menos que você esteja lidando com equipamentos de nível de operadora. O tamanho dessa memória fixa, em seguida, forma o limite de quanto mapeamentos de NAT podem ser mantidos vivos simultaneamente. Para dispositivos típicos de roteadores domésticos, os tamanhos das tabelas NAT estão no intervalo de 2 ^ 10 a 2 ^ 14 entradas.
Acho que isso deve dar uma boa ideia das dimensões que limitam os mapeamentos NAT na prática. Obviamente, existem vários outros fatores ao longo desta dimensão, como limites de tamanho de processo para NATs de software de espaço de usuário ou políticas que limitam o número máximo de mapeamentos por host único, etc.