[Berlin-wireless] Monitoring der Internetverbindung mit Dynapoint
Malte
freifunk at antenne.yagii.de
Mi Jul 13 18:43:27 CEST 2016
On Sun, 10 Jul 2016, Tobias Ilte wrote:
> DynaPoint ist ein daemon, der regelmäßig überprüft, ob eine Internet
> Verbindung vorhanden ist. Im Moment wird das mit Hilfe von wget
> realisiert. Je nachdem ob eine funktionierende Internetverbindung
> erkannt wird, kann man so einen access point mit entsprechend
> aussagekräftiger SSID aktivieren (z.B. "freifunk-offline"). Mehr
> Informationen gibt es hier: https://github.com/thuehn/dynapoint
> Vielleicht hat ja jemand Interesse, das zu testen und mir feedback zu
> geben.
Dann will ich mal. :-)
Von Code her sieht das so aus, als könnte da alle 30 Sekunden der Zustand
des APs wechseln. Wie schon auf der ML bemerkt wurde kann es z.B. durch
Fehlkonfiguration des VPNs in Berlin vorkommen, dass der Router mal eine
Minute "Internet" hat, dann wieder eine Minute nicht und so weiter. Ohne
etwas "Hysterese" würde das so dann dafür sorgen, dass man kaum noch auf
den Router kommt. In Bittorf-Kalua schlägt der "Wartungsmodus" soweit ich
mich erinnere erst nach einer Stunde ohne Internet zu.
Ausschließlich wget mit nur einem Ziel zu benutzen ist sehr wackelig. Wir
hatten es hier gerade letztens, dass mehr oder weniger das ganze Netz down
war, weil das SmartGateway-Plugin auch nur ein einziges Ziel hatte (das
aber von seiner Ehre nichts wusste und umgezogen wurde).
Für das "Internet" ist häufig nicht die normale Default-Route des Routers
zuständig (die z.B. in Berlin direkt über das WAN-Interface führt);
stattdessen wird ein eigenes Interface für das VPN benutzt. Das wget im
Skript testet also (nur), ob über den WAN-Port Verbindung besteht, und
liefert falsche Positive, wenn z.B. das VPN ausgefallen ist. Mit wget kann
man da glaube ich kaum was machen; "curl --interface ffvpn" hilft.
Falls es noch in die Zielsetzung des Projekts fällt: Statt/zusätzlich zu
per wget auf "Internet" testen könnte man prüfen, ob der Router
Mesh-Zugang hat, also olsrd/BATMAN/das IBSS-Interface Nachbarn sehen und
zu denen auch tatsächlich Verbindung besteht.
Das Prüf-Skript ist in Lua geschrieben, aber einige Firmwares sind/wollen
von Lua weg (ein Ansatz ist, quasi alles auf Client-Seite in JavaScript zu
machen und mit dem Router nur etwas RPC zu machen). Ich schätze, die
aktuelle Funktionalität lässt sich auch in bash/ash abbilden.
Viel Erfolg!
Grüße,
Malte
Mehr Informationen über die Mailingliste Berlin