通过使用 NAT64 规则,NSX Edge 执行网络地址转换以允许从外部 IPv6 子网到内部 IPv4 子网的流量。

NAT64 仅支持纯 IPv6 节点启动的到纯 IPv4 节点的通信。

NAT64 支持以下第 4 层协议:
  • TCP
  • UDP
  • ICMP
    • 仅 ICMP Echo 请求和回复。
    • 支持 ICMPv4 错误,不支持 ICMPv6 错误。
将丢弃所有其他协议类型的数据包。

不支持转换 IPv4 选项、IPv6 路由标头、逐跃点扩展标头、目标选项标头和源路由标头。不支持 FTP。不支持碎片化数据包。

NAT64 不支持 NSX Edge 高可用性。不会在活动和备用设备之间同步 NAT64 会话,因此,如果发生故障切换,连接将会中断。

如果配置了动态路由协议,将重新分配 IPv4 前缀。

以下定时器适用于 NAT64 流量:
表 1. NAT64 定时器
协议 超时
TCP 入站 TCP-SYNC

6 秒

TCP-ESTABLISHED

2 小时

TCP-Trans

4 分钟

UDP 5 分钟
ICMP 1 分钟

前提条件

  • 为 Edge 服务网关的上行链路接口配置 IPv6 网络上的地址。
  • 为 Edge 服务网关的内部接口配置 IPv4 网络上的地址。
  • 确保这些地址在您的环境中的任何其他位置没有重复的地址。

过程

  1. vSphere Web Client 中,导航到网络和安全 (Networking & Security) > NSX Edge (NSX Edges)
  2. 双击一个 NSX Edge
  3. 单击管理 (Manage) > NAT
  4. 查看 (View)下拉菜单中选择 NAT64
  5. 单击添加 (Add),然后输入 NAT64 参数。
    选项 说明
    匹配 IPv6 目标前缀

    以 CIDR 表示法输入 IPv6 网络前缀(网络地址)或特定的 IPv6 地址。

    由于 NAT64 提供从 IPv6 子网到 IPv4 子网的连接,因此,在大多数情况下,您可能希望输入 IPv6 网络前缀而不是特定的 IPv6 地址。

    NAT64 使用在该文本框中指定的 IPv6 网络前缀将 IPv4 目标地址映射到 IPv6 目标地址。前缀长度必须为任何以下值之一:32、40、48、56、64 或 96。

    例如,如果使用 /96 网络前缀,NAT64 会将 IPv4 目标地址的十六进制等效值附加到 IPv6 网络前缀后面。有关示例,请参见该过程后面的示例 NAT64 规则。

    注: 您可以使用 RFC 6052 中定义的已知 64:ff9b::/96 前缀,或者使用在您的环境中尚未使用的任何其他 IPv6 前缀。
    转换的 IPv4 源前缀

    可选:以 CIDR 表示法输入 IPv4 网络前缀(网络地址)或特定的 IPv4 地址。

    确保在您的环境中尚未使用该 IPv4 网络前缀或 IPv4 地址。

    由于 NAT64 提供从 IPv6 子网到 IPv4 子网的连接,因此,在大多数情况下,您可能希望输入 IPv4 网络前缀而不是特定的 IPv4 地址。

    NAT64 使用 IPv4 网络前缀中的 IP 地址将 IPv6 源地址转换为 IPv4 源地址。有关示例,请参见该过程后面的示例 NAT64 规则。

    注:
    • 100.64.0.0/16 IPv4 共享地址空间是为 NAT64 保留的。您可以使用该保留的地址空间。
    • 如果将该文本框保留空白,在发布 NAT64 规则时,该规则自动使用保留的地址空间。
    说明 规则的可选描述。
    “已启用”或“状态” 启用 NAT64 规则。
    “启用日志记录”或“日志记录” 为 NAT64 规则启用日志记录。
  6. 单击添加保存该规则。
  7. 单击发布以使该规则生效。

示例: 示例 NAT64 规则

您希望 NSX Edge 允许从外部 IPv6 网络上的 Web 1 计算机 (2001::20/64) 到内部 IPv4 子网上的虚拟机 1 (10.10.10.2/30) 的流量。


该图显示了从外部 IPv6 子网上的 Web1 计算机到专用 IPv4 子网上的虚拟机 1 的流量流。
该示例中的 NAT64 规则使用以下示例值:
  • 匹配 IPv6 目标前缀:64:ff90::/96
  • 转换的 IPv4 源前缀:30.30.30.0/24

以下屏幕截图显示了发布的规则。规则 ID 是自动生成的,在您的环境中可能会有所不同。

图 1. NAT64 规则定义

NAT64 规则定义将 64:ff90:/96 作为 IPv6 目标前缀,并将 30.30.30.0/24 作为 IPv4 源前缀。

NAT64 规则使用目标 IPv4 地址 (10.10.10.2) 的十六进制等效值,并将其附加到 IPv6 网络前缀 (64:ff90::) 后面以组成 IPv6 目标地址:64:ff90::a0a:a02。

该规则从转换的 IPv4 源前缀 (30.30.30.0/24) 中提取任何 IP 地址。例如,该规则提取 30.30.30.32。NAT64 使用该 IPv4 源地址将 64:ff90::a0a:a02 目标地址转换为实际 IPv4 目标地址 (10.10.10.2)。

在发布该规则后,请执行以下步骤:
  1. 登录到 Web1 计算机的命令提示符,并向 IPv6 目标地址 64:ff90::a0a:a02 发出 ping 命令。将建立一个 nat64 会话。
  2. 登录到 NSX Edge CLI,然后运行 show nat64 sessions 命令以查看该 nat64 会话。
    Protocol     IPv6-SA     IPv6-DA               SPort     DPort     IPv4_SA        IPv4-DA      SPort     DPort
    TCP          2001::20    64:ff90::a0a:a02      2055      22        30.30.30.32    10.10.10.2   2055      22