IPv4向IPv6过渡的背景、技术、形式
1 IPv6与IPv4互通技术出现的背景及现状
随着Internet的日益膨胀,现有的IPv4地址已经十分紧缺,虽然使用分配临时IPv4地址或网络地址翻译(NAT)等地址使用技术,在一定 程度上缓解了IPv4地址不足的状况,但同时也增加了地址解析和处理方面的开销,导致某些高层应用失效,而且仍然无法回避IPv4地址即将被分配殆尽这个 问题。采用长度为128 b IP地址的IPv6协议,彻底解决了IPv4地址不足的难题,并且在地址容量、安全性、网络管理、移动性以及服务质量等方面有明显的改进,是下一代互联网 络协议采用的核心标准之一。IPv6与IPv4不兼容,但他同所有其他的TCP/IP协议族中的协议兼容,即IPv6完全可以取代IPv4。
在IPv6成为主流协议之前,首先使用IPv6协议栈的网络希望能与当前仍被IPv4支撑着的Internet进行正常通信,因此必须开发出 IPv4/IPv6互通技术以保证IPv4能够平稳过渡到IPv6。此外,互通技术应该对信息传递做到高效无缝。国际上IETF组建了专门的 NGTRANS工作组开展对于IPv4/IPv6过渡问题和高效无缝互通问题的研究。目前已经出现了多种过渡技术和互通方案,这些技术各有特点,用于解决 不同过渡时期、不同环境的通信问题,有些已经相当成熟并形成了RFC,有些还只是作为 Internet draft有待完善。
2 IPv6与IPv4互通的3种基本技术
目前解决过渡问题的基本技术主要有3种:双协议栈(RFC2893 obsolete RFC1933),隧道技术(RFC2893),NAT-PT(RFC2766)。
2.1 双协议栈(DualStack)
双协议栈技术是使IPv6节点与IPv4节点兼容的最直接方式,应用对象是主机、路由器等通信节点。支持双协议栈的IPv6节点与IPv6节点互通 时使用IPv6协议栈,与IPv4节点互通时借助于4over6使用IPv4协议栈。IPv6节点访问IPv4节点时,先向双栈服务器申请一个临时 IPv4地址,同时从双栈服务器得到网关路由器的TEP(TunnelEndPoint)IPv6地址。IPv6节点在此基础上形成一个4 over 6的IP包,4 over 6包经过IPv6网传到网关路由器,网关路由器将其IPv6头去掉,将IPv4包通过IPv4网络送往IPv4节点。网关路由器要记住IPv6源地址与 IPv4临时地址的对应关系,以便反方向将IPv4节点发来的IP包转发到IPv6节点。采用双协议栈方式互通时的系统如图1所示。
这种方式对IPv4和IPv6提供了完全的兼容,但由于需要双路由基础设施,增加了网络的复杂度,依然无法解决IP地址耗尽的问题。
2.2 隧道技术(Tunnel)
隧道技术提供了一种以现有IPv4路由体系来传递IPv6数据的方法:将IPv6包作为无结构意义的数据,封装在IPv4包中,被IPv4网络传 输。根据建立方式的不同,隧道技术可分为手工配置隧道和自动配置隧道两类。隧道技术巧妙地利用了现有的IPv4网络,他的意义在于提供了一种使IPv6的 节点间能够在过渡期间通信的方法,但他不能解决IPv6节点与IPv4节点间互通的问题。
2.3 NAT-PT
NAT-PT是一种纯IPv6节点和IPv4节点间的互通方式,所有包括地址、协议在内的转换工作都由网络设备来完成。支持NAT-PT的网关路由 器应具有IPv4地址池,在从IPv6向IPv4域中转发包时使用。此外网关路由器支持DNS-ALG(DNS,应用层网关),在IPv6节点访问 IPv4节点时发挥作用。采用NAT-PT方式互通时的系统构成如图2所示。
NAT-PT方式的优点是不需要进行IPv4,IPv6节点的升级改造,缺点是IPv4节点访问IPv6节点的实现方法比较复杂,网络设备进行协议转换、地址转换的处理开销较大,一般在其他互通方式无法使用的情况下使用。
3 过渡期间IPv6和IPv4互通的解决方案
过渡初期,Internet将由运行IPv4的“海洋”和运行IPv6的“小岛”组成,随着时间的推移,IPv4“海洋”将逐渐变小,而IPv6 “小岛”将越来越多,最终彻底取代IPv4。在过渡期要解决的互通问题可分成2大类:第一类是解决IPv6“小岛”间的互通问题;第二类则解决IPv6 “小岛”与IPv4“海洋”间互通的问题。
3.1 IPv6“小岛”之间的互通方式
(1)手工配置隧道(Configured Tunnel)
这种隧道是手工配置建立的,隧道的端点地址由配置决定,不需要为节点分配特殊的IPv6地址,适用于经常通信的IPv6节点之间使用。每个隧道的封 装节点必须保存隧道终点地址,当IPv6包在隧道上传输时,终点地址会作为IPv4包的目的地址进行封装。通常封装节点要根据路由信息决定这个包是否通过 隧道转发。采用手工配置隧道方式进行互通的节点间必须有可用的IPv4连接,并且至少要具有一个全球惟一的IPv4地址,每个节点都要支持IPv6,路由 器需要支持双协议栈,在隧道要经过NAT设施的情况下该机制失效。
(2)自动配置隧道(Auto-configured Tunnel)
这种隧道的建立和拆除是动态的,其端点根据分组的目的地址确定,适用于不经常通信的节点间使用。自动配置隧道需要节点采用IPv4兼容的IPv6地 址(IPv4ADDR::/96),这些节点间必须有可用的IPv4连接,采用这种机制的节点需要有一个全球惟一的IPv4地址。采用这种机制不能解决 IPv4地址空间耗尽的问题,并且如果把Internet上全部IPv4路由表包括到IPv6网络中,将会加剧路由表的膨胀。这种隧道的两个端点都必须支 持双协议栈,在隧道要经过NAT设施的情况下该机制失效。
(3)TunnelBroker
TunnelBroker是一种方便构造隧道的机制,可以简化隧道的配置过程,适用于单个主机获取IPv6连接的情况。TunnelBroker要 求隧道的双方都支持双协议栈并有可用的IPv4连接,在隧道要经过NAT设施的情况下该机制失效。TB转换机制包括TunnelServer(TS)和 TunnelBroker(TB),Server和Boker位于不同的主机上,隧道的控制通常是web形式的。
(4)6 over 4,IPv4多播隧道
6 over 4是一种自动建立隧道的机制,采用前提是IPv4网络基础设施支持IPv4多播。该机制适用于IPv6路由器上无直接物理链路连接的孤立IPv6主机,使 得他们能够将IPv4广播域作为他们的虚拟链路,成为功能完全的IPv6节点。采用这种方法连接的IPv6节点不需要IPv4兼容地址和手工配置隧道。当 采用6 over 4的节点通过一台支持6 over 4的路由器与外界相连时,节点内的主机可以和外部IPv6节点通信,但6 over4没有解决孤立的IPv6节点连接到全球性IPv6 Internet的问题。
(5)6 to 4
6 to 4要求采用自动从节点的IPv4地址派生出的特殊IPv6地址(IPv4ADDR::/48),所以采用6 to 4机制的节点必须至少具有一个全球惟一的IPv4地址。由于隧道端点的IPv4地址可以从IPv6地址中提取,所以隧道是自动建立的,这种机制适用于运行 IPv6的节点之间的互通。6to 4要求隧道中路由器支持双协议栈和6 to 4,主机至少支持IPv6协议栈。6 to 4机制允许在采用6 to 4的IPv6节点和纯IPv6节点之间通过运行BGP4+的中继路由器(6to 4 Relay Router)进行互通。这种机制把广域的IPv4网络作为一个单播的点到点链路层,适合作为IPv4/IPv6共存的初始阶段的转换工具。
3.2 IPv6“小岛”与IPv4“海洋”之间的互通方式
1)DualStack Model23
在这种模型下任意节点都是完全双协议栈的,不存在IPv4与IPv6之间的互通问题,但是这种机制要给每一个IPv6的节点分配一个IPv4地址。这种方法不能缓解IPv4地址资源不足的问题,而且随着IPv6节点的增加会很难得到满足。
2)SIIT(Stateless IP/ICMPTranslation)
SIIT定义了在IPv4和IPv6的分组报头之间进行翻译的方法,这种机制可以和其他机制(如NAT-PT结合用于纯IPv6节点同纯IPv4节点间的互通,但在采用网络层加密和数据完整性保护的环境下这种技术失效。
3)NAT-PT(Network Address Translation- ProtocolTranslation)
NAT-PT就是在做IPv4/IPv6地址转换(NAT)的同时在IPv4分组和IPv6分组之间进行报头和语义的翻译(PT),适用于纯 IPv4节点和纯IPv6节点之间的互通。对于一些内嵌地址信息的高层协议(如FTP),NAT-PT需 要和应用层的网关协作来完成翻译。在实现方面,如果没有DNS-ALG的支持,只能实现由IPv6发起的与IPv4之间的通信,反之,包就会被丢弃;如果 有DNS-ALG的支持,就可以实现双向的通信。
除了上述3种互通方式,IPv6“小岛”与IPv4“海洋”间还可以通过BIS,BIA,SOCKS64,TRT,ALG等方式进行互通。
4 IPv4向IPv6平稳过渡技术的发展形式
从前面总结的过渡机制可以看出,每种机制都不是普遍适用的,都只适用于某一种或几种特定的网络情况,而且常常需要和其他技术组合使用。在实际应用时要综合考虑各种实际情况制定合适的过渡策略。 在IPv4向IPv6过渡时期,通常应采用如下的组网原则:
(1)在能直接建立IPv6链路的情况下使用纯IPv6路由。
(2)在不能使用IPv6链路的情况下,IPv6节点之间使用隧道技术。
(3)双协议栈的IPv6/IPv4节点和纯IPv6节点或者纯IPv4的节点通信不需要采用协议转换,而直接“自动”选择相应的通信协议(IPv4或者IPv6)。
(4)对于纯IPv6节点和纯IPv4节点之间的互通,则应该使用协议转换(NAT-PT)或者应用层网关(ALG)技术,设计的协议转换器或者ALG应该尽量保证在不修改原有应用的情况下就可以使用。
相应于上述组网原则,我们认为IPv4向IPv6过渡采用 分阶段演进是最为可行的方式,概括起来有以下4个阶段:
第一阶段,IPv4“海洋”中开始有越来越多的IPv6“小岛”。这时,必然需要各种适当的过渡机制,可供选择的机