1、背景现状
尽管IPv6已被认为是下一代互联网络协议核心标准之一。但是,新生事物从诞生到广泛应用需要一个过程,尤其是对于现时IPv4仍然很好的支撑着的Internet。在IPv6的网络流行于全球之前,总是有一些网络首先使用IPv6协议栈并希望能够与当前的Internet正常通信。为达到这一目的,研究者们必须开发出IPv4 / IPv6互通技术以保证IPv4能够平稳过渡到IPv6,除此之外,互通技术应该对普通用户做到“无缝”,使用起来没有感到不便,对信息传递做到高效。
在过渡时期,要解决相互通信的问题无非两类:第一类就是IPv6之间互相通信的问题;第二类就是解决IPv6与IPv4之间的通信问题。
针对这两类问题已经提出了很多方案,有一些已经相当成熟并形成了RFC(Request For Commnets),有一些还只是作为Internet draft,有待进一步完善。
2、过渡技术
目前解决过渡问题基本技术主要有三种:双协议栈(RFC 2893 obsolete RFC1933)、隧道技术(RFC 2893)、NAT-PT(RFC 2766)。
(1) 双协议栈 ( Dual Stack)
采用该技术的节点上同时运行IPv4和IPv6两套协议栈。这是使IPv6节点保持与纯IPv4节点兼容最直接的方式,针对的对象是通信端节点(包括主机、路由器)。这种方式对IPv4和IPv6提供了完全的兼容,但是对于IP地址耗尽的问题却没有任何帮助。由于需要双路由基础设施,这种方式反而增加了网络的复杂度。
(2) 隧道技术 ( Tunnel)
隧道技术提供了一种以现有IPv4路由体系来传递IPv6数据的方法:将IPv6的分组作为无结构意义的数据,封装在IPv4数据报中,被IPv4网络传输。根据建立方式的不同,隧道可以分成两类:(手工)配置的隧道和自动配置的隧道。隧道技术巧妙地利用了现有的IPv4网络,它的意义在于提供了一种使IPv6的节点之间能够在过渡期间通信的方法,但它并不能解决IPv6节点与IPv4节点之间相互通信的问题。
(3) 网关转换(NAT-PT)
转换网关除了要进行IPv4地址和IPv6地址转换,还要包括协议并翻译。转换网关作为通信的中间设备,可在IPv4和IPv6网络之间转换IP报头的地址,同时根据协议不同对分组做相应的语义翻译,从而使纯IPv4和纯IPv6站点之间能够透明通信。
3、IPv6通信
它是指v6与v6之间的通信,主要方法有以下几种:
(1) 手工配置隧道 ( Configured Tunnel)
这种隧道的建立是手工配置的,需要隧道两个端点所在网络的管理员协作完成。隧道的端点地址由配置来决定,不需要为站点分配特殊的IPv6地址,适用于经常通信的IPv6站点之间。每一个隧道的封装节点必须保存隧道终点的地址,当一个IPv6包在隧道上传输时终点地址会作为IPv4包的目的地址进行封装。通常封装节点要根据路由信息决定一个包是否要通过隧道转发。
采用手工配置隧道进行通信的站点之间必须有可用的IPv4 连接,并且至少要具有一个全球唯一的IPv4地址。站点中每个主机都至少需要支持IPv6,路由器需要支持双栈。在隧道要经过NAT设施的情况下这种机制不可用。
手工配置隧道的主要缺点是网络管理员的负担很重,因为他要为每一条隧道做详细的配置。
(2) 自动配置的隧道 ( Auto-configured Tunnel )
这种隧道的建立和拆除是动态的,它的端点根据分组的目的地址确定,适用于单独的主机之间或不经常通信的站点之间。自动配置的隧道需要站点采用IPv4兼容的IPv6地址,这些站点之间必须有可用的IPv4连接,每个采用这种机制的主机都需要有一个全球唯一的IPv4地址。
采用这种机制不能解决IPv4地址空间耗尽的问题(采用手工配置隧道的站点就不需要IPv4地址)。两外还有一种危险就是如果把Internet 上全部IPv4路由表包括到IPv6网络中,那么会加剧路由表膨胀的问题。这种隧道的两个端点都必须支持双协议栈(手工配置就不需要)。在隧道要经过NAT设施的情况下这种机制不可用。
(3) 隧道中介(Tunnel Broker)
Tunnel Broker不是一种隧道机制,而是一种方便构造隧道的机制。可以简化隧道的配置过程,适用于单个主机获取IPv6连接的情况。Tunnel Broker也可用于站点之间,但这时可能会在IPv6的路由表中引入很多条目,导致IPv6的路由表过于庞大,违背了IPv6设计的初衷。用户可以通过Tunnel Broker从支持IPv6的ISP处获得持久的IPv6地址和域名。 Tunnel Broker要求隧道的双方都支持双栈并有可用的IPv4连接,在隧道要经过NAT设施的情况下这种机制不可用。采用TB方法,可以使IPv6 的ISP可以很容易对用户执行接入控制,按照策略对网络资源进行分配。
TB转换机制包括Tunnel Server(TS)和Tunnel Broker(TB)。server和boker位于不同的计算机上,对于隧道的控制通常是web形式的。