张 毅
摘要:文章主要阐述了IPv6地址结构、地址类型及其管理机制。在IPv6地址管理方面采用层次化路由选择策略,支持QoS路由协议,将地址解析通过邻居发现协议来实现,新增了无态地址的自动配置,使得网络地址的重新编号变得更加简单快速。
关键词:IPv4;IPv6;IP地址;地址管理
1引言
目前IP网络的基本协议是IPv4协议,IPv4地址是32位,约43亿个IP地址。但是全球互联网的迅猛发展仍导致了IP地址资源的紧张,而且下一代语音、数据、视频融合的通信网络对网络的安全、质量和移动性都提出了更高的要求,而目前IPv4在地址空间、端到端的IP连接、服务质量、网络安全和移动性等方面都暴露出了不足,极大地限制了IP网络的进一步发展。为克服IPv4的这些不足,IETF下一代网络协议IPng工作组于制定了IPv6。 IPv6所提供的巨大的地址空间以及所具有的诸多优势和功能,使其成为构筑下一代网络的重要基础,从提出至今获得了普遍关注和广泛认可。
2IPv6地址
2.1 IPv6 地址空间
IPv6的主要改变就是地址长度为128bit,这样可以有2128个IP地址。128位地址所形成的地址空间大于3.4×1038,可见IPv6彻底解决了 IPv4地址不足的难题[1]。在可预见的很长时期内,它能够为所有可以想象出的网络设备提供一个全球唯一的地址。足以使一个大企业将其所有的设备如计算机、打印机甚至寻呼机等联入Internet而不必担心IP地址不足。
2.2 IPv6 地址语法
IPv6巨大的地址空间还必须使维护互联网的人易于阅读和操作这些地址。因此采用IPv4所用的点分十进制记法就不方便了。由RFC 1884规定的标准语法把IPv6的IP地址分为8个地址节,每节包含16个地址位,以4个十六进制数书写,节与节之间用冒号分隔,通常这种记法叫冒号十六进制(colon hexadecimal notation,简写为colon hex)[1]。例如将前面所给出的点分十进制数记法的值改为冒号十六进制记法就变为:68E6:8C64:FFFF:FFFF:0000:1180:960A:FFFF。
2.3 IPv6地址类型
IPv6将128bit的地址空间分为两大部分。第一部分是可变长度的类型前缀,第二部分是地址的其余部分,其长度也是可变的。图1表示了IPv6地址结构。
IPv6地址的类型由第一部分的可变长格式类型前缀确定。每一种前缀表示一种类别的地址。IPv6定义了三种类型的地址:单播(Unicast)地址、多播地址(multicast)、任播(anycast) 地址[2]。单播用来标识单一接口的地址。发送到单播地址的数据包被送到由该地址标识的接口。多播地址用来标识一组接口的地址(通常分属不同节点)。发送到多播地址的数据包被送到由该地址标识的每个接口。任播(anycast) 地址用来标识一组接口的地址。大多数情况下,这些接口属于不同的节点。发送到任意播送地址的数据包被送到由该地址标识的其中一个接口。在IPv6中没有广播地址,其功能由多播地址代替。在IPv6中,除特别指出外,全0或全1的值都可以合法地用在任一字段中。
3IPv6的地址管理机制
如前所述,与IPv4相比,IPv6在地址结构上具有明显的不同,这必然影响到相应的地址管理,包括路由选择、地址解析和地址配置等,这些管理机制主要定义在IPv6邻居发现(Neighbor Discovery)[2]协议和控制消息协议(ICMPv6)中[2]。
3.1 IPv6的路由选择
IPv6地址资源的扩大必然增加路由选择的困难,而路由选择问题属于OSI参考模型网络层的核心问题,基本作用是在网络中为分组报文选择一条或一组适当的转发路径。在IPv6的分组报头中定义了128it源地址和目的地址;一般情况下,路由器就根据IPv6分组报头所提供的这2个IP地址和所采用的路由协议进行路由接受、调度、查寻、计算和转发。由于IPv6地址具有聚类性,因此IPv6所采用的路由协议必须支持这一特性。原IPv4中支持CIDR寻址的路由协议,包括域内路由协议(如RIP和OSPF等)和域间路由协议(如IDRP和BGP-4等)等,均要经过一定的修改,以支持IPv6的地址机制,如RIPng、OSPFv6或IDRPv2等[2];利用邻居发现协议,以ICMPv6信息性消息报文格式定期或按需发送和接收路由器请求消息和路由器宣告消息,从而进行路由表的建立、维护和更新,对邻居路由器进行定位。另外,在IPv6中也支持人工指定路由,在其扩展报头中有一个路由报头(routing header),用来指定分组报文到达目的地址前必须经过的中间路由器。
3.2 IPv6的地址解析
在IPv4中网络地址解析主要采用ARP(Address Resolution Protocol)或RARP(Reverse ARP)协议来完成,进行IP地址和MAC地址之间的映射和转发。而在IPv6中是通过邻居发现来实现地址解析和路由器发现的功能[2]。邻居发现协议集成了原IPv4中的ARP、RDISCP(Router DISCovery Protocol)和ICMP重定向消息(redirection message)等[2],以ICMPv6分组格式进行消息广播和确认,包括路由器请求和路由器宣告、邻居请求、邻居发现和邻居宣告消息以及重定向消息。其中邻居请求、邻居确认和邻居宣告消息就是用来进行地址解析和防止地址冲突的,源节点发送邻居请求消息以获得相邻节点或目标节点的链路层地址,同时发送节点可将本地的链路层地址传送给目标节点;源节点也可通过广播邻居确认消息来完成地址解析操作,该消息发送到特定的目标多播地址,要求返回目标节点的链路层地址;目标节点接收到邻居请求消息或邻居确认消息后,在其单播邻居宣告消息中响应链路层地址,而源节点发送的邻居宣告消息可作为对邻居确认消息的响应。网络节点也可以发送非邻居确认的宣告消息,说明链路层的变化。
3.3 IPv6地址的自动配置
在IPv6中网络地址既可以是手工配置,也可以是自动配置。当采用地址自动配置时又分为无态和有态2种类型,有态地址自动配置可采用DHCPv6 (IPv6的动态主机配置协议)协议[2],DHCPv6仍采用客户机/服务器模式来构造,在局部网络范围内对单播IP地址进行动态的分配和管理,但与原DHCPv4相比进行了多方面的改进,如重新定义了DHCP消息名称与类型,新增了重新配置类和中继类消息,删除了应答消息DHCPACK和DHCPNAK,并统一和简化了消息的报头,以支持IPv6地址结构和管理机制的新特点。而无态自动配置服务是IPv6新增的,对移动主机来说非常重要。IPv6 协议可为任意主机生成一个“本地 IP地址”,这个地址内嵌一个以太网卡地址,由于MAC地址是全球唯一的,这样IP地址就不会重复,IPv6的自动配置功能正是基于这种唯一IP地址的概念。
4结论
综上所述,IPv6在地址结构上与IPv4相比完全不同,地址长度增加了3倍,极大地丰富了IP地址空间;采用分层结构化的单播地址,取消了广播地址,扩展了多播地址,新增了任播地址;在地址管理方面扩展了邻居发现服务,集成了路由器发现、地址解析和无态地址自动配置,并对原IPv4的DHCP协议进行了改进;这种管理机制可有效地提高路由效率,支持QoS业务和移动主机单播IP地址的快速配置。
参考文献:
[1]谢稀仁.计算机网络(第四版)[M].北京:电子工业出版社,2004(10):176,237-238.
[2]Joseph Davies(美).理解IPv6[M].北京:清华大学出版社,2004(3):8,40-54,150.