On Ubuntu 14, I'm trying to set up a load balancer that uses haproxy for web connections and LVS-NAT for FTP, controlled by ldirectord, with pacemaker for automatic failover to a redundant host. The em1 interface has a public IP address and the em2 interface has a private IP address for talking to the back end servers.
Passive FTP through the kernel load balancer doesn't work, but active FTP does. When using a passive FTP client, the data connection will not establish, so directory listings and file transfers don't work. The FTP control channel on port 21 does work. There are two FTP servers for high availability.
I have the ip_vs_ftp module loaded. The ufw firewall is entirely disabled, because there is a Cisco firewall in front of all the hardware. I would really prefer to not have the firewall enabled ... but I did notice that every HOWTO out there for getting FTP to work through LVS also mentions how to set up the firewall.
This is the ldirectord config:
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
I'm migrating a working setup from CentOS 5, which is ancient. This all works perfectly on that CentOS 5 machine. The firewall is disabled on that machine.
How can I make this work like it does in the much older kernel?