I have two servers participating in an NLB cluster, both running Windows Server 2008 Standard. The cluster is designed to support both Web and FTP. The Web portion works great, my question is with the FTP. Let me also say that I do not control the router/Firewall that these servers sit behind (it is a hosted solution), but I am an administrator on both machines. Both machines use multiple private nics that are NAT'd by the firewall to public addresses. For the NLB, they both share a common address of (internally) 192.168.100.186 (the NLB address), and as earlier stated, it works great for Web.
I have a very specific need to route all FTP traffic through the NLB address (for purposes of monitoring all bandwidth for the given client and charging them accordingly). I also need to be able to have the client upload, first to one server, then to the other. Eventually the data needs to be synchronized, but I have yet to find a solid way to do this without using an external script/program, or using DFS and FRS, which I have found to be occasionally uncooperative.
Both servers FTP (in IIS) is assigned to the shared NLB address and the servers are configured to listen on their respective ports (Server 1=21(default), and Server 2=24). The NLB is configured to allow two ports, 21 and 24, and then route them according to the following rules
Server 1 = Port 21 100% load, Port 24 0% load.
Server 2 = Port 21 0% load, Port 24 100% load.
Which should always send port 21 traffic to Server 1, and port 24 traffic to Server 2. The port 21 traffic always works, no problems, always routes to Server 1, and FTP works great (woohoo). Port 24, on the other hand, connects to the server, handshakes, allows authentication (neither of these servers allow anonymous) and then hangs when the data channel trys to establish (so the LIST command breaks, and I never get a directory listing). I have tested the FTP operation on the alternate port by assigning FTP to one of the hardwired NIC addresses (instead of the NLB address) and everything works great, it's only when I use the NLB that everything goes awry, and only when using the non-standard port (24).
Any help would be appreciated.