IPv6的邻居发现技术

【IPv6的邻居发现技术】1、引言
随着IP网络规模和业务的迅速发展,IP网络的用户数急剧增加,正因为如此,IP网络也暴露出越来越多的问题,如地址空间不足、QoS、安全问题等 。为了解决Internet的这些问题,尤其是解决地址空间不足的问题,IETF于1992年在IPv4的基础上定义了下一代的Internet协议,被称之为“Ipng或“IPv6 。
IPv6解决的最大问题是扩大了地址空间,另外,它与IPv4相比在其它许多方面都具有优势,例如安全性、服务质量、移动性等 。IPv6的一个显著特点就是它具有“即插即用功能 。即插即用使节点直接连接到网络后,不需要经过任何人工配置就能够使用,即插即用使网络的管理和控制变得更加简单;其次,节点只需要知道自己的链路层地址及本地网络的子网前缀,就能够通过IPv6的无状态或者全状态自动配置得到惟一的IPv6地址,从而成为网络的一部分;另外,IPv6还实现了更好的对节点移动性的支持 。这些功能都是通过邻居发现协议来实现的,同一个子网内的所有主机和路由器之间的交互也都是通过邻居发现协议来实现的 。
2、工作原理
邻居发现协议是IPv6协议的一个基本的组成部分,它实现了在IPv4中的地址解析协议(ARP)、控制报文协议(ICMP)中的路由器发现部分、重定向协议的所有功能,并具有邻居不可达检测机制 。
邻居发现协议实现了路由器和前缀发现、地址解析、下一跳地址确定、重定向、邻居不可达检测、重复地址检测等功能,可选实现链路层地址变化、输入负载均衡、泛播地址和代理通告等功能 。
邻居发现协议采用5种类型的IPv6控制信息报文(ICMPv6)来实现邻居发现协议的各种功能 。这5种类型消息如下 。
(1)路由器请求(Router Solicitation):当接口工作时,主机发送路由器请求消息,要求路由器立即产生路由器通告消息,而不必等待下一个预定时间 。
(2)路由器通告(Router Advertisement):路由器周期性地通告它的存在以及配置的链路和网络参数,或者对路由器请求消息作出响应 。路由器通告消息包含在连接(on-link)确定、地址配置的前缀和跳数限制值等 。
(3)邻居请求(Neighbor Solicitation):节点发送邻居请求消息来请求邻居的链路层地址,以验证它先前所获得并保存在缓存中的邻居链路层地址的可达性,或者验证它自己的地址在本地链路上是否是惟一的 。
(4)邻居通告(Neighbor Advertisement):邻居请求消息的响应 。节点也可以发送非请求邻居通告来指示链路层地址的变化 。
(5)重定向(Redirect):路由器通过重定向消息通知主机 。对于特定的目的地址,如果不是最佳的路由,则通知主机到达目的地的最佳下一跳 。
3、主机的数据结构
IPv6的一个设计要求是:即使在一个有限的网络内,主机也必须正确工作,而不像路由器不能储存路由表,不能有永久的配置,因此主机必须能自动配置,必须能学到交换数据的有关目的地的最小信息 。这些信息储存的存储器叫做缓存,这些数据结构是一系列记录的排列,称作表项 。每个表项储存的信息有一定的有效期,需要周期性地清除缓存中的表项,以保证缓存的空间大小 。
主机需要为每一接口维护以下信息 。
妨诰踊捍妫阂蛔橛泄氐ジ隽诰拥谋硐睿庑┝诰咏邮盏搅俗钚碌氖萘鳌1硐钍橇拥ゲサ刂返墓丶ǖ男畔⒂校浩淞绰凡愕刂贰⒅甘玖诰邮锹酚善骰故侵骰谋曛尽⒅赶蛉魏闻哦拥却瓿傻刂方馕鍪莅闹刚氲取A诰踊捍姹硐罨拱ㄓ闪诰硬淮锛觳馑惴ㄋ褂玫男畔ⅲ缈纱镒刺⑻讲馕抻Υ鸬拇问约跋乱淮瘟诰硬淮锛觳夥⑸氖奔洹?

推荐阅读