Re: IP forwarding bug in 1.3.73

Zoltan Hidvegi (hzoli@cs.elte.hu)
Thu, 14 Mar 1996 22:47:57 +0100 (MET)


> > 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