2003-03-19 12:34:42

by bert hubert

[permalink] [raw]
Subject: [BUG] 2.5.65 ipv6 TCP checksum errors (capture attached)

Interestingly, the initial ssh connection worked, the second one failed.
Subsequent attempts fail too.

This all over ipv6:

hubert# tcpdump -r file -v -v
29.09 snapcount.33408 > hubert.ssh: S [tcp sum ok] 2737328594:2737328594(0) win 5760 <mss 1440,sackOK,timestamp 10690463 0,nop,wscale 0> (len 40, hlim 64)
29.09 hubert.ssh > snapcount.33408: S [tcp sum ok] 2399386333:2399386333(0) ack 2737328595 win 5712 <mss 1440,sackOK,timestamp 10865690 10690463,nop,wscale 0> (len 40, hlim 64)
29.09 snapcount.33408 > hubert.ssh: . [tcp sum ok] 1:1(0) ack 1 win 5760 <nop,nop,timestamp 10690464 10865690> (len 32, hlim 64)
29.10 hubert.ssh > snapcount.33408: P [bad tcp cksum 4f2!] 1:41(40) ack 1 win 5712 <nop,nop,timestamp 10865695 10690464> (len 72, hlim 64)
29.30 hubert.ssh > snapcount.33408: P [bad tcp cksum 3bf1!] 1:41(40) ack 1 win 5712 <nop,nop,timestamp 10865896 10690464> (len 72, hlim 64)
29.83 hubert.ssh > snapcount.33408: P [bad tcp cksum 23ef!] 1:41(40) ack 1 win 5712 <nop,nop,timestamp 10866432 10690464> (len 72, hlim 64)
30.86 hubert.ssh > snapcount.33408: P [bad tcp cksum 23eb!] 1:41(40) ack 1 win 5712 <nop,nop,timestamp 10867456 10690464> (len 72, hlim 64)

Both hosts run 2.5.65. hubert.ipv6.ds9a.nl (publically routable, so you
can try to ssh to me as long as I'm not asleep, the machine is next to my
bed) is a pentium pro 200. Kernel was make mrpropered before compiling,
virgin kernel.

Capture attached.

Regards,

bert

--
http://www.PowerDNS.com Open source, database driven DNS Software
http://lartc.org Linux Advanced Routing & Traffic Control HOWTO
http://netherlabs.nl Consulting


Attachments:
(No filename) (1.61 kB)
bad-csum (1.31 kB)
Download all attachments

2003-03-20 15:09:49

by bert hubert

[permalink] [raw]
Subject: [some more data] Re: [BUG] 2.5.65 ipv6 TCP checksum errors (capture attached)

On Wed, Mar 19, 2003 at 01:45:33PM +0100, bert hubert wrote:
> Interestingly, the initial ssh connection worked, the second one failed.
> Subsequent attempts fail too.

I've since let loose the excellent ethereal on this and found out:

> hubert# tcpdump -r file -v -v
> 29.09 snapcount.33408 > hubert.ssh: S [tcp sum ok] 2737328594:2737328594(0) win 5760 <mss 1440,sackOK,timestamp 10690463 0,nop,wscale 0> (len 40, hlim 64)
> 29.09 hubert.ssh > snapcount.33408: S [tcp sum ok] 2399386333:2399386333(0) ack 2737328595 win 5712 <mss 1440,sackOK,timestamp 10865690 10690463,nop,wscale 0> (len 40, hlim 64)
> 29.09 snapcount.33408 > hubert.ssh: . [tcp sum ok] 1:1(0) ack 1 win 5760 <nop,nop,timestamp 10690464 10865690> (len 32, hlim 64)

So far so good.

> 29.10 hubert.ssh > snapcount.33408: P [bad tcp cksum 4f2!] 1:41(40) ack 1 win 5712 <nop,nop,timestamp 10865695 10690464> (len 72, hlim 64)
> 29.30 hubert.ssh > snapcount.33408: P [bad tcp cksum 3bf1!] 1:41(40) ack 1 win 5712 <nop,nop,timestamp 10865896 10690464> (len 72, hlim 64)
> 29.83 hubert.ssh > snapcount.33408: P [bad tcp cksum 23ef!] 1:41(40) ack 1 win 5712 <nop,nop,timestamp 10866432 10690464> (len 72, hlim 64)
> 30.86 hubert.ssh > snapcount.33408: P [bad tcp cksum 23eb!] 1:41(40) ack 1 win 5712 <nop,nop,timestamp 10867456 10690464> (len 72, hlim 64)

These packets all have an identical csum of 0x680d, it is not being updated.
So, the SYN/SYNACK/ACK stuff went fine, the initial data however has a wrong
checksum.

For completeness, I've attached the capture again.

Regards,

bert

--
http://www.PowerDNS.com Open source, database driven DNS Software
http://lartc.org Linux Advanced Routing & Traffic Control HOWTO
http://netherlabs.nl Consulting


Attachments:
(No filename) (1.72 kB)
bad-csum (1.31 kB)
Download all attachments