[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