IPv6作为下一代互联网协议,解决了目前使用的IPv4协议所存在的诸多不足与缺陷,如地址稀缺、路由表庞大等。其中的一个突出特点就是无状态地址自动配置,这很大程度上减轻了网络工作者的工作负担。
1.IPv6地址格式及地址配置方式
一个典型的IPv6主机单播地址由3部分组成:全局路由前缀、子网ID和接口ID(64位)。全局路由前缀用来识别分配给一个站点的一个地址范围。子网ID也称为子网前缀,一个子网ID与一个链接相关联,以识别站点中某个链接。接口ID用来识别链接上的某个接口,在该链接上是惟一的。
IPv6地址配置可以分为手动地址配置和自动地址配置2种方式。自动地址配置方式又可以分为无状态地址自动配置和有状态地址自动配置2种。在IPv6无状态地址自动配置方式下,网络接口接收路由器宣告的全局地址前缀,再结合接口ID得到一个可聚集全局单播地址。在有状态地址自动配置的方式下,主要采用动态主机配置协议(DHCP),需要配备专门的DHCP服务器,网络接口通过客户机/服务器模式从DHCP服务器处得到地址配置信息。
2.接口ID的生成
在IPv6无状态地址自动配置方式下,接口ID通常可以通过EUI64转换算法得到。接口ID由48位MAC地址转换得到。EUI64是IEEE定义的一种基于64位的扩展惟一标示符。他是IEEE指定的公共24位制造商标示和制造商为产品指定的40位值的组合。在IPv6地址中,接口ID的长度为64位,他由48位的以太网MAC地址转换得到。
3.全局路由前缀的获得
网络节点为获得他的全局路由前缀,向与他相连的路由器发出路由器请求RS(RouterSolicitation)消息。该RS消息的类型字段值133,表明这是一个路由器请求消息,消息的源地址是网络节点的本地链路地址,由于这是一个路由器请求消息,目的地址是FF02::2(所有路由器多播地址)。
路由器收到网络节点的RS消息后,向该节点回送路由器宣告RA(RouterAdvertisement)消息。RA消息如图3所示。RA消息的源地址是路由器的IPv6地址,目的地址是网络节点的本地链路地址,消息的类型字段值134,表明这是一个路由通告消息,消息的选项字段给出全局路由前缀1::。网络节点在获得全局路由前缀后,与接口ID结合形成他的全局IPv6地址。至此,IPv6无状态地址自动配置过程结束。
4.结语
使用EUI64转换算法得到的接口ID是随机器硬件固定的,也是全局惟一的。该算法实现简单,是一种重要的接口ID自动生成算法,目前Windows,Linux操作系统在对主机生成接口ID时,均使用EUI64转换算法。作为对该算法的一种改进,RFC3041又引入了一种随机地址机制,他包含了用一组随机数字代替由MAC地址转换的接口ID。该地址具有一定的生存周期,随着生存周期的结束,该地址会自动更换,较好地解决了节点的Internet访问活动被跟踪的问题。