Skip to main content

In una rete comunitaria nessuno decide a mano dove passa il traffico: sono i nodi a scambiarsi le informazioni e a scegliere il percorso migliore. In Ninux Basilicata questo lavoro lo fa BIRD, un demone di routing open source, con il protocollo Babel.

Un po’ di storia

Abbiamo iniziato con OLSRd, poi con NNXX siamo passati a OLSRd2, che però è stato abbandonato dal suo maintainer. Oggi usiamo BIRD, che supporta IPv4 e IPv6, è attivamente sviluppato e parla più protocolli insieme: BIRD 3 sui router, con il firmware basato su OpenWrt 25.12, e BIRD 2 sul server OpenWISP.

Tre livelli di collegamento

  • Mesh radio 802.11s: i nodi vicini si collegano via WiFi su un canale dedicato. L’802.11s fornisce solo il collegamento; l’inoltro dei pacchetti lo decide Babel.
  • LAN: la rete locale del nodo, annunciata al resto di Ninux. Dove più nodi condividono la stessa rete cablata, si scambiano le rotte direttamente anche lì.
  • VPN ZeroTier: unisce le isole che la radio non riesce a collegare. Il controller ZeroTier gira sui nostri server ed è gestito da OpenWISP, che autorizza i nodi e assegna gli indirizzi.

Su tutti e tre i livelli gira Babel: i nodi scoprono i vicini, misurano la qualità dei collegamenti (sulla mesh tiene conto della qualità radio, mentre la VPN ha un costo più alto, così viene preferito il collegamento diretto) e ricalcolano i percorsi da soli se qualcosa si interrompe. Sulla mesh è attivo anche BFD, per accorgersi in pochi istanti di un collegamento radio caduto.

Nessun gateway centrale

La regola più importante: la default route non entra mai in Babel, né in uscita né in ingresso. Ogni nodo esce su Internet con la propria connessione e nessun server, nemmeno OpenWISP, fa da gateway per gli altri. La rete Ninux trasporta il traffico tra i nodi, non quello verso Internet.

E un nodo che non ha una connessione propria? Impara l’uscita da un vicino di mesh tramite OSPF, attivo solo sull’interfaccia mesh e usato esclusivamente per questo. Anche la VPN ZeroTier funziona su questi nodi: esce dal gateway del momento.

Configurazione gestita da OpenWISP

La configurazione di BIRD è identica su tutti i router e arriva come template OpenWISP. Dopo ogni aggiornamento il router verifica la nuova configurazione e ricarica BIRD solo se è valida: una configurazione sbagliata lascerebbe il nodo isolato, e così non può succedere. Lo stesso schema, con BIRD sul server OpenWISP, collega anche il controller alla rete.

Il firmware

BIRD è già incluso nel firmware Ninux basato su OpenWrt 25.12, insieme a ZeroTier e all’agent OpenWISP: un nodo nuovo entra nella rete di routing appena acceso, senza configurazione manuale. Le immagini sono nella sezione Downloads.


Ti piacerebbe vedere tutto questo dal vivo, sul tuo router? Ninux Basilicata è aperta a tutti, non servono competenze né abbonamenti. Scopri come entrare in quattro passi.

Leave a Reply