ping6.net
Fundamentos

DHCPv6 vs SLAAC: Como Dispositivos Obtêm Endereços IPv6

Entenda as duas formas como dispositivos obtêm endereços IPv6: SLAAC usa anúncios de roteador, DHCPv6 usa um servidor. Aprenda quando usar cada um.

ping6.net14 de dezembro de 20247 min read
IPv6DHCPv6SLAACautoconfiguraçãoanúncio de roteador

Quando um dispositivo entra em uma rede IPv6, ele precisa de um endereço. Diferente do IPv4, onde DHCP é a abordagem padrão, o IPv6 oferece dois mecanismos: SLAAC (Stateless Address Autoconfiguration) e DHCPv6. Entender quando usar cada um é essencial para engenheiros de rede.

TL;DR - Resumo rápido

Pontos-chave:

  • SLAAC é sem estado e automático via Router Advertisements—não precisa de servidor
  • DHCPv6 fornece controle centralizado e rastreamento de endereços como DHCPv4
  • Flags M e O em Router Advertisements controlam qual método usar

Ir para: SLAAC para configuração automática, DHCPv6 para gerenciamento centralizado, ou Quando Usar Cada Um para orientação de implantação.

SLAAC: Autoconfiguração de Endereço Sem Estado#

SLAAC permite que dispositivos se configurem sem manter estado na rede. O roteador envia periodicamente mensagens de Anúncio de Roteador (RA) contendo o prefixo de rede, e os dispositivos geram seus próprios endereços.

Como Funcionam os Anúncios de Roteador#

Roteadores fazem multicast de mensagens RA para ff02::1 (multicast todos os nós) a cada 200 segundos por padrão. Dispositivos também podem solicitar um RA imediatamente enviando uma Solicitação de Roteador (RS) para ff02::2 (multicast todos os roteadores).

Um RA contém:

  • Prefixo de rede (ex.: 2001:db8::/64)
  • Endereço do gateway padrão
  • Tempo de vida do prefixo (válido e preferido)
  • Flags M e O (explicadas abaixo)

O dispositivo combina o prefixo anunciado com um ID de Interface de 64 bits autogerado para criar seu endereço.

Geração de ID de Interface#

Dois métodos comuns existem:

EUI-64 (Identificador Único Estendido Modificado) Deriva o ID de Interface do endereço MAC. Para MAC 00:11:22:33:44:55:

  1. Insira ff:fe no meio: 00:11:22:ff:fe:33:44:55
  2. Inverta o 7º bit: 02:11:22:ff:fe:33:44:55
  3. Resultado: 2001:db8::211:22ff:fe33:4455

Isso é determinístico, mas revela a identidade do hardware, criando preocupações de privacidade.

Extensões de Privacidade (RFC 4941) Gera IDs de Interface aleatórios. Sistemas operacionais modernos criam endereços temporários que mudam periodicamente (diariamente na maioria dos sistemas). O dispositivo mantém tanto um endereço estável (para conexões de entrada) quanto endereços temporários (para conexões de saída).

# Linux: Ver tipos de endereço
ip -6 addr show eth0
 
# Você verá scope global para endereços estáveis
# e scope global temporary para endereços de privacidade

O Que SLAAC Fornece#

SLAAC lida com:

  • Atribuição de endereço IPv6
  • Gateway padrão
  • Comprimento de prefixo

O que não fornece por padrão:

  • Servidores DNS
  • Lista de busca de domínio
  • Servidores NTP

Opção RDNSS (Servidor DNS Recursivo) RFC 8106 permite que roteadores anunciem servidores DNS em mensagens RA. A maioria dos sistemas modernos suporta isso, eliminando a necessidade de DHCPv6 em redes simples.


DHCPv6: Configuração Gerenciada#

DHCPv6 funciona de forma semelhante ao DHCPv4: clientes solicitam configuração de um servidor. Opera em dois modos.

DHCPv6 Com Estado#

O servidor atribui endereços e rastreia qual cliente tem qual endereço. Clientes executam uma troca de quatro mensagens:

  1. Solicit: Cliente solicita configuração
  2. Advertise: Servidor oferece um endereço
  3. Request: Cliente aceita a oferta
  4. Reply: Servidor confirma atribuição

Endereços são alugados com tempos de vida preferido e válido, exigindo renovação.

DHCPv6 Sem Estado#

Dispositivos usam SLAAC para endereços, mas consultam DHCPv6 para opções adicionais como servidores DNS, nome de domínio ou servidores NTP. O servidor não rastreia endereços, daí "sem estado".

Flags M e O#

Anúncios de Roteador contêm duas flags críticas:

Flag M (Configuração de Endereço Gerenciado) Quando definida como 1, dispositivos devem usar DHCPv6 para obter endereços. Endereços SLAAC ainda podem ser gerados dependendo da flag A na informação de prefixo.

Flag O (Outra Configuração) Quando definida como 1, dispositivos devem usar DHCPv6 para obter opções adicionais (DNS, NTP, etc.), mas não endereços.

Combinações de flags:

  • M=0, O=0: Apenas SLAAC (use RDNSS para DNS)
  • M=0, O=1: SLAAC + DHCPv6 Sem Estado
  • M=1, O=0: DHCPv6 para endereços (configuração rara)
  • M=1, O=1: DHCPv6 para endereços e opções

Comparação SLAAC vs DHCPv6#

RecursoSLAACDHCPv6
Atribuição de endereçoAutomática (prefixo + ID de Interface)Atribuído pelo servidor
Estado no servidorNenhumCom estado rastreia vinculações
Configuração DNSRDNSS em RA (RFC 8106)Opção 23 (servidores DNS)
Rastreamento de endereçoNão possívelVisibilidade completa
Complexidade do clienteMínimaRequer cliente DHCPv6
Modo de falhaContinua funcionandoPonto único de falha
Delegação de prefixoNão suportadoSuportado (DHCPv6-PD)

Configurações Comuns#

Apenas SLAAC (com RDNSS)#

Melhor para redes simples onde rastreamento de endereços não é necessário. Exemplo de radvd.conf no Linux:

interface eth0 {
    AdvSendAdvert on;
    prefix 2001:db8:1::/64 {
        AdvOnLink on;
        AdvAutonomous on;
    };
    RDNSS 2001:4860:4860::8888 2001:4860:4860::8844 {
        AdvRDNSSLifetime 300;
    };
};

Esta configuração fornece tudo que a maioria dos clientes precisa sem DHCPv6.

SLAAC + DHCPv6 Sem Estado#

Use quando RDNSS não é suportado ou quando opções adicionais são necessárias. Defina flag O no radvd:

interface eth0 {
    AdvSendAdvert on;
    AdvOtherConfigFlag on;  # O=1
    prefix 2001:db8:1::/64 {
        AdvOnLink on;
        AdvAutonomous on;
    };
};

Servidor DHCPv6 fornece DNS e outras opções, mas não atribui endereços.

Apenas DHCPv6 (Gerenciado)#

Empresas frequentemente preferem isso para responsabilização e controle de acesso. Defina flag M:

interface eth0 {
    AdvSendAdvert on;
    AdvManagedFlag on;  # M=1
    AdvOtherConfigFlag on;  # O=1
    prefix 2001:db8:1::/64 {
        AdvOnLink on;
        AdvAutonomous off;  # Não use SLAAC
    };
};

Nota: Alguns clientes ainda gerarão endereços link-local e podem criar endereços SLAAC apesar de AdvAutonomous off. Políticas de segurança de rede não devem confiar apenas em desabilitar SLAAC.


Quando Usar Cada Um#

Use SLAAC quando:

  • Redes pequenas a médias
  • Dispositivos são confiáveis
  • Rastreamento de endereços não é necessário
  • Simplicidade é priorizada
  • Todos os clientes suportam RDNSS

Use DHCPv6 quando:

  • Precisa de gerenciamento centralizado de endereços
  • Conformidade exige registro de endereços
  • Requer delegação de prefixo (ISP para roteador do cliente)
  • Precisa fornecer opções complexas além de DNS
  • Redes Windows (historicamente melhor suporte DHCPv6)

Abordagem híbrida (SLAAC + DHCPv6 Sem Estado):

  • Bom compromisso para muitas redes
  • Resiliente (SLAAC funciona se DHCPv6 falhar)
  • Fornece flexibilidade para opções adicionais

Solucionando Problemas de Atribuição de Endereço#

Dispositivo tem apenas link-local (fe80::/10) Nenhum Anúncio de Roteador recebido. Verifique:

# Linux: Capturar RAs
tcpdump -i eth0 'icmp6 && ip6[40] == 134'
 
# Verificar se roteador está enviando RAs
radvdump

Dispositivo tem endereço SLAAC mas sem DNS Roteador não está enviando RDNSS, ou cliente não o suporta. Verifique conteúdo do RA:

radvdump | grep RDNSS

Se estiver faltando, adicione RDNSS à configuração do roteador ou habilite DHCPv6 sem estado.

DHCPv6 não está funcionando Verifique se flag M ou O está definida nos RAs:

radvdump | grep -E "M flag|O flag"

Verifique se o servidor DHCPv6 está rodando e acessível na porta UDP 547:

# Lado do servidor
ss -ulnp | grep 547
 
# Lado do cliente
tcpdump -i eth0 port 547

Múltiplos endereços na interface Isso é normal. Você pode ver:

  • Endereço link-local (sempre presente)
  • Endereço estável SLAAC (EUI-64)
  • Endereços temporários SLAAC (extensões de privacidade)
  • Endereço DHCPv6 (se usando DHCPv6 com estado)

Todos são válidos; o SO seleciona o endereço de origem apropriado baseado na RFC 6724.


Artigos Relacionados#

A maioria das redes modernas funciona bem com SLAAC + RDNSS para simplicidade, ou SLAAC + DHCPv6 Sem Estado para compatibilidade mais ampla. Reserve DHCPv6 totalmente gerenciado para ambientes com requisitos específicos de conformidade ou registro. Qualquer que você escolha, documente sua decisão e configure de forma consistente em toda a sua rede.