NAT64是一种通过网络地址转换(NAT)的形式促成IPv6IPv4主机间通信的IPv6过渡机制。NAT64网关是IPv4与IPv6协议间的转换器[1]它需要至少一个IPv4地址和一个包含32位地址空间的IPv6网段。为该服务保留的“知名前缀”是64:ff9b::/96

IPv6客户端将希望与之通信的IPv4地址嵌入在IPv6网段的主机部分,构成一个嵌入IPv4的IPv6地址(IPv6网段中的32位地址空间),并将数据包发往生成的地址。NAT64网关则创建IPv6与IPv4地址间的映射,这可以是手动配置的,也可以是自动确定的。[2]

工作原理

Thumb
NAT64和DNS64

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

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

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

不是每种类型的资源都能用NAT64访问。嵌入IPv4文字地址的协议(例如SIPSDPFTPWebSocketSkype、MSN等)和嵌入任何其他包括IPv4文字内容的协议都不被支持,但双栈网页代理允许仅有IPv6的客户端访问URL中包括IPv4文字的网页。不过,使用NAT64的464XLAT(见 RFC 6877)允许在仅有IPv6的连接上使用此类协议。对于SIP和FTP来说,使用应用层网关(ALG)或者支持 RFC 7225 定义的PREFIX64扩展的端口控制协议英语Port Control Protocol也可以解决这个问题。

实现

参考资料

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.