LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: LVS-NAT ftp woes....

To: "LinuxVirtualServer.org users mailing list." <lvs-users@xxxxxxxxxxxxxxxxxxxxxx>
Subject: Re: LVS-NAT ftp woes....
From: Jan Klopper <janklopper@xxxxxxxxx>
Date: Thu, 06 Oct 2005 15:10:37 +0200
Hi,

Maybe this is not what you'd like to hear, but i just have FTP directly on the master server, which also has an Internet IP, and then distribute the files to the other servers trough Unison.

Since i guess you'r using on machine as your fileserver, and not use a realtime distributed file system your clients will need to wait for the files to get replicated to the other servers anyway.

In my situation, just add an extra dns record named dev to each domain which points directly to the primary servers ip. This way any client who uploads a file or changes a file, can view his changes online asif the cluster isn't even there. (for the dev. domain its isn't)

greets
Jan

Jonathan Tullett wrote:

Hello,

I've recently (last night) migrated our company hosting site from single publicly accessable servers onto a load balanced topology using LVS and keepalived.

95% of the migration went smoothly; no problems at all, however there's one service that's still failing: FTP.

I've spent all morning looking for a solution to this but I've not found anything that's worked with active, nor passive, FTP.

Here's what I've got set up at the moment:

Real server: 10.1.0.20 (default GW 10.1.0.10)
Director: 10.1.0.10 (internal), 217.154.117.50 (floating external)

I've got the following modules loaded on the director:
----------------------------------------------
Module                  Size  Used by    Not tainted
ipt_MASQUERADE          1464   0  (autoclean)
ipt_MARK                 760   0  (autoclean)
iptable_mangle          2136   0  (autoclean)
ip_vs_wlc                612  29  (autoclean)
ip_vs                  51624  30  (autoclean) [ip_vs_wlc]
iptable_nat            17934   1  (autoclean) [ipt_MASQUERADE]
ipt_state                536   3  (autoclean)
ip_conntrack 19972 0 (autoclean) [ipt_MASQUERADE iptable_nat ipt_state]
iptable_filter          1740   1  (autoclean)
ip_tables 12416 8 [ipt_MASQUERADE ipt_MARK iptable_mangle iptable_nat ipt_state iptable_filter]
tg3                    63436   2
rtc                     6440   0  (autoclean)
----------------------------------------------

The part of my keepalived.conf that's relevant:
----------------------------------------------
virtual_server fwmark 1 {
        delay_loop 6

        ! which lb technique?
        lb_algo wlc

        ! we are doing NAT
        lb_kind NAT

        protocol TCP

        persistence_timeout 600

        real_server 10.1.0.20 21 {
                weight 1
        }
}
----------------------------------------------

And I have the following IPTABLES rules in place:
----------------------------------------------
/sbin/iptables -t mangle -A PREROUTING -p tcp -d 217.154.117.50/32 \
     --dport 21 -j MARK --set-mark 1

/sbin/iptables -t mangle -A PREROUTING -p tcp -d 217.154.117.50/32 \
     --dport 1024: -j MARK --set-mark 1
----------------------------------------------

If I connect from work (natted) with active-ftp I get:
----------------------------------------------
publicserver:~# ftp bluebarracuda.com
Connected to bluebarracuda.com.
220 ProFTPD 1.2.10 Server (gingerman) [10.1.0.20]
Name (bluebarracuda.com:root): testftp
331 Password required for testftp.
Password:
230 User testftp logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200 PORT command successful
425 Unable to build data connection: Connection timed out
----------------------------------------------

And with passive-ftp I get:
----------------------------------------------
publicserver:~# ftp bluebarracuda.com
Connected to bluebarracuda.com.
220 ProFTPD 1.2.10 Server (gingerman) [10.1.0.20]
Name (bluebarracuda.com:root): testftp
331 Password required for testftp.
Password:
230 User testftp logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> passive
Passive mode on.
ftp> ls
227 Entering Passive Mode (10,1,0,20,200,52).
ftp: connect: Connection timed out
----------------------------------------------

What's bizarre though is that if I connect from home (I'm using a cisco SOHO router which probably has some magic in it) using active FTP, it works.

I've read that the module 'ip_vs_ftp' needs to be inserted into the kernel, however when I do that, FTP fails for everything (including behind my cisco)

I've no idea if it's relevant, but I'm running ProFTPd (as you can see from the above transcript)

I don't care which FTP I get working, active or passive, but I need to get one of them working, and get it working all the time (we've clients that FTP to us) - it's an almost critical service for us)

If anyone has any ideas as to what to try/do next, I would love to hear them, it's starting to drive me a little nuts :)

Many thanks in advance for any help that can be provided.

Jonathan.

------------------------------------------------------------------------



<Prev in Thread] Current Thread [Next in Thread>