今天继续介绍IPv6,本文主要介绍IPv6中各地址的计算方式,主要包括——如何由MAC地址计算IPv6 LLA地址,如何计算被请求节点组播地址,如何计算组播MAC地址。

一、由MAC地址生成IPv6地址

在IPv6协议中,可以手工配置LLA地址,也可以根据EUI-64,利用本地网卡的MAC地址计算IPv6的LLA地址。所谓EUI,即Extend Unique ID,因为网卡MAC地址的唯一性,因此这样计算处的LLA地址也是唯一的。(注:在这里有的同学可能会问,如果链路的PPP链路,没有MAC地址怎么办,在华为设备例,会借用被设备的其他MAC地址来计算)
LLA地址计算方式很很简单,
总得来说,要计算本地链路地址,前64位是固定的,固定为FE80::。对于后64位,首先MAC地址为48位,在MAC地址中间插入FFFE,这样就计算出一个64位的地址,然后再把该64位地址的第七位取反,这样就得到了后面的64位地址,把前面的64位地址和后面的64位地址整合到一起,就成为一个IPv6地址了。
IPv6LLA地址计算如下所示:注意:
在局域网中,特别是微软系列PC机的IPv6地址是采取其特有的算法计算的,为的是防止从IPv6地址推算MAC地址,上述介绍的算法适用于三层路由设备MAC地址的计算。

二、被请求节点组播地址计算

当一个节点具有了单播或者任播地址,就会对应生成一个被请求节点的组播地址,并且加入这个组播地址组。改地址主要用于邻居发现机制和地址重复检测功能,该地址有效范围为本地链路范围。
在IPv6中,不同于IPv4的ARP协议解析IP地址和MAC地址的对应关系,IPv6使用ICMPv6中的NDP报文来完成对应的功能。而IPv6没有广播地址,因此IPv6在进行IGMPv6中MAC地址解析时,使用的就是对端IP地址的被请求节点组播地址。
IPv6的被请求节点组播地址计算非常简单:
前104位固定,为FF02::1:FF
后24位为对端IPv6地址的后24位,计算过程示例如下所示:


采用华为eNSP设备模拟结果:

三、IPv6组播MAC地址计算方式

与IPv4一样,IPv6在运行组播时,需要将组播IP地址换算成主播MAC地址,组播MAC地址计算过程如下:
IPv6组播MAC地址计算方式非常简单,前16为固定,为0x3333,后32位为组播IP地址后32位。
例如:ospfv3组播IPv6地址为FF02::5,因此其组播MAC地址为3333-0000-0005
注:其实,IPv6组播IP地址在设计的时候就保留了最后的32位的Group ID内容,前面的用0填充,也有这样的考虑在里面。
由于组播MAC地址计算方式很简单,在这里就不给大家画图说明了。
OSPFv3抓包结果:(组播MAC示例)


转载于:

https://blog.csdn.net/weixin_40228200/article/details/118615948


点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部