NEXUS-ITALIA – Descrizione tecnica e chiarimenti sul funzionamento

Cos’è NEXUS-ITALIA

NEXUS-ITALIA è un progetto nato all’interno dell’ecosistema MeshCore con l’obiettivo di consentire lo scambio di messaggi tra reti MeshCore locali che, per distanza geografica o assenza di continuità radio, non potrebbero comunicare direttamente tra loro. Il progetto nasce diversi mesi fa, quando la copertura MeshCore italiana era ancora fortemente frammentata e composta da numerose reti locali a “macchia di leopardo”. L’idea alla base di NEXUS-ITALIA è quindi relativamente semplice: mantenere intatta la rete radio MeshCore locale e aggiungere esclusivamente una dorsale IP per trasportare a distanza i messaggi di uno specifico canale MeshCore. Questa dorsale è costituita da una serie di gateway NEXUS-ITALIA, installati in diverse zone del territorio e collegati tramite Internet a un concentratore centrale.

Ogni gateway è normalmente composto da:

  • un piccolo computer, tipicamente Raspberry Pi o dispositivo equivalente;

  • un dispositivo Companion MeshCore USB;

  • una connessione Internet;

  • il software gateway NEXUS-ITALIA;

  • l’accesso autorizzato al concentratore centrale NEXUS.

Il Companion continua a comunicare via LoRa con la propria rete MeshCore locale.

Il Raspberry, invece, svolge la funzione di ponte controllato tra il Companion e l’infrastruttura NEXUS attraverso Internet.


NEXUS non sostituisce MeshCore

Questo è probabilmente il concetto più importante da chiarire.

NEXUS-ITALIA NON è una rete alternativa o parallela a MeshCore.

NEXUS utilizza MeshCore come infrastruttura radio e ne estende una specifica funzionalità di messaggistica oltre i confini fisici delle singole reti LoRa. La comunicazione locale continua quindi ad avvenire normalmente attraverso:

Companion → LoRa → rete MeshCore locale

Quando un messaggio appartiene al canale NEXUS, un gateway autorizzato può acquisirlo e trasferirlo attraverso Internet al concentratore NEXUS.

Il percorso diventa quindi, in maniera semplificata:

Utente MeshCore → rete LoRa locale → Gateway NEXUS → Internet → Concentratore NEXUS → Internet → Gateway remoti → rete LoRa remota → utenti MeshCore

Internet viene pertanto utilizzata esclusivamente come dorsale di trasporto tra gateway geograficamente distanti.


NEXUS interconnette un CANALE, non le reti MeshCore

È fondamentale distinguere il concetto di interconnessione della messaggistica da quello di interconnessione delle reti.

NEXUS-ITALIA NON collega tra loro i nodi, i repeater o le mesh locali.

Un repeater di Roma non diventa vicino di un repeater di Milano, Palermo, Lecce o Savona per effetto di NEXUS. Non vengono trasportati attraverso la dorsale NEXUS gli advert, le informazioni di routing, le tabelle dei nodi, i neighbour, i percorsi radio o genericamente tutto il traffico MeshCore.

La dorsale NEXUS interessa solo ed esclusivamente i messaggi appartenenti al canale MeshCore denominato NEXUS.

Questo significa che le reti MeshCore locali rimangono autonome e continuano a funzionare secondo le normali regole radio di MeshCore. NEXUS aggiunge semplicemente un percorso alternativo, attraverso Internet, per i messaggi dello specifico canale NEXUS.


Il concentratore NEXUS

Al centro dell’infrastruttura esiste un concentratore NEXUS-ITALIA operativo in cloud. Il concentratore riceve tramite MQTT i messaggi provenienti dai gateway autorizzati distribuiti sul territorio. Quando riceve un messaggio valido proveniente da un gateway, il sistema effettua i controlli previsti e successivamente lo distribuisce agli altri gateway NEXUS interessati.

Il principio generale è quindi:

Gateway A → Concentratore → Gateway B, C, D, E…

Il gateway che ha originato l’uplink viene escluso dalla ritrasmissione dello stesso messaggio. Questo è uno dei meccanismi utilizzati per evitare che un messaggio appena ricevuto venga immediatamente restituito allo stesso gateway che lo ha consegnato al concentratore. Il concentratore implementa inoltre meccanismi di controllo e deduplicazione destinati a contrastare rimbalzi e duplicazioni generate quando lo stesso messaggio radio viene ricevuto da più gateway appartenenti alla medesima rete MeshCore.


Il concentratore NON effettua routing geografico tramite Regional Scope

Un altro punto fondamentale riguarda il concetto di Regional Scope.

Il concentratore NEXUS non interpreta un Regional Scope come un indirizzo di destinazione geografica del messaggio.

Non esiste, ad esempio, un funzionamento del tipo:

#it-sic-ct → manda il messaggio solamente al gateway di Catania

oppure:

#it-laz-fr → manda il messaggio solamente al gateway di Frosinone

Questo non è il modello di funzionamento di NEXUS.

Il concentratore svolge principalmente una funzione di raccolta, controllo, deduplicazione e redistribuzione della messaggistica NEXUS tra i gateway autorizzati.


A cosa serve allora il Regional Scope?

Il Regional Scope è una configurazione MeshCore caricata sul dispositivo radio.

Di conseguenza, il suo effetto riguarda il lato radio LoRa, non il routing IP/MQTT effettuato dal concentratore NEXUS.

Quando viene configurato, per esempio:

#it-laz-fr

questa impostazione appartiene alla configurazione MeshCore della board e determina il comportamento del dispositivo rispetto alla propagazione radio prevista da MeshCore per quello scope. In altre parole, il Regional Scope deve essere considerato un meccanismo relativo alla segmentazione/propagazione radio della rete MeshCore, non un comando impartito al concentratore NEXUS. Questo aspetto diventa particolarmente importante quando nella stessa area geografica, o addirittura nella stessa rete MeshCore radio, sono presenti più gateway NEXUS.


Perché più gateway sulla stessa mesh possono essere problematici?

Supponiamo che nella stessa rete MeshCore siano presenti due gateway:

Gateway A e Gateway B.

Un utente trasmette:

“TEST NEXUS”

Poiché entrambi i gateway appartengono alla stessa rete radio, entrambi potrebbero ricevere lo stesso messaggio.

Potrebbe quindi verificarsi:

Utente → LoRa → Gateway A → NEXUS

e contemporaneamente:

Utente → LoRa → Gateway B → NEXUS

Il concentratore riceverebbe pertanto due uplink relativi allo stesso messaggio. La situazione diventa ancora più delicata quando un messaggio proveniente dalla dorsale viene ritrasmesso via radio da un gateway e successivamente captato da un altro gateway appartenente alla stessa mesh.

È precisamente questo uno degli scenari che può generare echo, duplicazioni e loop.

Per questo motivo NEXUS utilizza diversi livelli di protezione e, dove necessario, una corretta pianificazione dei Regional Scope permette di segmentare opportunamente il comportamento radio dei gateway. Questo è particolarmente importante nelle regioni nelle quali sono presenti diversi gateway che possono reciprocamente raggiungersi attraverso la stessa infrastruttura MeshCore, come già accade, ad esempio, in Lombardia e Sicilia.


1. Come deve essere scelto l’ID di un Gateway NEXUS?

È stata posta questa domanda:

“Sto provando ad installare NEXUS per collegare la zona di Vasto. Immagino che l’ID sia unico e debba essere NEXUS-ITALIA-[sigla provincia]. La sigla CH però è già utilizzata. Che si fa?”

L’ID del gateway non deve essere scelto autonomamente dall’installatore.

Quando viene richiesta l’attivazione di un nuovo gateway NEXUS-ITALIA vengono fornite tramite email le informazioni e i parametri specifici necessari alla sua configurazione.

Devono essere utilizzati esattamente i parametri ricevuti.

Non bisogna quindi dedurre autonomamente il Gateway ID dalla provincia, dal comune o dalla regione e non bisogna inventare identificativi alternativi.

Il concentratore NEXUS dispone infatti di un registro dei gateway autorizzati.

Gateway ID, credenziali e relativi parametri devono corrispondere alla configurazione prevista sul concentratore. Un identificativo arbitrario o una stringa non autorizzata potrebbe pertanto essere rifiutata dal sistema e impedire il corretto funzionamento del gateway.

Nel caso specifico di Vasto/Chieti, quindi, non bisogna preoccuparsi del fatto che NEXUS-ITALIA-CH sia già utilizzato.

Verrà assegnato al nuovo gateway un identificativo univoco compatibile con l’infrastruttura NEXUS e questo sarà comunicato insieme agli altri parametri necessari all’attivazione.


2. Regional Scope e instradamento dei messaggi NEXUS

È stata ipotizzata questa situazione:

“Sono nel Lazio e voglio mandare un messaggio in Sicilia. Imposto/taggo it-sic-ct, il gateway del Lazio lo manda al server e il server lo instrada solamente verso Catania?”

No. Non è questo il funzionamento di NEXUS.

Il Regional Scope non rappresenta l’indirizzo di destinazione utilizzato dal concentratore.

Un comando come:

scope "#it-laz-fr"

configura una proprietà del dispositivo MeshCore collegato al gateway.

Il suo effetto riguarda quindi il comportamento della componente radio LoRa.

Il concentratore NEXUS non legge #it-laz-fr e decide conseguentemente di spedire il messaggio a Frosinone, né interpreta #it-sic-ct come richiesta di instradamento verso Catania.

Il flusso NEXUS è concettualmente molto più semplice:

RADIO LoRa → Gateway → MQTT/Internet → Concentratore NEXUS → MQTT/Internet → Gateway remoti → RADIO LoRa

Il Regional Scope interviene sul dominio MeshCore/LoRa.

Il concentratore interviene invece sul dominio NEXUS/IP/MQTT. Sono quindi due livelli distinti dell’architettura.

Perché allora configuriamo i Regional Scope sui gateway?

Perché un gateway è anche un dispositivo inserito all’interno di una reale rete radio MeshCore. Se nella stessa grande rete MeshCore sono presenti più gateway NEXUS, è necessario evitare per quanto possibile che tutti si comportino indiscriminatamente nello stesso dominio radio. Una corretta organizzazione degli scope, anche provinciali dove necessario, aiuta quindi a controllare la propagazione radio e riduce le condizioni nelle quali più gateway possono acquisire e ritrasmettere gli stessi messaggi. L’esigenza è particolarmente evidente nelle aree nelle quali più gateway NEXUS risultano raggiungibili attraverso la medesima rete MeshCore.


3. NEXUS è una rete nazionale parallela a MeshCore?

Assolutamente no.

NEXUS-ITALIA è parte integrante dell’utilizzo della rete MeshCore.

Il progetto nacque proprio perché, soprattutto nelle prime fasi dello sviluppo di MeshCore in Italia, esistevano numerose reti locali geograficamente isolate. NEXUS ha aggiunto un collegamento tra queste “isole”, ma senza trasformarle in un’unica mesh radio nazionale.

Possiamo immaginarlo così:

MeshCore locale A ↔ Gateway A

MeshCore locale B ↔ Gateway B

MeshCore locale C ↔ Gateway C

e NEXUS realizza:

Gateway A ↔ Internet ↔ Concentratore NEXUS ↔ Internet ↔ Gateway B/C/…

Le reti radio sottostanti rimangono però reti MeshCore.


NEXUS è una rete di emergenza?

È opportuno essere molto precisi anche su questo aspetto.

NEXUS-ITALIA non deve essere considerato un sistema di comunicazione di emergenza ad alta affidabilità o un’infrastruttura sostitutiva dei sistemi professionali di emergenza.

Una parte fondamentale dell’interconnessione NEXUS dipende infatti da infrastrutture IP, connessioni Internet, broker MQTT, server e alimentazioni dei gateway. In determinate circostanze il sistema può certamente rappresentare uno strumento aggiuntivo molto utile, soprattutto per comunicazioni tra comunità MeshCore geograficamente distanti. Questo non significa però attribuirgli caratteristiche di disponibilità, ridondanza o affidabilità proprie delle infrastrutture professionali destinate alle comunicazioni critiche.


Chi può utilizzare NEXUS?

Tutti gli utenti MeshCore possono utilizzare il canale NEXUS.

Non è necessario installare un gateway per poter partecipare alle conversazioni. L’utente deve semplicemente aggiungere al proprio Companion il canale NEXUS utilizzando la relativa Secret Key pubblica del progetto. Il QR Code necessario alla configurazione è disponibile nella pagina ufficiale:

https://nexus.meshcoreitalia.it

Una volta configurato il canale, se la propria rete MeshCore locale dispone di connettività verso un gateway NEXUS operativo, i messaggi potranno raggiungere attraverso la dorsale anche utenti appartenenti a reti MeshCore remote.

Pertanto:

utente NEXUS ≠ gestore di gateway NEXUS

Sono due ruoli differenti.

L’utente utilizza il canale.

Il gestore del gateway mette volontariamente a disposizione un punto di accesso tra la propria rete MeshCore locale e la dorsale NEXUS.


Chi può realizzare un Gateway NEXUS?

Il progetto è aperto alla collaborazione. Chi desidera contribuire all’espansione dell’infrastruttura può realizzare e mettere a disposizione un gateway NEXUS-ITALIA.

La procedura e i requisiti sono descritti nella pagina:

https://www.meshcoreitalia.it/progetto-nexus-italia/

L’attivazione del gateway deve però essere coordinata con il progetto, perché Gateway ID, credenziali e configurazione devono essere registrati e autorizzati sul concentratore centrale.

Questo permette di mantenere controllata e soprattutto stabile l’infrastruttura.


NEXUS e Meshtastic sono due cose differenti

Un’ultima precisazione è importante per evitare ulteriore confusione.

NEXUS-ITALIA non ha alcuna relazione tecnica con Meshtastic.

Il progetto NEXUS descritto qui utilizza MeshCore e la sua infrastruttura radio LoRa. Non è quindi opportuno trasferire automaticamente su NEXUS concetti, configurazioni, modalità di routing o comportamenti appartenenti a Meshtastic. Allo stesso modo, frequenze, preset radio, Regional Scope e configurazioni dei dispositivi devono essere valutati nel contesto MeshCore.

NEXUS aggiunge esclusivamente un elemento:

una dorsale IP tra gateway MeshCore geograficamente distanti per trasportare il canale NEXUS.

Non trasforma MeshCore in Meshtastic, non collega fisicamente o logicamente tutti i repeater italiani e non crea una seconda rete radio.


In sintesi: cosa fa e cosa NON fa NEXUS

NEXUS-ITALIA FA questo:

Utente → canale NEXUS → rete MeshCore locale → gateway locale → Internet/MQTT → concentratore NEXUS → gateway remoti → reti MeshCore remote → utenti NEXUS

NEXUS-ITALIA NON fa questo:

Repeater Roma ↔ Internet ↔ Repeater Milano ↔ Internet ↔ Repeater Palermo

I repeater e le rispettive mesh non vengono interconnessi da NEXUS.

È esclusivamente la messaggistica del canale NEXUS a essere trasportata attraverso la dorsale. Questa distinzione rappresenta il principio fondamentale dell’intero progetto:

NEXUS-ITALIA non crea una nuova rete MeshCore nazionale: crea una dorsale nazionale per uno specifico canale MeshCore, permettendo alle persone appartenenti a reti radio geograficamente separate di comunicare tra loro.

2 commenti

  1. Salve da IW9DCD sicilia ….
    Da un po’ utilizzo la messaggistica MeshCore ma l’avvento di NEXUS è la ciliegina sulla torta …complimenti veramente.
    Il mio suggerito è il seguente: considerato il fatto che quando si invita un mess con il client mi viene data l’informazione a quanti rpt è arrivato, mi chiedevo se con NEXUS si potesse fare qualcosa di simile cioè avere un feedback del messaggio inviato e i posti raggiunti .
    Il mio vuole essere solo un pensiero una considerazione.
    73 Max

    • Ciao Max,

      grazie davvero per il messaggio, per i complimenti e soprattutto per il feedback: fa molto piacere sapere che NEXUS venga apprezzato e considerato un valore aggiunto all’esperienza MeshCore.

      Il suggerimento che hai segnalato è sicuramente meritevole di attenzione. Avere un riscontro sul messaggio inviato, con un’indicazione dei gateway o delle aree raggiunte attraverso NEXUS, potrebbe rappresentare un’informazione molto interessante, sia per l’utente sia dal punto di vista diagnostico della rete.

      Nel corso del mese di settembre sono già previsti alcuni importanti aggiornamenti e sviluppi del progetto NEXUS-ITALIA, e terrò sicuramente in considerazione anche questa proposta per valutare come poterla integrare nel modo più utile e tecnicamente corretto.

      Sono proprio osservazioni e suggerimenti come questo che aiutano a migliorare il progetto e a farlo crescere sulla base delle reali esigenze di chi lo utilizza.

      Grazie ancora per aver condiviso il tuo pensiero e per l’attenzione verso MeshCore Italia e NEXUS.

      Un caro saluto e 73!

      Ilario
      MeshCore Italia

Lascia una risposta

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