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.
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