
Il problema
I portatili Linux possono rimanere connessi a una rete Wi-Fi anche quando il segnale è diventato debole o instabile, pur avendo a disposizione un'altra rete Wi-Fi conosciuta con un segnale molto migliore.
Il problema si nota soprattutto in case grandi, uffici, magazzini, scuole, laboratori, alberghi e altri ambienti in cui sono disponibili più punti di accesso o più reti Wi-Fi.
La situazione che volevo affrontare è semplice: un portatile ha già salvato diverse reti Wi-Fi e l'utente si sposta da un'area a un'altra. Il computer potrebbe continuare a usare la prima rete anche quando un'altra rete salvata è ormai nettamente migliore.
L'idea
Roam è una piccola applicazione per Linux progettata per controllare la connessione Wi-Fi corrente e passare automaticamente a una rete nettamente migliore, scelta dall'utente, quando la connessione in uso diventa debole o instabile.
Roam usa NetworkManager e non cerca di sostituirlo. NetworkManager rimane responsabile della connessione Wi-Fi effettiva, mentre Roam aggiunge una politica di roaming.
L'utente seleziona esplicitamente, tra i profili Wi-Fi salvati in NetworkManager, le reti che Roam può prendere in considerazione per il roaming.
Come funziona
Roam valuta continuamente la connessione corrente e le alternative ammesse. Non sceglie semplicemente la rete con il valore di segnale più alto in un dato istante, perché questo potrebbe provocare continui passaggi da una rete all'altra quando i segnali sono simili.
La decisione tiene quindi conto di:
- qualità della connessione corrente;
- degrado e instabilità nel tempo;
- qualità delle reti candidate ammesse;
- un margine minimo tra la rete candidata e quella corrente;
- stabilità della rete candidata;
- un periodo di attesa dopo un passaggio riuscito.
L'obiettivo è un passaggio automatico prudente, non una continua competizione tra punti di accesso vicini.
Reti Wi-Fi diverse
Roam è pensato non solo per il caso in cui più punti di accesso usino lo stesso SSID. Gestisce anche il caso in cui l'utente abbia salvato reti Wi-Fi diverse, ad esempio:
WiFi-Ufficio WiFi-Laboratorio WiFi-Magazzino
L'utente può scegliere esplicitamente quali di questi profili salvati rendere disponibili per il roaming. Le reti sconosciute o non selezionate vengono ignorate.
Due semplici impostazioni
Modalità
Roam offre due modalità:
- Automatica: esegue il passaggio quando la politica di roaming individua una rete ammessa, stabile e nettamente migliore.
- Conferma: chiede all'utente prima di eseguire il passaggio.
Reattività
L'utente può scegliere una reattività bassa, media o alta. Questa impostazione determina quanto facilmente Roam considera utile un cambiamento, senza esporre all'utente soglie tecniche.
Cosa non è Roam
Roam non è:
- un sistema di rete mesh;
- un punto di accesso Wi-Fi;
- una VPN;
- un servizio di monitoraggio cloud;
- un gestore di password Wi-Fi;
- un sostituto di NetworkManager.
Privacy
Roam è progettato per funzionare localmente. Non richiede un account né usa servizi cloud, telemetria, analisi, caricamento di segnalazioni di errore o monitoraggio remoto.
Roam non ha bisogno di memorizzare le password Wi-Fi. La configurazione persistente contiene solo la modalità selezionata, la reattività e gli identificativi dei profili NetworkManager scelti dall'utente.
Lo storico del segnale usato dal motore decisionale esiste solo in memoria. Il progetto è concepito per non memorizzare lo storico delle reti Wi-Fi, la posizione, gli indirizzi IP, i dati DNS o altre informazioni non necessarie al roaming.
Linux e NetworkManager
L'implementazione attuale è volutamente dedicata ai sistemi Linux che usano NetworkManager. Il servizio in background comunica con NetworkManager tramite D-Bus, mentre l'interfaccia grafica è un client separato basato su GTK4 e libadwaita.
Chiudere la finestra grafica non interrompe il roaming: il servizio in background continua a funzionare nella sessione dell'utente.
Codice sorgente
Il progetto è open source e il codice sorgente è disponibile su GitHub:
https://github.com/ossacolsale/roam
Installazione
Il progetto è in fase di preparazione per una distribuzione più semplice tramite pacchetti Linux nativi e compilazione dai sorgenti. Le istruzioni di installazione aggiornate e gli eventuali pacchetti disponibili sono pubblicati su GitHub.
A chi si rivolge Roam?
Roam è pensato per chi usa Linux e si sposta in edifici o altre aree con più reti Wi-Fi disponibili, e vuole evitare che il computer resti collegato a una rete debole quando nelle vicinanze è disponibile un'alternativa salvata migliore.
È particolarmente adatto a chi cerca il passaggio automatico tra reti Wi-Fi, il roaming tra SSID diversi o una soluzione locale basata su NetworkManager che non richieda una rete mesh.
Stato attuale
Roam è un progetto open source attivo. L'implementazione attuale si concentra sull'affidabilità del funzionamento su Linux, su un comportamento prudente e sulla semplicità di installazione. Le prove nell'uso reale restano importanti, perché il comportamento della rete wireless dipende dalla scheda Wi-Fi, dal driver, da NetworkManager e dalle condizioni radio dell'ambiente.