The following series implements full NAT support for IPVS. The approach is via a minimal change to IPVS (make friends with nf_conntrack) and adding a netfilter matcher, kernel- and user-space part, i.e. xt_ipvs and libxt_ipvs. Example usage: % ipvsadm -A -t 192.168.100.30:8080 -s rr % ipvsadm -a -t 192.168.100.30:8080 -r 192.168.10.20:8080 -m # ... # Source NAT for VIP 192.168.100.30:8080 % iptables -t nat -A POSTROUTING -m ipvs --vaddr 192.168.100.30/32 --vport 8080 \ > -j SNAT --to-source 192.168.10.10 Changes to the linux kernel (rebased to next-20090831): Hannes Eder (2): netfilter: xt_ipvs (netfilter matcher for IPVS) IPVS: make friends with nf_conntrack include/linux/netfilter/xt_ipvs.h | 23 +++++ net/netfilter/Kconfig | 9 ++ net/netfilter/Makefile | 1 net/netfilter/ipvs/Kconfig | 2 net/netfilter/ipvs/ip_vs_core.c | 36 ------- net/netfilter/ipvs/ip_vs_proto.c | 1 net/netfilter/ipvs/ip_vs_xmit.c | 27 +++++ net/netfilter/xt_ipvs.c | 183 +++++++++++++++++++++++++++++++++++++ 8 files changed, 245 insertions(+), 37 deletions(-) create mode 100644 include/linux/netfilter/xt_ipvs.h create mode 100644 net/netfilter/xt_ipvs.c Changs to iptables: Hannes Eder (1): libxt_ipvs: user space lib for netfilter matcher xt_ipvs configure.ac | 11 + extensions/libxt_ipvs.c | 349 +++++++++++++++++++++++++++++++++++++ extensions/libxt_ipvs.man | 21 ++ include/linux/netfilter/xt_ipvs.h | 23 ++ 4 files changed, 401 insertions(+), 3 deletions(-) create mode 100644 extensions/libxt_ipvs.c create mode 100644 extensions/libxt_ipvs.man create mode 100644 include/linux/netfilter/xt_ipvs.h -- To unsubscribe from this list: send the line "unsubscribe lvs-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html