OLSRv2
OLSR (Optimized Link State Routing) wird zur Auswahl der Übertragungswege im Netzwerk (Routing) eingesetzt und ist damit eine wichtige Technik zur Kommunikation im Opennet. Hier bezieht sich die Dokumentation auf die neue OLSRv2-Version, die wir zukünftig wahrscheinlich einsetzen wollen. Derzeit wird OLSRv1 im Opennet verwendet.
Inhaltsverzeichnis |
IPv6 + OLSRv2 Testumgebung
- Im Opennet gibt es ein paar vereinzelte OLSRv2-fähige Knoten.
- Auf Server/gai läuft testweise OLSRv2. Dieser UGW-Server ist nicht mit den anderen UGW-Servern verbunden und befindet sich komplett im Testbetrieb.
AP mit der OLSRv2-Wolke verbinden
- flashe auf den AP eine aktuelle Testing-Firmware (oder v0.5.3, sobald sie veröffentlicht ist)
- wähle unter Opennet -> Basis -> Module das experimentelle Paket on-olsr2
UGW-Anbindung
Falls dein AP ein UGW ist (verbunden mit einem lokalen Internet-Anschluss), dann kannst du unter den Mesh-Verbindungen manuell einen weiteren Server eintragen:
- Host: gai.opennet-initiative.de
- Port: 1602
Ergebnisbetrachtung
Konsole
- warte bis der AP sich mit seinen wifi-Nachbarn oder dem UGW-Server gai automatisch verbindet (falls UGW-Konstruktion verwendet wird)
- Nachbarschaft prüfen:
echo /nhdpinfo neighbor | nc localhost 2009
Beispiel-Ausgabe:
10.2.0.245 2001:67c:1400:2431::245 true true 7 false 0 0 ff_dat_metric 1020 bit/s 2105088 infinite 16777215 Everyone MPR true true 7 2001:67c:1400:2431::245 10.2.0.245 false true 7 true 1 0 ff_dat_metric 1020 bit/s 2105088 1020 bit/s 2105088 Everyone MPR false true 7
Die IPv6 Adresse kann man nun anpingen.
Browser
In dem (optionalen) Zusatzpaket on-olsr2-netjsongraph (installierbar via Opennet -> Basis -> Module) ist eine minimale javascript-Visualisierung der umgegebenden Netzknoten integriert. Diese lässt sich via http unter dem Pfad /olsr2.html abrufen (z.B.: https://192.168.1.110/olsr2.html).
Kommandozeile
- aktuelle Routing-Einträge:
ip -6 route show table olsrd2 | on-function debug_translate_macs
- OLSRv2-Knoten anzeigen:
echo /olsrv2info node | nc localhost 2009 | on-function debug_translate_macs
- OLSRv2-Verbindungen anzeigen:
echo /olsrv2info edge | nc localhost 2009 | on-function debug_translate_macs
- Links zu direkten Nachbarn anzeigen:
echo /nhdpinfo link | nc localhost 2009 | on-function debug_translate_macs
- alle olsrd2-Hosts anpingen:
on-function debug_ping_all_olsr2_hosts
Schematische Netzwerkübersicht
OLSRv2 Konfiguration
Beispielhafte OLSRv2-Konfiguration im uci-Format (für openwrt):
config global option 'failfast' 'no' option 'pidfile' '/var/run/olsrd2.pid' option 'lockfile' '/var/lock/olsrd2' config log option 'syslog' 'true' option 'stderr' 'true' option 'file' '/var/log/olsrd2.log' #option 'info' 'all' #option 'debug' 'all' config telnet option 'port' '2009' config olsrv2 #define local attached networks # list 'lan' '::/0' # list 'lan' '0.0.0.0/0' #make olsrdv2 IPv6 only list 'originator' '-0.0.0.0/0' list 'originator' '-::1/128' list 'originator' 'default_accept' config interface #define default values for all interfaces #make olsrdv2 IPv6 only list 'bindto' '-0.0.0.0/0' list 'bindto' '-::1/128' list 'bindto' 'default_accept' list 'name' 'loopback' list 'name' 'on_eth_0' list 'name' 'tap0'
Die obige Konfiguration (bzw. eine vergleichbare) wird von dem experimentellen Paket on-olsr2 automatisch erzeugt.