本节介绍了配置 NSX Advanced Load Balancer 以通过服务器池对主动 FTP 流量进行负载均衡的步骤。

NSX Advanced Load Balancer 使用侦听 FTP 端口的第 4 层应用程序虚拟服务和 preserve_client_ip 选项以实现主动 FTP 负载均衡。

必备条件

NAT 功能需要使用 IP 路由功能,因此,强制要求使用 SE 高可用性模式“传统(活动/备用)”。

拓扑



从逻辑上讲,NSX Advanced Load Balancer 位于用户网络和 FTP 服务器网络之间。所有发送到 FTP 服务器的流量以及从 FTP 服务器返回到用户的流量流向 NSX Advanced Load Balancer(服务引擎)。

在主动模式 FTP 中,客户端从随机端口 (N > 1023) 连接到 FTP 服务器的命令端口(端口 21)。然后,客户端开始侦听端口 N+1,并向 FTP 服务器发送 FTP 命令端口 N+1。

接下来,服务器从其本地数据端口(端口 20)连回到客户端的指定数据端口。

为了支持主动模式 FTP,需要在服务器端防火墙中打开以下通信通道:

  • 从任意位置到 FTP 服务器的端口 21(客户端启动连接)

  • FTP 服务器的端口 21 到 > 1023 的端口(服务器响应客户端的控制端口)

  • FTP 服务器的端口 20 到 > 1023 的端口(服务器启动到客户端数据端口的数据连接)

  • 从 > 1023 的端口到 FTP 服务器的端口 20(客户端向服务器的数据端口发送 ACK)

FTP 负载均衡解决方案

在为主动 FTP 服务器配置负载均衡解决方案时,必须启用的选项包括:

  • 对于 FTP 负载均衡,SE 位于客户端和服务器之间。在 SE 上配置了 FTP 虚拟服务(侦听端口 21),并将 FTP 服务器配置为池成员。此外,还在虚拟服务应用程序配置文件中启用了保留客户端 IP 地址

  • 在 L4 应用程序配置文件中启用了 Preserve Client IP 选项。

  • 配置了可以充当后端服务器网络的默认网关的 Floating Interface IP

  • 如果部署网络具有防火墙,为服务器到 FTP 虚拟服务 IP 地址的连接配置 NAT。

  • 如果在部署网络中没有防火墙,需要配置随机 NAT IP 地址,但主动 FTP 仍然正常工作。



配置

按照下面提到的步骤为 NSX Advanced Load Balancer 配置 FTP 负载均衡:https://draft.aviplayground.com/docs/21.1/configuring-nat-on-avi-service-engine/

  1. 使用 System-L4-Application 创建 FTP 虚拟服务,以作为侦听 FTP 端口 (21) 的服务。

  2. 在应用程序配置文件下面启用保留客户端 IP 地址

  3. 在“网络服务”下面配置浮动接口 IP 地址,它充当后端服务器网络的默认网关。

  4. 使用以下参数创建一个 NAT 配置文件:

    1. 匹配条件:将服务器子网作为源 IP 地址匹配,并将 20 作为源端口(对于主动 FTP)。

    2. 操作:NAT IP 必须与步骤 1 中的虚拟服务 IP 地址相同。(这是为了防止前端部署中的防火墙问题。)

  5. 将上述 NAT 配置文件附加到网络服务,以确保正确转换发起 FTP 请求的服务器的网络地址。

注:

规则将服务器网络和源端口 20 包括在匹配中。源端口规则需要仅匹配 FTP 流量,否则,从客户端到服务器的 SSH 连接将失败。

可支持性

以下技术支持命令和数据包捕获可用于调试有关主动 FTP 的问题。

FTP VS:

  • show serviceengine <se> vshash # vNIC 上侦听 FTP 命令端口 21 的服务。

NAT 可支持性命令:

  • show serviceengine <activeSE> natpolicystat

  • show serviceengine <activeSE> nat-flows

  • show serviceengine <activeSE> route-flows

数据包捕获:

  • 虚拟服务的数据包捕获

  • NAT 和路由数据包的 NAT+路由数据包捕获

  • show networkservice <ns>

对于 NAT 数据包捕获:

  • debug serviceengine <key> flags flag debug_pcap_nat