IPv6 邻居发现协议——NDP

邻居发现协议(NDP,Neighbor Discovery Protocol)是TCP/IP协议栈的一部分,主要与IPv6共同使用。它工作在网络层,负责在链路上发现其他节点和相应的地址,并确定可用路由和维护关于可用路径和其他活动节点的信息可达性。

邻居发现协议定义了5种ICMPv6类型

  1. 路由请求(RS,Router Solicitation)
  2. 路由通告(RA,Router Advertisement)
  3. 邻居请求(NS,Neighbor Solicitation)
  4. 邻居通告(NA,Neighbor Advertisement)
  5. 重定向

一、邻居请求和邻居通告

和ARP协议一样,NS和NR用来做链路层地址(mac地址)解析
下图是使用华为eNSP做的拓扑图:
eNSP是一个网络模拟器,可以虚拟网络环境。

NS NR实验

CLIENT1配置静态IPv6地址,2000::1/64。
CLIENT2配置静态IPv6地址,2000::2/64。
CLIENT1配置

两台主机使用交换机连接起来,在CLIENT1 ping CLIENT2。


并且在CLIENT2上抓包,使用wireshark分析。
NS报文

CLIENT1在ping CLIENT2的时候,首先会查本地的邻居表(linux下使用ip -6 neigh查看)。如果到CLIENT2是可达的,就直接向CLIENT2发送request请求,否则就会发送NS报文来学习CLIENT2的mac地址。
学习对方链路地址的过程:
CLIENT1要ping 2000::2,首先要向ff02::1:ff00:2组发送一个组播,即NS报文,并在NS报文的ICMPv6 Option中附上自己的mac地址。
所有收到这个NS包的主机会检查自己是否在这个组内,CLINET2在收到包时,发现自己在这个组里就把自己的mac写到ICMPv6 Option中回给CLIENT1,并把CLIENT2的mac地址记录下来。
NA报文

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容