Home / Roteamento / CGNAT com Mikrotik RouterOS V7

CGNAT com Mikrotik RouterOS V7

Configurar um CGNAT (Carrier-Grade NAT) em uma Mikrotik é uma solução muito usada por provedores para compartilhar endereços IPv4 públicos entre vários clientes, especialmente quando há escassez de IPs públicos. O processo consiste em:

  1. Definir a interface de entrada dos clientes (geralmente a rede privada/CGNAT).
  2. Definir a interface de saída (com IP público).
  3. Criar regras de NAT (masquerade ou src-nat).
  4. Ajustar faixas de IP e rotas conforme o seu cenário.

⚙️ Exemplo de configuração CGNAT

Cenário:

  • Rede dos clientes: 100.64.0.0/10 (faixa CGNAT padrão)
  • Interface dos clientes: ether2
  • Interface com IP público: ether1 (com IP: 200.200.200.1)

🔧 Passo a passo no terminal do Mikrotik

/ip firewall nat
add chain=srcnat src-address=100.64.0.0/10 out-interface=ether1 action=masquerade comment="CGNAT"

Isso fará com que todo o tráfego originado da rede 100.64.0.0/10 e saindo pela ether1 receba o IP público de ether1 como origem, via masquerade (SNAT dinâmico).


✅ Outras boas práticas:

1. Limite de conexões por cliente (evita abusos):

/ip firewall filter
add chain=forward src-address=100.64.0.0/10 connection-limit=100,32 action=drop comment="Limita conexões por cliente"

2. Marcar conexões e aplicar regras de QoS (se necessário):

Você pode marcar conexões por cliente ou IP para fins de controle de banda ou estatísticas.

3. Habilitar FastTrack (se compatível com sua estrutura):

/ip firewall filter
add chain=forward action=fasttrack-connection connection-state=established,related

🧠 Dicas Importantes:

  • Utilize a faixa 100.64.0.0/10 para CGNAT, conforme definido pela RFC 6598.
  • Sempre tenha logs e monitoração, pois CGNAT dificulta rastrear acessos de usuários.
  • Se possível, comece a planejar suporte a IPv6.

🎯 O que é netmap?

netmap cria um mapeamento direto entre dois blocos de IPs (privado ↔ público), geralmente com NAT estático (tipo 1:1). Isso é muito útil para CGNAT mais previsível e rastreável.


💡 Exemplo de cenário:

  • Bloco privado para clientes: 100.64.0.0/24
  • Bloco público disponível: 200.200.200.0/24
  • Interface dos clientes: ether2
  • Interface de saída: ether1

Cada cliente com IP 100.64.0.X vai sair com o IP 200.200.200.X.


⚙️ Configuração do netmap:

/ip firewall nat
add chain=srcnat src-address=100.64.0.0/24 action=netmap to-addresses=200.200.200.0/24 out-interface=ether1 comment="CGNAT NETMAP SRC"
/ip firewall nat
add chain=dstnat dst-address=200.200.200.0/24 action=netmap to-addresses=100.64.0.0/24 in-interface=ether1 comment="CGNAT NETMAP DST"

📌 Observações:

  • 1:1 obrigatório: O número de IPs no bloco privado e no bloco público tem que ser igual.
  • Faixas devem estar alinhadas em tamanho: Ex: /28 para /28, /24 para /24, etc.
  • Boa rastreabilidade: Você consegue saber qual IP privado está usando qual IP público com facilidade.
  • Não usa porta NAT: Esse método não faz PAT (Port Address Translation), então cada IP público é “exclusivo” para um cliente privado.

🛡️ Dica de segurança:

Você pode usar filtros para garantir que apenas clientes da rede CGNAT acessem esse mapeamento:

/ip firewall filter
add chain=forward src-address=100.64.0.0/24 out-interface=ether1 action=accept
add chain=forward dst-address=200.200.200.0/24 in-interface=ether1 action=accept

Deixe um Comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *