checksum incorrect

nooke

New Member
May 3, 2021
4
0
1
37
Hi guys,

I'm having issues regarding checksums for network traffic.

Using multiple NIC's.
Intel I350
Intel X550T
Intel 82599ES

I already disabled like every offloading (rx, tx, gro, gso, tso, lro, ufo, rxhash).
But as it seems the Loopback interface is generating incorrect TCP checksums.

Code:
root@THOR:~# pveversion 
pve-manager/6.4-5/6c7bf5de (running kernel: 5.4.106-1-pve)

Code:
Intel Xeon E5-2630L v4
Supermicro X10SRM-TF


Code:
root@THOR:~# tcpdump -s 0 -i lo -vvvv -c 50
tcpdump: listening on lo, link-type EN10MB (Ethernet), capture size 262144 bytes
11:14:26.150563 IP (tos 0x0, ttl 64, id 5018, offset 0, flags [DF], proto TCP (6), length 134)
    localhost.localdomain.5900 > localhost.localdomain.34688: Flags [P.], cksum 0xfe7a (incorrect -> 0x5c81), seq 1675080130:1675080212, ack 446733398, win 512, options [nop,nop,TS val 1979269120 ecr 1979269075], length 82
11:14:26.150572 IP (tos 0x0, ttl 64, id 11902, offset 0, flags [DF], proto TCP (6), length 52)
    localhost.localdomain.34688 > localhost.localdomain.5900: Flags [.], cksum 0xfe28 (incorrect -> 0x9f58), seq 1, ack 82, win 512, options [nop,nop,TS val 1979269120 ecr 1979269120], length 0
11:14:26.150606 IP (tos 0x0, ttl 64, id 5019, offset 0, flags [DF], proto TCP (6), length 148)
    localhost.localdomain.5900 > localhost.localdomain.34688: Flags [P.], cksum 0xfe88 (incorrect -> 0xb26c), seq 82:178, ack 1, win 512, options [nop,nop,TS val 1979269120 ecr 1979269120], length 96
11:14:26.150610 IP (tos 0x0, ttl 64, id 11903, offset 0, flags [DF], proto TCP (6), length 52)
    localhost.localdomain.34688 > localhost.localdomain.5900: Flags [.], cksum 0xfe28 (incorrect -> 0x9ef8), seq 1, ack 178, win 512, options [nop,nop,TS val 1979269120 ecr 1979269120], length 0

But for the Loopback interface I can't change any parameters with ethtool -K for offloading.

Do I miss anything here?


cheers
 
I believe the tcpdump's "cksum" output is simply not to be trusted on localhost interfaces. The same thing happens for me here too (I suspect the kernel simply ignores checksums for local packets, as they are unlikely to be corrupted anyway) - but the packets arrive correctly anyway.

Are you experiencing any actual issues, or were you just worried about the tcpdump output?
 
This is an expected behavior as tcpdump tool on Linux because the checksum is offloading on your NIC but tcpdump reads IP packets from the Linux kernel right before the actual checksum takes place in the NIC chipset.
 
This is an expected behavior as tcpdump tool on Linux because the checksum is offloading on your NIC but tcpdump reads IP packets from the Linux kernel right before the actual checksum takes place in the NIC chipset.
That's certainly true for physical NICs, but I don't think that happens for 'localhost' destinations, like OP asked?
(I honestly don't know, glad to learn, but I suspect that in this case the kernel rather just ignores checksums entirely - what good would they be for a local destination after all)
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!