rfc2461声明“节点发送邻居请求目标的链路层地址”,因此发送节点从目标节点IPv6地址派生请求节点多播地址。
我不明白的是:如果节点知道IPv6地址,它同时知道链路层地址(因为各个节点的链路层地址包含在IPv6地址的接口标识符中)。
节点A希望向节点B发送消息。只有节点B的IPv6地址是已知的,链路层地址是未知的。
本例中IPv6地址的接口标识符部分为5120:12FF: The 51:7210。
由于第四八进制是FF,而第五个八进制是FE,所以发送节点可以假设这必须是IEEE 802.3 MAC地址。
它使用接口标识符的前24位和最后24位,并反转第七位,从而获得IEEE 802.3链路层MAC地址: 5320:1251:7210。
对我来说,似乎没有理由发送邻居请求消息来学习链路层地址,因为链路层地址可以从IPv6地址派生出来。我遗漏了什么?
发布于 2014-08-12 09:59:49
由于隐私原因,避免在IPv6地址中使用MAC地址。如果ipv6地址使用EUI-64/MAc地址,这可以帮助服务器跟踪用户,即使他更改了ISP。因此,像windows 7这样的较新操作系统具有启用随机地址作为标识符的功能&默认情况下启用它。
https://stackoverflow.com/questions/25203867
复制相似问题