IPSec 协议的应用程序层网关
如果两个网络设备(例如,客户端和服务器)之间的通信使用 IPsec 协议,则 IKE 流量(通过 UDP)使用端口字段,但封装安全负载 (ESP) 流量不使用。如果路径上的 NAT 设备将相同的 NAT IP 地址(但端口不同)分配给位于同一目的地的两个或多个客户端,则 NAT 设备将无法区分和正确路由不包含端口信息的返回 ESP 流量。因此,IPsec ESP 流量在 NAT 设备上出现故障。
支持 NAT-Traversal (NAT-T) 的 IPsec 端点在 IKE 第 1 阶段检测到中间 NAT 设备的存在,然后切换到 UDP 端口 4500 以处理所有后续的 IKE 和 ESP 流量(将 ESP 封装在 UDP 中)。 如果对等 IPsec 端点不支持 NAT-T,则无需任何 UDP 封装即可传输 IPsec 保护的 ESP 流量。因此,IPsec ESP 流量在 NAT 设备上出现故障。
NetScaler 设备支持大规模的 NAT 配置的 IPsec 应用程序层网关 (ALG) 功能。IPsec ALG 处理 IPsec ESP 流量并维护会话信息,这样在 IPsec 端点不支持 NAT-T(ESP 流量的 UDP 封装)时,流量就不会失败。
IPsec ALG 的工作原理
IPsec ALG 监视客户端和服务器之间的 IKE 流量,并且在任何给定时间仅允许客户端和服务器之间进行一次 IKE 第 2 阶段消息交换。
收到特定流的双向 ESP 数据包后,IPsec ALG 会为该特定流量创建 NAT 会话,以便后续的 ESP 流量可以平稳流动。ESP 流量由安全参数索引 (SPI) 标识,这些索引对于流量和每个方向都是唯一的。 IPsec ALG 使用 ESP SPI 代替源和目标端口来执行大规模的 NAT。
如果门没有收到任何流量,则会超时。两个门都超时后,允许进行另一次 IKE 第 2 阶段交换。
IPsec ALG 超时
NetScaler 设备上的 IPsec ALG 有三个超时参数:
- ESP Gate 超时。如果客户端和服务器之间没有交换双向 ESP 流量,则 NetScaler 设备在给定服务器的特定 NAT IP 地址上屏蔽特定客户机的 IPsec ALG 门的最大时间。
- IKE 会话超时。如果 IKE 会话没有 IKE 流量,则 NetScaler 设备在删除 IKE 会话信息之前保留 IKE 会话信息的最长时间。
- ESP 会话超时。如果 ESP 会话没有 ESP 流量,则 NetScaler 设备在删除 ESP 会话信息之前保留 ESP 会话信息的最长时间。
配置 IPsec ALG 之前需要考虑的几点
在开始配置 IPsec ALG 之前,请考虑以下几点:
- 您必须了解 IPsec 协议的不同组件。
- DS-Lite 和大规模 NAT64 配置不支持 IPsec ALG。
- hairpin LSN 流量不支持 IPsec ALG。
- IPsec ALG 不适用于 RNAT 配置。
- NetScaler 群集不支持 IPsec ALG。
配置步骤
在 NetScaler 设备上为大规模 NAT44 配置 IPsec ALG 包括以下任务:
-
创建 LSN 应用程序配置文件并将其绑定到 LSN 配置。配置应用程序配置文件时设置以下参数:
- Protocol=UDP
- IP 共享 = 已配对
- Port=500
将应用程序配置文件绑定到 LSN 配置的 LSN 组。有关创建 LSN 配置的说明,请参阅 LSN 的配置步骤。
-
创建 IPsec ALG 配置文件。IPsec 配置文件包括各种 IPsec 超时,例如 IKE 会话超时、ESP 会话超时和 ESP 门超时。您将 IPsec ALG 配置文件绑定到 LSN 组。IPsec ALG 配置文件具有以下默认设置:
- IKE 会话超时 = 60 分钟
- ESP 会话超时 = 60 分钟
- ESP 门超时 = 30 秒
- 将 IPsec ALG 配置文件绑定到 LSN配置。当您将 IPsec ALG 配置文件绑定到 LSN 配置时,会为 LSN 配置启用 IPsec ALG。通过将 IPsec ALG 配置文件参数设置为 LSN 组中创建的配置文件的名称,将 IPsec ALG 配置文件绑定到 LSN 配置。 一个 IPsec ALG 配置文件可以绑定到多个 LSN 组,但是 LSN 组只能有一个 IPsec ALG 配置文件。
使用命令行界面创建 LSN 应用程序配置文件
在命令提示符下,键入:
add lsn appsprofile <appsprofilename> UDP -ippooling PAIRED
show lsn appsprofile
<!--NeedCopy-->
使用命令行界面将目标端口绑定到 LSN 应用程序配置文件
在命令提示符下,键入:
bind lsn appsprofile <appsprofilename> <lsnport>
show lsn appsprofile
<!--NeedCopy-->
使用命令行界面将 LSN 应用程序配置文件绑定到 LSN 组
在命令提示符下,键入:
bind lsn group <groupname> -appsprofilename <string>
show lsn group
<!--NeedCopy-->
使用 CLI 创建 IPsec ALG 配置文件
在命令提示符下,键入:
add ipsecalg profile <name> [-ikeSessionTimeout <positive_integer>] [-espSessionTimeout <positive_integer>] [-espGateTimeout <positive_integer>] [-connfailover ( ENABLED | DISABLED)
show ipsecalg profile <name>
<!--NeedCopy-->
使用 CLI 将 IPsec ALG 配置文件绑定到 LSN 配置
在命令提示符下,键入:
bind lsn group <groupname> -poolname <string> - ipsecAlgProfile <string>
show lsn group <name>
<!--NeedCopy-->
使用 GUI 创建 LSN 应用程序配置文件并将其绑定到 LSN 配置
导航到 系统 > 大规模 NAT > 配置文件,单击 应用程序 选项卡,添加 LSN 应用程序配置文件并将其绑定到 LSN 组。
使用 GUI 创建 IPsec ALG 配置文件**
导航到 系统 > 大规模 NAT > 配置文件,单击 IPSEC ALG 选项卡,然后添加 IPsec ALG 配置文件。
使用 GUI 将 IPsec ALG 配置文件绑定到 LSN 配置**
- 导航到 系统 > 大规模 NAT > LSN 组,打开 LSN 组。
- 在 高级设置中,单击 + IPSEC ALG 配置文件 将创建的 IPsec ALG 配置文件绑定到 LSN 组。
示例配置
在以下大规模 NAT44 配置示例中,为 192.0.2.0/24 网络中的订阅者启用了 IPsec ALG。带有各种 IPsec 超时设置的 IPsec ALG 配置文件 IPSECALGPROFILE-1 已创建并绑定到 LSN 组 LSN 组 -1。
示例配置:
add lsn client LSN-CLIENT-1
Done
bind lsn client LSN-CLIENT-1 -network 192.0.2.0 -netmask 255.255.255.0
Done
add lsn pool LSN-POOL-1
Done
bind lsn pool LSN-POOL-1 203.0.113.3-203.0.113.9
Done
add lsn appsprofile LSN-APPSPROFILE-1 UDP -ippooling PAIRED
Done
bind lsn appsprofile LSN-APPSPROFILE-1 500
Done
add ipsecalg profile IPSECALGPROFILE-1 -ikeSessionTimeout 45 –espSessionTimeout 40 –espGateTimeout 20 -connfailover ENABLED
Done
bind lsn group LSN-GROUP-1 -appsprofilename LSN-APPSPROFILE-1
Done
bind lsn group LSN-GROUP-1 -poolname LSN-POOL-1
Done
bind lsn group LSN-GROUP-1 - ipsecAlgProfile IPSECALGPROFILE-1
Done
<!--NeedCopy-->