天天看点

IPv6无状态地址自动配置机制分析

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地址的格式固定为:

  

    

IPv6无状态地址自动配置机制分析

  

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

  

    

IPv6无状态地址自动配置机制分析

  

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

  

    

IPv6无状态地址自动配置机制分析

  

  (1) Linklayer address是MAC地址(0007951a0669)。

  

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

  

   3全局路由前缀的获得

  

  网络节点为获得他的全局路由前缀,向与他相连的路由器发出路由器请求RS(Router Solic itation)消息,网络上捕获的路由器请求消息如图2所示。

  

    

  

  该RS消息的类型字段值133,表明这是一个路由器请求消息,消息的源地址是网络节点的本 地链路地址,由于这是一个路由器请求消息,目的地址是FF02::2(所有路由器多播地址)。

  

  路由器收到网络节点的RS消息后,向该节点回送路由器宣告RA(Router Advertisement)消 息。RA消息如图3所示。RA消息的源地址是路由器的 IPv6地址,目的地址是网络节点的本地 链路地址,消息的类型字段值134,表明这是一个路由通告消息,消息的选项字段给出全局 路由前缀1::。网络节点在获得全局路由前缀后,与接口ID结合形成他的全局 IPv6地址。至 此,网络节点的 无状态地址自动配置过程结束。

  

    

  

   4结语

  

  使用EUI 64转换算法得到的接口ID是随机器硬件固定的,也是全局惟一的。该算法实现简单,是一种重要的接口ID自动生成算法,目前 Windows,Linux操作系统在对主机生成接口ID时,均使用EUI 64转换算法。作为对该算法的一种改进,RFC3041又引入了一种随机地址机制,他包含了用一组随机数字代替由MAC地址转换的接口ID。该地址具有一定的生存周期,随着生存周期的结束,该地址会自动更换,较好地解决了节点的Internet访问活动被跟踪的问题。