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
- 2. SNAT (Source NAT)
- 3. DNAT (Destination NAT)
- 4. PAT (Port Address Translation)
- 5. NAT 1:1 (Static NAT)
- 6. Palo Alto: configurar NAT Rules
- 7. Tabela comparativa
- 8. Erros comuns e checklist
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.
10.0.0.5
→
10.0.0.5 → 203.0.113.5
→
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.
203.0.113.5:443
→
203.0.113.5:443 → 10.0.0.10
→
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.
10.0.0.5:45678
→
→ 203.0.113.5:32001
→
10.0.0.6:45679
→
→ 203.0.113.5:32002
→
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.
10.0.0.10
↔
10.0.0.10 ↔ 203.0.113.10
↔
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
anyonde 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-policyapó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.