ndp是用于ipv6的邻居发现协议,相当于ipv4的arp协议,但ndp相对于arp进行了大量完善,也更为复杂。
先把题目列出来,后面再补充
– solicited-node multicast address(请求节点多播地址,SNMA)
这个多播地址主要在nd协义中用于多播ndp。
交换机开启mld协议后SNMA才能以组播的形式转发(RFC4861 7.2.1节),否者跟广播没区别。
前104位是固定值,后24位是对应ipv6的后64位,格式如下:
ff02::1:ff00:0/104
注意:每个ipv6地址都有一个对应的多播地址。
– ns和na报文
ns报文用来请求目标ip地址的mac地址,na报文用来通告自己的ip地址和mac地址绑定关系,同时ns和na报文也用于nud和dad。
– 单播和组播ndp
单播ndp就是目的地址是单播ipv6和mac地址的nd报文,反之目的地址是组播ipv6和mac地址的nd报文就是组播ndp,用于ndp的组播地址分为请求节点多播地址和链路本地作用域所有节点的多播地址(FF02::1),FF02::1主要用于非请求NA报文以及DAD时应答的NA报文。
– Address Resolution和nud(邻居不可达性检测)
In some cases (e.g., UDP-based protocols and routers forwarding packets to hosts), such reachability information may not be readily available from upper-layer protocols. When no hints are available and a node is sending packets to a neighbor, the node actively probes the neighbor using unicast Neighbor Solicitation messages to verify that the forward path is still working.
对已知的ipv6 neighborhood进行状态维护,实现更新缓存表中的neighborhood是否可达,不过只对正在发送数据的neighborhood进行维护,没有流量的neighborhood会转入stale状态。
NUD可以参考上层协议的信息,比如TCP确认,当收到TCP确认后可以不再发送NS报文执行NUD,但是UPD和组播仍然需要通过NS报文执行NUD。
首次解析mac地址时叫地址解析,使用请求节点多播地址,后面维护邻居状态叫NUD,使用单播地址。
参考:
arp协议
https://datatracker.ietf.org/doc/rfc826/
ndp协议
https://datatracker.ietf.org/doc/rfc4861/
rfc4861中文版,不过有点像机翻,比谷歌翻译强点
https://blog.csdn.net/Phoenix_zxk/article/details/135048709
rfc1971 4.8.2节 重复地址检测
To check an address, a node sends DupAddrDetectTransmits Neighbor Solicitations, each separated by RetransTimer milliseconds. The solicitation’s Target Address is set to the address being checked, the IP source is set to the unspecified address, and the IP destination is set to the solicited-node multicast address of the target address.
https://datatracker.ietf.org/doc/rfc1971/
icmpv6协议
https://datatracker.ietf.org/doc/rfc4443/
配置gc的运行条件
http://sunyongfeng.com/201805/networks/linux_arp
华为的文档
https://support.huawei.com/enterprise/zh/doc/EDOC1100389608/a7028751
Views: 11