首先说为什么要兼容ping呢?作为汇聚分流设备,我们是运行在二层的环境下的。但是如果想和三层交换机互相发送流量呢?那我们就要能够对三层交换机发送来的PING包做响应。ipv6协议虽然走的也是icmp,但是又不太相同于ipv4下的arp / icmp这两套简单的东西,而是在icmpv6的基础下重新搞出来了一套ICMPV6协议,在此基础下兼容了很多很多的功能,我们在这就简单关注以下几个协议:
-
NS(Neighbor Solicitation):邻居请求报文
-
NA(Neighbor Advertisement):邻居通告报文
给大家推荐几篇介绍的比较好的文章:
简单阅读后呢我们可以大致了解下ping6的交互过程,首先就是取代了ARP的部分,NS/NA。在你ping一个ip时,如果在邻居表中没有查找到这个ip所对应的mac地址的话,那么发起ping命令的客户端就会封装NS报文,其中的dmac dip分别是被请求节点的组播MAC/IP,ICMPV6中的Targe Address是不知到Mac的IP,ICMPV6 Options字段中携带了链路层的一些状态。