>_ DevTrendsde

Sprache

Start

Sprachen

Bereiche

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicherheit
Python

Autonomes Internet auf Basis von LoRa und Packet Radio ohne Anbieter und IP-Adressen

Neulich bin ich auf ein interessantes Projekt gestoßen, das Erinnerungen an die FidoNet- und BBS-Ära geweckt hat, allerdings mit moderner Kryptografie. Stellen Sie sich vor: Der Mobilfunkmast ist ausgefallen, das Heiminternet funktioniert nicht, die Backbone-Kabel sind gekappt, und Sie müssen eine Nachricht senden oder eine Dokumentationsseite abrufen. NomadNet löst genau dieses Problem.

Das Projekt erstellt ein vollständig autonomes Mesh-Netzwerk, das überhaupt kein Internet benötigt. Keine IP-Adressen, DNS-Server, Telefonnummern-Registrierung oder zentrale Knotenpunkte erforderlich. Alles läuft auf jedem Kanal, der Bytes übertragen kann, ob es sich um ein günstiges LoRa-Modul, ein Funkmodem, Wi-Fi oder sogar eine alte serielle Schnittstelle handelt.

Nomad Network Interface

Unter der Haube

NomadNet basiert auf zwei Bibliotheken desselben Autors: Reticulum Network Stack (RNS) und das LXMF-Messaging-Protokoll.

Reticulum übernimmt die gesamte Low-Level-Magie. Es baut ein Peer-to-Peer-kryptografisches Mesh-Netzwerk mit Knoten-zu-Knoten-Nachrichten-Routing auf. RNS ist darauf ausgelegt, auch bei mikroskopisch kleinen Geschwindigkeiten einwandfrei zu funktionieren. Das System schiebt fröhlich Daten über einen Funkkanal mit 300 Bits pro Sekunde. Wenn Ethernet oder Internet verfügbar sind, kann Reticulum diese als einen der Transporte nutzen und lokale isolierte Inseln zu einem vereinheitlichten Netzwerk verbinden.

LXMF fügt darüber hinaus eine verschlüsselte Nachrichtenzustellung auf Reticulum mit End-to-End-Verschlüsselung und Forward-Secrecy-Unterstützung hinzu. Wenn der Empfänger offline ist, speichern Zwischenknoten das verschlüsselte Paket und liefern es aus, wenn der Knoten wieder online erscheint.

NomadNet kombiniert all dies zu einer Konsolenoberfläche (TUI) mit einem eigenen integrierten Browser und Messenger.

Seiten in der Konsole durchsuchen

Was das System kann

Funktional ähnelt NomadNet einem Taschen-Web 1.0, das auf Prinzipien militärischer Fehlertoleranz aufgebaut ist:

  1. Textbrowser und Micro-Seiten. Im Inneren läuft der spartanische Micron-Seitenbrowser. Es ist eine leichtgewichtige Auszeichnungssprache, die für Kanäle mit niedriger Bandbreite optimiert ist. Seiten werden auf dem Client zwischengespeichert, um erneute Übertragungen über die Funkwellen zu vermeiden.
  2. Dynamische Inhalte auf Knoten. Ein Knoten kann nicht nur statische Seiten bereitstellen. Sie können die Antwortgenerierung an Python-, Bash- oder PHP-Skripte binden. Dank dessen betreiben Menschen vollwertige Foren, Wettervorhersagen und Kleinanzeigen-Boards.
  3. Offline-Nachrichten ohne Vermittler. Der Messenger funktioniert nach dem P2P-Prinzip. Er verwendet kryptografische Hashes für die Adressierung anstelle von Domainnamen oder Telefonnummern. Keine Passwörter oder Logins: Die Knotenkennung ist der öffentliche Schlüssel selbst.
  4. Hintergrundbetrieb. NomadNet kann als grafischer TUI-Client oder als System-Daemon auf einem Heimserver oder Raspberry Pi laufen und dort als Relay für Nachbarn betrieben werden.

Dialoge und Messaging

Eigenen Knoten aufsetzen

Die Installation ist extrem einfach, da das Projekt in Python geschrieben ist. Der schnellste Weg zur Bereitstellung ist über pipx oder Standard pip:

# Установка через pipx в изолированное окружение
pipx install nomadnet

# При необходимости можно докинуть утилиты RNS и LXMF
pipx install rns
pipx install lxmf

# Запуск интерактивного интерфейса
nomadnet

Wenn Sie sich nicht mit der Python-Umgebung auseinandersetzen möchten, baut der Autor offizielle Docker-Images:

# Запуск TUI в контейнере
docker run -it ghcr.io/markqvist/nomadnet:master --textui

# Либо запуск демона с пробросом конфигурации хоста
docker run -d \
  -v ~/.nomadnetwork/:/root/.nomadnetwork/ \
  -v ~/.reticulum/:/root/.reticulum/ \
  --network host \
  ghcr.io/markqvist/nomadnet:master

Beim ersten Start öffnet NomadNet den integrierten Leitfaden. Um das Netzwerk ohne Kauf von Funkmodulen zu testen, verbinden Sie sich einfach über das Internet mit dem öffentlichen RNS-Testnetz.

Innerhalb des Testnetzwerks können Sie andere Knoten durchsuchen. Drücken Sie Ctrl+U, geben Sie den Knoten-Hash ein (zum Beispiel den Dublin-Hub abb3ebcd03cb2388a838e70c001291f9) und drücken Sie Enter. Das Programm findet die Route im Netzwerk und lädt die Hauptseite.

Liste bekannter Knoten

Was die Community bereits gebaut hat

Um Reticulum und NomadNet bildet sich nach und nach eine Enthusiasten-Infrastruktur. Wenn Sie sich den Katalog der Drittanbieter-Tools ansehen, finden Sie:

  • NomadForum — eine minimalistische Foren-Engine für Knoten;
  • NomadForecast — ein Wetter-Informer, der Berichte sammelt und auf Anfrage in Textform liefert;
  • micron-blog und Any2MicronConverter — Blog-Generatoren und Markdown-zu-Micron-Markup-Konverter;
  • Bots und Kleinanzeigen-Boards basierend auf LXMF für Gruppenkoordination.

Für diejenigen, denen die Konsole zu hart ist, hat der Autor einen separaten GUI-Client entwickelt — Sideband. Er ist für Linux, macOS und Android verfügbar.

Einstellungen und Netzwerkschnittstellen

Einschränkungen und reale Szenarien

Glauben Sie nicht, dass NomadNet das normale Web für alltägliche Aufgaben ersetzen wird. Funkkanal-Geschwindigkeiten wie LoRa (Hunderte von Bytes pro Sekunde) bringen strenge Einschränkungen mit sich: keine hochauflösenden Bilder, Videos oder schwere JS-Skripte. Nur komprimierter Text, Telemetrie und kurze Nachrichten.

Darüber hinaus befindet sich das Projekt im Beta-Status. Der Autor warnt ehrlich in der Beschreibung: Der Code wurde noch keinem externen Sicherheits-Audit unterzogen, daher ist bei der Verwendung in lebenskritischen Szenarien Vorsicht geboten.

Wem dieses Projekt nützlich sein wird:

  • Wanderer, Expeditionsbegeisterte und Amateurfunker, die in abgelegenen Gebieten ohne Mobilfunkabdeckung kommunizieren müssen;
  • IoT-Entwickler und Erbauer autonomer Feldstationen für Remote-Sensor-Abfragen;
  • Experimentierfreudige, die an dezentralen Protokollen und Mesh-Netzwerken ohne Abhängigkeit von Telekommunikationsinfrastruktur interessiert sind.

Sie können das Projekt in ein paar Minuten ausprobieren, indem Sie das Paket über pip installieren und sich mit dem Testnetzwerk verbinden. Es ist ein seltenes Beispiel für Software, die die Romantik des frühen Webs und die Unabhängigkeit von Cloud-Giganten zurückbringt.

Ähnliche Projekte