Windows
這個 IPv6-link-local 地址(由 Windows 報告)是否正確?如果是這樣,為什麼?
從我線上閱讀的內容來看,通過獲取網路介面的 MAC 地址,在其中插入一個 FF:FE 字,或者在一些額外的位中進行 OR’ing 來生成 IPv6 連結本地地址,等等:例如 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 )看起來只有字節“eb”OR’d 到它的前面,而不是插入 ff:fe 到正如我所期望的那樣。
誰能解釋這是為什麼?即,Windows 是否在做一些與此處的 IPv6 連結本地地址規範相反的事情,或者它只是使用了一些我不知道的其他可接受的 MAC-> IPv6 約定?或者,當從 MAC 地址生成 fe80 地址時,供應商可能只是被允許做任何他們想做的事情?
並不是說需要從 MAC 地址生成鏈路本地地址;它從來都不是一個要求。您可以在許多設備上手動分配鏈路本地地址。
您在 Windows 中看到的是隱私擴展和隨機定址的使用。與分配 SLAAC 介面 ID 的原始方式不同,引入了隱私擴展和隨機地址生成。這是 Windows 的預設設置,但可以禁用。