LVS
lvs-devel
Google
 
Web LinuxVirtualServer.org

Re: [PATCH stable] ipvs: sctp: fix checksumming on snat and dnat handler

To: Neil Horman <nhorman@xxxxxxxxxxxxx>
Subject: Re: [PATCH stable] ipvs: sctp: fix checksumming on snat and dnat handlers
Cc: Daniel Borkmann <dborkman@xxxxxxxxxx>, netfilter-devel@xxxxxxxxxxxxxxx, lvs-devel@xxxxxxxxxxxxxxx, linux-sctp@xxxxxxxxxxxxxxx, Julian Anastasov <ja@xxxxxx>, Simon Horman <horms@xxxxxxxxxxxx>
From: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>
Date: Mon, 25 Feb 2013 16:40:25 +0100
On Thu, Feb 21, 2013 at 10:14:51AM -0500, Neil Horman wrote:
> On Thu, Feb 21, 2013 at 02:05:39PM +0100, Daniel Borkmann wrote:
> > In our test lab, we have a simple SCTP client connecting to a SCTP
> > server via an IPVS load balancer. On some machines, load balancing
> > works, but on others the initial handshake just fails, thus no
> > SCTP connection whatsoever can be established!
> > 
> > We observed that the SCTP INIT-ACK handshake reply from the IPVS
> > machine to the client had a correct IP checksum, but corrupt SCTP
> > checksum when forwarded, thus on the client-side the packet was
> > dropped and an intial handshake retriggered until all attempts
> > run into the void.
> > 
> > To fix this issue, this patch i) adds a missing CHECKSUM_UNNECESSARY
> > after the full checksum (re-)calculation (as done in IPVS TCP and UDP
> > code as well), and ii) calculates the checksum in little-endian format
> > (as fixed with the SCTP code in commit 4458f04c: sctp: Clean up sctp
> > checksumming code). Stable backport of upstream commit 4b47bc9a.
> > 
> > Cc: Julian Anastasov <ja@xxxxxx>
> > Cc: Simon Horman <horms@xxxxxxxxxxxx>
> > Cc: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>
> > Signed-off-by: Daniel Borkmann <dborkman@xxxxxxxxxx>
[...]
> Acked-by: Neil Horman <nhorman@xxxxxxxxxxxxx>

Enqueued to -stable. Thanks.
--
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

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