Debugging dropped shell connections over a VPN
Gary Palmer
gpalmer at freebsd.org
Wed Jul 27 11:50:44 UTC 2011
On Tue, Jul 26, 2011 at 01:35:16PM -0500, Paul Keusemann wrote:
> On 07/26/11 08:05, Gary Palmer wrote:
> >On Tue, Jul 26, 2011 at 06:53:59AM -0500, Paul Keusemann wrote:
> >>Again, sorry for the sluggish response.
> >>
> >>On 07/20/11 15:15, Gary Palmer wrote:
> >>>On Tue, Jul 12, 2011 at 02:26:34PM -0500, Paul Keusemann wrote:
> >>>>On 07/07/11 14:39, Chuck Swiger wrote:
> >>>>>On Jul 7, 2011, at 4:45 AM, Paul Keusemann wrote:
> >>>>>>My setup is something like this:
> >>>>>>- My local network is a mix of AIX, HP-UX, Linux, FreeBSD and Solaris
> >>>>>>machines running various OS versions.
> >>>>>>- My gateway / firewall machine is running FreeBSD-8.1-RELEASE-p1
> >>>>>>with
> >>>>>>ipfw, nat and racoon for the firewall and VPN.
> >>>>>>
> >>>>>>The problem is that rlogin, ssh and telnet connections over the VPN
> >>>>>>get
> >>>>>>dropped after some period of inactivity.
> >>>>>You're probably getting NAT timeouts against the VPN connection if it
> >>>>>is
> >>>>>left idle. racoon ought to have a config setting called natt_keepalive
> >>>>>which sends periodic keepalives-- see whether that's disabled.
> >>>>>
> >>>>>Regards,
> >>>>Thanks for the suggestions Chuck, sorry it's taken so long to respond
> >>>>but I had to reconfigure and rebuild my kernel to enable IPSEC_NAT_T in
> >>>>order to try this out.
> >>>>
> >>>>One thing that I did not explicitly mention before is that I am routing
> >>>>a network over the VPN.
> >>>Hi Paul,
> >>>
> >>>Even if you are not being NAT'd on the VPN there may be a firewall (or
> >>>other active network component like a load balancer) with an
> >>>overflowing state table somewhere at the remote end. We see this
> >>>frequently where I work with customer networks and the
> >>>firewall/VPN/network
> >>>admin denies that its a time out issue so there is likely some device in
> >>>the network that has a state table and if the connection is idle for a
> >>>few minutes it gets dropped.
> >>Hmmm, this seems likely. Have you had any luck in finding the culprit
> >>and resolving the problem?
> >Unfortunately no. We know the problem exists but as a vendor we have
> >very little success in getting the customer to identify the problematic
> >device inside their network as it only seems to affect our connections
> >to them when we are helping them with problems, so there is almost
> >always something more important going on and the timeout issue gets put
> >on the back burner and forgotten. We've worked around it in some
> >places by using the ssh 'ServerAliveInterval' directive to make ssh
> >send packets and keep the session open even if we're idle, but that
> >doesn't always work.
>
> OK, I found the ClientAliveInterval, and ClientAliveCountMax setting in
> the ssh_config man page. I assume these are what you are referring to.
> I tried setting ClientAliveInterval to 15 seconds with
> ClientAliveCountMax set to 3 and this seems to help. I've only tried
> this a couple of times but I have seen an ssh session stay alive for
> over an hour. The bad news is that the sessions are still getting
> dropped, at least now I know when it happens. Now I'm getting the
> following message:
>
> Received disconnect from 10.64.20.69: 2: Timeout, your session not
> responding.
>
> From a quick perusal of the openssh source, it is not obvious whether
> this message is coming from the client or the server side. Initially,
> because the keep alive timer is a server side setting, I assumed the
> message was coming from the server side but if the session is not
> responding how is the message getting to the client? If it is a client
> side problem, then I have much more flexibility to fix. All I can do is
> whine about server side problems.
Hi Paul,
ServerAliveInterval is actually a client setting. e.g. put this in
your ~/.ssh/config file
host *
ServerAliveInterval 15
will set the client to ping the server every 15 seconds and try to
keep the connection alive. You can replace '*' you want to be more
targeted in your configuration.
I've never played with the server side settings for various reasons.
Regards,
Gary
More information about the freebsd-net
mailing list