Mqtt/autol3: Unterschied zwischen den Versionen

Aus Freifunk Franken
Wechseln zu:Navigation, Suche
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(13 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
<h2>Begrifflichkeiten</h2>
* Gatewayserver => Layer 3 Router in einem Rechenzentrum mit fester IP der Peerings per vxlan entgegen nimmt
* L3Router => Plastikkasten in der Stadt, das über eine dynamische IP Adresse einen Tunnel ins Freifunknetz aufbauen soll
<h2>Aufbau</h2>
Hier soll eine neue Idee entstehen, wie das Freifunk Franken Layer 3 Netz automatisiert eingerichtet werden kann.
Hier soll eine neue Idee entstehen, wie das Freifunk Franken Layer 3 Netz automatisiert eingerichtet werden kann.


Der Router wird geflasht und erhält per mqtt eine Liste von Servern wo er sich hinverbinden kann. Der mqtt Server ist vom User frei einstellbar so das es von keinem zentralen MQTT Server abhängig ist. Weiterhin wird von der Community ein mqtt System dezentral betrieben über ein MQTT Cluster wo jeder dran teilnehmen kann. Es kann jeder seine eigenen Server zum verbinden hinein pushen so das sich jeder als Peeringpartner zur Verfügung stehen kann.
<h3>MQTT System</h3>
<b>Dies wird evtl. erst später optional hinzugefügt.</b>
 
Der MQTT Server den ein L3Router verwenden soll ist vom User frei einstellbar so das es von keinem zentralen MQTT Server abhängig ist und selbst wählen kann wo er seine Liste von Gatewayservern beziehen will. Es wird z.b. von der Community ein MQTT System dezentral betrieben über ein MQTT Cluster wo jeder dran teilnehmen kann so das jeder auch einen eigenen MQTT Server betreiben kann aber auch alle Nachrichten von anderen MQTT Servern erhält und weiterleitet.  
 
Es kann jeder seine eigenen Gatewayserver zum verbinden in irgendeinen MQTT Server pushen so das sich jeder mit zb. einen Hetznerserver o.ä. als Peeringpartner zur Verfügung stellen kann.
 
<h3>L3Router Firmware und Einrichtung</h3>
Der L3Router wird geflasht, der User muss einen MQTT Server eingeben und erhält dann per MQTT eine Liste von Gatewayservern wo er sich hinverbinden kann.  
Nachdem der L3Router eine Liste von Gatewayserver erhalten hat wohin er sich verbinden kann wird entweder automatisch zufällig einer (oder mehrere) ausgesucht oder der User kann selbstständig wählen zu welchen Gatewayserver(n) er sich verbinden will.
 
Zu den gewählten Gatewayserver(n) wird ein vxlan aufgebaut. Der Gatewayserver schickt per DHCP eine v4 Adresse an den L3Router welche er verwenden kann (restliches v4 passiert einfach mit NAT und ist auf jeden L3Router die gleiche Adresse) und per dhcpv6-pd ein v6 Netz. Der L3Router konfiguriert sich diese Netze ins Babel und nutzt es.
 
<h2>AutoMesh</h2>
Theoretisch kann so ein L3Router auch als dhcpv6-pd Relay konfiguriert werden, so das Meshrouter ohne Internetuplink sich eine Adresse vom Gatewayserver beziehen können über den UplinkL3Router als Relay. Wenn auch diese Meshrouter als Relay konfiguriert sind, kann so eine Kette theoretisch unbegrenzt lange werden.
 
<h2>Aufbau der Firmware für L3Router</h2>
* User muss aktiv auswählen das er autol3 nutzen will im WebUI
* User muss vxlan Zugangsserver angeben den er nutzen will (z.b. aus einer Liste im Wiki)
 
==


Nachdem der Router eine Liste von Servern erhalten hat wohin er sich verbinden kann wird entweder automatisch zufällig einer ausgesucht oder der User kann selbstständig wählen zu welchen Server(n) er sich verbinden will.
Zukünftig kann man drüber nachdenken:
* User muss im WebUI einen MQTT Server angeben
* Im WebUI erscheint eine Liste von Gatewayserver wo der User einen auswählen kann oder ihm ist es wurscht und es wird automatisch einer gewählt oder oder (Zur Diskussion)


Zu den gewählten Servern wird ein vxlan aufgebaut. Der Server schickt per dhcp eine v4 Adresse an den Router welche er verwenden kann (restliches v4 passiert einfach mit NAT und ist auf jeden Router die gleiche Adresse) und per dhcpv6-pd ein v6 Netz. Der Router konfiguriert sich diese Netze ins Babel und nutzt es.
==


Theoretisch kann so ein Router auch als dhcpv6-pd Relay konfiguriert werden, so das Meshrouter ohne Internetuplink sich eine Adresse vom Gateway beziehen können über den Uplinkrouter als Relay
* /etc/config/gateway wird komplett automatisch generiert
** bei IP Adressen wird "auto" eingetragen, configure-layer3 Scripte müssen das beachten und die IP Adressen von DHCP/dhcpv6-pd nutzen
** über dieses Patch werden die VLANs konfiguert https://git.freifunk-franken.de/freifunk-franken/firmware/pulls/2
*** Es wäre toll, wenn dies nur optional genutzt werden kann, so kann der User auch die VLANs frei einstellen wenn er es gerne anders möchte
** DNS Server steht noch zur Diskussion
* configure-layer3 wird automatisch ausgeführt
* Der Router ist fertig konfiguriert

Aktuelle Version vom 7. August 2021, 13:50 Uhr

Begrifflichkeiten

  • Gatewayserver => Layer 3 Router in einem Rechenzentrum mit fester IP der Peerings per vxlan entgegen nimmt
  • L3Router => Plastikkasten in der Stadt, das über eine dynamische IP Adresse einen Tunnel ins Freifunknetz aufbauen soll

Aufbau

Hier soll eine neue Idee entstehen, wie das Freifunk Franken Layer 3 Netz automatisiert eingerichtet werden kann.

MQTT System

Dies wird evtl. erst später optional hinzugefügt.

Der MQTT Server den ein L3Router verwenden soll ist vom User frei einstellbar so das es von keinem zentralen MQTT Server abhängig ist und selbst wählen kann wo er seine Liste von Gatewayservern beziehen will. Es wird z.b. von der Community ein MQTT System dezentral betrieben über ein MQTT Cluster wo jeder dran teilnehmen kann so das jeder auch einen eigenen MQTT Server betreiben kann aber auch alle Nachrichten von anderen MQTT Servern erhält und weiterleitet.

Es kann jeder seine eigenen Gatewayserver zum verbinden in irgendeinen MQTT Server pushen so das sich jeder mit zb. einen Hetznerserver o.ä. als Peeringpartner zur Verfügung stellen kann.

L3Router Firmware und Einrichtung

Der L3Router wird geflasht, der User muss einen MQTT Server eingeben und erhält dann per MQTT eine Liste von Gatewayservern wo er sich hinverbinden kann. Nachdem der L3Router eine Liste von Gatewayserver erhalten hat wohin er sich verbinden kann wird entweder automatisch zufällig einer (oder mehrere) ausgesucht oder der User kann selbstständig wählen zu welchen Gatewayserver(n) er sich verbinden will.

Zu den gewählten Gatewayserver(n) wird ein vxlan aufgebaut. Der Gatewayserver schickt per DHCP eine v4 Adresse an den L3Router welche er verwenden kann (restliches v4 passiert einfach mit NAT und ist auf jeden L3Router die gleiche Adresse) und per dhcpv6-pd ein v6 Netz. Der L3Router konfiguriert sich diese Netze ins Babel und nutzt es.

AutoMesh

Theoretisch kann so ein L3Router auch als dhcpv6-pd Relay konfiguriert werden, so das Meshrouter ohne Internetuplink sich eine Adresse vom Gatewayserver beziehen können über den UplinkL3Router als Relay. Wenn auch diese Meshrouter als Relay konfiguriert sind, kann so eine Kette theoretisch unbegrenzt lange werden.

Aufbau der Firmware für L3Router

  • User muss aktiv auswählen das er autol3 nutzen will im WebUI
  • User muss vxlan Zugangsserver angeben den er nutzen will (z.b. aus einer Liste im Wiki)

==

Zukünftig kann man drüber nachdenken:

  • User muss im WebUI einen MQTT Server angeben
  • Im WebUI erscheint eine Liste von Gatewayserver wo der User einen auswählen kann oder ihm ist es wurscht und es wird automatisch einer gewählt oder oder (Zur Diskussion)

==

  • /etc/config/gateway wird komplett automatisch generiert
    • bei IP Adressen wird "auto" eingetragen, configure-layer3 Scripte müssen das beachten und die IP Adressen von DHCP/dhcpv6-pd nutzen
    • über dieses Patch werden die VLANs konfiguert https://git.freifunk-franken.de/freifunk-franken/firmware/pulls/2
      • Es wäre toll, wenn dies nur optional genutzt werden kann, so kann der User auch die VLANs frei einstellen wenn er es gerne anders möchte
    • DNS Server steht noch zur Diskussion
  • configure-layer3 wird automatisch ausgeführt
  • Der Router ist fertig konfiguriert