Oft kommt es vor, dass an einem Ort, an dem es keinen Internetanschluss gibt, ein freies WLAN gewünscht wird. In diesem Artikel wird erklärt, wie wir in Mössingen Richtfunkstrecken einsetzen, um Freifunk-Netze an Orten ohne Internetanschluss zu errichten.
Zwei Freifunkrouter können sich über eine Kabellose Mesh-Verbindung miteinander verbinden, sodass der Internetanschluss des einen Routers mit dem anderen Router geteilt werden kann. Um also Orte ohne Internetanschluss mit Freifunk zu versorgen, ist die Grundidee einfach, an beiden Orten einen Router mit Freifunk-Firmware aufzustellen, die sich dann per Funk miteinander verbinden.
Wenn die Orte nicht besonders weit auseinander liegen, kann das auch genau so funktionieren. Anders als bei einem Handy und einem Router in einem Gebäude, kann so eine Verbindung auch über einige 100 Meter klappen, denn Router haben größere Antennen als Handys und wenn zwischen den Routern freie Sicht herrscht (wenn also keine Gebäude oder Bäume dazwischen sind) reicht die Signalstärke auch für größere Distanzen aus.
Trotzdem sollte man bei solch großen Distanzen lieber auf Richtfunkgeräte setzen. Das sind prinzipiell auch nur Access Points, die aber outdoorfähig sind und deren Antennen und Sendeleistungen für ebendiesen Einsatz gemacht sind. Während normale WLAN-Router/APs ihr Signal nämlich in 360° abstrahlen, haben Richtfunkgeräte einen deutlich geringeren Öffnungswinkel (wir setzen oft Richtfunkgeräte mit ca. 40° Öffnungswinkel ein). Dadurch können Richtfunkgeräte sich sogar über ein paar Kilometer miteinander verbinden. Außerdem ist die Firmware der Richtfunkgeräte bereits dafür ausgelegt, dass sich die Richtfunkgeräte untereinander verbinden (was normale WLAN-Router ohne Freifunk-Firmware nicht machen würden).
Außerdem beherrschen 5 GHz Richtfunkgeräte die dynamische Frequenzwahl (DFS). Das 5 GHz-Band wird nämlich auch von Wetterradarsystemen genutzt und wenn erkannt wird, dass eine Wetterstation auf demselben Kanal funkt, muss der WLAN-AP den Kanal wechseln. Bei Richtfunkgeräten wechseln dann alle Geräte gleichzeitig den Kanal. Um DFS bei Freifunk-Routern zu nutzen, muss man den Outdoor-Modus aktivieren. Da für das Meshing aber ein fester Kanal benötigt wird, wird dadurch auch die Mesh-Funktionalität deaktiviert.
An einem Standort lassen sich übrigens auch mehrere Richtfunkgeräte verwenden, um mehrere weitere Standorte zu versorgen.
Bei größeren Installationen können übrigens an einen Router zusätzlich Access Points angeschlossen werden, um die Abdeckung zu erhöhen. Diese APs haben dann normalerweise keine Freifunk-Firmware installiert, bekommen aber vom Freifunk-Router ein Client-Netz, das sie ausstrahlen. Diese Idee beschränkt sich nicht nur auf Richtfunknetze.
Die Konfiguration eines Richtfunkgeräts funktioniert bei jedem Hersteller anders. Trotzdem gibt es ein paar wesentliche Dinge, die man immer machen muss - und mit ein bisschen Glück muss man auch nicht unbedingt noch mehr machen.
Zuerst ein mal muss man einstellen, ob es sich um eine Station oder einen Access Point handelt. Das Gerät, das am „Hauptstandort“ aufgestellt wird, sollte man als AP konfigurieren, während die andere bzw. die anderen Geräte als Stations konfiguriert werden sollten. Aktiviert man Point-to-Multipoint, so können sich nämlich mehrere Stations mit einem AP verbinden.
Da Richtfunkgeräte quasi ganz normale WLAN-Netze verwenden, muss man außerdem eine SSID (den Namen des WLANs) festlegen. Dieser muss auf allen Geräten, die sich miteinander verbinden sollen, gleich sein, da sie sich ja mit dem selben WLAN verbinden sollen.
Ebenso muss noch ein WPA-Passwort festgelegt werden. Damit werden die Daten vor der Übertragung verschlüsselt. Außerdem können nur Geräte, die das Passwort kennen, dem WLAN beitreten. Deswegen sollte man unbedingt ein sehr starkes Passwort wählen.
Damit die Geräte wissen, welche Frequenzen sie verwenden dürfen, muss man außerdem das Land wählen, in dem man die Geräte aufstellt.
Ggf. muss man noch einstellen, dass die Geräte als Bridge fungieren sollen - das heißt, dass sie die zwei Standorte einfach miteinander verbindet, so als wäre die Funkverbindung ein ganz normales Kabel.
Damit man das Gerät auch noch konfigurieren kann, wenn es bereits im Netz eingebaut ist, muss man außerdem eine statische Management IP-Adresse festlegen. Dazu aber später mehr.
Wenn man sich für Richtfunkgeräte entschieden hat, stellt sich immer noch die Frage, was für ein Netz die Geräte eigentlich übertragen sollen. Grundsätzlich gibt es drei Ziele:
Zum ersten Punkt hier noch eine Anmerkung: Wenn ein Angreifer an einem der Standorte physikalischen Zugriff zu den Richtfunkgeräten kriegt, kann er sich einfach mit einem Kabel mit dem Richtfunkgerät verbinden und er hätte somit Zugriff auf alle Netzwerke, die über die Richtfunkgeräte übertragen werden. Man sollte solche Netze deswegen immer als kompromittiert betrachten und alle Geräte bestmöglich absichern.
Hier werden nun zwei Möglichkeiten erläutert.
Die wohl einfachste Möglichkeit wäre, einfach das eigene Heimnetz, von dem aus das Internet zu erreichen wäre, zu übertragen. An jedem Standort würde man dann einen Freifunk-Router aufstellen, den man mit dem „Internet“ bzw. mit dem Heimnetz verbindet und die Router bauen dann selbst Mesh-VPN-Verbindungen zu den Gateways auf.
Schauen wir uns also die Bewertung der oben genannten Punkte an:
Dazu kommt noch, dass man hier nicht wirklich das eigene Heimnetz versenden sollte, da ein Angreifer sonst möglicherweise Zugriff auf dieses erlangen könnte (siehe die obige Ergänzung zum ersten Punkt).
Insgesamt ist diese Option also recht ungeeignet.
Über die Richtfunkstrecken wird ein Mesh-Netz übertragen. Dazu steht ein Freifunk-Router am Hauptstandort, bei dem Mesh-On-LAN aktiviert ist. An den weiteren Standorten werden ebenfalls Router aufgestellt, bei denen dann Mesh-on-WAN aktiviert ist.
Hier wieder der Bewertung der drei Kriterien:
Auch wenn es vielleicht nicht so scheint, ist die zweite Möglichkeit deutlich besser. Auch, weil man hier nicht direkt sein Heimnetz über die Richtfunkgeräte verteilt - ein Angreifer hat hier erst mal nur Zugriff auf das Mesh-Netz, was ihm nicht viel bringt. Im folgenden wird der zweite Ansatz weiter ausgebaut.
Ausgangspunkt ist der zweite Ansatz, der oben diskutiert wurde.
Erst mal sollte gesagt werden, dass Netzwerkgeräte, wie Richtfunkgeräte und Switches, konfigurierbar sind (nicht alle Switches sind konfigurierbar). Um sie zu konfigurieren, kann man ihre Netzwerkoberfläche öffnen oder sich per SSH Zugriff verschaffen, so wie man es auch von normalen Routern kennt. Normalerweise hängt man aber direkt an dem Router dran, den man konfigurieren will und dieser hat dann meist die IP-Adresse 192.168.0.1
. Wenn man aber ein Netzwerk mit mehreren solcher Geräte hat, benötigt jedes Gerät eine eigene Adresse. Das kann man in der Netzwerkoberfläche umstellen - dort wird oft von einer Management-IP-Adresse gesprochen.
Um die Netzwerkgeräte erreichen zu können, wird nun ein zusätzlich ein zweites Netz übertragen. Ein Netzwerk muss nicht extra „erzeugt“ werden - wenn man die Management-IP eines Geräts festlegt, dann hört es einfach auf dieser IP-Adresse. Man muss sich nur darum kümmern, das zwischen allen Geräten eines Netzwerks auch tatsächlich eine physikalische Verbindung besteht. Dazu sollten VLANs verwendet werden (ohne VLANs würde es theoretisch auch gehen, allerdings müsste man dann sichergehen, dass die IP-Subnetze sich nicht überschneiden). Es empfiehlt sich, das Management-Netz auf VLAN „1“ zu betreiben, da möglicherweise nicht alle Netzwerkgeräte das Ändern des Management-VLANs ermöglichen.
Da VLAN 1 nun für das Management-Netz benutzt wird, muss das Mesh-Netz auf einem anderen VLAN geführt werden. Standardmäßig hören Freifunk-Router aber nur auf VLAN 1. Hier hat man nun zwei Möglichkeiten: Entweder, man schreibt die Netzwerkkonfiguration von Hand so um, dass das Mesh-Netz auf einem anderen VLAN betrieben wird, oder aber, man schaltet vor den Freifunk-Router einen Switch, der die VLAN IDs für den Router extra hinzufügt oder entfernt (für vom Router ausgehende/an den Router eingehende Pakete). Da ein Switch sowieso für viele Dinge nützlich ist, wird hier die zweite Variante erklärt.
Um nun von „zu Hause aus“ auch in das Management-Netz zu kommen, benötigt man noch einen weiteren Switch, der eben zu Hause steht und die VLANs auf verschiedene Ports auftrennt. Dann kann man an diesen Switch einen Computer anschließen, bei dem man auch eine passende IP konfiguriert und von dem aus dann die anderen Geräte im Management-Netz erreichbar sind.
Um das Diagramm einfach zu halten (und damit ich nicht so viel malen muss) wird der dritte Standort hier weggelassen.
Wenn man den Switches im obigen Beispiel ebenfalls eine Management-IP-Adresse im Management-Netz gibt, so kann man diese ebenfalls aus dem Management-Netz erreichen.
In unserem Richtfunk-Netz in Mössingen ist der Freifunk-Router an Standort 1 übrigens eine VM auf einem dedizierten Offloader. Auf diesem Offloader läuft außerdem noch eine zweite VM, der Management Host, mit dem man sich mit einem Wireguard-VPN verbinden kann. Dadurch kann man sich von überall aus mit dem Management-Netz verbinden. Da der Offloader nicht beliebig viele Netzwerkanschlüsse haben kann, muss auf dem Offloader die VLANs manuell konfigurieren. Das Setup sieht dann ungefähr so aus:
Um weitere Internetanschlüsse einzubinden, ist es notwendig, die Netzwerkkonfiguration des Freifunk-Routers von Hand zu ändern - ansonsten kann man nicht Internet, Mesh und Client-Netz gleichzeitig an einem Freifunk-Router haben. Abgesehen von diesen Änderungen sind aber keine weiteren Umstellungen nötig. Wie genau das Konfigurieren funktioniert, wird hier (vorerst) nicht erklärt. Die APs sind hier übrigens nur extra eingezeichnet, weil wegen ihnen erst die kompliziertere Netzwerkkonfiguration nötig wird - bei den vorherigen Szenarien hätte man aber auch problemlos APs an die LAN-Ports der jeweiligen Router anschließen können, solange eben kein Mesh-on-LAN aktiviert ist.
Die meisten APs und Richtfunkgeräte werden mit Power-over-Ethernet (PoE) betrieben. Dabei wird der Strom, den das Gerät für den Betrieb benötigt, über das LAN-Kabel geleitet. Vorteil ist, dass man nur ein Kabel zu den Geräten braucht.
Auf der anderen Seite braucht man dafür aber natürlich ein Netzteil, das den Strom liefert. Damit man nicht für jedes Gerät einen eigenen PoE-Injektor benötigt, kann man einen PoE-Switch benutzen. Das ist ein Switch, der auf seinen Ports einfach PoE liefern kann. Generell muss man bei PoE nur darauf achten, dass die Spannung stimmt und das der Switch oder der Injektor die nötige Leistung für alle Geräte hat.
Hier ist ein Beispielaufbau, bei dem ein PoE-Switch verwendet wird.
Wie man sieht, spart man sich dabei zwar die PoE-Injektoren, aber es werden mehr Kabelverbindungen über den Switch gebraucht, was auch viele Ports an diesem belegt.
Dieser Abschnitt basiert auf einer Anleitung von Freifunk Stuttgart.
Mit Richtfunkgeräten lassen sich nicht nur zwei Standorte miteinander verbinden. Man kann auch eine Verbindung von Standort A zu B und eine von B zu C errichten. Das bringt aber ein paar Probleme mit sich, die nicht ganz so leicht zu lösen sind.
Das erste Problem ist, dass man an einem Standort, an dem es nur ein Richtfunkgerät gibt, normalerweise Mesh-on-WAN verwendet, damit man auf den LAN-Ports noch das Client-Netz verwenden kann. Möchte man aber zwei oder mehr Richtfunkgeräte verwenden, braucht man auch mehr als einen Port mit Mesh-Netz. Ein Workaround wäre es, hier Mesh-on-LAN zu verwenden, um alle Richtfunkgeräte anzubinden und um zusätzlich einen weiteren Router anzuschließen, auf dem Mesh-on-WAN aktiviert ist, um noch Geräte mit Client-Netz zu versorgen. Das sähe dann ungefähr so aus:
Abgesehen davon, dass man jetzt, zwei Router verwendet, hat man noch ein weiteres Problem: Das batman-adv Mesh-Protokoll arbeitet auf Layer 2 - d.h. es schickt seine Pakete, mit denen es andere Mesh-Geräte findet, nicht an eine bestimmte IP-Adresse, sondern einfach an alle Geräte im selben Netzwerk. Da in einem Router auf den LAN-Ports standardmäßig geswitched wird, sieht die Netzwerktopologie auf Layer 2 - also aus Sicht von batman-adv - wie folgt aus:
Die Router/Offloader glauben also alle, sie seien direkt - also ohne einen Freifunk-Router dazwischen - miteinander verbunden. Dass das so ist, kann man dann übrigens auch auf der Karte beobachten - dort ist zwischen allen beteiligten Routern eine Verbindung eingezeichnet. Das ist schlecht, denn batman-adv ist dafür verantwortlich, die beste Route für die Pakete zu wählen. Da mit jedem Hop - so nennt man einen Router zwischen dem eigenen Router und dem Ziel - das Risiko eines Paketverlusts und die Latenz (also die Zeit, die ein Paket braucht, bis es am Ziel ist) schlechter werden, sollten möglichst kurze Routen gewählt werden. Wenn batman die Hops aber nicht sieht, wählt es möglicherweise schlechte Routen.
Außerdem hat das ganze ein weiteres Problem: Würde man - direkt oder indirekt - Standort 3 wieder mit Standort 1 verbinden, so hätte man eine Schleife gebaut. Diese werden möglicherweise nicht erkannt und dadurch legt man unter Umständen sein ganzes Netzwerk lahm.
Übrigens: Im obigen Ansatz könnte man an Standort 2 auch gleich nur einen Router anschließen, an dem man Mesh-on-WAN aktiviert. Vor den WAN-Anschluss würde man dann einen Switch anschließen, an den alle Richtfunkgeräte angeschlossen werden. Das Endergebnis wäre dasselbe wie oben, nur dass man statt eines Freifunk-Routers einen Switch verwendet hat.
Achtung! Diese erste Lösung haben wir nicht ausprobiert.
Eine Möglichkeit zur Lösung des Mesh-Problems ist die Verwendung von Mesh-on-LAN und Mesh-on-WAN gleichzeitig. An einem der zwei Standorte, die man miteinander verbinden möchte, muss dann ein Freifunk-Router stehen, der z.B. mit dem WAN-Port an der Richtfunk-verbindung hängt und mit dem LAN-Port am Rest des Standorts. Zwischen den LAN-Ports und dem WAN-Ports wird nicht geswitched, also glaubt batman auch nicht, es hätte eine direkte Verbindung mit den anderen Standorten. Um ein Client-Netz zu erzeugen, bräuchte man dann allerdings einen weiteren Router.
Standort 3 könnte in diesem Beispiel genauso aussehen wie auch Standort 2, falls man die Richtfunkverbindung noch weiter spannen möchte. Theoretisch könnte man auch weitere Router an einem Standort aufstellen, um Verzweigungen (das anschließen an mehr als zwei Richtfunkgeräte) zu ermöglichen.
Der Vorteil dieser Lösung ist, dass sie ohne besondere Konfigurationen möglich ist. Somit gibt es auch nichts, was bei einem Firmware-Update kaputt gehen kann. Der Nachteil ist natürlich, dass man mehr Geräte braucht. Wenn man beim Erstellen von Verzweigungen nicht aufpasst, kann die Topologie für batman auch seltsam aussehen und das Routing ist dann unter Umständen nicht optimal.
Anstatt zusätzliche Router aufzustellen, kann man den Router auch so konfigurieren, dass er auf den LAN-Ports nicht mehr switcht. Man erstellt dann pro Richtfunkverbindung ein VLAN, welches auf dem Router nur mit einem Port und mit der „CPU“ verbunden ist - Pakete, die an die CPU gehen, können von batman verarbeitet werden. Pakete, die bei der CPU ankommen und an einen anderen Router gehen sollen, werden dann auch über das passende VLAN wieder rausgeschickt.
Für diese Lösung muss man allerdings die Netzwerkkonfiguration umschreiben, was nicht unbedingt updatefest ist. Wie genau das gehen kann, kann man in dem oben verlinkten Artikel von Freifunk Stuttgart nachlesen. Der Vorteil ist aber, dass die Topologie dann auf jeden Fall korrekt ist. Außerdem benötigt man nur einen Router pro Standort - denn wenn man schon an der Netzwerkkonfiguration arbeitet, kann man auch die besagten VLANs und gleichzeitig Ports mit Client-Netz konfigurieren. Man kann übrigens auch mehrere VLANs und Netze auf einen Port legen - man sollte sich nur bewusst sein, dass dadurch dann ein Flaschenhals für die Bandbreite entsteht.
Hier mal ein Beispiel dazu:
An Standort 2 sind mehrere Richtfunkgeräte vorhanden. Deswegen sind auf dem Router auch mehrere VLANs für Mesh-Interfaces konfiguriert. An den anderen Standorten sind die Router auch umkonfiguriert, damit sie das Mesh-Netz auf einem anderen VLAN empfangen. Normalerweise würden wir an solchen Standorten mit nur einer Richtfunkstrecke lieber noch einen Switch aufstellen, der das VLAN vorher entfernt/anbringt, damit man den Router zumindest dort nicht umkonfigurieren muss. An allen Ports mit einer „1“ kann man nun APs anschließen (die 1 ist das standard-VLAN für alle Ports mit Client-Netz. Bei den bisherigen Beispielen war das nicht explizit eingezeichnet. Man kann das Client-Netz auch mit einer anderen Nummer versehen und zusammen mit den Mesh-Interfaces getagged auf einen gemeinsamen Port legen, falls man das unbedingt möchte - das spart Kabel/Ports, ist aber möglicherweise etwas komplizierter zu konfigurieren).