Hi,

On Tue, Dec 04, 2012 at 11:09:43AM -0500, Michael Richardson wrote:
> {sorry if I'm a bit tardy at removing the emergency moderation that I
> turned on in order to keep junk off the list}

I understand that, which I wasn't bugging anyone about this :-)

> >>>>> "Gert" == Gert Doering <g...@greenie.muc.de> writes:
>     Gert> I'm a bit irritated by a byproduct of a problem hunt today, 
> incorrect
>     Gert> TCP checksums on a *tun* interface...
> 
>     Gert> 23:17:39.862001 IP6 (hlim 64, next-header TCP (6) payload length: 
> 40) fd00:abcd:194:7::1.33509 > fd00:abcd:194:7::1000.2: S, cksum 0x6502 
> (incorrect (-> 0x3962), 1541095226:1541095226(0) win 14400 <mss 
> 1440,sackOK,timestamp 178211075 0,nop,wscale 6>
> 
> What's curious to me is that the chsum is not zero. If it was being
> "offloaded" into a step after the PF_PACKET interface, it would be zero,
> right?

I'm not sure.  I find this highly irritating, and I'm fairly sure that
*here* are the folks that have seen all the funnies when tcpdumping on
specific interfaces...

>     Gert> 23:18:14.295000 IP (tos 0x10, ttl 64, id 4904, offset 0, flags 
> [DF], proto TCP (6), length 60) 10.194.7.1.52647 > 10.194.7.6.2: S, cksum 
> 0x23b9 (incorrect (-> 0xd832), 2395069612:2395069612(0) win 14600 <mss 
> 1460,sackOK,timestamp 178245508 0,nop,wscale 6>
> 
> Both for IPv4 and IPv6?

Yes.

>     Gert> (The tun goes into openvpn, and out of the other side's tun
>     Gert> comes a packet 
> 
> openvpn does IPv6 now?

For point-to-point links, it did for a long time (but you had to set it
up manually on both ends).  For multipoint setups with a "server" that
assigns IPv6 addresses etc., this is new functionality in 2.3, to be 
released "real soon now".

> I suppose the next step would be to hexdump packets from /dev/net/tun.

I can try to do that, but I'm fairly sure that the packet is fine when it
really arrives "at the tun interface" - after all, it's coming *out* of 
the server side tun with a correct checksum:

Client tun (kernel->tun->openvpn):

23:03:32.016262 IP (tos 0x10, ttl 64, id 15966, offset 0, flags [DF], proto TCP 
(6), length 60)
    10.194.7.6.42707 > 10.194.7.1.2: Flags [S], cksum 0x23b9 (incorrect -> 
0x0ff4), seq 3558498516, win 14600, options [mss 1460,sackOK,TS val 2703974026 
ecr 0,nop,wscale 6], length 0
23:03:33.264096 IP6 (hlim 64, next-header TCP (6) payload length: 40) 
fd00:abcd:194:7::1000.33677 > fd00:abcd:194:7::1.2: Flags [S], cksum 0x6502 
(incorrect -> 0x4150), seq 1568376760, win 14400, options [mss 1440,sackOK,TS 
val 2703974338 ecr 0,nop,wscale 6], length 0


Server tun (openvpn->tun->kernel), same two packets:

23:07:08.409938 IP (tos 0x10, ttl 64, id 15966, offset 0, flags [DF], proto TCP 
(6), length 60) 10.194.7.6.42707 > 10.194.7.1.2: S, cksum 0x104f (correct), 
3558498516:3558498516(0) win 14600 <mss 1369,sackOK,timestamp 2703974026 
0,nop,wscale 6>
23:07:09.642172 IP6 (hlim 64, next-header TCP (6) payload length: 40) 
fd00:abcd:194:7::1000.33677 > fd00:abcd:194:7::1.2: S, cksum 0x4150 (correct), 
1568376760:1568376760(0) win 14400 <mss 1440,sackOK,timestamp 2703974338 
0,nop,wscale 6>

(for the SYN-ACK, the "incorrect" bit is on the other end, so this is 
symmetric)

gert
-- 
USENET is *not* the non-clickable part of WWW!
                                                           //www.muc.de/~gert/
Gert Doering - Munich, Germany                             g...@greenie.muc.de
fax: +49-89-35655025                        g...@net.informatik.tu-muenchen.de
_______________________________________________
tcpdump-workers mailing list
tcpdump-workers@lists.tcpdump.org
https://lists.sandelman.ca/mailman/listinfo/tcpdump-workers

Reply via email to