Ít nhất một nhưng ngày càng cả hai phương pháp được hỗ trợ bởi các hệ điều hành phổ biến.
Lưu ý rằng các tính năng này là trực giao. Bạn có thể sử dụng cả hai cùng một lúc, nếu bạn muốn.
Trong một số hệ điều hành, địa chỉ MAC (EUI-48) đơn giản là không còn được sử dụng cho các định danh giao diện. Thay vào đó, một định danh ngẫu nhiên hoặc dựa trên hàm băm được sử dụng, thường là theo RFC 7217.
Windows sử dụng một lược đồ tùy chỉnh theo mặc định bắt đầu với Windows Vista.
Để kiểm tra xem tính năng này có hoạt động hay không, hãy chạy lệnh PowerShell:
Get-NetIPv6Protocol | fl RandomizeIdentifiers
Để bật / tắt tính năng:
Set-NetIPv6Protocol -RandomizeIdentifiers Enabled
Set-NetIPv6Protocol -RandomizeIdentifiers Disabled
Linux (NetworkManager) hỗ trợ RFC 7217 kể từ NetworkManager v1.2.0, sử dụng UUID của cấu hình kết nối làm một phần của hạt giống. Tính năng này được kích hoạt theo mặc định trong các phiên bản NM gần đây.
Để bật hoặc tắt tính năng này:
nmcli con modify "<profilename>" ipv6.addr-gen-mode stable-privacy
nmcli con modify "<profilename>" ipv6.addr-gen-mode eui64
Linux (kernel SLAAC) hỗ trợ RFC 7217 kể từ kernel v4.1.0; tuy nhiên, nó phải được kích hoạt thủ công bằng cách lưu trữ hạt giống bí mật thông qua sysctl.
Khóa bí mật là một chuỗi thập lục phân 128 bit (có hình dạng như một địa chỉ IPv6), phải được lưu trữ trong net.ipv6.conf.default.stable_secret
sysctl. Để làm cho nó bền bỉ, nó có thể được đưa vào /etc/sysctl.d/50-rfc7217.conf
hoặc tương tự:
net.ipv6.conf.default.stable_secret = 84a0:d5aa:52b0:4d35:k567:3aa6:7af5:474c
Đặt bí mật sẽ tự động kích hoạt chế độ này cho tất cả các giao diện mạng. Để kiểm tra xem tính năng này có hoạt động hay không, hãy tìm "addrgenmode ổn_secret" ip -d link
hoặc giá trị "2" trong sysctl net.ipv6.conf.<ifname>.addr_gen_mode
.
Như được định nghĩa trong RFC 4941, địa chỉ bảo mật tạm thời được tạo ngẫu nhiên và được luân chuyển cứ sau vài giờ.
Windows hỗ trợ các địa chỉ tạm thời kể từ Windows XP SP2.
Để bật / tắt tính năng này:
netsh interface ipv6 set privacy state=enabled
netsh interface ipv6 set privacy state=disabled
Lưu ý rằng Windows không còn sử dụng các địa chỉ chính dựa trên địa chỉ MAC bắt đầu bằng Windows Vista.
Linux (NetworkManager) : Các phiên bản gần đây của NetworkManager tự xử lý RA, mặc dù hai giá trị bên dưới có ý nghĩa giống hệt với sysctl (2 = thích địa chỉ riêng tư, 1 = thích địa chỉ chính):
nmcli con modify <name> ipv6.ip6-privacy 2
Ngoài ra, kể từ 1.2.0, chế độ tốt hơn đã có sẵn, thay đổi địa chỉ chính thành không còn dựa trên MAC mà thay vào đó là duy nhất cho mọi mạng (RFC 7217):
(Lưu ý rằng địa chỉ quyền riêng tư là trực giao với chế độ addr-gen; có thể sử dụng cả hai.)
Lưu ý bên lề: Kể từ 1.4.0, NM cũng cho phép chọn ngẫu nhiên địa chỉ MAC. Đặt wifi.cloned-mac-address
thành stable
MAC khác nhau cho mỗi mạng (được khuyến nghị) hoặc random
chọn ngẫu nhiên cho mọi kết nối (có thể gây ra sự cố).
Trong mọi trường hợp, <name>
phải là tên kết nối, ví dụ WiFi SSID hoặc "Wired Connection 1"
. Sử dụng nmcli con
để liệt kê tất cả.
Để đặt mặc định này cho các kết nối mới , kể từ 1.2.0, bạn có thể thay đổi /etc/NetworkManager/NetworkManager.conf
:
[connection]
ipv6.addr-gen-mode=stable-privacy
wifi.cloned-mac-address=stable
Linux (kernel SLAAC) hỗ trợ các địa chỉ tạm thời, nhưng không sử dụng chúng theo mặc định. Chúng có thể được kích hoạt thông qua sysctls.
Để bật địa chỉ tạm thời và làm cho chúng được ưu tiên cho các kết nối đi:
sysctl net.ipv6.conf.all.use_tempaddr=2
sysctl net.ipv6.conf.default.use_tempaddr=2
Để cho phép tạo địa chỉ tạm thời, nhưng giữ địa chỉ SLAAC tĩnh như ưu tiên:
sysctl net.ipv6.conf.all.use_tempaddr=1
sysctl net.ipv6.conf.default.use_tempaddr=1
Phần all
hoặc default
phần có thể được thay thế bằng một tên giao diện cụ thể; ví dụ net.ipv6.conf.eth0.use_tempaddr
.
(Tôi đã từng ip link set eth0 down && ip link set eth0 up
buộc gán địa chỉ, nhưng bạn cũng có thể chạy rdisc6 eth0
hoặc chỉ chờ vài phút cho Quảng cáo Bộ định tuyến định kỳ tiếp theo.)
Mac OS X - được bật theo mặc định kể từ OS X 10.7 Lion:
sysctl -w net.inet6.ip6.use_tempaddr=1
Địa chỉ tạm thời, nếu được bật, sẽ được ưu tiên.
FreeBSD :
sysctl net.inet6.ip6.use_tempaddr=1
sysctl net.inet6.ip6.prefer_tempaddr=1
NetBSD :
sysctl -w net.inet6.ip6.use_tempaddr=1
Địa chỉ tạm thời ưu tiên? Tôi không có ý kiến. Địa chỉ autoconf dường như được ưa thích. ifconfig
không xuất hiện để liệt kê bất kỳ thuộc tính địa chỉ.
OpenBSD - hỗ trợ được thêm vào 5.2 ; được bật và ưa thích theo mặc định trong 5.3 .
ifconfig em0 autoconfprivacy
ifconfig
hiển thị "autoconfprivacy" bên cạnh các địa chỉ tạm thời.
Nếu địa chỉ phần cứng được sử dụng trong địa chỉ IPv6, điều đó thường có nghĩa là mạng của bạn sử dụng Tự động cấu hình không trạng thái IPv6. Trong trường hợp như vậy, bạn chỉ cần chọn hậu tố địa chỉ của riêng mình và định cấu hình IPv6 theo cách thủ công.
Tuy nhiên, mặc dù địa chỉ được thêm thủ công sẽ không có thông tin phần cứng của bạn, nó vẫn sẽ ở trạng thái tĩnh (không giống như Địa chỉ bảo mật, thường xuyên thay đổi địa chỉ). Ngoài ra, địa chỉ tĩnh có thể là một nỗi đau trong một mạng lớn hơn 2-3 thiết bị.