OLSRv2: Unterschied zwischen den Versionen

Aus Opennet
Wechseln zu: Navigation, Suche
(Schematische Netzwerkübersicht: Lars Änderungen nachgeführt)
(aktualisiert)
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 (http://www.olsr.org/mediawiki/index.php/OLSR.org_Network_Framework) Version. Derzeit wird OLSRv1 verwendet, siehe [[OLSR]].
+
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.
  
 
== IPv6 + OLSRv2 Testumgebung ==
 
== 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.
  
* Anleitung unten geht davon aus, dass der zu konfigurierende UGW-AP einen nativen IPv6 Anschluss hat. Wenn du keinen hast, sollte es eigentlich trotzdem funktionieren, weil alles per OpenVPN getunnelt wird.
+
=== AP mit der OLSRv2-Wolke verbinden ===
* Auf [[Server/gai]] läuft derzeit nur testweise OLSRv2. Der UGW-Server ist nicht mit den anderen UGW-Servern verbunden und befindet sich komplett im Testbetrieb.
+
# 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''
  
=== Test-Umgebung auf einem AP einrichten ===
+
==== UGW-Anbindung ====
* Anleitung um UGW-AP mit IPv6 + OLSRv2 zu konfigurieren (für erste Tests)
+
Falls dein AP ein UGW ist (verbunden mit einem lokalen Internet-Anschluss), dann kannst du unter den Mesh-Verbindungen manuell einen weiteren Server eintragen:
* Voraussetzung:
+
* Host: gai.opennet-initiative.de
** ONI Firmware (ab 0.5.2 stable) installieren. Ich habe genutzt 0.5.3-unstable-1760
+
* Port: 1602
** AP ID konfigurieren
+
  
==== OLSRv2 ====
+
== Ergebnisbetrachtung ==
# aktuell laueft der Build nur auf ruri
+
echo "src/gz opennet_testing http://ruri.on/downloads/latest/ar71xx/packages/opennet" >/etc/opkg/opennet.conf
+
# Signatur-Pruefung ausschalten (die opennet-Pakete sind noch nicht signiert)
+
sed -i /check_signature/d /etc/opkg.conf
+
opkg update
+
opkg install on-olsr2
+
  
==== IPv6 ====
+
=== Konsole ===
# Pakete installieren: <pre>opkg update; opkg install odhcpd odhcp6c</pre>
+
# warte bis der AP sich mit seinen wifi-Nachbarn oder dem UGW-Server gai automatisch verbindet (falls UGW-Konstruktion verwendet wird)
# nun networking-Dienst neustarten, damit sich auf dem WAN Interface IPv6 Adressen geholt werden.
+
#* Bei mir (Martin) wird eine native IPv6 Verbindung zum UGW Server gai hergestellt. Alle anderen UGW-Server sind bei mit nicht auswählbar, wegen kleiner MTU (DS-Lite am Kabelanschluss).
+
 
+
==== Nachbereitung: Anbindung via UGW ====
+
# on-usergw installieren
+
## Zertifikate installieren
+
## neuen UGW-Server per Weboberfläche hinzufügen (gai.opennet-initiative.de:1602)
+
 
+
==== Nachbereitung: OLSRv1 abschalten (optional) ====
+
# Wir wollen ein OLSRv2 only Setup, deshalb deaktivieren wir OLSRv1
+
## laufenden Dienst töten: <pre>/etc/init.d/olsrd stop</pre>
+
## olsrd-restart-Cron-Job abschalten: <pre>chmod -x /etc/cron.minutely/olsrd_check</pre>
+
 
+
==== Ergebnisbetrachtung ====
+
 
+
===== Konsole =====
+
# warten bis sich AP zum UGW Server gai automatisch verbindet (falls UGW-Konstruktion verwendet wird)
+
 
# Nachbarschaft prüfen: <pre>echo /nhdpinfo neighbor | nc localhost 2009</pre>
 
# Nachbarschaft prüfen: <pre>echo /nhdpinfo neighbor | nc localhost 2009</pre>
 
Beispiel-Ausgabe:
 
Beispiel-Ausgabe:
Zeile 45: Zeile 24:
 
Die IPv6 Adresse kann man nun anpingen.
 
Die IPv6 Adresse kann man nun anpingen.
  
===== Browser =====
+
=== Browser ===
Auf jedem AP mit dem aktuellen on-olsr2-Paket ist eine minimale javascript-Visualisierung der umgegebenden Netzknoten integriert, z.B.: https://192.168.1.110/olsr2.html.
+
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 =====
+
=== Kommandozeile ===
 
* aktuelle Routing-Einträge:
 
* aktuelle Routing-Einträge:
 
   ip -6 route show table olsrd2 | on-function debug_translate_macs
 
   ip -6 route show table olsrd2 | on-function debug_translate_macs
Zeile 60: Zeile 39:
 
   on-function debug_ping_all_olsr2_hosts
 
   on-function debug_ping_all_olsr2_hosts
  
===== Schematische Netzwerkübersicht =====
+
=== Schematische Netzwerkübersicht ===
  
 
<graphviz renderer="neato" caption="Netzplan">
 
<graphviz renderer="neato" caption="Netzplan">
Zeile 118: Zeile 97:
  
 
== OLSRv2 Konfiguration ==
 
== OLSRv2 Konfiguration ==
Beispielhafte OLSRv2-Konfiguration für IPv6-only Betrieb (uci - auf openwrt):
+
Beispielhafte OLSRv2-Konfiguration im uci-Format (für openwrt):
  
 
  config global
 
  config global
Zeile 146: Zeile 125:
 
         list 'bindto'        '-::1/128'
 
         list 'bindto'        '-::1/128'
 
         list 'bindto'        'default_accept'
 
         list 'bindto'        'default_accept'
config interface
+
         list 'name' 'loopback'
         option 'ifname' 'loopback'
+
         list 'name' 'on_eth_0'
config interface
+
         list 'name' 'tap0'
         option 'ifname' 'on_wifi_0'
+
config interface
+
         list 'name' tap0
+
  
 
Die obige Konfiguration (bzw. eine vergleichbare) wird von dem experimentellen Paket ''on-olsr2'' automatisch erzeugt.
 
Die obige Konfiguration (bzw. eine vergleichbare) wird von dem experimentellen Paket ''on-olsr2'' automatisch erzeugt.
 
  
 
[[Kategorie:WLAN Protokolle]]
 
[[Kategorie:WLAN Protokolle]]
 
[[Kategorie:Konfiguration|OLSR]]
 
[[Kategorie:Konfiguration|OLSR]]
 
[[Category:Dienste]]
 
[[Category:Dienste]]

Version vom 30. Juli 2016, 23:24 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

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

  1. flashe auf den AP eine aktuelle Testing-Firmware (oder v0.5.3, sobald sie veröffentlicht ist)
  2. 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

  1. warte bis der AP sich mit seinen wifi-Nachbarn oder dem UGW-Server gai automatisch verbindet (falls UGW-Konstruktion verwendet wird)
  2. 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

Netzplan

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.

Meine Werkzeuge
Namensräume

Varianten
Aktionen
Start
Opennet
Kommunikation
Karten
Werkzeuge