Se una sessione telnet sta in idle per un pò di tempo, è normale che qualche dispositivo di rete tagli la connessione di rete. Normalmente questo accade quando un client si connette ad un server AS400 e l’operatore si assenta per qualche tempo, quando prova a lavorare sul PC dopo il primo enter viene forzato da rifare il login. Questo ovviamente stressa l’operatore. Per ovviare a questo problema si allunga il timeout tcp delle sessioni del firewall, che nel caso Sonicwall sono a 15 minuti e si modificano a 60 minuti. Però puo’ accadere che la sessione venga interrotta da qualche device che non è sotto il nostro diretto controllo. A questo punto si può ricorrere al tcp-keepalive sul server stesso. La soluzione è stata risolta su una macchina linux. Occorre soltanto modificare tre parametri del kenel:
net.ipv4.tcp_keepalive_time=60 # Quanti secondi passano prima di inviare una probe
net.ipv4.tcp_keepalive_intvl=30 # Quanti secondi passano prima di inviare una probe se non ottengo risposta
net.ipv4.tcp_keepalive_probes=6 # Dopo quanti tentativi senza risposta avvisa l’application layer che la sessione è stata interrotta.
I valori scelti sono stati decisi dopo alcuni test. Potresti volerli modificare.