由于Internet的规模以及目前网络中数量庞大的IPv4用户和设备,IPv4到v6的过渡不可能一次性实现。而且,目前许多企业和用户的日常工作越来越依赖于Internet,它们无法容忍在协议过渡过程中出现的问题。所以IPv4到v6的过渡必须是一个循序渐进的过程,在体验IPv6带来的好处的同时仍能与网络中其余的IPv4用户通信。能否顺利地实现从IPv4到IPv6的过渡也是IPv6能否取得成功的一个重要因素。
实际上,IPv6在设计的过程中就已经考虑到了IPv4到IPv6的过渡问题,并提供了一些特性使过渡过程简化。例如,IPv6地址可以使用IPv4兼容地址,自动由IPv4地址产生;也可以在IPv4的网络上构建隧道,连接IPv6孤岛。目前针对IPv4-v6过渡问题已经提出了许多机制,它们的实现原理和应用环境各有侧重,这一部分里将对IPv4-v6过渡的基本策略和机制做一个系统性的介绍。
在IPv4-v6过渡的过程中,必须遵循如下的原则和目标:
·保证IPv4和IPv6主机之间的互通;
·在更新过程中避免设备之间的依赖性(即某个设备的更新不依赖于其它设备的更新);
·对于网络管理者和终端用户来说,过渡过程易于理解和实现;
·过渡可以逐个进行;
·用户、运营商可以自己决定何时过渡以及如何过渡。
主要分三个方面:IP层的过渡策略与技术、链路层对IPv6的支持、IPv6对上层的影响
对于IPV4向IPV6技术的演进策略,业界提出了许多解决方案。特别是IETF组织专门成立了一个研究此演变的研究小组NGTRANS,已提交了各种演进策略草案,并力图使之成为标准。纵观各种演进策略,主流技术大致可分如下几类:
双栈策略
实现IPv6结点与IPv4结点互通的最直接的方式是在IPv6结点中加入IPv4协议栈。具有双协议栈的结点称作“IPv6/v4结点”,这些结点既可以收发IPv4分组,也可以收发IPv6分组。它们可以使用IPv4与IPv4结点互通,也可以直接使用IPv6与IPv6结点互通。双栈技术不需要构造隧道,但后文介绍的隧道技术中要用到双栈。 IPv6/v4结点可以只支持手工配置隧道,也可以既支持手工配置也支持自动隧道。
隧道技术
在IPV6发展初期,必然有许多局部的纯IPV6网络,这些IPV6网络被IPV4骨干网络隔离开来,为了使这些孤立的“IPV6岛”互通,就采取隧道技术的方式来解决。利用穿越现存IPV4因特网的隧道技术将许多个“IPV6孤岛”连接起来,逐步扩大IPV6的实现范围,这就是目前国际IPV6试验床6Bone的计划。
工作机理:在IPV6网络与IPV4网络间的隧道入口处,路由器将IPV6的数据分组封装入 IPV4中,IPV4分组的源地址和目的地址分别是隧道入口和出口的IPV4地址。在隧道的出口处再将IPV6分组取出转发给目的节点。
隧道技术在实践中有四种具体形式:构造隧道、自动配置隧道、组播隧道以及6to4。
TB(Tunnel Broker,隧道代理)
对于独立的v6用户,要通过现有的IPv4网络连接IPv6网络上,必须使用隧道技术。但是手工配置隧道的扩展性很差,TB的主要目的就是简化隧道的配置,提供自动的配置手段。对于已经建立起IPv6的ISP来说,使用TB技术为网络用户的扩展提供了一个方便的手段。从这个意义上说,TB可以看作是一个虚拟的IPv6 ISP,它为已经连接到IPv4网络上的用户提供连接到IPv6网络的手段,而连接到IPv4网络上的用户就是TB的客户。
双栈转换机制(DSTM)
DSTM的目标是实现新的IPv6网络与现有的IPv4网络之间的互通。使用 DSTM,IPv6网络中的双栈结点与一个IPv4网络中的IPv4主机可以互相通信。DSTM的基本组成部分包括:
·DHCPv6服务器,为IPv6网络中的双栈主机分配一个临时的IPv4全网唯一地址,同时保留这个临时分配的IPv4地址与主机IPv6永久地址之间的映射关系,此外提供IPv6隧道的隧道末端(TEP)信息;
·动态隧道端口DTI:每个DSTM主机上都有一个IPv4端口,用于将IPv4报文打包到 IPv6报文里;
·DSTM Deamon:与DHCPv6客户端协同工作,实现IPv6地址与IPv4地址之间的解析。
协议转换技术
其主要思想是在V6节点与V4节点的通信时需借助于中间的协议转换服务器,此协议转换服务器的主要功能是把网络层协议头进行V6/V4间的转换,以适应对端的协议类型。
优点:能有效解决V4节点与V6节点互通的问题。
缺点:不能支持所有的应用。这些应用层程序包括:① 应用层协议中如果包含有IP地址、端口等信息的应用程序,如果不将高层报文中的IP地址进行变换,则这些应用程序就无法工作,如FTP、STMP等。② 含有在应用层进行认证、加密的应用程序无法在此协议转换中工作。
SOCKS64
一个是在客户端里引入SOCKS库,这个过程称为“socks化”(socksifying),它处在应用层和socket之间,对应用层的socket API和DNS名字解析API进行替换;
另一个是SOCKS网关,它安装在IPv6/v4双栈结点上,是一个增强型的SOCKS服务器,能实现客户端C和目的端D之间任何协议组合的中继。当C上的SOCKS库发起一个请求后,由网关产生一个相应的线程负责对连接进行中继。SOCKS库与网关之间通过SOCKS(SOCKSv5)协议通信,因此它们之间的连接是“SOCKS化”的连接,不仅包括业务数据也包括控制信息;而G和D之间的连接未作改动,属于正常连接。D上的应用程序并不知道C的存在,它认为通信对端是G。
传输层中继(Transport Relay)
与SOCKS64的工作机理相似,只不过是在传输层中继器进行传输层的“协议翻译”,而 SOCKS64是在网络层进行协议翻译。它相对于SOCKS64,可以避免“IP分组分片”和“ICMP报文转换”带来的问题,因为每个连接都是真正的 IPV4或IPV6连接。但同样无法解决网络应用程序数据中含有网络地址信息所带来的地址无法转换的问题。
应用层代理网关(ALG)
ALG是Application Level Gateway的简称,与SOCKS64、传输层中继等技术一样,都是在V4与V6间提供一个双栈网关,提供“协议翻译”的功能,只不过ALG是在应用层级进行协议翻译。这样可以有效解决应用程序中带有网络地址的问题,但ALG必须针对每个业务编写单独的ALG代理,同时还需要客户端应用也在不同程序上支持ALG代理,灵活性很差。显然,此技术必须与其它过渡技术综合使用,才有推广意义。
过渡策略总结
双栈、隧道是主流
所有的过渡技术都是基于双栈实现的
不同的过渡策略各有优劣、应用环境不同
网络的演进过程中将是多种过渡技术的综合
根据运营商具体的网络情况进行分析
由不同的组织或个人提出的IPV4向IPV6平滑过渡策略技术很多,它们都各有自己的优势和缺陷。因此,最好的解决方案是综合其中的几种过渡技术,取长补短,同时,兼顾各运营商具体的网络设施情况,并考虑成本的因素,为运营商设计一套适合于他自己发展的平滑过渡解决方案。