Die Gewichtung scheint mir recht willkürlich und nicht durchdacht zu sein. 

Warum haben reine Mesh-Router überhaupt ein Gewicht? Sie bestimmen niemals die Hoodauswahl sondern koppeln sich selber irgendwo an. 

Problem sind doch nur konkurrierende VPN Router in unterschiedlichen Hoods. 

Vorschlag: Die VPN Router, die nach Gewicht in der falschen Hood sind, schalten MoW/MoL ab. Alle anderen lassen an. Die Meshwolke ist quasi sofort eindeutig migriert. 

Am 28.02.2017 09:09 schrieb "Johannes Rudolph via Dev" <dev@lists.ffnw.de>:
Moin zusammen,

ich habe gerade eine neue Testing gebaut. Ihr findet sie hier:

Meine Änderungen zum Aktuellen stable findet ihr hier:


Download:


Meine Änderungen / Anpassungen / Ergänzungen:

Hoodselector:

Ich habe folgendes umgebaut, was für die Praxis mir aktuell deutlich sin voller erscheint:

Wenn ein Router ein VPN Router ist und eingetragene Koordinaten hat, wird nich überprüft ob es einen Mesh Konflikt per Mesh on LAN/WAN gibt. Sicherlich kann es hierdurch zu Hoodkurzschlüssen kommen, allerdings passiert das aktuell bei Firmware updates sehr oft und ich und Stefan sind den ganzen Tag dabei diese Hoodkurzschlüsse auf den Supernodes zu trennen. Dadurch das der VPN Router dieses nicht mehr prüft haben die MeshKnoten um ihn herum es einfacher die richtige Hood zu finden, wenn mehr als eine im lokalen Mesh vorhanden ist.

Dann habe ich noch die Gewichtung der Mesh Router geändert. Bisher bekam ein VPN Router das Gewicht von 2 und ein einfacher Mesh Router das Gewicht von 1. Wenn nun per Mesh on LAN/WAN mehre Hoods ermittelt worden sind gewinnt immer die Hood mit dem größten Gewicht.
Jetzt hat ein VPN Router ein Gewicht von 20.

Eine Beispiel Rechnung:

Aktuelle Firmware 

10 Router davon ist einer VPN Uplink. Alle anderen 9 Meshen nur über Mesh on LAN/WAN. Die Richtige Hood wäre in diesem Beispiel Oldenburg. Aktuell sind nach einem Sysupgrade alle Router in der Default Hood, da die Einstellungen beim Sysupgrade aus der site.conf überschrieben werden, dazu später mehr.
Wenn nun der Hoodselector auf einem der Mesh Knoten ausgeführt wird ergibt sich folgende Gewichtung
Hood Oldenburg 2
Hood Default 8
Der Meshknoten würde weiterhin die Default Hood auswählen. Wenn in der Zwischenzeit der Hoodselector auf dem VPN Router ausgeführt wird schaltet dieser immer im Wechsel zusätzlich noch Mesh on LAN/WAN immer ein und aus, diesem im Rhythmus des Cronjobs

Meine Jetzige Testing Version:

Kleiche Routerkonstellation
Wenn nun der Hoodselector auf einem der Mesh Knoten ausgeführt wird ergibt sich folgende Gewichtung
Hood Oldenburg 20
Hood Default 8
Jetzt wählt der MeshKnoten die Richtige Hood aus. Alle anderen Meshknoten werden nachziehen und nach einem einmaligen Durchlauf des hoodselectors in der gleichen Hood sein. Der VPN Router schaltet jetzt nicht mehr seine Mesh on LAN/WAN Verbindung ab.

Ich denke bis VXLAN im Kernel uns zur Verfügung steht und sich unser Meshing Problem in Luft auflöst ist dieses eine sehr praxisnahe praktikable Lösung.


Zusätzlich habe ich den Hoodselctor update fest eingebaut. Bedeutet das auch nach einem sys upgrade der Router in seiner alten Hood wieder startet.
Dafür speichert der Hoodselector nun in der Datei /etc/config/hoodselector seine aktuell ausgewählte Hood ab. Diese Datei bleibt beim sys upgrade erhalten und wird nicht verändert.

Nach dem Sysupgrade laufen einige Upgrade Skripte. Nach dem Durchlauf des Skriptes das nun standardmäßig die fastd Config anhand der site.conf überschreibt, läuft ein weiteres Skript, dass die richtige fastd Config für die Hood anhand der gespeicherten Hood aus dem Hoodfile neu schreibt. Nun verbindet sich der Router nach dem Sysupgrade wieder mit der richtigen Hood auf anhieb und landet nicht mehr standardmäßig in der Default Hood.

Zusätzlich steht nun nach dem Login auf dem Router auch die Ausgewählte Hood zur Verfügung.

Schaut es euch einfach mal an. Ich hoffe das hilft die Stabilität unseres Netzes zu Verbessen


Ich habe bzw bin gerade noch dabei einen Cooperative Locator zu bauen, der es ermöglichen soll die Position an Hand der umliegenden Router zu ermitteln. Eine erste noch nicht fertige, aber lauffähige Version ist in der Testing enthalten.
Dieses Paket baue ich in einem Git Submodule. Ich habe schon vor über einem Jahr eingebaut das die submodules beim gluon build mit ausgecheckt werden, um gleich die Frage zu beantworten ob das klappt. 
Den Code dazu findet ihr hier: https://git.ffnw.de/ffnw-firmware/cooplocator
Zukünftig kann der geolocator dann damit die Position anhand der umliegenden WLAN Netzwerke über openwifi.su und anhand der lokalen Mesh Knoten vor Ort ermitteln.

Fragen? Wünsche? Anregungen?

Gruß

Johannes

_______________________________________________
Dev mailing list
Dev@lists.ffnw.de
https://lists.ffnw.de/mailman/listinfo/dev