在我们归纳IPv6的一些新特点的时候,肯定提及过IPv6邻居发现协议。对于这个版本的新说法可能有些人不太清楚,但是如果说IPv4的地址解析协议,相信大家都比较熟悉了。两者虽然有些共同之处,但是对于IPv6邻居发现协议来说却有着更广泛的应用。
IPv6邻居发现协议包括哪些内容?
IPv6定义了邻居发现协议(Neighbor Discovery protocol,NDP),它使用一系列IPv6控制信息报文(ICMPv6)来实现相邻节点(同一链路上的节点)的交互管理,并在一个子网中保持网络层地址和链路层地址之间的映射。邻居发现协议中定义了5种类型的信息:路由器宣告、路由器请求、路由重定向、邻居请求和邻居宣告。通过这些信息,实现了对以下功能的支持:
◆路由器发现:即帮助主机来识别本地路由器;
◆前缀发现:节点使用此机制来确定指明链路本地地址的地址前缀以及必须发送给路由器转发的地址前缀;
◆参数发现:帮助节点确定诸如本地链路MTU之类的信息;
◆地址自动配置:用于IPv6节点自动配置;
◆地址解析:替代了ARP和RARP,帮助节点从目的IP地址中确定本地节点(即邻居)的链路层地址;
◆下一跳确定:IPv6邻居发现协议可用于确定包的下一个目的地,即可确定包的目的地是否在本地链路上。如果在本地链路,下一跳就是目的地;否则,包需要选路,下一跳就是路由器,邻居发现可用于确定应使用的路由器;
◆邻居不可达检测:帮助节点确定邻居(目的节点或路由器)是否可达;
◆重复地址检测:帮助节点确定它想使用的地址在本地链路上是否已被占用;
◆重定向:有时节点选择的转发路由器对于待转发的包而言并非***。这种情况下,该转发路由器可以对节点进行重定向,使它将包发送给更佳的路由器。例如,节点将发往Internet的包发送给为节点所在的内部网服务的默认路由器,该内部网路由器可以对节点进行重定向,以使其将包发送给连接在同一本地链路上的 Internet路由器。
IPv6邻居发现协议与IPv4地址解析协议有什么区别?
IPv6不再执行地址解析协议(ARP)或反向地址解析协议(RARP),而以邻居发现协议中的相应功能代替,IPv6邻居发现协议与IPv4地址解析协议主要区别如下:
IPv4中地址解析协议ARP是独立的协议,负责IP地址到链路层地址的转换,对不同的链路层协议要定义不同的ARP协议。IPv6中邻居发现协议NDP包含了ARP的功能,且运行于因特网控制报文协议ICMPv6上,更具有一般性,包括更多的内容,而且适用于各种链路层协议;
ARP协议以及ICMPv4路由器发现和ICMPv4重定向报文基于广播,而NDP协议的邻居发现报文基于高效的组播和单播;
可达性检测的目的是确认相应IP地址代表的主机或路由器是否还能收发报文,IPv4没有统一的解决方案。NDP中定义了可达性检测过程,保证IP报文不会发送给“黑洞”。