Subject: TCP socket timeout after IP address is removed

From: Zoltan Kiss <[email-masked]>
Date: Fri, 25 Jul 2014 21:04:16 +0100

Hi,

We have a timout problem on TCP sockets, which probably has some trivial 
solution, but I couldn't figure it out after hours of staring at the 
code, so hopefully someone can shed some light on it here.
The scenario is the following:
- I start an ssh connection from host A to B, it works fine
- netstat shows the socket is using local address K
- then I remove local address K, and with DHCP I get a new one, L on a 
different interface (interfaces are always up during the whole time)
- the socket is still alive, but my SSH connection doesn't transmit 
anything, obviously, as netstat says it is still using IP address K
- ftrace showed me the data goes through the TCP layer and finally the 
IP layer drops it because the route is no longer valid

On 3.10 kernel it times out after ~15 minutes or so, which isn't too 
good for me. On 2.6.32 it times out after a couple of minutes, and I 
would like to achieve the same, but I couldn't figure out how. Could 
anyone give me some guidance?

Regards,

Zoltan Kiss