Reticulum ist ein kryptographiebasierter Netzwerk-Stack, der zum Aufbau lokaler und überregionaler Netzwerke mit handelsüblicher Hardware dient. Es ist darauf ausgelegt, auch unter widrigen Bedingungen wie extrem geringer Bandbreite und hoher Latenz stabil zu funktionieren. Reticulum bietet Ende-zu-Ende-Verschlüsselung, perfekte Vorwärtssicherheit und selbstkonfigurierenden Multi-Hop-Transport, um sichere und zensurresistente digitale Kommunikation zu ermöglichen. Es kann auf nahezu jedem System mit Python 3 ausgeführt werden und unterstützt eine Vielzahl von Medien, von LoRa-Funk über serielle Schnittstellen bis hin zu WiFi und dem Internet.

Ich möchte einmal zeigen, wie ich mich mit dem Reticulum-Netzwerk über LoRa verbunden habe und das auf meinem Laptop und Android-Gerät nutze.

Das richtige Gerät

Es werden verschiedene LORA Modelle unterstützt. Eine vollständige Liste findet man hier.

Vorbereitung

In meinem Fall nutze ich CachyOS als Betriebsystem.

Um den, in meinem Fall genutzten, RAK Wisblock 4631 mit RNode zu flashen benötigt man den Reticulum Networkstack auf seinem Gerät.

Um den RNS zu Installieren braucht es Python3 und pip .

sudo pacman -S python3 python-pip

Dazu braucht man noch eine Python Enviremont.

python -m venv reticulum
source reticulum/bin/activate

RNS Installation

pip install rns

Der RNS installiert alle Werkzeuge einschließlich rnodeconf mit.

Der Flash Vorgang

Auf meinem Arch-basierten Betriebssystem hatte ich das Problem, dass ich als Benutzer nur eingeschränkten Zugriff auf die USB-Geräte habe. Auch wenn ich meinem Benutzer die nötigen Zugriffe gegeben habe, hat rnodeconf das Gerät zwar geflasht, aber das nachträgliche Signieren hat nicht geklappt, da sich der RAK nach dem Flashen neu startet und damit vom Betriebssystem getrennt wird. Dadurch gehen die Rechte, die ich dem Benutzer auf das Gerät gegeben habe, verloren. Also habe ich das Flashen als root vorgenommen.

Laut Anleitung ist es das Gerät /dev/ttyUSB0, bei mir war es allerdings /dev/ttyACM0.

Der Flash Vorgang wir mit folgendem Befehl gestartet:

rnodeconf --autoinstall

Geräte auswahl

Daraufhin muss ein Gerät ausgewählt werden. In meinem Fall ist es der RAK4631


Warnung akzeptieren

Es wird eine Warnung auftauchen das die Firmware noch im Experimentier Status ist. Dies muss bestätigt werden mit einem Enter.


Frequenz auswahl

Dann muss noch die Frequenz ausgewählt werden. Da ich mich in Europa befinde, wähle ich 868 MHz aus.


Flash

Am ende sieht man eine Übersicht. Wenn diese korrekt ist muss das mit Y bestätigt werden und die Firmware wird geflasht.


Nutzung des Rnode

Um den RNode zu nutzen gibt es 2 Programme:

  • rnsd
  • Sideband Android

rnsd

Man muss einmal in der .reticulum/config den RNode als Interface definieren:

[interfaces]

  [[Default Interface]]
    type = AutoInterface
    enabled = Yes


  [[RNode LoRa Interface]]
    type = RNodeInterface
    enabled = yes
    port = /dev/ttyACM0
    frequency = 869400000
    bandwidth = 250000
    txpower = 20
    spreadingfactor = 7
    codingrate = 5

Den Ordner mit der Config findet man im Home Verzeichnis des User. Wenn man den Reticulum Network Stack startet sollte es so aussehen:

Hier sieht man dass das RNode Interface gestartet und konfiguriert wurde und eine Bitrate von 10.94 kbps hat.

Hier hatte ich wieder das Problem das mein Standard User nicht die Berechtigungen hatte auf das Gerät zuzugreifen. Also mit sudo oder – wenn man ganz “wild” unterwegs ist – chmod 777 /dev/ttyACM0 ausführen.

Sideband Android

Mit Sideband auf Android kann man den RNode per Bluetooth nutzen. Dazu muss man einmal die Sideband App installieren. Ich empfehle, die App aus dem GitHub Repo zu nehmen, da die App aus dem F-Droid-Store veraltet ist.

Um den RNode per Bluetooth zu verbinden, muss man einmal den RNode an den PC anschließen und mit folgenden Befehl das Gerät in den Pairing Modus setzen:

rnodeconf /dev/ttyACM0 -p

Dann wird ein Bluetooth Pin angezeigt, der verwendet werden kann, um sich mit dem RNode zu verbinden.

Sideband Konfiguration

Unter Hardware/RNode müssen folgende Parameter angegeben werden.

  • Frequency (MHz): 869.4
  • Bandwith (KHz): 250.0
  • TX Power (dBm): 2
  • Spreading Factor: 7
  • Coding Rate: 5

Und bei den Bluetooth Settings müssen beide haken gesetzt werden:

  • Connect using Bluetooth
  • Device requires BLE

Dann muss man unter Connectivity Connect via RNode einschalten.


Am Ende kann man unter Utilities/Reticulum Status sehen ob der RNode Status up ist und etwas sendet.