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

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:

  1. Solicitação (RS): O dispositivo envia um Router Solicitation no arranque para pedir um RA imediato, sem esperar pelo próximo período.
  2. 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).
  3. 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 ping6 e curl -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:

Referências: