.1.42.1.18.1.55.1.7.1.99NATrouter1 IP

Tradução de endereços de rede

11 minutos de leituraRede

A Tradução de Endereço de Rede é a fita adesiva que manteve o IPv4 funcionando muito depois de seus endereços acabarem. É também a razão pela qual os aplicativos peer-to-peer precisam de perfuração, por que seu telefone não pode ser acessado diretamente da Internet e por que as videochamadas às vezes se recusam a se conectar em determinadas redes. Vale a pena entender em detalhes.

O corpo completo do artigo é fornecido em inglês abaixo.

Tradução de endereço de rede (NAT) é a técnica que um roteador usa para permitir que muitos dispositivos em uma rede privada compartilhem um único endereço IP público. Originalmente, era um paliativo para o esgotamento dos endereços IPv4; tornou-se um elemento permanente de quase todas as conexões de Internet dos consumidores.

A operação básica

Sua rede doméstica normalmente usa IPs privados de um dos intervalos RFC 1918 (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16). Estes não são roteáveis ​​na Internet pública; o 192.168.1.42 do seu laptop não significa nada fora de sua casa.

Quando seu laptop abre uma conexão com example.com:443, o pacote sai do seu laptop com a fonte 192.168.1.42:55123. Seu roteador intercepta o pacote e reescreve a origem para your.public.ip:55123 (ou para uma nova porta escolhida pelo roteador) e depois o encaminha adiante. Seu roteador se lembra do mapeamento. Quando a resposta volta endereçada a your.public.ip:55123, o roteador consulta o mapeamento e reescreve o destino para 192.168.1.42:55123, depois o encaminha para o laptop. O laptop e o destino não têm ideia de que isso aconteceu.

A tabela de mapeamento

A roteador consumidor mantém uma tabela NAT indexada por (IP interno, porta interna, IP externo, porta externa, protocolo). Cada linha expira depois que a conexão fica inativa – normalmente 30 segundos para UDP, vários minutos para TCP. Quando a tabela fica cheia (roteadores baratos armazenam apenas alguns milhares de entradas), as entradas antigas ou ociosas são removidas.

Tipos de NAT

NATs diferem em quão tolerantes eles são em relação à reutilização de mapeamentos:

  • NAT de cone completo: uma vez 192.168.1.42:55123 foi mapeado para pub.ip:55123, o host externo any pode enviar um pacote para pub.ip:55123 e ele será encaminhado para dentro. Mais permissivo.
  • Cone restrito NAT: somente hosts externos para os quais o dispositivo interno já enviou podem responder.
  • Cone restrito de porta: como cone restrito, mas também deve corresponder port.
  • Symmetric NAT: um mapeamento diferente é criado para cada destino externo. Visto de fora, o mesmo dispositivo interno parece ter vários endereços públicos em constante mudança. Mais restritivo — e o mais difícil de atravessar para protocolos peer-to-peer.

Por que o NAT quebra as coisas

NAT foi fácil de implantar porque não exigia alterações nos endpoints. Mas quebrou o modelo original de ponta a ponta da Internet. Vítimas específicas:

  • Conexões de entrada. Sem encaminhamento de porta explícito, ninguém na Internet pode se conectar a um dispositivo atrás de NAT. A auto-hospedagem de um servidor de jogo, um mundo Minecraft ou um site pessoal em uma conexão doméstica requer encaminhamento de porta ou um relé.
  • Aplicativos ponto a ponto. Dois dispositivos atrás de NAT não podem ligar um para o outro diretamente. Eles precisam de um servidor de coordenação (STUN/ICE) para descobrir seus mapeamentos públicos e, possivelmente, de um retransmissor (TURN) se seus NATs forem muito restritivos para serem atravessados.
  • Protocolos que incorporam IPs em sua carga útil. FTP clássico e SIP colocam o IP do cliente dentro do corpo do protocolo, que o NAT não sabe reescrever. Os gateways da camada de aplicativo (ALGs) no roteador precisam analisar e reescrever a carga útil - uma solução alternativa frágil.

NAT vs PAT vs CGNAT

Estritamente falando, o que a maioria dos roteadores domésticos faz é Port Address Translation (PAT) - traduzindo números de porta, bem como endereços para multiplexar muitos fluxos internos em um externo PI. "NAT" é o nome comum para isso. Carrier-Grade NAT é a mesma idéia, mas no nível do ISP: muitos clientes compartilham um IP público, com o ISP fazendo PAT em escala.

Encaminhamento de porta e UPnP

Para aceitar conexões de entrada por trás do NAT, você deve dizer ao roteador "envie qualquer pacote que atinja a porta pública X para o IP interno Y na porta Z". Esse é o encaminhamento de porta . Pode ser configurado manualmente no admin do roteador ou solicitado automaticamente por um aplicativo via UPnP (Universal Plug and Play) ou NAT-PMP. UPnP é conveniente e notoriamente inseguro – qualquer programa na LAN pode abrir brechas no firewall, e é por isso que alguns guias de segurança recomendam desativá-lo.

Hairpin NAT e reflexão

Se você encaminhar uma porta do seu IP público para um servidor dentro da sua rede, acessar esse servidor de dentro da sua rede usando o nome do IP público só funciona se o roteador suportar "hairpin NAT" (também chamado de loopback/reflexão NAT). Muitos roteadores baratos não funcionam, e é por isso que "meu servidor auto-hospedado funciona de fora, mas não do meu sofá" é uma confusão comum.

O que substitui NAT

IPv6 tem tantos endereços que o NAT é desnecessário - cada dispositivo obtém um endereço roteável globalmente. As redes IPv6 normalmente têm um firewall com estado, que fornece o benefício de segurança do NAT (sem entrada não solicitada) sem quebrar de ponta a ponta. À medida que a adoção do IPv6 cresce, o NAT desaparecerá gradualmente - mas existirá por décadas.

Perguntas frequentes

O NAT é um firewall?
Não exatamente, mas funciona como para conexões de entrada. Como o NAT só cria mapeamentos em resposta ao tráfego de saída, os pacotes de entrada não solicitados não têm para onde ir e são descartados. Esta é uma proteção real, mas às vezes é confundida com o firewall de política explícita que também deveria estar presente.
Por que às vezes as videochamadas falham por trás do NAT?
As videochamadas geralmente usam UDP para o fluxo de mídia. Dois dispositivos atrás de NATs simétricos podem ter dificuldades para encontrar um caminho direto porque a porta externa é diferente para cada destino. A alternativa são os relés TURN operados pelo serviço de chamada – mais lentos e mais caros, mas funcionam.
Uma VPN ignora o NAT?
Sim, de duas maneiras. Primeiro, a conexão externa da VPN é a única coisa que o NAT doméstico precisa traduzir; uma vez estabelecido o túnel, o tráfego do aplicativo interno fica invisível para o NAT local. Em segundo lugar, do ponto de vista do destino, o seu tráfego parece vir do IP público do servidor VPN, e não do seu IP residencial.
Posso ser rastreado em vários sites por causa do NAT?
Vários dispositivos em sua casa compartilham o IP público, de modo que sites externos veem muitos fluxos do mesmo IP – isso é o oposto da impressão digital de indivíduos. Mas o tempo, a impressão digital do navegador e os logins da conta ainda vinculam você novamente. NAT por si só não é privacidade.
Por que alguns softwares funcionam mal no Wi-Fi de uma cafeteria?
As cafeterias geralmente executam NAT de nível de operadora ou impõem tipos de NAT mais rígidos que bloqueiam protocolos ponto a ponto, BitTorrent e alguns protocolos VPN. A LAN local também pode limitar a taxa de tráfego incomum. HTTPS simples funciona em quase todos os lugares; todo o resto é uma aposta.
NAT explicado: por que sua rede doméstica tem um endereço IP, mas vinte dispositivos