I think I may have tracked this down, but I haven't had a go at patching
it yet.

In net/netfilter/ipvs/ip_vs_core.c - in handle_response():
        /* mangle the packet */
        if (pp->snat_handler && !pp->snat_handler(skb, pp, cp, iph))
                goto drop;

This calls the protocol-specific SNAT handler - however, it doesn't
first check that (IP_VS_FWD_METHOD(cp) == IP_VS_CONN_F_MASQ), as is done
in a couple of the other netfilter modules.

I think this means SNAT is *always* done on response packets, even if
the connection information was for a non-NAT connection.

I'll update the issue once I've had a go at patching this.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1681847

Title:
  IPVS incorrectly reverse-NATs traffic to LVS host

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1681847/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to