🇨🇳每日一言:
我的辫子长在头上,诸君的辫子长在心里。—— 觉醒年代
NAT64 的核心作用
在 IPv6 普及的过渡阶段,很多老旧服务器或网站(比如某些 GitHub 的资源、老旧的 API 接口)依然只有 IPv4 地址。
打破隔阂:IPv6 和 IPv4 协议互不兼容。如果没有 NAT64,纯 IPv6 的主机无法直接连接 IPv4 节点。
资源节省:企业或 IDC 内部可以全部部署 IPv6,只在出口处通过 NAT64 访问外网 IPv4 资源,省去了昂贵的公网 IPv4 地址开销。
它通常和谁一起出现? (DNS64)
NAT64 很少单独行动,它通常有一个搭档叫 DNS64:
DNS64:当纯 IPv6 主机查询一个只有 IPv4 的域名(如 legacy.example.com)时,DNS64 会把该 IPv4 地址“伪装”成一个特殊的 IPv6 地址(通常以 64:ff9b:: 开头)。
NAT64:主机发起请求到这个伪装地址,NAT64 路由器收到后,将其拆包、转换成 IPv4 报文发送给目标。
设置方法
如果想在 Linux上实现或使用 NAT64,最简单的方式:
作为客户端使用
如果只是想让你的纯 IPv6 机器能访问 IPv4,不需要自己搭 NAT64,只需要更换支持 NAT64 的 DNS。
- 方法:
修改 /etc/resolv.conf,使用公共的 DNS64 服务(例如 Google 或 Cloudflare):
| |
- 结果:
配置完成后,会发现 ping google.com(假设它有 v4)会指向一个 64:ff9b:: 开头的地址,并能连通。
总结对比
| 特性 | NAT64 | 传统的 NAT (NAT44) |
|---|---|---|
| 转换类型 | IPv6 $\rightarrow$ IPv4 | IPv4 $\rightarrow$ IPv4 |
| 主要用途 | IPv6 孤岛访问 IPv4互联网 | 局域网私网地址共享公网 |
| IP依赖项 | 通常需要 DNS64 | 配合仅需要网关配置 |
