Architektur
Hinweis: Jans Seite zur Architektur im FF-Netz - WIP. Bitte NICHT ändern.
Freifunk-KBU verolgt die Komplettes Bridging-Strategie: Fastd-Server verbinden als Super-Nodes WLAN-Mesh-Partionen. IP-Adressen werden per DHCP und radvd vergeben. Ein routed Backbone-VPN (tinc) verbindet die Supernodes und ermöglicht Routing zum Exit.
Einleitung
Dieser Artikel beschreibt die Architektur des in Köln, Bonn und Umgebung verwendeten Freifunk-Netzes. Dabei wird insbesondere auf die Zusammenhänge zwischen Server-Konfiguration und Firmware-Eigeschaften eingegangen. Diese Wiki-Seite beschreibt die Konfigration jedoch nur aus Architektur-Sicht - sie ist nicht nicht Bestandteil der Server-Dokumentation.
Im Rahmen der Einleitung wird die verwendete Stratgie (komplettes Briding) dargelegt. Die folgenden Absätze (OSI-2: Briding, OSI-3: Routing) gehen detailliert auf die verschiedenen Schichten des Netzes ein. Der letzte Absatz gibt einen Ausblick auf mögliche Änderung, die in Zukunft einziehen können.
Strategie
Das Netz wird als hierachisches P2P-Netz betrieben. Es besteht aus Nodes und Super-Nodes. Die verwendete Komplettes Bridging Stratgie sieht vor, dass das komplette Netz ein einziges zusammehängendes OSI-2 Segment bildet. Dieses Segment verbindet alle Klienten, Nodes und Server. Dadurch sind je 2 Klienten in verschiedenen Teilen des Netzes immer über eine zu Grunde liegende Infrastruktur via "Ethernet" (nach IEEE 802-Substandards) miteinander verbunden. Für die Infrastruktur selbst wird batman-adv (http://www.open-mesh.org/) verwendet. Somit:
Daten zwischen Netzteilnehmer werden als Frames switched, das Netz bildet eine große Broadcast-/Link-Local-Multicast-Domäne.
Implementierung: Super-Nodes
Super-Nodes (auch: fastd-Server) sind Nodes, die VPN-Verbindungen von Nodes entgegen nehmen. Ein Super-Node ist im Internet erreichbar, d.h. Nodes können VPN-Verbindungen dorthin initiieren, auch wenn sie sich z.B. hinter einem NAT befinden. Super-Nodes verfügen über eine gute Internet-Anbindung (100MBit/s up/down). Jeder Node hält typischerweise VPN-Verbindungen zu zwei verschiedenen Super-Nodes. Adressen und VPN-Schlüssel der Super-Nodes sind fest in der Node-Firmware verdrahtet.
Super-Nodes werden typischerweise auf dedizierten Servern ohne WLAN-Konnektivität betrieben. Abb. 1 zeigt die Kommunikation zwischen Klienten, Nodes und Super-Nodes. Die Nodes A, B und C sind mit den Super-Nodes fastd1 und fastd2 verbunden. Über die eingezeichneten Verbindungen werden batman-adv Frames versendet. Der Klient ist im Infrastruktur-Netz an Node A eingebucht - es werden gewöhnliche Wireless-Lan-Frames verwendet. (kein batman-adv)
Implementierung: Nodes
Auf den Nodes existieren verschiedene Netze, die teilweise mit einander verbunden sind (Abb. 2). Jeder Node spannt dabei zwei Wireless-Lan-Netze auf und ggf. eine VPN-Verbindung auf. .
- wlan0 wird als "Master"-Netz mit SSID kbu.freifunk.net betrieben. Für Klienten erscheint es als normaler Accesspoint.
- wlan1 arbeitet als "Ad-Hoc"-Netz mit ESSID und BSSID: 02:d1:11:37:fc:39. Es ermöglicht die direkte Kommunikation zwischen verschiedenen Nodes.
- tap0 ist das VPN-Interface. Verfügt ein Node über einen drahtgebundenen Zugang zum Internet, so baut er eine VPN-Verbindung auf.
wlan1 und tap0 sind hierbei dem bat0 Interface hinzugefügt. Somit werden in beiden Netzen (ad-hoc, VPN) batman-adv-Frames anstelle gewöhnlicher Ethernet-Frames übermittelt. Alle Stationen in diesen Netzen müssen daher die gleiche batman-adv Protokollversion zur Kommunikation verwenden. Ethernet-Frames nach IEEE 802 können nicht verwendet werden. bat0 und wlan0 sind über die Bridge br0 verbunden - hierdurch werden batman-adv und gewöhnliche Stationen zu einem Segment zusammen gefasst.
Hinweis: Aus technischen Gründen (u.a. vlan-Fähigkeit einzelner Geräte), weichen Interface-Namen in der Node-Firmware z.T. ab.
OSI-2: Data-Link-Layer
Die komplettes Bridging Strategie sieht vor, dass alle Stationen zu einem OSI-2 Segment zusammen gefasst werden. Hierbei werden LAN, WLAN und VPN-Verbindungen via bridging verbunden. In diesem Absatz wird die Konfigration der verschiedenen Komponenten des Segements erläutert
WLAN
Ad-Hoc
Infrastruktur
VPN
LAN
OSI-3: IP-Adressierung / Routing
Zur Kommunikation im Freifunk-Netz und mit weiteren Netzen ist es erforderlich, IP-Adressen zu Vergeben und Pakete in andere Netze zu routen. Dieser Absatz beschreibt die verwendete Adressierungs und Routing-Strategien im Freifunk-Netz. Hierbei wird insbesondere auf das Backbon-VPN (Tinc) und auf die Konfigration der Super-Nodes eingangen.
Adressbereiche
Im OSI-2 Segment werden die folgenden Adressen verwendet:
- 172.27.0.0/18 - 172.27.0.0 bis 172.63.255.255, Subnet-Mask: 255.255.192.0
- 2001:67c:20a0:b102::/64
- fdd3:5d16:b5dd::/64
- fdd3:5d16:b5dd:1::/64
<todo> (TODO: Implementierung in der Firmware ausstehend).
Nodes verwenden im Uplink-Netz zusätzlich den ULA-Bereich
- fdd3:5d16:b5dd:1::/64
Jeder Node kann über seine Public-IPv6, ULA-IPv6, Link-Local-IPv6 Adressen und die IPv4-Adresse seines WAN-Uplink-Netzes erreicht werden. Jedem Node wird dadurch eine eindeutige Adresse aus fdd3:5d16:b5dd::/64 zugewiesen, die aus allen Netzen - mit denen er verbunden ist erreicht werden kann
Gleichzeitig verwendet jeder Node die anycast-Adresse 172.27.0.255, die nur aus dem Infrastruktur-Netz erreichbar ist. Hierdurch kann ein Client explizit abfragen, mit welchem Node er verbunden ist. </todo>
Konfiguration Super-Nodes
Jeder Super-Node betreibt einen DHCPv4-Server, mit dem er die Konfiguration für die Klienten ausliefert. Gleichzeitig betreibt er einen DNS-Cache - optional ist der Betrieb eines transparenten HTTP-Proxies denkbar.
IPv4 / DHCP
Die Planung sieht 8 Super-Nodes für das FF-KBU vor, auf denen DHCP-Server betrieben werden.
IPv4-Adressen und DHCP-Ranges können wie folgt aufgeteilt werden:
Name | Zugewiesenes Subnet | IP | DHCP-Range |
---|---|---|---|
fastd1 | 172.27.0.0/21 | 172.27.0.3 | 172.27.0.10 - 172.27.7.254 |
fastd3 | 172.27.8.0/21 | 172.27.8.1 | 172.27.8.10 - 172.27.15.254 |
fastd4 | 172.27.16.0/21 | 172.27.16.1 | 172.27.16.10 - 172.27.23.254 |
fastd5 | 172.27.24.0/21 | 172.27.24.1 | 172.27.24.10 - 172.27.31.254 |
fastd6 | 172.27.32.0/21 | 172.27.32.1 | 172.27.32.10 - 172.27.39.254 |
fastd7 | 172.27.40.0/21 | 172.27.40.1 | 172.27.40.10 - 172.27.47.254 |
fastd8 | 172.27.48.0/21 | 172.27.48.1 | 172.27.48.10 - 172.27.55.254 |
fastd2 | 172.27.56.0/21 | 172.27.56.1 | 172.27.56.10 - 172.27.63.254 |
Konfiguration Nodes
IPv6 / RADVD
Hinweis: Aktell nicht so umgesetzt - Tinc in Squeeze hat da afair Probleme TODO: Umsetzen. Super-Nodes betreiben radvd-Server im Adressbereich 2001:67c:20a0:b102::/64 und annoncen sich selbst als Router