Dia 25: IPv6 para PME — SLAAC, DHCPv6 e Estratégias de Transição
O IPv6 deixou de ser uma opção futura — é uma necessidade operacional. Com o esgotamento dos endereços IPv4 públicos e a pressão crescente dos ISPs para suportar tráfego nativo IPv6, as PME que não planearem a transição ficam em desvantagem competitiva. Este artigo cobre os três pilares práticos do IPv6 numa rede de pequena e média dimensão: SLAAC para autoconfiguração, DHCPv6 para controlo centralizado, Prefix Delegation para obter blocos do ISP, e as estratégias de transição que garantem compatibilidade durante a migração.
ℹ O SLAAC é o método mais simples de atribuir IPv6 — o router anuncia o prefixo e os dispositivos autoconfiguram o resto do endereço.
Neste artigo:
- 1. Introdução ao IPv6 para PME
- 2. SLAAC — Autoconfiguração Stateless
- 3. DHCPv6 — Configuração Stateful
- 4. Prefix Delegation
- 5. Estratégias de Transição (Dual-Stack, NAT64)
- 6. Configurar IPv6 em Linux
- 7. Erros Comuns e Lista de Verificação
1. Introdução ao IPv6 para PME
O IPv6 foi desenhado na década de 1990 para resolver o problema fundamental do IPv4: o limite de 4,3 mil milhões de endereços. Com 128 bits em vez de 32, o IPv6 oferece 3,4×10³⁸ endereços — mais do que suficientes para qualquer cenário imaginável. Para uma PME, a importância prática é dupla: eliminar a dependência de NAT em ligações ISP e garantir que serviços acedidos por clientes móveis (que cada vez mais usam IPv6 nativo) funcionam sem intermediários.
Um endereço IPv6 tem 8 grupos de 4 dígitos hexadecimais separados por dois pontos, como 2001:0db8:0000:0000:0000:0000:0000:0001. Regras de compactação permitem omitir zeros à esquerda em cada grupo e substituir uma sequência contínua de grupos zero por :: (uma única vez), resultando em 2001:db8::1.
Cada interface IPv6 tem tipicamente múltiplos endereços: um link-local (fe80::) para comunicação na sub-rede local, um global unicast (GUA) para tráfego routável na Internet, e opcionalmente um unique local address (ULA, fd00::) para redes internas sem ligação directa à Internet.
⚠ Nem todos os ISPs em Portugal oferecem IPv6 — verificar com o operador antes de planear a transição.
| Característica | IPv4 | IPv6 |
|---|---|---|
| Tamanho do endereço | 32 bits | 128 bits |
| Endereços disponíveis | ~4,3 mil milhões | 3,4×10³⁸ |
| NAT | Obrigatório na maioria das redes | Não necessário — endereçamento abundante |
| Autoconfiguração | DHCPv4 (stateful) | SLAAC (stateless) ou DHCPv6 (stateful) |
| Descoberta de vizinhos | ARP (broadcast) | NDP — Neighbor Discovery Protocol (multicast) |
| Cabeçalho | 12 campos, comprimento variável | 8 campos, comprimento fixo (40 bytes) |
Para uma PME, a vantagem mais imediata do IPv6 é a eliminação do NAT. Servidores internos tornam-se directamente acessíveis da Internet sem port forwarding, o que simplifica a configuração de VPNs, acesso remoto e serviços na nuvem híbridos. A contrapartida é que a segurança perimetral depende inteiramente do firewall — sem NAT, não existe a protecção acidental que o NAT proporciona.
2. SLAAC — Autoconfiguração Stateless
SLAAC (Stateless Address Autoconfiguration), definido na RFC 4861, é o mecanismo nativo do IPv6 para atribuição automática de endereços. O router envia periodicamente Router Advertisements (RA) na sub-rede, anunciando o prefixo IPv6 disponível. Cada dispositivo combina o prefixo com um identificador de interface (gerado a partir do MAC via EUI-64 ou aleatoriamente) para formar um endereço global único — sem qualquer servidor central.
O processo tem três fases:
- Solicitação (RS): O dispositivo envia um Router Solicitation no arranque para pedir um RA imediato, sem esperar pelo próximo período.
- Anúncio (RA): O router responde com o prefixo (/64), o tempo de validade e flags de configuração (A-flag para SLAAC, M-flag para DHCPv6).
- Detecção de duplicados (DAD): Antes de usar o endereço, o dispositivo verifica via NDP que nenhum outro nó na sub-rede tem o mesmo endereço.
A grande vantagem do SLAAC é a simplicidade: não há servidor a manter, base de dados de endereços ou conflitos de configuração. A desvantagem é a falta de controlo sobre quais endereços são atribuídos — qualquer dispositivo que se ligue à rede obtém um endereço válido. Para redes com requisitos de rastreio ou políticas de acesso, o DHCPv6 pode ser mais adequado.
No Linux, o daemon radvd (Router Advertisement Daemon) é a ferramenta padrão para anunciar prefixos SLAAC numa sub-rede local:
# radvd para SLAAC
# /etc/radvd.conf
interface eth0 {
AdvSendAdvert on;
prefix 2001:db8:1::/64 {
AdvOnLink on;
AdvAutonomous on;
};
};
As flags AdvOnLink on e AdvAutonomous on indicam que o prefixo está na mesma ligação (on-link) e que os dispositivos podem autoconfigurar endereços a partir dele (A-flag=1).
3. DHCPv6 — Configuração Stateful
DHCPv6, definido na RFC 8415, oferece controlo centralizado sobre a atribuição de endereços IPv6 — funcionalmente equivalente ao DHCPv4. O administrador define um intervalo de endereços (pool), opções de DNS, NTP e outras configurações, e o servidor mantém uma base de dados de quais endereços foram atribuídos a quais clientes.
Existem dois modos de operação DHCPv6:
- Stateful: O DHCPv6 atribui endereços completos. O router RA tem M-flag=1 e A-flag=0. O cliente só obtém endereço via DHCPv6.
- Stateless: O cliente obtém o endereço via SLAAC (RA com A-flag=1) mas usa DHCPv6 apenas para informações adicionais (DNS, NTP, domínio de pesquisa). O router RA tem O-flag=1.
O modo stateless é frequentemente o melhor compromisso para PME: mantém a simplicidade do SLAAC para atribuição de endereços mas garante que todos os clientes recebam configurações DNS consistentes via DHCPv6.
Configuração de um servidor DHCPv6 com ISC DHCP:
# DHCPv6 com ISC DHCP
# /etc/dhcp/dhcpdv6.conf
subnet6 2001:db8:1::/64 {
range6 2001:db8:1::100 2001:db8:1::200;
option dhcp6.name-servers 2001:db8:1::1;
}
O servidor ISC DHCP é iniciado com dhcpdv6 -cf /etc/dhcp/dhcpdv6.conf eth0 e escuta pedidos DHCPv6 na porta 547/UDP. Ao contrário do DHCPv4, o DHCPv6 não usa broadcasts — os clientes enviam mensagens Solicit para o endereço multicast ff02::1:2 (All DHCP Relay Agents and Servers).
| Flag no RA | Significado | Comportamento do cliente |
|---|---|---|
| A-flag (Autonomous) | SLAAC activo | Cliente gera endereço a partir do prefixo |
| M-flag (Managed) | DHCPv6 stateful | Cliente obtém endereço via DHCPv6 |
| O-flag (Other Config) | DHCPv6 stateless para extras | Cliente usa SLAAC para endereço, DHCPv6 para DNS/NTP |
4. Prefix Delegation
Prefix Delegation (PD), definido na RFC 8415, é o mecanismo pelo qual um ISP atribui um bloco de endereços IPv6 ao cliente — tipicamente um /56 ou /48 — permitindo que o cliente sub-divida esse bloco em múltiplas sub-redes /64 para diferentes VLANs, escritórios ou serviços.
Um bloco /56 oferece 256 sub-redes /64 — mais do que suficiente para uma PME com dezenas de VLANs. Um /48 oferece 65 536 sub-redes /64, adequado para organizações maiores com múltiplos sites.
O processo de PD funciona assim: o router edge (CPE) envia um pedido DHCPv6-Solicit ao ISP com a opção IA_PD (Identity Association for Prefix Delegation). O ISP responde com um prefixo delegado. O router edge depois sub-divide esse prefixo e anuncia cada /64 nas respectivas interfaces via RA (SLAAC) ou DHCPv6.
# Prefix Delegation (WAN → LAN)
# Pedir prefixo ao ISP na interface WAN
dhclient -6 -P eth0
A flag -P indica que o cliente quer um Prefix Delegation e não apenas um endereço individual. O prefixo recebido pode depois ser distribuído internamente com ferramentas como dibbler-server, radvd ou configuração manual em cada interface.
Em routers comerciais (MikroTik, Ubiquiti, pfSense), o Prefix Delegation é configurado via interface gráfica — o router WAN obtém o prefixo e as regras de firewall e RA são geradas automaticamente para cada interface LAN. Em Linux puro, é necessário um script que detecte o prefixo recebido e configure as interfaces internas dinamicamente.
5. Estratégias de Transição (Dual-Stack, NAT64)
A transição de IPv4 para IPv6 não é instantânea — a Internet vai continuar mista durante anos. As PME precisam de estratégias que garantam conectividade total durante esse período. As três abordagens principais são dual-stack, NAT64 e 464XLAT.
Dual-Stack
No dual-stack, cada interface tem simultaneamente endereço IPv4 e IPv6. As aplicações resolvem nomes via DNS e optam por IPv6 se houver um registo AAAA, fallback para IPv4 se só houver A. É a estratégia mais simples e robusta — não há tradução de protocolos, cada stack funciona de forma nativa. A desvantagem é que requer duplicação de configuração (firewall rules, monitorização, encaminhamento) em ambos os protocolos.
NAT64 + DNS64
NAT64 permite que clientes IPv6-only acedam a servidores IPv4-only. Um tradutor (NAT64) converte pacotes IPv6 em IPv4 e vice-versa. O DNS64 sintetiza registos AAAA a partir de registos A quando não existem registos AAAA reais, apontando os clientes para o prefixo do NAT64. É a estratégia usada por operadores móveis que já operam redes IPv6-only (T-Mobile, Sprint).
464XLAT
464XLAT permite que aplicações IPv4-only funcionem em redes IPv6-only. Um cliente (CLAT) traduz IPv4 em IPv6 no dispositivo, envia pelo túnel IPv6, e um servidor (PLAT/NAT64) traduz de volta para IPv4 no lado da Internet. É a solução para apps legadas que não suportam IPv6 nativo sem modificar a aplicação.
| Estratégia | Quando usar | Complexidade |
|---|---|---|
| Dual-Stack | Redes com IPv4 e IPv6 simultâneos | Baixa — config dupla mas sem tradução |
| NAT64 + DNS64 | Redes IPv6-only que precisam de aceder IPv4 | Média — tradutor + DNS sintético |
| 464XLAT | Apps IPv4-only em redes IPv6-only (mobile) | Alta — CLAT cliente + PLAT servidor |
Para a maioria das PME, dual-stack é a estratégia recomendada durante a fase de transição. Mantém compatibilidade total com IPv4 enquanto introduz IPv6 gradualmente. Quando todos os serviços internos e externos suportarem IPv6 nativamente, o IPv4 pode ser desativado selectivamente.
6. Configurar IPv6 em Linux
A configuração de IPv6 em Linux envolve três níveis: verificação do suporte no kernel, atribuição de endereços (estática ou automática) e configuração de encaminhamento. As ferramentas principais são ip do pacote iproute2, sysctl para parâmetros do kernel e os daemons radvd / dhcpdv6 para serviços de rede.
Primeiro, verificar o estado actual do IPv6 no sistema:
# Verificar IPv6
ip -6 addr show
ip -6 route show
Se o IPv6 estiver desactivado no kernel, activar com sysctl:
# Activar IPv6 no Linux
sysctl -w net.ipv6.conf.all.disable_ipv6=0
sysctl -w net.ipv6.conf.default.disable_ipv6=0
Para tornar a configuração persistente após reinício, adicionar a /etc/sysctl.conf ou a um ficheiro em /etc/sysctl.d/.
Configuração de endereço IPv6 estático numa interface:
# Configurar IPv6 estático
ip -6 addr add 2001:db8::1/64 dev eth0
ip -6 route add default via 2001:db8::ffff dev eth0
O comando ip -6 addr add atribui um endereço global unicast. O gateway por omissão é definido com ip -6 route add default via — em IPv6, o gateway deve estar na mesma sub-rede (on-link).
Para tornar a configuração estática persistente em Debian/Ubuntu, editar /etc/network/interfaces:
# /etc/network/interfaces
iface eth0 inet6 static
address 2001:db8::1
netmask 64
gateway 2001:db8::ffff
Em Red Hat/CentOS/AlmaLinux, a configuração vai para /etc/sysconfig/network-scripts/ifcfg-eth0 ou em NetworkManager via nmcli.
Para testar a conectividade IPv6:
# Testar IPv6
ping6 -c 4 ipv6.google.com
curl -6 https://ipv6.google.com
O ping6 verifica reachability ICMPv6. O curl -6 força resolução IPv6 — útil para confirmar que serviços HTTP respondem corretamente sobre IPv6.
7. Erros Comuns e Lista de Verificação
A transição para IPv6 introduz novos padrões de erro que não existem em IPv4. Conhecer os mais frequentes evita horas de diagnóstico.
| Erro | Causa | Solução |
|---|---|---|
| Endereço link-local mas sem GUA | Router não envia RA ou prefixo não configurado | Verificar radvd.conf e A-flag no RA |
| SLAAC funciona mas DNS não resolve | RA não inclui RDNSS nem DHCPv6 stateless | Activar O-flag no RA e configurar DHCPv6 stateless |
| Conectividade IPv6 falha intermitentemente | Firewall bloqueia ICMPv6 (Neighbor Discovery, RA) | Permitir ICMPv6 tipos 133-137 no firewall |
| Prefix Delegation não funciona | ISP não suporta PD ou CPE não pede IA_PD | Confirmar com ISP; usar dhclient -6 -P com opção IA_PD |
| Endereço muda a cada reinício | Privacy Extensions activas (RFC 7217) | Desactivar privacy extensions se for necessário endereço estável |
Um erro particularmente insidioso é bloquear ICMPv6 no firewall. Ao contrário do IPv4 onde ICMP é opcional, o IPv6 depende criticamente de ICMPv6 para Neighbor Discovery (equivalente ao ARP), Router Discovery e DAD. Bloquear ICMPv6 completamente quebra a conectividade mesmo se o endereço estiver correctamente configurado. Os tipos essenciais são 133 (RS), 134 (RA), 135 (NS), 136 (NA) e 137 (Redirect).
Lista de Verificação IPv6 para PME
- ✓ Confirmar com o ISP que IPv6 e Prefix Delegation estão disponíveis
- ✓ Activar IPv6 no kernel (
net.ipv6.conf.all.disable_ipv6=0) - ✓ Configurar RA (radvd) ou DHCPv6 em cada sub-rede /64
- ✓ Permitir ICMPv6 tipos 133-137 no firewall perimetral
- ✓ Verificar registos DNS AAAA para serviços públicos
- ✓ Testar conectividade com
ping6ecurl -6 - ✓ Configurar monitorização IPv6 (Nagios, Zabbix, Prometheus) para alertar sobre reachability
- ✓ Documentar o plano de endereçamento — qual /64 para cada VLAN/serviço
- ✓ Cópia de segurança da configuração de radvd, dhcpdv6 e firewall rules IPv6
- ✓ Planear janela de manutenção para activação em produção
O IPv6 é uma evolução inevitável. As PME que adoptarem agora ganham vantagem em conectividade directa, simplificação de NAT e preparação para o futuro da Internet. Começar com dual-stack numa VLAN de testes é a forma mais segura de ganhar confiança antes de expandir para a rede inteira.
Artigos relacionados:
- Dia 3 — Endereçamento IPv4, Sub-redes e CIDR
- Dia 9 — Firewalls Linux: iptables, nftables e UFW
- Dia 10 — Endurecimento SSH: Chaves, fail2ban
Referências: