现今 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 的互转, 那么上述通信需求就可以实现了.
来源: http://network.51cto.com/art/201808/580836.htm