此IPv6链接本地地址(由Windows报告)是否正确? 如果是这样,为什么?

从我在线阅读的内容中 ,通过获取networking接口的MAC地址,在其中间插入一个FF:FE字,或者在一些附加比特中插入一个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 . . . . . . . . . : 

在这里看起来networking接口的MAC地址(即0b:41:3e:4c:fd:9e)只有字节“eb”OR进入其前面,而不是将ff:fe插入到正如我所预料的那样。

任何人都可以解释为什么这是? 即Windows是否在这里做了与IPv6链路本地地址规范相反的内容,还是仅仅使用了我不了解的其他一些可接受的MAC-> IPv6约定? 或者,也许供应商只要从MAC地址生成fe80地址就可以做任何他们想做的事情?

不是从MAC地址生成链路本地地址; 它从来不是一个要求。 您可以在许多设备上手动分配链路本地地址。

你在Windows上看到的是使用隐私扩展和随机寻址。 引入了隐私扩展和随机地址生成,而不是分配SLAAC接口ID的原始方式。 这是Windows的默认设置,但可以禁用。

请参阅RFC 4862,IPv6无状态地址自动configuration和RFC 4941 ,IPv6中无状态地址自动configuration的 隐私扩展 。