Firmware

Aus Freifunk Kiel
Zur Navigation springen Zur Suche springen

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, kann die Weboberfläche weiterhin, aus dem Freifunk, erreicht werden, dafür muss man allerdings die Adresse des Routers herausfinden. Siehe dazu weiter unten.

Konfigurations-Modus Reaktivieren

Schalte den Router ein und warte bis er gestartet ist, dies dauert je nach Modell bis zu 2 Minuten. Der Router kann nun wieder in den ConfigMode versetzt werden, indem die QSS Taste, auf der Rückseite des Gerätes, mindestens 3 Sekunden lang gedrückt wird. Im Zweifel die Taste einfach so lange halten bis die Lampen des Routers einmal gemeinsam Aufleuchten. Danach ist der Router wieder wie nach der Installation unter http://192.168.1.1 erreichbar. Verbinde deinen Rechner mit dem richtigen Port am Router (beim TL-WR841N Ver. 8.4 ist dies der blaue WAN-Port des Routers)

siehe auch hier die Anleitung im Lübecker Wiki

Konfigurations-Wizard

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

Root Passwort

Im normalen Betrieb wird der Router im gesamten Freifunk Netz erreichbar sein, deswegen ist es wichtig hier ein sicheres Passwort zu wählen. (TODO Folgen schwacher Passwörter?)

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.

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

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, welche mit dem Router verbunden ist, ist.
Also bei einer Wlan Verbindung:

 ping6 ff02::1%wlan0 | head

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 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)

HTTP Weboberfläche

Das Web-Interface ist per IPv6 erreichbar. Allerdings nicht über die Link Local Adresse sondern nur über die generelle IPv6 Adresse des Routers. Man findet diese heraus wenn man sich eingeloggt hat mit

 ssh root@LinkLocalIP6adresse_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 Ip6, 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)

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.

 # 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/