ubuntu e router wifi telecom alice

Recentissimamente, un amico mi ha segnalato che aveva problemi di compatibilità con i suddetti router. E che tali problemi si verificavano solo con ubuntu, ovvero, windows funzionava benissimo.

La cosa mi ha sorpreso, ma non più di tanto: implementazioni “facilone” di router, specie di fascia economica, non è la prima volta che se ne vedono. In ogni caso, visto che mi pare di capire che questo oggetto venga dato di deafult agli utenti di questo provider, mi sono messo a cercare la soluzione (che sicuramente risiede in un qualche tweak del tcp). E come infatti, ecco la soluzione.

Per comodità la riporto qui, ma i crediti vanno tutti all’autore del blog enoiche illusioni.

In sostanza, si tratta di abilitare i syn cookies, e disabilitare il window scaling e il tcp congestion notify. A mero titolo di informazione: i syn cookies sono un meccanismo che evita il flood dei pacchetti flaggati syn. In teoria sono una cosa buona, ma se implementati in modo fantasioso, succede che il router droppa la connessione perchè il client è troppo efficace. abilitarli significa dire al router di non riempire la coda dei syn, ma di allargare la richiesta in modo da non droppare tutto.

ecn è un suo stretto parente, ed è un meccanismo che, se supportato dai due end-point permette di avere una notifica sul congestionamento del traffico per ridurre il rate. Poichè sono entrambi delle estensioni di protocollo, su implementazioni un pò pedestri del protocollo, fanno fatica a convivere – ripeto è un limite dell’apparato. Moltissimi apparati gestiscono entrambe le cose senza problemi. Comunque, nello specifico si tratta semplicemente di agire sul file /etc/sysctl.conf, con privilegi di amministrazione (sudo gedit, vi o quello che vi piace) e modificare

#net.ipv4.tcp_syncookies = 1

rimuovendo il commento. Occorre quindi aggiungere le due righe

net.ipv4.tcp_window_scaling = 0
net.ipv4.tcp_ecn = 0

In sintesi, il tutto diventa così:

net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_window_scaling = 0
net.ipv4.tcp_ecn = 0

Salvare e riavviare. Ovviamente non è necessario riavviare, bensì è sufficiente digitare

sudo sysctl -p /etc/sysctl.conf

One comment

  1. Olla unn mio collega miі ha giratο l’indirizzo di questo sito
    e sono passato a ѵedere com’è. Mi ρiace molto.
    Messo tra i preferiti. Bellissimo sito e grafiϲa spettacߋlare!!

Leave a Reply

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *