Firmware

Aus Freifunk Kiel
Wechseln zu: Navigation, Suche

Anleitung

Ein paar kurze Worte zur Firmware.

Unterseite des Routers mit Revisions Version

Installation

Bei einem frischen TP-Link Gerät lässt sich die Firmware über den Menüpunkt System Tools->Firmware einspielen. Verwende dazu die unten verlinkte Firmware. Achtung verwende die für deine Router Revision passende Version. Die Version steht auf der Unterseite des Gerätes rechts neben der Produktnummer. Am Beispiel desTL-WR841N wird in der Kurzanleitung zum Flashen der gesamte Vorgang einmal erklärt.

Router des Typs D-Link DIR-300 sind leider etwas schwieriger mit unserer Firmware zu versorgen.

Konfigurations-Modus

Nach der Installation bootet der Router in den sog. "ConfigMode". Im ConfigMode bietet der Router auf allen LAN Ports DHCP an. Die Weboberfläche ist dann über http://192.168.1.1 erreichbar. Der Konfigurations-Wizard führt einen dann durch die Einstellungen. Nach dem beenden des Setups startet der Router neu und ist ab jetzt im Normalen Betriebsmodus.

Wenn sich der Router im Betriebsmodus befindet, Ist eine Einfache Statusseite als Weboberfläche weiterhin aus dem Freifunk erreichbar, dafür muss über den Link http://local-node.ffki gehen der zur Adresse des Routers weiterleitet. Die Weboberfläche zeigt im Betriebsmodus die Statusseite des Routers an.

Siehe dazu weiter unten und Erweiterte Konfiguration

WARNUNG: Bei dem TP-LINK PHAROS CEP210 v1.0 muss man sich UNBEDINGT am Netzteil mit dem Ethernet verbinden!!!

Konfigurations-Modus Reaktivieren

Schalte den Router ein und warte bis er normal gestartet ist, dies dauert je nach Modell bis zu 2 Minuten. Der Router kann nun wieder in den ConfigMode versetzt werden, indem die QSS oder "WPS/Reset" Taste, auf der Rückseite des Gerätes, ca. 9 Sekunden lang gedrückt wird. Im Zweifel die Taste einfach so lange halten bis alle Lampen des Routers einmal gemeinsam Aufleuchten. Danach ist der Router wieder wie nach der Installation unter 192.168.1.1 erreichbar. Verbinde deinen Rechner mit dem richtigen Port am Router:

  • beim TL-WR841N v9 und TL-WDR4300 Ver. 1.0 ist dies irgendeiner der gelbe LAN-Ports des Routers
  • beim alten TL-WR841N v8 ist dies unter umständen auch mal der blaue WAN-Port des Routers (ausprobieren!)

Für weitere Details siehe auch hier die Anleitung im Lübecker Wiki

Konfigurations-Wizard

Im nachfolgenden ein paar Details zu den Punkten des Konfigurations-Wizards.

Hostname

Wähle einen Hostnamen der noch nicht vergeben ist.

Beliebte Namensräume sind :

Bevor du einen Namen auswählst, schau bitte in der Knotenliste ob der Name nicht schon genutzt wird.

Mesh / Bandbreitenbegrenzung

Wenn du möchtest, dass dein Router eine VPN-Verbindung zur Kieler Freifunk Wolke aufbauen kann, dann musst du hier den ersten Punkt ankreuzen.

Die Bandbreitenbegrenzung hilft dir einen Teil deiner Internet Verbindung weiterhin für eigene Zwecke frei zu halten. Wir empfehlen mindestens 1000 kbit/s downstream und 500 kbit/s upstream.

Wenn du die Mesh Funktion aktiviert hast wird dir auf der folgenden Wizard-Seite eine länglicher Code angezeigt. Kopiere und bewahre diesen auf bevor du weiter machst.


für Profis: Root Zugriff im Expert Mode

Normalerweise braucht man nicht in den Expert mode zu wechseln. Nur Profis sollten sich hier rein wagen und ev. ein Passwort setzen oder den öffentlichen SSH Key eintragen. Im normalen Betrieb wird der Router im gesamten Freifunk Netz erreichbar sein, deswegen ist es wichtig hier ein sicheres Passwort zu wählen, wenn man eins setzt. Am sichersten ist es, aber kein Passwort zu setzen und keinen SSH-Key einzutragen, da dann erst gar kein SSH Daemon gestartet wird. Es ist äußerst wichtig, dass dieses Passwort sicher ist, da dies der einzige Angriffspunkt von aussen ist auf deinen Router, wenn jemand dieses Passwort herausfände, käme er in dein netz!


Tipp - dynamische Bandbreitenausnutzung:
Nutze keine Bandbreitenbegrenzung und tue nach dem Installationsprozess für den Freifunk-Router folgendes: Gehe auf die Konfigurations-Seite deines Routers für dein Privates Netzwerk. (Dies ist in der Regel der Router in den Du das Kabel steckst, welches vom blauen WAN-Port des Freifunk-Routers kommt.) Normalerweise lassen sich dort einige Filteroptionen finden. Halte Ausschau nach Einstellungen, die die Priorisierung von Datenverkehr steuern lassen. Wenn die Installtion des Freifunk-Routers gelungen ist, dann sollte dieser eine eigene IP-Adresse in deinem privaten Netzwerk besitzen. Diese IP-Adresse trägst Du nun so ein, dass ihr eine geringere Priorität zugeordnet wird. Je nach Einstellungsoberfläche ist dies etwas schwammig formuliert. Beispiel: "Hintergrundanwendungen: Anwendungen, die im Hintergrund laufen und die bei voller Auslastung der Internetverbindung nachrangig behandelt werden."
Wenn die Einstellungen entsprechend vorgenommen worden sind, dann beeinträchtigt der Datenverkehr über das Freifunk-WLAN nun nicht mehr deine Internet-Bandbreite, wenn Du über dein privates Netz surfst. Umgekehrt stellst Du deine komplette Bandbreite der Freifunk-Gemeinschaft zur Verfügung, wenn Du deinen Internetanschluss gerade nicht nutzt.

IPv6 Adresse des Routers

siehe auch IPv6 broadcast

Im Betriebsmodus ist der Router über IPv6 erreichbar. Die Adresse findet man raus in dem man die auf der Unterseite des Routers abgedruckt MAC Adresse in eine IPv6 Adresse umwandelt. Um hier nicht auf die Details einzugehen wie genau dies funktioniert gibt es folgendes Script zur ermittlung der IPv6-Adresse anhand der MAC-Adresse.

Alternativ kann man die Link Lokal Adresse des Routers auch mit Hilfe eines Broadcasts in Erfahrung bringen. Dazu schliesst man den Router am besten direkt an den Rechner an. Aus der Konsole heraus:

 ping6 ff02::1%eth0 | head

Wobei hier eth0 die lokale Netzwerkschnittstelle ist, welche mit dem Router verbunden ist. Die Interface Bezeichnungen bekommt man heraus mit

 ip a

Also bei einer Wlan Verbindung z.B.:

 ping6 ff02::1%wlp1s0 | head # oder wlan0

Die Antwortenden Adressen sind von der Form

 fe80::0000:00ff:fe00:0000

bei der Verwendung darauf Achten am Ende der Adresse immer das Interface mit angeben (%eth0 im Beispiel)

die Link-Local Adresse ist generiert aus der Mac-Adresse deines Routers die unten drunter steht, daher enthält sie alle Zahlenpaare deiner Mac-Adresse
z.B. 64:70:02:62:61:00 wird zu fe80::6670:2ff:fe62:6100 (es wird also nur vorne "fe80::" drangehängt und in der Mitte "ff:fe" zwischengeschoben)

man kann auch eine Liste von mac-adressen automatisch alle ausprobieren mit diesem script:

#!/bin/bash

mac_to_ipv6 () {
  IFS=':'; set $1; unset IFS
  ipv6_address="fe80::$(printf %02x $((0x$1 ^ 2)))$2:${3}ff:fe$4:$5$6"
  echo $ipv6_address
}
echo "Next MAC with ^C"
for i do
  echo
  echo checking for  $i = $(mac_to_ipv6 $i)
  echo 
  ping6 ff02::1%wlan0|grep $(mac_to_ipv6 $i)
done
(Siehe: http://unix.stackexchange.com/questions/79345/reorganize-strings-with-bash/79403#79403 )

SSH

Der Router ist per SSH erreichbar, sofern man beim Einrichten ein "root" Passwort gesetzt oder einen ssh Schlüssel/Key hinterlegt hat:

$ ssh root@IPv6_adresse_des_routers

bzw. bei Link Local Adresse:

$ ssh root@local_IPv6_adresse_des_routers%eth0

so kriegst du die linklocal adresse raus: Firmware#IPv6_Adresse_des_Routers

(Falls du über Wlan im Netz bist, also z.B. wlan0, dann natuerlich statt %eth0 mit %wlan0 am Ende)

Dort kannst du auch ein autoupdate der Firmware ausführen: $autoupdater -f

HTTP Weboberfläche

Die Weboberfläche des Routers zeigt einige statusinformationen und Statistiken an. Allerdings ist das Webinterface nicht über die Link Local Adresse sondern nur über die generelle IPv6 Adresse des Routers zu erreichen.

Man findet die ipv6 Adresse heraus wenn man sich eingeloggt hat mit

 ssh root@LinkLocalIPv6adresse_des_routers%wlan0

und dort

 ifconfig |grep 384a -B 5

eingibt (die 'inet6 addr' beginnt mit "fda1:384a")

Im Browser öffnet man die Adresse mit Eckigen Klammern um die Ipv6, Beispiel: http://[fda1::384a:xxxx:xxxx:xxxx]/

HTTP IPv6 Fix

Falls der Router nicht per IPv6 http liefern sollte, kann man diese per SSH beheben. Dazu folgendes nach dem Login auf der Shell vom Router ausführen.


 uci delete uhttpd.main.listen_http
 uci delete uhttpd.main.listen_https
 
 uci add_list uhttpd.main.listen_http='[::]:80'
 uci add_list uhttpd.main.listen_http='0.0.0.0:80'
 uci add_list uhttpd.main.listen_https='[::]:80'
 uci add_list uhttpd.main.listen_https='0.0.0.0:80'
 
 uci commit uhttpd
 
 /etc/init.d/uhttpd enable

Pre V0.3.x

Das Web-Interface ist über einen Browser zu erreichen. Wenn SSH-Zugriff über die IPv6-Adresse besteht, ist ein einfacher Weg, um Zugriff zu erhalten, einen temporären Tunnel über SSH anzulegen:

 ssh root@fda1::xxxx:xxxx:xxxx:xxxx -L 8080:localhost:80

bzw

ssh root@fe80::xxxx:xxxx:xxxx:xxxx%eth0 -L 8080:localhost:80 (Link Local Adressen)

Anschließend kann über http://localhost:8080/ auf das Web-Interface zugegriffen werden, auch wenn man sich nicht im IPv4-Subnetz des Routers befindet.

Kieler Freifunk Wolke

Wenn du noch keinen anderen Knoten mit Verbindung in die Kieler Freifunk Wolke hast oder die Verbindung zu diesem schwach ist, kannst du den Router eine Verbindung zur Wolke aufbauen lassen. Dazu muss im Konfigurations-Modus im Reiter Mesh dieses aktiviert werden und der Schlüssel mit Namen in den Nodes eingetragen werden. Alternativ kannst du den Schlüssel und den Router Namen auch einfach auf der Freifunk Mailingliste verkünden.

Verbindungen/Traffic

Wenn der Router an dein lokales Netzwerk angeschlossen wird, werden folgende Verbindungen aufgebaut.

  • DHCP (Der Router möchte gerne eine Adresse in deinem Netz)
  • VPN Verbindungen zur Wolke (UDP)
  • DNS Anfragen
  • NTP

VPN Verbindungen und Internet im Freifunk

Dies sind die virtuellen Datenleitungen mit denen dein Freifunk Router die Verbindung zur restlichen Freifunk Wolke aufbaut, zur Sicherheit sind diese Verschlüsselt, du kannst im Reiter Mesh Einstellern wie viel Bandbreite diese Verbindungen Maximal verwenden dürfen.

Wenn du nicht gerade selber einen Gateway Server betreibst, was nicht der Normalfall ist, dann wandern Anfrangen in das Internet auch über diese VPN Verbindungen bis zum Gateway Server. Die Anfragen werden also nicht von deinem Internet Anschluss gestellt, sondern von dem Anschluss des Gateway Betreibers!

DNS

Es werden DNS Anfragen an die Server, welche von deinem Router, welcher den Internet Zugang zur Verfügung stellt, Wenn dein Internet Router selber einen DNS-Server zur Verfügung stellt, was der Normal ist, bleiben diese Anfragen in deinem Netz.

NTP

Die Router wollen gerne die aktuelle Zeit wissen. Daher stellen sie regelmäßig Anfragen an Zeitserver. Sobald wir selber ausreichend Zeitserver im Freifunk haben, werden die Anfragen ins Freifunk gehen.

Download

Den Download der Firmware für offizell unterstützte Geräte findest du auf unserer Portalseite unter "Mitmachen". Bitte beachte die Anleitung zur Erstinstallation.

Die angebotene Firmware ist zur Erstinstallation sowie für ein Upgrade nutzbar. (Es wird nicht mehr unterschieden)

Die Portalseite wird zur Zeit aktualisiert, solange ist die Firmware unter folgendem Link herunterzuladen: http://freifunk.in-kiel.de/firmware/stable/factory/

Die jeweils neueste (experimentelle) Firmware findest du im Ordner: http://freifunk.in-kiel.de/firmware/experimental/factory/

Weitere nicht offizell unterstützte Router findest du unter Hardware#Von_uns_getestete_Hardware.

Development

Im folgenden der Schnellüberblick wie man die FFKI-Firmware selber baut.

Diese Anleitung ist nicht mehr aktuell!

 # für 741nd
 git clone git://freifunk.in-kiel.de/ffki-firmware.git -b v0.3.x
 # für anderes <model> welches wir unterstützen
 git clone git://freifunk.in-kiel.de/ffki-firmware.git -b v0.3.x-<model>
 # verfügbare modelle findet man mit: git branch -a
 # v0.3.x-tl-wdr3600
 # v0.3.x-tl-wr1043nd
 # v0.3.x-tl-wr841nd
 # v0.3.x-tl-wr842nd
 
 cd ffki-firmware
 scripts/feeds update -a && scripts/feeds install -a
 git checkout .config
 
 # Der nächste Schritt kann Stunden dauern, hol dir am besten einen Kaffee und ein Buch.
 # Danach liegt das fertige Image in Unterverzeichnis bin
 make

Falls du die Firmware für ein Modell bauen willst, das nicht in der liste erscheint bei git branch -a dann erstelle vor dem ausführen von make die config mit

 make menuconfig
 -> Target System (hier den richtigen Chipsatz laut Datenblatt deines Routers auswählen)
 -> Target Profile (Das dazugehörige vorbereitete Einstellungsprofil von OpenWrt auswählen falls vorhanden, siehe OpenWrt-Wiki)
 



Hinsweis: Freie/OpenSource-Software

Die Elemente der Freifunk Firmware sind soweit als auch nur möglich FLOSS (free and open Source) im Sinne der FSF (free software foundation), und können von jedem studiert, verändert und weiterverbreitet werden. Für genauere Einzelheiten bitte die Softwarelizenzen der einzelnen Teile der Firmware beachten.

links:

https://de.wikipedia.org/wiki/Freie_Software

https://www.fsf.org/