technik:gateways:gateway-liste

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
technik:gateways:gateway-liste [15.07.2018 - 14:56] – [VPN-Verbindung von Nodes zu Gateways] Roland Volkmanntechnik:gateways:gateway-liste [02.12.2023 - 14:07] (aktuell) Roland Volkmann
Zeile 1: Zeile 1:
 ====== Gateways beim Freifunk Stuttgart ====== ====== Gateways beim Freifunk Stuttgart ======
 +
 Gateways sind in Freifunknetzen die eigentlichen Router, während die Freifunk-Router (Nodes) für die Clients als Switches erscheinen. Gateways sind in Freifunknetzen die eigentlichen Router, während die Freifunk-Router (Nodes) für die Clients als Switches erscheinen.
  
Zeile 7: Zeile 8:
  
 ===== Gateway-Gruppen ===== ===== 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 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   * "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   * "gw05n02" = Gateway-Gruppe 05 (entspricht Gateway des Betreibers 05) und dort die Instanz 02
Zeile 13: Zeile 16:
  
 ==== Liste der Gateway-Gruppen ==== ==== 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   | 
  
 +<datatables responsive="true" scroll-y="250px" auto-width="true" paging="false" searching="false">
 +
 +^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  |
 +
 +</datatables>
  
 ===== Segmente ===== ===== Segmente =====
-Durch die Aufteilung des Freifunk-Netzes in mehrere [[technik:gateways:semgmentkarte|Segmente]] (Subnets), kann ein Gateway (GW) bei uns mehrere Segmente bedienen. Im ersten Schritt halten alle GWs alle Segmente, im zweiten Schritt wird ein [[technik:gateways:routing|Routing-Protokoll]] implementiert, das die dynamische Zuordnung von Gateways zu einzelnen Segmenten ermöglicht. 
  
 +Durch die Aufteilung des Freifunk-Netzes in mehrere [[technik:gateways:segmentkarte|Segmente]] (Subnets), kann ein Gateway (GW) bei uns mehrere Segmente bedienen. Im ersten Schritt halten alle GWs alle Segmente, im zweiten Schritt wird ein [[:technik:gateways:routing|Routing-Protokoll]] implementiert, das die dynamische Zuordnung von Gateways zu einzelnen Segmenten ermöglicht.
  
 Pro Segment läuft auf einem GW 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 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 VPN-Verbindungen von den Nodes mit MTU 1406 (bis Firmware v1.1)
Zeile 37: Zeile 45:
  
 ===== VPN-Verbindung von Nodes zu Gateways ===== ===== VPN-Verbindung von Nodes zu Gateways =====
 +
 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. 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: 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   * "gw01s03.gw.freifunk-stuttgart.de" = GW-Gruppe 01 im Segment 03
   * "gw04s11.gw.freifunk-stuttgart.de" = GW-Gruppe 04 im Segment 11   * "gw04s11.gw.freifunk-stuttgart.de" = GW-Gruppe 04 im Segment 11
   * "gw08s18.gw.freifunk-stuttgart.de" = GW-Gruppe 08 im Segment 18   * "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. 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. 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:+Für die VPN-Verbindung zwischen Node und Gateway werden je nach Segment und MTU unterschiedliche **UDP-Ports**  benutzt:
  
-^ Segment ^MTU 1340 (ab FW v1.3)^MTU 1406 (bis FW v1.1)^+<datatables responsive="true" scroll-y="300px" auto-width="true" paging="false" searching="false"> 
 + 
 +^Segment^MTU 1340 (ab FW v1.3)^MTU 1406 (bis FW v1.1)|
 |01|10201|10041| |01|10201|10041|
 |02|10202|10042| |02|10202|10042|
 |03|10203|10043| |03|10203|10043|
-|: |  :  |  :  |+|:|  :  |  :  |
 |09|10209|10049| |09|10209|10049|
 |10|10210|10050| |10|10210|10050|
 |11|10211|10051| |11|10211|10051|
-|: |  :  |  :  |+|:|  :  |  :  |
 |23|10223|10063| |23|10223|10063|
 |24|10224|10064| |24|10224|10064|
 |Onboarder|10299|10139| |Onboarder|10299|10139|
 +
 +</datatables>
  
 ===== IP-Adressen ===== ===== 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. 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.
  
Zeile 77: Zeile 93:
 Jedes GW belegt pro Segment eine IPv6-Adresse fd21:b4dc:4bxx::a38:ggg und eine IPv4-Adresse 10.19x.y.g Jedes GW belegt pro Segment eine IPv6-Adresse fd21:b4dc:4bxx::a38:ggg und eine IPv4-Adresse 10.19x.y.g
  
 +<datatables responsive="true" scroll-y="200px" auto-width="true" paging="false" searching="false">
  
-^ Was ^ Bsp Segment 1-32 ^ Segment 33-63 ^ +^Was^Bsp Segment 1-32^Segment 33-63| 
-| IPv4 Netz        | 10.190.0.0/21               | 10.191.0.0/21               +|IPv4 Netz  |10.190.0.0/21  |10.191.0.0/21  
-| IPv6 Prefix      | fd21:b4dc:4b01::/64         | fd21:b4dc:4b33::/64         +|IPv6 Prefix  |fd21:b4dc:4b01::/64  |fd21:b4dc:4b33::/64  
-| BatIf            | bat01 .. bat32              | bat33 .. bat63              +|BatIf  |bat01 .. bat32  |bat33 .. bat63  
-| Bridge Interface | br01  .. br32               | br33  .. br63               +|Bridge Interface|br01 .. br32  |br33 .. br63  
-| Fastd-If         | vpn01 .. vpn32              | vpn33 .. vpn63              +|Fastd-If  |vpn01 .. vpn32  |vpn33 .. vpn63  
-| Fastd-Port                                                               +|Fastd-Port      
-   bis FW v1.1   | 10041 .. 10072 und 10139    | 10073 .. 10103 und 10139    + bis FW v1.1  |10041 .. 10072 und 10139  |10073 .. 10103 und 10139  
-   ab  FW v1.3   | 10201 .. 10232 und 10299    | 10233 .. 10263 und 10299    +|  ab FW v1.3  |10201 .. 10232 und 10299  |10233 .. 10263 und 10299  
-| Fastd-Socket     | /var/run/fastd-vpn01.sock   | /var/run/fastd-vpn33.sock   +|Fastd-Socket  |/var/run/fastd-vpn01.sock  |/var/run/fastd-vpn33.sock  
-| ALFRED script    | /etc/init/alfred-vpn01.conf | /etc/init/alfred-vpn33.conf |+|ALFRED script  |/etc/init/alfred-vpn01.conf|/etc/init/alfred-vpn33.conf|
  
 +</datatables>
  
 +<datatables responsive="true" scroll-y="200px" auto-width="true" paging="false" searching="false">
  
-^Segment ^Netz        ^ IPv6-Prefix         ^Port  ^ MAC               ^ BatIf ^ Fastd ^ Bridge(Bat/client) ^ +^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 | +|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 | +|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 | +|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 | +|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 | +|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 | +|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 | +|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 |+|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                    | +</datatables>
-|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 |+
  
 +<datatables responsive="true" scroll-y="500px" auto-width="true" paging="false" searching="false">
 +
 +^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|
 +
 +</datatables>
  
 ===== MAC-Adressen der GWs ===== ===== MAC-Adressen der GWs =====
 +
 Schema: 02:00:ii:ss:gg:nn Schema: 02:00:ii:ss:gg:nn
 +
 |ii|Interface| |ii|Interface|
 |ss|Segment| |ss|Segment|
Zeile 133: Zeile 159:
  
 Definierte Werte für ii Definierte Werte für ii
 +
 |33|Mesh Fastd Nodes mit MTU = 1340 (vpyXX)| |33|Mesh Fastd Nodes mit MTU = 1340 (vpyXX)|
 |34|(ex. Mesh Fastd Nodes mit MTU = 1312 (vpxXX))| |34|(ex. Mesh Fastd Nodes mit MTU = 1312 (vpxXX))|
Zeile 140: Zeile 167:
 |38|Mesh Fastd Nodes mit MTU = 1406 (vpnXX)| |38|Mesh Fastd Nodes mit MTU = 1406 (vpnXX)|
 |39|Client| |39|Client|
 +
 Verbotene Werte für ii: Verbotene Werte für ii:
 +<code>
 +
 4c .. 4f 4c .. 4f
 58 .. 5b 58 .. 5b
Zeile 147: Zeile 177:
 c8 .. cb c8 .. cb
  
- +</code> 
 + 
 + 
 + 
  • technik/gateways/gateway-liste.1531666584.txt.gz
  • Zuletzt geändert: vor 5 Jahren
  • (Externe Bearbeitung)