OLSRv2: Unterschied zwischen den Versionen
Leo (Diskussion | Beiträge) K (→IPv6 + OLSRv2 Testumgebung: Links hinzugefügt) |
Leo (Diskussion | Beiträge) (→Kommandozeile: Doku erweitern) |
||
(42 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
− | 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. Derzeit wird | + | 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 [http://www.olsr.org/mediawiki/index.php/OLSR.org_Network_Framework OLSRv2]-Version, die wir zukünftig wahrscheinlich einsetzen wollen. Derzeit wird [[OLSR|OLSRv1]] im Opennet verwendet. |
− | == | + | == Testumgebung == |
− | + | Im Opennet gibt es ein paar vereinzelte IPv6 und 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. | |
− | + | ||
− | + | === Nutzer-AP mit der OLSRv2-Wolke verbinden === | |
+ | # flashe auf den AP eine aktuelle [https://downloads.opennet-initiative.de/openwrt/testing/latest/ Testing-Firmware] (oder v0.5.3, sobald sie veröffentlicht ist) | ||
+ | # wähle unter ''Opennet -> Basis -> Module'' das experimentelle Paket ''on-olsr2'' | ||
+ | # wenige Sekunden später sollte sich der AP mit den OLSRv2-Knoten seiner Umgebung verbinden | ||
− | + | === UGW-AP mit dem OLSRv2-Gateway verbinden === | |
− | + | Falls dein AP ein UGW ist (verbunden mit einem lokalen Internet-Anschluss), dann kannst du unter ''Opennet -> Internetfreigabe -> Mesh-Verbindungen'' manuell einen weiteren Server eintragen: | |
− | + | * Host: gai.opennet-initiative.de | |
− | + | * Port: 1602 | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | == OLSRv2 Konfiguration == | + | === Server mit der OLSRv2-Wolke verbinden === |
+ | Der folgende Ablauf beschreibt die manuelle Erzeugung eines deb-Pakets entsprechend der [http://www.olsr.org/mediawiki/index.php/OLSR.org_Network_Framework#Make_a_debian_package olsrd2-Doku]: | ||
+ | * Abhängigkeiten installieren: | ||
+ | apt-get install --no-install-recommends cmake devscripts dh-systemd | ||
+ | * Quellen herunterladen, nachkonfigurieren (''eth_listener'' aktivieren) und deb-Paket bauen: | ||
+ | git clone https://github.com/OLSR/OONF.git | ||
+ | cd OONF | ||
+ | sed -i 's/neighbor_probing$/neighbor_probing eth_listener/' src/olsrd2/CMakeLists.txt | ||
+ | files/create_debian_package.sh | ||
+ | * das resultierende Pakete enthält ein statisches olsrd2-Binary, sowie ein Init-Skript und eine systemd-Unit | ||
+ | |||
+ | Anstelle des manuellen Build-Prozesses fertiges Paket herunterladen: http://yurika.opennet-initiative.de/~lars/olsrd2/ (nur amd64). | ||
+ | |||
+ | Nach der Installation ist keine weitere Konfiguration erforderlich. | ||
+ | |||
+ | == Ergebnisbetrachtung == | ||
+ | |||
+ | === Konsole === | ||
+ | Warte bis der AP sich mit seinen wifi-Nachbarn oder dem UGW-Server ''gai'' automatisch verbindet (falls als UGW-AP eingerichtet). | ||
+ | |||
+ | Nachbarschaft prüfen: <pre>echo /nhdpinfo neighbor | nc localhost 2009</pre> | ||
+ | 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 Erreichbarkeit der IPv6 Adresse kann man nun per Ping prüfen. | ||
+ | |||
+ | === Browser === | ||
+ | In dem (optionalen) Zusatzpaket ''on-olsr2-netjsongraph'' (installierbar via ''Opennet -> Basis -> Module'') ist eine minimale javascript-Visualisierung der umgebenden Netzknoten integriert. Diese lässt sich via http unter dem Pfad ''/olsr2.html'' abrufen (z.B.: https://192.168.2.210/olsr2.html). | ||
+ | |||
+ | === Kommandozeile === | ||
+ | Hilfe anzeigen | ||
+ | echo /help | nc localhost 2009 | ||
+ | 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 | ||
+ | Spaltenname anzeigen für vorheriges Kommando: | ||
+ | echo /olsrv2info head 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 OLSRv2-Hosts anpingen: | ||
+ | on-function debug_ping_all_olsr2_hosts | ||
+ | OLSRv2 starten im Vordergrund mit Debug Meldungen: | ||
+ | olsrd2_static --set=log.info=all --load=/etc/olsrd2/olsrd2.conf | ||
+ | |||
+ | == Konfiguration == | ||
+ | Beispielhafte OLSRv2-Konfiguration im uci-Format für OpenWrt: | ||
config global | config global | ||
Zeile 49: | Zeile 73: | ||
option 'stderr' 'true' | option 'stderr' 'true' | ||
option 'file' '/var/log/olsrd2.log' | option 'file' '/var/log/olsrd2.log' | ||
− | + | #option 'info' 'all' | |
− | + | #option 'debug' 'all' | |
config telnet | config telnet | ||
option 'port' '2009' | option 'port' '2009' | ||
config olsrv2 | config olsrv2 | ||
− | list 'lan' '::/0' | + | #define local attached networks |
− | list 'lan' '0.0.0.0/0' | + | # 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 | config interface | ||
− | + | #define default values for all interfaces | |
− | + | #make olsrdv2 IPv6 only | |
− | + | list 'bindto' '-0.0.0.0/0' | |
− | + | list 'bindto' '-::1/128' | |
− | list 'name' tap0 | + | 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. | ||
+ | |||
+ | == Debian Paket == | ||
+ | |||
+ | Es gibt leider keine fertigen Debian Pakete für olsrd2. Daher müssen diese selbst erstellt werden. | ||
+ | |||
+ | Eine vollständige Anleitung dazu findest du unter [[Server_Installation#OLSRd_v2]]. | ||
[[Kategorie:WLAN Protokolle]] | [[Kategorie:WLAN Protokolle]] | ||
[[Kategorie:Konfiguration|OLSR]] | [[Kategorie:Konfiguration|OLSR]] | ||
[[Category:Dienste]] | [[Category:Dienste]] |
Aktuelle Version vom 13. August 2024, 19:30 Uhr
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 |
[Bearbeiten] Testumgebung
Im Opennet gibt es ein paar vereinzelte IPv6 und 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.
[Bearbeiten] Nutzer-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
- wenige Sekunden später sollte sich der AP mit den OLSRv2-Knoten seiner Umgebung verbinden
[Bearbeiten] UGW-AP mit dem OLSRv2-Gateway verbinden
Falls dein AP ein UGW ist (verbunden mit einem lokalen Internet-Anschluss), dann kannst du unter Opennet -> Internetfreigabe -> Mesh-Verbindungen manuell einen weiteren Server eintragen:
- Host: gai.opennet-initiative.de
- Port: 1602
[Bearbeiten] Server mit der OLSRv2-Wolke verbinden
Der folgende Ablauf beschreibt die manuelle Erzeugung eines deb-Pakets entsprechend der olsrd2-Doku:
- Abhängigkeiten installieren:
apt-get install --no-install-recommends cmake devscripts dh-systemd
- Quellen herunterladen, nachkonfigurieren (eth_listener aktivieren) und deb-Paket bauen:
git clone https://github.com/OLSR/OONF.git cd OONF sed -i 's/neighbor_probing$/neighbor_probing eth_listener/' src/olsrd2/CMakeLists.txt files/create_debian_package.sh
- das resultierende Pakete enthält ein statisches olsrd2-Binary, sowie ein Init-Skript und eine systemd-Unit
Anstelle des manuellen Build-Prozesses fertiges Paket herunterladen: http://yurika.opennet-initiative.de/~lars/olsrd2/ (nur amd64).
Nach der Installation ist keine weitere Konfiguration erforderlich.
[Bearbeiten] Ergebnisbetrachtung
[Bearbeiten] Konsole
Warte bis der AP sich mit seinen wifi-Nachbarn oder dem UGW-Server gai automatisch verbindet (falls als UGW-AP eingerichtet).
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 Erreichbarkeit der IPv6 Adresse kann man nun per Ping prüfen.
[Bearbeiten] Browser
In dem (optionalen) Zusatzpaket on-olsr2-netjsongraph (installierbar via Opennet -> Basis -> Module) ist eine minimale javascript-Visualisierung der umgebenden Netzknoten integriert. Diese lässt sich via http unter dem Pfad /olsr2.html abrufen (z.B.: https://192.168.2.210/olsr2.html).
[Bearbeiten] Kommandozeile
Hilfe anzeigen
echo /help | nc localhost 2009
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
Spaltenname anzeigen für vorheriges Kommando:
echo /olsrv2info head 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 OLSRv2-Hosts anpingen:
on-function debug_ping_all_olsr2_hosts
OLSRv2 starten im Vordergrund mit Debug Meldungen:
olsrd2_static --set=log.info=all --load=/etc/olsrd2/olsrd2.conf
[Bearbeiten] 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.
[Bearbeiten] Debian Paket
Es gibt leider keine fertigen Debian Pakete für olsrd2. Daher müssen diese selbst erstellt werden.
Eine vollständige Anleitung dazu findest du unter Server_Installation#OLSRd_v2.