Handbuch
Dies ist das Handbuch des Freifunk Rheinland. Hier sollen Anleitungen und Referenzen für den Aufbau und Betrieb unseres Netzwerks möglichst vollständig dokumentiert werden.
Autoren:
- nomaster
Einführung
Freifunk ist eine Community und eine Technologie.
Die Community baut ein gemeinsames Rechnernetz auf, das frei zugänglich und erweiterbar sein soll. Sie organisiert sich in einer großen Meta-Community und verschiedenen Communities vor Ort. Die einzelnen Communities sind autonom und bauen eigene Netzwerke auf.
Die Technologie besteht im wesentlichen aus handelsüblchen WLAN Access Points, die mit einer alternativen Software umfunktioniert wurden. Die Software besteht aus einem spezialisierten Betriebssystem für Router (OpenWRT) und zusätzlichen, vorkonfigurierten Komponenten. Die Communities verwenden ausschließlich Freie Software in unterschiedlicher Zusammenstellung und Konfiguration. Für die unterstützten Geräte geben Communities passende Images heraus.
In diesem Handbuch beschreiben wir die Technik derjenigen Communities, die im Freifunk Rheinland organisiert sind.
Nodes und Super-Nodes
Das Freifunk-Netzwerk besteht aus sogenannten Nodes. Eine Node ist ein Computer, der über seine Netzwerkschnittstellen mit anderen Nodes verbunden ist. Das findet nicht unbedingt hierarchisch in einem Baum statt, sondern es werden alle Nodes zu ihren Nachbarn verbunden. Das nennt man Mesh-Netzwerk. An die Nodes sind außerdem Clients verbunden. Clients sind vor allem Computer, die von Menschen bedient werden; aber auch die Nodes selber, insofern von ihnen Dienste im Freifunk-Netzwerk angeboten werden. Der meistgenutzte Dienst ist das Routing ins (restliche) Internet.
Über das Mesh-Netzwerk kommunizieren die Nodes untereinander darüber, welche Nachbarn sie sehen können und welche Clients an sie angebunden sind. Dafür verwenden wir eine spezielle Software namens B.A.T.M.A.N.. Dieses lustige Akronym steht für "Better approach to mobile ad-hoc networking". B.A.T.M.A.N. verwendet ein eigenes Protokoll, um diese Informationen im Netzwerk zu verbreiten und möglichst schnell zu aktualisieren. Denn unser Netzwerk ändert sich ständig: zum Beispiel werden Nodes hinzugefügt, Clients bewegen sich hin- und her und Verbindungen durch die Luft werden gestört. Daher nennt sich das mobiles Netzwerk. Ein mobiles Netzwerk aufzubauen, ist eine Aufgabe für findige Techniker und Gegenstand aktueller Forschung. Daher aktualisieren wir häufig die Software oder ändern den Aufbau unserer Verbindungen.
Das Hinzufügen einer Node bedarf keinerlei Konfiguration auf dieser oder anderen Nodes. Sie meldet sich selbstständig an und wird automatisch in das Netzwerk aufgenommen. Daher kann jederzeit jemand eine Node hinzufügen und das Netzwerk erweitert sich. Verbindungen zwischen den Nodes kommen über drei Medien zustande:
- WLAN
- Ethernet
- Tunnel
Eine Node macht zwei WLAN-Verbindungen auf: eine im ad-hoc-Modus, um sich zu anderen Nodes zu verbinden und eine im Access Point-Modus um Clients anzubinden. Für den ad-hoc-Modus verwenden wir SSIDs, die mit wifimesh beginnen. Außerdem können sich zwei Nodes über Ethernet verbinden, also über Netzwerkkabel. Das hat natürlich große Vorteile, was Bandbreite und Qualität der Verbindung angeht. Jedoch ist es rechtlich nicht gestattet, ohne Genehmigung Kabel über Grundstücksgrenzen zu verlegen. Für die Verbindung zweier Nodes benutzen wir daher WLAN. Teilweise kommen hier spezielle Antennen zum Einsatz, die die Verbindung optimieren.
Über WLAN und Ethernet lassen sich Nodes verbinden, die räumlich in der Nähe zueinander liegen. Diese bilden eine sogenannte Wolke. Über größere Distanzen, zum Beispiel zwischen zwei Stadtteilen ist das nur mit großen Aufwand möglich. Richtfunk ist hier eine gangbare Technik. Um alle Wolken effizient miteinander zu vernetzen, benutzen wir aber immer auch Tunnel. Das bedeutet, dass über vorhandene DSL- oder Kabelmodems ein regulärer Internetzugang dazu verwendet wird. Über diesen bauen Nodes Verbindungen untereinander auf. Diese verschlüsseln wir, um Privatsphäre zu wahren und um den Eingriff in unseren Datenverkehr zu erschweren, wie er beispielsweise bei Drosselung vorgenommen wird.
Da in den meisten Fällen Nodes nicht Tunnelverbindungen untereinander aufbauen können, weil sie hinter Firewalls sitzen oder nicht global gültige IP-Adressen zugewiesen bekommen, betreiben wir Super-Nodes. Super-Nodes sind genau so Computer mit Linux und B.A.T.M.A.N., jedoch keine umfunktioierten WLAN-Access Points, sondern Server in Rechenzentren. Denn dort haben sie genug Bandbreite und eine optimale Umgebung, in der sie fast immer erreichbar sind. Um die Erreichbarkeit zu verbessern und zu verhindern, dass durch den Ausfall einzelner Geräte unser Netz ausfällt, betreibt der Verein mehrere Super-Nodes.
Die Super-Nodes verbinden also die Wolken untereinander. Außerdem haben sie die Aufgabe, Datenpakete aus der Community heraus und in diese hinein zu routen. Diese gehen entweder ins "normale" Internet (Default Routing) oder zu anderen Freifunk-Communities außerhalb des Rheinlands (Intercity VPN). Um eine Super-Node zu betreiben, sind Kenntnisse über Rechnernetze und Bedienung eines Linux-Rechners per Text-Shell notwendig. Wer sich das zutraut, bekommt vom Verein die Zugangsdaten für die Super-Nodes seiner Community und ist dann Admin.
Domäne
Die Nodes und Super-Nodes bilden ein lokales Netzwerk (LAN). Das nennen wir eine Domäne. Alle Clients einer Domäne hängen am Netzwerk, als ob sie an einen Switch eingesteckt sind. Also fast genau so, wie man es von zu Hause oder in einem Büro hat. Ein bisschen filtern müssen wir jedoch, um zu verhindern, dass die Anbindung der Wolken mit unnötigem Datenverkehr verstopft wird. Dabei möchten wir nicht weitesgehend die Netzneutralität wahren und filtern nur das, was ohnehin nicht über eine Internetverbidung weitergeleitet würde.
Damit kleine Communities nicht in Schwierigkeiten kommen, weil sie keinen Admin finden und ihnen der Aufbau eines neuen Standorts erleichtert wird, können sie sich einfach an eine Domäne ihrer Wahl anschließen. Durch den offenen Aufbau des Netzwerks benötigen sie hierfür zwar keine Genehmigung, aber wir hoffen, dass sich Ansprechpartner selbstständig auf den Mailinglisten anmelden und das Wiki pflegen.