对IPv4/IPv6过渡技术的分析与研究

时间:2022-05-14 04:28:15

对IPv4/IPv6过渡技术的分析与研究

摘要:该文对目前的三类IPv4/IPv6过渡技术进行了深入地分析,并在windows局域网环境上搭建了一个IPv4/IPv6过渡技术的测试平台,在此平台上对这三类过渡技术进行了进一步的研究。这对实现IPv4向IPv6的平滑过渡具有重要意义。

关键词:IPv6;双栈;网络地址协议转换;隧道

中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)34-1885-02

Analysis and Research on Transition Technology from IPv4 to IPv6

LAN Ji-ming, ZHANG Hai-yan

(Sichuan University of Science & Engineering, Zigong 643000, China)

Abstract: This paper analyzes three kinds of transition technology from IPv4 to IPv6 deeply, builds a testing platform for IPv4/IPv6 transition technology in the Windows LAN, and makes research on these technologies. This is very important to smooth transition from IPv4 to IPv6.

Key words: IPv6;dual stack;NAT-PT;tunnel

在20世纪90年代初,IETF(Internet Engineering Task Force)就开始着手对IP层进行研究,并在1996年发表的RFC1883-1887中正式阐述了IPv6的概念,试图解决IPv4所面临的局限性问题,并附加一些重要的功能。但是,在实际的应用中由于目前的Internet网络是基于IPv4协议的,其中存在大量的IPv4主机及各种IPv4网络设备,要想将IPv4彻底推倒,迅速完成从IPv4到IPv6的改造,这显然是不现实的,也是违背计算机行业“向下兼容”、逐步过渡的规律的。因此,IPv4和IPv6将在一段时期内共存和交互,IPv4必须平滑、无缝、安全地向IPv6逐步过渡,这将是Internet未来发展的必然。

为此,对IPv4/IPv6过渡技术的研究就是眼下一件十分迫切的任务,这对将来Internet的发展具有十分重要的意义,对从事计算机网络研究的人员来说,也是一个难得的机会。IETF下一代互联网过渡工作组NGTrans己经提出了一些过渡策略和技术,概括起来可分为三类:同时支持两种协议的双协议栈技术、采用IP数据报封装的隧道技术和透明转换技术(包括数据报头转换和协议转换)[1]。下面,本文就将对这三类IPv4/IPv6过渡技术进行深入地比较与分析。

1 IPv4向IPv6过渡的三类技术

1.1 双栈技术(Dual Stack,also known as Dual IP layer)

“双栈”是指单个结点同时支持IPv4和IPv6两种协议栈,这样的结点既可以基于IPv4协议直接与IPv4结点通信,也可以基于IPv6协议直接与IPv6结点通信,因此它可以作为IPv4网络和IPv6网络之间的衔接点,这样的结点也被称为IPv6/IPv4结点。IPv6/IPv4结点通常是采用一种双IP层结构来实现的[2],如图1所示。

但在实际应用中这种双IP层结构可能会有所变形。比如,在Windows XP和Windows Server 2003系列中的IPv6协议并没有照搬这种双IP层结构。它们是在IPv6协议的驱动程序(tcpip6.sys,此文件位于\WINDOWS\system32\drivers目录下)中分别包含了TCP和UDP协议的不同实现方案,这通常称为双栈结构,如图2所示。

采用双栈技术的网络不存在互通问题,具有一定的方便性。但这需要给每一个IPv6 结点分配一个IPv4地址,这就又将面临IPv4地址资源紧张的问题;另外,每个IPv6/IPv4结点都要同时运行IPv4和IPv6两种协议栈,同时保存两套命令集,同时计算、维护与存储两套表项,对网关设备而言还需要对两种协议栈进行报文转换和封装,这无疑又增加了每个结点的负担,对这些结点的性能产生更高的要求;还有,在采用双栈技术的网络中DNS服务器必须要支持主机域名与IPv6地址的映射[3]。采用双栈技术组建的网络示意图如图3所示。基于上述分析我们不难得知,双栈技术仅适合于IPv4向IPv6过渡的初期或者后期,在IPv6或者IPv4的小型孤岛上组建网络。

需要指出的是:双栈技术适合于IPv6/IPv4结点与IPv6结点或IPv4结点之间,以及所有IPv6/IPv4结点之间的相互通信,但并不适合于在IPv6-Only和IPv4-Only结点之间的通信。要实现IPv6-Only和IPv4-Only结点之间的相互通信,还必须结合IPv4/IPv6 地址和协议转换技术。双栈技术是处理IPv4/IPv6过渡问题最广泛和最简单的方式,也是其他过渡技术的基础。

1.2 转换技术

转换技术有多种层次的实现,包括网络层的SIIT、NAT-PT和BIS,传输层的TRT、BIA和SOCKS64,应用层的ALG。其中,NAT-PT(Network Address Translation and Protocol Translation)是一种在IPv4-Only和IPv6-Only结点之间实现互通的技术,比较常用。

NAT-PT技术有静态和动态之分。静态NAT-PT技术是在NAT-PT网关静态配置IPv6和IPv4地址的绑定关系。当IPv4主机和IPv6主机之间互通报文时,NAT-PT网关根据静态配置的绑定关系进行转换,且任何一侧主机都可以主动向另一侧发起连接。这种技术原理简单,适合永久在线或需要提供稳定连接的应用场合。但是当有很多主机需要转换时,这种静态的配置和维护工作就显得过于复杂,而且会消耗很多的IPv4地址,所以这不适合在大规模的网络中使用。

动态NAT-PT技术则采用动态地址映射和上层协议映射的方法,使大量的IPv6地址可以通过很少的IPv4地址进行转换,这就不会消耗大量的IPv4地址。采用动态NAT-PT技术的网关路由器会向IPv6域中一个路由前缀PREFIX::/96,凡是具有该前缀的IPv6包都被送往网关路由器。网关路由器为了支持NAT-PT功能,还具有IPv4地址池,在从IPv6向IPv4网络中转发包时使用,也可以通过端口复用的方式使多个IPv6用户共用一个IPv4临时地址。

在采用动态NAT-PT技术的网络中,若连接首先从IPv4端发起,则IPv4端无法知道IPv6端随机映射后的IPv4地址或上层协议端口,连接将失败。为了解决这个问题,通常采用ALG(Application Level Gateway)技术配合动态NAT-PT技术来进行。ALG包括DNS-ALG,FTP-ALG,SIP-ALG等多种应用,这里仅以DNS-ALG技术为例。图4举例说明了动态NAT-PT技术与DNS-ALG技术的工作过程,由IPv4-Only结点PCB发出访问结点开始,经历6步以后完成PCB与PCA的通信。

NAT-PT技术不需要对原IPv4用户终端进行升级改造,只需要在仅使用IPv4协议或仅使用IPv6协议的网络中提供一个或多个特殊的DNS服务器作“IP伪装”,同时提供一个或多个双栈的服务器做NAT-PT网关,即可以实现NAT-PT的功能,完成包括地址、协议在内的所有转换工作,从而使IPv4-Only和IPv6-Only之间能透明通信。NAT-PT还可扩展成NAPT-PT(Network Address Port Translation - Protocol Translation),NAPT-PT在地址转换时包含了端口的转换,这点同目前IPv4下的NAT没有本质区别,这可以避免因NAT-PT地址池用完时IPv6与IPv4网络不能通信的问题。

需要指出的是,这项技术在应用上有一些限制,首先在拓扑结构上要求一次会话中所有报文的转换都在同一个路由器上;其次一些协议字段在转换时不能完全保持原有的含义;另外协议转换方法缺乏端到端的安全性。

1.3 隧道技术(Tunnel)

在IPv4/IPv6过渡的初期,也就是在IPv6网络流行于全球之前,总会有些网络首先采用IPv6协议,而这些网络就像是IPv4海洋中的一些小岛,我们希望如果能在IPv4的“海底”建立一条“隧道”实现这些“小岛”之间的连接,那么这些IPv6小岛就可以跨越IPv4海洋实现彼此之间的通信,这就是隧道技术。

隧道的端点可以是主机或者路由器,但都必须是双协议栈的结点,它们连接两种网络,进行报文的封装与拆封。在隧道入口处,入口端点将IPv6报文封装到IPv4报文中,IPv4报文的源地址和目的地址分别是隧道入口和出口的IPv4地址。封装后的IPv4报文将通过IPv4的路由器进行传输,报头的协议域设置为41,指示这个报文的负载是一个IPv6的报文。在隧道的出口处,出口端点对IPv4报文进行拆封,将IPv6报文取出来,转发给目的站点。由于隧道技术只要求在隧道的入口和出口端对报文进行修改,在其他地方没有什么要求,所以这种技术是很容易实现的。图5是隧道技术实现的基本原理。

在实际的应用中,根据封装和拆封操作发生位置的不同,以及隧道配置方式的不同,隧道技术可以被分为若干种类[4-5]。但是,不管采用哪种隧道技术,最终发出的报文的封装是一样的,即使隧道两端分别采用不同的配置方式(如一端采用Configured Tunnel配置,另一端采用Auto-Configured Tunnel配置),只要参数不出错,它们都是可以互相通信的。

实际上,隧道技术不仅适合于过渡的初期,通过建立IPv6 over IPv4隧道实现将IPv4海洋中的两个IPv6孤岛连接起来,也适合于过渡的后期,类似地建立起IPv4 over IPv6隧道,从而将IPv6海洋中的IPv4孤岛连接起来。

2 IPv4/IPv6过渡技术的选择

关于IPv4如何向IPv6过渡的问题,IPv6协议的设计者们在最初的“IPng协议建议”中定义了以下几条过渡原则:1) 逐步演进;2) 逐步部署;3) 地址兼容;4) 降低费用[6]。这是衡量已有过渡技术和进行过渡技术研究的一个总体原则。

另外,目前提出的所有过渡技术都是针对某一种或几种具体的网络情况提出的,都不是普遍通用的技术,而且这些技术也往往不是独立使用的,需要相互结合,互为补充。在实际的网络应用中,我们既要深刻地理解这些过渡技术,也要透彻地把握所要应用的环境,合适地选择一种或几种过渡技术,特别是要事先明确应用的类型、范围、功能等情况。根据网络环境的变化和具体情况,有时也需要对已有的过渡技术进行改进和更新,甚至要另辟蹊径,寻找新的方式方法[7]。(下转第1896页)

(上接第1886页)

3 IPv4/IPv6过渡技术的实验[8]

为了实现对IPv4/IPv6过渡技术的测试和研究,在实验室的局域网中自行设计并实现了IPv4/IPv6过渡技术的测试平台。该平台在VC++6.0集成开发环境下利用Socket编程实现。它可以利用IPv4地址或者IPv6地址分别进行TCP或UDP连接,在连接完成后可以在连接对端之间互相传送消息或文件。对于UDP连接,采用了异步模式来接收传送过来的消息,而对于TCP连接,则可以支持一台服务器和多台客户机进行连接,同时在状态框中显示连接的建立过程和对端传送的消息,对程序的运行有着准确的把握。

另外,对于已经加入了中国教育科研网(CERNET)IPv6实验床的实验室,可以通过CERNET所提供的隧道(Tunnel Broker)系统,连入IPv6网络世界,享受IPv6网络服务。

4 结束语

以上分析研究的几种过渡技术都是针对不同的情况提出来的有效方案,从理论上讲都是比较成熟的,但是在实际的应用中,并非一帆风顺。IPv4网络要完全地过渡到IPv6网络是一个漫长的过程,这个过程究竟要历时多久,并不完全取决于这些过渡技术的有效性问题,而在很大程度上将取决于Internet用户和管理者采用这些技术的动力。如果这些技术是经济实惠、简便易行的,那必然会有一种强大的吸引力促使Internet用户和管理者向着功能更加强大和丰富的IPv6网络迅速过渡。然而,目前的这些过渡技术对用户并不“友好”,往往需要比较复杂和专业的配置,对ISP来说也不够经济合算,这也正是这些年来IPv4/IPv6过渡进程缓慢的主要原因之一。缺少广大Internet用户的强大推动力,IPv4/IPv6的过渡将是寸步难行的。所以,对于IPv4/IPv6过渡技术的研究并未结束,经济实惠、简便易行、功能丰富将是今后继续努力的方向。

参考文献:

[1] IETF:Internet Engineering Task Force[EB/OL]..

[2] E.Nordmark,R.Gilligan,Basic Transition Mechanisms for IPv6 Hosts and Routers[R].RFC 4213,October 2005.

[3] S. Thomson,C. Huitema,V. Ksinant,M. Souissi,DNS Extensions to Support IP Version 6[R].RFC3596,October 2003.

[4] 李振强,赵晓宇,马严,IPv6技术揭秘[M].北京:人民邮电出版社,2006.

[5] 沈庆伟,张霖.基于隧道的IPv4/ IPv6过渡技术分析[J].计算机技术与发展,2007,7(5).

[6] Bradner S,Mankin A.The Recommendation for the IP Next Generation Protocol[R].RFC1752,January 1995.

[7] 姬同亮,李玲娟, IP v4向IPv6过渡技术研究[J],江苏通信技术,2006,22(6).

[8] 李润知,赵红领,谭同德.IPv6-IPv4隧道技术的研究及互连方案实现[J].郑州大学学报:工学版,2007,28(3).

上一篇:VB程序设计――数据表通用打印程序 下一篇:浅析硕士研究生复试工作