Le reti WiFi domestiche moderne sono diventate sorprendentemente complesse. Smartphone, tablet, notebook, smart TV, dispositivi IoT, assistenti vocali e videocamere di sorveglianza convivono sulla stessa infrastruttura radio, spesso distribuita su più piani o in abitazioni caratterizzate da pareti spesse, elementi metallici e altre fonti di attenuazione del segnale.
Installare più access point rappresenta soltanto il primo passo perché la vera sfida consiste nel garantire che i dispositivi possano automaticamente utilizzare il punto di accesso più adatto mentre l’utente si muove all’interno dell’abitazione. Il concetto del quale stiamo parlando si chiama roaming WiFi.
Utilizzando OpenWrt è possibile costruire un’infrastruttura di roaming avanzata senza ricorrere a controller proprietari, servizi cloud o software specifici del produttore. Con alcuni componenti aggiuntivi e una corretta configurazione degli standard IEEE 802.11r, 802.11k e 802.11v, è possibile ottenere prestazioni paragonabili a quelle offerte da soluzioni enterprise molto più costose.
OpenWrt: trasformare un router domestico in una piattaforma di rete avanzata
OpenWrt è un progetto open source basato su Linux sviluppato per essere installato su router, access point e altri dispositivi di rete compatibili. A differenza del firmware installato dal produttore, offre un ambiente completamente personalizzabile che consente di configurare funzionalità avanzate come VLAN, VPN, firewall evoluti, reti WiFi multi-SSID, monitoraggio del traffico e roaming assistito tra access point.
L’installazione avviene generalmente caricando l’immagine firmware specifica per il proprio modello di dispositivo attraverso l’interfaccia di amministrazione originale oppure tramite procedure “ad hoc”.
Una volta installato, OpenWrt mette a disposizione un’interfaccia web intuitiva chiamata LuCI e l’accesso completo al sistema tramite SSH, permettendo agli utenti più esperti di gestire la rete con un livello di controllo difficilmente raggiungibile avvalendosi delle soluzioni commerciali tradizionali.
Prima di procedere è tuttavia fondamentale verificare con attenzione la compatibilità dell’hardware e seguire scrupolosamente le istruzioni ufficiali, poiché l’installazione di OpenWrt comporta la sostituzione del firmware originale del dispositivo e un errore durante la procedura potrebbe renderlo temporaneamente o definitivamente inutilizzabile.
Perché il roaming rappresenta ancora un problema nelle reti domestiche
Molti utenti ritengono che assegnare lo stesso SSID a tutti gli access point sia sufficiente per ottenere un roaming efficace. In realtà il comportamento finale dipende principalmente dai client.
La maggior parte degli smartphone e dei notebook decide autonomamente quando abbandonare un access point e associarsi a un altro. Alcuni dispositivi adottano politiche aggressive e cercano rapidamente il segnale migliore; altri, invece, tendono a mantenere la connessione esistente anche quando la qualità radio è ormai degradata.
Questo fenomeno è noto come sticky client problem: un dispositivo continua a restare associato a un access point lontano pur trovandosi nelle immediate vicinanze di un altro punto d’accesso che offrirebbe condizioni radio decisamente migliori.
Le conseguenze sono facilmente riscontrabili:
- riduzione della velocità di trasmissione;
- aumento della latenza;
- peggioramento della qualità delle chiamate VoIP;
- buffering durante lo streaming;
- maggiore occupazione dello spettro radio.
Il problema diventa ancora più evidente negli edifici caratterizzati da ostacoli strutturali particolarmente penalizzanti per le frequenze WiFi più elevate, come ascensori, colonne tecniche, impianti idraulici, rivestimenti metallici o grandi elettrodomestici.
Separare le reti a 2,4 GHz e 5 GHz: una scelta ancora valida
Molte guide suggeriscono di utilizzare un SSID unico per tutte le bande disponibili. Una strategia spesso più efficace consiste nel mantenere due reti distinte:
- una rete a 2,4 GHz dedicata ai dispositivi legacy e IoT;
- una rete a 5 GHz destinata ai client più recenti.
L’approccio consente di adottare configurazioni differenti sul piano della sicurezza e delle prestazioni.
La rete a 2,4 GHz può mantenere la compatibilità WPA2 necessaria per dispositivi più datati, sensori smart, prese intelligenti e altri apparati che non supportano gli standard più recenti. La rete a 5 GHz, viceversa, può invece utilizzare WPA3-SAE, sfruttando canali più ampi, minori interferenze e migliori velocità di trasferimento.
In una configurazione del genere, il roaming WiFi è gestito separatamente all’interno di ciascuna banda. Non esiste alcuna migrazione automatica tra 2,4 GHz e 5 GHz orchestrata dall’infrastruttura: la scelta rimane responsabilità del client.
Il ruolo di 802.11r, 802.11k e 802.11v
Le moderne implementazioni di roaming si basano su tre standard complementari.
IEEE 802.11r introduce il Fast Transition, riducendo il tempo necessario per autenticarsi presso un nuovo access point durante il roaming. Senza Fast Transition, il dispositivo deve eseguire nuovamente l’intera procedura di autenticazione. Con 802.11r gran parte delle informazioni di sicurezza sono invece preparate in anticipo, permettendo una transizione quasi istantanea.
Lo standard 802.11k fornisce ai client informazioni dettagliate sugli access point vicini: invece di scandagliare l’intero spettro radio alla ricerca di possibili candidati, il dispositivo riceve direttamente una lista di access point suggeriti. Il risultato è un roaming più rapido e meno dispendioso dal punto di vista energetico.
Infine, 802.11v (Network Assisted Roaming) permette all’infrastruttura di fornire indicazioni ai client riguardo ai punti di accesso preferibili. L’access point può suggerire che un altro nodo della rete rappresenti una scelta migliore, lasciando comunque la decisione finale al dispositivo.
Quando gli standard da soli non bastano
In teoria, l’abilitazione di 802.11r, 802.11k e 802.11v dovrebbe essere sufficiente. Invece, all’atto pratico, si riscontrano evidenti limitazioni legate all’implementazione.
Uno dei problemi più comuni riguarda i riscontri chiamati Neighbor Reports previsti dallo standard 802.11k. Se gli access point non pubblicano correttamente l’elenco dei vicini, i client non dispongono delle informazioni necessarie per prendere decisioni ottimali.
È possibile verificare la presenza di tali informazioni impartendo il comando seguente sul dispositivo aggiornato a OpenWrt:
ubus call hostapd.wlan0 rrm_nr_get_own
Al posto di wlan0 bisogna sostituire l’identificativo corretto dell’interfaccia WiFi. In molte installazioni di OpenWrt si scopre che la lista dei vicini è vuota o incompleta, di fatto annullando l’efficacia del roaming assistito.
Come usare usteer con OpenWrt
Per migliorare il comportamento complessivo della rete è possibile utilizzare usteer, il daemon di steering sviluppato per OpenWrt. L’obiettivo di usteer consiste nel condividere informazioni tra gli access point e favorire decisioni di roaming più intelligenti.
Rui Carmo ha pubblicato di recente una breve guida che riassume i passaggi da seguire con OpenWrt per installare e configurare usteer. L’installazione richiede pochi passaggi:
opkg update
opkg install usteer luci-app-usteer
/etc/init.d/usteer enable
/etc/init.d/usteer restart
Una volta operativo, ogni access point mantiene informazioni aggiornate sui client associati e condivide tali dati con gli altri nodi della rete attraverso la LAN. Il meccanismo consente una visione distribuita dello stato della rete WiFi locale senza la necessità di controller centralizzati.
Neighbor Reports statici: il tassello mancante
Come spiega ancora Carmo (ha usato un sistema mesh Cudy), in molte configurazioni il vero miglioramento arriva grazie al pacchetto static-neighbor-reports. Il software automatizza infatti la creazione e la distribuzione delle Neighbor Reports di 802.11k.
Anche qui i passaggi da seguire per l’installazione e l’attivazione sono molto semplici:
opkg install static-neighbor-reports
/etc/init.d/static-neighbor-reports enable
/etc/init.d/static-neighbor-reports restart
Ogni access point è così informato dell’esistenza degli altri nodi appartenenti alla stessa rete. Gli access point a 2,4 GHz pubblicizzano esclusivamente altri punti d’accesso operanti a 2,4 GHz; analogamente, i dispositivi sui 5 GHz si riferiscono soltanto ai vicini appartenenti alla stessa banda.
Mescolare informazioni provenienti da reti con SSID differenti o politiche di sicurezza diverse potrebbe generare comportamenti imprevedibili da parte dei client.
Come misurare i risultati
La valutazione di un’infrastruttura di roaming non può basarsi esclusivamente sulle impressioni soggettive degli utenti.
È consigliabile monitorare diversi parametri, tra cui il rapporto segnale/rumore (SNR, Signal-to-Noise Ratio), che misura la qualità del collegamento wireless; RSSI, che indica la potenza del segnale ricevuto; i bitrate effettivamente raggiunti; il numero di passaggi dei dispositivi tra i vari access point (roaming), la distribuzione dei client sugli access point e l’eventuale presenza di dispositivi connessi con un segnale particolarmente debole.
OpenWrt mette a disposizione diversi strumenti per monitorare in tempo reale il comportamento della rete wireless.
Attraverso l’interfaccia LuCI o mediante comandi eseguiti via SSH è possibile verificare tutti gli aspetti citati in precedenza mentre per analisi più approfondite si possono eventualmente aggiungere pacchetti come collectd, che raccolgono periodicamente le metriche di rete e le inviano a piattaforme di monitoraggio come Graphite, InfluxDB o Prometheus. In questo modo è possibile generare grafici storici e confrontare il comportamento della rete prima e dopo modifiche alla configurazione, individuando ad esempio client che rimangono associati a un access point con segnali molto deboli oppure verificando l’effettiva distribuzione dei dispositivi tra i vari punti di accesso.
Tanti dati sono immediatamente consultabili con OpenWrt senza installare nulla. Ad esempio il seguente comando mostra, per ciascun client WiFi collegato, RSSI, bitrate di trasmissione e ricezione, pacchetti inviati e ricevuti, tempo di connessione, traffico complessivo:
iw dev wlan0 station dump
Un comando come logread | grep hostapd consente di individuare associazioni, disassociazioni e roaming Fast Transition (802.11r).
Uno dei segnali più significativi consiste nella riduzione dei client associati con livelli di segnale inferiori a -85 dBm o addirittura -90 dBm. Quando tali associazioni scompaiono, significa che i dispositivi stanno effettuando il roaming WiFi in modo più tempestivo e corretto.
È in questo modo che funzionano i sistemi mesh commerciali?
I sistemi mesh WiFi commerciali implementano molti degli stessi principi, ma di solito aggiungono un livello di coordinamento centralizzato e algoritmi proprietari che OpenWrt, per scelta progettuale, non include.
Abbiamo detto che quando si parla di roaming WiFi, è il client che decide quasi sempre quando cambiare access point. Nemmeno un sistema mesh da migliaia di euro può “spostare” forzosamente uno smartphone da un access point all’altro come farebbe uno switch di rete con una porta Ethernet. Può però influenzare fortemente la decisione.
I sistemi mesh di produttori come Ubiquiti, TP-Link, ASUS, Netgear o eero utilizzano normalmente 802.11k per fornire ai client la lista degli access point vicini; 802.11v per suggerire il punto di accesso più opportuno; 802.11r per accelerare la riassociazione; Band Steering per spingere i dispositivi verso 5 GHz o 6 GHz; Load Balancing per distribuire i client tra i vari nodi; algoritmi proprietari che monitorano RSSI, SNR, traffico e congestione.
La differenza principale è che in un sistema mesh commerciale esiste quasi sempre un controller che possiede una visione completa della rete. Se uno smartphone rimane collegato a un access point con segnale molto debole, il controller può adottare strategie più aggressive come ignorare temporaneamente nuove richieste di associazione, rifiutare alcune autenticazioni, abbassare la potenza di trasmissione, disassociare il client affinché cerchi un nodo migliore (client steering o assisted roaming).
Nel caso di OpenWrt con usteer, si può realizzare qualcosa di molto simile a una versione distribuita di questo meccanismo.
La differenza tra mesh networking e roaming wireless
C’è poi un’importante considerazione da fare: il termine mesh è spesso usato impropriamente nel marketing: molti utenti pensano infatti che mesh significhi “roaming perfetto”.
In realtà, con mesh networking si intende il collegamento wireless tra gli access point (backhaul wireless) mentre il roaming WiFi, come abbiamo visto, è proprio il passaggio del client da un access point all’altro.
È quindi possibile avere un roaming eccellente senza alcuna rete mesh, ad esempio quando tutti gli access point sono collegati alla rete LAN tramite cavo Ethernet. Anzi, dal punto di vista delle prestazioni, un backhaul cablato è generalmente preferibile. Vi abbiamo raccontato, tempo fa, il caso di un collegamento di backhaul wireless su sistema WiFi mesh che risultava soggetto a interferenze, rendendo pessime le prestazioni dell’intera rete.