Citrix ADC

无状态NAT46

无状态NAT46特性通过IPv4到IPv6数据包转换实现IPv4和IPv6网络之间的通信,反之亦然,无需在Citrix ADC设备上维护任何会话信息。

对于无状态NAT46配置,设备按照rfc 6145和2765的定义将IPv4数据包转换为IPv6或将IPv6数据包转换为IPv4。

Citrix ADC设备上的无状态NAT46配置具有以下组件:

  • IPv4-IPv6 INAT表项。INAT表项,定义IPv4地址和IPv6地址之间1:1的关系。换句话说,设备上的IPv4地址代表IPv6服务器侦听连接请求。针对该IPv4地址的IPv4请求报文被转换为IPv6报文,然后将IPv6报文发送到IPv6服务器。

    设备将IPv6响应包转换为IPv4响应包,其源IP地址字段设置为INAT条目中指定的IPv4地址。然后将翻译后的数据包发送到客户端。

  • NAT46 IPv6前缀。在设备上配置的长度为96位(128-32=96)的全局IPv6前缀。在IPv4包到IPv6包的转换过程中,设备将转换后的IPv6包的源IP地址设置为NAT46 IPv6前缀[96位]和请求包中接收到的IPv4源地址[32位]的连接。

    在IPv6包到IPv4包的转换过程中,设备将转换后的IPv4包的目的IP地址设置为IPv6包的目的IP地址的后32位。

考虑这样一个例子,一个企业在服务器S1上托管站点www.example.com,该服务器有一个IPv6地址。为了支持IPv4客户端和IPv6服务器S1之间的通信,Citrix ADC设备NS1部署了一个无状态的NAT46配置,其中包括一个用于服务器S1的IPv4-IPv6 INAT条目和一个NAT46前缀。INAT条目包含一个IPv4地址,设备在该地址上代表IPv6服务器S1侦听来自IPv4客户端的连接请求。

无状态nat46

本例中需要设置的参数如下表所示:

实体 的名字 价值
客户端的IP地址 Client_IPv4(仅供参考) 192.0.2.60
服务器的IPv6地址 Sevr_IPv6(仅供参考) 2001年:DB8:5001:: 30
IPv6服务器S1的INAT条目中定义的IPv4地址 map - serr - ipv4(仅供参考) 192.0.2.180
NAT 46转换的IPv6前缀 NAT46_Prefix(仅供参考) 2001年:DB8:90::

本例中的交通流如下:

  1. IPv4 Client CL1向Citrix ADC设备上的Map-Sevr-IPv4(192.0.2.180)地址发送一个请求包。
  2. 设备接收请求包并在NAT46 INAT项中搜索映射到Map-sevr-IPv4(192.0.2.180)地址的IPv6地址。它找到Sevr-IPv6 (2001:DB8:5001::30)地址。
  3. 设备创建一个转换的IPv6请求包:
    • 目的IP地址字段= serr - ipv6 = 2001:DB8:5001::30
    • 源IP地址字段= NAT前缀(前96位)和Client_IPv4(后32位)的连接= 2001:DB8:90::192.0.2.60
  4. 设备将转换后的IPv6请求发送到Sevr-IPv6。
  5. IPv6服务器S1通过向Citrix ADC设备发送一个IPv6数据包来响应:
    • 目的IP地址字段= NAT前缀(前96位)和Client_IPv4(后32位)的连接= 2001:DB8:90::192.0.2.60
    • 源IP地址字段= serr - ipv6 = 2001:DB8:5001::30
  6. 设备接收IPv6响应数据包,并验证其目的IP地址是否与设备上配置的NAT46前缀匹配。由于目的地址与NAT46前缀匹配,设备将在NAT46 INAT项中搜索与ser - ipv6地址相关联的IPv4地址(2001:DB8:5001::30)。它找到Map-Sevr-IPv4地址(192.0.2.180)。
  7. 设备创建一个IPv4响应包:
    • 目的IP地址字段=从IPv6响应的目的地址中剥离的NAT46前缀= Client_IPv4 (192.0.2.60)
    • 源IP地址字段= Map-Sevr-IPv4地址(192.0.2.180)
  8. 设备将转换后的IPv4响应发送到客户机CL1。

无状态NAT46的局限性

以下限制适用于无状态NAT46:

  • 不支持转换IPv4选项。
  • 不支持IPv6路由头转换。
  • 不支持IPv6报文的逐跳扩展头转换。
  • 不支持IPv4报文的ESP和EH报头转换。
  • 不支持组播报文的转换。
  • 不支持目标选项标头和源路由标头的转换。
  • 不支持对不包含UDP校验和的IPv4 UDP分片报文进行翻译。

配置无状态NAT46

在Citrix ADC设备上创建无状态NAT46配置所需的实体包括以下步骤:

  1. 创建启用无状态模式的IPv4-IPv6映射INAT表项。
  2. 创建NAT46 IPv6前缀。

CLI程序

使用实例通过CLI配置INAT映射表项。

在命令提示符下,输入:

  • 添加inat < publicicipv4 > < privateeipv6 > -mode无状态
  • 显示inat

使用实例使用CLI创建NAT46前缀。

在命令提示符下,输入:

  • -nat46v6Prefix * >
  • 显示inatparam

例子:

> add inat example -com-stls-nat46 192.0.2.180 2001:DB8:5001::30 -mode stateless Done > set inatparam -nat46v6Prefix 2001:DB8:90::/96 Done 

GUI程序

使用GUI创建INAT映射项:

  1. “系统>网络>路由> INAT”。

  2. 添加一个新的INAT条目,或编辑一个现有的INAT条目。

  3. 设置如下参数:

    • 名称*
    • 公网IP地址*
    • 私有IP地址*(选中复选框,输入IPv6格式的地址)。
    • 模式(在下拉列表中选择“无状态”)

    *必需参数

使用GUI创建NAT46前缀:

导航到系统>网络,在设置组中,单击配置INAT参数,并设置前缀参数。

为无状态NAT46设置全局参数

该设备为无状态NAT46配置提供了一些可选的全局参数。

使用实例通过CLI设置无状态NAT46的全局参数。

在命令提示符下,输入:

  • 设置inatparam(- - - - - -nat46IgnoreTOS是的 没有)) ((nat46ZeroCheckSum启用 禁用)) ((nat46v6Mtu< positive_integer >] [-nat46FragHeader启用 禁用)]
  • 显示inatparam

例子:

> set inatparam -nat46IgnoreTOS YES -nat46ZeroCheckSum DISABLED -nat46v6Mtu 1400 -nat46FragHeader DISABLED Done 

使用GUI为无状态NAT46设置全局参数:

导航到系统>网络,在设置组中,单击配置INAT参数

无状态NAT46