Weilerfeld

Neue Router im Weilerfeld
Im Weilerfeld gibt es neue Router
Im Weilerfeld sind wir jetzt zu zweit. Wir würden uns freuen, wenn weitere Weilerfelder beim Freifunken mitmachen. Zur Zeit habe ich fünf fertige Router TP-LINK TL-WR841N-v11.1 (je 16€) hier stehen, die ich vor zwei Wochen auf Vorrat gekauft und installiert habe, um Lieferkosten zu sparen. Wer Interesse hat und nur eien Router aufstellen will – Netzwerkkabel an den DSL-Router und Netzteil in die Steckdose – darf sich gerne bei mir melden. Gilt natürlich auch für Nicht-Weilerfelder.

BTW: Falls der eigene Anschlussanbieter streikt, geht es dann vielleicht noch über die Nachbarn.

Firmware

Letztes Wochenende habe ich wieder eine neu Firmware erstellt. Diese sollte nun auf fast allen Routern installiert sein, soweit sie diese Woche einmal lange genug online waren und schon auf eine automatische Aktualisierung umgestellt sind. Zu beachten ist, dass die Firmware freifunk-rhein-sieg.de keine automatische Aktualisierung vornimmt, weil die Konfiguration zwei gültige Signaturen erwartet, aber nur eine Signatur definiert ist. Wer also die Firmware für Rheinbach der Freifunker Rhein-Sieg nutzt, muss seine Router manuell aktualisieren.

Am Getreidespeicher

gibt es jetzt drei weitere Router. Zwei Router haben sich die Bewohner gekauft, der dritte stammt aus einer Spende. Damit ist der Empfang von Freifunk sowohl im Haus 21, als auch Haus 23 deutlich besser. Was mir etwas Sorgen bereitet ist der Neubau neben an; der liegt leider ziemlich genau auf der Verbindung zum Router von Immobilien Brunner. Derzeit ist die Verbindung zwischen den Routern ganz brauchbar, aber es könnte sich deutlich verschlechtern, wenn das Haus fertig ist.

Aber: Erstmal abwarten und Tee trinken.

Neuer Router: Brunner Immobilen

Getreidespeicher 26 Brunner Immobilien
Getreidespeicher 26 Brunner Immobilien

Seit gestern vormittag ist Brunner Immobilien mit unter die Freifunker gegangen. Ein TP-Link CPE210 funkt vom Getreidespeicher 26 in Richtung der Flüchtlingsunterkunft Getreidespeicher 21 und 23. Jetzt müssen nur noch die beiden Häuser im inneren mit Routern versorgt werden, um ein gleichmäßige Abdeckung zu erreichen. Zwei Router sind schon fertig, mir fehlt nur die Finanzierung und die Zeit zum Aufstellen.

Freifunk für Schornbusch

Router in Schornbusch
Router in Schornbusch
Heute habe ich acht Router in vier Stunden für Schornbusch konfiguriert. Die Container bestehen aus Metall, so dass die Wände ein Funksignal doch recht stark dämpfen. Darum habe ich vier Outdoor-Router (CPE210) für draußen und vier Indoor-Router (WR841ND) im Inneren der Container für einen von zwei Sozialräumen vorgesehen. Einer Router versorgt vom Eingangsgebäude aus die anderen Router mit der Internetanbindung. Die Outdoor-Router werden über Kabel mit den Indoor-Routern verbunden, eine Maßnahme, die sich schon in der Kriegerstraße bewährt hat. Dort verbindet ein gerichtete Outdoor-Router das Haus mit der nächsten Nachbarin, die bereit war uns zu helfen. Der zweite Router versorgt das Haus im Inneren.

Leider ist die Stadt etwas spät auf uns zugekommen und so müssen nachträglich Löcher gebohrt und Kabel wasserdicht durch die Wände geführt werden. Da ich die nächsten Woche keine Zeit habe die Router aufzustellen, werden sich dei Flüchtlinge noch ein Weile gedulden müssen.

Router hängt öfter? Was tun?

Aus Ramershoven wurde berichtet, dass die Router mehrmals die Woche neu gestartet werden müssen. Auch ich habe schon beobachtet, dass Router nach längerem Betrieb Zeit in einen seltsamen Zustand geraten. Allerdings kann nicht mehrmals in der Woche. Warum dies so ist, ist nicht so einfach zu ermitteln. Es kommt nicht so häufig vor und lässt sich nicht gezielt reproduzieren. Eine vorübergehende Abhilfe soll ein prophylaktischer Neustart pro Tag mittels cron leisten.

Dazu habe ich heute ein wenig mit einem Cron-Job experimentiert. Eigentlich ist es ganz einfach, aber unter OpenWrt gibt es ein paar Haken. Es kann zu einem unendlichen Reboot kommen, wenn cron kurz nach dem Reboot ausgeführt wird. Dies liegt daran, dass die Uhrzeit beim Start des Routers anhand des letzten Zeitstempel der Dateien in /etc gesetzt wird. Wenn die Router-Zeit auf die Uhrzeit des Reboot gesetzt wird, wird sofort ein weiterer Reboot ausgeführt, der wiederum zum Reboot führt.

Um diesen unendlichen Reboot zu vermeiden, habe ich einen Ausdruck entwickelt, der 70 Sekunden wartet, dann den Zeitstempel von /etc/banner ändert und mittels uptime prüft, ob der Router mindestens eine Stunde gelaufen ist. Die Wartezeit von 70 Sekunden stellt auch sicher, dass der Router mindestens eine Minute gelaufen ist, bevor uptime aufgerufen wird.

Das Ausgabeformat von uptime ist nicht sonderlich freundlich für Abfragen, wie die Beispielausgabe von uptime zeigt.

 15:29:31 up 5 days, 40 min,  load average: 0.45, 0.50, 0.47
 15:29:31 up 12:34,  load average: 0.45, 0.50, 0.47
 15:29:31 up 1 day, 55 min,  load average: 0.45, 0.50, 0.47
 15:29:31 up 3 days, 11:24,  load average: 0.45, 0.50, 0.47

Innerhalb der ersten Stunde wird die Zeit, die der Router läuft in Minuten im Format ’n min,‘ angegeben. Nach einer Stunde wechselt das Ausgabeformat zu hh:mm, um nach jeweils 24 Stunden in das Format ’n days?, m min,‘ oder ‚ n days, hh:mm,‘ zu wechseln.

Indem die Ausgabe von uptime auf den String ‚ min,‘ geprüft wird, kann bestimmt werden, ob der Router bereits länger als eine Stunde läuft. Nur dann soll ein Reboot ausgeführt werden und ein unendlicher Reboot verhindert.

Das Vorgehen ist wie folgt:

  1. Es wird 70 Sekunden gewartet. Damit ist die Zeit garantiert eine Minute weiter.
  2. Das Datum der Datei /etc/banner wird auf die aktuelle Zeit gesetzt, damit der Rechner nicht mit der Reboot-Zeit startet.
  3. uptime wird aufgerufen und
  4. mittels grep darauf geprüft, ob der Router länger als eine Stunde an ist.
  5. Wenn nur ‚min‘ in der Ausgabe von uptime enthalten ist, dann entfällt der Neustart.

In der Datei /etc/crontabs/root ist dazu folgender Eintrag zu hinterlegen, der den Router jeden Tag um 5:05 Uhr neu startet.

5 5 * * * ((sleep 70 ; /bin/touch /etc/banner; uptime) | ( grep -e '\(day\|min\)' | grep -v 'day' )) || /sbin/reboot >/dev/null

Nach dem Eintrag z.B. mit crontab -e erfolgt ist, muss dem cron Dämon die Änderung mit /etc/init.d/cron reload bekannt gegeben werden.

Anmerkung: Wichtig ist eine Leerzeile am Ende der Datei, damit cron richtig funktioniert.

Genug für heute.

PS: Der Test, ob der Router länger als eine Stunde läuft, geht leichter über die Datei /proc/uptime. Der Befehl sieht dann so aus:

5 5 * * * sleep 70 ; /bin/touch /etc/banner; test `sed 's#\..*##' /proc/uptime` -ge 3600 && /sbin/reboot >/dev/null

TP-LINK TL-WR1043ND V2

Gestern habe ich mich getraut meinen Router TP-LINK TL-WR1043ND V2 auf Freifunk umzustellen. Es hat geklappt. Damit funktionieren die Rheinbacher Images auf folgenden Geräten:

  • TP-LINK TL-WR841N v7.2
  • TP-LINK TL-WR841ND v9.0
  • TP-LINK TL-WR842ND v2.3
  • TP-LINK TL-WR1043ND v2.0
  • TP-LINK TL-WDR3600 v1.0

Für die neueren Modelle TP-LINK TL-WR841ND v10.0 gibt es leider noch kein – funktionierendes – Images. Da muss ich wohl auf das neuen Gluon warten.