I read online から、IPv6リンクローカルアドレスは、ネットワークインターフェイスのMACアドレスを取得し、その中央にFF:FEワードを挿入するか、追加のビットをORすることで生成されます。出来上がり:例MACアドレス00:3E:E1:c6:20:c2はIPv6リンクローカルアドレスfe80 :: 23e:e1ff:fec6:20c2%en0に対応し、MACアドレスを知っているプログラムはIPv6アドレスを計算できます。その逆。
これは私のMacintoshでは問題なく動作しているようですが、同僚のWindowsマシンでは(ipconfigの出力から)次のように表示されます。
Connection-specific DNS Suffix . :
Link-local IPv6 Address . . . . . : fe80::eb:b41:3e4c:fd9e%11
IPv4 Address. . . . . . . . . . . : 192.168.0.3
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . :
ここでは、ネットワークインターフェイスのMACアドレス(0b:41:3e:4c:fd:9e)の前に、ff:feを挿入するのではなく、バイト「eb」のみがORされているように見えます。思った通りの真ん中。
誰かがそれがなぜであるか説明できますか?つまり、WindowsはここでのIPv6リンクローカルアドレスの指定に反することをしているのでしょうか、それとも私が知らない他の受け入れ可能なMAC-> IPv6規則を使用しているだけですか?あるいは、ベンダーがMACアドレスからfe80アドレスを生成するときに、何でもできるようになっているだけでしょうか?
リンクローカルアドレスをMACアドレスから生成する必要があるわけではありません。それは決して必要条件ではありませんでした。多くのデバイスでリンクローカルアドレスを手動で割り当てることができます。
Windowsで見られるのは、プライバシー拡張機能とランダムアドレス指定の使用です。 SLAACインターフェイスIDを割り当てる元の方法の代わりに、プライバシー拡張とランダムアドレス生成が導入されました。これはWindowsのデフォルトですが、無効にすることもできます。
RFC 4862、IPv6ステートレスアドレス自動構成 および RFC 4941、IPv6でのステートレスアドレス自動構成のプライバシー拡張 を参照してください。