Принаймні один, але все частіше обидва способи підтримуються популярними операційними системами.
Зауважте, що ці риси є ортогональними. Ви можете використовувати обидва одночасно, якщо хочете.
У деяких операційних системах адреса MAC (EUI-48) просто більше не використовується для ідентифікаторів інтерфейсу. Замість цього використовується випадковий або хеш-ідентифікатор, як правило, відповідно до RFC 7217.
Windows використовує власну схему за замовчуванням, починаючи з Windows Vista.
Щоб перевірити, чи функція активна, запустіть команду PowerShell:
Get-NetIPv6Protocol | fl RandomizeIdentifiers
Щоб увімкнути / вимкнути функцію:
Set-NetIPv6Protocol -RandomizeIdentifiers Enabled
Set-NetIPv6Protocol -RandomizeIdentifiers Disabled
Linux (NetworkManager) підтримує RFC 7217 як NetworkManager v1.2.0, використовуючи UUID профілю з'єднання як частину насіння. Ця функція за замовчуванням активна в останніх версіях NM.
Щоб увімкнути або вимкнути цю функцію:
nmcli con modify "<profilename>" ipv6.addr-gen-mode stable-privacy
nmcli con modify "<profilename>" ipv6.addr-gen-mode eui64
Linux (ядро SLAAC) підтримує RFC 7217 станом на ядро v4.1.0; однак його потрібно активувати вручну, зберігаючи таємне насіння через sysctl.
Секретний ключ - це 128-розрядна шістнадцятковий рядок (має форму IPv6-адреси), яка повинна зберігатися в net.ipv6.conf.default.stable_secret
sysctl. Щоб зробити його стійким, його можна поставити /etc/sysctl.d/50-rfc7217.conf
або подібне:
net.ipv6.conf.default.stable_secret = 84a0:d5aa:52b0:4d35:k567:3aa6:7af5:474c
Встановлення секрету автоматично активує цей режим для всіх мережевих інтерфейсів. Щоб перевірити, чи функція активна, знайдіть "addrgenmode stable_secret" в ip -d link
або значення "2" в sysctl net.ipv6.conf.<ifname>.addr_gen_mode
.
Як визначено в RFC 4941, тимчасові адреси конфіденційності генеруються випадковим чином і обертаються кожні кілька годин.
Windows підтримує тимчасові адреси як для Windows XP SP2.
Щоб увімкнути / вимкнути цю функцію:
netsh interface ipv6 set privacy state=enabled
netsh interface ipv6 set privacy state=disabled
Зауважте, що Windows більше не використовує основні адреси на основі MAC-адреси, починаючи з Windows Vista.
Linux (NetworkManager) : останні версії NetworkManager самостійно обробляють RA, хоча два значення нижче мають однакове значення, ніж sysctl (2 = віддають перевагу адресу конфіденційності, 1 = віддають перевагу головній адресі):
nmcli con modify <name> ipv6.ip6-privacy 2
Також з 1.2.0 став доступний кращий режим, який змінює основну адресу більше не на базі MAC, а на унікальну для кожної мережі (RFC 7217):
(Зверніть увагу, що адреса конфіденційності є ортогональною для режиму addr-gen; можливо використовувати обоє.)
Бічна примітка: Станом на 1.4.0, NM дозволяє також рандомізувати саму MAC-адресу. Установіть, wifi.cloned-mac-address
щоб stable
мати різний MAC для кожної мережі (рекомендується) або random
рандомізувати його для кожного з'єднання (це може спричинити проблеми).
У всіх випадках <name>
повинно бути ім'я з'єднання, наприклад, WiFi SSID або "Wired Connection 1"
. Використовуйте nmcli con
для переліку всіх.
Щоб зробити це за замовчуванням для нових з'єднань, з 1.2.0 ви можете змінити /etc/NetworkManager/NetworkManager.conf
:
[connection]
ipv6.addr-gen-mode=stable-privacy
wifi.cloned-mac-address=stable
Linux (ядро SLAAC) підтримує тимчасові адреси, але не використовує їх за замовчуванням. Їх можна активувати за допомогою sysctls.
Щоб увімкнути тимчасові адреси та зробити їх кращими для вихідних з'єднань:
sysctl net.ipv6.conf.all.use_tempaddr=2
sysctl net.ipv6.conf.default.use_tempaddr=2
Щоб увімкнути генерування тимчасової адреси, але збережіть статичну адресу SLAAC, як бажано:
sysctl net.ipv6.conf.all.use_tempaddr=1
sysctl net.ipv6.conf.default.use_tempaddr=1
Частина all
або default
частина може бути замінена на конкретну назву інтерфейсу; напр net.ipv6.conf.eth0.use_tempaddr
.
(Раніше я ip link set eth0 down && ip link set eth0 up
примушував призначити адресу, але ви також можете запустити rdisc6 eth0
або просто почекати кілька хвилин на наступну періодичну рекламу маршрутизатора.)
Mac OS X - увімкнено за замовчуванням з OS X 10.7 Lion:
sysctl -w net.inet6.ip6.use_tempaddr=1
Тимчасові адреси, якщо вони включені, будуть надані перевагу.
FreeBSD :
sysctl net.inet6.ip6.use_tempaddr=1
sysctl net.inet6.ip6.prefer_tempaddr=1
NetBSD :
sysctl -w net.inet6.ip6.use_tempaddr=1
Налаштування тимчасових адрес? Я поняття не маю. Здається, адреса autoconf видається кращою. ifconfig
не відображається в списку жодних властивостей адреси.
OpenBSD - підтримка додана в 5.2 ; увімкнено та бажано за замовчуванням у 5.3 .
ifconfig em0 autoconfprivacy
ifconfig
поруч із тимчасовими адресами відображається "автоконфіденційність".
Якщо апаратна адреса використовується в IPv6-адресі, це зазвичай означає, що ваша мережа використовує автоматичну конфігурацію без стану IPv6. У такому випадку ви можете просто вибрати власний суфікс адреси та налаштувати IPv6 вручну.
Однак, хоча додана вручну адреса не матиме вашої апаратної інформації, вона все одно буде статичною (на відміну від конфіденційності, яка змінює адреси так часто). Також статичні адреси можуть бути болем у мережі, що перевищує 2-3 пристрої.