Pelo menos um, mas cada vez mais, ambos os métodos são suportados por sistemas operacionais populares.
Observe que esses recursos são ortogonais. Você pode usar os dois ao mesmo tempo, se quiser.
Em alguns sistemas operacionais, o endereço MAC (EUI-48) simplesmente não é mais usado para identificadores de interface. Em vez disso, é utilizado um identificador aleatório ou baseado em hash, geralmente de acordo com a RFC 7217.
Por padrão, o Windows usa um esquema personalizado a partir do Windows Vista.
Para verificar se o recurso está ativo, execute um comando do PowerShell:
Get-NetIPv6Protocol | fl RandomizeIdentifiers
Para ativar / desativar o recurso:
Set-NetIPv6Protocol -RandomizeIdentifiers Enabled
Set-NetIPv6Protocol -RandomizeIdentifiers Disabled
O Linux (NetworkManager) suporta RFC 7217 a partir do NetworkManager v1.2.0, usando o UUID do perfil de conexão como parte da semente. Esse recurso está ativo por padrão nas versões recentes do NM.
Para ativar ou desativar esse recurso:
nmcli con modify "<profilename>" ipv6.addr-gen-mode stable-privacy
nmcli con modify "<profilename>" ipv6.addr-gen-mode eui64
O Linux (kernel SLAAC) suporta RFC 7217 a partir do kernel v4.1.0; no entanto, ele deve ser ativado manualmente, armazenando a semente secreta via sysctl.
A chave secreta é uma cadeia hexadecimal de 128 bits (com o formato de um endereço IPv6), que deve ser armazenada no net.ipv6.conf.default.stable_secret
sysctl. Para torná-lo persistente, ele pode ser colocado /etc/sysctl.d/50-rfc7217.conf
ou similar:
net.ipv6.conf.default.stable_secret = 84a0:d5aa:52b0:4d35:k567:3aa6:7af5:474c
Definir o segredo ativa automaticamente esse modo para todas as interfaces de rede. Para verificar se o recurso está ativo, procure por "addrgenmode stable_secret" em ip -d link
ou o valor "2" em sysctl net.ipv6.conf.<ifname>.addr_gen_mode
.
Conforme definido na RFC 4941, os endereços de privacidade temporários são gerados aleatoriamente e alternados a cada poucas horas.
O Windows suporta endereços temporários a partir do Windows XP SP2.
Para ativar / desativar esse recurso:
netsh interface ipv6 set privacy state=enabled
netsh interface ipv6 set privacy state=disabled
Observe que o Windows não usa mais endereços principais baseados em endereço MAC, começando no Windows Vista.
Linux (NetworkManager) : as versões recentes do NetworkManager gerenciam RA por conta própria, embora os dois valores abaixo tenham significados idênticos aos do sysctl (2 = preferem o endereço de privacidade, 1 = preferem o endereço principal):
nmcli con modify <name> ipv6.ip6-privacy 2
Além disso, a partir da versão 1.2.0, tornou-se disponível um modo melhor, que altera o endereço principal para não ser mais baseado em MAC, mas exclusivo para todas as redes (RFC 7217):
(Observe que o endereçamento de privacidade é ortogonal ao modo addr-gen; é possível usar os dois.)
Nota lateral: A partir do 1.4.0, o NM também permite aleatoriamente o próprio endereço MAC. Defina wifi.cloned-mac-address
para stable
ter um MAC diferente para cada rede (recomendado) ou random
para randomizá-lo para cada conexão (pode causar problemas).
Em todos os casos, <name>
deve ser o nome da conexão, por exemplo, WiFi SSID ou "Wired Connection 1"
. Use nmcli con
para listar tudo.
Para tornar isso o padrão para novas conexões, a partir da versão 1.2.0, você pode alterar /etc/NetworkManager/NetworkManager.conf
:
[connection]
ipv6.addr-gen-mode=stable-privacy
wifi.cloned-mac-address=stable
O Linux (kernel SLAAC) suporta endereços temporários, mas não os usa por padrão. Eles podem ser ativados através de sysctls.
Para habilitar endereços temporários e torná-los preferidos para conexões de saída:
sysctl net.ipv6.conf.all.use_tempaddr=2
sysctl net.ipv6.conf.default.use_tempaddr=2
Para habilitar a geração temporária de endereços, mas mantenha o endereço SLAAC estático como preferencial:
sysctl net.ipv6.conf.all.use_tempaddr=1
sysctl net.ipv6.conf.default.use_tempaddr=1
A peça all
ou default
pode ser substituída por um nome de interface específico; por exemplo net.ipv6.conf.eth0.use_tempaddr
.
(Eu costumava ip link set eth0 down && ip link set eth0 up
forçar uma atribuição de endereço, mas você também pode executar rdisc6 eth0
ou esperar alguns minutos pelo próximo anúncio periódico de roteador.)
Mac OS X - ativado por padrão desde o OS X 10.7 Lion:
sysctl -w net.inet6.ip6.use_tempaddr=1
Endereços temporários, se ativados, serão preferidos.
FreeBSD :
sysctl net.inet6.ip6.use_tempaddr=1
sysctl net.inet6.ip6.prefer_tempaddr=1
NetBSD :
sysctl -w net.inet6.ip6.use_tempaddr=1
Preferência de endereços temporários? Eu não faço ideia. O endereço de autoconf parece ser o preferido. ifconfig
não parece listar nenhuma propriedade de endereço.
OpenBSD - suporte adicionado no 5.2 ; ativado e preferido por padrão no 5.3 .
ifconfig em0 autoconfprivacy
ifconfig
mostra "autoconficiência" ao lado de endereços temporários.
Se o endereço de hardware for usado no endereço IPv6, geralmente significa que sua rede usa a Configuração automática sem estado IPv6. Nesse caso, você pode simplesmente escolher seu próprio sufixo de endereço e configurar o IPv6 manualmente.
No entanto, mesmo que o endereço adicionado manualmente não tenha suas informações de hardware, ele continuará estático (diferente do Endereço de Privacidade, que altera os endereços de vez em quando). Além disso, endereços estáticos podem ser um problema em uma rede maior que 2-3 dispositivos.