Comandi SSH che si bloccano misteriosamente

Come perdere una giornata per risalire ad un problema apparentemente incomprensibile.

La settimana scorsa ho cambiato il modem comprando un Netgear DGN2200 (che vi consiglio per la completezza, con possibilità di collegare un hardisk USB e uno dei pochi con pulsante per disattivare il WiFi).
Installato e funzionante. Tutto perfetto. Quasi.
Ieri mi collego ad una VPN di un cliente e ad alcuni server in ssh. Lancio qualche processo batch di analisi e trasferimento dati. Tutto bene, finchè non lancio un comando pericolosissimo :) :
ls -l
Mi visualizza 2 righe e poi si blocca senza alcun messaggio, neanche di timeout connessione interrotta.
Faccio alcune prove ricollegandomi, ed in pratica qualsiasi comando mandi in output più di qualche linea blocca tutto (more, tail ...).

Inizio il percorso di ricerca della fonte del problema.

1- Penso a qualche problema di rete o connessione, quindi provo a collegarmi con il cellulare 3G ed il problema non si presenta. Scartata
2- Avendo cambiato da poco l'operatore ADSL ed essendo passato a Telecom Alice mi viene in mente qualche filtro sulle vpn, ma provo a collegarmi ad un'altra vpn di un altro cliente e questa funziona benissimo. Scartata
3- Qualche parametro di configurazione particolare della VPN: allora confronto i file di configurazione e vedo che quella che funziona è TCP mentre quella che da problemi è UDP. BINGO

Nei meandri del mio cervelletto era rimasta una qualche nozione di "Reti di calcolatori" che mi ricordava qualche differenza nel trasporto dei pacchetti tra i due protocolli ed essendo il problema un interruzione senza messaggio, poteva benissimo essere qualche pacchetto corrotto. La conferma la trovo su wikipedia alla voce UDP :
A differenza del TCP, l'UDP è un protocollo di tipo connectionless, inoltre non gestisce il riordinamento dei pacchetti né la ritrasmissione di quelli persi
Tutto si fa più chiaro quando mi richiama un mio amico sistemista (Giancarlo) che dopo avergli spiegato la rava e la fava mi chiede il valore dell'MTU (Maximun Transmit Unit) del modem (PS: molti ingegneri rinomati che conosco non avrebbero ricollegato l'MTU con il trasporto dei pacchetti nemmeno dopo anni di analisi e Giancarlo non è ingegnere, ma si ingegna molto con passione)

Il valore impostato era 1456 bytes (WAN Setup del pannello di amministrazione), mentre il valore consigliato per le connessione adsl di tipo PPPoE, come Alice di Telecom, è 1492.

Impostato quel valore tutto ha funzionato a meraviglia!!
Mistero risolto!


Commenti