1 IPv6产生的历史背景
Inte.net 的成功促进了IP网的大发展。目前,越来越多的人相信,未来的网络将是基于IP技术的网络。随着IP网规模的不断扩大,原有的IPv4协议面临着一些难以解决的问题,比如地址空间耗尽、路由表爆炸等。同时IP应用的扩展对IP也提出了新的要求,比如Internet上多媒体信息传播、移动用户的网络接入等,都为IP的研究开辟了新的空间。
传统的IP,即IPv4(IP version 4)定义IP地址的长度为32bit。Internet上每个主机都分配了一个(或多个)32bit的IP地址。32bit的地址在DARPA时代的互联网络看来还是足够使用的,同时网络地址的分类(A、B、C、D、E类)和提取也提高了路由的效率。但是在20世纪80年代早期,即使是最有远见的TCP/IP开发者们也没有预料到互联网会有今天的爆炸性增长。Internet的设计者们没有想到今天Internet会发展到如此大的规模,更没有预测到今天Internet因为规模的迅速扩大而陷入困境。1987年统计表明可能将来需要分配多达100 000个网络,然而早在1996年这个记录已经被打破。20世纪90年代以来,WWW服务迅速普及,网络节点的数目开始呈几何级数的增长。
地址短缺问题的根源有多方面的原因。一方面是32bit的空间是十分有限的;另一方面是尽管现行的32bit IPv4的地址结构可以为1670万个网络上的超过40亿台主机分配地址,但实际上的地址分配效率远远达不到这个数值。我们知道,由于历史的原因,IPv4地址的分配是极不合理的,大量的IP地址分给了一些大学和商业公司,比如美国斯坦福大学拥有1700万,IBM公司则达到3300万,而我国只分到大约900万正式地址,这显然与当今互连网在世界范围内飞速发展的状况是不相适应的。随着网络规模的不断扩大,不仅导致地址总数量的不够,也导致路由表迅速膨胀。
在IPv4面临的一系列问题中,IP地址即将耗尽无疑是最为严重的,有预测表明,以目前Internet的发展速度计算,所有IPv4地址将在2005~2010年间分配完毕。为了彻底解决IPv4存在的问题,IETF从1995年开始,着手研究开发下一代IP,即IPv6。IPv6具有长达128bit的地址空间,可以彻底解决IPv4地址不足的问题,除此之外,IPv6还采用分级地址模式、高效IP包头、服务质量、主机地址自动配置、认证和加密等许多技术。
2 IPv6的新特性
2.1 全新的地址管理方案
在IPv4中,地址是用户拥有的。也就是说,一旦用户从某机构处申请到一段地址空间,他就永远使用该地址空间,而不管他是从哪个Internet服务提供者(ISP)处获得服务。这种方式的缺点是ISP必须在路由表中为每个用户的网络号维护一条记录。随着用户数的增加,会出现大量无法会聚的特殊路由,即使无类别域间路由(CIDR)也不能处理这样的路由表爆炸现象。
IPv6改变了地址的分配方式,从用户拥有变成了ISP拥有。全局网络号由Internet地址分配机构(IANA)分配给各ISP,用户的全局网络地址只是ISP地址空间的子集。当用户接入的ISP改变时,全局网络地址必须更新为新ISP提供的地址。这样ISP能有效地控制路由信息,避免路由爆炸现象的出现。ISP地址拥有模式意味着用户必须时常改动他们的主机地址,这对大型网络的管理是很不利的。另一方面,运行IPv6的主机能同时为每个端口配置多个IP地址。这些地址包括全局地址,站点局部地址,链路局部地址等,它们分别用于不同的传播范围。由用户管理多个地址是相当烦琐的,所以IPv6提供了地址自动配置机制,使主机能自动生成地址,避免了手工配置的低效率,实现了主机的即插即用功能。路由器在地址自动配置中发挥巨大的作用,它定时在子网里多播路由器广告报文,报文中包括主机能使用的地址前缀的所有信息,如前缀值、生命期等;主机收到该报文后,按照一定规则在本地生成主机标识符,把它和地址前缀连接,从而形成主机地址。为了保证主机地址的唯一性,IPv6定义了重复地址检测过程,每当生成地址时,必须反复执行生成和检测过程,直到得到唯一的地址。地址管理方案中还包括地址解析协议(ABP)和可达性检测。IPv4中ABP是独立的协议,负责IP地址到链路层地址的转换,对不同的链路层协议要定义不同的ARP。可达性检测的目的是确认相应IP地址代表的主机或路由器是否还能收发报文,IPv4没有统一的解决方案。IPv6定义了邻机发现协议(NDP),把ARP纳入NDP并运行于Internet控制报文协议(ICMP)上,使ARP更具有一般性,包括更多的内容,而且不用为每种链路层协议定义一种ARP。NDP中还定义了可达性检测过程,保证IP报文不会发送给“黑洞”。
2.2 地址头部的简化和可扩展性
IPv6的另一个主要特点是对数据包头的简化,尽量避免那些很少使用的域静态地址占用空间。它仅包含7个字段(IPv4有13个)。这使路由器处理分组的速度加快,提高了吞吐率。
IPv6数据包头中的“NextHeader”域,它指向数据包头的扩展部分,这样便可以在非常简单的结构里提供很多可选的特征。同IPv4一样,IPv6允许数据报包含可选的控制信息,但在IPv4头中必需的字段现在只是IPv6的选项。而且,选项出现在扩展头部中,使路由器可以简单地跳过选项,加速了分组处理的过程。另外还包含了IPv4所不具备的选项,可以提供新的设施。
2.3 可靠的安全性
IPv6利用数据包头的扩展部分可以提供路由器级的安全性。IPv6中强制性的安全性包括两方面的内容。一方面,IPv6数据包的接收者可以要求发送者首先利用IPv6认证头(数据包头的扩展部分)进行“登录”,然后才接收数据包,这种登录是算法独立的,可以有效地阻止网络“黑客”的攻击。另一方面,利用IPv6的封闭安全头(数据包头的扩展部分)加密数据包,这种加密也是算法独立的,这意味着可以安全地在Internet上传输敏感数据,不用担心被第三方截取。
另外,IPv6定义了ISAKMP-OAKLEY协议,其基础是Diff-Hellman算法。规定首先进行证书交换,用以确认对方的地址真伪,然后进行带验证过程的密钥交换,防止密钥交换被中介拦截。协议中也定义了相应的手段允许协商加密参数,以及AH和ESP的用法。
2.4 IPv6的移动性
移动IPv6(MIPv6)在新功能和新服务方面可提供更大的灵活性。每个移动设备设有一个固定的家乡地址(home address),这个地址与设备当前接入互联网的位置无关。当设备在家乡以外的地方使用时,通过一个转交地址(care-of address)来提供移动节点当前的位置信息。移动设备每次改变位置,都要将它的转交地址告诉给家乡地址和它所对应的通信节点。在家乡以外的地方,移动设备传送数据包时,通常在IPv6报头中将转交地址作为源地址。移动节点在家乡以外的地方发送数据包时,使用一个家乡地址目标选项。目的是通过这个选项把移动节点的家乡地址告诉给包的接收者。由于在该数据包里包含家乡地址的选项,接收方通信节点在处理这个包时,就可以用这个家乡地址替换包内的转交地址。因此发送给移动节点的IPv6包,就透明地路由到该节点的转交地址处。对通信节点和转交地址之间的路由进行优化,就会使网络的利用率更高。
基于移动IPv6协议集成的IP层移动功能具有很重要的优点。尤其是在移动终端数量持续上涨的今天,这些优点更加突出。尽管IPv4中也存在一个类似的移动协议,但二者之间存在着本质的区别:移动IPv4协议不适用于数量庞大的移动终端。
移动IP需要为每个设备提供一个全球唯一的IP地址,IPv4没有足够的地址空间可以为在公共互联网上运行的每个移动终端分配一个这样的地址。从另外角度讲,移动IPv6能够通过简单的扩展满足大规模移动用户的需求。这样,它就能在全球范围内解决有关网络和访问技术之间的移动性问题。
3 寻址和路由方法
IPv6的128bit地址形成了一个巨大的地址空间。在一段可预见的时期内,它能够为所有可以想象出的网络设备提供一个全球唯一的地址。聚类全球单播地址是默认的IPv6地址。这种地址类型是基于分层的网络拓扑结 构。分层网络拓扑结构的底层是互联网服务提供商(ISP),之上是客户网络和它的子网。128bit地址分成前缀和后缀两部分,各64bit。其中64bit后缀地址由设备接口来定。IPv6主机并不需要了解这种地址的层次结构,因此,它对网络安全有很大好处。为了保证同外部互联网通信时的安全,公司的工作站可以使用定点地址。当需要在相邻的路由器之间安全地传送路由拓扑信息时,还可以使用局部连接地址。
另外,这种地址结构还支持一些新的服务,如优化的IP层移动或广播服务。在IPv6互联网网络上,这些服务一开始就可以在全球范围内实现。而IPv4就几乎没有这种灵活性。
IPv6的这种分层地址结构也使路由器可以使用多个可聚类的短路由表,每个路由表中存放适量数目的记录。IPv6的一个特点是路由表内容成指数级增长,从而增加了每个数据包的处理延迟。而在IPv6中,这种处理延迟已不再是一个限制因素。IPv6同时改进和提高了IP包的基本报头格式。这种简化的包结构是对IPv4的一个主要改进之处,它有助于弥补IPv6长地址占用的带宽。IPv6的16字节地址长度是IPv4 的4字节地址长度的4倍,但IPv6报头的总长度只有IPv4报头总长度的2倍。IPv6报头所含字段少,而且报头长度固定,使路由器的硬件实现更加简单。与IPv4不同,在IPv6网络中,路由过程中不对数据包进行分割,从而进一步减少了路由负载。这些改进使IPv6能够在一个合理的开销范围内,适应互联网流量的指数级增长速度。
IPv6的地址结构决定了在需要的时候能够在基本报头的后面放置扩展报头。这也同时提高了路由能力。与跳跃式报头不同的是,这种连续报头在终端节点进行分析。一个实例就是IP安全(IPSec)报头能够提高端到端的安全性,其他扩展报头包括路由报头、分断报头、认证报头和信宿报头。IPv6及其结构能够在全球骨干网一级满足更大规模的网络结构需求,并且提高了安全性和数据完整性,支持自动配置、移动计算、数据多播和更有效的网络路由聚类。
4 IPv4向IPv6的过渡
尽管IPv6比IPv4具有明显的先进性,但是IETF认识到,要想在短时间内将Internet和各个企业网络中的所有系统全部从IPv 4升级到IPv6是不可能的,也就是说,IPv6与IPv4系统在Internet 中长期共存是不可避免的现实。为此,IETF制定了推动IPv4向IPv6过渡的方案,其中包括三个机制:兼容IPv4的IPv6地址、双IP协议栈和基于IPv4隧道的IPv6。
兼容IPv4的IPv6地址是一种特殊的IPv6单点广播地址,一个 IPv6节点与一个IPv4节点可以使用这种地址在IPv4网络中通信。这种地址是由96个0加上32bit IPv4地址组成的,例如,假设某节点的IPv4地址是19256.1.1,那么兼容IPv4的IPv6地址就是0: 0:0:0:0:0:C038:101。 双IP协议栈是在一个系统(如一个主机或一个路由器)中同时使用IPv4和IPv6两个协议栈。这类系统既拥有IPv4地址,也拥有IPv6地址,因而可以收发IPv4和IPv6两种IP数据报。
与双IP协议栈相比,基于IPv4隧道的IPv6是一种更为复杂的技术,它是将整个IPv6数据报封装在IPv4数据报中,由此实现在当前的IPv4网络(如Internet)中IPv6节点与IPv4节点之间的I P通信。基于IPv4隧道的IPv6实现过程分为三个步骤:封装、解封和隧道管理。封装,是指由隧道起始点创建一个IPv4包头,将 IPv6数据报装入一个新的IPv4数据报中。解封,是指由隧道终结点移去IPv4包头,还原原始的IPv6数据报。隧道管理,是指由隧道起始点维护隧道的配置信息,如隧道支持的最大传输单元(MTU)的尺寸等。
IPv6是一个建立可靠的、可管理的、安全和高效的IP网络的长期解决方案。尽管IPv6的实际应用之日还需耐心等待,不过,了解和研究IPv6的重要特性以及它针对目前IP网络存在的问题而提供的解决方案,对于制定企业网络的长期发展计划,规划网络应用的未来发展方向,都是十分有益的。