Die L3 Transition von Freifunk Franken KNF-Kongress 2015 Tim Niemeyer <[email protected]> https://github.com/RedDog99/vortrag-knf.git f7ec013 22.11.2015 Freifunk Grundlagen Stand von heute Mögliche Lösungen Inhalt 1 Freifunk 2 Grundlagen 3 Stand von heute 4 Mögliche Lösungen 22.11.2015 Die L3 Transition von Freifunk Franken 1/31 Freifunk Grundlagen Stand von heute Mögliche Lösungen Freifunk 22.11.2015 Die L3 Transition von Freifunk Franken 2/31 Freifunk Grundlagen Stand von heute Mögliche Lösungen Freifunk • Offenes WLAN • Wireless-Adhoc-Mesh Netzwerk • Lokaler Ableger der Freifunk-Bewegung (freifunk.net) • Nicht-kommerzielle Initiative für freie Funknetzwerke → Bürger investieren in Eigenregie Zeit, Geld und Enthusiasmus • Mehr als kostenloses Internet“: ” • Unabhängiges / dezentrales Netz • Internet Technologie beim Bürger → Freies Netzwerken • (Irgendwann mal Teil vom Internet?) 22.11.2015 Die L3 Transition von Freifunk Franken 3/31 Freifunk Grundlagen Stand von heute Mögliche Lösungen Das braucht man • Einen günstigen, unterstützten Router (ab ca. 17C) • Eine spezielle Firmware • Die Zustimmung zum Pico-Peering Agreement“ 1 : ” 1 Freier Transit 2 Offene Kommunikation 3 Keine Garantie (Haftungsausschluss) 4 Nutzungsbestimmungen 5 Lokale (individuelle) Zusätze 1 Regelwerk, über grundsätzliche Eigenschaften des Freifunks 22.11.2015 Die L3 Transition von Freifunk Franken 4/31 Freifunk Grundlagen Stand von heute Mögliche Lösungen Grundlagen 22.11.2015 Die L3 Transition von Freifunk Franken 5/31 Freifunk Grundlagen Stand von heute Mögliche Lösungen Ein typisches Freifunk Netz • Ein Batman-Adv Netz → ”Wie ein großer dezentraler Switch” • VPN (fastd) für die Funkinseln • Multi-Client zu Multi-Client VPN • Kein internes Routing • Kein Forwarding • Layer-II Netz • Mehrere VPN Server / Gateway • DHCP • DNS Namensauflösung • Gateway zum Internet / ICVPN • z. B. mittels Policy-based routing • Monitoring • Karte aller Knoten 22.11.2015 Die L3 Transition von Freifunk Franken 6/31 Freifunk Grundlagen Stand von heute Mögliche Lösungen Freifunk Router (aussen) • Client-Ports & Infrastructure Funknetz: Wie ein großer Switch • Batman-Ports & Ad-Hoc Funknetz: Mesh-Netz • WAN-Ports: VPN Netz } } LAN BATMAN WAN } } } } LAN BATMAN LAN BATMAN WAN WAN } } LAN BATMAN 22.11.2015 WAN Die L3 Transition von Freifunk Franken 7/31 Freifunk Grundlagen Stand von heute Mögliche Lösungen Freifunk Router (innen) • OpenWrt • Batman-Adv • Fastd Client • Monitoring Daten (Nodewatcher / Alfred) • .. kleinere Tools / Configs / Skripte Bridge B.A.T.M.A.N Managed Ad-Hoc WiFi 22.11.2015 VPN WAN Client-VLan Node-VLan LAN1 LAN2 Die L3 Transition von Freifunk Franken LAN3 LAN4 8/31 Freifunk Grundlagen Stand von heute Mögliche Lösungen Ein typisches Freifunk Netz VPN Tunnel Batman Internet 22.11.2015 ICVPN Die L3 Transition von Freifunk Franken 9/31 Freifunk Grundlagen Stand von heute Mögliche Lösungen Unser grobes Ziel Hood A Hood B } } WAN LAN BATMAN WAN VPN Tunnel Batman } } LAN BATMAN WAN LAN BATMAN WAN Hood C LAN BATMAN } } } } LAN BATMAN WAN } } } } LAN BATMAN WAN VPN Tunnel Batman WAN Layer 3 Verbindungen Internet WAN LAN BATMAN } } LAN BATMAN LAN BATMAN } } WAN } } } } LAN BATMAN WAN ICVPN • Mehrere Layer-2 Inseln (Hoods) • Verbindung per Layer-3 • Dezentrale Gateways 22.11.2015 Die L3 Transition von Freifunk Franken 10/31 Freifunk Grundlagen Stand von heute Mögliche Lösungen Stand von heute 22.11.2015 Die L3 Transition von Freifunk Franken 11/31 Freifunk Grundlagen Stand von heute Mögliche Lösungen Freifunk Knoten • Ziel: Ohne Konfiguration • Keine DHCP Ranges • LAN Ports vorkonfiguriert • Ausnahme: Passwort für root Login • Hat nur eine Link-Local IPv6 Adresse • Nur SSH Zugang → Kein Webinterface • Batman-Adv 2013 (!) 22.11.2015 Die L3 Transition von Freifunk Franken 12/31 Freifunk Grundlagen Stand von heute Mögliche Lösungen Knoten VPN • Verwendetes VPN: fastd • Wir nutzen keine Verschlüsselung (! :-O) • Script zum Austausch der VPN Peers über den KeyXchange 22.11.2015 Die L3 Transition von Freifunk Franken 13/31 Freifunk Grundlagen Stand von heute Mögliche Lösungen VPN-KeyXchange • Zentrale Webseite • Knoten meldet sich beim VPN-KeyXchange an • Knoten lädt Liste mit Peers • Knoten Identifizierung über MAC, alternativ über Name 22.11.2015 Die L3 Transition von Freifunk Franken 14/31 Freifunk Grundlagen Stand von heute Mögliche Lösungen VPN-KeyXchange • Zentrale Webseite • Knoten meldet sich beim VPN-KeyXchange an • Knoten lädt Liste mit Peers • Knoten Identifizierung über MAC, alternativ über Name • Aufteilung in ,,hood”s: • Die Hood, welche am nächsten dran ist (voronoi) wird zugewiesen • Standort des Routers wird im Netmon anhand der MAC ermittelt • Problem: Abhängigkeit vom Netmon • Clients bekommen eine Liste aller Server • Server bekommen eine Liste aller Clients+Server • Problem: Funk Verbindung zwischen den Hoods 22.11.2015 Die L3 Transition von Freifunk Franken 14/31 Freifunk Grundlagen Stand von heute Mögliche Lösungen VPN Server • VPN Server: In jeder Hood gibt es mehrere davon • Hoodzuweisung manuell im KeyXchange • DHCP • Aktuell ausschließlich IPv4 • Ungleiche Server Auslastung durch schlechtes DHCP Timing • Batman-Adv GW Selection • DNS Namesauflösung • Policy base routing • VPN (GRE) Tunnel zu anderen Gateways • OLSR • Routing zu anderen Gateways 22.11.2015 Die L3 Transition von Freifunk Franken 15/31 Freifunk Grundlagen Stand von heute Mögliche Lösungen Gateways • Verbindet Freifunk und Internet • IPv4 NAT (oft übers Ausland) ins Internet • Announced 0.0.0.0/0 via OLSR • Dynamic Gateway Plugin • VPN Server können diese Routen nutzen • Problem: Ungleiche Server Auslastung durch statische Routen-Qualität 22.11.2015 Die L3 Transition von Freifunk Franken 16/31 Freifunk Grundlagen Stand von heute Mögliche Lösungen Netmon • Nodewatcher • Generiert Status-Daten • XML • alle 5 Minuten • Configurator • Verknüpft Netmon und Knoten • Crawler • Sammelt Status-Daten • Download über http Schnittstelle der Knoten • Alles über Link-Local • Muss in jeder Hood drin sein • Netmon • Visualisiert Status-Daten • Mit den vielen Crawls hoffnungslos überfordert 22.11.2015 Die L3 Transition von Freifunk Franken 17/31 Freifunk Grundlagen Stand von heute Mögliche Lösungen Monitoring • Alfred • XML • alle 5 Minuten • Multicast • Multicast Daten können auf mehreren Gateways gelesen werden • Die Daten können von dort an eine zentrale Webseite (Karte, etc.) geschickt werden • Standort und Ansprechpartner wird aus dem Netmon geladen • Problem: Abhängig vom Netmon 22.11.2015 Die L3 Transition von Freifunk Franken 18/31 Freifunk Grundlagen Stand von heute Mögliche Lösungen Domain-Name-System • ganz Neu.. ! :-) • fff.community • Langer Name, aber • Keine Kollision • Mehrere DNS Server • Zonen-Synchronisation über dig axfr • Subdelegation an synchronisierte Hosts möglich • Noch keine reverse delegation 22.11.2015 Die L3 Transition von Freifunk Franken 19/31 Freifunk Grundlagen Stand von heute Mögliche Lösungen Firmware Bau • Basiert auf OpenWrt • ,,Eigenes” Framework (Buildscript) • Zentrales ,,files” Verzeichnis • Board-Support-Packages • Ein .config • Überschreibende ,,files” • Template System für versch. Communities 22.11.2015 Die L3 Transition von Freifunk Franken 20/31 Freifunk Grundlagen Stand von heute Mögliche Lösungen Zusammenfasssung • Erfolgreich das L2 Netz in mehrere L3 Netze geteilt • VPN Schlüsseltausch über zentrales Tool • Zuordnung zu Hood über Standort aus Netmon • Manuelle Zuweisung der VPN Server • Keine Anpassung an Firmware • Fehlerhafte Verbindung (loop) der Hoods durch versehentliches Meshing • Kein Traffic Balancing zwischen VPN Server und Gateways • Netmon überlastet • Netmon muss zu jeder Hood eine L2 Verbindung haben • Neues Monitoring kennt Knoten Standort nur über Netmon • Keine Möglichkeit die L2 Netze per Richtfunk zu verbinden 22.11.2015 Die L3 Transition von Freifunk Franken 21/31 Freifunk Grundlagen Stand von heute Mögliche Lösungen Mögliche Lösungen 22.11.2015 Die L3 Transition von Freifunk Franken 22/31 Freifunk Grundlagen Stand von heute Mögliche Lösungen Größten Baustellen Größere (längerfristige) Baustellen: • Netmon soll weg • KeyXchange soll dezentralisiert werden • Funk Verbindungen zwischen Hoods 22.11.2015 Die L3 Transition von Freifunk Franken 23/31 Freifunk Grundlagen Stand von heute Mögliche Lösungen Monitoring • Netmon abschalten, Abhängigkeiten lösen • keyXchange • neues Monitoring • Position und Owner Daten vom Gerät • Webinterface nötig 22.11.2015 Die L3 Transition von Freifunk Franken 24/31 Freifunk Grundlagen Stand von heute Mögliche Lösungen Webinterface • z. B. mit haserl (Freifunk Bielefeld) • z. B. mit lua (OpenWrt) • Parameter setzen • Koordinaten setzen • Lösung gesucht: Kartenansicht ohne Netz? • Kontakt-Daten • Problem: ”GUI” Browser und IPv6 Link-Local 22.11.2015 Die L3 Transition von Freifunk Franken 25/31 Freifunk Grundlagen Stand von heute Mögliche Lösungen IP für Knoten • Knoten müssen eine normale IP bekommen • DHCP IP immer anders → wie Router finden? • Dynamic DNS: MAC.node.fff.community • Muss schnell gehen → DHCP setzt das Dynamic DNS • Problem: offline Knoten • Local-Node IP: • Jeder Knoten hat die selbe IP • Beispiel: Vom DHCP zugewiesene Netzadresse +127 • Local-Node IP wird nicht ins Mesh geroutet • Problem: Geht nur bei größeren Netzen • IP im Monitoring nachschlagen • Problem: offline Knoten • Local Node mit ebtables? 22.11.2015 Die L3 Transition von Freifunk Franken 26/31 Freifunk Grundlagen Stand von heute Mögliche Lösungen KeyXchange • Dezentralisieren: Knoten soll selber seine Hood finden • VPN Server auswählen • VPN Server alle Verbindungen akzeptieren • WiFi Settings auswählen • Problem: wenn z.B. kein VPN da ist? • Zwei Dinge werden benötigt: • Mögliche VPN Server • Daten der Hood (WiFi / Routing / etc) 22.11.2015 Die L3 Transition von Freifunk Franken 27/31 Freifunk Grundlagen Stand von heute Mögliche Lösungen Hood-Configs Hood Config Gateway Config [general] version=1 [general] version=1 [hood] name=fuerth bssid=ca:ff:ee:ba:be:00 protocol=batman-adv-v14 channel2=1 mode2=ht20+ type=802.11s location=49.4814;10.966 noAutoConnect=true [network] hood=fuerth ip4range=10.50.44.1-.46.255 //ip6range=2001:xx:xx:xx/64 [network] subnet=10.16.44.0/27 [sign] key=<public-key> 22.11.2015 [vpn] protocol=fastd address=vpn1.fff.community port=10000 key=<fastd-public-key> Die L3 Transition von Freifunk Franken 28/31 Freifunk Grundlagen Stand von heute Mögliche Lösungen Hood-Configs verteilen • Gesucht: Synchronisation • Überschreiben/Löschen absichern → Synchronisation nur mit Signatur • Offline Hood • Mögliche Funkpartner finden • WiFi suchen → Zwei WiFi • Mit Freifunk • Ohne Freifunk 22.11.2015 Die L3 Transition von Freifunk Franken 29/31 Freifunk Grundlagen Stand von heute Mögliche Lösungen L3 Richtfunk 22.11.2015 Die L3 Transition von Freifunk Franken 30/31 Freifunk Grundlagen Stand von heute Mögliche Lösungen L3 Richtfunk • Batman Netz = Normales Ethernet • OLSR gegen Unfug absichern → sOLSR (??) • Problem: Nur ein default Gateway pro Client → Das Gateway vom Dach oder das hinter dem DSL? 22.11.2015 Die L3 Transition von Freifunk Franken 31/31 Freifunk Grundlagen Stand von heute Mögliche Lösungen Ende Vielen Dank für Eure Aufmerksamkeit ... 22.11.2015 Die L3 Transition von Freifunk Franken 32/31