Amateurfunk Ulm - Forum

Normale Version: Raspberry Pi in olsrd Routing mit integrieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Mich hat die Idee gereizt, über einen beliebigen DtD Link einfach einen Raspberry Pi anschließen zu können der sich selbständig im AREDN OLSR Netz meldet. Der Vorteil ist, dass eine Konfiguration am AREDN Knoten im Tab "Port Forwarding DHCP and Services" nicht notwendig ist und der Raspberry Pi im Mesh Status verfügbar ist
Vorhanden war ein bereis vor längerem als NTP Server konfigurierter Raspberry B+ mit Raspbian GNU/Linux 10 (buster) und GPS Modul.
Es fehlt noch eine IP Adrresse für das DtD Link Interface auf VLAN 2. ARDEN nutzt die Interface MAC Adresse dafür.

Die für das Interface verwendete IP Adresse wird wie folgt generiert:
AREDN verwendet in der Standardkonfiguration den kompletten Class A Adressblock mit dem 10.0.0.0/8 Netz.
Bei der Interface MAC Adresse sind die letzten drei Blöcke für einen Netzwerkkomponentenhersteller zur freien Vergabe reserviert. Diese letzten drei Blöcke werden ein zu eins verwendet. Idee ist wohl, dass die Adressen nicht zufällig identisch sind. Bei drei Herstellen auf denen die AREDN Software läuft ist wohl das Risiko der zufällig gleichen Adresse nicht so hoch auch wen ein Hersteller mehrere Vendor Nummern zugeteilt bekommen hat.
Die MAC Adresse wird üblicherweise in Hex geschrieben. IP Adressen in Dezimal. Die zwei Hex Zahlen FF am oberen Wertebereich ergeben Dezimal 255.

Bei der MAC Adresse sind die Buchstaben:
V = Vendor
N = Hochzählende Nummer

MAC Adresse: VV:VV:VV:NN:NN:NN
                      |  |  |
IP Adresse:        A.B .C .D

Meine Schlussfolgerung des ganzen ist da schon bei Verwendung der ARDEN Software doppelte IP Adressen nicht vermeidbar sind, ist es auch egal was für eine IP Adresse für das DtD Link Interface vergeben wird.


Auf den Link Interfaces sind die IP Adressen als Link-Local-Scope konfiguriert. Das bedeutet eine Kommunikation ist auf dem Link mit dem angeschlossenem Nachbarn möglich es erfolgt jedoch kein Routing dieser Adressen. Das Routing übernimmt später das OLSR Protokoll.

Die Interface Konfiguration für das zusätzliche VLAN Interface auf dem Ethernet Port funktioniert bei mit über die Datei
/etc/dhcpcd.exit-hook
mit dem Inhalt:
if [ "$reason" = "PREINIT" ]; then
        sudo ip -4 address add 10.123.132.38/8 dev eth0.2 scope link
        exit 0
fi

Nun fehlt noch OLSR. Dies besteht aus dem Hauptmodul olsrd und Erweiterungen. Mindestens ist das plugin nameservice erforderlich. Wird dies weggelassen, ist auf der ARDEN Statusseite nur die IP Adresse des Raspberry PI zu sehen. Da AREDN auch arprefresh verwendet habe ich das ebenfalls mit aktiviert. OLSRD hat eine Erweiterung für GPS Koordinaten. Diese werden über das plugin pud von gpsd eingelesen und können dann auf der Webseite (plugin httpinfo) angezeigt werden. Über das Smart Gateway plugin kann eine Weiterleitung der GPS Daten erfolgen was wohl bei olivgrünen MANET Anwendungen genutzt wird.
Die Installation von olsrd auf meinem System war zwar prinzipiell über das Repository möglich aber gpsd hat wohl in der Vergangenhiet mehmals das Übergabeformat der GPS Koordinaten geändert. Die pud Erweierung wurde zwar nachgezogen aber halt nur im GITHUB. Die olsrd Version bei mir im Repository ist aus 2015 und inkompatibel zur im Repository vorhandenen gpsd Version.

Also ein git clone von olsrd und jedes plugin einzeln mit "make && sudo make install" compilieren. Wenn eine Fehlermeldung kommt fehlt noch irgendeine Abhängigkeit. Bei mir war das "sudo apt-get install bison flex"

Es muss dann das Konfig File noch angelegt oder erweitert werden. Jedes Modul möchte darin eine eigene Sektion haben damit es geladen wird.
Starten mit
sudo olsrd -f /etc/olsrd/olsrd.conf
Damit mehr Ausgaben angezeigt werden muss den "DebugLevel  0" in der Datei auf eine höhere Nummer gesetzt werden.

Wenns dann mal läuft fehlt noch die Datei /etc/init.d/olsrd damit auch nach einem Reboot der Dienst läuft.

Und dann noch starten mit
systemctl start olsrd.service
Gute Idee. Damit machst du den Pi unabhängig vom lokalen Knoten. Allerdings ist es nicht so, dass angeschlossene Geräte im Mesh nicht erreichbar sind - zumindest solange man kein NAT konfiguriert.

Wenn du die lokalen Addressen "statisch" konfigurierst, kannst du auch ohne Portforwarding lokale Dienste veröffentlichen. Dazu klickt man unter "Current DHCP leases" auf "Add" und kann dann unter "Advertised Services" den Dienst veröffentlichen.