第4章
过渡技术
4.1 过渡概述
IP协议要求每个网络终端都有唯一的可寻址的IP地址,无论是互联网还是物联网,都需要少量的地址作为支撑。没有足够的地址,无法实现随时随地连接。IANA已于2011年2月将最后的5个A类IPv4地址段一次性分配完毕,以后获取可用的IPv4地址将非常困难。作为下一代IP网络技术,IPv6可以提供数量远多于IPv4的IP地址。不仅如此,IPv6技术无论是在安全性还是稳定性方面都超过了老旧的IPv4技术,可以说是下一代互联网的标配。IPv6的建设已经提了很多年,但一直没有太大的进展,在内容为王的今天,从IPv4转换到IPv6,就显得越来越迫切。
现阶段IP网络面临两大问题。
1.新业务需要大量IP地址
随着互联网创新的不断发展,应用迭代更新的周期越来越短。目前的IPv4地址已经远远不能满足现实的需求,在IPv4的43亿个地址中,仅有30亿左右个地址是可用的。由于IPv4的历史原因,全球IPv4的地址分配极其不平均,绝大部分IPv4地址都集中在欧美国家。我们国家的宽带接入虽然已经很普及,但运营商同样面临着IP地址不够用的问题。宽带接入通常都采用动态IP地址分配的方式实现。而且近年来,即使采用动态IP分配,也开始面临地址资源不够的问题了,运营商已经开始采用私有地址来解决这个难题,这将极大地限制应用的扩展以及增值服务的推广。假设未来有600亿个物联网终端需要连接,那么现在的地址将远远不够使用,IPv4网络显然无法适应未来互联网和物联网应用的需求。
对运营商而言,现有的大量业务都存在地址缺口,IPv4的公有地址储备接近枯竭。在现有产业环境下,整体基于IPv6网络的产业环境相对还非常少。要想进行整体的基于IPv6的业务运作,几乎是一件不可能完成的事情。如果给新发展的用户提供纯粹IPv6的地址环境,则这些新的用户是无法和原有的IPv4用户进行通信的,必须对IPv4和IPv6进行转换以实现互联互通。当然,也可以通过给新进用户同时分配IPv4私有地址和IPv6公有地址,访问IPv4应用的时候,使用IPv4地址;访问IPv6应用的时候,使用IPv6地址。这样,IPv4与IPv6的网络可以不通,但运营商就要部署地址转换机制,来实现把IPv4私有地址转换为IPv4公有地址。
2.IPv6与IPv4完全不兼容
由于IPv6采用了128位的地址方式,其能够支持的地址数量是海量的,完全不存在不够用的情况。地址数量也是IPv6在IPv4基础上解决的最大问题。IPv6的核心协议标准自2008年以来并没有太大变化,可以满足IPv6组网要求,固定和移动宽带应用类标准也已基本完善。
虽然IPv6是解决地址短缺的终极方案,但因业务延续性的需要,不可能完全抛弃基于IPv4的网络。即使要上IPv6,IPv4也会在相当长的一段时间里与IPv6共存。当然,我们也可以直接抛弃IPv4,全部转向IPv6,就像印度的运营商那样,转为互联网内容服务商。但这种投资,不是国家行为是做不到的。一种比较务实的方式便是实现IPv4向IPv6的平滑过渡。
目前最大的问题在于IPv6和IPv4完全不兼容,现有的绝大多数应用程序在只有IPv6协议栈的计算机上甚至无法运行。程序初始化时要调用socket,IPv6与IPv4的调用参数不同,如果程序没有考虑IPv6参数调用,则会启动失败。如果要在IPv6协议中运行现有的程序应用,则需要进行源代码修改、重新编译和安装。
因此,网络从IPv4演进到IPv6成为必然。通过IPv4与IPv6建立共存机制,慢慢实现向IPv6的切换。对运营商而言,一方面需要尽快引入部署IPv6,解决IPv4、IPv6网络共存和互通问题;另一方面也要解决现有业务持续发展所需要的IPv4公有地址不足的问题。在网络向IPv6演进的过程中,部署NAT将无可回避,从而形成IPv4私网地址、IPv4公网地址和IPv6地址共存的复杂网络。因此各种过渡技术应运而生。
实际的网络环境非常复杂,由IPv4向IPv6过渡,必须结合多种技术来实现。由于从IPv4迁移到IPv6需要很长的时间,整个网络的结构调整也必须循序渐进。从IPv6的过渡技术来看,主要分为IPv4和IPv6双协议栈(简称双栈技术)、隧道模式以及翻译技术。其中,IPv4和IPv6双栈技术是其他过渡技术的基础条件;隧道模式则主要适用于在现有的IPv4/IPv6网络中部署IPv6/IPv4业务;翻译技术主要用于IPv4网络与IPv6网络的互联互通。
·IPv6/IPv4双栈技术。IPv4和IPv6双协议栈主要存在于操作系统的TCP/IP协议的网络层,同时实现IPv4和IPv6两种协议。数据链路层、传输层和应用层都不需要大的变动。具备双协议栈的节点不仅可以与IPv6网络通信,而且可以和IPv4网络通信。通常情况下,这种双协议栈的节点至少需要配置两个IP地址,其中一个用于IPv6地址,另外一个用于IPv4地址。与IPv4网络通信时,使用IPv4地址;与IPv6网络通信时,使用IPv6地址。至于使用哪个协议,主要是依据目的地址是IPv6地址,还是IPv4地址来决定。详见4.2节。
·隧道技术。从隧道技术的名字可以直观看出,该模式主要是把IPv4的数据报以数据的方式包含在IPv6的协议数据报中。到底是把IPv4的数据包包含在IPv6的数据包中,还是把IPv6的数据包包含在IPv4的数据包中,则决定了隧道模式的两种,一种叫IPv4 over IPv6,另外一种则是IPv6 over IPv4。根据隧道目的地址的获取方式,还可以划分成配置型隧道和自动型隧道。配置型隧道包括手工隧道、GRE隧道等。自动型隧道主要包含隧道代理、6to6、6over4、6RD、ISATAP、TEREDO、6PE等。由于隧道本身实现不了IPv6和IPv4端节点的通信,仅仅提供一个传输通道,所以主要用于同协议网络的互联。显然,如果采用隧道模式,不需要让所有的设备都支持双协议栈。只要IPv4网络与IPv6网络的边界设备实现了双协议栈和隧道模式,便可实现互联互通。除了边界节点,其他节点均不需要运行双协议栈。只不过缺陷是无法实现IPv4和IPv6端节点的直接通信。
采用隧道模式后,如果IPv6的边界网络设备收到IPv6的数据包,就把IPv6数据包封装在IPv4数据包中,这样便转换成IPv4数据包。接下来便是传统的IPv4网络的通信。经过IPv4网络的层层路由,到达IPv6边界网络设备以后,会重新把封装的IPv6数据包恢复出来,再进行基于IPv6网络的通信。从而实现了IPv6经过IPv4网络的透明转换。
·翻译技术(IPv4/IPv6协议转换技术)。IPv4和IPv6如何实现两种不同网络的互相访问,是IPv4迁移到IPv6网络的一个重要问题。毕竟IPv4和IPv6网络协议是不兼容的。类似于IPv4网络下的NAT网络地址转换技术,可以采用网络地址转换-协议转换NAT-PT(Network Address Translation-Protocol Translation)的技术来实现两个网络之间的互相访问。NAT-PT通过把SIIT(Stateless IP/ICMP Translation,无状态IP/ICMP转换)协议转换、IPv4动态地址转换(NAT)及应用层网关(Application Layer Gateway,ALG)相结合,便实现了IPv4和IPv6之间的协议转换以及不同地址的映射。
当IPv6网络的节点与IPv4网络中的节点进行通信时,PAT-PT将依据一个IPv4的地址池为IPv6的节点分配动态IPv4的地址,同时记录下两个地址的映射关系,然后再把IPv6数据包转换为IPv4数据包。反过来的地址分配和映射关系与此类似。经过这样的映射,便实现了IPv4节点和IPv6节点的互联互通。