freifunk : seid frei : funkt frei
Stand: 2017-04-11


Nr. Freifunk Handbuch Inhalt:
1 Was ist Freifunk?
2 Freifunk Router Empfehlungen (für OpenWRT bzw. LEDE-Project)
3 Freifunk Zeitgesteuert aktivieren bzw. deaktivieren
4 Freifunk Bandbreite zeitgesteuert anpassen
5 lokale Router koppeln (zentralen Offloader einrichten)
6 Meshing über WAN aktivieren
7 WLAN-Mesh ein-/ausschalten
8 WLAN-Kanal wechseln
9 Sendeleistung optimal einstellen (Freifunk Reichweite erhöhen)
10 manuelles Routerupdate über SSH
11 Freifunk Router SSH-Keys generieren bzw. aktualisieren
12 original Hersteller Firmware (Stock-Rom) wieder herstellen
13 lokale Router IP-Adresse nachträglich festlegen bzw. ändern
14 weiterführende Links

1. Was ist Freifunk?


Freifunk ist ein nichtkommerzielles freies Bürgernetzwerk.
Jeder Freifunker stellt hierzu einen eigenen WLAN-Router allen für den Datentransfer zur Verfügung.
Über die Freifunk-Netzwerke können so dezentral beliebige Daten wie z. B. Musik, Spiele, Filme usw. übertragen werden.
Zudem steht über Freifunk meist auch ein freier und offener Internetzugang zur Verfügung.
Freifunk verwendet auf den Routern in der Regel eine angepasste Linux Firmware (meist "Gluon" basierend auf "OpenWRT").

Ihr wollt mitmachen? Super!

Es gibt eine Vielzahl von freifunktauglichen Routern (man kann für Freifunk fast alle Router die auch OpenWRT unterstützen verwenden).
Dennoch möchte ich euch hier insbesondere die folgenden Router ans Herz legen, da diese wirklich problemlos laufen.
Zum einen werden diese Router nahezu von allen aktuellen Freifunkern/Communitys unterstützt.
Weiterhin haben die hier aufgelisteten TP-Link Router einen gut funktionierenden fall back Modus (über TFTP), so dass man diese immer wieder relativ leicht wiederbeleben kann.
Auch kann man diese Router auch relativ leicht wieder mit der originalen Firmware bestücken.
Bei anderen Herstellern ist das nicht immer so Problemlos.
Die hier nun aufgelisteten Router wurden von mir zum großen Teil schon selbst bestellt und/oder mit einer Freifunkrouter Firmware bestückt:

2. OpenWRT/Freifunk Router Empfehlungen (getestet):



Hinweis vorab:
Die Hardware-Version (HW) der hier aufgezählten Router ist egal, es werden in der Regel alle Hardware-Versionen unterstützt.
Neuere Versionen sollte man bevorzugt einsetzen, da diese meist eine bessere Ausstattung wie z. B. eine schnellere CPU haben. Bei meinen Bestellungen bei Amazon erhielt ich jedenfalls immer sehr aktuelle Ware.

Hinweise zum 'TP-LINK TL-WR1043ND V4':
Die Version V4 hat nun eine noch schnellere CPU mit 750MHz und mit 16 MB sogar doppelt so viel Flash Speicher.
Wer also eine neue V4er Version erhält kann sich eigentlich glücklich schätzen.
Wichtig: Auch diese Version wird von Freifunk unterstützt. Wichtig ist nur, das euere Community mindestens Gluon 2016.2.2/Gluon 2016.2.3 oder besser einsetzt.
Wendet euch hier im Zweifelsfall an euere Community, das diese euch passende Firmware bereit stellt. Im Saarland laufen z. B. mehrere V4 Router stabil.
Beachtet auch: Die neueren Gluon Versionen setzen nicht mehr auf OpenWRT, sondern auf den Nachfolger das LEDE-Projekt.org.
Solltet ihr also einen neuen Router erhalten der unter OpenWRT nicht mehr unterstützt wird, so schaut auf der Webseite vom LEDE-Projekt.org nach (nur wenn ihr die Router für OpenWRT verwenden wolltet).

Solltet Ihr neue 'EU' gelabelte Geräte erhalten, macht das nichts, denn auch diese werden unterstützt.
In der Regel wird hier die die selbe Firmware installiert wie für die nicht EU Geräte. Wichtig ist nur, dass die Firmware aktuell ist.
Wendet euch bei Problemen an euere Community. Haben wir auch hier mehrere EU Router produktiv & stabil als Freifunk-Router am laufen.

Indoor:
TP-Link TL-WR1043ND - drei abnehmbare Antennen, möglichst HW-Version V2 oder V3, GLAN, schnelle CPU 720MHz, 64MB RAM, 8MB Flash, ab ca. 50€ * schnelle CPU Empfehlung *
TP-Link TL-WR841ND - zwei abnehmbare Antennen, möglichst HW-Version V10 oder V11, 100Mbit-LAN, CPU 560 Mhz, Speicher knapp nur 32MB RAM, 4MB Flash, ab ca. 22€ * OK *
TP-Link TL-WR841N - zwei nicht abnehmbare Antennen, sonst identisch wie TP-Link TL-WR841ND, ab ca. 15€ * Preistipp für Einsteiger *


Perfekt für Outdoor:
TP-Link CPE210 - Antenne ist direkt im Gerät verbaut (9dBi), HW-Version V1, 100Mbit-LAN, CPU 560MHz, 64MB RAM, 8MB Flash, mit PoE-Adapter, ab ca. 45€ * Empfehlung *


Freifunk WLAN im Auto, Hotspot im Auto, portabel & mobil, ideal für unterwegs, für Festivals & Feiern unter freiem Himmel:
TP-Link TL-MR3020 Portable 3G/4G WLAN-Router - Antenne ist integriert, HW-Version V1, 100Mbit-LAN, CPU 400MHz, 32MB RAM, 4MB Flash,
ein USB-Port für einen UMTS-Stick, Stromversorgung über USB mit Netzteil,  ab ca. 25€ * Die perfekte Empfehlung fürs Auto & mobilen Freifunk! *
Will man den Router als mobilen Freifunk Router verwenden, so empfehle ich hier zwei Geräte zu kaufen:

Das 1. Gerät verbindet man mit einem herkömmlichen UMTS-Stick, um sich über 3G/4G mit dem Internet zu verbinden. Über den vorhandenen LAN-Port verbindet man sich nun zu
dem 2. Gerät. Auf dem 2. Gerät installiert man dann wie gewohnt eine beliebige Freifunkfirmware und schon steht Freifunk unterwegs zur Verfügung.
Hotspot/Netzaufbau mobiler Freifunk Router (TL-MR3020)
Die Versorgung der mobilen Router erfolgt übrigens nur über USB (ein Steckernetzteil liegt bei). Daher steht einem Betrieb im Auto z. B. relativ wenig im Weg.
Der Betrieb des Freifunk Knotens kann natürlich auch über eine größere Powerbank realisiert werden,
dann hat man einen relativ kleinen und portablen Freifunk Knoten!
Ein einzelner TP-Link TL-MR3020 ist übrigens nur etwa 7,4*2,3*6,6cm groß.
Da der UMTS-Stick nur über USB angeschlossen wird, kann man diesen auch mit einer USB-Verlängerung im Auto optimal platzieren und den Rest im Handschuhfach o. ä. verstauen.
Auf dem Freifunk Router kann man dann auch problemlos den Auto-Updater aktiviert lassen. Aufwendige Bastellösungen kann man sich so sparen.

Über diese Combi: UMTS über den eben erwähnten Router und Freifunk erreiche ich hier eine gute 6000er download/1000er upload Geschwindigkeit (D1 Netz UMTS).
Video streamen, größere Downloads sind also alles kein Problem!

Die original Firmware vom TL-MR3020 sollte man zumindest auf dem mit dem Stick verbunden Router mit der Firmware von TP-Link aktualisieren (dies verbessert die Stick Kompatibilität, wobei ich keine Probleme hatte).

Die originale Firmware des mobilen Routers ist übrigens erstaunlich gut ausgestattet.
Man kann damit z. B. Funknetze verlängern, oder vorhandene unter einem anderen Namen weiter bereitstellen - um z. B. in Hotels das Netz für andere Mitbewohner zu öffnen uvm.
Für knapp 25€ ist der TL-MR3020 in meinen Augen unschlagbar.

Freifunk Router anpassen:
Wichtig vorab: Die hier nun folgende Dokumentation bezieht sich nur auf aktuelle Router mit "L2TP" bzw. "802.11s" meshing Firmware.
Auf ältere Versionen mit "fastd" wird hier in der Regel nicht eingegangen.
Ab Gluon 2016 haben sich einige Einstellungen geändert.
Insbesondere geplante Tasks (Aufgaben) werden nicht mehr über [crontab -e] eingetragen.
Sondern man verwendet dafür ab sofort ein Script. Um das Script auf dem Router ab zu legen ist ein SSH-Zugang Voraussetzung (dieser wird hier vorausgesetzt).

3. das Freifunknetz Zeitgesteuert an- und abschalten (ruhe in der Nacht):


3. das Freifunknetz Zeitgesteuert an- und abschalten:


Hierzu legt man wie folgt ein Script an.
In den entsprechenden Pfad wechseln.
cd /usr/lib/micron.d
Scripte die in diesem Ordner liegen werden automatisch abgearbeitet.

Der Scriptname ist beliebig wählbar.
vi _mein_Scriptname

Mit der Taste i wechselt man dann zunächst in den Bearbeitungsmodus.
Hier kann man dann man verschiedene Tasks hinzufügen.
Das Freifunknetz Zeitgesteuert an- und abschalten (ruhe in der Nacht):
0 19 * * * uci set wireless.client_radio0.disabled='1';wifi
0  6 * * * uci set wireless.client_radio0.disabled='0';wifi
Zeiteinstellungen werden wie gewohnt im crontab-Format vorgenommen.
Hier wird Beispielsweise das Client Netz um 19 Uhr abgeschaltet und um 6 Uhr früh wieder aktiviert.
Es wird dabei kein commit (Schreibzugriff auf den Flash/ROM) durchgeführt.
Alle Änderungen werden nur im RAM vorgenommen.

Beachtet: Startet man den Router neu, so wird die zuletzt über [commit] eingestellte Einstellung wieder aktiv.

War [wireless.client_radio0.disabled] zuvor fest auf [0] gesetzt,
so kann der Router nach einem Neustart sofort wieder verwendet werden,
ggf. auch außerhalb der gesperrten Zeit  (bequeme aber weniger sichere Variante).
uci set wireless.client_radio0.disabled='0' && uci commit wireless

War [wireless.client_radio0.disabled] zuvor fest auf [1] gesetzt,
so kann der Router erst wieder verwendet werden,
wenn die Freigabezeit (hier ab 6 Uhr) gekommen ist.
Ein Neustart des Routers bring hier also nichts (Kindersichere Variante).
uci set wireless.client_radio0.disabled='1' && uci commit wireless
 
Man könnte den Status auch jedes Mal neu über ein commit fest schreiben.
Davon würde ich jedoch abraten, da
1. jeder commit einen Schreibzugriff im Flashspeicher des Routers verursacht
(dies kann die Haltbarkeit des Routers verschlechtern) und
2. durch geschicktes Ausschalten des Routers kurz vor dem ab- & anschalten des Zeitfensters
könnte man die Zeitbegrenzung umgehen (dies wäre nicht 100% Kindersicher).

Die vorgenommen Änderungen speichert man über
die Tasteneingaben esc und :wq (Doppelpunkt & write & quit) und Enter.

Einstellungen aktivieren:
Um dem Dienst micrond die neuen Einstellungen bekannt zu machen, muss man diesen noch neu initialisieren:
/etc/init.d/micrond reload
Alternativ kann man auch den Router neu starten, dann werden die Einstellungen auch übernommen.

Beachtet: Selbst angelegte Scripte werden bei einem Firmware-Update meist nicht berücksichtigt.

4. Bandbreite des Freifunknetzwerks zeitgesteuert ändern:


4. Freifunknetzwerk Bandbreite zeitgesteuert ändern:


Hierzu legt man wie folgt ein Script an.
In den entsprechenden Pfad wechseln.
cd /usr/lib/micron.d
Scripte die in diesem Ordner liegen werden automatisch abgearbeitet.

Der Scriptname ist beliebig wählbar.
vi _mein_Scriptname

Mit der Taste i wechselt man dann zunächst in den Bearbeitungsmodus.
Hier kann man dann verschiedene Tasks hinzufügen.

Bandbreite des Freifunknetzwerks zeitgesteuert ändern:
0  7 * * 1-5 uci set
simple-tc.mesh_vpn.enabled='1' && /etc/init.d/tunneldigger reload
0 18 * * 1-5 uci set
simple-tc.mesh_vpn.enabled='0' && /etc/init.d/tunneldigger reload
Zeiteinstellungen werden hier wie gewohnt im crontab-Format vorgenommen.
Hier wird Beispielsweise das Client Netzwerk nur Montag (1) bis Freitag (5) zwischen 7 und 18 Uhr gedrosselt.
In der übrigen Zeit wird die komplett verfügbare Geschwindigkeit freigegeben.

Hier noch ein komplexeres Beispiel:
Immer Werktags, Montag (1) bis Freitag (5) ab 7 Uhr früh drosseln.
0  7 * * 1-5   uci set
simple-tc.mesh_vpn.enabled='1' && /etc/init.d/tunneldigger reload

Montag (1), Mittwoch (3) & Freitag (5) ab 12 Uhr nicht mehr drosseln (kurze Werktage).
0 12 * * 1,3,5 uci set
simple-tc.mesh_vpn.enabled='0' && /etc/init.d/tunneldigger reload


Dienstag (2) ab 16 Uhr nicht mehr drosseln.
0 16 * * 2     uci set
simple-tc.mesh_vpn.enabled='0' && /etc/init.d/tunneldigger reload


Donnerstag (4) ab 18 Uhr nicht mehr drosseln.
0 18 * * 4     uci set
simple-tc.mesh_vpn.enabled='0' && /etc/init.d/tunneldigger reload


Parallel dazu muss man einmalig noch die Grenzwerte für die Drosselung festlegen.
Die Werte sollte man nicht zu niedrig setzen, denn drosselt man zu stark, so bleiben die User nur länger online, das wiederum bremst dann nur andere nachfolgende Nutzer unnötig aus.
Meine Empfehlung lautet daher hier, die Hälfte der effektiv zur Verfügung stehenden Geschwindigkeit anzugeben.
Den Upload sollte man dabei etwas höher ansetzen, meine Empfehlung wäre etwa 66% der zur Verfügung stehenden Geschwindigkeit.

Das Downloadlimit legt man wie folgt dauerhaft fest:
uci set simple-tc.mesh_vpn.limit_ingress='7000' && uci commit simple-tc

Das Uploadlimit legt man wie folgt dauerhaft fest:
uci set simple-tc.mesh_vpn.limit_egress='700' && uci commit simple-tc

Hinweise zum Tunneldigger:
"tunneldigger" liegt unter "/etc/init.d/" und ist ein Shell-Script.
Der Aufruf muss daher entweder über den kompletten Pfad wie folgt "/etc/ini.d/tunneldigger" oder aus dem Pfad über "./tunneldigger" (mit führenden Punkt und Slash) geschehen.
Ein reiner Aufruf von "tunneldigger" funktioniert nicht, da hier das Shell-Script nicht gefunden wird, bzw. hier verschiedenste Parameter fehlen.
Während der Tunneldigger Dienst neu startet "reload", werden kurzfristig alle Clientverbindungen für ca. 30 Sekunden getrennt.
Diese verbinden sich nach meinen Beobachtungen aber wieder alle automatisch.

Die vorgenommen Änderungen speichert man über
die Tasteneingaben esc und :wq (Doppelpunkt & write & quit) und Enter.

Einstellungen aktivieren:
Um dem Dienst micrond die neuen Einstellungen bekannt zu machen, muss man diesen noch neu initialisieren:
/etc/init.d/micrond reload
Alternativ kann man auch den Router neu starten, dann werden die Einstellungen auch übernommen.

Wichtig hierzu:
1. Selbst angelegte Scripte sind oft nicht Firmwareupdate fest!
Das bedeutet, nach einem automatischen Firmewareupdate des Freifunk Routers sind die Scripte meist verloren.
Damit man diese nicht immer neu eingeben muss, empfehle ich die entsprechenden Daten auf einem eigenen Webserver ab zu legen.
Sollte man dann das Script noch einmal benötigen, so kann man sich dieses dann ganz leicht mit folgenden Befehl herunterladen:

In den entsprechenden Pfad wechseln.
cd /usr/lib/micron.d

Der Pfad sollte auf die eigene Domäne angepasst werden, bzw. man sollte die Daten den eigenen Ansprüchen entsprechend noch anpassen.
wget http://ctaas.de/_timer.sh
(Freifunknetz Zeitgesteuert aktivieren und deaktivieren.)
wget http://ctaas.de/_speed.sh
(Die Geschwindigkeit im Freifunknetzwerk Zeitgesteuert verändern.)

Eingaben übernehmen (dieser Befehl ist auch nach einem Firmwareupdate nötig).
/etc/init.d/micrond reload

2. Beim Erstellen der Scriptdatei sollte man beachten, dass diese mit Linux Zeilenumbrüchen gespeichert wird.
Erstellt man die Datei z. B. mit dem Standard Editor unter Windows (notepad.exe), so erhält man eine Datei die die falschen Zeilenumbrüche hat.

3. Alle Eingaben die man über [uci set ...] und [uci commit ...] festgesetzt hat sind in der Regel immer Update fest.
Diese Einstellungen bleiben demnach nach einem Firmware Update erhalten.

5. lokale freifunk Router koppeln (Offloader angeben):


Hat man mehrere Router im lokalen Netz gekoppelt und möchte dass diese alle nur über einen bestimmten Anschluss raus gehen, so muss man diese entsprechend konfigurieren.

Angenommen man hat einen 16.000er Anschluss und man betreibt 3 Router.
So hat man das Problem das der lokale DSL-Anschluss überfordert ist, wenn diese alle zu 100% ausgelastet sind.
Denn wenn man z. B. auf jedem Router eine 8.00er Rate freigibt ergibt sich
z. B. bei 3 Routern * 8.000er Geschwindigkeitsfreigabe je Router = eine 24.000er Gesamtauslastung/Geschwindigkeit am Zielrouter.
Die Auslastung im Freifunknetz kann somit höher ausfallen als der eigene Anschluss eigentlich hergibt.
Man könnte jetzt zwar jeden z. B. Router auf eine 4.000er Rate drosseln, so das 3 * 4.000er = 12.000er ergibt.
Der Anschluss wäre dann gedrosselt - allerdings wären dann die einzelnen Knoten dann auch recht langsam.

Besser ist es hier einen einzelnen Router als zentralen Router zu definieren, über welchen der ganze Verkehr laufen soll.
Dieser Router wird dann Offloader genannt.
Bevorzugt sollte man hier einen möglichst schnellen Router verwenden.
Empfehlen würde ich hier insbesondere den TP-Link TL-WR1043ND, denn dieser ist mit 720 MHz deutlich schneller als viele andere Router.

Router als Offloader (Exit-Node/Exit-Knoten) definieren:
Man sollte zuerst über [uci show ...] nachsehen welcher Wert zuvor gesetzt ist.

uci show fastd.mesh_vpn.enabled          (Einstellungen für alte fastd Firmware anzeigen.)
uci show tunneldigger.@broker[0].enabled (Einstellungen für neue L2TP Firmware anzeigen.)

Standardmäßig sollte der Wert auf '1' stehen.
Die '1' bedeutet dabei, dass der entsprechende Router immer selbstständig eine VPN-Verbindung zum Freifunk-Gateway (Exit-Node) aufbaut.

Die Router muss man nun wie folgt anpassen:
Der Router der den lokalen Exit-Node bereitstellen soll (der Offloader) baut ja wie alle anderen Router automatisch eine VPN-Verbindung ins Netzwerk auf (dieser bleibt unverändert).
Auf allen anderen Routern im lokalen Netzwerk muss man nun diesen eigenständigen VPN-Aufbau zum Freifunk-Gateway verhindern.
Hierzu setzt man auf allen übrigen Routern folgende Werte:

uci set fastd.mesh_vpn.enabled='0' (Nur verändern/setzen wenn der alte Wert vorhanden war.)
uci set tunneldigger.@broker[0].enabled='0'
uci commit fastd
uci commit tunneldigger
reboot

Die '0' bedeutet nun, dass dieser Router keinen VPN-Tunnel mehr zum Freifunk-Gateway der Community aufbaut.
Stattdessen wird aller Traffic zum nächsten Knoten mit Internetverbindung (z. B. zum eigenen lokalen Offloader) weiter geleitet.
Hinweis: Man sollte hier alle vorhanden Werte ändern, auch Werte die ggf. von einer alten Firmware wie fastd stammen.
Da dieser alte Wert meist bei einem Firmwareupdate noch mit abgefragt und übernommen wird.

Will man dann den Traffic begrenzen oder Zugriffszeiten festlegen, so muss man dies nur noch auf dem zentralen Offloader-Knoten tun.
Hier kann man dann z. B. direkt eine 12.000er Rate freigeben.
Knotennutzer haben dann immer die bestmögliche Geschwindigkeit zur Verfügung und die eigene Leitung ist nicht überlastet.

Anmerkungen:
Die oben genannten Einstellungen werden erst nach einem Neustart des Routers übernommen.
Die veränderten Einstellungen kann man auf der Web-Karte (mesh-viewer) überprüfen.
Hier sollte dann bei den Verbindungseinstellungen der Router keine VPN Verbindung mehr stehen (meist unten links).
Dort sollten bei den betroffenen Routern nur noch die mesh-Verbindungen zu den anderen lokalen Routern aufgelistet sein.
Hierbei muss man noch beachten, dass die Kartenaktualisierung oft einige Zeit dauert.
In der Regel sollte man mind. 5-10 Minuten warten, dann sollte alles passen.

6. Meshing über die WAN-Schnittstelle (LAN):


Hat man mehrere Router - die alle über ein lokales Netzwerk verbunden sind, so sollte man möglichst das meshing über WAN aktivieren.
Über den WAN-Port am Router (meist der blaue Port) wird dann nicht nur der Internetzugang bereit gestellt, sondern gleichzeitig das meshen zu allen anderen lokalen Routern realisiert.
Da die lokalen Knoten dann nicht mehr über WLAN sondern über LAN meshen steht somit mehr Sendekapazität für die Freifunk-Nutzer zur Verfügung (stabilere & schnellere Verbindung).

Folgendes muss man auf allen Routern im lokalen Netzwerk durchführen.

WAN-meshing aktivieren
(bei mehreren lokalen Routern empfohlen):
uci set network.mesh_wan.auto='1' &&
uci commit network && /etc/init.d/network restart


WAN-meshing deaktivieren (Standard):
uci set network.mesh_wan.auto='0' &&
uci commit network && /etc/init.d/network restart


7. WLAN-mesh-Netz deaktivieren & aktivieren:


Hat man mehrere Router - die alle über ein lokales Netzwerk verbunden sind, so kann man das WLAN-mesh-Netz ggf. abschalten.
Durch das abschalten der mesh-Funktion zwischen den Knoten, steht dann mehr Sendekapazität für die Freifunk-Nutzer zur Verfügung (schnellere & stabilere Verbindung).

Wichtig:
Bevor man das WLAN-meshing abschaltet sollte man jedoch vorher sicherstellen, dass der Knoten auch wirklich über LAN erreichbar ist.
Weiterhin sollte man beachten, dass sich dann andere Knoten nicht mehr über WLAN mit dem Freifunk-Netzwerk verbinden können, wenn man das mesh-Netzwerk abgeschaltet hat.
Der Grundgedanke des Freifunk mesh-Netzes wird dabei zerstört. Das abschalten der mesh-Funktionalität sollte daher wohl überlegt sein.

Wann kann man das WLAN-meshen trotzdem deaktivieren?
Das WLAN-Mesh-Netz sollte man abschalten, wenn ein meshen mit Nachbarknoten in absehbarer Zeit nicht möglich ist, also z. B. bei Indoor-Installationen wo der Freifunk-Knoten sowieso nie anderweitig erreichbar ist.
Oder, wenn man z. B. mehrere Router lokal über LAN gekoppelt hat (um die Auslastung zu erhöhen) und dabei einige Router auf anderen Sendekanälen betreibt. Hier sollte man dann auf allen Routern mit abweichenden Kanälen die mesh-Funktionalität ebenso deaktivieren.

WLAN-Mesh zwischen den Knoten deaktivieren (insbesondere bei Indoor & anderen Sendekanälen):
uci set wireless.ibss_radio0.disabled='1' &&
# altes ibss-mesh-Netz
uci set wireless.mesh_radio0.disabled='1' &&
# neues 802.11s basiertes mesh-Netz
uci commit wireless && wifi

WLAN-Mesh zwischen den Knoten aktivieren (Standard):
uci set wireless.ibss_radio0.disabled='0' &&
# altes ibss-mesh-Netz
uci set wireless.mesh_radio0.disabled='0' &&
# neues 802.11s basiertes mesh-Netz
uci commit wireless && wifi

8. WLAN-Kanal ändern:


Freifunk-Knoten können sich nur untereinander vernetzen, wenn auch alle anderen Knoten den selben Kanal verwenden. Verändert man nun den WLAN-Kanal, so kann der Router nicht mehr mit anderen Freifunk-Routern meshen - der Grundgedanke des mesh-Netzes (der Netzaufbau) wird zerstört. Weiterhin kann dies im ungünstigsten Fall sogar dazu führen, das der Router nicht mehr erreichbar ist - falls dieser zuvor nur über das mesh-Netz erreichbar war.  Das wechseln des Kanals muss also wohl überlegt sein.

Wann kann ein Wechsel des Kanals dennoch sinnvoll sein?
Zum einen wenn größere Störungen auf dem Standard-Kanal auftreten, da dieser schon von zahlreichen anderen Routern verwendet wird.
Zum anderen wenn man mehrere Router an ein und derselben Stelle betreibt um z. B. die Auslastung eines stark frequentierten Knotens zu verbessern.
Man könnte z. B. an einem Standort mehrere Router aufstellen und jedem Router einen unterschiedlichen Kanal zuweisen.
Auf den Routern die nicht dem Standard-Kanal entsprechen sollte man dann das WLAN-meshing deaktivieren (siehe Punkt 7), da es eher unwahrscheinlich ist das jemand einen weiteren Router mit diesem Kanal betreiben wird.

Den WLAN-Kanal wechseln:
uci set wireless.radio0.channel='1' &&
uci commit wireless && wifi
Satt der '1' muss man den gewünschten Kanal angeben.
Die Kanäle 1, 5, 9 und 13 (nicht überlappende) werden empfohlen. Andere Kanäle sollte man möglichst meiden.

Wichtig:
Auf Routern die sich mit anderen Routern in einem mesh-Netzwerk befinden sollte man niemals den Kanal wechseln.

9. freifunk Router WLAN Sendeleistung optimal anpassen - freifunk Reichweite verbessern:

9. freifunk Router WLAN Sendeleistung optimieren:



Wichtiges vorab:
Es macht nicht immer Sinn die Werte der Sendeleistung einfach zu erhöhen!

Denn WLAN ist in etwa vergleichbar mit dem Menschlichen hören.
Ruft z. B. jemand mit einem Megaphone, so hört das natürlich jeder, sowohl nahe, als auch weiter weg stehende Menschen.
Menschen die dem Megaphone nahe stehen können dem Rufer Antworten (Verbindung klappt).
Menschen die das Megaphone gerade so noch hören, können dem Rufer jedoch nicht mehr Antworten, sie sind zu weit weg,
sie können zwar zurück Rufen, werden aber von der Gegenseite dem Megaphone Rufer nicht mehr gehört (Verbindung klappt nicht).

zum Merken:
Steht also ein Client weit weg von einem Knoten bei dem die Sendeleistung zu hoch ist, so kann dieser zwar das freifunk Netzwerk sehen,
nur klappt dann die Verbindung meist trotzdem nicht, da der freifunk Knoten die Anfragen vom Client nicht mehr empfangen kann.


Das liegt schlicht und einfach daran, dass die Clients (meist ein Handy, in der Regel nur Gesetzeskonform, also mit höchstens 20 dBm senden). Ist bei einem Knoten die Sendeleistung zu hoch, so sieht das Handy im Randbereich zwar das freifunk Netz, kann sich aber trotzdem nicht damit verbinden, da der Knoten die Rückantworten vom Handy nicht mehr empfängt. Der Frust das, dass freifunk Netzwerk dann nicht funktioniert kann ganz schön groß sein.

Die Lösung ist eigentlich relativ einfach, man senkt die Sendeleistung beim freifunk Knoten geringfügig.
Was passiert? Die Clients müssen zum Verbindungsaufbau zwar näher an den Knoten heran gehen, werden dafür aber vom freifunk Knoten umso besser gehört.
Daraus ergibt sich eine sehr stabile und ggf. sogar schnellere Verbindung.

zum Merken:
Durch eine Absenkung der Sendeleistung um einige dBm kann die Verbindungsstabilität zum Knoten ggf. sogar verbessert werden.

Will man also die Reichweite möglichst stabil erweitern, so hilft nur das Anbringen einer besseren Antenne (oder eine bessere Positionierung).
Wichtig dabei ist, eine Antenne verbessert dabei nicht nur die Sendeleistung (das rufen), sondern auch den Empfang (das hören).
Somit kann selbst bei gleichbleibender Sendestärke durch eine Antenne die WLAN-Reichweite erhöht werden.
Nur die reine Sendeleistung zu erhöhen macht also meist keinen Sinn.

Zusätzliche Antennen sollte man dabei nach Möglichkeit außen anbringen.
Wenn man sich entschließt eine verbesserte Antenne zu verwenden, so erhöht sich meist die gesamte Sendeleistung.
Um dann noch Gesetzeskonform zu bleiben bzw. um die Verbindung stabil bereit zu stellen muss man diese anpassen.

Man sollte daher die Sendeleistung in 1 dBm Schritten nach und nach verändern (sowohl erhöhen als auch senken) und zwischendurch testen.
An die ideale Sendeleistung sollte man sich heran tasten, insbesondere sollte man versuchen ob man sich im Randgebiet noch verbinden kann.
Sieht man am Rand des Netzes zwar noch das freifunk Netz und es klappt dennoch keine Verbindung, so sollte man die Sendeleistung immer um 1 dBm senken und neu testen bis die Verbindung stabil steht.

zum Merken:
Die Sendeleistung ergibt sich immer aus: Sendeleistung des Gerätes - Kabelverlust + Antennengewinn.
Die Summe darf im 2.4 GHz Band in Deutschland nicht höher als 20 dBm liegen.
Im Router wird nur die reine Sendeleistung des Gerätes definiert, eventuelle Kabelverluste oder Gewinne durch verbesserte Antennen muss man hier extra berücksichtigen.

Je nach Router-Modell sind standardmäßig verschiedene Sendeleistungen voreingestellt, da die Router von Haus aus verschieden starke Antennen enthalten.

dBm Standardwerte gängiger TP-Link Router:
TL-WR841ND  = 16 dBm (Meist maximal 21 möglich.)
TL-WR1043ND = 14 dBm (Meist maximal 21 möglich.)

WLAN Sendestärke anzeigen:
SSID, Kanal, Signalstärke usw. anzeigen:
iwinfo

Aktuelle eingestellte Sendeleistung in dBm anzeigen (die mit dem *Stern markierte):
iwinfo client0 txpower

Ändern der Sendeleistung:
Um die Sendeleistung bei TP-Link Geräte zu verändern muss man wie folgt vorgehen:
uci show wireless.radio0.country     
(Die bisher gesetzten Einstellung anzeigen. Standard ist 'DE' Länderkennung Deutschland.)
uci set  wireless.radio0.country='00'
(Die Länderkennung ausschalten. Notwendig wenn man die Leistung verändern will.)

uci show wireless.radio0.txpower     
(Bisherige gesetzte dBm anzeigen. Standardmäßig ist der Wert nicht vorhanden.)
uci set  wireless.radio0.txpower='13'
(Neuer gewünschter Wert. Berücksichtigt hier ggf. die Antennengewinne!)

uci commit wireless
(Einstellungen dauerhaft speichern.)
wifi               
(wifi-Interface neu starten.)
reboot             
(Zum endgültigen übernehmen der Einstellungen muss man den Router neu starten.)

Änderungen rückgängig machen:
Will man die Einstellungen wieder rückgängig machen, so stellt man einfach die Länderkennung wieder auf 'DE'. Eventuell gesetzte [wireless.radio0.txpower] Werte werden dann einfach ignoriert.
uci set wireless.radio0.country='DE'
(Die Länderkennung wieder auf Deutschland einstellen.)

Wer will kann den 'txpower' Wert, der zuvor nicht vorhandenen war, wie folgt komplett löschen:
uci delete wireless.radio0.txpower  
(Entfernt die veränderte Sendeleistung, es wird dabei automatisch der im Gerät voreingestellte Standardwert wiederhergestellt.)

Im Anschluss muss man die Einstellungen noch mittels [commit] dauerhaft übernehmen und den Router neu starten [reboot].

10. manuelles Routerupdate über SSH:


Normalerweise aktualisieren sich die Freifunk-Router automatisch, so das man hier eigentlich nichts tun muss.
Ein manuelles Router-Update kann manchmal trotzdem sinnvoll sein, z. B. wenn man einmalig eine neue 'beta-Firmware' testen möchte, oder komplett die Community wechseln möchte, oder wenn man auf eine komplett fremde Firmware wie OpenWRT oder LEDE wechseln möchte.
Zuerst verbindet man sich mit dem Freifunk Netzwerk und baut eine SSH-Verbindung zum gewünschten Router auf.
Dann geht man wie folgt vor:
1. Zuerst ins 'tmp' Verzeichnis wechseln:
cd /tmp/
Hinweis: Dieses Verzeichnis wird beim trennen der SSH-Verbindung/PuTTY-Verbindung automatisch bereinigt.

2. Anschließend lädt man die neue Firmware herunter.
Wichtig: Fürs Update verwendet man immer eine sysupgrade Firmware. Man darf hier keine factory Firmware verwenden!
Weiterhin darf der Link nicht auf eine abgesicherte Seite verweisen da die Router kein OpenSSL installiert haben.
Der Link darf also nicht auf [https://],
sondern nur auf [http://] verweisen.
Den Pfad also entsprechend anpassen und die Firmware herunterladen:
wget http://community/firmware/vers./sysupgrade/
gluon-ffxxx-version-routermodell-sysupgrade.bin


3. Um sicherzustellen das der Download auch korrekt ist sollte man nun zwingend eine md5-Prüfsumme erstellen.
md5sum gluon-ffxxx-version-routermodell-sysupgrade.bin
Die Ausgegeben md5-Summe sollte man dann mit der md5-Summe von der Community vergleichen.
Sollte die Community keine md5-Prüfsummen für den Download bereitstellen (dies ist häufiger der Fall),
so sollte man die zu installierende Firmware zuvor auf einem normalen PC herunter laden und dort selbst eine Prüfsumme generieren.
Sollten die Prüfsummen nicht übereinstimmen, so löscht man den fehlerhaften Download mittels [rm gluon-ff*] und startet den Download erneut.
Erst wenn beide Prüfsummen übereinstimmen - also der Download ok war - darf man weiter machen.

4. Jetzt sollte man noch den System-Cache löschen, um sicher zu stellen das genug RAM zur Installation der neuen Firmware zur Verfügung steht.
echo 3 > /proc/sys/vm/drop_caches

5. Bevor man nun das Firmwareupdate endgültig durchführt empfehle ich einen dauerhaften ping auf die IPv6-Adresse des Routers zu starten, denn so kann man besser beobachten wann der Router wieder erreichbar ist.
Also z. B. so (die Adresse entsprechend anpassen):
ping -t fe80::ee08:6bff:feec:55b4
Hinweis: Der ping auf die IPv6-Adresse funktioniert meist nur aus dem Freifunknetzwerk selbst.

6. Nun kann man die neue Firmware wie folgt installieren:
sysupgrade gluon-ffxxx-version-routermodell-sysupgrade.bin
Wichtig: Der Router darf während dem Update nicht vom Stromnetz getrennt werden. Das Update selbst benötigt meistens weniger als 2 Minuten - dann sollte der Router schon wieder auf ein ping Antworten.
Die bestehende SSH-Verbindung zum Router wird in der Regel nach einer gewissen Zeit von selbst getrennt - PuTTY meldet dann z. B. einen Fehler und setzt das Terminal auf '(inactive)'.
Ebenso sollte man beachten, dass der Computer der das Update initiiert hat sich ggf. zwischenzeitlich in ein anderes WLAN-Netz einloggt hat.
Der ping auf die IPv6-Adresse läuft dann ggf. ins leere.
Weiterhin sollte man beachten, das Kartenaktualisierungen der technischen Karte oft länger dauert.
Oft wird die Karte nur alle 10 Minuten neu aktualisiert. Während dieser Zeit wird dort ggf. immer noch die alte Version angezeigt.
Im Anschluss dann also einfach etwas warten.

Als letzten Hinweis möchte ich noch anmerken das, dass herunter geladene Image im Ordner '/tmp/' selbstständig gelöscht wird. Darum muss man sich also nicht kümmern.

Variante 2:
Will man bei einem Router ein Update erzwingen, um unabhängig vom Release-Zweig vorab eine experimental-, beta- oder stable-Versione zu installieren, so startet man den Autoupdater wie folgt:
autoupdater -f -b experimental # Auf eine frühe Entwicklerversion wechseln. Beachtet das diese noch Fehler enthalten kann.
autoupdater -f -b beta
autoupdater -f -b stable # Hiermit kann man die Verteilung von neuen stable-Releases beschleunigen.

Hiermit kann man z. B. schnell mal eine neue beta- oder experimental-Version testen, oder einfach wieder zurück auf die stable Version wechseln ohne jedes mal den Zweig verstellen zu müssen.

Parametererklärung:
[-f] = (force) erzwingen des Updates.
[-b] = (branch) zweig, welche Image-Version soll geflasht werden? Der Wert muss ggf. entsprechend eurer Community angepasst werden.

11. neue SSH-Keys erstellen & vorhandene aktualisieren:


Einen neuen sicheren SSH-Key generiert man unter Linux wie folgt:
Man sollte vor der Erstellung der Schlüsseldateien prüfen, ob eine möglichst aktuelle OpenSSH/OpenSSL Version vorhanden ist.
Welche Version installiert ist erfährt man mittels:
ssh -v hostname

Einen neues Schlüsselpaar erstellt man dann wie folgt:
ssh-keygen -t rsa -b 8192 -f ssh-key
-NZertifikat-Passwort_ohne_Leerzeichen
Das Passwort muss dabei mindestens 5 Zeichen lang sein. Um die Sicherheit zu gewährleisten wird ein komplexes und deutlich längeres Passwort empfohlen.
Hinweis: Stärker abgesicherte Keys welche man mit dem Parameter [-o -a 1024] erstellen kann werden von PuTTY unter Windows derzeit nicht unterstützt.
 
Im Anschluss erhält man nun folgende Dateien:
ssh-key = ist der private key - dieser muss gut gesichert aufgehoben werden (diesen nicht weitergeben).
ssh-key.pub = ist der public key - dieser wird im Router hinterlegt (dieser kann beliebig weitergegeben werden).

Will man den privaten Schlüssel mit PuTTY unter Windows verwenden, so muss man diesen noch ins PuTTY-Format konvertieren.
Hierzu benötigt man noch folgendes Programm, welches man noch installieren muss:
apt-get install putty-tools

Danach kann man den Schlüssel wie folgt ins PuTTY kompatible Format konvertieren:
puttygen ssh-key -o ssh-key.ppk
Wichtig: Der so erzeugte Schlüssel ist auch ein private key - dieser muss ebenso gesichert aufgehoben werden (diesen auch nicht weiter geben).

Am Ende kann man sich noch die folgenden Prüfsummen generieren (optional).
Die SHA1-Prüfsumme und den SSH-Fingerprint ausgeben bzw. sichern:
ssh-keygen -lv -f ssh-key > ssh-fingerprint.txt

Die zum Schlüssel gehörende MD5-Püfsumme ausgeben bzw. sichern:
ssh-keygen -lE md5 -f ssh-key > md5-summe.txt

Nun kann man den RSA-Key im Router hinterlegen bzw. erneuern.
Den notwendigen Schlüssel findet man in der eben erzeugten ssh-key.pub (*.pub) Datei.
Am einfachsten hinterlegt man den Schlüssel während der Router Konfiguration über das LuCI-Interface.
Der Schlüssel muss dabei immer in folgendem Format eingegeben werden:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ...
Wichtig: 'ssh-rsa' und der eigene 'Key' müssen durchgehend in einer Zeile stehen. Zeilenumbrüche in einem Schlüssel sind also nicht erlaubt.
Meist ist bei dem Schlüssel am Ende noch ein Kommentar angehängt. Diesen Kommentar kann man komplett weg lassen.
Alle rsa-Keys beginnen gemäß RFC immer mit der oben genannten Kennung. Euer Key sollte demnach auch so beginnen.

Auf den Routern selbst wird der public key dabei in folgender Datei gespeichert:
/etc/dropbear/authorized_keys

Will man ein bereits bestehenden Schlüssel erneuern, so geht man wie folgt vor:
Den neuen Schlüssel fügt man in der 'authorized_keys' Datei zuerst als neue Zeile hinzu.

Am einfachsten geht dies über den Editor vi:
vi /etc/dropbear/authorized_keys
Hier zuerst die Taste i für (insert) Einfügemodus drücken.
Dann über die Tastatur eine neue leere Zeile vorbereiten und den neuen Key über Copy-und-Paste einfügen.
Die Änderungen werden mittels folgender Tasteneingabe :wq und Enter endgültig übernommen.
Alternativ: Kann man auch den neuen Key über wget oder scp auf den Router kopieren und dann wie folgt hinzufügen:
cat ssh-key.pub | cat >> /etc/dropbear/authorized_keys

Sicherheitshalber sollte man nochmals prüfen, ob der neue Schlüssel übernommen wurde.
cat /etc/dropbear/authorized_keys

Hinweis: Der neue Key ist nun sofort einsatzbereit. Ein Routerneustart ist nicht notwendig.

Man sollte dann zunächst eine Testverbindung aufbauen und prüfen ob der neue Schlüssel funktioniert.
Dabei darf man folgendes nicht vergessen: Man muss PuTTY natürlich noch den neuen private key bekannt machen.
Bevor man sich also verbindet, muss man unter [Connection] + [SSH] + [Auth] unter dem Punkt [Private key file for authentication:] den Pfad zur neuen PuTTY-kompatiblen Schlüsseldatei ssh-key.ppk angeben..
Sollte man gespeicherte [Saved Sessions] verwenden, so muss man diese nach dem austauschen der Schlüsseldatei noch einmal speichern.

Wenn die Verbindung mit dem neuen Schlüssel funktioniert, dann kann man den alten Schlüssel entsprechend entfernen.
Man löscht hier dann einfach die alte rsa-key Zeile, die zuvor in der 'authorized_keys' Datei stand (die geänderte Datei nochmals speichern).
Danach ist der alte Schlüssel nicht mehr verwendbar. Ein Login auf dem Router klappt dann nur noch mit dem neuen Schlüssel.
Der Ablauf sollte jetzt entsprechend klar sein.

12. original Firmware (Stock-Rom) wieder herstellen:


Wenn man einen Router wieder auf die original Hersteller Firmware zurück flashen möchte geht man wie folgt vor:
Hinweis: Die folgende Dokumentation wurde für den TL-WR841N/ND und TL-WR1043ND getestet.

Die nun folgenden Schritte realisiert man am einfachsten unter Linux.
Wer kein Linux installiert hat kann hier auch eine beliebige Live-DVD verwenden.
Benötigt man ein Live-System auf einem USB-Stick, so sollte man sich das Programm Rufus mal ansehen.

1. Zuerst die original Firmware passend zum Router (Hardware-Revision beachten) herunterladen und entpacken.

2. Die original Firmware kann (Router-Version abhängig) mit einem extra boot part versehen sein.
Sollte das Firmware-Image einen boot part haben, erkennbar daran das der Dateiname 'boot' enthält, so muss dieser boot part zuvor vom Image entfernt werden.

Das Abschneiden des boot Teils geschieht unter Linux wie folgt:
dd if=original_image_boot(version).bin of=image_stripped.bin skip=257 bs=512
Wichtig: Diesen Befehl also nur anwenden, wenn im Image-Name der Begriff 'boot' vorkommt.

3. Nun startet man den Router im Konfigurations-Modus.
Hierzu drückt und hält man am Router die Reset-Taste bzw. QSS-Taste so lange fest bis alle LEDs kurz aufleuchten.
Dann ruft man im Webbrowser das Konfigurationsinterface auf (bei Gluon über):
http://192.168.1.1

Dort klickt man oben rechts auf [Expert Mode] und [Firmware aktualisieren] .
Hier wählt man dann über den Button [Durchsuchen] nun das passende (ggf. das zuvor gestrippte) Image aus.
Im Anschluss entfernt man noch den Haken bei [Einstellung beibehalten] und klickt auf [Upload Image].
Wichtig: Das flashen dauert nun ca. 5 Minuten, dieser Vorgang darf auf keinen Fall unterbrochen werden.

4. Wenn das flashen erfolgreich war, sollte der Router wieder mit der original Firmware (Stock-Rom), über folgende Adresse erreichbar sein:
http://192.168.0.1

Am besten prüft man dieses parallel mit einem:
ping 192.168.0.1

Beachtet das der Router jetzt in einem anderen Subnetz liegt. Also ein Wechsel von 192.168.1.1 auf 192.168.0.1 stattfand.
Gegebenenfalls müsst ihr beim Host die IP-Adresse neu einstellen, bzw. neu beziehen.

13. lokale IP-Adresse festlegen/ändern:


Der Router läuft und ist fest montiert was nun?
Will man bei einem Router nachträglich die lokale IP-Adresse des Routers (für den meist blauen WAN-Port) nachträglich festlegen oder ändern, so geht man wie folgt vor:
Die Einstellungen anzeigen:
uci show network.wan
Hinweis: Bevor man Einstellungen verändert, sollte man sich die alten Werte notieren.

Die neuen Einstellungen wie folgt festlegen/ändern:
uci set network.wan.proto=static
uci set network.wan.ipaddr=xxx.xxx.xxx.xxx
uci set network.wan.netmask=xxx.xxx.xxx.xxx
uci set network.wan.gateway=xxx.xxx.xxx.xxx
uci commit network
reboot
Die xxx-Werte muss man mit der entsprechenden IP-Adresse ersetzen.
Beachtet: Fehlerhafte Angaben können den Router unerreichbar machen, dann hilft nur ein Routerreset.





freifunk.net: https://freifunk.net
freifunk - wie mache ich mit? https://freifunk.net
/wie-mache-ich-mit/community-finden
freifunkstattangst.de: https://freifunkstattangst.de
Wikipedia: https://de.wikipedia.org/wiki/Freifunk
Zentrale Freifunk Karte: https://www.freifunk-karte.de
Pico Peering Agreement: http://www.picopeer.net/PPA-de.shtml
freifunk Konsolenzugang: https://wiki.freifunk.net/Konsole
Zentrale Routerübersicht: https://wiki.freifunk.net
/Freifunk_Firmware_Gluon/Hardware
Gluon spezifische Einstellungen:  http://gluon.readthedocs.org
Gluon Quellcode auf GitHub: https://github.com/freifunk-gluon/gluon
Gluon Commandline Doku: https://github.com
/freifunk-gluon/gluon/wiki/Commandline-administration
LEDE Project: Das LED Project ist ein fork (ein Nachfolger) von OpenWRT. Schaut hier nach wenn ihr die Router nur mit OpenWRT flashen wolltet und diese dort nicht unterstützt werden.
Neue Router werden oft nur noch vom LEDE Project unterstützt.

❑  Abschließende Hinweise:


IP-Adressen, E-Mailadressen, Namen u. ä. wurden für die Dokumentation geändert, hacken ist also zwecklos.
Die Nutzung der Anleitung erfolgt auf eigene Gefahr, für jegliche Schäden wird keine Garantie/Haftung übernommen!
Die Dokumentation entstand aus verschiedenen Tests, sowie produktiven Installationen (u. a. mit Routern der Community Freifunk Saar).
Diese Anleitung stellt somit eine Zusammenfassung wichtiger und empfohlener Schritte dar.
Bevor Sie eventuell Fragen stellen bitte ich sie die Dokumentation komplett zu lesen.
Hinweise auf Fehler, Anregungen, Danksagungen oder ähnliches sind immer willkommen.

Design:
© 2017 ctaas.de, Arno Schröder, Kahla (Impressum)