Hi,
ich habe gerade eine neue Testing gebaut. Ihr findet sie hier:
Danke dir :)
Meine Änderungen zum Aktuellen stable findet ihr hier:
https://git.ffnw.de/ffnw-firmware/packages/tree/johannes/201703 https://git.ffnw.de/ffnw-firmware/packages/tree/johannes/201703
Kommentare zum code folgen in den einzeln commits.
Download:
https://firmware.ffnw.de/20170227_testing/
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.
Ich bin dieser Umstellung eher skeptisch gegenüber gestimmt, da der VPNrouter das "tor" zum restlichen Netz einer hood stellt sollte dieser meiner Meinung nach das mol oder mow bei einem Konflikt abschalten. Dem abschnitt oben zu folge ist das ganze molwm in Konfliktsituationen raus geflogen?
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.
Das löst das Grundproblem nicht, was dir sicherlich bewusst ist. Fürst erste würde das für Mesh Netze <20 mesh Router in einem lan Konstrukt funktionieren. Darüber hinaus hätten wir das identische Problem wie jetzt.
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.
VXLAN wird noch einige zeit dauern, ich gehe davon aus das es evtl. zum ende des Jahres oder Anfang nächsten Jahres kommt. Der Kernel Support fehlt noch sowie die Implementierung in netifid.
Zusätzlich habe ich den Hoodselctor update fest eingebaut. Bedeutet das auch nach einem sysupgrade 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 sysupgrade erhalten und wird nicht verändert.
Sehr schön :) Dazu bestehe auch ein paar issues. commenst gibst dann im code wenn nötig.
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.
Hier bin ich mir nicht sicher wie man da am besten ran gehen sollte. Sicherlich ist diese Variante eine Möglichkeit, die schnell umgesetzt ist. Die bessere Variante wäre das package gluon-mesh-vpn-fastd zu clonen und die siteconf Abhängigkeit raus zu schmeißen. Das wäre der schönere weg und könnte dann mit samt der hoodselectors in gluon aufgenommen werden. Nach den obigen beschreibenden vorgehen wird eine Aufnahme 100% abgelehnt.
Zusätzlich steht nun nach dem Login auf dem Router auch die Ausgewählte Hood zur Verfügung.
Hm, das erfordert wahrscheinlich ein kontinuierliches neu schreiben des Banners? Ich schau mir den Code dazu mal an. Bin aber der Meinung das so eine Änderung nicht zwingend notwendig ist. Da dies nicht wirklich nötig ist.
Schaut es euch einfach mal an. Ich hoffe das hilft die Stabilität unseres Netzes zu Verbessen
jedenfall ganz herzlichen dank schon mal für deine Arbeit, Kommentare dazu folgen die tage im Code.
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.
Klinkt interessant da schaue ich mal mit rein.
Fragen? Wünsche? Anregungen?
Der Cooperative Locator: Wozu soll dar dann genau dienen?
Schöne Grüße Tarek
P.S. Deine mailer ist falsch konfiguriert. Die Mails sind alle doppelt, wovon eine Version in einem falschen ascii Format ist. Zudem sind die mails beim zitieren Einzeller. Scheinbar sind die Zeilen Umbrüche kaputt. Sobald ich den text dann zum zitieren passend formatieren will werden z.B. zwei newlines für eine "enter" gesetzt. Dazu kommst das urls alle doppelt hintereinander eingefügt werden. Ganz merkwürdig. Da du aber von einer *@ffnw.de mail sendest ist meine Vermutung das dein mail Programm die Mails kaputt macht. Magst du deinen Mailprogramm passend Konfigurieren?