Mein Freifunk funktioniert nicht mehr

Aus wiki.freifunk.net
Wechseln zu: Navigation, Suche

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 (meißt 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:

ssh $router_ip6 cat /lib/gluon/site.json | jq . | grep ip4

ssh $router_ip6 cat /lib/gluon/site.json | jq . | grep ip6

(bei älteren gluono versionen war die site 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 verbindet ist durch Uplinks mit dem IPv6-Internet. Um zu prüfen, ob eine Verbindung ins Internet besteht, werden Ping-Tests auf dem Freifunk-Router durchgeführt.

  1. per IP-Adresse: Wir pingen Google-DNS direkt per IP an:
    ping6 2001:4860:4860::8888
  2. 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.