Howto/Backbone-Client

Aus Freifunk MWU Wiki
Zur Navigation springen Zur Suche springen

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.

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.

NSM5confSYS.png

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.

NSM5confADV.png

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.

03 Bridge.jpg

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.

01 Konfig Network Management.jpg

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:

04 VLAN.jpg

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.

02 IP-Aliase.jpg

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.

05 Wireless.jpg

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.

06 Scan-Verlauf.jpg

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.

07 Scan-SSID-Auswahl.jpg

Main

Auf der Seite Main sind dann die wichtigsten Werte dargestellt, insbesondere wird auch die Qualität der Verbindung angezeigt.

08 Übersicht.jpg

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.


Siehe auch