Pular para o conteúdo principal

CGNAT: Por que sua operadora não deixa você acessar sua casa de fora?

· 19 min para ler
David Puziol Prata
DevSecOps at @ dLocal

Se você já tentou acessar uma câmera de segurança, um servidor doméstico ou qualquer serviço na sua casa de fora da sua rede e não conseguiu, provavelmente você está atrás de CGNAT. Vamos entender o que isso significa e por que as operadoras fazem isso.

O problema: IPv4 acabou

Quando a internet foi criada, o protocolo IPv4 foi projetado com endereços de 32 bits, permitindo aproximadamente 4,3 bilhões de endereços únicos. Na época, parecia mais que suficiente.

Entendendo o endereço IPv4

Vamos fazer um overview rápido sobre IPV4 que é o IP Versão 4 que todo mundo conhece. É bom falar sobre isso, pois temos o também o IPV6 só que não iremos falar disso neste post.

Um endereço IPv4 é composto por 4 octetos separados por pontos:

   192   .   168   .    1    .    1
│ │ │ │
1º octeto 2º octeto 3º octeto 4º octeto

Por que "octeto"? Porque cada número representa 8 bits (1 byte). E 8 bits só conseguem representar valores de 0 a 255:

8 bits = 2⁸ = 256 combinações possíveis (0 até 255)

Binário: 00000000 = 0
11111111 = 255
10101000 = 168

Exemplo completo:
192.168.1.1 em binário:
11000000.10101000.00000001.00000001

Não vamos entrar no estudo da representação dos número em binários, apesar de que se você é da área de TI deveria entender isso perfeitamente.

Total de endereços possíveis:

4 octetos × 8 bits = 32 bits
2³² = 4.294.967.296 endereços (aproximadamente 4,3 bilhões)

Blocos de IP reservados

Nem todos os 4,3 bilhões de endereços estão disponíveis para uso público. Vários blocos foram reservados para propósitos específicos:

FaixaCIDRUsoQuantidade
0.0.0.0 – 0.255.255.2550.0.0.0/8Indica "esta rede" ou origem indefinida (antes de ter IP)16.777.216
10.0.0.0 – 10.255.255.25510.0.0.0/8Redes internas de empresas e data centers16.777.216
100.64.0.0 – 100.127.255.255100.64.0.0/10Uso interno das operadoras para CGNAT4.194.304
127.0.0.0 – 127.255.255.255127.0.0.0/8Localhost - sempre aponta para a própria máquina16.777.216
169.254.0.0 – 169.254.255.255169.254.0.0/16Auto-atribuído quando DHCP falha (APIPA)65.536
172.16.0.0 – 172.31.255.255172.16.0.0/12Redes internas corporativas médias1.048.576
192.0.0.0 – 192.0.0.255192.0.0.0/24Reservado para protocolos especiais da IETF256
192.0.2.0 – 192.0.2.255192.0.2.0/24Exemplos em documentação e tutoriais256
192.88.99.0 – 192.88.99.255192.88.99.0/24Transição IPv6 (6to4) - obsoleto256
192.168.0.0 – 192.168.255.255192.168.0.0/16Redes domésticas (seu Wi-Fi de casa)65.536
198.18.0.0 – 198.19.255.255198.18.0.0/15Testes de performance e benchmark de rede131.072
198.51.100.0 – 198.51.100.255198.51.100.0/24Exemplos em documentação e tutoriais256
203.0.113.0 – 203.0.113.255203.0.113.0/24Exemplos em documentação e tutoriais256
224.0.0.0 – 239.255.255.255224.0.0.0/4Multicast - transmissão para múltiplos destinos (IPTV)268.435.456
240.0.0.0 – 255.255.255.254240.0.0.0/4Reservado para "uso futuro" (nunca liberado)268.435.456
255.255.255.255255.255.255.255/32Broadcast - enviar para todos na rede local1

Notação CIDR: O que significa /8, /16, /24?

Você deve ter notado a notação /8, /16, /24 nas faixas acima. Isso é a notação CIDR (Classless Inter-Domain Routing) e indica quantos bits são fixos na rede.

/8  = primeiros 8 bits fixos  = 1º octeto fixo
/16 = primeiros 16 bits fixos = 1º e 2º octetos fixos
/24 = primeiros 24 bits fixos = 1º, 2º e 3º octetos fixos
/32 = todos os 32 bits fixos = um único IP

Exemplo prático:

192.168.1.0/24 significa:
┌─────────────────────────────────────────┐
│ 192.168.1.XXX │
│ ─────────── ─── │
│ fixo (24) variável (8 bits) │
│ │
│ Faixa: 192.168.1.0 até 192.168.1.255 │
│ Total: 2⁸ = 256 endereços │
└─────────────────────────────────────────┘

10.0.0.0/8 significa:
┌─────────────────────────────────────────┐
│ 10.XXX.XXX.XXX │
│ ── ─────────── │
│ fixo variável (24 bits) │
│ │
│ Faixa: 10.0.0.0 até 10.255.255.255 │
│ Total: 2²⁴ = 16.777.216 endereços │
└─────────────────────────────────────────┘

Tabela de referência rápida:

CIDRMáscaraIPs disponíveisExemplo de uso
/8255.0.0.016.777.216Grandes corporações
/16255.255.0.065.536Empresas médias
/24255.255.255.0256Rede doméstica típica
/28255.255.255.24016Pequenos escritórios
/30255.255.255.2524Links ponto-a-ponto
/32255.255.255.2551Um único host
Dica de cálculo

Para saber quantos IPs tem em um bloco: 2^(32 - CIDR)

  • /24 = 2^(32-24) = 2^8 = 256 IPs
  • /16 = 2^(32-16) = 2^16 = 65.536 IPs
  • /8 = 2^(32-8) = 2^24 = 16.777.216 IPs
O que importa para você?

Os blocos em negrito na tabela são os que você encontra no dia a dia:

FaixaCapacidadeOnde você encontra
10.X.X.X16 milhões de IPsEmpresas, data centers, VPNs corporativas
172.16.X.X1 milhão de IPsAmbientes corporativos médios
192.168.X.X65 mil IPsRedes domésticas, pequenos escritórios

Por que 192.168.X.X é o padrão nos equipamentos de rede?

Roteadores, modems e access points vendidos ao público já vêm de fábrica configurados com 192.168.0.x ou 192.168.1.x porque:

  • 65 mil IPs é suficiente para a maioria dos cenários de uso
  • Equipamentos de consumo suportam no máximo ~250 dispositivos simultâneos
  • É uma convenção da indústria que facilita configuração e suporte técnico
  • Modems de operadoras de internet e a maioria dos dispositivos de rede acessíveis ao público usam esse padrão

Se você acessar a interface do seu roteador ou modem agora, provavelmente verá 192.168.0.1 ou 192.168.1.1 como gateway padrão. Se quiser trocar para utilizar outro bloco como 10.X.X.X/8 é perfeitamente possível.

Quantos IPs são realmente públicos?

Vamos calcular o que sobra depois de todos os blocos reservados de forma genérica.

Total IPv4:                      4.294.967.296

Subtraindo reservados:
- 0.0.0.0/8 (this network): -16.777.216
- 10.0.0.0/8 (privado): -16.777.216
- 100.64.0.0/10 (CGNAT): -4.194.304
- 127.0.0.0/8 (loopback): -16.777.216
- 169.254.0.0/16 (link-local): -65.536
- 172.16.0.0/12 (privado): -1.048.576
- 192.0.0.0/24 (IETF): -256
- 192.0.2.0/24 (TEST-NET-1): -256
- 192.88.99.0/24 (6to4): -256
- 192.168.0.0/16 (privado): -65.536
- 198.18.0.0/15 (benchmark): -131.072
- 198.51.100.0/24 (TEST-NET-2): -256
- 203.0.113.0/24 (TEST-NET-3): -256
- 224.0.0.0/4 (multicast): -268.435.456
- 240.0.0.0/4 (reservado): -268.435.456
- 255.255.255.255 (broadcast): -1
─────────────
Total reservado: 592.708.865

═══════════════════════════════════════════════
IPs públicos disponíveis: 3.702.258.431
(aproximadamente 3,7 bilhões)
═══════════════════════════════════════════════
E ainda tem mais...

Além dos blocos acima, existem IPs alocados para organizações que nunca os usaram, blocos do DoD (Departamento de Defesa dos EUA) que não são roteados publicamente, e IPs fragmentados que não podem ser agregados eficientemente. O número real de IPs públicos utilizáveis é ainda menor.

Na prática, sobram bem menos que 4 bilhões de IPs públicos utilizáveis. E com bilhões de dispositivos conectados, não tem para todo mundo.

O problema é que ninguém previu que teríamos:

  • Bilhões de smartphones
  • Computadores em cada casa
  • Smart TVs, geladeiras, lâmpadas inteligentes
  • Câmeras de segurança, sensores IoT
  • Servidores, data centers, cloud computing

Em 2019, os endereços IPv4 oficialmente acabaram. A IANA (Internet Assigned Numbers Authority) distribuiu os últimos blocos disponíveis.

NAT: A primeira solução

Antes mesmo do IPv4 acabar, já estava claro que não haveria IP público para todo mundo. A solução foi o NAT (Network Address Translation).

O gateway da rede (geralmente o roteador) é o dispositivo que executa a função de NAT. Ele é responsável por traduzir os endereços IP privados da sua rede interna para o endereço IP público que você recebeu da operadora, e vice-versa. É por isso que o roteador fica "entre" sua rede local e a internet.

Como funciona o NAT doméstico

Seu Modem/Roteador em casa usa NAT. Você tem um IP público da operadora e vários IPs privados internos:

Funcionamento:

Imagine que três dispositivos acessam sites ao mesmo tempo (todos na porta 443 - HTTPS):

DispositivoIP InternoPorta LocalDestinoPorta Destino
PC192.168.0.1052431google.com443
Celular192.168.0.1148712youtube.com443
Smart TV192.168.0.1261204netflix.com443

O roteador cria uma tabela NAT para rastrear cada conexão:

┌─────────────────────────────────────────────────────────────────┐
│ TABELA NAT │
├──────────────┬─────────────────────┬────────────────────────────┤
│ Porta Externa│ IP:Porta Interna │ Destino │
├──────────────┼─────────────────────┼────────────────────────────┤
│ 50001 │ 192.168.0.10:52431 │ google.com:443 │
│ 50002 │ 192.168.0.11:48712 │ youtube.com:443 │
│ 50003 │ 192.168.0.12:61204 │ netflix.com:443 │
└──────────────┴─────────────────────┴────────────────────────────┘

O que acontece:

  1. PC acessa google.com:443 → Roteador atribui porta externa 50001
  2. Google responde para 189.10.20.30:50001 → Roteador consulta tabela → Encaminha para 192.168.0.10:52431
  3. Mesmo processo para celular (porta 50002) e TV (porta 50003)

Todos os dispositivos compartilham o mesmo IP público, mas cada conexão usa uma porta externa diferente. É assim que dezenas de dispositivos navegam simultaneamente com apenas um IP.

Para fazer esse NAT em casa usamos os IPs privados que mencionamos anteriormente (192.168.X.X, 172.16.X.X ou 10.X.X.X)

NAT com Modem e Roteador Privado

Muitas pessoas preferem usar seu próprio roteador ao invés do equipamento da operadora, seja por mais recursos, melhor Wi-Fi, ou maior controle sobre a rede. Nesse caso, existem duas configurações possíveis:

Cenário 1: Double NAT (NAT duplo)

Se você simplesmente conectar seu roteador na porta LAN do modem da operadora, terá dois dispositivos fazendo NAT - o que pode causar problemas:

Problemas do Double NAT:

  • Port forwarding precisa ser configurado em ambos os dispositivos
  • Alguns serviços não funcionam bem (VoIP, jogos, VPN)
  • Mais complexidade para troubleshooting
  • Latência ligeiramente maior

Cenário 2: Modem em Modo Bridge (ideal)

A melhor solução é colocar o modem da operadora em modo bridge. Nesse modo, o modem não faz NAT - ele apenas converte o sinal (fibra/coaxial para Ethernet) e repassa a conexão. Seu roteador recebe o IP público diretamente:

Vantagens do Modo Bridge:

  • Um único NAT - seu roteador recebe o IP público diretamente
  • Port forwarding configurado apenas no seu roteador
  • Melhor performance para jogos e VoIP
  • Controle total da sua rede
Atenção

Nem todos os modems de operadora permitem modo bridge. Alguns bloqueiam essa opção ou exigem que você ligue na central para solicitar.

Serviços que podem parar de funcionar em modo bridge:

  • Telefonia VoIP - O telefone fixo da operadora geralmente usa o modem para funcionar. Em bridge, o serviço de voz para de funcionar
  • TV por assinatura (IPTV) - Serviços de TV que usam a mesma conexão de internet (IPTV) dependem do modem para receber o sinal multicast
  • Wi-Fi do modem - O Wi-Fi integrado do modem é desativado em modo bridge

Se você usa telefone fixo ou TV da operadora pelo mesmo equipamento, o modo bridge pode não ser viável. Nesse caso, use DMZ como alternativa.

Cenário 3: DMZ (alternativa ao Bridge)

Quando o modo bridge não está disponível ou gera perda de serviços, é uma a alternativa é configurar o IP do seu roteador pessoal como DMZ no modem. Porém, é importante entender: DMZ não elimina o NAT do modem.

É o mesmo cenário que o Double NAT.

O que o DMZ faz:

O modem ainda faz NAT, mas encaminha automaticamente TODO o tráfego de entrada (todas as portas) para o dispositivo configurado como DMZ. É como um "port forwarding automático de todas as portas".

AspectoModo BridgeDMZ
NAT no modemNãoSim
Seu roteador recebeIP públicoIP privado (192.168.x.x)
Quantidade de NAT1 (só seu roteador)2 (double NAT)
Port forwarding funcionaSim, só no seu roteadorSim, só no seu roteador
PerformanceMelhorLigeiramente pior
Quando usar DMZ?

DMZ é uma boa alternativa quando:

  • Modo bridge não está disponível no modem
  • Você não quer configurar port forwarding manualmente no modem
  • Precisa de uma solução rápida que "simplesmente funciona"

Resumo: Bridge é o ideal (um NAT só), DMZ é um workaround aceitável (ainda double NAT, mas com encaminhamento automático).

CGNAT: NAT em cima de NAT

Com o IPv4 esgotado, as operadoras precisavam conectar mais clientes do que IPs públicos disponíveis. A solução foi aplicar NAT novamente, agora na infraestrutura delas.

CGNAT = Carrier-Grade NAT (NAT de nível de operadora).

Três configurações diferentes, mesmo problema:

LocalConfiguraçãoNATs internosIP recebido da operadora
Casa 1Só modem1 (modem)100.64.1.10 (CGNAT)
EscritórioModem bridge + roteador1 (roteador)100.64.1.11 (CGNAT)
Casa 2Modem DMZ + roteador2 (modem + roteador)100.64.1.12 (CGNAT)

Independente da configuração interna, todas as casas recebem um IP da faixa CGNAT (100.64.x.x) e compartilham o mesmo IP público (189.10.20.30) na internet.

O que acontece:

  1. Sua casa recebe um IP "falso" da faixa 100.64.0.0/10 (reservada para CGNAT)
  2. Várias casas (às vezes centenas) compartilham o mesmo IP público
  3. A operadora faz NAT de novo antes de sair para a internet
Problema: IP compartilhado = responsabilidade compartilhada

Como centenas de usuários compartilham o mesmo IP público, se qualquer um deles fizer algo que resulte em bloqueio do IP, todos são afetados.

Cenários comuns:

  • Um vizinho participa de um ataque DDoS (mesmo sem saber, com máquina infectada)
  • Alguém envia spam ou faz scraping agressivo
  • Tentativas de login em massa (brute force)
  • Atividades suspeitas que acionam sistemas de segurança

Resultado: Você, trabalhando de casa, de repente não consegue acessar:

  • APIs de serviços (Google, GitHub, AWS)
  • Sites com proteção anti-bot (Cloudflare, reCAPTCHA)
  • Serviços de streaming que bloqueiam IPs suspeitos
  • Plataformas de trabalho remoto

E o pior: você não fez nada de errado, mas está "pagando" pelo comportamento de outro usuário que compartilha o mesmo IP.

Faixa reservada para CGNAT (RFC 6598)

100.64.0.0 - 100.127.255.255 (/10)
Total: 4 milhões de endereços para uso interno das operadoras

Se seu roteador mostra um IP começando com 100.64.x.x até 100.127.x.x, você está atrás de CGNAT.

Nem toda operadora segue o padrão

A faixa 100.64.0.0/10 é a oficialmente designada para CGNAT, mas não é obrigatória. Algumas operadoras usam outras faixas privadas:

  • 10.0.0.0/8 - Comum em operadoras menores ou mais antigas
  • 172.16.0.0/12 - Menos comum, mas acontece

Problema: Se a operadora usa 10.x.x.x para CGNAT e você usa 10.x.x.x na sua rede interna, pode haver conflito de endereços e problemas de roteamento.

Dica: Se você usa um roteador próprio, prefira usar 192.168.X.X internamente para evitar conflitos com possíveis faixas CGNAT da operadora.

Como saber se você está atrás de CGNAT

Método 1: Verificar a faixa de IP

Se o IP WAN do seu roteador estiver nessas faixas, é CGNAT:

  • 100.64.0.0 - 100.127.255.255 (faixa oficial CGNAT)
  • 10.x.x.x (algumas operadoras usam)

Acesse a interface do seu modem/roteador e verifique o IP WAN (ou IP externo/público). Se começar com esses números, você está atrás de CGNAT.

Método 2: Comparar IP WAN com IP público

Compare o IP que seu roteador mostra como WAN com o IP que a internet enxerga:

# Verifique seu IP público pela internet
curl ifconfig.me

Se o IP do roteador (WAN) for diferente do IP retornado pelo comando acima, você está atrás de CGNAT.

Método 3: Traceroute

traceroute 8.8.8.8

Se aparecer um salto extra com IP 100.64.x.x ou 10.x.x.x antes de sair para a internet, é CGNAT.

O problema para quem quer expor serviços

Com CGNAT, você não consegue receber conexões de entrada. Isso afeta diretamente:

Sem CGNAT (funciona):
Internet → Seu IP Público → Roteador → Câmera

Com CGNAT (não funciona):
Internet → IP Compartilhado → ??? → Como chegar em VOCÊ?

Problemas específicos

ServiçoProblema com CGNAT
Port forwardingNão funciona - a porta está na operadora, não em você
DDNSInútil - o IP público não é seu
VPN serverImpossível receber conexões
Câmeras IPAcesso externo bloqueado
Jogos P2PNAT tipo 3 (restrito), lag, desconexões
TorrentBaixa velocidade, poucos peers

Soluções

1. Pedir IP público à operadora

A primeira opção é ligar para a operadora e solicitar um IP público. As respostas variam:

Resposta da operadoraO que significa
IP público dinâmicoVocê sai do CGNAT e recebe um IP público que muda periodicamente. Resolve o problema - use DDNS para manter acesso
IP público fixoRaro para planos residenciais, geralmente só em planos empresariais ou com taxa adicional
Abertura de portas no CGNATA operadora configura port forwarding no servidor CGNAT deles para sua conexão. Funciona, mas limitado a portas específicas
Não oferecemosAlgumas operadoras simplesmente não têm essa opção
Como pedir

Ligue para a operadora e peça para "sair do CGNAT" ou solicite um "IP público válido". Argumentos que costumam funcionar:

  • "Preciso para câmeras de segurança"
  • "Uso para trabalho remoto / home office"
  • "Preciso acessar minha rede remotamente"

Se negarem o IP público, pergunte se podem abrir portas específicas no CGNAT.

Abertura de portas no CGNAT

Quando a operadora "abre uma porta" para você no CGNAT, ela está configurando um port forwarding no servidor CGNAT que redireciona o tráfego dessa porta para sua conexão.

É melhor que nada, mas um IP público próprio ainda é a solução ideal.

Alternativa: trocar de operadora

Se sua operadora não oferece IP público, pesquise outras opções na região. Ao contratar um novo serviço:

  1. Confirme por escrito (chat, e-mail ou gravação) que o plano inclui IP público
  2. Guarde os comprovantes - protocolos de atendimento e conversas
  3. Exija o prometido - se não cumprirem, você tem base para reclamação nos orgão reguladores.

2. Usar IPv6

IPv6 tem endereços suficientes para cada grão de areia do planeta:

IPv6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
Formato: 128 bits
Total: 340 undecilhões (3.4 × 10³⁸)

Se sua operadora oferece IPv6 nativo:

# Verificar se tem IPv6
curl -6 ifconfig.me

Problema: Nem todos os lugares de onde você quer acessar têm IPv6.

3. Túneis e serviços de relay

A solução mais elegante para CGNAT é usar túneis reversos. O conceito é simples: como você não pode receber conexões de entrada, você inicia uma conexão de saída para um servidor externo que fica como intermediário.

Cloudflare Tunnel (gratuito)

O Cloudflare Tunnel permite expor serviços HTTP/HTTPS sem abrir portas no roteador. Funciona assim:

Por que funciona com CGNAT?

  • O túnel é criado pela porta de saída (seu servidor conecta na Cloudflare)
  • Conexões de saída funcionam normalmente, mesmo atrás de CGNAT
  • O agente cloudflared precisa ficar rodando continuamente no seu servidor
  • Usuários acessam através do domínio configurado na Cloudflare

Tailscale / ZeroTier (VPN mesh)

Cria uma rede privada virtual entre seus próprios dispositivos, independente de onde estejam:

Todos os dispositivos com Tailscale/ZeroTier instalado se enxergam como se estivessem na mesma rede local.

Limitação importante

Tailscale e ZeroTier não expõem serviços para a internet pública. Terceiros precisariam instalar o cliente e fazer parte da sua rede para acessar.

Quando usar cada solução:

NecessidadeSolução
Acessar sua casa do seu celular/notebookTailscale / ZeroTier
Permitir que qualquer pessoa acesse um serviçoCloudflare Tunnel
Compartilhar com amigos/família específicosTailscale (adicionando à rede)

O Tailscale tem um recurso chamado Tailscale Funnel que permite expor serviços publicamente, mas é um recurso separado do VPN mesh básico.

4. VPS como ponte

Se você tem um VPS (servidor virtual) com IP público, pode criar um túnel reverso SSH. Seu servidor em casa conecta no VPS, e o VPS redireciona o tráfego de volta pelo túnel.

É uma solução mais técnica, mas funciona bem para quem já tem infraestrutura própria.

Por que as operadoras usam CGNAT?

Motivos econômicos

  1. IPv4 é caro: Blocos de IPs públicos são vendidos no mercado secundário por valores cada vez mais altos
  2. Economia de escala: 1 IP público para centenas de clientes = economia massiva em IPs

Motivos técnicos

  1. IPv4 acabou: Não há mais IPs para distribuir
  2. IPv6 não pegou: Adoção lenta, muitos sites ainda não suportam
  3. Funciona para 95% dos usuários: Netflix, YouTube, redes sociais funcionam normal

IPv6: A solução definitiva

IPv6 resolve o problema de forma permanente:

IPv4: 4 bilhões de endereços (acabou)
IPv6: 340.000.000.000.000.000.000.000.000.000.000.000.000 endereços

Com IPv6, cada dispositivo pode ter seu próprio IP público. Não precisa de NAT.

Por que não migramos ainda?

  • Equipamentos legados sem suporte
  • Custo de atualização de infraestrutura
  • "Funciona assim, por que mudar?"
  • Falta de pressão do mercado

Resumo

SituaçãoPode receber conexões?Solução
IP público (sem NAT)SimIdeal
NAT simples (IP público no roteador)Sim, com port forwardConfigurar roteador
CGNATNãoPedir IP público, túneis, VPN mesh
IPv6 nativoSimUsar se disponível

Se você precisa acessar serviços em casa remotamente, a primeira coisa a fazer é verificar se está atrás de CGNAT. Se estiver, as opções são:

  1. Pedir IP público à operadora (melhor opção se disponível)
  2. Usar túneis como Cloudflare Tunnel ou Tailscale (funciona sempre)
  3. Aguardar IPv6 se tornar universal (pode demorar anos)

A boa notícia é que existem soluções. A má notícia é que CGNAT veio para ficar enquanto o mundo não migrar para IPv6.