双栈技术
双栈是过渡策略中最基础、最核心的技术,它指的是在同一个网络节点(如路由器、服务器、个人电脑)上,同时运行 IPv4 和 IPv6 两个协议栈。

-
工作原理:
- 一个支持双栈的设备拥有两个独立的 IP 地址:一个 IPv4 地址和一个 IPv6 地址。
- 当设备需要与其他通信时,它会根据目标地址的类型(IPv4 或 IPv6)自动选择使用哪个协议栈进行通信。
- 你的电脑可以同时访问一个纯 IPv6 的新网站和一个纯 IPv4 的老网站。
-
优点:
- 无缝连接:理论上,只要通信双方都支持双栈,就可以直接通信,无需任何额外的转换或隧道。
- 最理想的最终状态:这是 IPv6 部署的最终目标,网络中的所有设备都支持双栈,IPv4 和 IPv6 将长期共存。
-
缺点:
- 地址消耗:每个设备都需要一个 IPv4 地址和一个 IPv6 地址,在过渡初期会消耗更多的 IPv4 地址资源。
- 管理复杂性:网络管理员需要同时维护和管理两套网络地址和路由协议,增加了运维的复杂性。
-
应用场景:
(图片来源网络,侵删)- 骨干网和数据中心:运营商和大型企业首先在核心网络部署双栈,以实现内部流量的 IPv6 化。
- 服务器:新的服务器和应用强烈建议部署双栈,以便同时服务 IPv4 和 IPv6 用户。
- 终端用户:现代操作系统(如 Windows, macOS, Linux, iOS, Android)都已原生支持双栈。
隧道技术
隧道技术主要用于在 IPv4 网络“海洋”中“打通”一条 IPv6 的“隧道”,使得孤立的 IPv6 网络或设备能够通过 IPv4 网络进行通信,它将 IPv6 数据包封装在 IPv4 数据包中进行传输。
手动隧道
- 工作原理:由网络管理员手动配置隧道端点,一个 IPv6 路由器将 IPv6 数据包封装在 IPv4 包中,发送到对端的另一个 IPv4 路由器,该路由器解封装并转发原始的 IPv6 数据包。
- 优点:配置简单,适用于连接两个固定的 IPv6 站点。
- 缺点:配置繁琐,无法用于动态变化的客户端(如个人电脑)。
- 常见类型:
IPv4/IPv6手动隧道。
6to4 隧道
- 工作原理:这是一种自动隧道,无需手动配置,它使用一种特殊的 IPv6 地址(
2002::/16),其中包含了封装端点的 IPv4 地址,任何设备只要拥有一个全球唯一的 IPv4 地址,就可以自动生成一个 6to4 IPv6 地址,并与其他 6to4 网络通信。 - 优点:自动化程度高,易于部署,适合没有获得正式 IPv6 地址的机构快速接入 IPv6。
- 缺点:
- 性能问题:流量必须经过公共的 6to4 中继路由器,这些路由器通常性能不佳,成为瓶颈。
- NAT 问题:如果设备位于 NAT 之后,其 IPv4 地址不是公网地址,则无法建立 6to4 隧道。
- 已过时:由于上述问题,6to4 已被业界废弃,不再推荐使用。
6in4 隧道
- 工作原理:这是目前最常用、最稳定的隧道技术之一,它将 IPv6 数据包直接封装在 IPv4 数据包中,与 6to4 不同,它需要手动配置隧道的两端,并且通常使用 AICc (Anything-In-4) 协议(协议号 41),这意味着 IPv4 路由器必须允许协议 41 的流量通过。
- 优点:稳定可靠,性能优于 6to4,是许多隧道broker(如 Hurricane Electric)提供的服务基础。
- 缺点:需要手动或通过 DHCPv6 等方式配置两端的 IPv4 地址,且需要网络管理员在防火墙上开放协议 41。
- 应用场景:个人用户或小型企业通过隧道broker(如
tunnelbroker.net)获得 IPv6 连接。
Teredo 隧道
- 工作原理:Teredo 是一种专门为 IPv6 穿透 NAT 而设计的隧道技术,它将 IPv6 数据包封装在 UDP 数据包中(使用特定的 UDP 端口),这样就可以像普通 UDP 流量一样穿过大多数类型的 NAT 设备。
- 优点:解决了在 NAT 环境下无法建立隧道的问题,使得位于 NAT 后面的设备也能获得 IPv6 连接。
- 缺点:
- 性能开销大:多层封装(IPv6 -> UDP -> IPv4)增加了延迟和 CPU 开销。
- 依赖中继服务器:需要公共的 Teredo 中继服务器和 Teredo 服务器来帮助通信。
- Windows 默认支持:早期 Windows 系统曾用它作为默认的 IPv6 接入方式,但现在已优先使用其他方法。
- 应用场景:作为最后的手段,为没有其他 IPv6 接入方式的、位于 NAT 后面的 Windows 客户端提供基本的 IPv6 连接能力。
协议转换技术
当通信双方只有一种协议(一个纯 IPv6 客户端想访问一个纯 IPv4 服务器)时,就需要协议转换技术,它相当于一个“翻译官”,在中间设备上进行协议和地址的转换。
NAT64 / DNS64
这是目前最主流、最推荐的协议转换方案,专门用于IPv6 客户端访问 IPv4 服务器的场景。
-
工作原理:
(图片来源网络,侵删)- DNS64:当一个 IPv6 客户端向 DNS 服务器查询一个纯 IPv4 域名(如
www.example.com,其 A 记录为0.2.1)时,DNS64 服务器会:- 获取到 IPv4 地址
0.2.1。 - 将这个 IPv4 地址嵌入到一个特定的 IPv6 地址前缀中(通常是
64:ff9b::/96),生成一个伪造的 IPv6 地址(64:ff9b::c000:201)。 - 将这个伪造的 IPv6 地址返回给 IPv6 客户端。
- 获取到 IPv4 地址
- NAT64:IPv6 客户端向这个伪造的 IPv6 地址发送请求,请求到达 NAT64 网关后,NAT64 网关会:
- 解析出 IPv6 地址中包含的原始 IPv4 地址
0.2.1。 - 将 IPv6 数据包“翻译”成 IPv4 数据包,发送到真正的 IPv4 服务器
0.2.1。 - 当 IPv4 服务器返回响应时,NAT64 网关再将其“翻译”回 IPv6 数据包,发回给客户端。
- 解析出 IPv6 地址中包含的原始 IPv4 地址
- DNS64:当一个 IPv6 客户端向 DNS 服务器查询一个纯 IPv4 域名(如
-
优点:
- 对客户端透明:IPv6 客户端无需做任何修改,以为自己在和一个纯 IPv6 地址通信。
- 部署集中:只需要在网络边缘(如运营商出口)部署 NAT64/DNS64 网关即可为整个网络提供服务。
-
缺点:
- 非对称性:它只解决了“IPv6 访问 IPv4”的问题,无法解决“IPv4 访问 IPv6”的问题。
- 应用层网关问题:对于复杂的应用层协议(如 FTP、SIP),NAT64 可能需要 ALG(Application Layer Gateway)来辅助解析,否则会出问题。
- 性能瓶颈:所有流量都经过 NAT64 网关进行转换,可能成为性能瓶颈。
SIIT (Stateless IP/ICMP Translation)
- 工作原理:一种无状态的转换技术,直接在 IP 头和 ICMP 头层面进行转换,不维护会话状态,它是 NAT64 的基础理论,但通常不直接部署,而是作为 NAT64 的一部分。
- 优点:无状态,部署简单,性能相对较好。
- 缺点:功能有限,无法处理所有场景,通常与 DNS64 配合使用。
代理服务器
- 工作原理:这是一种传统的应用层网关,一个 HTTP 代理服务器,IPv6 客户端连接到代理,代理再代表客户端去访问 IPv4 的 Web 服务器。
- 优点:实现简单,可以针对特定应用进行优化。
- 缺点:通用性差,每种应用(如 FTP, SMTP, DNS)都需要一个专门的代理服务器,无法一劳永逸。
总结与过渡策略
| 技术类别 | 具体技术 | 主要用途 | 优点 | 缺点 | 当前状态 |
|---|---|---|---|---|---|
| 双栈 | 双栈 | 根本性过渡,长期共存 | 理想、无缝 | 地址消耗、管理复杂 | 核心和最终目标 |
| 隧道 | 6in4 | 穿越 IPv4 网络 | 稳定可靠 | 需手动配置,防火墙支持 | 广泛用于站点间和用户接入 |
| Teredo | 穿越 NAT | 解决 NAT 问题 | 性能差,依赖中继 | 备用方案,已不主流 | |
| 协议转换 | NAT64/DNS64 | IPv6 访问 IPv4 | 对客户端透明 | 非对称、性能瓶颈 | 主流的访问转换方案 |
| 代理服务器 | 特定应用访问 | 实现简单 | 通用性差 | 辅助手段,非主流 |
过渡策略通常是组合使用这些技术:
- 初期阶段:在核心网络和数据中心部署双栈,对于无法获得 IPv6 地址的用户或分支机构,使用 6in4 隧道技术提供临时的 IPv6 接入。
- 中期阶段:随着 IPv6 内容的增多,部署 NAT64/DNS64,让已经使用 IPv6 的用户能够无缝访问海量的纯 IPv4 互联网资源。
- 长期目标:逐步扩大双栈的部署范围,减少对隧道和转换技术的依赖,IPv4 网络将萎缩,成为一个“孤岛”,大部分流量在 IPv6 网络中传输,并通过 NAT64/DNS64 等技术与剩余的 IPv4 网络互通。
从 IPv4 到 IPv6 的过渡不是一个“一刀切”的切换,而是一个多种技术并存的、长期的、渐进式的演进过程。双栈是基础,隧道是过渡手段,协议转换是补充。
