NAT64

NAT64是一种通过网络地址转换（NAT）的形式促成IPv6与IPv4主机间通信的IPv6过渡机制。NAT64网关是IPv4与IPv6协议间的转换器，RFC 6052, IPv6 Addressing of IPv4/IPv6 Translators, IETF Standards Track, C.Bao et al.它需要至少一个IPv4地址和一个包含32位地址空间的IPv6网段。为该服务保留的“知名前缀”是64:ff9b::/96。

IPv6客户端将希望与之通信的IPv4地址嵌入在IPv6网段的主机部分，构成一个嵌入IPv4的IPv6地址（IPv6网段中的32位地址空间），并将数据包发往生成的地址。NAT64网关则创建IPv6与IPv4地址间的映射，这可以是手动配置的，也可以是自动确定的。RFC 6146 Stateful NAT64: Network Address and Protocol Translation from IPv6 Clients to IPv4 Servers

 工作原理 
右|缩略图|NAT64和DNS64
简单的NAT64安装可能只需要一个网关，它的两个接口分别连接到IPv4网络与IPv6网络。IPv6网络的流量经由网关路由，网关对两个网络之间传输的数据包进行所有必要的转换。但是，这种转换并不是对称的，因为IPv6地址空间比IPv4地址空间大得多，因此就不可能进行一对一的地址映射。网关维护IPv6到IPv4的地址映射，而该映射可以在来自IPv6网络的第一个数据包到达NAT64网关时依据手动配置创建（有状态映射），也可使用自动算法创建（无状态映射）。

如果NAT64转换器是用在仅有IPv4的服务器之前，使其能被远端仅有IPv6的客户端访问，则比较适合使用无状态转换；而有状态转换则适合部署在客户端或服务提供端，使得仅有IPv6的客户端主机能联系到远端仅有IPv4的节点。

通常来说，NAT64被设计为在IPv6主机发起通信时使用。但也存在一些机制允许反向场景，例如静态地址映射。

不是每种类型的资源都能用NAT64访问。嵌入IPv4文字地址的协议（例如SIP和SDP、FTP、WebSocket、Skype、MSN等）和嵌入任何其他包括IPv4文字内容的协议都不被支持，但双栈网页代理允许仅有IPv6的客户端访问URL中包括IPv4文字的网页。不过，使用NAT64的464XLAT（见 RFC 6877）允许在仅有IPv6的连接上使用此类协议。对于SIP和FTP来说，使用應用層閘道（ALG）或者支持 RFC 7225 定义的PREFIX64扩展的也可以解决这个问题。

 实现 
 Ecdysis，NAT64网关，包含DNS64
 TAYGA，无状态NAT64实现，面向Linux
 Jool，有状态NAT64实现，面向Linux，与蒙特雷科技大学开发
 OpenBSD 5.1带来一个NAT64能力的
 ，一个实现DNS64和NAT64的反向代理和VPN解决方案
 无状态网络地址转换64于Cisco ASR 1000
 Stateful NAT64 feature在Juniper MX系列3D通用边缘路由器
 Cisco ASA版本9.0带来了NAT64和DNS64 
 Dual stack architecture that recognizes both IPv4 and IPv6 traffic在Fortinet FortiGate®多威胁安全设备

 参考资料 

Category:IPv6过渡技术
Category:路由软件