欢迎来到天天文库
浏览记录
ID:6130026
大小:1.43 MB
页数:16页
时间:2017-11-15
《ipv6邻居发现协议》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、IPv6邻居发现协议IPv6邻居发现协议概述邻居发现协议的消息类型路由器发现地址自动配置地址冲突检测邻居地址解析概述IPv6具有即插即用的特性,而该特性就是通过邻居发现协议(NeighborDiscoveryProtocol,NDP)来实现的。NDP消息通常应该在链路本地的范围内收发。因此,封装NDP消息的数据包也始终使用IPv6链路本地地址,或者链路本地范围内的多播地址。邻居发现协议的消息类型邻居发现协议(NDP)是在RFC2461中定义的,为了完成某些功能,它使用ICMPv6协议来交换一些必要的消息,主要有5
2、种:路由器通告(RouterAdvertisement,RA)消息路由器请求(RouterSolicitation,RS)消息邻居通告(NeighborAdvertisement,NA)消息邻居请求(NeighborSolicitation,NR)消息重定向(Redirect)消息邻居发现协议的消息类型路由器通告消息由路由器发起,用来通告这些路由器的存在和链路细节的参数,例如链路前缀、链路MTU以及跳数限制等。这些消息周期性发送,也用于答复路由器请求消息。路由器请求消息由主机发起,用来请求路由器发送一个RA。邻居
3、发现协议的消息类型邻居请求消息由节点主机发起,用来请求另一台主机的链路层地址,也用来实现诸如地址冲突检测的功能。邻居通告消息是用来响应邻居请求消息。此外,如果一个节点的链路层地址发生了改变,它能够通过发送一个未请求的邻居通告消息来通告这个新地址。重定向消息用于通知主机将默认路由器重定向为本地链路中的另一个节点。使用方法与IPv4中ICMP的基本相同。路由器发现路由器通过在相连的链路上周期性地发送路由器通告消息,表明它的存在并通告配置的所有参数。大多数情况下在广播链路上使用。刚刚连接到某个链路接口的主机需要获得一份
4、路由器通告消息,以便能够发现链路上的路由器并学习到链路的参数。因此连接到链路时,主机会发送一条路由器请求消息去请求一条路由器通告消息。收到后将该路由器添加到缺省路由器列表中。地址自动配置当一台IPv6的主机第一次连接到链路上时,它能够自我配置其接口地址。对于大多数的以太网接口,使用的方法是通过MAC-to-EUI64的方法确定本地的接口ID,加上链路本地前缀形成链路本地地址。而当该主机需要获得一个全球IPv6地址时,则使用两种方式获取该地址:有状态和无状态的地址自动配置。地址自动配置若该主机使用的是有状态的地址自
5、动配置,它将会借助DHCPv6服务器来获取必要的地址信息。如果该主机使用的是无状态的地址自动配置的话,主机将从它所收到的路由器通告消息中获得一个或多个链路前缀,加上它先前确定的接口ID,这样就得到了一个全球唯一的IPv6地址。地址冲突检测虽然利用了MAC地址转换导出一个接口ID的方法,在绝大多数情况下可以保证得到的地址是唯一的。但由于IPv6地址也可以手工配置,因此在使用一个地址之前,都必须进行地址冲突检测。节点将需要检测的地址以邻居请求消息的方式发出,该消息的源地址是未指定的地址,目的地址则是所有被请求节点的多
6、播地址。地址冲突检测被请求节点的多播地址是由前缀FF02:0:0:0:0:1:FF00::/104加上目标地址的最后24位组成。这样做的原因是这个地址可以匹配该节点自动配置的所有地址。除此以外,如果两个节点同时对一个地址进行冲突检测时,它们可以互相检测到。邻居地址解析在IPv4中,当一个节点需要和本地链路上的另一个IPv4节点进行通讯时,它必须要获取该节点的链路层地址。IPv4使用ARP来获取目的节点的链路层地址,而IPv6使用NDP来完成。根据目的IPv6地址的前缀,本地节点可以判断出该地址是本地链路的邻居或是
7、本地链路之外的节点。邻居地址解析当目的地址是本地链路之外的节点时,主机需要通过默认路由器来发送数据包,因此链路层地址应使用默认路由器的链路层地址(由路由器通告消息获得)。如果该地址是本地链路的邻居地址时,节点会查看本地的邻居缓存是否存在这个地址,该过程与ARP非常类似。邻居地址解析当目的地址不在邻居缓存中,主机会发送一个邻居请求消息到与目标节点相关的被请求节点的多播地址。如果被请求的节点存在并且邻居请求消息是有效的,那么该节点会答复一个邻居通告消息。如果被请求的节点不存在或由于其他原因未收到回复,那么邻居请求消息
8、会每隔1s重新发送一次。若发送3次仍未有答复,则宣布该邻居不可达,地址解析失败。总结邻居发现协议(NDP)解决了很多与单一链路上的节点有关的问题,并提供了路由器发现、地址自动配置以及邻居地址解析等功能。对于IPv4来说需要多种协议(包括DHCP、IGMP路由器发现、ARP等)才能提供的功能,而NDP利用ICMPv6即可完成。这些功能作为IPv6的一个必须组件整合到了ICM
此文档下载收益归作者所有