technik:gateways:gateway-liste

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

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
Gateway-Gruppe Betreiber Status
gw01 Poldy aktiv
gw02 Flip inaktiv
gw03 Dentaku inaktiv
gw04 FFS e.V. aktiv
gw05 Adrian aktiv
gw06 Adrian inaktiv
gw07 Albi inaktiv
gw08 Albi inaktiv
gw09 FFS e.V. aktiv
gw10 (Adrian) inaktiv

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

Um die notwendige Zeit zum Aufbau der Verbindung des VPN-Tunnels (fastd) zwischen Node und Gateway möglichst klein zu halten, ist im Node keine vollständige Liste aller möglichen Ziele enthalten, sondern nur eine Liste der GW-Gruppen. Das zugehörige Segment erfährt der Node per DNS-Abfrage auf seine eigene erweiterte Node-ID, woraus er die GW-Gruppenliste im RAM so modifiziert, dass nur Verbindungen zu den Gateways im eigenen Segment aufgebaut werden.

Die DNS-Namen für fastd sehen auf den Nodes im RAM dann z.B. so aus:

  • „gw01s03.gw.freifunk-stuttgart.de“ = GW-Gruppe 01 im Segment 03
  • „gw04s11.gw.freifunk-stuttgart.de“ = GW-Gruppe 04 im Segment 11
  • „gw08s18.gw.freifunk-stuttgart.de“ = GW-Gruppe 08 im Segment 18

Welches konkrete GW (GW-Instanz) aus der GW-Gruppe ausgewählt wird, hängt von der DNS-Antwort auf diese URLs ab. Ein Node weiß von sich aus also weder, zu welchem Segment er gehört, noch welches GW ihn tatsächlich bedienen wird.

Ohne Modifikation der internen GW-Gruppenliste zeigen die URLs auf Onboarder, die für die automatische Registrierung neuer oder geänderter Nodes zuständig sind. Aktuell (Stand 18.02.2018) gibt es zwei Onboarder (gw04 und gw07), die sich gegenüber den Nodes zunächst als GWs ausgeben, die jeden beliebigen Node akzeptieren, aber tatsächlich dann nur die für die Registrierung notwendigen Daten abfragen und die Verbindung wieder trennen. Danach ist eine normale Verbindung zu richtigen GWs möglich.

Für die VPN-Verbindung zwischen Node und Gateway werden je nach Segment und MTU unterschiedliche UDP-Ports benutzt:

SegmentMTU 1340 (ab FW v1.3)MTU 1406 (bis FW v1.1)
011020110041
021020210042
031020310043
: : :
091020910049
101021010050
111021110051
: : :
231022310063
241022410064
Onboarder1029910139

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

WasBsp Segment 1-32Segment 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 Interfacebr01 .. 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
SegmentNetz IPv6-Prefix Port MAC BatIfFastdBridge(Bat/client)
01 10.190.0.0/21 fd21:b4dc:4b01::/641004102:00:38:01:0g:0nbat01vpn01br01
02 10.190.8.0/21 fd21:b4dc:4b02::/641004202:00:38:02:0g:0nbat02vpn02br02
03 10.190.16.0/21 fd21:b4dc:4b03::/641004302:00:38:03:0g:0nbat03vpn03br03
04 10.190.24.0/21 fd21:b4dc:4b04::/641004402:00:38:04:0g:0nbat04vpn04br04
05 10.190.32.0/21 fd21:b4dc:4b05::/641004502:00:38:05:0g:0nbat05vpn05br05
06 10.190.40.0/21 fd21:b4dc:4b06::/641004602:00:38:06:0g:0nbat06vpn06br06
07 10.190.48.0/21 fd21:b4dc:4b07::/641004702:00:38:07:0g:0nbat07vpn07br07
08 10.190.56.0/21 fd21:b4dc:4b08::/641004802:00:38:08:0g:0nbat08vpn08br08
SegmentGW IP4 BetreiberIPv6
01gw01n0310.190.0.13/21 Leonard fd21:b4dc:4b01::a38:103
01gw05n0110.190.0.5/21 Adrian fd21:b4dc:4b01::a38:501
01gw05n0210.190.0.52/21 Adrian fd21:b4dc:4b01::a38:502
01gw05n0310.190.0.53/21 Adrian fd21:b4dc:4b01::a38:503
01gw08n0010.190.0.8/21 Albi fd21:b4dc:4b01::a38:800
01gw08n0110.190.0.81/21 Albi fd21:b4dc:4b01::a38:801
01gw08n0210.190.0.82/21 Albi fd21:b4dc:4b01::a38:802
01gw08n0310.190.0.83/21 Albi fd21:b4dc:4b01::a38:803
01gw08n0410.190.0.84/21 Albi fd21:b4dc:4b01::a38:804
01gw08n0510.190.0.85/21 Albi fd21:b4dc:4b01::a38:805
02gw01n0310.190.8.13/21 Leonard fd21:b4dc:4b02::a38:103
02gw05n0110.190.8.5/21 Adrian fd21:b4dc:4b02::a38:501
02gw05n0210.190.8.52/21 Adrian fd21:b4dc:4b02::a38:502
02gw05n0310.190.8.53/21 Adrian fd21:b4dc:4b02::a38:503
02gw08n0010.190.8.8/21 Albi fd21:b4dc:4b02::a38:800
02gw08n0110.190.8.81/21 Albi fd21:b4dc:4b02::a38:801
02gw08n0210.190.8.82/21 Albi fd21:b4dc:4b02::a38:802
02gw08n0310.190.8.83/21 Albi fd21:b4dc:4b02::a38:803
02gw08n0410.190.8.84/21 Albi fd21:b4dc:4b02::a38:804
02gw08n0510.190.8.85/21 Albi fd21:b4dc:4b02::a38:805

Schema: 02:00:ii:ss:gg:nn

iiInterface
ssSegment
ggGateway-Gruppe
nnlaufende Nummer der Gateway-Instanz

Definierte Werte für ii

33Mesh Fastd Nodes mit MTU = 1340 (vpyXX)
34(ex. Mesh Fastd Nodes mit MTU = 1312 (vpxXX))
35Segment-Backbone fastd mit MTU = 1340 (bbXX)
36Zentraler Backbone Tinc (ffsl3) für zentrale Dienste und Inter-Segment-Routing
37(Mesh Fastd Gateways)
38Mesh Fastd Nodes mit MTU = 1406 (vpnXX)
39Client

Verbotene Werte für ii:

4c .. 4f
58 .. 5b
70 .. 73
8d .. 90
c8 .. cb
  • technik/gateways/gateway-liste.txt
  • Zuletzt geändert: vor 4 Monaten
  • von Roland Volkmann