Almeno uno ma sempre più entrambi i metodi sono supportati dai sistemi operativi più diffusi.
Si noti che queste funzionalità sono ortogonali. Puoi usarli entrambi contemporaneamente, se lo desideri.
In alcuni sistemi operativi, l'indirizzo MAC (EUI-48) semplicemente non viene più utilizzato per gli identificatori di interfaccia. Invece viene utilizzato un identificatore casuale o basato su hash, generalmente secondo RFC 7217.
Windows utilizza uno schema personalizzato per impostazione predefinita a partire da Windows Vista.
Per verificare se la funzionalità è attiva, eseguire un comando PowerShell:
Get-NetIPv6Protocol | fl RandomizeIdentifiers
Per abilitare / disabilitare la funzione:
Set-NetIPv6Protocol -RandomizeIdentifiers Enabled
Set-NetIPv6Protocol -RandomizeIdentifiers Disabled
Linux (NetworkManager) supporta RFC 7217 a partire da NetworkManager v1.2.0, utilizzando l'UUID del profilo di connessione come parte del seed. Questa funzione è attiva per impostazione predefinita nelle recenti versioni NM.
Per abilitare o disabilitare questa funzione:
nmcli con modify "<profilename>" ipv6.addr-gen-mode stable-privacy
nmcli con modify "<profilename>" ipv6.addr-gen-mode eui64
Linux (kernel SLAAC) supporta RFC 7217 a partire dal kernel v4.1.0; tuttavia, deve essere attivato manualmente memorizzando il seme segreto tramite sysctl.
La chiave segreta è una stringa esadecimale a 128 bit (a forma di indirizzo IPv6), che deve essere memorizzata nel net.ipv6.conf.default.stable_secret
sysctl. Per renderlo persistente, potrebbe essere inserito /etc/sysctl.d/50-rfc7217.conf
o simile:
net.ipv6.conf.default.stable_secret = 84a0:d5aa:52b0:4d35:k567:3aa6:7af5:474c
L'impostazione del segreto attiva automaticamente questa modalità per tutte le interfacce di rete. Per verificare se la funzione è attiva, cerca "addrgenmode stable_secret" in ip -d link
o il valore "2" in sysctl net.ipv6.conf.<ifname>.addr_gen_mode
.
Come definito in RFC 4941, gli indirizzi di privacy temporanei vengono generati casualmente e ruotati ogni poche ore.
Windows supporta indirizzi temporanei a partire da Windows XP SP2.
Per abilitare / disabilitare questa funzione:
netsh interface ipv6 set privacy state=enabled
netsh interface ipv6 set privacy state=disabled
Nota che Windows non utilizza più indirizzi primari basati su indirizzi MAC a partire da Windows Vista.
Linux (NetworkManager) : le versioni recenti di NetworkManager gestiscono RA da sole, sebbene i due valori seguenti abbiano significati identici a sysctl (2 = preferisce l'indirizzo di privacy, 1 = preferiscono l'indirizzo principale):
nmcli con modify <name> ipv6.ip6-privacy 2
Inoltre, a partire da 1.2.0 è diventata disponibile una modalità migliore, che cambia l' indirizzo principale in non più basato su MAC ma piuttosto univoco per ogni rete (RFC 7217):
(Si noti che l'indirizzamento della privacy è ortogonale alla modalità addr-gen; è possibile utilizzare entrambi.)
Nota a margine: dalla 1.4.0, NM consente anche di randomizzare l'indirizzo MAC stesso. Impostare wifi.cloned-mac-address
per stable
avere un MAC diverso per ogni rete (consigliato) o random
per randomizzarlo per ogni connessione (potrebbe causare problemi).
In tutti i casi, <name>
deve essere il nome della connessione, ad esempio WiFi SSID o "Wired Connection 1"
. Utilizzare nmcli con
per elencare tutto.
Per renderlo predefinito per le nuove connessioni, a partire dalla 1.2.0 è possibile modificare /etc/NetworkManager/NetworkManager.conf
:
[connection]
ipv6.addr-gen-mode=stable-privacy
wifi.cloned-mac-address=stable
Linux (kernel SLAAC) supporta indirizzi temporanei, ma non li utilizza per impostazione predefinita. Possono essere attivati tramite sysctls.
Per abilitare gli indirizzi temporanei e renderli preferiti per le connessioni in uscita:
sysctl net.ipv6.conf.all.use_tempaddr=2
sysctl net.ipv6.conf.default.use_tempaddr=2
Per abilitare la generazione di indirizzi temporanei, ma mantenere l'indirizzo SLAAC statico come preferito:
sysctl net.ipv6.conf.all.use_tempaddr=1
sysctl net.ipv6.conf.default.use_tempaddr=1
La parte all
o default
può essere sostituita con un nome di interfaccia specifico; es net.ipv6.conf.eth0.use_tempaddr
.
(Prima ip link set eth0 down && ip link set eth0 up
imponevo un indirizzo, ma puoi anche eseguire rdisc6 eth0
o semplicemente attendere qualche minuto per la prossima pubblicità periodica sul router.)
Mac OS X : abilitato per impostazione predefinita da OS X 10.7 Lion:
sysctl -w net.inet6.ip6.use_tempaddr=1
Gli indirizzi temporanei, se abilitati, saranno preferiti.
FreeBSD :
sysctl net.inet6.ip6.use_tempaddr=1
sysctl net.inet6.ip6.prefer_tempaddr=1
NetBSD :
sysctl -w net.inet6.ip6.use_tempaddr=1
Preferenza indirizzi temporanei? Non ne ho idea. L'indirizzo autoconf sembra essere preferito. ifconfig
non sembra elencare alcuna proprietà dell'indirizzo.
OpenBSD - supporto aggiunto in 5.2 ; abilitato e preferito di default in 5.3 .
ifconfig em0 autoconfprivacy
ifconfig
mostra "autoconfprivacy" accanto agli indirizzi temporanei.
Se l'indirizzo hardware viene utilizzato nell'indirizzo IPv6, di solito significa che la rete utilizza la configurazione automatica senza stato IPv6. In tal caso, puoi semplicemente selezionare il suffisso del tuo indirizzo e configurare manualmente IPv6.
Tuttavia, anche se l'indirizzo aggiunto manualmente non avrà le informazioni sull'hardware, sarà comunque statico (diversamente dall'indirizzamento sulla privacy, che cambia gli indirizzi ogni tanto). Inoltre, gli indirizzi statici possono essere una seccatura in una rete più grande di 2-3 dispositivi.