Das Warendorfer Model


#1

Folgendes ist erstmal ein Gedanken-Spiel:

Soll

  • Die Warendorfer Domäne überbrückt Lücken im WLAN mittels zwei VPN-Servern (V1 und V2), die zudem einen Internet-Zugang über Router der FFI und des Freifunk-Rheinland bereitstellen.
  • Die FF-Knoten K1,…,N (lies: k1 bis kn) bauen L2TP Tunnel zu V1 oder V2 auf. Dabei wird V1 bevorzugt. Auf den Knoten läuft überall die gleiche Firmware.
  • Auf V1 und V2 werden Knoten zu Broadcast-Domänen B1,…,Bx zusammengeführt. Die Domänen sollen aufgrund der räumlichen Nähe der Knoten zueinander entstehen. Die Domänen
  • müssen, soll es zu keinen Störungen kommen, strikt voneinander getrennt werden.
  • sollen eine gewisse Größe an Knoten/Clients nicht überschreiten.

Mögliche Lösung

Zum Einsatz kommt die Tunneldigger Lösung. Der Aufbau des L2TP-Tunnels zwischen Kx und Vx wird duch Kx initiert. In einem Hook (session.up) des Tunnel-Brokers auf Vx wird u.a. eine nodeID übermittel. Dabei handelt es sich um die primäre MAC-Adress von Kx. Abhängig von dieser nodeID bindet der Broker den Knoten an Domäne Bx.

  • In welcher Domäne ein Knoten landet wird anhand eines öffentlichen GIT-Repository entschieden.
  • Knoten ist ausgeschlossen, wenn er in der Datei blacklist steht
  • Knoten kommt in eine „blinde“ Wolke B0, solange er nicht registriert ist, d.h. in keiner Datei aufgeführt ist. (Option für „automatische“ Registrierung in Bx, falls er zuvor mal in einer Bx gesichtet wurde und/oder falls Koordinaten angegeben sind, die irgendwie, z.B. ein meshender Nachbar, zu verifizieren sind.)
  • Knoten landet in der Bx, wenn er in einer Datei l2tp-vpnx aufgeführt ist.

Ein Knoten Kx in Bx, der ein BATMAN Gateway aus By announciert, stört das Netz. – Beschreibe hier, wie die Störung aussieht – . Das Problem ist symetrisch, denn der Knoten Kx lernt das Gateway über einen Knoten Ky, der in By hängt. In der Regel sollte Ursache der Fehlkonfiguration der Knoten Kf (f wie fail) sein, der später zum Netz hinzugekommen ist. – Zu klären ist, wie der Kf erkannt und isoliert werden kann, und wie das Netz möglichst schnell wieder stabilisiert werden kann. –


Wann wollen wir eine neue Domäne absplitten?
#2

Also, mal ohne jegliches Fachwissen ins Blaue gesponnen. Kx ist als erster da und kennt Bx. Dann kommt Ky und announced By. Kx merkt, dass da ein Konflikt ist und nimmt an, dass Ky Schuld ist, weil der später da kam. Für Ky sieht es symetrisch aus. Jetzt verhandeln die beiden. Punkte bringt die Uptime (wer ist länger da?) und auch, wie groß das Mesh hinter Kx bzw. Ky ist (wieviele Gleichgesinnte bringt jeder mit). Einer gewinnt die Verhandlungen. Der Verlierer muss wechseln in die Domain des anderen, damit der Konflikt gelöst ist. Dadurch ist eine Domain um eins gewachsen und eine Domain um eins geschrumpft. Beide Router haben den selben Algorithmus und die selben Informationen, treffen also die selbe Entscheidung und schreiben das Ergebnis in die git-Listen für die Akten und fürs nächste Mal. Die Grenze hat sich jetzt verschoben. Möglicherweise gibt es wieder einen Konflikt an der neuen Grenze. Dann wird wieder verhandelt usw. Dadurch wächst immer die stärkere Domain und die schwächere schrumpft, bis sie verschwunden ist. Problem gelöst.

Also ohne Ahnung ist es so einfach :slight_smile:


#3

Die Idee es nur manuell zu machen gefällt mir auch am besten. Dann kommt ein neuer Knoten immer erst rein, wenn er „genehmigt“ wurde. Vielleicht muss so viel Zeit einfach sein.


#4

Müsste Kf nicht daran zu erkennen sein, dass er IP-Adressen aus beiden Domänen erhält. Wäre für mich zumindest logisch, sonst könnte da ja nix durch gehen. Für mich gibt es allerdings 2 Varianten wie diese Problem auftauchen kann.

Der Knoten falsch konfiguriert sein und 2 Domänen konfiguriert haben. Dann würde ich den nach TQ-Werten zuordnen damit die Nachbarn die am nächsten dran sind auch weiterhin eine Meshwolke bilden.

Es könnte aber auch sein, dass über Mesh-On-Lan die Knoten verbunden sind. Also der Uplink hängt in einer anderen Domäne als der Meshknoten (Kf). Würde heißen, dass sich der Standort an einer Domänen-Grenze befinden muss sonst würde erst garkein Problem entstehen. :wink: Dann müsste der Meshknoten der selben Domäne wie der Uplink zugeordnet werden.

Wenn ich einen Fehler in meiner Logik habe gerne korrigieren.^^