AirOS-opennet

Aus Opennet
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

AirOS Opennet-Anpassung

AirOS ist das Betriebssystem der Ubiquiti-Geräte, welches auf OpenWrt basiert. Für einen Einsatz im Opennet fehlt etwas Software, darum wurde AirOS für opennet um einige Pakete erweitert.


aktuelle Version

Die aktuelle Version wurde basierend auf SDK.UBNT.v5.2.1.tar.bz2, SDK.UBNT.v5.3.3.tar.bz2 und SDK.UBNT.v5.5.tar.bz2 gebaut. Die Anpassungen für Opennet sind bei allen drei Versionen gleich, diese unterscheiden sich nur in den zugrunde liegenden Firmware-Versionen von Ubiquity.

Die Opennet-Versionen enthalten folgende Erweiterungen:

- olsr v 0.6.3 (+httpinfo, +txtinfo, +nameservice, +ondataservice)
- aktueller uci
- openvpn (+openssl)
- tcpdump
- arp
- mtr
- bwm

Download

Datum Software Anmerkungen
11.01.2013 XM.v5.5_opennet0.6 Version basierend auf AirOS SDK 5.5, mit User-OpenVPN
11.01.2013 XM.v5.3.3_opennet0.6 Version basierend auf AirOS SDK 5.3.3, mit User-OpenVPN
11.01.2013 XM.v5.2.1_opennet0.6 Version basierend auf AirOS SDK 5.2.1, mit User-OpenVPN

Firmware-Update per Webfrontend

Die Opennet-Anpassung kann ganz normal über das Webfrontend der Original-Firmware eingespielt werden. Einfach im System-Tab, "Update" ganz unten im Device-Management Bereich wählen. Ubiquiti-Geräte mit AirOS sind per default unter der addresse http://192.168.1.20 erreichbar, der default username ist 'ubnt', das passwort ebenso.

Firmware-Update per tftp

  • firmware-image runterladen
  • reset-Button drücken und gedrückt halten, dann mit Strom versorgen
  • reset-Button gedrückt halten, ca. 10 Sekunden warten bis signal-LEDs rot, orange, grün1, grün2 nacheinander aufleuchten, dann reset loslassen (wenn es geht, weil du noch keinen krampf in der hand hast ;)
  • jetzt sollten rot+grün1 und orange+grün2 abwechselnd aufleuchten
  • gib der Netzwerkkarte, an dem die station hängt eine neue IP-Adresse
#> ifconfig eth0 192.168.1.22
  • firmware aufspielen:
#> atftp 192.168.1.20
tftp> binary
tftp> trace
tftp> put XM.v5.2.1_opennet0.4.sdk.6359.110713.1704.bin
tftp> quit
#>
  • bei der Nanostation M5 dauert das kopieren ca. 5 Sekunden, daraufhin leuchten rot und grün2 knappe 20 Sekunden, danach startet sie neu und ist einsatzbereit

Zugriff auf Router

  • nach Neustart evtl Netzwerk erneut konfigurieren
#> ifconfig eth0 192.168.1.22
  • Router ist auf 192.168.1.20 erreichbar, alle Interfaces arbeiten mit OLSR
  • OLSR-Info unter RouterAdresse Port 8080, also 192.168.1.20:8080

Update von Versionen vor XX_opennet0.3

Am besten vor dem Update auf dem Accesspoint per ssh verbinden und die Dateien unter /etc/persistent entfernen (ACHTUNG: dort liegen auch die OpenVPN-keys, also vorher sichern)

  • per ssh mit dem Router verbinden, dann
#> cd /usr/etc/persistent
#> rm -rf *
#> cfgmtd -p /etc -w
  • nun NICHT NEU STARTEN
  • über das Webfrontend neue AirOS-Opennet-Anpassung einspielen

Konfiguration als Opennet-Router

Nutzer-Konfiguration

  • nach der Installation der Firmware nochmals per ubnt/ubnt anmelden
  • unter "System" nun den "Administrator Username" auf "root" ändern (einheitlich innerhalb von Opennet WLAN Routern)
  • daneben findet sich ein Schlüsselsymbol, dort kann das Passwort für "root" gesetzt werden

Netzwerk-Konfiguration

AirOS Opennet Netzwerk-Konfiguration

ein Opennet-Router hat alle Interfaces im Opennet und vermittelt Pakete zwischen diesen Interfaces. Auf allen Interfaces läuft OLSR, lokale Interfaces oder WAN-Interfaces existieren nicht.

  • (ID = IP-Adresse reservieren, bspw. ID 1.42, IP 192.168.1.42)
  • "Network-Mode: Router" auswählen
  • "WLAN IP Address: static" auswählen
    • Adresse: 192.168.1.42
    • Netmask: 255.255.0.0
    • Gateway IP: 192.168.0.254 (ohne will AirOS nicht)
    • Primary DNS IP: 192.168.0.254 (ohne will AirOS nicht)
  • "LAN IP Address: static" auswählen
    • Adresse: 192.168.11.42 (WLAN-IP + 10.0 nach Adressierungsschema)
    • Netmask: 255.255.0.0
    • Enable NAT: deaktiviert
    • Auto IP Aliasing: deaktiviert

Einstellungen übernehmen, der Router ist nun über die neue IP erreichbar.

Wireless-Konfiguration

AirOS Opennet Wireless-Konfiguration
  • Wireless-Mode auf Access Point oder Station, je nach setup
  • SSID anpassen
  • Country Code auf Germany stellen
  • DFS deaktivieren
  • bei Access Point-Modus Channel Width auf "20 MHz"
  • Frequenz festlegen

Einstellungen übernehmen

Client-Isolation

Standardmäßig ist die "Client-Isolation" abgeschaltet, d.h. dass der Router jedes eingehende Paket unbesehen an alle anderen Wireless-Teilnehmer weiterverteilt. Dies führt im Allgemeinen zu einer Halbierung der Bandbreite. Insofern: einfach im Fenster Advanced den Haken bei Enable Client Isolation setzen. Dies ist nur beim Master einer Verbindung notwendig bzw. möglich.

OLSR-Konfiguration

AirOS Opennet OLSR-Konfiguration

Eigentlich ist die Konfiguration nun bereits abgeschlossen. Dennoch kann es sein, das der Access-Point nun im Opennet mit der falschen Main-IP unterwegs ist. Also hier bspw. mit 192.168.11.42 statt mit 192.168.1.42. Im Ergebnis wird der Access-Point bspw. nicht richtig auf Opennet-Karten dargestellt. Die Zuordnung der Main-IP erfolgt dynamisch, kann aber abhängig von den Verzögerungen beim WLAN-Aufbau nicht direkt auf ein Interface festgelegt werden. Darum am besten wie folgt vorgehen:

  • per ssh mit dem Router verbinden, dann
#> cd /etc/persistent
#> vi olsrd.conf
  • nun die Datei ändern und die gewünschte MainIP eintragen (am Anfang der Zeile das # entfernen)
    • drücke 'i' zum editieren
    • danach 'Esc' um edit-Modus zu verlassen, ':x' um zu sichern und den Editor zu verlassen
  • Konfiguration permanent sichern:
#> cfgmtd -p /etc -w
  • neu starten

OpenVPN-Konfiguration

(vergleiche auch /etc/persistent/readme.txt auf dem Router) und OpenVPN

  1. Netzwerkschnittstellen konfigurieren, LAN natürlich nicht als Teil von Opennet
    • bspw. LAN-IP 172.16.0.1, LAN-NETMASK 255.255.255.0
  2. olsr.conf anpassen
    • per ssh mit Router verbinden
    • im Verzeichnis /etc/persistent die Datei olsrd.conf editieren
    • LAN-device aus der Liste der OLSR-Interfaces nehmen
    • MainIP anpassen
  3. OpenVPN-Schlüssel und OpenVPN-Zertifikat nach /etc/persistent/opennet_user/ kopieren
  4. /etc/persistent/lan.conf anpassen
  5. Konfiguration speichern
    • #> cfgmtd -p /etc -w
  6. Neustart des Routers oder #> /etc/init.d/openvpn start

Konfiguration und Auswahl der Gateways

  • per ssh mit dem Router verbinden
  • Befehl zur VPN-Verwaltung: #> vpn_status
    • Achtung: vpn_status ist nicht robust gegen Fehleingaben

Usergateway-Konfiguration

(vergleiche auch /etc/persistent/readme.txt auf dem Router) und Usergateways

  1. Netzwerkschnittstellen konfigurieren, WAN natürlich nicht als Teil von Opennet
    • bspw. WAN-IP per DHCP
  2. olsr.conf anpassen
    • per ssh mit Router verbinden
    • im Verzeichnis /etc/persistent die Datei olsrd.conf editieren
    • WAN-device aus der Liste der OLSR-Interfaces nehmen
    • Interfaces "tap0" and "tap1" hinzufügen
    • MainIP anpassen
  3. OpenVPN-Usergateway-Schlüssel und OpenVPN-Usergateway-Zertifikat nach /etc/persistent/opennet_ugw/ kopieren
  4. /etc/persistent/wan.conf anpassen
  5. Konfiguration speichern
    • #> cfgmtd -p /etc -w
  6. Neustart des Routers

Konfiguration der Internet-Freigabe

  • per ssh mit dem Router verbinden
  • Befehl zur ugw-Verwaltung: #> ugw_status
    • Achtung: ugw_status ist nicht robust gegen Fehleingaben
  • "ugw_status checkWAN" und "ugw_status checkMTU" müssen vor Nutzung des Usergateways ausgeführt werden
    • "ugw_status checkWAN" wird automatisch alle 5 Minuten ausgeführt
    • "ugw_status checkMTU" wird automatisch jede Stunde ausgeführt
  • soll Aktivierung und Status (WAN, MTU) über Neustart gesichert werden, wieder Konfiguration speichern
    • #> cfgmtd -p /etc -w

Besonderheiten

VLAN-Konfiguration

Mit der Firmware ab v5.3 ist es möglich, VLANs über das Web-Interface zu konfigurieren.

Mit älteren Firmware-Versionen müssen VLANs manuell (und unsauber) eingerichtet werden. Die folgende Anleitung zeigt dies:

  • per ssh mit dem Router verbinden
  • in der Datei /etc/persistent/rc.poststart am Ende die folgenden Zeilen einfügen (hier: VLAN-ID 10):
   vconfig add eth0_real 10
   ip link set dev eth0_real.10 up
   brctl addif eth0 eth0_real.10
   brctl delif eth0 eth0_real
  • Konfiguration dauerhaft speichern:
   cfgmtd -p /etc -w

Beim nächsten Neustart lauscht das Gerät auf dem Ethernet-Port eth0 nur noch auf der angegebenen VLAN-ID. Es ist ratsam, diese Änderung nur durchzuführen, wenn der Router zusätzlich auch via WLAN erreichbar ist. Die obige Methode wurde mit der Firmware v5.2 getestet.

Da sich diese Anpassung nicht in die Netzwerkkonfigurationsskripte integriert, sondern nur direkt nach dem Booten ausgeführt wird, kann die VLAN-ID kurrzeitig verlorengehen, wenn die Netzwerk-Einstellungen mittels Web-Interface verändert werden. Nach dem nächsten Neustart wird das VLAN dann wieder funktionieren.

POE-Durchleitung

Eine Produktionsreihe der Nanostations M5 HP ist von einem Problem mit der optional zuschaltbaren POE-Durchleitung betroffen. Konkret äußert sich dies darin, dass irgendwann ein Bauteil durchbrennt und sich anschließend der Zustand der POE-Durchleitung nicht mehr ändern kann.

Siehe dazu die folgende Diskussion.

Bei einem defekten Router lässt sich das Fehlverhalten mit folgenden Kommandos auslösen:

   echo 8 > /sys/class/gpio/export
   echo out > /sys/class/gpio/gpio8/direction
   echo 1 > /sys/class/gpio/gpio8/value

Im Fehlerfall startet der Router unmittelbar darauf neu.

Bei Bedarf lässt sich das betroffene Bauteil überbrücken und somit eine dauerhafte (nicht-konfigurierbare) POE-Durchleitung erzwingen.

Weiterleitung zu nicht-olsr-Nachbarn

In der Version 5.2 der AirOS-Firmare (vielleicht auch bei späteren Versionen) ist es nicht möglich, IP-spezifisch DNAT und SNAT via Web-Interface zu konfigurieren. Daher ist die folgende manuelle Konfiguration erforderlich.

Ein möglicher Anwendungsfall ist die Weiterleitung an einen Tough-Switch, der die umliegenden Router mit POE versorgt (z.B. Projekt Klinikum Südstadt).

Das folgende Beispiel nimmt die IP 192.168.2.53 für den Ziel-Host an:

  1. die NAT-Module laden lassen: im Reiter Network die Checkbox Port Forwarding setzen (der Dialog Configure muss nicht beachtet werden)
  2. ein HNA für das Zielgerät setzen (/etc/olsrd.conf):
    Hna4
    {
      192.168.2.53 255.255.255.255
    }
  3. Route setzen und SNAT aktivieren (am Ende von /etc/persistent/rc.poststart):
    # Port-Weiterleitung fuer Tough-Switch
    ip route add 192.168.2.53 dev eth0
    iptables -t nat -A POSTROUTING -o eth0 -d 192.168.2.53 -j MASQUERADE
  4. Konfiguration dauerhaft speichern:
    cfgmtd -p /etc -w

Nach einem Neustart wird der Router nun alle Verbindungen aus dem olsr-Netz zu dem Gerät durchleiten. Auf dem Zielgerät sollte natürlich die passende IP mit der korrekten Netzmaske (255.255.0.0) konfiguriert werden.

Eigenbau AirOS Opennet-Anpassung

Neben der AirOS-SDK werden die Opennet-Anpassungen benötigt. Diese sind im build-File enthalten.

# das entsprechende SDK von Ubiquity besorgen und entpacken.
tar xfj SDK.UBNT.v5.2.1.tar.bz2
# ins build-Verzeichnis wechseln
cd SDK.UBNT.v5.2.1/openwrt
# Die build-Files besorgen und entpacken
wget http://www.absorb.it/software/opennet/airos/opennet_0.6.tgz
tar xfz opennet_0.6.tgz
# Umgebung vorbereiten:
./opennet_0.6/prepare.sh
# firmware bauen
make V=99

Wenn alles gut geht liegt das fertige Image im Verzeichnis bin.

AirOS von Drittanbietern

Unter Ninux.org findet sich eine AirOS-Anpassung mit integriertem olsrd 0.6.0, welche übers Webinterface konfiguriert werden kann. Auch wenn ein Einsatz dieser Software prinzipiell möglich ist, sollte sichergestellt werden, dass nach einer Installation das httpinfo-Interface auf port 8080 erreichbar ist, damit olsr-Daten auch ohne login in das Webinterface abgefragt werden können.

Meine Werkzeuge
Namensräume

Varianten
Aktionen
Start
Opennet
Kommunikation
Karten
Werkzeuge