Como funciona CGNAT: o caminho do pacote explicado para provedores
Como funciona CGNAT: o equipamento do provedor troca o endereço interno de cada assinante, da faixa 100.64.0.0/10, por um IP público compartilhado e uma porta própria, e guarda essa troca numa tabela para devolver a resposta à casa certa. Assim dezenas de assinantes navegam com um único IPv4 público, e cada conexão fica separada pela porta.
Resumo
- O CGNAT é o NAT feito pelo provedor, que divide um IPv4 público entre vários assinantes ao mesmo tempo.
- Atrás dele existem dois andares de tradução, o do roteador da casa e o do provedor, por isso também se fala em NAT444.
- Cada conexão ganha uma porta no IP público, e a forma de dividir as portas define o tamanho do registro.
- Para achar um assinante é preciso juntar IP público, porta e horário exato, com o relógio sincronizado por NTP.
O que é CGNAT e por que o provedor usa
CGNAT é a sigla de Carrier-Grade NAT, o NAT em escala de operadora, em que o provedor divide um mesmo IPv4 público entre vários assinantes. Ele existe porque o IPv4 acabou e o provedor continua ganhando clientes.
O IPv4 tem cerca de 4,3 bilhões de endereços, número que parecia infinito nos anos 1980 e hoje não cobre nem os celulares do planeta. Os registros regionais, como o LACNIC, que atende o Brasil, já não distribuem IPv4 novo em volume [CONFIRMAR situação atual no LACNIC], e comprar bloco de outra empresa custa caro.
Para o provedor regional, a conta é direta: se cada assinante novo precisasse de um IPv4 público, a base pararia de crescer. Com o CGNAT, um bloco pequeno atende milhares de casas, enquanto o IPv6 assume o tráfego que já pode sair sem tradução. O conjunto dessas duas frentes está em IPv6 e CGNAT para provedores.
Para que serve o CGNAT e para que ele não serve
O CGNAT serve para uma coisa só: fazer um bloco pequeno de IPv4 público atender muito mais assinantes do que ele tem endereços. O resto, como adiar a compra de blocos, é consequência dessa economia.
- Crescer sem IPv4 novo: cada IP público passa a atender dezenas de casas, e a base cresce sem esperar bloco.
- Adiar a compra de blocos: o dinheiro que iria para IPv4 no mercado fica para a rede e o atendimento.
- Alcançar o que só tem IPv4: durante a transição, sites e serviços sem IPv6 continuam acessíveis pela tradução.
O CGNAT não funciona como firewall nem protege o assinante, e também não deixa a conexão mais rápida. Ele barra conexões vindas de fora só como efeito colateral, e é isso que quebra câmeras, jogos e servidores caseiros.
Onde o CGNAT fica na rede do provedor
O CGNAT fica entre o concentrador, que autentica os assinantes, e o roteador de borda, que fala com as operadoras. Em redes menores, o próprio concentrador faz a tradução; em redes maiores, há um equipamento só para isso.
Do lado de dentro, os assinantes recebem endereços da faixa 100.64.0.0/10, reservada pela RFC 6598 para esse fim. Do lado de fora, sai um bloco pequeno de IPs públicos, que é o que a internet enxerga.
NAT da casa e NAT do provedor, dois andares de tradução
O roteador Wi-Fi do assinante já faz NAT: os aparelhos da casa usam endereços como 192.168.0.10, e o roteador os troca pelo endereço da WAN. Com CGNAT, esse endereço da WAN é da faixa 100.64, e o provedor faz a segunda troca.
Por isso o arranjo é chamado de NAT444: endereço privado IPv4, endereço compartilhado IPv4 e endereço público IPv4. É esse segundo andar que quebra algumas coisas para o assinante, como veremos adiante.
Como funciona o CGNAT, passo a passo, no caminho de um pacote
O pacote sai do aparelho, é traduzido no roteador da casa, traduzido de novo no CGNAT e chega ao servidor com o IP público do provedor. Na volta, o CGNAT consulta a tabela de traduções e devolve a resposta ao assinante certo.
Casa · Aparelho
O notebook abre a conexão
Sai de 192.168.0.10, porta 51000, para o site 198.51.100.80, porta 443.
Casa · Roteador Wi-Fi
Primeira tradução
O roteador troca a origem pelo endereço da WAN, 100.64.1.20, porta 40000.
Provedor · CGNAT
Segunda tradução
O CGNAT troca a origem por 203.0.113.10, porta 20500, e anota a troca na tabela.
Internet · Site
O site responde ao IP público
Para o site, quem chamou foi 203.0.113.10:20500. A resposta volta para esse par.
Volta · CGNAT e roteador
Traduções desfeitas na ordem inversa
O CGNAT acha 100.64.1.20:40000 na tabela, e o roteador da casa entrega ao notebook.
A tradução só existe enquanto a conexão está viva. Depois de um tempo sem tráfego, a linha sai da tabela e a porta volta para uso.
Repare que o site nunca vê o endereço 100.64.1.20 nem o 192.168.0.10. Ele só conhece o IP público e a porta, e é por isso que o provedor precisa guardar a tabela de traduções, ou uma regra que a reconstrua, para saber depois quem estava atrás daquela porta.
Exemplo: a tabela de traduções de duas casas
Na tabela abaixo, duas casas usam o mesmo IP público ao mesmo tempo, inclusive para o mesmo site. O que separa uma da outra é a porta pública.
| Endereço interno | Porta interna | IP público | Porta pública | Destino | Protocolo |
|---|---|---|---|---|---|
| 100.64.1.20 | 40000 | 203.0.113.10 | 20500 | 198.51.100.80:443 | TCP |
| 100.64.1.20 | 40001 | 203.0.113.10 | 20501 | 198.51.100.25:53 | UDP |
| 100.64.1.21 | 40000 | 203.0.113.10 | 22516 | 198.51.100.80:443 | TCP |
| 100.64.1.21 | 52314 | 203.0.113.10 | 22517 | 198.51.100.90:3478 | UDP |
As duas casas até usam a mesma porta interna, 40000, sem conflito, porque o CGNAT dá a cada uma uma porta pública diferente. Cada aba aberta, cada aplicativo e cada aparelho da casa ocupa ao menos uma linha.
Como o CGNAT divide as portas entre os assinantes?
O CGNAT divide as portas de três formas: uma a uma, conforme a demanda, em blocos entregues ao assinante ou numa faixa fixa calculada por fórmula. A escolha muda o volume de registro e o risco de faltar porta.
Cada IP público tem 65.535 portas, e as abaixo de 1024 costumam ficar de fora. Se 32 assinantes dividem um IP, sobram cerca de 2 mil portas para cada um, número que dá folga numa casa comum e aperta numa casa com muitos aparelhos e jogos.
| Forma | Como funciona | Registro | Risco |
|---|---|---|---|
| Dinâmica | Cada conexão pega a próxima porta livre do IP | Uma linha por conexão, volume muito alto | Um assinante pesado pode ocupar portas demais |
| Por blocos | O assinante recebe blocos de portas conforme usa | Uma linha por bloco entregue | Precisa limitar quantos blocos cada um pega |
| Determinística | Faixa fixa calculada a partir do endereço interno | Basta a fórmula e o registro da sessão | Faixa pequena demais vira falta de porta |
Os detalhes de cada forma estão nos guias de alocação por blocos e de NAT determinístico. Quem usa MikroTik encontra a montagem completa, com comandos, em como configurar CGNAT no MikroTik.
Não sabe como o seu CGNAT divide as portas?
No projeto de IPv6 e CGNAT, um Especialista lê o consumo real de portas, ajusta a proporção por IP e deixa o registro pronto para uma consulta de ofício.
Quanto tempo uma porta fica presa
A porta fica presa enquanto a conexão existir e mais um tempo de espera depois do último pacote. Conexões UDP costumam expirar em segundos, e conexões TCP estabelecidas podem durar horas, conforme o ajuste do equipamento [CONFIRMAR no manual do equipamento].
Esse tempo explica por que a falta de porta aparece à noite: é quando mais aparelhos ficam ligados, mais conexões ficam abertas e menos portas sobram para a próxima.
O que muda para o assinante atrás do CGNAT
Para navegar, ver vídeo e usar aplicativos, quase nada muda. O que deixa de funcionar é tudo que depende de alguém de fora iniciar a conexão com a casa do assinante.
O CGNAT só sabe para onde mandar um pacote se a conversa começou de dentro. Uma câmera, um DVR ou um servidor doméstico que espera conexões de fora fica inacessível, porque o pacote chega ao IP público e não há linha na tabela que diga para qual casa ele vai.
Quais serviços param de funcionar atrás do CGNAT?
Os casos abaixo respondem pela maior parte das reclamações de assinantes atrás de CGNAT. Todos têm a mesma raiz: falta um endereço que a internet consiga alcançar.
- Acesso remoto a câmeras e DVR: o redirecionamento de portas no roteador da casa não passa do CGNAT.
- Jogos online: o console pode acusar NAT estrito ou moderado e falhar ao entrar em partidas.
- Servidores caseiros: site, VPN ou servidor de jogo hospedado em casa deixam de receber conexões.
- Reputação do IP: se um assinante faz besteira, os outros do mesmo IP podem cair em listas de bloqueio.
Os jogos têm um guia próprio, sobre CGNAT travando jogos, e o problema de reputação aparece no guia de IP do provedor em blacklist.
CGNAT ou IP público, quando vale cada um?
O CGNAT vale para a maior parte da base, que só navega. O IP público, cobrado à parte ou dado a planos empresariais, vale para quem precisa receber conexões, como empresas com câmeras e servidores.
Para o gamer e para a câmera moderna, o IPv6 costuma resolver sem gastar IPv4, porque cada casa recebe endereços próprios. A relação entre os dois protocolos está explicada em IPv6 tem CGNAT?.
Como funciona o CGNAT na hora de identificar um assinante?
Para achar um assinante atrás do CGNAT, o provedor parte de três dados: o IP público, a porta de origem e o horário exato. Só o IP não basta, porque dezenas de casas usaram o mesmo endereço naquele minuto.
- Ofício: chega um pedido com IP público, porta de origem, data, hora e fuso horário da conexão.
- Tradução: com a tabela registrada ou com a fórmula do determinístico, acha-se o endereço interno 100.64 daquele par.
- Sessão: o registro do concentrador ou do RADIUS mostra qual login usava esse endereço interno naquele horário.
- Contrato: do login se chega ao cadastro do assinante, que é o que a Justiça pede.
O Marco Civil da Internet obriga o provedor de conexão a guardar os registros de conexão por um ano [CONFIRMAR na norma]. Com IP compartilhado, a porta e o horário fazem parte desse registro, e a guarda de logs de CGNAT organiza tudo de forma consultável.
O relógio é parte do registro. Um CGNAT com dois minutos de diferença em relação à hora oficial aponta outro assinante, porque naquele intervalo a mesma porta pode ter passado por mais de uma casa.
Erros comuns de quem está começando com CGNAT
Os erros mais comuns nascem de tratar o CGNAT como um NAT de escritório maior. Ele divide recursos entre milhares de pessoas e responde a pedidos legais, então exige conta e registro.
- Proporção sem medição: escolher clientes por IP pelo que o vizinho usa, sem ler o consumo de portas da própria base.
- Registro sem porta: guardar só o IP público e o login, o que não identifica ninguém quando o IP é dividido.
- CGNAT sem IPv6: todo o tráfego passa pela tradução, a CPU sobe e as portas acabam mais cedo.
- Faixa privada no lado interno: usar 10.0.0.0/8 ou 192.168.0.0/16, que podem colidir com a rede da casa do cliente.
- Um equipamento só: quando o CGNAT para, a base inteira para junto, mesmo com a fibra e o concentrador funcionando.
Sinais de que o CGNAT da sua rede pede revisão
- A CPU do equipamento de CGNAT passa do confortável no horário de pico.
- Chegam reclamações de NAT estrito em consoles, sempre à noite.
- A última consulta de ofício demorou horas ou não achou o assinante.
- Ninguém sabe dizer quantos clientes dividem cada IP público.
- O IPv6 ainda não chega à casa dos assinantes.
Dois sinais ou mais indicam que o CGNAT foi montado para a base de ontem. O dimensionamento de CGNAT refaz a conta com o consumo atual.
A Táquion Tech implanta CGNAT com portas calculadas pelo consumo medido, registro testado com uma consulta simulada e IPv6 ligado junto, para que a tradução carregue só o que ainda precisa de IPv4.
Perguntas frequentes
O que é CGNAT em poucas palavras?
É o NAT feito pelo provedor, em que vários assinantes saem para a internet pelo mesmo IPv4 público, cada um com portas próprias. Ele permite crescer a base sem comprar um IPv4 para cada casa.
Qual a diferença entre NAT comum e CGNAT?
O NAT comum fica no roteador da casa ou da empresa e divide um IP entre os aparelhos de um só cliente. O CGNAT fica no provedor e divide um IP entre clientes diferentes, por isso precisa de registro de porta e horário.
O CGNAT deixa a internet mais lenta?
Num CGNAT bem dimensionado, a tradução acrescenta um atraso que o assinante não percebe. A lentidão aparece quando o equipamento está no limite de CPU ou quando o assinante fica sem portas no horário de pico.
Como saber se um assinante está atrás de CGNAT?
Compare o endereço da WAN no roteador do cliente com o IP que um site de teste mostra. Se a WAN estiver na faixa 100.64.0.0/10 e o site mostrar outro endereço, há CGNAT no caminho.
Para que serve CGNAT se o provedor já tem IPv6?
Serve para o tráfego que ainda exige IPv4, porque muitos sites, jogos e aparelhos antigos não falam IPv6. Com o IPv6 ligado, o CGNAT continua necessário, mas carrega menos conexões e gasta menos portas.
Fontes
- RFC 6598, IANA-Reserved IPv4 Prefix for Shared Address Space: reserva a faixa 100.64.0.0/10 para o lado interno do CGNAT
- RFC 6888, Common Requirements for Carrier-Grade NATs (CGNs): requisitos de comportamento, portas por assinante e registro num CGNAT
- RFC 6269, Issues with IP Address Sharing: efeitos do compartilhamento de IP em conexões de entrada, reputação e identificação