现在的位置: 首页 > 综合 > 正文

IPV6技术白皮书

2013年10月28日 ⁄ 综合 ⁄ 共 21175字 ⁄ 字号 评论关闭

前言

下一代互联网络是未来信息社会的制高点,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协议族中的视频流媒体服务方面了。

IPv6协议技术特点

3.1 IPv6相对于IPv4有哪些较为显著的优势?
 
相对于IPv4,IPv6有如下一些显著的优势:
 
(1)地址容量大大扩展,由原来的32位扩充到128位,彻底解决IPv4地址不足的问题;支持分层地址结构,从而更易于寻址;扩展支持组播和任意播地址,这使得数据包可以发送给任何一个或一组节点;
 
(2)大容量的地址空间能够真正的实现无状态地址自动配置,使IPv6终端能够快速连接到网络上,无需人工配置,实现了真正的即插即用;
 
(3)报头格式大大简化,从而有效减少路由器或交换机对报头的处理开销,这对设计硬件报头处理的路由器或交换机十分有利;
 
(4)加强了对扩展报头和选项部分的支持,这除了让转发更为有效外,还对将来网络加载新的应用提供了充分的支持;
 
(5)流标签的使用让我们可以为数据包所属类型提供个性化的网络服务,并有效保障相关业务的服务质量;
 
(6)认证与私密性:IPv6把IPSec作为必备协议,保证了网络层端到端通信的完整性和机密性;
 
(7)IPv6在移动网络和实时通信方面有很多改进。特别地,不像IPv4,IPv6具备强大的自动配置能力从而简化了移动主机和局域网的系统管理。

3.2 报头结构            

 
3.2.1 IPv6的报头结构是怎样的?                      
 
     新的IPv6报头的结构比IPv4简单得多, IPv6报头中删除了IPv4报头中许多不常用的域,放入了可选项和报头扩展中;IPv6中的可选项有更严格的定义。IPv4中有10个固定长度的域、2个地址空间和若干个选项,IPv6中只有6个域和2个地址空间。
 
      虽然IPv6报头占40字节,是24字节IPv4报头的1.6倍,但因其长度固定(IPv4报头是变长的),故不需要消耗过多的内存容量。
 
      IPv4中的报头长度(header length)、服务类型(type of service,TOS)、标识符(identification)、标志(flag)、分段偏移(fragment offset)和报头校验和(header  checksum)这6个域被删除。报文总长(total length)、协议类型(protocol type)和生存时间(time to live,TTL)3个域的名称或部分功能被改变,其选项(options)功能完全被改变,新增加了2个域,即优先级和流标签。
 
 
下图为具体的IPv4与IPv6报头比较。
 
表1 IPv4包头格式
4bit版本号
4bit报头长度
8bit服务类型
16bit数据包长度
标识符(16bit)
标志(4bit)
分段偏移(12bit)
生存时间(8bit)
传输协议(8bit)
报头校验和(16bit)
源IP地址(32bit)
目的IP地址(32bit)
选项(24bit)
填充(8bit)
           
 
表2 ipv6包头格式
4bit版本号
4bit优先级
24bit流标签
净荷长度(16bit)
下一报头(8bit)
HOP限制(8bit)
源IP地址(128bit)
目的IP地址(128bit)
         
 
 
3.3 地址问题                       
 

3.3.1 为什么IPv6协议的地址长度是128位?

    有些人也许要问,IPv4地址不够用,那我在IPv4上再增加几位地址表示就行了,何必非要是IPv6的128位呢?这种提问是对芯片设计及CPU处理方式不理解造成的,同时也对未来网络的扩展没有充分的预见性。芯片设计中数值的表示我们知道是全用“0”、“1”代表,CPU处理字长发展到现在分别经历了4位、8位、16位、32位、64位等,我们知道,在计算机中,当数据能用2的指数次幂字长位的二进制数表示时,CPU对数值的处理效率最高。IPv4地址对应的是32比特字长就是因为当时的互联网上的主机CPU字长为32位。现在的64位机已十分普及,128位机正在成长中。将地址定为64位在网络扩展性上显得不足,定为其它的一个长度在硬件芯片设计、程序编制方面的效率都将下降,因此从处理效率和未来网络扩展性上考虑,将IPv6的地址长度定为128位是十分合适的。

3.3.2 IPv6的128位地址是一个什么概念?

   IPv6提供128位的地址空间,IPv6所能提供的巨大的地址容量可以从以下几个方面来说明:
 
    共有2128个不同的IPv6地址,也就是全球可分配地址数为340,282,366,920,938,463,463,374,607,431,768,211,456个;
 
    若按土地面积分配,每平方厘米可获得2.2*1020个地址。
 
    IPv6地址耗尽的机会是很小的。在可预见的很长时期内,IPv6的128位地址长度形成的巨大的地址空间能够为所有可以想象出的网络设备提供一个全球唯一的地址,IPv6充足的地址空间将极大地满足那些伴随着网络智能设备的出现而对地址增长的需求,例如个人数据助理(PDA)、移动电话(Mobile Phone)、家庭网络接入设备(HAN)等。
 

3.3.3 IPv6地址是如何表示的?

    IPv4地址表示为点分十进制格式,32位的地址分成4个8位分组,每个8位写成十进制,中间用点号分隔。而IPv6的128位地址则是以16位为一分组,每个16位分组写成4个十六进制数,中间用冒号分隔,称为冒号分十六进制格式。例如:21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A 是一个完整的IPv6地址。
 
IPv6的地址表示有以下几种特殊情形:
 
     IPv6地址中每个16位分组中的前导零位可以去除做简化表示,但每个分组必须至少保留一位数字。如上例中的地址,去除前导零位后可写成:21DA:D3:0:2F3B:2AA:FF:FE28:9C5A。
 
    某些地址中可能包含很长的零序列,为进一步简化表示法,还可以将冒号十六进制格式中相邻的连续零位合并,用双冒号“::”表示。“::”符号在一个地址中只能出现一次,该符号也能用来压缩地址中前部和尾部的相邻的连续零位。例如地址1080:0:0:0:8:800:200C:417A,0:0:0:0:0:0:0:1,0:0:0:0:0:0:0:0分别可表示为压缩格式1080::8:800:200C:417A,::1,:: 。
 
    在IPv4和IPv6混合环境中,有时更适合于采用另一种表示形式:x:x:x:x:x:x:d.d.d.d,其中x是地址中6个高阶16位分组的十六进制值,d是地址中4个低阶8位分组的十进制值(标准IPv4表示)。例如地址0:0:0:0:0:0:13.1.68.3 ,0:0:0:0:0:FFFF:129.144.52.38 写成压缩形式为::13.1.68.3,::FFFF.129.144.52.38 。
 
     要在一个URL中使用文本IPv6地址,文本地址应该用符号“[”和“]”来封闭。例如文本IPv6地址FEDC:BA98:7654:3210:FEDC:BA98:7654:3210写作URL示例为http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80/index.html
[NextPage]

3.3.4 IPv6地址为128位,配地址岂不是要花费很多时间?

 
    IPv6协议支持地址自动配置,这是一种即插即用的机制。IPv6节点通过地址自动配置得到IPv6地址和网关地址。
 
    IPv6支持无状态地址自动配置和状态地址自动配置两种地址自动配置方式。在无状态地址自动配置方式下,需要配置地址的网络接口先使用邻居发现机制获得一个链路本地地址。网络接口得到这个链路本地地址之后,再接收路由器宣告的地址前缀,结合接口标识得到一个全球地址。而状态地址自动配置的方式,如动态主机配置协议(DHCP),需要一个DHCP服务器,通过客户机/服务器模式从DHCP服务器处得到地址配置的信息。
 

3.3.5  IPv6地址都有哪些类型?

 
    所有类型的IPv6地址都被分配到接口,而不是节点。IPv6地址是单个或一组接口的128位标识符,有三种类型:
 
(1) 单播(Unicast)地址
 
单一接口的标识符。发往单播地址的包被送给该地址标识的接口。对于有多个接口的节点,它的任何一个单播地址都可以用作该节点的标识符。IPv6单播地址是用连续的位掩码聚集的地址,类似于CIDR的IPv4地址。IPv6中的单播地址分配有多种形式,包括全部可聚集全球单播地址、NSAP地址、IPX分级地址、站点本地地址、链路本地地址以及运行IPv4的主机地址。单播地址中有下列两种特殊地址:
 
 不确定地址
 
单播地址0:0:0:0:0:0:0:0称为不确定地址。它不能分配给任何节点。它的一个应用示例是初始化主机时,在主机未取得自己的地址以前,可在它发送的任何IPv6包的源地址字段放上不确定地址。不确定地址不能在IPv6包中用作目的地址,也不能用在IPv6路由头中;
 
 回环地址
 
单播地址0:0:0:0:0:0:0:1称为回环地址。节点用它来向自身发送IPv6包。它不能分配给任何物理接口。
 
(2) 任意播(AnyCast)地址
 
一组接口(一般属于不同节点)的标识符。发往任意播地址的包被送给该地址标识的接口之一(路由协议度量距离最近的)。IPv6任意播地址存在下列限制:
 
· 任意播地址不能用作源地址,而只能作为目的地址;
 
· 任意播地址不能指定给IPv6主机,只能指定给IPv6路由器;
 
 
                 IPv6任意播地址
 
(3) 组播(MultiCast)地址
 
一组接口(一般属于不同节点)的标识符。发往多播地址的包被送给该地址标识的所有接口。地址开始的11111111标识该地址为组播地址。
 
          IPv6组播地址
 
    IPv6中没有广播地址,它的功能正在被组播地址所代替。另外,在IPv6中,任何全“0”和全“1”的字段都是合法值,除非特殊地排除在外的。特别是前缀可以包含“0”值字段或以“0”为终结。一个单接口可以指定任何类型的多个IPv6地址(单播、任意播、组播)或范围。
 
3.3.6 什么是IPv6的可聚集全球单播地址?
 
    IPv6为点对点通信设计了一种具有分级结构的地址,这种地址被称为可聚集全球单播地址(Aggregatable Global Unicast Address),它在RFC2374中定义。可聚集地址具有三个层次的分级结构:
 
公用拓扑:提供公用互联网传送服务的供应商和交换局群体;
 
站点拓扑:本地的特定站点或组织,不提供到本站点以外节点的公用传送服务;
 
接口标识符:标识链路上的接口;
 
       可聚集全球单播地址的分级结构划分如下图所示。开始3个地址位是地址类型前缀,用于区别其它地址类型。其后的13位TLA ID、32位NLA ID、16位SLA ID和 64位主机接口ID,分别用于标识分级结构中自上向下排列的TLA (Top Level Aggregator,顶级聚集体)、NLA(Next Level Aggregator,下级聚集体)、SLA(Site Level Aggregator,站点级聚集体)和主机接口。RES保留,以备将来TLA或NLA扩充用。TLA是与长途服务供应商和电话公司相互连接的公共网络接入点,它从国际Internet注册机构如IANA处获得地址。NLA通常是大型ISP,它从TLA处申请获得地址,并为 SLA分配地址。SLA也可称为订户(subscriber),它可以是一个机构或一个小型ISP。SLA负责为属于它的订户分配地址。SLA通常为其订户分配由连续地址组成的地址块,以便这些机构可以建立自己的地址分级结构以识别不同的子网。分级结构的最底层是网络主机。 
  
 
        IPv6可聚集全球单播地址
 
     设计这样的地址格式是为了既支持基于当前供应商的聚集,又支持被称为交换局的新的聚集类型。其组合使高效的路由聚集可用于直接连接到供应商和连接到交换局两者的站点上。站点可以选择连接到两种类型中的任何一种聚集点。
 

3.3.7 IPv6的地址分配方式与IPv4有什么区别?

 
    IPv4中,地址是用户拥有的。也就是说,一旦用户从某机构处申请到一段地址空间,他就永远使用该地址空间,而不管他是从哪个因特网服务提供者(ISP)处获得服务。这种方式的缺点是ISP必须在路由表中为每个用户的网络号维护一条表项。随着用户数的增加,会出现大量无法会聚的特殊路由,即使无类别域间路由(CIDR)也不能处理这样的路由表爆炸现象。
 
    IPv6改变了地址的分配方式,从用户拥有变成了ISP拥有。全球网络号由因特网地址分配机构(IANA)分配给ISP,用户的全球网络地址是ISP地址空间的子集。每当用户改变ISP时,全球网络地址必须更新为新ISP提供的地址。这样ISP能有效地控制路由信息,避免路由爆炸现象的出现。
 

3.3.8 一台IPv6主机有多少地址?

 
    通常一台IPv6主机有多个IPv6地址,即使该主机只有一个单接口。一台IPv6主机可同时拥有以下几种单点传送地址:
 
· 每个接口的链路本地地址;
 
· 每个接口的单播地址(可以是一个站点本地地址和一个或多个可聚集全球地址);
 
· 回环(loopback)接口的回环地址(::1)。
 
此外,每台主机还需要时刻保持收听以下多点传送地址上的信息:
 
· 节点本地范围内所有节点组播地址(FF01::1);
 
· 链路本地范围内所有节点组播地址(FF02::1);
 
· 请求节点(solicited-node)组播地址(如果主机的某个接口加入请求节点组);
 
· 组播组组播地址(如果主机的某个接口加入任何组播组)。
 

3.3.9 一台IPv6路由器有多少地址?

 
一台IPv6路由器可被分配以下几种单点传送地址:
 
· 每个接口的链路本地地址;
 
· 每个接口的单播地址(可以是一个站点本地地址和一个或多个可聚集全球地址);
 
· 子网-路由器任意播地址;
 
· 其他任意播地址(可选);
 
· 回环接口的回环地址(::1)。
 
同样,除以上这些地址外,路由器需要时刻保持收听以下多点传送地址上的信息流:
 
· 节点本地范围内的所有节点组播地址(FF01::1);
 
· 节点本地范围内的所有路由器组播地址(FF01::2);
 
· 链路本地范围内的所有节点组播地址(FF02::1);
 
· 链路本地范围内的所有路由器组播地址(FF02::2);
 
· 站点本地范围内的所有路由器组播地址(FF05::2);
 
· 请求节点(solicited-node)组播地址(如果路由器的某个接口加入请求节点组);
 
· 组播组组播地址(如果路由器的某个接口加入任何组播组)。
 
 
3.4 地址自动配置技术                                 
 

3.4.1 IPv6如何实现“即插即用”?

 
     “即插即用”是指无需任何人工干预,就可以将一个节点插入IPv6网络并在网络中启动,IPv6使用了两种不同的机制来支持即插即用网络连接:启动协议(BOOTstrap Protocol,BOOTP)和动态主机配置协议(DHCP)。这两种机制允许IP节点从特殊的BOOTP服务器或DHCP服务器获取配置信息。这些协议采用“状态自动配置”(Stateful Autoconfiguration),即服务器必须保持每个节点的状态信息,并管理这些保存的信息。
 
     状态自动配置的问题在于,用户必须保持和管理特殊的自动配置服务器以便管理所有“状态”,即所容许的连接及当前连接的相关信息。对于有足够资源来建立和保持配置服务器的机构,该系统可以接受;但是对于没有这些资源的小型机构,工作情形较差。

3.4.2   除了状态自动配置,IPv6还提供什么自动配置服务?

 
     除了状态自动配置,IPv6还采用了一种被称为无状态自动配置(Stateless Auto Configuration)的自动配置服务。RFC2462中描述了IPv6的无状态自动配置。无状态自动配置要求本地链路支持组播,而且网络接口能够发送和接收组播包。无状态自动配置过程要求节点采用如下步骤:
 
     首先,进行自动配置的节点必须确定自己的链路本地地址;
 
     然后,必须验证该链路本地地址在链路上的唯一性;
 
     最后,节点必须确定需要配置的信息。该信息可能是节点的IP地址,或者是其他配置信息,或者两者皆有。如果需要IP地址,节点必须确定是使用无状态自动配置过程还是使用状态自动配置过程来获得。
 
     具体地说,在无状态自动配置过程中,主机首先通过将它的网卡MAC地址附加在链路本地地址前缀1111111010之后,产生一个链路本地单播地址(IEEE已经将网卡MAC地址由48位改为了64位。如果主机采用的网卡的MAC地址依然是48位,那么IPv6网卡驱动程序会根据IEEE的一个公式将48位MAC地址转换为64位MAC地址)。接着主机向该地址发出一个邻居发现请求(Neighbor Discovery Request),以验证地址的唯一性。如果请求没有得到响应,则表明主机自我配置的链路本地单播地址是唯一的。否则,主机将使用一个随机产生的接口ID组成一个新的链路本地单播地址。然后,以该地址为源地址,主机向本地链路中所有路由器多点传送一个路由器请求(Router Solicitation)来请求配置信息,路由器以一个包含一个可聚集全球单播地址前缀和其它相关配置信息的路由器宣告(Router Advertisement)作为响应。主机用它从路由器得到的全球地址前缀加上自己的接口ID,自动配置全球地址,然后就可以与Internet中的其它主机通信了。
 
       如果没有路由器为网络上的节点服务,也就是本地网络孤立于其他网络,则节点必须寻找配置服务器来完成其配置;否则,节点必须侦听路由器宣告报文。这些报文周期性地发往所有主机的组播地址,以指明诸如网络地址和子网地址等配置信息。节点可以等待路由器宣告,也可以通过发送组播请求给所有路由器的组播地址来请求路由器发送宣告。一旦收到路由器的响应,节点就可以使用响应的信息来完成自动配置。
 
       使用无状态自动配置,无需手动干预就能够改变网络中所有主机的IP地址。例如,当企业更换了联入Internet的ISP时,将从新ISP处得到一个新的可聚集全球地址前缀。ISP把这个地址前缀从它的路由器上传送到企业路由器上。由于企业路由器将周期性地向本地链路中的所有主机多点传送路由器宣告,因此企业网络中所有主机都将通过路由器宣告收到新的地址前缀,此后,它们就会自动产生新的IP地址并覆盖旧的IP地址。
[NextPage]

3.5 域名解析技术                       

3.5.1 IPv6域名系统的体系结构是什么样的?

 
       IPv6网络中的DNS与IPv4的DNS在体系结构上是一致的,都是采用树型结构的域名空间,如下图所示。IPv4协议与IPv6协议的不同并不意味着IPv4 DNS体系和IPv6 DNS体系需要各自独立,相反,DNS的体系和域名空间必须一致,即IPv4和IPv6共同拥有统一的域名空间。在IPv4到IPv6的过渡阶段,域名可以同时对应于多个IPv4和IPv6的地址。以后随着IPv6网络的普及,IPv6地址将逐渐取代IPv4地址。下图的最上方是DNS树形结构中唯一的一个根(Root),用点号“.”表示。根的下一级称为顶级域(Top Level Domain,TLD),也称一级域。顶级域的下级就是二级域(Second Level Domain,SLD),二级域的下级就是三级域,依次类推。每个域都是其上级域的子域(Sub Domain),比如“.net.cn”是“.cn”的子域,而“cnnic.net.cn”既是“net.cn”的子域,同时也是“.cn”的子域。
 
    DNS树上的每一个节点都有一个标识(Label),根节点的标识是“空”(即长度为0),其它节点的标识的长度在1到63字节之间。一个节点的域名是由从这个节点到根节点的路径上的所有标识从左到右顺序排列组成的,标识之间用“.”分隔。例如http://www.cnnic.net.cn/
 
 
      DNS的整个域名空间划分成许多的区(Zone),见上图中的椭圆标记,数据采用分布式存储。每个区都有域名服务器(包括主服务器和辅服务器),以资源记录(Resource Record)的形式来存储域名信息。资源记录包括了主机名(域名)和IP地址的对应,以及子域服务器的授权等多种类型。
 
      用户在使用DNS服务时,可以不必细致地了解DNS域名空间的树型结构体系,只需在设置网络时指定一个DNS服务器或使用动态主机配置(DHCP)等相关技术,从而使用户的应用程序可以通过操作系统内嵌的解析器(Resolver)访问DNS系统,查询域名相关的网络资源信息。

3.5.2  如何自动发现提供解析服务的DNS服务器?

 
(1) 无状态的DNS服务器发现
 
      无状态DNS服务器自动发现有以下几种方式:
 
     为子网内部的DNS服务器配置站点范围内的任意播地址。要进行自动配置的节点以该任意播地址为目的地址发送服务器发现请求,询问DNS服务器地址、域名和搜索路径等DNS信息。这个请求到达距离最近的DNS服务器,服务器根据请求,回答DNS服务器单播地址、域名和搜索路径等DNS信息。节点根据服务器的应答配置本机DNS信息,以后的DNS请求就直接用单播地址发送给DNS服务器。
 
      与第一种方式相同,只是不用站点范围内的任意播地址,而采用站点范围内的组播地址或链路组播地址等。
 
      一直用站点范围内的任意播地址作为DNS服务器的地址,所有的DNS解析请求都发送给这个任意播地址。距离最近的DNS服务器负责解析这个请求,得到解析结果后把结果返回请求节点,而不像第一种方式是把DNS服务器单播地址、域名和搜索路径等DNS信息告诉节点。
 
       从网络扩展性、安全性、实用性等多方面综合考虑,第一种采用站点范围内的任意播地址作为DNS服务器地址的方式相对较好。
 
(2) 有状态的DNS服务器发现
 
      有状态的DNS服务器发现方式是通过类似DHCP的服务器把DNS服务器地址、域名和搜索路径等DNS信息告知节点。当然,这需要额外的服务器。
 

3.5.3 在IPv4到IPv6的过渡阶段如何实现DNS?

 
     在IPv4到IPv6的过渡过程中,作为Internet基础架构的DNS服务也要支持这种网络协议的升级和转换。可以用两种方法实现IPv4到IPv6过渡阶段的DNS:

(1) DNS-ALG与NAT-PT相结合的方法

 
     IPv4和IPv6的DNS在记录格式等方面有所不同,为了实现IPv4网络和IPv6网络之间的DNS查询和响应,可以将应用层网关DNS-ALG与NAT-PT相结合,作为IPv4和IPv6网络之间的翻译器。例如,IPv4的地址域名映射使用“A”记录,而IPv6使用“AAAA”或“A6”记录。那么,IPv4节点发送到IPv6网络的DNS查询请求是“A”记录,DNS-ALG就把“A”改写成“AAAA”,并发送给IPv6网络中的DNS服务器。当服务器的回答到达DNS-ALG时,DNS-ALG修改回答,把“AAAA”改为“A”,把IPv6地址改成DNS-ALG地址池中的IPv4转换地址,把这个IPv4转换地址和IPv6地址之间的映射关系通知NAT-PT,并把这个IPv4转换地址作为解析结果返回IPv4主机。IPv4主机就以这个IPv4转换地址作为目的地址与实际的IPv6主机通过NAT-PT通信。这个过程示意如下图。
 
(2) 双协议栈方式
 
       对于采用双协议栈方式的过渡方法,在DNS服务器中同时存在“A”记录和“AAAA”(或“A6”)记录。由于节点既可以处理IPv4协议,也可以处理IPv6协议,因此无需类似DNS ALG的转换设备。无论DNS服务器回答“A”记录还是“AAAA”记录,都可以进行通信。
[NextPage] 
 

3.6 邻居发现

3.6.1 IPv6邻居发现协议包括哪些内容?

 
      IPv6定义了邻居发现协议(Neighbor Discovery protocol,NDP),它使用一系列IPv6控制信息报文(ICMPv6)来实现相邻节点(同一链路上的节点)的交互管理,并在一个子网中保持网络层地址和链路层地址之间的映射。邻居发现协议中定义了5种类型的信息:路由器宣告、路由器请求、路由重定向、邻居请求和邻居宣告。通过这些信息,实现了对以下功能的支持:
 
· 路由器发现:即帮助主机来识别本地路由器;
 
· 前缀发现:节点使用此机制来确定指明链路本地地址的地址前缀以及必须发送给路由器转发的地址前缀;
 
· 参数发现:帮助节点确定诸如本地链路MTU之类的信息;
 
· 地址自动配置:用于IPv6节点自动配置;
 
· 地址解析:替代了ARP和RARP,帮助节点从目的IP地址中确定本地节点(即邻居)的链路层地址;
 
· 下一跳确定:可用于确定包的下一个目的地,即可确定包的目的地是否在本地链路上。如果在本地链路,下一跳就是目的地;否则,包需要选路,下一跳就是路由器,邻居发现可用于确定应使用的路由器;
 
· 邻居不可达检测:帮助节点确定邻居(目的节点或路由器)是否可达;
 
· 重复地址检测:帮助节点确定它想使用的地址在本地链路上是否已被占用;
 
· 重定向:有时节点选择的转发路由器对于待转发的包而言并非最佳。这种情况下,该转发路由器可以对节点进行重定向,使它将包发送给更佳的路由器。例如,节点将发往Internet的包发送给为节点所在的内部网服务的默认路由器,该内部网路由器可以对节点进行重定向,以使其将包发送给连接在同一本地链路上的Internet路由器。

3.6.2 IPv6邻居发现协议与IPv4地址解析协议有什么区别?

 
     IPv6不再执行地址解析协议(ARP)或反向地址解析协议(RARP),而以邻居发现协议中的相应功能代替,IPv6邻居发现协议与IPv4地址解析协议主要区别如下:
 
      IPv4中地址解析协议ARP是独立的协议,负责IP地址到链路层地址的转换,对不同的链路层协议要定义不同的ARP协议。IPv6中邻居发现协议NDP包含了ARP的功能,且运行于因特网控制报文协议ICMPv6上,更具有一般性,包括更多的内容,而且适用于各种链路层协议;
 
     ARP协议以及ICMPv4路由器发现和ICMPv4重定向报文基于广播,而NDP协议的邻居发现报文基于高效的组播和单播;
 
    可达性检测的目的是确认相应IP地址代表的主机或路由器是否还能收发报文,IPv4没有统一的解决方案。NDP中定义了可达性检测过程,保证IP报文不会发送给“黑洞”。
 
 

3.7 超长数据传送问题                                 

 
3.7.1 IPv6如何解决超长数据的传送问题?
 
     IPv6要求互联网上的每条链路具有1280或更多个八位组的最大传输单元(MTU)。无法在一段之内传送1280个八位组的链路必须根据链路的情况在IPv6下层的协议中提供分段和重组机制。具有可配置MTU的链路,比如PPP链路必须配置为具有至少1280个八位组的MTU;要发送大于路径MTU的包,节点可以使用IPv6分段报头,在源节点将包分段,并在目的节点将包重组。
 
3.7.2 IPv6通信中源节点如何发现到目的节点的最大传输单元?
 
     RFC1981中描述了一种动态发现路径最大传输单元(PMTU)的方法。基本思想是源节点最初假定到目的节点的一条路径的PMTU是这条路径第一跳的已知MTU。如果发往这条路径的任何包由于太大而不能被路径上的一些节点转发,那些节点将丢弃这些包并发回ICMPv6包太大消息。源节点收到这样一个消息后应根据包太大消息中报告的MTU压缩的那一跳的MTU值减小它为这条路径假定的PMTU。当节点对PMTU的估计值小于或等于实际PMTU时路径MTU发现过程结束。要注意在这个过程中“发包-收到包太大消息”的循环可能反复多次,因为路径上总潜在可能存在MTU更小的链路。节点也可以通过停止发送比IPv6最小链路MTU大的包来终止这个发现过程。
 

3.8  路由技术                                    

3.8.1 IPv6在路由方面有什么新特点?
 
    IPv6采用聚类机制,定义了非常灵活的层次寻址及路由结构,同一层次上的多个网络在上层路由器中表示为一个统一的网络前缀,这样可以显著减少路由器必须维护的路由表项。在理想情况下,一个核心主干网路由器只须维护不超过8192个表项。这大大降低了路由器的寻路和存储开销。
 
    IPv6协议所带来的另一个特点是提供数据流标签,即流量识别。路由器可以识别属于某个特定流量的数据包,并且这条信息第一次接收时即被记录下来,下一次这个路由器接收到同样的流量数据包后,路由器采用识别的记录情况,而不需查对路径选择表,从而减少了数据处理的时间。
 
     多点传送路由是指目的地址是一个多点传送地址的信息包路由。在IPv6中,多点传送路由的问题与IPv4中类似,只是功能有所加强,分别成为了ICMPv6和OSPFv6的一部分,而不是IPv4中的单独协议,从而成为了IPv6整体的一部分。为了路由多点传送信息包,IPv6中创建了一个分布树(多点传送树)到达组里的所有成员。
 

3.8.2 IPv6中可用的路由协议包括哪些?

 
     IPv6主要使用三种路由协议:RIPv6(Routing Information Protocol,路由信息协议)、OSPFv6(Open Shortest Path First,开放最短路径优先)和IDRPv2(Inter-Domain Routing Protocol,域间路由协议)以及可能的EIGRP和双层

抱歉!评论已关闭.