Howto/Backbone-Client
Hier beschreiben wir, wie man einen Client-Node an das Backbone-Netz, wie Freifunk-Mainz es gegenwärtig betreibt, andocken kann. Ein Backbone-Client ist ein Freifunk-Router, der mit einer Richtfunk-Antenne an unser Backbone (unser Hochgeschwindigkeitsnetz über den Dächern der Stadt) angeschlossen wird.
Das Backbone hat gegenüber dem bekannteren client-seitigen Mesh ein paar Besonderheiten. Diese werden hier erläutert und in einer Schritt-für-Schritt-Anleitung durchgegangen. Das Backbone-Netz ist charakterisiert durch die reine Bestückung mit 5-GHz-Geräten. 2,4-GHz-Geräte können nichts vom Backbone sehen. Die Fokussierung auf 5-GHz-Geräte bringt aus Open Source-Sicht leider ein paar Einschränkungen mit: Auf den Geräten von Ubiquiti setzen wir die proprietäre Hersteller-Software "AirOS" ein, denn das ebenfalls darauf lauffähige OpenWRT-Linux verfügt noch nicht die erforderliche behördliche Zulassung für diesen Einsatz. AirOS genießt diese Zulassung.
Eine Konsequenz aus der Geschlossenheit des Ubiquiti-AirOS ist, dass wir keine Freifunk-Software darauf installieren können, Software, die wir für das Meshen brauchen. Daher muss diese Mesh-Software (z.B. BATMAN) in einem separaten Gerät liegen, hier in einem OpenWRT-System mit Gluon. Ein Client-System am Backbone besteht also zur Zeit in der Regel aus zwei physischen Geräten: Der Richtfunkantenne (Nanostation, Nanobeam etc.) mit der Original-Firmware (AirOS) und dem Freifunk-Router mit Gluon.
Im Laufe der Beschreibung hier werden also zwei Systeme eingerichtet, und nach der Einrichtung wird das AirOS-Gerät (die Richtfunkantenne) über ein Patchkabel mit einem der LAN-Ports des Gluon-Routers verbunden.
Einrichten des AirOS
Um den AirOS-Router (NanoStation, NanoBeam, etc.) zu konfigurieren, schließt man diesen mit Hilfe des PoE-Adapters direkt an den Computer an. Auf dem muss man dem Netzwerk-Interface manuell eine feste IP-Addresse im Netz 192.168.1.0/24 zuweisen, weil das AirOS-Gerät in genau dem Netz seine Default-Adresse hat. Das AirOS-Gerät ist danach unter der 192.168.1.20 erreichbar; jetzt kann man sich mit einem Browser in dem AirOS-Router einloggen: https://192.168.1.20 Ubiquiti gibt seinen Geräten bei Auslieferung das Pärchen ubnt/ubnt für User und Passwort mit.
Bevor man zum nächsten Reiter wechselt, immer die Konfiguration speichern, indem man den Button ändern rechts unter betätigt und dann oben in der blau erscheinenden Leiste den Button übernehmen drückt. Bei einigen Änderungen dauert es etwas, weil sich der Router neu startet, also immer warten, bis die Anzeige wieder da ist und reagiert.
Auf fast allen Seiten/Reitern nehmen wir Einstellungen vor:
System
Wir benennen das Gerät sinnvoll, setzen die Zeitzone, geben dem Admin-User ein gutes Passwort und legen zusätzlich noch einen Read-Only-User freifunk mit Passwort freifunk an. Schließlich sagen wir dem Gerät, wo es aufgestellt ist. Diese Koordinaten sind aber optional, haben für die Funktion natürlich keine Bedeutung.
Das AirOS wird den Nutzer von Anfang an auffordern, das Passwort zu ändern. Daher fangen wir hier an. Das PW sollte zudem hinreichend gut sein, da der AirOS-Router später im Freifunk-Netz von der Allgemeinheit erreichbar sein wird.
Services
Die Discovery-Funktionen sollten deaktiviert sein. CDP ist Cisco Discovery Protocol und sollte daher ebenfalls aus.
Advanced
Auch hier nur eines: die Entfernung (zu der weitesten Gegenstelle) kann voreingestellt werden auf etwa 6 km. Auf jeden Fall aber muss Auto-Adjust aktiviert sein.
Network
Wir konfigurieren das AirOS-Gerät so, dass es später ohne VLAN-Tags lokal über eine 192.168.1.0/24-Adresse (Notzugriff), und mit VLAN-Tags über eine Adresse aus dem 10.37.2.0/23 über Freifunk erreichbar sein wird gemäß Netzplan.
Bridge-Konfiguration
Zuerst fügt man zwei neue Bridges hinzu. In die Bridge1 kommt das Freifunk-Management. VLAN3 und in Bridge2 kommt das WLAN-Interface und das BATMAN-VLAN10. Der Haken unter der Spalte STP sollte nicht gesetzt sein.
Ganz wichtig: Nach diesem Schritt die Konfiguration übernehmen und speichern. Erst nachdem dieses in der Konfiguration drin ist, mit den folgenden Schritten weitermachen.
Managment-IP-Konfiguration
Die Konfiguration wird, wie im Bild zu sehen, vorgenommen. Wichtig sind die DNS-Einträge, damit das Gerät später auch aus der Ferne erreichbar ist.
VLAN-Konfiguration
Danach legen wir die VLANs an. VLAN 3 für Freifunk-Client und VLAN 10 für das BATMAN. Als Konvention bietet es sich an, den WLAN-Kanal des AirOS-Geräts als VLAN-Nummer zu wählen:
Als nächstes wird Alias-IP eingerichtet, damit das AirOS-Gerät später ggf. auch lokal erreichbar ist. Das Interface für die IP ist Bridge0.
Nach dem Übernehmen und Anwenden in der GUI sollte der AirOS-Router lokal untagged unter der 192.168.1.0/24er Adresse erreichbar sein. Und tagged über VLAN3 unter der vergebenen Freifunk-Backbone-IP.
Wireless
Befindet sich der AirOS-Router schon in Empfangsposition, so kann im Wireless-Reiter die Backbone-SSID ausgewählt werden, mit der man sich nun verbinden will. Idealerweise ist das die, zu der man den besten Empfang hat an seinem Standort. Hierzu stellt man den Wireless Mode auf Station, was im Ubiquiti-Slang der Client Mode ist, und kann dann über den Button rechts neben dem SSID-Feld eine Gegenstelle auswählen. Das Backbone-Mesh ist WPA2-verschlüsselt, man braucht also einen PSK bzw. eine Passphrase, die man auf der Mailing-Liste Backbone erfragen kann. Hierhin kann man sich auch bei Problemen oder mit Fragen wenden. Die Frequenz oder Kanalbreite sollte bei den weiteren Optionen auf Auto gestellt sein, da sonst nur der ausgewählte Kanal gescannt würde. Den Haken bei Frequenz-Scan-Liste braucht man nicht zu setzen, wenn die SSID der Gegenstation eingetragen ist. Das hat den Vorteil, dass bei einem Frequenzwechsel sich das Gerät automatisch die Gegenstation sucht. Die Kanäle für den Innenbereich werden abgewählt, dadurch wird das Scannen der übrigen Kanäle schneller.
Wenn man ganz sichergehen will, um die richtige Gegenstelle zu benutzen, dann drückt man den Button Auswählen neben dem Eingabefeld für die SSID. Dann wird in einem Popup-Fenster ein Frequenzscan durchgeführt.
Sobald die gewünschte SSID in der Liste auftaucht, wählt man diese aus und drücken den Button Auswählen, das Fenster schlisst sich und die SSID wird eingetragen.
Main
Auf der Seite Main sind dann die wichtigsten Werte dargestellt, insbesondere wird auch die Qualität der Verbindung angezeigt.
Reset im Notfall
Bei der Konfiguration kann es durchaus sein, dass man sich ausschließt oder anderweitig das Gerät nicht mehr erreichbar ist. Um einen Werksreset durchzuführen, muss entweder der Resetknopf am Gerät betätigt werden, alternativ gibt es diesen auch am PoE-Injektor. Der Schalter am Gerät löst sich nämlich schnell von der Leiterplatte, wenn man zu stark drückt und das Gehäuse der Nanobeams lässt sich nicht öffnen.
Gluon-Router-Konfiguration
Hier wird beispielhaft eine Konfiguration eines WDR3600 gezeigt. Sie befindet sich unter /etc/config/network
. Es wird der gesamte Switch in den Tagged-Modus umgeschaltet. Sollte dies nicht gewollt sein, so entfernt man einfach die entsprechenden Ports aus der Konfigurationszeile (z.B. LAN-Port 1 und 2 raus: option ports '0t 4t 5t'). Das kleine t bedeutet jeweils die Teilnahme des Ports am Betrieb mit Tags. Aufpassen: bei anderen Routermodellen kann die Numerierung der Ports anders sein, wie auch der Nummernbereich, aus dem man sich VLAN IDs aussuchen kann. Infos hierzu gibt es in den entsprechende OpenWRT-Wiki-Seiten über das konkrete Routermodell, wo der konkret verbaute Switch erklärt wird. Es sind auch Unterschiede zwischen Hardware-Revisionen desselben Modells möglich!
- anzeigen der Anzahl an unterstützten VLAN-IDs, höchstes benutzbares VLAN ist "angezeigte Anzahl - 1" (der WR841 z.B. nur VLAN-IDs <16):
swconfig dev switch0 help
- anzeigen der Portkonfiguration:
swconfig dev switch0 show
Konfiguration der Network config:
config switch option name 'switch0' option reset '1' option enable_vlan '1'
Ports aus dem default VLAN 1 löschen (außer Port 0t = CPU):
config switch_vlan option device 'switch0' option vlan '1' option ports '0t'
Anlegen eines Management-VLANs, über das später das Freifunk-Client-Netz laufen wird:
#Freifunk Client MNGMT VLAN config switch_vlan option device 'switch0' option vlan '3' option ports '0t 2t 3t 4t 5t'
Anlegen eines VLANs, über das die BATMAN-Pakete laufen. Als Konvention bietet sich an, den WLAN-Kanal des AirOS-Geräts als VLAN-Nummer zu wählen. Hier die 100:
config switch_vlan option device 'switch0' option vlan '10' option ports '0t 2t 3t 4t 5t'
Nun wird das VLAN3 der Client-Bridge hinzugefügt und das alte Untagged-Interface (in diesem Fall eth0) wird entfernt:
config interface 'client' option reqprefix 'no' list ifname 'eth0.3' list ifname 'bat0' option proto 'dhcpv6' option type 'bridge' option igmp_snooping '0' option macaddr 'xx:xx:xx:xx:xx:xx' # diese MAC-Adresse nicht ändern option peerdns '1'
Schließlich wird das BATMAN-VLAN noch dem bat0-Interface hinzugefügt:
Gluon 2017.1.x
config interface 'mesh_vlan10' option auto '1' option ifname 'eth0.10' option proto 'gluon_mesh' option fixed_mtu '1' option transitive '1' option macaddr 'xx:xx:xx:xx:xx:xx' # hier eine korrekt formatierte, eindeutige MAC-Adresse einfügen, die aus dem Locally Administered Bereich stammt, Online-Generatoren gibt es z.B. hier
Gluon 2018.1.x
config interface 'mesh_vlan10' option disabled '0' option ifname 'eth0.10' option proto 'gluon_wired' option fixed_mtu '1' option transitive '1' option macaddr 'xx:xx:xx:xx:xx:xx' # hier eine korrekt formatierte, eindeutige MAC-Adresse einfügen, die aus dem Locally Administered Bereich stammt, Online-Generatoren gibt es z.B. hier option index '0'
Außerdem sollten ab Gluon 2018.1.x alle manuell angelegten Mesh-Interfaces in /etc/config/network
der Zone wired_mesh
hinzugefügt werden.
config zone 'wired_mesh' option name 'wired_mesh' option input 'REJECT' option forward 'REJECT' option output 'ACCEPT' list network 'mesh_lan' list network 'mesh_vlan10'
Danach startet man das Netzwerk neu mit:
/etc/init.d/network restart
Dies dauert ein paar Sekunden.
Will man mehrere AirOS-Router an einem Standort betreiben, so sollte man für jeden ein eigenes BATMAN-VLAN konfigurieren und dem bat0-Interface hinzufügen. Die AirOS-Router können alle mit verschiedenen Backbone-IPs im gleichen Management-VLAN sein. Es muss jedoch sichergestellt werden, dass mehrere AirOS-Router dasselbe Freifunk-Client-VLAN (hier VLAN3) nicht zusammen "bridgen". Genauso muss sichergestellt werdern, dass man mehrere Gluon-Router nur über BATMAN-Ports (Mesh) zusammenstecken darf, nicht aber über Client-Ports (hier VLAN 3).
Testen des Setups
VLAN-Switch-Konfigration
Die VLAN-Konfiguration kann jetzt auf Richtigkeit überprüft werden:
swconfig dev switch0 show
Die Ausgabe sollte folgendes beinhalten:
Global attributes: enable_vlan: 1 mirror_monitor_port: 15 Port 0: enable_mirror_rx: 0 enable_mirror_tx: 0 pvid: 0 link: port:0 link:up speed:1000baseT full-duplex txflow rxflow Port 1: enable_mirror_rx: 0 enable_mirror_tx: 0 pvid: 0 link: port:1 link:up speed:100baseT full-duplex auto Port 2: enable_mirror_rx: 0 enable_mirror_tx: 0 pvid: 0 link: port:2 link:down Port 3: enable_mirror_rx: 0 enable_mirror_tx: 0 pvid: 0 link: port:3 link:down Port 4: enable_mirror_rx: 0 enable_mirror_tx: 0 pvid: 0 link: port:4 link:up speed:100baseT full-duplex auto VLAN 0: vid: 0 ports: 0t 1t 2t 3t 4t VLAN 1: vid: 1 ports: 0t VLAN 3: vid: 3 ports: 0t 1t 2t 3t 4t VLAN 10: vid: 10 ports: 0t 1t 2t 3t 4t
VLAN-Interfaces
Wenn der Gluon-Router mit dem AirOS-Router verbunden ist, sollten sowohl beim Interface eth0.100 als auch bei eth0.3. auf Rx- und Tx-Seite (Receiver und Transmitter) Pakete fließen.
ip address show dev eth0.10
Erreichbarkeit im Freifunk-Netz
Nun kann man versuchen, den AirOS-Router im Freifunk anzupingen. Das ist die IP-Adresse, die Du Dir im Netzplan für Dein Backbone-Setup ausgesucht hast.
ping <backbone-ip>
Dies sollte innerhalb des ganzen Freifunk-Mainz-Netzes möglich sein.