Zum Inhalt springen

OLSRv2: Unterschied zwischen den Versionen

Aus Opennet
Inhalt gelöscht Inhalt hinzugefügt
Leo (Diskussion | Beiträge)
→Schematische Netzwerkübersicht: Bild gelöscht weil veraltet
Graph 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]].

== IPv6 + OLSRv2 Testumgebung ==

* 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.
* 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.

=== Test-Umgebung auf einem AP einrichten ===
* Anleitung um UGW-AP mit IPv6 + OLSRv2 zu konfigurieren (für erste Tests)
* Voraussetzung:
** ONI Firmware (ab 0.5.2 stable) installieren. Ich habe genutzt 0.5.3-unstable-1760
** AP ID konfigurieren

==== OLSRv2 ====
# 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 ====
# Pakete installieren: <pre>opkg update; opkg install odhcpd odhcp6c</pre>
# 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>
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 =====
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.

===== 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 =====
===== Schematische Netzwerkübersicht =====


Zeile 67: Zeile 6:
node [shape="box"];
node [shape="box"];


ap1187 [label="AP1.187 :7865"];
ap2166 [label="AP2.166 :efc6"];
gai [label="gai"];
gai [label="gai"];
ap1096 [label="AP1.96 :34a9"];
ap1101 [label="AP1.101 :c32f"];
ap1110 [label="AP1.110 :c1aa"];
ap1117 [label="AP1.117 :450c"];
ap1120 [label="AP1.120 :c2b2"];
ap1120 [label="AP1.120 :c2b2"];
ap1187 [label="AP1.187 :7865"];
ap1196 [label="AP1.196 :36d6"];
ap1196 [label="AP1.196 :36d6"];
ap1110 [label="AP1.110 :c1aa"];
ap1101 [label="AP1.101 :c32f"];
ap1096 [label="AP1.96 :34a9"];
ap2076 [label="AP2.76 :7698"];
ap2076 [label="AP2.76 :7698"];
ap2001 [label="AP2.1 :e448"];
ap2001 [label="AP2.1 :e448"];
ap2004 [label="AP2.4 :08f3"];
ap2006 [label="AP2.6 :097b"];
ap2030 [label="AP2.30 :adc2"];
ap2030 [label="AP2.30 :adc2"];
ap2050 [label="AP2.50 :eed2"];
ap2050 [label="AP2.50 :eed2"];
ap1117 [label="AP1.117"];
ap2166 [label="AP2.166 :efc6"];
ap2004 [label="AP2.4"];
ap2006 [label="AP2.6"];


ap1187 -- ap2166 -- gai;
gai -- ap1120;
gai -- ap1120;
ap1120 -- ap1196;
gai -- ap2030;
ap1196 -- ap1096;
gai -- ap2166;
ap1196 -- ap1110;
gai -- ap2189;
ap1120 -- ap1110 -- ap1101;
ap1120 -- ap1096 -- ap2076;
ap1117 -- ap2004 -- ap2006 -- ap1101;
ap1117 -- ap2050;
ap2050 -- ap2001;
ap2050 -- ap2030;
ap2001 -- ap2030;
ap2030 -- gai;
}
</graphviz>


// AE22
== OLSRv2 Konfiguration ==
ap2008 -- ap2189;
Beispielhafte OLSRv2-Konfiguration für IPv6-only Betrieb (uci - auf openwrt):


// Klinikum
config global
ap1101 -- ap2006 -- ap2005 -- ap1101;
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'
config interface
option 'ifname' 'loopback'
config interface
option 'ifname' 'on_wifi_0'
config interface
list 'name' tap0


// Ludwigstrasse
Die obige Konfiguration (bzw. eine vergleichbare) wird von dem experimentellen Paket ''on-olsr2'' automatisch erzeugt.
ap1110 -- ap1096 -- ap1120 -- ap1110;
ap1196 -- ap1096 -- ap1120 -- ap1196;
ap1096 -- ap2076;


// Martin
ap2050 -- ap2001 -- ap2030 -- ap2050;


// Z10
[[Kategorie:WLAN Protokolle]]
ap1117 -- ap1187 -- ap2004 -- ap1117;
[[Kategorie:Konfiguration|OLSR]]

[[Category:Dienste]]
// Verbindungen zwischen obigen Standorten
ap2004 -- ap2006 [label="Z10 - Klinikum"];
ap1110 -- ap1101 [label="Ludwigstraße - Klinikum"];
ap2005 -- ap2008 [label="Klinikum - A22"];
ap1117 -- ap2050 [label="Z10 - Martin"];
ap2166 -- ap1187 [label="Z10 - Bernd"];
}
</graphviz>

Version vom 20. Juni 2016, 00:02 Uhr

Schematische Netzwerkübersicht

<graphviz renderer="neato" caption="Netzplan"> graph example {

 overlap="false";
 node [shape="box"];
 gai [label="gai"];
 ap1096 [label="AP1.96 :34a9"];  
 ap1101 [label="AP1.101 :c32f"];  
 ap1110 [label="AP1.110 :c1aa"];  
 ap1117 [label="AP1.117 :450c"];
 ap1120 [label="AP1.120 :c2b2"];
 ap1187 [label="AP1.187 :7865"];
 ap1196 [label="AP1.196 :36d6"];  
 ap2076 [label="AP2.76 :7698"];  
 ap2001 [label="AP2.1 :e448"];  
 ap2004 [label="AP2.4 :08f3"];
 ap2006 [label="AP2.6 :097b"];
 ap2030 [label="AP2.30 :adc2"];  
 ap2050 [label="AP2.50 :eed2"];  
 ap2166 [label="AP2.166 :efc6"];
 gai -- ap1120;
 gai -- ap2030;
 gai -- ap2166;
 gai -- ap2189;
 // AE22
 ap2008 -- ap2189;
 // Klinikum
 ap1101 -- ap2006 -- ap2005 -- ap1101;
 // Ludwigstrasse
 ap1110 -- ap1096 -- ap1120 -- ap1110;
 ap1196 -- ap1096 -- ap1120 -- ap1196;
 ap1096 -- ap2076;
 // Martin
 ap2050 -- ap2001 -- ap2030 -- ap2050;
 // Z10
 ap1117 -- ap1187 -- ap2004 -- ap1117;
 // Verbindungen zwischen obigen Standorten
 ap2004 -- ap2006 [label="Z10 - Klinikum"];
 ap1110 -- ap1101 [label="Ludwigstraße - Klinikum"];
 ap2005 -- ap2008 [label="Klinikum - A22"];
 ap1117 -- ap2050 [label="Z10 - Martin"];
 ap2166 -- ap1187 [label="Z10 - Bernd"];

} </graphviz>