Die L3 Transition von Freifunk Franken - KNF

Werbung
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
Herunterladen