IPv6 ND协议

组播地址
组播MAC,33-33再加上IPv6组播地址的后32三位,注意不是MAC地址 。
主机一般会加入FF02::1 这个组
而路由器会加入FF02::1和FF02::2这两个组 。当配置了GUA地址后,他会加入被请求节点组播地址这个组,他是固定的FF02::1FF00/104,后面加上MAC的后24位组成 。链路本地地址也是如此 。
如下图
注:被请求节点组播地址主要用于地址重复检测功能,和邻居发现机制
协议可以为IPv6解决地址重复检测,MAC地址查询(类似ARP)功能 。
当R1一个接口配置了GUA地址后,会发一个NS报文,源地址是::,目的地址是一个组播地址,(二层目的MAC也是一个组播MAC)即是你接口默认加入的那个组 。例如3000::2,他加入的组为FF02::1:FF00:2,也就是它的目的地址 。NS的TYPE为135,CODE为0 。
然后,它自己本身就会回应一个NA,类似一点自问自答 。(华三设备会如此,华为不会自答)
注意,NS是往这个组播地址发 。NA则是往这个链路上的所有节点发!
ND的TYPE为136,CODE为0 。
当有地址冲突时,设备就会提示地址冲突 。下图R2设备配置了一样的地址,它发出第一个NS之后,R1设备立刻就回应了NA,表示这个地址我已经占有了 。
R1先配置,实验地址可用 。
R2后配置,地址没有成功,于是标记!(重复)
PS:
1.IPv6 地址的状态:IPv6 地址处在这种状态时,地址的唯一性还没有确定,
【IPv6 ND协议】收到的包都会被丢弃
2.当一个设备刚刚配置一个ipv6的GUA地址后,抓包如下,抓到一个链路本地地址和单播地址的DAD检测 。从图可以看出,NS DAD检测先往被请求节点组播地址发,NA再向FF00::1本链路上所有节点发送 。
RS和RA
华三和华为一样,默认接口关闭了自动获取地址,敲上命令 undo ipv6 nd ra halt 即可 。
从上图抓包,可以看出主机获取了8888::/64 6666::/64 。RA报文的发送地址是是FF02::1,是本条链路上所有的节点,因为路由器和PC都可能用SLAAC获取IPv6地址 。然而RS的发送地址是FF02::2,原因是去找路由器索要地址 。
PS :
NS NA实现了重复地址检测和地址解析.
RS RA实现了路由器发现,无状态自动配置,前缀重编址,路由重定向 。
和RA获取地址
所谓无状态地址获取,说白了就是地址是RA获取的,有状态是分配的,因为这样分配的地址服务器可以管理 。
网关的的地址都是RA获取到的,手工除外 。
根据三个置位,可以调节地址分配方式是RA获取还是获取:当A位置1,则使用RA分配的地址,DNS可以通过O置位来通过获取;当A位置0,表示不用路由器分配的地址,此时M置位1,表示地址和前缀都用获取,此时O置位如何都无所谓了 。
分配地址和v4差不多,有()、(offer)、、reply(ack) 。T1时间指的是优选时间的二分之一,T2时间值得是优选时间的十分之八,用于续租和重绑定,这一点和类似 。
DUID 标识的是一台设备,IAID表示一个接口 。
UDP端口号:546 客户端547服务端或者中继 。
PS: RA获取的地址和DHCPv6一样,都是有一个有效时间和优选时间
PD( ,前缀代理)自动配置:
这个是分配给内网的,说内网也不准确 。当你家里拨号拿到了一个公网地址后,你可以向运营商请求一个PD前缀,这个前缀用于给你的家里一些设备(内网)分配GUA地址,让你的家里设备的v6地址全球可达 。
PS:
为何需要link-local--在一个接口可以配置很多IPv6地址,所以学习路由就有可能出现很多下一跳 。
所以出现Link Local地址唯一标识一个节点 。在本地链路看到下一跳都是对端的Link Local地址 。
注:笔记内容来自安徽合肥肯耐博培训机构谢斌老师 。安徽肯耐博-IT认证培训考试中心 ()