VPN MTU limit breaks ssh connection to openssh 6.2p2 server

Ernst Kratschmer ernstk at us.ibm.com
Sat Nov 9 08:21:16 EST 2013


Hi Eitan et al., 

at the moment I only have Fedora 18 / 19 servers and a Win7 client behind 
the firewall connecting via VPN available for testing. Neither system 
accepts a "ping -DF" command. From the Win7 client I can do a "ping -l 
size" (-l size  Send buffer size.) or "ping -f -l size" (-f  Set Don't 
Fragment flag in packet (IPv4-only).). In either case the maximum number 
of bytes I can pack into the ping request is 1252. This 1252 byte limit is 
the same for sending the ping request over VPN or over the LAN (I lost you 
as far as the purpose of this test is concerned).

I did some additional testing and noticed the following. With openssh 
6.1p1 the "cipher string" gets broken up into two packet which add up to 
exactly 840 bytes (same as the single packet at large MTU) when I set the 
server to a smaller MTU size of e.g. 1200 (<<1362 VPN limit). With openssh 
6.2p2 the "cipher string" gets broken up into two packet which add up to 
1464 bytes, which is different from 1460 bytes of the single packet at 
large MTU, when I set a server MTU size of e.g. 1200. This 4 byte 
difference only happens with openssh 6.2p2, when the "cipher string" gets 
split into two packets. 

Things get even more weird with openssh 6.2p2 and an MTU of e.g. 600. The 
"cipher string" gets broken up into 1160 and 384 bytes (again 4 more than 
the original 1460), and not into three packets as I had expected. After 
the 384 byte packet has been send from the server, both client and server 
engage in a long list of resets (R flag set). 


-Ernst




From:
Eitan Adler <lists at eitanadler.com>
To:
Ernst Kratschmer/Watson/IBM at IBMUS, 
Cc:
Alex Bligh <alex at alex.org.uk>, "openssh-unix-dev at mindrot.org" 
<openssh-unix-dev at mindrot.org>, Damien Miller <djm at mindrot.org>, Darren 
Tucker <dtucker at zip.com.au>
Date:
11/08/2013 12:53 PM
Subject:
Re: VPN MTU limit breaks ssh connection to openssh 6.2p2 server



On Fri, Nov 8, 2013 at 12:33 PM, Ernst Kratschmer <ernstk at us.ibm.com> 
wrote:
> Hi Alex,

[ top posting makes it difficult to follow ]

> I am sorry, but I don't know what "ping with DF set" is.

DF is the "Don't Fragment" bit

> I can run "ping -l size". This fails if size is greater than 1252, over
> VPN or LAN.

-l is not useful here.  You may want to use -g and -G.
By default the DF bit is not set.  You may use the -D flag to set it.

> Not sure if this helps.


-- 
Eitan Adler





More information about the openssh-unix-dev mailing list