摘 要:随着Internet技术的发展,IPv6协议将取代IPv4协议成为下一代互联网协议,IPv6协议具有许多新的特性与功能,如提供更大的地址空间、支持网络节点的无状态地址自动配置等,因而提高了因特网的扩展性、可管理性。典型的IPv6主机单播地址由全局路由前缀、子网ID和64位接口ID组成,接口ID由主机自动生成,全局路由前缀和子网ID可以通过路由通告消息得到。介绍了在Windows XP环境下由48位MAC地址生成接口ID的转换算法,借助网络上捕获的数据报分析了主机获得全局路由前缀的过程。
关键词:无状态地址自动配置;接口ID;路由器请求;路由器宣告
IPv6协议是下一代互联网的核心协议,他解决了IPv4协议所暴露的诸多缺陷,如地址稀缺、路由表庞大、对移动设备支持不足等。IPv6协议的一个突出特点是支持网络节点的地址自动 配置,这极大地简化了网络管理者的工作。
1IPv6地址格式及地址配置方式
一个典型的IPv6主机单播地址由3部分组成:全局路由前缀、子网ID和接口ID(64位)。全局 路由前缀用来识别分配给一个站点的一个地址范围。子网ID也称为子网前缀,一个子网ID与 一个链接相关联,以识别站点中某个链接。接口ID用来识别链接上的某个接口,在该链接上是惟一的。
IPv6地址配置可以分为手动地址配置和自动地址配置2种方式。自动地址配置方式又可以分为无状态地址自动配置和有状态地址自动配置2种。在无状态地址自动配置方式下,网络接口接收路由器宣告的全局地址前缀,再结合接口ID得到一个可聚集全局单播地址。在有状态地址自动配置的方式下,主要采用动态主机配置协议(DHCP),需要配备专门的DHCP服务器,网络接口通过客户机/服务器模式从DHCP服务器处得到地址配置信息。
2接口ID的生成
在无状态地址自动配置方式下,接口ID通常可以通过EUI64转换算法得到。接口ID由48位MAC地址转换得到。EUI64是IEEE定义的一种基于64位的扩展惟一标示符。他是IEEE指定的公共24位制造商标示和制造商为产品指定的40位值的组合。在IPv6地址中,接口ID的长度为64位,他由48位的以太网MAC地址转换得到,下面介绍EUI64转换算法。
48位以太网MAC地址的格式固定为:

其中,c位表示厂商ID,m位表示厂商编号ID,g位表示是单个主机还是某个组。转换算法需将g位前的一位求反,并在c位和m位(MAC地址的第3和第4个字节)之间插入2个字节FFFE,则接口ID为:

Windows XP下主机地址自动配置示例如图1所示。

(1) Linklayer address是MAC地址(0007951a0669)。
(2) preferred linklocal通过自动配置得到主机链路本地地址。其中,fe80是链路本地地址的固定前缀,207:95ff:fe1a:669为从MAC地址转换得到的接口ID。