前言
下一代互联网络是未来信息社会的制高点,IPv6是下一代互联网的基础和灵魂。
中国科学院计算技术研究所的研究人员在多年研究和实践工作的基础上,搜集整理了与IPv6有关的资料,形成本白皮书,内容包括互联网的基本概念、IPv6的产生背景、IPv6协议的技术特点、IPv6的应用和过渡、政府的发展战略和规划、全球IPv6试验网络的现状、IPv6标准演化过程等方面。
我们力图提供给您准确、权威的信息。如果本白皮书能够对您理解IPv6有所帮助,我们会感到由衷的欣慰。限于本书作者资料搜集方面的局限,不足之处敬请读者批评指正。
主要内容简介:
1. 基本概念
2. IPv6的产生
3. IPv6协议技术特点
4. IPv6应用和过渡
5. IPv6的发展战略和规划
6. IPv6试验网络
7. IPv6的标准演化
第一章 IPv6基础知识
IPv6是\"Internet Protocol Version 6\"的缩写,也被称作下一代互联网协议,它是由IETF设计的用来替代现行的IPv4协议的一种新的IP协议。
今天的互联网大多数应用的是IPv4协议,IPv4协议已经使用了20多年,在这20多年的应用中,IPv4获得了巨大的成功,同时随着应用范围的扩大,它也面临着越来越不容忽视的危机,例如地址匮乏等等。
IPv6是为了解决IPv4所存在的一些问题和不足而提出的,同时它还在许多方面提出了改进,例如路由方面、自动配置方面。经过一个较长的IPv4和IPv6共存的时期,IPv6最终会完全取代IPv4在互连网上占据统治地位。对比IPv4,IPv6有如下的特点,这些特点也可以称作是IPv6的优点:简化的报头和灵活的扩展 ;层次化的地址结构 ;即插即用的连网方式 ;网络层的认证与加密 ;服务质量的满足 ;对移动通讯更好的支持。
1.1 简化的报头和灵活的扩展
IPv6对数据报头作了简化,以减少处理器开销并节省网络带宽。IPv6的报头由一个基本报头和多个扩展报头(Extension Header)构成,基本报头具有固定的长度(40字节),放置所有路由器都需要处理的信息。由于Internet上的绝大部分包都只是被路由器简单的转发,因此固定的报头长度有助于加快路由速度。IPv4的报头有15个域,而IPv6的只有8个域,IPv4的报头长度是由IHL域来指定的,而IPv6的是固定40个字节。这就使得路由器在处理IPv6报头时显得更为轻松。与此同时,IPv6还定义了多种扩展报头,这使得IPv6变得极其灵活,能提供对多种应用的强力支持,同时又为以后支持新的应用提供了可能。这些报头被放置在IPv6报头和上层报头之间,每一个可以通过独特的“下一报头”的值来确认。除了逐个路程段选项报头(它携带了在传输路径上每一个节点都必须进行处理的信息)外,扩展报头只有在它到达了在IPv6的报头中所指定的目标节点时才会得到处理(当多点播送时,则是所规定的每一个目标节点)。在那里,在IPv6的下一报头域中所使用的标准的解码方法调用相应的模块去处理第一个扩展报头(如果没有扩展报头,则处理上层报头)。每一个扩展报头的内容和语义决定了是否去处理下一个报头。因此,扩展报头必须按照它们在包中出现的次序依次处理。一个完整的IPv6的实现包括下面这些扩展报头的实现:逐个路程段选项报头,目的选项报头,路由报头,分段报头,身份认证报头,有效载荷安全封装报头,最终目的报头。
2、层次化的地址结构
IPv6将现有的IP地址长度扩大4倍,由当前IPv4的32位扩充到128位,以支持大规模数量的网络节点。这样IPv6的地址总数就大约有3.4*10E38个。平均到地球表面上来说,每平方米将获得6.5*10E23个地址。IPv6支持更多级别的地址层次,IPv6的设计者把IPv6的地址空间按照不同的地址前缀来划分,并采用了层次化的地址结构,以利于骨干网路由器对数据包的快速转发。
IPv6定义了三种不同的地址类型。分别为单点传送地址(Unicast Address),多点传送地址(Multicast Address)和任意点传送地址(Anycast Address)。所有类型的IPv6地址都是属于接口(Interface)而不是节点(node)。一个IPv6单点传送地址被赋给某一个接口,而一个接口又只能属于某一个特定的节点,因此一个节点的任意一个接口的单点传送地址都可以用来标示该节点。
IPv6中的单点传送地址是连续的,以位为单位的可掩码地址与带有CIDR(classless inter domain router)的IPv4地址很类似,一个标识符仅标识一个接口的情况。在IPv6中有多种单点传送地址形式,包括基于全局提供者的单点传送地址、基于地理位置的单点传送地址、NSAP地址、IPX地址、节点本地地址、链路本地地址和兼容IPv4的主机地址等。
多点传送地址是一个地址标识符对应多个接口的情况(通常属于不同节点)。IPv6多点传送地址用于表示一组节点。一个节点可能会属于几个多点传送地址。在Internet上进行多播是在1988年随着D类IPv4地址的出现而发展起来的。这个功能被多媒体应用程序所广泛使用,它们需要一个节点到多个节点的传输。RFC-2373对于多点传送地址进行了更为详细的说明,并给出了一系列预先定义的多点传送地址。
任意点传送地址也是一个标识符对应多个接口的情况。如果一个报文要求被传送到一个任意点传送地址,则它将被传送到由该地址标识的一组接口中的最近一个(根据路由选择协议距离度量方式决定)。任意点传送地址是从单点传送地址空间中划分出来的,因此它可以使用表示单点传送地址的任何形式。从语法上来看,它与单点传送地址间是没有差别的。当一个单点传送地址被指向多于一个接口时,该地址就成为任意点传送地址,并且被明确指明。当用户发送一个数据包到这个任意点传送地址时,离用户最近的一个服务器将响应用户。这对于一个经常移动和变更的网络用户大有益处。
3、即插即用的连网方式
IPv6把自动将IP地址分配给用户的功能作为标准功能。只要机器一连接上网络便可自动设定地址。它有两个优点。一是最终用户用不着花精力进行地址设定,二是可以大大减轻网络管理者的负担。IPv6有两种自动设定功能。一种是和IPv4自动设定功能一样的名为“全状态自动设定”功能。另一种是“无状态自动设定”功能。
在IPv4中,动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)实现了主机IP地址及其相关配置的自动设置。一个DHCP服务器拥有一个IP地址池,主机从DHCP服务器租借IP地址并获得有关的配置信息(如缺省网关、DNS服务器等),由此达到自动设置主机IP地址的目的。IPv6继承了IPv4的这种自动配置服务,并将其称为全状态自动配置(Stateful Autoconfiguration)。
在无状态自动配置(Stateless Autoconfiguration)过程中,主机首先通过将它的网卡MAC地址附加在链接本地地址前缀1111111010之后,产生一个链路本地单点传送地址。接着主机向该地址发出一个被称为邻居发现(neighbor discovery)的请求,以验证地址的唯一性。如果请求没有得到响应,则表明主机自我设置的链路本地单点传送地址是唯一的。否则,主机将使用一个随机产生的接口ID组成一个新的链路本地单点传送地址。然后,以该地址为源地址,主机向本地链路中所有路由器多点传送一个被称为路由器请求( router solicitation)的配置信息。路由器以一个包含一个可聚集全球单点传送地址前缀和其它相关配置信息的路由器公告响应该请求。主机用它从路由器得到的全球地址前缀加上自己的接口ID,自动配置全球地址,然后就可以与Internet中的其它主机通信了。使用无状态自动配置,无需手动干预就能够改变网络中所有主机的IP地址。例如,当企业更换了联入Internet的ISP时,将从新ISP处得到一个新的可聚集全球地址前缀。ISP把这个地址前缀从它的路由器上传送到企业路由器上。由于企业路由器将周期性地向本地链路中的所有主机多点传送路由器公告,因此企业网络中所有主机都将通过路由器公告收到新的地址前缀,此后,它们就会自动产生新的IP地址并覆盖旧的IP地址。
使用DHCPv6进行地址自动设定,连接于网络的机器需要查询自动设定用的DHCP服务器才能获得地址及其相关配置。可是,在家庭网络中,通常没有DHCP服务器,此外在移动环境中往往是临时建立的网络,在这两种情况下,当然使用无状态自动设定方法为宜。
4、网络层的认证与加密
安全问题始终是与Internet相关的一个重要话题。由于在 IP协议设计之初没有考虑安全性,因而在早期的Internet上时常发生诸如企业或机构网络遭到攻击、机密数据被窃取等不幸的事情。为了加强Internet的安全性,从1995年开始,IETF着手研究制定了一套用于保护IP通信的IP安全(IPSec)协议。IPSec是IPv4的一个可选扩展协议,是IPv6的一个必须组成部分。
IPSec的主要功能是在网络层对数据分组提供加密和鉴别等安全服务,它提供了两种安全机制:认证和加密。认证机制使 IP通信的数据接收方能够确认数据发送方的真实身份以及数据在传输过程中是否遭到改动。加密机制通过对数据进行编码来保证数据的机密性,以防数据在传输过程中被他人截获而失密。IPSec的认证报头(Authentication Header,AH)协议定义了认证的应用方法,安全负载封装(Encapsulating Security Payload,ESP)协议定义了加密和可选认证的应用方法。在实际进行IP通信时,可以根据安全需求同时使用这两种协议或选择使用其中的一种。AH和ESP都可以提供认证服务,不过,AH提供的认证服务要强于ESP。
IPSec定义了两种类型的SA:传输模式SA和隧道模式SA。传输模式SA是在IP报头(以及任何可选的扩展报头)之后和任何高层协议(如TCP或UDP)报头之前插入AH或ESP报头;隧道模式SA是将整个原始的IP数据包放入一个新的IP数据包中。在采用隧道模式SA时,每一个IP数据包都有两个IP报头:外部IP报头和内部IP报头。外部IP报头指定将对IP数据包进行IPSec处理的目的地址,内部IP报头指定原始IP数据包最终的目的地址。传输模式SA只能用于两个主机之间的IP通信,而隧道模式SA既可以用于两个主机之间的IP通信,还可以用于两个安全网关之间或一个主机与一个安全网关之间的IP通信。安全网关可以是路由器、防火墙或VPN设备。
做为IPv6的一个组成部分,IPSec是一个网络层协议。它只负责其下层的网络安全,并不负责其上层应用的安全,如Web、电子邮件和文件传输等。也就是说,验证一个Web会话,依然需要使用SSL协议。不过,TCP/IPv6协议簇中的协议可以从IPSec中受益,例如,用于IPv6的OSPFv6路由协议就去掉了用于IPv4的OSPF中的认证机制。
作为IPSec的一项重要应用,IPv6集成了虚拟专用网(VPN)的功能,使用IPv6可以更容易地、实现更为安全可靠的虚拟专用网。
5、服务质量的满足
基于IPv4的Internet在设计之初,只有一种简单的服务质量,即采用“尽最大努力”(Best effort)传输,从原理上讲服务质量QoS是无保证的。文本传输,静态图像等传输对QoS并无要求。随着IP网上多媒体业务增加,如IP电话、VoD、电视会议等实时应用,对传输延时和延时抖动均有严格的要求。
IPv6数据包的格式包含一个8位的业务流类别(Class)和一个新的20位的流标签(Flow Label)。最早在RFC1883中定义了4位的优先级字段,可以区分16个不同的优先级。后来在RFC2460里改为8位的类别字段。其数值及如何使用还没有定义,其目的是允许发送业务流的源节点和转发业务流的路由器在数据包上加上标记,并进行除默认处理之外的不同处理。一般来说,在所选择的链路上,可以根据开销、带宽、延时或其他特性对数据包进行特殊的处理。
一个流是以某种方式相关的一系列信息包,IP层必须以相关的方式对待它们。决定信息包属于同一流的参数包括:源地址,目的地址,QoS,身份认证及安全性。IPv6中流的概念的引入仍然是在无连接协议的基础上的,一个流可以包含几个TCP连接,一个流的目的地址可以是单个节点也可以是一组节点。IPv6的中间节点接收到一个信息包时,通过验证他的流标签,就可以判断它属于哪个流,然后就可以知道信息包的QoS需求,进行快速的转发。
6、对移动通讯更好的支持
未来移动通信与互联网的结合将是网络发展的大趋势之一。移动互联网将成为我们日常生活的一部分,改变我们生活的方方面面。权威机构预计,到2005年,全球将有14亿移动电话用户,其中10亿为移动互联网用户。移动互联网不仅仅是移动接入互联网,它还提供一系列以移动性为核心的多种增值业务:查询本地化设计信息、远程控制工具、无限互动游戏、购物付款等。
移动IPv6的设计汲取了移动IPv4的设计经验,并且利用了IPv6的许多新的特征,所以提供了比移动IPv4更多的、更好的特点。移动IPv6成为IPv6协议不可分割的一部分,更详细的介绍请看:Mobile IP 技术专题。
IPv6的产生
2.1 什么是IPv6协议?
IPv6协议是IP协议第6版本,是作为IPv4协议的后继者而设计的新版本的IP协议。IPv6相比IPv4主要有以下一些变化:
扩展的寻址能力
IPv6将IP地址长度从32位扩展到128位,支持更多级别的地址层次、更多的可寻址节点数以及更简单的地址自动配置。通过在组播地址中增加一个“范围”域提高了多点传送路由的可扩展性。还定义了一种新的地址类型,称为“任意播地址”,用于发送包给一组节点中的任意一个;
简化的报头格式
一些IPv4报头字段被删除或变为了可选项,以减少包处理中例行处理的消耗并限制IPv6报头消耗的带宽;
对扩展报头和选项支持的改进
IP报头选项编码方式的改变可以提高转发效率,使得对选项长度的限制更宽松,且提供了将来引入新的选项的更大的灵活性;
标识流的能力
增加了一种新的能力,使得标识属于发送方要求特别处理(如非默认的服务质量获“实时”服务)的特定通信“流”的包成为可能;
认证和加密能力
IPv6中指定了支持认证、数据完整性和(可选的)数据机密性的扩展功能。
2.2 IPv6最初出现是在什么时候?导致IPv6出现的原因是什么?
IETF于1992年开始开发IPv6协议,1995年12月在RFC1883中公布了建议标准(proposal standard),1996年7月和1997年11月先后发布了版本2和2.1的草案标准(draft standard),1998年12月发布了标准RFC2460。
IPv6是为了解决现行Internet出现的问题而诞生的。现存的IPv4网络潜伏着两大危机:地址枯竭和路由表急剧膨胀。IPv6的出现将从根本上解决这些问题。IPv6继承了IPv4的优点,并根据IPv4多年来运行的经验进行了大幅度的修改和功能扩充,比IPv4处理性能更加强大、高效。与互联网发展过程中涌现的其它技术概念相比,IPv6可以说是引起争议最少的一个。人们已形成共识,认为IPv6取代IPv4是必然发展趋势,其主要原因归功于IPv6几乎无限的地址空间。
2.3 什么是IPng?IPng的设计目标是什么?
早在20世纪90年代初期,互联网工程任务组IETF(Internet Engineering Task Force)就开始着手下一代互联网协议IP-the next generation(IPng)的制定工作。IETF在RFC1550里进行了征求新的IP协议的呼吁,并公布了新的协议需要实现的主要目标是:
· 支持几乎无限大的地址空间;
· 减小路由表的大小;
· 简化协议,使路由器能更快地处理数据包;
· 提供更好的安全性,实现IP级的安全;
· 支持多种服务类型,尤其是实时业务;
· 支持多点传送,即支持组播;
· 允许主机不更改地址实现异地漫游;
· 支持未来协议的演变;
· 允许新旧协议共存一段时间;
· 支持未来协议的演变以适应底层网络环境或上层应用环境的变化;
· 支持自动地址配置;
· 协议必须能扩展,它必须能通过扩展来满足将来因特网的服务需求;扩展必须是不需要网络软件升级就可实现的;
· 协议必须支持可移动主机和网络。
2.4 针对IPng的设计目标有哪些提案?
20世纪90年代初期,IETF提出了IPng的设计原则之后,共有如下针对IPng的提案被提出:
TUBA:含有更多地址的TCP和UDP,建议采用ISO/OSI的CLNP协议来代替IPv4,这种解决方案允许用户有20字节的NSAP地址,以及一个可以使用的OSI传输协议的平台;
IPv7,TP/IX,CATNIP:IPv7是1992年由Robert Ullmann提出的。1993年,RFC1475进行了更详细的描述,其标题为“TP/IX:下一代的Internet”,TP/IX有64位地址。TP/IX后来演变成了RFC1707中定义的另一个协议CATNIP(Common Architecture for the Internet)。该方案包含了诸如快速信息包处理和新的RAP路由协议等观点,试图为IP、CLNP和IPX等信息包定义一个统一的格式,为众多的传输协议如OSI/TP4、TCP、UDP和SPX等提供支持;
IP in IP,IPAE:IP in IP是1992年提出的建议,计划采用两个IPv4层来解决互联网地址的匮乏:一层用于全球骨干网络,另一层用于某些特定的范围。到了1993年,这个建议得到了进一步的发展,名称也改为了IPAE(IP Address Encapsulation),并且被采纳为SIP的过渡方案;
SIP(Simple IP):由Steve Deering在1992年11月提出的,他的想法是把IP地址改为64位,并且去除IPv4中一些已经过时的字段。这个建议由于其简单性立刻得到了许多公司的支持;
PIP(Paul's Internet Protocol):由Paul Francis提出,PIP是一个基于新的结构的IP。PIP支持以16位为单位的变长地址,地址间通过标识符进行区分,它允许高效的策略路由并实现了可移动性。1994年9月,PIP和SIP合并,称为SIPP;
SIPP(Simple IP Plus):试图结合SIP的简单性和PIP路由的灵活性。SIPP设计为在高性能的网络上运作,比如ATM,同时也可以在低带宽的网络上运行,如无线网络。SIPP去掉了IPv4报头的一些字段,使得报头很小,并且采用64位地址。与IPv4将选项作为IP头的基本组成部分不同,SIPP中把IP选项与报头进行了隔离。选项(如果有)将被放在报头后的数据报中并位于传输层协议头之前。使用这种方法后,路由器只有在必要的时候才会对选项头进行处理,这样就提高了对于所有数据进行处理的性能。
2.5 IPv6是如何成为IPng的标准的?
1994年7月,IETF决定以SIPP作为IPng的基础,同时把地址数由64位增加到128位。新的IP协议称为IPv6,其版本是在1994年由IETF批准的RFC1752。
制定IPv6的专家们充分总结了早期制定IPv4的经验以及互联网的发展和市场需求,认为下一代互联网协议应侧重于网络的容量和网络的性能。IPv6继承了IPv4的优点,摒弃了它的缺点。IPv6与IPv4是不兼容的,但它同所有其他的TCP/IP协议族中的协议兼容,即IPv6完全可以取代IPv4。同IPv4相比较,IPv6在地址容量、安全性、网络管理、移动性以及服务质量等方面有明显的改进,是下一代互联网可采用的比较合理的协议。
2.6 IPv6和IPng的区别是什么?
目前,国际上主要由IETF(internet engeering task force)负责IPv6的标准制定工作。IPng问题就是在IPv4的地址空间出现危机时提出的,地址即将耗尽和路由表的过度膨胀是促使IPng问题产生的直接原因。IETF的IPng工作组在1994年9月提出了一个正式的草案“The Recommendation for the IP Next Generation Protocol”;1995年底确定了IPng的协议规范,分配了版本号6(版本号5已经分配给另一个草案),称为“IP version 6”(IPv6),同现在使用的版本4相区别;1998年又作了较大的改动。
简单说,IPng更像是为“修订IP”而提出的一个概念性的名字,没有一个具体的协议叫做IPng,它是所有有关的下一代互联网协议的总称,而IPv6是IPng协议中的一个具体的协议。
2.7 为什么在IPv4后直接就用IPv6,而不是IPv5?
IPv4是在20世纪80年代初期实现的,在90年代初期提出了以新的版本代替IPv4的提议,主要是为了克服IPv4的地址局限性。在1994年7月选出了继任者并命名为IPv6。作为一种网络设备地址表示的手段,IPv6是IP的有效新一代地址表示的协议。其实也有IPv5,只是IPv5已经用在TCP/IP协议族中的视频流媒体服务方面了。