B.A.T.M.A.N

Aus Opennet
Wechseln zu: Navigation, Suche

B.A.T.M.A.N. (better approach to mobile ad-hoc networking) ist ein neues Routing-Protokoll von und für Wirless Mesh Ad-Hoc Netze. Weiteres zum Projekt siehe https://www.open-mesh.net/batman

Inhaltsverzeichnis

Opennet Firmware

Es wurde B.A.T.M.A.N. im Opennet getestet, hier finden sich einige Informationen zum damaligen Stand. Der Test ist inzwischen abgeschlossen und das Protokoll findet derzeit im Opennet Mesh keine Anwendung.

genutzter IP-Bereich

B.A.T.M.A.N. läuft getrennt vom OLSR-Opennet in einem eigenen Adressbereich. Die B.A.T.M.A.N.-Adressen werden anhand der AP-adresse bestimmt, 192.168.40.X für das erste Interface, 192.168.41.X für das zweite, 192.168.42.X für ein mögliches drittes Interface.

Für Usergateway-Tunnel (tap0 und tap1 zu nagare/erina) wurde kein eigener Addressbereich vorgesehen, OLSR und B.A.T.M.A.N. teilen sich hier die IP des Interfaces. Dies ist bisher nicht produktiv getestet und kann zu Problemen im policy--routing führen.

Verwendung Bereich Adressvergabe
B.A.T.M.A.N. AP Adresse 192.168.40.0-192.168.40.255 implizit durch Registrierung der AP-Nummer.
B.A.T.M.A.N. AP Adresse 192.168.41.0-192.168.41.255 implizit durch Registrierung der AP-Nummer.
B.A.T.M.A.N. AP Adresse 192.168.42.0-192.168.42.255 implizit durch Registrierung der AP-Nummer.
offizielle B.A.T.M.A.N. Opennet Gateways 192.168.43.0-192.168.43.255 nicht für Mitglieder.

Features

B.A.T.M.A.N. unterstützt neben dem klassischem Routing auch eine Auswahl der Gateways anhand der Gatewayeigenschaften (Verfügbarkeit, Bandbreite). Dieses Feature wird im Opennet nicht genutzt, da unsere Gateways durch spezifische Ip-Adressen beschrieben werden. Der Opennet-Test betrift also nur das Routing, es sollten durch B.A.T.M.A.N. keine Gateways angekündigt (und erkannt) werden.

Probleme

  • Routing auf Usergateways: Auf Usergateways läuft der OLSR-Traffic über tap-devices zu nagare/erina. Die gleichen devices mit den selben IP-Adressen werden zur Zeit als B.A.T.M.A.N.-Interfaces genutzt. Dies könnte Probleme mit dem Routing geben, da vermutlich immer die B.A.T.M.A.N.-Routen genutzt durch den Tunnel genutzt werden.
  • Usergateways bauen üblicherweise die Tunnel zu nagare und erina auf und behalten diese auch, wenn die WAN-Verbindung (kurzfristig) unterbrochen wird. Traffic zu erina/nagare über nicht-WAN-devices wird per firewall unterbunden, die Tunnel sind währenddessen nicht funktionsfähig. B.A.T.M.A.N. bricht allerdings seine Arbeit ab, wenn B.A.T.M.A.N.-Pakete durch die Firewall geblockt werden (vgl. function send_udp_packet) Solche Momente könnten also B.A.T.M.A.N. ungewollt beenden.

Installation

B.A.T.M.A.N. enthält in den gesendeten udp-Paketen eine Versionskennung, es macht daher Sinn, eine spezifische B.A.T.M.A.N-Version für alle Testinstallationen zu nutzen. Die aktuelle Entwicklungsversion ist rv799, diese wurde ins Opennet-repository gespielt um längerfristig damit arbeiten zu können.

auf APs

Die zweite pre-release 0.11ipkg-14 der Opennet-Firmware unterstützt B.A.T.M.A.N.

Installation als Paket: opennet-firmware_0.11ipkg-14pre2_mipsel.ipk herunterladen und auf dem AP installieren (übers Webfrontend ->Software oder per ssh). Nach der Paketinstallation ist der B.A.T.M.A.N.-Deamon selbst noch nicht installiert, im Webfrontend erscheint jedoch ein Menupunkt B.A.T.M.A.N. der die Installation anbietet.

Installation als komplettes Image: Entsprechende Images finden sich unter [1] Diese Images enthalten bereits den B.A.T.M.A.N.-Daemon sowie eine aktualisierte Version von olsr (0.5.4). Hier muss B.A.T.M.A.N. nur noch aktiviert werden.

auf WRAPs

Für die Installation auf WRAPs liegen entsprechende Dateien unter [2]. Die Datei batmand_0.3-beta-rv799_i386-gc-elf-32-lsb-static.tgz und den enthaltenen batmand* nach /usr/sbin spielen. Danach das Startscript batmand nach /etc/init.d/ spielen. Mit '/etc/init.d/batmand enable' den automatischen Start aktivieren und mit '/etc/init.d/batmand start' starten, erledigt. Das init-script startet den B.A.T.M.A.N. auf allen verfügbaren Interfaces aus "eth0 eth1 ath0 ath1". Wenn dies nicht so gewünscht ist, vorher noch anpassen.

Allgemeines

In diesem Abschnitt wird er Einsatz des batmand ohne Opennet Firmware im Detail erläutert.

Konfigurationsdatei

Liegt unter OpenWrt Kamikaze in /etc/config/batman:

config batman general
       option interface                wl0
       option announce
       option gateway_class            6
       option originator_interval
       option preferred_gateway
       option routing_class
       option visualisation_srv

Erläuterung der Konfigurationsdatei

interface:

  • das Interface auf dem batman sich im Netz austauschen soll, primär das Wireless-Interface
  • Beispiel: wl0; ath0

announce:

  • lokale Subnetze die batman ankündigen soll
  • Vorgabe: <leer>
  • Beispiel: 192.168.1.0/24; 172.16.0.0/16
  • Console: -a

gateway_class:

  • nur fuer Router interessant, die gleichzeitig Gateways (Usergateway) sind
  • Vorgabe: 0
  • Beispiel: 0-11; 0: kein Gateway, 1-11: bandbreitenabhängig, wobei 11 größer als 6 Mbit bedeutet
  • Console: -g

originator_interval:

  • Zeitinterval fuer die Advertisements, wie oft sendet batman Routing-Informationen
  • Vorgabe: 1000ms
  • Beispiel: 2000: 2 Sekunden
  • Console: -o

preferred_gateway:

  • bevorzugtes Gateway
  • Beispiel: 192.168.1.1
  • Console: -p

routing_class:

  • nach welchem Kriterium batman die Route auswählt
  • Beispiel: 0-3; 0: keine Default-Route; 1: schnell; 2: stabil; 3: statistisch beste (wie bei OLSR)
  • Console: -r

visualisation_srv:

  • Adresse des Visualisierungsservers; zur Zeit nicht implementiert
  • eg: 192.168.1.1
  • Console: -v

Hinweis: Die Optionen "gateway_class" kann nicht zusammen mit "preferred_gateway" und "routing_class" verwendet werden. Am besten zu beschreiben, als Server (gateway_class) und Client (preferred_gateway, routing_class).

Weitere Parameter des batmand

Weiterhin gibt es für den batmand einige zusätzliche Aufrufparamater.

Debug-Modus:

  • verschiedene Debug-Modi
  • Beispiel: 0-4; 0: keine Debug-Informationen; 1: Neighbours; 2: Gateways; 3: normal; 4: alle batman-informationen, die verarbeitet werden
  • Schalter: -d

Connect-Modus:

  • verbindet zum lokalen batmand, z.b. fuer Debugging
  • Schalter: -c

Beispiele

Zeigt alle aktuellen Nachbarn des Knotens an (bei bereits laufendem batmam-process im Hintergrund):

batmand -c -d 1

Sendet auf ath0 alle 2 Sekunden und verbreitet dabei, dass das 192.168.1.0/24 netzt lokal angebunden ist. Ausserdem verwendet er das Default-Gateway über den stabilsten Pfad:

batmand -a 192.168.1.0/24 -r 2 -o 2000 ath0

Sendet auf wl0 jede Sekunde und verbreitet sein Default-Gateway, Bandbreite bis 1 Mbit:

batmand -g 6 -o 1000 wl0

Weblinks

Meine Werkzeuge
Namensräume

Varianten
Aktionen
Start
Opennet
Kommunikation
Karten
Werkzeuge