[2103] in linux-net channel archive
Re: IP forwarding bug in 1.3.73
daemon@ATHENA.MIT.EDU (Zoltan Hidvegi)
Thu Mar 14 23:44:53 1996
From: Zoltan Hidvegi <hzoli@cs.elte.hu>
To: iialan@iifeak.swan.ac.uk (Alan Cox)
Date: Thu, 14 Mar 1996 22:47:57 +0100 (MET)
Cc: alan@lxorguk.ukuu.org.uk, linux-net@vger.rutgers.edu
In-Reply-To: <m0txFtZ-0009f9C@iifeak.swan.ac.uk> from "Alan Cox" at Mar 14, 96 04:28:53 pm
> > The reply arrived to the ppp client but with bad UPD checksum and the IP
> > address of the originator of the packet was also wrong. Also the size of the
> > bogous reply was 319 bytes despite the 296 byte MTU. As I remember tcpdump
> > told that it is a fragment. I can provide tcpdump output for that if required
> > (but I left home the floppy which contains that).
>
> Can you send me that please.
>
> > 1.3.72 (or was it 1.3.71?) did not have this bug.
>
> Its very important I know which of .71 or .72 broke it. So please try and
> check.
I checked this and it turned out the the new ppp module in 1.3.72 caused the
problem. Loading the old pppd from 1.3.71 into 1.3.71 worked fine without
this forwading bug.
I tried nslookup, server szele.elte.hu, set type=any, cs.elte.hu. I made the
tests below with the stock ppp module included in 1.3.73 kernel, no bsd_comp
module loaded. MTU is 1500 on the ethernet, 296 on ppp0,
CONFIG_NO_PATH_MTU_DISCOVERY is not set in make config.
This tcpdump was made on the server which forwards the packages. Note that
the origin of the bad packages is wrong.
% tcpdump -vvpttNles 320 -i ppp0
tcpdump: listening on ppp0
826836473.459037 I 60 00 0000: hzoli.1093 > szele.domain: 36+ ANY? cs.elte.hu. (28) (ttl 63, id 407)
826836473.459037 I 300 00 0000: truncated-ip - 19 bytes missing!157.181.196.234 > hzoli: (frag 60541:295@2336) (ttl 59, bad cksum 2000!)
826836473.459037 I 51 00 0000: truncated-ip - 268 bytes missing!157.181.188.127 > hzoli: (frag 60541:295@344) (ttl 59, bad cksum 22!)
826836478.469037 I 60 00 0000: hzoli.1093 > szele.domain: 36+ ANY? cs.elte.hu. (28) (ttl 63, id 408)
826836478.469037 I 300 00 0000: truncated-ip - 19 bytes missing!157.181.196.230 > hzoli: (frag 60545:295@2336) (ttl 59, bad cksum 2000!)
826836478.469037 I 51 00 0000: truncated-ip - 268 bytes missing!157.181.152.160 > hzoli: (frag 60545:295@344) (ttl 59, bad cksum 22!)
826836488.479037 I 60 00 0000: hzoli.1093 > szele.domain: 36+ ANY? cs.elte.hu. (28) (ttl 63, id 409)
826836488.479037 I 300 00 0000: truncated-ip - 19 bytes missing!157.181.196.214 > hzoli: (frag 60561:295@2336) (ttl 59, bad cksum 2000!)
826836488.479037 I 51 00 0000: truncated-ip - 268 bytes missing!157.181.203.118 > hzoli: (frag 60561:295@344) (ttl 59, bad cksum 22!)
826836508.489037 I 60 00 0000: hzoli.1093 > szele.domain: 36+ ANY? cs.elte.hu. (28) (ttl 63, id 410)
826836508.489037 I 300 00 0000: truncated-ip - 19 bytes missing!157.181.196.110 > hzoli: (frag 60665:295@2336) (ttl 59, bad cksum 2000!)
826836508.489037 I 51 00 0000: truncated-ip - 268 bytes missing!techtitk > hzoli: (frag 60665:295@344) (ttl 59, bad cksum 22!)
And here is the kernlog I got with kdebug 7 ppp option on the server:
Mar 14 21:47:53 labor2 kernel: ppp: receive frame, count = 60
Mar 14 21:47:53 labor2 kernel: FF 03 00 21 45 00 00 38 ...!E..8
Mar 14 21:47:53 labor2 kernel: 01 97 00 00 40 11 D2 42 ....@..B
Mar 14 21:47:53 labor2 kernel: 9D B5 65 01 9D B5 06 70 ..e....p
Mar 14 21:47:53 labor2 kernel: 04 45 00 35 00 24 8B 89 .E.5.$..
Mar 14 21:47:53 labor2 kernel: 00 24 01 00 00 01 00 00 .$......
Mar 14 21:47:53 labor2 kernel: 00 00 00 00 02 63 73 04 .....cs.
Mar 14 21:47:53 labor2 kernel: 65 6C 74 65 02 68 75 00 elte.hu.
Mar 14 21:47:53 labor2 kernel: 00 FF 00 01 ....
Mar 14 21:47:53 labor2 kernel: ppp_dev_xmit [ppp0]: skb 00dbab44
Mar 14 21:47:53 labor2 kernel: ppp_dev_xmit [ppp0]: skb 00084640
Mar 14 21:47:58 labor2 kernel: ppp: receive frame, count = 60
Mar 14 21:47:58 labor2 kernel: FF 03 00 21 45 00 00 38 ...!E..8
Mar 14 21:47:58 labor2 kernel: 01 98 00 00 40 11 D2 41 ....@..A
Mar 14 21:47:58 labor2 kernel: 9D B5 65 01 9D B5 06 70 ..e....p
Mar 14 21:47:58 labor2 kernel: 04 45 00 35 00 24 8B 89 .E.5.$..
Mar 14 21:47:58 labor2 kernel: 00 24 01 00 00 01 00 00 .$......
Mar 14 21:47:58 labor2 kernel: 00 00 00 00 02 63 73 04 .....cs.
Mar 14 21:47:58 labor2 kernel: 65 6C 74 65 02 68 75 00 elte.hu.
Mar 14 21:47:58 labor2 kernel: 00 FF 00 01 ....
Mar 14 21:47:58 labor2 kernel: ppp_dev_xmit [ppp0]: skb 00e34948
Mar 14 21:47:58 labor2 kernel: ppp_dev_xmit [ppp0]: skb 00276640
Mar 14 21:48:08 labor2 kernel: ppp: receive frame, count = 60
Mar 14 21:48:08 labor2 kernel: FF 03 00 21 45 00 00 38 ...!E..8
Mar 14 21:48:08 labor2 kernel: 01 99 00 00 40 11 D2 40 ....@..@
Mar 14 21:48:08 labor2 kernel: 9D B5 65 01 9D B5 06 70 ..e....p
Mar 14 21:48:08 labor2 kernel: 04 45 00 35 00 24 8B 89 .E.5.$..
Mar 14 21:48:08 labor2 kernel: 00 24 01 00 00 01 00 00 .$......
Mar 14 21:48:08 labor2 kernel: 00 00 00 00 02 63 73 04 .....cs.
Mar 14 21:48:08 labor2 kernel: 65 6C 74 65 02 68 75 00 elte.hu.
Mar 14 21:48:08 labor2 kernel: 00 FF 00 01 ....
Mar 14 21:48:08 labor2 kernel: ppp_dev_xmit [ppp0]: skb 00e2d550
Mar 14 21:48:08 labor2 kernel: ppp_dev_xmit [ppp0]: skb 00b94640
Mar 14 21:48:22 labor2 kernel: ppp_tty_ioctl: read demand dial info
Mar 14 21:48:22 labor2 kernel: ppp_tty_read: called buf=08014626 nr=1504
Mar 14 21:48:22 labor2 kernel: ppp_tty_read: no data (EAGAIN)
Mar 14 21:48:28 labor2 kernel: ppp: receive frame, count = 60
Mar 14 21:48:28 labor2 kernel: FF 03 00 21 45 00 00 38 ...!E..8
Mar 14 21:48:28 labor2 kernel: 01 9A 00 00 40 11 D2 3F ....@..?
Mar 14 21:48:28 labor2 kernel: 9D B5 65 01 9D B5 06 70 ..e....p
Mar 14 21:48:28 labor2 kernel: 04 45 00 35 00 24 8B 89 .E.5.$..
Mar 14 21:48:28 labor2 kernel: 00 24 01 00 00 01 00 00 .$......
Mar 14 21:48:28 labor2 kernel: 00 00 00 00 02 63 73 04 .....cs.
Mar 14 21:48:28 labor2 kernel: 65 6C 74 65 02 68 75 00 elte.hu.
Mar 14 21:48:28 labor2 kernel: 00 FF 00 01 ....
Mar 14 21:48:28 labor2 kernel: ppp_dev_xmit [ppp0]: skb 00dbab44
Mar 14 21:48:28 labor2 kernel: ppp_dev_xmit [ppp0]: skb 00271838
Bye,
Zoltan