(这条文章已经被阅读了 101 次) 时间:2001-10-23 01:59:20 来源:Raplh Meng (raplh) 转载
IPv6作为Internet Protocol的新版本,其根本目的是继承和取代IPv4。但从IPv4到IPv6的演进是一个逐渐的过程,而不是彻底改变的过程。因此,在IPv6完全取代IPv4之前,不可避免地,这两种协议要有一个可能是相当长的共存时期。
在IPv6的网络流行于全球之前,总是有一些网络首先具有IPv6的协议栈。这时,这些网络就像IPv4海洋中的小岛。过渡的问题可以分成两大类:
■第一类就是解决这些IPv6的小岛之间互相通信的问题,
■第二类就是解决IPv6的小岛与IPv4的海洋之间通信的问题。
解决过渡问题有三种:双协议栈(Dual Stack)、隧道(Tunnel)和翻译器。
通过双协议栈实现过渡
在实践当中,最典型的是IETF提出的叫“双协议栈”的方案。对网络端来说,双协议栈是保证能对IPv6和IPv4服务访问的关键,运营商网络中的边缘路由器也应该变成双栈路由器。在没有翻译器的网络中,移动终端必须采用双协议栈才能同时访问IPv6 和IPv4服务。
双协议栈方案的工作方式如下:
如果应用程序使用的目的地址是IPv4地址,则使用IPv4协议;
如果应用程序使用的目的地址是IPv6中的IPv4兼容地址,则同样使用IPv4协议,所不同的是,此时IPv6就封装(encapsulated)在IPv4当中;
如果应用程序使用的目的地址是一个非IPv4兼容的IPv6地址,那么此时将使用IPv6协议,而且很可能此时要采用隧道等机制来进行路由、传送;
如果应用程序使用域名来作为目标地址,那么此时先要从DNS服务器那里得到相应的IPv4/IPv6地址,然后根据地址的情况进行相应的处理。
隧道技术
所谓隧道,就是在一方将IPv6的包封装在IPv4包里,然后在目的地将其解封,得到IPv6包。前文已经提到,在IPv6的网络流行于全球之前,总是有一些网络首先具有IPv6的协议栈,这些网络就像IPv4海洋中的小岛,隧道就是通过“海底”连接这些小岛的通道,因此而得其名。
由于隧道上的链路是逻辑的,或称为虚拟的,因此,这些“小岛”所互连而成的网络就被看作是一个虚拟网络。在IPv6 Native Network之间需要通信或IPv6节点需要与IPv4 的节点通信时,IPv4协议就被当作IPv6数据传输的一个隧道。通过隧道,IPv6分组被作为无结构无意义的数据,封装在IPv4数据报中,被IPv4网络传输。由于IPv4网络把IPv6数据当作无结构无意义数据传输,因此不提供帧自标示能力,所以只有在IPv4连接双方都同意时才能交换IPv6分组,否则收方会将IPv6分组当成IPv4分组而造成混乱。网络从IPv4向IPv6演进的过程就是这些“小岛”渐渐扩大而成为“大陆”的过程。
翻译器技术
最后一种方法是使用地址和协议翻译器。
翻译器的缺点是它们常常会破坏端到端服务(如端到端的IP安全)。这一点和IPv4中的NAT类似。同时,翻译器还会造成网络潜在的单点失效。因此,使用翻译器必须经过慎重考虑,而且对终端应该透明,否则翻译器就需要做相应的修改。
这种方法需要在IPv4小网之间增加大量的服务器。如果继续使用,可能会破坏互联网的开放性和服务的独立性。
在相当时间内,IPv6节点之间的通信还要依赖于原有IPv4网络的设施,而且IPv6节点也必不可少地要与IPv4节点通信。同时,IPv4已经应用了十多年,基于IPv4的应用程序和设施已经相当成熟而完备,如果希望以最小的代价来实现这些程序在IPv6环境下的应用,就提出了从IPv4网络向IPv6网络高效无缝互连的问题。目前,对于过渡问题和高效无缝互连问题的研究,已经取得了许多成果,形成了一系列的技术和标准。