IPv4向IPv6过渡的技术与过程
发布时间:2006-10-14 8:05:45   收集提供:gaoqian
韩 宇1,罗卫兵2,姜 琳2


  (1.武警重庆总队通信站 四川 重庆401147;2.武警工程学院 陕西 西安710086)

  摘 要:研究IPv4向IPv6过渡的技术及过程,介绍了IPv6与IPv4互通技术出现的背景,以及IPv4向IPv6过渡的三种基本技术,分析了过渡期间IPv6“小岛”间以及IPv6“小岛”与IPv4“海洋”间的互通关系及解决方案,阐述了IPv4向IPv6分阶段过渡的过程。

  关键词:IPv6;IPv4;IP过渡技术;Internet Technology and Process of the Transition from IPv4 to IPv6

  HAN Yu1,LUO Weibing2,JIANG Lin3

  (1.Communication Station,CAPFChongqing Branch,Chongqing,401147,China;2.CAPFEngineering College,Xi′an,710086,China)

  Abstract:It studies the technology and process of the transition from IPv4 to IPv6.The background of the intercommunicatetechnology ofIPv4 and IPv6 is presented,and three type ofbasic technology ofthe transition from IPv4 to IPv6 has been shown as therelationship ofIPv6 islands and IPv4 ocean,the intercommunicate solution ofthe transition period.How the transition step by stepevolutionalprocedure also was illuminated in detail.

  Keywords:IPv6;IPv4;IPtechnology transition;Internet

  1 IPv6与IPv4互通技术出现的背景及现状

  随着Internet的日益膨胀,现有的IPv4地址已经十分紧缺,虽然使用分配临时IPv4地址或网络地址翻译(NAT)等地址使用技术,在一定程度上缓解了IPv4地址不足的状况,但同时也增加了地址解析和处理方面的开销,导致某些高层应用失效,而且仍然无法回避IPv4地址即将被分配殆尽这个问题。采用长度为128 b IP地址的IPv6协议,彻底解决了IPv4地址不足的难题,并且在地址容量、安全性、网络管理、移动性以及服务质量等方面有明显的改进,是下一代互联网络协议采用的核心标准之一。IPv6与IPv4不兼容,但他同所有其他的TCP/IP协议族中的协议兼容,即IPv6完全可以取代IPv4。

  在IPv6成为主流协议之前,首先使用IPv6协议栈的网络希望能与当前仍被IPv4支撑着的Internet进行正常通信,因此必须开发出IPv4/IPv6互通技术以保证IPv4能够平稳过渡到IPv6。此外,互通技术应该对信息传递做到高效无缝。国际上IETF组建了专门的NGTRANS工作组开展对于IPv4/IPv6过渡问题和高效无缝互通问题的研究。目前已经出现了多种过渡技术和互通方案,这些技术各有特点,用于解决不同过渡时期、不同环境的通信问题,有些已经相当成熟并形成了RFC,有些还只是作为 Internet draft有待完善。

  2 IPv6与IPv4互通的3种基本技术

  目前解决过渡问题的基本技术主要有3种:双协议栈(RFC2893 obsolete RFC1933),隧道技术(RFC2893),NAT-PT(RFC2766)。

  2.1 双协议栈(DualStack)

  双协议栈技术是使IPv6节点与IPv4节点兼容的最直接方式,应用对象是主机、路由器等通信节点。支持双协议栈的IPv6节点与IPv6节点互通时使用IPv6协议栈,与IPv4节点互通时借助于4over6使用IPv4协议栈。IPv6节点访问IPv4节点时,先向双栈服务器申请一个临时IPv4地址,同时从双栈服务器得到网关路由器的TEP(TunnelEndPoint)IPv6地址。IPv6节点在此基础上形成一个4 over 6的IP包,4 over 6包经过IPv6网传到网关路由器,网关路由器将其IPv6头去掉,将IPv4包通过IPv4网络送往IPv4节点。网关路由器要记住IPv6源地址与IPv4临时地址的对应关系,以便反方向将IPv4节点发来的IP包转发到IPv6节点。采用双协议栈方式互通时的系统如图1所示。



  这种方式对IPv4和IPv6提供了完全的兼容,但由于需要双路由基础设施,增加了网络的复杂度,依然无法解决IP地址耗尽的问题。

  2.2 隧道技术(Tunnel)

  隧道技术提供了一种以现有IPv4路由体系来传递IPv6数据的方法:将IPv6包作为无结构意义的数据,封装在IPv4包中,被IPv4网络传输。根据建立方式的不同,隧道技术可分为手工配置隧道和自动配置隧道两类。隧道技术巧妙地利用了现有的IPv4网络,他的意义在于提供了一种使IPv6的节点间能够在过渡期间通信的方法,但他不能解决IPv6节点与IPv4节点间互通的问题。

  2.3 NAT-PT

  NAT-PT是一种纯IPv6节点和IPv4节点间的互通方式,所有包括地址、协议在内的转换工作都由网络设备来完成。支持NAT-PT的网关路由器应具有IPv4地址池,在从IPv6向IPv4域中转发包时使用。此外网关路由器支持DNS-ALG(DNS,应用层网关),在IPv6节点访问IPv4节点时发挥作用。采用NAT-PT方式互通时的系统构成如图2所示。



  NAT-PT方式的优点是不需要进行IPv4,IPv6节点的升级改造,缺点是IPv4节点访问IPv6节点的实现方法比较复杂,网络设备进行协议转换、地址转换的处理开销较大,一般在其他互通方式无法使用的情况下使用。

  3 过渡期间IPv6和IPv4互通的解决方案

  过渡初期,Internet将由运行IPv4的“海洋”和运行IPv6的“小岛”组成,随着时间的推移,IPv4“海洋”将逐渐变小,而IPv6“小岛”将越来越多,最终彻底取代IPv4。在过渡期要解决的互通问题可分成2大类:第一类是解决IPv6“小岛”间的互通问题;第二类则解决IPv6“小岛”与IPv4“海洋”间互通的问题。

  3.1 IPv6“小岛”之间的互通方式

   (1)手工配置隧道(Configured Tunnel)

  这种隧道是手工配置建立的,隧道的端点地址由配置决定,不需要为节点分配特殊的IPv6地址,适用于经常通信的IPv6节点之间使用。每个隧道的封装节点必须保存隧道终点地址,当IPv6包在隧道上传输时,终点地址会作为IPv4包的目的地址进行封装。通常封装节点要根据路由信息决定这个包是否通过隧道转发。采用手工配置隧道 方式进行互通的节点间必须有可用的IPv4连接,并且至少要具有一个全球惟一的IPv4地址,每个节点都要支持IPv6,路由器需要支持双协议栈,在隧道要经过NAT设施的情况下该机制失效。

  (2)自动配置隧道(Auto-configured Tunnel)

  这种隧道的建立和拆除是动态的,其端点根据分组的目的地址确定,适用于不经常通信的节点间使用。自动配置隧道需要节点采用IPv4兼容的IPv6地址(IPv4ADDR::/96),这些节点间必须有可用的IPv4连接,采用这种机制的节点需要有一个全球惟一的IPv4地址。采用这种机制不能解决IPv4地址空间耗尽的问题,并且如果把Internet上全部IPv4路由表包括到IPv6网络中,将会加剧路由表的膨胀。这种隧道的两个端点都必须支持双协议栈,在隧道要经过NAT设施的情况下该机制失效。

  (3)TunnelBroker

  TunnelBroker是一种方便构造隧道的机制,可以简化隧道的配置过程,适用于单个主机获取IPv6连接的情况。TunnelBroker要求隧道的双方都支持双协议栈并有可用的IPv4连接,在隧道要经过NAT设施的情况下该机制失效。TB转换机制包括TunnelServer(TS)和TunnelBroker(TB),Server和Boker位于不同的主机上,隧道的控制通常是web形式的。

  (4)6 over 4,IPv4多播隧道

  6 over 4是一种自动建立隧道的机制,采用前提是IPv4网络基础设施支持IPv4多播。该机制适用于IPv6路由器上无直接物理链路连接的孤立IPv6主机,使得他们能够将IPv4广播域作为他们的虚拟链路,成为功能完全的IPv6节点。采用这种方法连接的IPv6节点不需要IPv4兼容地址和手工配置隧道。当采用6 over 4的节点通过一台支持6 over 4的路由器与外界相连时,节点内的主机可以和外部IPv6节点通信,但6 over4没有解决孤立的IPv6节点连接到全球性IPv6 Internet的问题。

  (5)6 to 4

  6 to 4要求采用自动从节点的IPv4地址派生出的特殊IPv6地址(IPv4ADDR::/48),所以采用6 to 4机制的节点必须至少具有一个全球惟一的IPv4地址。由于隧道端点的IPv4地址可以从IPv6地址中提取,所以隧道是自动建立的,这种机制适用于运行IPv6的节点之间的互通。6to 4要求隧道中路由器支持双协议栈和6 to 4,主机至少支持IPv6协议栈。6 to 4机制允许在采用6 to 4的IPv6节点和纯IPv6节点之间通过运行BGP4+的中继路由器(6to 4 Relay Router)进行互通。这种机制把广域的IPv4网络作为一个单播的点到点链路层,适合作为IPv4/IPv6共存的初始阶段的转换工具。

  3.2 IPv6“小岛”与IPv4“海洋”之间的互通方式

  (1)DualStack Model23

  在这种模型下任意节点都是完全双协议栈的,不存在IPv4与IPv6之间的互通问题,但是这种机制要给每一个IPv6的节点分配一个IPv4地址。这种方法不能缓解IPv4地址资源不足的问题,而且随着IPv6节点的增加会很难得到满足。

  (2)SIIT(Stateless IP/ICMPTranslation)

  SIIT定义了在IPv4和IPv6的分组报头之间进行翻译的方法,这种机制可以和其他机制(如NAT-PT结合用于纯IPv6节点同纯IPv4节点间的互通,但在采用网络层加密和数据完整性保护的环境下这种技术失效。

  (3)NAT-PT(Network Address Translation- ProtocolTranslation)

  NAT-PT就是在做IPv4/IPv6地址转换(NAT)的同时在IPv4分组和IPv6分组之间进行报头和语义的翻译(PT),适用于纯IPv4节点和纯IPv6节点之间的互通。对于一些内嵌地址信息的高层协议(如FTP),NAT-PT需 要和应用层的网关协作来完成翻译。在实现方面,如果没有DNS-ALG的支持,只能实现由IPv6发起的与IPv4之间的通信,反之,包就会被丢弃;如果有DNS-ALG的支持,就可以实现双向的通信。

  除了上述3种互通方式,IPv6“小岛”与IPv4“海洋”间还可以通过BIS,BIA,SOCKS64,TRT,ALG等方式进行互通。

  4 IPv4向IPv6平稳过渡技术的发展形式

  从前面总结的过渡机制可以看出,每种机制都不是普遍适用的,都只适用于某一种或几种特定的网络情况,而且常常需要和其他技术组合使用。在实际应用时要综合考虑各种实际情况制定合适的过渡策略。 在IPv4向IPv6过渡时期,通常应采用如下的组网原则:

  (1)在能直接建立IPv6链路的情况下使用纯IPv6路由。

  (2)在不能使用IPv6链路的情况下,IPv6节点之间使用隧道技术。

  (3)双协议栈的IPv6/IPv4节点和纯IPv6节点或者纯IPv4的节点通信不需要采用协议转换,而直接“自动”选择相应的通信协议(IPv4或者IPv6)。

  (4)对于纯IPv6节点和纯IPv4节点之间的互通,则应该使用协议转换(NAT-PT)或者应用层网关(ALG)技术,设计的协议转换器或者ALG应该尽量保证在不修改原有应用的情况下就可以使用。

  相应于上述组网原则,我们认为IPv4向IPv6过渡采用 分阶段演进是最为可行的方式,概括起来有以下4个阶段:

  第一阶段,IPv4“海洋”中开始有越来越多的IPv6“小岛”。这时,必然需要各种适当的过渡机制,可供选择的机制主要有隧道代理,6 over 4, 6to 4, NAT-PT。

  第二阶段,越来越多的IPv6“小岛”逐渐变大、变多,成为与IPv4“海洋”不相上下的另一个“海洋”,采用NAT的过渡机制可能会更有效率。

  第三阶段,与第一阶段正好相反,即IPv6成为整个网络世界的主流,而IPv4网络越来越少,形成IPv6“海洋” 和IPv4“小岛”并存的情形,可能采用的过渡机制有NAT-PT和DSTM。

  第四阶段,IPv6成功应用,那时应该是纯IPv6“海洋”,IPv4“小岛”也不存在了。这时已不需要过渡技术,各网络节点间都采用基于IPv6的通信方式。

  IPv4自身的局限性注定了IPv4支撑的Internet会逐渐、平稳地过渡到以IPv6为核心的新一代Internet,在不同的过渡阶段、不同的网络环境应分别采用不同的过渡技术和机制。

  迄今为止,还没有一种普遍适用的标准过渡机制,现有过渡机制各有优缺点和各自不同的适用范围,只有因地制宜、科学分析,在不同的过渡阶段明确应用的类型、范围和系统类型,合理选择转换机制,才能更顺利地以较小的代价实现IPv4网络向IPv6的平稳过渡。

  参考文献

  [1]Gilligan R,Nordmark E.Transition mechanismsfor IPv6 hostsand routers[S].IETFRFC2893.August2000.

  [2]Tsirtsis G,Srisuresh P.Network address trans-lation-protocol translation(NAT-PT)[S].IETFRFC2766.February 2000.

  [3]CarpenterB,Moore K.Connection ofIPv6 domainsvia IPv4 clouds[S].IETFRFC3056.February2001.

  [4]Carpenter B,Jung C.Transmission of IPv6 overIPv4 domains withoutexplicittunnels[S].IETF

  RFC2529.March 1999.

  [5]Nordmark E.Stateless IP/ICMPtranslation algorithm(SIIT)[S].IETFRFC 2765.February2000.

  [6]AndrewTaneabaumS.计算机网络(第3版)[M].北京:清华大学出版社,1998.


摘自 现代电子技术
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50