无状态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客户端的连接请求。
本例中需要设置的参数如下表所示:
实体 | 名字 | 价值 |
---|---|---|
客户端的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:: |
本例中的交通流如下:
- IPv4 Client CL1向Citrix ADC设备上的Map-Sevr-IPv4(192.0.2.180)地址发送一个请求包。
- 设备接收请求包并在NAT46 INAT项中搜索映射到Map-sevr-IPv4(192.0.2.180)地址的IPv6地址。它找到Sevr-IPv6 (2001:DB8:5001::30)地址。
- 设备创建一个转换的IPv6请求包:
- 目的IP地址字段= serr - ipv6 = 2001:DB8:5001::30
- 源IP地址字段= NAT前缀(前96位)和Client_IPv4(后32位)的连接= 2001:DB8:90::192.0.2.60
- 设备将转换后的IPv6请求发送到Sevr-IPv6。
- 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
- 设备接收IPv6响应数据包,并验证其目的IP地址是否与设备上配置的NAT46前缀匹配。由于目的地址与NAT46前缀匹配,设备将在NAT46 INAT项中搜索与ser - ipv6地址相关联的IPv4地址(2001:DB8:5001::30)。它找到Map-Sevr-IPv4地址(192.0.2.180)。
- 设备创建一个IPv4响应包:
- 目的IP地址字段=从IPv6响应的目的地址中剥离的NAT46前缀= Client_IPv4 (192.0.2.60)
- 源IP地址字段= Map-Sevr-IPv4地址(192.0.2.180)
- 设备将转换后的IPv4响应发送到客户机CL1。
无状态NAT46的局限性
以下限制适用于无状态NAT46:
- 不支持转换IPv4选项。
- 不支持IPv6路由头转换。
- 不支持IPv6报文的逐跳扩展头转换。
- 不支持IPv4报文的ESP和EH报头转换。
- 不支持组播报文的转换。
- 不支持目标选项标头和源路由标头的转换。
- 不支持对不包含UDP校验和的IPv4 UDP分片报文进行翻译。
配置无状态NAT46
在Citrix ADC设备上创建无状态NAT46配置所需的实体包括以下步骤:
- 创建启用无状态模式的IPv4-IPv6映射INAT表项。
- 创建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映射项:
“系统>网络>路由> INAT”。
添加一个新的INAT条目,或编辑一个现有的INAT条目。
设置如下参数:
- 名称*
- 公网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参数。