IPVS: make FTP work with full NAT support
authorHannes Eder <heder@google.com>
Fri, 23 Jul 2010 10:48:52 +0000 (12:48 +0200)
committerPatrick McHardy <kaber@trash.net>
Fri, 23 Jul 2010 10:48:52 +0000 (12:48 +0200)
commit7f1c407579519e71a0dcadc05614fd98acec585e
tree623a63992113a539a3cd43031e58aad83f04bf34
parent7b215ffc3885a38182d3d49ceb41d0a81c3e041a
IPVS: make FTP work with full NAT support

Use nf_conntrack/nf_nat code to do the packet mangling and the TCP
sequence adjusting.  The function 'ip_vs_skb_replace' is now dead
code, so it is removed.

To SNAT FTP, use something like:

% iptables -t nat -A POSTROUTING -m ipvs --vaddr 192.168.100.30/32 \
    --vport 21 -j SNAT --to-source 192.168.10.10
and for the data connections in passive mode:

% iptables -t nat -A POSTROUTING -m ipvs --vaddr 192.168.100.30/32 \
    --vportctl 21 -j SNAT --to-source 192.168.10.10
using '-m state --state RELATED' would also works.

Make sure the kernel modules ip_vs_ftp, nf_conntrack_ftp, and
nf_nat_ftp are loaded.

[ up-port and minor fixes by Simon Horman <horms@verge.net.au> ]
Signed-off-by: Hannes Eder <heder@google.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Patrick McHardy <kaber@trash.net>
include/net/ip_vs.h
net/netfilter/ipvs/Kconfig
net/netfilter/ipvs/ip_vs_app.c
net/netfilter/ipvs/ip_vs_core.c
net/netfilter/ipvs/ip_vs_ftp.c