一部のオペレーティングシステムでは、インターフェイス識別子にMAC(EUI-48)アドレスが使用されなくなっています。代わりに、一般的にRFC 7217に従って、ランダムまたはハッシュベースの識別子が使用されます。
Windowsでは、Windows Vistaからデフォルトでカスタムスキームが使用されます。
機能がアクティブかどうかを確認するには、PowerShellコマンドを実行します。
Get-NetIPv6Protocol | fl RandomizeIdentifiers
機能を有効/無効にするには:
Set-NetIPv6Protocol -RandomizeIdentifiers Enabled
Set-NetIPv6Protocol -RandomizeIdentifiers Disabled
Linux(NetworkManager)は、シードの一部として接続プロファイルのUUIDを使用して、NetworkManager v1.2.0の時点でRFC 7217をサポートします。この機能は、最近のNMバージョンではデフォルトでアクティブになっています。
この機能を有効または無効にするには:
nmcli con modify "<profilename>" ipv6.addr-gen-mode stable-privacy
nmcli con modify "<profilename>" ipv6.addr-gen-mode eui64
Linux(カーネルSLAAC)は、カーネルv4.1.0の時点でRFC 7217をサポートしています。ただし、sysctlを使用してシークレットシードを保存することにより、手動でアクティブにする必要があります。
秘密鍵は128ビットの16進数文字列(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
。
Windowsは、Windows XP SP2以降の一時アドレスをサポートしています。
この機能を有効/無効にするには:
netsh interface ipv6 set privacy state=enabled
netsh interface ipv6 set privacy state=disabled
Windowsは、Windows Vista以降、MACアドレスベースのプライマリアドレスを使用しなくなっていることに注意してください。
Linux(NetworkManager):NetworkManagerの最近のバージョンはRAを単独で処理しますが、以下の2つの値はsysctlと同じ意味を持ちます(2 =プライバシーアドレスを優先、1 =メインアドレスを優先):
nmcli con modify <name> ipv6.ip6-privacy 2
また、1.2.0から、より良いモードが使用可能になりました。これにより、メインアドレスがMACベースではなく、すべてのネットワークに固有に変更されます(RFC 7217)。
(プライバシーのアドレス指定はaddr-gen-modeに直交していることに注意してください。両方を使用することができます。)
補足:1.4.0の時点で、NMはMACアドレス自体のランダム化も許可しています。ネットワークごとに異なるMACを持つように設定wifi.cloned-mac-address
するstable
(推奨)か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)は一時アドレスをサポートしますが、デフォルトでは一時アドレスを使用しません。sysctlを使用してアクティブ化できます。
一時アドレスを有効にして、発信接続に優先させるには:
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
一時アドレスの横に「autoconfprivacy」と表示されます。
ハードウェアアドレスがIPv6アドレスで使用されている場合、通常、ネットワークがIPv6ステートレス自動構成を使用していることを意味します。このような場合、独自のアドレスサフィックスを選択し、IPv6を手動で構成できます。
ただし、手動で追加されたアドレスにはハードウェア情報はありませんが、それでも静的なままです(アドレスを頻繁に変更するプライバシーアドレス指定とは異なります)。また、2〜3台のデバイスよりも大きいネットワークでは、静的アドレスが問題になる可能性があります。