在此页面上
有状态 NAT64 概述
网络地址转换 (NAT) 是一种机制,用于将专用网络上的一组主机地址隐藏在公共地址池后面。NAT64 是一种相关技术,它允许仅支持 IPv6 的客户端使用单播 UDP、TCP 或 ICMP 联系 IPv4 服务器。
公共 IPv4 地址在多个仅支持 IPv6 的客户端之间共享。为此,NAT64 将传入的 IPv6 数据包转换为 IPv4,反之亦然。此解决方案允许 ISP 迁移到 IPv6 网络,同时处理 IPv4 地址耗尽问题。
当有状态 NAT64 与 DNS64 结合使用时,通常不需要在 IPv6 客户端或 IPv4 服务器中进行更改。(本文档未涵盖 DNS64。有关详细信息,请参阅 draft-ietf-behave-dns64-12、DNS64:用于从 IPv6 客户端到 IPv4 服务器的网络地址转换的 DNS 扩展和用于从 IPv6 客户端到 IPv4 服务器的网络地址转换的RFC6147 DNS 扩展。
NAT64 解决的问题
NAT64 解决了 IPv6 客户端启动与 IPv4 服务器连接的问题。该体系结构的基石是 NAT64 易于部署,因为它不需要更改 IPv6 客户端或 IPv4 服务器。
如今,NAT64 的工作方式很像对称 网络地址端口转换 (NAPT44)。在 NAPT 中,将转换原始源地址和源端口。转换后的地址和端口从相应的 NAT 池中获取。
由 IPv6 客户端发起的 IPv6 数据包由 NAT64 设备透明地转换为 IPv4。设备根据 IP/ICMP 转换算法执行数据包标头转换,将 IPv4 主机的 IPv4 地址与 IPv6 地址相互转换,并为有状态 NAT64 函数分配前缀以进行转换。对于基本功能,除了一些仅 IPv6 主机可访问的启用 DNS64 的名称服务器之外,您还可以在 NAT64 设备中部署有状态 NAT64 功能。(有关应用场景的分析,请参阅 draft-ietf-behave-v6v4-framework-10 和 RFC 6144 IPv4/IPv6 转换框架。
配置地址转换
若要执行 IPv6 到 IPv4 转换,NAT64 函数将 IPv6 地址和端口(称为 IPv6 传输地址)绑定到 IPv4 地址和端口(称为 IPv4 传输地址)。转换将 IPv6 传输地址映射到 IPv4 传输地址,反之亦然。要创建这些映射,运行 NAT64 的路由器有两个地址池:IPv6 地址池(表示 IPv6 网络中的 IPv4 地址)和 IPv4 地址池(表示 IPv4 网络中的 IPv6 地址)。
IPv6 地址池是分配给转换器本身的 IPv6 前缀。此版本仅 IPv6 /96
支持前缀,包括众所周知的前缀 (64:FF9B::/96
) 和任意 /96
前缀。由于 IPv6 地址空间丰富,前缀可以等于甚至大于整个 IPv4 地址空间。这允许将每个 IPv4 地址映射到不同的 IPv6 地址,只需将前缀与要映射的 IPv4 地址和后缀连接起来(即,将 IPv4 地址 X 映射到 IPv6 地址 前缀:X:后缀)。
IPv4 地址池是一组 IPv4 地址,通常是本地管理员分配的小前缀。由于 IPv4 地址空间是一种稀缺资源,因此 IPv4 地址池很小,通常不足以与 IPv6 地址建立永久性的一对一映射。因此,除了手动创建的映射外,使用 IPv4 地址池的映射是动态创建和释放的。此外,由于IPv4地址稀缺,映射发生在传输地址之间,而不是实际地址之间。
有关转换算法的其他详细信息,请参阅以下文档:
draft-ietf-behave-v6v4-xlate-23,IP /ICMP 转换算法。
RFC 6145,IP /ICMP 转换算法。
draft-ietf-behave-address-format-10,IPv4/IPv6 转换器的 IPv6 寻址。
RFC 6052,IPv4/IPv6 转换器的 IPv6 寻址。