I've been looking at my hangs with ip_tunnel and rlogin/telnet. Something
strange seems to happen with the length field of the packets.
At the poing of the hang, this is what tcpdump on the remote tunnel end gives:
00:52:22.710185 gtex02.us.es.login > pi.sitrantor.es.1022: . 16:528(512) ack
44
win 4096
00:52:22.710185 truncated-ip - 56 bytes missing![|tcp] (encap)
00:52:22.710185 truncated-ip - 404 bytes missing![|tcp] (encap)
Compiling the tunnel with the debug option I get:
Old IP Header....
IP packet:
--- header len = 20
--- ip version: 4
--- ip protocol: 6
--- source address: 150.214.140.67
--- destination address: 194.224.147.66
--- total packet len: 552
Room left at head: 0
Room left at tail: 15
Required room: 36, Tunnel hlen: 36
New IP Header....
IP packet:
--- header len = 20
--- ip version: 4
--- ip protocol: 4
--- source address: 194.224.129.2
--- destination address: 194.224.129.249
--- total packet len: 168
Packet sent through tunnel interface!
So a packet of 552 has a 36 byte header shoved on it and finishes up to
be only 168 bytes??
The tunnel has an mtu of 500, which might well be related, but I can't see
from the source how the above happens. The byte missing packets arrive
to the local ppp tunnel machine, but it appears to drop them as the don't
get onto the local wire.
I have tcpdumps of most the traffic if anyone can help debug this.
-- Jon. <jon@gte.esi.us.es, http://www.esi.us.es/~jon>