Dies ist eine alte Version des Dokuments!
Gateways beim Freifunk Stuttgart
Gateways sind in Freifunknetzen die eigentlichen Router, während die Freifunk-Router (Nodes) für die Clients als Switches erscheinen.
Über die Gateways laufen alle Verbindungen, die nicht über direkte Mesh-Beziehungen zwischen benachbarten Nodes abgewickelt werden können, egal ob zu anderen Zielen innerhalb des Freifunknetzes oder ins Internet (Ausleitung). Alle Verbindungen zwischen Nodes und Gateways sowie zwischen den Gateways sind verschlüsselt (VPN).
gw
Gateway-Gruppen
Beim Freifunk Stuttgart werden die Gateways nicht zentral betrieben und verwaltet, sondern unterschiedliche Personen oder/und Vereine können Gateways betreiben. Deshalb benutzen wir Gateway-Gruppen für die einzelnen Betreiber, die ihrerseits mehrere Instanzen (Maschinen), also die eigentlichen Gateways, in der jeweiligen Gruppe einrichten können. Ein einzelnes Gateway hat deshalb z.B. den Namen
- „gw01n03“ = Gateway-Gruppe 01 (entspricht Gateway des Betreibers 01) und dort die Instanz 03
- „gw05n02“ = Gateway-Gruppe 05 (entspricht Gateway des Betreibers 05) und dort die Instanz 02
- „gw08n01“ = Gateway-Gruppe 08 (entspricht Gateway des Betreibers 08) und dort die Instanz 01
Liste der Gateway-Gruppen
Gateway-Gruppe | Betreiber | Status |
---|---|---|
gw01 | Poldy | aktiv |
gw02 | Flip | inaktiv |
gw03 | Dentaku | inaktiv |
gw04 | FFS e.V. | aktiv |
gw05 | Adrian | aktiv |
gw06 | Adrian | temp |
gw07 | Albi + Roland | Onboarder |
gw08 | Albi | aktiv |
gw09 | — | inaktiv |
gw10 | (Adrian) | inaktiv |
Segmente
Durch die Aufteilung des Freifunk-Netzes in mehrere Segmente (Subnets), kann ein Gateway (GW) bei uns mehrere Segmente bedienen. Im ersten Schritt halten alle GWs alle Segmente, im zweiten Schritt wird ein Routing-Protokoll implementiert, das die dynamische Zuordnung von Gateways zu einzelnen Segmenten ermöglicht.
Pro Segment läuft auf einem GW
- eine Fastd-Instanz für die VPN-Verbindungen von den Nodes mit MTU 1340 (seit Firmware v1.3)
- eine Fastd-Instanz für die VPN-Verbindungen von den Nodes mit MTU 1406 (bis Firmware v1.1)
- eine Fastd-Instanz für die Verbindungen der Gateways untereinander im selben Segment (Segment-Backbone).
- eine batman-adv Instanz zur Ein- und Auskopplung des Client-Traffic sowie Weiterleitung des Mesh-Traffic von/zu Nodes und anderen GWs im selben Segment
IP-Adressen
Jedes Segment soll aus Performance Gründen maximal 800 Clients beinhalten. Durch den Verschnitt bei der IPv4-Adressvergabe per DHCP-Server (lease time) und Reserve für statische IP-Adressen werden die Segmente jeweils für 2048 IPv4-Adressen ausgelegt, das entspricht einem /21 Netz. Für die automatische IP-Vergabe stehen die drei DHCP-Server dhcp01, dhcp02 und dhcp03 zur Verfügung, jeweils mit einem Pool von 512 IP-Adressen pro Segment. Somit kann einer der DHCP-Server ausfallen, ohne dass das Netz beeinträchtigt wird.
Alle Gateways sind per tinc (ffsl3) am zentralen Backbone 10.191.255.0/24 angeschlossen, an dem auch die drei DHCP-Server angeschlossen sind, und über den auch das Routing zwischen den Segmenten abgewickelt wird. Die DHCP Server haben dabei die IPv4 10.191.255.251 .. 253
Die einzelnen Gateways verteilen die IPv4-Adressen per DHCP-Relays an die Clients, haben also keine eigenen Adresspools. Lediglich Standardgateway und DNS-Server wird von den Gateways auf das Segment des anfragenden Clients angepasst.
IPv4-Range der Client-Netze = 10.190.0.0/21 bis 10.191.250.0/21
Für IPv6 senden die Gateways nur Router Advertisements (RA) mit den IPv6-Routen zu den anderen Segmenten, um das jeweilige Subnet und dessen Übergänge zu definieren. Die Adressvergabe als solche übernehmen die Nodes selbst. Es wird kein IPv6-Standardgateway gesetzt, da das Freifunknetz derzeit noch keine IPv6-Anbindung an das Internet hat.
IPv6-Range der Client-Netze = fd21:b4dc:4b01::/64 bis fd21:b4dc:4b60::/64
Jedes GW belegt pro Segment eine IPv6-Adresse fd21:b4dc:4bxx::a38:ggg und eine IPv4-Adresse 10.19x.y.g
Was | Bsp Segment 1-32 | Segment 33-63 |
---|---|---|
IPv4 Netz | 10.190.0.0/21 | 10.191.0.0/21 |
IPv6 Prefix | fd21:b4dc:4b01::/64 | fd21:b4dc:4b33::/64 |
BatIf | bat01 .. bat32 | bat33 .. bat63 |
Bridge Interface | br01 .. br32 | br33 .. br63 |
Fastd-If | vpn01 .. vpn32 | vpn33 .. vpn63 |
Fastd-Port | ||
bis FW v1.1 | 10041 .. 10072 und 10139 | 10073 .. 10103 und 10139 |
ab FW v1.3 | 10201 .. 10232 und 10299 | 10233 .. 10263 und 10299 |
Fastd-Socket | /var/run/fastd-vpn01.sock | /var/run/fastd-vpn33.sock |
ALFRED script | /etc/init/alfred-vpn01.conf | /etc/init/alfred-vpn33.conf |
Segment | Netz | IPv6-Prefix | Port | MAC | BatIf | Fastd | Bridge(Bat/client) |
---|---|---|---|---|---|---|---|
01 | 10.190.0.0/21 | fd21:b4dc:4b01::/64 | 10041 | 02:00:38:01:0g:0n | bat01 | vpn01 | br01 |
02 | 10.190.8.0/21 | fd21:b4dc:4b02::/64 | 10042 | 02:00:38:02:0g:0n | bat02 | vpn02 | br02 |
03 | 10.190.16.0/21 | fd21:b4dc:4b03::/64 | 10043 | 02:00:38:03:0g:0n | bat03 | vpn03 | br03 |
04 | 10.190.24.0/21 | fd21:b4dc:4b04::/64 | 10044 | 02:00:38:04:0g:0n | bat04 | vpn04 | br04 |
05 | 10.190.32.0/21 | fd21:b4dc:4b05::/64 | 10045 | 02:00:38:05:0g:0n | bat05 | vpn05 | br05 |
06 | 10.190.40.0/21 | fd21:b4dc:4b06::/64 | 10046 | 02:00:38:06:0g:0n | bat06 | vpn06 | br06 |
07 | 10.190.48.0/21 | fd21:b4dc:4b07::/64 | 10047 | 02:00:38:07:0g:0n | bat07 | vpn07 | br07 |
08 | 10.190.56.0/21 | fd21:b4dc:4b08::/64 | 10048 | 02:00:38:08:0g:0n | bat08 | vpn08 | br08 |
Segment | GW | IP4 | Betreiber | IPv6 |
---|---|---|---|---|
01 | gw01n03 | 10.190.0.13/21 | Leonard | fd21:b4dc:4b01::a38:103 |
01 | gw05n01 | 10.190.0.5/21 | Adrian | fd21:b4dc:4b01::a38:501 |
01 | gw05n02 | 10.190.0.52/21 | Adrian | fd21:b4dc:4b01::a38:502 |
01 | gw05n03 | 10.190.0.53/21 | Adrian | fd21:b4dc:4b01::a38:503 |
01 | gw08n00 | 10.190.0.8/21 | Albi | fd21:b4dc:4b01::a38:800 |
01 | gw08n01 | 10.190.0.81/21 | Albi | fd21:b4dc:4b01::a38:801 |
01 | gw08n02 | 10.190.0.82/21 | Albi | fd21:b4dc:4b01::a38:802 |
01 | gw08n03 | 10.190.0.83/21 | Albi | fd21:b4dc:4b01::a38:803 |
01 | gw08n04 | 10.190.0.84/21 | Albi | fd21:b4dc:4b01::a38:804 |
01 | gw08n05 | 10.190.0.85/21 | Albi | fd21:b4dc:4b01::a38:805 |
02 | gw01n03 | 10.190.8.13/21 | Leonard | fd21:b4dc:4b02::a38:103 |
02 | gw05n01 | 10.190.8.5/21 | Adrian | fd21:b4dc:4b02::a38:501 |
02 | gw05n02 | 10.190.8.52/21 | Adrian | fd21:b4dc:4b02::a38:502 |
02 | gw05n03 | 10.190.8.53/21 | Adrian | fd21:b4dc:4b02::a38:503 |
02 | gw08n00 | 10.190.8.8/21 | Albi | fd21:b4dc:4b02::a38:800 |
02 | gw08n01 | 10.190.8.81/21 | Albi | fd21:b4dc:4b02::a38:801 |
02 | gw08n02 | 10.190.8.82/21 | Albi | fd21:b4dc:4b02::a38:802 |
02 | gw08n03 | 10.190.8.83/21 | Albi | fd21:b4dc:4b02::a38:803 |
02 | gw08n04 | 10.190.8.84/21 | Albi | fd21:b4dc:4b02::a38:804 |
02 | gw08n05 | 10.190.8.85/21 | Albi | fd21:b4dc:4b02::a38:805 |
MAC-Adressen der GWs
Schema: 02:00:ii:ss:gg:nn
ii | Interface |
ss | Segment |
gg | Gateway-Gruppe |
nn | laufende Nummer der Gateway-Instanz |
Definierte Werte für ii
33 | Mesh Fastd Nodes mit MTU = 1340 (vpyXX) |
34 | (ex. Mesh Fastd Nodes mit MTU = 1312 (vpxXX)) |
35 | Backbone fastd mit MTU = 1340 (bbXX) |
36 | Segmentrouting Tinc (ffsl3) |
37 | (Mesh Fastd Gateways) |
38 | Mesh Fastd Nodes mit MTU = 1406 (vpnXX) |
39 | Client |
Verbotene Werte für ii: 4c .. 4f 58 .. 5b 70 .. 73 8d .. 90 c8 .. cb