Freifunk:Backend

Aus Hacksaar Wiki
Version vom 31. Juli 2019, 18:31 Uhr von Ralf (Diskussion | Beiträge) (→‎Mesh IPs: Reflektiere Umnummerierung)
Zur Navigation springen Zur Suche springen

Hier sind ein paar technische Details zu unseren Gateway-Servern.

Team

Grundsätzlich kümmert sich jeder aus dem Team um allgemeine Fragen auf der Mailingliste. Darüber hinaus haben manche Team-Mitglieder spezielle Aufgaben, die sie ausführen bzw. Themengebiete mit denen sie sich besonders auskennen.

Name Aufgabenbereiche
KimCM Public Relations, Webseite
Tobias Theobald Gateway-Administration, Firmware, allgemeine technische Fragen
Tobias Kuhn
Tobias von dem Broch Richtfunk, Antennenfragen
Marvin W Richtfunk, Knotenkarte, Gateway-Administration
Constantin Berhard
Ralf J Gateway-Administration, Netzwerk

Hardware-Details

Hostname CPU Threads x Modell @ Takt RAM Platte Internet-Anbindung Hoster Sponsor Aufgaben Virtualisierung Admin-Zugang
gw1.saar.freifunk.net 1 x Intel(R) Xeon(R) CPU E5-2683 v3 @ 2.00GHz 512 MB 15 GB 500 MBit/s 1&1 madonius Gateway VMware Ralf J, madonius
gw2.saar.freifunk.net 4 x Intel(R) Core(TM) i5 CPU 750 @ 2.67GHz 8 GB 1 TB 300 MBit/s servdiscount / myLoc Gateway - Marvin W
gw3.saar.freifunk.net 2 x Intel(R) Xeon(R) CPU E5-2660 v3 @ 2.60GHz 2 GB 50 GB 1000 MBit/s Shared Define Quality Gateway VMware Marvin W
gw4.saar.freifunk.net 2 x Intel(R) Xeon(R) CPU Skylake (Shared, IBRS) 4 GB 40 GB 1000 MBit/s Shared Hetzner Gateway KVM Marvin W
mgmt.saar.freifunk.net 2 x Intel(R) Xeon(R) CPU 8 GB RAM 40 GB >= 100 MBit/s Shared netcup netcup Knotenkarte, Monitoring, Saltmaster, Firmware ? Web (Marvin, Ralf)

Reservierte IPs

Wir haben im Freifunk-Intranet-Range die Blöcke 10.24.192.0/18 (10.24.192.0 - 10.24.255.255), 10.252.64.0/18 (10.252.64.0 - 10.252.127.255), fd4e:f2d7:88d2:ffff::/64 und fd4e:f2d7:88d2:fffd::/64 reserviert.

Außerdem hat der Freifunk-Rheinland uns 185.66.193.26/31, 185.66.194.28/31 und 2a03:2260:3009::/48 aus dem öffentlichen Internet-Adresspool zugewiesen.

Diese Adressräume nutzen wir wie unten dargestellt. Nicht ausgewiesene Bereiche sind ungenutzt und zur zukünftigen Verwendung reserviert. Aktuell ist unser ganzes Netz ein einzelnes Layer-2-Segment, die Unterteilung in Subnetze hier dient lediglich der Strukturierung.

Intranet

Adressraum Zuweisung
10.24.192.0/24 Admin-Netz (Gateways, etc.)
10.24.193.0/24 Unbenutzt
10.24.194.0/23 User Services
10.24.196.0/22 Clients an GW1
10.24.200.0/22 Clients an GW2
10.24.204.0/22 Clients an GW3
10.24.208.0/22 Clients an GW4
Adressraum Zuweisung
fd4e:f2d7:88d2:ffff::/64 Intranet Freifunk Saar

Internet

Adressraum Zuweisung
185.66.193.26/32 NAT-IP GW1
185.66.193.27/32 NAT-IP GW2
185.66.194.28/32 NAT-IP GW3
185.66.194.29/32 NAT-IP GW4
Adressraum Zuweisung
2a03:2260:3009:000::/56 Admin-Netz (Gateways, etc.)
2a03:2260:3009:100::/56 Clients an GW1
2a03:2260:3009:200::/56 Clients an GW2
2a03:2260:3009:300::/56 Clients an GW3
2a03:2260:3009:400::/56 Clients an GW4
2a03:2260:3009:f00::/56 User Services

Public DNS / IPs

Hier eine Tabelle mit den DNS-Namen und IP-Adressen unserer Gateways. Die Gateways haben einerseits Adressen, die wir vom jeweiligen Provider zugewiesen bekommen; andererseits weisen wir den Gateways Adressen aus dem Pool zu, den uns der FFRL zur Verfügung gestellt hat.

Gateway Public IPv4 Public IPv6 FFRL IPv4 (NAT-IP) FFRL IPv6
gw1.saar.freifunk.net 82.165.162.239 2001:8d8:1801:56::1 185.66.193.26 2a03:2260:3009::101
gw2.saar.freifunk.net 93.186.192.202 2001:4ba0:fff7:15c::1 185.66.193.27 2a03:2260:3009::102
gw3.saar.freifunk.net 51.254.23.212 - 185.66.194.28 2a03:2260:3009::103
gw4.saar.freifunk.net 159.69.210.248 2a01:4f8:1c1c:b3aa::1 185.66.194.29 2a03:2260:3009::104
mgmt.saar.freifunk.net 131.117.148.53 2a01:5c0:0:7::53 - -

Mesh IPs

Jeder Gateway ist Teil unseres Mesh-VPN und braucht als solches diverse Adressen, über die er im Mesh erreichbar ist.

Gateway Intranet IPv4 Intranet IPv6 Intranet MAC Batman MAC
gw1.saar.freifunk.net 10.24.193.1 fd4e:f2d7:88d2:ffff::101 ee:ee:ee:ee:00:01 ca:fe:ba:be:00:01
gw2.saar.freifunk.net 10.24.193.2 fd4e:f2d7:88d2:ffff::102 ee:ee:ee:ee:00:02 ca:fe:ba:be:00:02
gw3.saar.freifunk.net 10.24.193.3 fd4e:f2d7:88d2:ffff::103 ee:ee:ee:ee:00:03 ca:fe:ba:be:00:03
gw4.saar.freifunk.net 10.24.193.4 fd4e:f2d7:88d2:ffff::104 ee:ee:ee:ee:00:04 ca:fe:ba:be:00:04
mgmt.saar.freifunk.net 10.24.192.254 fd4e:f2d7:88d2:ffff::fe ee:ee:ee:ee:00:fe ca:fe:ba:be:00:fe
Anycast: Aktueller Knoten 10.24.192.1 fd4e:f2d7:88d2:ffff::1 32:3d:f9:8f:01:52 -

Client-IPs

Auf jedem Gateway läuft ein DHCP-Server, der IP-Adressen an Clients verteilt, die diesen Server als Gateway nutzen. Grundsätzlich verteilen wir hier /22-Ranges, also bis zu 1022 IP-Adressen pro Gateway. Ich halte es für denkbar, dass ein einzelner Server nicht so viele Clients packt, aber reduzieren geht ja schließlich immer, erweitern ist problematisch. Außerdem announcen die Gateways über Router Advertisments öffentlich nutzbare IPv6-Adressbereiche, aus denen sich die Clients bedienen können. Zusätzlich senden Gateways und Knoten Router Advertisments für unseren site-lokalen, internen Adressraum - Kommunikation über fd4e:f2d7:88d2:ffff::/64 klappt also auch, wenn die Knoten keinen Uplink haben.

Die konkreten Adressen, die von den einzelnen GWs den Clients zugewiesen werden, stehen in der Tabelle oben.

Mesh-VPN

Das Mesh-VPN bezeichnet Punkt-zu-Punkt VPN-Verbindungen zwischen den Knoten und den Gateways. Über diese Verbindungen wird dann wiederum per Batman ein Mesh aufgebaut, das die Illusion eines einzigen großen Netzwerks mit allen Knoten erzeugt (auch denen, die nur per WLAN angebunden sind).

Wir nutzen für diese VPN-Verbindungen L2TP, ein sehr schlankes und effizientes Tunnelprotokoll welches der Linux-Kernel nativ unterstützt. So können die Knoten mit ihren schwachen CPUs problemlos 30 MBit/s und mehr an Daten transportieren, und auch die Gateways (wo ja alles zusammen kommt) brauchen keine extrem starken CPUs. L2TP geht von einer statischen Konfiguration und öffentlichen IP-Adressen auf beiden Seiten aus; Tunneldigger ermöglicht es uns, solche Tunnel auch dynamisch und durch NAT hindurch aufzubauen. Tunneldigger lauscht auf Port UDP/10000, und auch die L2TP-Verbindung wird über diesen Port aufgebaut.

Nebenher sind auch noch Tunnel via fastd möglich. fastd haben wir früher statt L2TP eingesetzt, es bietet den Vorteil einer verschlüsselten Verbindung. Allerdings geht das mit viel CPU-Last sowohl auf den Knoten als auch den Gateways einher, weshalb fastd nicht mehr verwendet wird und zur Zeit lediglich der Kompatibilität mit alten Knoten wegen noch läuft. fastd lauscht auf Port UDP/10003. Als Cipher unterstützen unsere Server salsa2012+umac, die VPN-interne MTU beträgt 1406 byte.

Da die Ports ggfls. angepasst werden müssen, empfiehlt sich eine Freigabe der UDP-Ports 10000-10010 für den Betrieb des Freifunk-Routers hinter einer Firewall.

Hier eine Übersicht über die Public Keys und den Online-Status (nicht live) unserer Gateways:

Gateway Public fastd Key Aktiv?
gw1.saar.freifunk.net 5136a920a8c7aa9ae2ca1c2a1e33ea8c45e01501fac0f02b9d6a05b167ac5993 Ja
gw2.saar.freifunk.net 80859883c8a22867b20082078ab0934bdf58f556e7acda90730ea282d8da9388 Ja
gw3.saar.freifunk.net 711d1dc6f2048ffe88997441612ca764595b414abea5495c4f3ce746c72774e6 Ja
gw4.saar.freifunk.net 33e02014b00a45bc8249b4428a9da614a370b5e386fa5d8d66c325941aa27568 Ja (L2TP nur eingeschränkt)

Mesh-WLAN

Hier die Details für das WLAN auf den Clients

Netz Mesh {E/B}SSID Clients ESSID 2.4 GHz Kanal 5 GHz Kanal HT-Modul
Saar 5e:ba:7a:d2:c4:b9 saar.freifunk.net 1 36 HT20

Exit-VPN

Unser Traffic geht derzeit über diese Parteien ans Netz: