现今IP网络仍然是以IPv4为主体,IPv6网络只是得到小范围的部署和商用,因此必然会在很长的一个时期内,IPv4及IPv6网络必然会有共存的场景,那就需要考虑V4V6并存的策略和技术。
同时从IPv4过渡到IPv6不可能一气呵成,这是一个综合政治、经济、商业、技术、方法、策略等各种因素的问题,因此IPv4到IPv6的过渡需要一个漫长的过程。在这个过程中,就不得不考虑过渡的策略和方法。以下是三种常见的共存策略和过渡技术:
双栈DualStack
所谓的双栈就是主机或者网络设备同时支持IPv4及IPv6双协议栈,如果节点支持双栈,那么它能够同时使用V4和V6的协议栈、同时处理IPv4及IPv6的数据。在双栈设备上,上层应用会优先选择IPv6协议栈,而不是IPv4。 比如,一个同时支持v4和v6的应用请求通过DNS请求地址,会先请求AAAA记录,如果没有,则再请求A记录。双栈是V4、V6并存及IPv6过渡技术的基础。
就拿上图来说,路由器就是一个双栈设备,默认情况下路由器本身就已经支持IPv4,接口上也配置了IPv4的地址,已经能够正常转发IPv4的报文,此刻在激活路由器的IPv6数据转发能力,再为接口分配IPv6的单播地址,那么这个接口又有了IPv6数据转发能力。当然,此时对于路由器而言,IPv4及IPv6协议栈互不干扰,独立工作。
隧道技术
隧道技术是一种非常经典的解决方案,被应用在各种场景中解决数据通信问题。核心思想其实就是在两个通信孤岛之间搭建一条点到点的虚拟通道,使得此二者能够通过这条点到点隧道穿越中间的网络进行通信。
上图所示的场景中,R1及R2都连接到同一个IPv4网络中,同时还各自连接一个IPv6网络。此刻R1及R2均是双栈路由器,而两者各自下挂的这两个IPv6网络其实是信息孤岛,彼此之间无法互相通信,因为要通信就需要经过中间的网络,而中间的网络是IPv4的,根本无法识别IPv6的数据。
这个场景相信在如今的网络中是经常常见的,毕竟如今IP网络的主体还是IPv4,IPv6的站点只是零星的建立,那么如何实现IPv6站点之间的相互通信呢?
在R1及R2之间利用隧道技术可以建立起一条点到点的通道,这条虚拟通道穿越了中间的IPv4网络,使得两个信息孤岛之间能够互通。实际上孤岛之间的IPv6互访流量还是经过中间的IPv4网络进行转发,只不过在被转发的IPv6报文基础之上增加了一个新的IPv4头部,这个头部我们称之为隧道头,正是这个隧道IPv4头部,使得IPv6报文能够被包裹在其中从而穿越中间的IPv4网络。
NAT64
NAT64技术实际上是一种协议转换技术,能够将分组在V4及V6格式之间灵活转换。当IPv4网络的节点需要直接与IPv6网络的节点进行通信时,默认情况下当然是行不通的,因为两个协议栈无法兼容。但是借助一台设备,由该设备来实现IPv6与IPv4的互转,那么上述通信需求就可以实现了。