Kaique Mitsuo Silva Yamamoto
Redes isp

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

Internet

O 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 clientePortas simultâneas típicasRecomendação de portas alocadas
Residencial leve200-5001.024
Residencial médio500-2.0002.048
Residencial heavy (streaming, torrents)2.000-8.0004.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úblico

Fó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=firewall

Atençã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

ProblemaCausaSolução
Jogos online não funcionamAlgumas plataformas (PlayStation, Xbox) requerem NAT abertoPort forwarding via PCP ou UPnP-CGN
VPN do cliente não conectaIPSec/PPTP tem problemas atrás de CGNATOferecer bypass CGNAT ou IPs públicos dedicados
Blacklist de IP compartilhadoUm cliente com comportamento malicioso afeta todos que compartilham o IPMonitorar e isolar cliente infrator
Esgotamento de portasAlto uso de P2P/torrentsLimitar 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=56

Estraté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

On this page