CGNAT, NAT444, solução para provedor? Sinceramente a resposta é não! Leia o artigo com calma!

NAT444 (CGN / LSN) e o que quebra nas conexões de rede

Antes de olharmos para o que quebra, eu provavelmente deveria ter certeza de que você sabe do que estou falando aqui. Se você já sabe tudo sobre NAT tradicional e sobrecarga de endereços , pule para a seção NAT444 . Se você estiver familiarizado com isso também, sinta-se à vontade para pular para a lista do que ele quebra . 

NAT, PAT e Sobrecarga de Endereços

Quando as pessoas falam sobre Carrier Grade NAT (CGN) ou Large Scale NAT (LSN), elas estão falando principalmente sobre o NAT444. A parte NAT dessas siglas significa N REDE A ddress T ranslation e NAT já é muito comum em redes IPv4, particularmente em dispositivos de gateway LAN / WAN. A idéia básica é usar endereços não-globais (“privados”) exclusivos na LAN ( Local Area Network ) e usar somente endereços (“públicos”) globalmente exclusivos nas interfaces da WAN ( Wide Area Network ) / Internet. Quando implantado dessa maneira, o NAT normalmente é combinado com o PAT ( Conversão de Endereço de Porta ) com menor frequência para permitir sobrecarga de endereço no lado da WAN.

Uau – acabamos de falar em geek, eu sei. Não é realmente muito assustador embora; sobrecarga refere-se apenas a um relacionamento de muitos para um de endereços internos (locais / privados) para endereços externos (globais / públicos). Às vezes, isso é chamado de NAPT ( Network Address Port Translation ) ou sobrecarga de NAT e permite que você coloque um grande número de hosts (todos com endereços ‘privados’) atrás de um dispositivo NAT com um número muito menor de endereços públicos (exclusivos) . Isso é feito usando números de porta como identificadores exclusivos. Vamos percorrer um exemplo rápido para ver como isso funciona.

Exemplo de NAT

Na extrema esquerda deste diagrama, temos dois hosts em nossa rede local (um laptop e um tablet), a Internet está à direita e há um roteador de sobrecarga NAT (NAPT) no meio conectando-os. Você pode ver que ambos os nossos hosts de rede local têm endereços internos (“private”) exclusivos (192.168.1.23 e .42) e o roteador tem um único endereço externo exclusivo (“público”) único (203.0.113.57).

Quando o laptop quer se conectar a outro host na Internet, ele envia seu tráfego para o roteador (seu gateway padrão ). O roteador pega o tráfego e troca o endereço externo (global / público) no lugar do endereço interno (local / privado) do laptop e envia o tráfego para a Internet. Agora, todos os dispositivos da Internet veem esse tráfego como se ele viesse do próprio roteador, portanto, enviam o tráfego de retorno diretamente para o roteador. Quando o roteador recebe esse tráfego de retorno, ele troca o endereço interno do laptop de volta no lugar de seu próprio endereço externo e envia o tráfego para o laptop. Simples o suficiente.

Exemplo de sobrecarga de NAT

As coisas ficam mais interessantes quando o laptop e o tablet precisam falar com a Internet ao mesmo tempo. Agora, o roteador precisa saber qual tráfego de retorno vai para o tablet e qual tráfego deve ir para o laptop. É aqui que entram esses números de porta que mencionei anteriormente. Cada conexão bidirecional entre hosts de rede é chamada de sessão (ou às vezes um fluxo) e, para evitar que essas sessões sejam confundidas, o roteador usa um número de porta exclusivo para identificar cada um deles.

Aqui você pode ver isso em ação. Neste diagrama, o laptop e o tablet estão enviando tráfego para a Internet (iniciando uma sessão cada). Quando o roteador faz a conversão de endereços (a troca), ele não apenas altera o endereço, mas também adiciona um número de porta exclusivo ao enviar o tráfego para a Internet (: 2001 e: 2002 no diagrama). Desta forma, quando o roteador recebe o tráfego de retorno que é endereçado para 203.0.113.57:2001 ele sabe que isso deve ser trocado por 192.168.1.42 (que é enviado para o laptop) e que 203.0.113.57:2002 se traduz em 192.168.1.23 e vai para o tablet. Mole-mole. É como ter uma caixa postal. Todos os e-mails chegam ao mesmo endereço físico (o endereço IP externo), mas cada letra é endereçada a um número de caixa exclusivo (o número da porta), para que todos recebam o e-mail correto.

Claro, esse exemplo é muito simples. Na vida real, a maioria das redes tem mais de dois hosts e quase todos os hosts abrem mais de uma sessão. Como cada endereço IP tem cerca de 65.000 portas disponíveis, esse é o número máximo absoluto de sessões que um endereço pode manipular. Isso é suficiente para a maioria das redes pequenas, e as maiores geralmente podem adicionar alguns endereços externos ao que é chamado de pool de NAT, portanto, isso se adapta muito bem ao nível da LAN. Existem problemas com essa abordagem, no entanto.

Problemas com o NAT

O principal problema com o NAT (ainda estamos falando do overlap do NAPT / NAT, mas dizendo que o NAT é mais fácil, é o que a maioria das pessoas querem dizer quando dizem NAT, de qualquer forma) é que ele quebra o princípio de rede. Mas que diabos isso significa? Bem, basicamente, o princípio do fim ao fim afirma que a comunicação de rede deve acontecer entre os dispositivos nas extremidades da rede e que todos os dispositivos no meio devem passar esse tráfego. Esse é um objetivo principal de design da Internet e por boas razões. Sem mergulhar em todos os detalhes filosóficos sangrentos, podemos simplificar de novo e dizer que, em termos práticos, o princípio do fim ao fim permite que os hosts da rede conversem uns com os outros sem obstruções.

Aha! Agora começamos a ver o problema com o NAT: ele introduz uma obstrução no caminho da comunicação. Para que o NAT funcione, o dispositivo que faz o NAT tem que manipular todos os pacotes de dados sendo enviados e recebidos. Ele precisa cavar os cabeçalhos desses pacotes e alterar o endereço de origem ou de destino (e o número da porta). O principal efeito disso é que os hosts de rede atrás de um NAT sobrecarregado devem iniciar toda a comunicação. Isso é; tentativas de comunicação de entrada são impossíveis porque não há como um host fora da rede local conhecer ou entender o endereço interno (local / privado) desse host.

Se olharmos para o nosso laptop nos exemplos acima, ele tem uma RFC 1918 endereço de 192.168.1.42. Como esse é um endereço “privado” de um pool compartilhado, ele não pode ser anunciado na Internet pública. Isso significa que outros hosts na Internet não têm como saber o endereço dos laptops (e, mesmo se o fizessem, não haveria nenhuma rota para chegar a ele). Veja, precisamos que a combinação de endereço e porta externa configurada no roteador antes que qualquer tráfego possa entrar, no laptop, para que o roteador saiba para onde o tráfego deve ir. Isso é bom para navegação na web e muitos outros aplicativos do lado do cliente, mas é um grande problema para servidor e peer to peer (VoIP, jogos, webcams, VPNs, bittorrent, streaming de vídeo, chat, etc) onde a comunicação precisa ser iniciada o exterior. Trocando em miudos, significa que eles não funcionam.

UPnP e NAT Traversal

Como simplesmente não há endereços IPv4 suficientes para fornecer um endereço (público) globalmente exclusivo a todos os dispositivos já conectados à Internet, as operadoras de rede foram forçadas a implantar o NAT na LAN. Como tal, ferramentas foram desenvolvidas para ajudar a combater os problemas que ela causa.

Um hack notável é habilitado através de UPnP ( Universal Plug and Play ) e é chamado de Protocolo de Gateway de Internet (IGD) . O UPnP-IGD é um protocolo que dá aos hosts por trás de um NAT algum controle sobre o dispositivo NAT. Coisas como descobrir o endereço IP externo do roteador e configurar mapeamentos de portas estáticas. Isso permite que muitos dos aplicativos que seriam de outra forma quebrados pelo NAT funcionem apesar disso. O NAT Port Mapping Protocol ( NAT-PMP ) oferece funcionalidade semelhante.

Existem várias outras técnicas e protocolos de travessia de NAT que foram desenvolvidos para contornar os problemas que o NAT causa. Essas várias ferramentas são juntas um testamento de duas coisas:

  1. Criatividade humana e nossa capacidade de superar obstáculos.
  2. O quebrantamento que o NAT introduz na interconexão.

Segurança

Embora seja difícil para mim, sinto-me obrigado a abordar esse maior mito do NAT: a tradução de endereços de rede NÃO é uma técnica de segurança!

Algumas pessoas dirão que, porque os hosts estão uma rede NAT não podem iniciar a comunicação com hosts dentro da rede NAT que o NAT está fornecendo segurança. Isso é muito parecido com dizer que uma vez que uma chave quebrada na fechadura da porta tornará mais difícil entrar no meu carro, isso aumenta a segurança. Embora possa ser verdade que colocar uma fechadura na porta dificultará a entrada no carro, eu teria dificuldade em recomendar isso como um método anti-roubo. Existe uma diferença entre acesso quebrado e segurança de acesso.

A inspeção de pacotes com estado é o que você deseja para segurança de acesso à rede, não para quebra de NAT.

O modelo NAT444

Até agora, temos discutido tradicional NAT (principalmente NAPT / sobrecarga NAT) que está começando a ser chamado NAT44 porque traduz um IPv 4 endereço para outro (4-4). Agora, vamos explorar o que eu ainda chamo de NAT444, que também foi chamado de Carrier Grade NAT ( CGN ) em um ponto e atualmente é chamado de Large Scale NAT ( LSN ) por todos os cool geeks. Eu gosto do NAT444 porque explica o que realmente vai ocorrer na maioria dos lugares quando o LSN é implementado; um triplo NAT (IPv4 para IPv4 para IPv4). Soa como um pesadelo, não é? Acabamos de duplicar o NAT, o que significa dobrar a interferência no tráfego de rede e impedir ainda mais o princípio do fim ao fim. Vamos ver o que parece.

Este diagrama ilustra o modelo NAT444, conforme previsto no rascunho IETF NAT444 e como ele provavelmente será implantado (a menos que possamos descobrir uma maneira de contorná-lo). Neste diagrama você deve notar duas coisas logo de cara:

  1. O NAT de grande escala para IPv4 será implantado em duas camadas com IPv6 global (“público”).
  2. O NAT de Escala Grande adiciona uma segunda camada de NAT e, portanto, uma segunda área de endereçamento “privado” / interno.

Como você pode adivinhar do ponto dois, o NAT444 exacerba todos os problemas que o NAT44 tradicional introduziu. O que pode não ser óbvio a princípio é que o LSN / NAT444 também agrava esses problemas de novas maneiras.

Além de adicionar uma segunda camada de NAT que cria grandes problemas com a aplicação da lei e abuso, bem como geolocalização e outros (tudo porque muitos clientes distintos estão por trás de um endereço de provedor), temos que lidar com o fato de que a segunda camada O NAT não participará dos protocolos UPnP, NAT-PMP ou outros protocolos de NAT baseados em LAN. Nenhum ISP ( Provedor de Serviços de Internet ), no seu perfeito juízo, abrirá seus próprios roteadores (ou outros dispositivos de rede) para o controle do cliente – o que é exatamente o que esses protocolos exigem. Eles simplesmente não são seguros e o risco de um cliente impactar o serviço de outros clientes é muito grande. Então, onde isso nos deixa?

O que NAT444 gera de quebras de rede

Ficamos com um número de aplicações (e tipos de aplicativos) que atualmente quebram quando o NAT de Escala Grande é introduzido. Para evitar a sensação de desgraça e melancolia que é certo, a seguir vai uma lista de apenas as coisas quebradas, vamos começar com uma lista do que não é quebrado por NAT444 / LSN:

  • Navegação na web
  • O email
  • Download de FTP
    • Arquivos pequenos
  • BitTorrent e Limewire
    • Leeching (download)
  • Chamadas de voz e vídeo do Skype
  • Mensagem instantânea
  • Bate-papo no Facebook e no Twitter

Não é muito pobre realmente, todas as coisas consideradas. Isso é um pouco de funcionalidade por estar por trás de um servidor razoavelmente grande. Se esse fosse o fim da história, eu não teria escrito este artigo. Então, sem mais delongas, aqui está a lista que você estava esperando; que NAT444 quebra:

  • Download de FTP
    • Arquivos grandes
  • BitTorrent e Limewire
    • Sementeira (upload)
  • Jogo on line
    • Xbox
    • PlayStation
    • Etc.
  • Streaming de vídeo
    • Hulu
    • Netflix
    • Slingcatcher
    • Etc.
  • Webcam
    • Visualização remota
  • Tunelamento
    • 6to4
    • Teredo
    • Etc.
  • VPN e criptografia
    • IPSec
    • SSL
  • VoIP
    • Suporte limitado a ALG / SIP
  • Todos os aplicativos personalizados com o IP incorporado
    • Falta de ALGs

Uau, é só eu achei ou essa lista é um pouco mais longa? Há aquela sensação de desgraça e tristeza começando a surgir com mais força.

Para nosso propósitos aqui, “intervalos” significa que o serviço foi degradado ou falhou completamente. Os dados por trás dessa lista vêm principalmente da Avaliação do Impacto do NAT444 em Aplicativos de Rede , um rascunho da IETF que documenta testes feitos pela CableLabs, Time Warner Cable e Rogers Communication sobre “muitos serviços de Internet populares usando uma variedade de cenários de teste, rede topologias, e equipamentos de fornecedores. ”Se esse tipo de coisa lhe interessa, eu recomendo fortemente verificar o rascunho completo, é uma leitura rápida e informativa. 

Protocolo de Controle de Portas

Eu seria negligente se não mencionasse pelo menos o protocolo de controle de porta ( PCP ) nesta discussão. O objetivo básico do PCP é criar uma técnica nova e mais avançada para controlar o encaminhamento de porta em dispositivos NAT para que o quebrantamento corrigido com protocolos como UPnP-IGD e NAT-PMP na LAN possa ser resolvido em um NAT444 (ou outro LSN). ). Eu ainda não pesquisei profundamente o trabalho que está sendo feito, mas vejo alguns desafios:

  1. Novos protocolos exigem novos equipamentos (ou pelo menos um novo código).
  2. Os provedores entrarão para permitir o controle de aplicativos do cliente de seus dispositivos de rede?
  3. Tempo. É o bastante? Atingiremos o esgotamento do RIR em pelo menos 3 das 5 regiões antes que os padrões propostos sejam publicados.

A solução

Você sabia que eu ia dizer isso eventualmente: A única verdadeira solução é implantar o IPv6. É por isso que o modelo NAT444 inclui o IPv6 global; a única maneira de contornar o quebrantamento introduzido pelo NAT é eliminá-lo. Felizmente, temos os meios para isso; Versão do protocolo Internet 6 ( IPv6 ). Portanto, dual-stack hoje, com NAT444, se você precisar.