Citrix ADC

大型 NAT64

由于 IPv4 地址即将耗尽,因此 ISP 已开始向 IPv6 基础设施过渡。但在过渡期间,ISP 必须继续支持 IPv4 和 IPv6,因为大多数公共 Internet 仍然使用 IPv4。大规模 NAT64 是一种 IPv6 过渡解决方案,适用于具有 IPv6 基础设施的 ISP,用于将其仅限 IPv6 的用户连接到 IPv4 互联网。DNS64 是一种解决方案,用于启用仅 IPv6 的客户端发现仅 IPv4 的域。DNS64 与大型 NAT64 配合使用,可在仅 IPv6 的客户端和仅限 IPv4 的服务器之间实现无缝通信。

Citrix ADC 设备可实现大型 NAT64 和 DNS64,并符合 RFC 6145、6146、6147、6052、3022、2373、2765 和 2464 的要求。

体系结构

使用 Citrix ADC 设备的 ISP NAT64 架构包括通过部署在 ISP 核心网络中的 Citrix ADC 设备访问 IPv4 Internet 的 IPv6 订户。IPv6 用户通过 ISP 的 IPv6 接入网络连接到 ISP 核心网络。

本地化后的图片

Citrix ADC 设备的大型 NAT64 功能支持 IPv6 客户端和 IPv4 服务器之间通过 IPv6 到 IPv4 数据包转换进行通信,反之亦然,同时维护 Citrix ADC 设备上的会话信息。Citrix ADC DNS64 功能表示只有 IPv4 的域到 IPv6-订阅者通过合成仅限 IPv4 域的 DNS AAAA 记录并将其发送给订阅者。

大规模 NAT64 有两个主要组件:NAT64 前缀和 NAT IPv4 池。DNS64 有一个主要组件,即 DNS64 前缀,其值与 NAT64 前缀相同。

在收到来自托管在 Internet 上的仅 IPv4 Web 服务器上托管的域名的仅 IPv6 订阅者的 AAAA 请求时,Citrix ADC DNS64 功能会合成该域名的 AAAA 记录并将其发送给订阅者。通过连接 DNS64 前缀(设置为 NAT64 前缀)和域名的实际 IPv4 地址来合成 AAA 记录。

订阅服务器现在具有与所需域名相对应的 IPv6 目标地址。订阅者将请求发送到合成的 IPv6 地址。收到 IPv6 请求后,大规模 Citrix ADC NAT64 功能将 IPv6 请求数据包转换为 IPv4 请求数据包。大规模 NAT64 将 IPv4 请求的目标地址设置为 IPv4 地址,该地址通过从 IPv6 地址中剥离 NAT64 前缀,从 IPv6 请求的目标地址中提取。从 IPv6 请求中保留目标端口。大型 NAT64 还将源 IP 地址:IPv4 数据包的源端口设置为 NAT IP 地址:从配置的 NAT 池中选择的 NAT 端口。

设备会维护使用大型 NAT64 功能的所有活动会话的记录。这些会话称为大型 NAT64 会话。对于每个大型 NAT64 会话,设备还会维护订阅者 IPv6 地址和端口以及 NAT IPv4 地址和端口之间的映射。这些映射称为大比例 NAT64 映射。从大规模 NAT64 会话条目和大规模 NAT64 映射条目中,Citrix ADC 设备将响应数据包(从 Internet 接收)识别为属于特定 NAT64 会话。

当设备收到属于特定 NAT64 会话的 IPv4 响应数据包时,它会使用 NAT64 会话中存储的信息将 IPv4 数据包转换为 IPv6 数据包,然后将 IPv6 响应数据包发送给订阅者。

示例:NAT64 和 DNS64 部署的流量流量

考虑一个大型 NAT64 和 DNS64 部署的示例,其中包括 Citrix ADC 设备 NS-1 和两个本地 DNS 服务器(DNS-1 和 DNS-2),以及 IPv6 订阅者子 1。子 1 通过 ISP 的 IPv6 接入网络连接到 NS-1。NS-1 包括大规模 NAT64 和 DNS64 配置,用于支持 IPv6 用户子 1 和 IPv4 主机(内部和外部)之间的通信。

大规模 NAT64 配置包括 NAT64 前缀 (2001:DB8:300::/96) 和 NAT IPv4 池,用于将 IPv6 请求转换为 IPv4 请求和 IPv6 响应的 IPv4 响应。

DNS64 配置包括一个 DNS 负载平衡虚拟服务器 LBVS-DNS64-1 (2001:DB8:9999::99) 和一个 DNS64 前缀 (2001:DB8:300::/96)。LBVS-DNS64-1 代表本地 DNS 服务器 DNS-1 和 DNS-2 给 ISP 的订阅者。DNS64 前缀与 NAT64 前缀具有相同的值,用于合成从 DNS 服务器 DNS-1 和 DNS-2 接收的 DNS A 记录的 DNS AAAA 记录。NS-1 以合成的 AAAA 记录响应到子 1,用于解析 IPv4 主机的 DNS 请求。

本地化后的图片

DNS64 流量

IPv6 订阅者子 1 和站点之间的流量流量www.example.com,该站点位于 Internet 上仅限 IPv4 的 Web 服务器上,如下所示:

  1. IPv6 订阅着 SUB-1 向其指定的 DNS 服务器 (2001:DB8:9999::99) 发送针对 www.example.com 的 DNS AAAA 请求。
  2. Citrix ADC 设备 NS1 上的 DNS 负载平衡虚拟服务器 LBVS-DNS64-1 (2001:DB8:9999::99) 接收 AAAA 请求。LBVS-DNS64-1 的负载平衡算法选择 DNS 服务器 DNS-1 并将 AAAA 请求转发给它。
  3. DNS-1 返回空记录或错误消息,因为没有可用的 AAAA 记录www.example.com
  4. 由于在 LBVS-DNS64-1 上启用了 DNS64 选项,并且来自 CL1 的 AAAA 请求与 DNS64-Policy-1 中指定的条件相匹配,因此,NS1 将 DNS A 请求发送到 www.example.com 的 IPv4 地址对应的 DNS-1。
  5. DNS-1 使用 www.example.com 的 192.0.2.60 的 A 记录进行响应。
  6. NS1 上的 DNS64 模块通过将与 LBVS-DNS64-1 关联的 DNS64 前缀 (2001:DB8:300::/96) 与 www.example.com 2001:DB8:300::192.0.2.60 的 IPv4 地址 (192.0.2.60) 相连接来合成 www.example.com 的 AAAA 记录
  7. NS1 将合成的 AAAA 记录发送到 IPv6 客户端 CL1。NS1 还将 A 记录缓存到其内存中。NS1 使用缓存的 A 记录为后续 AAAA 请求合成 AAA 记录。

NAT64 交通流量

  1. IPv6 订阅者 SUB-1 将请求发送到 2001:DB8:5001:30 www.example.com。IPv6 数据包具有:

    • 源 IP 地址 = 2001:DB8:5001:30
    • 源端口 = 2552
    • 目标 IP 地址 = 2001:DB8:300::192.0.2.60
    • 目的地端口 = 80
  2. IPv6 订阅者 SUB-1 将请求发送到 2001:DB8:5001:30 www.example.com。IPv6 数据包具有:

    • 源 IP 地址 = 2001:DB8:5001:30
    • 源端口 = 2552
    • 目标 IP 地址 = 2001:DB8:300::192.0.2.60
    • 目的地端口 = 80
  3. 当 NS-1 接收 IPv6 数据包时,大型 NAT64 模块创建一个已转换的 IPv4 请求数据包,其中包括:

    • 源 IP 地址 = 配置的 NAT 池中可用的 IPv4 地址之一 (203.0.113.61)
    • 源端口 = 具有已分配 NAT IPv4 地址的可用端口之一 (3002)
    • 目标 IP 地址 = 通过从 IPv6 地址 (192.0.2.60) 剥离 NAT64 前缀 (2001:DB8:300::/96) 从 IPv6 请求的目标地址中提取 IPv4 地址
    • 目标端口 = IPv6 请求的目标端口 (80)
  4. 大型 NAT64 模块还为此大型 NAT64 流创建映射和会话条目。会话和映射条目包括以下信息:

    • IPv6 数据包的源 IP 地址 = 2001:DB8:5001:30
    • IPv6 数据包的源端口 = 2552
    • NAT IP 地址 = 203.0.113.61
    • NAT 端口 = 3002
    • NS-1 将生成的 IPv4 数据包发送到其在 Internet 上的目标。
  5. 收到请求数据包后,服务器www.example.com 处理数据包并向 NS-1 发送响应数据包。IPv4 响应数据包具有:

    • 源 IP 地址 = 192.0.2.60
    • 源端口 = 80
    • 目标 IP 地址 = 203.0.113.61
    • 目的地端口 = 3002
  6. 收到 IPv4 响应数据包后,NS-1 会检查大规模 NAT64 映射和会话条目,并发现 IPv4 响应数据包属于大规模 NAT64 会话。大规模 NAT64 模块创建一个转换的 IPv6 响应数据包:

    • 源 IP 地址 = 2001:DB8:300::192.0.2.60
    • 源端口 = 80
    • 目标 IP 地址 = 2001:DB8:5001:30
    • 目的地端口 = 2552
  7. NS-1 将转换的 IPv6 响应发送到客户端子 1。

Citrix ADC 设备支持的大型 NAT64 功能

Citrix ADC 设备上的大规模 NAT64 支持标准 LSN 功能集。有关这些 LSN 功能的更多信息,请参阅LSN 架构

以下是 Citrix ADC 设备支持的一些大型 NAT64 功能:

  • ALG。支持 SIP、RTSP、FTP、ICMP 和 TFTP 协议的应用程序层网关 (ALG)。
  • 确定性/固定 NAT。支持向订阅者预先分配端口块,以最大限度地减少日志记录。
  • 映射。支持与端点无关的映射 (EIM)、地址相关映射 (ADM) 和地址-端口相关映射 (APDM)。
  • 过滤。支持与端点无关的筛选 (EIF)、地址相关的筛选 (ADF) 和地址端口相关的筛选 (APDF)。
  • 配额。可配置的端口数量、每个订阅者的会话数量以及每个 LSN 组的会话数量限制。
  • 静态映射。支持手动定义大型 NAT64 映射。
  • 发夹流动。支持使用 NAT IP 地址的订阅者或内部主机之间的通信。
  • 464XLAT 连接。支持 IPv6 订阅者主机上仅限 IPv4 的应用程序与 Internet 上的 IPv4 主机之间通过 IPv6 网络进行通信。
  • 可变长度 NAT64 和 DNS64 前缀。Citrix ADC 设备支持定义长度为 32、40、48、56、64 和 96 的 NAT64 和 DNS64 前缀。
  • 多个 NAT64 和 DNS64 前缀。Citrix ADC 设备支持多个 NAT64 和 DNS64 前缀。
  • LSN 客户。支持通过使用 IPv6 前缀和扩展 ACL6 规则指定或标识大型 NAT64 的订阅服务器。
  • 日志记录。支持日志记录 NAT64 会话执法。此外,日志记录也支持以下内容。
    • 可靠的系统日志。支持通过 TCP 向外部日志服务器发送 SYSLOG 消息,以实现更可靠的传输机制。
    • 日志服务器的负载平衡。支持外部日志服务器的负载平衡,以防止冗余日志消息的存储。
    • 最小日志记录。具有端口块的确定性 LSN 配置或动态 LSN 配置可显著减少大型 NAT64 日志卷。
    • 记录 MSISDN 信息。支持在大型 NAT64 日志中包含用户的 MSISDN 信息,以识别和跟踪通过 Internet 的用户活动。

大型 NAT64