NAT Gateway - Limite de conexão máxima

6

Eu sei apenas o suficiente de rede para ser perigoso. Os detalhes minuciosos de NAT não são algo que eu conheço particularmente.

Eu acidentalmente me encontrei em uma discussão hoje cedo sobre colocar um grupo de nós atrás de um NAT Gateway. (1 endereço IP público e X endereços LAN privados). Eu chamei o limite de 16 bits para campos de porta de origem e destino no protocolo TCP, ( link - página 15) e mencionou que nos limitaria a cerca de 65.000 conexões (65536). - Eu não estou mais confiante sobre essa resposta. Você pode me ajudar com alguns detalhes?

Eu entendo que uma porta de entrada (porta do servidor) do nosso lado pode aceitar tantas conexões quantas forem as combinações sourceIP x SourcePort. Vamos descontar aqueles por enquanto e focar em conexões originadas na LAN, viajando através do NAT Gateway, e terminando em um host aleatório em uma porta aleatória.

Em um sistema normal [Linux], as conexões de saída, acredito, estão limitadas a 1 por porta por IP de origem. Se fingirmos que vivemos em um mundo simples, onde cada sistema tem apenas 1 endereço IP, então um 'sistema normal' seria limitado a um máximo absoluto de 65536 conexões.

1) No TCP há um IP de fonte única limitado a 65536 conexões de saída teóricas MAX?

2) Ou o limite é de 65536 conexões para cada host remoto?

2) [Escrito de outra forma]: A mesma porta de origem pode ser usada para uma diferente combinação remota de HostIP: RemotePort?

Por exemplo: (O seguinte está OK?)

Source IP   |Source Port |Remote IP|Remote Port   
192.168.0.20:36500   -->    8.8.8.8:23
192.168.0.20:36500   -->    8.8.4.4:23

3) As respostas às perguntas 1 e 2 são diferentes para um '... sistema não normal' [roteador Cisco atuando como um Gateway NAT]?

Ex: Um dispositivo de rede especializado que tem um IP voltado para o público e até 65.000 LANs IP [ou mais] por trás dele? Existe magia no lugar ou é a resposta para a pergunta 2 apenas sempre: sim? (ou não)

4) Todas as questões acima assumem uma conexão TCP com estado. A história é diferente com uma conexão sem estado como UDP?

E, finalmente:

5) A nossa LAN estará limitada a 65536 (ou algum outro limite teórico) conexões simultâneas ao mundo externo através de um único endereço IP público?

Obrigado! :)

Para os propósitos desta questão, estamos atrás de equipamentos Cisco Nexus muito BEEFY E BRAND NEW (série 7000, eu acho). Pode ser melhor ignorar as limitações de memória / etc, a menos que elas possam ser especificamente quantificadas.

    
por Daniel Widrick 26.09.2013 / 01:39

4 respostas

6

Corrija-me se estiver errado, mas é assim que entendo. Os limites são por cliente / servidor / porta. Então, à luz disso.

1) No TCP há um IP de fonte única limitado a 65536 conexões de saída teóricas MAX?

Não. Eu acredito que é limitado a 65536 teórica máxima para o mesmo IP de destino.

As estações de trabalho do Windows (versões sem servidor) têm limites impostos, o que torna esse número muito menor. O Linux tem limites de recursos, mas eles geralmente não são atingidos pelo usuário comum e você pode facilmente ajustá-los.

Você provavelmente atingirá outros limites de recursos à medida que começar a aumentar o número em qualquer lugar próximo a 64 K.

Os roteadores de nível de consumidor podem ter limites muito mais baixos devido aos recursos limitados.

2) Ou o limite é de 65536 conexões para cada host remoto?

Sim

3) As respostas às perguntas 1 e 2 são diferentes para um '... sistema não normal' [roteador Cisco atuando como um Gateway NAT]?

Não

4) Todas as questões acima assumem uma conexão TCP com estado. A história é diferente com uma conexão sem estado como UDP?

O UDP é sem conexão. Então isso não é realmente relevante para o UDP.

5) A nossa LAN estará limitada a 65536 (ou algum outro limite teórico) conexões simultâneas ao mundo externo através de um único endereço IP público?

Não.

No contexto de firewalls com informações de estado que rastreiam conexões e fornecem outros recursos de rastreamento, sim, esses módulos podem ter limites. O op não disse nada sobre qual firewall / roteador NAT está sendo usado, então não podemos nem especular sobre quais limitações ele pode impor no momento.

    
por 26.09.2013 / 03:56
1

Como existem muitas abordagens para o design de NAT, a resposta é "depende". Geoff Huston escreveu uma excelente visão geral de vários projetos NAT.

Na minha experiência, muitos roteadores de pequenas empresas / escritórios domésticos não suportam > 64k endereços para o mesmo endereço, mas não apenas por causa do esgotamento da porta. Muitos têm memória limitada e ficarão sem RAM para uma tabela NAT bem antes de atingir o limite de 64k.

    
por 26.09.2013 / 03:15
1

5) Nossa LAN estará limitada a 65536 (ou algum outro limite teórico) conexões simultâneas ao mundo externo através de um único endereço IP público?

Não, porque um IP NAT de porta pode ser usado para várias conexões:

cat /proc/net/ip_conntrack | grep 51380
tcp      6 191 ESTABLISHED src=10.1.8.5 dst=17.133.254.23 sport=51380 dport=5223 src=17.133.254.23 dst=my.nat.pub.ip sport=5223 dport=51380 [ASSURED] mark=0 use=2
tcp      6 24 CLOSE_WAIT src=10.1.26.1 dst=80.68.255.71 sport=51380 dport=80 src=80.68.255.71 dst=my.nat.pub.ip sport=80 dport=51380 [ASSURED] mark=0 use=2
    
por 22.03.2015 / 21:33
1

A longa história é que depende muito da plataforma, depende da configuração e depende da implementação.

Mas deixe-me explicar rapidamente:

Aparentemente , outras respostas indicam que o limite teórico está chegando a > 65535 (a porta de aviso 0 é frequentemente reservada ), que podem ser verdadeiras até certo ponto, como ...:

  • Em grandes sistemas CGNAT ou roteadores de alta qualidade semelhantes, cujo principal propósito é este, incluindo NAT-PAT.
  • Em certas distribuição Linux pode ser possível em teoria ao usar um PC para software NAT / roteamento por CPU sob certas circunstâncias tais como ram > 1GB, kernel preparado, etc.

No entanto, no mundo real, onde o roteamento acelerado por hardware ocorre com recursos limitados, a tabela NAT tem um limite bem conhecido, que geralmente é um parâmetro de configuração para proteção.

  • A Cisco menciona a partir do IOS 12, o máximo de NAT depende da DRAM resultando em cerca de ~ 10 mil traduções ( fonte ), que é menos do que aqueles 65K na sua pergunta.

  • Leve seu antigo roteador xDSL, se você quiser abrir um P2P em casa com muitas conexões, a maioria delas configurou um limite máximo global de 1024 ~ 4096. Por exemplo, meu roteador high-end FTTH em casa tem o limite NAT configurado para 8K pelo fornecedor.

Finalmente , para responder à reescrita do Q2, vi produtos com implementações de desespero de RFC3489 com as seguintes tabelas NAT. Obviamente, o último limita consideravelmente as possibilidades de NAT:

  • iAddr: iPort - eAddr: ePort - dAddr: dPort (nat simétrica típica)
  • iAddr: port - eAddr: porta - dAddr (produto muito baixo)

Aponta se você gostou desta resposta!

    
por 13.02.2017 / 13:04