CGNAT e Esgotamento de IPv4
Como implantar CGNAT (NAT444) corretamente em provedores de internet brasileiros: dimensionamento de pool, logging para compliance ANATEL, problemas comuns e migração para IPv6.
O espaço de endereços IPv4 foi oficialmente esgotado no LACNIC em 2014 e no IANA em 2011. Provedores brasileiros que necessitam de novos blocos IPv4 enfrentam custos crescentes no mercado secundário — endereços que custavam centavos em 2010 hoje são negociados por US$ 40 a US$ 60 por endereço.
O CGNAT (Carrier-Grade NAT), também chamado de NAT444, é a solução que permite a provedores compartilhar um único IP público entre dezenas ou centenas de clientes simultâneos.
Como o CGNAT funciona
Cliente (IP privado 192.168.1.X)
↓ NAT no CPE/roteador do cliente (NAT1)
IP RFC 6598 (100.64.X.X) — rede de acesso do ISP
↓ NAT no CGNAT do ISP (NAT2 — daí "NAT444")
IP público (1.2.3.4) compartilhado entre N clientes
↓
InternetO endereço 100.64.0.0/10 (RFC 6598) é o bloco reservado especificamente para uso interno em CGNATs — nunca use 10.x.x.x ou 192.168.x.x para a rede entre CPE e CGNAT, pois isso causa conflitos com redes privadas dos clientes.
Dimensionamento do CGNAT
Cálculo de portas por cliente
O NAT usa IP + Porta para identificar cada sessão. Com IPv4 há 65.535 portas disponíveis. O dimensionamento correto evita esgotamento de portas (quando clientes não conseguem abrir novas conexões).
| Tipo de cliente | Portas simultâneas típicas | Recomendação de portas alocadas |
|---|---|---|
| Residencial leve | 200-500 | 1.024 |
| Residencial médio | 500-2.000 | 2.048 |
| Residencial heavy (streaming, torrents) | 2.000-8.000 | 4.096 |
Fórmula para calcular quantos clientes por IP público:
Clientes por IP = 65.535 / Portas alocadas por cliente
Exemplo: 65.535 / 1.024 ≈ 64 clientes por IP públicoFórmula para calcular tamanho do pool público:
IPs públicos necessários = Total clientes / Taxa de concorrência / Clientes por IP
Exemplo: 10.000 clientes × 70% concorrência / 64 = ~109 IPs públicos (/25 ≈ 126 IPs)Configuração de CGNAT no MikroTik
# Criar pool de IPs públicos para CGNAT
/ip pool
add name=pool-cgnat-publico \
ranges=200.X.X.1-200.X.X.126
# Regra de NAT (masquerade) para clientes
/ip firewall nat
add action=src-nat \
chain=srcnat \
src-address=100.64.0.0/10 \
to-address-list=pool-cgnat-publico \
to-ports=1024-65535 \
comment="CGNAT - clientes PPPoE"CGNAT com alocação determinística de portas (PCP)
Para facilitar o logging (exigência da ANATEL), use alocação de portas determinística — cada bloco de IPs de cliente sempre mapeia para o mesmo IP público e faixa de portas:
# Exemplo: cliente 100.64.0.0/22 → sempre usa IP público X, portas 1024-5119
# Isso elimina a necessidade de log por sessão (apenas log de alocação de bloco)Logging para compliance ANATEL/Marco Civil
O Marco Civil da Internet (Lei 12.965/2014) e regulamentação da ANATEL exigem que provedores mantenham logs de conexão por pelo menos 1 ano, incluindo:
- IP público usado
- Porta de origem
- Data e hora (UTC)
- IP privado do cliente
Com CGNAT, o log precisa registrar a tradução NAT para que seja possível identificar qual cliente fez qual conexão a partir de um IP público.
# MikroTik — Log de conexões NAT para syslog externo
/ip firewall connection tracking
set enabled=yes
/system logging action
add bsd-syslog=yes name=syslog-cgnat remote=10.0.0.50 \
remote-port=514 src-address=0.0.0.0 target=remote
/system logging
add action=syslog-cgnat topics=firewallAtenção: O volume de logs de CGNAT é extremamente alto. Um provedor com 10.000 clientes pode gerar 50+ GB/dia de logs. Use soluções de log centralizado com retenção eficiente (Elasticsearch, ClickHouse).
Problemas comuns com CGNAT
| Problema | Causa | Solução |
|---|---|---|
| Jogos online não funcionam | Algumas plataformas (PlayStation, Xbox) requerem NAT aberto | Port forwarding via PCP ou UPnP-CGN |
| VPN do cliente não conecta | IPSec/PPTP tem problemas atrás de CGNAT | Oferecer bypass CGNAT ou IPs públicos dedicados |
| Blacklist de IP compartilhado | Um cliente com comportamento malicioso afeta todos que compartilham o IP | Monitorar e isolar cliente infrator |
| Esgotamento de portas | Alto uso de P2P/torrents | Limitar portas por cliente ou bloquear P2P |
Migração para IPv6 — A saída definitiva
O IPv6 elimina a necessidade de CGNAT ao fornecer endereços públicos únicos para cada cliente. Com 2^128 endereços disponíveis, o esgotamento é praticamente impossível.
# MikroTik — Ativar DHCPv6-PD (Prefix Delegation) para clientes
/ipv6 dhcp-server
add address-pool=pool-ipv6-clientes \
interface=bridge-clientes \
lease-time=1d \
name=dhcpv6-clientes
/ipv6 pool
add name=pool-ipv6-clientes \
prefix=2804:X:X::/32 \
prefix-length=56Estratégia recomendada: Implementar dual-stack — cada cliente recebe simultaneamente um IP privado (via CGNAT para IPv4) e um prefixo IPv6 público. Com o tempo, o tráfego IPv6 cresce e o CGNAT se torna menos crítico.
→ Ver guia completo de IPv6 para ISPs
Precisa implantar CGNAT? → Consultoria gratuita
FTTH e GPON para Provedores de Internet
Guia de infraestrutura de fibra óptica para ISPs: projeto GPON, cálculo de splitters, configuração de OLT Huawei, provisionamento de ONTs e migração de redes legadas para FTTH.
IPv6 para Provedores de Internet
Guia de implantação de IPv6 em ISPs brasileiros: dual-stack, DHCPv6-PD, prefix delegation, roteamento BGP com IPv6 e estratégia de migração de redes legadas.