IPv6 checksum errors with divert

From: Peter <pmc_at_citylink.dinoex.sub.org>
Date: Wed, 27 Oct 2021 15:28:47 +0200
I'm getting these errors when e.g. querying the root nameservers:

05:58:50.916825 IP6 (flowlabel 0x08c7c, hlim 64, next-header UDP (17)
		payload length: 62)
		> 2600:1401:2::a.53: [bad udp cksum 0x24ca -> 0x48df!]

These requests will never be answered.

I see these checksum error when the packet goes into the divert
socket, I see it when the packet comes back from divert, and I
see it when the packet goes out onto the network.

But, when I remove the divert socket from the path, then I still
see the checksum error at the place where the divert would have
happened, but when the packet goes out to the network, the checksums
are okay.

Obviousely this concerns only locally created packets - gatewayed IPv6
works okay. So somehow the information, that the packet is locally
created and still needs checksum computation, gets lost when
traversing the divert.

Received on Wed Oct 27 2021 - 13:28:47 UTC

Original text of this message