在 Ubuntu 14 上,我尝试设置一个负载平衡器,该负载平衡器使用 haproxy 进行 Web 连接,使用 LVS-NAT 进行 FTP,由 ldirectord 控制,使用 pacemaker 自动故障转移到冗余主机。em1 接口具有公共 IP 地址,em2 接口具有私有 IP 地址,用于与后端服务器通信。
通过内核负载平衡器的被动 FTP 不起作用,但主动 FTP 起作用。使用被动 FTP 客户端时,数据连接不会建立,因此目录列表和文件传输不起作用。端口 21 上的 FTP 控制通道起作用。有两个 FTP 服务器以实现高可用性。
我已加载 ip_vs_ftp 模块。ufw 防火墙已完全禁用,因为所有硬件前面都有 Cisco 防火墙。我真的希望不启用防火墙……但我确实注意到,每个让 FTP 通过 LVS 工作的 HOWTO 也提到了如何设置防火墙。
这是 ldirectord 配置:
检查超时 = 5
检查间隔 = 10
协商超时 = 20
自动重新加载 = 是
日志文件 =“/var/log/ldirectord.log”
静止 = 否虚拟=XX.XXX.XXX.71:21
fallback=127.0.0.1:21 real=10.100.2.61:21 masq 65535 real=10.100.2.60:21 masq 1 service=ftp request="monitortest.txt" receive="good" login="USER" passwd="PASSWD" scheduler=wrr protocol=tcp checktype=negotiate
我正在从 CentOS 5 迁移一个工作设置,它是古老的。这一切在那台 CentOS 5 机器上完美运行。该机器上的防火墙已禁用。
我怎样才能让它像在更旧的内核中那样工作?
答案1
肖恩,
正如在 HAProxy 邮件列表中所讨论的,我很确定您需要启用 conntrack 以及 ip_vs_ftp,然后它就可以正常工作。