Re: [PATCH ipvs,v3 00/20] Support v6 real servers in v4 pools and vice v

To: Alex Gartrell <agartrell@xxxxxx>
Subject: Re: [PATCH ipvs,v3 00/20] Support v6 real servers in v4 pools and vice versa
Cc: horms@xxxxxxxxxxxx, lvs-devel@xxxxxxxxxxxxxxx, kernel-team@xxxxxx
From: Julian Anastasov <ja@xxxxxx>
Date: Thu, 28 Aug 2014 18:15:30 +0300 (EEST)

On Wed, 27 Aug 2014, Alex Gartrell wrote:

> At Facebook we use ipip forwarding to deliver packets from our layer 4 ipvs
> load balancers to our layer 7 proxies.  Today these layer 7 proxies are all
> dual stacked, so we can simply send v4 over v4 and v6 over v6.  In the
> future, we're going to have v6-only layer 7 load balancers (no internal v4
> address).  To deal with this, we'll forward v4 packets in v6 tunnels.  This
> patchset introduces the necessary functionality into ipvs.
> The noteworthy limitation of this is that it is not compatible with state
> synchronization, so great care is taken to keep these things mutually
> exclusive.
> This patchset includes changes that add an additional netlink attribute to
> destinations and changes that plumb the destination address family through
> parts of the code where it was assumed that it was the same as the service.
> Finally, there's a change that updates the transmit functions for tunneling
> to share common code and support v4 in v6 and vice versa.
> Changes for v2:
> Introduced crosses_local_route_boundary and update_pmtu functions and
> conditionally do the ip_hdr operations.  The latter means that df will be
> effectively zero when we forward an ipv6 packet over an ipv4 tunnel.
> Additionally, I addressed Julian's other statements.
> Changes for v3:
> added back the first two patches
> all of the things
> pull out the mtu changes
> other previously detailed fixes

        I think, we are almost at the final:

Patch 5:
        - we can mix patch 5 and 6?

Patch 7:
        - I guess addr_type var should be in the
        'if (skb_af == AF_INET6) {' block. So, do not
        forget to compile next time with CONFIG_IP_VS_IPV6=n

Patch 9:
        - for ensure_mtu_is_adequate():
                - move 'struct netns_ipvs *ipvs' below, where ipvs is
                - move 'struct net *net' below, where net is assigned

Patch 10:
        - 'is'->'if' in
        /* We only care about the df field is sysctl_pmtu_disc(ipvs) is set */

        After checking the cp->daddr usage I prepared
a patch that we should insert somewhere before the last one.
Attached. Later we have to wait
"ipvs: properly declare tunnel encapsulation" to appear in net-next.


Julian Anastasov <ja@xxxxxx>

Attachment: 0001-ipvs-use-the-new-dest-addr-family-field.txt
Description: Use daf

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