Mein Freifunk funktioniert nicht mehr
Es soll Fälle geben, in denen Freifunk nicht (mehr) wie gewohnt funktioniert. Beispielsweise ist der eigene Freifunk-Router nicht mehr erreichbar, oder der Uplink zum Internet ist gestört.
Solche Probleme können unzählige Ursachen haben, so dass es schwer ist, einen "Master-Debug"-Plan zu beschreiben. Dennoch sollen auf dieser Seite Möglichkeiten aufgelistet werden, um das Problem einzukreisen und eine brauchbare Bug-Meldung zu verfassen.
Es ist gar keine Verbindung ins Internet möglich
Installation Prüfen
- Ist der Router am Strom angeschlossen?
- Steckt das Netzwerkkabel im (meist blauen) WAN Port?
- Ist das WLAN noch aktiviert? (Manche Router haben hinten eine Taste zum ausschalten des WLANs)
- Ist an deinem Internet-Router (z.B. FritzBox) der Zugriff für den Freifunk-Router erlaubt?
- Keine MAC-Adressen Sperre?
- Wird den Freifunk-Router per DHCP eine IP zugewiesen?
Neustart
den Router neu booten
Viele Probleme lassen sich durch einen simplen manuellen Neustart des Freifunk-Routers beheben. Ist ein Login per ssh
möglich, kann der Router durch den Befehl reboot
neu gestartet werden.
Als Holzhammermethode kann auch die Stromverbindung des Freifunk-Routers unterbrochen werden:
Resetknopf
(falls vorhanden)
Strom-Stecker ziehen
... und nach einigen Sekunden wieder hergestellt werden (Strom-Stecker einstecken). Dies ist die gründlichere Methode, damit sich auch alle Kondensatoren entladen.
in den Config-Modus starten
Ist ein Login per ssh
nicht möglich, muss unter Umständen erst der so genannte Remotezugriff im Router aktiviert werden. Hierfür startet man den Freifunk-Router im Config-Modus, indem man die Reset-Taste des Routers drückt.
Jetzt ist der Router wieder über die Ethernet-Ports erreichbar, und verteilt darüber per DHCP Netzwerkadressen. Man muss also seinen PC mit einem gelben Ethernet-Port des Routers verbinden und sich so eine neue IP-Adresse geben lassen. Anschließend ist der Router über die Webadresse 192.168.1.1
erreichbar. Hier kann nun wie in der Anleitung - Punkt 7 beschrieben der Remotezugriff aktiviert werden.
Läuft der Freifunk-Router wieder im "normalen" Modus, ist er per ssh
über seine lokale IP-Adresse erreichbar (siehe auch Wie finde ich meine IP heraus).
Die Verbindung ins Internet geht manchmal, manchmal nicht
Jetzt erst wird es Zeit sich mit deiner Community in Verbindung zu setzen. Die meißten haben auf ihrere Internetseite einen direkten Kommunikationsweg angegeben: Webchat über IRC oder Riot oder das Freifunk Forum.
Es möglich, dass
- a) eine Störung im Netz der Community vorliegt
- oder b) mit dem Router etwas nicht stimmt.
Um jetzt b) auszuschliessen oder a) zu beweisen benötigt man in der Kommunikation mit den Admins folgende Hinweise:
Wieviel RAM haben die betroffenen Knoten?
Wichtigster erster Schritt: in unserer Hardware Seite kann man herausfinden, ob der Knoten ev. nur 32MB Ram hat. Dies ist in größeren Communities ein Problem (da alle Knoten im Netz jedem Knoten bekannt sein müssen und diese Datenmengen zu groß werden können). Knoten mit nur 32MB RAM stürzen dann oft ab. Dieses Problem ist seit Jahren bekannt und sollte auch auf der Firmware-Downloadseite vermerkt sein, denn z.b. der häufig verwendete TP-Link 841N/NDhat zu wenig Speicher und sollte am Besten nicht mehr eingesetzt werden.
Symptome genau definieren
Damit die Admins dir helfen können solltest du genau beschreiben, was passiert.
Rebootet der Knoten häufig?
Dies kann man auf der Statusseite des Knotenssehen sehen, die meist auf den Karten der Community verlinkt sind. Viele haben auch eine Statistik Graphik bei jedem Knoten in der Karte, dessen Link genaueres verrät über die Knoten.
Hat der selbe Router schon mal funktioniert?
- hat der Knoten in einer anderen Community funktioniert?
- Oder erst seit einem Bestimmten Zeitpunkt nicht mehr?
- Falls du eine neue Firmware von Hand eingespielt hast, hast du dabei die Daten der alten Firmware behalten oder vergessen lassen?
- Beim Behalten der Daten funktioniert dies nur innerhalb der selben Community zuverlässig. Also beim Wechsel auf jeden Fall die Daten vergessen lassen.
- ein Downgrade der Firmware auf eine ältere Version funktioniert auch nur mit Vergessen korrekt
Problem einkreisen
Welche Knoten sind betroffen?
Bitte immer den Namen angeben und ds Modell der Knoten.
Sind alle Knoten im Netz betroffen?
Dies weist auf a) hin
nur einige?
Ev. sind nur bestimmte Hardware-Modelle betroffen? Dies könnte man auf der Karte in der Statistik Rubrik herausfinden.
... oder nur deine?
Dies weist auf b) hin
gluon
Die folgenden Punkte beziehen sich auf Router mit der gluon
-Firmware
Das Problem einkreisen
Die hier vorgestellten Verfahren setzten voraus, dass der Freifunk-Router per ssh
erreichbar ist. Dies sollte im lokalen LAN eigentlich immer der Fall sein.
next_nodes anpingen
Als ersten Schritt wollen wir herausfinden, ob wir den so genannten "next_node
" anpingen können.
Ist man als Client mit Freifunk verbunden, so sollte der Freifunk-Router, über welchen man Freifunk bezieht, unter den next_node
-Adressen erreichbar sein. Um dies zu testen benötigen wir die IP4 und IP6-Adressen des next_node
, welche in der Datei site.conf
der Freifunk-Firmware angegeben sind. Der Quelltext kann meist bei GitHub nachgeschlagen werden, hier am Beispiel Ruhrgebiet: https://github.com/ffruhr/site-ffruhr
Hier sucht man nach dem next_node
-Eintrag.
(Achtung: Dies ist ein Beispiel für das RUHRGEBIET!!! Die next_node
-Adresse kann also in anderen Communities ganz anders aussehen)
next_node = { ip4 = '10.53.254.254', ip6 = '2a03:2260:50:1::cafe', mac = '16:41:95:40:f7:dc', },
Die IP4-Adresse des next_node lautet (für das Beispiel Ruhrgebiet) 10.53.254.254
, die IPv6-Adresse lautet 2a03:2260:50:1::cafe
Sollte man per ssh
auf einem Freifunk-Router der selben Community zugriff haben, kann die Adressen alternativ mit folgenden Befehlen abgelesen werden (vielleicht muss Werkzeug jq vorher mit opkg install jq
installiert werden):
ssh $router_ip6 cat /lib/gluon/site.json | jq . | grep ip4
ssh $router_ip6 cat /lib/gluon/site.json | jq . | grep ip6
(bei älteren gluon-Versionen war die site.conf
direkt auf dem Router gespeichert als /lib/gluon/site.conf
)
Diese Adressen werden nun vom Client aus angepingt:
ping 10.53.254.254
und
ping6 2a03:2260:50:1::cafe
Für den anschließenden Fehlerbericht ist es wichtig, die Ergebnisse wie folgt mitzugeben:
ping nextnode IPv6: ok ping nextnode IPv4: ok
Sofern die Adressen anpingbar sind, kann man hierüber auch eine ssh
-Verbindung zum Freifunk-Router aufbauen.
Gateways prüfen
Auf dem Freifunk-Router sollten nun die Gateway-Verbindungen überprüft werden. Dies erfolgt mit dem Befehl
batctl gwl
Dies erzeugt eine Ausgabe ähnlich wie hier:
Gateway (#/255) Nexthop [outgoingIF]: gw_class ... [B.A.T.M.A.N. adv 2013.4.0, MainIF/MAC: mesh-vpn/a2:f7:c1:99:27:7a (bat0)] 02:bf:ef:ca:fe:4f (255) 04:bf:ef:ca:fe:4f [ mesh-vpn]: 207 - 48MBit/48MBit 02:bf:ef:ca:fe:4d (135) 04:bf:ef:ca:fe:4f [ mesh-vpn]: 207 - 48MBit/48MBit 02:bf:ef:ca:fe:8b (135) 04:bf:ef:ca:fe:7f [ mesh-vpn]: 207 - 48MBit/48MBit 02:bf:ef:ca:fe:02 (135) 04:bf:ef:ca:fe:4f [ mesh-vpn]: 199 - 24MBit/24MBit 02:bf:ef:ca:fe:4c (135) 04:bf:ef:ca:fe:4f [ mesh-vpn]: 207 - 48MBit/48MBit 02:bf:ef:ca:fe:2a (119) 04:bf:ef:ca:fe:7f [ mesh-vpn]: 207 - 48MBit/48MBit 02:bf:ef:ca:fe:6c (135) 04:bf:ef:ca:fe:7f [ mesh-vpn]: 207 - 48MBit/48MBit 04:bf:ef:ca:fe:fe (135) 04:bf:ef:ca:fe:7f [ mesh-vpn]: 207 - 48MBit/48MBit 02:bf:ef:ca:fe:6a (133) 04:bf:ef:ca:fe:4f [ mesh-vpn]: 207 - 48MBit/48MBit 04:bf:ef:ca:fe:7b (135) 04:bf:ef:ca:fe:4f [ mesh-vpn]: 207 - 48MBit/48MBit 04:bf:ef:ca:fe:6b (135) 04:bf:ef:ca:fe:7f [ mesh-vpn]: 207 - 48MBit/48MBit 02:bf:ef:ca:fe:8a (135) 04:bf:ef:ca:fe:7f [ mesh-vpn]: 207 - 48MBit/48MBit 02:bf:ef:ca:fe:3a (119) 04:bf:ef:ca:fe:7f [ mesh-vpn]: 207 - 48MBit/48MBit 02:bf:ef:ca:fe:01 (135) 04:bf:ef:ca:fe:4f [ mesh-vpn]: 207 - 48MBit/48MBit 04:bf:ef:ca:fe:2b (119) 04:bf:ef:ca:fe:7f [ mesh-vpn]: 207 - 48MBit/48MBit 02:bf:ef:ca:fe:7a (119) 04:bf:ef:ca:fe:7f [ mesh-vpn]: 207 - 48MBit/48MBit 02:bf:ef:ca:fe:4a (135) 04:bf:ef:ca:fe:7f [ mesh-vpn]: 207 - 48MBit/48MBit 02:bf:ef:ca:fe:3b (117) 04:bf:ef:ca:fe:4f [ mesh-vpn]: 207 - 48MBit/48MBit 04:bf:ef:ca:fe:7e (132) 04:bf:ef:ca:fe:7f [ mesh-vpn]: 207 - 48MBit/48MBit 02:bf:ef:ca:fe:4b (135) 04:bf:ef:ca:fe:7f [ mesh-vpn]: 207 - 48MBit/48MBit 02:bf:ef:ca:fe:6d (119) 04:bf:ef:ca:fe:4f [ mesh-vpn]: 207 - 48MBit/48MBit => 04:bf:ef:ca:fe:7f (255) 04:bf:ef:ca:fe:7f [ mesh-vpn]: 207 - 48MBit/48MBit
Sieht man eine solche Gateway-Liste, so sollte man jetzt versuchen, die einzelnen Gateways (linke Spalte) anzupingen, nach dem Schema:
batctl p GATEWAY
also z.B.
batctl p 04:bf:ef:ca:fe:7f
Für den anschließenden Bug-Report schreibt man folgende Informationern:
Gateways: vorhanden, pingbar
Verbindung ins Internet prüfen
Das Freifunk-Netz ist durch Uplinks mit dem IPv6-Internet verbunden. Um zu prüfen, ob eine Verbindung ins Internet besteht, werden Ping-Tests auf dem Freifunk-Router durchgeführt.
- per IP-Adresse: Wir pingen Google-DNS direkt per IP an:
ping6 2001:4860:4860::8888
- per URL: Wir pingen auf www.google.com:
ping6 www.google.com
Erreichbarkeit aus dem Internet prüfen
Der Freifunk-Router ist über seine IP-Adressen aus dem Internet erreichbar. Die Adressen können, sofern man per ssh
verbunden ist, mit folgendem Befehl abgelesen werden:
ifconfig
Es folgt eine lange Ausgabe, die mit folgenden Zeilen zu bat0
beginnt:
bat0 Link encap:Ethernet HWaddr A0:F3:C1:XY:ZZ:7A inet6 addr: 2a03:2260:50:1:a2f3:c1ff:feXY:ZZ7a/64 Scope:Global inet6 addr: fe80::a2f3:c1ff:feXY:ZZ7a/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:8274731 errors:0 dropped:0 overruns:0 frame:0 TX packets:40435 errors:0 dropped:166 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:694607953 (662.4 MiB) TX bytes:4786247 (4.5 MiB)
Die erste inet6-Adresse (beginnend mit 2a03:
) ist die globale IPv6 des Freifunk-Routers. Sie ist aus dem gesamten Internet erreichbar. Die Adresse lautet in diesem Beispiel 2a03:2260:50:1:a2f3:c1ff:feXY:ZZ7a
(der Nachtrag /64 Scope:Global
wird abgeschnitten!).
Die zweite inet6-Adresse (beginnend mit fe80:
) ist die lokale IPv6 des Freifunk-Routers. Sie ist nur aus dem Freifunk-Netz erreichbar. Die Adresse lautet in diesem Beispiel fe80::a2f3:c1ff:feXY:ZZ7a
(der Nachtrag /64 Scope:Link
wird abgeschnitten!).
Wir überprüfen nun auf einem Client, ob wir den Router unter seiner globalen Adresse erreichen können. Für den globalen Pingtest benötigen wird "nur" einen IPv6-Internetzugang, der Client muss nicht zwingend mit Freifunk verbunden sein:
ping6 2a03:2260:50:1:a2f3:c1ff:feXY:ZZ7a
Logfile lesen
Das Logfile kann auf der Konsole mit dem Befehl logread
eingesehen werden. Wird der Befehl mit der Option logread -f
eingegeben, so wird dir das Log fortlaufend angezeigt und die Ausgabe aktualisiert sich sobald neue Meldungen generiert werden.