Popularne systemy operacyjne obsługują co najmniej jedną, ale coraz częściej obie metody.
Pamiętaj, że te funkcje są ortogonalne. Możesz użyć obu jednocześnie, jeśli chcesz.
W niektórych systemach operacyjnych adres MAC (EUI-48) po prostu nie jest już używany do identyfikacji interfejsów. Zamiast tego stosuje się losowy lub oparty na skrócie identyfikator, ogólnie zgodnie z RFC 7217.
System Windows domyślnie korzysta ze schematu niestandardowego, zaczynając od systemu Windows Vista.
Aby sprawdzić, czy funkcja jest aktywna, uruchom polecenie PowerShell:
Get-NetIPv6Protocol | fl RandomizeIdentifiers
Aby włączyć / wyłączyć tę funkcję:
Set-NetIPv6Protocol -RandomizeIdentifiers Enabled
Set-NetIPv6Protocol -RandomizeIdentifiers Disabled
Linux (NetworkManager) obsługuje RFC 7217 od NetworkManager v1.2.0, wykorzystując UUID profilu połączenia jako część materiału źródłowego. Ta funkcja jest domyślnie aktywna w najnowszych wersjach NM.
Aby włączyć lub wyłączyć tę funkcję:
nmcli con modify "<profilename>" ipv6.addr-gen-mode stable-privacy
nmcli con modify "<profilename>" ipv6.addr-gen-mode eui64
Linux (jądro SLAAC) obsługuje RFC 7217 od jądra v4.1.0; należy go jednak ręcznie aktywować, przechowując tajne nasiona za pomocą sysctl.
Tajny klucz to 128-bitowy ciąg szesnastkowy (w kształcie adresu IPv6), który musi być przechowywany w net.ipv6.conf.default.stable_secret
sysctl. Aby był trwały, można go umieścić w /etc/sysctl.d/50-rfc7217.conf
podobny sposób:
net.ipv6.conf.default.stable_secret = 84a0:d5aa:52b0:4d35:k567:3aa6:7af5:474c
Ustawienie hasła automatycznie aktywuje ten tryb dla wszystkich interfejsów sieciowych. Aby sprawdzić, czy funkcja jest aktywna, poszukaj „addrgenmode stable_secret” w ip -d link
lub wartości „2” w sysctl net.ipv6.conf.<ifname>.addr_gen_mode
.
Jak zdefiniowano w RFC 4941, tymczasowe adresy prywatności są generowane losowo i zmieniane co kilka godzin.
System Windows obsługuje adresy tymczasowe od wersji Windows XP SP2.
Aby włączyć / wyłączyć tę funkcję:
netsh interface ipv6 set privacy state=enabled
netsh interface ipv6 set privacy state=disabled
Należy pamiętać, że system Windows nie używa już adresów podstawowych opartych na adresach MAC, począwszy od systemu Windows Vista.
Linux (NetworkManager) : Najnowsze wersje NetworkManager obsługują RA samodzielnie, chociaż dwie poniższe wartości mają identyczne znaczenie jak sysctl (2 = preferuj adres prywatności, 1 = preferuj adres główny):
nmcli con modify <name> ipv6.ip6-privacy 2
Ponadto od wersji 1.2.0 udostępniono lepszy tryb, który zmienia adres główny na nie oparty na MAC, ale unikalny dla każdej sieci (RFC 7217):
(Pamiętaj, że adresowanie prywatności jest ortogonalne w trybie addr-gen; możliwe jest użycie obu).
Uwaga dodatkowa: Począwszy od wersji 1.4.0, NM również pozwala na losowe przydzielanie samego adresu MAC. Ustaw, wifi.cloned-mac-address
aby stable
mieć inny MAC dla każdej sieci (zalecane) lub random
losowo dla każdego połączenia (może powodować problemy).
We wszystkich przypadkach <name>
musi być nazwą połączenia, np. SSID Wi-Fi lub "Wired Connection 1"
. Użyj, nmcli con
aby wyświetlić listę wszystkich.
Aby ustawić tę opcję jako domyślną dla nowych połączeń, od wersji 1.2.0 możesz zmienić /etc/NetworkManager/NetworkManager.conf
:
[connection]
ipv6.addr-gen-mode=stable-privacy
wifi.cloned-mac-address=stable
Linux (jądro SLAAC) obsługuje adresy tymczasowe, ale domyślnie ich nie używa. Można je aktywować za pomocą sysctls.
Aby włączyć adresy tymczasowe i ustawić je jako preferowane dla połączeń wychodzących:
sysctl net.ipv6.conf.all.use_tempaddr=2
sysctl net.ipv6.conf.default.use_tempaddr=2
Aby włączyć tymczasowe generowanie adresu, ale zachowaj statyczny adres SLAAC zgodnie z preferencjami:
sysctl net.ipv6.conf.all.use_tempaddr=1
sysctl net.ipv6.conf.default.use_tempaddr=1
Część all
lub default
można zastąpić określoną nazwą interfejsu; np net.ipv6.conf.eth0.use_tempaddr
.
(Kiedyś ip link set eth0 down && ip link set eth0 up
wymuszałem przypisanie adresu, ale możesz także uruchomić rdisc6 eth0
lub poczekać kilka minut na następną okresową reklamę routera).
Mac OS X - domyślnie włączony od OS X 10.7 Lion:
sysctl -w net.inet6.ip6.use_tempaddr=1
Preferowane będą adresy tymczasowe, jeśli są włączone.
FreeBSD :
sysctl net.inet6.ip6.use_tempaddr=1
sysctl net.inet6.ip6.prefer_tempaddr=1
NetBSD :
sysctl -w net.inet6.ip6.use_tempaddr=1
Preferencje adresów tymczasowych? Nie mam pojęcia. Adres automatycznego uwierzytelnienia wydaje się być preferowany. ifconfig
nie wyświetla żadnych właściwości adresu.
OpenBSD - obsługa dodana w 5.2 ; włączony i preferowany domyślnie w 5.3 .
ifconfig em0 autoconfprivacy
ifconfig
pokazuje „autoconfprivacy” obok adresów tymczasowych.
Jeśli adres sprzętowy jest używany w adresie IPv6, zwykle oznacza to, że twoja sieć używa bezstanowej autokonfiguracji IPv6. W takim przypadku możesz po prostu wybrać własny sufiks adresu i ręcznie skonfigurować IPv6.
Jednak nawet jeśli ręcznie dodany adres nie będzie zawierał informacji o twoim sprzęcie, nadal będzie statyczny (w przeciwieństwie do Adresowania Prywatności, które zmienia adresy co jakiś czas). Ponadto adresy statyczne mogą stanowić problem w sieci większej niż 2-3 urządzenia.