V6IPv6Hub

应用篇 · 场景与演进

过渡技术选型:双栈、隧道与 NAT64 - IPv6Hub

过渡技术NAT64隧道

本页目录

  1. 一、三大类别
  2. 二、双栈:首选方案
  3. 三、隧道:过渡期的临时手段
  4. 四、转换:让 v6-only 客户端访问 v4 服务
  5. 五、选型速查
  6. 六、给实施者的提醒
  7. 小结

过渡技术选型:双栈、隧道与 NAT64

IPv4 与 IPv6 是两套不兼容的协议,而现实中它们必须长期共存。用于连接两者的技术统称过渡技术。理解它们的分工,才能做出正确的选型——很多"IPv6 部署事故"源于选错了过渡方案。

一、三大类别

① 双栈(Dual Stack)        设备同时跑 v4 和 v6,各走各的
② 隧道(Tunneling)         把 v6 包封装在 v4 里(或反之)穿过不支持的网段
③ 转换(Translation)       在两种协议之间做地址/头部转换

选型总原则:能用双栈就用双栈;隧道只作过渡或特定链路;转换只在"必须让 v6-only 客户端访问 v4 服务"时使用。

二、双栈:首选方案

RFC 4213 描述的经典机制。设备同时拥有 v4 与 v6 地址,按 DNS 解析结果(Happy Eyeballs)选择使用哪一栈。

优点 代价
协议原生,无封装无转换 需要维护两套地址与路由
支持"渐进式"启用,随时可回滚 安全策略要写两遍(最容易漏的地方)
应用几乎无需改造 双栈资产发现与监控工作翻倍

这就是当前互联网的主流形态:不是"IPv4 换成 IPv6",而是"两者并存,v6 占比逐渐上升"。

三、隧道:过渡期的临时手段

隧道把一种协议的报文封装进另一种协议,用于"中间有段网络不支持 IPv6"的场景。

技术 原理 现状
手工隧道(GRE、6in4) 管理员在两台设备间配置固定封装 仍可用,适合可控的点对点
6to4 用 2002::/16,从 v4 地址自动派生 v6 前缀 已弃用,不要新部署(RFC 7526)
Teredo 把 v6 封装进 UDP,穿透 NAT,前缀 2001::/32 仅用于特定客户端场景(RFC 4380)
ISATAP 在 v4 内部网络上做主机级隧道 已不推荐(RFC 5214 明确不建议广泛部署)
6rd 运营商级 6to4 改进版,由运营商统一参数 部分运营商早期使用(RFC 5969)

为什么自动隧道不该长期用? 因为它们往往绕过边界安全策略:一条封装在 UDP 443 里的 Teredo 流量,看起来像普通网页访问。这也是安全加固清单里建议显式禁用自动隧道的原因。

四、转换:让 v6-only 客户端访问 v4 服务

当客户端只有 IPv6(典型如纯 v6 移动网络),而目标服务只有 IPv4 时,需要在网络侧做协议转换。

技术 作用 参考
NAT64 有状态地址与协议转换,v6 客户端 ↔ v4 服务 RFC 6146
DNS64 把只有 A 记录的域名合成为 AAAA(用 NAT64 前缀) RFC 6147
464XLAT 客户端侧 CLAT + 网络侧 PLAT,移动网络大量使用 RFC 6877
SIIT 无状态 IP/ICMP 转换 RFC 6145
NAT46 反向转换(v4 客户端访问 v6 服务),较少用 —

NAT64 + DNS64 的工作流程:

① v6-only 客户端查询 www.example.com(只有 A 记录)
② DNS64 发现无 AAAA,合成 AAAA:64:ff9b::192.0.2.10
③ 客户端连接这个 IPv6 地址
④ NAT64 网关把它转换成一个 IPv4 连接发往 192.0.2.10
⑤ 返回流量按反向规则转换回 IPv6

必须知道的三个限制:

  1. NAT64 之后,IPv6 的端到端优势失效。转换网关就是新的中间人,P2P 直连、来源认证都会受影响。
  2. DNSSEC 会被破坏。DNS64 合成的 AAAA 记录无法通过 DNSSEC 验证,这是该机制的固有矛盾。
  3. 应用若内嵌 IPv4 字面量会失效。例如代码里硬编码 192.168.1.1 或直接解析 A 记录的应用,在纯 v6 环境下会出问题。这也提醒我们:写代码时应始终使用域名,而不是硬编码地址。

五、选型速查

你的情况 推荐方案
新建网络,终端与服务都支持双栈 双栈(唯一推荐)
两处机房之间链路不支持 v6 手工隧道(可控、可审计)
移动网络,客户端纯 v6 而互联网仍有大量 v4 服务 464XLAT / NAT64+DNS64
想让 v6 客户端访问内部只有 v4 的老系统 NAT64 + DNS64(注意 DNSSEC 与硬编码问题)
想"顺手试试 IPv6" 不要用自动隧道;先在双栈环境里练手

选型三问:

  1. 客户端是双栈还是单栈?
  2. 服务端是双栈还是单栈?
  3. 中间有没有安全边界会被封装流量绕过?

六、给实施者的提醒

小结

下一篇:《IPv6 的典型应用场景与落地路径》。

← 如何正确检测 IPv6:方法、工具与结论边界 IPv6 的典型应用场景与落地路径 →