Tipos de NAT e Regras em Firewalls: Guia Prático com Palo Alto

O NAT (Network Address Translation) é uma técnica fundamental em redes IP que permite traduzir endereços entre dois domínios distintos. Implementado tipicamente em firewalls e routers, o NAT resolve o esgotamento de IPv4, oculta a topologia interna e segmenta tráfego entre zonas de confiança. Neste guia prático cobrimos os quatro tipos principais de NAT e a sua configuração em firewalls Palo Alto.

Neste artigo

1. Introdução ao NAT

O Network Address Translation foi definido na RFC 1631 (1994) como resposta ao esgotamento rápido de endereços IPv4. Sem NAT, cada dispositivo na Internet precisaria de um IP público único — algo impossível com apenas 4 mil milhões de endereços na classe A/B/C.

Os três motivos principais para usar NAT hoje:

  • Escoamento IPv4: redes internas usam RFC 1918 (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) e saem com um ou poucos IPs públicos.
  • Segurança por ocultamento: o IP interno não é visível no exterior, dificultando mapeamento da topologia.
  • Segmentação: entre zonas Trust/Untrust/DMZ, o NAT isola tráfego e permite políticas granulares.

Existem quatro tipos principais de NAT, cada um com caso de uso distinto: SNAT, DNAT, PAT e NAT 1:1 (estático bidireccional). Vamos ver cada um em detalhe.

2. SNAT (Source NAT)

O SNAT traduz o IP de origem dos pacotes. É o tipo mais comum: usado quando uma rede interna sai para a Internet. O firewall substitui o IP privado (ex: 10.0.0.5) por um IP público (ex: 203.0.113.5) antes de enviar o pacote.

Cliente Interno
10.0.0.5

Firewall SNAT
10.0.0.5 → 203.0.113.5

Internet
203.0.113.5

Caso prático: a rede 10.0.0.0/24 sai com IP único 203.0.113.5. Em Palo Alto, a regra SNAT define source translation com interface IP ou IP pool.

# SNAT: rede 10.0.0.0/24 sai como 203.0.113.5
set network nat-rule snat-outbound
  from trust
  to untrust
  source 10.0.0.0/24
  destination any
  service any
  source-translation static-ip
    translated-address 203.0.113.5
    bi-directional no

3. DNAT (Destination NAT)

O DNAT traduz o IP de destino. É usado para entrada: o tráfego que chega do exterior a um IP/porta público é redireccionado para um servidor interno. Casos típicos incluem port forwarding e publicação de serviços web, mail ou VPN.

Internet
203.0.113.5:443

Firewall DNAT
203.0.113.5:443 → 10.0.0.10

Servidor Web Interno
10.0.0.10:443

Exemplo: publicar um web server interno. O IP público 203.0.113.5 na porta 443 é redireccionado para 10.0.0.10:443.

# DNAT: 203.0.113.5:443 -> 10.0.0.10:443
set network nat-rule dnat-web-server
  from untrust
  to untrust
  destination 203.0.113.5
  service service-https
  destination-translation
    translated-address 10.0.0.10
    translated-port 443

4. PAT (Port Address Translation)

O PAT é uma variante do SNAT onde muitos IPs internos partilham um único IP público, cada ligação com porta de origem diferente. O firewall mantém uma tabela de mapeamento IP:porta interna → porta externa.

Cliente A
10.0.0.5:45678

PAT
→ 203.0.113.5:32001

Internet
Cliente B
10.0.0.6:45679

PAT
→ 203.0.113.5:32002

Internet

Caso típico: CGNAT (Carrier-Grade NAT) usado por ISPs com limitação de IPs públicos. Em Palo Alto, o PAT usa dynamic IP pool ou interface IP com port translation activa.

# PAT: muitos internos -> 1 IP publico com portas dinamicas
set network nat-rule pat-saida
  from trust
  to untrust
  source 10.0.0.0/24
  destination any
  service any
  source-translation dynamic-ip-and-port
    translated-address pool-publico-203-0-113-5

5. NAT 1:1 (Static NAT / Bi-directional NAT)

O NAT 1:1 é um mapeamento fixo um-para-um: um IP interno ↔ um IP público. Não há partilha de portas nem de IPs. Usado para servidores que precisam de IP público dedicado, como servidores de email, VPN endpoints ou servidores web com certificado próprio.

Servidor Interno
10.0.0.10

Firewall NAT 1:1
10.0.0.10 ↔ 203.0.113.10

IP Publico
203.0.113.10

O bidireccional significa que funciona em ambos os sentidos: o servidor interno sai com 203.0.113.10 e o tráfego que chega a 203.0.113.10 é encaminhado para 10.0.0.10.

# NAT 1:1 bidireccional: 10.0.0.10 <-> 203.0.113.10
set network nat-rule static-mail-server
  from trust
  to untrust
  source 10.0.0.10
  destination any
  service any
  source-translation static-ip
    translated-address 203.0.113.10
    bi-directional yes

set network nat-rule static-mail-server-inbound
  from untrust
  to untrust
  destination 203.0.113.10
  service any
  destination-translation
    translated-address 10.0.0.10

6. Palo Alto: configurar NAT Rules

O Palo Alto Networks separa Nat Policy de Security Policy. A Nat Policy apenas faz tradução de endereços; a Security Policy é que permite ou bloqueia o tráfego. Ambas têm de estar configuradas para o tráfego fluir.

ℹ Importante: No Palo Alto, a ordem de processamento é: NAT primeiro (traduz endereços), depois Security Policy (avalia tráfego já traduzido). Ao escrever regras de Security, usar o IP traduzido como destino.

A tabela abaixo resume os campos obrigatórios de uma NAT rule:

Campo Descrição Exemplo
Name Nome da regra snat-outbound
From Zone Zona de origem trust
To Zone Zona de destino untrust
Source IP(s) de origem a traduzir 10.0.0.0/24
Destination IP de destino original 203.0.113.5
Service Protocolo/porta service-https (tcp/443)
Translation Type Tipo de tradução static-ip / dynamic-ip-and-port

Comando completo para criar uma regra SNAT e verificar:

# Criar regra SNAT completa
set network nat-rule snat-lan-outbound
  from trust
  to untrust
  source 10.0.0.0/24
  destination any
  service any
  source-translation dynamic-ip-and-port
    interface-address interface ethernet1/1
    IP 203.0.113.5

# Criar Security Policy correspondente
set rulebase security rules allow-lan-outbound
  from trust
  to untrust
  source 10.0.0.0/24
  destination any
  service application-default
  action allow

# Commit
commit

# Verificar NAT rules configuradas
show running nat-policy

7. Tabela comparativa

Tipo Direcção Uso típico Ports Segurança Complexidade
SNAT Saída Rede interna → Internet Muitos:1 ou Muitos:Pool Oculta IP interno Baixa
DNAT Entrada Publicar serviços, port forward 1:1 por porta Expõe serviço Média
PAT Saída CGNAT, ISP, partilha IP Muitos:1 com portas Oculta, limita portas Média
NAT 1:1 Bidireccional Servidor dedicado, VPN, mail 1:1 fixo, sem partilha IP público visível Baixa

8. Erros comuns e checklist

Problema Causa Solução
NAT hairpin Cliente interno acede IP público do próprio servidor; o tráfego entra e sai pela mesma interface Criar U-turn NAT: SNAT do cliente interno + DNAT para o servidor
Asymmetric routing Tráfego entra por um caminho e sai por outro; o firewall descarta por não ver a sessão completa Garantir que o caminho de retorno passa pela mesma firewall; usar PBR se necessário
U-turn NAT falha Falta a regra de SNAT para o cliente interno no cenário hairpin Adicionar source-translation no mesmo tráfego que faz DNAT
Policy override NAT rule configurada mas Security Policy bloqueia o tráfego Verificar que a Security Rule permite o tráfego com o IP traduzido
Zone mismatch From/To zone invertidas na NAT rule Confirmar que From = zona de origem, To = zona de destino

Checklist antes de aplicar NAT:

  • Zonas From/To correctas (Trust → Untrust para SNAT).
  • Source e Destination definidos com CIDR preciso (evitar any onde não necessário).
  • Tipo de tradução correcto: static-ip para 1:1, dynamic-ip-and-port para PAT.
  • Security Rule correspondente criada com o IP traduzido.
  • Verificar com show running nat-policy após commit.
  • Testar tráfego hairpin de cliente interno se aplicável.

ℹ Dica: O comando show session all filter source 10.0.0.5 mostra as sessões activas de um cliente específico, útil para diagnosticar se o NAT está a funcionar como esperado.

O NAT é uma peça central em qualquer firewall moderno. Compreender os quatro tipos e saber configurá-los no Palo Alto — separando Nat Policy de Security Policy — evita a maioria dos problemas de conectividade em redes empresariais.