Aprendi como configurar automaticamente o endereço IPv6 de um dispositivo. É baseado em alguns bits de sinalização no pacote ICMPv6 RA (anúncio de roteador).
Ao usar SLAAC (stateless), o dispositivo irá gerar os últimos 64 bits com base em alguns algoritmos (não necessariamente EUI-64), podendo esses bits serem concatenados ao prefixo (também 64 bits) para formar um endereço IPv6 unicast global.
Ao usar DHCPv6 (stateful), o dispositivo solicitará o servidor DHCPv6 e o servidor DHCPv6 alocará um endereço IPv6 para este dispositivo.
Eu sei que quando todos os bits "A" (autônomo), "M" (gerenciado), "O" (outros) no pacote RA são definidos como 1, o dispositivo configurará seu próprio endereço sem estado e ao mesmo tempo tempo obter um endereço alocado do servidor DHCPv6.
Quando executo no Linux, ip addr
no macOS, no Windows, posso ver que meu dispositivo possui 2 endereços IPv6 unicast globais com os mesmos prefixos. Um deles é um endereço temporário . Eu sei que isso é por questões de privacidade.ifconfig
ifconfig
ipconfig
Gostaria de saber se esses 2 endereços IPv6 do meu dispositivo estão relacionados às 2 formas de configuração automática de endereços? Por exemplo, o endereço temporário é configurado usando SLAAC e o endereço não temporário é configurado por DHCPv6.
Eu mesmo encontrei a resposta. Como @vidarlo disse no comentário da pergunta, os 2 endereços IPv6 do meu dispositivo NÃO ESTÃO relacionados às 2 formas de configuração automática de endereços.
Verifiquei as configurações do meu roteador. Estou usando um roteador OpenWRT e o arquivo de configuração pode ser encontrado em
/etc/config/dhcp
(observe que embora o nome do arquivo seja "dhcp", na verdade ele também contém a configuração do SLAAC). O que descobri é que meu roteador define o bit do sinalizador "A", não define o bit do sinalizador "M" e define o bit do sinalizador "O". Isso significa que o método de configuração automática é "DHCP sem estado". Cada dispositivo obtém o prefixo de 64 bits no pacote RA e gera seu próprio sufixo de 64 bits (ID de interface) com base em alguns algoritmos (talvez EUI-64 ou RFC7217), portanto, o bit "A". Cada dispositivo também obtém o servidor DNS no pacote RA, portanto, o bit “O”.Então, por que existem 2 endereços? Isso se deve ao RFC 4941. Você pode consultar esta questão em outro subsite de troca de pilha.