<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://kbu.freifunk.net/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Took</id>
	<title>Freifunk Köln, Bonn und Umgebung - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://kbu.freifunk.net/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Took"/>
	<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Spezial:Beitr%C3%A4ge/Took"/>
	<updated>2026-04-09T03:56:50Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.38.2</generator>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Automatische_Updates&amp;diff=5370</id>
		<title>Automatische Updates</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Automatische_Updates&amp;diff=5370"/>
		<updated>2018-01-05T16:29:38Z</updated>

		<summary type="html">&lt;p&gt;Took: /* Wie werden Automatische Updates verwendet? */ Standardmäßig ist im Moment der ''stable''-Branch aktiviert.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:configModeAutoUpdate.png|right|thumb|Auto-Update-Konfiguration]]&lt;br /&gt;
== Worum geht's? ==&lt;br /&gt;
&lt;br /&gt;
Die Freifunk-KBU Firmware verwendet die [https://github.com/freifunk-gluon/gluon Gluon/Linux] Distribution. Sie enthält ''autoupdater'' [http://gluon.readthedocs.io/en/v2017.1.x/features/autoupdater.html], ein Programm zur automatischen Aktualisierung der Freifunk-Router. Alternativ kann Gluon/Linux auch [[Firmware_updaten | per Hand]] aktualisiert werden.&lt;br /&gt;
&lt;br /&gt;
Grundsätzlich sind automatische Updates aktiviert. Sie werden über einen zentralen Server verteilt, der aktuell nur für die Hood Bonn existiert.&lt;br /&gt;
&lt;br /&gt;
== Wie werden Automatische Updates verwendet? ==&lt;br /&gt;
&lt;br /&gt;
Im [[Node_konfigurieren#Automatische_Firmware_Updates | Konfigurationsmodus]] kannst Du automatische Updates ausschalten. Hierbei kannst Du zwischen kannst Du zwischen ''branches'' wählen:&lt;br /&gt;
* ''stable'' für die aktuelle Firmware&lt;br /&gt;
* ''beta'' für eine ggf. im Test befindliche Firmware&lt;br /&gt;
&lt;br /&gt;
Erscheint ''noupdate'' so stehen für Deine Hood keine Updates zur Verfügung. Standardmäßig ist im Moment der ''stable''-Branch aktiviert.&lt;br /&gt;
&lt;br /&gt;
Update-Quellen werden in der Firmware-Konfiguration [https://github.com/ff-kbu/site-ffkbu/blob/master/site.conf] hinterlegt. Dort ist auch vermerkt, welche Administratoren Updates freigeben können.&lt;br /&gt;
&lt;br /&gt;
== Automatische Updates: Pro und Kontra ==&lt;br /&gt;
&lt;br /&gt;
Automatische Updates sind in der Freifunk-Community umstritten. &lt;br /&gt;
&lt;br /&gt;
Einerseits können Sie Stabilität und Sicherheits des Freifunk Netzes erhöhen, indem wichtige Updates schnell verteilt werden können. Zudem kann eine neue Konfiguration mit wenig Aufwand ausgeliefert werden.&lt;br /&gt;
&lt;br /&gt;
Andererseits kannst Dich nicht darauf verlassen, dass das aktuelle Gluon/Linux zeitnah ausgeliefert wird - es hängt davon ab, ob sich jemand findet das aktuelle Gluon-Release bereit zu stellen. Ein weiteres Problem ist, dass Updates Binary-Only ausgeliefert werden: Du kannst nicht mehr überprüfen, welcher Code auf Deinem Gerät ausgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Freifunk ist ein Do-It-Yourself Mitmach-Netz aus lokalen, selbst-verwalteten Routern zu bauen. Wichtige Ziele sind:&lt;br /&gt;
* Sachverstand durch Wissensvermittlung zu erreichen&lt;br /&gt;
* Den Grundsatz &amp;quot;Mißtraue Autoritäten – fördere Dezentralisierung&amp;quot; [https://www.ccc.de/de/hackerethik] zu vermitteln.&lt;br /&gt;
Ein zentrales Management für Freifunk-Router steht den Punkten entgegen: Es wäre nicht zielführend, wenn Du automatische Updates bei Routern aktivierst, wo Du die Hoheit abgeben möchtest. Es ist traurig, einfach bloß die automatischen Updates zu aktivieren, falls Du nicht weißt, wie Du den Router aktuell halten kannst.&lt;br /&gt;
&lt;br /&gt;
Falls Du Gluon selber kompilierst, sind automatische Updates ein spannender Weg, alle Deine Router aktuell zu halten. Hierzu kannst Du gut einen eigenen Update-Server im KBU-Netz an den Start bringen. Ein Raspberry-Pi reicht :-)&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Automatische_Updates&amp;diff=5365</id>
		<title>Automatische Updates</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Automatische_Updates&amp;diff=5365"/>
		<updated>2018-01-05T09:51:06Z</updated>

		<summary type="html">&lt;p&gt;Took: /* Wie werden Automatische Updates verwendet? */ klarere formulierung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:configModeAutoUpdate.png|right|thumb|Auto-Update-Konfiguration]]&lt;br /&gt;
== Worum geht's? ==&lt;br /&gt;
&lt;br /&gt;
Die Freifunk-KBU Firmware verwendet die [https://github.com/freifunk-gluon/gluon Gluon/Linux] Distribution. Sie enthält ''autoupdater'' [http://gluon.readthedocs.io/en/v2017.1.x/features/autoupdater.html], ein Programm zur automatischen Aktualisierung der Freifunk-Router. Alternativ kann Gluon/Linux auch [[Firmware_updaten | per Hand]] aktualisiert werden.&lt;br /&gt;
&lt;br /&gt;
Updates werden über einen zentralen Server verteilt, der aktuell nur für die Hood Bonn existiert.&lt;br /&gt;
&lt;br /&gt;
== Wie werden Automatische Updates verwendet? ==&lt;br /&gt;
&lt;br /&gt;
Im [[Node_konfigurieren#Automatische_Firmware_Updates | Konfigurationsmodus]] kannst Du automatische Updates ein- oder ausschalten. Wenn du sie aktivierst, kannst Du zwischen ''branches'' wählen:&lt;br /&gt;
* ''stable'' für die aktuelle Firmware&lt;br /&gt;
* ''beta'' für eine ggf. im Test befindliche Firmware&lt;br /&gt;
&lt;br /&gt;
Erscheint ''noupdate'' so stehen für Deine Hood keine Updates zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Update-Quellen werden in der Firmware-Konfiguration [https://github.com/ff-kbu/site-ffkbu/blob/master/site.conf] hinterlegt. Dort ist auch vermerkt, welche Administratoren Updates freigeben können.&lt;br /&gt;
&lt;br /&gt;
== Automatische Updates: Pro und Kontra ==&lt;br /&gt;
&lt;br /&gt;
Automatische Updates sind in der Freifunk-Community umstritten. &lt;br /&gt;
&lt;br /&gt;
Einerseits können Sie Stabilität und Sicherheits des Freifunk Netzes erhöhen, indem wichtige Updates schnell verteilt werden können. Zudem kann eine neue Konfiguration mit wenig Aufwand ausgeliefert werden.&lt;br /&gt;
&lt;br /&gt;
Andererseits kannst Dich nicht darauf verlassen, dass das aktuelle Gluon/Linux zeitnah ausgeliefert wird - es hängt davon ab, ob sich jemand findet das aktuelle Gluon-Release bereit zu stellen. Ein weiteres Problem ist, dass Updates Binary-Only ausgeliefert werden: Du kannst nicht mehr überprüfen, welcher Code auf Deinem Gerät ausgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Freifunk ist ein Do-It-Yourself Mitmach-Netz aus lokalen, selbst-verwalteten Routern zu bauen. Wichtige Ziele sind:&lt;br /&gt;
* Sachverstand durch Wissensvermittlung zu erreichen&lt;br /&gt;
* Den Grundsatz &amp;quot;Mißtraue Autoritäten – fördere Dezentralisierung&amp;quot; [https://www.ccc.de/de/hackerethik] zu vermitteln.&lt;br /&gt;
Ein zentrales Management für Freifunk-Router steht den Punkten entgegen: Es wäre nicht zielführend, wenn Du automatische Updates bei Routern aktivierst, wo Du die Hoheit abgeben möchtest. Es ist traurig, einfach bloß die automatischen Updates zu aktivieren, falls Du nicht weißt, wie Du den Router aktuell halten kannst.&lt;br /&gt;
&lt;br /&gt;
Falls Du Gluon selber kompilierst, sind automatische Updates ein spannender Weg, alle Deine Router aktuell zu halten. Hierzu kannst Du gut einen eigenen Update-Server im KBU-Netz an den Start bringen. Ein Raspberry-Pi reicht :-)&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Automatische_Updates&amp;diff=5364</id>
		<title>Automatische Updates</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Automatische_Updates&amp;diff=5364"/>
		<updated>2018-01-05T09:49:14Z</updated>

		<summary type="html">&lt;p&gt;Took: /* Worum geht's? */ typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:configModeAutoUpdate.png|right|thumb|Auto-Update-Konfiguration]]&lt;br /&gt;
== Worum geht's? ==&lt;br /&gt;
&lt;br /&gt;
Die Freifunk-KBU Firmware verwendet die [https://github.com/freifunk-gluon/gluon Gluon/Linux] Distribution. Sie enthält ''autoupdater'' [http://gluon.readthedocs.io/en/v2017.1.x/features/autoupdater.html], ein Programm zur automatischen Aktualisierung der Freifunk-Router. Alternativ kann Gluon/Linux auch [[Firmware_updaten | per Hand]] aktualisiert werden.&lt;br /&gt;
&lt;br /&gt;
Updates werden über einen zentralen Server verteilt, der aktuell nur für die Hood Bonn existiert.&lt;br /&gt;
&lt;br /&gt;
== Wie werden Automatische Updates verwendet? ==&lt;br /&gt;
&lt;br /&gt;
Im [[Node_konfigurieren#Automatische_Firmware_Updates | Konfigurationsmodus]] kannst Du automatische Updates ein- oder ausschalten. Hierbei kannst Du zwischen ''branches'' wählen:&lt;br /&gt;
* ''stable'' für die aktuelle Firmware&lt;br /&gt;
* ''beta'' für eine ggf. im Test befindliche Firmware&lt;br /&gt;
&lt;br /&gt;
Erscheint ''noupdate'' so stehen für Deine Hood keine Updates zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Update-Quellen werden in der Firmware-Konfiguration [https://github.com/ff-kbu/site-ffkbu/blob/master/site.conf] hinterlegt. Dort ist auch vermerkt, welche Administratoren Updates freigeben können.&lt;br /&gt;
&lt;br /&gt;
== Automatische Updates: Pro und Kontra ==&lt;br /&gt;
&lt;br /&gt;
Automatische Updates sind in der Freifunk-Community umstritten. &lt;br /&gt;
&lt;br /&gt;
Einerseits können Sie Stabilität und Sicherheits des Freifunk Netzes erhöhen, indem wichtige Updates schnell verteilt werden können. Zudem kann eine neue Konfiguration mit wenig Aufwand ausgeliefert werden.&lt;br /&gt;
&lt;br /&gt;
Andererseits kannst Dich nicht darauf verlassen, dass das aktuelle Gluon/Linux zeitnah ausgeliefert wird - es hängt davon ab, ob sich jemand findet das aktuelle Gluon-Release bereit zu stellen. Ein weiteres Problem ist, dass Updates Binary-Only ausgeliefert werden: Du kannst nicht mehr überprüfen, welcher Code auf Deinem Gerät ausgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Freifunk ist ein Do-It-Yourself Mitmach-Netz aus lokalen, selbst-verwalteten Routern zu bauen. Wichtige Ziele sind:&lt;br /&gt;
* Sachverstand durch Wissensvermittlung zu erreichen&lt;br /&gt;
* Den Grundsatz &amp;quot;Mißtraue Autoritäten – fördere Dezentralisierung&amp;quot; [https://www.ccc.de/de/hackerethik] zu vermitteln.&lt;br /&gt;
Ein zentrales Management für Freifunk-Router steht den Punkten entgegen: Es wäre nicht zielführend, wenn Du automatische Updates bei Routern aktivierst, wo Du die Hoheit abgeben möchtest. Es ist traurig, einfach bloß die automatischen Updates zu aktivieren, falls Du nicht weißt, wie Du den Router aktuell halten kannst.&lt;br /&gt;
&lt;br /&gt;
Falls Du Gluon selber kompilierst, sind automatische Updates ein spannender Weg, alle Deine Router aktuell zu halten. Hierzu kannst Du gut einen eigenen Update-Server im KBU-Netz an den Start bringen. Ein Raspberry-Pi reicht :-)&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Pimp_my_Node&amp;diff=5307</id>
		<title>Pimp my Node</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Pimp_my_Node&amp;diff=5307"/>
		<updated>2017-10-06T13:05:33Z</updated>

		<summary type="html">&lt;p&gt;Took: /* Kurzfassung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt; [[Experteneinstellungen|Optional: Experteneinstellungen]] &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; [[Mitmachen|Übersicht]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Mitmachen]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hier finden sich interessante Optionen für etwas versiertere Nutzer. Diese Seite wurde größtenteils für die Classic Firmware geschrieben. Wer Gluon verwendet sollte unbedingt auch Gluon spezifische Ressourcen, wie [http://gluon.readthedocs.org/ http://gluon.readthedocs.org] zu Rate ziehen. &lt;br /&gt;
&lt;br /&gt;
Die Möglichkeiten und Abweichungen von der Standardkonfiguration sind vielfältig. Diese sollten aber nur dann durchgeführt werden, wenn der Durchführende genau weiß, was er da macht. Eine fehlerhaft Konfiguration kann zum Beispiel zu Störungen im Netzwerk führen, ferner könnten illegitime Maßnahmen implementiert werden. Beide zuvor genannten Beispiele würden zu einem Ausschluss aus unserem Netzwerk führen. Dennoch kann man gute Gründe haben die ein Abweichen von den Defaultwerten sinnvoll machen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Netztheorie/Technik und Entwicklung ==&lt;br /&gt;
Vertiefung&lt;br /&gt;
&lt;br /&gt;
*[[FSM-Dynamisches-Bridging]] &lt;br /&gt;
*[[Batman_adv]]&lt;br /&gt;
*[[Entwicklung]]&lt;br /&gt;
*[[Firmware|Firmware/Betriebssystem]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arbeiten auf der Shell ==&lt;br /&gt;
Voraussetzung für folgende Befehle sind eine Verbindung mit dem KBU-Freifunk-Netz sowie ein Terminal / Shell. &lt;br /&gt;
 &lt;br /&gt;
Zusätzlich zu den auf dieser Seite erläuterten Modifikationen gibt es im [https://github.com/freifunk-gluon/gluon/wiki/Commandline-administration Github-Wiki der Freifunk-Gluon-Firmware eine ausführliche Liste nützlicher Befehle ].&lt;br /&gt;
&lt;br /&gt;
=== IPv6 SSH ===&lt;br /&gt;
Ihr verbindet euch mit eurem router via&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@&amp;lt;Link-local Adresse des Nodes&amp;gt;%&amp;lt;interface&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hierbei findet ihr die Link-local Adresse z.B. auf der [https://map.kbu.freifunk.net/ Karte], es ist die IPv6 Adresse, die mit fe80:: beginnt. Interface ist unter Linux typischerweise &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt; für den LAN Port und &amp;lt;code&amp;gt;wlan0&amp;lt;/code&amp;gt; fürs WLAN. Mit &amp;lt;code&amp;gt;ifconfig&amp;lt;/code&amp;gt; lässt sich das leicht herausfinden.&lt;br /&gt;
&lt;br /&gt;
=== Firmware aktualisieren ===&lt;br /&gt;
&lt;br /&gt;
Neben dem Upgrade per [[Config_Mode]], für den man sich per Kabel direkt mit dem Node verbinden muss, kann man auch remote per ssh upgraden. Direkt vorweg, falls etwas schief läuft, siehe [[#TFTP]] um das ganze doch wieder (per direkt LAN verbindung, aber ohne funktionierendes Webinterface) zu reparieren.&lt;br /&gt;
&lt;br /&gt;
==== Kurzfassung ====&lt;br /&gt;
Die größte Erfolgsquote hat (meiner leidvollen Erfahrung nach) ein upgrade mittels:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp firmware.bin root@\[&amp;lt;Link-local Adresse des Nodes&amp;gt;%&amp;lt;interface&amp;gt;\]:/tmp/ &lt;br /&gt;
ssh root@&amp;lt;Link-local Adresse des Nodes&amp;gt;%&amp;lt;interface&amp;gt;&lt;br /&gt;
cd /tmp/&lt;br /&gt;
sysupgrade -i -b config.tar.gz&lt;br /&gt;
sysupgrade -v -f config.tar.gz firmware.bin &amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wobei firmware.bin ruhig das komplette Image (nicht die -sysupgrade variante) sein darf, falls das in die RAM disk passt.&lt;br /&gt;
Für die Details, einfach weiter lesen. ;)&lt;br /&gt;
&lt;br /&gt;
Für updates auf die neuste 2017-10 lede basierte gluon firmware sollte man die -sysupgrade variante nehmen und dann nicht &amp;quot;-f config.tar.gz&amp;quot; verwenden, weil der Router dann ggf. in den Config-Mode bootet nach dem update. Das kann unerwünscht sein, wenn man nur remote-Zugriff auf den Router hat. Durch die Wahl der -sysupgrade variante bleiben trotzdem alle Konfigurationen (Nodename, ssh-pw, geocorrds, Kontaktinfo usw) erhalten. Getestet auf v9 und v11 beim wr841 von einer 2016er gluon-Version aus. Das sieht dann so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp firmware.bin root@\[&amp;lt;Link-local Adresse des Nodes&amp;gt;%&amp;lt;interface&amp;gt;\]:/tmp/ &lt;br /&gt;
ssh root@&amp;lt;Link-local Adresse des Nodes&amp;gt;%&amp;lt;interface&amp;gt;&lt;br /&gt;
cd /tmp/&lt;br /&gt;
sysupgrade -v firmware.bin &amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Sysupgrade unter beibehaltung der Einstellungen ====&lt;br /&gt;
&lt;br /&gt;
Für diese Variante kann das -sysupgrade.bin image verwendet werden, es muss sich aber um ein &amp;quot;kompatibles&amp;quot; upgrade, d.h. innerhalb einer hood und zwischen nicht zu unterschiedlichen Versionen handeln.&lt;br /&gt;
&lt;br /&gt;
1. [[Firmware_herunterladen]] und Signatur/Checksumme prüfen. &lt;br /&gt;
&lt;br /&gt;
2. Firmware per scp auf den Router kopieren &amp;lt;code&amp;gt;scp firmware.bin root@\[&amp;lt;Link-local Adresse des Nodes&amp;gt;%&amp;lt;interface&amp;gt;\]:/tmp/ &amp;lt;/code&amp;gt;. (Siehe [[#IPv6_SSH]].)&lt;br /&gt;
Es ist wichtig die firmware nach &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; zu kopieren, das ist eine [https://wiki.openwrt.org/doc/howto/generic.sysupgrade#for_sysupgrade-based_upgrades Ram disk].&lt;br /&gt;
&lt;br /&gt;
3. Per ssh mit dem Router verbinden &amp;lt;code&amp;gt;ssh root@&amp;lt;Link-local Adresse des Nodes&amp;gt;%&amp;lt;interface&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. sysupgrade starten.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /tmp/  &lt;br /&gt;
sysupgrade -v firmware.bin  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. beten, dass es sich um ein &amp;quot;kompatibles&amp;quot; upgrade handelt. ;)&lt;br /&gt;
&lt;br /&gt;
==== Upgrade von inkompatibler Konfiguration (Legacy auf Gluon, Wechsel des Hood, etc.) ====&lt;br /&gt;
Bei einem Upgrade von einer inkompatiblen Version mittels &amp;lt;code&amp;gt;sysupgrade&amp;lt;/code&amp;gt; muss man normalerweise mittels&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysupgrade -n firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
die aktuellen Einstellungen überschreiben lassen. Auf einem Node, den man nur per SSH erreicht, ist das unpraktisch, da auch Passwörter und SSH-Schlüssel gelöscht werden. Zum Glück hat &amp;lt;code&amp;gt;sysupgrade&amp;lt;/code&amp;gt; einen interaktiven Modus, den man per&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysupgrade -i firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
startet. Hier kann man (nachdem man bestätigt hat, dass ein Teil der Konfiguration übernommen werden soll) die Liste an zu sichernden Dingen bearbeiten. Die gluon-node-info (Geo-Koordinaten und Kontaktadresse) so wie vor allem die drobbear/*keys sollte man behalten, evtl auch System mit dem Hostnamen des Nodes. Der Rest kann gelöscht werden, falls man da keine wichtigen Anpassungen vorgenommen hat. ('dd' löscht Zeilen in vi, mit &amp;quot;:wq&amp;quot; für write-quit wird gespeichert und vi beendet ;) )&lt;br /&gt;
&lt;br /&gt;
Je nach Route zum Router, Router, Menschen, die durch den WLAN Empfang laufen,... kann es sein, dass die SSH-Verbindung während des interaktiven Upgrades abbricht. Sicher passiert das z.B., wenn man nur durch einen VPN-Tunnel Verbindung hat. (Nicht fleißig am Backbone mitgearbeitet? ;) Das ist blöd, weil man am Ende noch den Neustart bestätigen muss (etwas unsinnig).&lt;br /&gt;
&lt;br /&gt;
In diesem Fall sollte man besser eine Konfigurationsdatei mit z.B. folgenden Zeilen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/etc/dropbear/authorized_keys&lt;br /&gt;
/etc/dropbear/dropbear_dss_host_key&lt;br /&gt;
/etc/dropbear/dropbear_rsa_host_key&lt;br /&gt;
/etc/config/gluon-node-info&lt;br /&gt;
/etc/config/system&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
erstellen und per &amp;lt;code&amp;gt;tar -cz config  &amp;amp;gt; config.tar.gz&amp;lt;/code&amp;gt; packen. &lt;br /&gt;
Das gleiche erreicht man &amp;quot;interaktiv&amp;quot; per&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sysupgrade -i -b config.tar.gz&lt;br /&gt;
&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Danach kann man mittels&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysupgrade -v -f config.tar.gz firmware.bin &amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
das ganze unbeaufsichtigt laufen lassen.&lt;br /&gt;
&lt;br /&gt;
==== TFTP ====&lt;br /&gt;
Wenn mal ein Router nicht mehr bootet, aber der Bootloader noch funktioniert, (oder man einfach keinen Bock auf das Standardweboberfläche hat) kann man häufig noch per TFTP recht komfortabel eine neue Firmware einspielen. [http://wiki.openwrt.org/doc/howto/generic.flashing.tftp] ;)&lt;br /&gt;
&lt;br /&gt;
* TFTP-Server auf dem lokalen Rechner installieren (Kurzfassung von z.B. [http://www.cyberciti.biz/faq/install-configure-tftp-server-ubuntu-debian-howto/])&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install tftpd-hpa&lt;br /&gt;
sudo chown -R tftp /srv/tftp/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Konfiguration anpassen &amp;amp; neu starten. Das &amp;quot;-c create file&amp;quot; braucht man, um vom Router Dateien zu senden (Konfiguration sichern), &amp;quot;-s&amp;quot; da sonst absolute Pfade angegeben werden müssten (macht der Router natürlich nicht). Mehr zu den Optionen findet man auf der [http://linux.die.net/man/8/tftpd manpage].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vim /etc/default/tftpd-hpa&lt;br /&gt;
&lt;br /&gt;
TFTP_USERNAME=&amp;quot;tftp&amp;quot;&lt;br /&gt;
TFTP_DIRECTORY=&amp;quot;/srv/tftp&amp;quot;&lt;br /&gt;
TFTP_ADDRESS=&amp;quot;0.0.0.0:69&amp;quot;&lt;br /&gt;
TFTP_OPTIONS=&amp;quot;-s -c&amp;quot;&lt;br /&gt;
&lt;br /&gt;
service tftpd-hpa restart &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Dann muss man noch herausfinden, auf welcher IP der Router nach welchem Dateinamen fragt. Eine gute Quelle ist openWRT, z.B. für den beliebten tl-wr841n finden sich die Infos je nach Version [http://wiki.openwrt.org/toh/tp-link/tl-wr841nd#tftp_recovery_via_bootloader_for_v8_v9_v10_v11 hier].&lt;br /&gt;
&lt;br /&gt;
Falls noch Fragen offen bleiben, [https://www.freifunk-bingen.de/forum/hilfe-unterst%C3%BCtzung/flashen-eines-gebrickten-tp-link-routers-tftp die $Anderen wissen auch was]. ;)&lt;br /&gt;
&lt;br /&gt;
=== Hostnamen des Nodes ändern ===&lt;br /&gt;
Standardmäßig ist der Hostname des Nodes gleich der MAC-Adresse des Routers. Möchte man den Hostnamen ändern, so kann man dies per SSH:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set system.@system[0].hostname=what-ever-dude&lt;br /&gt;
uci commit&lt;br /&gt;
reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Änderung wird erst nach dem Kommando ''reboot'' (danach startet der Node neu) wirksam.&lt;br /&gt;
&lt;br /&gt;
=== IPv6 ping ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ping6 &amp;lt;Link-lokale Adresse des Nodes&amp;gt;%&amp;lt;interface&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Siehe [[#IPv6_SSH]].&lt;br /&gt;
&lt;br /&gt;
=== Passwort-Authentifizierung abstellen ===&lt;br /&gt;
'''Wichtig:''' Als erstes prüfen, ob man sich mit seinem Schlüsselpaar auf den Router einloggen kann. Man sollte jetzt nicht mehr nach dem Passwort gefragt werden (allerhöchstens nach dem Passwort, welches den privaten Schlüssel schützt).&lt;br /&gt;
Falls das erfolgreich funktioniert, kann man die Datei ''/etc/config/dropbear'' wie folgt ändern:&lt;br /&gt;
&amp;lt;pre&amp;gt;config dropbear&lt;br /&gt;
        option PasswordAuth 'off'&lt;br /&gt;
        option RootPasswordAuth 'off'&lt;br /&gt;
        option Port         '22'&lt;br /&gt;
#       option BannerFile   '/etc/banner'&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nach einem Neustart des Routers mittels ''reboot'' sollte es jetzt nur noch möglich sein, sich mit seinem Schlüsselpaar auf den Router einzuloggen.&lt;br /&gt;
&lt;br /&gt;
=== SSH public key auf Node aufspielen ===&lt;br /&gt;
Möchte man sich nicht immer per Passwort auf den eigenen Node verbinden, so kann man das auch mit einem Schlüsselpaar realisieren. Falls man danach noch die Authentifizierung per Passwort abschaltet (s. nächster Punkt), dann hat man einen sicheren Zugriff auf seinen Node realisiert.&lt;br /&gt;
Voraussetzung ist natürlich, dass man schon ein gültiges Schlüsselpaar besitzt. Falls dem so ist, so genügt es, den öffentlichen Schlüssel (public key) auf den Node zu übertragen. Das kann mit Hilfe von scp (secure copy) passieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp -6 id_rsa4096.pub root@[&amp;lt;Link-lokale Adresse des Nodes&amp;gt;%eth0]:/etc/dropbear/authorized_keys&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hierbei steht id_rsa.pub für die Datei, die den öffentlichen Schlüssel enthält. '''ACHTUNG:''' Obiger Befehl ersetzt die eventuell schon vorhandene Datei authorized_keys auf dem Node. Das ist O.K. für den ersten Schlüssel. Sollen mehrere Schlüssel eingetragen werden (z. B. weil man außer vom Laptop auch vom Tablet auf seinen Node verbinden möchte), kann man das so machen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat ~/.ssh/id_rsa4096.pub | ssh root@[&amp;lt;Link-lokale Adresse des Nodes&amp;gt;%eth0] 'umask 077; cat &amp;gt;&amp;gt;.ssh/authorized_keys'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollte beim Kopierversuch die Meldung&lt;br /&gt;
&amp;lt;pre&amp;gt;ssh: Could not resolve hostname fe80:&amp;lt;/pre&amp;gt;&lt;br /&gt;
erscheinen, hat man höchstwahrscheinlich die eckigen Klammern um die IP-Adresse inklusive Schnittstelle vergessen. Dann wird der erste Doppelpunkt schon als Ende des Hostnamens interpretiert! Auch hier werden die Änderungen nach einem Neustart des Routers mittels ''reboot'' übernommen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== NTP-Bug in Firmware 1.2.1b beseitigen ====&lt;br /&gt;
Falls sich ein Node-Betreiber wundert, warum sein Node keine Statistiken liefert und es ein Mesh-Only-Node ist (d. h. ohne eigenen Uplink zum Internet), so liegt das an einem Bug in der Firmware. Diesen kann man jedoch mit einfachen Mitteln beheben:&lt;br /&gt;
Editiert wird die Datei ''/etc/config/system''. Dort findet man einen Eintrag ''config timeserver 'ntp'''. Standardmäßig stehen hier 4 Zeitserver von OpenWRT (in der Form x.openwrt.pool.ntp.org). Diese müssen bei Mesh-Only-Nodes in IPv6-Adressen geändert werden, und zwar so, dass der komplette Konfigurationspunkt wie folgt aussieht:&lt;br /&gt;
&amp;lt;pre&amp;gt;config timeserver 'ntp'&lt;br /&gt;
        list server '2a03:4000:2:494::2'&lt;br /&gt;
        list server '2a01:4f8:161:2461:e4::1'&lt;br /&gt;
        list server '2a02:180:1:1::551f:bb4b'&lt;br /&gt;
        option enabled '1'&lt;br /&gt;
        option enable_server '0'&amp;lt;/pre&amp;gt;&lt;br /&gt;
Auch hier werden die Änderungen erst nach einem Neustart des Nodes mittels ''reboot'' wirksam.&lt;br /&gt;
Dieser Bug soll mit dem nächsten Firmware-Release behoben sein. Man kann die Eintragungen auch in den Nodes mit Internet-Uplink ändern ohne die Funktion zu beeinträchtigen.&lt;br /&gt;
&lt;br /&gt;
=== LAN Kopplung ===&lt;br /&gt;
Eine LAN-Kopplung kann in manchen Fällen sinnvoll sein, besonders wenn man einen VLAN-fähigen Switch und eine bestehende Netzwerkverkabelung hat. Hier werden die Switchports angewiesen auch über LAN zu meshen.&lt;br /&gt;
&lt;br /&gt;
==== TL-WR841ND ====&lt;br /&gt;
03/2014: Hier wird über alle 4 LAN Ports gemeshed, Mesh über WLAN kann man optional noch ausschalten! Folgende Konfiguration stammt von rampone/FF-KBU und wurde an 2 TL-WR841N v.8 getestet mit KBU-FF-Firmware 1.1.&lt;br /&gt;
&lt;br /&gt;
05/2015: Verifiziert (und ergänzt) für TL-WR841N v.9 und KBU-FF-Firmware 1.2.2rc3 .&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/network'' - Folgende Änderungen wurden an der FF-Firmware vorgenommen:&lt;br /&gt;
#Konfigurationsschnittstelle 'freifunk' -&amp;gt; Hier haben wir die ethX-Schnittstelle aus &amp;quot;ifname&amp;quot; rausgenommen, damit kein ff aus dem ethX (switch) rauskommt (X=1 für Hardware bis einschließlich v8, sonst X=0).&lt;br /&gt;
#Konfigurationsschnittstelle 'mesh_lan' -&amp;gt; kompletten Codeblock hinzugefügt. Dieser bewirkt, dass über ethX (switch) gemeshed wird. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config interface 'loopback'&lt;br /&gt;
	option ifname 'lo'&lt;br /&gt;
	option proto 'static'&lt;br /&gt;
	option ipaddr '127.0.0.1'&lt;br /&gt;
	option netmask '255.0.0.0'&lt;br /&gt;
&lt;br /&gt;
config interface 'wan'&lt;br /&gt;
	option ifname 'eth0'&lt;br /&gt;
	option proto 'dhcp'&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option accept_ra '0'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
&lt;br /&gt;
config switch&lt;br /&gt;
	option name 'switch0'&lt;br /&gt;
	option reset '1'&lt;br /&gt;
	option enable_vlan '1'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'switch0'&lt;br /&gt;
	option vlan '1'&lt;br /&gt;
	option ports '0 1 2 3 4'&lt;br /&gt;
&lt;br /&gt;
config interface 'freifunk'&lt;br /&gt;
	option ifname 'bat0'		#LAN-Kopplung: ifname eth1 (bzw. eth0, s.o.) entfernt&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option proto 'none'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option accept_ra '1'&lt;br /&gt;
	option macaddr '10:fe:ed:f1:53:84'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mtu '1528'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_vpn'&lt;br /&gt;
	option ifname 'mesh-vpn'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
	option macaddr '12:fe:ed:f2:53:84'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_lan'		#LAN-Kopplung: Codeblock mesh-lan hinzugefuegt&lt;br /&gt;
	option ifname 'eth0'            # ab TL-841N(D) v9: eth0, bis v8: eth1 . Bei falschem Interface läuft das mesh-lan über den blauen Port. Wer's mag...&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/wireless'' - Hier wird der Codeblock, der für das Mesh über WLAN verantwortlich ist, auskommentiert (optional)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#config wifi-iface 'wifi_mesh'&lt;br /&gt;
#       option device 'radio0'&lt;br /&gt;
#       option network 'mesh'&lt;br /&gt;
#       option mode 'adhoc'&lt;br /&gt;
#       option ssid '02:d1:11:37:fc:39'&lt;br /&gt;
#       option bssid '02:d1:11:37:fc:39&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TL-WDR4300 ====&lt;br /&gt;
Das gleiche nochmal für den 4300er&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/network''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config interface 'loopback'&lt;br /&gt;
	option ifname 'lo'&lt;br /&gt;
	option proto 'static'&lt;br /&gt;
	option ipaddr '127.0.0.1'&lt;br /&gt;
	option netmask '255.0.0.0'&lt;br /&gt;
&lt;br /&gt;
config interface 'wan'&lt;br /&gt;
	option ifname 'eth0.2'&lt;br /&gt;
	option proto 'dhcp'&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option accept_ra '0'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option macaddr 'a2:f3:c1:65:81:cd'&lt;br /&gt;
&lt;br /&gt;
config switch&lt;br /&gt;
	option name 'eth0'&lt;br /&gt;
	option reset '1'&lt;br /&gt;
	option enable_vlan '1'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'eth0'&lt;br /&gt;
	option vlan '1'&lt;br /&gt;
	option ports '0t 2 3 4 5'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'eth0'&lt;br /&gt;
	option vlan '2'&lt;br /&gt;
	option ports '0t 1'&lt;br /&gt;
&lt;br /&gt;
config interface 'freifunk'&lt;br /&gt;
	option ifname 'bat0'		#LAN-Kopplung: ifname eth0.1 entfernt&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option proto 'none'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option accept_ra '1'&lt;br /&gt;
	option macaddr 'a0:f3:c1:64:81:cc'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mtu '1528'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_vpn'&lt;br /&gt;
	option ifname 'mesh-vpn'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
	option macaddr 'a2:f3:c1:65:81:cc'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_lan'		#LAN-Kopplung: Codeblock mesh-lan hinzugefuegt&lt;br /&gt;
        option ifname 'eth0.1'&lt;br /&gt;
        option proto 'batadv'&lt;br /&gt;
        option mesh 'bat0'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einsperren des Freifunk-Routers in eine DMZ ==&lt;br /&gt;
&lt;br /&gt;
Wer seinen Freifunk-Router einsperren und/oder die Bandbreite begrenzen möchte, kann dies am einfachsten tun, indem er ihn an seiner Firewall an einen eigenen Netzwerkport klemmt und diesen dann als DMZ konfiguriert. Ein KBU-Freifunk-Router muss zur Zeit im LAN DHCP, DNS, im Internet NTP sowie mit den [[fastd]]-Knoten reden können. Folgendes Bespiel für eine iptables-Firewall nimmt an, dass der Freifunk-Router über eth2 angeschlossen ist:&lt;br /&gt;
&lt;br /&gt;
 # eth2 darf nur DNS, NTP, DHCP und ansonsten mit den fastdX reden&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p udp --dport 67:68 --sport 67:68 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p udp --dport 67:68 --sport 67:68 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p udp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p tcp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p udp --dport 123                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p udp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p tcp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p udp --dport 123                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 176.9.41.253                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 176.9.41.253                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 178.63.59.41                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 178.63.59.41                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 37.120.169.214               -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 37.120.169.214               -j ACCEPT &lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 37.221.195.47                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 37.221.195.47                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 78.46.68.75                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 78.46.68.75                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 84.201.35.206                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 84.201.35.206                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT                                      -j DROP&lt;br /&gt;
 iptables -i eth2 -A FORWARD                                    -j DROP&lt;br /&gt;
 # eth2 darf maximal 2000 kbit/s ein- und ausgehenden Traffic machen&lt;br /&gt;
 wondershaper eth2 2000 2000&lt;br /&gt;
&lt;br /&gt;
Prinzipiell könnte man den Traffic noch weiter einschränken. DHCP und DNS müssen nur zum DHCP- bzw. DNS-Server funktionieren, und der Traffic zu den fastd-Servern ließe sich auf TCP-Port 80 und UDP-Port 10000 begrenzen.&lt;br /&gt;
&lt;br /&gt;
===Alternative: Einsperren im VLAN===&lt;br /&gt;
siehe: [[FF-Router einsperren im VLAN]]&lt;br /&gt;
&lt;br /&gt;
== Weboberfläche aktivieren ==&lt;br /&gt;
&lt;br /&gt;
Im Normalbetrieb ist erst mal kein Zugriff notwendig (und auch erst mal nicht vorgesehen). Das läuft einfach! ;-) Und es gibt im Normalbetrieb eben auch keine Weboberfläche, welches Sicherheitslücken haben könnte.&lt;br /&gt;
&lt;br /&gt;
Zum ersten Konfigurieren schaltet mal den Router in einen Konfig-Modus. Der Router nimmt dann in diesem Modus nicht mehr am Freifunknetzwerk teil. Nun kann man dann Rechner an die LAN-Ports des Freifunkrouters anschließen und über eine Weboberfläche per Browser den Router konfigurieren oder updaten. Das sollte aber nur ganz selten notwendig sein. Nach einem Reboot des Routers geht das Gerät dann wieder in den Freifunk-Modus mit deinen Konfigurationsänderungen.&lt;br /&gt;
&lt;br /&gt;
Wenn man Spaß am Basteln hat, kann man die Weboberfläche aber auch im Normalbetrieb aktivieren. Für die Absicherung muss man dann aber selber sorgen, denn standardmäßig ist das nicht abgesichert. Hier die Anleitung nach [http://wiki.freifunk.in-kiel.de/wiki/Firmware Freifunk Kiel], um auf die Weboberfläche zu gelangen:&lt;br /&gt;
&lt;br /&gt;
Die Weboberfläche des Routers ist nicht über die Link-lokale Adresse, sondern nur über die generelle IPv6-Adresse des Routers zu erreichen. Die IPv6-Adresse bekommt man über [https://map.kbu.freifunk.net/ die Karte] oder per [[Pimp_my_Node#IPv6_ssh|IPv6 ssh]] via&lt;br /&gt;
Die generelle IPv6-Adresse erfährt man durch Eingabe von&lt;br /&gt;
  ifconfig | grep Global&lt;br /&gt;
Die IPv6-Adresse (&amp;quot;inet6 adr&amp;quot;) kann man nun im Browser in eckigen Klammern und vorangestelltem &amp;quot;http://&amp;quot; aufrufen (zum Beispiel: http://[2001:67c:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx]/) und gelangt so zur Weboberfläche LuCI.&lt;br /&gt;
&lt;br /&gt;
Falls der Router nicht per IPv6 http liefern sollte, kann man das per SSH beheben. Dazu folgendes nach dem Login auf der Shell vom Router ausführen:&lt;br /&gt;
 uci delete uhttpd.main.listen_http&lt;br /&gt;
 uci delete uhttpd.main.listen_https&lt;br /&gt;
 &lt;br /&gt;
 uci add_list uhttpd.main.listen_http='[::]:80'&lt;br /&gt;
 uci add_list uhttpd.main.listen_http='0.0.0.0:80'&lt;br /&gt;
 uci add_list uhttpd.main.listen_https='[::]:80'&lt;br /&gt;
 uci add_list uhttpd.main.listen_https='0.0.0.0:80'&lt;br /&gt;
 &lt;br /&gt;
 uci commit uhttpd&lt;br /&gt;
 &lt;br /&gt;
 /etc/init.d/uhttpd enable&lt;br /&gt;
&lt;br /&gt;
== Uplink mit Android-Tethering/USB Netzwerkkarte ==&lt;br /&gt;
(SSH-Zugangserfahrung nötig)&lt;br /&gt;
&lt;br /&gt;
Das ganze sei von Anfang an als &amp;quot;sportlich&amp;quot; zu betrachten. Leider sind mobile 3g-/LTE-Tarife fast ausnahmslos nach einem bestimmten Volumen gedrosselt (üblicherweise auf 64 bis 56 kbit/s (neuere NetzclubSim sogar auf 32 kbit/s), Ausnahme bilden hier nur &amp;quot;LTE Zuhause&amp;quot; &amp;quot;DSL&amp;quot; Ersatz Tarife -&amp;gt; 386kbit/s).&lt;br /&gt;
Da Freifunk auch bei Nichtbenutzung Daten überträgt, ist nur bei &amp;quot;LTE Zuhause&amp;quot;-Tarifen interessant, dies als Dauerlösung zu nutzen. Dort ist aber wiederum meist ein LTE-Router vor Ort und man kann den Router auch &amp;quot;traditionell&amp;quot; via LAN Kabel anbinden.&lt;br /&gt;
Bei Benutzung als Uplink bei Straßenfesten/Festivals etc. ist wahrscheinlich, dass erstens das Datenvolumen schnell aufgebraucht sein wird und zweitens ab einer bestimmten Größe auch das 3g-Netz vor Ort überlastet ist. Wenn man es dennoch machen will (mehrere Sim-Karten/spezieller hochvolumiger Tarif/vom Netzbetreiber gesponserter Uplink (träum)), sollte man die Benutzung von LTE erwägen. Auch dort könnten aber durch zukünftige Adapation Überlasterscheinungen auftreten. Desweitern nutzen 2g/3g/4g auch dasselbe Backbone, welcher dann auch für LTE ein Flaschenhals darstellt.&lt;br /&gt;
Muss nochmal nachprüfen, aber wenn, dann nicht uninteressant: Der WLAN-Zugang des Telefons (CM7) wurde per Tethering weitergeleitet und bei Abschalten gab es fallback auf 3g -&amp;gt; nicht schöne, aber einfache &amp;quot;Immer&amp;quot;netzlösung?  Mein Tablet zeigt nicht dieses Verhalten.)&lt;br /&gt;
&lt;br /&gt;
Eine ausführliche und fortgeschriebene Anleitung für Gluon für USB-Tethering und USB-3G-Dongle (UMTS-Stick) gibt es bei im Freifunk Rheinbach [http://wiki.freifunk-rheinbach.de Wiki] unter [http://wiki.freifunk-rheinbach.de/index.php/UMTS UMTS] und [http://wiki.freifunk-rheinbach.de/index.php/USB-Support USB-Support].&lt;br /&gt;
 &lt;br /&gt;
Blablabla, jetzt geht es los:&lt;br /&gt;
Das ganze habe ich mit einem 1043ND und einem droid 2.3CM7 Telefon und einem droid 2.2 Tablet ausprobiert, sollte aber auf jeglichen OpenWRT-Router mit USB, Android-USB-tethering-fähigem Gerät und einfachen USB-Ethernet-Adaptern (nachprüfen!!!) funktionieren:&lt;br /&gt;
&lt;br /&gt;
- Per SSH in den Router einloggen&lt;br /&gt;
- Installieren der notwendigen Treiber&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
opkg update&lt;br /&gt;
opkg install kmod-usb-uhci kmod-usb-net-rndis&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies sollte, falls ihr noch keine USB-Unterstützung in der Firmware habt, auch diese über Abhängigkeiten nachinstallieren. (nachprüfen!!!)&lt;br /&gt;
&lt;br /&gt;
- Ihr müsst den Netzwerkzugang für die neue Schnittstelle &amp;quot;usb0&amp;quot; noch konfigurieren. Unter /etc/config/network fügt ihr z.B. folgendes hinzu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config interface 'wan2'&lt;br /&gt;
       option ifname 'usb0'&lt;br /&gt;
       option proto 'dhcp'&lt;br /&gt;
       option type 'bridge'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch unter LuCi sollte dies konfigurierbar sein. &lt;br /&gt;
&lt;br /&gt;
- Nach einem Neustart und einem angeschlossenen Gerät sollte nun der Uplink via dem USB-Netzwerkgerät/Android-Tethering funktionieren.&lt;br /&gt;
- Sollte das Gerät erst später angeschlossen werden, so könnt ihr mit folgendem Befehl das Netzwerkgerät starten.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifup wan2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(Dies ist noch nicht ein perfektes Tutorial, werde es nochmal durchprobieren. Einen UMTS-Stick hatte ich auf Anhieb noch nicht zum laufen gebracht. Auch scheint Multiwan in OpenWRT eine interessante Sache)&lt;br /&gt;
&lt;br /&gt;
== Zusätzlich zum Freifunk auch privates WLAN einrichten ==&lt;br /&gt;
&lt;br /&gt;
Es ist möglich ein privates WLAN anzulegen, dass mit dem WAN-Port gebridged und separat zum Mesh-Netzwerk ist. (Bitte beachten, dass &amp;quot;Mesh on Wan&amp;quot; nicht zeitgleich mit aktiviert werden sollte.) &lt;br /&gt;
Effekt: Das private WLAN wird erweitert, zeitgleich fungiert der Router als Freifunk-Router. Die Netze sind voneinander abgekoppelt.&lt;br /&gt;
Das private WLAN kann per SSH in der Konsole aktiviert werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set wireless.wan_radio0=wifi-iface&lt;br /&gt;
uci set wireless.wan_radio0.device=radio0&lt;br /&gt;
uci set wireless.wan_radio0.network=wan&lt;br /&gt;
uci set wireless.wan_radio0.mode=ap&lt;br /&gt;
uci set wireless.wan_radio0.encryption=psk2&lt;br /&gt;
uci set wireless.wan_radio0.ssid=&amp;quot;$SSID&amp;quot;&lt;br /&gt;
uci set wireless.wan_radio0.key=&amp;quot;$KEY&amp;quot;&lt;br /&gt;
uci set wireless.wan_radio0.disabled=0&lt;br /&gt;
uci commit&lt;br /&gt;
wifi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Bitte ersetze $SSID mit dem Namen deines Heimnetzwerks und $KEY mit deinem bisher üblichen Key (der vom privaten Router). Falls dein Router beide Frequenzbänder unterstützt(2.4 und 5 Ghz) und du in beiden auch privates WLAN aktivieren möchtest, muss dies für radio0 und radio1 mit übernommen werden.&lt;br /&gt;
Zum Deaktivieren des Ganzen wie folgt vorgehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set wireless.wan_radio0.disabled=1&lt;br /&gt;
uci commit&lt;br /&gt;
wifi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Automatischer Neustart bei längerem Mesh-Verlust, &amp;quot;quick hack&amp;quot; (und &amp;quot;improved hack&amp;quot;) zur Analyse ==&lt;br /&gt;
&lt;br /&gt;
Bei der Vernetzung von Notunterkünften mit Gluon-Beta (via Euskirchen) ist bei einem CPE210-Uplink aufgefallen, dass sämtliche Mesh-Verbindungen über Stunden ausgefallen waren. Es war zunächst unklar, ob überwiegend die Stromversorgung schuld war, insbesondere da der Uplink-Router mehrfach betroffen und trotzdem via VPN erreichbar war. Dabei war dann nur ein Mesh mit sich selbst via &amp;quot;batctl o&amp;quot; sichtbar. Einzelne Mesh-Only-Router zeigten ebenfalls (selten) Ausfälle über mehrere Stunden: teilweise Nachts, wo Renovierungsarbeiten nicht die Ursache sein konnten.&lt;br /&gt;
&lt;br /&gt;
Um längere Ausfälle zu vermeiden, wurde folgendes Script unter /root/check_mesh.sh abgelegt, dass via cron-Job automatisch jede Minute ausgeführt wird und nach 10 Minuten ohne Mesh-Verbindung einen Reboot auslöst:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash&lt;br /&gt;
&lt;br /&gt;
FAILCOUNTFILE=/var/run/mesh0_failcount&lt;br /&gt;
MAXFAILCOUNT=10&lt;br /&gt;
&lt;br /&gt;
# check mesh connections with different originators and nexthops, MAC is 17 chars long&lt;br /&gt;
count=`batctl o | awk '/mesh0/{originator=substr($0,1,17); nexthop=substr($0,37,17); if (originator != nexthop){print originator&amp;quot; &amp;quot;nexthop}}' | wc -l`&lt;br /&gt;
&lt;br /&gt;
if [ $count -gt 1 ]; then  ## more than a single mesh with itself is left&lt;br /&gt;
  echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
else&lt;br /&gt;
  if [ -f $FAILCOUNTFILE ]; then  &lt;br /&gt;
    read failcount &amp;lt; $FAILCOUNTFILE&lt;br /&gt;
    failcount=$(($failcount+1))&lt;br /&gt;
    if [ $failcount -ge $MAXFAILCOUNT ]; then&lt;br /&gt;
      touch /etc/mesh0_failcount_`date +&amp;quot;%Y-%m-%d_%H%M&amp;quot;`&lt;br /&gt;
      sync&lt;br /&gt;
      reboot&lt;br /&gt;
    fi&lt;br /&gt;
    echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
  else&lt;br /&gt;
    echo 1 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
  fi&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es muss (hier mit awk, s.o.) nach _unterschiedlichen_ Werten für Originator und NextHop ausschau gehalten werden, denn bei einem fehlenden Mesh zwischen zwei Knoten meshen die Knoten noch mit sich selbst:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# batctl o | grep mesh0&lt;br /&gt;
62:e6:28:24:5f:52    0.730s   (  6) 62:e6:28:24:5f:52 [     mesh0]: 62:e6:28:24:5f:52 (  6)&lt;br /&gt;
62:e6:28:72:32:48    0.730s   (  8) 62:e6:28:72:32:48 [     mesh0]: 62:e6:28:72:32:48 (  8)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das war lesbar und einfach, aber wegen ständiger Schreibzugriffe schlecht für die Lebensdauer der Flash-Speicher. Besser also nur schreiben, wenn Fehler passieren, etwa so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash&lt;br /&gt;
&lt;br /&gt;
FAILCOUNTFILE=/var/run/mesh0_failcount&lt;br /&gt;
MAXFAILCOUNT=10&lt;br /&gt;
&lt;br /&gt;
# check mesh connections with different originators and nexthops, MAC is 17 chars long&lt;br /&gt;
count=`batctl o | awk '/mesh0/{originator=substr($0,1,17); nexthop=substr($0,37,17); if (originator != nexthop){print originator&amp;quot; &amp;quot;nexthop}}' | wc -l`&lt;br /&gt;
&lt;br /&gt;
if [ -f $FAILCOUNTFILE ]; then          # Does the failcount file exist at all?&lt;br /&gt;
  read failcount &amp;lt; $FAILCOUNTFILE       # If it exist then there is a number in.&lt;br /&gt;
  if [ $count -gt 0 ]; then             # At least one originator with different nexthop exists&lt;br /&gt;
    if [ $failcount -gt 0 ]; then       # We'r lucky, everything is fine again!&lt;br /&gt;
      echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
      exit&lt;br /&gt;
    fi&lt;br /&gt;
  else                                  # no nexthop different than originator exists &lt;br /&gt;
    failcount=$(($failcount+1))&lt;br /&gt;
    if [ $failcount -ge $MAXFAILCOUNT ]; then&lt;br /&gt;
      echo 0 &amp;gt; $FAILCOUNTFILE                   # Reset counter before reboot&lt;br /&gt;
      logread &amp;gt; /etc/mesh0_failcount_lastwords_`date +&amp;quot;%Y-%m-%d_%H%M&amp;quot;`  # DEBUG info&lt;br /&gt;
      sync&lt;br /&gt;
      reboot&lt;br /&gt;
    fi &lt;br /&gt;
    echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
  fi&lt;br /&gt;
else&lt;br /&gt;
  echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Script wird dann noch ausführbar gemacht:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /root/check_mesh.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Via &amp;quot;crontab -e&amp;quot; führt dann folgender Eintrag zur Ausführung zu jeder vollen Minute:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* * * * * /root/check_mesh.sh &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wichtig ist, dass ein ausreichender Zeitraum zum Aufbau des Mesh-Netzes nach dem Reboot verbleibt. 10 Minuten (MAXFAILCOUNT) sollten hierzu ausreichen.&lt;br /&gt;
&lt;br /&gt;
Im /etc-Verzeichnis (das wurde gewählt, da Änderungen hier einen Neustart überleben) sind dann solche Reboot-Ereignisse ablesbar:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -al | grep failcount&lt;br /&gt;
-rw-r--r--    1 root     root             0 Oct 26 06:22 mesh0_failcount_2015-10_26_0622&lt;br /&gt;
-rw-r--r--    1 root     root             0 Oct 29 08:12 mesh0_failcount_2015-10-29_0812&lt;br /&gt;
-rw-r--r--    1 root     root             0 Oct 30 21:59 mesh0_failcount_2015-10-30_2159&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Vorfälle traten unregelmäßig alle paar Tage auf, wurden aber durch das Script abgefangen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Client-WLAN nachts automatisch ausstellen ==&lt;br /&gt;
&lt;br /&gt;
In Jugendherbergen oder Flüchtlingsheimen kann es durch rücksichts- oder gedankenloses Verhalten einzelner Gäste oder Bewohner zu akkustischen Beeinträchtigungen kommen, die durch temporäres Ausschalten des WLAN-Client-Netzes vermindert werden können. Damit kann natürlich nicht verhindert werden, dass einzelne Bewohner sich einen eigenen Freifunk-Router konfigurieren und ins Mesh-Netz hängen - das wäre ja sogar erwünscht. Folgendes Script ''restrict_client_access.sh'' ermöglicht das Abschalten in den frühen Morgenstunden (d.h. vor 0 Uhr abzuschalten ist hier nicht berücksichtigt). Es ist bisher für TP-Link TL-WR841-ND, sowie mit TL-WDR4300 und TL-WDR3600 mit der aktuellen Firmware v1.4 getestet. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash&lt;br /&gt;
&lt;br /&gt;
STOP_HOUR=0   # needs to be smaller than START_HOUR!!!&lt;br /&gt;
START_HOUR=7  # disable client0 network device if it's active &lt;br /&gt;
              # and hour is between STOP_HOUR and START_HOUR &lt;br /&gt;
&lt;br /&gt;
hour=`date +&amp;quot;%H&amp;quot;`&lt;br /&gt;
&lt;br /&gt;
ip addr list client0 &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
if [ $? -eq 0 ]; then                   # client network is on&lt;br /&gt;
  if [ $hour -lt ${START_HOUR} -a $hour -ge ${STOP_HOUR} ]; then        # turn it off&lt;br /&gt;
    uci set wireless.client_radio0.disabled=1&lt;br /&gt;
    uci set wireless.client_radio1.disabled=1                           # additional 5GHz wifi exists (e.g. WDR3600)&lt;br /&gt;
    uci commit wireless&lt;br /&gt;
    /etc/init.d/network restart&lt;br /&gt;
  fi&lt;br /&gt;
else                                    # client network is off&lt;br /&gt;
  if [ $hour -ge ${START_HOUR} -o $hour -lt ${STOP_HOUR} ]; then        # turn it on &lt;br /&gt;
    uci set wireless.client_radio0.disabled=0&lt;br /&gt;
    uci set wireless.client_radio1.disabled=0                           # additional 5GHz wifi exists (e.g WDR3600)&lt;br /&gt;
    uci commit wireless        &lt;br /&gt;
    /etc/init.d/network restart&lt;br /&gt;
  fi&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Script kann z.B. einfach im /root/ -Verzeichnis abgelegt werden. Via &amp;quot;crontab -e&amp;quot; führt dann folgender Eintrag zur Ausführung zu jeder vollen Minute:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* * * * * /root/restrict_client_access.sh &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Hinweis:''' Die uci- sowie das Restart-Kommando dürfen nicht ausserhalb der if-Bedingungen das Script ''vereinfachen'', da sie jeweils nur bei einmaligem Umstellen täglich ausgeführt werden dürfen. Sonst verliert man jede Minute das Netz...&lt;br /&gt;
&lt;br /&gt;
'''Wichtig ''': Der NTP-Dienst bei Mesh-Only-Routern muss ggf. erst (oder nochmal) nach der hergestellten Mesh-Verbindung durchgestartet werden, da NTP keine großen Zeitsprünge macht. Das kan z.B. durch folgenden Eintrag via Crontab automatisiert werden (hier: zur vollen Minute 8, die ggf. nach längerer Auszeit auch zunächst falsch sein kann):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
8 * * * * /etc/init.d/sysntpd restart &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Besser wäre hier ein Script, dass nach dem erfolgreichen Herstellen einer Mesh-Verbindung zum Uplink den ndtd einmal durchstartet, damit die Zeit initial synchronisiert wird.&lt;br /&gt;
&lt;br /&gt;
== Client-WLAN an Mesh-Only-Routern nur aktivieren, wenn Mesh-WLAN vorhanden ist ==&lt;br /&gt;
&lt;br /&gt;
Bei Routern, die selbst keinen Uplink haben und deshalb davon abhängig sind mit Nachbarn zu meshen, kann das Freifunk-Client-WLAN ausgestellt werden, wenn kein Mesh-Link (und damit auch kein entfernter Uplink) greifbar ist.&lt;br /&gt;
&lt;br /&gt;
Folgendes Script kann in ''/root/client-off-if-mesh-off.sh'' abgelegt (und via ''chmod +x /root/client-off-if-mesh-off.sh'' ausführbar gemacht) werden, das dann via cron regelmäßig aufgerufen wird:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash                                                                                          &lt;br /&gt;
&lt;br /&gt;
FAILCOUNTFILE=/var/run/mesh0_nogatewaycount&lt;br /&gt;
MAXFAILCOUNT=2&lt;br /&gt;
&lt;br /&gt;
# check mesh connections with different originators and nexthops, MAC is 17 chars long&lt;br /&gt;
batctl gwl | grep -q &amp;quot;No gateways in range&amp;quot;&lt;br /&gt;
no_gw=$?&lt;br /&gt;
&lt;br /&gt;
if [ -f $FAILCOUNTFILE ]; then          # Does the failcount file exist at all?&lt;br /&gt;
  read failcount &amp;lt; $FAILCOUNTFILE       # If it exist then there is a number in.&lt;br /&gt;
  if [ ${no_gw} -eq 1 ]; then           # There is a gateway&lt;br /&gt;
    if [ $failcount -gt 0 ]; then       # We'r lucky, it is fine again, we decrease the failcount&lt;br /&gt;
      failcount=$(($failcount-1))&lt;br /&gt;
      echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
      if [ $failcount -eq 0 ]; then&lt;br /&gt;
        # turn on client network &lt;br /&gt;
        uci set wireless.client_radio0.disabled=0&lt;br /&gt;
        uci commit wireless&lt;br /&gt;
        wifi&lt;br /&gt;
      fi&lt;br /&gt;
      exit&lt;br /&gt;
    fi&lt;br /&gt;
  else                                  # no nexthop different than originator exists &lt;br /&gt;
    failcount=$(($failcount+1))&lt;br /&gt;
    if [ $failcount -eq $MAXFAILCOUNT ]; then&lt;br /&gt;
      # logread &amp;gt; /etc/mesh0_failcount_no-mesh_`date +&amp;quot;%Y-%m-%d_%H%M&amp;quot;`  # DEBUG info&lt;br /&gt;
      # turn off client network &lt;br /&gt;
      uci set wireless.client_radio0.disabled=1&lt;br /&gt;
      uci commit wireless&lt;br /&gt;
      wifi&lt;br /&gt;
    fi&lt;br /&gt;
    if [ $failcount -le $MAXFAILCOUNT ]; then ## only memorize failcounts up to MAXFAILCOUNT &lt;br /&gt;
      echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
    fi&lt;br /&gt;
  fi&lt;br /&gt;
else&lt;br /&gt;
  echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Via &amp;quot;crontab -e&amp;quot; führt dann folgender Eintrag zur Ausführung zu jeder vollen Minute:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* * * * * /root/client-off-if-mesh-off.sh &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das obige Script ist dahingehend optimiert, dass nur bei Änderungen des Mesh-Status Daten auf den Flash-Speicher geschrieben werden. Für TP-Link WR 841ND wurde obiges Script getestet.&lt;br /&gt;
&lt;br /&gt;
== Freifunk-Monitor: Router-Status per E-Mail ==&lt;br /&gt;
&lt;br /&gt;
Ich zitiere mal von der Mailingliste - das ganze ist in der Testphase und ich werde den Wiki-Eintrag später noch entsprechend Überarbeiten.&lt;br /&gt;
&lt;br /&gt;
(Dieser Service ist nun wieder aktiv, nach spätestens 40 Minuten Down-Time geht die E-Mail jetzt wieder raus!)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Hallo, Liebe Mitstreiter!&lt;br /&gt;
&lt;br /&gt;
Wir alle arbeiten daran, unser Netz besser, schneller und stabiler zu machen.&lt;br /&gt;
&lt;br /&gt;
Axel und ich möchten unseren Teil beitragen.&lt;br /&gt;
&lt;br /&gt;
Deshalb entwickeln wir den Freifunk-Monitor – eine kleine Software, die Betreiber von Freifunk-Routern auf Wunsch per E-Mail benachrichtigt, wenn ein- oder mehrere seiner Knoten seitens der Karte nicht erreichbar scheinen.&lt;br /&gt;
&lt;br /&gt;
Dieser Service muss derzeit explizit auf einem Router mit mindestens Gluon 1.4 via SSH angeschaltet werden (es gibt derzeit keine Web-Oberfläche).&lt;br /&gt;
&lt;br /&gt;
Wir laden hiermit alle Router-Betreiber ein, den Monitor zu testen!&lt;br /&gt;
&lt;br /&gt;
Rechnet damit, schlimmstenfalls zu viele oder ungerechtfertigte E-Mails vom Monitor zu bekommen - wir testen die Software noch.&lt;br /&gt;
&lt;br /&gt;
Wie ihr das wieder abschaltet steht unten.&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
Kommando zum Monitoring einschalten (Achtung, was folgt ist EINE Zeile):&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;if uci:get_first('gluon-node-info', 'owner', 'send_alerts', '') ~= '' then return true end&amp;quot; &amp;gt; /lib/gluon/announce/nodeinfo.d/send_alerts ; uci set gluon-node-info.@owner[0].send_alerts=1 ; uci commit&lt;br /&gt;
&lt;br /&gt;
Kommando zum E-Mail-Adresse setzen (falls nicht schon geschehen):&lt;br /&gt;
&lt;br /&gt;
uci set gluon-node-info.@owner[0].contact=ff@cocoanuts.org; uci commit&lt;br /&gt;
&lt;br /&gt;
Kommando zum E-Mail-Adresse prüfen:&lt;br /&gt;
&lt;br /&gt;
uci get gluon-node-info.@owner[0].contact&lt;br /&gt;
&lt;br /&gt;
Kommando zum Monitoring abschalten:&lt;br /&gt;
&lt;br /&gt;
uci set gluon-node-info.@owner[0].send_alerts=0 ; uci commit&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
Frohes Freifunken,&lt;br /&gt;
&lt;br /&gt;
    KaterMikesch &amp;amp; G3ntleman&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Freifunk-Knoten von der Map entfernen ==&lt;br /&gt;
&lt;br /&gt;
Wenn man einen Freifunk-Router in eine andere Hood überführen oder anderweitig verwenden möchte, ist es eine gute Sitte, keine blinkenden roten Punkte auf der Karte zu hinterlassen, die üblicherweise auf Störungen bzw. Ausfälle hindeuten. &lt;br /&gt;
Zum Austragen des Routers aus der Karte kannst Du einen der folgenden Wege beschreiten:&lt;br /&gt;
&lt;br /&gt;
1. Den Router in den Config-Mode überführen (durch längeres Drücken des Reset-Buttons, bis alle LEDs aufblinken) und in der Konfigurationsoberfläche das entsprechende Häkchen deaktivieren. &lt;br /&gt;
&lt;br /&gt;
2. Wenn Du per ssh auf den Router kommst, dann kannst Du in der Datei /etc/config/gluon-node-info folgenden Paramter (von 1 auf 0) setzen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
config location&lt;br /&gt;
        option share_location '0'&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Alternativ zu 2 ebenfalls via ssh und UCI-Kommando auf dem Router:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# uci set gluon-node-info.@location[0].share_location=0&lt;br /&gt;
# uci commit gluon-node-info&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In allen drei Fällen dann den Router nochmal ins Freifunk-Netz hängen (durchstarten) und ein paar Minuten warten, bis der dem Router zugeordnete Punkt mit dem Router-Namen beim nächsten Update der Map-Daten von der Karte verschwindet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt; [[Experteneinstellungen|Optional: Experteneinstellungen]] &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; [[Mitmachen|Übersicht]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Diskussion:KBU_Gluon_Firmware&amp;diff=5304</id>
		<title>Diskussion:KBU Gluon Firmware</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Diskussion:KBU_Gluon_Firmware&amp;diff=5304"/>
		<updated>2017-10-04T20:52:01Z</updated>

		<summary type="html">&lt;p&gt;Took: &amp;quot;Firmware selber kompilieren&amp;quot; soll (ein) Thema auf dieser Seite bleiben! :)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sehr schöne Änderungen! Vielen Dank an [[Benutzer:Simon|Simon]] und [[Benutzer:Zygentoma|Zygentoma]] für die Aufräum-Aktion! :)&lt;br /&gt;
&lt;br /&gt;
Die aktuelle Version ist prima so!&lt;br /&gt;
&lt;br /&gt;
Das Thema &amp;quot;Firmware selber kompilieren&amp;quot; sollte auch weiterhin auf dieser Seite behandelt werden oder ggf. in der Zukunft zumindest ganz oben ein sehr prominenter Link zu einer Seite verbleiben, auf der dazu ein HowTo zu finden ist. Es gibt externe Links zu dieser Wiki-Seite bei denen hier ein solches HowTo erwartet wird...&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Took|Took]] ([[Benutzer Diskussion:Took|Diskussion]]) 22:52, 4. Okt. 2017 (CEST)&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Gluon_Config_Mode&amp;diff=5005</id>
		<title>Gluon Config Mode</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Gluon_Config_Mode&amp;diff=5005"/>
		<updated>2017-01-23T23:36:00Z</updated>

		<summary type="html">&lt;p&gt;Took: /* Knöpfe drücken */ gender&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Grundsätzlich ist unsere Freifunk Firmware so konzipiert, dass der Betreiber eines Nodes keinerlei Konfigurationsarbeiten durchführen muss. Das bedeutet, nach dem Aufspielen unserer Firmware, kann der Betreiber direkt loslegen und ist Teil unseres Freifunk-Netzwerkes. Allerdings empfiehlt es sich dem eigenen Router zumindest noch einen Nickname und Koordinaten zu geben, um diesen auf der [https://map.kbu.freifunk.net Karte] wieder zu finden.&lt;br /&gt;
&lt;br /&gt;
Es ist weiterhin möglich, ein Passwort zu setzen (oder einen ssh public key zu hinterlegen) um den Node per Fernzugriff zu warten. Diese Option macht das manuelle Neustarten im Config Mode wie hier beschrieben in Zukunft überflüssig.&lt;br /&gt;
Wer dann noch mehr coole Dinge ausprobieren möchte kann unter [[Pimp my Node]] stöbern, sobald ein Fernzugriff wie hier beschrieben eingerichtet wurde.&lt;br /&gt;
&lt;br /&gt;
=Config Mode=&lt;br /&gt;
==Knöpfe drücken==&lt;br /&gt;
Zunächst wird der PC mit dem Router über Netzwerkkabel verbunden (gelbe LAN Ports am Router).&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
[[File:wr741nd_pi4-5.jpg|center|thumb|800px]]&lt;br /&gt;
|-&lt;br /&gt;
[[File:Back-of-TL-WR841N-v9.jpg|center|thumb|800px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Nachdem der Router komplett neu gestartet ist (1-2 Minuten warten) drückst du die QSS/Reset-Taste (schwarzer Knopf) ca. 3-15 Sekunden ohne sie loszulassen bis der Router neu startet; Das sieht man daran, dass alle Lampen einmal an- und ausgehen. Bei den neueren Versionen des TL-WR841N(D) heißt die zu drückende Taste &amp;quot;WPS/RESET&amp;quot;. &lt;br /&gt;
#bei manchen Routern (z.B. bei älteren Modellen des WR841N) muss man jetzt das Netzwerkkabel am Router umstecken (blauer WAN Port)&lt;br /&gt;
#Abwarten, bis der PC eine neue LAN-Verbindung aufgebaut hat (DHCP ist aktivieren, evtl. WLAN am PC deaktivieren)&lt;br /&gt;
#Adresse http://192.168.1.1 aufrufen.&lt;br /&gt;
&lt;br /&gt;
==Web GUI==&lt;br /&gt;
Wenn im letzten Schritt alles geklappt hat sollte unter http://192.168.1.1 das hier zu sehen sein:&lt;br /&gt;
&lt;br /&gt;
[[File:Gluon-config-welcome.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
===Fernzugriff einrichten===&lt;br /&gt;
Wenn Du einen ssh-key hinterlegen oder einen Nutzername/Passwort für die Fernwartung konfigurieren willst (um beim nächsten mal nicht wieder per Knopfdruck in den Config Mode wechseln zu müssen) solltest Du das zuerst unter ''Expert Mode'' (link rechts oben) -&amp;gt; ''Remote access tun'', bevor Du die Daten auf der Wizard Seite einträgst.&lt;br /&gt;
&lt;br /&gt;
[[File:Gluon-config-expert-mode.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
Das hinterlegen eines Schlüssels ist sicherer und komfortabler (zumindest für Linux Nutzer). Mehr Infos gibt's z.B. [http://rcsg-gsir.imsb-dsgi.nrc-cnrc.gc.ca/documents/internet/node31.html hier].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Nickname und Koordinaten eingeben===&lt;br /&gt;
Nachdem evtl. der Fernzugriff eingerichtet wurden kehrst Du auf die ''Wizard'' Seite (link rechts oben) zurück. Hier gibst Du einen beliebigen '''Node name''' ein und wählst '''Show node on the map''' aus.&lt;br /&gt;
&lt;br /&gt;
[[File:Gluon-config-coords.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
Die Ziel-Koordinaten (Latitde/Longitude) an denen der Router stehen soll findest Du z.B. im Kartendienst Deiner Wahl. Z.B. unter https://www.openstreetmap.org Adresse suchen, '''Query Features''' (Fragezeichen rechts unten) anklicken und dann bis zum nächsten Node durchwurschteln. Im Bild unten wäre Location: 50.9184406, 6.9188078 die gewünschte Info. Alternativ kannst du auch unsere [//map.kbu.freifunk.net eigene Map] nutzen. Einfach zum Ort zoomen und dann oben rechts die Pinnadel auswählen. Ein Doppelklick an die gewünschte Stelle gibt Breiten- und Längengrad aus. Alternativ einfach mit der rechten Maustaste auf die Karte klicken.&lt;br /&gt;
&lt;br /&gt;
[[File:Osm-screen-shot.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
* Altitude (Höhe) ist nicht zwingend erforderlich, aber bei mehreren Routern in einem Hochhaus vielleicht hilfreich.&lt;br /&gt;
&lt;br /&gt;
* ''Contact info'' muss angegeben werden, damit dem [http://www.picopeer.net/PPA-de.shtml Pico Peering Agreement] - eine Minimalforderung für freie Bürgernetze - entsprochen wird. Es kann auch eine anonyme Mailadresse sein, Hauptsache man ist irgendwie erreichbar. Bitte beachten: diese Kontaktinformation wird veröffentlicht.&lt;br /&gt;
&lt;br /&gt;
* Ein Klick auf Save &amp;amp; Restart führt erwartungsgemäß zum Neustart mit den gemachten Änderungen. Sobald der Router neugestartet und wieder über den '''blauen''' Port richtung Internet verbunden ist sollte er nach wenigen Minuten mit neuem Namen und Koordinaten auf der [https://map.kbu.freifunk.net Karte] auftauchen.&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Gluon_Config_Mode&amp;diff=5004</id>
		<title>Gluon Config Mode</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Gluon_Config_Mode&amp;diff=5004"/>
		<updated>2017-01-23T23:33:49Z</updated>

		<summary type="html">&lt;p&gt;Took: /* Knöpfe drücken */ Formulierung deutlicher gemacht&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Grundsätzlich ist unsere Freifunk Firmware so konzipiert, dass der Betreiber eines Nodes keinerlei Konfigurationsarbeiten durchführen muss. Das bedeutet, nach dem Aufspielen unserer Firmware, kann der Betreiber direkt loslegen und ist Teil unseres Freifunk-Netzwerkes. Allerdings empfiehlt es sich dem eigenen Router zumindest noch einen Nickname und Koordinaten zu geben, um diesen auf der [https://map.kbu.freifunk.net Karte] wieder zu finden.&lt;br /&gt;
&lt;br /&gt;
Es ist weiterhin möglich, ein Passwort zu setzen (oder einen ssh public key zu hinterlegen) um den Node per Fernzugriff zu warten. Diese Option macht das manuelle Neustarten im Config Mode wie hier beschrieben in Zukunft überflüssig.&lt;br /&gt;
Wer dann noch mehr coole Dinge ausprobieren möchte kann unter [[Pimp my Node]] stöbern, sobald ein Fernzugriff wie hier beschrieben eingerichtet wurde.&lt;br /&gt;
&lt;br /&gt;
=Config Mode=&lt;br /&gt;
==Knöpfe drücken==&lt;br /&gt;
Zunächst wird der PC mit dem Router über Netzwerkkabel verbunden (gelbe LAN Ports am Router).&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
[[File:wr741nd_pi4-5.jpg|center|thumb|800px]]&lt;br /&gt;
|-&lt;br /&gt;
[[File:Back-of-TL-WR841N-v9.jpg|center|thumb|800px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Nachdem der Router komplett neu gestartet ist (1-2 Minuten warten) drückst du die QSS/Reset-Taste (schwarzer Knopf) ca. 3-15 Sekunden ohne ihn loszulassen bis der Router neu startet; Das sieht man daran, dass alle Lampen einmal an- und ausgehen. Bei den neueren Versionen des TL-WR841N(D) heißt die zu drückende Taste &amp;quot;WPS/RESET&amp;quot;. &lt;br /&gt;
#bei manchen Routern (z.B. bei älteren Modellen des WR841N) muss man jetzt das Netzwerkkabel am Router umstecken (blauer WAN Port)&lt;br /&gt;
#Abwarten, bis der PC eine neue LAN-Verbindung aufgebaut hat (DHCP ist aktivieren, evtl. WLAN am PC deaktivieren)&lt;br /&gt;
#Adresse http://192.168.1.1 aufrufen.&lt;br /&gt;
&lt;br /&gt;
==Web GUI==&lt;br /&gt;
Wenn im letzten Schritt alles geklappt hat sollte unter http://192.168.1.1 das hier zu sehen sein:&lt;br /&gt;
&lt;br /&gt;
[[File:Gluon-config-welcome.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
===Fernzugriff einrichten===&lt;br /&gt;
Wenn Du einen ssh-key hinterlegen oder einen Nutzername/Passwort für die Fernwartung konfigurieren willst (um beim nächsten mal nicht wieder per Knopfdruck in den Config Mode wechseln zu müssen) solltest Du das zuerst unter ''Expert Mode'' (link rechts oben) -&amp;gt; ''Remote access tun'', bevor Du die Daten auf der Wizard Seite einträgst.&lt;br /&gt;
&lt;br /&gt;
[[File:Gluon-config-expert-mode.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
Das hinterlegen eines Schlüssels ist sicherer und komfortabler (zumindest für Linux Nutzer). Mehr Infos gibt's z.B. [http://rcsg-gsir.imsb-dsgi.nrc-cnrc.gc.ca/documents/internet/node31.html hier].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Nickname und Koordinaten eingeben===&lt;br /&gt;
Nachdem evtl. der Fernzugriff eingerichtet wurden kehrst Du auf die ''Wizard'' Seite (link rechts oben) zurück. Hier gibst Du einen beliebigen '''Node name''' ein und wählst '''Show node on the map''' aus.&lt;br /&gt;
&lt;br /&gt;
[[File:Gluon-config-coords.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
Die Ziel-Koordinaten (Latitde/Longitude) an denen der Router stehen soll findest Du z.B. im Kartendienst Deiner Wahl. Z.B. unter https://www.openstreetmap.org Adresse suchen, '''Query Features''' (Fragezeichen rechts unten) anklicken und dann bis zum nächsten Node durchwurschteln. Im Bild unten wäre Location: 50.9184406, 6.9188078 die gewünschte Info. Alternativ kannst du auch unsere [//map.kbu.freifunk.net eigene Map] nutzen. Einfach zum Ort zoomen und dann oben rechts die Pinnadel auswählen. Ein Doppelklick an die gewünschte Stelle gibt Breiten- und Längengrad aus. Alternativ einfach mit der rechten Maustaste auf die Karte klicken.&lt;br /&gt;
&lt;br /&gt;
[[File:Osm-screen-shot.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
* Altitude (Höhe) ist nicht zwingend erforderlich, aber bei mehreren Routern in einem Hochhaus vielleicht hilfreich.&lt;br /&gt;
&lt;br /&gt;
* ''Contact info'' muss angegeben werden, damit dem [http://www.picopeer.net/PPA-de.shtml Pico Peering Agreement] - eine Minimalforderung für freie Bürgernetze - entsprochen wird. Es kann auch eine anonyme Mailadresse sein, Hauptsache man ist irgendwie erreichbar. Bitte beachten: diese Kontaktinformation wird veröffentlicht.&lt;br /&gt;
&lt;br /&gt;
* Ein Klick auf Save &amp;amp; Restart führt erwartungsgemäß zum Neustart mit den gemachten Änderungen. Sobald der Router neugestartet und wieder über den '''blauen''' Port richtung Internet verbunden ist sollte er nach wenigen Minuten mit neuem Namen und Koordinaten auf der [https://map.kbu.freifunk.net Karte] auftauchen.&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Gluon_Config_Mode&amp;diff=5003</id>
		<title>Gluon Config Mode</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Gluon_Config_Mode&amp;diff=5003"/>
		<updated>2017-01-23T23:22:46Z</updated>

		<summary type="html">&lt;p&gt;Took: /* Knöpfe drücken */ avoid troubleshooting requests&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Grundsätzlich ist unsere Freifunk Firmware so konzipiert, dass der Betreiber eines Nodes keinerlei Konfigurationsarbeiten durchführen muss. Das bedeutet, nach dem Aufspielen unserer Firmware, kann der Betreiber direkt loslegen und ist Teil unseres Freifunk-Netzwerkes. Allerdings empfiehlt es sich dem eigenen Router zumindest noch einen Nickname und Koordinaten zu geben, um diesen auf der [https://map.kbu.freifunk.net Karte] wieder zu finden.&lt;br /&gt;
&lt;br /&gt;
Es ist weiterhin möglich, ein Passwort zu setzen (oder einen ssh public key zu hinterlegen) um den Node per Fernzugriff zu warten. Diese Option macht das manuelle Neustarten im Config Mode wie hier beschrieben in Zukunft überflüssig.&lt;br /&gt;
Wer dann noch mehr coole Dinge ausprobieren möchte kann unter [[Pimp my Node]] stöbern, sobald ein Fernzugriff wie hier beschrieben eingerichtet wurde.&lt;br /&gt;
&lt;br /&gt;
=Config Mode=&lt;br /&gt;
==Knöpfe drücken==&lt;br /&gt;
Zunächst wird der PC mit dem Router über Netzwerkkabel verbunden (gelbe LAN Ports am Router).&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
[[File:wr741nd_pi4-5.jpg|center|thumb|800px]]&lt;br /&gt;
|-&lt;br /&gt;
[[File:Back-of-TL-WR841N-v9.jpg|center|thumb|800px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Wenn der Router komplett gestartet ist (1-2 Minuten warten) drückst du die QSS/Reset-Taste (schwarzer Knopf) ca. 3-15 Sekunden (Bis der Router neu startet; Das sieht man daran, dass alle Lampen einmal an- und ausgehen). Bei den neueren Versionen des TL-WR841N(D) heißt die zu drückende Taste &amp;quot;WPS/RESET&amp;quot;. &lt;br /&gt;
#bei manchen Routern (z.B. bei älteren Modellen des WR841N) muss man jetzt das Netzwerkkabel am Router umstecken (blauer WAN Port)&lt;br /&gt;
#Abwarten, bis der PC eine neue LAN-Verbindung aufgebaut hat (DHCP ist aktivieren, evtl. WLAN am PC deaktivieren)&lt;br /&gt;
#Adresse http://192.168.1.1 aufrufen.&lt;br /&gt;
&lt;br /&gt;
==Web GUI==&lt;br /&gt;
Wenn im letzten Schritt alles geklappt hat sollte unter http://192.168.1.1 das hier zu sehen sein:&lt;br /&gt;
&lt;br /&gt;
[[File:Gluon-config-welcome.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
===Fernzugriff einrichten===&lt;br /&gt;
Wenn Du einen ssh-key hinterlegen oder einen Nutzername/Passwort für die Fernwartung konfigurieren willst (um beim nächsten mal nicht wieder per Knopfdruck in den Config Mode wechseln zu müssen) solltest Du das zuerst unter ''Expert Mode'' (link rechts oben) -&amp;gt; ''Remote access tun'', bevor Du die Daten auf der Wizard Seite einträgst.&lt;br /&gt;
&lt;br /&gt;
[[File:Gluon-config-expert-mode.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
Das hinterlegen eines Schlüssels ist sicherer und komfortabler (zumindest für Linux Nutzer). Mehr Infos gibt's z.B. [http://rcsg-gsir.imsb-dsgi.nrc-cnrc.gc.ca/documents/internet/node31.html hier].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Nickname und Koordinaten eingeben===&lt;br /&gt;
Nachdem evtl. der Fernzugriff eingerichtet wurden kehrst Du auf die ''Wizard'' Seite (link rechts oben) zurück. Hier gibst Du einen beliebigen '''Node name''' ein und wählst '''Show node on the map''' aus.&lt;br /&gt;
&lt;br /&gt;
[[File:Gluon-config-coords.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
Die Ziel-Koordinaten (Latitde/Longitude) an denen der Router stehen soll findest Du z.B. im Kartendienst Deiner Wahl. Z.B. unter https://www.openstreetmap.org Adresse suchen, '''Query Features''' (Fragezeichen rechts unten) anklicken und dann bis zum nächsten Node durchwurschteln. Im Bild unten wäre Location: 50.9184406, 6.9188078 die gewünschte Info. Alternativ kannst du auch unsere [//map.kbu.freifunk.net eigene Map] nutzen. Einfach zum Ort zoomen und dann oben rechts die Pinnadel auswählen. Ein Doppelklick an die gewünschte Stelle gibt Breiten- und Längengrad aus. Alternativ einfach mit der rechten Maustaste auf die Karte klicken.&lt;br /&gt;
&lt;br /&gt;
[[File:Osm-screen-shot.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
* Altitude (Höhe) ist nicht zwingend erforderlich, aber bei mehreren Routern in einem Hochhaus vielleicht hilfreich.&lt;br /&gt;
&lt;br /&gt;
* ''Contact info'' muss angegeben werden, damit dem [http://www.picopeer.net/PPA-de.shtml Pico Peering Agreement] - eine Minimalforderung für freie Bürgernetze - entsprochen wird. Es kann auch eine anonyme Mailadresse sein, Hauptsache man ist irgendwie erreichbar. Bitte beachten: diese Kontaktinformation wird veröffentlicht.&lt;br /&gt;
&lt;br /&gt;
* Ein Klick auf Save &amp;amp; Restart führt erwartungsgemäß zum Neustart mit den gemachten Änderungen. Sobald der Router neugestartet und wieder über den '''blauen''' Port richtung Internet verbunden ist sollte er nach wenigen Minuten mit neuem Namen und Koordinaten auf der [https://map.kbu.freifunk.net Karte] auftauchen.&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Gluon_Config_Mode&amp;diff=5002</id>
		<title>Gluon Config Mode</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Gluon_Config_Mode&amp;diff=5002"/>
		<updated>2017-01-23T23:11:16Z</updated>

		<summary type="html">&lt;p&gt;Took: /* Knöpfe drücken */ immer wieder die gleiche Frage auf der Liste...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Grundsätzlich ist unsere Freifunk Firmware so konzipiert, dass der Betreiber eines Nodes keinerlei Konfigurationsarbeiten durchführen muss. Das bedeutet, nach dem Aufspielen unserer Firmware, kann der Betreiber direkt loslegen und ist Teil unseres Freifunk-Netzwerkes. Allerdings empfiehlt es sich dem eigenen Router zumindest noch einen Nickname und Koordinaten zu geben, um diesen auf der [https://map.kbu.freifunk.net Karte] wieder zu finden.&lt;br /&gt;
&lt;br /&gt;
Es ist weiterhin möglich, ein Passwort zu setzen (oder einen ssh public key zu hinterlegen) um den Node per Fernzugriff zu warten. Diese Option macht das manuelle Neustarten im Config Mode wie hier beschrieben in Zukunft überflüssig.&lt;br /&gt;
Wer dann noch mehr coole Dinge ausprobieren möchte kann unter [[Pimp my Node]] stöbern, sobald ein Fernzugriff wie hier beschrieben eingerichtet wurde.&lt;br /&gt;
&lt;br /&gt;
=Config Mode=&lt;br /&gt;
==Knöpfe drücken==&lt;br /&gt;
Zunächst wird der PC mit dem Router über Netzwerkkabel verbunden (gelbe LAN Ports am Router).&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
[[File:wr741nd_pi4-5.jpg|center|thumb|800px]]&lt;br /&gt;
|-&lt;br /&gt;
[[File:Back-of-TL-WR841N-v9.jpg|center|thumb|800px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Wenn der Router gestartet ist drückst du die QSS Taste (schwarzer Knopf) ca 6-15 Sekunden (bis der Router neu startet, das sieht man daran, dass alle Lampen einmal an- und ausgehen). Bei den neueren Versionen des TL-WR841N(D) heißt die zu drückende Taste &amp;quot;WPS/RESET&amp;quot;. &lt;br /&gt;
#bei manchen Routern (z.B. bei älteren Modellen des WR841N) muss man jetzt das Netzwerkkabel am Router umstecken (blauer WAN Port)&lt;br /&gt;
#Abwarten, bis der PC eine neue LAN-Verbindung aufgebaut hat (DHCP ist aktivieren, evtl. WLAN am PC deaktivieren)&lt;br /&gt;
#Adresse http://192.168.1.1 aufrufen.&lt;br /&gt;
&lt;br /&gt;
==Web GUI==&lt;br /&gt;
Wenn im letzten Schritt alles geklappt hat sollte unter http://192.168.1.1 das hier zu sehen sein:&lt;br /&gt;
&lt;br /&gt;
[[File:Gluon-config-welcome.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
===Fernzugriff einrichten===&lt;br /&gt;
Wenn Du einen ssh-key hinterlegen oder einen Nutzername/Passwort für die Fernwartung konfigurieren willst (um beim nächsten mal nicht wieder per Knopfdruck in den Config Mode wechseln zu müssen) solltest Du das zuerst unter ''Expert Mode'' (link rechts oben) -&amp;gt; ''Remote access tun'', bevor Du die Daten auf der Wizard Seite einträgst.&lt;br /&gt;
&lt;br /&gt;
[[File:Gluon-config-expert-mode.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
Das hinterlegen eines Schlüssels ist sicherer und komfortabler (zumindest für Linux Nutzer). Mehr Infos gibt's z.B. [http://rcsg-gsir.imsb-dsgi.nrc-cnrc.gc.ca/documents/internet/node31.html hier].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Nickname und Koordinaten eingeben===&lt;br /&gt;
Nachdem evtl. der Fernzugriff eingerichtet wurden kehrst Du auf die ''Wizard'' Seite (link rechts oben) zurück. Hier gibst Du einen beliebigen '''Node name''' ein und wählst '''Show node on the map''' aus.&lt;br /&gt;
&lt;br /&gt;
[[File:Gluon-config-coords.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
Die Ziel-Koordinaten (Latitde/Longitude) an denen der Router stehen soll findest Du z.B. im Kartendienst Deiner Wahl. Z.B. unter https://www.openstreetmap.org Adresse suchen, '''Query Features''' (Fragezeichen rechts unten) anklicken und dann bis zum nächsten Node durchwurschteln. Im Bild unten wäre Location: 50.9184406, 6.9188078 die gewünschte Info. Alternativ kannst du auch unsere [//map.kbu.freifunk.net eigene Map] nutzen. Einfach zum Ort zoomen und dann oben rechts die Pinnadel auswählen. Ein Doppelklick an die gewünschte Stelle gibt Breiten- und Längengrad aus. Alternativ einfach mit der rechten Maustaste auf die Karte klicken.&lt;br /&gt;
&lt;br /&gt;
[[File:Osm-screen-shot.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
* Altitude (Höhe) ist nicht zwingend erforderlich, aber bei mehreren Routern in einem Hochhaus vielleicht hilfreich.&lt;br /&gt;
&lt;br /&gt;
* ''Contact info'' muss angegeben werden, damit dem [http://www.picopeer.net/PPA-de.shtml Pico Peering Agreement] - eine Minimalforderung für freie Bürgernetze - entsprochen wird. Es kann auch eine anonyme Mailadresse sein, Hauptsache man ist irgendwie erreichbar. Bitte beachten: diese Kontaktinformation wird veröffentlicht.&lt;br /&gt;
&lt;br /&gt;
* Ein Klick auf Save &amp;amp; Restart führt erwartungsgemäß zum Neustart mit den gemachten Änderungen. Sobald der Router neugestartet und wieder über den '''blauen''' Port richtung Internet verbunden ist sollte er nach wenigen Minuten mit neuem Namen und Koordinaten auf der [https://map.kbu.freifunk.net Karte] auftauchen.&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Pimp_my_Node&amp;diff=4732</id>
		<title>Pimp my Node</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Pimp_my_Node&amp;diff=4732"/>
		<updated>2016-07-26T11:05:04Z</updated>

		<summary type="html">&lt;p&gt;Took: /* Freifunk-Monitor: Router-Status per E-Mail */ back online! :-)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Mitmachen]]&lt;br /&gt;
&lt;br /&gt;
Hier finden sich interessante Optionen für etwas versiertere Nutzer. Diese Seite wurde größtenteils für die Classic Firmware geschrieben. Wer Gluon verwendet sollte unbedingt auch Gluon spezifische Ressourcen, wie [http://gluon.readthedocs.org/ http://gluon.readthedocs.org] zu Rate ziehen. &lt;br /&gt;
&lt;br /&gt;
Die Möglichkeiten und Abweichungen von der Standardkonfiguration sind vielfältig. Diese sollten aber nur dann durchgeführt werden, wenn der Durchführende genau weiß, was er da macht. Eine fehlerhaft Konfiguration kann zum Beispiel zu Störungen im Netzwerk führen, ferner könnten illegitime Maßnahmen implementiert werden. Beide zuvor genannten Beispiele würden zu einem Ausschluss aus unserem Netzwerk führen. Dennoch kann man gute Gründe haben die ein Abweichen von den Defaultwerten sinnvoll machen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Netztheorie/Technik und Entwicklung ==&lt;br /&gt;
Vertiefung&lt;br /&gt;
&lt;br /&gt;
*[[FSM-Dynamisches-Bridging]] &lt;br /&gt;
*[[Batman_adv]]&lt;br /&gt;
*[[Entwicklung]]&lt;br /&gt;
*[[Firmware|Firmware/Betriebssystem]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arbeiten auf der Shell ==&lt;br /&gt;
Voraussetzung für folgende Befehle sind eine Verbindung mit dem KBU-Freifunk-Netz sowie ein Terminal / Shell. &lt;br /&gt;
Vergesst nicht eth0 gegen die Bezeichnung eures Netzwerkinterfaces, welches am Freifunk hängt, zu tauschen. &lt;br /&gt;
Bei Macbooks via WLAN z.B. &amp;quot;en1&amp;quot; statt &amp;quot;eth0&amp;quot;! Die Link-lokale Adresse der jeweiligen Node findet ihr auf der [http://register.kbu.freifunk.net KBU Register]-Seite. Um Dateien auf dem Node ändern zu können, steht als einziger Editor ''vi'' bzw. ''vim'' zur Verfügung.&lt;br /&gt;
 &lt;br /&gt;
Zusätzlich zu den auf dieser Seite erläuterten Modifikationen gibt es im [https://github.com/freifunk-gluon/gluon/wiki/Commandline-administration Github-Wiki der Freifunk-Gluon-Firmware eine ausführliche Liste nützlicher Befehle ].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Firmware aktualisieren ===&lt;br /&gt;
==== Node mit uplink ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@&amp;lt;Link-lokale Adresse des Nodes&amp;gt;%eth0              // SSH Verbindung zum Node aufbauen, eth0 ist das lokale Interface, ggf. durch wlan0 etc. ersetzen&lt;br /&gt;
cd ../tmp/                                              // in das Verzeichnis &amp;quot;tmp&amp;quot; wechseln&lt;br /&gt;
free                                                    // Freien Speicher prüfen&lt;br /&gt;
wget http://pfad/zur/firmware.bin                       // Firmware herunterladen und dann&lt;br /&gt;
sysupgrade -v firmware.bin                              // Firmware-Upgrade durchführen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Achtung''': Beim Download der Firmware via wget kann auf dem Router die Integrität der Firmware nicht geprüft werden, da gpg i.d.R. auf den Routern nicht verfügbar ist. Deshalb ist es sicherer, den oben beschriebenen Weg zu wählen oder die geprüfte Firmware per scp (s.u.) auf den Router zu kopieren. &lt;br /&gt;
&lt;br /&gt;
==== Node ohne Uplink (mesh node) ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp -6 -v -r firmware.bin root@\[&amp;lt;Link-lokale Adresse des Nodes&amp;gt;%eth0\]:../tmp/          // Firmware auf den Node schieben (md5 prüfen!)&lt;br /&gt;
ssh root@&amp;lt;Link-lokale Adresse des Nodes&amp;gt;%eth0 &lt;br /&gt;
cd ../tmp/  &lt;br /&gt;
sysupgrade -v firmware.bin  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Upgrade von inkompatibler Konfiguration (Legacy auf Gluon, Wechsel des Hood, etc.) ====&lt;br /&gt;
Bei einem Upgrade von einer inkompatiblen Version mittels &amp;lt;code&amp;gt;sysupgrade&amp;lt;/code&amp;gt; muss man normalerweise mittels&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysupgrade -n firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
die aktuellen Einstellungen überschreiben lassen. Auf einem Node, den man nur per SSH erreicht, ist das unpraktisch, da auch Passwörter und SSH-Schlüssel gelöscht werden. Zum Glück hat &amp;lt;code&amp;gt;sysupgrade&amp;lt;/code&amp;gt; einen interaktiven Modus, den man per&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysupgrade -i firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
startet. Hier kann man (nachdem man bestätigt hat, dass ein Teil der Konfiguration übernommen werden soll) die Liste an zu sichernden Dingen bearbeiten. Die gluon-node-info (Geo-Koordinaten und Kontaktadresse) so wie vor allem die drobbear/*keys sollte man behalten, evtl auch System mit dem Hostnamen des Nodes. Der Rest kann gelöscht werden, falls man da keine wichtigen Anpassungen vorgenommen hat. ('dd' löscht Zeilen in vi ;) )&lt;br /&gt;
&lt;br /&gt;
Je nach Route zum Router kann es sein, dass die SSH-Verbindung während des interaktiven Upgrades abbricht. Genauer passiert das, wenn man nur durch einen VPN-Tunnel Verbindung hat. (Nicht fleißig am Backbone mitgearbeitet? ;) Das ist blöd, weil man am Ende noch den Neustart bestätigen muss (etwas unsinnig). In diesem Fall sollte man besser eine Konfigurationsdatei mit z.B. folgenden Zeilen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/etc/dropbear/authorized_keys&lt;br /&gt;
/etc/dropbear/dropbear_dss_host_key&lt;br /&gt;
/etc/dropbear/dropbear_rsa_host_key&lt;br /&gt;
/etc/config/gluon-node-info&lt;br /&gt;
/etc/config/system&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
erstellen und per &amp;lt;code&amp;gt;tar -cz config  &amp;amp;gt; config.tar.gz&amp;lt;/code&amp;gt; packen. Danach kann man mittels&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysupgrade -f config.tar.gz firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
das ganze unbeaufsichtigt laufen lassen.&lt;br /&gt;
&lt;br /&gt;
==== Node ''zu Fuß'' updaten ====&lt;br /&gt;
Wenn man physikalischen Zugriff auf den Freifunk-Router hat, kann man auch einfach in den [[Config_Mode]] wechseln und dort über das entsprechende Menü eine neue Freifunk-Firmware hochladen. Hierbei kann man wählen, ob man die ggf. geänderte Konfiguration beibehalten möchte (Upgrade-Image) oder alles von Grund auf neu installiert/konfiguriert. Ggf. muss man zuvor noch ein Root-Passwort setzen, damit das Update möglich wird.&lt;br /&gt;
&lt;br /&gt;
==== via TFTP  ====&lt;br /&gt;
Wenn mal ein Router nicht mehr bootet, aber der Bootloader noch funktioniert, (oder man einfach keinen Bock auf das Standardweboberfläche hat) kann man häufig noch per TFTP recht komfortabel eine neue Firmware einspielen. [http://wiki.openwrt.org/doc/howto/generic.flashing.tftp] ;)&lt;br /&gt;
&lt;br /&gt;
* TFTP-Server auf dem lokalen Rechner installieren (Kurzfassung von z.B. [http://www.cyberciti.biz/faq/install-configure-tftp-server-ubuntu-debian-howto/])&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install tftpd-hpa&lt;br /&gt;
sudo chown -R tftp /srv/tftp/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Konfiguration anpassen &amp;amp; neu starten. Das &amp;quot;-c create file&amp;quot; braucht man, um vom Router Dateien zu senden (Konfiguration sichern), &amp;quot;-s&amp;quot; da sonst absolute Pfade angegeben werden müssten (macht der Router natürlich nicht). Mehr zu den Optionen findet man auf der [http://linux.die.net/man/8/tftpd manpage].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vim /etc/default/tftpd-hpa&lt;br /&gt;
&lt;br /&gt;
TFTP_USERNAME=&amp;quot;tftp&amp;quot;&lt;br /&gt;
TFTP_DIRECTORY=&amp;quot;/srv/tftp&amp;quot;&lt;br /&gt;
TFTP_ADDRESS=&amp;quot;0.0.0.0:69&amp;quot;&lt;br /&gt;
TFTP_OPTIONS=&amp;quot;-s -c&amp;quot;&lt;br /&gt;
&lt;br /&gt;
service tftpd-hpa restart &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Dann muss man noch herausfinden, auf welcher IP der Router nach welchem Dateinamen fragt. Eine gute Quelle ist openWRT, z.B. für den beliebten tl-wr841n finden sich die Infos je nach Version [http://wiki.openwrt.org/toh/tp-link/tl-wr841nd#tftp_recovery_via_bootloader_for_v8_v9_v10_v11 hier].&lt;br /&gt;
&lt;br /&gt;
Falls noch Fragen offen bleiben, [https://www.freifunk-bingen.de/forum/hilfe-unterst%C3%BCtzung/flashen-eines-gebrickten-tp-link-routers-tftp die $Anderen wissen auch was]. ;)&lt;br /&gt;
&lt;br /&gt;
=== Hostnamen des Nodes ändern ===&lt;br /&gt;
Standardmäßig ist der Hostname des Nodes gleich der MAC-Adresse des Routers. Möchte man den Hostnamen ändern, so kann man dies per SSH:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set system.@system[0].hostname=what-ever-dude&lt;br /&gt;
uci commit&lt;br /&gt;
reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Änderung wird erst nach dem Kommando ''reboot'' (danach startet der Node neu) wirksam.&lt;br /&gt;
&lt;br /&gt;
=== IPv6 ping ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ping6 &amp;lt;Link-lokale Adresse des Nodes&amp;gt;%eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== IPv6 SSH ===&lt;br /&gt;
Hinter der Link-lokalen Adresse &amp;quot;%&amp;quot; + &amp;quot;Netzwerk-Schnittelle an eurer Kiste&amp;quot; (hier im Beispiel eth0)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@&amp;lt;Link-lokale Adresse des Nodes&amp;gt;%eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Passwort-Authentifizierung abstellen ===&lt;br /&gt;
'''Wichtig:''' Als erstes prüfen, ob man sich mit seinem Schlüsselpaar auf den Router einloggen kann. Man sollte jetzt nicht mehr nach dem Passwort gefragt werden (allerhöchstens nach dem Passwort, welches den privaten Schlüssel schützt).&lt;br /&gt;
Falls das erfolgreich funktioniert, kann man die Datei ''/etc/config/dropbear'' wie folgt ändern:&lt;br /&gt;
&amp;lt;pre&amp;gt;config dropbear&lt;br /&gt;
        option PasswordAuth 'off'&lt;br /&gt;
        option RootPasswordAuth 'off'&lt;br /&gt;
        option Port         '22'&lt;br /&gt;
#       option BannerFile   '/etc/banner'&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nach einem Neustart des Routers mittels ''reboot'' sollte es jetzt nur noch möglich sein, sich mit seinem Schlüsselpaar auf den Router einzuloggen.&lt;br /&gt;
&lt;br /&gt;
=== SSH public key auf Node aufspielen ===&lt;br /&gt;
Möchte man sich nicht immer per Passwort auf den eigenen Node verbinden, so kann man das auch mit einem Schlüsselpaar realisieren. Falls man danach noch die Authentifizierung per Passwort abschaltet (s. nächster Punkt), dann hat man einen sicheren Zugriff auf seinen Node realisiert.&lt;br /&gt;
Voraussetzung ist natürlich, dass man schon ein gültiges Schlüsselpaar besitzt. Falls dem so ist, so genügt es, den öffentlichen Schlüssel (public key) auf den Node zu übertragen. Das kann mit Hilfe von scp (secure copy) passieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp -6 id_rsa4096.pub root@[&amp;lt;Link-lokale Adresse des Nodes&amp;gt;%eth0]:/etc/dropbear/authorized_keys&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hierbei steht id_rsa.pub für die Datei, die den öffentlichen Schlüssel enthält. '''ACHTUNG:''' Obiger Befehl ersetzt die eventuell schon vorhandene Datei authorized_keys auf dem Node. Das ist O.K. für den ersten Schlüssel. Sollen mehrere Schlüssel eingetragen werden (z. B. weil man außer vom Laptop auch vom Tablet auf seinen Node verbinden möchte), kann man das so machen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat ~/.ssh/id_rsa4096.pub | ssh root@[&amp;lt;Link-lokale Adresse des Nodes&amp;gt;%eth0] 'umask 077; cat &amp;gt;&amp;gt;.ssh/authorized_keys'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollte beim Kopierversuch die Meldung&lt;br /&gt;
&amp;lt;pre&amp;gt;ssh: Could not resolve hostname fe80:&amp;lt;/pre&amp;gt;&lt;br /&gt;
erscheinen, hat man höchstwahrscheinlich die eckigen Klammern um die IP-Adresse inklusive Schnittstelle vergessen. Dann wird der erste Doppelpunkt schon als Ende des Hostnamens interpretiert! Auch hier werden die Änderungen nach einem Neustart des Routers mittels ''reboot'' übernommen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Node überträgt keine Statistiken ===&lt;br /&gt;
Auf der [https://kbu.freifunk.net/cserv Cserv Seite] könnt ihr prüfen, ob eurer Node bereits Statistiken übermittelt.&lt;br /&gt;
==== NTP-Bug in Firmware 1.2.1b beseitigen ====&lt;br /&gt;
Falls sich ein Node-Betreiber wundert, warum sein Node keine Statistiken liefert und es ein Mesh-Only-Node ist (d. h. ohne eigenen Uplink zum Internet), so liegt das an einem Bug in der Firmware. Diesen kann man jedoch mit einfachen Mitteln beheben:&lt;br /&gt;
Editiert wird die Datei ''/etc/config/system''. Dort findet man einen Eintrag ''config timeserver 'ntp'''. Standardmäßig stehen hier 4 Zeitserver von OpenWRT (in der Form x.openwrt.pool.ntp.org). Diese müssen bei Mesh-Only-Nodes in IPv6-Adressen geändert werden, und zwar so, dass der komplette Konfigurationspunkt wie folgt aussieht:&lt;br /&gt;
&amp;lt;pre&amp;gt;config timeserver 'ntp'&lt;br /&gt;
        list server '2a03:4000:2:494::2'&lt;br /&gt;
        list server '2a01:4f8:161:2461:e4::1'&lt;br /&gt;
        list server '2a02:180:1:1::551f:bb4b'&lt;br /&gt;
        option enabled '1'&lt;br /&gt;
        option enable_server '0'&amp;lt;/pre&amp;gt;&lt;br /&gt;
Auch hier werden die Änderungen erst nach einem Neustart des Nodes mittels ''reboot'' wirksam.&lt;br /&gt;
Dieser Bug soll mit dem nächsten Firmware-Release behoben sein. Man kann die Eintragungen auch in den Nodes mit Internet-Uplink ändern ohne die Funktion zu beeinträchtigen.&lt;br /&gt;
&lt;br /&gt;
==== Collectd prüfen ====&lt;br /&gt;
Falls es durch das Beheben des NTP-Bugs noch immer nicht zum Übertragen der Statistiken kommt, überprüft mal die Einstellungen eures collectd. Es kann sein, dass beim Firmware-Update diese Konfiguration nicht upgedatet wurde und eine veraltete IPV6-Adresse noch vorhanden ist. So sollte es sein:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vim /etc/collectd.conf                             // Konfigurationsdatei für collectd zum Bearbeiten öffnen&lt;br /&gt;
&lt;br /&gt;
Zeile 39-44:    &lt;br /&gt;
&amp;lt;Plugin ping&amp;gt;                     &lt;br /&gt;
        TTL 127                   &lt;br /&gt;
        Interval 30                         &lt;br /&gt;
        Host &amp;quot;fdd3:5d16:b5dd:3::6&amp;quot;                 // Diesen Eintrag auf Übereinstimmung prüfen      &lt;br /&gt;
&amp;lt;/Plugin&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Zeile 46-50:&lt;br /&gt;
&amp;lt;Plugin network&amp;gt;                                        &lt;br /&gt;
        Server &amp;quot;fdd3:5d16:b5dd:3::6&amp;quot; &amp;quot;25827&amp;quot;       // Diesen Eintrag auf Übereinstimmung prüfen                 &lt;br /&gt;
        Forward false                                   &lt;br /&gt;
&amp;lt;/Plugin&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LAN Kopplung ===&lt;br /&gt;
Eine LAN-Kopplung kann in manchen Fällen sinnvoll sein, besonders wenn man einen VLAN-fähigen Switch und eine bestehende Netzwerkverkabelung hat. Hier werden die Switchports angewiesen auch über LAN zu meshen.&lt;br /&gt;
&lt;br /&gt;
==== TL-WR841ND ====&lt;br /&gt;
03/2014: Hier wird über alle 4 LAN Ports gemeshed, Mesh über WLAN kann man optional noch ausschalten! Folgende Konfiguration stammt von rampone/FF-KBU und wurde an 2 TL-WR841N v.8 getestet mit KBU-FF-Firmware 1.1.&lt;br /&gt;
&lt;br /&gt;
05/2015: Verifiziert (und ergänzt) für TL-WR841N v.9 und KBU-FF-Firmware 1.2.2rc3 .&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/network'' - Folgende Änderungen wurden an der FF-Firmware vorgenommen:&lt;br /&gt;
#Konfigurationsschnittstelle 'freifunk' -&amp;gt; Hier haben wir die ethX-Schnittstelle aus &amp;quot;ifname&amp;quot; rausgenommen, damit kein ff aus dem ethX (switch) rauskommt (X=1 für Hardware bis einschließlich v8, sonst X=0).&lt;br /&gt;
#Konfigurationsschnittstelle 'mesh_lan' -&amp;gt; kompletten Codeblock hinzugefügt. Dieser bewirkt, dass über ethX (switch) gemeshed wird. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config interface 'loopback'&lt;br /&gt;
	option ifname 'lo'&lt;br /&gt;
	option proto 'static'&lt;br /&gt;
	option ipaddr '127.0.0.1'&lt;br /&gt;
	option netmask '255.0.0.0'&lt;br /&gt;
&lt;br /&gt;
config interface 'wan'&lt;br /&gt;
	option ifname 'eth0'&lt;br /&gt;
	option proto 'dhcp'&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option accept_ra '0'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
&lt;br /&gt;
config switch&lt;br /&gt;
	option name 'switch0'&lt;br /&gt;
	option reset '1'&lt;br /&gt;
	option enable_vlan '1'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'switch0'&lt;br /&gt;
	option vlan '1'&lt;br /&gt;
	option ports '0 1 2 3 4'&lt;br /&gt;
&lt;br /&gt;
config interface 'freifunk'&lt;br /&gt;
	option ifname 'bat0'		#LAN-Kopplung: ifname eth1 (bzw. eth0, s.o.) entfernt&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option proto 'none'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option accept_ra '1'&lt;br /&gt;
	option macaddr '10:fe:ed:f1:53:84'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mtu '1528'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_vpn'&lt;br /&gt;
	option ifname 'mesh-vpn'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
	option macaddr '12:fe:ed:f2:53:84'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_lan'		#LAN-Kopplung: Codeblock mesh-lan hinzugefuegt&lt;br /&gt;
	option ifname 'eth0'            # ab TL-841N(D) v9: eth0, bis v8: eth1 . Bei falschem Interface läuft das mesh-lan über den blauen Port. Wer's mag...&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/wireless'' - Hier wird der Codeblock, der für das Mesh über WLAN verantwortlich ist, auskommentiert (optional)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#config wifi-iface 'wifi_mesh'&lt;br /&gt;
#       option device 'radio0'&lt;br /&gt;
#       option network 'mesh'&lt;br /&gt;
#       option mode 'adhoc'&lt;br /&gt;
#       option ssid '02:d1:11:37:fc:39'&lt;br /&gt;
#       option bssid '02:d1:11:37:fc:39&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TL-WDR4300 ====&lt;br /&gt;
Das gleiche nochmal für den 4300er&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/network''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config interface 'loopback'&lt;br /&gt;
	option ifname 'lo'&lt;br /&gt;
	option proto 'static'&lt;br /&gt;
	option ipaddr '127.0.0.1'&lt;br /&gt;
	option netmask '255.0.0.0'&lt;br /&gt;
&lt;br /&gt;
config interface 'wan'&lt;br /&gt;
	option ifname 'eth0.2'&lt;br /&gt;
	option proto 'dhcp'&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option accept_ra '0'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option macaddr 'a2:f3:c1:65:81:cd'&lt;br /&gt;
&lt;br /&gt;
config switch&lt;br /&gt;
	option name 'eth0'&lt;br /&gt;
	option reset '1'&lt;br /&gt;
	option enable_vlan '1'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'eth0'&lt;br /&gt;
	option vlan '1'&lt;br /&gt;
	option ports '0t 2 3 4 5'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'eth0'&lt;br /&gt;
	option vlan '2'&lt;br /&gt;
	option ports '0t 1'&lt;br /&gt;
&lt;br /&gt;
config interface 'freifunk'&lt;br /&gt;
	option ifname 'bat0'		#LAN-Kopplung: ifname eth0.1 entfernt&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option proto 'none'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option accept_ra '1'&lt;br /&gt;
	option macaddr 'a0:f3:c1:64:81:cc'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mtu '1528'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_vpn'&lt;br /&gt;
	option ifname 'mesh-vpn'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
	option macaddr 'a2:f3:c1:65:81:cc'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_lan'		#LAN-Kopplung: Codeblock mesh-lan hinzugefuegt&lt;br /&gt;
        option ifname 'eth0.1'&lt;br /&gt;
        option proto 'batadv'&lt;br /&gt;
        option mesh 'bat0'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einsperren des Freifunk-Routers in eine DMZ ==&lt;br /&gt;
&lt;br /&gt;
Wer seinen Freifunk-Router einsperren und/oder die Bandbreite begrenzen möchte, kann dies am einfachsten tun, indem er ihn an seiner Firewall an einen eigenen Netzwerkport klemmt und diesen dann als DMZ konfiguriert. Ein KBU-Freifunk-Router muss zur Zeit im LAN DHCP, DNS, im Internet NTP sowie mit den [[fastd]]-Knoten reden können. Folgendes Bespiel für eine iptables-Firewall nimmt an, dass der Freifunk-Router über eth2 angeschlossen ist:&lt;br /&gt;
&lt;br /&gt;
 # eth2 darf nur DNS, NTP, DHCP und ansonsten mit den fastdX reden&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p udp --dport 67:68 --sport 67:68 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p udp --dport 67:68 --sport 67:68 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p udp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p tcp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p udp --dport 123                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p udp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p tcp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p udp --dport 123                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 176.9.41.253                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 176.9.41.253                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 178.63.59.41                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 178.63.59.41                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 37.120.169.214               -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 37.120.169.214               -j ACCEPT &lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 37.221.195.47                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 37.221.195.47                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 78.46.68.75                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 78.46.68.75                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 84.201.35.206                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 84.201.35.206                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT                                      -j DROP&lt;br /&gt;
 iptables -i eth2 -A FORWARD                                    -j DROP&lt;br /&gt;
 # eth2 darf maximal 2000 kbit/s ein- und ausgehenden Traffic machen&lt;br /&gt;
 wondershaper eth2 2000 2000&lt;br /&gt;
&lt;br /&gt;
Prinzipiell könnte man den Traffic noch weiter einschränken. DHCP und DNS müssen nur zum DHCP- bzw. DNS-Server funktionieren, und der Traffic zu den fastd-Servern ließe sich auf TCP-Port 80 und UDP-Port 10000 begrenzen.&lt;br /&gt;
&lt;br /&gt;
===Alternative: Einsperren im VLAN===&lt;br /&gt;
siehe: [[FF-Router einsperren im VLAN]]&lt;br /&gt;
&lt;br /&gt;
== Weboberfläche aktivieren ==&lt;br /&gt;
&lt;br /&gt;
Im Normalbetrieb ist erst mal kein Zugriff notwendig (und auch erst mal nicht vorgesehen). Das läuft einfach! ;-) Und es gibt im Normalbetrieb eben auch keine Weboberfläche, welches Sicherheitslücken haben könnte.&lt;br /&gt;
&lt;br /&gt;
Zum ersten Konfigurieren schaltet mal den Router in einen Konfig-Modus. Der Router nimmt dann in diesem Modus nicht mehr am Freifunknetzwerk teil. Nun kann man dann Rechner an die LAN-Ports des Freifunkrouters anschließen und über eine Weboberfläche per Browser den Router konfigurieren oder updaten. Das sollte aber nur ganz selten notwendig sein. Nach einem Reboot des Routers geht das Gerät dann wieder in den Freifunk-Modus mit deinen Konfigurationsänderungen.&lt;br /&gt;
&lt;br /&gt;
Wenn man Spaß am Basteln hat, kann man die Weboberfläche aber auch im Normalbetrieb aktivieren. Für die Absicherung muss man dann aber selber sorgen, denn standardmäßig ist das nicht abgesichert. Hier die Anleitung nach [http://wiki.freifunk.in-kiel.de/wiki/Firmware Freifunk Kiel], um auf die Weboberfläche zu gelangen:&lt;br /&gt;
&lt;br /&gt;
Die Weboberfläche des Routers ist nicht über die Link-lokale Adresse, sondern nur über die generelle IPv6-Adresse des Routers zu erreichen. Die IPv6-Adresse bekommt man über SSH (s. [[Pimp_my_Node#IPv6_ssh|IPv6 ssh]] auf den Router:&lt;br /&gt;
  ssh root@LinkLokaleIPv6adresse_des_routers%Schnittstelle&lt;br /&gt;
Die generelle IPv6-Adresse erfährt man durch Eingabe von&lt;br /&gt;
  ifconfig | grep Global&lt;br /&gt;
Die IPv6-Adresse (&amp;quot;inet6 adr&amp;quot;) kann man nun im Browser in eckigen Klammern und vorangestelltem &amp;quot;http://&amp;quot; aufrufen (zum Beispiel: http://[2001:67c:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx]/) und gelangt so zur Weboberfläche LuCI.&lt;br /&gt;
&lt;br /&gt;
Falls der Router nicht per IPv6 http liefern sollte, kann man das per SSH beheben. Dazu folgendes nach dem Login auf der Shell vom Router ausführen:&lt;br /&gt;
 uci delete uhttpd.main.listen_http&lt;br /&gt;
 uci delete uhttpd.main.listen_https&lt;br /&gt;
 &lt;br /&gt;
 uci add_list uhttpd.main.listen_http='[::]:80'&lt;br /&gt;
 uci add_list uhttpd.main.listen_http='0.0.0.0:80'&lt;br /&gt;
 uci add_list uhttpd.main.listen_https='[::]:80'&lt;br /&gt;
 uci add_list uhttpd.main.listen_https='0.0.0.0:80'&lt;br /&gt;
 &lt;br /&gt;
 uci commit uhttpd&lt;br /&gt;
 &lt;br /&gt;
 /etc/init.d/uhttpd enable&lt;br /&gt;
&lt;br /&gt;
== Uplink mit Android-Tethering/USB Netzwerkkarte ==&lt;br /&gt;
(SSH-Zugangserfahrung nötig)&lt;br /&gt;
&lt;br /&gt;
Das ganze sei von Anfang an als &amp;quot;sportlich&amp;quot; zu betrachten. Leider sind mobile 3g-/LTE-Tarife fast ausnahmslos nach einem bestimmten Volumen gedrosselt (üblicherweise auf 64 bis 56 kbit/s (neuere NetzclubSim sogar auf 32 kbit/s), Ausnahme bilden hier nur &amp;quot;LTE Zuhause&amp;quot; &amp;quot;DSL&amp;quot; Ersatz Tarife -&amp;gt; 386kbit/s).&lt;br /&gt;
Da Freifunk auch bei Nichtbenutzung Daten überträgt, ist nur bei &amp;quot;LTE Zuhause&amp;quot;-Tarifen interessant, dies als Dauerlösung zu nutzen. Dort ist aber wiederum meist ein LTE-Router vor Ort und man kann den Router auch &amp;quot;traditionell&amp;quot; via LAN Kabel anbinden.&lt;br /&gt;
Bei Benutzung als Uplink bei Straßenfesten/Festivals etc. ist wahrscheinlich, dass erstens das Datenvolumen schnell aufgebraucht sein wird und zweitens ab einer bestimmten Größe auch das 3g-Netz vor Ort überlastet ist. Wenn man es dennoch machen will (mehrere Sim-Karten/spezieller hochvolumiger Tarif/vom Netzbetreiber gesponserter Uplink (träum)), sollte man die Benutzung von LTE erwägen. Auch dort könnten aber durch zukünftige Adapation Überlasterscheinungen auftreten. Desweitern nutzen 2g/3g/4g auch dasselbe Backbone, welcher dann auch für LTE ein Flaschenhals darstellt.&lt;br /&gt;
Muss nochmal nachprüfen, aber wenn, dann nicht uninteressant: Der WLAN-Zugang des Telefons (CM7) wurde per Tethering weitergeleitet und bei Abschalten gab es fallback auf 3g -&amp;gt; nicht schöne, aber einfache &amp;quot;Immer&amp;quot;netzlösung?  Mein Tablet zeigt nicht dieses Verhalten.)&lt;br /&gt;
&lt;br /&gt;
Blablabla, jetzt geht es los:&lt;br /&gt;
Das ganze habe ich mit einem 1043ND und einem droid 2.3CM7 Telefon und einem droid 2.2 Tablet ausprobiert, sollte aber auf jeglichen OpenWRT-Router mit USB, Android-USB-tethering-fähigem Gerät und einfachen USB-Ethernet-Adaptern (nachprüfen!!!) funktionieren:&lt;br /&gt;
&lt;br /&gt;
- Per SSH in den Router einloggen&lt;br /&gt;
- Installieren der notwendigen Treiber&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
opkg update&lt;br /&gt;
opkg install kmod-usb-uhci kmod-usb-net-rndis&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies sollte, falls ihr noch keine USB-Unterstützung in der Firmware habt, auch diese über Abhängigkeiten nachinstallieren. (nachprüfen!!!)&lt;br /&gt;
&lt;br /&gt;
- Ihr müsst den Netzwerkzugang für die neue Schnittstelle &amp;quot;usb0&amp;quot; noch konfigurieren. Unter /etc/config/network fügt ihr z.B. folgendes hinzu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config interface 'wan2'&lt;br /&gt;
       option ifname 'usb0'&lt;br /&gt;
       option proto 'dhcp'&lt;br /&gt;
       option type 'bridge'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch unter LuCi sollte dies konfigurierbar sein. &lt;br /&gt;
&lt;br /&gt;
- Nach einem Neustart und einem angeschlossenen Gerät sollte nun der Uplink via dem USB-Netzwerkgerät/Android-Tethering funktionieren.&lt;br /&gt;
- Sollte das Gerät erst später angeschlossen werden, so könnt ihr mit folgendem Befehl das Netzwerkgerät starten.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifup wan2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(Dies ist noch nicht ein perfektes Tutorial, werde es nochmal durchprobieren. Einen UMTS-Stick hatte ich auf Anhieb noch nicht zum laufen gebracht. Auch scheint Multiwan in OpenWRT eine interessante Sache)&lt;br /&gt;
&lt;br /&gt;
== Zusätzlich zum Freifunk auch privates WLAN einrichten ==&lt;br /&gt;
&lt;br /&gt;
Es ist möglich ein privates WLAN anzulegen, dass mit dem WAN-Port gebridged und separat zum Mesh-Netzwerk ist. (Bitte beachten, dass &amp;quot;Mesh on Wan&amp;quot; nicht zeitgleich mit aktiviert werden sollte.) &lt;br /&gt;
Effekt: Das private WLAN wird erweitert, zeitgleich fungiert der Router als Freifunk-Router. Die Netze sind voneinander abgekoppelt.&lt;br /&gt;
Das private WLAN kann per SSH in der Konsole aktiviert werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set wireless.wan_radio0=wifi-iface&lt;br /&gt;
uci set wireless.wan_radio0.device=radio0&lt;br /&gt;
uci set wireless.wan_radio0.network=wan&lt;br /&gt;
uci set wireless.wan_radio0.mode=ap&lt;br /&gt;
uci set wireless.wan_radio0.encryption=psk2&lt;br /&gt;
uci set wireless.wan_radio0.ssid=&amp;quot;$SSID&amp;quot;&lt;br /&gt;
uci set wireless.wan_radio0.key=&amp;quot;$KEY&amp;quot;&lt;br /&gt;
uci set wireless.wan_radio0.disabled=0&lt;br /&gt;
uci commit&lt;br /&gt;
wifi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Bitte ersetze $SSID mit dem Namen deines Heimnetzwerks und $KEY mit deinem bisher üblichen Key (der vom privaten Router). Falls dein Router beide Frequenzbänder unterstützt(2.4 und 5 Ghz) und du in beiden auch privates WLAN aktivieren möchtest, muss dies für radio0 und radio1 mit übernommen werden.&lt;br /&gt;
Zum Deaktivieren des Ganzen wie folgt vorgehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set wireless.wan_radio0.disabled=1&lt;br /&gt;
uci commit&lt;br /&gt;
wifi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Automatischer Neustart bei längerem Mesh-Verlust, &amp;quot;quick hack&amp;quot; (und &amp;quot;improved hack&amp;quot;) zur Analyse ==&lt;br /&gt;
&lt;br /&gt;
Bei der Vernetzung von Notunterkünften mit Gluon-Beta (via Euskirchen) ist bei einem CPE210-Uplink aufgefallen, dass sämtliche Mesh-Verbindungen über Stunden ausgefallen waren. Es war zunächst unklar, ob überwiegend die Stromversorgung schuld war, insbesondere da der Uplink-Router mehrfach betroffen und trotzdem via VPN erreichbar war. Dabei war dann nur ein Mesh mit sich selbst via &amp;quot;batctl o&amp;quot; sichtbar. Einzelne Mesh-Only-Router zeigten ebenfalls (selten) Ausfälle über mehrere Stunden: teilweise Nachts, wo Renovierungsarbeiten nicht die Ursache sein konnten.&lt;br /&gt;
&lt;br /&gt;
Um längere Ausfälle zu vermeiden, wurde folgendes Script unter /root/check_mesh.sh abgelegt, dass via cron-Job automatisch jede Minute ausgeführt wird und nach 10 Minuten ohne Mesh-Verbindung einen Reboot auslöst:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash&lt;br /&gt;
&lt;br /&gt;
FAILCOUNTFILE=/var/run/mesh0_failcount&lt;br /&gt;
MAXFAILCOUNT=10&lt;br /&gt;
&lt;br /&gt;
# check mesh connections with different originators and nexthops, MAC is 17 chars long&lt;br /&gt;
count=`batctl o | awk '/mesh0/{originator=substr($0,1,17); nexthop=substr($0,37,17); if (originator != nexthop){print originator&amp;quot; &amp;quot;nexthop}}' | wc -l`&lt;br /&gt;
&lt;br /&gt;
if [ $count -gt 1 ]; then  ## more than a single mesh with itself is left&lt;br /&gt;
  echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
else&lt;br /&gt;
  if [ -f $FAILCOUNTFILE ]; then  &lt;br /&gt;
    read failcount &amp;lt; $FAILCOUNTFILE&lt;br /&gt;
    failcount=$(($failcount+1))&lt;br /&gt;
    if [ $failcount -ge $MAXFAILCOUNT ]; then&lt;br /&gt;
      touch /etc/mesh0_failcount_`date +&amp;quot;%Y-%m-%d_%H%M&amp;quot;`&lt;br /&gt;
      sync&lt;br /&gt;
      reboot&lt;br /&gt;
    fi&lt;br /&gt;
    echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
  else&lt;br /&gt;
    echo 1 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
  fi&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es muss (hier mit awk, s.o.) nach _unterschiedlichen_ Werten für Originator und NextHop ausschau gehalten werden, denn bei einem fehlenden Mesh zwischen zwei Knoten meshen die Knoten noch mit sich selbst:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# batctl o | grep mesh0&lt;br /&gt;
62:e6:28:24:5f:52    0.730s   (  6) 62:e6:28:24:5f:52 [     mesh0]: 62:e6:28:24:5f:52 (  6)&lt;br /&gt;
62:e6:28:72:32:48    0.730s   (  8) 62:e6:28:72:32:48 [     mesh0]: 62:e6:28:72:32:48 (  8)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das war lesbar und einfach, aber wegen ständiger Schreibzugriffe schlecht für die Lebensdauer der Flash-Speicher. Besser also nur schreiben, wenn Fehler passieren, etwa so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash&lt;br /&gt;
&lt;br /&gt;
FAILCOUNTFILE=/var/run/mesh0_failcount&lt;br /&gt;
MAXFAILCOUNT=10&lt;br /&gt;
&lt;br /&gt;
# check mesh connections with different originators and nexthops, MAC is 17 chars long&lt;br /&gt;
count=`batctl o | awk '/mesh0/{originator=substr($0,1,17); nexthop=substr($0,37,17); if (originator != nexthop){print originator&amp;quot; &amp;quot;nexthop}}' | wc -l`&lt;br /&gt;
&lt;br /&gt;
if [ -f $FAILCOUNTFILE ]; then          # Does the failcount file exist at all?&lt;br /&gt;
  read failcount &amp;lt; $FAILCOUNTFILE       # If it exist then there is a number in.&lt;br /&gt;
  if [ $count -gt 0 ]; then             # At least one originator with different nexthop exists&lt;br /&gt;
    if [ $failcount -gt 0 ]; then       # We'r lucky, everything is fine again!&lt;br /&gt;
      echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
      exit&lt;br /&gt;
    fi&lt;br /&gt;
  else                                  # no nexthop different than originator exists &lt;br /&gt;
    failcount=$(($failcount+1))&lt;br /&gt;
    if [ $failcount -ge $MAXFAILCOUNT ]; then&lt;br /&gt;
      echo 0 &amp;gt; $FAILCOUNTFILE                   # Reset counter before reboot&lt;br /&gt;
      logread &amp;gt; /etc/mesh0_failcount_lastwords_`date +&amp;quot;%Y-%m-%d_%H%M&amp;quot;`  # DEBUG info&lt;br /&gt;
      sync&lt;br /&gt;
      reboot&lt;br /&gt;
    fi &lt;br /&gt;
    echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
  fi&lt;br /&gt;
else&lt;br /&gt;
  echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Script wird dann noch ausführbar gemacht:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /root/check_mesh.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Via &amp;quot;crontab -e&amp;quot; führt dann folgender Eintrag zur Ausführung zu jeder vollen Minute:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* * * * * /root/check_mesh.sh &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wichtig ist, dass ein ausreichender Zeitraum zum Aufbau des Mesh-Netzes nach dem Reboot verbleibt. 10 Minuten (MAXFAILCOUNT) sollten hierzu ausreichen.&lt;br /&gt;
&lt;br /&gt;
Im /etc-Verzeichnis (das wurde gewählt, da Änderungen hier einen Neustart überleben) sind dann solche Reboot-Ereignisse ablesbar:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -al | grep failcount&lt;br /&gt;
-rw-r--r--    1 root     root             0 Oct 26 06:22 mesh0_failcount_2015-10_26_0622&lt;br /&gt;
-rw-r--r--    1 root     root             0 Oct 29 08:12 mesh0_failcount_2015-10-29_0812&lt;br /&gt;
-rw-r--r--    1 root     root             0 Oct 30 21:59 mesh0_failcount_2015-10-30_2159&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Vorfälle traten unregelmäßig alle paar Tage auf, wurden aber durch das Script abgefangen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Client-WLAN nachts automatisch ausstellen ==&lt;br /&gt;
&lt;br /&gt;
In Jugendherbergen oder Flüchtlingsheimen kann es durch rücksichts- oder gedankenloses Verhalten einzelner Gäste oder Bewohner zu akkustischen Beeinträchtigungen kommen, die durch temporäres Ausschalten des WLAN-Client-Netzes vermindert werden können. Damit kann natürlich nicht verhindert werden, dass einzelne Bewohner sich einen eigenen Freifunk-Router konfigurieren und ins Mesh-Netz hängen - das wäre ja sogar erwünscht. Folgendes Script ''restrict_client_access.sh'' ermöglicht das Abschalten in den frühen Morgenstunden (d.h. vor 0 Uhr abzuschalten ist hier nicht berücksichtigt). Es ist bisher für TP-Link TL-WR841-ND, sowie mit TL-WDR4300 und TL-WDR3600 mit der aktuellen Firmware v1.4 getestet. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash&lt;br /&gt;
&lt;br /&gt;
STOP_HOUR=0   # needs to be smaller than START_HOUR!!!&lt;br /&gt;
START_HOUR=7  # disable client0 network device if it's active &lt;br /&gt;
              # and hour is between STOP_HOUR and START_HOUR &lt;br /&gt;
&lt;br /&gt;
hour=`date +&amp;quot;%H&amp;quot;`&lt;br /&gt;
&lt;br /&gt;
ip addr list client0 &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
if [ $? -eq 0 ]; then                   # client network is on&lt;br /&gt;
  if [ $hour -lt ${START_HOUR} -a $hour -ge ${STOP_HOUR} ]; then        # turn it off&lt;br /&gt;
    uci set wireless.client_radio0.disabled=1&lt;br /&gt;
    uci set wireless.client_radio1.disabled=1                           # additional 5GHz wifi exists (e.g. WDR3600)&lt;br /&gt;
    uci commit wireless&lt;br /&gt;
    /etc/init.d/network restart&lt;br /&gt;
  fi&lt;br /&gt;
else                                    # client network is off&lt;br /&gt;
  if [ $hour -ge ${START_HOUR} -o $hour -lt ${STOP_HOUR} ]; then        # turn it on &lt;br /&gt;
    uci set wireless.client_radio0.disabled=0&lt;br /&gt;
    uci set wireless.client_radio1.disabled=0                           # additional 5GHz wifi exists (e.g WDR3600)&lt;br /&gt;
    uci commit wireless        &lt;br /&gt;
    /etc/init.d/network restart&lt;br /&gt;
  fi&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Script kann z.B. einfach im /root/ -Verzeichnis abgelegt werden. Via &amp;quot;crontab -e&amp;quot; führt dann folgender Eintrag zur Ausführung zu jeder vollen Minute:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* * * * * /root/restrict_client_access.sh &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Hinweis:''' Die uci- sowie das Restart-Kommando dürfen nicht ausserhalb der if-Bedingungen das Script ''vereinfachen'', da sie jeweils nur bei einmaligem Umstellen täglich ausgeführt werden dürfen. Sonst verliert man jede Minute das Netz...&lt;br /&gt;
&lt;br /&gt;
'''Wichtig ''': Der NTP-Dienst bei Mesh-Only-Routern muss ggf. erst (oder nochmal) nach der hergestellten Mesh-Verbindung durchgestartet werden, da NTP keine großen Zeitsprünge macht. Das kan z.B. durch folgenden Eintrag via Crontab automatisiert werden (hier: zur vollen Minute 8, die ggf. nach längerer Auszeit auch zunächst falsch sein kann):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
8 * * * * /etc/init.d/sysntpd restart &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Besser wäre hier ein Script, dass nach dem erfolgreichen Herstellen einer Mesh-Verbindung zum Uplink den ndtd einmal durchstartet, damit die Zeit initial synchronisiert wird.&lt;br /&gt;
&lt;br /&gt;
== Client-WLAN an Mesh-Only-Routern nur aktivieren, wenn Mesh-WLAN vorhanden ist ==&lt;br /&gt;
&lt;br /&gt;
Bei Routern, die selbst keinen Uplink haben und deshalb davon abhängig sind mit Nachbarn zu meshen, kann das Freifunk-Client-WLAN ausgestellt werden, wenn kein Mesh-Link (und damit auch kein entfernter Uplink) greifbar ist.&lt;br /&gt;
&lt;br /&gt;
Folgendes Script kann in ''/root/client-off-if-mesh-off.sh'' abgelegt (und via ''chmod +x /root/client-off-if-mesh-off.sh'' ausführbar gemacht) werden, das dann via cron regelmäßig aufgerufen wird:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash                                                                                          &lt;br /&gt;
&lt;br /&gt;
FAILCOUNTFILE=/var/run/mesh0_nogatewaycount&lt;br /&gt;
MAXFAILCOUNT=2&lt;br /&gt;
&lt;br /&gt;
# check mesh connections with different originators and nexthops, MAC is 17 chars long&lt;br /&gt;
batctl gwl | grep -q &amp;quot;No gateways in range&amp;quot;&lt;br /&gt;
no_gw=$?&lt;br /&gt;
&lt;br /&gt;
if [ -f $FAILCOUNTFILE ]; then          # Does the failcount file exist at all?&lt;br /&gt;
  read failcount &amp;lt; $FAILCOUNTFILE       # If it exist then there is a number in.&lt;br /&gt;
  if [ ${no_gw} -eq 1 ]; then           # There is a gateway&lt;br /&gt;
    if [ $failcount -gt 0 ]; then       # We'r lucky, it is fine again, we decrease the failcount&lt;br /&gt;
      failcount=$(($failcount-1))&lt;br /&gt;
      echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
      if [ $failcount -eq 0 ]; then&lt;br /&gt;
        # turn on client network &lt;br /&gt;
        uci set wireless.client_radio0.disabled=0&lt;br /&gt;
        uci commit wireless&lt;br /&gt;
        wifi&lt;br /&gt;
      fi&lt;br /&gt;
      exit&lt;br /&gt;
    fi&lt;br /&gt;
  else                                  # no nexthop different than originator exists &lt;br /&gt;
    failcount=$(($failcount+1))&lt;br /&gt;
    if [ $failcount -eq $MAXFAILCOUNT ]; then&lt;br /&gt;
      # logread &amp;gt; /etc/mesh0_failcount_no-mesh_`date +&amp;quot;%Y-%m-%d_%H%M&amp;quot;`  # DEBUG info&lt;br /&gt;
      # turn off client network &lt;br /&gt;
      uci set wireless.client_radio0.disabled=1&lt;br /&gt;
      uci commit wireless&lt;br /&gt;
      wifi&lt;br /&gt;
    fi&lt;br /&gt;
    if [ $failcount -le $MAXFAILCOUNT ]; then ## only memorize failcounts up to MAXFAILCOUNT &lt;br /&gt;
      echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
    fi&lt;br /&gt;
  fi&lt;br /&gt;
else&lt;br /&gt;
  echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Via &amp;quot;crontab -e&amp;quot; führt dann folgender Eintrag zur Ausführung zu jeder vollen Minute:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* * * * * /root/client-off-if-mesh-off.sh &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das obige Script ist dahingehend optimiert, dass nur bei Änderungen des Mesh-Status Daten auf den Flash-Speicher geschrieben werden. Für TP-Link WR 841ND wurde obiges Script getestet.&lt;br /&gt;
&lt;br /&gt;
== Freifunk-Monitor: Router-Status per E-Mail ==&lt;br /&gt;
&lt;br /&gt;
Ich zitiere mal von der Mailingliste - das ganze ist in der Testphase und ich werde den Wiki-Eintrag später noch entsprechend Überarbeiten.&lt;br /&gt;
&lt;br /&gt;
(Dieser Service ist nun wieder aktiv, nach spätestens 40 Minuten Down-Time geht die E-Mail jetzt wieder raus!)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Hallo, Liebe Mitstreiter!&lt;br /&gt;
&lt;br /&gt;
Wir alle arbeiten daran, unser Netz besser, schneller und stabiler zu machen.&lt;br /&gt;
&lt;br /&gt;
Axel und ich möchten unseren Teil beitragen.&lt;br /&gt;
&lt;br /&gt;
Deshalb entwickeln wir den Freifunk-Monitor – eine kleine Software, die Betreiber von Freifunk-Routern auf Wunsch per E-Mail benachrichtigt, wenn ein- oder mehrere seiner Knoten seitens der Karte nicht erreichbar scheinen.&lt;br /&gt;
&lt;br /&gt;
Dieser Service muss derzeit explizit auf einem Router mit mindestens Gluon 1.4 via SSH angeschaltet werden (es gibt derzeit keine Web-Oberfläche).&lt;br /&gt;
&lt;br /&gt;
Wir laden hiermit alle Router-Betreiber ein, den Monitor zu testen!&lt;br /&gt;
&lt;br /&gt;
Rechnet damit, schlimmstenfalls zu viele oder ungerechtfertigte E-Mails vom Monitor zu bekommen - wir testen die Software noch.&lt;br /&gt;
&lt;br /&gt;
Wie ihr das wieder abschaltet steht unten.&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
Kommando zum Monitoring einschalten (Achtung, was folgt ist EINE Zeile):&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;if uci:get_first('gluon-node-info', 'owner', 'send_alerts', '') ~= '' then return true end&amp;quot; &amp;gt; /lib/gluon/announce/nodeinfo.d/send_alerts ; uci set gluon-node-info.@owner[0].send_alerts=1 ; uci commit&lt;br /&gt;
&lt;br /&gt;
Kommando zum E-Mail-Adresse setzen (falls nicht schon geschehen):&lt;br /&gt;
&lt;br /&gt;
uci set gluon-node-info.@owner[0].contact=ff@cocoanuts.org; uci commit&lt;br /&gt;
&lt;br /&gt;
Kommando zum E-Mail-Adresse prüfen:&lt;br /&gt;
&lt;br /&gt;
uci get gluon-node-info.@owner[0].contact&lt;br /&gt;
&lt;br /&gt;
Kommando zum Monitoring abschalten:&lt;br /&gt;
&lt;br /&gt;
uci set gluon-node-info.@owner[0].send_alerts=0 ; uci commit&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
Frohes Freifunken,&lt;br /&gt;
&lt;br /&gt;
    KaterMikesch &amp;amp; G3ntleman&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Pimp_my_Node&amp;diff=4710</id>
		<title>Pimp my Node</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Pimp_my_Node&amp;diff=4710"/>
		<updated>2016-07-07T16:08:12Z</updated>

		<summary type="html">&lt;p&gt;Took: /* Freifunk-Monitor: Router-Status per E-Mail */ service will be fixed sooner or later&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Mitmachen]]&lt;br /&gt;
&lt;br /&gt;
Hier finden sich interessante Optionen für etwas versiertere Nutzer. Diese Seite wurde größtenteils für die Classic Firmware geschrieben. Wer Gluon verwendet sollte unbedingt auch Gluon spezifische Resourcen, wie [http://gluon.readthedocs.org/ http://gluon.readthedocs.org], zu Rate ziehen. &lt;br /&gt;
&lt;br /&gt;
Die Möglichkeiten und Abweichungen von der Default-Konfiguration sind vielfältig. Diese sollten aber nur dann durchgeführt werden, wenn der Durchführende genau weiß was er da macht. Eine fehlerhaft Konfiguration kann zum Beispiel zu Störungen im Netzwerk führen, ferner könnten illegitime Maßnahmen implementiert werden. Beide zuvor genannten Beispiele würden zu einem Ausschluss aus unserem Netzwerk führen. Dennoch kann man gute Gründe haben die ein Abweichen von den Defaultwerten sinnvoll machen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Netztheorie/Technik und Entwicklung ==&lt;br /&gt;
Vertiefung&lt;br /&gt;
&lt;br /&gt;
*[[FSM-Dynamisches-Bridging]] &lt;br /&gt;
*[[Batman_adv]]&lt;br /&gt;
*[[Entwicklung]]&lt;br /&gt;
*[[Firmware|Firmware/Betriebssystem]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arbeiten auf der Shell ==&lt;br /&gt;
Vorraussetzung für folgende Befehle sind eine Verbindung mit dem KBU Freifunk Netz sowie ein Terminal / Shell. &lt;br /&gt;
Vergesst nicht eth0 gegen die Bezeichnung eures Netzwerkinterfaces, welches am Freifunk hängt zu tauschen. &lt;br /&gt;
Bei Macbooks via Wlan z.B. &amp;quot;en1&amp;quot; statt &amp;quot;eth0&amp;quot;! Die link local Adresse der jeweiligen node findet ihr auf der [http://register.kbu.freifunk.net KBU Register] Seite. Um Dateien auf dem Node ändern zu können, steht als einziger Editor ''vi'' bzw. ''vim'' zur Verfügung.&lt;br /&gt;
 &lt;br /&gt;
Zusätzlich zu den auf dieser Seite erläuterten Modifikationen gibt es im [https://github.com/freifunk-gluon/gluon/wiki/Commandline-administration Github-Wiki der Freifunk-Gluon-Firmware eine ausführliche Liste nützlicher Befehle ].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Firmware aktualisieren ===&lt;br /&gt;
==== Node mit uplink ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@&amp;lt;link local Adresse des Nodes&amp;gt;%eth0              // SSH Verbindung zum Node aufbauen, eth0 ist das lokale Interface, ggf. durch wlan0 etc. ersetzen&lt;br /&gt;
cd ../tmp/                                              // in das Verzeichnis &amp;quot;tmp&amp;quot; wechseln&lt;br /&gt;
free                                                    // Freien Speicher prüfen&lt;br /&gt;
wget http://pfad/zur/firmware.bin                       // Firmware herunterladen und dann&lt;br /&gt;
sysupgrade -v firmware.bin                              // Firmware-Upgrade durchführen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Achtung''': Beim Download der Firmware via wget kann auf dem Router die Integrität der Firmware nicht geprüft werden, da gpg i.d.R. auf den Routern nicht verfügbar ist. Deshalb ist es sicherer, den oben beschriebenen Weg zu wählen, oder die geprüfte Firmware per scp (s.u.) auf den Router zu kopieren. &lt;br /&gt;
&lt;br /&gt;
==== Node ohne uplink (mesh node) ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp -6 -v -r firmware.bin root@\[&amp;lt;link local Adresse des Nodes&amp;gt;%eth0\]:../tmp/          // Firmware auf den node schieben (md5 checken!)&lt;br /&gt;
ssh root@&amp;lt;link local Adresse des Nodes&amp;gt;%eth0 &lt;br /&gt;
cd ../tmp/  &lt;br /&gt;
sysupgrade -v firmware.bin  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Upgrade von inkompatibler Konfiguration (Lagacy auf Gluon, wechsel der hood, etc.) ====&lt;br /&gt;
Bei einem upgrade von einer inkompatiblen Version mittels &amp;lt;code&amp;gt;sysupgrade&amp;lt;/code&amp;gt; muss man normalerweise mittels&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysupgrade -n firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
die aktuellen Settings überschreiben lassen. Auf einem Node den man nur per ssh erreicht ist das unpraktisch, da auch Passwörter und ssh keys gelöscht werden. Zum Glück hat &amp;lt;code&amp;gt;sysupgrade&amp;lt;/code&amp;gt; einen interaktiven Modus, den man per&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysupgrade -i firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
startet. Hier kann man (nachdem man bestätigt hat, das ein Teil der Konfiguration übernommen werden soll) die Liste an zu sichernden Dingen bearbeiten. Die gluon-node-info (geo-Koordinaten und Kontaktadresse) so wie vor allem die drobbear/*keys sollte man behalten, evtl auch system mit dem host name des Nodes, der Rest kann gelöscht werden, falls man da keine wichtigen Anpassungen vorgenommen hat. ('dd' löscht Zeilen in vi ;)&lt;br /&gt;
&lt;br /&gt;
Je nach Route zum Router kann es sein, dass die ssh Verbindung abbricht während des interactiven upgrades. Genauer passiert das, wenn man nur durch einen VPN Tunnel Verbindung hat. (Nicht fleißig am Backbone mitgearbeitet? ;) Das ist blöd, weil man am Ende noch den Neustart bestätigen muss (etwas unsinniger weise). In diesem Fall sollte man besser eine config datei mit z.B. folgenden Zeilen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/etc/dropbear/authorized_keys&lt;br /&gt;
/etc/dropbear/dropbear_dss_host_key&lt;br /&gt;
/etc/dropbear/dropbear_rsa_host_key&lt;br /&gt;
/etc/config/gluon-node-info&lt;br /&gt;
/etc/config/system&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
erstellen und per &amp;lt;code&amp;gt;tar -cz config  &amp;amp;gt; config.tar.gz&amp;lt;/code&amp;gt; packen. Danach kann man mittels&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysupgrade -f config.tar.gz firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
das ganze unattended laufen lassen.&lt;br /&gt;
&lt;br /&gt;
==== Node ''zu Fuß'' updaten ====&lt;br /&gt;
Wenn man physikalischen Zugriff auf den Freifunk-Router hat, kann man auch einfach in den [[Config_Mode]] wechseln und dort über das entsprechende Menü eine neue Freifunk-Firmware hochladen. Hierbei kann man wählen, ob man die ggf. geänderte Konfiguration beibehalten möchte (upgrade-Image) oder alles von Grund auf neu installiert/konfiguriert. Ggf. muss man zuvor noch ein Root-Passwort setzen, damit das Update möglich wird.&lt;br /&gt;
&lt;br /&gt;
==== via TFTP  ====&lt;br /&gt;
Wenn mal ein Router nicht mehr bootet, aber der Bootloader noch funktioniert, (oder man einfach keinen Bock auf das Stock Webinterface hat) kann man häufig noch per tftp recht komfortabel eine neue Firmware einspielen. [http://wiki.openwrt.org/doc/howto/generic.flashing.tftp] ;)&lt;br /&gt;
&lt;br /&gt;
* tftp server auf dem lokalen Rechner installieren (Kurzfassung von z.B. [http://www.cyberciti.biz/faq/install-configure-tftp-server-ubuntu-debian-howto/])&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install tftpd-hpa&lt;br /&gt;
sudo chown -R tftp /srv/tftp/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Config anpassen &amp;amp; neustarten. Das &amp;quot;-c create file&amp;quot; braucht man um vom router Dateien zu senden (config sichern), &amp;quot;-s&amp;quot; da sonst absolute Pfade angegeben werden müssten (macht der Router natürlich nicht). Mehr zu den Optionen findet man auf der [http://linux.die.net/man/8/tftpd man page].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vim /etc/default/tftpd-hpa&lt;br /&gt;
&lt;br /&gt;
TFTP_USERNAME=&amp;quot;tftp&amp;quot;&lt;br /&gt;
TFTP_DIRECTORY=&amp;quot;/srv/tftp&amp;quot;&lt;br /&gt;
TFTP_ADDRESS=&amp;quot;0.0.0.0:69&amp;quot;&lt;br /&gt;
TFTP_OPTIONS=&amp;quot;-s -c&amp;quot;&lt;br /&gt;
&lt;br /&gt;
service tftpd-hpa restart &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Dann muss man noch herausfinden auf welcher IP der Router nach welchem Dateinamen Fragt. Eine gute Quelle ist openWRT, z.B. für den beliebten tl-wr841n wäre finden sich die Infos je nach Version [http://wiki.openwrt.org/toh/tp-link/tl-wr841nd#tftp_recovery_via_bootloader_for_v8_v9_v10_v11 hier].&lt;br /&gt;
&lt;br /&gt;
Falls noch Fragen offen bleiben, [https://www.freifunk-bingen.de/forum/hilfe-unterst%C3%BCtzung/flashen-eines-gebrickten-tp-link-routers-tftp die $Anderen wissen auch was]. ;)&lt;br /&gt;
&lt;br /&gt;
=== Hostnamen des Nodes ändern ===&lt;br /&gt;
Standardmäßig ist der Hostname des Nodes gleich der MAC-Adresse des Routers. Möchte man den Hostnamen ändern, so kann man dies per ssh&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set system.@system[0].hostname=what-ever-dude&lt;br /&gt;
uci commit&lt;br /&gt;
reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Änderung wird erst nach dem Kommando ''reboot'' (danach startet der Node neu) wirksam.&lt;br /&gt;
&lt;br /&gt;
=== IPv6 ping ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ping6 &amp;lt;link local Adresse des Nodes&amp;gt;%eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== IPv6 ssh ===&lt;br /&gt;
Hinter der link local Adresse &amp;quot;%&amp;quot; + &amp;quot;Netzwerk Interface an eurer Kiste&amp;quot; (Hier im Beispiel eth0)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@&amp;lt;link local Adresse des Nodes&amp;gt;%eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Paßwort-Authentifizierung abstellen ===&lt;br /&gt;
'''Wichtig:''' Als erstes prüfen, ob man sich mit seinem Schlüsselpaar auf den Router einloggen kann. Man sollte jetzt nicht mehr nach dem Paßwort gefragt werden (allerhöchstens nach dem Paßwort, welches den privaten Schlüssel schützt).&lt;br /&gt;
Falls das erfolgreich funktioniert, kann man die Datei ''/etc/config/dropbear'' wie folgt ändern:&lt;br /&gt;
&amp;lt;pre&amp;gt;config dropbear&lt;br /&gt;
        option PasswordAuth 'off'&lt;br /&gt;
        option RootPasswordAuth 'off'&lt;br /&gt;
        option Port         '22'&lt;br /&gt;
#       option BannerFile   '/etc/banner'&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nach einem Neustart des Routers mittels ''reboot'' sollte es jetzt nur noch möglich sein, sich mit seinem Schlüsselpaar auf den Rotuer einzuloggen.&lt;br /&gt;
&lt;br /&gt;
=== SSH public key auf Node aufspielen ===&lt;br /&gt;
Möchte man sich nicht immer per Paßwort auf den eigenen Node verbinden, so kann man das auch mit einem Schlüsselpaar realisieren. Falls man danach noch die Authentifizierung per Paßwort abschaltet (s. nächster Punkt), dann hat man einen sicheren Zugriff auf seinen Node realisiert.&lt;br /&gt;
Voraussetzung ist natürlich, dass man schon ein gültiges Schlüsselpaar besitzt. Falls dem so ist, so genügt es, den öffentlichen Schlüssel (public key) auf den Node zu übertragen. Das kann mit Hilfe von scp (secure copy) passieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp -6 id_rsa4096.pub root@[&amp;lt;link local Adresse des Nodes&amp;gt;%eth0]:/etc/dropbear/authorized_keys&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hierbei steht id_rsa.pub für die Datei, die den public key enthält. '''ACHTUNG:''' Obiger Befehl ersetzt die eventuell schon vorhandene Datei authorized_keys auf dem Node. Das ist ok für den ersten Key. Sollen mehrere Keys eingetragen werden (z. B. weil man außer vom Laptop auch vom Tablet auf seinen Node verbinden möchte), kann man das so machen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat ~/.ssh/id_rsa4096.pub | ssh root@[&amp;lt;link local Adresse des Nodes&amp;gt;%eth0] 'umask 077; cat &amp;gt;&amp;gt;.ssh/authorized_keys'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollte beim Kopierversuch die Meldung&lt;br /&gt;
&amp;lt;pre&amp;gt;ssh: Could not resolve hostname fe80:&amp;lt;/pre&amp;gt;&lt;br /&gt;
erscheinen, hat man höchstwahrscheinlich die eckigen Klammern um die IP-Adresse inklusive Interface vergessen. Dann wird der erste Doppelpunkt schon als Ende des Hostnamens interpretiert! Auch hier werden die Änderungen nach einem Neustart des Routers mittels ''reboot'' übernommen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Node überträgt keine Statistiken ===&lt;br /&gt;
Auf der [https://kbu.freifunk.net/cserv Cserv Seite] könnt ihr prüfen, ob eurer Node bereits Statistiken übermittelt.&lt;br /&gt;
==== ntp-Bug in Firmware 1.2.1b beseitigen ====&lt;br /&gt;
Falls sich ein Node-Betreiber wundert, warum sein Node keine Statistiken liefert und es ein Mesh-Only-Node ist (d. h. ohne eigenen Uplink zum Internet), so liegt das an einem Bug in der Firmware. Diesen kann man jedoch mit einfachen Mitteln beheben:&lt;br /&gt;
Editiert wird die Datei ''/etc/config/system''. Dort findet man einen Eintrag ''config timeserver 'ntp'''. Defaultmäßig stehen hier 4 Zeitserver von openwrt (in der Form x.openwrt.pool.ntp.org). Diese müssen bei Mesh-Only-Nodes in IPv6-Adressen geändert werden, und zwar, dass der komplette Konfigurationspunkt wie folgt aussieht:&lt;br /&gt;
&amp;lt;pre&amp;gt;config timeserver 'ntp'&lt;br /&gt;
        list server '2a03:4000:2:494::2'&lt;br /&gt;
        list server '2a01:4f8:161:2461:e4::1'&lt;br /&gt;
        list server '2a02:180:1:1::551f:bb4b'&lt;br /&gt;
        option enabled '1'&lt;br /&gt;
        option enable_server '0'&amp;lt;/pre&amp;gt;&lt;br /&gt;
Auch hier werden die Änderungen erst nach einem Neustart des Nodes mittels ''reboot'' wirksam.&lt;br /&gt;
Dieser Bug soll mit dem nächsten Firmware-Release behoben sein. Man kann die Eintragungen auch in den Nodes mit Internet-Uplink ändern ohne die Funktion zu beeinträchtigen.&lt;br /&gt;
&lt;br /&gt;
==== Collectd prüfen ====&lt;br /&gt;
Falls es durch das beheben des ntp-Bug noch immer nicht zum übertragen der Statistiken kommt, überprüft mal die Einstellungen eures Collectd. Es kann sein das beim Firmware Update diese Config nicht geupdatet wurde und eine veraltet IPV6 Adresse noch vorhanden ist, so sollte es sein:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vim /etc/collectd.conf                             // Config Datei für Collectd zum bearbeiten öffnen&lt;br /&gt;
&lt;br /&gt;
Zeile 39-44:    &lt;br /&gt;
&amp;lt;Plugin ping&amp;gt;                     &lt;br /&gt;
        TTL 127                   &lt;br /&gt;
        Interval 30                         &lt;br /&gt;
        Host &amp;quot;fdd3:5d16:b5dd:3::6&amp;quot;                 // Diesen Eintrag auf Übereinstimmmung prüfen      &lt;br /&gt;
&amp;lt;/Plugin&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Zeile 46-50:&lt;br /&gt;
&amp;lt;Plugin network&amp;gt;                                        &lt;br /&gt;
        Server &amp;quot;fdd3:5d16:b5dd:3::6&amp;quot; &amp;quot;25827&amp;quot;       // Diesen Eintrag auf Übereinstimmmung prüfen                 &lt;br /&gt;
        Forward false                                   &lt;br /&gt;
&amp;lt;/Plugin&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LAN Kopplung ===&lt;br /&gt;
Eine LAN Kopplung kann in manchen Fällen sinnvoll sein, besonders wenn man einen VLAN fähigen Switch und eine bestehende Ntzwerkverkabelung hat. Hier werden die Switchports angwiesen auch über LAN zu meshen.&lt;br /&gt;
&lt;br /&gt;
==== TL-WR841ND ====&lt;br /&gt;
03/2014: Hier wird über die alle 4 LAN Ports gemeshed, Mesh über WLAN kann man optional noch ausschalten! Folgende Config stammt von rampone/FF-KBU und wurde an 2 TL-WR841N v.8 getestet mit KBU-FF-Firmware 1.1.&lt;br /&gt;
&lt;br /&gt;
05/2015: Verifiziert (und ergänzt) für TL-WR841N v.9 und KBU-FF-Firmware 1.2.2rc3 .&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/network'' - Folgende Änderungen wurden an der FF-Firmware vorgenommen:&lt;br /&gt;
#config interface 'freifunk' -&amp;gt; Hier haben wir das ethX-Interface aus &amp;quot;ifname&amp;quot; rausgenommen, damit kein ff aus dem ethX (switch) rauskommt (X=1 für Hardware bis einschließlich v8, sonst X=0).&lt;br /&gt;
#config interface 'mesh_lan' -&amp;gt; kompl. codeblock hinzugefügt, dieser bewirkt das über ethX (switch) gemeshed wird. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config interface 'loopback'&lt;br /&gt;
	option ifname 'lo'&lt;br /&gt;
	option proto 'static'&lt;br /&gt;
	option ipaddr '127.0.0.1'&lt;br /&gt;
	option netmask '255.0.0.0'&lt;br /&gt;
&lt;br /&gt;
config interface 'wan'&lt;br /&gt;
	option ifname 'eth0'&lt;br /&gt;
	option proto 'dhcp'&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option accept_ra '0'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
&lt;br /&gt;
config switch&lt;br /&gt;
	option name 'switch0'&lt;br /&gt;
	option reset '1'&lt;br /&gt;
	option enable_vlan '1'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'switch0'&lt;br /&gt;
	option vlan '1'&lt;br /&gt;
	option ports '0 1 2 3 4'&lt;br /&gt;
&lt;br /&gt;
config interface 'freifunk'&lt;br /&gt;
	option ifname 'bat0'		#LAN-Kopplung: ifname eth1 (bzw. eth0, s.o.) entfernt&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option proto 'none'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option accept_ra '1'&lt;br /&gt;
	option macaddr '10:fe:ed:f1:53:84'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mtu '1528'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_vpn'&lt;br /&gt;
	option ifname 'mesh-vpn'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
	option macaddr '12:fe:ed:f2:53:84'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_lan'		#LAN-Kopplung: Codeblock mesh-lan hinzugefuegt&lt;br /&gt;
	option ifname 'eth0'            # ab TL-841N(D) v9: eth0, bis v8: eth1 . Bei falschem Interface läuft das mesh-lan über den blauen Port. Wer's mag...&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/wireless'' - Hier wird der Codeblock, der für das Mesh über WLAN verantwortlich ist auskommentiert (optional)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#config wifi-iface 'wifi_mesh'&lt;br /&gt;
#       option device 'radio0'&lt;br /&gt;
#       option network 'mesh'&lt;br /&gt;
#       option mode 'adhoc'&lt;br /&gt;
#       option ssid '02:d1:11:37:fc:39'&lt;br /&gt;
#       option bssid '02:d1:11:37:fc:39&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TL-WDR4300 ====&lt;br /&gt;
Das gleiche nochmal für den 4300er&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/network''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config interface 'loopback'&lt;br /&gt;
	option ifname 'lo'&lt;br /&gt;
	option proto 'static'&lt;br /&gt;
	option ipaddr '127.0.0.1'&lt;br /&gt;
	option netmask '255.0.0.0'&lt;br /&gt;
&lt;br /&gt;
config interface 'wan'&lt;br /&gt;
	option ifname 'eth0.2'&lt;br /&gt;
	option proto 'dhcp'&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option accept_ra '0'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option macaddr 'a2:f3:c1:65:81:cd'&lt;br /&gt;
&lt;br /&gt;
config switch&lt;br /&gt;
	option name 'eth0'&lt;br /&gt;
	option reset '1'&lt;br /&gt;
	option enable_vlan '1'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'eth0'&lt;br /&gt;
	option vlan '1'&lt;br /&gt;
	option ports '0t 2 3 4 5'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'eth0'&lt;br /&gt;
	option vlan '2'&lt;br /&gt;
	option ports '0t 1'&lt;br /&gt;
&lt;br /&gt;
config interface 'freifunk'&lt;br /&gt;
	option ifname 'bat0'		#LAN-Kopplung: ifname eth0.1 entfernt&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option proto 'none'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option accept_ra '1'&lt;br /&gt;
	option macaddr 'a0:f3:c1:64:81:cc'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mtu '1528'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_vpn'&lt;br /&gt;
	option ifname 'mesh-vpn'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
	option macaddr 'a2:f3:c1:65:81:cc'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_lan'		#LAN-Kopplung: Codeblock mesh-lan hinzugefuegt&lt;br /&gt;
        option ifname 'eth0.1'&lt;br /&gt;
        option proto 'batadv'&lt;br /&gt;
        option mesh 'bat0'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einsperren des Freifunk-Routers in eine DMZ ==&lt;br /&gt;
&lt;br /&gt;
Wer seinen Freifunk-Router einsperren und/oder die Bandbreite begrenzen möchte, kann dies am einfachsten tun, indem er ihn an seiner Firewall an einen eigenen Netzwerkport klemmt und diesen dann als DMZ konfiguriert. Ein KBU-Freifunk-Router muß zur Zeit im LAN DHCP, DNS, im Internet NTP sowie mit den [[fastd]]-Knoten reden können. Folgendes Bespiel für eine iptables-Firewall nimmt an, dass der Freifunk-Router über eth2 angeschlossen ist:&lt;br /&gt;
&lt;br /&gt;
 # eth2 darf nur dns, ntp, dhcp und ansonsten mit den fastdX reden&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p udp --dport 67:68 --sport 67:68 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p udp --dport 67:68 --sport 67:68 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p udp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p tcp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p udp --dport 123                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p udp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p tcp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p udp --dport 123                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 176.9.41.253                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 176.9.41.253                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 178.63.59.41                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 178.63.59.41                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 37.120.169.214               -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 37.120.169.214               -j ACCEPT &lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 37.221.195.47                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 37.221.195.47                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 78.46.68.75                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 78.46.68.75                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 84.201.35.206                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 84.201.35.206                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT                                      -j DROP&lt;br /&gt;
 iptables -i eth2 -A FORWARD                                    -j DROP&lt;br /&gt;
 # eth2 darf maximal 2000 kbit/s ein- und ausgehenden traffic machen&lt;br /&gt;
 wondershaper eth2 2000 2000&lt;br /&gt;
&lt;br /&gt;
Prinzipiell könnte man den Traffic noch weiter einschränken. DHCP und DNS müssen nur zum DHCP- bzw. DNS-Server funktionieren und der Traffic zu den fastd-Servern ließe sich auf TCP Port 80 und UDP Port 10000 begrenzen.&lt;br /&gt;
&lt;br /&gt;
===Alternative: Einsperren im VLAN===&lt;br /&gt;
siehe: [[FF-Router einsperren im VLAN]]&lt;br /&gt;
&lt;br /&gt;
== Weboberfläche aktivieren ==&lt;br /&gt;
&lt;br /&gt;
Im Normalbetrieb ist erst mal kein Zugriff notwendig (und auch erst mal nicht vorgesehen). Das läuft einfach! ;-) Und es gibt im Normalbetrieb eben auch kein Webinterface, welches Sicherheitslücken haben könnte.&lt;br /&gt;
&lt;br /&gt;
Zum ersten Konfigurieren schaltet mal den Router in einen Konfig-Modus. Der Router nimmt dann in diesem Modus nicht mehr am Freifunknetzwerk teil. Nun kann man dann Rechner an die LAN Ports des Freifunkrouters anschließen und über ein Webinterface per Browser den Router konfigurieren oder Updaten. Das sollte aber nur ganz selten notwendig sein. Nach einem Reboot des Routers geht das Gerät dann wieder in den Freifunk-Modus mit deinen Konfigurationsänderungen.&lt;br /&gt;
&lt;br /&gt;
Wenn man Spaß am Basteln hat kann man das Webinterface aber auch im Normalbetrieb aktivieren. Für die Absicherung muss man dann aber selber sorgen denn per Default ist das nicht abgesichert. Hier die Anleitung nach [http://wiki.freifunk.in-kiel.de/wiki/Firmware Freifunk Kiel], um auf die Weboberfläche zu gelangen:&lt;br /&gt;
&lt;br /&gt;
Das Webinterface des Routers ist nicht über die Link-Local-Adresse, sondern nur über die generelle IPv6 Adresse des Routers zu erreichen. Die IPv6-Adresse bekommt man über SSH (s. [[Pimp_my_Node#IPv6_ssh|IPv6 ssh]] auf den Router:&lt;br /&gt;
  ssh root@LinkLocalIPv6adresse_des_routers%Interface&lt;br /&gt;
Die generelle IPv6-Adresse erfährt man durch Eingabe von&lt;br /&gt;
  ifconfig | grep Global&lt;br /&gt;
Die IPv6-Adresse (&amp;quot;inet6 adr&amp;quot;) kann man nun im Browser in eckigen Klammern und vorangestelltem &amp;quot;http://&amp;quot; aufrufen (zum Beispiel: http://[2001:67c:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx]/) und gelangt so zum Webinterface LuCI.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
 uci delete uhttpd.main.listen_http&lt;br /&gt;
 uci delete uhttpd.main.listen_https&lt;br /&gt;
 &lt;br /&gt;
 uci add_list uhttpd.main.listen_http='[::]:80'&lt;br /&gt;
 uci add_list uhttpd.main.listen_http='0.0.0.0:80'&lt;br /&gt;
 uci add_list uhttpd.main.listen_https='[::]:80'&lt;br /&gt;
 uci add_list uhttpd.main.listen_https='0.0.0.0:80'&lt;br /&gt;
 &lt;br /&gt;
 uci commit uhttpd&lt;br /&gt;
 &lt;br /&gt;
 /etc/init.d/uhttpd enable&lt;br /&gt;
&lt;br /&gt;
== Uplink mit Android-Tethering/USB Netzwerkkarte ==&lt;br /&gt;
(ssh Zugang Erfahrung nötig)&lt;br /&gt;
&lt;br /&gt;
Das ganze sei von Anfang an als &amp;quot;sportlich&amp;quot; zu betrachten. Leider sind mobile 3g/LTE Tarife fast ausnahmslos nach einem bestimmten Volumen gedrosselt (üblicherweise auf 64 bis 56 kbit/s (neuere NetzclubSim sogar auf 32 kbit/s), Ausnahme bilden hier nur LTE Zuhause &amp;quot;DSL&amp;quot; Ersatz Tarife -&amp;gt; 386kbit/s).&lt;br /&gt;
Da Freifunk auch bei Nichtbenutzung Daten überträgt, ist nur bei LTE Zuhause Tarifen interessant dies als Dauerlösung zu nutzen. Dort ist aber wiederum meist ein LTE-Router vor Ort und man den Router auch &amp;quot;traditionell&amp;quot; via LAN Kabel anbinden.&lt;br /&gt;
Bei Benutzung als uplink bei Strassenfesten/Festivals etc. ist wahrscheinlich, dass erstens das Datenvolumen schnell aufgebraucht sein wird und zweitens ab einer bestimmten Größe auch das 3g Netz vor Ort überlastet ist. Wenn man es dennoch machen will (mehrere Sim Karten/spezieller hochvolumiger Tarif/Netzbetreiber gesponserter Uplink (träum)), sollte man die Benutzung von LTE erwägen. Auch dort könnten aber durch zukünftige Adapation Überlasterscheinungen auftreten. Desweitern nutzen 2g/3g/4g auch dasselbe Backbone, welcher dann auch für LTE ein Flaschenhals darstellt.&lt;br /&gt;
Muss nochmal nachprüfen, aber wenn, dann nicht uninteressant: Der Wlan Zugang des Telefons (CM7) wurde per tethering weitergeleitet und bei Abschalten gab es fallback auf 3g -&amp;gt; nicht schöne, aber einfache &amp;quot;Immer&amp;quot;netzlösung?  Mein Tablet zeigt nicht dieses Verhalten.)&lt;br /&gt;
&lt;br /&gt;
Blablabla, jetzt geht es los:&lt;br /&gt;
Das ganze habe ich mit einem 1043ND und einem droid 2.3CM7 Telefon und einem droid 2.2 Tablet ausprobiert, sollte aber auf jeglichen OpenWrt Router mit USB, Android USB tethering fähigem Gerät und einfachen USB ethernet Adaptern (nachprüfen!!!) funktionieren:&lt;br /&gt;
&lt;br /&gt;
- Per ssh in den router einloggen&lt;br /&gt;
- Installieren der notwendigen Treiber&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
opkg update&lt;br /&gt;
opkg install kmod-usb-uhci kmod-usb-net-rndis&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies sollte, falls ihr noch keine USB Unterstützung in der Firmware hat auch diese über dependencies nachinstallieren. (nachprüfen!!!)&lt;br /&gt;
&lt;br /&gt;
- Ihr müsst den Netzwerkzugang für da neue Interface &amp;quot;usb0&amp;quot; noch konfigurieren. Unter /etc/config/network fügt ihr z.B. folgendes hinzu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config interface 'wan2'&lt;br /&gt;
       option ifname 'usb0'&lt;br /&gt;
       option proto 'dhcp'&lt;br /&gt;
       option type 'bridge'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch unter Luci sollte dies konfigurierbar sein. &lt;br /&gt;
&lt;br /&gt;
- Nach einem Neustart und einem angeschlossenen Gerät sollte nun der Uplink via dem USB Netzwerk Gerät/Android tethering funktionieren.&lt;br /&gt;
- Sollte das Gerät erst später angeschlossen werden, so könnt ihr mit folgendem Befehl das Netzwerkgerät starten.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifup wan2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(Dies ist noch nicht ein perfektes Tutorial, werde es nochmal durchprobieren. Einen UMTS Stick hatte ich auf Anhieb noch nicht zum laufen gebracht. Auch scheint Multiwan in OpenWRT eine interessante Sache)&lt;br /&gt;
&lt;br /&gt;
== Zusätzlich zum Freifunk auch privates WLAN einrichten ==&lt;br /&gt;
&lt;br /&gt;
Es ist möglich ein privates WLAN anzulegen, das mit dem WAN Port gebridged und separat zum Mesh Netzwerk ist. (Bitte beachten, dass Mesh on Wan nicht zeitgleich mit aktiviert werden sollte.) &lt;br /&gt;
Effekt: Das private WLAN wird erweitert, zeitgleich fungiert der Router als Freifunk-Router. Die Netze sind voneinander abgekoppelt.&lt;br /&gt;
Das private WLAN kann per SSH in der Konsole aktiviert werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set wireless.wan_radio0=wifi-iface&lt;br /&gt;
uci set wireless.wan_radio0.device=radio0&lt;br /&gt;
uci set wireless.wan_radio0.network=wan&lt;br /&gt;
uci set wireless.wan_radio0.mode=ap&lt;br /&gt;
uci set wireless.wan_radio0.encryption=psk2&lt;br /&gt;
uci set wireless.wan_radio0.ssid=&amp;quot;$SSID&amp;quot;&lt;br /&gt;
uci set wireless.wan_radio0.key=&amp;quot;$KEY&amp;quot;&lt;br /&gt;
uci set wireless.wan_radio0.disabled=0&lt;br /&gt;
uci commit&lt;br /&gt;
wifi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Bitte ersetze $SSID mit dem Namen deines Heimnetzwerks und $KEY mit deinem bisher üblichen Key (der vom privaten Router). Falls dein Router beide Frequenzbänder unterstützt(2.4 und 5 Ghz) und du in beiden auch privates WLAN aktivieren möchtest, muss dies für radio0 und radio1 mit übernommen werden.&lt;br /&gt;
Zum deaktivieren des Ganzen wie folgt vorgehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set wireless.wan_radio0.disabled=1&lt;br /&gt;
uci commit&lt;br /&gt;
wifi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Automatischer Neustart bei längerem Mesh-Verlust, quick hack (and improved hack) zur Analyse ==&lt;br /&gt;
&lt;br /&gt;
Bei der Vernetzung von Notunterkünften mit Gluon-Beta (via Euskirchen) ist bei einem CPE210-Uplink aufgefallen, dass sämtliche Mesh-Verbindungen über Stunden ausgefallen waren. Es war zunächst unklar, ob überwiegend die Stromversorgung ursächlich ist, insbesondere da der Uplink-Router mehrfach betroffen und trotzdem via VPN erreichbar war. Dabei war dann nur ein Mesh mit sich selbst via &amp;quot;batctl o&amp;quot; sichtbar. Einzelne Mesh-Only-Router zeigten ebenfalls (selten) Ausfälle über mehrere Stunden: teilweise Nachts, wo Renovierungsarbeiten nicht die Ursache sein konnten.&lt;br /&gt;
&lt;br /&gt;
Um längere Ausfälle zu vermeiden wurde folgendes Script unter /root/check_mesh.sh abgelegt, das via cron-Job automatisch jede Minute ausgeführt wird und nach 10 Minuten ohne Mesh-Verbindung einen Reboot auslöst:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash&lt;br /&gt;
&lt;br /&gt;
FAILCOUNTFILE=/var/run/mesh0_failcount&lt;br /&gt;
MAXFAILCOUNT=10&lt;br /&gt;
&lt;br /&gt;
# check mesh connections with different originators and nexthops, MAC is 17 chars long&lt;br /&gt;
count=`batctl o | awk '/mesh0/{originator=substr($0,1,17); nexthop=substr($0,37,17); if (originator != nexthop){print originator&amp;quot; &amp;quot;nexthop}}' | wc -l`&lt;br /&gt;
&lt;br /&gt;
if [ $count -gt 1 ]; then  ## more than a single mesh with itself is left&lt;br /&gt;
  echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
else&lt;br /&gt;
  if [ -f $FAILCOUNTFILE ]; then  &lt;br /&gt;
    read failcount &amp;lt; $FAILCOUNTFILE&lt;br /&gt;
    failcount=$(($failcount+1))&lt;br /&gt;
    if [ $failcount -ge $MAXFAILCOUNT ]; then&lt;br /&gt;
      touch /etc/mesh0_failcount_`date +&amp;quot;%Y-%m-%d_%H%M&amp;quot;`&lt;br /&gt;
      sync&lt;br /&gt;
      reboot&lt;br /&gt;
    fi &lt;br /&gt;
    echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
  else&lt;br /&gt;
    echo 1 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
  fi&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es muss (hier mit awk, s.o.) nach _unterschiedlichen_ Werten für Originator und NextHop ausschau gehalten werden, denn bei einem fehlenden Mesh zwischen zwei Knoten meshen die Knoten noch mit sich selbst:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# batctl o | grep mesh0&lt;br /&gt;
62:e6:28:24:5f:52    0.730s   (  6) 62:e6:28:24:5f:52 [     mesh0]: 62:e6:28:24:5f:52 (  6)&lt;br /&gt;
62:e6:28:72:32:48    0.730s   (  8) 62:e6:28:72:32:48 [     mesh0]: 62:e6:28:72:32:48 (  8)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das war lesbar und einfach, aber wegen ständiger Schreibzugriffe schlecht für die Lebensdauer der Flash-Speicher. Besser also nur schreiben wenn Fehler passieren, etwa so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash&lt;br /&gt;
&lt;br /&gt;
FAILCOUNTFILE=/var/run/mesh0_failcount&lt;br /&gt;
MAXFAILCOUNT=10&lt;br /&gt;
&lt;br /&gt;
# check mesh connections with different originators and nexthops, MAC is 17 chars long&lt;br /&gt;
count=`batctl o | awk '/mesh0/{originator=substr($0,1,17); nexthop=substr($0,37,17); if (originator != nexthop){print originator&amp;quot; &amp;quot;nexthop}}' | wc -l`&lt;br /&gt;
&lt;br /&gt;
if [ -f $FAILCOUNTFILE ]; then          # Does the failcount file exist at all?&lt;br /&gt;
  read failcount &amp;lt; $FAILCOUNTFILE       # If it exist then there is a number in.&lt;br /&gt;
  if [ $count -gt 0 ]; then             # At least one originator with different nexthop exists&lt;br /&gt;
    if [ $failcount -gt 0 ]; then       # We'r lucky, everything is fine again!&lt;br /&gt;
      echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
      exit&lt;br /&gt;
    fi&lt;br /&gt;
  else                                  # no nexthop different than originator exists &lt;br /&gt;
    failcount=$(($failcount+1))&lt;br /&gt;
    if [ $failcount -ge $MAXFAILCOUNT ]; then&lt;br /&gt;
      echo 0 &amp;gt; $FAILCOUNTFILE                   # Reset counter before reboot&lt;br /&gt;
      logread &amp;gt; /etc/mesh0_failcount_lastwords_`date +&amp;quot;%Y-%m-%d_%H%M&amp;quot;`  # DEBUG info&lt;br /&gt;
      sync&lt;br /&gt;
      reboot&lt;br /&gt;
    fi &lt;br /&gt;
    echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
  fi&lt;br /&gt;
else&lt;br /&gt;
  echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Script wird dann noch ausführbar gemacht:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /root/check_mesh.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Via &amp;quot;crontab -e&amp;quot; führt dann folgender Eintrag zur Ausführung zu jeder vollen Minute:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* * * * * /root/check_mesh.sh &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wichtig ist, dass ein ausreichender Zeitraum zum Aufbau des Mesh-Netzes nach dem Reboot verbleibt. 10 Minuten (MAXFAILCOUNT) sollten hierzu ausreichen.&lt;br /&gt;
&lt;br /&gt;
Im /etc -Verzeichnis (das wurde gewählt, da Änderungen hier einen Neustart überleben) sind dann solche Reboot-Ereignisse ablesbar:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -al | grep failcount&lt;br /&gt;
-rw-r--r--    1 root     root             0 Oct 26 06:22 mesh0_failcount_2015-10_26_0622&lt;br /&gt;
-rw-r--r--    1 root     root             0 Oct 29 08:12 mesh0_failcount_2015-10-29_0812&lt;br /&gt;
-rw-r--r--    1 root     root             0 Oct 30 21:59 mesh0_failcount_2015-10-30_2159&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Vorfälle traten unregelmäßig alle paar Tage auf, wurden aber durch das Script abgefangen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Client-WLAN nachts automatisch ausstellen ==&lt;br /&gt;
&lt;br /&gt;
In Jugendherbergen oder Flüchtlingsheimen kann es durch rücksichts- oder gedankenloses Verhalten einzelner Gäste oder Bewohner zu akkustischen Beeinträchtigungen kommen, die durch temporäres Ausschalten des WLAN-Client-Netzes vermindert werden können. Damit kann natürlich nicht verhindert werden, dass einzelne Bewohner sich einen eigenen Freifunk-Router konfigurieren und ins Mesh-Netz hängen - das wäre ja sogar erwünscht. Folgendes Script ''restrict_client_access.sh'' ermöglicht das Abschalten in den frühen Morgenstunden (d.h. vor 0 Uhr abzuschalten ist hier nicht berücksichtigt). Es ist bisher für TP-Link TL-WR841-ND, sowie mit TL-WDR4300 und TL-WDR3600 mit der aktuellen Firmware v1.4 getestet. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash&lt;br /&gt;
&lt;br /&gt;
STOP_HOUR=0   # needs to be smaller than START_HOUR!!!&lt;br /&gt;
START_HOUR=7  # disable client0 network device if it's active &lt;br /&gt;
              # and hour is between STOP_HOUR and START_HOUR &lt;br /&gt;
&lt;br /&gt;
hour=`date +&amp;quot;%H&amp;quot;`&lt;br /&gt;
&lt;br /&gt;
ip addr list client0 &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
if [ $? -eq 0 ]; then                   # client network is on&lt;br /&gt;
  if [ $hour -lt ${START_HOUR} -a $hour -ge ${STOP_HOUR} ]; then        # turn it off&lt;br /&gt;
    uci set wireless.client_radio0.disabled=1&lt;br /&gt;
    uci set wireless.client_radio1.disabled=1                           # additional 5GHz wifi exists (e.g. WDR3600)&lt;br /&gt;
    uci commit wireless&lt;br /&gt;
    /etc/init.d/network restart&lt;br /&gt;
  fi&lt;br /&gt;
else                                    # client network is off&lt;br /&gt;
  if [ $hour -ge ${START_HOUR} -o $hour -lt ${STOP_HOUR} ]; then        # turn it on &lt;br /&gt;
    uci set wireless.client_radio0.disabled=0&lt;br /&gt;
    uci set wireless.client_radio1.disabled=0                           # additional 5GHz wifi exists (e.g WDR3600)&lt;br /&gt;
    uci commit wireless        &lt;br /&gt;
    /etc/init.d/network restart&lt;br /&gt;
  fi&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Script kann z.B. einfach im /root/ -Verzeichnis abgelegt werden. Via &amp;quot;crontab -e&amp;quot; führt dann folgender Eintrag zur Ausführung zu jeder vollen Minute:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* * * * * /root/restrict_client_access.sh &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Hinweis:''' Die uci- sowie das Restart-Kommando dürfen nicht ausserhalb der if-Bedingungen das Script ''vereinfachen'', da sie jeweils nur bei einmaligem Umstellen täglich ausgeführt werden dürfen. Sonst verliert man jede Minute das Netz...&lt;br /&gt;
&lt;br /&gt;
'''Wichtig ''': Der NTP-Dienst bei Mesh-Only-Routern muss ggf. erst (oder nochmal) nach der hergestellten Mesh-Verbindung durchgestartet werden, da NTP keine großen Zeitsprünge macht. Das kan z.B. durch folgenden Eintrag via Crontab automatisiert werden (hier: zur vollen Minute 8, die ggf. nach längerer Auszeit auch zunächst falsch sein kann):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
8 * * * * /etc/init.d/sysntpd restart &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Besser wäre hier ein Script, dass nach dem erfolgreichen Herstellen einer Mesh-Verbindung zum Uplink den ndtd einmal durchstartet, damit die Zeit initial synchronisiert wird.&lt;br /&gt;
&lt;br /&gt;
== Client-WLAN an Mesh-Only-Routern nur aktivieren, wenn Mesh-WLAN vorhanden ist ==&lt;br /&gt;
&lt;br /&gt;
Bei Routern, die selbst keinen Uplink haben und deshalb davon abhängig sind mit Nachbarn zu meshen, kann das Freifunk-Client-WLAN ausgestellt werden, wenn kein Mesh-Link (und damit auch kein entfernter Uplink) greifbar ist.&lt;br /&gt;
&lt;br /&gt;
Folgendes Script kann in ''/root/client-off-if-mesh-off.sh'' abgelegt (und via ''chmod +x /root/client-off-if-mesh-off.sh'' ausführbar gemacht) werden, das dann via cron regelmäßig aufgerufen wird:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash                                                                                          &lt;br /&gt;
&lt;br /&gt;
FAILCOUNTFILE=/var/run/mesh0_nogatewaycount&lt;br /&gt;
MAXFAILCOUNT=2&lt;br /&gt;
&lt;br /&gt;
# check mesh connections with different originators and nexthops, MAC is 17 chars long&lt;br /&gt;
batctl gwl | grep -q &amp;quot;No gateways in range&amp;quot;&lt;br /&gt;
no_gw=$?&lt;br /&gt;
&lt;br /&gt;
if [ -f $FAILCOUNTFILE ]; then          # Does the failcount file exist at all?&lt;br /&gt;
  read failcount &amp;lt; $FAILCOUNTFILE       # If it exist then there is a number in.&lt;br /&gt;
  if [ ${no_gw} -eq 1 ]; then           # There is a gateway&lt;br /&gt;
    if [ $failcount -gt 0 ]; then       # We'r lucky, it is fine again, we decrease the failcount&lt;br /&gt;
      failcount=$(($failcount-1))&lt;br /&gt;
      echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
      if [ $failcount -eq 0 ]; then&lt;br /&gt;
        # turn on client network &lt;br /&gt;
        uci set wireless.client_radio0.disabled=0&lt;br /&gt;
        uci commit wireless&lt;br /&gt;
        wifi&lt;br /&gt;
      fi&lt;br /&gt;
      exit&lt;br /&gt;
    fi&lt;br /&gt;
  else                                  # no nexthop different than originator exists &lt;br /&gt;
    failcount=$(($failcount+1))&lt;br /&gt;
    if [ $failcount -eq $MAXFAILCOUNT ]; then&lt;br /&gt;
      # logread &amp;gt; /etc/mesh0_failcount_no-mesh_`date +&amp;quot;%Y-%m-%d_%H%M&amp;quot;`  # DEBUG info&lt;br /&gt;
      # turn off client network &lt;br /&gt;
      uci set wireless.client_radio0.disabled=1&lt;br /&gt;
      uci commit wireless&lt;br /&gt;
      wifi&lt;br /&gt;
    fi&lt;br /&gt;
    if [ $failcount -le $MAXFAILCOUNT ]; then ## only memorize failcounts up to MAXFAILCOUNT &lt;br /&gt;
      echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
    fi&lt;br /&gt;
  fi&lt;br /&gt;
else&lt;br /&gt;
  echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Via &amp;quot;crontab -e&amp;quot; führt dann folgender Eintrag zur Ausführung zu jeder vollen Minute:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* * * * * /root/client-off-if-mesh-off.sh &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das obige Script ist dahingehend optimiert, dass nur bei Änderungen des Mesh-Status Daten auf den Flash-Speicher geschrieben werden. Für TP-Link WR 841ND wurde obiges Script getestet.&lt;br /&gt;
&lt;br /&gt;
== Freifunk-Monitor: Router-Status per E-Mail ==&lt;br /&gt;
&lt;br /&gt;
Ich zitiere mal von der Mailingliste - das ganze ist in der Testphase und ich werde den Wiki-Eintrag später noch entsprechend Überarbeiten.&lt;br /&gt;
&lt;br /&gt;
(Dieser Service ist momentan nicht aktiv, kommt aber bald wieder!)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Hallo, Liebe Mitstreiter!&lt;br /&gt;
&lt;br /&gt;
Wir alle arbeiten daran, unser Netz besser, schneller und stabiler zu machen.&lt;br /&gt;
&lt;br /&gt;
Axel und ich möchten unseren Teil beitragen.&lt;br /&gt;
&lt;br /&gt;
Deshalb entwickeln wir den Freifunk-Monitor – eine kleine Software, die Betreiber von Freifunk-Routern auf Wunsch per E-Mail benachrichtigt, wenn ein- oder mehrere seiner Knoten seitens der Karte nicht erreichbar scheinen.&lt;br /&gt;
&lt;br /&gt;
Dieser Service muss derzeit explizit auf einem Router mit mindestens Gluon 1.4 via SSH angeschaltet werden (es gibt derzeit keine Web-Oberfläche).&lt;br /&gt;
&lt;br /&gt;
Wir laden hiermit alle Router-Betreiber ein, den Monitor zu testen!&lt;br /&gt;
&lt;br /&gt;
Rechnet damit, schlimmstenfalls zu viele oder ungerechtfertigte E-Mails vom Monitor zu bekommen - wir testen die Software noch.&lt;br /&gt;
&lt;br /&gt;
Wie ihr das wieder abschaltet steht unten.&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
Kommando zum Monitoring einschalten (Achtung, was folgt ist EINE Zeile):&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;if uci:get_first('gluon-node-info', 'owner', 'send_alerts', '') ~= '' then return true end&amp;quot; &amp;gt; /lib/gluon/announce/nodeinfo.d/send_alerts ; uci set gluon-node-info.@owner[0].send_alerts=1 ; uci commit&lt;br /&gt;
&lt;br /&gt;
Kommando zum E-Mail-Adresse setzen (falls nicht schon geschehen):&lt;br /&gt;
&lt;br /&gt;
uci set gluon-node-info.@owner[0].contact=ff@cocoanuts.org; uci commit&lt;br /&gt;
&lt;br /&gt;
Kommando zum E-Mail-Adresse prüfen:&lt;br /&gt;
&lt;br /&gt;
uci get gluon-node-info.@owner[0].contact&lt;br /&gt;
&lt;br /&gt;
Kommando zum Monitoring abschalten:&lt;br /&gt;
&lt;br /&gt;
uci set gluon-node-info.@owner[0].send_alerts=0 ; uci commit&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
Frohes Freifunken,&lt;br /&gt;
&lt;br /&gt;
    KaterMikesch &amp;amp; G3ntleman&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Pimp_my_Node&amp;diff=4709</id>
		<title>Pimp my Node</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Pimp_my_Node&amp;diff=4709"/>
		<updated>2016-07-07T12:04:45Z</updated>

		<summary type="html">&lt;p&gt;Took: /* Freifunk-Monitor: Router-Status per E-Mail */ service unavail atm&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Mitmachen]]&lt;br /&gt;
&lt;br /&gt;
Hier finden sich interessante Optionen für etwas versiertere Nutzer. Diese Seite wurde größtenteils für die Classic Firmware geschrieben. Wer Gluon verwendet sollte unbedingt auch Gluon spezifische Resourcen, wie [http://gluon.readthedocs.org/ http://gluon.readthedocs.org], zu Rate ziehen. &lt;br /&gt;
&lt;br /&gt;
Die Möglichkeiten und Abweichungen von der Default-Konfiguration sind vielfältig. Diese sollten aber nur dann durchgeführt werden, wenn der Durchführende genau weiß was er da macht. Eine fehlerhaft Konfiguration kann zum Beispiel zu Störungen im Netzwerk führen, ferner könnten illegitime Maßnahmen implementiert werden. Beide zuvor genannten Beispiele würden zu einem Ausschluss aus unserem Netzwerk führen. Dennoch kann man gute Gründe haben die ein Abweichen von den Defaultwerten sinnvoll machen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Netztheorie/Technik und Entwicklung ==&lt;br /&gt;
Vertiefung&lt;br /&gt;
&lt;br /&gt;
*[[FSM-Dynamisches-Bridging]] &lt;br /&gt;
*[[Batman_adv]]&lt;br /&gt;
*[[Entwicklung]]&lt;br /&gt;
*[[Firmware|Firmware/Betriebssystem]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arbeiten auf der Shell ==&lt;br /&gt;
Vorraussetzung für folgende Befehle sind eine Verbindung mit dem KBU Freifunk Netz sowie ein Terminal / Shell. &lt;br /&gt;
Vergesst nicht eth0 gegen die Bezeichnung eures Netzwerkinterfaces, welches am Freifunk hängt zu tauschen. &lt;br /&gt;
Bei Macbooks via Wlan z.B. &amp;quot;en1&amp;quot; statt &amp;quot;eth0&amp;quot;! Die link local Adresse der jeweiligen node findet ihr auf der [http://register.kbu.freifunk.net KBU Register] Seite. Um Dateien auf dem Node ändern zu können, steht als einziger Editor ''vi'' bzw. ''vim'' zur Verfügung.&lt;br /&gt;
 &lt;br /&gt;
Zusätzlich zu den auf dieser Seite erläuterten Modifikationen gibt es im [https://github.com/freifunk-gluon/gluon/wiki/Commandline-administration Github-Wiki der Freifunk-Gluon-Firmware eine ausführliche Liste nützlicher Befehle ].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Firmware aktualisieren ===&lt;br /&gt;
==== Node mit uplink ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@&amp;lt;link local Adresse des Nodes&amp;gt;%eth0              // SSH Verbindung zum Node aufbauen, eth0 ist das lokale Interface, ggf. durch wlan0 etc. ersetzen&lt;br /&gt;
cd ../tmp/                                              // in das Verzeichnis &amp;quot;tmp&amp;quot; wechseln&lt;br /&gt;
free                                                    // Freien Speicher prüfen&lt;br /&gt;
wget http://pfad/zur/firmware.bin                       // Firmware herunterladen und dann&lt;br /&gt;
sysupgrade -v firmware.bin                              // Firmware-Upgrade durchführen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Achtung''': Beim Download der Firmware via wget kann auf dem Router die Integrität der Firmware nicht geprüft werden, da gpg i.d.R. auf den Routern nicht verfügbar ist. Deshalb ist es sicherer, den oben beschriebenen Weg zu wählen, oder die geprüfte Firmware per scp (s.u.) auf den Router zu kopieren. &lt;br /&gt;
&lt;br /&gt;
==== Node ohne uplink (mesh node) ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp -6 -v -r firmware.bin root@\[&amp;lt;link local Adresse des Nodes&amp;gt;%eth0\]:../tmp/          // Firmware auf den node schieben (md5 checken!)&lt;br /&gt;
ssh root@&amp;lt;link local Adresse des Nodes&amp;gt;%eth0 &lt;br /&gt;
cd ../tmp/  &lt;br /&gt;
sysupgrade -v firmware.bin  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Upgrade von inkompatibler Konfiguration (Lagacy auf Gluon, wechsel der hood, etc.) ====&lt;br /&gt;
Bei einem upgrade von einer inkompatiblen Version mittels &amp;lt;code&amp;gt;sysupgrade&amp;lt;/code&amp;gt; muss man normalerweise mittels&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysupgrade -n firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
die aktuellen Settings überschreiben lassen. Auf einem Node den man nur per ssh erreicht ist das unpraktisch, da auch Passwörter und ssh keys gelöscht werden. Zum Glück hat &amp;lt;code&amp;gt;sysupgrade&amp;lt;/code&amp;gt; einen interaktiven Modus, den man per&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysupgrade -i firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
startet. Hier kann man (nachdem man bestätigt hat, das ein Teil der Konfiguration übernommen werden soll) die Liste an zu sichernden Dingen bearbeiten. Die gluon-node-info (geo-Koordinaten und Kontaktadresse) so wie vor allem die drobbear/*keys sollte man behalten, evtl auch system mit dem host name des Nodes, der Rest kann gelöscht werden, falls man da keine wichtigen Anpassungen vorgenommen hat. ('dd' löscht Zeilen in vi ;)&lt;br /&gt;
&lt;br /&gt;
Je nach Route zum Router kann es sein, dass die ssh Verbindung abbricht während des interactiven upgrades. Genauer passiert das, wenn man nur durch einen VPN Tunnel Verbindung hat. (Nicht fleißig am Backbone mitgearbeitet? ;) Das ist blöd, weil man am Ende noch den Neustart bestätigen muss (etwas unsinniger weise). In diesem Fall sollte man besser eine config datei mit z.B. folgenden Zeilen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/etc/dropbear/authorized_keys&lt;br /&gt;
/etc/dropbear/dropbear_dss_host_key&lt;br /&gt;
/etc/dropbear/dropbear_rsa_host_key&lt;br /&gt;
/etc/config/gluon-node-info&lt;br /&gt;
/etc/config/system&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
erstellen und per &amp;lt;code&amp;gt;tar -cz config  &amp;amp;gt; config.tar.gz&amp;lt;/code&amp;gt; packen. Danach kann man mittels&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysupgrade -f config.tar.gz firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
das ganze unattended laufen lassen.&lt;br /&gt;
&lt;br /&gt;
==== Node ''zu Fuß'' updaten ====&lt;br /&gt;
Wenn man physikalischen Zugriff auf den Freifunk-Router hat, kann man auch einfach in den [[Config_Mode]] wechseln und dort über das entsprechende Menü eine neue Freifunk-Firmware hochladen. Hierbei kann man wählen, ob man die ggf. geänderte Konfiguration beibehalten möchte (upgrade-Image) oder alles von Grund auf neu installiert/konfiguriert. Ggf. muss man zuvor noch ein Root-Passwort setzen, damit das Update möglich wird.&lt;br /&gt;
&lt;br /&gt;
==== via TFTP  ====&lt;br /&gt;
Wenn mal ein Router nicht mehr bootet, aber der Bootloader noch funktioniert, (oder man einfach keinen Bock auf das Stock Webinterface hat) kann man häufig noch per tftp recht komfortabel eine neue Firmware einspielen. [http://wiki.openwrt.org/doc/howto/generic.flashing.tftp] ;)&lt;br /&gt;
&lt;br /&gt;
* tftp server auf dem lokalen Rechner installieren (Kurzfassung von z.B. [http://www.cyberciti.biz/faq/install-configure-tftp-server-ubuntu-debian-howto/])&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install tftpd-hpa&lt;br /&gt;
sudo chown -R tftp /srv/tftp/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Config anpassen &amp;amp; neustarten. Das &amp;quot;-c create file&amp;quot; braucht man um vom router Dateien zu senden (config sichern), &amp;quot;-s&amp;quot; da sonst absolute Pfade angegeben werden müssten (macht der Router natürlich nicht). Mehr zu den Optionen findet man auf der [http://linux.die.net/man/8/tftpd man page].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vim /etc/default/tftpd-hpa&lt;br /&gt;
&lt;br /&gt;
TFTP_USERNAME=&amp;quot;tftp&amp;quot;&lt;br /&gt;
TFTP_DIRECTORY=&amp;quot;/srv/tftp&amp;quot;&lt;br /&gt;
TFTP_ADDRESS=&amp;quot;0.0.0.0:69&amp;quot;&lt;br /&gt;
TFTP_OPTIONS=&amp;quot;-s -c&amp;quot;&lt;br /&gt;
&lt;br /&gt;
service tftpd-hpa restart &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Dann muss man noch herausfinden auf welcher IP der Router nach welchem Dateinamen Fragt. Eine gute Quelle ist openWRT, z.B. für den beliebten tl-wr841n wäre finden sich die Infos je nach Version [http://wiki.openwrt.org/toh/tp-link/tl-wr841nd#tftp_recovery_via_bootloader_for_v8_v9_v10_v11 hier].&lt;br /&gt;
&lt;br /&gt;
Falls noch Fragen offen bleiben, [https://www.freifunk-bingen.de/forum/hilfe-unterst%C3%BCtzung/flashen-eines-gebrickten-tp-link-routers-tftp die $Anderen wissen auch was]. ;)&lt;br /&gt;
&lt;br /&gt;
=== Hostnamen des Nodes ändern ===&lt;br /&gt;
Standardmäßig ist der Hostname des Nodes gleich der MAC-Adresse des Routers. Möchte man den Hostnamen ändern, so kann man dies per ssh&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set system.@system[0].hostname=what-ever-dude&lt;br /&gt;
uci commit&lt;br /&gt;
reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Änderung wird erst nach dem Kommando ''reboot'' (danach startet der Node neu) wirksam.&lt;br /&gt;
&lt;br /&gt;
=== IPv6 ping ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ping6 &amp;lt;link local Adresse des Nodes&amp;gt;%eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== IPv6 ssh ===&lt;br /&gt;
Hinter der link local Adresse &amp;quot;%&amp;quot; + &amp;quot;Netzwerk Interface an eurer Kiste&amp;quot; (Hier im Beispiel eth0)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@&amp;lt;link local Adresse des Nodes&amp;gt;%eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Paßwort-Authentifizierung abstellen ===&lt;br /&gt;
'''Wichtig:''' Als erstes prüfen, ob man sich mit seinem Schlüsselpaar auf den Router einloggen kann. Man sollte jetzt nicht mehr nach dem Paßwort gefragt werden (allerhöchstens nach dem Paßwort, welches den privaten Schlüssel schützt).&lt;br /&gt;
Falls das erfolgreich funktioniert, kann man die Datei ''/etc/config/dropbear'' wie folgt ändern:&lt;br /&gt;
&amp;lt;pre&amp;gt;config dropbear&lt;br /&gt;
        option PasswordAuth 'off'&lt;br /&gt;
        option RootPasswordAuth 'off'&lt;br /&gt;
        option Port         '22'&lt;br /&gt;
#       option BannerFile   '/etc/banner'&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nach einem Neustart des Routers mittels ''reboot'' sollte es jetzt nur noch möglich sein, sich mit seinem Schlüsselpaar auf den Rotuer einzuloggen.&lt;br /&gt;
&lt;br /&gt;
=== SSH public key auf Node aufspielen ===&lt;br /&gt;
Möchte man sich nicht immer per Paßwort auf den eigenen Node verbinden, so kann man das auch mit einem Schlüsselpaar realisieren. Falls man danach noch die Authentifizierung per Paßwort abschaltet (s. nächster Punkt), dann hat man einen sicheren Zugriff auf seinen Node realisiert.&lt;br /&gt;
Voraussetzung ist natürlich, dass man schon ein gültiges Schlüsselpaar besitzt. Falls dem so ist, so genügt es, den öffentlichen Schlüssel (public key) auf den Node zu übertragen. Das kann mit Hilfe von scp (secure copy) passieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp -6 id_rsa4096.pub root@[&amp;lt;link local Adresse des Nodes&amp;gt;%eth0]:/etc/dropbear/authorized_keys&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hierbei steht id_rsa.pub für die Datei, die den public key enthält. '''ACHTUNG:''' Obiger Befehl ersetzt die eventuell schon vorhandene Datei authorized_keys auf dem Node. Das ist ok für den ersten Key. Sollen mehrere Keys eingetragen werden (z. B. weil man außer vom Laptop auch vom Tablet auf seinen Node verbinden möchte), kann man das so machen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat ~/.ssh/id_rsa4096.pub | ssh root@[&amp;lt;link local Adresse des Nodes&amp;gt;%eth0] 'umask 077; cat &amp;gt;&amp;gt;.ssh/authorized_keys'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollte beim Kopierversuch die Meldung&lt;br /&gt;
&amp;lt;pre&amp;gt;ssh: Could not resolve hostname fe80:&amp;lt;/pre&amp;gt;&lt;br /&gt;
erscheinen, hat man höchstwahrscheinlich die eckigen Klammern um die IP-Adresse inklusive Interface vergessen. Dann wird der erste Doppelpunkt schon als Ende des Hostnamens interpretiert! Auch hier werden die Änderungen nach einem Neustart des Routers mittels ''reboot'' übernommen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Node überträgt keine Statistiken ===&lt;br /&gt;
Auf der [https://kbu.freifunk.net/cserv Cserv Seite] könnt ihr prüfen, ob eurer Node bereits Statistiken übermittelt.&lt;br /&gt;
==== ntp-Bug in Firmware 1.2.1b beseitigen ====&lt;br /&gt;
Falls sich ein Node-Betreiber wundert, warum sein Node keine Statistiken liefert und es ein Mesh-Only-Node ist (d. h. ohne eigenen Uplink zum Internet), so liegt das an einem Bug in der Firmware. Diesen kann man jedoch mit einfachen Mitteln beheben:&lt;br /&gt;
Editiert wird die Datei ''/etc/config/system''. Dort findet man einen Eintrag ''config timeserver 'ntp'''. Defaultmäßig stehen hier 4 Zeitserver von openwrt (in der Form x.openwrt.pool.ntp.org). Diese müssen bei Mesh-Only-Nodes in IPv6-Adressen geändert werden, und zwar, dass der komplette Konfigurationspunkt wie folgt aussieht:&lt;br /&gt;
&amp;lt;pre&amp;gt;config timeserver 'ntp'&lt;br /&gt;
        list server '2a03:4000:2:494::2'&lt;br /&gt;
        list server '2a01:4f8:161:2461:e4::1'&lt;br /&gt;
        list server '2a02:180:1:1::551f:bb4b'&lt;br /&gt;
        option enabled '1'&lt;br /&gt;
        option enable_server '0'&amp;lt;/pre&amp;gt;&lt;br /&gt;
Auch hier werden die Änderungen erst nach einem Neustart des Nodes mittels ''reboot'' wirksam.&lt;br /&gt;
Dieser Bug soll mit dem nächsten Firmware-Release behoben sein. Man kann die Eintragungen auch in den Nodes mit Internet-Uplink ändern ohne die Funktion zu beeinträchtigen.&lt;br /&gt;
&lt;br /&gt;
==== Collectd prüfen ====&lt;br /&gt;
Falls es durch das beheben des ntp-Bug noch immer nicht zum übertragen der Statistiken kommt, überprüft mal die Einstellungen eures Collectd. Es kann sein das beim Firmware Update diese Config nicht geupdatet wurde und eine veraltet IPV6 Adresse noch vorhanden ist, so sollte es sein:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vim /etc/collectd.conf                             // Config Datei für Collectd zum bearbeiten öffnen&lt;br /&gt;
&lt;br /&gt;
Zeile 39-44:    &lt;br /&gt;
&amp;lt;Plugin ping&amp;gt;                     &lt;br /&gt;
        TTL 127                   &lt;br /&gt;
        Interval 30                         &lt;br /&gt;
        Host &amp;quot;fdd3:5d16:b5dd:3::6&amp;quot;                 // Diesen Eintrag auf Übereinstimmmung prüfen      &lt;br /&gt;
&amp;lt;/Plugin&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Zeile 46-50:&lt;br /&gt;
&amp;lt;Plugin network&amp;gt;                                        &lt;br /&gt;
        Server &amp;quot;fdd3:5d16:b5dd:3::6&amp;quot; &amp;quot;25827&amp;quot;       // Diesen Eintrag auf Übereinstimmmung prüfen                 &lt;br /&gt;
        Forward false                                   &lt;br /&gt;
&amp;lt;/Plugin&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LAN Kopplung ===&lt;br /&gt;
Eine LAN Kopplung kann in manchen Fällen sinnvoll sein, besonders wenn man einen VLAN fähigen Switch und eine bestehende Ntzwerkverkabelung hat. Hier werden die Switchports angwiesen auch über LAN zu meshen.&lt;br /&gt;
&lt;br /&gt;
==== TL-WR841ND ====&lt;br /&gt;
03/2014: Hier wird über die alle 4 LAN Ports gemeshed, Mesh über WLAN kann man optional noch ausschalten! Folgende Config stammt von rampone/FF-KBU und wurde an 2 TL-WR841N v.8 getestet mit KBU-FF-Firmware 1.1.&lt;br /&gt;
&lt;br /&gt;
05/2015: Verifiziert (und ergänzt) für TL-WR841N v.9 und KBU-FF-Firmware 1.2.2rc3 .&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/network'' - Folgende Änderungen wurden an der FF-Firmware vorgenommen:&lt;br /&gt;
#config interface 'freifunk' -&amp;gt; Hier haben wir das ethX-Interface aus &amp;quot;ifname&amp;quot; rausgenommen, damit kein ff aus dem ethX (switch) rauskommt (X=1 für Hardware bis einschließlich v8, sonst X=0).&lt;br /&gt;
#config interface 'mesh_lan' -&amp;gt; kompl. codeblock hinzugefügt, dieser bewirkt das über ethX (switch) gemeshed wird. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config interface 'loopback'&lt;br /&gt;
	option ifname 'lo'&lt;br /&gt;
	option proto 'static'&lt;br /&gt;
	option ipaddr '127.0.0.1'&lt;br /&gt;
	option netmask '255.0.0.0'&lt;br /&gt;
&lt;br /&gt;
config interface 'wan'&lt;br /&gt;
	option ifname 'eth0'&lt;br /&gt;
	option proto 'dhcp'&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option accept_ra '0'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
&lt;br /&gt;
config switch&lt;br /&gt;
	option name 'switch0'&lt;br /&gt;
	option reset '1'&lt;br /&gt;
	option enable_vlan '1'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'switch0'&lt;br /&gt;
	option vlan '1'&lt;br /&gt;
	option ports '0 1 2 3 4'&lt;br /&gt;
&lt;br /&gt;
config interface 'freifunk'&lt;br /&gt;
	option ifname 'bat0'		#LAN-Kopplung: ifname eth1 (bzw. eth0, s.o.) entfernt&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option proto 'none'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option accept_ra '1'&lt;br /&gt;
	option macaddr '10:fe:ed:f1:53:84'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mtu '1528'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_vpn'&lt;br /&gt;
	option ifname 'mesh-vpn'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
	option macaddr '12:fe:ed:f2:53:84'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_lan'		#LAN-Kopplung: Codeblock mesh-lan hinzugefuegt&lt;br /&gt;
	option ifname 'eth0'            # ab TL-841N(D) v9: eth0, bis v8: eth1 . Bei falschem Interface läuft das mesh-lan über den blauen Port. Wer's mag...&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/wireless'' - Hier wird der Codeblock, der für das Mesh über WLAN verantwortlich ist auskommentiert (optional)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#config wifi-iface 'wifi_mesh'&lt;br /&gt;
#       option device 'radio0'&lt;br /&gt;
#       option network 'mesh'&lt;br /&gt;
#       option mode 'adhoc'&lt;br /&gt;
#       option ssid '02:d1:11:37:fc:39'&lt;br /&gt;
#       option bssid '02:d1:11:37:fc:39&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TL-WDR4300 ====&lt;br /&gt;
Das gleiche nochmal für den 4300er&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/network''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config interface 'loopback'&lt;br /&gt;
	option ifname 'lo'&lt;br /&gt;
	option proto 'static'&lt;br /&gt;
	option ipaddr '127.0.0.1'&lt;br /&gt;
	option netmask '255.0.0.0'&lt;br /&gt;
&lt;br /&gt;
config interface 'wan'&lt;br /&gt;
	option ifname 'eth0.2'&lt;br /&gt;
	option proto 'dhcp'&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option accept_ra '0'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option macaddr 'a2:f3:c1:65:81:cd'&lt;br /&gt;
&lt;br /&gt;
config switch&lt;br /&gt;
	option name 'eth0'&lt;br /&gt;
	option reset '1'&lt;br /&gt;
	option enable_vlan '1'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'eth0'&lt;br /&gt;
	option vlan '1'&lt;br /&gt;
	option ports '0t 2 3 4 5'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'eth0'&lt;br /&gt;
	option vlan '2'&lt;br /&gt;
	option ports '0t 1'&lt;br /&gt;
&lt;br /&gt;
config interface 'freifunk'&lt;br /&gt;
	option ifname 'bat0'		#LAN-Kopplung: ifname eth0.1 entfernt&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option proto 'none'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option accept_ra '1'&lt;br /&gt;
	option macaddr 'a0:f3:c1:64:81:cc'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mtu '1528'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_vpn'&lt;br /&gt;
	option ifname 'mesh-vpn'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
	option macaddr 'a2:f3:c1:65:81:cc'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_lan'		#LAN-Kopplung: Codeblock mesh-lan hinzugefuegt&lt;br /&gt;
        option ifname 'eth0.1'&lt;br /&gt;
        option proto 'batadv'&lt;br /&gt;
        option mesh 'bat0'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einsperren des Freifunk-Routers in eine DMZ ==&lt;br /&gt;
&lt;br /&gt;
Wer seinen Freifunk-Router einsperren und/oder die Bandbreite begrenzen möchte, kann dies am einfachsten tun, indem er ihn an seiner Firewall an einen eigenen Netzwerkport klemmt und diesen dann als DMZ konfiguriert. Ein KBU-Freifunk-Router muß zur Zeit im LAN DHCP, DNS, im Internet NTP sowie mit den [[fastd]]-Knoten reden können. Folgendes Bespiel für eine iptables-Firewall nimmt an, dass der Freifunk-Router über eth2 angeschlossen ist:&lt;br /&gt;
&lt;br /&gt;
 # eth2 darf nur dns, ntp, dhcp und ansonsten mit den fastdX reden&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p udp --dport 67:68 --sport 67:68 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p udp --dport 67:68 --sport 67:68 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p udp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p tcp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p udp --dport 123                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p udp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p tcp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p udp --dport 123                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 176.9.41.253                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 176.9.41.253                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 178.63.59.41                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 178.63.59.41                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 37.120.169.214               -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 37.120.169.214               -j ACCEPT &lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 37.221.195.47                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 37.221.195.47                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 78.46.68.75                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 78.46.68.75                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 84.201.35.206                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 84.201.35.206                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT                                      -j DROP&lt;br /&gt;
 iptables -i eth2 -A FORWARD                                    -j DROP&lt;br /&gt;
 # eth2 darf maximal 2000 kbit/s ein- und ausgehenden traffic machen&lt;br /&gt;
 wondershaper eth2 2000 2000&lt;br /&gt;
&lt;br /&gt;
Prinzipiell könnte man den Traffic noch weiter einschränken. DHCP und DNS müssen nur zum DHCP- bzw. DNS-Server funktionieren und der Traffic zu den fastd-Servern ließe sich auf TCP Port 80 und UDP Port 10000 begrenzen.&lt;br /&gt;
&lt;br /&gt;
===Alternative: Einsperren im VLAN===&lt;br /&gt;
siehe: [[FF-Router einsperren im VLAN]]&lt;br /&gt;
&lt;br /&gt;
== Weboberfläche aktivieren ==&lt;br /&gt;
&lt;br /&gt;
Im Normalbetrieb ist erst mal kein Zugriff notwendig (und auch erst mal nicht vorgesehen). Das läuft einfach! ;-) Und es gibt im Normalbetrieb eben auch kein Webinterface, welches Sicherheitslücken haben könnte.&lt;br /&gt;
&lt;br /&gt;
Zum ersten Konfigurieren schaltet mal den Router in einen Konfig-Modus. Der Router nimmt dann in diesem Modus nicht mehr am Freifunknetzwerk teil. Nun kann man dann Rechner an die LAN Ports des Freifunkrouters anschließen und über ein Webinterface per Browser den Router konfigurieren oder Updaten. Das sollte aber nur ganz selten notwendig sein. Nach einem Reboot des Routers geht das Gerät dann wieder in den Freifunk-Modus mit deinen Konfigurationsänderungen.&lt;br /&gt;
&lt;br /&gt;
Wenn man Spaß am Basteln hat kann man das Webinterface aber auch im Normalbetrieb aktivieren. Für die Absicherung muss man dann aber selber sorgen denn per Default ist das nicht abgesichert. Hier die Anleitung nach [http://wiki.freifunk.in-kiel.de/wiki/Firmware Freifunk Kiel], um auf die Weboberfläche zu gelangen:&lt;br /&gt;
&lt;br /&gt;
Das Webinterface des Routers ist nicht über die Link-Local-Adresse, sondern nur über die generelle IPv6 Adresse des Routers zu erreichen. Die IPv6-Adresse bekommt man über SSH (s. [[Pimp_my_Node#IPv6_ssh|IPv6 ssh]] auf den Router:&lt;br /&gt;
  ssh root@LinkLocalIPv6adresse_des_routers%Interface&lt;br /&gt;
Die generelle IPv6-Adresse erfährt man durch Eingabe von&lt;br /&gt;
  ifconfig | grep Global&lt;br /&gt;
Die IPv6-Adresse (&amp;quot;inet6 adr&amp;quot;) kann man nun im Browser in eckigen Klammern und vorangestelltem &amp;quot;http://&amp;quot; aufrufen (zum Beispiel: http://[2001:67c:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx]/) und gelangt so zum Webinterface LuCI.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
 uci delete uhttpd.main.listen_http&lt;br /&gt;
 uci delete uhttpd.main.listen_https&lt;br /&gt;
 &lt;br /&gt;
 uci add_list uhttpd.main.listen_http='[::]:80'&lt;br /&gt;
 uci add_list uhttpd.main.listen_http='0.0.0.0:80'&lt;br /&gt;
 uci add_list uhttpd.main.listen_https='[::]:80'&lt;br /&gt;
 uci add_list uhttpd.main.listen_https='0.0.0.0:80'&lt;br /&gt;
 &lt;br /&gt;
 uci commit uhttpd&lt;br /&gt;
 &lt;br /&gt;
 /etc/init.d/uhttpd enable&lt;br /&gt;
&lt;br /&gt;
== Uplink mit Android-Tethering/USB Netzwerkkarte ==&lt;br /&gt;
(ssh Zugang Erfahrung nötig)&lt;br /&gt;
&lt;br /&gt;
Das ganze sei von Anfang an als &amp;quot;sportlich&amp;quot; zu betrachten. Leider sind mobile 3g/LTE Tarife fast ausnahmslos nach einem bestimmten Volumen gedrosselt (üblicherweise auf 64 bis 56 kbit/s (neuere NetzclubSim sogar auf 32 kbit/s), Ausnahme bilden hier nur LTE Zuhause &amp;quot;DSL&amp;quot; Ersatz Tarife -&amp;gt; 386kbit/s).&lt;br /&gt;
Da Freifunk auch bei Nichtbenutzung Daten überträgt, ist nur bei LTE Zuhause Tarifen interessant dies als Dauerlösung zu nutzen. Dort ist aber wiederum meist ein LTE-Router vor Ort und man den Router auch &amp;quot;traditionell&amp;quot; via LAN Kabel anbinden.&lt;br /&gt;
Bei Benutzung als uplink bei Strassenfesten/Festivals etc. ist wahrscheinlich, dass erstens das Datenvolumen schnell aufgebraucht sein wird und zweitens ab einer bestimmten Größe auch das 3g Netz vor Ort überlastet ist. Wenn man es dennoch machen will (mehrere Sim Karten/spezieller hochvolumiger Tarif/Netzbetreiber gesponserter Uplink (träum)), sollte man die Benutzung von LTE erwägen. Auch dort könnten aber durch zukünftige Adapation Überlasterscheinungen auftreten. Desweitern nutzen 2g/3g/4g auch dasselbe Backbone, welcher dann auch für LTE ein Flaschenhals darstellt.&lt;br /&gt;
Muss nochmal nachprüfen, aber wenn, dann nicht uninteressant: Der Wlan Zugang des Telefons (CM7) wurde per tethering weitergeleitet und bei Abschalten gab es fallback auf 3g -&amp;gt; nicht schöne, aber einfache &amp;quot;Immer&amp;quot;netzlösung?  Mein Tablet zeigt nicht dieses Verhalten.)&lt;br /&gt;
&lt;br /&gt;
Blablabla, jetzt geht es los:&lt;br /&gt;
Das ganze habe ich mit einem 1043ND und einem droid 2.3CM7 Telefon und einem droid 2.2 Tablet ausprobiert, sollte aber auf jeglichen OpenWrt Router mit USB, Android USB tethering fähigem Gerät und einfachen USB ethernet Adaptern (nachprüfen!!!) funktionieren:&lt;br /&gt;
&lt;br /&gt;
- Per ssh in den router einloggen&lt;br /&gt;
- Installieren der notwendigen Treiber&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
opkg update&lt;br /&gt;
opkg install kmod-usb-uhci kmod-usb-net-rndis&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies sollte, falls ihr noch keine USB Unterstützung in der Firmware hat auch diese über dependencies nachinstallieren. (nachprüfen!!!)&lt;br /&gt;
&lt;br /&gt;
- Ihr müsst den Netzwerkzugang für da neue Interface &amp;quot;usb0&amp;quot; noch konfigurieren. Unter /etc/config/network fügt ihr z.B. folgendes hinzu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config interface 'wan2'&lt;br /&gt;
       option ifname 'usb0'&lt;br /&gt;
       option proto 'dhcp'&lt;br /&gt;
       option type 'bridge'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch unter Luci sollte dies konfigurierbar sein. &lt;br /&gt;
&lt;br /&gt;
- Nach einem Neustart und einem angeschlossenen Gerät sollte nun der Uplink via dem USB Netzwerk Gerät/Android tethering funktionieren.&lt;br /&gt;
- Sollte das Gerät erst später angeschlossen werden, so könnt ihr mit folgendem Befehl das Netzwerkgerät starten.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifup wan2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(Dies ist noch nicht ein perfektes Tutorial, werde es nochmal durchprobieren. Einen UMTS Stick hatte ich auf Anhieb noch nicht zum laufen gebracht. Auch scheint Multiwan in OpenWRT eine interessante Sache)&lt;br /&gt;
&lt;br /&gt;
== Zusätzlich zum Freifunk auch privates WLAN einrichten ==&lt;br /&gt;
&lt;br /&gt;
Es ist möglich ein privates WLAN anzulegen, das mit dem WAN Port gebridged und separat zum Mesh Netzwerk ist. (Bitte beachten, dass Mesh on Wan nicht zeitgleich mit aktiviert werden sollte.) &lt;br /&gt;
Effekt: Das private WLAN wird erweitert, zeitgleich fungiert der Router als Freifunk-Router. Die Netze sind voneinander abgekoppelt.&lt;br /&gt;
Das private WLAN kann per SSH in der Konsole aktiviert werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set wireless.wan_radio0=wifi-iface&lt;br /&gt;
uci set wireless.wan_radio0.device=radio0&lt;br /&gt;
uci set wireless.wan_radio0.network=wan&lt;br /&gt;
uci set wireless.wan_radio0.mode=ap&lt;br /&gt;
uci set wireless.wan_radio0.encryption=psk2&lt;br /&gt;
uci set wireless.wan_radio0.ssid=&amp;quot;$SSID&amp;quot;&lt;br /&gt;
uci set wireless.wan_radio0.key=&amp;quot;$KEY&amp;quot;&lt;br /&gt;
uci set wireless.wan_radio0.disabled=0&lt;br /&gt;
uci commit&lt;br /&gt;
wifi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Bitte ersetze $SSID mit dem Namen deines Heimnetzwerks und $KEY mit deinem bisher üblichen Key (der vom privaten Router). Falls dein Router beide Frequenzbänder unterstützt(2.4 und 5 Ghz) und du in beiden auch privates WLAN aktivieren möchtest, muss dies für radio0 und radio1 mit übernommen werden.&lt;br /&gt;
Zum deaktivieren des Ganzen wie folgt vorgehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set wireless.wan_radio0.disabled=1&lt;br /&gt;
uci commit&lt;br /&gt;
wifi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Automatischer Neustart bei längerem Mesh-Verlust, quick hack (and improved hack) zur Analyse ==&lt;br /&gt;
&lt;br /&gt;
Bei der Vernetzung von Notunterkünften mit Gluon-Beta (via Euskirchen) ist bei einem CPE210-Uplink aufgefallen, dass sämtliche Mesh-Verbindungen über Stunden ausgefallen waren. Es war zunächst unklar, ob überwiegend die Stromversorgung ursächlich ist, insbesondere da der Uplink-Router mehrfach betroffen und trotzdem via VPN erreichbar war. Dabei war dann nur ein Mesh mit sich selbst via &amp;quot;batctl o&amp;quot; sichtbar. Einzelne Mesh-Only-Router zeigten ebenfalls (selten) Ausfälle über mehrere Stunden: teilweise Nachts, wo Renovierungsarbeiten nicht die Ursache sein konnten.&lt;br /&gt;
&lt;br /&gt;
Um längere Ausfälle zu vermeiden wurde folgendes Script unter /root/check_mesh.sh abgelegt, das via cron-Job automatisch jede Minute ausgeführt wird und nach 10 Minuten ohne Mesh-Verbindung einen Reboot auslöst:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash&lt;br /&gt;
&lt;br /&gt;
FAILCOUNTFILE=/var/run/mesh0_failcount&lt;br /&gt;
MAXFAILCOUNT=10&lt;br /&gt;
&lt;br /&gt;
# check mesh connections with different originators and nexthops, MAC is 17 chars long&lt;br /&gt;
count=`batctl o | awk '/mesh0/{originator=substr($0,1,17); nexthop=substr($0,37,17); if (originator != nexthop){print originator&amp;quot; &amp;quot;nexthop}}' | wc -l`&lt;br /&gt;
&lt;br /&gt;
if [ $count -gt 1 ]; then  ## more than a single mesh with itself is left&lt;br /&gt;
  echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
else&lt;br /&gt;
  if [ -f $FAILCOUNTFILE ]; then  &lt;br /&gt;
    read failcount &amp;lt; $FAILCOUNTFILE&lt;br /&gt;
    failcount=$(($failcount+1))&lt;br /&gt;
    if [ $failcount -ge $MAXFAILCOUNT ]; then&lt;br /&gt;
      touch /etc/mesh0_failcount_`date +&amp;quot;%Y-%m-%d_%H%M&amp;quot;`&lt;br /&gt;
      sync&lt;br /&gt;
      reboot&lt;br /&gt;
    fi &lt;br /&gt;
    echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
  else&lt;br /&gt;
    echo 1 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
  fi&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es muss (hier mit awk, s.o.) nach _unterschiedlichen_ Werten für Originator und NextHop ausschau gehalten werden, denn bei einem fehlenden Mesh zwischen zwei Knoten meshen die Knoten noch mit sich selbst:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# batctl o | grep mesh0&lt;br /&gt;
62:e6:28:24:5f:52    0.730s   (  6) 62:e6:28:24:5f:52 [     mesh0]: 62:e6:28:24:5f:52 (  6)&lt;br /&gt;
62:e6:28:72:32:48    0.730s   (  8) 62:e6:28:72:32:48 [     mesh0]: 62:e6:28:72:32:48 (  8)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das war lesbar und einfach, aber wegen ständiger Schreibzugriffe schlecht für die Lebensdauer der Flash-Speicher. Besser also nur schreiben wenn Fehler passieren, etwa so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash&lt;br /&gt;
&lt;br /&gt;
FAILCOUNTFILE=/var/run/mesh0_failcount&lt;br /&gt;
MAXFAILCOUNT=10&lt;br /&gt;
&lt;br /&gt;
# check mesh connections with different originators and nexthops, MAC is 17 chars long&lt;br /&gt;
count=`batctl o | awk '/mesh0/{originator=substr($0,1,17); nexthop=substr($0,37,17); if (originator != nexthop){print originator&amp;quot; &amp;quot;nexthop}}' | wc -l`&lt;br /&gt;
&lt;br /&gt;
if [ -f $FAILCOUNTFILE ]; then          # Does the failcount file exist at all?&lt;br /&gt;
  read failcount &amp;lt; $FAILCOUNTFILE       # If it exist then there is a number in.&lt;br /&gt;
  if [ $count -gt 0 ]; then             # At least one originator with different nexthop exists&lt;br /&gt;
    if [ $failcount -gt 0 ]; then       # We'r lucky, everything is fine again!&lt;br /&gt;
      echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
      exit&lt;br /&gt;
    fi&lt;br /&gt;
  else                                  # no nexthop different than originator exists &lt;br /&gt;
    failcount=$(($failcount+1))&lt;br /&gt;
    if [ $failcount -ge $MAXFAILCOUNT ]; then&lt;br /&gt;
      echo 0 &amp;gt; $FAILCOUNTFILE                   # Reset counter before reboot&lt;br /&gt;
      logread &amp;gt; /etc/mesh0_failcount_lastwords_`date +&amp;quot;%Y-%m-%d_%H%M&amp;quot;`  # DEBUG info&lt;br /&gt;
      sync&lt;br /&gt;
      reboot&lt;br /&gt;
    fi &lt;br /&gt;
    echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
  fi&lt;br /&gt;
else&lt;br /&gt;
  echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Script wird dann noch ausführbar gemacht:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /root/check_mesh.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Via &amp;quot;crontab -e&amp;quot; führt dann folgender Eintrag zur Ausführung zu jeder vollen Minute:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* * * * * /root/check_mesh.sh &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wichtig ist, dass ein ausreichender Zeitraum zum Aufbau des Mesh-Netzes nach dem Reboot verbleibt. 10 Minuten (MAXFAILCOUNT) sollten hierzu ausreichen.&lt;br /&gt;
&lt;br /&gt;
Im /etc -Verzeichnis (das wurde gewählt, da Änderungen hier einen Neustart überleben) sind dann solche Reboot-Ereignisse ablesbar:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -al | grep failcount&lt;br /&gt;
-rw-r--r--    1 root     root             0 Oct 26 06:22 mesh0_failcount_2015-10_26_0622&lt;br /&gt;
-rw-r--r--    1 root     root             0 Oct 29 08:12 mesh0_failcount_2015-10-29_0812&lt;br /&gt;
-rw-r--r--    1 root     root             0 Oct 30 21:59 mesh0_failcount_2015-10-30_2159&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Vorfälle traten unregelmäßig alle paar Tage auf, wurden aber durch das Script abgefangen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Client-WLAN nachts automatisch ausstellen ==&lt;br /&gt;
&lt;br /&gt;
In Jugendherbergen oder Flüchtlingsheimen kann es durch rücksichts- oder gedankenloses Verhalten einzelner Gäste oder Bewohner zu akkustischen Beeinträchtigungen kommen, die durch temporäres Ausschalten des WLAN-Client-Netzes vermindert werden können. Damit kann natürlich nicht verhindert werden, dass einzelne Bewohner sich einen eigenen Freifunk-Router konfigurieren und ins Mesh-Netz hängen - das wäre ja sogar erwünscht. Folgendes Script ''restrict_client_access.sh'' ermöglicht das Abschalten in den frühen Morgenstunden (d.h. vor 0 Uhr abzuschalten ist hier nicht berücksichtigt). Es ist bisher für TP-Link TL-WR841-ND, sowie mit TL-WDR4300 und TL-WDR3600 mit der aktuellen Firmware v1.4 getestet. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash&lt;br /&gt;
&lt;br /&gt;
STOP_HOUR=0   # needs to be smaller than START_HOUR!!!&lt;br /&gt;
START_HOUR=7  # disable client0 network device if it's active &lt;br /&gt;
              # and hour is between STOP_HOUR and START_HOUR &lt;br /&gt;
&lt;br /&gt;
hour=`date +&amp;quot;%H&amp;quot;`&lt;br /&gt;
&lt;br /&gt;
ip addr list client0 &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
if [ $? -eq 0 ]; then                   # client network is on&lt;br /&gt;
  if [ $hour -lt ${START_HOUR} -a $hour -ge ${STOP_HOUR} ]; then        # turn it off&lt;br /&gt;
    uci set wireless.client_radio0.disabled=1&lt;br /&gt;
    uci set wireless.client_radio1.disabled=1                           # additional 5GHz wifi exists (e.g. WDR3600)&lt;br /&gt;
    uci commit wireless&lt;br /&gt;
    /etc/init.d/network restart&lt;br /&gt;
  fi&lt;br /&gt;
else                                    # client network is off&lt;br /&gt;
  if [ $hour -ge ${START_HOUR} -o $hour -lt ${STOP_HOUR} ]; then        # turn it on &lt;br /&gt;
    uci set wireless.client_radio0.disabled=0&lt;br /&gt;
    uci set wireless.client_radio1.disabled=0                           # additional 5GHz wifi exists (e.g WDR3600)&lt;br /&gt;
    uci commit wireless        &lt;br /&gt;
    /etc/init.d/network restart&lt;br /&gt;
  fi&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Script kann z.B. einfach im /root/ -Verzeichnis abgelegt werden. Via &amp;quot;crontab -e&amp;quot; führt dann folgender Eintrag zur Ausführung zu jeder vollen Minute:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* * * * * /root/restrict_client_access.sh &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Hinweis:''' Die uci- sowie das Restart-Kommando dürfen nicht ausserhalb der if-Bedingungen das Script ''vereinfachen'', da sie jeweils nur bei einmaligem Umstellen täglich ausgeführt werden dürfen. Sonst verliert man jede Minute das Netz...&lt;br /&gt;
&lt;br /&gt;
'''Wichtig ''': Der NTP-Dienst bei Mesh-Only-Routern muss ggf. erst (oder nochmal) nach der hergestellten Mesh-Verbindung durchgestartet werden, da NTP keine großen Zeitsprünge macht. Das kan z.B. durch folgenden Eintrag via Crontab automatisiert werden (hier: zur vollen Minute 8, die ggf. nach längerer Auszeit auch zunächst falsch sein kann):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
8 * * * * /etc/init.d/sysntpd restart &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Besser wäre hier ein Script, dass nach dem erfolgreichen Herstellen einer Mesh-Verbindung zum Uplink den ndtd einmal durchstartet, damit die Zeit initial synchronisiert wird.&lt;br /&gt;
&lt;br /&gt;
== Client-WLAN an Mesh-Only-Routern nur aktivieren, wenn Mesh-WLAN vorhanden ist ==&lt;br /&gt;
&lt;br /&gt;
Bei Routern, die selbst keinen Uplink haben und deshalb davon abhängig sind mit Nachbarn zu meshen, kann das Freifunk-Client-WLAN ausgestellt werden, wenn kein Mesh-Link (und damit auch kein entfernter Uplink) greifbar ist.&lt;br /&gt;
&lt;br /&gt;
Folgendes Script kann in ''/root/client-off-if-mesh-off.sh'' abgelegt (und via ''chmod +x /root/client-off-if-mesh-off.sh'' ausführbar gemacht) werden, das dann via cron regelmäßig aufgerufen wird:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash                                                                                          &lt;br /&gt;
&lt;br /&gt;
FAILCOUNTFILE=/var/run/mesh0_nogatewaycount&lt;br /&gt;
MAXFAILCOUNT=2&lt;br /&gt;
&lt;br /&gt;
# check mesh connections with different originators and nexthops, MAC is 17 chars long&lt;br /&gt;
batctl gwl | grep -q &amp;quot;No gateways in range&amp;quot;&lt;br /&gt;
no_gw=$?&lt;br /&gt;
&lt;br /&gt;
if [ -f $FAILCOUNTFILE ]; then          # Does the failcount file exist at all?&lt;br /&gt;
  read failcount &amp;lt; $FAILCOUNTFILE       # If it exist then there is a number in.&lt;br /&gt;
  if [ ${no_gw} -eq 1 ]; then           # There is a gateway&lt;br /&gt;
    if [ $failcount -gt 0 ]; then       # We'r lucky, it is fine again, we decrease the failcount&lt;br /&gt;
      failcount=$(($failcount-1))&lt;br /&gt;
      echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
      if [ $failcount -eq 0 ]; then&lt;br /&gt;
        # turn on client network &lt;br /&gt;
        uci set wireless.client_radio0.disabled=0&lt;br /&gt;
        uci commit wireless&lt;br /&gt;
        wifi&lt;br /&gt;
      fi&lt;br /&gt;
      exit&lt;br /&gt;
    fi&lt;br /&gt;
  else                                  # no nexthop different than originator exists &lt;br /&gt;
    failcount=$(($failcount+1))&lt;br /&gt;
    if [ $failcount -eq $MAXFAILCOUNT ]; then&lt;br /&gt;
      # logread &amp;gt; /etc/mesh0_failcount_no-mesh_`date +&amp;quot;%Y-%m-%d_%H%M&amp;quot;`  # DEBUG info&lt;br /&gt;
      # turn off client network &lt;br /&gt;
      uci set wireless.client_radio0.disabled=1&lt;br /&gt;
      uci commit wireless&lt;br /&gt;
      wifi&lt;br /&gt;
    fi&lt;br /&gt;
    if [ $failcount -le $MAXFAILCOUNT ]; then ## only memorize failcounts up to MAXFAILCOUNT &lt;br /&gt;
      echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
    fi&lt;br /&gt;
  fi&lt;br /&gt;
else&lt;br /&gt;
  echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Via &amp;quot;crontab -e&amp;quot; führt dann folgender Eintrag zur Ausführung zu jeder vollen Minute:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* * * * * /root/client-off-if-mesh-off.sh &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das obige Script ist dahingehend optimiert, dass nur bei Änderungen des Mesh-Status Daten auf den Flash-Speicher geschrieben werden. Für TP-Link WR 841ND wurde obiges Script getestet.&lt;br /&gt;
&lt;br /&gt;
== Freifunk-Monitor: Router-Status per E-Mail ==&lt;br /&gt;
&lt;br /&gt;
Ich zitiere mal von der Mailingliste - das ganze ist in der Testphase und ich werde den Wiki-Eintrag später noch entsprechend Überarbeiten.&lt;br /&gt;
&lt;br /&gt;
(Dieser Service scheint momentan nicht aktiv zu sein.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Hallo, Liebe Mitstreiter!&lt;br /&gt;
&lt;br /&gt;
Wir alle arbeiten daran, unser Netz besser, schneller und stabiler zu machen.&lt;br /&gt;
&lt;br /&gt;
Axel und ich möchten unseren Teil beitragen.&lt;br /&gt;
&lt;br /&gt;
Deshalb entwickeln wir den Freifunk-Monitor – eine kleine Software, die Betreiber von Freifunk-Routern auf Wunsch per E-Mail benachrichtigt, wenn ein- oder mehrere seiner Knoten seitens der Karte nicht erreichbar scheinen.&lt;br /&gt;
&lt;br /&gt;
Dieser Service muss derzeit explizit auf einem Router mit mindestens Gluon 1.4 via SSH angeschaltet werden (es gibt derzeit keine Web-Oberfläche).&lt;br /&gt;
&lt;br /&gt;
Wir laden hiermit alle Router-Betreiber ein, den Monitor zu testen!&lt;br /&gt;
&lt;br /&gt;
Rechnet damit, schlimmstenfalls zu viele oder ungerechtfertigte E-Mails vom Monitor zu bekommen - wir testen die Software noch.&lt;br /&gt;
&lt;br /&gt;
Wie ihr das wieder abschaltet steht unten.&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
Kommando zum Monitoring einschalten (Achtung, was folgt ist EINE Zeile):&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;if uci:get_first('gluon-node-info', 'owner', 'send_alerts', '') ~= '' then return true end&amp;quot; &amp;gt; /lib/gluon/announce/nodeinfo.d/send_alerts ; uci set gluon-node-info.@owner[0].send_alerts=1 ; uci commit&lt;br /&gt;
&lt;br /&gt;
Kommando zum E-Mail-Adresse setzen (falls nicht schon geschehen):&lt;br /&gt;
&lt;br /&gt;
uci set gluon-node-info.@owner[0].contact=ff@cocoanuts.org; uci commit&lt;br /&gt;
&lt;br /&gt;
Kommando zum E-Mail-Adresse prüfen:&lt;br /&gt;
&lt;br /&gt;
uci get gluon-node-info.@owner[0].contact&lt;br /&gt;
&lt;br /&gt;
Kommando zum Monitoring abschalten:&lt;br /&gt;
&lt;br /&gt;
uci set gluon-node-info.@owner[0].send_alerts=0 ; uci commit&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
Frohes Freifunken,&lt;br /&gt;
&lt;br /&gt;
    KaterMikesch &amp;amp; G3ntleman&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Pimp_my_Node&amp;diff=4642</id>
		<title>Pimp my Node</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Pimp_my_Node&amp;diff=4642"/>
		<updated>2016-05-30T16:24:38Z</updated>

		<summary type="html">&lt;p&gt;Took: wikifi&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Mitmachen]]&lt;br /&gt;
&lt;br /&gt;
Hier finden sich interessante Optionen für etwas versiertere Nutzer. Diese Seite wurde größtenteils für die Classic Firmware geschrieben. Wer Gluon verwendet sollte unbedingt auch Gluon spezifische Resourcen, wie [http://gluon.readthedocs.org/ http://gluon.readthedocs.org], zu Rate ziehen. &lt;br /&gt;
&lt;br /&gt;
Die Möglichkeiten und Abweichungen von der Default-Konfiguration sind vielfältig. Diese sollten aber nur dann durchgeführt werden, wenn der Durchführende genau weiß was er da macht. Eine fehlerhaft Konfiguration kann zum Beispiel zu Störungen im Netzwerk führen, ferner könnten illegitime Maßnahmen implementiert werden. Beide zuvor genannten Beispiele würden zu einem Ausschluss aus unserem Netzwerk führen. Dennoch kann man gute Gründe haben die ein Abweichen von den Defaultwerten sinnvoll machen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Netztheorie/Technik und Entwicklung ==&lt;br /&gt;
Vertiefung&lt;br /&gt;
&lt;br /&gt;
*[[FSM-Dynamisches-Bridging]] &lt;br /&gt;
*[[Batman_adv]]&lt;br /&gt;
*[[Entwicklung]]&lt;br /&gt;
*[[Firmware|Firmware/Betriebssystem]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arbeiten auf der Shell ==&lt;br /&gt;
Vorraussetzung für folgende Befehle sind eine Verbindung mit dem KBU Freifunk Netz sowie ein Terminal / Shell. &lt;br /&gt;
Vergesst nicht eth0 gegen die Bezeichnung eures Netzwerkinterfaces, welches am Freifunk hängt zu tauschen. &lt;br /&gt;
Bei Macbooks via Wlan z.B. &amp;quot;en1&amp;quot; statt &amp;quot;eth0&amp;quot;! Die link local Adresse der jeweiligen node findet ihr auf der [http://register.kbu.freifunk.net KBU Register] Seite. Um Dateien auf dem Node ändern zu können, steht als einziger Editor ''vi'' bzw. ''vim'' zur Verfügung.&lt;br /&gt;
 &lt;br /&gt;
Zusätzlich zu den auf dieser Seite erläuterten Modifikationen gibt es im [https://github.com/freifunk-gluon/gluon/wiki/Commandline-administration Github-Wiki der Freifunk-Gluon-Firmware eine ausführliche Liste nützlicher Befehle ].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Firmware aktualisieren ===&lt;br /&gt;
==== Node mit uplink ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@&amp;lt;link local Adresse des Nodes&amp;gt;%eth0              // SSH Verbindung zum Node aufbauen, eth0 ist das lokale Interface, ggf. durch wlan0 etc. ersetzen&lt;br /&gt;
cd ../tmp/                                              // in das Verzeichnis &amp;quot;tmp&amp;quot; wechseln&lt;br /&gt;
free                                                    // Freien Speicher prüfen&lt;br /&gt;
wget http://pfad/zur/firmware.bin                       // Firmware herunterladen und dann&lt;br /&gt;
sysupgrade -v firmware.bin                              // Firmware-Upgrade durchführen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Achtung''': Beim Download der Firmware via wget kann auf dem Router die Integrität der Firmware nicht geprüft werden, da gpg i.d.R. auf den Routern nicht verfügbar ist. Deshalb ist es sicherer, den oben beschriebenen Weg zu wählen, oder die geprüfte Firmware per scp (s.u.) auf den Router zu kopieren. &lt;br /&gt;
&lt;br /&gt;
==== Node ohne uplink (mesh node) ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp -6 -v -r firmware.bin root@\[&amp;lt;link local Adresse des Nodes&amp;gt;%eth0\]:../tmp/          // Firmware auf den node schieben (md5 checken!)&lt;br /&gt;
ssh root@&amp;lt;link local Adresse des Nodes&amp;gt;%eth0 &lt;br /&gt;
cd ../tmp/  &lt;br /&gt;
sysupgrade -v firmware.bin  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Upgrade von inkompatibler Konfiguration (Lagacy auf Gluon, wechsel der hood, etc.) ====&lt;br /&gt;
Bei einem upgrade von einer inkompatiblen Version mittels &amp;lt;code&amp;gt;sysupgrade&amp;lt;/code&amp;gt; muss man normalerweise mittels&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysupgrade -n firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
die aktuellen Settings überschreiben lassen. Auf einem Node den man nur per ssh erreicht ist das unpraktisch, da auch Passwörter und ssh keys gelöscht werden. Zum Glück hat &amp;lt;code&amp;gt;sysupgrade&amp;lt;/code&amp;gt; einen interaktiven Modus, den man per&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysupgrade -i firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
startet. Hier kann man (nachdem man bestätigt hat, das ein Teil der Konfiguration übernommen werden soll) die Liste an zu sichernden Dingen bearbeiten. Die gluon-node-info (geo-Koordinaten und Kontaktadresse) so wie vor allem die drobbear/*keys sollte man behalten, evtl auch system mit dem host name des Nodes, der Rest kann gelöscht werden, falls man da keine wichtigen Anpassungen vorgenommen hat. ('dd' löscht Zeilen in vi ;)&lt;br /&gt;
&lt;br /&gt;
Je nach Route zum Router kann es sein, dass die ssh Verbindung abbricht während des interactiven upgrades. Genauer passiert das, wenn man nur durch einen VPN Tunnel Verbindung hat. (Nicht fleißig am Backbone mitgearbeitet? ;) Das ist blöd, weil man am Ende noch den Neustart bestätigen muss (etwas unsinniger weise). In diesem Fall sollte man besser eine config datei mit z.B. folgenden Zeilen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/etc/dropbear/authorized_keys&lt;br /&gt;
/etc/dropbear/dropbear_dss_host_key&lt;br /&gt;
/etc/dropbear/dropbear_rsa_host_key&lt;br /&gt;
/etc/config/gluon-node-info&lt;br /&gt;
/etc/config/system&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
erstellen und per &amp;lt;code&amp;gt;tar -cz config  &amp;amp;gt; config.tar.gz&amp;lt;/code&amp;gt; packen. Danach kann man mittels&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysupgrade -f config.tar.gz firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
das ganze unattended laufen lassen.&lt;br /&gt;
&lt;br /&gt;
==== Node ''zu Fuß'' updaten ====&lt;br /&gt;
Wenn man physikalischen Zugriff auf den Freifunk-Router hat, kann man auch einfach in den [[Config_Mode]] wechseln und dort über das entsprechende Menü eine neue Freifunk-Firmware hochladen. Hierbei kann man wählen, ob man die ggf. geänderte Konfiguration beibehalten möchte (upgrade-Image) oder alles von Grund auf neu installiert/konfiguriert. Ggf. muss man zuvor noch ein Root-Passwort setzen, damit das Update möglich wird.&lt;br /&gt;
&lt;br /&gt;
==== via TFTP  ====&lt;br /&gt;
Wenn mal ein Router nicht mehr bootet, aber der Bootloader noch funktioniert, (oder man einfach keinen Bock auf das Stock Webinterface hat) kann man häufig noch per tftp recht komfortabel eine neue Firmware einspielen. [http://wiki.openwrt.org/doc/howto/generic.flashing.tftp] ;)&lt;br /&gt;
&lt;br /&gt;
* tftp server auf dem lokalen Rechner installieren (Kurzfassung von z.B. [http://www.cyberciti.biz/faq/install-configure-tftp-server-ubuntu-debian-howto/])&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install tftpd-hpa&lt;br /&gt;
sudo chown -R tftp /srv/tftp/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Config anpassen &amp;amp; neustarten. Das &amp;quot;-c create file&amp;quot; braucht man um vom router Dateien zu senden (config sichern), &amp;quot;-s&amp;quot; da sonst absolute Pfade angegeben werden müssten (macht der Router natürlich nicht). Mehr zu den Optionen findet man auf der [http://linux.die.net/man/8/tftpd man page].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vim /etc/default/tftpd-hpa&lt;br /&gt;
&lt;br /&gt;
TFTP_USERNAME=&amp;quot;tftp&amp;quot;&lt;br /&gt;
TFTP_DIRECTORY=&amp;quot;/srv/tftp&amp;quot;&lt;br /&gt;
TFTP_ADDRESS=&amp;quot;0.0.0.0:69&amp;quot;&lt;br /&gt;
TFTP_OPTIONS=&amp;quot;-s -c&amp;quot;&lt;br /&gt;
&lt;br /&gt;
service tftpd-hpa restart &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Dann muss man noch herausfinden auf welcher IP der Router nach welchem Dateinamen Fragt. Eine gute Quelle ist openWRT, z.B. für den beliebten tl-wr841n wäre finden sich die Infos je nach Version [http://wiki.openwrt.org/toh/tp-link/tl-wr841nd#tftp_recovery_via_bootloader_for_v8_v9_v10_v11 hier].&lt;br /&gt;
&lt;br /&gt;
Falls noch Fragen offen bleiben, [https://www.freifunk-bingen.de/forum/hilfe-unterst%C3%BCtzung/flashen-eines-gebrickten-tp-link-routers-tftp die $Anderen wissen auch was]. ;)&lt;br /&gt;
&lt;br /&gt;
=== Hostnamen des Nodes ändern ===&lt;br /&gt;
Standardmäßig ist der Hostname des Nodes gleich der MAC-Adresse des Routers. Möchte man den Hostnamen ändern, so kann man dies per ssh&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set system.@system[0].hostname=what-ever-dude&lt;br /&gt;
uci commit&lt;br /&gt;
reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Änderung wird erst nach dem Kommando ''reboot'' (danach startet der Node neu) wirksam.&lt;br /&gt;
&lt;br /&gt;
=== IPv6 ping ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ping6 &amp;lt;link local Adresse des Nodes&amp;gt;%eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== IPv6 ssh ===&lt;br /&gt;
Hinter der link local Adresse &amp;quot;%&amp;quot; + &amp;quot;Netzwerk Interface an eurer Kiste&amp;quot; (Hier im Beispiel eth0)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@&amp;lt;link local Adresse des Nodes&amp;gt;%eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Paßwort-Authentifizierung abstellen ===&lt;br /&gt;
'''Wichtig:''' Als erstes prüfen, ob man sich mit seinem Schlüsselpaar auf den Router einloggen kann. Man sollte jetzt nicht mehr nach dem Paßwort gefragt werden (allerhöchstens nach dem Paßwort, welches den privaten Schlüssel schützt).&lt;br /&gt;
Falls das erfolgreich funktioniert, kann man die Datei ''/etc/config/dropbear'' wie folgt ändern:&lt;br /&gt;
&amp;lt;pre&amp;gt;config dropbear&lt;br /&gt;
        option PasswordAuth 'off'&lt;br /&gt;
        option RootPasswordAuth 'off'&lt;br /&gt;
        option Port         '22'&lt;br /&gt;
#       option BannerFile   '/etc/banner'&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nach einem Neustart des Routers mittels ''reboot'' sollte es jetzt nur noch möglich sein, sich mit seinem Schlüsselpaar auf den Rotuer einzuloggen.&lt;br /&gt;
&lt;br /&gt;
=== SSH public key auf Node aufspielen ===&lt;br /&gt;
Möchte man sich nicht immer per Paßwort auf den eigenen Node verbinden, so kann man das auch mit einem Schlüsselpaar realisieren. Falls man danach noch die Authentifizierung per Paßwort abschaltet (s. nächster Punkt), dann hat man einen sicheren Zugriff auf seinen Node realisiert.&lt;br /&gt;
Voraussetzung ist natürlich, dass man schon ein gültiges Schlüsselpaar besitzt. Falls dem so ist, so genügt es, den öffentlichen Schlüssel (public key) auf den Node zu übertragen. Das kann mit Hilfe von scp (secure copy) passieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp -6 id_rsa4096.pub root@[&amp;lt;link local Adresse des Nodes&amp;gt;%eth0]:/etc/dropbear/authorized_keys&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hierbei steht id_rsa.pub für die Datei, die den public key enthält. '''ACHTUNG:''' Obiger Befehl ersetzt die eventuell schon vorhandene Datei authorized_keys auf dem Node. Das ist ok für den ersten Key. Sollen mehrere Keys eingetragen werden (z. B. weil man außer vom Laptop auch vom Tablet auf seinen Node verbinden möchte), kann man das so machen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat ~/.ssh/id_rsa4096.pub | ssh root@[&amp;lt;link local Adresse des Nodes&amp;gt;%eth0] 'umask 077; cat &amp;gt;&amp;gt;.ssh/authorized_keys'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollte beim Kopierversuch die Meldung&lt;br /&gt;
&amp;lt;pre&amp;gt;ssh: Could not resolve hostname fe80:&amp;lt;/pre&amp;gt;&lt;br /&gt;
erscheinen, hat man höchstwahrscheinlich die eckigen Klammern um die IP-Adresse inklusive Interface vergessen. Dann wird der erste Doppelpunkt schon als Ende des Hostnamens interpretiert! Auch hier werden die Änderungen nach einem Neustart des Routers mittels ''reboot'' übernommen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Node überträgt keine Statistiken ===&lt;br /&gt;
Auf der [https://kbu.freifunk.net/cserv Cserv Seite] könnt ihr prüfen, ob eurer Node bereits Statistiken übermittelt.&lt;br /&gt;
==== ntp-Bug in Firmware 1.2.1b beseitigen ====&lt;br /&gt;
Falls sich ein Node-Betreiber wundert, warum sein Node keine Statistiken liefert und es ein Mesh-Only-Node ist (d. h. ohne eigenen Uplink zum Internet), so liegt das an einem Bug in der Firmware. Diesen kann man jedoch mit einfachen Mitteln beheben:&lt;br /&gt;
Editiert wird die Datei ''/etc/config/system''. Dort findet man einen Eintrag ''config timeserver 'ntp'''. Defaultmäßig stehen hier 4 Zeitserver von openwrt (in der Form x.openwrt.pool.ntp.org). Diese müssen bei Mesh-Only-Nodes in IPv6-Adressen geändert werden, und zwar, dass der komplette Konfigurationspunkt wie folgt aussieht:&lt;br /&gt;
&amp;lt;pre&amp;gt;config timeserver 'ntp'&lt;br /&gt;
        list server '2a03:4000:2:494::2'&lt;br /&gt;
        list server '2a01:4f8:161:2461:e4::1'&lt;br /&gt;
        list server '2a02:180:1:1::551f:bb4b'&lt;br /&gt;
        option enabled '1'&lt;br /&gt;
        option enable_server '0'&amp;lt;/pre&amp;gt;&lt;br /&gt;
Auch hier werden die Änderungen erst nach einem Neustart des Nodes mittels ''reboot'' wirksam.&lt;br /&gt;
Dieser Bug soll mit dem nächsten Firmware-Release behoben sein. Man kann die Eintragungen auch in den Nodes mit Internet-Uplink ändern ohne die Funktion zu beeinträchtigen.&lt;br /&gt;
&lt;br /&gt;
==== Collectd prüfen ====&lt;br /&gt;
Falls es durch das beheben des ntp-Bug noch immer nicht zum übertragen der Statistiken kommt, überprüft mal die Einstellungen eures Collectd. Es kann sein das beim Firmware Update diese Config nicht geupdatet wurde und eine veraltet IPV6 Adresse noch vorhanden ist, so sollte es sein:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vim /etc/collectd.conf                             // Config Datei für Collectd zum bearbeiten öffnen&lt;br /&gt;
&lt;br /&gt;
Zeile 39-44:    &lt;br /&gt;
&amp;lt;Plugin ping&amp;gt;                     &lt;br /&gt;
        TTL 127                   &lt;br /&gt;
        Interval 30                         &lt;br /&gt;
        Host &amp;quot;fdd3:5d16:b5dd:3::6&amp;quot;                 // Diesen Eintrag auf Übereinstimmmung prüfen      &lt;br /&gt;
&amp;lt;/Plugin&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Zeile 46-50:&lt;br /&gt;
&amp;lt;Plugin network&amp;gt;                                        &lt;br /&gt;
        Server &amp;quot;fdd3:5d16:b5dd:3::6&amp;quot; &amp;quot;25827&amp;quot;       // Diesen Eintrag auf Übereinstimmmung prüfen                 &lt;br /&gt;
        Forward false                                   &lt;br /&gt;
&amp;lt;/Plugin&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LAN Kopplung ===&lt;br /&gt;
Eine LAN Kopplung kann in manchen Fällen sinnvoll sein, besonders wenn man einen VLAN fähigen Switch und eine bestehende Ntzwerkverkabelung hat. Hier werden die Switchports angwiesen auch über LAN zu meshen.&lt;br /&gt;
&lt;br /&gt;
==== TL-WR841ND ====&lt;br /&gt;
03/2014: Hier wird über die alle 4 LAN Ports gemeshed, Mesh über WLAN kann man optional noch ausschalten! Folgende Config stammt von rampone/FF-KBU und wurde an 2 TL-WR841N v.8 getestet mit KBU-FF-Firmware 1.1.&lt;br /&gt;
&lt;br /&gt;
05/2015: Verifiziert (und ergänzt) für TL-WR841N v.9 und KBU-FF-Firmware 1.2.2rc3 .&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/network'' - Folgende Änderungen wurden an der FF-Firmware vorgenommen:&lt;br /&gt;
#config interface 'freifunk' -&amp;gt; Hier haben wir das ethX-Interface aus &amp;quot;ifname&amp;quot; rausgenommen, damit kein ff aus dem ethX (switch) rauskommt (X=1 für Hardware bis einschließlich v8, sonst X=0).&lt;br /&gt;
#config interface 'mesh_lan' -&amp;gt; kompl. codeblock hinzugefügt, dieser bewirkt das über ethX (switch) gemeshed wird. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config interface 'loopback'&lt;br /&gt;
	option ifname 'lo'&lt;br /&gt;
	option proto 'static'&lt;br /&gt;
	option ipaddr '127.0.0.1'&lt;br /&gt;
	option netmask '255.0.0.0'&lt;br /&gt;
&lt;br /&gt;
config interface 'wan'&lt;br /&gt;
	option ifname 'eth0'&lt;br /&gt;
	option proto 'dhcp'&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option accept_ra '0'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
&lt;br /&gt;
config switch&lt;br /&gt;
	option name 'switch0'&lt;br /&gt;
	option reset '1'&lt;br /&gt;
	option enable_vlan '1'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'switch0'&lt;br /&gt;
	option vlan '1'&lt;br /&gt;
	option ports '0 1 2 3 4'&lt;br /&gt;
&lt;br /&gt;
config interface 'freifunk'&lt;br /&gt;
	option ifname 'bat0'		#LAN-Kopplung: ifname eth1 (bzw. eth0, s.o.) entfernt&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option proto 'none'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option accept_ra '1'&lt;br /&gt;
	option macaddr '10:fe:ed:f1:53:84'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mtu '1528'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_vpn'&lt;br /&gt;
	option ifname 'mesh-vpn'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
	option macaddr '12:fe:ed:f2:53:84'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_lan'		#LAN-Kopplung: Codeblock mesh-lan hinzugefuegt&lt;br /&gt;
	option ifname 'eth0'            # ab TL-841N(D) v9: eth0, bis v8: eth1 . Bei falschem Interface läuft das mesh-lan über den blauen Port. Wer's mag...&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/wireless'' - Hier wird der Codeblock, der für das Mesh über WLAN verantwortlich ist auskommentiert (optional)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#config wifi-iface 'wifi_mesh'&lt;br /&gt;
#       option device 'radio0'&lt;br /&gt;
#       option network 'mesh'&lt;br /&gt;
#       option mode 'adhoc'&lt;br /&gt;
#       option ssid '02:d1:11:37:fc:39'&lt;br /&gt;
#       option bssid '02:d1:11:37:fc:39&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TL-WDR4300 ====&lt;br /&gt;
Das gleiche nochmal für den 4300er&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/network''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config interface 'loopback'&lt;br /&gt;
	option ifname 'lo'&lt;br /&gt;
	option proto 'static'&lt;br /&gt;
	option ipaddr '127.0.0.1'&lt;br /&gt;
	option netmask '255.0.0.0'&lt;br /&gt;
&lt;br /&gt;
config interface 'wan'&lt;br /&gt;
	option ifname 'eth0.2'&lt;br /&gt;
	option proto 'dhcp'&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option accept_ra '0'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option macaddr 'a2:f3:c1:65:81:cd'&lt;br /&gt;
&lt;br /&gt;
config switch&lt;br /&gt;
	option name 'eth0'&lt;br /&gt;
	option reset '1'&lt;br /&gt;
	option enable_vlan '1'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'eth0'&lt;br /&gt;
	option vlan '1'&lt;br /&gt;
	option ports '0t 2 3 4 5'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'eth0'&lt;br /&gt;
	option vlan '2'&lt;br /&gt;
	option ports '0t 1'&lt;br /&gt;
&lt;br /&gt;
config interface 'freifunk'&lt;br /&gt;
	option ifname 'bat0'		#LAN-Kopplung: ifname eth0.1 entfernt&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option proto 'none'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option accept_ra '1'&lt;br /&gt;
	option macaddr 'a0:f3:c1:64:81:cc'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mtu '1528'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_vpn'&lt;br /&gt;
	option ifname 'mesh-vpn'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
	option macaddr 'a2:f3:c1:65:81:cc'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_lan'		#LAN-Kopplung: Codeblock mesh-lan hinzugefuegt&lt;br /&gt;
        option ifname 'eth0.1'&lt;br /&gt;
        option proto 'batadv'&lt;br /&gt;
        option mesh 'bat0'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einsperren des Freifunk-Routers in eine DMZ ==&lt;br /&gt;
&lt;br /&gt;
Wer seinen Freifunk-Router einsperren und/oder die Bandbreite begrenzen möchte, kann dies am einfachsten tun, indem er ihn an seiner Firewall an einen eigenen Netzwerkport klemmt und diesen dann als DMZ konfiguriert. Ein KBU-Freifunk-Router muß zur Zeit im LAN DHCP, DNS, im Internet NTP sowie mit den [[fastd]]-Knoten reden können. Folgendes Bespiel für eine iptables-Firewall nimmt an, dass der Freifunk-Router über eth2 angeschlossen ist:&lt;br /&gt;
&lt;br /&gt;
 # eth2 darf nur dns, ntp, dhcp und ansonsten mit den fastdX reden&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p udp --dport 67:68 --sport 67:68 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p udp --dport 67:68 --sport 67:68 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p udp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p tcp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p udp --dport 123                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p udp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p tcp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p udp --dport 123                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 176.9.41.253                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 176.9.41.253                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 178.63.59.41                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 178.63.59.41                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 37.120.169.214               -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 37.120.169.214               -j ACCEPT &lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 37.221.195.47                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 37.221.195.47                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 78.46.68.75                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 78.46.68.75                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 84.201.35.206                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 84.201.35.206                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT                                      -j DROP&lt;br /&gt;
 iptables -i eth2 -A FORWARD                                    -j DROP&lt;br /&gt;
 # eth2 darf maximal 2000 kbit/s ein- und ausgehenden traffic machen&lt;br /&gt;
 wondershaper eth2 2000 2000&lt;br /&gt;
&lt;br /&gt;
Prinzipiell könnte man den Traffic noch weiter einschränken. DHCP und DNS müssen nur zum DHCP- bzw. DNS-Server funktionieren und der Traffic zu den fastd-Servern ließe sich auf TCP Port 80 und UDP Port 10000 begrenzen.&lt;br /&gt;
&lt;br /&gt;
===Alternative: Einsperren im VLAN===&lt;br /&gt;
siehe: [[FF-Router einsperren im VLAN]]&lt;br /&gt;
&lt;br /&gt;
== Weboberfläche aktivieren ==&lt;br /&gt;
&lt;br /&gt;
Im Normalbetrieb ist erst mal kein Zugriff notwendig (und auch erst mal nicht vorgesehen). Das läuft einfach! ;-) Und es gibt im Normalbetrieb eben auch kein Webinterface, welches Sicherheitslücken haben könnte.&lt;br /&gt;
&lt;br /&gt;
Zum ersten Konfigurieren schaltet mal den Router in einen Konfig-Modus. Der Router nimmt dann in diesem Modus nicht mehr am Freifunknetzwerk teil. Nun kann man dann Rechner an die LAN Ports des Freifunkrouters anschließen und über ein Webinterface per Browser den Router konfigurieren oder Updaten. Das sollte aber nur ganz selten notwendig sein. Nach einem Reboot des Routers geht das Gerät dann wieder in den Freifunk-Modus mit deinen Konfigurationsänderungen.&lt;br /&gt;
&lt;br /&gt;
Wenn man Spaß am Basteln hat kann man das Webinterface aber auch im Normalbetrieb aktivieren. Für die Absicherung muss man dann aber selber sorgen denn per Default ist das nicht abgesichert. Hier die Anleitung nach [http://wiki.freifunk.in-kiel.de/wiki/Firmware Freifunk Kiel], um auf die Weboberfläche zu gelangen:&lt;br /&gt;
&lt;br /&gt;
Das Webinterface des Routers ist nicht über die Link-Local-Adresse, sondern nur über die generelle IPv6 Adresse des Routers zu erreichen. Die IPv6-Adresse bekommt man über SSH (s. [[Pimp_my_Node#IPv6_ssh|IPv6 ssh]] auf den Router:&lt;br /&gt;
  ssh root@LinkLocalIPv6adresse_des_routers%Interface&lt;br /&gt;
Die generelle IPv6-Adresse erfährt man durch Eingabe von&lt;br /&gt;
  ifconfig | grep Global&lt;br /&gt;
Die IPv6-Adresse (&amp;quot;inet6 adr&amp;quot;) kann man nun im Browser in eckigen Klammern und vorangestelltem &amp;quot;http://&amp;quot; aufrufen (zum Beispiel: http://[2001:67c:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx]/) und gelangt so zum Webinterface LuCI.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
 uci delete uhttpd.main.listen_http&lt;br /&gt;
 uci delete uhttpd.main.listen_https&lt;br /&gt;
 &lt;br /&gt;
 uci add_list uhttpd.main.listen_http='[::]:80'&lt;br /&gt;
 uci add_list uhttpd.main.listen_http='0.0.0.0:80'&lt;br /&gt;
 uci add_list uhttpd.main.listen_https='[::]:80'&lt;br /&gt;
 uci add_list uhttpd.main.listen_https='0.0.0.0:80'&lt;br /&gt;
 &lt;br /&gt;
 uci commit uhttpd&lt;br /&gt;
 &lt;br /&gt;
 /etc/init.d/uhttpd enable&lt;br /&gt;
&lt;br /&gt;
== Uplink mit Android-Tethering/USB Netzwerkkarte ==&lt;br /&gt;
(ssh Zugang Erfahrung nötig)&lt;br /&gt;
&lt;br /&gt;
Das ganze sei von Anfang an als &amp;quot;sportlich&amp;quot; zu betrachten. Leider sind mobile 3g/LTE Tarife fast ausnahmslos nach einem bestimmten Volumen gedrosselt (üblicherweise auf 64 bis 56 kbit/s (neuere NetzclubSim sogar auf 32 kbit/s), Ausnahme bilden hier nur LTE Zuhause &amp;quot;DSL&amp;quot; Ersatz Tarife -&amp;gt; 386kbit/s).&lt;br /&gt;
Da Freifunk auch bei Nichtbenutzung Daten überträgt, ist nur bei LTE Zuhause Tarifen interessant dies als Dauerlösung zu nutzen. Dort ist aber wiederum meist ein LTE-Router vor Ort und man den Router auch &amp;quot;traditionell&amp;quot; via LAN Kabel anbinden.&lt;br /&gt;
Bei Benutzung als uplink bei Strassenfesten/Festivals etc. ist wahrscheinlich, dass erstens das Datenvolumen schnell aufgebraucht sein wird und zweitens ab einer bestimmten Größe auch das 3g Netz vor Ort überlastet ist. Wenn man es dennoch machen will (mehrere Sim Karten/spezieller hochvolumiger Tarif/Netzbetreiber gesponserter Uplink (träum)), sollte man die Benutzung von LTE erwägen. Auch dort könnten aber durch zukünftige Adapation Überlasterscheinungen auftreten. Desweitern nutzen 2g/3g/4g auch dasselbe Backbone, welcher dann auch für LTE ein Flaschenhals darstellt.&lt;br /&gt;
Muss nochmal nachprüfen, aber wenn, dann nicht uninteressant: Der Wlan Zugang des Telefons (CM7) wurde per tethering weitergeleitet und bei Abschalten gab es fallback auf 3g -&amp;gt; nicht schöne, aber einfache &amp;quot;Immer&amp;quot;netzlösung?  Mein Tablet zeigt nicht dieses Verhalten.)&lt;br /&gt;
&lt;br /&gt;
Blablabla, jetzt geht es los:&lt;br /&gt;
Das ganze habe ich mit einem 1043ND und einem droid 2.3CM7 Telefon und einem droid 2.2 Tablet ausprobiert, sollte aber auf jeglichen OpenWrt Router mit USB, Android USB tethering fähigem Gerät und einfachen USB ethernet Adaptern (nachprüfen!!!) funktionieren:&lt;br /&gt;
&lt;br /&gt;
- Per ssh in den router einloggen&lt;br /&gt;
- Installieren der notwendigen Treiber&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
opkg update&lt;br /&gt;
opkg install kmod-usb-uhci kmod-usb-net-rndis&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies sollte, falls ihr noch keine USB Unterstützung in der Firmware hat auch diese über dependencies nachinstallieren. (nachprüfen!!!)&lt;br /&gt;
&lt;br /&gt;
- Ihr müsst den Netzwerkzugang für da neue Interface &amp;quot;usb0&amp;quot; noch konfigurieren. Unter /etc/config/network fügt ihr z.B. folgendes hinzu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config interface 'wan2'&lt;br /&gt;
       option ifname 'usb0'&lt;br /&gt;
       option proto 'dhcp'&lt;br /&gt;
       option type 'bridge'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch unter Luci sollte dies konfigurierbar sein. &lt;br /&gt;
&lt;br /&gt;
- Nach einem Neustart und einem angeschlossenen Gerät sollte nun der Uplink via dem USB Netzwerk Gerät/Android tethering funktionieren.&lt;br /&gt;
- Sollte das Gerät erst später angeschlossen werden, so könnt ihr mit folgendem Befehl das Netzwerkgerät starten.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifup wan2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(Dies ist noch nicht ein perfektes Tutorial, werde es nochmal durchprobieren. Einen UMTS Stick hatte ich auf Anhieb noch nicht zum laufen gebracht. Auch scheint Multiwan in OpenWRT eine interessante Sache)&lt;br /&gt;
&lt;br /&gt;
== Zusätzlich zum Freifunk auch privates WLAN einrichten ==&lt;br /&gt;
&lt;br /&gt;
Es ist möglich ein privates WLAN anzulegen, das mit dem WAN Port gebridged und separat zum Mesh Netzwerk ist. (Bitte beachten, dass Mesh on Wan nicht zeitgleich mit aktiviert werden sollte.) &lt;br /&gt;
Effekt: Das private WLAN wird erweitert, zeitgleich fungiert der Router als Freifunk-Router. Die Netze sind voneinander abgekoppelt.&lt;br /&gt;
Das private WLAN kann per SSH in der Konsole aktiviert werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set wireless.wan_radio0=wifi-iface&lt;br /&gt;
uci set wireless.wan_radio0.device=radio0&lt;br /&gt;
uci set wireless.wan_radio0.network=wan&lt;br /&gt;
uci set wireless.wan_radio0.mode=ap&lt;br /&gt;
uci set wireless.wan_radio0.encryption=psk2&lt;br /&gt;
uci set wireless.wan_radio0.ssid=&amp;quot;$SSID&amp;quot;&lt;br /&gt;
uci set wireless.wan_radio0.key=&amp;quot;$KEY&amp;quot;&lt;br /&gt;
uci set wireless.wan_radio0.disabled=0&lt;br /&gt;
uci commit&lt;br /&gt;
wifi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Bitte ersetze $SSID mit dem Namen deines Heimnetzwerks und $KEY mit deinem bisher üblichen Key (der vom privaten Router). Falls dein Router beide Frequenzbänder unterstützt(2.4 und 5 Ghz) und du in beiden auch privates WLAN aktivieren möchtest, muss dies für radio0 und radio1 mit übernommen werden.&lt;br /&gt;
Zum deaktivieren des Ganzen wie folgt vorgehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set wireless.wan_radio0.disabled=1&lt;br /&gt;
uci commit&lt;br /&gt;
wifi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Automatischer Neustart bei längerem Mesh-Verlust, quick hack (and improved hack) zur Analyse ==&lt;br /&gt;
&lt;br /&gt;
Bei der Vernetzung von Notunterkünften mit Gluon-Beta (via Euskirchen) ist bei einem CPE210-Uplink aufgefallen, dass sämtliche Mesh-Verbindungen über Stunden ausgefallen waren. Es war zunächst unklar, ob überwiegend die Stromversorgung ursächlich ist, insbesondere da der Uplink-Router mehrfach betroffen und trotzdem via VPN erreichbar war. Dabei war dann nur ein Mesh mit sich selbst via &amp;quot;batctl o&amp;quot; sichtbar. Einzelne Mesh-Only-Router zeigten ebenfalls (selten) Ausfälle über mehrere Stunden: teilweise Nachts, wo Renovierungsarbeiten nicht die Ursache sein konnten.&lt;br /&gt;
&lt;br /&gt;
Um längere Ausfälle zu vermeiden wurde folgendes Script unter /root/check_mesh.sh abgelegt, das via cron-Job automatisch jede Minute ausgeführt wird und nach 10 Minuten ohne Mesh-Verbindung einen Reboot auslöst:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash&lt;br /&gt;
&lt;br /&gt;
FAILCOUNTFILE=/var/run/mesh0_failcount&lt;br /&gt;
MAXFAILCOUNT=10&lt;br /&gt;
&lt;br /&gt;
# check mesh connections with different originators and nexthops, MAC is 17 chars long&lt;br /&gt;
count=`batctl o | awk '/mesh0/{originator=substr($0,1,17); nexthop=substr($0,37,17); if (originator != nexthop){print originator&amp;quot; &amp;quot;nexthop}}' | wc -l`&lt;br /&gt;
&lt;br /&gt;
if [ $count -gt 1 ]; then  ## more than a single mesh with itself is left&lt;br /&gt;
  echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
else&lt;br /&gt;
  if [ -f $FAILCOUNTFILE ]; then  &lt;br /&gt;
    read failcount &amp;lt; $FAILCOUNTFILE&lt;br /&gt;
    failcount=$(($failcount+1))&lt;br /&gt;
    if [ $failcount -ge $MAXFAILCOUNT ]; then&lt;br /&gt;
      touch /etc/mesh0_failcount_`date +&amp;quot;%Y-%m-%d_%H%M&amp;quot;`&lt;br /&gt;
      sync&lt;br /&gt;
      reboot&lt;br /&gt;
    fi &lt;br /&gt;
    echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
  else&lt;br /&gt;
    echo 1 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
  fi&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es muss (hier mit awk, s.o.) nach _unterschiedlichen_ Werten für Originator und NextHop ausschau gehalten werden, denn bei einem fehlenden Mesh zwischen zwei Knoten meshen die Knoten noch mit sich selbst:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# batctl o | grep mesh0&lt;br /&gt;
62:e6:28:24:5f:52    0.730s   (  6) 62:e6:28:24:5f:52 [     mesh0]: 62:e6:28:24:5f:52 (  6)&lt;br /&gt;
62:e6:28:72:32:48    0.730s   (  8) 62:e6:28:72:32:48 [     mesh0]: 62:e6:28:72:32:48 (  8)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das war lesbar und einfach, aber wegen ständiger Schreibzugriffe schlecht für die Lebensdauer der Flash-Speicher. Besser also nur schreiben wenn Fehler passieren, etwa so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash&lt;br /&gt;
&lt;br /&gt;
FAILCOUNTFILE=/var/run/mesh0_failcount&lt;br /&gt;
MAXFAILCOUNT=10&lt;br /&gt;
&lt;br /&gt;
# check mesh connections with different originators and nexthops, MAC is 17 chars long&lt;br /&gt;
count=`batctl o | awk '/mesh0/{originator=substr($0,1,17); nexthop=substr($0,37,17); if (originator != nexthop){print originator&amp;quot; &amp;quot;nexthop}}' | wc -l`&lt;br /&gt;
&lt;br /&gt;
if [ -f $FAILCOUNTFILE ]; then          # Does the failcount file exist at all?&lt;br /&gt;
  read failcount &amp;lt; $FAILCOUNTFILE       # If it exist then there is a number in.&lt;br /&gt;
  if [ $count -gt 0 ]; then             # At least one originator with different nexthop exists&lt;br /&gt;
    if [ $failcount -gt 0 ]; then       # We'r lucky, everything is fine again!&lt;br /&gt;
      echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
      exit&lt;br /&gt;
    fi&lt;br /&gt;
  else                                  # no nexthop different than originator exists &lt;br /&gt;
    failcount=$(($failcount+1))&lt;br /&gt;
    if [ $failcount -ge $MAXFAILCOUNT ]; then&lt;br /&gt;
      echo 0 &amp;gt; $FAILCOUNTFILE                   # Reset counter before reboot&lt;br /&gt;
      logread &amp;gt; /etc/mesh0_failcount_lastwords_`date +&amp;quot;%Y-%m-%d_%H%M&amp;quot;`  # DEBUG info&lt;br /&gt;
      sync&lt;br /&gt;
      reboot&lt;br /&gt;
    fi &lt;br /&gt;
    echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
  fi&lt;br /&gt;
else&lt;br /&gt;
  echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Script wird dann noch ausführbar gemacht:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /root/check_mesh.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Via &amp;quot;crontab -e&amp;quot; führt dann folgender Eintrag zur Ausführung zu jeder vollen Minute:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* * * * * /root/check_mesh.sh &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wichtig ist, dass ein ausreichender Zeitraum zum Aufbau des Mesh-Netzes nach dem Reboot verbleibt. 10 Minuten (MAXFAILCOUNT) sollten hierzu ausreichen.&lt;br /&gt;
&lt;br /&gt;
Im /etc -Verzeichnis (das wurde gewählt, da Änderungen hier einen Neustart überleben) sind dann solche Reboot-Ereignisse ablesbar:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -al | grep failcount&lt;br /&gt;
-rw-r--r--    1 root     root             0 Oct 26 06:22 mesh0_failcount_2015-10_26_0622&lt;br /&gt;
-rw-r--r--    1 root     root             0 Oct 29 08:12 mesh0_failcount_2015-10-29_0812&lt;br /&gt;
-rw-r--r--    1 root     root             0 Oct 30 21:59 mesh0_failcount_2015-10-30_2159&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Vorfälle traten unregelmäßig alle paar Tage auf, wurden aber durch das Script abgefangen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Client-WLAN nachts automatisch ausstellen ==&lt;br /&gt;
&lt;br /&gt;
In Jugendherbergen oder Flüchtlingsheimen kann es durch rücksichts- oder gedankenloses Verhalten einzelner Gäste oder Bewohner zu akkustischen Beeinträchtigungen kommen, die durch temporäres Ausschalten des WLAN-Client-Netzes vermindert werden können. Damit kann natürlich nicht verhindert werden, dass einzelne Bewohner sich einen eigenen Freifunk-Router konfigurieren und ins Mesh-Netz hängen - das wäre ja sogar erwünscht. Folgendes Script ''restrict_client_access.sh'' ermöglicht das Abschalten in den frühen Morgenstunden (d.h. vor 0 Uhr abzuschalten ist hier nicht berücksichtigt). Es ist bisher für TP-Link TL-WR841-ND, sowie mit TL-WDR4300 und TL-WDR3600 mit der aktuellen Firmware v1.4 getestet. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash&lt;br /&gt;
&lt;br /&gt;
STOP_HOUR=0   # needs to be smaller than START_HOUR!!!&lt;br /&gt;
START_HOUR=7  # disable client0 network device if it's active &lt;br /&gt;
              # and hour is between STOP_HOUR and START_HOUR &lt;br /&gt;
&lt;br /&gt;
hour=`date +&amp;quot;%H&amp;quot;`&lt;br /&gt;
&lt;br /&gt;
ip addr list client0 &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
if [ $? -eq 0 ]; then                   # client network is on&lt;br /&gt;
  if [ $hour -lt ${START_HOUR} -a $hour -ge ${STOP_HOUR} ]; then        # turn it off&lt;br /&gt;
    uci set wireless.client_radio0.disabled=1&lt;br /&gt;
    uci set wireless.client_radio1.disabled=1                           # additional 5GHz wifi exists (e.g. WDR3600)&lt;br /&gt;
    uci commit wireless&lt;br /&gt;
    /etc/init.d/network restart&lt;br /&gt;
  fi&lt;br /&gt;
else                                    # client network is off&lt;br /&gt;
  if [ $hour -ge ${START_HOUR} -o $hour -lt ${STOP_HOUR} ]; then        # turn it on &lt;br /&gt;
    uci set wireless.client_radio0.disabled=0&lt;br /&gt;
    uci set wireless.client_radio1.disabled=0                           # additional 5GHz wifi exists (e.g WDR3600)&lt;br /&gt;
    uci commit wireless        &lt;br /&gt;
    /etc/init.d/network restart&lt;br /&gt;
  fi&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Script kann z.B. einfach im /root/ -Verzeichnis abgelegt werden. Via &amp;quot;crontab -e&amp;quot; führt dann folgender Eintrag zur Ausführung zu jeder vollen Minute:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* * * * * /root/restrict_client_access.sh &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Hinweis:''' Die uci- sowie das Restart-Kommando dürfen nicht ausserhalb der if-Bedingungen das Script ''vereinfachen'', da sie jeweils nur bei einmaligem Umstellen täglich ausgeführt werden dürfen. Sonst verliert man jede Minute das Netz...&lt;br /&gt;
&lt;br /&gt;
'''Wichtig ''': Der NTP-Dienst bei Mesh-Only-Routern muss ggf. erst (oder nochmal) nach der hergestellten Mesh-Verbindung durchgestartet werden, da NTP keine großen Zeitsprünge macht. Das kan z.B. durch folgenden Eintrag via Crontab automatisiert werden (hier: zur vollen Minute 8, die ggf. nach längerer Auszeit auch zunächst falsch sein kann):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
8 * * * * /etc/init.d/sysntpd restart &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Besser wäre hier ein Script, dass nach dem erfolgreichen Herstellen einer Mesh-Verbindung zum Uplink den ndtd einmal durchstartet, damit die Zeit initial synchronisiert wird.&lt;br /&gt;
&lt;br /&gt;
== Client-WLAN an Mesh-Only-Routern nur aktivieren, wenn Mesh-WLAN vorhanden ist ==&lt;br /&gt;
&lt;br /&gt;
Bei Routern, die selbst keinen Uplink haben und deshalb davon abhängig sind mit Nachbarn zu meshen, kann das Freifunk-Client-WLAN ausgestellt werden, wenn kein Mesh-Link (und damit auch kein entfernter Uplink) greifbar ist.&lt;br /&gt;
&lt;br /&gt;
Folgendes Script kann in ''/root/client-off-if-mesh-off.sh'' abgelegt (und via ''chmod +x /root/client-off-if-mesh-off.sh'' ausführbar gemacht) werden, das dann via cron regelmäßig aufgerufen wird:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash                                                                                          &lt;br /&gt;
&lt;br /&gt;
FAILCOUNTFILE=/var/run/mesh0_nogatewaycount&lt;br /&gt;
MAXFAILCOUNT=2&lt;br /&gt;
&lt;br /&gt;
# check mesh connections with different originators and nexthops, MAC is 17 chars long&lt;br /&gt;
batctl gwl | grep -q &amp;quot;No gateways in range&amp;quot;&lt;br /&gt;
no_gw=$?&lt;br /&gt;
&lt;br /&gt;
if [ -f $FAILCOUNTFILE ]; then          # Does the failcount file exist at all?&lt;br /&gt;
  read failcount &amp;lt; $FAILCOUNTFILE       # If it exist then there is a number in.&lt;br /&gt;
  if [ ${no_gw} -eq 1 ]; then           # There is a gateway&lt;br /&gt;
    if [ $failcount -gt 0 ]; then       # We'r lucky, it is fine again, we decrease the failcount&lt;br /&gt;
      failcount=$(($failcount-1))&lt;br /&gt;
      echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
      if [ $failcount -eq 0 ]; then&lt;br /&gt;
        # turn on client network &lt;br /&gt;
        uci set wireless.client_radio0.disabled=0&lt;br /&gt;
        uci commit wireless&lt;br /&gt;
        wifi&lt;br /&gt;
      fi&lt;br /&gt;
      exit&lt;br /&gt;
    fi&lt;br /&gt;
  else                                  # no nexthop different than originator exists &lt;br /&gt;
    failcount=$(($failcount+1))&lt;br /&gt;
    if [ $failcount -eq $MAXFAILCOUNT ]; then&lt;br /&gt;
      # logread &amp;gt; /etc/mesh0_failcount_no-mesh_`date +&amp;quot;%Y-%m-%d_%H%M&amp;quot;`  # DEBUG info&lt;br /&gt;
      # turn off client network &lt;br /&gt;
      uci set wireless.client_radio0.disabled=1&lt;br /&gt;
      uci commit wireless&lt;br /&gt;
      wifi&lt;br /&gt;
    fi&lt;br /&gt;
    if [ $failcount -le $MAXFAILCOUNT ]; then ## only memorize failcounts up to MAXFAILCOUNT &lt;br /&gt;
      echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
    fi&lt;br /&gt;
  fi&lt;br /&gt;
else&lt;br /&gt;
  echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Via &amp;quot;crontab -e&amp;quot; führt dann folgender Eintrag zur Ausführung zu jeder vollen Minute:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* * * * * /root/client-off-if-mesh-off.sh &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das obige Script ist dahingehend optimiert, dass nur bei Änderungen des Mesh-Status Daten auf den Flash-Speicher geschrieben werden. Für TP-Link WR 841ND wurde obiges Script getestet.&lt;br /&gt;
&lt;br /&gt;
== Freifunk-Monitor: Router-Status per E-Mail ==&lt;br /&gt;
&lt;br /&gt;
Ich zitiere mal von der Mailingliste - das ganze ist in der Testphase und ich werde den Wiki-Eintrag später noch entsprechend Überarbeiten.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Hallo, Liebe Mitstreiter!&lt;br /&gt;
&lt;br /&gt;
Wir alle arbeiten daran, unser Netz besser, schneller und stabiler zu machen.&lt;br /&gt;
&lt;br /&gt;
Axel und ich möchten unseren Teil beitragen.&lt;br /&gt;
&lt;br /&gt;
Deshalb entwickeln wir den Freifunk-Monitor – eine kleine Software, die Betreiber von Freifunk-Routern auf Wunsch per E-Mail benachrichtigt, wenn ein- oder mehrere seiner Knoten seitens der Karte nicht erreichbar scheinen.&lt;br /&gt;
&lt;br /&gt;
Dieser Service muss derzeit explizit auf einem Router mit mindestens Gluon 1.4 via SSH angeschaltet werden (es gibt derzeit keine Web-Oberfläche).&lt;br /&gt;
&lt;br /&gt;
Wir laden hiermit alle Router-Betreiber ein, den Monitor zu testen!&lt;br /&gt;
&lt;br /&gt;
Rechnet damit, schlimmstenfalls zu viele oder ungerechtfertigte E-Mails vom Monitor zu bekommen - wir testen die Software noch.&lt;br /&gt;
&lt;br /&gt;
Wie ihr das wieder abschaltet steht unten.&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
Kommando zum Monitoring einschalten (Achtung, was folgt ist EINE Zeile):&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;if uci:get_first('gluon-node-info', 'owner', 'send_alerts', '') ~= '' then return true end&amp;quot; &amp;gt; /lib/gluon/announce/nodeinfo.d/send_alerts ; uci set gluon-node-info.@owner[0].send_alerts=1 ; uci commit&lt;br /&gt;
&lt;br /&gt;
Kommando zum E-Mail-Adresse setzen (falls nicht schon geschehen):&lt;br /&gt;
&lt;br /&gt;
uci set gluon-node-info.@owner[0].contact=ff@cocoanuts.org; uci commit&lt;br /&gt;
&lt;br /&gt;
Kommando zum E-Mail-Adresse prüfen:&lt;br /&gt;
&lt;br /&gt;
uci get gluon-node-info.@owner[0].contact&lt;br /&gt;
&lt;br /&gt;
Kommando zum Monitoring abschalten:&lt;br /&gt;
&lt;br /&gt;
uci set gluon-node-info.@owner[0].send_alerts=0 ; uci commit&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
Frohes Freifunken,&lt;br /&gt;
&lt;br /&gt;
    KaterMikesch &amp;amp; G3ntleman&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Pimp_my_Node&amp;diff=4639</id>
		<title>Pimp my Node</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Pimp_my_Node&amp;diff=4639"/>
		<updated>2016-05-27T02:27:35Z</updated>

		<summary type="html">&lt;p&gt;Took: wikifi&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Mitmachen]]&lt;br /&gt;
&lt;br /&gt;
Hier finden sich interessante Optionen für etwas versiertere Nutzer. Diese Seite wurde größtenteils für die Classic Firmware geschrieben. Wer Gluon verwendet sollte unbedingt auch Gluon spezifische Resourcen, wie http://gluon.readthedocs.org , zu Rate ziehen. &lt;br /&gt;
&lt;br /&gt;
Die Möglichkeiten und Abweichungen von der Default-Konfiguration sind vielfältig. Diese sollten aber nur dann durchgeführt werden, wenn der Durchführende genau weiß was er da macht. Eine fehlerhaft Konfiguration kann zum Beispiel zu Störungen im Netzwerk führen, ferner könnten illegitime Maßnahmen implementiert werden. Beide zuvor genannten Beispiele würden zu einem Ausschluss aus unserem Netzwerk führen. Dennoch kann man gute Gründe haben die ein Abweichen von den Defaultwerten sinnvoll machen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Netztheorie/Technik und Entwicklung ==&lt;br /&gt;
Vertiefung&lt;br /&gt;
&lt;br /&gt;
*[[FSM-Dynamisches-Bridging]] &lt;br /&gt;
*[[Batman_adv]]&lt;br /&gt;
*[[Entwicklung]]&lt;br /&gt;
*[[Firmware|Firmware/Betriebssystem]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arbeiten auf der Shell ==&lt;br /&gt;
Vorraussetzung für folgende Befehle sind eine Verbindung mit dem KBU Freifunk Netz sowie ein Terminal / Shell. &lt;br /&gt;
Vergesst nicht eth0 gegen die Bezeichnung eures Netzwerkinterfaces, welches am Freifunk hängt zu tauschen. &lt;br /&gt;
Bei Macbooks via Wlan z.B. &amp;quot;en1&amp;quot; statt &amp;quot;eth0&amp;quot;! Die link local Adresse der jeweiligen node findet ihr auf der [http://register.kbu.freifunk.net KBU Register] Seite. Um Dateien auf dem Node ändern zu können, steht als einziger Editor ''vi'' bzw. ''vim'' zur Verfügung.&lt;br /&gt;
 &lt;br /&gt;
Zusätzlich zu den auf dieser Seite erläuterten Modifikationen gibt es im [https://github.com/freifunk-gluon/gluon/wiki/Commandline-administration Github-Wiki der Freifunk-Gluon-Firmware eine ausführliche Liste nützlicher Befehle ].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Firmware aktualisieren ===&lt;br /&gt;
==== Node mit uplink ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@&amp;lt;link local Adresse des Nodes&amp;gt;%eth0              // SSH Verbindung zum Node aufbauen, eth0 ist das lokale Interface, ggf. durch wlan0 etc. ersetzen&lt;br /&gt;
cd ../tmp/                                              // in das Verzeichnis &amp;quot;tmp&amp;quot; wechseln&lt;br /&gt;
free                                                    // Freien Speicher prüfen&lt;br /&gt;
wget http://pfad/zur/firmware.bin                       // Firmware herunterladen und dann&lt;br /&gt;
sysupgrade -v firmware.bin                              // Firmware-Upgrade durchführen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Achtung''': Beim Download der Firmware via wget kann auf dem Router die Integrität der Firmware nicht geprüft werden, da gpg i.d.R. auf den Routern nicht verfügbar ist. Deshalb ist es sicherer, den oben beschriebenen Weg zu wählen, oder die geprüfte Firmware per scp (s.u.) auf den Router zu kopieren. &lt;br /&gt;
&lt;br /&gt;
==== Node ohne uplink (mesh node) ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp -6 -v -r firmware.bin root@\[&amp;lt;link local Adresse des Nodes&amp;gt;%eth0\]:../tmp/          // Firmware auf den node schieben (md5 checken!)&lt;br /&gt;
ssh root@&amp;lt;link local Adresse des Nodes&amp;gt;%eth0 &lt;br /&gt;
cd ../tmp/  &lt;br /&gt;
sysupgrade -v firmware.bin  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Upgrade von inkompatibler Konfiguration (Lagacy auf Gluon, wechsel der hood, etc.) ====&lt;br /&gt;
Bei einem upgrade von einer inkompatiblen Version mittels &amp;lt;code&amp;gt;sysupgrade&amp;lt;/code&amp;gt; muss man normalerweise mittels&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysupgrade -n firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
die aktuellen Settings überschreiben lassen. Auf einem Node den man nur per ssh erreicht ist das unpraktisch, da auch Passwörter und ssh keys gelöscht werden. Zum Glück hat &amp;lt;code&amp;gt;sysupgrade&amp;lt;/code&amp;gt; einen interaktiven Modus, den man per&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysupgrade -i firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
startet. Hier kann man (nachdem man bestätigt hat, das ein Teil der Konfiguration übernommen werden soll) die Liste an zu sichernden Dingen bearbeiten. Die gluon-node-info (geo-Koordinaten und Kontaktadresse) so wie vor allem die drobbear/*keys sollte man behalten, evtl auch system mit dem host name des Nodes, der Rest kann gelöscht werden, falls man da keine wichtigen Anpassungen vorgenommen hat. ('dd' löscht Zeilen in vi ;)&lt;br /&gt;
&lt;br /&gt;
Je nach Route zum Router kann es sein, dass die ssh Verbindung abbricht während des interactiven upgrades. Genauer passiert das, wenn man nur durch einen VPN Tunnel Verbindung hat. (Nicht fleißig am Backbone mitgearbeitet? ;) Das ist blöd, weil man am Ende noch den Neustart bestätigen muss (etwas unsinniger weise). In diesem Fall sollte man besser eine config datei mit z.B. folgenden Zeilen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/etc/dropbear/authorized_keys&lt;br /&gt;
/etc/dropbear/dropbear_dss_host_key&lt;br /&gt;
/etc/dropbear/dropbear_rsa_host_key&lt;br /&gt;
/etc/config/gluon-node-info&lt;br /&gt;
/etc/config/system&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
erstellen und per &amp;lt;code&amp;gt;tar -cz config  &amp;amp;gt; config.tar.gz&amp;lt;/code&amp;gt; packen. Danach kann man mittels&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysupgrade -f config.tar.gz firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
das ganze unattended laufen lassen.&lt;br /&gt;
&lt;br /&gt;
==== Node ''zu Fuß'' updaten ====&lt;br /&gt;
Wenn man physikalischen Zugriff auf den Freifunk-Router hat, kann man auch einfach in den [[Config_Mode]] wechseln und dort über das entsprechende Menü eine neue Freifunk-Firmware hochladen. Hierbei kann man wählen, ob man die ggf. geänderte Konfiguration beibehalten möchte (upgrade-Image) oder alles von Grund auf neu installiert/konfiguriert. Ggf. muss man zuvor noch ein Root-Passwort setzen, damit das Update möglich wird.&lt;br /&gt;
&lt;br /&gt;
==== via TFTP  ====&lt;br /&gt;
Wenn mal ein Router nicht mehr bootet, aber der Bootloader noch funktioniert, (oder man einfach keinen Bock auf das Stock Webinterface hat) kann man häufig noch per tftp recht komfortabel eine neue Firmware einspielen. [http://wiki.openwrt.org/doc/howto/generic.flashing.tftp] ;)&lt;br /&gt;
&lt;br /&gt;
* tftp server auf dem lokalen Rechner installieren (Kurzfassung von z.B. [http://www.cyberciti.biz/faq/install-configure-tftp-server-ubuntu-debian-howto/])&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install tftpd-hpa&lt;br /&gt;
sudo chown -R tftp /srv/tftp/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Config anpassen &amp;amp; neustarten. Das &amp;quot;-c create file&amp;quot; braucht man um vom router Dateien zu senden (config sichern), &amp;quot;-s&amp;quot; da sonst absolute Pfade angegeben werden müssten (macht der Router natürlich nicht). Mehr zu den Optionen findet man auf der [http://linux.die.net/man/8/tftpd man page].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vim /etc/default/tftpd-hpa&lt;br /&gt;
&lt;br /&gt;
TFTP_USERNAME=&amp;quot;tftp&amp;quot;&lt;br /&gt;
TFTP_DIRECTORY=&amp;quot;/srv/tftp&amp;quot;&lt;br /&gt;
TFTP_ADDRESS=&amp;quot;0.0.0.0:69&amp;quot;&lt;br /&gt;
TFTP_OPTIONS=&amp;quot;-s -c&amp;quot;&lt;br /&gt;
&lt;br /&gt;
service tftpd-hpa restart &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Dann muss man noch herausfinden auf welcher IP der Router nach welchem Dateinamen Fragt. Eine gute Quelle ist openWRT, z.B. für den beliebten tl-wr841n wäre finden sich die Infos je nach Version [http://wiki.openwrt.org/toh/tp-link/tl-wr841nd#tftp_recovery_via_bootloader_for_v8_v9_v10_v11 hier].&lt;br /&gt;
&lt;br /&gt;
Falls noch Fragen offen bleiben, [https://www.freifunk-bingen.de/forum/hilfe-unterst%C3%BCtzung/flashen-eines-gebrickten-tp-link-routers-tftp die $Anderen wissen auch was]. ;)&lt;br /&gt;
&lt;br /&gt;
=== Hostnamen des Nodes ändern ===&lt;br /&gt;
Standardmäßig ist der Hostname des Nodes gleich der MAC-Adresse des Routers. Möchte man den Hostnamen ändern, so kann man dies per ssh&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set system.@system[0].hostname=what-ever-dude&lt;br /&gt;
uci commit&lt;br /&gt;
reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Änderung wird erst nach dem Kommando ''reboot'' (danach startet der Node neu) wirksam.&lt;br /&gt;
&lt;br /&gt;
=== IPv6 ping ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ping6 &amp;lt;link local Adresse des Nodes&amp;gt;%eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== IPv6 ssh ===&lt;br /&gt;
Hinter der link local Adresse &amp;quot;%&amp;quot; + &amp;quot;Netzwerk Interface an eurer Kiste&amp;quot; (Hier im Beispiel eth0)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@&amp;lt;link local Adresse des Nodes&amp;gt;%eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Paßwort-Authentifizierung abstellen ===&lt;br /&gt;
'''Wichtig:''' Als erstes prüfen, ob man sich mit seinem Schlüsselpaar auf den Router einloggen kann. Man sollte jetzt nicht mehr nach dem Paßwort gefragt werden (allerhöchstens nach dem Paßwort, welches den privaten Schlüssel schützt).&lt;br /&gt;
Falls das erfolgreich funktioniert, kann man die Datei ''/etc/config/dropbear'' wie folgt ändern:&lt;br /&gt;
&amp;lt;pre&amp;gt;config dropbear&lt;br /&gt;
        option PasswordAuth 'off'&lt;br /&gt;
        option RootPasswordAuth 'off'&lt;br /&gt;
        option Port         '22'&lt;br /&gt;
#       option BannerFile   '/etc/banner'&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nach einem Neustart des Routers mittels ''reboot'' sollte es jetzt nur noch möglich sein, sich mit seinem Schlüsselpaar auf den Rotuer einzuloggen.&lt;br /&gt;
&lt;br /&gt;
=== SSH public key auf Node aufspielen ===&lt;br /&gt;
Möchte man sich nicht immer per Paßwort auf den eigenen Node verbinden, so kann man das auch mit einem Schlüsselpaar realisieren. Falls man danach noch die Authentifizierung per Paßwort abschaltet (s. nächster Punkt), dann hat man einen sicheren Zugriff auf seinen Node realisiert.&lt;br /&gt;
Voraussetzung ist natürlich, dass man schon ein gültiges Schlüsselpaar besitzt. Falls dem so ist, so genügt es, den öffentlichen Schlüssel (public key) auf den Node zu übertragen. Das kann mit Hilfe von scp (secure copy) passieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp -6 id_rsa4096.pub root@[&amp;lt;link local Adresse des Nodes&amp;gt;%eth0]:/etc/dropbear/authorized_keys&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hierbei steht id_rsa.pub für die Datei, die den public key enthält. '''ACHTUNG:''' Obiger Befehl ersetzt die eventuell schon vorhandene Datei authorized_keys auf dem Node. Das ist ok für den ersten Key. Sollen mehrere Keys eingetragen werden (z. B. weil man außer vom Laptop auch vom Tablet auf seinen Node verbinden möchte), kann man das so machen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat ~/.ssh/id_rsa4096.pub | ssh root@[&amp;lt;link local Adresse des Nodes&amp;gt;%eth0] 'umask 077; cat &amp;gt;&amp;gt;.ssh/authorized_keys'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollte beim Kopierversuch die Meldung&lt;br /&gt;
&amp;lt;pre&amp;gt;ssh: Could not resolve hostname fe80:&amp;lt;/pre&amp;gt;&lt;br /&gt;
erscheinen, hat man höchstwahrscheinlich die eckigen Klammern um die IP-Adresse inklusive Interface vergessen. Dann wird der erste Doppelpunkt schon als Ende des Hostnamens interpretiert! Auch hier werden die Änderungen nach einem Neustart des Routers mittels ''reboot'' übernommen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Node überträgt keine Statistiken ===&lt;br /&gt;
Auf der [https://kbu.freifunk.net/cserv Cserv Seite] könnt ihr prüfen, ob eurer Node bereits Statistiken übermittelt.&lt;br /&gt;
==== ntp-Bug in Firmware 1.2.1b beseitigen ====&lt;br /&gt;
Falls sich ein Node-Betreiber wundert, warum sein Node keine Statistiken liefert und es ein Mesh-Only-Node ist (d. h. ohne eigenen Uplink zum Internet), so liegt das an einem Bug in der Firmware. Diesen kann man jedoch mit einfachen Mitteln beheben:&lt;br /&gt;
Editiert wird die Datei ''/etc/config/system''. Dort findet man einen Eintrag ''config timeserver 'ntp'''. Defaultmäßig stehen hier 4 Zeitserver von openwrt (in der Form x.openwrt.pool.ntp.org). Diese müssen bei Mesh-Only-Nodes in IPv6-Adressen geändert werden, und zwar, dass der komplette Konfigurationspunkt wie folgt aussieht:&lt;br /&gt;
&amp;lt;pre&amp;gt;config timeserver 'ntp'&lt;br /&gt;
        list server '2a03:4000:2:494::2'&lt;br /&gt;
        list server '2a01:4f8:161:2461:e4::1'&lt;br /&gt;
        list server '2a02:180:1:1::551f:bb4b'&lt;br /&gt;
        option enabled '1'&lt;br /&gt;
        option enable_server '0'&amp;lt;/pre&amp;gt;&lt;br /&gt;
Auch hier werden die Änderungen erst nach einem Neustart des Nodes mittels ''reboot'' wirksam.&lt;br /&gt;
Dieser Bug soll mit dem nächsten Firmware-Release behoben sein. Man kann die Eintragungen auch in den Nodes mit Internet-Uplink ändern ohne die Funktion zu beeinträchtigen.&lt;br /&gt;
&lt;br /&gt;
==== Collectd prüfen ====&lt;br /&gt;
Falls es durch das beheben des ntp-Bug noch immer nicht zum übertragen der Statistiken kommt, überprüft mal die Einstellungen eures Collectd. Es kann sein das beim Firmware Update diese Config nicht geupdatet wurde und eine veraltet IPV6 Adresse noch vorhanden ist, so sollte es sein:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vim /etc/collectd.conf                             // Config Datei für Collectd zum bearbeiten öffnen&lt;br /&gt;
&lt;br /&gt;
Zeile 39-44:    &lt;br /&gt;
&amp;lt;Plugin ping&amp;gt;                     &lt;br /&gt;
        TTL 127                   &lt;br /&gt;
        Interval 30                         &lt;br /&gt;
        Host &amp;quot;fdd3:5d16:b5dd:3::6&amp;quot;                 // Diesen Eintrag auf Übereinstimmmung prüfen      &lt;br /&gt;
&amp;lt;/Plugin&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Zeile 46-50:&lt;br /&gt;
&amp;lt;Plugin network&amp;gt;                                        &lt;br /&gt;
        Server &amp;quot;fdd3:5d16:b5dd:3::6&amp;quot; &amp;quot;25827&amp;quot;       // Diesen Eintrag auf Übereinstimmmung prüfen                 &lt;br /&gt;
        Forward false                                   &lt;br /&gt;
&amp;lt;/Plugin&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LAN Kopplung ===&lt;br /&gt;
Eine LAN Kopplung kann in manchen Fällen sinnvoll sein, besonders wenn man einen VLAN fähigen Switch und eine bestehende Ntzwerkverkabelung hat. Hier werden die Switchports angwiesen auch über LAN zu meshen.&lt;br /&gt;
&lt;br /&gt;
==== TL-WR841ND ====&lt;br /&gt;
03/2014: Hier wird über die alle 4 LAN Ports gemeshed, Mesh über WLAN kann man optional noch ausschalten! Folgende Config stammt von rampone/FF-KBU und wurde an 2 TL-WR841N v.8 getestet mit KBU-FF-Firmware 1.1.&lt;br /&gt;
&lt;br /&gt;
05/2015: Verifiziert (und ergänzt) für TL-WR841N v.9 und KBU-FF-Firmware 1.2.2rc3 .&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/network'' - Folgende Änderungen wurden an der FF-Firmware vorgenommen:&lt;br /&gt;
#config interface 'freifunk' -&amp;gt; Hier haben wir das ethX-Interface aus &amp;quot;ifname&amp;quot; rausgenommen, damit kein ff aus dem ethX (switch) rauskommt (X=1 für Hardware bis einschließlich v8, sonst X=0).&lt;br /&gt;
#config interface 'mesh_lan' -&amp;gt; kompl. codeblock hinzugefügt, dieser bewirkt das über ethX (switch) gemeshed wird. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config interface 'loopback'&lt;br /&gt;
	option ifname 'lo'&lt;br /&gt;
	option proto 'static'&lt;br /&gt;
	option ipaddr '127.0.0.1'&lt;br /&gt;
	option netmask '255.0.0.0'&lt;br /&gt;
&lt;br /&gt;
config interface 'wan'&lt;br /&gt;
	option ifname 'eth0'&lt;br /&gt;
	option proto 'dhcp'&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option accept_ra '0'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
&lt;br /&gt;
config switch&lt;br /&gt;
	option name 'switch0'&lt;br /&gt;
	option reset '1'&lt;br /&gt;
	option enable_vlan '1'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'switch0'&lt;br /&gt;
	option vlan '1'&lt;br /&gt;
	option ports '0 1 2 3 4'&lt;br /&gt;
&lt;br /&gt;
config interface 'freifunk'&lt;br /&gt;
	option ifname 'bat0'		#LAN-Kopplung: ifname eth1 (bzw. eth0, s.o.) entfernt&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option proto 'none'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option accept_ra '1'&lt;br /&gt;
	option macaddr '10:fe:ed:f1:53:84'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mtu '1528'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_vpn'&lt;br /&gt;
	option ifname 'mesh-vpn'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
	option macaddr '12:fe:ed:f2:53:84'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_lan'		#LAN-Kopplung: Codeblock mesh-lan hinzugefuegt&lt;br /&gt;
	option ifname 'eth0'            # ab TL-841N(D) v9: eth0, bis v8: eth1 . Bei falschem Interface läuft das mesh-lan über den blauen Port. Wer's mag...&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/wireless'' - Hier wird der Codeblock, der für das Mesh über WLAN verantwortlich ist auskommentiert (optional)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#config wifi-iface 'wifi_mesh'&lt;br /&gt;
#       option device 'radio0'&lt;br /&gt;
#       option network 'mesh'&lt;br /&gt;
#       option mode 'adhoc'&lt;br /&gt;
#       option ssid '02:d1:11:37:fc:39'&lt;br /&gt;
#       option bssid '02:d1:11:37:fc:39&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TL-WDR4300 ====&lt;br /&gt;
Das gleiche nochmal für den 4300er&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/network''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config interface 'loopback'&lt;br /&gt;
	option ifname 'lo'&lt;br /&gt;
	option proto 'static'&lt;br /&gt;
	option ipaddr '127.0.0.1'&lt;br /&gt;
	option netmask '255.0.0.0'&lt;br /&gt;
&lt;br /&gt;
config interface 'wan'&lt;br /&gt;
	option ifname 'eth0.2'&lt;br /&gt;
	option proto 'dhcp'&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option accept_ra '0'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option macaddr 'a2:f3:c1:65:81:cd'&lt;br /&gt;
&lt;br /&gt;
config switch&lt;br /&gt;
	option name 'eth0'&lt;br /&gt;
	option reset '1'&lt;br /&gt;
	option enable_vlan '1'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'eth0'&lt;br /&gt;
	option vlan '1'&lt;br /&gt;
	option ports '0t 2 3 4 5'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'eth0'&lt;br /&gt;
	option vlan '2'&lt;br /&gt;
	option ports '0t 1'&lt;br /&gt;
&lt;br /&gt;
config interface 'freifunk'&lt;br /&gt;
	option ifname 'bat0'		#LAN-Kopplung: ifname eth0.1 entfernt&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option proto 'none'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option accept_ra '1'&lt;br /&gt;
	option macaddr 'a0:f3:c1:64:81:cc'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mtu '1528'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_vpn'&lt;br /&gt;
	option ifname 'mesh-vpn'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
	option macaddr 'a2:f3:c1:65:81:cc'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_lan'		#LAN-Kopplung: Codeblock mesh-lan hinzugefuegt&lt;br /&gt;
        option ifname 'eth0.1'&lt;br /&gt;
        option proto 'batadv'&lt;br /&gt;
        option mesh 'bat0'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einsperren des Freifunk-Routers in eine DMZ ==&lt;br /&gt;
&lt;br /&gt;
Wer seinen Freifunk-Router einsperren und/oder die Bandbreite begrenzen möchte, kann dies am einfachsten tun, indem er ihn an seiner Firewall an einen eigenen Netzwerkport klemmt und diesen dann als DMZ konfiguriert. Ein KBU-Freifunk-Router muß zur Zeit im LAN DHCP, DNS, im Internet NTP sowie mit den [[fastd]]-Knoten reden können. Folgendes Bespiel für eine iptables-Firewall nimmt an, dass der Freifunk-Router über eth2 angeschlossen ist:&lt;br /&gt;
&lt;br /&gt;
 # eth2 darf nur dns, ntp, dhcp und ansonsten mit den fastdX reden&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p udp --dport 67:68 --sport 67:68 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p udp --dport 67:68 --sport 67:68 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p udp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p tcp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p udp --dport 123                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p udp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p tcp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p udp --dport 123                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 176.9.41.253                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 176.9.41.253                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 178.63.59.41                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 178.63.59.41                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 37.120.169.214               -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 37.120.169.214               -j ACCEPT &lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 37.221.195.47                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 37.221.195.47                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 78.46.68.75                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 78.46.68.75                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 84.201.35.206                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 84.201.35.206                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT                                      -j DROP&lt;br /&gt;
 iptables -i eth2 -A FORWARD                                    -j DROP&lt;br /&gt;
 # eth2 darf maximal 2000 kbit/s ein- und ausgehenden traffic machen&lt;br /&gt;
 wondershaper eth2 2000 2000&lt;br /&gt;
&lt;br /&gt;
Prinzipiell könnte man den Traffic noch weiter einschränken. DHCP und DNS müssen nur zum DHCP- bzw. DNS-Server funktionieren und der Traffic zu den fastd-Servern ließe sich auf TCP Port 80 und UDP Port 10000 begrenzen.&lt;br /&gt;
&lt;br /&gt;
===Alternative: Einsperren im VLAN===&lt;br /&gt;
siehe: [[FF-Router einsperren im VLAN]]&lt;br /&gt;
&lt;br /&gt;
== Weboberfläche aktivieren ==&lt;br /&gt;
&lt;br /&gt;
Im Normalbetrieb ist erst mal kein Zugriff notwendig (und auch erst mal nicht vorgesehen). Das läuft einfach! ;-) Und es gibt im Normalbetrieb eben auch kein Webinterface, welches Sicherheitslücken haben könnte.&lt;br /&gt;
&lt;br /&gt;
Zum ersten Konfigurieren schaltet mal den Router in einen Konfig-Modus. Der Router nimmt dann in diesem Modus nicht mehr am Freifunknetzwerk teil. Nun kann man dann Rechner an die LAN Ports des Freifunkrouters anschließen und über ein Webinterface per Browser den Router konfigurieren oder Updaten. Das sollte aber nur ganz selten notwendig sein. Nach einem Reboot des Routers geht das Gerät dann wieder in den Freifunk-Modus mit deinen Konfigurationsänderungen.&lt;br /&gt;
&lt;br /&gt;
Wenn man Spaß am Basteln hat kann man das Webinterface aber auch im Normalbetrieb aktivieren. Für die Absicherung muss man dann aber selber sorgen denn per Default ist das nicht abgesichert. Hier die Anleitung nach [http://wiki.freifunk.in-kiel.de/wiki/Firmware Freifunk Kiel], um auf die Weboberfläche zu gelangen:&lt;br /&gt;
&lt;br /&gt;
Das Webinterface des Routers ist nicht über die Link-Local-Adresse, sondern nur über die generelle IPv6 Adresse des Routers zu erreichen. Die IPv6-Adresse bekommt man über SSH (s. [[Pimp_my_Node#IPv6_ssh|IPv6 ssh]] auf den Router:&lt;br /&gt;
  ssh root@LinkLocalIPv6adresse_des_routers%Interface&lt;br /&gt;
Die generelle IPv6-Adresse erfährt man durch Eingabe von&lt;br /&gt;
  ifconfig | grep Global&lt;br /&gt;
Die IPv6-Adresse (&amp;quot;inet6 adr&amp;quot;) kann man nun im Browser in eckigen Klammern und vorangestelltem &amp;quot;http://&amp;quot; aufrufen (zum Beispiel: http://[2001:67c:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx]/) und gelangt so zum Webinterface LuCI.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
 uci delete uhttpd.main.listen_http&lt;br /&gt;
 uci delete uhttpd.main.listen_https&lt;br /&gt;
 &lt;br /&gt;
 uci add_list uhttpd.main.listen_http='[::]:80'&lt;br /&gt;
 uci add_list uhttpd.main.listen_http='0.0.0.0:80'&lt;br /&gt;
 uci add_list uhttpd.main.listen_https='[::]:80'&lt;br /&gt;
 uci add_list uhttpd.main.listen_https='0.0.0.0:80'&lt;br /&gt;
 &lt;br /&gt;
 uci commit uhttpd&lt;br /&gt;
 &lt;br /&gt;
 /etc/init.d/uhttpd enable&lt;br /&gt;
&lt;br /&gt;
== Uplink mit Android-Tethering/USB Netzwerkkarte ==&lt;br /&gt;
(ssh Zugang Erfahrung nötig)&lt;br /&gt;
&lt;br /&gt;
Das ganze sei von Anfang an als &amp;quot;sportlich&amp;quot; zu betrachten. Leider sind mobile 3g/LTE Tarife fast ausnahmslos nach einem bestimmten Volumen gedrosselt (üblicherweise auf 64 bis 56 kbit/s (neuere NetzclubSim sogar auf 32 kbit/s), Ausnahme bilden hier nur LTE Zuhause &amp;quot;DSL&amp;quot; Ersatz Tarife -&amp;gt; 386kbit/s).&lt;br /&gt;
Da Freifunk auch bei Nichtbenutzung Daten überträgt, ist nur bei LTE Zuhause Tarifen interessant dies als Dauerlösung zu nutzen. Dort ist aber wiederum meist ein LTE-Router vor Ort und man den Router auch &amp;quot;traditionell&amp;quot; via LAN Kabel anbinden.&lt;br /&gt;
Bei Benutzung als uplink bei Strassenfesten/Festivals etc. ist wahrscheinlich, dass erstens das Datenvolumen schnell aufgebraucht sein wird und zweitens ab einer bestimmten Größe auch das 3g Netz vor Ort überlastet ist. Wenn man es dennoch machen will (mehrere Sim Karten/spezieller hochvolumiger Tarif/Netzbetreiber gesponserter Uplink (träum)), sollte man die Benutzung von LTE erwägen. Auch dort könnten aber durch zukünftige Adapation Überlasterscheinungen auftreten. Desweitern nutzen 2g/3g/4g auch dasselbe Backbone, welcher dann auch für LTE ein Flaschenhals darstellt.&lt;br /&gt;
Muss nochmal nachprüfen, aber wenn, dann nicht uninteressant: Der Wlan Zugang des Telefons (CM7) wurde per tethering weitergeleitet und bei Abschalten gab es fallback auf 3g -&amp;gt; nicht schöne, aber einfache &amp;quot;Immer&amp;quot;netzlösung?  Mein Tablet zeigt nicht dieses Verhalten.)&lt;br /&gt;
&lt;br /&gt;
Blablabla, jetzt geht es los:&lt;br /&gt;
Das ganze habe ich mit einem 1043ND und einem droid 2.3CM7 Telefon und einem droid 2.2 Tablet ausprobiert, sollte aber auf jeglichen OpenWrt Router mit USB, Android USB tethering fähigem Gerät und einfachen USB ethernet Adaptern (nachprüfen!!!) funktionieren:&lt;br /&gt;
&lt;br /&gt;
- Per ssh in den router einloggen&lt;br /&gt;
- Installieren der notwendigen Treiber&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
opkg update&lt;br /&gt;
opkg install kmod-usb-uhci kmod-usb-net-rndis&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies sollte, falls ihr noch keine USB Unterstützung in der Firmware hat auch diese über dependencies nachinstallieren. (nachprüfen!!!)&lt;br /&gt;
&lt;br /&gt;
- Ihr müsst den Netzwerkzugang für da neue Interface &amp;quot;usb0&amp;quot; noch konfigurieren. Unter /etc/config/network fügt ihr z.B. folgendes hinzu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config interface 'wan2'&lt;br /&gt;
       option ifname 'usb0'&lt;br /&gt;
       option proto 'dhcp'&lt;br /&gt;
       option type 'bridge'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch unter Luci sollte dies konfigurierbar sein. &lt;br /&gt;
&lt;br /&gt;
- Nach einem Neustart und einem angeschlossenen Gerät sollte nun der Uplink via dem USB Netzwerk Gerät/Android tethering funktionieren.&lt;br /&gt;
- Sollte das Gerät erst später angeschlossen werden, so könnt ihr mit folgendem Befehl das Netzwerkgerät starten.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifup wan2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(Dies ist noch nicht ein perfektes Tutorial, werde es nochmal durchprobieren. Einen UMTS Stick hatte ich auf Anhieb noch nicht zum laufen gebracht. Auch scheint Multiwan in OpenWRT eine interessante Sache)&lt;br /&gt;
&lt;br /&gt;
== Zusätzlich zum Freifunk auch privates WLAN einrichten ==&lt;br /&gt;
&lt;br /&gt;
Es ist möglich ein privates WLAN anzulegen, das mit dem WAN Port gebridged und separat zum Mesh Netzwerk ist. (Bitte beachten, dass Mesh on Wan nicht zeitgleich mit aktiviert werden sollte.) &lt;br /&gt;
Effekt: Das private WLAN wird erweitert, zeitgleich fungiert der Router als Freifunk-Router. Die Netze sind voneinander abgekoppelt.&lt;br /&gt;
Das private WLAN kann per SSH in der Konsole aktiviert werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set wireless.wan_radio0=wifi-iface&lt;br /&gt;
uci set wireless.wan_radio0.device=radio0&lt;br /&gt;
uci set wireless.wan_radio0.network=wan&lt;br /&gt;
uci set wireless.wan_radio0.mode=ap&lt;br /&gt;
uci set wireless.wan_radio0.encryption=psk2&lt;br /&gt;
uci set wireless.wan_radio0.ssid=&amp;quot;$SSID&amp;quot;&lt;br /&gt;
uci set wireless.wan_radio0.key=&amp;quot;$KEY&amp;quot;&lt;br /&gt;
uci set wireless.wan_radio0.disabled=0&lt;br /&gt;
uci commit&lt;br /&gt;
wifi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Bitte ersetze $SSID mit dem Namen deines Heimnetzwerks und $KEY mit deinem bisher üblichen Key (der vom privaten Router). Falls dein Router beide Frequenzbänder unterstützt(2.4 und 5 Ghz) und du in beiden auch privates WLAN aktivieren möchtest, muss dies für radio0 und radio1 mit übernommen werden.&lt;br /&gt;
Zum deaktivieren des Ganzen wie folgt vorgehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set wireless.wan_radio0.disabled=1&lt;br /&gt;
uci commit&lt;br /&gt;
wifi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Automatischer Neustart bei längerem Mesh-Verlust, quick hack (and improved hack) zur Analyse ==&lt;br /&gt;
&lt;br /&gt;
Bei der Vernetzung von Notunterkünften mit Gluon-Beta (via Euskirchen) ist bei einem CPE210-Uplink aufgefallen, dass sämtliche Mesh-Verbindungen über Stunden ausgefallen waren. Es war zunächst unklar, ob überwiegend die Stromversorgung ursächlich ist, insbesondere da der Uplink-Router mehrfach betroffen und trotzdem via VPN erreichbar war. Dabei war dann nur ein Mesh mit sich selbst via &amp;quot;batctl o&amp;quot; sichtbar. Einzelne Mesh-Only-Router zeigten ebenfalls (selten) Ausfälle über mehrere Stunden: teilweise Nachts, wo Renovierungsarbeiten nicht die Ursache sein konnten.&lt;br /&gt;
&lt;br /&gt;
Um längere Ausfälle zu vermeiden wurde folgendes Script unter /root/check_mesh.sh abgelegt, das via cron-Job automatisch jede Minute ausgeführt wird und nach 10 Minuten ohne Mesh-Verbindung einen Reboot auslöst:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash&lt;br /&gt;
&lt;br /&gt;
FAILCOUNTFILE=/var/run/mesh0_failcount&lt;br /&gt;
MAXFAILCOUNT=10&lt;br /&gt;
&lt;br /&gt;
# check mesh connections with different originators and nexthops, MAC is 17 chars long&lt;br /&gt;
count=`batctl o | awk '/mesh0/{originator=substr($0,1,17); nexthop=substr($0,37,17); if (originator != nexthop){print originator&amp;quot; &amp;quot;nexthop}}' | wc -l`&lt;br /&gt;
&lt;br /&gt;
if [ $count -gt 1 ]; then  ## more than a single mesh with itself is left&lt;br /&gt;
  echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
else&lt;br /&gt;
  if [ -f $FAILCOUNTFILE ]; then  &lt;br /&gt;
    read failcount &amp;lt; $FAILCOUNTFILE&lt;br /&gt;
    failcount=$(($failcount+1))&lt;br /&gt;
    if [ $failcount -ge $MAXFAILCOUNT ]; then&lt;br /&gt;
      touch /etc/mesh0_failcount_`date +&amp;quot;%Y-%m-%d_%H%M&amp;quot;`&lt;br /&gt;
      sync&lt;br /&gt;
      reboot&lt;br /&gt;
    fi &lt;br /&gt;
    echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
  else&lt;br /&gt;
    echo 1 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
  fi&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es muss (hier mit awk, s.o.) nach _unterschiedlichen_ Werten für Originator und NextHop ausschau gehalten werden, denn bei einem fehlenden Mesh zwischen zwei Knoten meshen die Knoten noch mit sich selbst:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# batctl o | grep mesh0&lt;br /&gt;
62:e6:28:24:5f:52    0.730s   (  6) 62:e6:28:24:5f:52 [     mesh0]: 62:e6:28:24:5f:52 (  6)&lt;br /&gt;
62:e6:28:72:32:48    0.730s   (  8) 62:e6:28:72:32:48 [     mesh0]: 62:e6:28:72:32:48 (  8)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das war lesbar und einfach, aber wegen ständiger Schreibzugriffe schlecht für die Lebensdauer der Flash-Speicher. Besser also nur schreiben wenn Fehler passieren, etwa so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash&lt;br /&gt;
&lt;br /&gt;
FAILCOUNTFILE=/var/run/mesh0_failcount&lt;br /&gt;
MAXFAILCOUNT=10&lt;br /&gt;
&lt;br /&gt;
# check mesh connections with different originators and nexthops, MAC is 17 chars long&lt;br /&gt;
count=`batctl o | awk '/mesh0/{originator=substr($0,1,17); nexthop=substr($0,37,17); if (originator != nexthop){print originator&amp;quot; &amp;quot;nexthop}}' | wc -l`&lt;br /&gt;
&lt;br /&gt;
if [ -f $FAILCOUNTFILE ]; then          # Does the failcount file exist at all?&lt;br /&gt;
  read failcount &amp;lt; $FAILCOUNTFILE       # If it exist then there is a number in.&lt;br /&gt;
  if [ $count -gt 0 ]; then             # At least one originator with different nexthop exists&lt;br /&gt;
    if [ $failcount -gt 0 ]; then       # We'r lucky, everything is fine again!&lt;br /&gt;
      echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
      exit&lt;br /&gt;
    fi&lt;br /&gt;
  else                                  # no nexthop different than originator exists &lt;br /&gt;
    failcount=$(($failcount+1))&lt;br /&gt;
    if [ $failcount -ge $MAXFAILCOUNT ]; then&lt;br /&gt;
      echo 0 &amp;gt; $FAILCOUNTFILE                   # Reset counter before reboot&lt;br /&gt;
      logread &amp;gt; /etc/mesh0_failcount_lastwords_`date +&amp;quot;%Y-%m-%d_%H%M&amp;quot;`  # DEBUG info&lt;br /&gt;
      sync&lt;br /&gt;
      reboot&lt;br /&gt;
    fi &lt;br /&gt;
    echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
  fi&lt;br /&gt;
else&lt;br /&gt;
  echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Script wird dann noch ausführbar gemacht:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /root/check_mesh.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Via &amp;quot;crontab -e&amp;quot; führt dann folgender Eintrag zur Ausführung zu jeder vollen Minute:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* * * * * /root/check_mesh.sh &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wichtig ist, dass ein ausreichender Zeitraum zum Aufbau des Mesh-Netzes nach dem Reboot verbleibt. 10 Minuten (MAXFAILCOUNT) sollten hierzu ausreichen.&lt;br /&gt;
&lt;br /&gt;
Im /etc -Verzeichnis (das wurde gewählt, da Änderungen hier einen Neustart überleben) sind dann solche Reboot-Ereignisse ablesbar:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -al | grep failcount&lt;br /&gt;
-rw-r--r--    1 root     root             0 Oct 26 06:22 mesh0_failcount_2015-10_26_0622&lt;br /&gt;
-rw-r--r--    1 root     root             0 Oct 29 08:12 mesh0_failcount_2015-10-29_0812&lt;br /&gt;
-rw-r--r--    1 root     root             0 Oct 30 21:59 mesh0_failcount_2015-10-30_2159&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Vorfälle traten unregelmäßig alle paar Tage auf, wurden aber durch das Script abgefangen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Client-WLAN nachts automatisch ausstellen ==&lt;br /&gt;
&lt;br /&gt;
In Jugendherbergen oder Flüchtlingsheimen kann es durch rücksichts- oder gedankenloses Verhalten einzelner Gäste oder Bewohner zu akkustischen Beeinträchtigungen kommen, die durch temporäres Ausschalten des WLAN-Client-Netzes vermindert werden können. Damit kann natürlich nicht verhindert werden, dass einzelne Bewohner sich einen eigenen Freifunk-Router konfigurieren und ins Mesh-Netz hängen - das wäre ja sogar erwünscht. Folgendes Script ''restrict_client_access.sh'' ermöglicht das Abschalten in den frühen Morgenstunden (d.h. vor 0 Uhr abzuschalten ist hier nicht berücksichtigt). Es ist bisher für TP-Link TL-WR841-ND, sowie mit TL-WDR4300 und TL-WDR3600 mit der aktuellen Firmware v1.4 getestet. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash&lt;br /&gt;
&lt;br /&gt;
STOP_HOUR=0   # needs to be smaller than START_HOUR!!!&lt;br /&gt;
START_HOUR=7  # disable client0 network device if it's active &lt;br /&gt;
              # and hour is between STOP_HOUR and START_HOUR &lt;br /&gt;
&lt;br /&gt;
hour=`date +&amp;quot;%H&amp;quot;`&lt;br /&gt;
&lt;br /&gt;
ip addr list client0 &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
if [ $? -eq 0 ]; then                   # client network is on&lt;br /&gt;
  if [ $hour -lt ${START_HOUR} -a $hour -ge ${STOP_HOUR} ]; then        # turn it off&lt;br /&gt;
    uci set wireless.client_radio0.disabled=1&lt;br /&gt;
    uci set wireless.client_radio1.disabled=1                           # additional 5GHz wifi exists (e.g. WDR3600)&lt;br /&gt;
    uci commit wireless&lt;br /&gt;
    /etc/init.d/network restart&lt;br /&gt;
  fi&lt;br /&gt;
else                                    # client network is off&lt;br /&gt;
  if [ $hour -ge ${START_HOUR} -o $hour -lt ${STOP_HOUR} ]; then        # turn it on &lt;br /&gt;
    uci set wireless.client_radio0.disabled=0&lt;br /&gt;
    uci set wireless.client_radio1.disabled=0                           # additional 5GHz wifi exists (e.g WDR3600)&lt;br /&gt;
    uci commit wireless        &lt;br /&gt;
    /etc/init.d/network restart&lt;br /&gt;
  fi&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Script kann z.B. einfach im /root/ -Verzeichnis abgelegt werden. Via &amp;quot;crontab -e&amp;quot; führt dann folgender Eintrag zur Ausführung zu jeder vollen Minute:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* * * * * /root/restrict_client_access.sh &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Hinweis:''' Die uci- sowie das Restart-Kommando dürfen nicht ausserhalb der if-Bedingungen das Script ''vereinfachen'', da sie jeweils nur bei einmaligem Umstellen täglich ausgeführt werden dürfen. Sonst verliert man jede Minute das Netz...&lt;br /&gt;
&lt;br /&gt;
'''Wichtig ''': Der NTP-Dienst bei Mesh-Only-Routern muss ggf. erst (oder nochmal) nach der hergestellten Mesh-Verbindung durchgestartet werden, da NTP keine großen Zeitsprünge macht. Das kan z.B. durch folgenden Eintrag via Crontab automatisiert werden (hier: zur vollen Minute 8, die ggf. nach längerer Auszeit auch zunächst falsch sein kann):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
8 * * * * /etc/init.d/sysntpd restart &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Besser wäre hier ein Script, dass nach dem erfolgreichen Herstellen einer Mesh-Verbindung zum Uplink den ndtd einmal durchstartet, damit die Zeit initial synchronisiert wird.&lt;br /&gt;
&lt;br /&gt;
== Client-WLAN an Mesh-Only-Routern nur aktivieren, wenn Mesh-WLAN vorhanden ist ==&lt;br /&gt;
&lt;br /&gt;
Bei Routern, die selbst keinen Uplink haben und deshalb davon abhängig sind mit Nachbarn zu meshen, kann das Freifunk-Client-WLAN ausgestellt werden, wenn kein Mesh-Link (und damit auch kein entfernter Uplink) greifbar ist.&lt;br /&gt;
&lt;br /&gt;
Folgendes Script kann in ''/root/client-off-if-mesh-off.sh'' abgelegt (und via ''chmod +x /root/client-off-if-mesh-off.sh'' ausführbar gemacht) werden, das dann via cron regelmäßig aufgerufen wird:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash                                                                                          &lt;br /&gt;
&lt;br /&gt;
FAILCOUNTFILE=/var/run/mesh0_nogatewaycount&lt;br /&gt;
MAXFAILCOUNT=2&lt;br /&gt;
&lt;br /&gt;
# check mesh connections with different originators and nexthops, MAC is 17 chars long&lt;br /&gt;
batctl gwl | grep -q &amp;quot;No gateways in range&amp;quot;&lt;br /&gt;
no_gw=$?&lt;br /&gt;
&lt;br /&gt;
if [ -f $FAILCOUNTFILE ]; then          # Does the failcount file exist at all?&lt;br /&gt;
  read failcount &amp;lt; $FAILCOUNTFILE       # If it exist then there is a number in.&lt;br /&gt;
  if [ ${no_gw} -eq 1 ]; then           # There is a gateway&lt;br /&gt;
    if [ $failcount -gt 0 ]; then       # We'r lucky, it is fine again, we decrease the failcount&lt;br /&gt;
      failcount=$(($failcount-1))&lt;br /&gt;
      echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
      if [ $failcount -eq 0 ]; then&lt;br /&gt;
        # turn on client network &lt;br /&gt;
        uci set wireless.client_radio0.disabled=0&lt;br /&gt;
        uci commit wireless&lt;br /&gt;
        wifi&lt;br /&gt;
      fi&lt;br /&gt;
      exit&lt;br /&gt;
    fi&lt;br /&gt;
  else                                  # no nexthop different than originator exists &lt;br /&gt;
    failcount=$(($failcount+1))&lt;br /&gt;
    if [ $failcount -eq $MAXFAILCOUNT ]; then&lt;br /&gt;
      # logread &amp;gt; /etc/mesh0_failcount_no-mesh_`date +&amp;quot;%Y-%m-%d_%H%M&amp;quot;`  # DEBUG info&lt;br /&gt;
      # turn off client network &lt;br /&gt;
      uci set wireless.client_radio0.disabled=1&lt;br /&gt;
      uci commit wireless&lt;br /&gt;
      wifi&lt;br /&gt;
    fi&lt;br /&gt;
    if [ $failcount -le $MAXFAILCOUNT ]; then ## only memorize failcounts up to MAXFAILCOUNT &lt;br /&gt;
      echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
    fi&lt;br /&gt;
  fi&lt;br /&gt;
else&lt;br /&gt;
  echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Via &amp;quot;crontab -e&amp;quot; führt dann folgender Eintrag zur Ausführung zu jeder vollen Minute:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* * * * * /root/client-off-if-mesh-off.sh &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das obige Script ist dahingehend optimiert, dass nur bei Änderungen des Mesh-Status Daten auf den Flash-Speicher geschrieben werden. Für TP-Link WR 841ND wurde obiges Script getestet.&lt;br /&gt;
&lt;br /&gt;
== Freifunk-Monitor: Router-Status per E-Mail ==&lt;br /&gt;
&lt;br /&gt;
Ich zitiere mal von der Mailingliste - das ganze ist in der Testphase und ich werde den Wiki-Eintrag später noch entsprechend Überarbeiten.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Hallo, Liebe Mitstreiter!&lt;br /&gt;
&lt;br /&gt;
Wir alle arbeiten daran, unser Netz besser, schneller und stabiler zu machen.&lt;br /&gt;
&lt;br /&gt;
Axel und ich möchten unseren Teil beitragen.&lt;br /&gt;
&lt;br /&gt;
Deshalb entwickeln wir den Freifunk-Monitor – eine kleine Software, die Betreiber von Freifunk-Routern auf Wunsch per E-Mail benachrichtigt, wenn ein- oder mehrere seiner Knoten seitens der Karte nicht erreichbar scheinen.&lt;br /&gt;
&lt;br /&gt;
Dieser Service muss derzeit explizit auf einem Router mit mindestens Gluon 1.4 via SSH angeschaltet werden (es gibt derzeit keine Web-Oberfläche).&lt;br /&gt;
&lt;br /&gt;
Wir laden hiermit alle Router-Betreiber ein, den Monitor zu testen!&lt;br /&gt;
&lt;br /&gt;
Rechnet damit, schlimmstenfalls zu viele oder ungerechtfertigte E-Mails vom Monitor zu bekommen - wir testen die Software noch.&lt;br /&gt;
&lt;br /&gt;
Wie ihr das wieder abschaltet steht unten.&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
Kommando zum Monitoring einschalten (Achtung, was folgt ist EINE Zeile):&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;if uci:get_first('gluon-node-info', 'owner', 'send_alerts', '') ~= '' then return true end&amp;quot; &amp;gt; /lib/gluon/announce/nodeinfo.d/send_alerts ; uci set gluon-node-info.@owner[0].send_alerts=1 ; uci commit&lt;br /&gt;
&lt;br /&gt;
Kommando zum E-Mail-Adresse setzen (falls nicht schon geschehen):&lt;br /&gt;
&lt;br /&gt;
uci set gluon-node-info.@owner[0].contact=ff@cocoanuts.org; uci commit&lt;br /&gt;
&lt;br /&gt;
Kommando zum E-Mail-Adresse prüfen:&lt;br /&gt;
&lt;br /&gt;
uci get gluon-node-info.@owner[0].contact&lt;br /&gt;
&lt;br /&gt;
Kommando zum Monitoring abschalten:&lt;br /&gt;
&lt;br /&gt;
uci set gluon-node-info.@owner[0].send_alerts=0 ; uci commit&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
Frohes Freifunken,&lt;br /&gt;
&lt;br /&gt;
    KaterMikesch &amp;amp; G3ntleman&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Pimp_my_Node&amp;diff=4638</id>
		<title>Pimp my Node</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Pimp_my_Node&amp;diff=4638"/>
		<updated>2016-05-27T02:23:31Z</updated>

		<summary type="html">&lt;p&gt;Took: /* Client-WLAN an Mesh-Only-Routern nur aktivieren, wenn Mesh-WLAN vorhanden ist */ spam more &amp;quot;&amp;gt;/dev/null 2&amp;gt;&amp;amp;1&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Mitmachen]]&lt;br /&gt;
&lt;br /&gt;
Hier finden sich interessante Optionen für etwas versiertere Nutzer. Diese Seite wurde größtenteils für die Classic Firmware geschrieben. Wer Gluon verwendet sollte unbedingt auch Gluon spezifische Resourcen, wie http://gluon.readthedocs.org , zu Rate ziehen. &lt;br /&gt;
&lt;br /&gt;
Die Möglichkeiten und Abweichungen von der Default-Konfiguration sind vielfältig. Diese sollten aber nur dann durchgeführt werden, wenn der Durchführende genau weiß was er da macht. Eine fehlerhaft Konfiguration kann zum Beispiel zu Störungen im Netzwerk führen, ferner könnten illegitime Maßnahmen implementiert werden. Beide zuvor genannten Beispiele würden zu einem Ausschluss aus unserem Netzwerk führen. Dennoch kann man gute Gründe haben die ein Abweichen von den Defaultwerten sinnvoll machen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Netztheorie/Technik und Entwicklung ==&lt;br /&gt;
Vertiefung&lt;br /&gt;
&lt;br /&gt;
*[[FSM-Dynamisches-Bridging]] &lt;br /&gt;
*[[Batman_adv]]&lt;br /&gt;
*[[Entwicklung]]&lt;br /&gt;
*[[Firmware|Firmware/Betriebssystem]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arbeiten auf der Shell ==&lt;br /&gt;
Vorraussetzung für folgende Befehle sind eine Verbindung mit dem KBU Freifunk Netz sowie ein Terminal / Shell. &lt;br /&gt;
Vergesst nicht eth0 gegen die Bezeichnung eures Netzwerkinterfaces, welches am Freifunk hängt zu tauschen. &lt;br /&gt;
Bei Macbooks via Wlan z.B. &amp;quot;en1&amp;quot; statt &amp;quot;eth0&amp;quot;! Die link local Adresse der jeweiligen node findet ihr auf der [http://register.kbu.freifunk.net KBU Register] Seite. Um Dateien auf dem Node ändern zu können, steht als einziger Editor ''vi'' bzw. ''vim'' zur Verfügung.&lt;br /&gt;
 &lt;br /&gt;
Zusätzlich zu den auf dieser Seite erläuterten Modifikationen gibt es im [https://github.com/freifunk-gluon/gluon/wiki/Commandline-administration Github-Wiki der Freifunk-Gluon-Firmware eine ausführliche Liste nützlicher Befehle ].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Firmware aktualisieren ===&lt;br /&gt;
==== Node mit uplink ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@&amp;lt;link local Adresse des Nodes&amp;gt;%eth0              // SSH Verbindung zum Node aufbauen, eth0 ist das lokale Interface, ggf. durch wlan0 etc. ersetzen&lt;br /&gt;
cd ../tmp/                                              // in das Verzeichnis &amp;quot;tmp&amp;quot; wechseln&lt;br /&gt;
free                                                    // Freien Speicher prüfen&lt;br /&gt;
wget http://pfad/zur/firmware.bin                       // Firmware herunterladen und dann&lt;br /&gt;
sysupgrade -v firmware.bin                              // Firmware-Upgrade durchführen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Achtung''': Beim Download der Firmware via wget kann auf dem Router die Integrität der Firmware nicht geprüft werden, da gpg i.d.R. auf den Routern nicht verfügbar ist. Deshalb ist es sicherer, den oben beschriebenen Weg zu wählen, oder die geprüfte Firmware per scp (s.u.) auf den Router zu kopieren. &lt;br /&gt;
&lt;br /&gt;
==== Node ohne uplink (mesh node) ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp -6 -v -r firmware.bin root@\[&amp;lt;link local Adresse des Nodes&amp;gt;%eth0\]:../tmp/          // Firmware auf den node schieben (md5 checken!)&lt;br /&gt;
ssh root@&amp;lt;link local Adresse des Nodes&amp;gt;%eth0 &lt;br /&gt;
cd ../tmp/  &lt;br /&gt;
sysupgrade -v firmware.bin  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Upgrade von inkompatibler Konfiguration (Lagacy auf Gluon, wechsel der hood, etc.) ====&lt;br /&gt;
Bei einem upgrade von einer inkompatiblen Version mittels &amp;lt;code&amp;gt;sysupgrade&amp;lt;/code&amp;gt; muss man normalerweise mittels&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysupgrade -n firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
die aktuellen Settings überschreiben lassen. Auf einem Node den man nur per ssh erreicht ist das unpraktisch, da auch Passwörter und ssh keys gelöscht werden. Zum Glück hat &amp;lt;code&amp;gt;sysupgrade&amp;lt;/code&amp;gt; einen interaktiven Modus, den man per&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysupgrade -i firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
startet. Hier kann man (nachdem man bestätigt hat, das ein Teil der Konfiguration übernommen werden soll) die Liste an zu sichernden Dingen bearbeiten. Die gluon-node-info (geo-Koordinaten und Kontaktadresse) so wie vor allem die drobbear/*keys sollte man behalten, evtl auch system mit dem host name des Nodes, der Rest kann gelöscht werden, falls man da keine wichtigen Anpassungen vorgenommen hat. ('dd' löscht Zeilen in vi ;)&lt;br /&gt;
&lt;br /&gt;
Je nach Route zum Router kann es sein, dass die ssh Verbindung abbricht während des interactiven upgrades. Genauer passiert das, wenn man nur durch einen VPN Tunnel Verbindung hat. (Nicht fleißig am Backbone mitgearbeitet? ;) Das ist blöd, weil man am Ende noch den Neustart bestätigen muss (etwas unsinniger weise). In diesem Fall sollte man besser eine config datei mit z.B. folgenden Zeilen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/etc/dropbear/authorized_keys&lt;br /&gt;
/etc/dropbear/dropbear_dss_host_key&lt;br /&gt;
/etc/dropbear/dropbear_rsa_host_key&lt;br /&gt;
/etc/config/gluon-node-info&lt;br /&gt;
/etc/config/system&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
erstellen und per &amp;lt;code&amp;gt;tar -cz config  &amp;amp;gt; config.tar.gz&amp;lt;/code&amp;gt; packen. Danach kann man mittels&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysupgrade -f config.tar.gz firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
das ganze unattended laufen lassen.&lt;br /&gt;
&lt;br /&gt;
==== Node ''zu Fuß'' updaten ====&lt;br /&gt;
Wenn man physikalischen Zugriff auf den Freifunk-Router hat, kann man auch einfach in den [[Config_Mode]] wechseln und dort über das entsprechende Menü eine neue Freifunk-Firmware hochladen. Hierbei kann man wählen, ob man die ggf. geänderte Konfiguration beibehalten möchte (upgrade-Image) oder alles von Grund auf neu installiert/konfiguriert. Ggf. muss man zuvor noch ein Root-Passwort setzen, damit das Update möglich wird.&lt;br /&gt;
&lt;br /&gt;
==== via TFTP  ====&lt;br /&gt;
Wenn mal ein Router nicht mehr bootet, aber der Bootloader noch funktioniert, (oder man einfach keinen Bock auf das Stock Webinterface hat) kann man häufig noch per tftp recht komfortabel eine neue Firmware einspielen. [http://wiki.openwrt.org/doc/howto/generic.flashing.tftp] ;)&lt;br /&gt;
&lt;br /&gt;
* tftp server auf dem lokalen Rechner installieren (Kurzfassung von z.B. [http://www.cyberciti.biz/faq/install-configure-tftp-server-ubuntu-debian-howto/])&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install tftpd-hpa&lt;br /&gt;
sudo chown -R tftp /srv/tftp/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Config anpassen &amp;amp; neustarten. Das &amp;quot;-c create file&amp;quot; braucht man um vom router Dateien zu senden (config sichern), &amp;quot;-s&amp;quot; da sonst absolute Pfade angegeben werden müssten (macht der Router natürlich nicht). Mehr zu den Optionen findet man auf der [http://linux.die.net/man/8/tftpd man page].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vim /etc/default/tftpd-hpa&lt;br /&gt;
&lt;br /&gt;
TFTP_USERNAME=&amp;quot;tftp&amp;quot;&lt;br /&gt;
TFTP_DIRECTORY=&amp;quot;/srv/tftp&amp;quot;&lt;br /&gt;
TFTP_ADDRESS=&amp;quot;0.0.0.0:69&amp;quot;&lt;br /&gt;
TFTP_OPTIONS=&amp;quot;-s -c&amp;quot;&lt;br /&gt;
&lt;br /&gt;
service tftpd-hpa restart &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Dann muss man noch herausfinden auf welcher IP der Router nach welchem Dateinamen Fragt. Eine gute Quelle ist openWRT, z.B. für den beliebten tl-wr841n wäre finden sich die Infos je nach Version [http://wiki.openwrt.org/toh/tp-link/tl-wr841nd#tftp_recovery_via_bootloader_for_v8_v9_v10_v11 hier].&lt;br /&gt;
&lt;br /&gt;
Falls noch Fragen offen bleiben, [https://www.freifunk-bingen.de/forum/hilfe-unterst%C3%BCtzung/flashen-eines-gebrickten-tp-link-routers-tftp die $Anderen wissen auch was]. ;)&lt;br /&gt;
&lt;br /&gt;
=== Hostnamen des Nodes ändern ===&lt;br /&gt;
Standardmäßig ist der Hostname des Nodes gleich der MAC-Adresse des Routers. Möchte man den Hostnamen ändern, so kann man dies per ssh&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set system.@system[0].hostname=what-ever-dude&lt;br /&gt;
uci commit&lt;br /&gt;
reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Änderung wird erst nach dem Kommando ''reboot'' (danach startet der Node neu) wirksam.&lt;br /&gt;
&lt;br /&gt;
=== IPv6 ping ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ping6 &amp;lt;link local Adresse des Nodes&amp;gt;%eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== IPv6 ssh ===&lt;br /&gt;
Hinter der link local Adresse &amp;quot;%&amp;quot; + &amp;quot;Netzwerk Interface an eurer Kiste&amp;quot; (Hier im Beispiel eth0)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@&amp;lt;link local Adresse des Nodes&amp;gt;%eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Paßwort-Authentifizierung abstellen ===&lt;br /&gt;
'''Wichtig:''' Als erstes prüfen, ob man sich mit seinem Schlüsselpaar auf den Router einloggen kann. Man sollte jetzt nicht mehr nach dem Paßwort gefragt werden (allerhöchstens nach dem Paßwort, welches den privaten Schlüssel schützt).&lt;br /&gt;
Falls das erfolgreich funktioniert, kann man die Datei ''/etc/config/dropbear'' wie folgt ändern:&lt;br /&gt;
&amp;lt;pre&amp;gt;config dropbear&lt;br /&gt;
        option PasswordAuth 'off'&lt;br /&gt;
        option RootPasswordAuth 'off'&lt;br /&gt;
        option Port         '22'&lt;br /&gt;
#       option BannerFile   '/etc/banner'&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nach einem Neustart des Routers mittels ''reboot'' sollte es jetzt nur noch möglich sein, sich mit seinem Schlüsselpaar auf den Rotuer einzuloggen.&lt;br /&gt;
&lt;br /&gt;
=== SSH public key auf Node aufspielen ===&lt;br /&gt;
Möchte man sich nicht immer per Paßwort auf den eigenen Node verbinden, so kann man das auch mit einem Schlüsselpaar realisieren. Falls man danach noch die Authentifizierung per Paßwort abschaltet (s. nächster Punkt), dann hat man einen sicheren Zugriff auf seinen Node realisiert.&lt;br /&gt;
Voraussetzung ist natürlich, dass man schon ein gültiges Schlüsselpaar besitzt. Falls dem so ist, so genügt es, den öffentlichen Schlüssel (public key) auf den Node zu übertragen. Das kann mit Hilfe von scp (secure copy) passieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp -6 id_rsa4096.pub root@[&amp;lt;link local Adresse des Nodes&amp;gt;%eth0]:/etc/dropbear/authorized_keys&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hierbei steht id_rsa.pub für die Datei, die den public key enthält. '''ACHTUNG:''' Obiger Befehl ersetzt die eventuell schon vorhandene Datei authorized_keys auf dem Node. Das ist ok für den ersten Key. Sollen mehrere Keys eingetragen werden (z. B. weil man außer vom Laptop auch vom Tablet auf seinen Node verbinden möchte), kann man das so machen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat ~/.ssh/id_rsa4096.pub | ssh root@[&amp;lt;link local Adresse des Nodes&amp;gt;%eth0] 'umask 077; cat &amp;gt;&amp;gt;.ssh/authorized_keys'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollte beim Kopierversuch die Meldung&lt;br /&gt;
&amp;lt;pre&amp;gt;ssh: Could not resolve hostname fe80:&amp;lt;/pre&amp;gt;&lt;br /&gt;
erscheinen, hat man höchstwahrscheinlich die eckigen Klammern um die IP-Adresse inklusive Interface vergessen. Dann wird der erste Doppelpunkt schon als Ende des Hostnamens interpretiert! Auch hier werden die Änderungen nach einem Neustart des Routers mittels ''reboot'' übernommen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Node überträgt keine Statistiken ===&lt;br /&gt;
Auf der [https://kbu.freifunk.net/cserv Cserv Seite] könnt ihr prüfen, ob eurer Node bereits Statistiken übermittelt.&lt;br /&gt;
==== ntp-Bug in Firmware 1.2.1b beseitigen ====&lt;br /&gt;
Falls sich ein Node-Betreiber wundert, warum sein Node keine Statistiken liefert und es ein Mesh-Only-Node ist (d. h. ohne eigenen Uplink zum Internet), so liegt das an einem Bug in der Firmware. Diesen kann man jedoch mit einfachen Mitteln beheben:&lt;br /&gt;
Editiert wird die Datei ''/etc/config/system''. Dort findet man einen Eintrag ''config timeserver 'ntp'''. Defaultmäßig stehen hier 4 Zeitserver von openwrt (in der Form x.openwrt.pool.ntp.org). Diese müssen bei Mesh-Only-Nodes in IPv6-Adressen geändert werden, und zwar, dass der komplette Konfigurationspunkt wie folgt aussieht:&lt;br /&gt;
&amp;lt;pre&amp;gt;config timeserver 'ntp'&lt;br /&gt;
        list server '2a03:4000:2:494::2'&lt;br /&gt;
        list server '2a01:4f8:161:2461:e4::1'&lt;br /&gt;
        list server '2a02:180:1:1::551f:bb4b'&lt;br /&gt;
        option enabled '1'&lt;br /&gt;
        option enable_server '0'&amp;lt;/pre&amp;gt;&lt;br /&gt;
Auch hier werden die Änderungen erst nach einem Neustart des Nodes mittels ''reboot'' wirksam.&lt;br /&gt;
Dieser Bug soll mit dem nächsten Firmware-Release behoben sein. Man kann die Eintragungen auch in den Nodes mit Internet-Uplink ändern ohne die Funktion zu beeinträchtigen.&lt;br /&gt;
&lt;br /&gt;
==== Collectd prüfen ====&lt;br /&gt;
Falls es durch das beheben des ntp-Bug noch immer nicht zum übertragen der Statistiken kommt, überprüft mal die Einstellungen eures Collectd. Es kann sein das beim Firmware Update diese Config nicht geupdatet wurde und eine veraltet IPV6 Adresse noch vorhanden ist, so sollte es sein:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vim /etc/collectd.conf                             // Config Datei für Collectd zum bearbeiten öffnen&lt;br /&gt;
&lt;br /&gt;
Zeile 39-44:    &lt;br /&gt;
&amp;lt;Plugin ping&amp;gt;                     &lt;br /&gt;
        TTL 127                   &lt;br /&gt;
        Interval 30                         &lt;br /&gt;
        Host &amp;quot;fdd3:5d16:b5dd:3::6&amp;quot;                 // Diesen Eintrag auf Übereinstimmmung prüfen      &lt;br /&gt;
&amp;lt;/Plugin&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Zeile 46-50:&lt;br /&gt;
&amp;lt;Plugin network&amp;gt;                                        &lt;br /&gt;
        Server &amp;quot;fdd3:5d16:b5dd:3::6&amp;quot; &amp;quot;25827&amp;quot;       // Diesen Eintrag auf Übereinstimmmung prüfen                 &lt;br /&gt;
        Forward false                                   &lt;br /&gt;
&amp;lt;/Plugin&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LAN Kopplung ===&lt;br /&gt;
Eine LAN Kopplung kann in manchen Fällen sinnvoll sein, besonders wenn man einen VLAN fähigen Switch und eine bestehende Ntzwerkverkabelung hat. Hier werden die Switchports angwiesen auch über LAN zu meshen.&lt;br /&gt;
&lt;br /&gt;
==== TL-WR841ND ====&lt;br /&gt;
03/2014: Hier wird über die alle 4 LAN Ports gemeshed, Mesh über WLAN kann man optional noch ausschalten! Folgende Config stammt von rampone/FF-KBU und wurde an 2 TL-WR841N v.8 getestet mit KBU-FF-Firmware 1.1.&lt;br /&gt;
&lt;br /&gt;
05/2015: Verifiziert (und ergänzt) für TL-WR841N v.9 und KBU-FF-Firmware 1.2.2rc3 .&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/network'' - Folgende Änderungen wurden an der FF-Firmware vorgenommen:&lt;br /&gt;
#config interface 'freifunk' -&amp;gt; Hier haben wir das ethX-Interface aus &amp;quot;ifname&amp;quot; rausgenommen, damit kein ff aus dem ethX (switch) rauskommt (X=1 für Hardware bis einschließlich v8, sonst X=0).&lt;br /&gt;
#config interface 'mesh_lan' -&amp;gt; kompl. codeblock hinzugefügt, dieser bewirkt das über ethX (switch) gemeshed wird. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config interface 'loopback'&lt;br /&gt;
	option ifname 'lo'&lt;br /&gt;
	option proto 'static'&lt;br /&gt;
	option ipaddr '127.0.0.1'&lt;br /&gt;
	option netmask '255.0.0.0'&lt;br /&gt;
&lt;br /&gt;
config interface 'wan'&lt;br /&gt;
	option ifname 'eth0'&lt;br /&gt;
	option proto 'dhcp'&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option accept_ra '0'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
&lt;br /&gt;
config switch&lt;br /&gt;
	option name 'switch0'&lt;br /&gt;
	option reset '1'&lt;br /&gt;
	option enable_vlan '1'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'switch0'&lt;br /&gt;
	option vlan '1'&lt;br /&gt;
	option ports '0 1 2 3 4'&lt;br /&gt;
&lt;br /&gt;
config interface 'freifunk'&lt;br /&gt;
	option ifname 'bat0'		#LAN-Kopplung: ifname eth1 (bzw. eth0, s.o.) entfernt&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option proto 'none'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option accept_ra '1'&lt;br /&gt;
	option macaddr '10:fe:ed:f1:53:84'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mtu '1528'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_vpn'&lt;br /&gt;
	option ifname 'mesh-vpn'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
	option macaddr '12:fe:ed:f2:53:84'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_lan'		#LAN-Kopplung: Codeblock mesh-lan hinzugefuegt&lt;br /&gt;
	option ifname 'eth0'            # ab TL-841N(D) v9: eth0, bis v8: eth1 . Bei falschem Interface läuft das mesh-lan über den blauen Port. Wer's mag...&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/wireless'' - Hier wird der Codeblock, der für das Mesh über WLAN verantwortlich ist auskommentiert (optional)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#config wifi-iface 'wifi_mesh'&lt;br /&gt;
#       option device 'radio0'&lt;br /&gt;
#       option network 'mesh'&lt;br /&gt;
#       option mode 'adhoc'&lt;br /&gt;
#       option ssid '02:d1:11:37:fc:39'&lt;br /&gt;
#       option bssid '02:d1:11:37:fc:39&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TL-WDR4300 ====&lt;br /&gt;
Das gleiche nochmal für den 4300er&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/network''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config interface 'loopback'&lt;br /&gt;
	option ifname 'lo'&lt;br /&gt;
	option proto 'static'&lt;br /&gt;
	option ipaddr '127.0.0.1'&lt;br /&gt;
	option netmask '255.0.0.0'&lt;br /&gt;
&lt;br /&gt;
config interface 'wan'&lt;br /&gt;
	option ifname 'eth0.2'&lt;br /&gt;
	option proto 'dhcp'&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option accept_ra '0'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option macaddr 'a2:f3:c1:65:81:cd'&lt;br /&gt;
&lt;br /&gt;
config switch&lt;br /&gt;
	option name 'eth0'&lt;br /&gt;
	option reset '1'&lt;br /&gt;
	option enable_vlan '1'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'eth0'&lt;br /&gt;
	option vlan '1'&lt;br /&gt;
	option ports '0t 2 3 4 5'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'eth0'&lt;br /&gt;
	option vlan '2'&lt;br /&gt;
	option ports '0t 1'&lt;br /&gt;
&lt;br /&gt;
config interface 'freifunk'&lt;br /&gt;
	option ifname 'bat0'		#LAN-Kopplung: ifname eth0.1 entfernt&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option proto 'none'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option accept_ra '1'&lt;br /&gt;
	option macaddr 'a0:f3:c1:64:81:cc'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mtu '1528'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_vpn'&lt;br /&gt;
	option ifname 'mesh-vpn'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
	option macaddr 'a2:f3:c1:65:81:cc'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_lan'		#LAN-Kopplung: Codeblock mesh-lan hinzugefuegt&lt;br /&gt;
        option ifname 'eth0.1'&lt;br /&gt;
        option proto 'batadv'&lt;br /&gt;
        option mesh 'bat0'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einsperren des Freifunk-Routers in eine DMZ ==&lt;br /&gt;
&lt;br /&gt;
Wer seinen Freifunk-Router einsperren und/oder die Bandbreite begrenzen möchte, kann dies am einfachsten tun, indem er ihn an seiner Firewall an einen eigenen Netzwerkport klemmt und diesen dann als DMZ konfiguriert. Ein KBU-Freifunk-Router muß zur Zeit im LAN DHCP, DNS, im Internet NTP sowie mit den [[fastd]]-Knoten reden können. Folgendes Bespiel für eine iptables-Firewall nimmt an, dass der Freifunk-Router über eth2 angeschlossen ist:&lt;br /&gt;
&lt;br /&gt;
 # eth2 darf nur dns, ntp, dhcp und ansonsten mit den fastdX reden&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p udp --dport 67:68 --sport 67:68 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p udp --dport 67:68 --sport 67:68 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p udp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p tcp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p udp --dport 123                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p udp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p tcp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p udp --dport 123                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 176.9.41.253                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 176.9.41.253                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 178.63.59.41                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 178.63.59.41                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 37.120.169.214               -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 37.120.169.214               -j ACCEPT &lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 37.221.195.47                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 37.221.195.47                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 78.46.68.75                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 78.46.68.75                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 84.201.35.206                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 84.201.35.206                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT                                      -j DROP&lt;br /&gt;
 iptables -i eth2 -A FORWARD                                    -j DROP&lt;br /&gt;
 # eth2 darf maximal 2000 kbit/s ein- und ausgehenden traffic machen&lt;br /&gt;
 wondershaper eth2 2000 2000&lt;br /&gt;
&lt;br /&gt;
Prinzipiell könnte man den Traffic noch weiter einschränken. DHCP und DNS müssen nur zum DHCP- bzw. DNS-Server funktionieren und der Traffic zu den fastd-Servern ließe sich auf TCP Port 80 und UDP Port 10000 begrenzen.&lt;br /&gt;
&lt;br /&gt;
===Alternative: Einsperren im VLAN===&lt;br /&gt;
siehe: [[FF-Router einsperren im VLAN]]&lt;br /&gt;
&lt;br /&gt;
== Weboberfläche aktivieren ==&lt;br /&gt;
&lt;br /&gt;
Im Normalbetrieb ist erst mal kein Zugriff notwendig (und auch erst mal nicht vorgesehen). Das läuft einfach! ;-) Und es gibt im Normalbetrieb eben auch kein Webinterface, welches Sicherheitslücken haben könnte.&lt;br /&gt;
&lt;br /&gt;
Zum ersten Konfigurieren schaltet mal den Router in einen Konfig-Modus. Der Router nimmt dann in diesem Modus nicht mehr am Freifunknetzwerk teil. Nun kann man dann Rechner an die LAN Ports des Freifunkrouters anschließen und über ein Webinterface per Browser den Router konfigurieren oder Updaten. Das sollte aber nur ganz selten notwendig sein. Nach einem Reboot des Routers geht das Gerät dann wieder in den Freifunk-Modus mit deinen Konfigurationsänderungen.&lt;br /&gt;
&lt;br /&gt;
Wenn man Spaß am Basteln hat kann man das Webinterface aber auch im Normalbetrieb aktivieren. Für die Absicherung muss man dann aber selber sorgen denn per Default ist das nicht abgesichert. Hier die Anleitung nach [http://wiki.freifunk.in-kiel.de/wiki/Firmware Freifunk Kiel], um auf die Weboberfläche zu gelangen:&lt;br /&gt;
&lt;br /&gt;
Das Webinterface des Routers ist nicht über die Link-Local-Adresse, sondern nur über die generelle IPv6 Adresse des Routers zu erreichen. Die IPv6-Adresse bekommt man über SSH (s. [[Pimp_my_Node#IPv6_ssh|IPv6 ssh]] auf den Router:&lt;br /&gt;
  ssh root@LinkLocalIPv6adresse_des_routers%Interface&lt;br /&gt;
Die generelle IPv6-Adresse erfährt man durch Eingabe von&lt;br /&gt;
  ifconfig | grep Global&lt;br /&gt;
Die IPv6-Adresse (&amp;quot;inet6 adr&amp;quot;) kann man nun im Browser in eckigen Klammern und vorangestelltem &amp;quot;http://&amp;quot; aufrufen (zum Beispiel: http://[2001:67c:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx]/) und gelangt so zum Webinterface LuCI.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
 uci delete uhttpd.main.listen_http&lt;br /&gt;
 uci delete uhttpd.main.listen_https&lt;br /&gt;
 &lt;br /&gt;
 uci add_list uhttpd.main.listen_http='[::]:80'&lt;br /&gt;
 uci add_list uhttpd.main.listen_http='0.0.0.0:80'&lt;br /&gt;
 uci add_list uhttpd.main.listen_https='[::]:80'&lt;br /&gt;
 uci add_list uhttpd.main.listen_https='0.0.0.0:80'&lt;br /&gt;
 &lt;br /&gt;
 uci commit uhttpd&lt;br /&gt;
 &lt;br /&gt;
 /etc/init.d/uhttpd enable&lt;br /&gt;
&lt;br /&gt;
== Uplink mit Android-Tethering/USB Netzwerkkarte ==&lt;br /&gt;
(ssh Zugang Erfahrung nötig)&lt;br /&gt;
&lt;br /&gt;
Das ganze sei von Anfang an als &amp;quot;sportlich&amp;quot; zu betrachten. Leider sind mobile 3g/LTE Tarife fast ausnahmslos nach einem bestimmten Volumen gedrosselt (üblicherweise auf 64 bis 56 kbit/s (neuere NetzclubSim sogar auf 32 kbit/s), Ausnahme bilden hier nur LTE Zuhause &amp;quot;DSL&amp;quot; Ersatz Tarife -&amp;gt; 386kbit/s).&lt;br /&gt;
Da Freifunk auch bei Nichtbenutzung Daten überträgt, ist nur bei LTE Zuhause Tarifen interessant dies als Dauerlösung zu nutzen. Dort ist aber wiederum meist ein LTE-Router vor Ort und man den Router auch &amp;quot;traditionell&amp;quot; via LAN Kabel anbinden.&lt;br /&gt;
Bei Benutzung als uplink bei Strassenfesten/Festivals etc. ist wahrscheinlich, dass erstens das Datenvolumen schnell aufgebraucht sein wird und zweitens ab einer bestimmten Größe auch das 3g Netz vor Ort überlastet ist. Wenn man es dennoch machen will (mehrere Sim Karten/spezieller hochvolumiger Tarif/Netzbetreiber gesponserter Uplink (träum)), sollte man die Benutzung von LTE erwägen. Auch dort könnten aber durch zukünftige Adapation Überlasterscheinungen auftreten. Desweitern nutzen 2g/3g/4g auch dasselbe Backbone, welcher dann auch für LTE ein Flaschenhals darstellt.&lt;br /&gt;
Muss nochmal nachprüfen, aber wenn, dann nicht uninteressant: Der Wlan Zugang des Telefons (CM7) wurde per tethering weitergeleitet und bei Abschalten gab es fallback auf 3g -&amp;gt; nicht schöne, aber einfache &amp;quot;Immer&amp;quot;netzlösung?  Mein Tablet zeigt nicht dieses Verhalten.)&lt;br /&gt;
&lt;br /&gt;
Blablabla, jetzt geht es los:&lt;br /&gt;
Das ganze habe ich mit einem 1043ND und einem droid 2.3CM7 Telefon und einem droid 2.2 Tablet ausprobiert, sollte aber auf jeglichen OpenWrt Router mit USB, Android USB tethering fähigem Gerät und einfachen USB ethernet Adaptern (nachprüfen!!!) funktionieren:&lt;br /&gt;
&lt;br /&gt;
- Per ssh in den router einloggen&lt;br /&gt;
- Installieren der notwendigen Treiber&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
opkg update&lt;br /&gt;
opkg install kmod-usb-uhci kmod-usb-net-rndis&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies sollte, falls ihr noch keine USB Unterstützung in der Firmware hat auch diese über dependencies nachinstallieren. (nachprüfen!!!)&lt;br /&gt;
&lt;br /&gt;
- Ihr müsst den Netzwerkzugang für da neue Interface &amp;quot;usb0&amp;quot; noch konfigurieren. Unter /etc/config/network fügt ihr z.B. folgendes hinzu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config interface 'wan2'&lt;br /&gt;
       option ifname 'usb0'&lt;br /&gt;
       option proto 'dhcp'&lt;br /&gt;
       option type 'bridge'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch unter Luci sollte dies konfigurierbar sein. &lt;br /&gt;
&lt;br /&gt;
- Nach einem Neustart und einem angeschlossenen Gerät sollte nun der Uplink via dem USB Netzwerk Gerät/Android tethering funktionieren.&lt;br /&gt;
- Sollte das Gerät erst später angeschlossen werden, so könnt ihr mit folgendem Befehl das Netzwerkgerät starten.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifup wan2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(Dies ist noch nicht ein perfektes Tutorial, werde es nochmal durchprobieren. Einen UMTS Stick hatte ich auf Anhieb noch nicht zum laufen gebracht. Auch scheint Multiwan in OpenWRT eine interessante Sache)&lt;br /&gt;
&lt;br /&gt;
== Zusätzlich zum Freifunk auch privates WLAN einrichten ==&lt;br /&gt;
&lt;br /&gt;
Es ist möglich ein privates WLAN anzulegen, das mit dem WAN Port gebridged und separat zum Mesh Netzwerk ist. (Bitte beachten, dass Mesh on Wan nicht zeitgleich mit aktiviert werden sollte.) &lt;br /&gt;
Effekt: Das private WLAN wird erweitert, zeitgleich fungiert der Router als Freifunk-Router. Die Netze sind voneinander abgekoppelt.&lt;br /&gt;
Das private WLAN kann per SSH in der Konsole aktiviert werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set wireless.wan_radio0=wifi-iface&lt;br /&gt;
uci set wireless.wan_radio0.device=radio0&lt;br /&gt;
uci set wireless.wan_radio0.network=wan&lt;br /&gt;
uci set wireless.wan_radio0.mode=ap&lt;br /&gt;
uci set wireless.wan_radio0.encryption=psk2&lt;br /&gt;
uci set wireless.wan_radio0.ssid=&amp;quot;$SSID&amp;quot;&lt;br /&gt;
uci set wireless.wan_radio0.key=&amp;quot;$KEY&amp;quot;&lt;br /&gt;
uci set wireless.wan_radio0.disabled=0&lt;br /&gt;
uci commit&lt;br /&gt;
wifi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Bitte ersetze $SSID mit dem Namen deines Heimnetzwerks und $KEY mit deinem bisher üblichen Key (der vom privaten Router). Falls dein Router beide Frequenzbänder unterstützt(2.4 und 5 Ghz) und du in beiden auch privates WLAN aktivieren möchtest, muss dies für radio0 und radio1 mit übernommen werden.&lt;br /&gt;
Zum deaktivieren des Ganzen wie folgt vorgehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set wireless.wan_radio0.disabled=1&lt;br /&gt;
uci commit&lt;br /&gt;
wifi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Automatischer Neustart bei längerem Mesh-Verlust, quick hack (and improved hack) zur Analyse ==&lt;br /&gt;
&lt;br /&gt;
Bei der Vernetzung von Notunterkünften mit Gluon-Beta (via Euskirchen) ist bei einem CPE210-Uplink aufgefallen, dass sämtliche Mesh-Verbindungen über Stunden ausgefallen waren. Es war zunächst unklar, ob überwiegend die Stromversorgung ursächlich ist, insbesondere da der Uplink-Router mehrfach betroffen und trotzdem via VPN erreichbar war. Dabei war dann nur ein Mesh mit sich selbst via &amp;quot;batctl o&amp;quot; sichtbar. Einzelne Mesh-Only-Router zeigten ebenfalls (selten) Ausfälle über mehrere Stunden: teilweise Nachts, wo Renovierungsarbeiten nicht die Ursache sein konnten.&lt;br /&gt;
&lt;br /&gt;
Um längere Ausfälle zu vermeiden wurde folgendes Script unter /root/check_mesh.sh abgelegt, das via cron-Job automatisch jede Minute ausgeführt wird und nach 10 Minuten ohne Mesh-Verbindung einen Reboot auslöst:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash&lt;br /&gt;
&lt;br /&gt;
FAILCOUNTFILE=/var/run/mesh0_failcount&lt;br /&gt;
MAXFAILCOUNT=10&lt;br /&gt;
&lt;br /&gt;
# check mesh connections with different originators and nexthops, MAC is 17 chars long&lt;br /&gt;
count=`batctl o | awk '/mesh0/{originator=substr($0,1,17); nexthop=substr($0,37,17); if (originator != nexthop){print originator&amp;quot; &amp;quot;nexthop}}' | wc -l`&lt;br /&gt;
&lt;br /&gt;
if [ $count -gt 1 ]; then  ## more than a single mesh with itself is left&lt;br /&gt;
  echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
else&lt;br /&gt;
  if [ -f $FAILCOUNTFILE ]; then  &lt;br /&gt;
    read failcount &amp;lt; $FAILCOUNTFILE&lt;br /&gt;
    failcount=$(($failcount+1))&lt;br /&gt;
    if [ $failcount -ge $MAXFAILCOUNT ]; then&lt;br /&gt;
      touch /etc/mesh0_failcount_`date +&amp;quot;%Y-%m-%d_%H%M&amp;quot;`&lt;br /&gt;
      sync&lt;br /&gt;
      reboot&lt;br /&gt;
    fi &lt;br /&gt;
    echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
  else&lt;br /&gt;
    echo 1 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
  fi&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es muss (hier mit awk, s.o.) nach _unterschiedlichen_ Werten für Originator und NextHop ausschau gehalten werden, denn bei einem fehlenden Mesh zwischen zwei Knoten meshen die Knoten noch mit sich selbst:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# batctl o | grep mesh0&lt;br /&gt;
62:e6:28:24:5f:52    0.730s   (  6) 62:e6:28:24:5f:52 [     mesh0]: 62:e6:28:24:5f:52 (  6)&lt;br /&gt;
62:e6:28:72:32:48    0.730s   (  8) 62:e6:28:72:32:48 [     mesh0]: 62:e6:28:72:32:48 (  8)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das war lesbar und einfach, aber wegen ständiger Schreibzugriffe schlecht für die Lebensdauer der Flash-Speicher. Besser also nur schreiben wenn Fehler passieren, etwa so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash&lt;br /&gt;
&lt;br /&gt;
FAILCOUNTFILE=/var/run/mesh0_failcount&lt;br /&gt;
MAXFAILCOUNT=10&lt;br /&gt;
&lt;br /&gt;
# check mesh connections with different originators and nexthops, MAC is 17 chars long&lt;br /&gt;
count=`batctl o | awk '/mesh0/{originator=substr($0,1,17); nexthop=substr($0,37,17); if (originator != nexthop){print originator&amp;quot; &amp;quot;nexthop}}' | wc -l`&lt;br /&gt;
&lt;br /&gt;
if [ -f $FAILCOUNTFILE ]; then          # Does the failcount file exist at all?&lt;br /&gt;
  read failcount &amp;lt; $FAILCOUNTFILE       # If it exist then there is a number in.&lt;br /&gt;
  if [ $count -gt 0 ]; then             # At least one originator with different nexthop exists&lt;br /&gt;
    if [ $failcount -gt 0 ]; then       # We'r lucky, everything is fine again!&lt;br /&gt;
      echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
      exit&lt;br /&gt;
    fi&lt;br /&gt;
  else                                  # no nexthop different than originator exists &lt;br /&gt;
    failcount=$(($failcount+1))&lt;br /&gt;
    if [ $failcount -ge $MAXFAILCOUNT ]; then&lt;br /&gt;
      echo 0 &amp;gt; $FAILCOUNTFILE                   # Reset counter before reboot&lt;br /&gt;
      logread &amp;gt; /etc/mesh0_failcount_lastwords_`date +&amp;quot;%Y-%m-%d_%H%M&amp;quot;`  # DEBUG info&lt;br /&gt;
      sync&lt;br /&gt;
      reboot&lt;br /&gt;
    fi &lt;br /&gt;
    echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
  fi&lt;br /&gt;
else&lt;br /&gt;
  echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Script wird dann noch ausführbar gemacht:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /root/check_mesh.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Via &amp;quot;crontab -e&amp;quot; führt dann folgender Eintrag zur Ausführung zu jeder vollen Minute:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* * * * * /root/check_mesh.sh &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wichtig ist, dass ein ausreichender Zeitraum zum Aufbau des Mesh-Netzes nach dem Reboot verbleibt. 10 Minuten (MAXFAILCOUNT) sollten hierzu ausreichen.&lt;br /&gt;
&lt;br /&gt;
Im /etc -Verzeichnis (das wurde gewählt, da Änderungen hier einen Neustart überleben) sind dann solche Reboot-Ereignisse ablesbar:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -al | grep failcount&lt;br /&gt;
-rw-r--r--    1 root     root             0 Oct 26 06:22 mesh0_failcount_2015-10_26_0622&lt;br /&gt;
-rw-r--r--    1 root     root             0 Oct 29 08:12 mesh0_failcount_2015-10-29_0812&lt;br /&gt;
-rw-r--r--    1 root     root             0 Oct 30 21:59 mesh0_failcount_2015-10-30_2159&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Vorfälle traten unregelmäßig alle paar Tage auf, wurden aber durch das Script abgefangen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Client-WLAN nachts automatisch ausstellen ==&lt;br /&gt;
&lt;br /&gt;
In Jugendherbergen oder Flüchtlingsheimen kann es durch rücksichts- oder gedankenloses Verhalten einzelner Gäste oder Bewohner zu akkustischen Beeinträchtigungen kommen, die durch temporäres Ausschalten des WLAN-Client-Netzes vermindert werden können. Damit kann natürlich nicht verhindert werden, dass einzelne Bewohner sich einen eigenen Freifunk-Router konfigurieren und ins Mesh-Netz hängen - das wäre ja sogar erwünscht. Folgendes Script ''restrict_client_access.sh'' ermöglicht das Abschalten in den frühen Morgenstunden (d.h. vor 0 Uhr abzuschalten ist hier nicht berücksichtigt). Es ist bisher für TP-Link TL-WR841-ND, sowie mit TL-WDR4300 und TL-WDR3600 mit der aktuellen Firmware v1.4 getestet. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash&lt;br /&gt;
&lt;br /&gt;
STOP_HOUR=0   # needs to be smaller than START_HOUR!!!&lt;br /&gt;
START_HOUR=7  # disable client0 network device if it's active &lt;br /&gt;
              # and hour is between STOP_HOUR and START_HOUR &lt;br /&gt;
&lt;br /&gt;
hour=`date +&amp;quot;%H&amp;quot;`&lt;br /&gt;
&lt;br /&gt;
ip addr list client0 &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
if [ $? -eq 0 ]; then                   # client network is on&lt;br /&gt;
  if [ $hour -lt ${START_HOUR} -a $hour -ge ${STOP_HOUR} ]; then        # turn it off&lt;br /&gt;
    uci set wireless.client_radio0.disabled=1&lt;br /&gt;
    uci set wireless.client_radio1.disabled=1                           # additional 5GHz wifi exists (e.g. WDR3600)&lt;br /&gt;
    uci commit wireless&lt;br /&gt;
    /etc/init.d/network restart&lt;br /&gt;
  fi&lt;br /&gt;
else                                    # client network is off&lt;br /&gt;
  if [ $hour -ge ${START_HOUR} -o $hour -lt ${STOP_HOUR} ]; then        # turn it on &lt;br /&gt;
    uci set wireless.client_radio0.disabled=0&lt;br /&gt;
    uci set wireless.client_radio1.disabled=0                           # additional 5GHz wifi exists (e.g WDR3600)&lt;br /&gt;
    uci commit wireless        &lt;br /&gt;
    /etc/init.d/network restart&lt;br /&gt;
  fi&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Script kann z.B. einfach im /root/ -Verzeichnis abgelegt werden. Via &amp;quot;crontab -e&amp;quot; führt dann folgender Eintrag zur Ausführung zu jeder vollen Minute:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* * * * * /root/restrict_client_access.sh &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Hinweis:''' Die uci- sowie das Restart-Kommando dürfen nicht ausserhalb der if-Bedingungen das Script ''vereinfachen'', da sie jeweils nur bei einmaligem Umstellen täglich ausgeführt werden dürfen. Sonst verliert man jede Minute das Netz...&lt;br /&gt;
&lt;br /&gt;
'''Wichtig ''': Der NTP-Dienst bei Mesh-Only-Routern muss ggf. erst (oder nochmal) nach der hergestellten Mesh-Verbindung durchgestartet werden, da NTP keine großen Zeitsprünge macht. Das kan z.B. durch folgenden Eintrag via Crontab automatisiert werden (hier: zur vollen Minute 8, die ggf. nach längerer Auszeit auch zunächst falsch sein kann):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
8 * * * * /etc/init.d/sysntpd restart &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Besser wäre hier ein Script, dass nach dem erfolgreichen Herstellen einer Mesh-Verbindung zum Uplink den ndtd einmal durchstartet, damit die Zeit initial synchronisiert wird.&lt;br /&gt;
&lt;br /&gt;
== Client-WLAN an Mesh-Only-Routern nur aktivieren, wenn Mesh-WLAN vorhanden ist ==&lt;br /&gt;
&lt;br /&gt;
Bei Routern, die selbst keinen Uplink haben und deshalb davon abhängig sind mit Nachbarn zu meshen, kann das Freifunk-Client-WLAN ausgestellt werden, wenn kein Mesh-Link (und damit auch kein entfernter Uplink) greifbar ist.&lt;br /&gt;
&lt;br /&gt;
Folgendes Script kann in ''/root/client-off-if-mesh-off.sh'' abgelegt (und via ''chmod +x /root/client-off-if-mesh-off.sh'' ausführbar gemacht) werden, das dann via cron regelmäßig aufgerufen wird:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash                                                                                          &lt;br /&gt;
&lt;br /&gt;
FAILCOUNTFILE=/var/run/mesh0_nogatewaycount&lt;br /&gt;
MAXFAILCOUNT=2&lt;br /&gt;
&lt;br /&gt;
# check mesh connections with different originators and nexthops, MAC is 17 chars long&lt;br /&gt;
batctl gwl | grep -q &amp;quot;No gateways in range&amp;quot;&lt;br /&gt;
no_gw=$?&lt;br /&gt;
&lt;br /&gt;
if [ -f $FAILCOUNTFILE ]; then          # Does the failcount file exist at all?&lt;br /&gt;
  read failcount &amp;lt; $FAILCOUNTFILE       # If it exist then there is a number in.&lt;br /&gt;
  if [ ${no_gw} -eq 1 ]; then           # There is a gateway&lt;br /&gt;
    if [ $failcount -gt 0 ]; then       # We'r lucky, it is fine again, we decrease the failcount&lt;br /&gt;
      failcount=$(($failcount-1))&lt;br /&gt;
      echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
      if [ $failcount -eq 0 ]; then&lt;br /&gt;
        # turn on client network &lt;br /&gt;
        uci set wireless.client_radio0.disabled=0&lt;br /&gt;
        uci commit wireless&lt;br /&gt;
        wifi&lt;br /&gt;
      fi&lt;br /&gt;
      exit&lt;br /&gt;
    fi&lt;br /&gt;
  else                                  # no nexthop different than originator exists &lt;br /&gt;
    failcount=$(($failcount+1))&lt;br /&gt;
    if [ $failcount -eq $MAXFAILCOUNT ]; then&lt;br /&gt;
      # logread &amp;gt; /etc/mesh0_failcount_no-mesh_`date +&amp;quot;%Y-%m-%d_%H%M&amp;quot;`  # DEBUG info&lt;br /&gt;
      # turn off client network &lt;br /&gt;
      uci set wireless.client_radio0.disabled=1&lt;br /&gt;
      uci commit wireless&lt;br /&gt;
      wifi&lt;br /&gt;
    fi&lt;br /&gt;
    if [ $failcount -le $MAXFAILCOUNT ]; then ## only memorize failcounts up to MAXFAILCOUNT &lt;br /&gt;
      echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
    fi&lt;br /&gt;
  fi&lt;br /&gt;
else&lt;br /&gt;
  echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Via &amp;quot;crontab -e&amp;quot; führt dann folgender Eintrag zur Ausführung zu jeder vollen Minute:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* * * * * /root/client-off-if-mesh-off.sh &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das obige Script ist dahingehend optimiert, dass nur bei Änderungen des Mesh-Status Daten auf den Flash-Speicher geschrieben werden. Für TP-Link WR 841ND wurde obiges Script getestet.&lt;br /&gt;
&lt;br /&gt;
== Freifunk-Monitor: Router-Status per E-Mail ==&lt;br /&gt;
&lt;br /&gt;
Ich zitiere mal von der Mailingliste - das ganze ist in der Testphase und ich werde den Wiki-Eintrag später noch entsprechend Überarbeiten.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Hallo, Liebe Mitstreiter!&lt;br /&gt;
&lt;br /&gt;
Wir alle arbeiten daran, unser Netz besser, schneller und stabiler zu machen.&lt;br /&gt;
&lt;br /&gt;
Axel und ich möchten unseren Teil beitragen.&lt;br /&gt;
&lt;br /&gt;
Deshalb entwickeln wir den Freifunk-Monitor – eine kleine Software, die Betreiber von Freifunk-Routern auf Wunsch per E-Mail benachrichtigt, wenn ein- oder mehrere seiner Knoten seitens der Karte nicht erreichbar scheinen.&lt;br /&gt;
&lt;br /&gt;
Dieser Service muss derzeit explizit auf einem Router mit mindestens Gluon 1.4 via SSH angeschaltet werden (es gibt derzeit keine Web-Oberfläche).&lt;br /&gt;
&lt;br /&gt;
Wir laden hiermit alle Router-Betreiber ein, den Monitor zu testen!&lt;br /&gt;
&lt;br /&gt;
Rechnet damit, schlimmstenfalls zu viele oder ungerechtfertigte E-Mails vom Monitor zu bekommen - wir testen die Software noch.&lt;br /&gt;
&lt;br /&gt;
Wie ihr das wieder abschaltet steht unten.&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
Kommando zum Monitoring einschalten (Achtung, was folgt ist EINE Zeile):&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;if uci:get_first('gluon-node-info', 'owner', 'send_alerts', '') ~= '' then return true end&amp;quot; &amp;gt; /lib/gluon/announce/nodeinfo.d/send_alerts ; uci set gluon-node-info.@owner[0].send_alerts=1 ; uci commit&lt;br /&gt;
&lt;br /&gt;
Kommando zum E-Mail-Adresse setzen (falls nicht schon geschehen):&lt;br /&gt;
&lt;br /&gt;
uci set gluon-node-info.@owner[0].contact=ff@cocoanuts.org; uci commit&lt;br /&gt;
&lt;br /&gt;
Kommando zum E-Mail-Adresse prüfen:&lt;br /&gt;
&lt;br /&gt;
uci get gluon-node-info.@owner[0].contact&lt;br /&gt;
&lt;br /&gt;
Kommando zum Monitoring abschalten:&lt;br /&gt;
&lt;br /&gt;
uci set gluon-node-info.@owner[0].send_alerts=0 ; uci commit&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
Frohes Freifunken,&lt;br /&gt;
&lt;br /&gt;
    KaterMikesch &amp;amp; G3ntleman&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Pimp_my_Node&amp;diff=4637</id>
		<title>Pimp my Node</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Pimp_my_Node&amp;diff=4637"/>
		<updated>2016-05-27T02:21:33Z</updated>

		<summary type="html">&lt;p&gt;Took: /* Client-WLAN nachts automatisch ausstellen */ spam &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Mitmachen]]&lt;br /&gt;
&lt;br /&gt;
Hier finden sich interessante Optionen für etwas versiertere Nutzer. Diese Seite wurde größtenteils für die Classic Firmware geschrieben. Wer Gluon verwendet sollte unbedingt auch Gluon spezifische Resourcen, wie http://gluon.readthedocs.org , zu Rate ziehen. &lt;br /&gt;
&lt;br /&gt;
Die Möglichkeiten und Abweichungen von der Default-Konfiguration sind vielfältig. Diese sollten aber nur dann durchgeführt werden, wenn der Durchführende genau weiß was er da macht. Eine fehlerhaft Konfiguration kann zum Beispiel zu Störungen im Netzwerk führen, ferner könnten illegitime Maßnahmen implementiert werden. Beide zuvor genannten Beispiele würden zu einem Ausschluss aus unserem Netzwerk führen. Dennoch kann man gute Gründe haben die ein Abweichen von den Defaultwerten sinnvoll machen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Netztheorie/Technik und Entwicklung ==&lt;br /&gt;
Vertiefung&lt;br /&gt;
&lt;br /&gt;
*[[FSM-Dynamisches-Bridging]] &lt;br /&gt;
*[[Batman_adv]]&lt;br /&gt;
*[[Entwicklung]]&lt;br /&gt;
*[[Firmware|Firmware/Betriebssystem]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arbeiten auf der Shell ==&lt;br /&gt;
Vorraussetzung für folgende Befehle sind eine Verbindung mit dem KBU Freifunk Netz sowie ein Terminal / Shell. &lt;br /&gt;
Vergesst nicht eth0 gegen die Bezeichnung eures Netzwerkinterfaces, welches am Freifunk hängt zu tauschen. &lt;br /&gt;
Bei Macbooks via Wlan z.B. &amp;quot;en1&amp;quot; statt &amp;quot;eth0&amp;quot;! Die link local Adresse der jeweiligen node findet ihr auf der [http://register.kbu.freifunk.net KBU Register] Seite. Um Dateien auf dem Node ändern zu können, steht als einziger Editor ''vi'' bzw. ''vim'' zur Verfügung.&lt;br /&gt;
 &lt;br /&gt;
Zusätzlich zu den auf dieser Seite erläuterten Modifikationen gibt es im [https://github.com/freifunk-gluon/gluon/wiki/Commandline-administration Github-Wiki der Freifunk-Gluon-Firmware eine ausführliche Liste nützlicher Befehle ].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Firmware aktualisieren ===&lt;br /&gt;
==== Node mit uplink ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@&amp;lt;link local Adresse des Nodes&amp;gt;%eth0              // SSH Verbindung zum Node aufbauen, eth0 ist das lokale Interface, ggf. durch wlan0 etc. ersetzen&lt;br /&gt;
cd ../tmp/                                              // in das Verzeichnis &amp;quot;tmp&amp;quot; wechseln&lt;br /&gt;
free                                                    // Freien Speicher prüfen&lt;br /&gt;
wget http://pfad/zur/firmware.bin                       // Firmware herunterladen und dann&lt;br /&gt;
sysupgrade -v firmware.bin                              // Firmware-Upgrade durchführen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Achtung''': Beim Download der Firmware via wget kann auf dem Router die Integrität der Firmware nicht geprüft werden, da gpg i.d.R. auf den Routern nicht verfügbar ist. Deshalb ist es sicherer, den oben beschriebenen Weg zu wählen, oder die geprüfte Firmware per scp (s.u.) auf den Router zu kopieren. &lt;br /&gt;
&lt;br /&gt;
==== Node ohne uplink (mesh node) ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp -6 -v -r firmware.bin root@\[&amp;lt;link local Adresse des Nodes&amp;gt;%eth0\]:../tmp/          // Firmware auf den node schieben (md5 checken!)&lt;br /&gt;
ssh root@&amp;lt;link local Adresse des Nodes&amp;gt;%eth0 &lt;br /&gt;
cd ../tmp/  &lt;br /&gt;
sysupgrade -v firmware.bin  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Upgrade von inkompatibler Konfiguration (Lagacy auf Gluon, wechsel der hood, etc.) ====&lt;br /&gt;
Bei einem upgrade von einer inkompatiblen Version mittels &amp;lt;code&amp;gt;sysupgrade&amp;lt;/code&amp;gt; muss man normalerweise mittels&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysupgrade -n firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
die aktuellen Settings überschreiben lassen. Auf einem Node den man nur per ssh erreicht ist das unpraktisch, da auch Passwörter und ssh keys gelöscht werden. Zum Glück hat &amp;lt;code&amp;gt;sysupgrade&amp;lt;/code&amp;gt; einen interaktiven Modus, den man per&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysupgrade -i firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
startet. Hier kann man (nachdem man bestätigt hat, das ein Teil der Konfiguration übernommen werden soll) die Liste an zu sichernden Dingen bearbeiten. Die gluon-node-info (geo-Koordinaten und Kontaktadresse) so wie vor allem die drobbear/*keys sollte man behalten, evtl auch system mit dem host name des Nodes, der Rest kann gelöscht werden, falls man da keine wichtigen Anpassungen vorgenommen hat. ('dd' löscht Zeilen in vi ;)&lt;br /&gt;
&lt;br /&gt;
Je nach Route zum Router kann es sein, dass die ssh Verbindung abbricht während des interactiven upgrades. Genauer passiert das, wenn man nur durch einen VPN Tunnel Verbindung hat. (Nicht fleißig am Backbone mitgearbeitet? ;) Das ist blöd, weil man am Ende noch den Neustart bestätigen muss (etwas unsinniger weise). In diesem Fall sollte man besser eine config datei mit z.B. folgenden Zeilen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/etc/dropbear/authorized_keys&lt;br /&gt;
/etc/dropbear/dropbear_dss_host_key&lt;br /&gt;
/etc/dropbear/dropbear_rsa_host_key&lt;br /&gt;
/etc/config/gluon-node-info&lt;br /&gt;
/etc/config/system&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
erstellen und per &amp;lt;code&amp;gt;tar -cz config  &amp;amp;gt; config.tar.gz&amp;lt;/code&amp;gt; packen. Danach kann man mittels&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysupgrade -f config.tar.gz firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
das ganze unattended laufen lassen.&lt;br /&gt;
&lt;br /&gt;
==== Node ''zu Fuß'' updaten ====&lt;br /&gt;
Wenn man physikalischen Zugriff auf den Freifunk-Router hat, kann man auch einfach in den [[Config_Mode]] wechseln und dort über das entsprechende Menü eine neue Freifunk-Firmware hochladen. Hierbei kann man wählen, ob man die ggf. geänderte Konfiguration beibehalten möchte (upgrade-Image) oder alles von Grund auf neu installiert/konfiguriert. Ggf. muss man zuvor noch ein Root-Passwort setzen, damit das Update möglich wird.&lt;br /&gt;
&lt;br /&gt;
==== via TFTP  ====&lt;br /&gt;
Wenn mal ein Router nicht mehr bootet, aber der Bootloader noch funktioniert, (oder man einfach keinen Bock auf das Stock Webinterface hat) kann man häufig noch per tftp recht komfortabel eine neue Firmware einspielen. [http://wiki.openwrt.org/doc/howto/generic.flashing.tftp] ;)&lt;br /&gt;
&lt;br /&gt;
* tftp server auf dem lokalen Rechner installieren (Kurzfassung von z.B. [http://www.cyberciti.biz/faq/install-configure-tftp-server-ubuntu-debian-howto/])&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install tftpd-hpa&lt;br /&gt;
sudo chown -R tftp /srv/tftp/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Config anpassen &amp;amp; neustarten. Das &amp;quot;-c create file&amp;quot; braucht man um vom router Dateien zu senden (config sichern), &amp;quot;-s&amp;quot; da sonst absolute Pfade angegeben werden müssten (macht der Router natürlich nicht). Mehr zu den Optionen findet man auf der [http://linux.die.net/man/8/tftpd man page].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vim /etc/default/tftpd-hpa&lt;br /&gt;
&lt;br /&gt;
TFTP_USERNAME=&amp;quot;tftp&amp;quot;&lt;br /&gt;
TFTP_DIRECTORY=&amp;quot;/srv/tftp&amp;quot;&lt;br /&gt;
TFTP_ADDRESS=&amp;quot;0.0.0.0:69&amp;quot;&lt;br /&gt;
TFTP_OPTIONS=&amp;quot;-s -c&amp;quot;&lt;br /&gt;
&lt;br /&gt;
service tftpd-hpa restart &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Dann muss man noch herausfinden auf welcher IP der Router nach welchem Dateinamen Fragt. Eine gute Quelle ist openWRT, z.B. für den beliebten tl-wr841n wäre finden sich die Infos je nach Version [http://wiki.openwrt.org/toh/tp-link/tl-wr841nd#tftp_recovery_via_bootloader_for_v8_v9_v10_v11 hier].&lt;br /&gt;
&lt;br /&gt;
Falls noch Fragen offen bleiben, [https://www.freifunk-bingen.de/forum/hilfe-unterst%C3%BCtzung/flashen-eines-gebrickten-tp-link-routers-tftp die $Anderen wissen auch was]. ;)&lt;br /&gt;
&lt;br /&gt;
=== Hostnamen des Nodes ändern ===&lt;br /&gt;
Standardmäßig ist der Hostname des Nodes gleich der MAC-Adresse des Routers. Möchte man den Hostnamen ändern, so kann man dies per ssh&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set system.@system[0].hostname=what-ever-dude&lt;br /&gt;
uci commit&lt;br /&gt;
reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Änderung wird erst nach dem Kommando ''reboot'' (danach startet der Node neu) wirksam.&lt;br /&gt;
&lt;br /&gt;
=== IPv6 ping ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ping6 &amp;lt;link local Adresse des Nodes&amp;gt;%eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== IPv6 ssh ===&lt;br /&gt;
Hinter der link local Adresse &amp;quot;%&amp;quot; + &amp;quot;Netzwerk Interface an eurer Kiste&amp;quot; (Hier im Beispiel eth0)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@&amp;lt;link local Adresse des Nodes&amp;gt;%eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Paßwort-Authentifizierung abstellen ===&lt;br /&gt;
'''Wichtig:''' Als erstes prüfen, ob man sich mit seinem Schlüsselpaar auf den Router einloggen kann. Man sollte jetzt nicht mehr nach dem Paßwort gefragt werden (allerhöchstens nach dem Paßwort, welches den privaten Schlüssel schützt).&lt;br /&gt;
Falls das erfolgreich funktioniert, kann man die Datei ''/etc/config/dropbear'' wie folgt ändern:&lt;br /&gt;
&amp;lt;pre&amp;gt;config dropbear&lt;br /&gt;
        option PasswordAuth 'off'&lt;br /&gt;
        option RootPasswordAuth 'off'&lt;br /&gt;
        option Port         '22'&lt;br /&gt;
#       option BannerFile   '/etc/banner'&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nach einem Neustart des Routers mittels ''reboot'' sollte es jetzt nur noch möglich sein, sich mit seinem Schlüsselpaar auf den Rotuer einzuloggen.&lt;br /&gt;
&lt;br /&gt;
=== SSH public key auf Node aufspielen ===&lt;br /&gt;
Möchte man sich nicht immer per Paßwort auf den eigenen Node verbinden, so kann man das auch mit einem Schlüsselpaar realisieren. Falls man danach noch die Authentifizierung per Paßwort abschaltet (s. nächster Punkt), dann hat man einen sicheren Zugriff auf seinen Node realisiert.&lt;br /&gt;
Voraussetzung ist natürlich, dass man schon ein gültiges Schlüsselpaar besitzt. Falls dem so ist, so genügt es, den öffentlichen Schlüssel (public key) auf den Node zu übertragen. Das kann mit Hilfe von scp (secure copy) passieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp -6 id_rsa4096.pub root@[&amp;lt;link local Adresse des Nodes&amp;gt;%eth0]:/etc/dropbear/authorized_keys&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hierbei steht id_rsa.pub für die Datei, die den public key enthält. '''ACHTUNG:''' Obiger Befehl ersetzt die eventuell schon vorhandene Datei authorized_keys auf dem Node. Das ist ok für den ersten Key. Sollen mehrere Keys eingetragen werden (z. B. weil man außer vom Laptop auch vom Tablet auf seinen Node verbinden möchte), kann man das so machen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat ~/.ssh/id_rsa4096.pub | ssh root@[&amp;lt;link local Adresse des Nodes&amp;gt;%eth0] 'umask 077; cat &amp;gt;&amp;gt;.ssh/authorized_keys'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollte beim Kopierversuch die Meldung&lt;br /&gt;
&amp;lt;pre&amp;gt;ssh: Could not resolve hostname fe80:&amp;lt;/pre&amp;gt;&lt;br /&gt;
erscheinen, hat man höchstwahrscheinlich die eckigen Klammern um die IP-Adresse inklusive Interface vergessen. Dann wird der erste Doppelpunkt schon als Ende des Hostnamens interpretiert! Auch hier werden die Änderungen nach einem Neustart des Routers mittels ''reboot'' übernommen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Node überträgt keine Statistiken ===&lt;br /&gt;
Auf der [https://kbu.freifunk.net/cserv Cserv Seite] könnt ihr prüfen, ob eurer Node bereits Statistiken übermittelt.&lt;br /&gt;
==== ntp-Bug in Firmware 1.2.1b beseitigen ====&lt;br /&gt;
Falls sich ein Node-Betreiber wundert, warum sein Node keine Statistiken liefert und es ein Mesh-Only-Node ist (d. h. ohne eigenen Uplink zum Internet), so liegt das an einem Bug in der Firmware. Diesen kann man jedoch mit einfachen Mitteln beheben:&lt;br /&gt;
Editiert wird die Datei ''/etc/config/system''. Dort findet man einen Eintrag ''config timeserver 'ntp'''. Defaultmäßig stehen hier 4 Zeitserver von openwrt (in der Form x.openwrt.pool.ntp.org). Diese müssen bei Mesh-Only-Nodes in IPv6-Adressen geändert werden, und zwar, dass der komplette Konfigurationspunkt wie folgt aussieht:&lt;br /&gt;
&amp;lt;pre&amp;gt;config timeserver 'ntp'&lt;br /&gt;
        list server '2a03:4000:2:494::2'&lt;br /&gt;
        list server '2a01:4f8:161:2461:e4::1'&lt;br /&gt;
        list server '2a02:180:1:1::551f:bb4b'&lt;br /&gt;
        option enabled '1'&lt;br /&gt;
        option enable_server '0'&amp;lt;/pre&amp;gt;&lt;br /&gt;
Auch hier werden die Änderungen erst nach einem Neustart des Nodes mittels ''reboot'' wirksam.&lt;br /&gt;
Dieser Bug soll mit dem nächsten Firmware-Release behoben sein. Man kann die Eintragungen auch in den Nodes mit Internet-Uplink ändern ohne die Funktion zu beeinträchtigen.&lt;br /&gt;
&lt;br /&gt;
==== Collectd prüfen ====&lt;br /&gt;
Falls es durch das beheben des ntp-Bug noch immer nicht zum übertragen der Statistiken kommt, überprüft mal die Einstellungen eures Collectd. Es kann sein das beim Firmware Update diese Config nicht geupdatet wurde und eine veraltet IPV6 Adresse noch vorhanden ist, so sollte es sein:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vim /etc/collectd.conf                             // Config Datei für Collectd zum bearbeiten öffnen&lt;br /&gt;
&lt;br /&gt;
Zeile 39-44:    &lt;br /&gt;
&amp;lt;Plugin ping&amp;gt;                     &lt;br /&gt;
        TTL 127                   &lt;br /&gt;
        Interval 30                         &lt;br /&gt;
        Host &amp;quot;fdd3:5d16:b5dd:3::6&amp;quot;                 // Diesen Eintrag auf Übereinstimmmung prüfen      &lt;br /&gt;
&amp;lt;/Plugin&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Zeile 46-50:&lt;br /&gt;
&amp;lt;Plugin network&amp;gt;                                        &lt;br /&gt;
        Server &amp;quot;fdd3:5d16:b5dd:3::6&amp;quot; &amp;quot;25827&amp;quot;       // Diesen Eintrag auf Übereinstimmmung prüfen                 &lt;br /&gt;
        Forward false                                   &lt;br /&gt;
&amp;lt;/Plugin&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LAN Kopplung ===&lt;br /&gt;
Eine LAN Kopplung kann in manchen Fällen sinnvoll sein, besonders wenn man einen VLAN fähigen Switch und eine bestehende Ntzwerkverkabelung hat. Hier werden die Switchports angwiesen auch über LAN zu meshen.&lt;br /&gt;
&lt;br /&gt;
==== TL-WR841ND ====&lt;br /&gt;
03/2014: Hier wird über die alle 4 LAN Ports gemeshed, Mesh über WLAN kann man optional noch ausschalten! Folgende Config stammt von rampone/FF-KBU und wurde an 2 TL-WR841N v.8 getestet mit KBU-FF-Firmware 1.1.&lt;br /&gt;
&lt;br /&gt;
05/2015: Verifiziert (und ergänzt) für TL-WR841N v.9 und KBU-FF-Firmware 1.2.2rc3 .&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/network'' - Folgende Änderungen wurden an der FF-Firmware vorgenommen:&lt;br /&gt;
#config interface 'freifunk' -&amp;gt; Hier haben wir das ethX-Interface aus &amp;quot;ifname&amp;quot; rausgenommen, damit kein ff aus dem ethX (switch) rauskommt (X=1 für Hardware bis einschließlich v8, sonst X=0).&lt;br /&gt;
#config interface 'mesh_lan' -&amp;gt; kompl. codeblock hinzugefügt, dieser bewirkt das über ethX (switch) gemeshed wird. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config interface 'loopback'&lt;br /&gt;
	option ifname 'lo'&lt;br /&gt;
	option proto 'static'&lt;br /&gt;
	option ipaddr '127.0.0.1'&lt;br /&gt;
	option netmask '255.0.0.0'&lt;br /&gt;
&lt;br /&gt;
config interface 'wan'&lt;br /&gt;
	option ifname 'eth0'&lt;br /&gt;
	option proto 'dhcp'&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option accept_ra '0'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
&lt;br /&gt;
config switch&lt;br /&gt;
	option name 'switch0'&lt;br /&gt;
	option reset '1'&lt;br /&gt;
	option enable_vlan '1'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'switch0'&lt;br /&gt;
	option vlan '1'&lt;br /&gt;
	option ports '0 1 2 3 4'&lt;br /&gt;
&lt;br /&gt;
config interface 'freifunk'&lt;br /&gt;
	option ifname 'bat0'		#LAN-Kopplung: ifname eth1 (bzw. eth0, s.o.) entfernt&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option proto 'none'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option accept_ra '1'&lt;br /&gt;
	option macaddr '10:fe:ed:f1:53:84'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mtu '1528'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_vpn'&lt;br /&gt;
	option ifname 'mesh-vpn'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
	option macaddr '12:fe:ed:f2:53:84'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_lan'		#LAN-Kopplung: Codeblock mesh-lan hinzugefuegt&lt;br /&gt;
	option ifname 'eth0'            # ab TL-841N(D) v9: eth0, bis v8: eth1 . Bei falschem Interface läuft das mesh-lan über den blauen Port. Wer's mag...&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/wireless'' - Hier wird der Codeblock, der für das Mesh über WLAN verantwortlich ist auskommentiert (optional)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#config wifi-iface 'wifi_mesh'&lt;br /&gt;
#       option device 'radio0'&lt;br /&gt;
#       option network 'mesh'&lt;br /&gt;
#       option mode 'adhoc'&lt;br /&gt;
#       option ssid '02:d1:11:37:fc:39'&lt;br /&gt;
#       option bssid '02:d1:11:37:fc:39&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TL-WDR4300 ====&lt;br /&gt;
Das gleiche nochmal für den 4300er&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/network''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config interface 'loopback'&lt;br /&gt;
	option ifname 'lo'&lt;br /&gt;
	option proto 'static'&lt;br /&gt;
	option ipaddr '127.0.0.1'&lt;br /&gt;
	option netmask '255.0.0.0'&lt;br /&gt;
&lt;br /&gt;
config interface 'wan'&lt;br /&gt;
	option ifname 'eth0.2'&lt;br /&gt;
	option proto 'dhcp'&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option accept_ra '0'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option macaddr 'a2:f3:c1:65:81:cd'&lt;br /&gt;
&lt;br /&gt;
config switch&lt;br /&gt;
	option name 'eth0'&lt;br /&gt;
	option reset '1'&lt;br /&gt;
	option enable_vlan '1'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'eth0'&lt;br /&gt;
	option vlan '1'&lt;br /&gt;
	option ports '0t 2 3 4 5'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'eth0'&lt;br /&gt;
	option vlan '2'&lt;br /&gt;
	option ports '0t 1'&lt;br /&gt;
&lt;br /&gt;
config interface 'freifunk'&lt;br /&gt;
	option ifname 'bat0'		#LAN-Kopplung: ifname eth0.1 entfernt&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option proto 'none'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option accept_ra '1'&lt;br /&gt;
	option macaddr 'a0:f3:c1:64:81:cc'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mtu '1528'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_vpn'&lt;br /&gt;
	option ifname 'mesh-vpn'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
	option macaddr 'a2:f3:c1:65:81:cc'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_lan'		#LAN-Kopplung: Codeblock mesh-lan hinzugefuegt&lt;br /&gt;
        option ifname 'eth0.1'&lt;br /&gt;
        option proto 'batadv'&lt;br /&gt;
        option mesh 'bat0'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einsperren des Freifunk-Routers in eine DMZ ==&lt;br /&gt;
&lt;br /&gt;
Wer seinen Freifunk-Router einsperren und/oder die Bandbreite begrenzen möchte, kann dies am einfachsten tun, indem er ihn an seiner Firewall an einen eigenen Netzwerkport klemmt und diesen dann als DMZ konfiguriert. Ein KBU-Freifunk-Router muß zur Zeit im LAN DHCP, DNS, im Internet NTP sowie mit den [[fastd]]-Knoten reden können. Folgendes Bespiel für eine iptables-Firewall nimmt an, dass der Freifunk-Router über eth2 angeschlossen ist:&lt;br /&gt;
&lt;br /&gt;
 # eth2 darf nur dns, ntp, dhcp und ansonsten mit den fastdX reden&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p udp --dport 67:68 --sport 67:68 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p udp --dport 67:68 --sport 67:68 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p udp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p tcp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p udp --dport 123                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p udp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p tcp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p udp --dport 123                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 176.9.41.253                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 176.9.41.253                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 178.63.59.41                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 178.63.59.41                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 37.120.169.214               -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 37.120.169.214               -j ACCEPT &lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 37.221.195.47                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 37.221.195.47                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 78.46.68.75                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 78.46.68.75                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 84.201.35.206                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 84.201.35.206                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT                                      -j DROP&lt;br /&gt;
 iptables -i eth2 -A FORWARD                                    -j DROP&lt;br /&gt;
 # eth2 darf maximal 2000 kbit/s ein- und ausgehenden traffic machen&lt;br /&gt;
 wondershaper eth2 2000 2000&lt;br /&gt;
&lt;br /&gt;
Prinzipiell könnte man den Traffic noch weiter einschränken. DHCP und DNS müssen nur zum DHCP- bzw. DNS-Server funktionieren und der Traffic zu den fastd-Servern ließe sich auf TCP Port 80 und UDP Port 10000 begrenzen.&lt;br /&gt;
&lt;br /&gt;
===Alternative: Einsperren im VLAN===&lt;br /&gt;
siehe: [[FF-Router einsperren im VLAN]]&lt;br /&gt;
&lt;br /&gt;
== Weboberfläche aktivieren ==&lt;br /&gt;
&lt;br /&gt;
Im Normalbetrieb ist erst mal kein Zugriff notwendig (und auch erst mal nicht vorgesehen). Das läuft einfach! ;-) Und es gibt im Normalbetrieb eben auch kein Webinterface, welches Sicherheitslücken haben könnte.&lt;br /&gt;
&lt;br /&gt;
Zum ersten Konfigurieren schaltet mal den Router in einen Konfig-Modus. Der Router nimmt dann in diesem Modus nicht mehr am Freifunknetzwerk teil. Nun kann man dann Rechner an die LAN Ports des Freifunkrouters anschließen und über ein Webinterface per Browser den Router konfigurieren oder Updaten. Das sollte aber nur ganz selten notwendig sein. Nach einem Reboot des Routers geht das Gerät dann wieder in den Freifunk-Modus mit deinen Konfigurationsänderungen.&lt;br /&gt;
&lt;br /&gt;
Wenn man Spaß am Basteln hat kann man das Webinterface aber auch im Normalbetrieb aktivieren. Für die Absicherung muss man dann aber selber sorgen denn per Default ist das nicht abgesichert. Hier die Anleitung nach [http://wiki.freifunk.in-kiel.de/wiki/Firmware Freifunk Kiel], um auf die Weboberfläche zu gelangen:&lt;br /&gt;
&lt;br /&gt;
Das Webinterface des Routers ist nicht über die Link-Local-Adresse, sondern nur über die generelle IPv6 Adresse des Routers zu erreichen. Die IPv6-Adresse bekommt man über SSH (s. [[Pimp_my_Node#IPv6_ssh|IPv6 ssh]] auf den Router:&lt;br /&gt;
  ssh root@LinkLocalIPv6adresse_des_routers%Interface&lt;br /&gt;
Die generelle IPv6-Adresse erfährt man durch Eingabe von&lt;br /&gt;
  ifconfig | grep Global&lt;br /&gt;
Die IPv6-Adresse (&amp;quot;inet6 adr&amp;quot;) kann man nun im Browser in eckigen Klammern und vorangestelltem &amp;quot;http://&amp;quot; aufrufen (zum Beispiel: http://[2001:67c:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx]/) und gelangt so zum Webinterface LuCI.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
 uci delete uhttpd.main.listen_http&lt;br /&gt;
 uci delete uhttpd.main.listen_https&lt;br /&gt;
 &lt;br /&gt;
 uci add_list uhttpd.main.listen_http='[::]:80'&lt;br /&gt;
 uci add_list uhttpd.main.listen_http='0.0.0.0:80'&lt;br /&gt;
 uci add_list uhttpd.main.listen_https='[::]:80'&lt;br /&gt;
 uci add_list uhttpd.main.listen_https='0.0.0.0:80'&lt;br /&gt;
 &lt;br /&gt;
 uci commit uhttpd&lt;br /&gt;
 &lt;br /&gt;
 /etc/init.d/uhttpd enable&lt;br /&gt;
&lt;br /&gt;
== Uplink mit Android-Tethering/USB Netzwerkkarte ==&lt;br /&gt;
(ssh Zugang Erfahrung nötig)&lt;br /&gt;
&lt;br /&gt;
Das ganze sei von Anfang an als &amp;quot;sportlich&amp;quot; zu betrachten. Leider sind mobile 3g/LTE Tarife fast ausnahmslos nach einem bestimmten Volumen gedrosselt (üblicherweise auf 64 bis 56 kbit/s (neuere NetzclubSim sogar auf 32 kbit/s), Ausnahme bilden hier nur LTE Zuhause &amp;quot;DSL&amp;quot; Ersatz Tarife -&amp;gt; 386kbit/s).&lt;br /&gt;
Da Freifunk auch bei Nichtbenutzung Daten überträgt, ist nur bei LTE Zuhause Tarifen interessant dies als Dauerlösung zu nutzen. Dort ist aber wiederum meist ein LTE-Router vor Ort und man den Router auch &amp;quot;traditionell&amp;quot; via LAN Kabel anbinden.&lt;br /&gt;
Bei Benutzung als uplink bei Strassenfesten/Festivals etc. ist wahrscheinlich, dass erstens das Datenvolumen schnell aufgebraucht sein wird und zweitens ab einer bestimmten Größe auch das 3g Netz vor Ort überlastet ist. Wenn man es dennoch machen will (mehrere Sim Karten/spezieller hochvolumiger Tarif/Netzbetreiber gesponserter Uplink (träum)), sollte man die Benutzung von LTE erwägen. Auch dort könnten aber durch zukünftige Adapation Überlasterscheinungen auftreten. Desweitern nutzen 2g/3g/4g auch dasselbe Backbone, welcher dann auch für LTE ein Flaschenhals darstellt.&lt;br /&gt;
Muss nochmal nachprüfen, aber wenn, dann nicht uninteressant: Der Wlan Zugang des Telefons (CM7) wurde per tethering weitergeleitet und bei Abschalten gab es fallback auf 3g -&amp;gt; nicht schöne, aber einfache &amp;quot;Immer&amp;quot;netzlösung?  Mein Tablet zeigt nicht dieses Verhalten.)&lt;br /&gt;
&lt;br /&gt;
Blablabla, jetzt geht es los:&lt;br /&gt;
Das ganze habe ich mit einem 1043ND und einem droid 2.3CM7 Telefon und einem droid 2.2 Tablet ausprobiert, sollte aber auf jeglichen OpenWrt Router mit USB, Android USB tethering fähigem Gerät und einfachen USB ethernet Adaptern (nachprüfen!!!) funktionieren:&lt;br /&gt;
&lt;br /&gt;
- Per ssh in den router einloggen&lt;br /&gt;
- Installieren der notwendigen Treiber&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
opkg update&lt;br /&gt;
opkg install kmod-usb-uhci kmod-usb-net-rndis&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies sollte, falls ihr noch keine USB Unterstützung in der Firmware hat auch diese über dependencies nachinstallieren. (nachprüfen!!!)&lt;br /&gt;
&lt;br /&gt;
- Ihr müsst den Netzwerkzugang für da neue Interface &amp;quot;usb0&amp;quot; noch konfigurieren. Unter /etc/config/network fügt ihr z.B. folgendes hinzu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config interface 'wan2'&lt;br /&gt;
       option ifname 'usb0'&lt;br /&gt;
       option proto 'dhcp'&lt;br /&gt;
       option type 'bridge'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch unter Luci sollte dies konfigurierbar sein. &lt;br /&gt;
&lt;br /&gt;
- Nach einem Neustart und einem angeschlossenen Gerät sollte nun der Uplink via dem USB Netzwerk Gerät/Android tethering funktionieren.&lt;br /&gt;
- Sollte das Gerät erst später angeschlossen werden, so könnt ihr mit folgendem Befehl das Netzwerkgerät starten.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifup wan2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(Dies ist noch nicht ein perfektes Tutorial, werde es nochmal durchprobieren. Einen UMTS Stick hatte ich auf Anhieb noch nicht zum laufen gebracht. Auch scheint Multiwan in OpenWRT eine interessante Sache)&lt;br /&gt;
&lt;br /&gt;
== Zusätzlich zum Freifunk auch privates WLAN einrichten ==&lt;br /&gt;
&lt;br /&gt;
Es ist möglich ein privates WLAN anzulegen, das mit dem WAN Port gebridged und separat zum Mesh Netzwerk ist. (Bitte beachten, dass Mesh on Wan nicht zeitgleich mit aktiviert werden sollte.) &lt;br /&gt;
Effekt: Das private WLAN wird erweitert, zeitgleich fungiert der Router als Freifunk-Router. Die Netze sind voneinander abgekoppelt.&lt;br /&gt;
Das private WLAN kann per SSH in der Konsole aktiviert werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set wireless.wan_radio0=wifi-iface&lt;br /&gt;
uci set wireless.wan_radio0.device=radio0&lt;br /&gt;
uci set wireless.wan_radio0.network=wan&lt;br /&gt;
uci set wireless.wan_radio0.mode=ap&lt;br /&gt;
uci set wireless.wan_radio0.encryption=psk2&lt;br /&gt;
uci set wireless.wan_radio0.ssid=&amp;quot;$SSID&amp;quot;&lt;br /&gt;
uci set wireless.wan_radio0.key=&amp;quot;$KEY&amp;quot;&lt;br /&gt;
uci set wireless.wan_radio0.disabled=0&lt;br /&gt;
uci commit&lt;br /&gt;
wifi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Bitte ersetze $SSID mit dem Namen deines Heimnetzwerks und $KEY mit deinem bisher üblichen Key (der vom privaten Router). Falls dein Router beide Frequenzbänder unterstützt(2.4 und 5 Ghz) und du in beiden auch privates WLAN aktivieren möchtest, muss dies für radio0 und radio1 mit übernommen werden.&lt;br /&gt;
Zum deaktivieren des Ganzen wie folgt vorgehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set wireless.wan_radio0.disabled=1&lt;br /&gt;
uci commit&lt;br /&gt;
wifi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Automatischer Neustart bei längerem Mesh-Verlust, quick hack (and improved hack) zur Analyse ==&lt;br /&gt;
&lt;br /&gt;
Bei der Vernetzung von Notunterkünften mit Gluon-Beta (via Euskirchen) ist bei einem CPE210-Uplink aufgefallen, dass sämtliche Mesh-Verbindungen über Stunden ausgefallen waren. Es war zunächst unklar, ob überwiegend die Stromversorgung ursächlich ist, insbesondere da der Uplink-Router mehrfach betroffen und trotzdem via VPN erreichbar war. Dabei war dann nur ein Mesh mit sich selbst via &amp;quot;batctl o&amp;quot; sichtbar. Einzelne Mesh-Only-Router zeigten ebenfalls (selten) Ausfälle über mehrere Stunden: teilweise Nachts, wo Renovierungsarbeiten nicht die Ursache sein konnten.&lt;br /&gt;
&lt;br /&gt;
Um längere Ausfälle zu vermeiden wurde folgendes Script unter /root/check_mesh.sh abgelegt, das via cron-Job automatisch jede Minute ausgeführt wird und nach 10 Minuten ohne Mesh-Verbindung einen Reboot auslöst:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash&lt;br /&gt;
&lt;br /&gt;
FAILCOUNTFILE=/var/run/mesh0_failcount&lt;br /&gt;
MAXFAILCOUNT=10&lt;br /&gt;
&lt;br /&gt;
# check mesh connections with different originators and nexthops, MAC is 17 chars long&lt;br /&gt;
count=`batctl o | awk '/mesh0/{originator=substr($0,1,17); nexthop=substr($0,37,17); if (originator != nexthop){print originator&amp;quot; &amp;quot;nexthop}}' | wc -l`&lt;br /&gt;
&lt;br /&gt;
if [ $count -gt 1 ]; then  ## more than a single mesh with itself is left&lt;br /&gt;
  echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
else&lt;br /&gt;
  if [ -f $FAILCOUNTFILE ]; then  &lt;br /&gt;
    read failcount &amp;lt; $FAILCOUNTFILE&lt;br /&gt;
    failcount=$(($failcount+1))&lt;br /&gt;
    if [ $failcount -ge $MAXFAILCOUNT ]; then&lt;br /&gt;
      touch /etc/mesh0_failcount_`date +&amp;quot;%Y-%m-%d_%H%M&amp;quot;`&lt;br /&gt;
      sync&lt;br /&gt;
      reboot&lt;br /&gt;
    fi &lt;br /&gt;
    echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
  else&lt;br /&gt;
    echo 1 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
  fi&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es muss (hier mit awk, s.o.) nach _unterschiedlichen_ Werten für Originator und NextHop ausschau gehalten werden, denn bei einem fehlenden Mesh zwischen zwei Knoten meshen die Knoten noch mit sich selbst:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# batctl o | grep mesh0&lt;br /&gt;
62:e6:28:24:5f:52    0.730s   (  6) 62:e6:28:24:5f:52 [     mesh0]: 62:e6:28:24:5f:52 (  6)&lt;br /&gt;
62:e6:28:72:32:48    0.730s   (  8) 62:e6:28:72:32:48 [     mesh0]: 62:e6:28:72:32:48 (  8)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das war lesbar und einfach, aber wegen ständiger Schreibzugriffe schlecht für die Lebensdauer der Flash-Speicher. Besser also nur schreiben wenn Fehler passieren, etwa so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash&lt;br /&gt;
&lt;br /&gt;
FAILCOUNTFILE=/var/run/mesh0_failcount&lt;br /&gt;
MAXFAILCOUNT=10&lt;br /&gt;
&lt;br /&gt;
# check mesh connections with different originators and nexthops, MAC is 17 chars long&lt;br /&gt;
count=`batctl o | awk '/mesh0/{originator=substr($0,1,17); nexthop=substr($0,37,17); if (originator != nexthop){print originator&amp;quot; &amp;quot;nexthop}}' | wc -l`&lt;br /&gt;
&lt;br /&gt;
if [ -f $FAILCOUNTFILE ]; then          # Does the failcount file exist at all?&lt;br /&gt;
  read failcount &amp;lt; $FAILCOUNTFILE       # If it exist then there is a number in.&lt;br /&gt;
  if [ $count -gt 0 ]; then             # At least one originator with different nexthop exists&lt;br /&gt;
    if [ $failcount -gt 0 ]; then       # We'r lucky, everything is fine again!&lt;br /&gt;
      echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
      exit&lt;br /&gt;
    fi&lt;br /&gt;
  else                                  # no nexthop different than originator exists &lt;br /&gt;
    failcount=$(($failcount+1))&lt;br /&gt;
    if [ $failcount -ge $MAXFAILCOUNT ]; then&lt;br /&gt;
      echo 0 &amp;gt; $FAILCOUNTFILE                   # Reset counter before reboot&lt;br /&gt;
      logread &amp;gt; /etc/mesh0_failcount_lastwords_`date +&amp;quot;%Y-%m-%d_%H%M&amp;quot;`  # DEBUG info&lt;br /&gt;
      sync&lt;br /&gt;
      reboot&lt;br /&gt;
    fi &lt;br /&gt;
    echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
  fi&lt;br /&gt;
else&lt;br /&gt;
  echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Script wird dann noch ausführbar gemacht:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /root/check_mesh.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Via &amp;quot;crontab -e&amp;quot; führt dann folgender Eintrag zur Ausführung zu jeder vollen Minute:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* * * * * /root/check_mesh.sh &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wichtig ist, dass ein ausreichender Zeitraum zum Aufbau des Mesh-Netzes nach dem Reboot verbleibt. 10 Minuten (MAXFAILCOUNT) sollten hierzu ausreichen.&lt;br /&gt;
&lt;br /&gt;
Im /etc -Verzeichnis (das wurde gewählt, da Änderungen hier einen Neustart überleben) sind dann solche Reboot-Ereignisse ablesbar:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -al | grep failcount&lt;br /&gt;
-rw-r--r--    1 root     root             0 Oct 26 06:22 mesh0_failcount_2015-10_26_0622&lt;br /&gt;
-rw-r--r--    1 root     root             0 Oct 29 08:12 mesh0_failcount_2015-10-29_0812&lt;br /&gt;
-rw-r--r--    1 root     root             0 Oct 30 21:59 mesh0_failcount_2015-10-30_2159&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Vorfälle traten unregelmäßig alle paar Tage auf, wurden aber durch das Script abgefangen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Client-WLAN nachts automatisch ausstellen ==&lt;br /&gt;
&lt;br /&gt;
In Jugendherbergen oder Flüchtlingsheimen kann es durch rücksichts- oder gedankenloses Verhalten einzelner Gäste oder Bewohner zu akkustischen Beeinträchtigungen kommen, die durch temporäres Ausschalten des WLAN-Client-Netzes vermindert werden können. Damit kann natürlich nicht verhindert werden, dass einzelne Bewohner sich einen eigenen Freifunk-Router konfigurieren und ins Mesh-Netz hängen - das wäre ja sogar erwünscht. Folgendes Script ''restrict_client_access.sh'' ermöglicht das Abschalten in den frühen Morgenstunden (d.h. vor 0 Uhr abzuschalten ist hier nicht berücksichtigt). Es ist bisher für TP-Link TL-WR841-ND, sowie mit TL-WDR4300 und TL-WDR3600 mit der aktuellen Firmware v1.4 getestet. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash&lt;br /&gt;
&lt;br /&gt;
STOP_HOUR=0   # needs to be smaller than START_HOUR!!!&lt;br /&gt;
START_HOUR=7  # disable client0 network device if it's active &lt;br /&gt;
              # and hour is between STOP_HOUR and START_HOUR &lt;br /&gt;
&lt;br /&gt;
hour=`date +&amp;quot;%H&amp;quot;`&lt;br /&gt;
&lt;br /&gt;
ip addr list client0 &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
if [ $? -eq 0 ]; then                   # client network is on&lt;br /&gt;
  if [ $hour -lt ${START_HOUR} -a $hour -ge ${STOP_HOUR} ]; then        # turn it off&lt;br /&gt;
    uci set wireless.client_radio0.disabled=1&lt;br /&gt;
    uci set wireless.client_radio1.disabled=1                           # additional 5GHz wifi exists (e.g. WDR3600)&lt;br /&gt;
    uci commit wireless&lt;br /&gt;
    /etc/init.d/network restart&lt;br /&gt;
  fi&lt;br /&gt;
else                                    # client network is off&lt;br /&gt;
  if [ $hour -ge ${START_HOUR} -o $hour -lt ${STOP_HOUR} ]; then        # turn it on &lt;br /&gt;
    uci set wireless.client_radio0.disabled=0&lt;br /&gt;
    uci set wireless.client_radio1.disabled=0                           # additional 5GHz wifi exists (e.g WDR3600)&lt;br /&gt;
    uci commit wireless        &lt;br /&gt;
    /etc/init.d/network restart&lt;br /&gt;
  fi&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Script kann z.B. einfach im /root/ -Verzeichnis abgelegt werden. Via &amp;quot;crontab -e&amp;quot; führt dann folgender Eintrag zur Ausführung zu jeder vollen Minute:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* * * * * /root/restrict_client_access.sh &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Hinweis:''' Die uci- sowie das Restart-Kommando dürfen nicht ausserhalb der if-Bedingungen das Script ''vereinfachen'', da sie jeweils nur bei einmaligem Umstellen täglich ausgeführt werden dürfen. Sonst verliert man jede Minute das Netz...&lt;br /&gt;
&lt;br /&gt;
'''Wichtig ''': Der NTP-Dienst bei Mesh-Only-Routern muss ggf. erst (oder nochmal) nach der hergestellten Mesh-Verbindung durchgestartet werden, da NTP keine großen Zeitsprünge macht. Das kan z.B. durch folgenden Eintrag via Crontab automatisiert werden (hier: zur vollen Minute 8, die ggf. nach längerer Auszeit auch zunächst falsch sein kann):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
8 * * * * /etc/init.d/sysntpd restart &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Besser wäre hier ein Script, dass nach dem erfolgreichen Herstellen einer Mesh-Verbindung zum Uplink den ndtd einmal durchstartet, damit die Zeit initial synchronisiert wird.&lt;br /&gt;
&lt;br /&gt;
== Client-WLAN an Mesh-Only-Routern nur aktivieren, wenn Mesh-WLAN vorhanden ist ==&lt;br /&gt;
&lt;br /&gt;
Bei Routern, die selbst keinen Uplink haben und deshalb davon abhängig sind mit Nachbarn zu meshen, kann das Freifunk-Client-WLAN ausgestellt werden, wenn kein Mesh-Link (und damit auch kein entfernter Uplink) greifbar ist.&lt;br /&gt;
&lt;br /&gt;
Folgendes Script kann in ''/root/client-off-if-mesh-off.sh'' abgelegt (und via ''chmod +x /root/client-off-if-mesh-off.sh'' ausführbar gemacht) werden, das dann via cron regelmäßig aufgerufen wird:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash                                                                                          &lt;br /&gt;
&lt;br /&gt;
FAILCOUNTFILE=/var/run/mesh0_nogatewaycount&lt;br /&gt;
MAXFAILCOUNT=2&lt;br /&gt;
&lt;br /&gt;
# check mesh connections with different originators and nexthops, MAC is 17 chars long&lt;br /&gt;
batctl gwl | grep -q &amp;quot;No gateways in range&amp;quot;&lt;br /&gt;
no_gw=$?&lt;br /&gt;
&lt;br /&gt;
if [ -f $FAILCOUNTFILE ]; then          # Does the failcount file exist at all?&lt;br /&gt;
  read failcount &amp;lt; $FAILCOUNTFILE       # If it exist then there is a number in.&lt;br /&gt;
  if [ ${no_gw} -eq 1 ]; then           # There is a gateway&lt;br /&gt;
    if [ $failcount -gt 0 ]; then       # We'r lucky, it is fine again, we decrease the failcount&lt;br /&gt;
      failcount=$(($failcount-1))&lt;br /&gt;
      echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
      if [ $failcount -eq 0 ]; then&lt;br /&gt;
        # turn on client network &lt;br /&gt;
        uci set wireless.client_radio0.disabled=0&lt;br /&gt;
        uci commit wireless&lt;br /&gt;
        wifi&lt;br /&gt;
      fi&lt;br /&gt;
      exit&lt;br /&gt;
    fi&lt;br /&gt;
  else                                  # no nexthop different than originator exists &lt;br /&gt;
    failcount=$(($failcount+1))&lt;br /&gt;
    if [ $failcount -eq $MAXFAILCOUNT ]; then&lt;br /&gt;
      # logread &amp;gt; /etc/mesh0_failcount_no-mesh_`date +&amp;quot;%Y-%m-%d_%H%M&amp;quot;`  # DEBUG info&lt;br /&gt;
      # turn off client network &lt;br /&gt;
      uci set wireless.client_radio0.disabled=1&lt;br /&gt;
      uci commit wireless&lt;br /&gt;
      wifi&lt;br /&gt;
    fi&lt;br /&gt;
    if [ $failcount -le $MAXFAILCOUNT ]; then ## only memorize failcounts up to MAXFAILCOUNT &lt;br /&gt;
      echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
    fi&lt;br /&gt;
  fi&lt;br /&gt;
else&lt;br /&gt;
  echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Via &amp;quot;crontab -e&amp;quot; führt dann folgender Eintrag zur Ausführung zu jeder vollen Minute:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* * * * * /root/client-off-if-mesh-off.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das obige Script ist dahingehend optimiert, dass nur bei Änderungen des Mesh-Status Daten auf den Flash-Speicher geschrieben werden. Für TP-Link WR 841ND wurde obiges Script getestet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Freifunk-Monitor: Router-Status per E-Mail ==&lt;br /&gt;
&lt;br /&gt;
Ich zitiere mal von der Mailingliste - das ganze ist in der Testphase und ich werde den Wiki-Eintrag später noch entsprechend Überarbeiten.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Hallo, Liebe Mitstreiter!&lt;br /&gt;
&lt;br /&gt;
Wir alle arbeiten daran, unser Netz besser, schneller und stabiler zu machen.&lt;br /&gt;
&lt;br /&gt;
Axel und ich möchten unseren Teil beitragen.&lt;br /&gt;
&lt;br /&gt;
Deshalb entwickeln wir den Freifunk-Monitor – eine kleine Software, die Betreiber von Freifunk-Routern auf Wunsch per E-Mail benachrichtigt, wenn ein- oder mehrere seiner Knoten seitens der Karte nicht erreichbar scheinen.&lt;br /&gt;
&lt;br /&gt;
Dieser Service muss derzeit explizit auf einem Router mit mindestens Gluon 1.4 via SSH angeschaltet werden (es gibt derzeit keine Web-Oberfläche).&lt;br /&gt;
&lt;br /&gt;
Wir laden hiermit alle Router-Betreiber ein, den Monitor zu testen!&lt;br /&gt;
&lt;br /&gt;
Rechnet damit, schlimmstenfalls zu viele oder ungerechtfertigte E-Mails vom Monitor zu bekommen - wir testen die Software noch.&lt;br /&gt;
&lt;br /&gt;
Wie ihr das wieder abschaltet steht unten.&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
Kommando zum Monitoring einschalten (Achtung, was folgt ist EINE Zeile):&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;if uci:get_first('gluon-node-info', 'owner', 'send_alerts', '') ~= '' then return true end&amp;quot; &amp;gt; /lib/gluon/announce/nodeinfo.d/send_alerts ; uci set gluon-node-info.@owner[0].send_alerts=1 ; uci commit&lt;br /&gt;
&lt;br /&gt;
Kommando zum E-Mail-Adresse setzen (falls nicht schon geschehen):&lt;br /&gt;
&lt;br /&gt;
uci set gluon-node-info.@owner[0].contact=ff@cocoanuts.org; uci commit&lt;br /&gt;
&lt;br /&gt;
Kommando zum E-Mail-Adresse prüfen:&lt;br /&gt;
&lt;br /&gt;
uci get gluon-node-info.@owner[0].contact&lt;br /&gt;
&lt;br /&gt;
Kommando zum Monitoring abschalten:&lt;br /&gt;
&lt;br /&gt;
uci set gluon-node-info.@owner[0].send_alerts=0 ; uci commit&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
Frohes Freifunken,&lt;br /&gt;
&lt;br /&gt;
    KaterMikesch &amp;amp; G3ntleman&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Supernode&amp;diff=4631</id>
		<title>Supernode</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Supernode&amp;diff=4631"/>
		<updated>2016-05-25T15:51:43Z</updated>

		<summary type="html">&lt;p&gt;Took: /* cronJob hinzufügen */ &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
[[Kategorie:Infrastruktur]]&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
[[https://en.wikipedia.org/wiki/Supernode_%28networking%29 wikipedia-article]]&lt;br /&gt;
&lt;br /&gt;
Benötigte Software&lt;br /&gt;
&lt;br /&gt;
1) [[https://projects.universe-factory.net/projects/fastd fastd]] Mesh-vpn&lt;br /&gt;
&lt;br /&gt;
2) [[https://bmx6.net/projects/bmx6 bmx6]] BackboneMeshProtokoll&lt;br /&gt;
&lt;br /&gt;
3) [[http://www.open-mesh.org/projects/open-mesh/wiki batman-adv]] ClientMeshProtokoll&lt;br /&gt;
&lt;br /&gt;
4) [[http://www.tinc-vpn.org/ tinc]] Mesh-vpn&lt;br /&gt;
&lt;br /&gt;
5) OS: debian jessie(or whatever you like)&lt;br /&gt;
&lt;br /&gt;
Du benötigst ausserdem: &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* eine private IPv4/IPv6 Adresse und ein Subnetz für die Clients&lt;br /&gt;
* eine IPv4/IPv6 Adresse für das Backbone-Netz&lt;br /&gt;
&lt;br /&gt;
Diese kannst du unter dem Artikel [[IP_Subnetze]] selbst zuteilen, oder nachlesen, welches deine sind, wenn es jemand anderes dir schon zuteilte.&lt;br /&gt;
&lt;br /&gt;
(nur bei öffentlichen Supernodes)&lt;br /&gt;
&lt;br /&gt;
== Vorbereitungen ==&lt;br /&gt;
In der /etc/sysctl.conf muss folgendes mit einem Editor hinzugefügt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
net.ipv4.ip_forward=1&lt;br /&gt;
net.ipv4.ip_no_pmtu_disc=1&lt;br /&gt;
net.ipv4.route.flush=1&lt;br /&gt;
net.ipv6.conf.all.forwarding=1&lt;br /&gt;
net.ipv6.conf.all.autoconf=0&lt;br /&gt;
net.ipv6.conf.all.accept_ra=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach die /etc/sysctl.conf neu einlesen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysctl -p&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für Batman-adv und fastd-Pakete in /etc/apt/apt/sources.list hinzufügen, z.B. so:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;deb http://repo.universe-factory.net/debian/ sid main&amp;quot; &amp;gt;&amp;gt;/etc/apt/sources.list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GPG-Key importieren und apt via https ermöglichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 gpg --keyserver pgpkeys.mit.edu --recv-key  16EF3F64CB201D9C&lt;br /&gt;
 gpg -a --export 16EF3F64CB201D9C | apt-key add -&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-transport-https&lt;br /&gt;
&lt;br /&gt;
 apt-get update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batman-adv (compat14 (Hood Bonn))==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Dies sollte auf debian wheezy batman-adv 2013.4.0 installieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install batman-adv-dkms&lt;br /&gt;
echo &amp;quot;batman-adv&amp;quot; &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== debian jessie ====&lt;br /&gt;
batman 14 aus folgender quelle installieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://repo.universe-factory.net/debian/ sid main&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
dann dkms die richtige version beibringen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dkms remove batman-adv/2013.4.0 --all&lt;br /&gt;
dkms --force install batman-adv/2013.4.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
und mit apt-pinning die richtige version für batctl erzwingen, in /etc/apt/preferences.d/batctl.pref:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Package: batctl&lt;br /&gt;
Pin: origin repo.universe-factory.net&lt;br /&gt;
Pin-Priority: 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
und apt-get install batctl&lt;br /&gt;
&lt;br /&gt;
== Batman-adv (compat15)==&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Update and install:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install git make gcc build-essential linux-headers-$(uname -r) pkg-config libgps-dev libnl-3-dev libjansson-dev fastd&lt;br /&gt;
&lt;br /&gt;
Install Batman, batctl and alfred&lt;br /&gt;
 mkdir /opt/freifunk&lt;br /&gt;
 cd $_&lt;br /&gt;
 &lt;br /&gt;
 git clone git://git.open-mesh.org/batman-adv.git&lt;br /&gt;
 cd batman-adv&lt;br /&gt;
 git checkout v2015.1&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 &lt;br /&gt;
 cd ../&lt;br /&gt;
 &lt;br /&gt;
 git clone http://git.open-mesh.org/batctl.git&lt;br /&gt;
 cd batctl&lt;br /&gt;
 git checkout v2015.1&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Wird künftig nicht mehr benötigt. Wer's trotzdem installieren mag:&lt;br /&gt;
&lt;br /&gt;
 cd ../&lt;br /&gt;
 &lt;br /&gt;
 git clone http://git.open-mesh.org/alfred.git&lt;br /&gt;
 cd alfred&lt;br /&gt;
 git checkout v2014.4.0&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
== fastd ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 apt-get install fastd curl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Add Directories''' &lt;br /&gt;
 mkdir /etc/fastd/mesh-vpn&lt;br /&gt;
 mkdir /etc/fastd/mesh-vpn/peers&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;[YOUR SECRET KEY HERE]&amp;quot; sollte dabei durch den fastd-secret-key ersetzt werden. Den Key müsst ihr selbst erstellen. Dies geht mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
 fastd --generate-key&lt;br /&gt;
&lt;br /&gt;
Schreibt am besten euch public und private key woanders noch auf. Wenn ihr den verliert, können Nodes nicht mehr mit euch connecten, solange diese nicht umkonfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
In /etc/fastd/mesh-vpn/fastd.conf folgendes hinzufügen:&lt;br /&gt;
&lt;br /&gt;
==== /etc/fastd/mesh-vpn/fastd.conf ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Log warnings and errors to stderr&lt;br /&gt;
#log level warn;&lt;br /&gt;
log level error;&lt;br /&gt;
&lt;br /&gt;
drop capabilities yes;&lt;br /&gt;
forward no;&lt;br /&gt;
hide ip addresses yes;&lt;br /&gt;
hide mac addresses yes;&lt;br /&gt;
&lt;br /&gt;
# Log everything to a log file&lt;br /&gt;
#log to &amp;quot;/var/log/fastd-mesh-vpn.log&amp;quot; level debug;&lt;br /&gt;
#log to &amp;quot;/var/log/fastd-mesh-vpn.log&amp;quot; level warn;&lt;br /&gt;
&lt;br /&gt;
# Set the interface name&lt;br /&gt;
interface mesh-vpn;&lt;br /&gt;
mode tap;&lt;br /&gt;
&lt;br /&gt;
# Support xsalsa20 and aes128 encryption methods, prefer xsalsa20&lt;br /&gt;
method &amp;quot;salsa2012+umac&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Bind to a fixed port, IPv4 only&lt;br /&gt;
bind 0.0.0.0:10000;&lt;br /&gt;
&lt;br /&gt;
mtu 1312;&lt;br /&gt;
pmtu auto;&lt;br /&gt;
secure handshakes yes;&lt;br /&gt;
&lt;br /&gt;
# Secret key generated by 'fastd --generate-key'&lt;br /&gt;
secret &amp;quot;[YOUR SECRET KEY HERE]&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Include peers from the directory 'peers' and set max connections&lt;br /&gt;
&lt;br /&gt;
peer group &amp;quot;backbone&amp;quot; {&lt;br /&gt;
  include peers from &amp;quot;backbone&amp;quot;;&lt;br /&gt;
  peer limit 64;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
on up sync &amp;quot;./on-up&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Allows all peers to connect.&lt;br /&gt;
on verify async &amp;quot;true&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ordnerstruktur anlegen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /etc/fastd/mesh-vpn/backbone&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Optional: Wenn die Node teil einer grösseren Hood werden soll, entsprechende Backbone Node Keys in das zueben erstellte Verzeichnis legen. Vorzuziehen ist aber entweder eine eigene Fastdinstanz oder eine Tinc VPN Verbindung (AES-NI) um sich an eine hood (Layer2 Mesh mit Batman-adv) zu verbinden, dies ist performanter.&lt;br /&gt;
&lt;br /&gt;
Der IP v4-Range bezieht sich auf euren selbst gewählten Bereich, welcher unter https://pad.freifunk.net/p/kbuip dokumentiert ist.&lt;br /&gt;
&lt;br /&gt;
==== /etc/fastd/mesh-vpn/on-up ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
/sbin/ip link set dev mesh-vpn address [MacAdresseAusdenken]&lt;br /&gt;
/sbin/ip link set dev mesh-vpn up&lt;br /&gt;
&lt;br /&gt;
batctl if add mesh-vpn&lt;br /&gt;
batctl it 10000&lt;br /&gt;
batctl bl 1&lt;br /&gt;
batctl gw_mode server 200MBit/200MBit # anpassen&lt;br /&gt;
&lt;br /&gt;
/sbin/ip rule show | grep 'from 10.0.0.0/8 lookup freifunk'&lt;br /&gt;
if [ $? -eq 1 ]; then&lt;br /&gt;
  /sbin/ip rule add from 10.0.0.0/8 table freifunk&lt;br /&gt;
fi&lt;br /&gt;
/sbin/ip route add [deinelokaleIPv4Range] dev bat0 table freifunk&lt;br /&gt;
/sbin/ip route flush cache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
on-up ausführbar machen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /etc/fastd/mesh-vpn/on-up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== BmxBone Netz ==&lt;br /&gt;
&lt;br /&gt;
Jetzt müsst ihr euch entscheiden, welches VPN Programm ihr für das BmxBone nutzen wollt:&lt;br /&gt;
* wenn ihr eine CPU mit AES-NI habt, oder eine CPU mit deutlich mehr als 1GHz nehmt tinc&lt;br /&gt;
* wenn ihr eine langsame CPU sub 1GHz oder sogar eine ARM CPU, sollte fastd besser sein&lt;br /&gt;
=== Installation mit tinc ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install tinc bridge-utils make build-essential&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wir müssen bmx6 noch kompilieren:&lt;br /&gt;
 mkdir /opt/freifunk/&lt;br /&gt;
 cd /opt/freifunk/&lt;br /&gt;
 git clone https://github.com/axn/bmx6&lt;br /&gt;
 cd bmx6&lt;br /&gt;
 make build_all&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /etc/tinc/tbmxbone&lt;br /&gt;
echo &amp;quot;tbmxbone&amp;quot; &amp;gt;&amp;gt; /etc/tinc/nets.boot  # Dies sagt tinc, dass es das Netz &amp;quot;tbmxbone&amp;quot; starten soll&lt;br /&gt;
cd /etc/tinc/tbmxbone&lt;br /&gt;
# Public keys der anderen Teilnehmer:&lt;br /&gt;
git clone https://gitlab.kbu.freifunk.net/bmxbone/tinc.git hosts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt fehlt noch des eigene Public/Private Keypaar. &amp;lt;br /&amp;gt;&lt;br /&gt;
Die Keys sollten in /etc/tinc/tbmxbone gespeichert werden.&amp;lt;br /&amp;gt;&lt;br /&gt;
Den Public-Key in den Namen des Supernodes umbenennen und nach tinc/ kopieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tincd -K 4096 -n tbmxbone&lt;br /&gt;
cp rsa_key.pub hosts/[Supernodename aus tinc Configfile]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und schliesslich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd hosts&lt;br /&gt;
git add .&lt;br /&gt;
git commit&lt;br /&gt;
git push&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wir müssen noch die Konfiguration von tinc in /etc/tinc/tbmxbone/tinc.conf schreiben.&lt;br /&gt;
&lt;br /&gt;
==== tinc.conf ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name=[Supernodenamen]&lt;br /&gt;
Device=/dev/net/tun&lt;br /&gt;
DirectOnly=yes # tinc soll nicht Daten selbst weiterleiten&lt;br /&gt;
IndirectData=yes &lt;br /&gt;
Broadcast=direct&lt;br /&gt;
Cipher=AES-128-CBC # nutzt AES-NI und performed deswegen besser als fastd&lt;br /&gt;
Mode=switch&lt;br /&gt;
PingInterval=60&lt;br /&gt;
PingTimeout=10&lt;br /&gt;
Compression=0 &lt;br /&gt;
ConnectTo=gw06&lt;br /&gt;
ConnectTo=vpn1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== tinc-up ====&lt;br /&gt;
Jetzt müssen wir noch ein Startskript namens ''/etc/tinc/tbmxbone/tinc-up'' erstellen:&lt;br /&gt;
'''Wichtig:''' in der datei muss wirklich $INTERFACE stehen. Tinc ersetzt dies automatisch durch das entsprechende interface bei ausführung.&lt;br /&gt;
&lt;br /&gt;
Deine zugeteilten Adressen sind unter https://kbu.freifunk.net/wiki/index.php?title=IP_Subnetze zu finden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
bmx6 dev=$INTERFACE # VPN Mesh Interface dem BMX6 Mesh hinzufügen&lt;br /&gt;
# Default tunneladressen dem tbmxbone zuweisen&lt;br /&gt;
bmx6 -c tunDev=Default /tun4Address=[BMXipv4Adresse] /tun6Adress=[BMX6ipv6Adresse] &lt;br /&gt;
# Feste Tunnel MTU von 1366 einstellen&lt;br /&gt;
bmx6 -c tunMtu=1366&lt;br /&gt;
# Lokales v4&amp;amp;v6 Netz announcen&lt;br /&gt;
bmx6 -c tunIn=localv4 /n=[DeinLokalesIPv4Netz] /b=100000000&lt;br /&gt;
bmx6 -c tunIn=localv6 /n=[DeinLokalesIPv6Netz] /b=100000000&lt;br /&gt;
# Defaultroute für v4 suchen&lt;br /&gt;
bmx6 -c tunOut=v4Default /network=0.0.0.0/0 /maxPrefixLen=3 /hysteresis=30 /tableRule=50000/200 &lt;br /&gt;
# Gateway für v4 präferieren&lt;br /&gt;
#bmx6 -c tunOut=v4Defaultgw06 /network=0.0.0.0/0 /maxPrefixLen=0 /hysteresis=30 /tableRule=50000/200 /gwName=gw06 /rating=1000000&lt;br /&gt;
# Defaultroute für v6 suchen&lt;br /&gt;
bmx6 -c tunOut=v6Default /network=::/0 /maxPrefixLen=64 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
# Routen für lokale v4 und v6 Netze suchen&lt;br /&gt;
bmx6 -c tunOut=ffv4 /network=10.0.0.0/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
bmx6 -c tunOut=ffv6 /network=fd00::/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch diese Datei muss ausführbar gemacht werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /etc/tinc/tbmxbone/tinc-up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach sollte der Ordner etwa so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$:/etc/tinc/tbmxbone# ls &lt;br /&gt;
hosts&lt;br /&gt;
rsa_key.priv&lt;br /&gt;
rsa_key.pub&lt;br /&gt;
tinc.conf&lt;br /&gt;
tinc-up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation (fastd) ==&lt;br /&gt;
&lt;br /&gt;
Zuerst müssen wir bmx6 kompilieren:&lt;br /&gt;
 apt-get install build-essential make fastd&lt;br /&gt;
 mkdir /opt/freifunk/&lt;br /&gt;
 cd /opt/freifunk/&lt;br /&gt;
 git clone https://github.com/axn/bmx6.git&lt;br /&gt;
 cd bmx6&lt;br /&gt;
 make build_all # this reports some erros, go ahead anyway&lt;br /&gt;
 make install&lt;br /&gt;
 &lt;br /&gt;
Nun bauen wir das FastdInterface:&lt;br /&gt;
&lt;br /&gt;
 mkdir /etc/fastd/fbmxbone&lt;br /&gt;
 cd /etc/fastd/fbmxbone&lt;br /&gt;
 nano fastd.conf&lt;br /&gt;
&lt;br /&gt;
Inhalt der Konfigdatei (ihr müsst euch einen eigenen Key mit fastd --generate-key, wenn ihr nicht für andere erreichbar sein wollt, müsst ihr den Key euch auch nicht merken):&lt;br /&gt;
==== /etc/fastd/fbmxbone/fastd.conf ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bind 0.0.0.0 port 10042;&lt;br /&gt;
&lt;br /&gt;
drop capabilities yes;&lt;br /&gt;
forward no;&lt;br /&gt;
hide ip addresses yes;&lt;br /&gt;
hide mac addresses yes;&lt;br /&gt;
&lt;br /&gt;
peer group &amp;quot;ffrl&amp;quot; {&lt;br /&gt;
  include peers from &amp;quot;ffrl&amp;quot;;&lt;br /&gt;
  peer limit 1;&lt;br /&gt;
}&lt;br /&gt;
peer group &amp;quot;backbone&amp;quot; {&lt;br /&gt;
  include peers from &amp;quot;backbone&amp;quot;;&lt;br /&gt;
  peer limit 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
interface &amp;quot;fbmxbone&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
log to syslog level warn;&lt;br /&gt;
&lt;br /&gt;
method &amp;quot;salsa2012+umac&amp;quot;;&lt;br /&gt;
mode tap;&lt;br /&gt;
mtu 1406;&lt;br /&gt;
&lt;br /&gt;
on up sync &amp;quot;./on-up&amp;quot;;&lt;br /&gt;
on verify async &amp;quot;true&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
pmtu auto;&lt;br /&gt;
&lt;br /&gt;
secret &amp;quot;PUT IN SIKRIT KEY IN HERE&amp;quot;;&lt;br /&gt;
secure handshakes yes;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt clonen wir aus dem Git-Repo die PublicKeys der Knoten:&lt;br /&gt;
 cd /opt/freifunk/&lt;br /&gt;
 git clone https://gitlab.kbu.freifunk.net/bmxbone/fastd.git&lt;br /&gt;
Und kopieren diese noch per Hand in die einzelnen Keyverzeichnisse (verbessern):&lt;br /&gt;
 mkdir ffrl&lt;br /&gt;
 mkdir backbone&lt;br /&gt;
 cp fastd/* backbone/&lt;br /&gt;
 mv backbone/gw06 ffrl/&lt;br /&gt;
Und brauchen noch ein on-up Skript (/etc/fastd/fbmxbone/on-up):&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 /sbin/ip link set dev fbmxbone address [MAC ADDY AUSDENKEN]&lt;br /&gt;
 /sbin/ip link set dev fbmxbone up&lt;br /&gt;
 bmx6 dev=fbmxbone&lt;br /&gt;
 bmx6 -c tunDev=Default /tun4Address=[BMXipv4Adresse] /tun6Adress=[BMX6ipv6Adresse]&lt;br /&gt;
 bmx6 -c tunIn=localv4 /n=[DeinLokalesIPv4Netz] /b=100000000&lt;br /&gt;
 bmx6 -c tunIn=localv6 /n=[DeinLokalesIPv6Netz] /b=100000000&lt;br /&gt;
 bmx6 -c tunOut=v4Default /network=0.0.0.0/0 /maxPrefixLen=3 /hysteresis=30 /tableRule=50000/200 &lt;br /&gt;
 #bmx6 -c tunOut=v4Defaultgw06 /network=0.0.0.0/0 /maxPrefixLen=0 /hysteresis=30 /tableRule=50000/200 /gwName=gw06 /rating=1000000&lt;br /&gt;
 bmx6 -c tunOut=v6Default /network=::/0 /maxPrefixLen=64 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
 bmx6 -c tunOut=ffv4 /network=10.0.0.0/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
 bmx6 -c tunOut=ffv6 /network=fd00::/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
Und mittlerweile klar, ausführbar machen:&lt;br /&gt;
 chmod +x /etc/fastd/fbmxbone/on-up&lt;br /&gt;
&lt;br /&gt;
== Routing ==&lt;br /&gt;
&lt;br /&gt;
Wir brauchen policy based routing:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;200 freifunk&amp;quot; &amp;gt;&amp;gt; /etc/iproute2/rt_tables&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
fastd's on-up, /etc/network/interfaces.d/bat0 und/oder tinc-up erledigen den Rest. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IPv4 DHCP ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install isc-dhcp-server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
Nun ändern wir die Konfiguration in /etc/dhcp/dhcpd.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
option domain-name &amp;quot;mesh.kbu.freifunk.net&amp;quot;;&lt;br /&gt;
option domain-name-servers [Supernode IPv4], [INSERT YOUR PREFERRED IPV4 DNS], 213.73.91.35;&lt;br /&gt;
&lt;br /&gt;
default-lease-time 150;&lt;br /&gt;
max-lease-time 720;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
subnet 10.X.X.X netmask Y.Y.Y.Y { # Die Range der Hood&lt;br /&gt;
	range 10.X.Y.10 10.X.Z.254; # Eure IPv4 Range&lt;br /&gt;
	option routers [Supernode IP Adresse];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IPv6 ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install radvd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration /etc/radvd.conf ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
interface bat0&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
 AdvSendAdvert on;&lt;br /&gt;
 MaxRtrAdvInterval 200;&lt;br /&gt;
 prefix [GlobaleIPv6Range des Supernodes] {&lt;br /&gt;
 };&lt;br /&gt;
 RDNSS [ULA IPv6 address of Supernode, your preferred ipv6 DNS-Server] {&lt;br /&gt;
 }; &lt;br /&gt;
 prefix [ULA IPv6 range der Supernode (z.B. fdd3::/64)] {&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UDP-Queue Größe ==&lt;br /&gt;
Durch Broadcasts können können auf Supernodes kurzzeitig hohe Lastspitzen enstehen. In der aktuellen batman-adv-Version wird jedes Broadcast-Paket zudem 3x auf jedem Link versendet.&lt;br /&gt;
Die vergleichweise hohe Datenrate von 100MBit/s zwischen Supernodes bewirkt darüber hinaus, dass broadcast-Pakete mit 100MBit/s eingehen können, während sie gleichzeitig an alle Nodes gesendet werden müssen.&lt;br /&gt;
&lt;br /&gt;
Linux-Distributionen sehen per Default Queue-Größen im Bereich von 128 KB vor (http://www.cyberciti.biz/faq/linux-tcp-tuning/). Supernodes sind somit nicht in der Lage entsprechende Lastspitzen zu puffern und während Idle-Times zu versenden. Läuft die UDP-Queue über, so loggt fastd:&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
Jeder Log-Eintrag entspricht einem Paket, dass nicht enqueued werden konnte und damit verworfen wurde. Die Queue-Größen können via systctl angepasst werden (http://wwwx.cs.unc.edu/~sparkst/howto/network_tuning.php). Auf fastd2 wird zur Zeit verwendet:&lt;br /&gt;
 #/etc/sysctl.conf&lt;br /&gt;
 net.core.rmem_max=83886080&lt;br /&gt;
 net.core.wmem_max=83886080&lt;br /&gt;
 net.core.rmem_default=83886080&lt;br /&gt;
 net.core.wmem_default=83886080&lt;br /&gt;
&lt;br /&gt;
Das System verfügt dadurch über 80MB Speicher für Queues. Per default stehen ebenfalls 80MB zur Verfügung. Die konfigurierten 80MB reichen aus, um die 100MBit/s Verbindung über mehrere Sekunden auszulasten und Lastspitzen abzufangen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Netz-und-Technik]]&lt;br /&gt;
&lt;br /&gt;
== DNS-&amp;quot;Server&amp;quot; ==&lt;br /&gt;
Supernodes betreiben Caching-DNS-Forwarder. Hierzu wird unbound verwendet&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
 apt install unbound&lt;br /&gt;
&lt;br /&gt;
== Adressen ==&lt;br /&gt;
Das Setup unterscheidet zwischen v4 und v6. &lt;br /&gt;
&lt;br /&gt;
== /etc/unbound/unbound.conf ==&lt;br /&gt;
&lt;br /&gt;
 server:&lt;br /&gt;
        auto-trust-anchor-file: &amp;quot;/var/lib/unbound/root.key&amp;quot;&lt;br /&gt;
        interface: [ULA ipv6 des supernodes]&lt;br /&gt;
        access-control: [public ipv6 Range des Supernodes]  allow&lt;br /&gt;
        access-control: [ULA ipv6 Range des Supernodes] allow&lt;br /&gt;
        interface: [ipv4 des Supernodes]&lt;br /&gt;
        access-control: [IPv4 Range der Hood] allow&lt;br /&gt;
        verbosity: 1&lt;br /&gt;
  forward-zone:&lt;br /&gt;
      name: &amp;quot;.&amp;quot;&lt;br /&gt;
      forward-addr: [your Favorite v4 DNS IP]&lt;br /&gt;
      forward-addr: [your Favorite v6 DNS IP]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DHCP Client Leases in eine RAMdisk flüchtig speichern ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;tmpfs /var/lib/dhcp/ tmpfs defaults,size=10% 0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logrotate auf die letzte Stunde umstellen ==&lt;br /&gt;
&lt;br /&gt;
Mehr braucht es nicht im Betrieb&lt;br /&gt;
&lt;br /&gt;
Hierzu in /etc/logrotate.conf folgendes ändern:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;weekly&amp;quot; in &amp;quot;hourly&amp;quot; ändern&lt;br /&gt;
 &amp;quot;rotate 4&amp;quot; in &amp;quot;rotate 0&amp;quot; ändern&lt;br /&gt;
&lt;br /&gt;
=== cronJob hinzufügen === &lt;br /&gt;
mit crontab -e Editor aufrufen und folgende Zeile hinzufügen:&lt;br /&gt;
 &lt;br /&gt;
 * */1 * * * nice -n 20 logrotate /etc/logrotate.conf &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
== Preinstall ==&lt;br /&gt;
 &lt;br /&gt;
apt install uml-utilities&lt;br /&gt;
&lt;br /&gt;
== Interfaces in /etc/network/interfaces.d/bat0 definieren ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto bat0&lt;br /&gt;
iface bat0 inet static&lt;br /&gt;
  hwaddress ether [noch eine MACADRESSE AUSDENKEN]&lt;br /&gt;
  address [ipv4 des Supernodes]&lt;br /&gt;
  netmask [Netzmaske der Hood]&lt;br /&gt;
  pre-up  modprobe batman-adv &amp;amp;&amp;amp; tunctl -t mesh-vpn &amp;amp;&amp;amp; batctl if add mesh-vpn&lt;br /&gt;
  post-up ip rule add iif bat0 table freifunk&lt;br /&gt;
  pre-down ip rule del iif bat0 table freifunk&lt;br /&gt;
&lt;br /&gt;
iface bat0 inet6 static&lt;br /&gt;
  address [GLOBAL IPv6 des Supernodes]&lt;br /&gt;
  netmask 64&lt;br /&gt;
  # Routes&lt;br /&gt;
  # Note: route del not needed - shutting down the interfaces removes routes anyway&lt;br /&gt;
  post-up ip -6 addr add fdd3:5d16:b5dd:1016::1/64 dev bat0&lt;br /&gt;
  post-up ip -6 route add fdd3:5d16:b5dd:1016::/64 dev bat0&lt;br /&gt;
  post-up ip -6 route add fdd3:5d16:b5dd:1016::/64 dev bat0 table freifunk&lt;br /&gt;
  post-up ip -6 route add [IPv6 Range der Supernode] dev bat0&lt;br /&gt;
  post-up ip -6 route add [IPv6 Range der Supernode] dev bat0 table freifunk&lt;br /&gt;
&lt;br /&gt;
  # Rules (iif: routed traffic, from: traffic from the supernode)&lt;br /&gt;
  post-up ip -6 rule add iif bat0 table freifunk&lt;br /&gt;
  post-up ip -6 rule add from [GLOBAL IPv6 Range des Exits] table freifunk&lt;br /&gt;
  pre-down ip -6 rule del iif bat0 table freifunk&lt;br /&gt;
  pre-down ip -6 rule del from [GLOBAL IPv6 Range des Exits] table freifunk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IP-Tables Firewall ==&lt;br /&gt;
&lt;br /&gt;
Hier wollen wir nur die schlimmsten Routingfuckups verhindern, es soll nichts über z.B. eth0 rausgeforwardet werden können.&lt;br /&gt;
=== Installation ===&lt;br /&gt;
 apt install iptables-persistent&lt;br /&gt;
&lt;br /&gt;
=== Inhalt /etc/iptables/rules.v4 ===&lt;br /&gt;
&lt;br /&gt;
=== Inhalt /etc/iptables/rules.v6 ===&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Supernode&amp;diff=4603</id>
		<title>Supernode</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Supernode&amp;diff=4603"/>
		<updated>2016-05-22T16:39:27Z</updated>

		<summary type="html">&lt;p&gt;Took: /* /etc/fastd/fbmxbone/fastd.conf */ path added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
[[Kategorie:Infrastruktur]]&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
[[https://en.wikipedia.org/wiki/Supernode_%28networking%29 wikipedia-article]]&lt;br /&gt;
&lt;br /&gt;
Benötigte Software&lt;br /&gt;
&lt;br /&gt;
1) [[https://projects.universe-factory.net/projects/fastd fastd]] Mesh-vpn&lt;br /&gt;
&lt;br /&gt;
2) [[https://bmx6.net/projects/bmx6 bmx6]] BackboneMeshProtokoll&lt;br /&gt;
&lt;br /&gt;
3) [[http://www.open-mesh.org/projects/open-mesh/wiki batman-adv]] ClientMeshProtokoll&lt;br /&gt;
&lt;br /&gt;
4) [[http://www.tinc-vpn.org/ tinc]] Mesh-vpn&lt;br /&gt;
&lt;br /&gt;
5) OS: debian jessie(or whatever you like)&lt;br /&gt;
&lt;br /&gt;
Du benötigst ausserdem: &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* eine private IPv4/IPv6 Adresse und ein Subnetz für die Clients&lt;br /&gt;
* eine IPv4/IPv6 Adresse für das Backbone-Netz&lt;br /&gt;
&lt;br /&gt;
Diese kannst du unter dem Artikel IP Netze selbst zuteilen, oder nachlesen, welches deine sind, wenn es jemand anderes dir schon zuteilte.&lt;br /&gt;
&lt;br /&gt;
(nur bei öffentlichen Supernodes)&lt;br /&gt;
== Vorbereitungen ==&lt;br /&gt;
In der /etc/sysctl.conf muss folgendes mit einem Editor hinzugefügt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
net.ipv4.ip_forward=1&lt;br /&gt;
net.ipv4.ip_no_pmtu_disc=1&lt;br /&gt;
net.ipv4.route.flush=1&lt;br /&gt;
net.ipv6.conf.all.forwarding=1&lt;br /&gt;
net.ipv6.conf.all.autoconf=0&lt;br /&gt;
net.ipv6.conf.all.accept_ra=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach die /etc/sysctl.conf neu einlesen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysctl -p&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für Batman-adv und fastd-Pakete in /etc/apt/apt/sources.list hinzufügen, z.B. so:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;deb http://repo.universe-factory.net/debian/ sid main&amp;quot; &amp;gt;&amp;gt;/etc/apt/sources.list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GPG-Key importieren und apt via https ermöglichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 gpg --keyserver pgpkeys.mit.edu --recv-key  16EF3F64CB201D9C&lt;br /&gt;
 gpg -a --export 16EF3F64CB201D9C | apt-key add -&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-transport-https&lt;br /&gt;
&lt;br /&gt;
 apt-get update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batman-adv (compat14 (Hood Bonn))==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Dies sollte auf debian wheezy batman-adv 2013.4.0 installieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install batman-adv-dkms&lt;br /&gt;
echo &amp;quot;batman-adv&amp;quot; &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== debian jessie ====&lt;br /&gt;
batman 14 aus folgender quelle installieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://repo.universe-factory.net/debian/ sid main&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
dann dkms die richtige version beibringen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dkms remove batman-adv/2013.4.0 --all&lt;br /&gt;
dkms --force install batman-adv/2013.4.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
und mit apt-pinning die richtige version für batctl erzwingen, in /etc/apt/preferences.d/batctl.pref:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Package: batctl&lt;br /&gt;
Pin: origin repo.universe-factory.net&lt;br /&gt;
Pin-Priority: 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
und apt-get install batctl&lt;br /&gt;
&lt;br /&gt;
== Batman-adv (compat15)==&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Update and install:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install git make gcc build-essential linux-headers-$(uname -r) pkg-config libgps-dev libnl-3-dev libjansson-dev fastd&lt;br /&gt;
&lt;br /&gt;
Install Batman, batctl and alfred&lt;br /&gt;
 mkdir /opt/freifunk&lt;br /&gt;
 cd $_&lt;br /&gt;
 &lt;br /&gt;
 git clone git://git.open-mesh.org/batman-adv.git&lt;br /&gt;
 cd batman-adv&lt;br /&gt;
 git checkout v2015.1&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 &lt;br /&gt;
 cd ../&lt;br /&gt;
 &lt;br /&gt;
 git clone http://git.open-mesh.org/batctl.git&lt;br /&gt;
 cd batctl&lt;br /&gt;
 git checkout v2015.1&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Wird künftig nicht mehr benötigt. Wer's trotzdem installieren mag:&lt;br /&gt;
&lt;br /&gt;
 cd ../&lt;br /&gt;
 &lt;br /&gt;
 git clone http://git.open-mesh.org/alfred.git&lt;br /&gt;
 cd alfred&lt;br /&gt;
 git checkout v2014.4.0&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
== fastd ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 apt-get install fastd curl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Add Directories''' &lt;br /&gt;
 mkdir /etc/fastd/mesh-vpn&lt;br /&gt;
 mkdir /etc/fastd/mesh-vpn/peers&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;[YOUR SECRET KEY HERE]&amp;quot; sollte dabei durch den fastd-secret-key ersetzt werden. Den Key müsst ihr selbst erstellen. Dies geht mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
 fastd --generate-key&lt;br /&gt;
&lt;br /&gt;
Schreibt am besten euch public und private key woanders noch auf. Wenn ihr den verliert, können Nodes nicht mehr mit euch connecten, solange diese nicht umkonfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
In /etc/fastd/mesh-vpn/fastd.conf folgendes hinzufügen:&lt;br /&gt;
&lt;br /&gt;
==== /etc/fastd/mesh-vpn/fastd.conf ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Log warnings and errors to stderr&lt;br /&gt;
#log level warn;&lt;br /&gt;
log level error;&lt;br /&gt;
&lt;br /&gt;
drop capabilities yes;&lt;br /&gt;
forward no;&lt;br /&gt;
hide ip addresses yes;&lt;br /&gt;
hide mac addresses yes;&lt;br /&gt;
&lt;br /&gt;
# Log everything to a log file&lt;br /&gt;
#log to &amp;quot;/var/log/fastd-mesh-vpn.log&amp;quot; level debug;&lt;br /&gt;
log to &amp;quot;/var/log/fastd-mesh-vpn.log&amp;quot; level warn;&lt;br /&gt;
&lt;br /&gt;
# Set the interface name&lt;br /&gt;
interface &amp;quot;mesh-vpn&amp;quot;;&lt;br /&gt;
mode &amp;quot;tap&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Support xsalsa20 and aes128 encryption methods, prefer xsalsa20&lt;br /&gt;
method &amp;quot;salsa2012+umac&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Bind to a fixed port, IPv4 only&lt;br /&gt;
bind 0.0.0.0:10000;&lt;br /&gt;
&lt;br /&gt;
mtu 1312;&lt;br /&gt;
pmtu auto;&lt;br /&gt;
secure handshakes yes;&lt;br /&gt;
&lt;br /&gt;
# Secret key generated by 'fastd --generate-key'&lt;br /&gt;
secret &amp;quot;[YOUR SECRET KEY HERE]&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Include peers from the directory 'peers' and set max connections&lt;br /&gt;
&lt;br /&gt;
peer group &amp;quot;backbone&amp;quot; {&lt;br /&gt;
  include peers from &amp;quot;backbone&amp;quot;;&lt;br /&gt;
  peer limit 64;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
on up sync &amp;quot;./on-up&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Allows all peers to connect.&lt;br /&gt;
on verify async &amp;quot;true&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ordnerstruktur anlegen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /etc/fastd/mesh-vpn/backbone&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Optional: Wenn die Node teil einer grösseren Hood werden soll, entsprechende Backbone Node Keys in das zueben erstellte Verzeichnis legen. Vorzuziehen ist aber entweder eine eigene Fastdinstanz oder eine Tinc VPN Verbindung (AES-NI) um sich an eine hood (Layer2 Mesh mit Batman-adv) zu verbinden, dies ist performanter.&lt;br /&gt;
&lt;br /&gt;
Der IP v4-Range bezieht sich auf euren selbst gewählten Bereich, welcher unter https://pad.freifunk.net/p/kbuip dokumentiert ist.&lt;br /&gt;
==== /etc/fastd/mesh-vpn/on-up ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
/sbin/ip link set dev mesh-vpn address [MacAdresseAusdenken]&lt;br /&gt;
/sbin/ip link set dev mesh-vpn up&lt;br /&gt;
&lt;br /&gt;
batctl if add mesh-vpn&lt;br /&gt;
batctl it 10000&lt;br /&gt;
batctl bl 1&lt;br /&gt;
batctl gw_mode server 200MBit/200MBit # anpassen&lt;br /&gt;
&lt;br /&gt;
/sbin/ip rule show | grep 'from 10.0.0.0/8 lookup freifunk'&lt;br /&gt;
if [ $? -eq 1 ]; then&lt;br /&gt;
  /sbin/ip rule add from 10.0.0.0/8 table freifunk&lt;br /&gt;
fi&lt;br /&gt;
/sbin/ip route add [deinelokaleIPv4Range] dev bat0 table freifunk&lt;br /&gt;
/sbin/ip route flush cache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
on-up ausführbar machen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /etc/fastd/mesh-vpn/on-up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== BmxBone Netz ==&lt;br /&gt;
&lt;br /&gt;
Jetzt müsst ihr euch entscheiden, welches VPN Programm ihr für das BmxBone nutzen wollt:&lt;br /&gt;
* wenn ihr eine CPU mit AES-NI habt, oder eine CPU mit deutlich mehr als 1GHz nehmt tinc&lt;br /&gt;
* wenn ihr eine langsame CPU sub 1GHz oder sogar eine ARM CPU, sollte fastd besser sein&lt;br /&gt;
=== Installation mit tinc ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install tinc bridge-utils make build-essential&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wir müssen bmx6 noch kompilieren:&lt;br /&gt;
 mkdir /opt/freifunk/&lt;br /&gt;
 cd /opt/freifunk/&lt;br /&gt;
 git clone https://github.com/axn/bmx6&lt;br /&gt;
 cd bmx6&lt;br /&gt;
 make build_all&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /etc/tinc/tbmxbone&lt;br /&gt;
echo &amp;quot;tbmxbone&amp;quot; &amp;gt;&amp;gt; /etc/tinc/nets.boot  # Dies sagt tinc, dass es das Netz &amp;quot;tbmxbone&amp;quot; starten soll&lt;br /&gt;
cd /etc/tinc/tbmxbone&lt;br /&gt;
# Public keys der anderen Teilnehmer:&lt;br /&gt;
git clone https://gitlab.kbu.freifunk.net/bmxbone/tinc.git hosts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt fehlt noch des eigene Public/Private Keypaar. &amp;lt;br /&amp;gt;&lt;br /&gt;
Die Keys sollten in /etc/tinc/tbmxbone gespeichert werden.&amp;lt;br /&amp;gt;&lt;br /&gt;
Den Public-Key in den Namen des Supernodes umbenennen und nach tinc/ kopieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tincd -K 4096 -n tbmxbone&lt;br /&gt;
cp rsa_key.pub hosts/[Supernodename aus tinc Configfile]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und schliesslich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd hosts&lt;br /&gt;
git add .&lt;br /&gt;
git commit&lt;br /&gt;
git push&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wir müssen noch die Konfiguration von tinc in /etc/tinc/tbmxbone/tinc.conf schreiben.&lt;br /&gt;
&lt;br /&gt;
==== tinc.conf ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name=[Supernodenamen]&lt;br /&gt;
Device=/dev/net/tun&lt;br /&gt;
DirectOnly=yes # tinc soll nicht Daten selbst weiterleiten&lt;br /&gt;
IndirectData=yes &lt;br /&gt;
Broadcast=direct&lt;br /&gt;
Cipher=AES-128-CBC # nutzt AES-NI und performed deswegen besser als fastd&lt;br /&gt;
Mode=switch&lt;br /&gt;
PingInterval=60&lt;br /&gt;
PingTimeout=10&lt;br /&gt;
Compression=0 &lt;br /&gt;
ConnectTo=gw06&lt;br /&gt;
ConnectTo=vpn1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== tinc-up ====&lt;br /&gt;
Jetzt müssen wir noch ein Startskript namens ''/etc/tinc/tbmxbone/tinc-up'' erstellen:&lt;br /&gt;
'''Wichtig:''' in der datei muss wirklich $INTERFACE stehen. Tinc ersetzt dies automatisch durch das entsprechende interface bei ausführung.&lt;br /&gt;
&lt;br /&gt;
Deine zugeteilten Adressen sind unter https://kbu.freifunk.net/wiki/index.php?title=IP_Subnetze zu finden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
bmx6 dev=$INTERFACE # VPN Mesh Interface dem BMX6 Mesh hinzufügen&lt;br /&gt;
# Default tunneladressen dem tbmxbone zuweisen&lt;br /&gt;
bmx6 -c tunDev=Default /tun4Address=[BMXipv4Adresse] /tun6Adress=[BMX6ipv6Adresse] &lt;br /&gt;
# Feste Tunnel MTU von 1366 einstellen&lt;br /&gt;
bmx6 -c tunMtu=1366&lt;br /&gt;
# Lokales v4&amp;amp;v6 Netz announcen&lt;br /&gt;
bmx6 -c tunIn=localv4 /n=[DeinLokalesIPv4Netz] /b=100000000&lt;br /&gt;
bmx6 -c tunIn=localv6 /n=[DeinLokalesIPv6Netz] /b=100000000&lt;br /&gt;
# Defaultroute für v4 suchen&lt;br /&gt;
bmx6 -c tunOut=v4Default /network=0.0.0.0/0 /maxPrefixLen=3 /hysteresis=30 /tableRule=50000/200 &lt;br /&gt;
# Gateway für v4 präferieren&lt;br /&gt;
#bmx6 -c tunOut=v4Defaultgw06 /network=0.0.0.0/0 /maxPrefixLen=0 /hysteresis=30 /tableRule=50000/200 /gwName=gw06 /rating=1000000&lt;br /&gt;
# Defaultroute für v6 suchen&lt;br /&gt;
bmx6 -c tunOut=v6Default /network=::/0 /maxPrefixLen=64 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
# Routen für lokale v4 und v6 Netze suchen&lt;br /&gt;
bmx6 -c tunOut=ffv4 /network=10.0.0.0/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
bmx6 -c tunOut=ffv6 /network=fd00::/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch diese Datei muss ausführbar gemacht werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /etc/tinc/tbmxbone/tinc-up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach sollte der Ordner etwa so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$:/etc/tinc/tbmxbone# ls &lt;br /&gt;
hosts&lt;br /&gt;
rsa_key.priv&lt;br /&gt;
rsa_key.pub&lt;br /&gt;
tinc.conf&lt;br /&gt;
tinc-up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation (fastd) ==&lt;br /&gt;
&lt;br /&gt;
Zuerst müssen wir bmx6 kompilieren:&lt;br /&gt;
 apt-get install build-essential make fastd&lt;br /&gt;
 mkdir /opt/freifunk/&lt;br /&gt;
 cd /opt/freifunk/&lt;br /&gt;
 git clone https://github.com/axn/bmx6.git&lt;br /&gt;
 cd bmx6&lt;br /&gt;
 make build_all # this reports some erros, go ahead anyway&lt;br /&gt;
 make install&lt;br /&gt;
 &lt;br /&gt;
Nun bauen wir das FastdInterface:&lt;br /&gt;
&lt;br /&gt;
 mkdir /etc/fastd/fbmxbone&lt;br /&gt;
 cd /etc/fastd/fbmxbone&lt;br /&gt;
 nano fastd.conf&lt;br /&gt;
&lt;br /&gt;
Inhalt der Konfigdatei (ihr müsst euch einen eigenen Key mit fastd --generate-key, wenn ihr nicht für andere erreichbar sein wollt, müsst ihr den Key euch auch nicht merken):&lt;br /&gt;
==== /etc/fastd/fbmxbone/fastd.conf ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bind 0.0.0.0 port 10042;&lt;br /&gt;
&lt;br /&gt;
drop capabilities yes;&lt;br /&gt;
forward no;&lt;br /&gt;
hide ip addresses yes;&lt;br /&gt;
hide mac addresses yes;&lt;br /&gt;
&lt;br /&gt;
peer group &amp;quot;ffrl&amp;quot; {&lt;br /&gt;
  include peers from &amp;quot;ffrl&amp;quot;;&lt;br /&gt;
  peer limit 1;&lt;br /&gt;
}&lt;br /&gt;
peer group &amp;quot;backbone&amp;quot; {&lt;br /&gt;
  include peers from &amp;quot;backbone&amp;quot;;&lt;br /&gt;
  peer limit 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
interface &amp;quot;fbmxbone&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
log to syslog level warn;&lt;br /&gt;
&lt;br /&gt;
method &amp;quot;salsa2012+umac&amp;quot;;&lt;br /&gt;
mode tap;&lt;br /&gt;
mtu 1406;&lt;br /&gt;
&lt;br /&gt;
on up sync &amp;quot;./on-up&amp;quot;;&lt;br /&gt;
on verify async &amp;quot;true&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
pmtu auto;&lt;br /&gt;
&lt;br /&gt;
secret &amp;quot;PUT IN SIKRIT KEY IN HERE&amp;quot;;&lt;br /&gt;
secure handshakes yes;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt clonen wir aus dem Git-Repo die PublicKeys der Knoten:&lt;br /&gt;
 cd /opt/freifunk/&lt;br /&gt;
 git clone https://gitlab.kbu.freifunk.net/bmxbone/fastd.git&lt;br /&gt;
Und kopieren diese noch per Hand in die einzelnen Keyverzeichnisse (verbessern):&lt;br /&gt;
 mkdir ffrl&lt;br /&gt;
 mkdir backbone&lt;br /&gt;
 cp fastd/* backbone/&lt;br /&gt;
 mv backbone/gw06 ffrl/&lt;br /&gt;
Und brauchen noch ein on-up Skript (/etc/fastd/fbmxbone/on-up):&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 /sbin/ip link set dev fbmxbone address [MAC ADDY AUSDENKEN]&lt;br /&gt;
 /sbin/ip link set dev fbmxbone up&lt;br /&gt;
 bmx6 dev=fbmxbone&lt;br /&gt;
 bmx6 -c tunDev=Default /tun4Address=[BMXipv4Adresse] /tun6Adress=[BMX6ipv6Adresse]&lt;br /&gt;
 bmx6 -c tunIn=localv4 /n=[DeinLokalesIPv4Netz] /b=100000000&lt;br /&gt;
 bmx6 -c tunIn=localv6 /n=[DeinLokalesIPv6Netz] /b=100000000&lt;br /&gt;
 bmx6 -c tunOut=v4Default /network=0.0.0.0/0 /maxPrefixLen=3 /hysteresis=30 /tableRule=50000/200 &lt;br /&gt;
 #bmx6 -c tunOut=v4Defaultgw06 /network=0.0.0.0/0 /maxPrefixLen=0 /hysteresis=30 /tableRule=50000/200 /gwName=gw06 /rating=1000000&lt;br /&gt;
 bmx6 -c tunOut=v6Default /network=::/0 /maxPrefixLen=64 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
 bmx6 -c tunOut=ffv4 /network=10.0.0.0/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
 bmx6 -c tunOut=ffv6 /network=fd00::/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
Und mittlerweile klar, ausführbar machen:&lt;br /&gt;
 chmod +x /etc/fastd/fbmxbone/on-up&lt;br /&gt;
&lt;br /&gt;
== Routing ==&lt;br /&gt;
&lt;br /&gt;
Wir brauchen policy based routing:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;200 freifunk&amp;quot; &amp;gt;&amp;gt; /etc/iproute2/rt_tables&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
fastd's on-up, /etc/network/interfaces.d/bat0 und/oder tinc-up erledigen den Rest. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IPv4 DHCP ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install isc-dhcp-server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
Nun ändern wir die Konfiguration in /etc/dhcp/dhcpd.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
option domain-name &amp;quot;mesh.kbu.freifunk.net&amp;quot;;&lt;br /&gt;
option domain-name-servers [Supernode IPv4], [INSERT YOUR PREFERRED IPV4 DNS], 213.73.91.35;&lt;br /&gt;
&lt;br /&gt;
default-lease-time 150;&lt;br /&gt;
max-lease-time 720;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
subnet 10.X.X.X netmask Y.Y.Y.Y { # Die Range der Hood&lt;br /&gt;
	range 10.X.Y.10 10.X.Z.255; # Eure IPv4 Range&lt;br /&gt;
	option routers [Supernode IP Adresse];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IPv6 ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install radvd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
interface bat0&lt;br /&gt;
IgnoreIfMissing yes&lt;br /&gt;
{&lt;br /&gt;
 AdvSendAdvert on;&lt;br /&gt;
 MaxRtrAdvInterval 200;&lt;br /&gt;
 prefix [GlobaleIPv6Range des Supernodes] {&lt;br /&gt;
 };&lt;br /&gt;
 RDNSS [ULA IPv6 of Supernode], [your preferred ipv6 DNS-Server] {&lt;br /&gt;
 }; &lt;br /&gt;
 prefix [ULA IPv6Range der Supernode (fd00::/64)] {&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UDP-Queue Größe ==&lt;br /&gt;
Durch Broadcasts können können auf Supernodes kurzzeitig hohe Lastspitzen enstehen. In der aktuellen batman-adv-Version wird jedes Broadcast-Paket zudem 3x auf jedem Link versendet.&lt;br /&gt;
Die vergleichweise hohe Datenrate von 100MBit/s zwischen Supernodes bewirkt darüber hinaus, dass broadcast-Pakete mit 100MBit/s eingehen können, während sie gleichzeitig an alle Nodes gesendet werden müssen.&lt;br /&gt;
&lt;br /&gt;
Linux-Distributionen sehen per Default Queue-Größen im Bereich von 128 KB vor (http://www.cyberciti.biz/faq/linux-tcp-tuning/). Supernodes sind somit nicht in der Lage entsprechende Lastspitzen zu puffern und während Idle-Times zu versenden. Läuft die UDP-Queue über, so loggt fastd:&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
Jeder Log-Eintrag entspricht einem Paket, dass nicht enqueued werden konnte und damit verworfen wurde. Die Queue-Größen können via systctl angepasst werden (http://wwwx.cs.unc.edu/~sparkst/howto/network_tuning.php). Auf fastd2 wird zur Zeit verwendet:&lt;br /&gt;
 #/etc/sysctl.conf&lt;br /&gt;
 net.core.rmem_max=83886080&lt;br /&gt;
 net.core.wmem_max=83886080&lt;br /&gt;
 net.core.rmem_default=83886080&lt;br /&gt;
 net.core.wmem_default=83886080&lt;br /&gt;
&lt;br /&gt;
Das System verfügt dadurch über 80MB Speicher für Queues. Per default stehen ebenfalls 80MB zur Verfügung. Die konfigurierten 80MB reichen aus, um die 100MBit/s Verbindung über mehrere Sekunden auszulasten und Lastspitzen abzufangen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Netz-und-Technik]]&lt;br /&gt;
&lt;br /&gt;
== DNS-&amp;quot;Server&amp;quot; ==&lt;br /&gt;
Supernodes betreiben Caching-DNS-Forwarder. Hierzu wird unbound verwendet&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
 apt install unbound&lt;br /&gt;
&lt;br /&gt;
== Adressen ==&lt;br /&gt;
Das Setup unterscheidet zwischen v4 und v6. &lt;br /&gt;
&lt;br /&gt;
== /etc/unbound/unbound.conf ==&lt;br /&gt;
&lt;br /&gt;
 server:&lt;br /&gt;
        auto-trust-anchor-file: &amp;quot;/var/lib/unbound/root.key&amp;quot;&lt;br /&gt;
        interface: [ULA ipv6 des supernodes]&lt;br /&gt;
        access-control: [public ipv6 Range des Supernodes]  allow&lt;br /&gt;
        access-control: [ULA ipv6 Range des Supernodes] allow&lt;br /&gt;
        interface: [ipv4 des Supernodes]&lt;br /&gt;
        access-control: [IPv4 Range der Hood] allow&lt;br /&gt;
        verbosity: 1&lt;br /&gt;
  forward-zone:&lt;br /&gt;
      name: &amp;quot;.&amp;quot;&lt;br /&gt;
      forward-addr: [your Favorite v4 DNS IP]&lt;br /&gt;
      forward-addr: [your Favorite v6 DNS IP]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DHCP Client Leases in eine RAMdisk flüchtig speichern ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;tmpfs /var/lib/dhcp/ tmpfs defaults,size=10% 0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logrotate auf die letzte Stunde umstellen ==&lt;br /&gt;
&lt;br /&gt;
Mehr braucht es nicht im Betrieb&lt;br /&gt;
&lt;br /&gt;
Hierzu in /etc/logrotate.conf folgendes ändern:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;weekly&amp;quot; in &amp;quot;hourly&amp;quot; ändern&lt;br /&gt;
 &amp;quot;rotate 4&amp;quot; in &amp;quot;rotate 0&amp;quot; ändern&lt;br /&gt;
&lt;br /&gt;
=== cronJob hinzufügen === &lt;br /&gt;
mit crontab -e Editor aufrufen und folgende Zeile hinzufügen:&lt;br /&gt;
 &lt;br /&gt;
 * */1 * * * nice -n 20 logrotate /etc/logrotate.conf&lt;br /&gt;
&lt;br /&gt;
== Interfaces in /etc/network/interfaces.d/bat0 definieren ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto bat0&lt;br /&gt;
iface bat0 inet static&lt;br /&gt;
  hwaddress ether [MACADRESSE AUSDENKEN]&lt;br /&gt;
  address [ipv4 des Supernodes]&lt;br /&gt;
  netmask [Netzmaske der Hood]&lt;br /&gt;
  pre-up  modprobe batman-adv &amp;amp;&amp;amp; tunctl -t mesh-vpn &amp;amp;&amp;amp; batctl if add mesh-vpn&lt;br /&gt;
  post-up ip rule add iif bat0 table freifunk&lt;br /&gt;
  pre-down ip rule del iif bat0 table freifunk&lt;br /&gt;
&lt;br /&gt;
iface bat0 inet6 static&lt;br /&gt;
  address [GLOBAL IPv6 des Supernodes]&lt;br /&gt;
  netmask 64&lt;br /&gt;
  # Routes&lt;br /&gt;
  # Note: route del not needed - shutting down the interfaces removes routes anyway&lt;br /&gt;
  post-up ip -6 route add [IPv6 Range der Supernode] dev bat0&lt;br /&gt;
  post-up ip -6 route add [IPv6 Range der Supernode] dev bat0 table freifunk&lt;br /&gt;
&lt;br /&gt;
  # Rules (iif: routed traffic, from: traffic from the supernode)&lt;br /&gt;
  post-up ip -6 rule add iif bat0 table freifunk&lt;br /&gt;
  post-up ip -6 rule add from [GLOBAL IPv6 Range des Exits] table freifunk&lt;br /&gt;
  pre-down ip -6 rule del iif bat0 table freifunk&lt;br /&gt;
  pre-down ip -6 rule del from [GLOBAL IPv6 Range des Exits] table freifunk&lt;br /&gt;
&lt;br /&gt;
== IP-Tables Firewall ==&lt;br /&gt;
&lt;br /&gt;
Hier wollen wir nur die schlimmsten Routingfuckups verhindern, es soll nichts über z.B. eth0 rausgeforwardet werden können.&lt;br /&gt;
=== Installation ===&lt;br /&gt;
 apt install iptables-persistent&lt;br /&gt;
&lt;br /&gt;
=== Inhalt /etc/iptables/rules.v4 ===&lt;br /&gt;
&lt;br /&gt;
=== Inhalt /etc/iptables/rules.v6 ===&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Supernode&amp;diff=4600</id>
		<title>Supernode</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Supernode&amp;diff=4600"/>
		<updated>2016-05-22T16:26:15Z</updated>

		<summary type="html">&lt;p&gt;Took: /* /etc/fastd/fbmxbone/fastd.conf */ cd added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
[[Kategorie:Infrastruktur]]&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
[[https://en.wikipedia.org/wiki/Supernode_%28networking%29 wikipedia-article]]&lt;br /&gt;
&lt;br /&gt;
Benötigte Software&lt;br /&gt;
&lt;br /&gt;
1) [[https://projects.universe-factory.net/projects/fastd fastd]] Mesh-vpn&lt;br /&gt;
&lt;br /&gt;
2) [[https://bmx6.net/projects/bmx6 bmx6]] BackboneMeshProtokoll&lt;br /&gt;
&lt;br /&gt;
3) [[http://www.open-mesh.org/projects/open-mesh/wiki batman-adv]] ClientMeshProtokoll&lt;br /&gt;
&lt;br /&gt;
4) [[http://www.tinc-vpn.org/ tinc]] Mesh-vpn&lt;br /&gt;
&lt;br /&gt;
5) OS: debian jessie(or whatever you like)&lt;br /&gt;
&lt;br /&gt;
Du benötigst ausserdem: &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* eine private IPv4/IPv6 Adresse und ein Subnetz für die Clients&lt;br /&gt;
* eine IPv4/IPv6 Adresse für das Backbone-Netz&lt;br /&gt;
&lt;br /&gt;
Diese kannst du unter dem Artikel IP Netze selbst zuteilen, oder nachlesen, welches deine sind, wenn es jemand anderes dir schon zuteilte.&lt;br /&gt;
&lt;br /&gt;
(nur bei öffentlichen Supernodes)&lt;br /&gt;
== Vorbereitungen ==&lt;br /&gt;
In der /etc/sysctl.conf muss folgendes mit einem Editor hinzugefügt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
net.ipv4.ip_forward=1&lt;br /&gt;
net.ipv4.ip_no_pmtu_disc=1&lt;br /&gt;
net.ipv4.route.flush=1&lt;br /&gt;
net.ipv6.conf.all.forwarding=1&lt;br /&gt;
net.ipv6.conf.all.autoconf=0&lt;br /&gt;
net.ipv6.conf.all.accept_ra=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach die /etc/sysctl.conf neu einlesen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysctl -p&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für Batman-adv und fastd-Pakete in /etc/apt/apt/sources.list hinzufügen, z.B. so:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;deb http://repo.universe-factory.net/debian/ sid main&amp;quot; &amp;gt;&amp;gt;/etc/apt/sources.list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GPG-Key importieren und apt via https ermöglichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 gpg --keyserver pgpkeys.mit.edu --recv-key  16EF3F64CB201D9C&lt;br /&gt;
 gpg -a --export 16EF3F64CB201D9C | apt-key add -&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-transport-https&lt;br /&gt;
&lt;br /&gt;
 apt-get update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batman-adv (compat14 (Hood Bonn))==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Dies sollte auf debian wheezy batman-adv 2013.4.0 installieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install batman-adv-dkms&lt;br /&gt;
echo &amp;quot;batman-adv&amp;quot; &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== debian jessie ====&lt;br /&gt;
batman 14 aus folgender quelle installieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://repo.universe-factory.net/debian/ sid main&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
dann dkms die richtige version beibringen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dkms remove batman-adv/2013.4.0 --all&lt;br /&gt;
dkms --force install batman-adv/2013.4.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
und mit apt-pinning die richtige version für batctl erzwingen, in /etc/apt/preferences.d/batctl.pref:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Package: batctl&lt;br /&gt;
Pin: origin repo.universe-factory.net&lt;br /&gt;
Pin-Priority: 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
und apt-get install batctl&lt;br /&gt;
&lt;br /&gt;
== Batman-adv (compat15)==&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Update and install:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install git make gcc build-essential linux-headers-$(uname -r) pkg-config libgps-dev libnl-3-dev libjansson-dev fastd&lt;br /&gt;
&lt;br /&gt;
Install Batman, batctl and alfred&lt;br /&gt;
 mkdir /opt/freifunk&lt;br /&gt;
 cd $_&lt;br /&gt;
 &lt;br /&gt;
 git clone git://git.open-mesh.org/batman-adv.git&lt;br /&gt;
 cd batman-adv&lt;br /&gt;
 git checkout v2015.1&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 &lt;br /&gt;
 cd ../&lt;br /&gt;
 &lt;br /&gt;
 git clone http://git.open-mesh.org/batctl.git&lt;br /&gt;
 cd batctl&lt;br /&gt;
 git checkout v2015.1&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Wird künftig nicht mehr benötigt. Wer's trotzdem installieren mag:&lt;br /&gt;
&lt;br /&gt;
 cd ../&lt;br /&gt;
 &lt;br /&gt;
 git clone http://git.open-mesh.org/alfred.git&lt;br /&gt;
 cd alfred&lt;br /&gt;
 git checkout v2014.4.0&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
== fastd ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 apt-get install fastd curl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Add Directories''' &lt;br /&gt;
 mkdir /etc/fastd/mesh-vpn&lt;br /&gt;
 mkdir /etc/fastd/mesh-vpn/peers&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;[YOUR SECRET KEY HERE]&amp;quot; sollte dabei durch den fastd-secret-key ersetzt werden. Den Key müsst ihr selbst erstellen. Dies geht mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
 fastd --generate-key&lt;br /&gt;
&lt;br /&gt;
Schreibt am besten euch public und private key woanders noch auf. Wenn ihr den verliert, können Nodes nicht mehr mit euch connecten, solange diese nicht umkonfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
In /etc/fastd/mesh-vpn/fastd.conf folgendes hinzufügen:&lt;br /&gt;
&lt;br /&gt;
==== /etc/fastd/mesh-vpn/fastd.conf ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Log warnings and errors to stderr&lt;br /&gt;
#log level warn;&lt;br /&gt;
log level error;&lt;br /&gt;
&lt;br /&gt;
drop capabilities yes;&lt;br /&gt;
forward no;&lt;br /&gt;
hide ip addresses yes;&lt;br /&gt;
hide mac addresses yes;&lt;br /&gt;
&lt;br /&gt;
# Log everything to a log file&lt;br /&gt;
#log to &amp;quot;/var/log/fastd-mesh-vpn.log&amp;quot; level debug;&lt;br /&gt;
log to &amp;quot;/var/log/fastd-mesh-vpn.log&amp;quot; level warn;&lt;br /&gt;
&lt;br /&gt;
# Set the interface name&lt;br /&gt;
interface &amp;quot;mesh-vpn&amp;quot;;&lt;br /&gt;
mode &amp;quot;tap&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Support xsalsa20 and aes128 encryption methods, prefer xsalsa20&lt;br /&gt;
method &amp;quot;salsa2012+umac&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Bind to a fixed port, IPv4 only&lt;br /&gt;
bind 0.0.0.0:10000;&lt;br /&gt;
&lt;br /&gt;
mtu 1312;&lt;br /&gt;
pmtu auto;&lt;br /&gt;
secure handshakes yes;&lt;br /&gt;
&lt;br /&gt;
# Secret key generated by 'fastd --generate-key'&lt;br /&gt;
secret &amp;quot;[YOUR SECRET KEY HERE]&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Include peers from the directory 'peers' and set max connections&lt;br /&gt;
&lt;br /&gt;
peer group &amp;quot;backbone&amp;quot; {&lt;br /&gt;
  include peers from &amp;quot;backbone&amp;quot;;&lt;br /&gt;
  peer limit 64;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
on up sync &amp;quot;./on-up&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Allows all peers to connect.&lt;br /&gt;
on verify async &amp;quot;true&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ordnerstruktur anlegen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /etc/fastd/mesh-vpn/backbone&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Optional: Wenn die Node teil einer grösseren Hood werden soll, entsprechende Backbone Node Keys in das zueben erstellte Verzeichnis legen. Vorzuziehen ist aber entweder eine eigene Fastdinstanz oder eine Tinc VPN Verbindung (AES-NI) um sich an eine hood (Layer2 Mesh mit Batman-adv) zu verbinden, dies ist performanter.&lt;br /&gt;
&lt;br /&gt;
Der IP v4-Range bezieht sich auf euren selbst gewählten Bereich, welcher unter https://pad.freifunk.net/p/kbuip dokumentiert ist.&lt;br /&gt;
==== /etc/fastd/mesh-vpn/on-up ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
/sbin/ip link set dev mesh-vpn address [MacAdresseAusdenken]&lt;br /&gt;
/sbin/ip link set dev mesh-vpn up&lt;br /&gt;
&lt;br /&gt;
batctl if add mesh-vpn&lt;br /&gt;
batctl it 10000&lt;br /&gt;
batctl bl 1&lt;br /&gt;
batctl gw_mode server 200MBit/200MBit # anpassen&lt;br /&gt;
&lt;br /&gt;
/sbin/ip rule show | grep 'from 10.0.0.0/8 lookup freifunk'&lt;br /&gt;
if [ $? -eq 1 ]; then&lt;br /&gt;
  /sbin/ip rule add from 10.0.0.0/8 table freifunk&lt;br /&gt;
fi&lt;br /&gt;
/sbin/ip route add [deinelokaleIPv4Range] dev bat0 table freifunk&lt;br /&gt;
/sbin/ip route flush cache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
on-up ausführbar machen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /etc/fastd/mesh-vpn/on-up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== BmxBone Netz ==&lt;br /&gt;
&lt;br /&gt;
Jetzt müsst ihr euch entscheiden, welches VPN Programm ihr für das BmxBone nutzen wollt:&lt;br /&gt;
* wenn ihr eine CPU mit AES-NI habt, oder eine CPU mit deutlich mehr als 1GHz nehmt tinc&lt;br /&gt;
* wenn ihr eine langsame CPU sub 1GHz oder sogar eine ARM CPU, sollte fastd besser sein&lt;br /&gt;
=== Installation mit tinc ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install tinc bridge-utils make build-essential&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wir müssen bmx6 noch kompilieren:&lt;br /&gt;
 mkdir /opt/freifunk/&lt;br /&gt;
 cd /opt/freifunk/&lt;br /&gt;
 git clone https://github.com/axn/bmx6&lt;br /&gt;
 cd bmx6&lt;br /&gt;
 make build_all&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /etc/tinc/tbmxbone&lt;br /&gt;
echo &amp;quot;tbmxbone&amp;quot; &amp;gt;&amp;gt; /etc/tinc/nets.boot  # Dies sagt tinc, dass es das Netz &amp;quot;tbmxbone&amp;quot; starten soll&lt;br /&gt;
cd /etc/tinc/tbmxbone&lt;br /&gt;
# Public keys der anderen Teilnehmer:&lt;br /&gt;
git clone https://gitlab.kbu.freifunk.net/bmxbone/tinc.git hosts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt fehlt noch des eigene Public/Private Keypaar. &amp;lt;br /&amp;gt;&lt;br /&gt;
Die Keys sollten in /etc/tinc/tbmxbone gespeichert werden.&amp;lt;br /&amp;gt;&lt;br /&gt;
Den Public-Key in den Namen des Supernodes umbenennen und nach tinc/ kopieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tincd -K 4096 -n tbmxbone&lt;br /&gt;
cp rsa_key.pub hosts/[Supernodename aus tinc Configfile]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und schliesslich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd hosts&lt;br /&gt;
git add .&lt;br /&gt;
git commit&lt;br /&gt;
git push&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wir müssen noch die Konfiguration von tinc in /etc/tinc/tbmxbone/tinc.conf schreiben.&lt;br /&gt;
&lt;br /&gt;
==== tinc.conf ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name=[Supernodenamen]&lt;br /&gt;
Device=/dev/net/tun&lt;br /&gt;
DirectOnly=yes # tinc soll nicht Daten selbst weiterleiten&lt;br /&gt;
IndirectData=yes &lt;br /&gt;
Broadcast=direct&lt;br /&gt;
Cipher=AES-128-CBC # nutzt AES-NI und performed deswegen besser als fastd&lt;br /&gt;
Mode=switch&lt;br /&gt;
PingInterval=60&lt;br /&gt;
PingTimeout=10&lt;br /&gt;
Compression=0 &lt;br /&gt;
ConnectTo=gw06&lt;br /&gt;
ConnectTo=vpn1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== tinc-up ====&lt;br /&gt;
Jetzt müssen wir noch ein Startskript namens ''/etc/tinc/tbmxbone/tinc-up'' erstellen:&lt;br /&gt;
'''Wichtig:''' in der datei muss wirklich $INTERFACE stehen. Tinc ersetzt dies automatisch durch das entsprechende interface bei ausführung.&lt;br /&gt;
&lt;br /&gt;
Deine zugeteilten Adressen sind unter https://kbu.freifunk.net/wiki/index.php?title=IP_Subnetze zu finden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
bmx6 dev=$INTERFACE # VPN Mesh Interface dem BMX6 Mesh hinzufügen&lt;br /&gt;
# Default tunneladressen dem tbmxbone zuweisen&lt;br /&gt;
bmx6 -c tunDev=Default /tun4Address=[BMXipv4Adresse] /tun6Adress=[BMX6ipv6Adresse] &lt;br /&gt;
# Feste Tunnel MTU von 1366 einstellen&lt;br /&gt;
bmx6 -c tunMtu=1366&lt;br /&gt;
# Lokales v4&amp;amp;v6 Netz announcen&lt;br /&gt;
bmx6 -c tunIn=localv4 /n=[DeinLokalesIPv4Netz] /b=100000000&lt;br /&gt;
bmx6 -c tunIn=localv6 /n=[DeinLokalesIPv6Netz] /b=100000000&lt;br /&gt;
# Defaultroute für v4 suchen&lt;br /&gt;
bmx6 -c tunOut=v4Default /network=0.0.0.0/0 /maxPrefixLen=3 /hysteresis=30 /tableRule=50000/200 &lt;br /&gt;
# Gateway für v4 präferieren&lt;br /&gt;
#bmx6 -c tunOut=v4Defaultgw06 /network=0.0.0.0/0 /maxPrefixLen=0 /hysteresis=30 /tableRule=50000/200 /gwName=gw06 /rating=1000000&lt;br /&gt;
# Defaultroute für v6 suchen&lt;br /&gt;
bmx6 -c tunOut=v6Default /network=::/0 /maxPrefixLen=64 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
# Routen für lokale v4 und v6 Netze suchen&lt;br /&gt;
bmx6 -c tunOut=ffv4 /network=10.0.0.0/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
bmx6 -c tunOut=ffv6 /network=fd00::/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch diese Datei muss ausführbar gemacht werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /etc/tinc/tbmxbone/tinc-up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach sollte der Ordner etwa so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$:/etc/tinc/tbmxbone# ls &lt;br /&gt;
tinc&lt;br /&gt;
hosts -&amp;gt; tinc&lt;br /&gt;
rsa_key.priv&lt;br /&gt;
rsa_key.pub&lt;br /&gt;
tinc.conf&lt;br /&gt;
tinc-up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation (fastd) ==&lt;br /&gt;
&lt;br /&gt;
Zuerst müssen wir bmx6 kompilieren:&lt;br /&gt;
 apt-get install build-essential make fastd&lt;br /&gt;
 mkdir /opt/freifunk/&lt;br /&gt;
 cd /opt/freifunk/&lt;br /&gt;
 git clone https://github.com/axn/bmx6.git&lt;br /&gt;
 cd bmx6&lt;br /&gt;
 make build_all # this reports some erros, go ahead anyway&lt;br /&gt;
 make install&lt;br /&gt;
 &lt;br /&gt;
Nun bauen wir das FastdInterface:&lt;br /&gt;
&lt;br /&gt;
 mkdir /etc/fastd/fbmxbone&lt;br /&gt;
 cd /etc/fastd/fbmxbone&lt;br /&gt;
 nano fastd.conf&lt;br /&gt;
&lt;br /&gt;
Inhalt der Konfigdatei (ihr müsst euch einen eigenen Key mit fastd --generate-key, wenn ihr nicht für andere erreichbar sein wollt, müsst ihr den Key euch auch nicht merken):&lt;br /&gt;
==== /etc/fastd/fbmxbone/fastd.conf ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bind 0.0.0.0 port 10042;&lt;br /&gt;
&lt;br /&gt;
drop capabilities yes;&lt;br /&gt;
forward no;&lt;br /&gt;
hide ip addresses yes;&lt;br /&gt;
hide mac addresses yes;&lt;br /&gt;
&lt;br /&gt;
peer group &amp;quot;ffrl&amp;quot; {&lt;br /&gt;
  include peers from &amp;quot;ffrl&amp;quot;;&lt;br /&gt;
  peer limit 1;&lt;br /&gt;
}&lt;br /&gt;
peer group &amp;quot;backbone&amp;quot; {&lt;br /&gt;
  include peers from &amp;quot;backbone&amp;quot;;&lt;br /&gt;
  peer limit 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
interface &amp;quot;fbmxbone&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
log to syslog level warn;&lt;br /&gt;
&lt;br /&gt;
method &amp;quot;salsa2012+umac&amp;quot;;&lt;br /&gt;
mode tap;&lt;br /&gt;
mtu 1406;&lt;br /&gt;
&lt;br /&gt;
on up sync &amp;quot;./on-up&amp;quot;;&lt;br /&gt;
on verify async &amp;quot;true&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
pmtu auto;&lt;br /&gt;
&lt;br /&gt;
secret &amp;quot;PUT IN SIKRIT KEY IN HERE&amp;quot;;&lt;br /&gt;
secure handshakes yes;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt clonen wir aus dem Git-Repo die PublicKeys der Knoten:&lt;br /&gt;
 cd /opt/freifunk/&lt;br /&gt;
 git clone https://gitlab.kbu.freifunk.net/bmxbone/fastd.git&lt;br /&gt;
Und kopieren diese noch per Hand in die einzelnen Keyverzeichnisse (verbessern):&lt;br /&gt;
 mkdir ffrl&lt;br /&gt;
 mkdir backbone&lt;br /&gt;
 cp fastd/* backbone/&lt;br /&gt;
 mv backbone/gw06 ffrl/&lt;br /&gt;
Und brauchen noch ein on-up Skript (/etc/fastd/fbmxbone/on-up):&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 /sbin/ip link set dev fbmxbone address [MAC ADDY AUSDENKEN]&lt;br /&gt;
 /sbin/ip link set dev fbmxbone up&lt;br /&gt;
 bmx6 dev=fbmxbone&lt;br /&gt;
 bmx6 -c tunDev=Default /tun4Address=[BMXipv4Adresse] /tun6Adress=[BMX6ipv6Adresse]&lt;br /&gt;
 bmx6 -c tunIn=localv4 /n=[DeinLokalesIPv4Netz] /b=100000000&lt;br /&gt;
 bmx6 -c tunIn=localv6 /n=[DeinLokalesIPv6Netz] /b=100000000&lt;br /&gt;
 bmx6 -c tunOut=v4Default /network=0.0.0.0/0 /maxPrefixLen=3 /hysteresis=30 /tableRule=50000/200 &lt;br /&gt;
 #bmx6 -c tunOut=v4Defaultgw06 /network=0.0.0.0/0 /maxPrefixLen=0 /hysteresis=30 /tableRule=50000/200 /gwName=gw06 /rating=1000000&lt;br /&gt;
 bmx6 -c tunOut=v6Default /network=0.0.0.0/0 /maxPrefixLen=64 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
 bmx6 -c tunOut=ffv4 /network=10.0.0.0/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
 bmx6 -c tunOut=ffv6 /network=fd00::/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
Und mittlerweile klar, ausführbar machen:&lt;br /&gt;
 chmod +x on-up&lt;br /&gt;
&lt;br /&gt;
== Routing ==&lt;br /&gt;
&lt;br /&gt;
Wir brauchen policy based routing:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;200 freifunk&amp;quot; &amp;gt;&amp;gt; /etc/iproute2/rt_tables&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
fastd's on-up, /etc/network/interfaces.d/bat0 und/oder tinc-up erledigen den Rest. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IPv4 DHCP ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install isc-dhcp-server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
Nun ändern wir die Konfiguration in /etc/dhcp/dhcpd.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
option domain-name &amp;quot;mesh.kbu.freifunk.net&amp;quot;;&lt;br /&gt;
option domain-name-servers [Supernode IPv4], [INSERT YOUR PREFERRED IPV4 DNS], 213.73.91.35;&lt;br /&gt;
&lt;br /&gt;
default-lease-time 150;&lt;br /&gt;
max-lease-time 720;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
subnet 10.X.X.X netmask Y.Y.Y.Y { # Die Range der Hood&lt;br /&gt;
	range 10.X.Y.10 10.X.Z.255; # Eure IPv4 Range&lt;br /&gt;
	option routers [Supernode IP Adresse];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IPv6 ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install radvd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
interface bat0&lt;br /&gt;
IgnoreIfMissing yes&lt;br /&gt;
{&lt;br /&gt;
 AdvSendAdvert on;&lt;br /&gt;
 MaxRtrAdvInterval 200;&lt;br /&gt;
 prefix [GlobaleIPv6Range des Supernodes] {&lt;br /&gt;
 };&lt;br /&gt;
 RDNSS [ULA IPv6 of Supernode], [your preferred ipv6 DNS-Server] {&lt;br /&gt;
 }; &lt;br /&gt;
 prefix [ULA IPv6Range der Supernode (fd00::/64)] {&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UDP-Queue Größe ==&lt;br /&gt;
Durch Broadcasts können können auf Supernodes kurzzeitig hohe Lastspitzen enstehen. In der aktuellen batman-adv-Version wird jedes Broadcast-Paket zudem 3x auf jedem Link versendet.&lt;br /&gt;
Die vergleichweise hohe Datenrate von 100MBit/s zwischen Supernodes bewirkt darüber hinaus, dass broadcast-Pakete mit 100MBit/s eingehen können, während sie gleichzeitig an alle Nodes gesendet werden müssen.&lt;br /&gt;
&lt;br /&gt;
Linux-Distributionen sehen per Default Queue-Größen im Bereich von 128 KB vor (http://www.cyberciti.biz/faq/linux-tcp-tuning/). Supernodes sind somit nicht in der Lage entsprechende Lastspitzen zu puffern und während Idle-Times zu versenden. Läuft die UDP-Queue über, so loggt fastd:&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
Jeder Log-Eintrag entspricht einem Paket, dass nicht enqueued werden konnte und damit verworfen wurde. Die Queue-Größen können via systctl angepasst werden (http://wwwx.cs.unc.edu/~sparkst/howto/network_tuning.php). Auf fastd2 wird zur Zeit verwendet:&lt;br /&gt;
 #/etc/sysctl.conf&lt;br /&gt;
 net.core.rmem_max=83886080&lt;br /&gt;
 net.core.wmem_max=83886080&lt;br /&gt;
 net.core.rmem_default=83886080&lt;br /&gt;
 net.core.wmem_default=83886080&lt;br /&gt;
&lt;br /&gt;
Das System verfügt dadurch über 80MB Speicher für Queues. Per default stehen ebenfalls 80MB zur Verfügung. Die konfigurierten 80MB reichen aus, um die 100MBit/s Verbindung über mehrere Sekunden auszulasten und Lastspitzen abzufangen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Netz-und-Technik]]&lt;br /&gt;
&lt;br /&gt;
== DNS-&amp;quot;Server&amp;quot; ==&lt;br /&gt;
Supernodes betreiben Caching-DNS-Forwarder. Hierzu wird unbound verwendet&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
 apt install unbound&lt;br /&gt;
&lt;br /&gt;
== Adressen ==&lt;br /&gt;
Das Setup unterscheidet zwischen v4 und v6. &lt;br /&gt;
&lt;br /&gt;
== /etc/unbound/unbound.conf ==&lt;br /&gt;
&lt;br /&gt;
 server:&lt;br /&gt;
        auto-trust-anchor-file: &amp;quot;/var/lib/unbound/root.key&amp;quot;&lt;br /&gt;
        interface: [ULA ipv6 des supernodes]&lt;br /&gt;
        access-control: [public ipv6 Range des Supernodes]  allow&lt;br /&gt;
        access-control: [ULA ipv6 Range des Supernodes] allow&lt;br /&gt;
        interface: [ipv4 des Supernodes]&lt;br /&gt;
        access-control: [IPv4 Range der Hood] allow&lt;br /&gt;
        verbosity: 1&lt;br /&gt;
  forward-zone:&lt;br /&gt;
      name: &amp;quot;.&amp;quot;&lt;br /&gt;
      forward-addr: [your Favorite v4 DNS IP]&lt;br /&gt;
      forward-addr: [your Favorite v6 DNS IP]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DHCP Client Leases in eine RAMdisk flüchtig speichern ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;tmpfs /var/lib/dhcp/ tmpfs defaults,size=10% 0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logrotate auf die letzte Stunde umstellen ==&lt;br /&gt;
&lt;br /&gt;
Mehr braucht es nicht im Betrieb&lt;br /&gt;
&lt;br /&gt;
Hierzu in /etc/logrotate.conf folgendes ändern:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;weekly&amp;quot; in &amp;quot;hourly&amp;quot; ändern&lt;br /&gt;
 &amp;quot;rotate 4&amp;quot; in &amp;quot;rotate 0&amp;quot; ändern&lt;br /&gt;
&lt;br /&gt;
=== cronJob hinzufügen === &lt;br /&gt;
mit crontab -e Editor aufrufen und folgende Zeile hinzufügen:&lt;br /&gt;
 &lt;br /&gt;
 * */1 * * * nice -n 20 logrotate /etc/logrotate.conf&lt;br /&gt;
&lt;br /&gt;
== Interfaces in /etc/network/interfaces.d/bat0 definieren ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto bat0&lt;br /&gt;
iface bat0 inet static&lt;br /&gt;
  hwaddress ether [MACADRESSE AUSDENKEN]&lt;br /&gt;
  address [ipv4 des Supernodes]&lt;br /&gt;
  netmask [Netzmaske der Hood]&lt;br /&gt;
  pre-up  modprobe batman-adv &amp;amp;&amp;amp; tunctl -t mesh-vpn &amp;amp;&amp;amp; batctl if add mesh-vpn&lt;br /&gt;
  post-up ip rule add iif bat0 table freifunk&lt;br /&gt;
  pre-down ip rule del iif bat0 table freifunk&lt;br /&gt;
&lt;br /&gt;
iface bat0 inet6 static&lt;br /&gt;
  address [GLOBAL IPv6 des Supernodes]&lt;br /&gt;
  netmask 64&lt;br /&gt;
  # Routes&lt;br /&gt;
  # Note: route del not needed - shutting down the interfaces removes routes anyway&lt;br /&gt;
  post-up ip -6 route add [IPv6 Range der Supernode] dev bat0&lt;br /&gt;
  post-up ip -6 route add [IPv6 Range der Supernode] dev bat0 table freifunk&lt;br /&gt;
&lt;br /&gt;
  # Rules (iif: routed traffic, from: traffic from the supernode)&lt;br /&gt;
  post-up ip -6 rule add iif bat0 table freifunk&lt;br /&gt;
  post-up ip -6 rule add from [GLOBAL IPv6 Range des Exits] table freifunk&lt;br /&gt;
  pre-down ip -6 rule del iif bat0 table freifunk&lt;br /&gt;
  pre-down ip -6 rule del from [GLOBAL IPv6 Range des Exits] table freifunk&lt;br /&gt;
&lt;br /&gt;
== IP-Tables Firewall ==&lt;br /&gt;
&lt;br /&gt;
Hier wollen wir nur die schlimmsten Routingfuckups verhindern, es soll nichts über z.B. eth0 rausgeforwardet werden können.&lt;br /&gt;
=== Installation ===&lt;br /&gt;
 apt install iptables-persistent&lt;br /&gt;
&lt;br /&gt;
=== Inhalt /etc/iptables/rules.v4 ===&lt;br /&gt;
&lt;br /&gt;
=== Inhalt /etc/iptables/rules.v6 ===&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Supernode&amp;diff=4592</id>
		<title>Supernode</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Supernode&amp;diff=4592"/>
		<updated>2016-05-22T16:13:17Z</updated>

		<summary type="html">&lt;p&gt;Took: /* Installation mit tinc */ mkdir &amp;amp; cd added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
[[Kategorie:Infrastruktur]]&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
[[https://en.wikipedia.org/wiki/Supernode_%28networking%29 wikipedia-article]]&lt;br /&gt;
&lt;br /&gt;
Benötigte Software&lt;br /&gt;
&lt;br /&gt;
1) [[https://projects.universe-factory.net/projects/fastd fastd]] Mesh-vpn&lt;br /&gt;
&lt;br /&gt;
2) [[https://bmx6.net/projects/bmx6 bmx6]] BackboneMeshProtokoll&lt;br /&gt;
&lt;br /&gt;
3) [[http://www.open-mesh.org/projects/open-mesh/wiki batman-adv]] ClientMeshProtokoll&lt;br /&gt;
&lt;br /&gt;
4) [[http://www.tinc-vpn.org/ tinc]] Mesh-vpn&lt;br /&gt;
&lt;br /&gt;
5) OS: debian jessie(or whatever you like)&lt;br /&gt;
&lt;br /&gt;
Du benötigst ausserdem: &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* eine private IPv4/IPv6 Adresse und ein Subnetz für die Clients&lt;br /&gt;
* eine IPv4/IPv6 Adresse für das Backbone-Netz&lt;br /&gt;
&lt;br /&gt;
Diese kannst du unter dem Artikel IP Netze selbst zuteilen, oder nachlesen, welches deine sind, wenn es jemand anderes dir schon zuteilte.&lt;br /&gt;
&lt;br /&gt;
(nur bei öffentlichen Supernodes)&lt;br /&gt;
== Vorbereitungen ==&lt;br /&gt;
In der /etc/sysctl.conf muss folgendes mit einem Editor hinzugefügt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
net.ipv4.ip_forward=1&lt;br /&gt;
net.ipv4.ip_no_pmtu_disc=1&lt;br /&gt;
net.ipv4.route.flush=1&lt;br /&gt;
net.ipv6.conf.all.forwarding=1&lt;br /&gt;
net.ipv6.conf.all.autoconf=0&lt;br /&gt;
net.ipv6.conf.all.accept_ra=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach die /etc/sysctl.conf neu einlesen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysctl -p&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für Batman-adv und fastd-Pakete in /etc/apt/apt/sources.list hinzufügen, z.B. so:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;deb http://repo.universe-factory.net/debian/ sid main&amp;quot; &amp;gt;&amp;gt;/etc/apt/sources.list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GPG-Key importieren und apt via https ermöglichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 gpg --keyserver pgpkeys.mit.edu --recv-key  16EF3F64CB201D9C&lt;br /&gt;
 gpg -a --export 16EF3F64CB201D9C | apt-key add -&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-transport-https&lt;br /&gt;
&lt;br /&gt;
 apt-get update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batman-adv (compat14 (Hood Bonn))==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Dies sollte auf debian wheezy batman-adv 2013.4.0 installieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install batman-adv-dkms&lt;br /&gt;
echo &amp;quot;batman-adv&amp;quot; &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== debian jessie ====&lt;br /&gt;
batman 14 aus folgender quelle installieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://repo.universe-factory.net/debian/ sid main&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
dann dkms die richtige version beibringen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dkms remove batman-adv/2013.4.0 --all&lt;br /&gt;
dkms --force install batman-adv/2013.4.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
und mit apt-pinning die richtige version für batctl erzwingen, in /etc/apt/preferences.d/batctl.pref:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Package: batctl&lt;br /&gt;
Pin: origin repo.universe-factory.net&lt;br /&gt;
Pin-Priority: 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
und apt-get install batctl&lt;br /&gt;
&lt;br /&gt;
== Batman-adv (compat15)==&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Update and install:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install git make gcc build-essential linux-headers-$(uname -r) pkg-config libgps-dev libnl-3-dev libjansson-dev fastd&lt;br /&gt;
&lt;br /&gt;
Install Batman, batctl and alfred&lt;br /&gt;
 mkdir /opt/freifunk&lt;br /&gt;
 cd $_&lt;br /&gt;
 &lt;br /&gt;
 git clone git://git.open-mesh.org/batman-adv.git&lt;br /&gt;
 cd batman-adv&lt;br /&gt;
 git checkout v2015.1&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 &lt;br /&gt;
 cd ../&lt;br /&gt;
 &lt;br /&gt;
 git clone http://git.open-mesh.org/batctl.git&lt;br /&gt;
 cd batctl&lt;br /&gt;
 git checkout v2015.1&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Wird künftig nicht mehr benötigt. Wer's trotzdem installieren mag:&lt;br /&gt;
&lt;br /&gt;
 cd ../&lt;br /&gt;
 &lt;br /&gt;
 git clone http://git.open-mesh.org/alfred.git&lt;br /&gt;
 cd alfred&lt;br /&gt;
 git checkout v2014.4.0&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
== fastd ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 apt-get install fastd curl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Add Directories''' &lt;br /&gt;
 mkdir /etc/fastd/mesh-vpn&lt;br /&gt;
 mkdir /etc/fastd/mesh-vpn/peers&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;[YOUR SECRET KEY HERE]&amp;quot; sollte dabei durch den fastd-secret-key ersetzt werden. Den Key müsst ihr selbst erstellen. Dies geht mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
 fastd --generate-key&lt;br /&gt;
&lt;br /&gt;
Schreibt am besten euch public und private key woanders noch auf. Wenn ihr den verliert, können Nodes nicht mehr mit euch connecten, solange diese nicht umkonfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
In /etc/fastd/mesh-vpn/fastd.conf folgendes hinzufügen:&lt;br /&gt;
&lt;br /&gt;
==== /etc/fastd/mesh-vpn/fastd.conf ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Log warnings and errors to stderr&lt;br /&gt;
#log level warn;&lt;br /&gt;
log level error;&lt;br /&gt;
&lt;br /&gt;
drop capabilities yes;&lt;br /&gt;
forward no;&lt;br /&gt;
hide ip addresses yes;&lt;br /&gt;
hide mac addresses yes;&lt;br /&gt;
&lt;br /&gt;
# Log everything to a log file&lt;br /&gt;
#log to &amp;quot;/var/log/fastd-mesh-vpn.log&amp;quot; level debug;&lt;br /&gt;
log to &amp;quot;/var/log/fastd-mesh-vpn.log&amp;quot; level warn;&lt;br /&gt;
&lt;br /&gt;
# Set the interface name&lt;br /&gt;
interface &amp;quot;mesh-vpn&amp;quot;;&lt;br /&gt;
mode &amp;quot;tap&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Support xsalsa20 and aes128 encryption methods, prefer xsalsa20&lt;br /&gt;
method &amp;quot;salsa2012+umac&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Bind to a fixed port, IPv4 only&lt;br /&gt;
bind 0.0.0.0:10000;&lt;br /&gt;
&lt;br /&gt;
mtu 1312;&lt;br /&gt;
pmtu auto;&lt;br /&gt;
secure handshakes yes;&lt;br /&gt;
&lt;br /&gt;
# Secret key generated by 'fastd --generate-key'&lt;br /&gt;
secret &amp;quot;[YOUR SECRET KEY HERE]&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Include peers from the directory 'peers' and set max connections&lt;br /&gt;
&lt;br /&gt;
peer group &amp;quot;backbone&amp;quot; {&lt;br /&gt;
  include peers from &amp;quot;backbone&amp;quot;;&lt;br /&gt;
  peer limit 64;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
on up sync &amp;quot;./on-up&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Allows all peers to connect.&lt;br /&gt;
on verify async &amp;quot;true&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ordnerstruktur anlegen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /etc/fastd/mesh-vpn/backbone&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Optional: Wenn die Node teil einer grösseren Hood werden soll, entsprechende Backbone Node Keys in das zueben erstellte Verzeichnis legen. Vorzuziehen ist aber entweder eine eigene Fastdinstanz oder eine Tinc VPN Verbindung (AES-NI) um sich an eine hood (Layer2 Mesh mit Batman-adv) zu verbinden, dies ist performanter.&lt;br /&gt;
&lt;br /&gt;
Der IP v4-Range bezieht sich auf euren selbst gewählten Bereich, welcher unter https://pad.freifunk.net/p/kbuip dokumentiert ist.&lt;br /&gt;
==== /etc/fastd/mesh-vpn/on-up ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
/sbin/ip link set dev mesh-vpn address [MacAdresseAusdenken]&lt;br /&gt;
/sbin/ip link set dev mesh-vpn up&lt;br /&gt;
&lt;br /&gt;
batctl if add mesh-vpn&lt;br /&gt;
batctl it 10000&lt;br /&gt;
batctl bl 1&lt;br /&gt;
batctl gw_mode server 200MBit/200MBit # anpassen&lt;br /&gt;
&lt;br /&gt;
/sbin/ip rule show | grep 'from 10.0.0.0/8 lookup freifunk'&lt;br /&gt;
if [ $? -eq 1 ]; then&lt;br /&gt;
  /sbin/ip rule add from 10.0.0.0/8 table freifunk&lt;br /&gt;
fi&lt;br /&gt;
/sbin/ip route add [deinelokaleIPv4Range] dev bat0 table freifunk&lt;br /&gt;
/sbin/ip route flush cache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
on-up ausführbar machen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /etc/fastd/mesh-vpn/on-up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== BmxBone Netz ==&lt;br /&gt;
&lt;br /&gt;
Jetzt müsst ihr euch entscheiden, welches VPN Programm ihr für das BmxBone nutzen wollt:&lt;br /&gt;
* wenn ihr eine CPU mit AES-NI habt, oder eine CPU mit deutlich mehr als 1GHz nehmt tinc&lt;br /&gt;
* wenn ihr eine langsame CPU sub 1GHz oder sogar eine ARM CPU, sollte fastd besser sein&lt;br /&gt;
=== Installation mit tinc ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install tinc bridge-utils make build-essential&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wir müssen bmx6 noch kompilieren:&lt;br /&gt;
 mkdir /opt/freifunk/&lt;br /&gt;
 cd /opt/freifunk/&lt;br /&gt;
 git clone https://github.com/axn/bmx6&lt;br /&gt;
 cd bmx6&lt;br /&gt;
 make build_all&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /etc/tinc/tbmxbone&lt;br /&gt;
echo &amp;quot;tbmxbone&amp;quot; &amp;gt;&amp;gt; /etc/tinc/nets.boot  # Dies sagt tinc, dass es das Netz &amp;quot;tbmxbone&amp;quot; starten soll&lt;br /&gt;
cd /etc/tinc/tbmxbone&lt;br /&gt;
# Public keys der anderen Teilnehmer:&lt;br /&gt;
git clone https://gitlab.kbu.freifunk.net/bmxbone/tinc.git hosts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt fehlt noch des eigene Public/Private Keypaar. &amp;lt;br /&amp;gt;&lt;br /&gt;
Die Keys sollten in /etc/tinc/tbmxbone gespeichert werden.&amp;lt;br /&amp;gt;&lt;br /&gt;
Den Public-Key in den Namen des Supernodes umbenennen und nach tinc/ kopieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tincd -K 4096 -n tbmxbone&lt;br /&gt;
cp rsa_key.pub hosts/[Supernodename aus tinc Configfile]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und schliesslich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd keys&lt;br /&gt;
git add .&lt;br /&gt;
git commit&lt;br /&gt;
git push&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wir müssen noch die Konfiguration von tinc in /etc/tinc/tbmxbone/tinc.conf schreiben.&lt;br /&gt;
&lt;br /&gt;
==== tinc.conf ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name=[Supernodenamen]&lt;br /&gt;
Device=/dev/net/tun&lt;br /&gt;
DirectOnly=yes # tinc soll nicht Daten selbst weiterleiten&lt;br /&gt;
IndirectData=yes &lt;br /&gt;
Broadcast=direct&lt;br /&gt;
Cipher=AES-128-CBC # nutzt AES-NI und performed deswegen besser als fastd&lt;br /&gt;
Mode=switch&lt;br /&gt;
PingInterval=60&lt;br /&gt;
PingTimeout=10&lt;br /&gt;
Compression=0 &lt;br /&gt;
ConnectTo=gw06&lt;br /&gt;
ConnectTo=vpn1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== tinc-up ====&lt;br /&gt;
Jetzt müssen wir noch ein Startskript namens ''/etc/tinc/tbmxbone/tinc-up'' erstellen:&lt;br /&gt;
'''Wichtig:''' in der datei muss wirklich $INTERFACE stehen. Tinc ersetzt dies automatisch durch das entsprechende interface bei ausführung.&lt;br /&gt;
&lt;br /&gt;
Deine ''lokalen'' Adressen entnehmen wir wieder aus https://pad.freifunk.net/p/kbuip.&lt;br /&gt;
&lt;br /&gt;
Deine zugeteilte ''BMX Adresse'' ist unter https://kbu.freifunk.net/wiki/index.php?title=IP_Subnetze zu finden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
bmx6 dev=$INTERFACE # VPN Mesh Interface dem BMX6 Mesh hinzufügen&lt;br /&gt;
# Default tunneladressen dem tbmxbone zuweisen&lt;br /&gt;
bmx6 -c tunDev=Default /tun4Address=[BMXipv4Adresse] /tun6Adress=[BMX6ipv6Adresse] &lt;br /&gt;
# Feste Tunnel MTU von 1366 einstellen&lt;br /&gt;
bmx6 -c tunMtu=1366&lt;br /&gt;
# Lokales v4&amp;amp;v6 Netz announcen&lt;br /&gt;
bmx6 -c tunIn=localv4 /n=[DeinLokalesIPv4Netz] /b=100000000&lt;br /&gt;
bmx6 -c tunIn=localv6 /n=[DeinLokalesIPv6Netz] /b=100000000&lt;br /&gt;
# Defaultroute für v4 suchen&lt;br /&gt;
bmx6 -c tunOut=v4Default /network=0.0.0.0/0 /maxPrefixLen=3 /hysteresis=30 /tableRule=50000/200 &lt;br /&gt;
# Gateway für v4 präferieren&lt;br /&gt;
#bmx6 -c tunOut=v4Defaultgw06 /network=0.0.0.0/0 /maxPrefixLen=0 /hysteresis=30 /tableRule=50000/200 /gwName=gw06 /rating=1000000&lt;br /&gt;
# Defaultroute für v6 suchen&lt;br /&gt;
bmx6 -c tunOut=v6Default /network=0.0.0.0/0 /maxPrefixLen=64 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
# Routen für lokale v4 und v6 Netze suchen&lt;br /&gt;
bmx6 -c tunOut=ffv4 /network=10.0.0.0/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
bmx6 -c tunOut=ffv6 /network=fd00::/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch diese Datei muss ausführbar gemacht werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /etc/tinc/tbmxbone/tinc-up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach sollte der Ordner etwa so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$:/etc/tinc/tbmxbone# ls &lt;br /&gt;
tinc&lt;br /&gt;
hosts -&amp;gt; tinc&lt;br /&gt;
rsa_key.priv&lt;br /&gt;
rsa_key.pub&lt;br /&gt;
tinc.conf&lt;br /&gt;
tinc-up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation (fastd) ==&lt;br /&gt;
&lt;br /&gt;
Zuerst müssen wir bmx6 kompilieren:&lt;br /&gt;
 apt-get install build-essential make fastd&lt;br /&gt;
 mkdir /opt/freifunk/&lt;br /&gt;
 cd /opt/freifunk/&lt;br /&gt;
 git clone https://github.com/axn/bmx6.git&lt;br /&gt;
 cd bmx6&lt;br /&gt;
 make build_all # this reports some erros, go ahead anyway&lt;br /&gt;
 make install&lt;br /&gt;
 &lt;br /&gt;
Nun bauen wir das FastdInterface:&lt;br /&gt;
&lt;br /&gt;
 mkdir /etc/fastd/fbmxbone&lt;br /&gt;
 cd /etc/fastd/fbmxbone&lt;br /&gt;
 nano fastd.conf&lt;br /&gt;
&lt;br /&gt;
Inhalt der Konfigdatei (ihr müsst euch einen eigenen Key mit fastd --generate-key, wenn ihr nicht für andere erreichbar sein wollt, müsst ihr den Key euch auch nicht merken):&lt;br /&gt;
==== /etc/fastd/fbmxbone ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bind 0.0.0.0 port 10042;&lt;br /&gt;
&lt;br /&gt;
drop capabilities yes;&lt;br /&gt;
forward no;&lt;br /&gt;
hide ip addresses yes;&lt;br /&gt;
hide mac addresses yes;&lt;br /&gt;
&lt;br /&gt;
peer group &amp;quot;ffrl&amp;quot; {&lt;br /&gt;
  include peers from &amp;quot;ffrl&amp;quot;;&lt;br /&gt;
  peer limit 1;&lt;br /&gt;
}&lt;br /&gt;
peer group &amp;quot;backbone&amp;quot; {&lt;br /&gt;
  include peers from &amp;quot;backbone&amp;quot;;&lt;br /&gt;
  peer limit 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
interface &amp;quot;fbmxbone&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
log to syslog level warn;&lt;br /&gt;
&lt;br /&gt;
method &amp;quot;salsa2012+umac&amp;quot;;&lt;br /&gt;
mode tap;&lt;br /&gt;
mtu 1406;&lt;br /&gt;
&lt;br /&gt;
on up sync &amp;quot;./on-up&amp;quot;;&lt;br /&gt;
on verify async &amp;quot;true&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
pmtu auto;&lt;br /&gt;
&lt;br /&gt;
secret &amp;quot;PUT IN SIKRIT KEY IN HERE&amp;quot;;&lt;br /&gt;
secure handshakes yes;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt clonen wir aus dem Git-Repo die PublicKeys der Knoten:&lt;br /&gt;
 git clone https://gitlab.kbu.freifunk.net/bmxbone/fastd &lt;br /&gt;
Und kopieren diese noch per Hand in die einzelnen Keyverzeichnisse (verbessern):&lt;br /&gt;
 mkdir ffrl&lt;br /&gt;
 mkdir backbone&lt;br /&gt;
 cp fastd/* backbone/&lt;br /&gt;
 mv backbone/gw06 ffrl/&lt;br /&gt;
Und brauchen noch ein on-up Skript (/etc/fastd/fbmxbone/on-up):&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 /sbin/ip link set dev fbmxbone address [MAC ADDY AUSDENKEN]&lt;br /&gt;
 /sbin/ip link set dev fbmxbone backboneup&lt;br /&gt;
 bmx6 dev=fbmxbone&lt;br /&gt;
 bmx6 -c tunDev=Default /tun4Address=[BMXipv4Adresse] /tun6Adress=[BMX6ipv6Adresse]&lt;br /&gt;
 bmx6 -c tunIn=localv4 /n=[DeinLokalesIPv4Netz] /b=100000000&lt;br /&gt;
 bmx6 -c tunIn=localv6 /n=[DeinLokalesIPv6Netz] /b=100000000&lt;br /&gt;
 bmx6 -c tunOut=v4Default /network=0.0.0.0/0 /maxPrefixLen=3 /hysteresis=30 /tableRule=50000/200 &lt;br /&gt;
 #bmx6 -c tunOut=v4Defaultgw06 /network=0.0.0.0/0 /maxPrefixLen=0 /hysteresis=30 /tableRule=50000/200 /gwName=gw06 /rating=1000000&lt;br /&gt;
 bmx6 -c tunOut=v6Default /network=0.0.0.0/0 /maxPrefixLen=64 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
 bmx6 -c tunOut=ffv4 /network=10.0.0.0/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
 bmx6 -c tunOut=ffv6 /network=fd00::/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
Und mittlerweile klar, ausführbar machen:&lt;br /&gt;
 chmod +x on-up&lt;br /&gt;
&lt;br /&gt;
== Routing ==&lt;br /&gt;
&lt;br /&gt;
Wir brauchen policy based routing:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;200 freifunk&amp;quot; &amp;gt;&amp;gt; /etc/iproute2/rt_tables&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
fastd's on-up, /etc/network/interfaces.d/bat0 und/oder tinc-up erledigen den Rest. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IPv4 DHCP ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install isc-dhcp-server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
Nun ändern wir die Konfiguration in /etc/dhcp/dhcpd.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
option domain-name &amp;quot;mesh.kbu.freifunk.net&amp;quot;;&lt;br /&gt;
option domain-name-servers [Supernode IPv4], [INSERT YOUR PREFERRED IPV4 DNS], 213.73.91.35;&lt;br /&gt;
&lt;br /&gt;
default-lease-time 150;&lt;br /&gt;
max-lease-time 720;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
subnet 10.X.X.X netmask Y.Y.Y.Y { # Die Range der Hood&lt;br /&gt;
	range 10.X.Y.10 10.X.Z.255; # Eure IPv4 Range&lt;br /&gt;
	option routers [Supernode IP Adresse];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IPv6 ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install radvd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
interface bat0&lt;br /&gt;
IgnoreIfMissing yes&lt;br /&gt;
{&lt;br /&gt;
 AdvSendAdvert on;&lt;br /&gt;
 MaxRtrAdvInterval 200;&lt;br /&gt;
 prefix [GlobaleIPv6Range des Supernodes] {&lt;br /&gt;
 };&lt;br /&gt;
 RDNSS [ULA IPv6 of Supernode], [your preferred ipv6 DNS-Server] {&lt;br /&gt;
 }; &lt;br /&gt;
 prefix [ULA IPv6Range der Supernode (fd00::/64)] {&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UDP-Queue Größe ==&lt;br /&gt;
Durch Broadcasts können können auf Supernodes kurzzeitig hohe Lastspitzen enstehen. In der aktuellen batman-adv-Version wird jedes Broadcast-Paket zudem 3x auf jedem Link versendet.&lt;br /&gt;
Die vergleichweise hohe Datenrate von 100MBit/s zwischen Supernodes bewirkt darüber hinaus, dass broadcast-Pakete mit 100MBit/s eingehen können, während sie gleichzeitig an alle Nodes gesendet werden müssen.&lt;br /&gt;
&lt;br /&gt;
Linux-Distributionen sehen per Default Queue-Größen im Bereich von 128 KB vor (http://www.cyberciti.biz/faq/linux-tcp-tuning/). Supernodes sind somit nicht in der Lage entsprechende Lastspitzen zu puffern und während Idle-Times zu versenden. Läuft die UDP-Queue über, so loggt fastd:&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
Jeder Log-Eintrag entspricht einem Paket, dass nicht enqueued werden konnte und damit verworfen wurde. Die Queue-Größen können via systctl angepasst werden (http://wwwx.cs.unc.edu/~sparkst/howto/network_tuning.php). Auf fastd2 wird zur Zeit verwendet:&lt;br /&gt;
 #/etc/sysctl.conf&lt;br /&gt;
 net.core.rmem_max=83886080&lt;br /&gt;
 net.core.wmem_max=83886080&lt;br /&gt;
 net.core.rmem_default=83886080&lt;br /&gt;
 net.core.wmem_default=83886080&lt;br /&gt;
&lt;br /&gt;
Das System verfügt dadurch über 80MB Speicher für Queues. Per default stehen ebenfalls 80MB zur Verfügung. Die konfigurierten 80MB reichen aus, um die 100MBit/s Verbindung über mehrere Sekunden auszulasten und Lastspitzen abzufangen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Netz-und-Technik]]&lt;br /&gt;
&lt;br /&gt;
== DNS-&amp;quot;Server&amp;quot; ==&lt;br /&gt;
Supernodes betreiben Caching-DNS-Forwarder. Hierzu wird unbound verwendet&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
 apt install unbound&lt;br /&gt;
&lt;br /&gt;
== Adressen ==&lt;br /&gt;
Das Setup unterscheidet zwischen v4 und v6. &lt;br /&gt;
&lt;br /&gt;
== /etc/unbound/unbound.conf ==&lt;br /&gt;
&lt;br /&gt;
 server:&lt;br /&gt;
        auto-trust-anchor-file: &amp;quot;/var/lib/unbound/root.key&amp;quot;&lt;br /&gt;
        interface: [ULA ipv6 des supernodes]&lt;br /&gt;
        access-control: [public ipv6 Range des Supernodes]  allow&lt;br /&gt;
        access-control: [ULA ipv6 Range des Supernodes] allow&lt;br /&gt;
        interface: [ipv4 des Supernodes]&lt;br /&gt;
        access-control: [IPv4 Range der Hood] allow&lt;br /&gt;
        verbosity: 1&lt;br /&gt;
  forward-zone:&lt;br /&gt;
      name: &amp;quot;.&amp;quot;&lt;br /&gt;
      forward-addr: [your Favorite v4 DNS IP]&lt;br /&gt;
      forward-addr: [your Favorite v6 DNS IP]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DHCP Client Leases in eine RAMdisk flüchtig speichern ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;tmpfs /var/lib/dhcp/ tmpfs defaults,size=10% 0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logrotate auf die letzte Stunde umstellen ==&lt;br /&gt;
&lt;br /&gt;
Mehr braucht es nicht im Betrieb&lt;br /&gt;
&lt;br /&gt;
Hierzu in /etc/logrotate.conf folgendes ändern:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;weekly&amp;quot; in &amp;quot;hourly&amp;quot; ändern&lt;br /&gt;
 &amp;quot;rotate 4&amp;quot; in &amp;quot;rotate 0&amp;quot; ändern&lt;br /&gt;
&lt;br /&gt;
=== cronJob hinzufügen === &lt;br /&gt;
mit crontab -e Editor aufrufen und folgende Zeile hinzufügen:&lt;br /&gt;
 &lt;br /&gt;
 * */1 * * * nice -n 20 logrotate /etc/logrotate.conf&lt;br /&gt;
&lt;br /&gt;
== Interfaces in /etc/network/interfaces.d/bat0 definieren ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto bat0&lt;br /&gt;
iface bat0 inet static&lt;br /&gt;
  hwaddress ether [MACADRESSE AUSDENKEN]&lt;br /&gt;
  address [ipv4 des Supernodes]&lt;br /&gt;
  netmask [Netzmaske der Hood]&lt;br /&gt;
  pre-up  modprobe batman-adv &amp;amp;&amp;amp; tunctl -t mesh-vpn &amp;amp;&amp;amp; batctl if add mesh-vpn&lt;br /&gt;
  post-up ip rule add iif bat0 table freifunk&lt;br /&gt;
  pre-down ip rule del iif bat0 table freifunk&lt;br /&gt;
&lt;br /&gt;
iface bat0 inet6 static&lt;br /&gt;
  address [GLOBAL IPv6 des Supernodes]&lt;br /&gt;
  netmask 64&lt;br /&gt;
  # Routes&lt;br /&gt;
  # Note: route del not needed - shutting down the interfaces removes routes anyway&lt;br /&gt;
  post-up ip -6 route add [IPv6 Range der Supernode] dev bat0&lt;br /&gt;
  post-up ip -6 route add [IPv6 Range der Supernode] dev bat0 table freifunk&lt;br /&gt;
&lt;br /&gt;
  # Rules (iif: routed traffic, from: traffic from the supernode)&lt;br /&gt;
  post-up ip -6 rule add iif bat0 table freifunk&lt;br /&gt;
  post-up ip -6 rule add from [GLOBAL IPv6 Range des Exits] table freifunk&lt;br /&gt;
  pre-down ip -6 rule del iif bat0 table freifunk&lt;br /&gt;
  pre-down ip -6 rule del from [GLOBAL IPv6 Range des Exits] table freifunk&lt;br /&gt;
&lt;br /&gt;
== IP-Tables Firewall ==&lt;br /&gt;
&lt;br /&gt;
Hier wollen wir nur die schlimmsten Routingfuckups verhindern, es soll nichts über z.B. eth0 rausgeforwardet werden können.&lt;br /&gt;
=== Installation ===&lt;br /&gt;
 apt install iptables-persistent&lt;br /&gt;
&lt;br /&gt;
=== Inhalt /etc/iptables/rules.v4 ===&lt;br /&gt;
&lt;br /&gt;
=== Inhalt /etc/iptables/rules.v6 ===&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Supernode&amp;diff=4579</id>
		<title>Supernode</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Supernode&amp;diff=4579"/>
		<updated>2016-05-22T15:54:27Z</updated>

		<summary type="html">&lt;p&gt;Took: /* /etc/fastd/fbmxbone */ wikifi&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
[[Kategorie:Infrastruktur]]&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
[[https://en.wikipedia.org/wiki/Supernode_%28networking%29 wikipedia-article]]&lt;br /&gt;
&lt;br /&gt;
Benötigte Software&lt;br /&gt;
&lt;br /&gt;
1) [[https://projects.universe-factory.net/projects/fastd fastd]] Mesh-vpn&lt;br /&gt;
&lt;br /&gt;
2) [[https://bmx6.net/projects/bmx6 bmx6]] BackboneMeshProtokoll&lt;br /&gt;
&lt;br /&gt;
3) [[http://www.open-mesh.org/projects/open-mesh/wiki batman-adv]] ClientMeshProtokoll&lt;br /&gt;
&lt;br /&gt;
4) [[http://www.tinc-vpn.org/ tinc]] Mesh-vpn&lt;br /&gt;
&lt;br /&gt;
5) OS: debian jessie(or whatever you like)&lt;br /&gt;
&lt;br /&gt;
Du benötigst ausserdem: &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* eine private IPv4/IPv6 Adresse und ein Subnetz für die Clients&lt;br /&gt;
* eine IPv4/IPv6 Adresse für das Backbone-Netz&lt;br /&gt;
&lt;br /&gt;
Diese kannst du unter dem Artikel IP Netze selbst zuteilen, oder nachlesen, welches deine sind, wenn es jemand anderes dir schon zuteilte.&lt;br /&gt;
&lt;br /&gt;
(nur bei öffentlichen Supernodes)&lt;br /&gt;
== Vorbereitungen ==&lt;br /&gt;
In der /etc/sysctl.conf muss folgendes mit einem Editor hinzugefügt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
net.ipv4.ip_forward=1&lt;br /&gt;
net.ipv4.ip_no_pmtu_disc=1&lt;br /&gt;
net.ipv4.route.flush=1&lt;br /&gt;
net.ipv6.conf.all.forwarding=1&lt;br /&gt;
net.ipv6.conf.all.autoconf=0&lt;br /&gt;
net.ipv6.conf.all.accept_ra=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach die /etc/sysctl.conf neu einlesen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysctl -p&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für Batman-adv und fastd-Pakete in /etc/apt/apt/sources.list hinzufügen, z.B. so:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;deb http://repo.universe-factory.net/debian/ sid main&amp;quot; &amp;gt;&amp;gt;/etc/apt/sources.list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GPG-Key importieren und apt via https ermöglichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 gpg --keyserver pgpkeys.mit.edu --recv-key  16EF3F64CB201D9C&lt;br /&gt;
 gpg -a --export 16EF3F64CB201D9C | apt-key add -&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-transport-https&lt;br /&gt;
&lt;br /&gt;
 apt-get update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batman-adv (compat14 (Hood Bonn))==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Dies sollte auf debian wheezy batman-adv 2013.4.0 installieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install batman-adv-dkms&lt;br /&gt;
echo &amp;quot;batman-adv&amp;quot; &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== debian jessie ====&lt;br /&gt;
batman 14 aus folgender quelle installieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://repo.universe-factory.net/debian/ sid main&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
dann dkms die richtige version beibringen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dkms remove batman-adv/2013.4.0 --all&lt;br /&gt;
dkms --force install batman-adv/2013.4.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
und mit apt-pinning die richtige version für batctl erzwingen, in /etc/apt/preferences.d/batctl.pref:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Package: batctl&lt;br /&gt;
Pin: origin repo.universe-factory.net&lt;br /&gt;
Pin-Priority: 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
und apt-get install batctl&lt;br /&gt;
&lt;br /&gt;
== Batman-adv (compat15)==&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Update and install:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install git make gcc build-essential linux-headers-$(uname -r) pkg-config libgps-dev libnl-3-dev libjansson-dev fastd&lt;br /&gt;
&lt;br /&gt;
Install Batman, batctl and alfred&lt;br /&gt;
 mkdir /opt/freifunk&lt;br /&gt;
 cd $_&lt;br /&gt;
 &lt;br /&gt;
 git clone git://git.open-mesh.org/batman-adv.git&lt;br /&gt;
 cd batman-adv&lt;br /&gt;
 git checkout v2015.1&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 &lt;br /&gt;
 cd ../&lt;br /&gt;
 &lt;br /&gt;
 git clone http://git.open-mesh.org/batctl.git&lt;br /&gt;
 cd batctl&lt;br /&gt;
 git checkout v2015.1&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Wird künftig nicht mehr benötigt. Wer's trotzdem installieren mag:&lt;br /&gt;
&lt;br /&gt;
 cd ../&lt;br /&gt;
 &lt;br /&gt;
 git clone http://git.open-mesh.org/alfred.git&lt;br /&gt;
 cd alfred&lt;br /&gt;
 git checkout v2014.4.0&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
== fastd ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 apt-get install fastd curl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Add Directories''' &lt;br /&gt;
 mkdir /etc/fastd/mesh-vpn&lt;br /&gt;
 mkdir /etc/fastd/mesh-vpn/peers&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;[YOUR SECRET KEY HERE]&amp;quot; sollte dabei durch den fastd-secret-key ersetzt werden. Den Key müsst ihr selbst erstellen. Dies geht mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
 fastd --generate-key&lt;br /&gt;
&lt;br /&gt;
Schreibt am besten euch public und private key woanders noch auf. Wenn ihr den verliert, können Nodes nicht mehr mit euch connecten, solange diese nicht umkonfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
In /etc/fastd/mesh-vpn/fastd.conf folgendes hinzufügen:&lt;br /&gt;
&lt;br /&gt;
==== /etc/fastd/mesh-vpn/fastd.conf ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Log warnings and errors to stderr&lt;br /&gt;
#log level warn;&lt;br /&gt;
log level error;&lt;br /&gt;
&lt;br /&gt;
drop capabilities yes;&lt;br /&gt;
forward no;&lt;br /&gt;
hide ip addresses yes;&lt;br /&gt;
hide mac addresses yes;&lt;br /&gt;
&lt;br /&gt;
# Log everything to a log file&lt;br /&gt;
#log to &amp;quot;/var/log/fastd-mesh-vpn.log&amp;quot; level debug;&lt;br /&gt;
log to &amp;quot;/var/log/fastd-mesh-vpn.log&amp;quot; level warn;&lt;br /&gt;
&lt;br /&gt;
# Set the interface name&lt;br /&gt;
interface &amp;quot;mesh-vpn&amp;quot;;&lt;br /&gt;
mode &amp;quot;tap&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Support xsalsa20 and aes128 encryption methods, prefer xsalsa20&lt;br /&gt;
method &amp;quot;salsa2012+umac&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Bind to a fixed port, IPv4 only&lt;br /&gt;
bind 0.0.0.0:10000;&lt;br /&gt;
&lt;br /&gt;
mtu 1312;&lt;br /&gt;
pmtu auto;&lt;br /&gt;
secure handshakes yes;&lt;br /&gt;
&lt;br /&gt;
# Secret key generated by 'fastd --generate-key'&lt;br /&gt;
secret &amp;quot;[YOUR SECRET KEY HERE]&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Include peers from the directory 'peers' and set max connections&lt;br /&gt;
&lt;br /&gt;
peer group &amp;quot;backbone&amp;quot; {&lt;br /&gt;
  include peers from &amp;quot;backbone&amp;quot;;&lt;br /&gt;
  peer limit 64;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
on up sync &amp;quot;./on-up&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Allows all peers to connect.&lt;br /&gt;
on verify async &amp;quot;true&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ordnerstruktur anlegen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /etc/fastd/mesh-vpn/backbone&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Optional: Wenn die Node teil einer grösseren Hood werden soll, entsprechende Backbone Node Keys in das zueben erstellte Verzeichnis legen. Vorzuziehen ist aber entweder eine eigene Fastdinstanz oder eine Tinc VPN Verbindung (AES-NI) um sich an eine hood (Layer2 Mesh mit Batman-adv) zu verbinden, dies ist performanter.&lt;br /&gt;
&lt;br /&gt;
Der IP v4-Range bezieht sich auf euren selbst gewählten Bereich, welcher unter https://pad.freifunk.net/p/kbuip dokumentiert ist.&lt;br /&gt;
==== /etc/fastd/mesh-vpn/on-up ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
/sbin/ip link set dev mesh-vpn address [MacAdresseAusdenken]&lt;br /&gt;
/sbin/ip link set dev mesh-vpn up&lt;br /&gt;
&lt;br /&gt;
batctl if add mesh-vpn&lt;br /&gt;
batctl it 10000&lt;br /&gt;
batctl bl 1&lt;br /&gt;
batctl gw_mode server 200MBit/200MBit # anpassen&lt;br /&gt;
&lt;br /&gt;
/sbin/ip rule show | grep 'from 10.0.0.0/8 lookup freifunk'&lt;br /&gt;
if [ $? -eq 1 ]; then&lt;br /&gt;
  /sbin/ip rule add from 10.0.0.0/8 table freifunk&lt;br /&gt;
fi&lt;br /&gt;
/sbin/ip route add [deinelokaleIPv4Range] dev bat0 table freifunk&lt;br /&gt;
/sbin/ip route flush cache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
on-up ausführbar machen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /etc/fastd/mesh-vpn/on-up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== BmxBone Netz ==&lt;br /&gt;
&lt;br /&gt;
Jetzt müsst ihr euch entscheiden, welches VPN Programm ihr für das BmxBone nutzen wollt:&lt;br /&gt;
* wenn ihr eine CPU mit AES-NI habt, oder eine CPU mit deutlich mehr als 1GHz nehmt tinc&lt;br /&gt;
* wenn ihr eine langsame CPU sub 1GHz oder sogar eine ARM CPU, sollte fastd besser sein&lt;br /&gt;
=== Installation mit tinc ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install tinc bridge-utils make build-essential&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wir müssen bmx6 noch kompilieren:&lt;br /&gt;
 git clone https://github.com/axn/bmx6&lt;br /&gt;
 cd bmx6&lt;br /&gt;
 make build_all&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /etc/tinc/tbmxbone&lt;br /&gt;
echo &amp;quot;tbmxbone&amp;quot; &amp;gt;&amp;gt; /etc/tinc/nets.boot  # Dies sagt tinc, dass es das Netz &amp;quot;tbmxbone&amp;quot; starten soll&lt;br /&gt;
cd /etc/tinc/tbmxbone&lt;br /&gt;
# Public keys der anderen Teilnehmer:&lt;br /&gt;
git clone https://gitlab.kbu.freifunk.net/bmxbone/tinc.git hosts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt fehlt noch des eigene Public/Private Keypaar. &amp;lt;br /&amp;gt;&lt;br /&gt;
Die Keys sollten in /etc/tinc/tbmxbone gespeichert werden.&amp;lt;br /&amp;gt;&lt;br /&gt;
Den Public-Key in den Namen des Supernodes umbenennen und nach tinc/ kopieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tincd -K 4096 -n tbmxbone&lt;br /&gt;
cp rsa_key.pub keys/[Supernodename aus tinc Configfile]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und schliesslich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd keys&lt;br /&gt;
git add [yourkey]&lt;br /&gt;
git push&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wir müssen noch die Konfiguration von tinc in /etc/tinc/tbmxbone/tinc.conf schreiben.&lt;br /&gt;
&lt;br /&gt;
==== tinc.conf ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name=[Supernodenamen]&lt;br /&gt;
Device=/dev/net/tun&lt;br /&gt;
DirectOnly=yes # tinc soll nicht Daten selbst weiterleiten&lt;br /&gt;
IndirectData=yes &lt;br /&gt;
Broadcast=direct&lt;br /&gt;
Cipher=AES-128-CBC # nutzt AES-NI und performed deswegen besser als fastd&lt;br /&gt;
Mode=switch&lt;br /&gt;
PingInterval=60&lt;br /&gt;
PingTimeout=10&lt;br /&gt;
Compression=0 &lt;br /&gt;
ConnectTo=gw06&lt;br /&gt;
ConnectTo=vpn1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== tinc-up ====&lt;br /&gt;
Jetzt müssen wir noch ein Startskript namens /etc/tinc/tbmxbone/tinc-up erstellen:&lt;br /&gt;
'''Wichtig:''' in der datei muss wirklich $INTERFACE stehen. Tinc ersetzt dies automatisch durch das entsprechende interface bei ausführung.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
bmx6 dev=$INTERFACE # VPN Mesh Interface dem BMX6 Mesh hinzufügen&lt;br /&gt;
# Default tunneladressen dem tbmxbone zuweisen&lt;br /&gt;
bmx6 -c tunDev=Default /tun4Address=[BMXipv4Adresse] /tun6Adress=[BMX6ipv6Adresse] &lt;br /&gt;
# Feste Tunnel MTU von 1366 einstellen&lt;br /&gt;
bmx6 -c tunMtu=1366&lt;br /&gt;
# Lokales v4&amp;amp;v6 Netz announcen&lt;br /&gt;
bmx6 -c tunIn=localv4 /n=[DeinLokalesIPv4Netz] /b=100000000&lt;br /&gt;
bmx6 -c tunIn=localv6 /n=[DeinLokalesIPv6Netz] /b=100000000&lt;br /&gt;
# Defaultroute für v4 suchen&lt;br /&gt;
bmx6 -c tunOut=v4Default /network=0.0.0.0/0 /maxPrefixLen=3 /hysteresis=30 /tableRule=50000/200 &lt;br /&gt;
# Gateway für v4 präferieren&lt;br /&gt;
#bmx6 -c tunOut=v4Defaultgw06 /network=0.0.0.0/0 /maxPrefixLen=0 /hysteresis=30 /tableRule=50000/200 /gwName=gw06 /rating=1000000&lt;br /&gt;
# Defaultroute für v6 suchen&lt;br /&gt;
bmx6 -c tunOut=v6Default /network=0.0.0.0/0 /maxPrefixLen=64 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
# Routen für lokale v4 und v6 Netze suchen&lt;br /&gt;
bmx6 -c tunOut=ffv4 /network=10.0.0.0/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
bmx6 -c tunOut=ffv6 /network=fd00::/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch diese Datei muss ausführbar gemacht werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /etc/tinc/backbone/tinc-up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach sollte der Ordner etwa so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$:/etc/tinc/backbone# ls &lt;br /&gt;
tinc&lt;br /&gt;
hosts -&amp;gt; tinc&lt;br /&gt;
rsa_key.priv&lt;br /&gt;
rsa_key.pub&lt;br /&gt;
tinc.conf&lt;br /&gt;
tinc-up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation (fastd) ==&lt;br /&gt;
&lt;br /&gt;
Zuerst müssen wir bmx6 kompilieren:&lt;br /&gt;
 apt-get install build-essential make fastd&lt;br /&gt;
 mkdir /opt/freifunk/&lt;br /&gt;
 cd /opt/freifunk/&lt;br /&gt;
 git clone https://github.com/axn/bmx6.git&lt;br /&gt;
 cd bmx6&lt;br /&gt;
 make build_all # this reports some erros, go ahead anyway&lt;br /&gt;
 make install&lt;br /&gt;
 &lt;br /&gt;
Nun bauen wir das FastdInterface:&lt;br /&gt;
&lt;br /&gt;
 mkdir /etc/fastd/fbmxbone&lt;br /&gt;
 cd /etc/fastd/fbmxbone&lt;br /&gt;
 nano fastd.conf&lt;br /&gt;
&lt;br /&gt;
Inhalt der Konfigdatei (ihr müsst euch einen eigenen Key mit fastd --generate-key, wenn ihr nicht für andere erreichbar sein wollt, müsst ihr den Key euch auch nicht merken):&lt;br /&gt;
==== /etc/fastd/fbmxbone ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bind 0.0.0.0 port 10042;&lt;br /&gt;
&lt;br /&gt;
drop capabilities yes;&lt;br /&gt;
forward no;&lt;br /&gt;
hide ip addresses yes;&lt;br /&gt;
hide mac addresses yes;&lt;br /&gt;
&lt;br /&gt;
peer group &amp;quot;ffrl&amp;quot; {&lt;br /&gt;
  include peers from &amp;quot;ffrl&amp;quot;;&lt;br /&gt;
  peer limit 1;&lt;br /&gt;
}&lt;br /&gt;
peer group &amp;quot;backbone&amp;quot; {&lt;br /&gt;
  include peers from &amp;quot;backbone&amp;quot;;&lt;br /&gt;
  peer limit 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
interface &amp;quot;fbmxbone&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
log to syslog level warn;&lt;br /&gt;
&lt;br /&gt;
method &amp;quot;salsa2012+umac&amp;quot;;&lt;br /&gt;
mode tap;&lt;br /&gt;
mtu 1406;&lt;br /&gt;
&lt;br /&gt;
on up sync &amp;quot;./on-up&amp;quot;;&lt;br /&gt;
on verify async &amp;quot;true&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
pmtu auto;&lt;br /&gt;
&lt;br /&gt;
secret &amp;quot;PUT IN SIKRIT KEY IN HERE&amp;quot;;&lt;br /&gt;
secure handshakes yes;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt clonen wir aus dem Git-Repo die PublicKeys der Knoten:&lt;br /&gt;
 git clone https://gitlab.kbu.freifunk.net/bmxbone/fastd &lt;br /&gt;
Und kopieren diese noch per Hand in die einzelnen Keyverzeichnisse (verbessern):&lt;br /&gt;
 mkdir ffrl&lt;br /&gt;
 mkdir backbone&lt;br /&gt;
 cp fastd/* backbone/&lt;br /&gt;
 mv backbone/gw06 ffrl/&lt;br /&gt;
Und brauchen noch ein on-up Skript (/etc/fastd/fbmxbone/on-up):&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 /sbin/ip link set dev fbmxbone address [MAC ADDY AUSDENKEN]&lt;br /&gt;
 /sbin/ip link set dev fbmxbone backboneup&lt;br /&gt;
 bmx6 dev=fbmxbone&lt;br /&gt;
 bmx6 -c tunDev=Default /tun4Address=[BMXipv4Adresse] /tun6Adress=[BMX6ipv6Adresse]&lt;br /&gt;
 bmx6 -c tunIn=localv4 /n=[DeinLokalesIPv4Netz] /b=100000000&lt;br /&gt;
 bmx6 -c tunIn=localv6 /n=[DeinLokalesIPv6Netz] /b=100000000&lt;br /&gt;
 bmx6 -c tunOut=v4Default /network=0.0.0.0/0 /maxPrefixLen=3 /hysteresis=30 /tableRule=50000/200 &lt;br /&gt;
 #bmx6 -c tunOut=v4Defaultgw06 /network=0.0.0.0/0 /maxPrefixLen=0 /hysteresis=30 /tableRule=50000/200 /gwName=gw06 /rating=1000000&lt;br /&gt;
 bmx6 -c tunOut=v6Default /network=0.0.0.0/0 /maxPrefixLen=64 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
 bmx6 -c tunOut=ffv4 /network=10.0.0.0/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
 bmx6 -c tunOut=ffv6 /network=fd00::/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
Und mittlerweile klar, ausführbar machen:&lt;br /&gt;
 chmod +x on-up&lt;br /&gt;
&lt;br /&gt;
== Routing ==&lt;br /&gt;
&lt;br /&gt;
Wir brauchen policy based routing:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;200 freifunk&amp;quot; &amp;gt;&amp;gt; /etc/iproute2/rt_tables&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
fastd's on-up, /etc/network/interfaces.d/bat0 und/oder tinc-up erledigen den Rest. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IPv4 DHCP ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install isc-dhcp-server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
Nun ändern wir die Konfiguration in /etc/dhcp/dhcpd.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
option domain-name &amp;quot;mesh.kbu.freifunk.net&amp;quot;;&lt;br /&gt;
option domain-name-servers [Supernode IPv4], [INSERT YOUR PREFERRED IPV4 DNS], 213.73.91.35;&lt;br /&gt;
&lt;br /&gt;
default-lease-time 150;&lt;br /&gt;
max-lease-time 720;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
subnet 10.X.X.X netmask Y.Y.Y.Y { # Die Range der Hood&lt;br /&gt;
	range 10.X.Y.10 10.X.Z.255; # Eure IPv4 Range&lt;br /&gt;
	option routers [Supernode IP Adresse];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IPv6 ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install radvd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
interface bat0&lt;br /&gt;
IgnoreIfMissing yes&lt;br /&gt;
{&lt;br /&gt;
 AdvSendAdvert on;&lt;br /&gt;
 MaxRtrAdvInterval 200;&lt;br /&gt;
 prefix [GlobaleIPv6Range des Supernodes] {&lt;br /&gt;
 };&lt;br /&gt;
 RDNSS [ULA IPv6 of Supernode], [your preferred ipv6 DNS-Server] {&lt;br /&gt;
 }; &lt;br /&gt;
 prefix [ULA IPv6Range der Supernode (fd00::/64)] {&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UDP-Queue Größe ==&lt;br /&gt;
Durch Broadcasts können können auf Supernodes kurzzeitig hohe Lastspitzen enstehen. In der aktuellen batman-adv-Version wird jedes Broadcast-Paket zudem 3x auf jedem Link versendet.&lt;br /&gt;
Die vergleichweise hohe Datenrate von 100MBit/s zwischen Supernodes bewirkt darüber hinaus, dass broadcast-Pakete mit 100MBit/s eingehen können, während sie gleichzeitig an alle Nodes gesendet werden müssen.&lt;br /&gt;
&lt;br /&gt;
Linux-Distributionen sehen per Default Queue-Größen im Bereich von 128 KB vor (http://www.cyberciti.biz/faq/linux-tcp-tuning/). Supernodes sind somit nicht in der Lage entsprechende Lastspitzen zu puffern und während Idle-Times zu versenden. Läuft die UDP-Queue über, so loggt fastd:&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
Jeder Log-Eintrag entspricht einem Paket, dass nicht enqueued werden konnte und damit verworfen wurde. Die Queue-Größen können via systctl angepasst werden (http://wwwx.cs.unc.edu/~sparkst/howto/network_tuning.php). Auf fastd2 wird zur Zeit verwendet:&lt;br /&gt;
 #/etc/sysctl.conf&lt;br /&gt;
 net.core.rmem_max=83886080&lt;br /&gt;
 net.core.wmem_max=83886080&lt;br /&gt;
 net.core.rmem_default=83886080&lt;br /&gt;
 net.core.wmem_default=83886080&lt;br /&gt;
&lt;br /&gt;
Das System verfügt dadurch über 80MB Speicher für Queues. Per default stehen ebenfalls 80MB zur Verfügung. Die konfigurierten 80MB reichen aus, um die 100MBit/s Verbindung über mehrere Sekunden auszulasten und Lastspitzen abzufangen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Netz-und-Technik]]&lt;br /&gt;
&lt;br /&gt;
== DNS-&amp;quot;Server&amp;quot; ==&lt;br /&gt;
Supernodes betreiben Caching-DNS-Forwarder. Hierzu wird unbound verwendet&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
 apt install unbound&lt;br /&gt;
&lt;br /&gt;
== Adressen ==&lt;br /&gt;
Das Setup unterscheidet zwischen v4 und v6. &lt;br /&gt;
&lt;br /&gt;
== /etc/unbound/unbound.conf ==&lt;br /&gt;
&lt;br /&gt;
 server:&lt;br /&gt;
        auto-trust-anchor-file: &amp;quot;/var/lib/unbound/root.key&amp;quot;&lt;br /&gt;
        interface: [ULA ipv6 des supernodes]&lt;br /&gt;
        access-control: [public ipv6 Range des Supernodes]  allow&lt;br /&gt;
        access-control: [ULA ipv6 Range des Supernodes] allow&lt;br /&gt;
        interface: [ipv4 des Supernodes]&lt;br /&gt;
        access-control: [IPv4 Range der Hood] allow&lt;br /&gt;
        verbosity: 1&lt;br /&gt;
  forward-zone:&lt;br /&gt;
      name: &amp;quot;.&amp;quot;&lt;br /&gt;
      forward-addr: [your Favorite v4 DNS IP]&lt;br /&gt;
      forward-addr: [your Favorite v6 DNS IP]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DHCP Client Leases in eine RAMdisk flüchtig speichern ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;tmpfs /var/lib/dhcp/ tmpfs defaults,size=10% 0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logrotate auf die letzte Stunde umstellen ==&lt;br /&gt;
&lt;br /&gt;
Mehr braucht es nicht im Betrieb&lt;br /&gt;
&lt;br /&gt;
Hierzu in /etc/logrotate.conf folgendes ändern:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;weekly&amp;quot; in &amp;quot;hourly&amp;quot; ändern&lt;br /&gt;
 &amp;quot;rotate 4&amp;quot; in &amp;quot;rotate 0&amp;quot; ändern&lt;br /&gt;
&lt;br /&gt;
=== cronJob hinzufügen === &lt;br /&gt;
mit crontab -e Editor aufrufen und folgende Zeile hinzufügen:&lt;br /&gt;
 &lt;br /&gt;
 * */1 * * * nice -n 20 logrotate /etc/logrotate.conf&lt;br /&gt;
&lt;br /&gt;
== Interfaces in /etc/network/interfaces.d/bat0 definieren ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto bat0&lt;br /&gt;
iface bat0 inet static&lt;br /&gt;
  hwaddress ether [MACADRESSE AUSDENKEN]&lt;br /&gt;
  address [ipv4 des Supernodes]&lt;br /&gt;
  netmask [Netzmaske der Hood]&lt;br /&gt;
  pre-up  modprobe batman-adv &amp;amp;&amp;amp; tunctl -t mesh-vpn &amp;amp;&amp;amp; batctl if add mesh-vpn&lt;br /&gt;
  post-up ip rule add iif bat0 table freifunk&lt;br /&gt;
  pre-down ip rule del iif bat0 table freifunk&lt;br /&gt;
&lt;br /&gt;
iface bat0 inet6 static&lt;br /&gt;
  address [GLOBAL IPv6 des Supernodes]&lt;br /&gt;
  netmask 64&lt;br /&gt;
  # Routes&lt;br /&gt;
  # Note: route del not needed - shutting down the interfaces removes routes anyway&lt;br /&gt;
  post-up ip -6 route add [IPv6 Range der Supernode] dev bat0&lt;br /&gt;
  post-up ip -6 route add [IPv6 Range der Supernode] dev bat0 table freifunk&lt;br /&gt;
&lt;br /&gt;
  # Rules (iif: routed traffic, from: traffic from the supernode)&lt;br /&gt;
  post-up ip -6 rule add iif bat0 table freifunk&lt;br /&gt;
  post-up ip -6 rule add from [GLOBAL IPv6 Range des Exits] table freifunk&lt;br /&gt;
  pre-down ip -6 rule del iif bat0 table freifunk&lt;br /&gt;
  pre-down ip -6 rule del from [GLOBAL IPv6 Range des Exits] table freifunk&lt;br /&gt;
&lt;br /&gt;
== IP-Tables Firewall ==&lt;br /&gt;
&lt;br /&gt;
Hier wollen wir nur die schlimmsten Routingfuckups verhindern, es soll nichts über z.B. eth0 rausgeforwardet werden können.&lt;br /&gt;
=== Installation ===&lt;br /&gt;
 apt install iptables-persistent&lt;br /&gt;
&lt;br /&gt;
=== Inhalt /etc/iptables/rules.v4 ===&lt;br /&gt;
&lt;br /&gt;
=== Inhalt /etc/iptables/rules.v6 ===&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Supernode&amp;diff=4578</id>
		<title>Supernode</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Supernode&amp;diff=4578"/>
		<updated>2016-05-22T15:53:37Z</updated>

		<summary type="html">&lt;p&gt;Took: /* Installation (fastd) */ subtitle with path added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
[[Kategorie:Infrastruktur]]&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
[[https://en.wikipedia.org/wiki/Supernode_%28networking%29 wikipedia-article]]&lt;br /&gt;
&lt;br /&gt;
Benötigte Software&lt;br /&gt;
&lt;br /&gt;
1) [[https://projects.universe-factory.net/projects/fastd fastd]] Mesh-vpn&lt;br /&gt;
&lt;br /&gt;
2) [[https://bmx6.net/projects/bmx6 bmx6]] BackboneMeshProtokoll&lt;br /&gt;
&lt;br /&gt;
3) [[http://www.open-mesh.org/projects/open-mesh/wiki batman-adv]] ClientMeshProtokoll&lt;br /&gt;
&lt;br /&gt;
4) [[http://www.tinc-vpn.org/ tinc]] Mesh-vpn&lt;br /&gt;
&lt;br /&gt;
5) OS: debian jessie(or whatever you like)&lt;br /&gt;
&lt;br /&gt;
Du benötigst ausserdem: &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* eine private IPv4/IPv6 Adresse und ein Subnetz für die Clients&lt;br /&gt;
* eine IPv4/IPv6 Adresse für das Backbone-Netz&lt;br /&gt;
&lt;br /&gt;
Diese kannst du unter dem Artikel IP Netze selbst zuteilen, oder nachlesen, welches deine sind, wenn es jemand anderes dir schon zuteilte.&lt;br /&gt;
&lt;br /&gt;
(nur bei öffentlichen Supernodes)&lt;br /&gt;
== Vorbereitungen ==&lt;br /&gt;
In der /etc/sysctl.conf muss folgendes mit einem Editor hinzugefügt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
net.ipv4.ip_forward=1&lt;br /&gt;
net.ipv4.ip_no_pmtu_disc=1&lt;br /&gt;
net.ipv4.route.flush=1&lt;br /&gt;
net.ipv6.conf.all.forwarding=1&lt;br /&gt;
net.ipv6.conf.all.autoconf=0&lt;br /&gt;
net.ipv6.conf.all.accept_ra=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach die /etc/sysctl.conf neu einlesen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysctl -p&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für Batman-adv und fastd-Pakete in /etc/apt/apt/sources.list hinzufügen, z.B. so:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;deb http://repo.universe-factory.net/debian/ sid main&amp;quot; &amp;gt;&amp;gt;/etc/apt/sources.list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GPG-Key importieren und apt via https ermöglichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 gpg --keyserver pgpkeys.mit.edu --recv-key  16EF3F64CB201D9C&lt;br /&gt;
 gpg -a --export 16EF3F64CB201D9C | apt-key add -&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-transport-https&lt;br /&gt;
&lt;br /&gt;
 apt-get update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batman-adv (compat14 (Hood Bonn))==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Dies sollte auf debian wheezy batman-adv 2013.4.0 installieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install batman-adv-dkms&lt;br /&gt;
echo &amp;quot;batman-adv&amp;quot; &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== debian jessie ====&lt;br /&gt;
batman 14 aus folgender quelle installieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://repo.universe-factory.net/debian/ sid main&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
dann dkms die richtige version beibringen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dkms remove batman-adv/2013.4.0 --all&lt;br /&gt;
dkms --force install batman-adv/2013.4.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
und mit apt-pinning die richtige version für batctl erzwingen, in /etc/apt/preferences.d/batctl.pref:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Package: batctl&lt;br /&gt;
Pin: origin repo.universe-factory.net&lt;br /&gt;
Pin-Priority: 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
und apt-get install batctl&lt;br /&gt;
&lt;br /&gt;
== Batman-adv (compat15)==&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Update and install:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install git make gcc build-essential linux-headers-$(uname -r) pkg-config libgps-dev libnl-3-dev libjansson-dev fastd&lt;br /&gt;
&lt;br /&gt;
Install Batman, batctl and alfred&lt;br /&gt;
 mkdir /opt/freifunk&lt;br /&gt;
 cd $_&lt;br /&gt;
 &lt;br /&gt;
 git clone git://git.open-mesh.org/batman-adv.git&lt;br /&gt;
 cd batman-adv&lt;br /&gt;
 git checkout v2015.1&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 &lt;br /&gt;
 cd ../&lt;br /&gt;
 &lt;br /&gt;
 git clone http://git.open-mesh.org/batctl.git&lt;br /&gt;
 cd batctl&lt;br /&gt;
 git checkout v2015.1&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Wird künftig nicht mehr benötigt. Wer's trotzdem installieren mag:&lt;br /&gt;
&lt;br /&gt;
 cd ../&lt;br /&gt;
 &lt;br /&gt;
 git clone http://git.open-mesh.org/alfred.git&lt;br /&gt;
 cd alfred&lt;br /&gt;
 git checkout v2014.4.0&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
== fastd ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 apt-get install fastd curl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Add Directories''' &lt;br /&gt;
 mkdir /etc/fastd/mesh-vpn&lt;br /&gt;
 mkdir /etc/fastd/mesh-vpn/peers&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;[YOUR SECRET KEY HERE]&amp;quot; sollte dabei durch den fastd-secret-key ersetzt werden. Den Key müsst ihr selbst erstellen. Dies geht mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
 fastd --generate-key&lt;br /&gt;
&lt;br /&gt;
Schreibt am besten euch public und private key woanders noch auf. Wenn ihr den verliert, können Nodes nicht mehr mit euch connecten, solange diese nicht umkonfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
In /etc/fastd/mesh-vpn/fastd.conf folgendes hinzufügen:&lt;br /&gt;
&lt;br /&gt;
==== /etc/fastd/mesh-vpn/fastd.conf ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Log warnings and errors to stderr&lt;br /&gt;
#log level warn;&lt;br /&gt;
log level error;&lt;br /&gt;
&lt;br /&gt;
drop capabilities yes;&lt;br /&gt;
forward no;&lt;br /&gt;
hide ip addresses yes;&lt;br /&gt;
hide mac addresses yes;&lt;br /&gt;
&lt;br /&gt;
# Log everything to a log file&lt;br /&gt;
#log to &amp;quot;/var/log/fastd-mesh-vpn.log&amp;quot; level debug;&lt;br /&gt;
log to &amp;quot;/var/log/fastd-mesh-vpn.log&amp;quot; level warn;&lt;br /&gt;
&lt;br /&gt;
# Set the interface name&lt;br /&gt;
interface &amp;quot;mesh-vpn&amp;quot;;&lt;br /&gt;
mode &amp;quot;tap&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Support xsalsa20 and aes128 encryption methods, prefer xsalsa20&lt;br /&gt;
method &amp;quot;salsa2012+umac&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Bind to a fixed port, IPv4 only&lt;br /&gt;
bind 0.0.0.0:10000;&lt;br /&gt;
&lt;br /&gt;
mtu 1312;&lt;br /&gt;
pmtu auto;&lt;br /&gt;
secure handshakes yes;&lt;br /&gt;
&lt;br /&gt;
# Secret key generated by 'fastd --generate-key'&lt;br /&gt;
secret &amp;quot;[YOUR SECRET KEY HERE]&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Include peers from the directory 'peers' and set max connections&lt;br /&gt;
&lt;br /&gt;
peer group &amp;quot;backbone&amp;quot; {&lt;br /&gt;
  include peers from &amp;quot;backbone&amp;quot;;&lt;br /&gt;
  peer limit 64;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
on up sync &amp;quot;./on-up&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Allows all peers to connect.&lt;br /&gt;
on verify async &amp;quot;true&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ordnerstruktur anlegen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /etc/fastd/mesh-vpn/backbone&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Optional: Wenn die Node teil einer grösseren Hood werden soll, entsprechende Backbone Node Keys in das zueben erstellte Verzeichnis legen. Vorzuziehen ist aber entweder eine eigene Fastdinstanz oder eine Tinc VPN Verbindung (AES-NI) um sich an eine hood (Layer2 Mesh mit Batman-adv) zu verbinden, dies ist performanter.&lt;br /&gt;
&lt;br /&gt;
Der IP v4-Range bezieht sich auf euren selbst gewählten Bereich, welcher unter https://pad.freifunk.net/p/kbuip dokumentiert ist.&lt;br /&gt;
==== /etc/fastd/mesh-vpn/on-up ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
/sbin/ip link set dev mesh-vpn address [MacAdresseAusdenken]&lt;br /&gt;
/sbin/ip link set dev mesh-vpn up&lt;br /&gt;
&lt;br /&gt;
batctl if add mesh-vpn&lt;br /&gt;
batctl it 10000&lt;br /&gt;
batctl bl 1&lt;br /&gt;
batctl gw_mode server 200MBit/200MBit # anpassen&lt;br /&gt;
&lt;br /&gt;
/sbin/ip rule show | grep 'from 10.0.0.0/8 lookup freifunk'&lt;br /&gt;
if [ $? -eq 1 ]; then&lt;br /&gt;
  /sbin/ip rule add from 10.0.0.0/8 table freifunk&lt;br /&gt;
fi&lt;br /&gt;
/sbin/ip route add [deinelokaleIPv4Range] dev bat0 table freifunk&lt;br /&gt;
/sbin/ip route flush cache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
on-up ausführbar machen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /etc/fastd/mesh-vpn/on-up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== BmxBone Netz ==&lt;br /&gt;
&lt;br /&gt;
Jetzt müsst ihr euch entscheiden, welches VPN Programm ihr für das BmxBone nutzen wollt:&lt;br /&gt;
* wenn ihr eine CPU mit AES-NI habt, oder eine CPU mit deutlich mehr als 1GHz nehmt tinc&lt;br /&gt;
* wenn ihr eine langsame CPU sub 1GHz oder sogar eine ARM CPU, sollte fastd besser sein&lt;br /&gt;
=== Installation mit tinc ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install tinc bridge-utils make build-essential&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wir müssen bmx6 noch kompilieren:&lt;br /&gt;
 git clone https://github.com/axn/bmx6&lt;br /&gt;
 cd bmx6&lt;br /&gt;
 make build_all&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /etc/tinc/tbmxbone&lt;br /&gt;
echo &amp;quot;tbmxbone&amp;quot; &amp;gt;&amp;gt; /etc/tinc/nets.boot  # Dies sagt tinc, dass es das Netz &amp;quot;tbmxbone&amp;quot; starten soll&lt;br /&gt;
cd /etc/tinc/tbmxbone&lt;br /&gt;
# Public keys der anderen Teilnehmer:&lt;br /&gt;
git clone https://gitlab.kbu.freifunk.net/bmxbone/tinc.git hosts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt fehlt noch des eigene Public/Private Keypaar. &amp;lt;br /&amp;gt;&lt;br /&gt;
Die Keys sollten in /etc/tinc/tbmxbone gespeichert werden.&amp;lt;br /&amp;gt;&lt;br /&gt;
Den Public-Key in den Namen des Supernodes umbenennen und nach tinc/ kopieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tincd -K 4096 -n tbmxbone&lt;br /&gt;
cp rsa_key.pub keys/[Supernodename aus tinc Configfile]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und schliesslich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd keys&lt;br /&gt;
git add [yourkey]&lt;br /&gt;
git push&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wir müssen noch die Konfiguration von tinc in /etc/tinc/tbmxbone/tinc.conf schreiben.&lt;br /&gt;
&lt;br /&gt;
==== tinc.conf ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name=[Supernodenamen]&lt;br /&gt;
Device=/dev/net/tun&lt;br /&gt;
DirectOnly=yes # tinc soll nicht Daten selbst weiterleiten&lt;br /&gt;
IndirectData=yes &lt;br /&gt;
Broadcast=direct&lt;br /&gt;
Cipher=AES-128-CBC # nutzt AES-NI und performed deswegen besser als fastd&lt;br /&gt;
Mode=switch&lt;br /&gt;
PingInterval=60&lt;br /&gt;
PingTimeout=10&lt;br /&gt;
Compression=0 &lt;br /&gt;
ConnectTo=gw06&lt;br /&gt;
ConnectTo=vpn1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== tinc-up ====&lt;br /&gt;
Jetzt müssen wir noch ein Startskript namens /etc/tinc/tbmxbone/tinc-up erstellen:&lt;br /&gt;
'''Wichtig:''' in der datei muss wirklich $INTERFACE stehen. Tinc ersetzt dies automatisch durch das entsprechende interface bei ausführung.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
bmx6 dev=$INTERFACE # VPN Mesh Interface dem BMX6 Mesh hinzufügen&lt;br /&gt;
# Default tunneladressen dem tbmxbone zuweisen&lt;br /&gt;
bmx6 -c tunDev=Default /tun4Address=[BMXipv4Adresse] /tun6Adress=[BMX6ipv6Adresse] &lt;br /&gt;
# Feste Tunnel MTU von 1366 einstellen&lt;br /&gt;
bmx6 -c tunMtu=1366&lt;br /&gt;
# Lokales v4&amp;amp;v6 Netz announcen&lt;br /&gt;
bmx6 -c tunIn=localv4 /n=[DeinLokalesIPv4Netz] /b=100000000&lt;br /&gt;
bmx6 -c tunIn=localv6 /n=[DeinLokalesIPv6Netz] /b=100000000&lt;br /&gt;
# Defaultroute für v4 suchen&lt;br /&gt;
bmx6 -c tunOut=v4Default /network=0.0.0.0/0 /maxPrefixLen=3 /hysteresis=30 /tableRule=50000/200 &lt;br /&gt;
# Gateway für v4 präferieren&lt;br /&gt;
#bmx6 -c tunOut=v4Defaultgw06 /network=0.0.0.0/0 /maxPrefixLen=0 /hysteresis=30 /tableRule=50000/200 /gwName=gw06 /rating=1000000&lt;br /&gt;
# Defaultroute für v6 suchen&lt;br /&gt;
bmx6 -c tunOut=v6Default /network=0.0.0.0/0 /maxPrefixLen=64 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
# Routen für lokale v4 und v6 Netze suchen&lt;br /&gt;
bmx6 -c tunOut=ffv4 /network=10.0.0.0/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
bmx6 -c tunOut=ffv6 /network=fd00::/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch diese Datei muss ausführbar gemacht werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /etc/tinc/backbone/tinc-up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach sollte der Ordner etwa so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$:/etc/tinc/backbone# ls &lt;br /&gt;
tinc&lt;br /&gt;
hosts -&amp;gt; tinc&lt;br /&gt;
rsa_key.priv&lt;br /&gt;
rsa_key.pub&lt;br /&gt;
tinc.conf&lt;br /&gt;
tinc-up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation (fastd) ==&lt;br /&gt;
&lt;br /&gt;
Zuerst müssen wir bmx6 kompilieren:&lt;br /&gt;
 apt-get install build-essential make fastd&lt;br /&gt;
 mkdir /opt/freifunk/&lt;br /&gt;
 cd /opt/freifunk/&lt;br /&gt;
 git clone https://github.com/axn/bmx6.git&lt;br /&gt;
 cd bmx6&lt;br /&gt;
 make build_all # this reports some erros, go ahead anyway&lt;br /&gt;
 make install&lt;br /&gt;
 &lt;br /&gt;
Nun bauen wir das FastdInterface:&lt;br /&gt;
&lt;br /&gt;
 mkdir /etc/fastd/fbmxbone&lt;br /&gt;
 cd /etc/fastd/fbmxbone&lt;br /&gt;
 nano fastd.conf&lt;br /&gt;
&lt;br /&gt;
Inhalt der Konfigdatei (ihr müsst euch einen eigenen Key mit fastd --generate-key, wenn ihr nicht für andere erreichbar sein wollt, müsst ihr den Key euch auch nicht merken):&lt;br /&gt;
=== /etc/fastd/fbmxbone ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bind 0.0.0.0 port 10042;&lt;br /&gt;
&lt;br /&gt;
drop capabilities yes;&lt;br /&gt;
forward no;&lt;br /&gt;
hide ip addresses yes;&lt;br /&gt;
hide mac addresses yes;&lt;br /&gt;
&lt;br /&gt;
peer group &amp;quot;ffrl&amp;quot; {&lt;br /&gt;
  include peers from &amp;quot;ffrl&amp;quot;;&lt;br /&gt;
  peer limit 1;&lt;br /&gt;
}&lt;br /&gt;
peer group &amp;quot;backbone&amp;quot; {&lt;br /&gt;
  include peers from &amp;quot;backbone&amp;quot;;&lt;br /&gt;
  peer limit 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
interface &amp;quot;fbmxbone&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
log to syslog level warn;&lt;br /&gt;
&lt;br /&gt;
method &amp;quot;salsa2012+umac&amp;quot;;&lt;br /&gt;
mode tap;&lt;br /&gt;
mtu 1406;&lt;br /&gt;
&lt;br /&gt;
on up sync &amp;quot;./on-up&amp;quot;;&lt;br /&gt;
on verify async &amp;quot;true&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
pmtu auto;&lt;br /&gt;
&lt;br /&gt;
secret &amp;quot;PUT IN SIKRIT KEY IN HERE&amp;quot;;&lt;br /&gt;
secure handshakes yes;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt clonen wir aus dem Git-Repo die PublicKeys der Knoten:&lt;br /&gt;
 git clone https://gitlab.kbu.freifunk.net/bmxbone/fastd &lt;br /&gt;
Und kopieren diese noch per Hand in die einzelnen Keyverzeichnisse (verbessern):&lt;br /&gt;
 mkdir ffrl&lt;br /&gt;
 mkdir backbone&lt;br /&gt;
 cp fastd/* backbone/&lt;br /&gt;
 mv backbone/gw06 ffrl/&lt;br /&gt;
Und brauchen noch ein on-up Skript (/etc/fastd/fbmxbone/on-up):&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 /sbin/ip link set dev fbmxbone address [MAC ADDY AUSDENKEN]&lt;br /&gt;
 /sbin/ip link set dev fbmxbone backboneup&lt;br /&gt;
 bmx6 dev=fbmxbone&lt;br /&gt;
 bmx6 -c tunDev=Default /tun4Address=[BMXipv4Adresse] /tun6Adress=[BMX6ipv6Adresse]&lt;br /&gt;
 bmx6 -c tunIn=localv4 /n=[DeinLokalesIPv4Netz] /b=100000000&lt;br /&gt;
 bmx6 -c tunIn=localv6 /n=[DeinLokalesIPv6Netz] /b=100000000&lt;br /&gt;
 bmx6 -c tunOut=v4Default /network=0.0.0.0/0 /maxPrefixLen=3 /hysteresis=30 /tableRule=50000/200 &lt;br /&gt;
 #bmx6 -c tunOut=v4Defaultgw06 /network=0.0.0.0/0 /maxPrefixLen=0 /hysteresis=30 /tableRule=50000/200 /gwName=gw06 /rating=1000000&lt;br /&gt;
 bmx6 -c tunOut=v6Default /network=0.0.0.0/0 /maxPrefixLen=64 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
 bmx6 -c tunOut=ffv4 /network=10.0.0.0/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
 bmx6 -c tunOut=ffv6 /network=fd00::/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
Und mittlerweile klar, ausführbar machen:&lt;br /&gt;
 chmod +x on-up&lt;br /&gt;
&lt;br /&gt;
== Routing ==&lt;br /&gt;
&lt;br /&gt;
Wir brauchen policy based routing:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;200 freifunk&amp;quot; &amp;gt;&amp;gt; /etc/iproute2/rt_tables&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
fastd's on-up, /etc/network/interfaces.d/bat0 und/oder tinc-up erledigen den Rest. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IPv4 DHCP ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install isc-dhcp-server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
Nun ändern wir die Konfiguration in /etc/dhcp/dhcpd.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
option domain-name &amp;quot;mesh.kbu.freifunk.net&amp;quot;;&lt;br /&gt;
option domain-name-servers [Supernode IPv4], [INSERT YOUR PREFERRED IPV4 DNS], 213.73.91.35;&lt;br /&gt;
&lt;br /&gt;
default-lease-time 150;&lt;br /&gt;
max-lease-time 720;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
subnet 10.X.X.X netmask Y.Y.Y.Y { # Die Range der Hood&lt;br /&gt;
	range 10.X.Y.10 10.X.Z.255; # Eure IPv4 Range&lt;br /&gt;
	option routers [Supernode IP Adresse];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IPv6 ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install radvd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
interface bat0&lt;br /&gt;
IgnoreIfMissing yes&lt;br /&gt;
{&lt;br /&gt;
 AdvSendAdvert on;&lt;br /&gt;
 MaxRtrAdvInterval 200;&lt;br /&gt;
 prefix [GlobaleIPv6Range des Supernodes] {&lt;br /&gt;
 };&lt;br /&gt;
 RDNSS [ULA IPv6 of Supernode], [your preferred ipv6 DNS-Server] {&lt;br /&gt;
 }; &lt;br /&gt;
 prefix [ULA IPv6Range der Supernode (fd00::/64)] {&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UDP-Queue Größe ==&lt;br /&gt;
Durch Broadcasts können können auf Supernodes kurzzeitig hohe Lastspitzen enstehen. In der aktuellen batman-adv-Version wird jedes Broadcast-Paket zudem 3x auf jedem Link versendet.&lt;br /&gt;
Die vergleichweise hohe Datenrate von 100MBit/s zwischen Supernodes bewirkt darüber hinaus, dass broadcast-Pakete mit 100MBit/s eingehen können, während sie gleichzeitig an alle Nodes gesendet werden müssen.&lt;br /&gt;
&lt;br /&gt;
Linux-Distributionen sehen per Default Queue-Größen im Bereich von 128 KB vor (http://www.cyberciti.biz/faq/linux-tcp-tuning/). Supernodes sind somit nicht in der Lage entsprechende Lastspitzen zu puffern und während Idle-Times zu versenden. Läuft die UDP-Queue über, so loggt fastd:&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
Jeder Log-Eintrag entspricht einem Paket, dass nicht enqueued werden konnte und damit verworfen wurde. Die Queue-Größen können via systctl angepasst werden (http://wwwx.cs.unc.edu/~sparkst/howto/network_tuning.php). Auf fastd2 wird zur Zeit verwendet:&lt;br /&gt;
 #/etc/sysctl.conf&lt;br /&gt;
 net.core.rmem_max=83886080&lt;br /&gt;
 net.core.wmem_max=83886080&lt;br /&gt;
 net.core.rmem_default=83886080&lt;br /&gt;
 net.core.wmem_default=83886080&lt;br /&gt;
&lt;br /&gt;
Das System verfügt dadurch über 80MB Speicher für Queues. Per default stehen ebenfalls 80MB zur Verfügung. Die konfigurierten 80MB reichen aus, um die 100MBit/s Verbindung über mehrere Sekunden auszulasten und Lastspitzen abzufangen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Netz-und-Technik]]&lt;br /&gt;
&lt;br /&gt;
== DNS-&amp;quot;Server&amp;quot; ==&lt;br /&gt;
Supernodes betreiben Caching-DNS-Forwarder. Hierzu wird unbound verwendet&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
 apt install unbound&lt;br /&gt;
&lt;br /&gt;
== Adressen ==&lt;br /&gt;
Das Setup unterscheidet zwischen v4 und v6. &lt;br /&gt;
&lt;br /&gt;
== /etc/unbound/unbound.conf ==&lt;br /&gt;
&lt;br /&gt;
 server:&lt;br /&gt;
        auto-trust-anchor-file: &amp;quot;/var/lib/unbound/root.key&amp;quot;&lt;br /&gt;
        interface: [ULA ipv6 des supernodes]&lt;br /&gt;
        access-control: [public ipv6 Range des Supernodes]  allow&lt;br /&gt;
        access-control: [ULA ipv6 Range des Supernodes] allow&lt;br /&gt;
        interface: [ipv4 des Supernodes]&lt;br /&gt;
        access-control: [IPv4 Range der Hood] allow&lt;br /&gt;
        verbosity: 1&lt;br /&gt;
  forward-zone:&lt;br /&gt;
      name: &amp;quot;.&amp;quot;&lt;br /&gt;
      forward-addr: [your Favorite v4 DNS IP]&lt;br /&gt;
      forward-addr: [your Favorite v6 DNS IP]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DHCP Client Leases in eine RAMdisk flüchtig speichern ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;tmpfs /var/lib/dhcp/ tmpfs defaults,size=10% 0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logrotate auf die letzte Stunde umstellen ==&lt;br /&gt;
&lt;br /&gt;
Mehr braucht es nicht im Betrieb&lt;br /&gt;
&lt;br /&gt;
Hierzu in /etc/logrotate.conf folgendes ändern:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;weekly&amp;quot; in &amp;quot;hourly&amp;quot; ändern&lt;br /&gt;
 &amp;quot;rotate 4&amp;quot; in &amp;quot;rotate 0&amp;quot; ändern&lt;br /&gt;
&lt;br /&gt;
=== cronJob hinzufügen === &lt;br /&gt;
mit crontab -e Editor aufrufen und folgende Zeile hinzufügen:&lt;br /&gt;
 &lt;br /&gt;
 * */1 * * * nice -n 20 logrotate /etc/logrotate.conf&lt;br /&gt;
&lt;br /&gt;
== Interfaces in /etc/network/interfaces.d/bat0 definieren ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto bat0&lt;br /&gt;
iface bat0 inet static&lt;br /&gt;
  hwaddress ether [MACADRESSE AUSDENKEN]&lt;br /&gt;
  address [ipv4 des Supernodes]&lt;br /&gt;
  netmask [Netzmaske der Hood]&lt;br /&gt;
  pre-up  modprobe batman-adv &amp;amp;&amp;amp; tunctl -t mesh-vpn &amp;amp;&amp;amp; batctl if add mesh-vpn&lt;br /&gt;
  post-up ip rule add iif bat0 table freifunk&lt;br /&gt;
  pre-down ip rule del iif bat0 table freifunk&lt;br /&gt;
&lt;br /&gt;
iface bat0 inet6 static&lt;br /&gt;
  address [GLOBAL IPv6 des Supernodes]&lt;br /&gt;
  netmask 64&lt;br /&gt;
  # Routes&lt;br /&gt;
  # Note: route del not needed - shutting down the interfaces removes routes anyway&lt;br /&gt;
  post-up ip -6 route add [IPv6 Range der Supernode] dev bat0&lt;br /&gt;
  post-up ip -6 route add [IPv6 Range der Supernode] dev bat0 table freifunk&lt;br /&gt;
&lt;br /&gt;
  # Rules (iif: routed traffic, from: traffic from the supernode)&lt;br /&gt;
  post-up ip -6 rule add iif bat0 table freifunk&lt;br /&gt;
  post-up ip -6 rule add from [GLOBAL IPv6 Range des Exits] table freifunk&lt;br /&gt;
  pre-down ip -6 rule del iif bat0 table freifunk&lt;br /&gt;
  pre-down ip -6 rule del from [GLOBAL IPv6 Range des Exits] table freifunk&lt;br /&gt;
&lt;br /&gt;
== IP-Tables Firewall ==&lt;br /&gt;
&lt;br /&gt;
Hier wollen wir nur die schlimmsten Routingfuckups verhindern, es soll nichts über z.B. eth0 rausgeforwardet werden können.&lt;br /&gt;
=== Installation ===&lt;br /&gt;
 apt install iptables-persistent&lt;br /&gt;
&lt;br /&gt;
=== Inhalt /etc/iptables/rules.v4 ===&lt;br /&gt;
&lt;br /&gt;
=== Inhalt /etc/iptables/rules.v6 ===&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Supernode&amp;diff=4575</id>
		<title>Supernode</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Supernode&amp;diff=4575"/>
		<updated>2016-05-22T15:50:36Z</updated>

		<summary type="html">&lt;p&gt;Took: /* Installation (fastd) */ pro-tipp&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
[[Kategorie:Infrastruktur]]&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
[[https://en.wikipedia.org/wiki/Supernode_%28networking%29 wikipedia-article]]&lt;br /&gt;
&lt;br /&gt;
Benötigte Software&lt;br /&gt;
&lt;br /&gt;
1) [[https://projects.universe-factory.net/projects/fastd fastd]] Mesh-vpn&lt;br /&gt;
&lt;br /&gt;
2) [[https://bmx6.net/projects/bmx6 bmx6]] BackboneMeshProtokoll&lt;br /&gt;
&lt;br /&gt;
3) [[http://www.open-mesh.org/projects/open-mesh/wiki batman-adv]] ClientMeshProtokoll&lt;br /&gt;
&lt;br /&gt;
4) [[http://www.tinc-vpn.org/ tinc]] Mesh-vpn&lt;br /&gt;
&lt;br /&gt;
5) OS: debian jessie(or whatever you like)&lt;br /&gt;
&lt;br /&gt;
Du benötigst ausserdem: &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* eine private IPv4/IPv6 Adresse und ein Subnetz für die Clients&lt;br /&gt;
* eine IPv4/IPv6 Adresse für das Backbone-Netz&lt;br /&gt;
&lt;br /&gt;
Diese kannst du unter dem Artikel IP Netze selbst zuteilen, oder nachlesen, welches deine sind, wenn es jemand anderes dir schon zuteilte.&lt;br /&gt;
&lt;br /&gt;
(nur bei öffentlichen Supernodes)&lt;br /&gt;
== Vorbereitungen ==&lt;br /&gt;
In der /etc/sysctl.conf muss folgendes mit einem Editor hinzugefügt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
net.ipv4.ip_forward=1&lt;br /&gt;
net.ipv4.ip_no_pmtu_disc=1&lt;br /&gt;
net.ipv4.route.flush=1&lt;br /&gt;
net.ipv6.conf.all.forwarding=1&lt;br /&gt;
net.ipv6.conf.all.autoconf=0&lt;br /&gt;
net.ipv6.conf.all.accept_ra=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach die /etc/sysctl.conf neu einlesen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysctl -p&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für Batman-adv und fastd-Pakete in /etc/apt/apt/sources.list hinzufügen, z.B. so:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;deb http://repo.universe-factory.net/debian/ sid main&amp;quot; &amp;gt;&amp;gt;/etc/apt/sources.list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GPG-Key importieren und apt via https ermöglichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 gpg --keyserver pgpkeys.mit.edu --recv-key  16EF3F64CB201D9C&lt;br /&gt;
 gpg -a --export 16EF3F64CB201D9C | apt-key add -&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-transport-https&lt;br /&gt;
&lt;br /&gt;
 apt-get update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batman-adv (compat14 (Hood Bonn))==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Dies sollte auf debian wheezy batman-adv 2013.4.0 installieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install batman-adv-dkms&lt;br /&gt;
echo &amp;quot;batman-adv&amp;quot; &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== debian jessie ====&lt;br /&gt;
batman 14 aus folgender quelle installieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://repo.universe-factory.net/debian/ sid main&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
dann dkms die richtige version beibringen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dkms remove batman-adv/2013.4.0 --all&lt;br /&gt;
dkms --force install batman-adv/2013.4.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
und mit apt-pinning die richtige version für batctl erzwingen, in /etc/apt/preferences.d/batctl.pref:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Package: batctl&lt;br /&gt;
Pin: origin repo.universe-factory.net&lt;br /&gt;
Pin-Priority: 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
und apt-get install batctl&lt;br /&gt;
&lt;br /&gt;
== Batman-adv (compat15)==&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Update and install:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install git make gcc build-essential linux-headers-$(uname -r) pkg-config libgps-dev libnl-3-dev libjansson-dev fastd&lt;br /&gt;
&lt;br /&gt;
Install Batman, batctl and alfred&lt;br /&gt;
 mkdir /opt/freifunk&lt;br /&gt;
 cd $_&lt;br /&gt;
 &lt;br /&gt;
 git clone git://git.open-mesh.org/batman-adv.git&lt;br /&gt;
 cd batman-adv&lt;br /&gt;
 git checkout v2015.1&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 &lt;br /&gt;
 cd ../&lt;br /&gt;
 &lt;br /&gt;
 git clone http://git.open-mesh.org/batctl.git&lt;br /&gt;
 cd batctl&lt;br /&gt;
 git checkout v2015.1&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Wird künftig nicht mehr benötigt. Wer's trotzdem installieren mag:&lt;br /&gt;
&lt;br /&gt;
 cd ../&lt;br /&gt;
 &lt;br /&gt;
 git clone http://git.open-mesh.org/alfred.git&lt;br /&gt;
 cd alfred&lt;br /&gt;
 git checkout v2014.4.0&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
== fastd ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 apt-get install fastd curl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Add Directories''' &lt;br /&gt;
 mkdir /etc/fastd/mesh-vpn&lt;br /&gt;
 mkdir /etc/fastd/mesh-vpn/peers&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;[YOUR SECRET KEY HERE]&amp;quot; sollte dabei durch den fastd-secret-key ersetzt werden. Den Key müsst ihr selbst erstellen. Dies geht mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
 fastd --generate-key&lt;br /&gt;
&lt;br /&gt;
Schreibt am besten euch public und private key woanders noch auf. Wenn ihr den verliert, können Nodes nicht mehr mit euch connecten, solange diese nicht umkonfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
In /etc/fastd/mesh-vpn/fastd.conf folgendes hinzufügen:&lt;br /&gt;
&lt;br /&gt;
==== /etc/fastd/mesh-vpn/fastd.conf ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Log warnings and errors to stderr&lt;br /&gt;
#log level warn;&lt;br /&gt;
log level error;&lt;br /&gt;
&lt;br /&gt;
drop capabilities yes;&lt;br /&gt;
forward no;&lt;br /&gt;
hide ip addresses yes;&lt;br /&gt;
hide mac addresses yes;&lt;br /&gt;
&lt;br /&gt;
# Log everything to a log file&lt;br /&gt;
#log to &amp;quot;/var/log/fastd-mesh-vpn.log&amp;quot; level debug;&lt;br /&gt;
log to &amp;quot;/var/log/fastd-mesh-vpn.log&amp;quot; level warn;&lt;br /&gt;
&lt;br /&gt;
# Set the interface name&lt;br /&gt;
interface &amp;quot;mesh-vpn&amp;quot;;&lt;br /&gt;
mode &amp;quot;tap&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Support xsalsa20 and aes128 encryption methods, prefer xsalsa20&lt;br /&gt;
method &amp;quot;salsa2012+umac&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Bind to a fixed port, IPv4 only&lt;br /&gt;
bind 0.0.0.0:10000;&lt;br /&gt;
&lt;br /&gt;
mtu 1312;&lt;br /&gt;
pmtu auto;&lt;br /&gt;
secure handshakes yes;&lt;br /&gt;
&lt;br /&gt;
# Secret key generated by 'fastd --generate-key'&lt;br /&gt;
secret &amp;quot;[YOUR SECRET KEY HERE]&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Include peers from the directory 'peers' and set max connections&lt;br /&gt;
&lt;br /&gt;
peer group &amp;quot;backbone&amp;quot; {&lt;br /&gt;
  include peers from &amp;quot;backbone&amp;quot;;&lt;br /&gt;
  peer limit 64;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
on up sync &amp;quot;./on-up&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Allows all peers to connect.&lt;br /&gt;
on verify async &amp;quot;true&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ordnerstruktur anlegen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /etc/fastd/mesh-vpn/backbone&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Optional: Wenn die Node teil einer grösseren Hood werden soll, entsprechende Backbone Node Keys in das zueben erstellte Verzeichnis legen. Vorzuziehen ist aber entweder eine eigene Fastdinstanz oder eine Tinc VPN Verbindung (AES-NI) um sich an eine hood (Layer2 Mesh mit Batman-adv) zu verbinden, dies ist performanter.&lt;br /&gt;
&lt;br /&gt;
Der IP v4-Range bezieht sich auf euren selbst gewählten Bereich, welcher unter https://pad.freifunk.net/p/kbuip dokumentiert ist.&lt;br /&gt;
==== /etc/fastd/mesh-vpn/on-up ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
/sbin/ip link set dev mesh-vpn address [MacAdresseAusdenken]&lt;br /&gt;
/sbin/ip link set dev mesh-vpn up&lt;br /&gt;
&lt;br /&gt;
batctl if add mesh-vpn&lt;br /&gt;
batctl it 10000&lt;br /&gt;
batctl bl 1&lt;br /&gt;
batctl gw_mode server 200MBit/200MBit # anpassen&lt;br /&gt;
&lt;br /&gt;
/sbin/ip rule show | grep 'from 10.0.0.0/8 lookup freifunk'&lt;br /&gt;
if [ $? -eq 1 ]; then&lt;br /&gt;
  /sbin/ip rule add from 10.0.0.0/8 table freifunk&lt;br /&gt;
fi&lt;br /&gt;
/sbin/ip route add [deinelokaleIPv4Range] dev bat0 table freifunk&lt;br /&gt;
/sbin/ip route flush cache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
on-up ausführbar machen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /etc/fastd/mesh-vpn/on-up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== BmxBone Netz ==&lt;br /&gt;
&lt;br /&gt;
Jetzt müsst ihr euch entscheiden, welches VPN Programm ihr für das BmxBone nutzen wollt:&lt;br /&gt;
* wenn ihr eine CPU mit AES-NI habt, oder eine CPU mit deutlich mehr als 1GHz nehmt tinc&lt;br /&gt;
* wenn ihr eine langsame CPU sub 1GHz oder sogar eine ARM CPU, sollte fastd besser sein&lt;br /&gt;
=== Installation mit tinc ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install tinc bridge-utils make build-essential&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wir müssen bmx6 noch kompilieren:&lt;br /&gt;
 git clone https://github.com/axn/bmx6&lt;br /&gt;
 cd bmx6&lt;br /&gt;
 make build_all&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /etc/tinc/tbmxbone&lt;br /&gt;
echo &amp;quot;tbmxbone&amp;quot; &amp;gt;&amp;gt; /etc/tinc/nets.boot  # Dies sagt tinc, dass es das Netz &amp;quot;tbmxbone&amp;quot; starten soll&lt;br /&gt;
cd /etc/tinc/tbmxbone&lt;br /&gt;
# Public keys der anderen Teilnehmer:&lt;br /&gt;
git clone https://gitlab.kbu.freifunk.net/bmxbone/tinc.git hosts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt fehlt noch des eigene Public/Private Keypaar. &amp;lt;br /&amp;gt;&lt;br /&gt;
Die Keys sollten in /etc/tinc/tbmxbone gespeichert werden.&amp;lt;br /&amp;gt;&lt;br /&gt;
Den Public-Key in den Namen des Supernodes umbenennen und nach tinc/ kopieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tincd -K 4096 -n tbmxbone&lt;br /&gt;
cp rsa_key.pub keys/[Supernodename aus tinc Configfile]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und schliesslich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd keys&lt;br /&gt;
git push&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wir müssen noch die Konfiguration von tinc in /etc/tinc/tbmxbone/tinc.conf schreiben.&lt;br /&gt;
&lt;br /&gt;
==== tinc.conf ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Device=/dev/net/tun&lt;br /&gt;
DirectOnly=yes # tinc soll nicht Daten selbst weiterleiten&lt;br /&gt;
IndirectData=yes &lt;br /&gt;
Broadcast=direct&lt;br /&gt;
Cipher=AES-128-CBC # nutzt AES-NI und performed deswegen besser als fastd&lt;br /&gt;
Mode=switch&lt;br /&gt;
PingInterval=60&lt;br /&gt;
PingTimeout=10&lt;br /&gt;
Compression=0 &lt;br /&gt;
ConnectTo=gw06&lt;br /&gt;
ConnectTo=vpn1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== tinc-up ====&lt;br /&gt;
Jetzt müssen wir noch ein Startskript namens /etc/tinc/tbmxbone/tinc-up erstellen:&lt;br /&gt;
'''Wichtig:''' in der datei muss wirklich $INTERFACE stehen. Tinc ersetzt dies automatisch durch das entsprechende interface bei ausführung.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
bmx6 dev=$INTERFACE # VPN Mesh Interface dem BMX6 Mesh hinzufügen&lt;br /&gt;
# Default tunneladressen dem tbmxbone zuweisen&lt;br /&gt;
bmx6 -c tunDev=Default /tun4Address=[BMXipv4Adresse] /tun6Adress=[BMX6ipv6Adresse] &lt;br /&gt;
# Feste Tunnel MTU von 1366 einstellen&lt;br /&gt;
bmx6 -c tunMtu=1366&lt;br /&gt;
# Lokales v4&amp;amp;v6 Netz announcen&lt;br /&gt;
bmx6 -c tunIn=localv4 /n=[DeinLokalesIPv4Netz] /b=100000000&lt;br /&gt;
bmx6 -c tunIn=localv6 /n=[DeinLokalesIPv6Netz] /b=100000000&lt;br /&gt;
# Defaultroute für v4 suchen&lt;br /&gt;
bmx6 -c tunOut=v4Default /network=0.0.0.0/0 /maxPrefixLen=3 /hysteresis=30 /tableRule=50000/200 &lt;br /&gt;
# Gateway für v4 präferieren&lt;br /&gt;
#bmx6 -c tunOut=v4Defaultgw06 /network=0.0.0.0/0 /maxPrefixLen=0 /hysteresis=30 /tableRule=50000/200 /gwName=gw06 /rating=1000000&lt;br /&gt;
# Defaultroute für v6 suchen&lt;br /&gt;
bmx6 -c tunOut=v6Default /network=0.0.0.0/0 /maxPrefixLen=64 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
# Routen für lokale v4 und v6 Netze suchen&lt;br /&gt;
bmx6 -c tunOut=ffv4 /network=10.0.0.0/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
bmx6 -c tunOut=ffv6 /network=fd00::/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch diese Datei muss ausführbar gemacht werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /etc/tinc/backbone/tinc-up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach sollte der Ordner etwa so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$:/etc/tinc/backbone# ls &lt;br /&gt;
tinc&lt;br /&gt;
hosts -&amp;gt; tinc&lt;br /&gt;
rsa_key.priv&lt;br /&gt;
rsa_key.pub&lt;br /&gt;
tinc.conf&lt;br /&gt;
tinc-up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation (fastd) ==&lt;br /&gt;
&lt;br /&gt;
Zuerst müssen wir bmx6 kompilieren:&lt;br /&gt;
 apt-get install build-essential make fastd&lt;br /&gt;
 mkdir /opt/freifunk/&lt;br /&gt;
 cd /opt/freifunk/&lt;br /&gt;
 git clone https://github.com/axn/bmx6.git&lt;br /&gt;
 cd bmx6&lt;br /&gt;
 make build_all # this reports some erros, go ahead anyway&lt;br /&gt;
 make install&lt;br /&gt;
 &lt;br /&gt;
Nun bauen wir das FastdInterface:&lt;br /&gt;
&lt;br /&gt;
 mkdir /etc/fastd/fbmxbone&lt;br /&gt;
 cd /etc/fastd/fbmxbone&lt;br /&gt;
 nano fastd.conf&lt;br /&gt;
&lt;br /&gt;
Inhalt der Konfigdatei (ihr müsst euch einen eigenen Key mit fastd --generate-key, wenn ihr nicht für andere erreichbar sein wollt, müsst ihr den Key euch auch nicht merken):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bind 0.0.0.0 port 10042;&lt;br /&gt;
&lt;br /&gt;
drop capabilities yes;&lt;br /&gt;
forward no;&lt;br /&gt;
hide ip addresses yes;&lt;br /&gt;
hide mac addresses yes;&lt;br /&gt;
&lt;br /&gt;
peer group &amp;quot;ffrl&amp;quot; {&lt;br /&gt;
  include peers from &amp;quot;ffrl&amp;quot;;&lt;br /&gt;
  peer limit 1;&lt;br /&gt;
}&lt;br /&gt;
peer group &amp;quot;backbone&amp;quot; {&lt;br /&gt;
  include peers from &amp;quot;backbone&amp;quot;;&lt;br /&gt;
  peer limit 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
interface &amp;quot;fbmxbone&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
log to syslog level warn;&lt;br /&gt;
&lt;br /&gt;
method &amp;quot;salsa2012+umac&amp;quot;;&lt;br /&gt;
mode tap;&lt;br /&gt;
mtu 1406;&lt;br /&gt;
&lt;br /&gt;
on up sync &amp;quot;./on-up&amp;quot;;&lt;br /&gt;
on verify async &amp;quot;true&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
pmtu auto;&lt;br /&gt;
&lt;br /&gt;
secret &amp;quot;PUT IN SIKRIT KEY IN HERE&amp;quot;;&lt;br /&gt;
secure handshakes yes;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt clonen wir aus dem Git-Repo die PublicKeys der Knoten:&lt;br /&gt;
 git clone https://gitlab.kbu.freifunk.net/bmxbone/fastd &lt;br /&gt;
Und kopieren diese noch per Hand in die einzelnen Keyverzeichnisse (verbessern):&lt;br /&gt;
 mkdir ffrl&lt;br /&gt;
 mkdir backbone&lt;br /&gt;
 cp fastd/* backbone/&lt;br /&gt;
 mv backbone/gw06 ffrl/&lt;br /&gt;
Und brauchen noch ein on-up Skript (/etc/fastd/fbmxbone/on-up):&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 /sbin/ip link set dev fbmxbone address [MAC ADDY AUSDENKEN]&lt;br /&gt;
 /sbin/ip link set dev fbmxbone backboneup&lt;br /&gt;
 bmx6 dev=fbmxbone&lt;br /&gt;
 bmx6 -c tunDev=Default /tun4Address=[BMXipv4Adresse] /tun6Adress=[BMX6ipv6Adresse]&lt;br /&gt;
 bmx6 -c tunIn=localv4 /n=[DeinLokalesIPv4Netz] /b=100000000&lt;br /&gt;
 bmx6 -c tunIn=localv6 /n=[DeinLokalesIPv6Netz] /b=100000000&lt;br /&gt;
 bmx6 -c tunOut=v4Default /network=0.0.0.0/0 /maxPrefixLen=3 /hysteresis=30 /tableRule=50000/200 &lt;br /&gt;
 #bmx6 -c tunOut=v4Defaultgw06 /network=0.0.0.0/0 /maxPrefixLen=0 /hysteresis=30 /tableRule=50000/200 /gwName=gw06 /rating=1000000&lt;br /&gt;
 bmx6 -c tunOut=v6Default /network=0.0.0.0/0 /maxPrefixLen=64 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
 bmx6 -c tunOut=ffv4 /network=10.0.0.0/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
 bmx6 -c tunOut=ffv6 /network=fd00::/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
Und mittlerweile klar, ausführbar machen:&lt;br /&gt;
 chmod +x on-up&lt;br /&gt;
&lt;br /&gt;
== Routing ==&lt;br /&gt;
&lt;br /&gt;
Wir brauchen policy based routing:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;200 freifunk&amp;quot; &amp;gt;&amp;gt; /etc/iproute2/rt_tables&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
fastd's on-up, /etc/network/interfaces.d/bat0 und/oder tinc-up erledigen den Rest. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IPv4 DHCP ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install isc-dhcp-server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
Nun ändern wir die Konfiguration in /etc/dhcp/dhcpd.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
option domain-name &amp;quot;mesh.kbu.freifunk.net&amp;quot;;&lt;br /&gt;
option domain-name-servers [Supernode IPv4], [INSERT YOUR PREFERRED IPV4 DNS], 213.73.91.35;&lt;br /&gt;
&lt;br /&gt;
default-lease-time 150;&lt;br /&gt;
max-lease-time 720;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
subnet 10.X.X.X netmask Y.Y.Y.Y { # Die Range der Hood&lt;br /&gt;
	range 10.X.Y.10 10.X.Z.255; # Eure IPv4 Range&lt;br /&gt;
	option routers [Supernode IP Adresse];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IPv6 ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install radvd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
interface bat0&lt;br /&gt;
IgnoreIfMissing yes&lt;br /&gt;
{&lt;br /&gt;
 AdvSendAdvert on;&lt;br /&gt;
 MaxRtrAdvInterval 200;&lt;br /&gt;
 prefix [GlobaleIPv6Range des Supernodes] {&lt;br /&gt;
 };&lt;br /&gt;
 RDNSS [ULA IPv6 of Supernode], [your preferred ipv6 DNS-Server] {&lt;br /&gt;
 }; &lt;br /&gt;
 prefix [ULA IPv6Range der Supernode (fd00::/64)] {&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UDP-Queue Größe ==&lt;br /&gt;
Durch Broadcasts können können auf Supernodes kurzzeitig hohe Lastspitzen enstehen. In der aktuellen batman-adv-Version wird jedes Broadcast-Paket zudem 3x auf jedem Link versendet.&lt;br /&gt;
Die vergleichweise hohe Datenrate von 100MBit/s zwischen Supernodes bewirkt darüber hinaus, dass broadcast-Pakete mit 100MBit/s eingehen können, während sie gleichzeitig an alle Nodes gesendet werden müssen.&lt;br /&gt;
&lt;br /&gt;
Linux-Distributionen sehen per Default Queue-Größen im Bereich von 128 KB vor (http://www.cyberciti.biz/faq/linux-tcp-tuning/). Supernodes sind somit nicht in der Lage entsprechende Lastspitzen zu puffern und während Idle-Times zu versenden. Läuft die UDP-Queue über, so loggt fastd:&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
Jeder Log-Eintrag entspricht einem Paket, dass nicht enqueued werden konnte und damit verworfen wurde. Die Queue-Größen können via systctl angepasst werden (http://wwwx.cs.unc.edu/~sparkst/howto/network_tuning.php). Auf fastd2 wird zur Zeit verwendet:&lt;br /&gt;
 #/etc/sysctl.conf&lt;br /&gt;
 net.core.rmem_max=83886080&lt;br /&gt;
 net.core.wmem_max=83886080&lt;br /&gt;
 net.core.rmem_default=83886080&lt;br /&gt;
 net.core.wmem_default=83886080&lt;br /&gt;
&lt;br /&gt;
Das System verfügt dadurch über 80MB Speicher für Queues. Per default stehen ebenfalls 80MB zur Verfügung. Die konfigurierten 80MB reichen aus, um die 100MBit/s Verbindung über mehrere Sekunden auszulasten und Lastspitzen abzufangen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Netz-und-Technik]]&lt;br /&gt;
&lt;br /&gt;
== DNS-&amp;quot;Server&amp;quot; ==&lt;br /&gt;
Supernodes betreiben Caching-DNS-Forwarder. Hierzu wird unbound verwendet&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
 apt install unbound&lt;br /&gt;
&lt;br /&gt;
== Adressen ==&lt;br /&gt;
Das Setup unterscheidet zwischen v4 und v6. &lt;br /&gt;
&lt;br /&gt;
== /etc/unbound/unbound.conf ==&lt;br /&gt;
&lt;br /&gt;
 server:&lt;br /&gt;
        auto-trust-anchor-file: &amp;quot;/var/lib/unbound/root.key&amp;quot;&lt;br /&gt;
        interface: [ULA ipv6 des supernodes]&lt;br /&gt;
        access-control: [public ipv6 Range des Supernodes]  allow&lt;br /&gt;
        access-control: [ULA ipv6 Range des Supernodes] allow&lt;br /&gt;
        interface: [ipv4 des Supernodes]&lt;br /&gt;
        access-control: [IPv4 Range der Hood] allow&lt;br /&gt;
        verbosity: 1&lt;br /&gt;
  forward-zone:&lt;br /&gt;
      name: &amp;quot;.&amp;quot;&lt;br /&gt;
      forward-addr: [your Favorite v4 DNS IP]&lt;br /&gt;
      forward-addr: [your Favorite v6 DNS IP]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DHCP Client Leases in eine RAMdisk flüchtig speichern ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;tmpfs /var/lib/dhcp/ tmpfs defaults,size=10% 0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logrotate auf die letzte Stunde umstellen ==&lt;br /&gt;
&lt;br /&gt;
Mehr braucht es nicht im Betrieb&lt;br /&gt;
&lt;br /&gt;
Hierzu in /etc/logrotate.conf folgendes ändern:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;weekly&amp;quot; in &amp;quot;hourly&amp;quot; ändern&lt;br /&gt;
 &amp;quot;rotate 4&amp;quot; in &amp;quot;rotate 0&amp;quot; ändern&lt;br /&gt;
&lt;br /&gt;
=== cronJob hinzufügen === &lt;br /&gt;
mit crontab -e Editor aufrufen und folgende Zeile hinzufügen:&lt;br /&gt;
 &lt;br /&gt;
 * */1 * * * nice -n 20 logrotate /etc/logrotate.conf&lt;br /&gt;
&lt;br /&gt;
== Interfaces in /etc/network/interfaces.d/bat0 definieren ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto bat0&lt;br /&gt;
iface bat0 inet static&lt;br /&gt;
  hwaddress ether [MACADRESSE AUSDENKEN]&lt;br /&gt;
  address [ipv4 des Supernodes]&lt;br /&gt;
  netmask [Netzmaske der Hood]&lt;br /&gt;
  pre-up  modprobe batman-adv &amp;amp;&amp;amp; tunctl -t mesh-vpn &amp;amp;&amp;amp; batctl if add mesh-vpn&lt;br /&gt;
  post-up ip rule add iif bat0 table freifunk&lt;br /&gt;
  pre-down ip rule del iif bat0 table freifunk&lt;br /&gt;
&lt;br /&gt;
iface bat0 inet6 static&lt;br /&gt;
  address [GLOBAL IPv6 des Supernodes]&lt;br /&gt;
  netmask 64&lt;br /&gt;
  # Routes&lt;br /&gt;
  # Note: route del not needed - shutting down the interfaces removes routes anyway&lt;br /&gt;
  post-up ip -6 route add [IPv6 Range der Supernode] dev bat0&lt;br /&gt;
  post-up ip -6 route add [IPv6 Range der Supernode] dev bat0 table freifunk&lt;br /&gt;
&lt;br /&gt;
  # Rules (iif: routed traffic, from: traffic from the supernode)&lt;br /&gt;
  post-up ip -6 rule add iif bat0 table freifunk&lt;br /&gt;
  post-up ip -6 rule add from [GLOBAL IPv6 Range des Exits] table freifunk&lt;br /&gt;
  pre-down ip -6 rule del iif bat0 table freifunk&lt;br /&gt;
  pre-down ip -6 rule del from [GLOBAL IPv6 Range des Exits] table freifunk&lt;br /&gt;
&lt;br /&gt;
== IP-Tables Firewall ==&lt;br /&gt;
&lt;br /&gt;
Hier wollen wir nur die schlimmsten Routingfuckups verhindern, es soll nichts über z.B. eth0 rausgeforwardet werden können.&lt;br /&gt;
=== Installation ===&lt;br /&gt;
 apt install iptables-persistent&lt;br /&gt;
&lt;br /&gt;
=== Inhalt /etc/iptables/rules.v4 ===&lt;br /&gt;
&lt;br /&gt;
=== Inhalt /etc/iptables/rules.v6 ===&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Supernode&amp;diff=4573</id>
		<title>Supernode</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Supernode&amp;diff=4573"/>
		<updated>2016-05-22T15:46:45Z</updated>

		<summary type="html">&lt;p&gt;Took: /* Installation (fastd) */ path fixed again&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
[[Kategorie:Infrastruktur]]&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
[[https://en.wikipedia.org/wiki/Supernode_%28networking%29 wikipedia-article]]&lt;br /&gt;
&lt;br /&gt;
Benötigte Software&lt;br /&gt;
&lt;br /&gt;
1) [[https://projects.universe-factory.net/projects/fastd fastd]] Mesh-vpn&lt;br /&gt;
&lt;br /&gt;
2) [[https://bmx6.net/projects/bmx6 bmx6]] BackboneMeshProtokoll&lt;br /&gt;
&lt;br /&gt;
3) [[http://www.open-mesh.org/projects/open-mesh/wiki batman-adv]] ClientMeshProtokoll&lt;br /&gt;
&lt;br /&gt;
4) [[http://www.tinc-vpn.org/ tinc]] Mesh-vpn&lt;br /&gt;
&lt;br /&gt;
5) OS: debian jessie(or whatever you like)&lt;br /&gt;
&lt;br /&gt;
Du benötigst ausserdem: &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* eine private IPv4/IPv6 Adresse und ein Subnetz für die Clients&lt;br /&gt;
* eine IPv4/IPv6 Adresse für das Backbone-Netz&lt;br /&gt;
&lt;br /&gt;
Diese kannst du unter dem Artikel IP Netze selbst zuteilen, oder nachlesen, welches deine sind, wenn es jemand anderes dir schon zuteilte.&lt;br /&gt;
&lt;br /&gt;
(nur bei öffentlichen Supernodes)&lt;br /&gt;
== Vorbereitungen ==&lt;br /&gt;
In der /etc/sysctl.conf muss folgendes mit einem Editor hinzugefügt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
net.ipv4.ip_forward=1&lt;br /&gt;
net.ipv4.ip_no_pmtu_disc=1&lt;br /&gt;
net.ipv4.route.flush=1&lt;br /&gt;
net.ipv6.conf.all.forwarding=1&lt;br /&gt;
net.ipv6.conf.all.autoconf=0&lt;br /&gt;
net.ipv6.conf.all.accept_ra=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach die /etc/sysctl.conf neu einlesen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysctl -p&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für Batman-adv und fastd-Pakete in /etc/apt/apt/sources.list hinzufügen, z.B. so:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;deb http://repo.universe-factory.net/debian/ sid main&amp;quot; &amp;gt;&amp;gt;/etc/apt/sources.list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GPG-Key importieren und apt via https ermöglichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 gpg --keyserver pgpkeys.mit.edu --recv-key  16EF3F64CB201D9C&lt;br /&gt;
 gpg -a --export 16EF3F64CB201D9C | apt-key add -&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-transport-https&lt;br /&gt;
&lt;br /&gt;
 apt-get update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batman-adv (compat14 (Hood Bonn))==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Dies sollte auf debian wheezy batman-adv 2013.4.0 installieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install batman-adv-dkms&lt;br /&gt;
echo &amp;quot;batman-adv&amp;quot; &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== debian jessie ====&lt;br /&gt;
batman 14 aus folgender quelle installieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://repo.universe-factory.net/debian/ sid main&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
dann dkms die richtige version beibringen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dkms remove batman-adv/2013.4.0 --all&lt;br /&gt;
dkms --force install batman-adv/2013.4.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
und mit apt-pinning die richtige version für batctl erzwingen, in /etc/apt/preferences.d/batctl.pref:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Package: batctl&lt;br /&gt;
Pin: origin repo.universe-factory.net&lt;br /&gt;
Pin-Priority: 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
und apt-get install batctl&lt;br /&gt;
&lt;br /&gt;
== Batman-adv (compat15)==&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Update and install:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install git make gcc build-essential linux-headers-$(uname -r) pkg-config libgps-dev libnl-3-dev libjansson-dev fastd&lt;br /&gt;
&lt;br /&gt;
Install Batman, batctl and alfred&lt;br /&gt;
 mkdir /opt/freifunk&lt;br /&gt;
 cd $_&lt;br /&gt;
 &lt;br /&gt;
 git clone git://git.open-mesh.org/batman-adv.git&lt;br /&gt;
 cd batman-adv&lt;br /&gt;
 git checkout v2015.1&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 &lt;br /&gt;
 cd ../&lt;br /&gt;
 &lt;br /&gt;
 git clone http://git.open-mesh.org/batctl.git&lt;br /&gt;
 cd batctl&lt;br /&gt;
 git checkout v2015.1&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Wird künftig nicht mehr benötigt. Wer's trotzdem installieren mag:&lt;br /&gt;
&lt;br /&gt;
 cd ../&lt;br /&gt;
 &lt;br /&gt;
 git clone http://git.open-mesh.org/alfred.git&lt;br /&gt;
 cd alfred&lt;br /&gt;
 git checkout v2014.4.0&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
== fastd ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 apt-get install fastd curl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Add Directories''' &lt;br /&gt;
 mkdir /etc/fastd/mesh-vpn&lt;br /&gt;
 mkdir /etc/fastd/mesh-vpn/peers&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;[YOUR SECRET KEY HERE]&amp;quot; sollte dabei durch den fastd-secret-key ersetzt werden. Den Key müsst ihr selbst erstellen. Dies geht mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
 fastd --generate-key&lt;br /&gt;
&lt;br /&gt;
Schreibt am besten euch public und private key woanders noch auf. Wenn ihr den verliert, können Nodes nicht mehr mit euch connecten, solange diese nicht umkonfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
In /etc/fastd/mesh-vpn/fastd.conf folgendes hinzufügen:&lt;br /&gt;
&lt;br /&gt;
==== /etc/fastd/mesh-vpn/fastd.conf ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Log warnings and errors to stderr&lt;br /&gt;
#log level warn;&lt;br /&gt;
log level error;&lt;br /&gt;
&lt;br /&gt;
drop capabilities yes;&lt;br /&gt;
forward no;&lt;br /&gt;
hide ip addresses yes;&lt;br /&gt;
hide mac addresses yes;&lt;br /&gt;
&lt;br /&gt;
# Log everything to a log file&lt;br /&gt;
#log to &amp;quot;/var/log/fastd-mesh-vpn.log&amp;quot; level debug;&lt;br /&gt;
log to &amp;quot;/var/log/fastd-mesh-vpn.log&amp;quot; level warn;&lt;br /&gt;
&lt;br /&gt;
# Set the interface name&lt;br /&gt;
interface &amp;quot;mesh-vpn&amp;quot;;&lt;br /&gt;
mode &amp;quot;tap&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Support xsalsa20 and aes128 encryption methods, prefer xsalsa20&lt;br /&gt;
method &amp;quot;salsa2012+umac&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Bind to a fixed port, IPv4 only&lt;br /&gt;
bind 0.0.0.0:10000;&lt;br /&gt;
&lt;br /&gt;
mtu 1312;&lt;br /&gt;
pmtu auto;&lt;br /&gt;
secure handshakes yes;&lt;br /&gt;
&lt;br /&gt;
# Secret key generated by 'fastd --generate-key'&lt;br /&gt;
secret &amp;quot;[YOUR SECRET KEY HERE]&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Include peers from the directory 'peers' and set max connections&lt;br /&gt;
&lt;br /&gt;
peer group &amp;quot;backbone&amp;quot; {&lt;br /&gt;
  include peers from &amp;quot;backbone&amp;quot;;&lt;br /&gt;
  peer limit 64;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
on up sync &amp;quot;./on-up&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Allows all peers to connect.&lt;br /&gt;
on verify async &amp;quot;true&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ordnerstruktur anlegen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /etc/fastd/mesh-vpn/backbone&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Optional: Wenn die Node teil einer grösseren Hood werden soll, entsprechende Backbone Node Keys in das zueben erstellte Verzeichnis legen. Vorzuziehen ist aber entweder eine eigene Fastdinstanz oder eine Tinc VPN Verbindung (AES-NI) um sich an eine hood (Layer2 Mesh mit Batman-adv) zu verbinden, dies ist performanter.&lt;br /&gt;
&lt;br /&gt;
Der IP v4-Range bezieht sich auf euren selbst gewählten Bereich, welcher unter https://pad.freifunk.net/p/kbuip dokumentiert ist.&lt;br /&gt;
==== /etc/fastd/mesh-vpn/on-up ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
/sbin/ip link set dev mesh-vpn address [MacAdresseAusdenken]&lt;br /&gt;
/sbin/ip link set dev mesh-vpn up&lt;br /&gt;
&lt;br /&gt;
batctl if add mesh-vpn&lt;br /&gt;
batctl it 10000&lt;br /&gt;
batctl bl 1&lt;br /&gt;
batctl gw_mode server 200MBit/200MBit # anpassen&lt;br /&gt;
&lt;br /&gt;
/sbin/ip rule show | grep 'from 10.0.0.0/8 lookup freifunk'&lt;br /&gt;
if [ $? -eq 1 ]; then&lt;br /&gt;
  /sbin/ip rule add from 10.0.0.0/8 table freifunk&lt;br /&gt;
fi&lt;br /&gt;
/sbin/ip route add [deinelokaleIPv4Range] dev bat0 table freifunk&lt;br /&gt;
/sbin/ip route flush cache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
on-up ausführbar machen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /etc/fastd/mesh-vpn/on-up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== BmxBone Netz ==&lt;br /&gt;
&lt;br /&gt;
Jetzt müsst ihr euch entscheiden, welches VPN Programm ihr für das BmxBone nutzen wollt:&lt;br /&gt;
* wenn ihr eine CPU mit AES-NI habt, oder eine CPU mit deutlich mehr als 1GHz nehmt tinc&lt;br /&gt;
* wenn ihr eine langsame CPU sub 1GHz oder sogar eine ARM CPU, sollte fastd besser sein&lt;br /&gt;
=== Installation mit tinc ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install tinc bridge-utils make build-essential&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wir müssen bmx6 noch kompilieren:&lt;br /&gt;
 git clone https://github.com/axn/bmx6&lt;br /&gt;
 cd bmx6&lt;br /&gt;
 make build_all&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /etc/tinc/tbmxbone&lt;br /&gt;
echo &amp;quot;tbmxbone&amp;quot; &amp;gt;&amp;gt; /etc/tinc/nets.boot  # Dies sagt tinc, dass es das Netz &amp;quot;tbmxbone&amp;quot; starten soll&lt;br /&gt;
cd /etc/tinc/tbmxbone&lt;br /&gt;
# Public keys der anderen Teilnehmer:&lt;br /&gt;
git clone https://gitlab.kbu.freifunk.net/bmxbone/tinc.git keys&lt;br /&gt;
ln -s keys/ hosts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt fehlt noch des eigene Public/Private Keypaar. &amp;lt;br /&amp;gt;&lt;br /&gt;
Die Keys sollten in /etc/tinc/tbmxbone gespeichert werden.&amp;lt;br /&amp;gt;&lt;br /&gt;
Den Public-Key in den Namen des Supernodes umbenennen und nach tinc/ kopieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tincd -K 4096 -n tbmxbone&lt;br /&gt;
cp rsa_key.pub keys/[Supernodename aus tinc Configfile]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und schliesslich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd keys&lt;br /&gt;
git push&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wir müssen noch die Konfiguration von tinc in /etc/tinc/tbmxbone/tinc.conf schreiben.&lt;br /&gt;
&lt;br /&gt;
==== tinc.conf ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Device=/dev/net/tun&lt;br /&gt;
DirectOnly=yes # tinc soll nicht Daten selbst weiterleiten&lt;br /&gt;
IndirectData=yes &lt;br /&gt;
Broadcast=direct&lt;br /&gt;
Cipher=AES-128-CBC # nutzt AES-NI und performed deswegen besser als fastd&lt;br /&gt;
Mode=switch&lt;br /&gt;
PingInterval=60&lt;br /&gt;
PingTimeout=10&lt;br /&gt;
Compression=0 &lt;br /&gt;
ConnectTo=gw06&lt;br /&gt;
ConnectTo=vpn1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== tinc-up ====&lt;br /&gt;
Jetzt müssen wir noch ein Startskript namens /etc/tinc/tbmxbone/tinc-up erstellen:&lt;br /&gt;
'''Wichtig:''' in der datei muss wirklich $INTERFACE stehen. Tinc ersetzt dies automatisch durch das entsprechende interface bei ausführung.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
bmx6 dev=$INTERFACE # VPN Mesh Interface dem BMX6 Mesh hinzufügen&lt;br /&gt;
# Default tunneladressen dem tbmxbone zuweisen&lt;br /&gt;
bmx6 -c tunDev=Default /tun4Address=[BMXipv4Adresse] /tun6Adress=[BMX6ipv6Adresse] &lt;br /&gt;
# Feste Tunnel MTU von 1366 einstellen&lt;br /&gt;
bmx6 -c tunMtu=1366&lt;br /&gt;
# Lokales v4&amp;amp;v6 Netz announcen&lt;br /&gt;
bmx6 -c tunIn=localv4 /n=[DeinLokalesIPv4Netz] /b=100000000&lt;br /&gt;
bmx6 -c tunIn=localv6 /n=[DeinLokalesIPv6Netz] /b=100000000&lt;br /&gt;
# Defaultroute für v4 suchen&lt;br /&gt;
bmx6 -c tunOut=v4Default /network=0.0.0.0/0 /maxPrefixLen=3 /hysteresis=30 /tableRule=50000/200 &lt;br /&gt;
# Gateway für v4 präferieren&lt;br /&gt;
#bmx6 -c tunOut=v4Defaultgw06 /network=0.0.0.0/0 /maxPrefixLen=0 /hysteresis=30 /tableRule=50000/200 /gwName=gw06 /rating=1000000&lt;br /&gt;
# Defaultroute für v6 suchen&lt;br /&gt;
bmx6 -c tunOut=v6Default /network=0.0.0.0/0 /maxPrefixLen=64 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
# Routen für lokale v4 und v6 Netze suchen&lt;br /&gt;
bmx6 -c tunOut=ffv4 /network=10.0.0.0/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
bmx6 -c tunOut=ffv6 /network=fd00::/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch diese Datei muss ausführbar gemacht werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /etc/tinc/backbone/tinc-up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach sollte der Ordner etwa so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$:/etc/tinc/backbone# ls &lt;br /&gt;
tinc&lt;br /&gt;
hosts -&amp;gt; tinc&lt;br /&gt;
rsa_key.priv&lt;br /&gt;
rsa_key.pub&lt;br /&gt;
tinc.conf&lt;br /&gt;
tinc-up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation (fastd) ==&lt;br /&gt;
&lt;br /&gt;
Zuerst müssen wir bmx6 kompilieren:&lt;br /&gt;
 apt-get install build-essential make fastd&lt;br /&gt;
 mkdir /opt/freifunk/&lt;br /&gt;
 cd /opt/freifunk/&lt;br /&gt;
 git clone https://github.com/axn/bmx6.git&lt;br /&gt;
 cd bmx6&lt;br /&gt;
 make build_all&lt;br /&gt;
 make install&lt;br /&gt;
 &lt;br /&gt;
Nun bauen wir das FastdInterface:&lt;br /&gt;
&lt;br /&gt;
 mkdir /etc/fastd/fbmxbone&lt;br /&gt;
 cd /etc/fastd/fbmxbone&lt;br /&gt;
 nano fastd.conf&lt;br /&gt;
&lt;br /&gt;
Inhalt der Konfigdatei (ihr müsst euch einen eigenen Key mit fastd --generate-key, wenn ihr nicht für andere erreichbar sein wollt, müsst ihr den Key euch auch nicht merken):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bind 0.0.0.0 port 10042;&lt;br /&gt;
&lt;br /&gt;
drop capabilities yes;&lt;br /&gt;
forward no;&lt;br /&gt;
hide ip addresses yes;&lt;br /&gt;
hide mac addresses yes;&lt;br /&gt;
&lt;br /&gt;
peer group &amp;quot;ffrl&amp;quot; {&lt;br /&gt;
  include peers from &amp;quot;ffrl&amp;quot;;&lt;br /&gt;
  peer limit 1;&lt;br /&gt;
}&lt;br /&gt;
peer group &amp;quot;backbone&amp;quot; {&lt;br /&gt;
  include peers from &amp;quot;backbone&amp;quot;;&lt;br /&gt;
  peer limit 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
interface &amp;quot;fbmxbone&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
log to syslog level warn;&lt;br /&gt;
&lt;br /&gt;
method &amp;quot;salsa2012+umac&amp;quot;;&lt;br /&gt;
mode tap;&lt;br /&gt;
mtu 1406;&lt;br /&gt;
&lt;br /&gt;
on up sync &amp;quot;./on-up&amp;quot;;&lt;br /&gt;
on verify async &amp;quot;true&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
pmtu auto;&lt;br /&gt;
&lt;br /&gt;
secret &amp;quot;PUT IN SIKRIT KEY IN HERE&amp;quot;;&lt;br /&gt;
secure handshakes yes;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt clonen wir aus dem Git-Repo die PublicKeys der Knoten:&lt;br /&gt;
 git clone https://gitlab.kbu.freifunk.net/bmxbone/fastd &lt;br /&gt;
Und kopieren diese noch per Hand in die einzelnen Keyverzeichnisse (verbessern):&lt;br /&gt;
 mkdir ffrl&lt;br /&gt;
 mkdir backbone&lt;br /&gt;
 cp fastd/* backbone/&lt;br /&gt;
 mv backbone/gw06 ffrl/&lt;br /&gt;
Und brauchen noch ein on-up Skript (/etc/fastd/fbmxbone/on-up):&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 /sbin/ip link set dev fbmxbone address [MAC ADDY AUSDENKEN]&lt;br /&gt;
 /sbin/ip link set dev fbmxbone backboneup&lt;br /&gt;
 bmx6 dev=fbmxbone&lt;br /&gt;
 bmx6 -c tunDev=Default /tun4Address=[BMXipv4Adresse] /tun6Adress=[BMX6ipv6Adresse]&lt;br /&gt;
 bmx6 -c tunIn=localv4 /n=[DeinLokalesIPv4Netz] /b=100000000&lt;br /&gt;
 bmx6 -c tunIn=localv6 /n=[DeinLokalesIPv6Netz] /b=100000000&lt;br /&gt;
 bmx6 -c tunOut=v4Default /network=0.0.0.0/0 /maxPrefixLen=3 /hysteresis=30 /tableRule=50000/200 &lt;br /&gt;
 #bmx6 -c tunOut=v4Defaultgw06 /network=0.0.0.0/0 /maxPrefixLen=0 /hysteresis=30 /tableRule=50000/200 /gwName=gw06 /rating=1000000&lt;br /&gt;
 bmx6 -c tunOut=v6Default /network=0.0.0.0/0 /maxPrefixLen=64 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
 bmx6 -c tunOut=ffv4 /network=10.0.0.0/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
 bmx6 -c tunOut=ffv6 /network=fd00::/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
Und mittlerweile klar, ausführbar machen:&lt;br /&gt;
 chmod +x on-up&lt;br /&gt;
&lt;br /&gt;
== Routing ==&lt;br /&gt;
&lt;br /&gt;
Wir brauchen policy based routing:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;200 freifunk&amp;quot; &amp;gt;&amp;gt; /etc/iproute2/rt_tables&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
fastd's on-up, /etc/network/interfaces.d/bat0 und/oder tinc-up erledigen den Rest. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IPv4 DHCP ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install isc-dhcp-server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
Nun ändern wir die Konfiguration in /etc/dhcp/dhcpd.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
option domain-name &amp;quot;mesh.kbu.freifunk.net&amp;quot;;&lt;br /&gt;
option domain-name-servers [Supernode IPv4], [INSERT YOUR PREFERRED IPV4 DNS], 213.73.91.35;&lt;br /&gt;
&lt;br /&gt;
default-lease-time 150;&lt;br /&gt;
max-lease-time 720;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
subnet 10.X.X.X netmask Y.Y.Y.Y { # Die Range der Hood&lt;br /&gt;
	range 10.X.Y.10 10.X.Z.255; # Eure IPv4 Range&lt;br /&gt;
	option routers [Supernode IP Adresse];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IPv6 ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install radvd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
interface bat0&lt;br /&gt;
IgnoreIfMissing yes&lt;br /&gt;
{&lt;br /&gt;
 AdvSendAdvert on;&lt;br /&gt;
 MaxRtrAdvInterval 200;&lt;br /&gt;
 prefix [GlobaleIPv6Range des Supernodes] {&lt;br /&gt;
 };&lt;br /&gt;
 RDNSS [ULA IPv6 of Supernode], [your preferred ipv6 DNS-Server] {&lt;br /&gt;
 }; &lt;br /&gt;
 prefix [ULA IPv6Range der Supernode (fd00::/64)] {&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UDP-Queue Größe ==&lt;br /&gt;
Durch Broadcasts können können auf Supernodes kurzzeitig hohe Lastspitzen enstehen. In der aktuellen batman-adv-Version wird jedes Broadcast-Paket zudem 3x auf jedem Link versendet.&lt;br /&gt;
Die vergleichweise hohe Datenrate von 100MBit/s zwischen Supernodes bewirkt darüber hinaus, dass broadcast-Pakete mit 100MBit/s eingehen können, während sie gleichzeitig an alle Nodes gesendet werden müssen.&lt;br /&gt;
&lt;br /&gt;
Linux-Distributionen sehen per Default Queue-Größen im Bereich von 128 KB vor (http://www.cyberciti.biz/faq/linux-tcp-tuning/). Supernodes sind somit nicht in der Lage entsprechende Lastspitzen zu puffern und während Idle-Times zu versenden. Läuft die UDP-Queue über, so loggt fastd:&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
Jeder Log-Eintrag entspricht einem Paket, dass nicht enqueued werden konnte und damit verworfen wurde. Die Queue-Größen können via systctl angepasst werden (http://wwwx.cs.unc.edu/~sparkst/howto/network_tuning.php). Auf fastd2 wird zur Zeit verwendet:&lt;br /&gt;
 #/etc/sysctl.conf&lt;br /&gt;
 net.core.rmem_max=83886080&lt;br /&gt;
 net.core.wmem_max=83886080&lt;br /&gt;
 net.core.rmem_default=83886080&lt;br /&gt;
 net.core.wmem_default=83886080&lt;br /&gt;
&lt;br /&gt;
Das System verfügt dadurch über 80MB Speicher für Queues. Per default stehen ebenfalls 80MB zur Verfügung. Die konfigurierten 80MB reichen aus, um die 100MBit/s Verbindung über mehrere Sekunden auszulasten und Lastspitzen abzufangen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Netz-und-Technik]]&lt;br /&gt;
&lt;br /&gt;
== DNS-&amp;quot;Server&amp;quot; ==&lt;br /&gt;
Supernodes betreiben Caching-DNS-Forwarder. Hierzu wird unbound verwendet&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
 apt install unbound&lt;br /&gt;
&lt;br /&gt;
== Adressen ==&lt;br /&gt;
Das Setup unterscheidet zwischen v4 und v6. &lt;br /&gt;
&lt;br /&gt;
== /etc/unbound/unbound.conf ==&lt;br /&gt;
&lt;br /&gt;
 server:&lt;br /&gt;
        auto-trust-anchor-file: &amp;quot;/var/lib/unbound/root.key&amp;quot;&lt;br /&gt;
        interface: [ULA ipv6 des supernodes]&lt;br /&gt;
        access-control: [public ipv6 Range des Supernodes]  allow&lt;br /&gt;
        access-control: [ULA ipv6 Range des Supernodes] allow&lt;br /&gt;
        interface: [ipv4 des Supernodes]&lt;br /&gt;
        access-control: [IPv4 Range der Hood] allow&lt;br /&gt;
        verbosity: 1&lt;br /&gt;
  forward-zone:&lt;br /&gt;
      name: &amp;quot;.&amp;quot;&lt;br /&gt;
      forward-addr: [your Favorite v4 DNS IP]&lt;br /&gt;
      forward-addr: [your Favorite v6 DNS IP]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DHCP Client Leases in eine RAMdisk flüchtig speichern ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;tmpfs /var/lib/dhcp/ tmpfs defaults,size=10% 0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logrotate auf die letzte Stunde umstellen ==&lt;br /&gt;
&lt;br /&gt;
Mehr braucht es nicht im Betrieb&lt;br /&gt;
&lt;br /&gt;
Hierzu in /etc/logrotate.conf folgendes ändern:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;weekly&amp;quot; in &amp;quot;hourly&amp;quot; ändern&lt;br /&gt;
 &amp;quot;rotate 4&amp;quot; in &amp;quot;rotate 0&amp;quot; ändern&lt;br /&gt;
&lt;br /&gt;
=== cronJob hinzufügen === &lt;br /&gt;
mit crontab -e Editor aufrufen und folgende Zeile hinzufügen:&lt;br /&gt;
 &lt;br /&gt;
 * */1 * * * nice -n 20 logrotate /etc/logrotate.conf&lt;br /&gt;
&lt;br /&gt;
== Interfaces in /etc/network/interfaces.d/bat0 definieren ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto bat0&lt;br /&gt;
iface bat0 inet static&lt;br /&gt;
  hwaddress ether [MACADRESSE AUSDENKEN]&lt;br /&gt;
  address [ipv4 des Supernodes]&lt;br /&gt;
  netmask [Netzmaske der Hood]&lt;br /&gt;
  pre-up  modprobe batman-adv &amp;amp;&amp;amp; tunctl -t mesh-vpn &amp;amp;&amp;amp; batctl if add mesh-vpn&lt;br /&gt;
  post-up ip rule add iif bat0 table freifunk&lt;br /&gt;
  pre-down ip rule del iif bat0 table freifunk&lt;br /&gt;
&lt;br /&gt;
iface bat0 inet6 static&lt;br /&gt;
  address [GLOBAL IPv6 des Supernodes]&lt;br /&gt;
  netmask 64&lt;br /&gt;
  # Routes&lt;br /&gt;
  # Note: route del not needed - shutting down the interfaces removes routes anyway&lt;br /&gt;
  post-up ip -6 route add [IPv6 Range der Supernode] dev bat0&lt;br /&gt;
  post-up ip -6 route add [IPv6 Range der Supernode] dev bat0 table freifunk&lt;br /&gt;
&lt;br /&gt;
  # Rules (iif: routed traffic, from: traffic from the supernode)&lt;br /&gt;
  post-up ip -6 rule add iif bat0 table freifunk&lt;br /&gt;
  post-up ip -6 rule add from [GLOBAL IPv6 Range des Exits] table freifunk&lt;br /&gt;
  pre-down ip -6 rule del iif bat0 table freifunk&lt;br /&gt;
  pre-down ip -6 rule del from [GLOBAL IPv6 Range des Exits] table freifunk&lt;br /&gt;
&lt;br /&gt;
== IP-Tables Firewall ==&lt;br /&gt;
&lt;br /&gt;
Hier wollen wir nur die schlimmsten Routingfuckups verhindern, es soll nichts über z.B. eth0 rausgeforwardet werden können.&lt;br /&gt;
=== Installation ===&lt;br /&gt;
 apt install iptables-persistent&lt;br /&gt;
&lt;br /&gt;
=== Inhalt /etc/iptables/rules.v4 ===&lt;br /&gt;
&lt;br /&gt;
=== Inhalt /etc/iptables/rules.v6 ===&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Supernode&amp;diff=4572</id>
		<title>Supernode</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Supernode&amp;diff=4572"/>
		<updated>2016-05-22T15:43:12Z</updated>

		<summary type="html">&lt;p&gt;Took: /* Installation (fastd) */ path fixed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
[[Kategorie:Infrastruktur]]&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
[[https://en.wikipedia.org/wiki/Supernode_%28networking%29 wikipedia-article]]&lt;br /&gt;
&lt;br /&gt;
Benötigte Software&lt;br /&gt;
&lt;br /&gt;
1) [[https://projects.universe-factory.net/projects/fastd fastd]] Mesh-vpn&lt;br /&gt;
&lt;br /&gt;
2) [[https://bmx6.net/projects/bmx6 bmx6]] BackboneMeshProtokoll&lt;br /&gt;
&lt;br /&gt;
3) [[http://www.open-mesh.org/projects/open-mesh/wiki batman-adv]] ClientMeshProtokoll&lt;br /&gt;
&lt;br /&gt;
4) [[http://www.tinc-vpn.org/ tinc]] Mesh-vpn&lt;br /&gt;
&lt;br /&gt;
5) OS: debian jessie(or whatever you like)&lt;br /&gt;
&lt;br /&gt;
Du benötigst ausserdem: &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* eine private IPv4/IPv6 Adresse und ein Subnetz für die Clients&lt;br /&gt;
* eine IPv4/IPv6 Adresse für das Backbone-Netz&lt;br /&gt;
&lt;br /&gt;
Diese kannst du unter dem Artikel IP Netze selbst zuteilen, oder nachlesen, welches deine sind, wenn es jemand anderes dir schon zuteilte.&lt;br /&gt;
&lt;br /&gt;
(nur bei öffentlichen Supernodes)&lt;br /&gt;
== Vorbereitungen ==&lt;br /&gt;
In der /etc/sysctl.conf muss folgendes mit einem Editor hinzugefügt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
net.ipv4.ip_forward=1&lt;br /&gt;
net.ipv4.ip_no_pmtu_disc=1&lt;br /&gt;
net.ipv4.route.flush=1&lt;br /&gt;
net.ipv6.conf.all.forwarding=1&lt;br /&gt;
net.ipv6.conf.all.autoconf=0&lt;br /&gt;
net.ipv6.conf.all.accept_ra=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach die /etc/sysctl.conf neu einlesen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysctl -p&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für Batman-adv und fastd-Pakete in /etc/apt/apt/sources.list hinzufügen, z.B. so:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;deb http://repo.universe-factory.net/debian/ sid main&amp;quot; &amp;gt;&amp;gt;/etc/apt/sources.list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GPG-Key importieren und apt via https ermöglichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 gpg --keyserver pgpkeys.mit.edu --recv-key  16EF3F64CB201D9C&lt;br /&gt;
 gpg -a --export 16EF3F64CB201D9C | apt-key add -&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-transport-https&lt;br /&gt;
&lt;br /&gt;
 apt-get update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batman-adv (compat14 (Hood Bonn))==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Dies sollte auf debian wheezy batman-adv 2013.4.0 installieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install batman-adv-dkms&lt;br /&gt;
echo &amp;quot;batman-adv&amp;quot; &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== debian jessie ====&lt;br /&gt;
batman 14 aus folgender quelle installieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://repo.universe-factory.net/debian/ sid main&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
dann dkms die richtige version beibringen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dkms remove batman-adv/2013.4.0 --all&lt;br /&gt;
dkms --force install batman-adv/2013.4.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
und mit apt-pinning die richtige version für batctl erzwingen, in /etc/apt/preferences.d/batctl.pref:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Package: batctl&lt;br /&gt;
Pin: origin repo.universe-factory.net&lt;br /&gt;
Pin-Priority: 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
und apt-get install batctl&lt;br /&gt;
&lt;br /&gt;
== Batman-adv (compat15)==&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Update and install:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install git make gcc build-essential linux-headers-$(uname -r) pkg-config libgps-dev libnl-3-dev libjansson-dev fastd&lt;br /&gt;
&lt;br /&gt;
Install Batman, batctl and alfred&lt;br /&gt;
 mkdir /opt/freifunk&lt;br /&gt;
 cd $_&lt;br /&gt;
 &lt;br /&gt;
 git clone git://git.open-mesh.org/batman-adv.git&lt;br /&gt;
 cd batman-adv&lt;br /&gt;
 git checkout v2015.1&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 &lt;br /&gt;
 cd ../&lt;br /&gt;
 &lt;br /&gt;
 git clone http://git.open-mesh.org/batctl.git&lt;br /&gt;
 cd batctl&lt;br /&gt;
 git checkout v2015.1&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Wird künftig nicht mehr benötigt. Wer's trotzdem installieren mag:&lt;br /&gt;
&lt;br /&gt;
 cd ../&lt;br /&gt;
 &lt;br /&gt;
 git clone http://git.open-mesh.org/alfred.git&lt;br /&gt;
 cd alfred&lt;br /&gt;
 git checkout v2014.4.0&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
== fastd ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 apt-get install fastd curl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Add Directories''' &lt;br /&gt;
 mkdir /etc/fastd/mesh-vpn&lt;br /&gt;
 mkdir /etc/fastd/mesh-vpn/peers&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;[YOUR SECRET KEY HERE]&amp;quot; sollte dabei durch den fastd-secret-key ersetzt werden. Den Key müsst ihr selbst erstellen. Dies geht mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
 fastd --generate-key&lt;br /&gt;
&lt;br /&gt;
Schreibt am besten euch public und private key woanders noch auf. Wenn ihr den verliert, können Nodes nicht mehr mit euch connecten, solange diese nicht umkonfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
In /etc/fastd/mesh-vpn/fastd.conf folgendes hinzufügen:&lt;br /&gt;
&lt;br /&gt;
==== /etc/fastd/mesh-vpn/fastd.conf ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Log warnings and errors to stderr&lt;br /&gt;
#log level warn;&lt;br /&gt;
log level error;&lt;br /&gt;
&lt;br /&gt;
drop capabilities yes;&lt;br /&gt;
forward no;&lt;br /&gt;
hide ip addresses yes;&lt;br /&gt;
hide mac addresses yes;&lt;br /&gt;
&lt;br /&gt;
# Log everything to a log file&lt;br /&gt;
#log to &amp;quot;/var/log/fastd-mesh-vpn.log&amp;quot; level debug;&lt;br /&gt;
log to &amp;quot;/var/log/fastd-mesh-vpn.log&amp;quot; level warn;&lt;br /&gt;
&lt;br /&gt;
# Set the interface name&lt;br /&gt;
interface &amp;quot;mesh-vpn&amp;quot;;&lt;br /&gt;
mode &amp;quot;tap&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Support xsalsa20 and aes128 encryption methods, prefer xsalsa20&lt;br /&gt;
method &amp;quot;salsa2012+umac&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Bind to a fixed port, IPv4 only&lt;br /&gt;
bind 0.0.0.0:10000;&lt;br /&gt;
&lt;br /&gt;
mtu 1312;&lt;br /&gt;
pmtu auto;&lt;br /&gt;
secure handshakes yes;&lt;br /&gt;
&lt;br /&gt;
# Secret key generated by 'fastd --generate-key'&lt;br /&gt;
secret &amp;quot;[YOUR SECRET KEY HERE]&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Include peers from the directory 'peers' and set max connections&lt;br /&gt;
&lt;br /&gt;
peer group &amp;quot;backbone&amp;quot; {&lt;br /&gt;
  include peers from &amp;quot;backbone&amp;quot;;&lt;br /&gt;
  peer limit 64;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
on up sync &amp;quot;./on-up&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Allows all peers to connect.&lt;br /&gt;
on verify async &amp;quot;true&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ordnerstruktur anlegen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /etc/fastd/mesh-vpn/backbone&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Optional: Wenn die Node teil einer grösseren Hood werden soll, entsprechende Backbone Node Keys in das zueben erstellte Verzeichnis legen. Vorzuziehen ist aber entweder eine eigene Fastdinstanz oder eine Tinc VPN Verbindung (AES-NI) um sich an eine hood (Layer2 Mesh mit Batman-adv) zu verbinden, dies ist performanter.&lt;br /&gt;
&lt;br /&gt;
Der IP v4-Range bezieht sich auf euren selbst gewählten Bereich, welcher unter https://pad.freifunk.net/p/kbuip dokumentiert ist.&lt;br /&gt;
==== /etc/fastd/mesh-vpn/on-up ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
/sbin/ip link set dev mesh-vpn address [MacAdresseAusdenken]&lt;br /&gt;
/sbin/ip link set dev mesh-vpn up&lt;br /&gt;
&lt;br /&gt;
batctl if add mesh-vpn&lt;br /&gt;
batctl it 10000&lt;br /&gt;
batctl bl 1&lt;br /&gt;
batctl gw_mode server 200MBit/200MBit # anpassen&lt;br /&gt;
&lt;br /&gt;
/sbin/ip rule show | grep 'from 10.0.0.0/8 lookup freifunk'&lt;br /&gt;
if [ $? -eq 1 ]; then&lt;br /&gt;
  /sbin/ip rule add from 10.0.0.0/8 table freifunk&lt;br /&gt;
fi&lt;br /&gt;
/sbin/ip route add [deinelokaleIPv4Range] dev bat0 table freifunk&lt;br /&gt;
/sbin/ip route flush cache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
on-up ausführbar machen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /etc/fastd/mesh-vpn/on-up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== BmxBone Netz ==&lt;br /&gt;
&lt;br /&gt;
Jetzt müsst ihr euch entscheiden, welches VPN Programm ihr für das BmxBone nutzen wollt:&lt;br /&gt;
* wenn ihr eine CPU mit AES-NI habt, oder eine CPU mit deutlich mehr als 1GHz nehmt tinc&lt;br /&gt;
* wenn ihr eine langsame CPU sub 1GHz oder sogar eine ARM CPU, sollte fastd besser sein&lt;br /&gt;
=== Installation mit tinc ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install tinc bridge-utils make build-essential&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wir müssen bmx6 noch kompilieren:&lt;br /&gt;
 git clone https://github.com/axn/bmx6&lt;br /&gt;
 cd bmx6&lt;br /&gt;
 make build_all&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /etc/tinc/tbmxbone&lt;br /&gt;
echo &amp;quot;tbmxbone&amp;quot; &amp;gt;&amp;gt; /etc/tinc/nets.boot  # Dies sagt tinc, dass es das Netz &amp;quot;tbmxbone&amp;quot; starten soll&lt;br /&gt;
cd /etc/tinc/tbmxbone&lt;br /&gt;
# Public keys der anderen Teilnehmer:&lt;br /&gt;
git clone https://gitlab.kbu.freifunk.net/bmxbone/tinc.git keys&lt;br /&gt;
ln -s keys/ hosts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt fehlt noch des eigene Public/Private Keypaar. &amp;lt;br /&amp;gt;&lt;br /&gt;
Die Keys sollten in /etc/tinc/tbmxbone gespeichert werden.&amp;lt;br /&amp;gt;&lt;br /&gt;
Den Public-Key in den Namen des Supernodes umbenennen und nach tinc/ kopieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tincd -K 4096 -n tbmxbone&lt;br /&gt;
cp rsa_key.pub keys/[Supernodename aus tinc Configfile]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und schliesslich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd keys&lt;br /&gt;
git push&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wir müssen noch die Konfiguration von tinc in /etc/tinc/tbmxbone/tinc.conf schreiben.&lt;br /&gt;
&lt;br /&gt;
==== tinc.conf ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Device=/dev/net/tun&lt;br /&gt;
DirectOnly=yes # tinc soll nicht Daten selbst weiterleiten&lt;br /&gt;
IndirectData=yes &lt;br /&gt;
Broadcast=direct&lt;br /&gt;
Cipher=AES-128-CBC # nutzt AES-NI und performed deswegen besser als fastd&lt;br /&gt;
Mode=switch&lt;br /&gt;
PingInterval=60&lt;br /&gt;
PingTimeout=10&lt;br /&gt;
Compression=0 &lt;br /&gt;
ConnectTo=gw06&lt;br /&gt;
ConnectTo=vpn1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== tinc-up ====&lt;br /&gt;
Jetzt müssen wir noch ein Startskript namens /etc/tinc/tbmxbone/tinc-up erstellen:&lt;br /&gt;
'''Wichtig:''' in der datei muss wirklich $INTERFACE stehen. Tinc ersetzt dies automatisch durch das entsprechende interface bei ausführung.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
bmx6 dev=$INTERFACE # VPN Mesh Interface dem BMX6 Mesh hinzufügen&lt;br /&gt;
# Default tunneladressen dem tbmxbone zuweisen&lt;br /&gt;
bmx6 -c tunDev=Default /tun4Address=[BMXipv4Adresse] /tun6Adress=[BMX6ipv6Adresse] &lt;br /&gt;
# Feste Tunnel MTU von 1366 einstellen&lt;br /&gt;
bmx6 -c tunMtu=1366&lt;br /&gt;
# Lokales v4&amp;amp;v6 Netz announcen&lt;br /&gt;
bmx6 -c tunIn=localv4 /n=[DeinLokalesIPv4Netz] /b=100000000&lt;br /&gt;
bmx6 -c tunIn=localv6 /n=[DeinLokalesIPv6Netz] /b=100000000&lt;br /&gt;
# Defaultroute für v4 suchen&lt;br /&gt;
bmx6 -c tunOut=v4Default /network=0.0.0.0/0 /maxPrefixLen=3 /hysteresis=30 /tableRule=50000/200 &lt;br /&gt;
# Gateway für v4 präferieren&lt;br /&gt;
#bmx6 -c tunOut=v4Defaultgw06 /network=0.0.0.0/0 /maxPrefixLen=0 /hysteresis=30 /tableRule=50000/200 /gwName=gw06 /rating=1000000&lt;br /&gt;
# Defaultroute für v6 suchen&lt;br /&gt;
bmx6 -c tunOut=v6Default /network=0.0.0.0/0 /maxPrefixLen=64 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
# Routen für lokale v4 und v6 Netze suchen&lt;br /&gt;
bmx6 -c tunOut=ffv4 /network=10.0.0.0/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
bmx6 -c tunOut=ffv6 /network=fd00::/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch diese Datei muss ausführbar gemacht werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /etc/tinc/backbone/tinc-up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach sollte der Ordner etwa so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$:/etc/tinc/backbone# ls &lt;br /&gt;
tinc&lt;br /&gt;
hosts -&amp;gt; tinc&lt;br /&gt;
rsa_key.priv&lt;br /&gt;
rsa_key.pub&lt;br /&gt;
tinc.conf&lt;br /&gt;
tinc-up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation (fastd) ==&lt;br /&gt;
&lt;br /&gt;
Zuerst müssen wir bmx6 kompilieren:&lt;br /&gt;
 apt-get install build-essential make fastd&lt;br /&gt;
 mkdir /opt/freifunk/bmx6&lt;br /&gt;
 cd /opt/freifunk/bmx6&lt;br /&gt;
 git clone https://github.com/axn/bmx6.git&lt;br /&gt;
 cd bmx6&lt;br /&gt;
 make build_all&lt;br /&gt;
 make install&lt;br /&gt;
 &lt;br /&gt;
Nun bauen wir das FastdInterface:&lt;br /&gt;
&lt;br /&gt;
 mkdir /etc/fastd/fbmxbone&lt;br /&gt;
 cd /etc/fastd/fbmxbone&lt;br /&gt;
 nano fastd.conf&lt;br /&gt;
&lt;br /&gt;
Inhalt der Konfigdatei (ihr müsst euch einen eigenen Key mit fastd --generate-key, wenn ihr nicht für andere erreichbar sein wollt, müsst ihr den Key euch auch nicht merken):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bind 0.0.0.0 port 10042;&lt;br /&gt;
&lt;br /&gt;
drop capabilities yes;&lt;br /&gt;
forward no;&lt;br /&gt;
hide ip addresses yes;&lt;br /&gt;
hide mac addresses yes;&lt;br /&gt;
&lt;br /&gt;
peer group &amp;quot;ffrl&amp;quot; {&lt;br /&gt;
  include peers from &amp;quot;ffrl&amp;quot;;&lt;br /&gt;
  peer limit 1;&lt;br /&gt;
}&lt;br /&gt;
peer group &amp;quot;backbone&amp;quot; {&lt;br /&gt;
  include peers from &amp;quot;backbone&amp;quot;;&lt;br /&gt;
  peer limit 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
interface &amp;quot;fbmxbone&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
log to syslog level warn;&lt;br /&gt;
&lt;br /&gt;
method &amp;quot;salsa2012+umac&amp;quot;;&lt;br /&gt;
mode tap;&lt;br /&gt;
mtu 1406;&lt;br /&gt;
&lt;br /&gt;
on up sync &amp;quot;./on-up&amp;quot;;&lt;br /&gt;
on verify async &amp;quot;true&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
pmtu auto;&lt;br /&gt;
&lt;br /&gt;
secret &amp;quot;PUT IN SIKRIT KEY IN HERE&amp;quot;;&lt;br /&gt;
secure handshakes yes;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt clonen wir aus dem Git-Repo die PublicKeys der Knoten:&lt;br /&gt;
 git clone https://gitlab.kbu.freifunk.net/bmxbone/fastd &lt;br /&gt;
Und kopieren diese noch per Hand in die einzelnen Keyverzeichnisse (verbessern):&lt;br /&gt;
 mkdir ffrl&lt;br /&gt;
 mkdir backbone&lt;br /&gt;
 cp fastd/* backbone/&lt;br /&gt;
 mv backbone/gw06 ffrl/&lt;br /&gt;
Und brauchen noch ein on-up Skript (/etc/fastd/fbmxbone/on-up):&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 /sbin/ip link set dev fbmxbone address [MAC ADDY AUSDENKEN]&lt;br /&gt;
 /sbin/ip link set dev fbmxbone backboneup&lt;br /&gt;
 bmx6 dev=fbmxbone&lt;br /&gt;
 bmx6 -c tunDev=Default /tun4Address=[BMXipv4Adresse] /tun6Adress=[BMX6ipv6Adresse]&lt;br /&gt;
 bmx6 -c tunIn=localv4 /n=[DeinLokalesIPv4Netz] /b=100000000&lt;br /&gt;
 bmx6 -c tunIn=localv6 /n=[DeinLokalesIPv6Netz] /b=100000000&lt;br /&gt;
 bmx6 -c tunOut=v4Default /network=0.0.0.0/0 /maxPrefixLen=3 /hysteresis=30 /tableRule=50000/200 &lt;br /&gt;
 #bmx6 -c tunOut=v4Defaultgw06 /network=0.0.0.0/0 /maxPrefixLen=0 /hysteresis=30 /tableRule=50000/200 /gwName=gw06 /rating=1000000&lt;br /&gt;
 bmx6 -c tunOut=v6Default /network=0.0.0.0/0 /maxPrefixLen=64 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
 bmx6 -c tunOut=ffv4 /network=10.0.0.0/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
 bmx6 -c tunOut=ffv6 /network=fd00::/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
Und mittlerweile klar, ausführbar machen:&lt;br /&gt;
 chmod +x on-up&lt;br /&gt;
&lt;br /&gt;
== Routing ==&lt;br /&gt;
&lt;br /&gt;
Wir brauchen policy based routing:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;200 freifunk&amp;quot; &amp;gt;&amp;gt; /etc/iproute2/rt_tables&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
fastd's on-up, /etc/network/interfaces.d/bat0 und/oder tinc-up erledigen den Rest. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IPv4 DHCP ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install isc-dhcp-server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
Nun ändern wir die Konfiguration in /etc/dhcp/dhcpd.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
option domain-name &amp;quot;mesh.kbu.freifunk.net&amp;quot;;&lt;br /&gt;
option domain-name-servers [Supernode IPv4], [INSERT YOUR PREFERRED IPV4 DNS], 213.73.91.35;&lt;br /&gt;
&lt;br /&gt;
default-lease-time 150;&lt;br /&gt;
max-lease-time 720;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
subnet 10.X.X.X netmask Y.Y.Y.Y { # Die Range der Hood&lt;br /&gt;
	range 10.X.Y.10 10.X.Z.255; # Eure IPv4 Range&lt;br /&gt;
	option routers [Supernode IP Adresse];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IPv6 ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install radvd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
interface bat0&lt;br /&gt;
IgnoreIfMissing yes&lt;br /&gt;
{&lt;br /&gt;
 AdvSendAdvert on;&lt;br /&gt;
 MaxRtrAdvInterval 200;&lt;br /&gt;
 prefix [GlobaleIPv6Range des Supernodes] {&lt;br /&gt;
 };&lt;br /&gt;
 RDNSS [ULA IPv6 of Supernode], [your preferred ipv6 DNS-Server] {&lt;br /&gt;
 }; &lt;br /&gt;
 prefix [ULA IPv6Range der Supernode (fd00::/64)] {&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UDP-Queue Größe ==&lt;br /&gt;
Durch Broadcasts können können auf Supernodes kurzzeitig hohe Lastspitzen enstehen. In der aktuellen batman-adv-Version wird jedes Broadcast-Paket zudem 3x auf jedem Link versendet.&lt;br /&gt;
Die vergleichweise hohe Datenrate von 100MBit/s zwischen Supernodes bewirkt darüber hinaus, dass broadcast-Pakete mit 100MBit/s eingehen können, während sie gleichzeitig an alle Nodes gesendet werden müssen.&lt;br /&gt;
&lt;br /&gt;
Linux-Distributionen sehen per Default Queue-Größen im Bereich von 128 KB vor (http://www.cyberciti.biz/faq/linux-tcp-tuning/). Supernodes sind somit nicht in der Lage entsprechende Lastspitzen zu puffern und während Idle-Times zu versenden. Läuft die UDP-Queue über, so loggt fastd:&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
Jeder Log-Eintrag entspricht einem Paket, dass nicht enqueued werden konnte und damit verworfen wurde. Die Queue-Größen können via systctl angepasst werden (http://wwwx.cs.unc.edu/~sparkst/howto/network_tuning.php). Auf fastd2 wird zur Zeit verwendet:&lt;br /&gt;
 #/etc/sysctl.conf&lt;br /&gt;
 net.core.rmem_max=83886080&lt;br /&gt;
 net.core.wmem_max=83886080&lt;br /&gt;
 net.core.rmem_default=83886080&lt;br /&gt;
 net.core.wmem_default=83886080&lt;br /&gt;
&lt;br /&gt;
Das System verfügt dadurch über 80MB Speicher für Queues. Per default stehen ebenfalls 80MB zur Verfügung. Die konfigurierten 80MB reichen aus, um die 100MBit/s Verbindung über mehrere Sekunden auszulasten und Lastspitzen abzufangen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Netz-und-Technik]]&lt;br /&gt;
&lt;br /&gt;
== DNS-&amp;quot;Server&amp;quot; ==&lt;br /&gt;
Supernodes betreiben Caching-DNS-Forwarder. Hierzu wird unbound verwendet&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
 apt install unbound&lt;br /&gt;
&lt;br /&gt;
== Adressen ==&lt;br /&gt;
Das Setup unterscheidet zwischen v4 und v6. &lt;br /&gt;
&lt;br /&gt;
== /etc/unbound/unbound.conf ==&lt;br /&gt;
&lt;br /&gt;
 server:&lt;br /&gt;
        auto-trust-anchor-file: &amp;quot;/var/lib/unbound/root.key&amp;quot;&lt;br /&gt;
        interface: [ULA ipv6 des supernodes]&lt;br /&gt;
        access-control: [public ipv6 Range des Supernodes]  allow&lt;br /&gt;
        access-control: [ULA ipv6 Range des Supernodes] allow&lt;br /&gt;
        interface: [ipv4 des Supernodes]&lt;br /&gt;
        access-control: [IPv4 Range der Hood] allow&lt;br /&gt;
        verbosity: 1&lt;br /&gt;
  forward-zone:&lt;br /&gt;
      name: &amp;quot;.&amp;quot;&lt;br /&gt;
      forward-addr: [your Favorite v4 DNS IP]&lt;br /&gt;
      forward-addr: [your Favorite v6 DNS IP]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DHCP Client Leases in eine RAMdisk flüchtig speichern ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;tmpfs /var/lib/dhcp/ tmpfs defaults,size=10% 0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logrotate auf die letzte Stunde umstellen ==&lt;br /&gt;
&lt;br /&gt;
Mehr braucht es nicht im Betrieb&lt;br /&gt;
&lt;br /&gt;
Hierzu in /etc/logrotate.conf folgendes ändern:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;weekly&amp;quot; in &amp;quot;hourly&amp;quot; ändern&lt;br /&gt;
 &amp;quot;rotate 4&amp;quot; in &amp;quot;rotate 0&amp;quot; ändern&lt;br /&gt;
&lt;br /&gt;
=== cronJob hinzufügen === &lt;br /&gt;
mit crontab -e Editor aufrufen und folgende Zeile hinzufügen:&lt;br /&gt;
 &lt;br /&gt;
 * */1 * * * nice -n 20 logrotate /etc/logrotate.conf&lt;br /&gt;
&lt;br /&gt;
== Interfaces in /etc/network/interfaces.d/bat0 definieren ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto bat0&lt;br /&gt;
iface bat0 inet static&lt;br /&gt;
  hwaddress ether [MACADRESSE AUSDENKEN]&lt;br /&gt;
  address [ipv4 des Supernodes]&lt;br /&gt;
  netmask [Netzmaske der Hood]&lt;br /&gt;
  pre-up  modprobe batman-adv &amp;amp;&amp;amp; tunctl -t mesh-vpn &amp;amp;&amp;amp; batctl if add mesh-vpn&lt;br /&gt;
  post-up ip rule add iif bat0 table freifunk&lt;br /&gt;
  pre-down ip rule del iif bat0 table freifunk&lt;br /&gt;
&lt;br /&gt;
iface bat0 inet6 static&lt;br /&gt;
  address [GLOBAL IPv6 des Supernodes]&lt;br /&gt;
  netmask 64&lt;br /&gt;
  # Routes&lt;br /&gt;
  # Note: route del not needed - shutting down the interfaces removes routes anyway&lt;br /&gt;
  post-up ip -6 route add [IPv6 Range der Supernode] dev bat0&lt;br /&gt;
  post-up ip -6 route add [IPv6 Range der Supernode] dev bat0 table freifunk&lt;br /&gt;
&lt;br /&gt;
  # Rules (iif: routed traffic, from: traffic from the supernode)&lt;br /&gt;
  post-up ip -6 rule add iif bat0 table freifunk&lt;br /&gt;
  post-up ip -6 rule add from [GLOBAL IPv6 Range des Exits] table freifunk&lt;br /&gt;
  pre-down ip -6 rule del iif bat0 table freifunk&lt;br /&gt;
  pre-down ip -6 rule del from [GLOBAL IPv6 Range des Exits] table freifunk&lt;br /&gt;
&lt;br /&gt;
== IP-Tables Firewall ==&lt;br /&gt;
&lt;br /&gt;
Hier wollen wir nur die schlimmsten Routingfuckups verhindern, es soll nichts über z.B. eth0 rausgeforwardet werden können.&lt;br /&gt;
=== Installation ===&lt;br /&gt;
 apt install iptables-persistent&lt;br /&gt;
&lt;br /&gt;
=== Inhalt /etc/iptables/rules.v4 ===&lt;br /&gt;
&lt;br /&gt;
=== Inhalt /etc/iptables/rules.v6 ===&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Supernode&amp;diff=4570</id>
		<title>Supernode</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Supernode&amp;diff=4570"/>
		<updated>2016-05-22T15:42:09Z</updated>

		<summary type="html">&lt;p&gt;Took: /* Installation (fastd) */ mkdir added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
[[Kategorie:Infrastruktur]]&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
[[https://en.wikipedia.org/wiki/Supernode_%28networking%29 wikipedia-article]]&lt;br /&gt;
&lt;br /&gt;
Benötigte Software&lt;br /&gt;
&lt;br /&gt;
1) [[https://projects.universe-factory.net/projects/fastd fastd]] Mesh-vpn&lt;br /&gt;
&lt;br /&gt;
2) [[https://bmx6.net/projects/bmx6 bmx6]] BackboneMeshProtokoll&lt;br /&gt;
&lt;br /&gt;
3) [[http://www.open-mesh.org/projects/open-mesh/wiki batman-adv]] ClientMeshProtokoll&lt;br /&gt;
&lt;br /&gt;
4) [[http://www.tinc-vpn.org/ tinc]] Mesh-vpn&lt;br /&gt;
&lt;br /&gt;
5) OS: debian jessie(or whatever you like)&lt;br /&gt;
&lt;br /&gt;
Du benötigst ausserdem: &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* eine private IPv4/IPv6 Adresse und ein Subnetz für die Clients&lt;br /&gt;
* eine IPv4/IPv6 Adresse für das Backbone-Netz&lt;br /&gt;
&lt;br /&gt;
Diese kannst du unter dem Artikel IP Netze selbst zuteilen, oder nachlesen, welches deine sind, wenn es jemand anderes dir schon zuteilte.&lt;br /&gt;
&lt;br /&gt;
(nur bei öffentlichen Supernodes)&lt;br /&gt;
== Vorbereitungen ==&lt;br /&gt;
In der /etc/sysctl.conf muss folgendes mit einem Editor hinzugefügt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
net.ipv4.ip_forward=1&lt;br /&gt;
net.ipv4.ip_no_pmtu_disc=1&lt;br /&gt;
net.ipv4.route.flush=1&lt;br /&gt;
net.ipv6.conf.all.forwarding=1&lt;br /&gt;
net.ipv6.conf.all.autoconf=0&lt;br /&gt;
net.ipv6.conf.all.accept_ra=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach die /etc/sysctl.conf neu einlesen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysctl -p&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für Batman-adv und fastd-Pakete in /etc/apt/apt/sources.list hinzufügen, z.B. so:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;deb http://repo.universe-factory.net/debian/ sid main&amp;quot; &amp;gt;&amp;gt;/etc/apt/sources.list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GPG-Key importieren und apt via https ermöglichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 gpg --keyserver pgpkeys.mit.edu --recv-key  16EF3F64CB201D9C&lt;br /&gt;
 gpg -a --export 16EF3F64CB201D9C | apt-key add -&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-transport-https&lt;br /&gt;
&lt;br /&gt;
 apt-get update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batman-adv (compat14 (Hood Bonn))==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Dies sollte auf debian wheezy batman-adv 2013.4.0 installieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install batman-adv-dkms&lt;br /&gt;
echo &amp;quot;batman-adv&amp;quot; &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== debian jessie ====&lt;br /&gt;
batman 14 aus folgender quelle installieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://repo.universe-factory.net/debian/ sid main&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
dann dkms die richtige version beibringen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dkms remove batman-adv/2013.4.0 --all&lt;br /&gt;
dkms --force install batman-adv/2013.4.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
und mit apt-pinning die richtige version für batctl erzwingen, in /etc/apt/preferences.d/batctl.pref:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Package: batctl&lt;br /&gt;
Pin: origin repo.universe-factory.net&lt;br /&gt;
Pin-Priority: 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
und apt-get install batctl&lt;br /&gt;
&lt;br /&gt;
== Batman-adv (compat15)==&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Update and install:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install git make gcc build-essential linux-headers-$(uname -r) pkg-config libgps-dev libnl-3-dev libjansson-dev fastd&lt;br /&gt;
&lt;br /&gt;
Install Batman, batctl and alfred&lt;br /&gt;
 mkdir /opt/freifunk&lt;br /&gt;
 cd $_&lt;br /&gt;
 &lt;br /&gt;
 git clone git://git.open-mesh.org/batman-adv.git&lt;br /&gt;
 cd batman-adv&lt;br /&gt;
 git checkout v2015.1&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 &lt;br /&gt;
 cd ../&lt;br /&gt;
 &lt;br /&gt;
 git clone http://git.open-mesh.org/batctl.git&lt;br /&gt;
 cd batctl&lt;br /&gt;
 git checkout v2015.1&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Wird künftig nicht mehr benötigt. Wer's trotzdem installieren mag:&lt;br /&gt;
&lt;br /&gt;
 cd ../&lt;br /&gt;
 &lt;br /&gt;
 git clone http://git.open-mesh.org/alfred.git&lt;br /&gt;
 cd alfred&lt;br /&gt;
 git checkout v2014.4.0&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
== fastd ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 apt-get install fastd curl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Add Directories''' &lt;br /&gt;
 mkdir /etc/fastd/mesh-vpn&lt;br /&gt;
 mkdir /etc/fastd/mesh-vpn/peers&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;[YOUR SECRET KEY HERE]&amp;quot; sollte dabei durch den fastd-secret-key ersetzt werden. Den Key müsst ihr selbst erstellen. Dies geht mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
 fastd --generate-key&lt;br /&gt;
&lt;br /&gt;
Schreibt am besten euch public und private key woanders noch auf. Wenn ihr den verliert, können Nodes nicht mehr mit euch connecten, solange diese nicht umkonfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
In /etc/fastd/mesh-vpn/fastd.conf folgendes hinzufügen:&lt;br /&gt;
&lt;br /&gt;
==== /etc/fastd/mesh-vpn/fastd.conf ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Log warnings and errors to stderr&lt;br /&gt;
#log level warn;&lt;br /&gt;
log level error;&lt;br /&gt;
&lt;br /&gt;
drop capabilities yes;&lt;br /&gt;
forward no;&lt;br /&gt;
hide ip addresses yes;&lt;br /&gt;
hide mac addresses yes;&lt;br /&gt;
&lt;br /&gt;
# Log everything to a log file&lt;br /&gt;
#log to &amp;quot;/var/log/fastd-mesh-vpn.log&amp;quot; level debug;&lt;br /&gt;
log to &amp;quot;/var/log/fastd-mesh-vpn.log&amp;quot; level warn;&lt;br /&gt;
&lt;br /&gt;
# Set the interface name&lt;br /&gt;
interface &amp;quot;mesh-vpn&amp;quot;;&lt;br /&gt;
mode &amp;quot;tap&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Support xsalsa20 and aes128 encryption methods, prefer xsalsa20&lt;br /&gt;
method &amp;quot;salsa2012+umac&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Bind to a fixed port, IPv4 only&lt;br /&gt;
bind 0.0.0.0:10000;&lt;br /&gt;
&lt;br /&gt;
mtu 1312;&lt;br /&gt;
pmtu auto;&lt;br /&gt;
secure handshakes yes;&lt;br /&gt;
&lt;br /&gt;
# Secret key generated by 'fastd --generate-key'&lt;br /&gt;
secret &amp;quot;[YOUR SECRET KEY HERE]&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Include peers from the directory 'peers' and set max connections&lt;br /&gt;
&lt;br /&gt;
peer group &amp;quot;backbone&amp;quot; {&lt;br /&gt;
  include peers from &amp;quot;backbone&amp;quot;;&lt;br /&gt;
  peer limit 64;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
on up sync &amp;quot;./on-up&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Allows all peers to connect.&lt;br /&gt;
on verify async &amp;quot;true&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ordnerstruktur anlegen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /etc/fastd/mesh-vpn/backbone&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Optional: Wenn die Node teil einer grösseren Hood werden soll, entsprechende Backbone Node Keys in das zueben erstellte Verzeichnis legen. Vorzuziehen ist aber entweder eine eigene Fastdinstanz oder eine Tinc VPN Verbindung (AES-NI) um sich an eine hood (Layer2 Mesh mit Batman-adv) zu verbinden, dies ist performanter.&lt;br /&gt;
&lt;br /&gt;
==== /etc/fastd/mesh-vpn/on-up ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
/sbin/ip link set dev mesh-vpn address [MacAdresseAusdenken]&lt;br /&gt;
/sbin/ip link set dev mesh-vpn up&lt;br /&gt;
&lt;br /&gt;
batctl if add mesh-vpn&lt;br /&gt;
batctl it 10000&lt;br /&gt;
batctl bl 1&lt;br /&gt;
batctl gw_mode server 200MBit/200MBit # anpassen&lt;br /&gt;
&lt;br /&gt;
/sbin/ip rule show | grep 'from 10.0.0.0/8 lookup freifunk'&lt;br /&gt;
if [ $? -eq 1 ]; then&lt;br /&gt;
  /sbin/ip rule add from 10.0.0.0/8 table freifunk&lt;br /&gt;
fi&lt;br /&gt;
/sbin/ip route add [deinelokaleIPv4Range] dev bat0 table freifunk&lt;br /&gt;
/sbin/ip route flush cache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
on-up ausführbar machen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /etc/fastd/mesh-vpn/on-up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== BmxBone Netz ==&lt;br /&gt;
&lt;br /&gt;
Jetzt müsst ihr euch entscheiden, welches VPN Programm ihr für das BmxBone nutzen wollt:&lt;br /&gt;
* wenn ihr eine CPU mit AES-NI habt, oder eine CPU mit deutlich mehr als 1GHz nehmt tinc&lt;br /&gt;
* wenn ihr eine langsame CPU sub 1GHz oder sogar eine ARM CPU, sollte fastd besser sein&lt;br /&gt;
=== Installation mit tinc ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install tinc bridge-utils make build-essential&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wir müssen bmx6 noch kompilieren:&lt;br /&gt;
 git clone https://github.com/axn/bmx6&lt;br /&gt;
 cd bmx6&lt;br /&gt;
 make build_all&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /etc/tinc/tbmxbone&lt;br /&gt;
echo &amp;quot;tbmxbone&amp;quot; &amp;gt;&amp;gt; /etc/tinc/nets.boot  # Dies sagt tinc, dass es das Netz &amp;quot;tbmxbone&amp;quot; starten soll&lt;br /&gt;
cd /etc/tinc/tbmxbone&lt;br /&gt;
# Public keys der anderen Teilnehmer:&lt;br /&gt;
git clone https://gitlab.kbu.freifunk.net/bmxbone/tinc.git keys&lt;br /&gt;
ln -s keys/ hosts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt fehlt noch des eigene Public/Private Keypaar. &amp;lt;br /&amp;gt;&lt;br /&gt;
Die Keys sollten in /etc/tinc/tbmxbone gespeichert werden.&amp;lt;br /&amp;gt;&lt;br /&gt;
Den Public-Key in den Namen des Supernodes umbenennen und nach tinc/ kopieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tincd -K 4096 -n tbmxbone&lt;br /&gt;
cp rsa_key.pub keys/[Supernodename aus tinc Configfile]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und schliesslich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd keys&lt;br /&gt;
git push&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wir müssen noch die Konfiguration von tinc in /etc/tinc/tbmxbone/tinc.conf schreiben.&lt;br /&gt;
&lt;br /&gt;
==== tinc.conf ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Device=/dev/net/tun&lt;br /&gt;
DirectOnly=yes # tinc soll nicht Daten selbst weiterleiten&lt;br /&gt;
IndirectData=yes &lt;br /&gt;
Broadcast=direct&lt;br /&gt;
Cipher=AES-128-CBC # nutzt AES-NI und performed deswegen besser als fastd&lt;br /&gt;
Mode=switch&lt;br /&gt;
PingInterval=60&lt;br /&gt;
PingTimeout=10&lt;br /&gt;
Compression=0 &lt;br /&gt;
ConnectTo=gw06&lt;br /&gt;
ConnectTo=vpn1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== tinc-up ====&lt;br /&gt;
Jetzt müssen wir noch ein Startskript namens /etc/tinc/tbmxbone/tinc-up erstellen:&lt;br /&gt;
'''Wichtig:''' in der datei muss wirklich $INTERFACE stehen. Tinc ersetzt dies automatisch durch das entsprechende interface bei ausführung.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
bmx6 dev=$INTERFACE # VPN Mesh Interface dem BMX6 Mesh hinzufügen&lt;br /&gt;
# Default tunneladressen dem tbmxbone zuweisen&lt;br /&gt;
bmx6 -c tunDev=Default /tun4Address=[BMXipv4Adresse] /tun6Adress=[BMX6ipv6Adresse] &lt;br /&gt;
# Feste Tunnel MTU von 1366 einstellen&lt;br /&gt;
bmx6 -c tunMtu=1366&lt;br /&gt;
# Lokales v4&amp;amp;v6 Netz announcen&lt;br /&gt;
bmx6 -c tunIn=localv4 /n=[DeinLokalesIPv4Netz] /b=100000000&lt;br /&gt;
bmx6 -c tunIn=localv6 /n=[DeinLokalesIPv6Netz] /b=100000000&lt;br /&gt;
# Defaultroute für v4 suchen&lt;br /&gt;
bmx6 -c tunOut=v4Default /network=0.0.0.0/0 /maxPrefixLen=3 /hysteresis=30 /tableRule=50000/200 &lt;br /&gt;
# Gateway für v4 präferieren&lt;br /&gt;
#bmx6 -c tunOut=v4Defaultgw06 /network=0.0.0.0/0 /maxPrefixLen=0 /hysteresis=30 /tableRule=50000/200 /gwName=gw06 /rating=1000000&lt;br /&gt;
# Defaultroute für v6 suchen&lt;br /&gt;
bmx6 -c tunOut=v6Default /network=0.0.0.0/0 /maxPrefixLen=64 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
# Routen für lokale v4 und v6 Netze suchen&lt;br /&gt;
bmx6 -c tunOut=ffv4 /network=10.0.0.0/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
bmx6 -c tunOut=ffv6 /network=fd00::/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch diese Datei muss ausführbar gemacht werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /etc/tinc/backbone/tinc-up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach sollte der Ordner etwa so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$:/etc/tinc/backbone# ls &lt;br /&gt;
tinc&lt;br /&gt;
hosts -&amp;gt; tinc&lt;br /&gt;
rsa_key.priv&lt;br /&gt;
rsa_key.pub&lt;br /&gt;
tinc.conf&lt;br /&gt;
tinc-up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation (fastd) ==&lt;br /&gt;
&lt;br /&gt;
Zuerst müssen wir bmx6 kompilieren:&lt;br /&gt;
 apt-get install build-essential make fastd&lt;br /&gt;
 mkdir /opt/freifunk/fastd&lt;br /&gt;
 cd /opt/freifunk/fastd&lt;br /&gt;
 git clone https://github.com/axn/bmx6.git&lt;br /&gt;
 cd bmx6&lt;br /&gt;
 make build_all&lt;br /&gt;
 make install&lt;br /&gt;
 &lt;br /&gt;
Nun bauen wir das FastdInterface:&lt;br /&gt;
&lt;br /&gt;
 mkdir /etc/fastd/fbmxbone&lt;br /&gt;
 cd /etc/fastd/fbmxbone&lt;br /&gt;
 nano fastd.conf&lt;br /&gt;
&lt;br /&gt;
Inhalt der Konfigdatei (ihr müsst euch einen eigenen Key mit fastd --generate-key, wenn ihr nicht für andere erreichbar sein wollt, müsst ihr den Key euch auch nicht merken):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bind 0.0.0.0 port 10042;&lt;br /&gt;
&lt;br /&gt;
drop capabilities yes;&lt;br /&gt;
forward no;&lt;br /&gt;
hide ip addresses yes;&lt;br /&gt;
hide mac addresses yes;&lt;br /&gt;
&lt;br /&gt;
peer group &amp;quot;ffrl&amp;quot; {&lt;br /&gt;
  include peers from &amp;quot;ffrl&amp;quot;;&lt;br /&gt;
  peer limit 1;&lt;br /&gt;
}&lt;br /&gt;
peer group &amp;quot;backbone&amp;quot; {&lt;br /&gt;
  include peers from &amp;quot;backbone&amp;quot;;&lt;br /&gt;
  peer limit 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
interface &amp;quot;fbmxbone&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
log to syslog level warn;&lt;br /&gt;
&lt;br /&gt;
method &amp;quot;salsa2012+umac&amp;quot;;&lt;br /&gt;
mode tap;&lt;br /&gt;
mtu 1406;&lt;br /&gt;
&lt;br /&gt;
on up sync &amp;quot;./on-up&amp;quot;;&lt;br /&gt;
on verify async &amp;quot;true&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
pmtu auto;&lt;br /&gt;
&lt;br /&gt;
secret &amp;quot;PUT IN SIKRIT KEY IN HERE&amp;quot;;&lt;br /&gt;
secure handshakes yes;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt clonen wir aus dem Git-Repo die PublicKeys der Knoten:&lt;br /&gt;
 git clone https://gitlab.kbu.freifunk.net/bmxbone/fastd &lt;br /&gt;
Und kopieren diese noch per Hand in die einzelnen Keyverzeichnisse (verbessern):&lt;br /&gt;
 mkdir ffrl&lt;br /&gt;
 mkdir backbone&lt;br /&gt;
 cp fastd/* backbone/&lt;br /&gt;
 mv backbone/gw06 ffrl/&lt;br /&gt;
Und brauchen noch ein on-up Skript (/etc/fastd/fbmxbone/on-up):&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 /sbin/ip link set dev fbmxbone address [MAC ADDY AUSDENKEN]&lt;br /&gt;
 /sbin/ip link set dev fbmxbone backboneup&lt;br /&gt;
 bmx6 dev=fbmxbone&lt;br /&gt;
 bmx6 -c tunDev=Default /tun4Address=[BMXipv4Adresse] /tun6Adress=[BMX6ipv6Adresse]&lt;br /&gt;
 bmx6 -c tunIn=localv4 /n=[DeinLokalesIPv4Netz] /b=100000000&lt;br /&gt;
 bmx6 -c tunIn=localv6 /n=[DeinLokalesIPv6Netz] /b=100000000&lt;br /&gt;
 bmx6 -c tunOut=v4Default /network=0.0.0.0/0 /maxPrefixLen=3 /hysteresis=30 /tableRule=50000/200 &lt;br /&gt;
 #bmx6 -c tunOut=v4Defaultgw06 /network=0.0.0.0/0 /maxPrefixLen=0 /hysteresis=30 /tableRule=50000/200 /gwName=gw06 /rating=1000000&lt;br /&gt;
 bmx6 -c tunOut=v6Default /network=0.0.0.0/0 /maxPrefixLen=64 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
 bmx6 -c tunOut=ffv4 /network=10.0.0.0/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
 bmx6 -c tunOut=ffv6 /network=fd00::/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
Und mittlerweile klar, ausführbar machen:&lt;br /&gt;
 chmod +x on-up&lt;br /&gt;
&lt;br /&gt;
== Routing ==&lt;br /&gt;
&lt;br /&gt;
Wir brauchen policy based routing:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;200 freifunk&amp;quot; &amp;gt;&amp;gt; /etc/iproute2/rt_tables&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
fastd's on-up, /etc/network/interfaces.d/bat0 und/oder tinc-up erledigen den Rest. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IPv4 DHCP ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install isc-dhcp-server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
Nun ändern wir die Konfiguration in /etc/dhcp/dhcpd.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
option domain-name &amp;quot;mesh.kbu.freifunk.net&amp;quot;;&lt;br /&gt;
option domain-name-servers [Supernode IPv4], [INSERT YOUR PREFERRED IPV4 DNS], 213.73.91.35;&lt;br /&gt;
&lt;br /&gt;
default-lease-time 150;&lt;br /&gt;
max-lease-time 720;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
subnet 10.X.X.X netmask Y.Y.Y.Y { # Die Range der Hood&lt;br /&gt;
	range 10.X.Y.10 10.X.Z.255; # Eure IPv4 Range&lt;br /&gt;
	option routers [Supernode IP Adresse];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IPv6 ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install radvd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
interface bat0&lt;br /&gt;
IgnoreIfMissing yes&lt;br /&gt;
{&lt;br /&gt;
 AdvSendAdvert on;&lt;br /&gt;
 MaxRtrAdvInterval 200;&lt;br /&gt;
 prefix [GlobaleIPv6Range des Supernodes] {&lt;br /&gt;
 };&lt;br /&gt;
 RDNSS [ULA IPv6 of Supernode], [your preferred ipv6 DNS-Server] {&lt;br /&gt;
 }; &lt;br /&gt;
 prefix [ULA IPv6Range der Supernode (fd00::/64)] {&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UDP-Queue Größe ==&lt;br /&gt;
Durch Broadcasts können können auf Supernodes kurzzeitig hohe Lastspitzen enstehen. In der aktuellen batman-adv-Version wird jedes Broadcast-Paket zudem 3x auf jedem Link versendet.&lt;br /&gt;
Die vergleichweise hohe Datenrate von 100MBit/s zwischen Supernodes bewirkt darüber hinaus, dass broadcast-Pakete mit 100MBit/s eingehen können, während sie gleichzeitig an alle Nodes gesendet werden müssen.&lt;br /&gt;
&lt;br /&gt;
Linux-Distributionen sehen per Default Queue-Größen im Bereich von 128 KB vor (http://www.cyberciti.biz/faq/linux-tcp-tuning/). Supernodes sind somit nicht in der Lage entsprechende Lastspitzen zu puffern und während Idle-Times zu versenden. Läuft die UDP-Queue über, so loggt fastd:&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
Jeder Log-Eintrag entspricht einem Paket, dass nicht enqueued werden konnte und damit verworfen wurde. Die Queue-Größen können via systctl angepasst werden (http://wwwx.cs.unc.edu/~sparkst/howto/network_tuning.php). Auf fastd2 wird zur Zeit verwendet:&lt;br /&gt;
 #/etc/sysctl.conf&lt;br /&gt;
 net.core.rmem_max=83886080&lt;br /&gt;
 net.core.wmem_max=83886080&lt;br /&gt;
 net.core.rmem_default=83886080&lt;br /&gt;
 net.core.wmem_default=83886080&lt;br /&gt;
&lt;br /&gt;
Das System verfügt dadurch über 80MB Speicher für Queues. Per default stehen ebenfalls 80MB zur Verfügung. Die konfigurierten 80MB reichen aus, um die 100MBit/s Verbindung über mehrere Sekunden auszulasten und Lastspitzen abzufangen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Netz-und-Technik]]&lt;br /&gt;
&lt;br /&gt;
== DNS-&amp;quot;Server&amp;quot; ==&lt;br /&gt;
Supernodes betreiben Caching-DNS-Forwarder. Hierzu wird unbound verwendet&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
 apt install unbound&lt;br /&gt;
&lt;br /&gt;
== Adressen ==&lt;br /&gt;
Das Setup unterscheidet zwischen v4 und v6. &lt;br /&gt;
&lt;br /&gt;
== /etc/unbound/unbound.conf ==&lt;br /&gt;
&lt;br /&gt;
 server:&lt;br /&gt;
        auto-trust-anchor-file: &amp;quot;/var/lib/unbound/root.key&amp;quot;&lt;br /&gt;
        interface: [ULA ipv6 des supernodes]&lt;br /&gt;
        access-control: [public ipv6 Range des Supernodes]  allow&lt;br /&gt;
        access-control: [ULA ipv6 Range des Supernodes] allow&lt;br /&gt;
        interface: [ipv4 des Supernodes]&lt;br /&gt;
        access-control: [IPv4 Range der Hood] allow&lt;br /&gt;
        verbosity: 1&lt;br /&gt;
  forward-zone:&lt;br /&gt;
      name: &amp;quot;.&amp;quot;&lt;br /&gt;
      forward-addr: [your Favorite v4 DNS IP]&lt;br /&gt;
      forward-addr: [your Favorite v6 DNS IP]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DHCP Client Leases in eine RAMdisk flüchtig speichern ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;tmpfs /var/lib/dhcp/ tmpfs defaults,size=10% 0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logrotate auf die letzte Stunde umstellen ==&lt;br /&gt;
&lt;br /&gt;
Mehr braucht es nicht im Betrieb&lt;br /&gt;
&lt;br /&gt;
Hierzu in /etc/logrotate.conf folgendes ändern:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;weekly&amp;quot; in &amp;quot;hourly&amp;quot; ändern&lt;br /&gt;
 &amp;quot;rotate 4&amp;quot; in &amp;quot;rotate 0&amp;quot; ändern&lt;br /&gt;
&lt;br /&gt;
=== cronJob hinzufügen === &lt;br /&gt;
mit crontab -e Editor aufrufen und folgende Zeile hinzufügen:&lt;br /&gt;
 &lt;br /&gt;
 * */1 * * * nice -n 20 logrotate /etc/logrotate.conf&lt;br /&gt;
&lt;br /&gt;
== Interfaces in /etc/network/interfaces.d/bat0 definieren ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto bat0&lt;br /&gt;
iface bat0 inet static&lt;br /&gt;
  hwaddress ether [MACADRESSE AUSDENKEN]&lt;br /&gt;
  address [ipv4 des Supernodes]&lt;br /&gt;
  netmask [Netzmaske der Hood]&lt;br /&gt;
  pre-up  modprobe batman-adv &amp;amp;&amp;amp; tunctl -t mesh-vpn &amp;amp;&amp;amp; batctl if add mesh-vpn&lt;br /&gt;
  post-up ip rule add iif bat0 table freifunk&lt;br /&gt;
  pre-down ip rule del iif bat0 table freifunk&lt;br /&gt;
&lt;br /&gt;
iface bat0 inet6 static&lt;br /&gt;
  address [GLOBAL IPv6 des Supernodes]&lt;br /&gt;
  netmask 64&lt;br /&gt;
  # Routes&lt;br /&gt;
  # Note: route del not needed - shutting down the interfaces removes routes anyway&lt;br /&gt;
  post-up ip -6 route add [IPv6 Range der Supernode] dev bat0&lt;br /&gt;
  post-up ip -6 route add [IPv6 Range der Supernode] dev bat0 table freifunk&lt;br /&gt;
&lt;br /&gt;
  # Rules (iif: routed traffic, from: traffic from the supernode)&lt;br /&gt;
  post-up ip -6 rule add iif bat0 table freifunk&lt;br /&gt;
  post-up ip -6 rule add from [GLOBAL IPv6 Range des Exits] table freifunk&lt;br /&gt;
  pre-down ip -6 rule del iif bat0 table freifunk&lt;br /&gt;
  pre-down ip -6 rule del from [GLOBAL IPv6 Range des Exits] table freifunk&lt;br /&gt;
&lt;br /&gt;
== IP-Tables Firewall ==&lt;br /&gt;
&lt;br /&gt;
Hier wollen wir nur die schlimmsten Routingfuckups verhindern, es soll nichts über z.B. eth0 rausgeforwardet werden können.&lt;br /&gt;
=== Installation ===&lt;br /&gt;
 apt install iptables-persistent&lt;br /&gt;
&lt;br /&gt;
=== Inhalt /etc/iptables/rules.v4 ===&lt;br /&gt;
&lt;br /&gt;
=== Inhalt /etc/iptables/rules.v6 ===&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Supernode&amp;diff=4555</id>
		<title>Supernode</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Supernode&amp;diff=4555"/>
		<updated>2016-05-22T15:03:02Z</updated>

		<summary type="html">&lt;p&gt;Took: /* on-up */ path added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
[[Kategorie:Infrastruktur]]&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
[[https://en.wikipedia.org/wiki/Supernode_%28networking%29 wikipedia-article]]&lt;br /&gt;
&lt;br /&gt;
Benötigte Software&lt;br /&gt;
&lt;br /&gt;
1) [[https://projects.universe-factory.net/projects/fastd fastd]] Mesh-vpn&lt;br /&gt;
&lt;br /&gt;
2) [[https://bmx6.net/projects/bmx6 bmx6]] BackboneMeshProtokoll&lt;br /&gt;
&lt;br /&gt;
3) [[http://www.open-mesh.org/projects/open-mesh/wiki batman-adv]] ClientMeshProtokoll&lt;br /&gt;
&lt;br /&gt;
4) [[http://www.tinc-vpn.org/ tinc]] Mesh-vpn&lt;br /&gt;
&lt;br /&gt;
5) OS: debian jessie(or whatever you like)&lt;br /&gt;
&lt;br /&gt;
Du benötigst ausserdem: &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* eine private IPv4/IPv6 Adresse und ein Subnetz für die Clients&lt;br /&gt;
* eine IPv4/IPv6 Adresse für das Backbone-Netz&lt;br /&gt;
&lt;br /&gt;
Diese kannst du unter dem Artikel IP Netze selbst zuteilen, oder nachlesen, welches deine sind, wenn es jemand anderes dir schon zuteilte.&lt;br /&gt;
&lt;br /&gt;
(nur bei öffentlichen Supernodes)&lt;br /&gt;
== Vorbereitungen ==&lt;br /&gt;
In der /etc/sysctl.conf muss folgendes mit einem Editor hinzugefügt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
net.ipv4.ip_forward=1&lt;br /&gt;
net.ipv4.ip_no_pmtu_disc=1&lt;br /&gt;
net.ipv4.route.flush=1&lt;br /&gt;
net.ipv6.conf.all.forwarding=1&lt;br /&gt;
net.ipv6.conf.all.autoconf=0&lt;br /&gt;
net.ipv6.conf.all.accept_ra=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach die /etc/sysctl.conf neu einlesen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysctl -p&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für Batman-adv und fastd-Pakete in /etc/apt/apt/sources.list hinzufügen, z.B. so:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;deb http://repo.universe-factory.net/debian/ sid main&amp;quot; &amp;gt;&amp;gt;/etc/apt/sources.list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GPG-Key importieren und apt via https ermöglichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 gpg --keyserver pgpkeys.mit.edu --recv-key  16EF3F64CB201D9C&lt;br /&gt;
 gpg -a --export 16EF3F64CB201D9C | apt-key add -&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-transport-https&lt;br /&gt;
&lt;br /&gt;
 apt-get update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batman-adv (compat14 (Hood Bonn))==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Dies sollte auf debian wheezy batman-adv 2013.4.0 installieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install batman-adv-dkms&lt;br /&gt;
echo &amp;quot;batman-adv&amp;quot; &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== debian jessie ====&lt;br /&gt;
batman 14 aus folgender quelle installieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://repo.universe-factory.net/debian/ sid main&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
dann dkms die richtige version beibringen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dkms remove batman-adv/2013.4.0 --all&lt;br /&gt;
dkms --force install batman-adv/2013.4.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
und mit apt-pinning die richtige version für batctl erzwingen, in /etc/apt/preferences.d/batctl.pref:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Package: batctl&lt;br /&gt;
Pin: origin repo.universe-factory.net&lt;br /&gt;
Pin-Priority: 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
und apt-get install batctl&lt;br /&gt;
&lt;br /&gt;
== Batman-adv (compat15)==&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Update and install:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install git make gcc build-essential linux-headers-$(uname -r) pkg-config libgps-dev libnl-3-dev libjansson-dev fastd&lt;br /&gt;
&lt;br /&gt;
Install Batman, batctl and alfred&lt;br /&gt;
 mkdir /opt/freifunk&lt;br /&gt;
 cd $_&lt;br /&gt;
 &lt;br /&gt;
 git clone git://git.open-mesh.org/batman-adv.git&lt;br /&gt;
 cd batman-adv&lt;br /&gt;
 git checkout v2015.1&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 &lt;br /&gt;
 cd ../&lt;br /&gt;
 &lt;br /&gt;
 git clone http://git.open-mesh.org/batctl.git&lt;br /&gt;
 cd batctl&lt;br /&gt;
 git checkout v2015.1&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Wird künftig nicht mehr benötigt. Wer's trotzdem installieren mag:&lt;br /&gt;
&lt;br /&gt;
 cd ../&lt;br /&gt;
 &lt;br /&gt;
 git clone http://git.open-mesh.org/alfred.git&lt;br /&gt;
 cd alfred&lt;br /&gt;
 git checkout v2014.4.0&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
== fastd ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 apt-get install fastd curl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Add Directories''' &lt;br /&gt;
 mkdir /etc/fastd/mesh-vpn&lt;br /&gt;
 mkdir /etc/fastd/mesh-vpn/peers&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;[YOUR SECRET KEY HERE]&amp;quot; sollte dabei durch den fastd-secret-key ersetzt werden. Den Key müsst ihr selbst erstellen. Dies geht mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
 fastd --generate-key&lt;br /&gt;
&lt;br /&gt;
Schreibt am besten euch public und private key woanders noch auf. Wenn ihr den verliert, können Nodes nicht mehr mit euch connecten, solange diese nicht umkonfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
In /etc/fastd/mesh-vpn/fastd.conf folgendes hinzufügen:&lt;br /&gt;
&lt;br /&gt;
==== /etc/fastd/mesh-vpn/fastd.conf ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Log warnings and errors to stderr&lt;br /&gt;
#log level warn;&lt;br /&gt;
log level error;&lt;br /&gt;
&lt;br /&gt;
drop capabilities yes;&lt;br /&gt;
forward no;&lt;br /&gt;
hide ip addresses yes;&lt;br /&gt;
hide mac addresses yes;&lt;br /&gt;
&lt;br /&gt;
# Log everything to a log file&lt;br /&gt;
#log to &amp;quot;/var/log/fastd-mesh-vpn.log&amp;quot; level debug;&lt;br /&gt;
log to &amp;quot;/var/log/fastd-mesh-vpn.log&amp;quot; level warn;&lt;br /&gt;
&lt;br /&gt;
# Set the interface name&lt;br /&gt;
interface &amp;quot;mesh-vpn&amp;quot;;&lt;br /&gt;
mode &amp;quot;tap&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Support xsalsa20 and aes128 encryption methods, prefer xsalsa20&lt;br /&gt;
method &amp;quot;salsa2012+umac&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Bind to a fixed port, IPv4 only&lt;br /&gt;
bind 0.0.0.0:10000;&lt;br /&gt;
&lt;br /&gt;
mtu 1312;&lt;br /&gt;
pmtu auto;&lt;br /&gt;
secure handshakes yes;&lt;br /&gt;
&lt;br /&gt;
# Secret key generated by 'fastd --generate-key'&lt;br /&gt;
secret &amp;quot;[YOUR SECRET KEY HERE]&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Include peers from the directory 'peers' and set max connections&lt;br /&gt;
&lt;br /&gt;
peer group &amp;quot;backbone&amp;quot; {&lt;br /&gt;
  include peers from &amp;quot;backbone&amp;quot;;&lt;br /&gt;
  peer limit 64;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
on up sync &amp;quot;./on-up&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Allows all peers to connect.&lt;br /&gt;
on verify async &amp;quot;true&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ordnerstruktur anlegen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /etc/fastd/mesh-vpn/backbone&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Optional: Wenn die Node teil einer grösseren Hood werden soll, entsprechende Backbone Node Keys in das zueben erstellte Verzeichnis legen. Vorzuziehen ist aber entweder eine eigene Fastdinstanz oder eine Tinc VPN Verbindung (AES-NI) um sich an eine hood (Layer2 Mesh mit Batman-adv) zu verbinden, dies ist performanter.&lt;br /&gt;
&lt;br /&gt;
==== /etc/fastd/mesh-vpn/on-up ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#/bin/sh&lt;br /&gt;
/sbin/ip link set dev mesh-vpn address [MacAdresseAusdenken]&lt;br /&gt;
/sbin/ip link set dev mesh-vpn up&lt;br /&gt;
&lt;br /&gt;
/usr/sbin/batctl if add mesh-vpn&lt;br /&gt;
/usr/sbin/batctl it 10000&lt;br /&gt;
/usr/sbin/batctl bl 1&lt;br /&gt;
/usr/sbin/batctl gw_mode server 200MBit/200MBit # anpassen&lt;br /&gt;
&lt;br /&gt;
/sbin/ip rule show | grep 'from 10.0.0.0/8 lookup freifunk'&lt;br /&gt;
if [ $? -eq 1 ]; then&lt;br /&gt;
  /sbin/ip rule add from 10.0.0.0/8 table freifunk&lt;br /&gt;
fi&lt;br /&gt;
/sbin/ip route add [deinelokaleIPv4Range] dev bat0 table freifunk&lt;br /&gt;
/sbin/ip route flush cache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
on-up ausführbar machen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /etc/fastd/mesh-vpn/on-up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== BmxBone Netz ==&lt;br /&gt;
&lt;br /&gt;
Jetzt müsst ihr euch entscheiden, welches VPN Programm ihr für das BmxBone nutzen wollt:&lt;br /&gt;
* wenn ihr eine CPU mit AES-NI habt, oder eine CPU mit deutlich mehr als 1GHz nehmt tinc&lt;br /&gt;
* wenn ihr eine langsame CPU sub 1GHz oder sogar eine ARM CPU, sollte fastd besser sein&lt;br /&gt;
=== Installation mit tinc ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install tinc bridge-utils make build-essential&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wir müssen bmx6 noch kompilieren:&lt;br /&gt;
 git clone https://github.com/axn/bmx6&lt;br /&gt;
 cd bmx6&lt;br /&gt;
 make build_all&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /etc/tinc/tbmxbone&lt;br /&gt;
echo &amp;quot;tbmxbone&amp;quot; &amp;gt;&amp;gt; /etc/tinc/nets.boot  # Dies sagt tinc, dass es das Netz &amp;quot;tbmxbone&amp;quot; starten soll&lt;br /&gt;
cd /etc/tinc/tbmxbone&lt;br /&gt;
# Public keys der anderen Teilnehmer:&lt;br /&gt;
git clone https://gitlab.kbu.freifunk.net/bmxbone/tinc keys&lt;br /&gt;
ln -s keys/ hosts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt fehlt noch des eigene Public/Private Keypaar. &amp;lt;br /&amp;gt;&lt;br /&gt;
Die Keys sollten in /etc/tinc/tbmxbone gespeichert werden.&amp;lt;br /&amp;gt;&lt;br /&gt;
Den Public-Key in den Namen des Supernodes umbenennen und nach tinc/ kopieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tincd -K 4096 -n tbmxbone&lt;br /&gt;
cp rsa_key.pub keys/[Supernodename aus tinc Configfile]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und schliesslich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd keys&lt;br /&gt;
git push&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wir müssen noch die Konfiguration von tinc in /etc/tinc/tbmxbone/tinc.conf schreiben.&lt;br /&gt;
&lt;br /&gt;
==== tinc.conf ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Device=/dev/net/tun&lt;br /&gt;
DirectOnly=yes # tinc soll nicht Daten selbst weiterleiten&lt;br /&gt;
IndirectData=yes &lt;br /&gt;
Broadcast=direct&lt;br /&gt;
Cipher=AES-128-CBC # nutzt AES-NI und performed deswegen besser als fastd&lt;br /&gt;
Mode=switch&lt;br /&gt;
PingInterval=60&lt;br /&gt;
PingTimeout=10&lt;br /&gt;
Compression=0 &lt;br /&gt;
ConnectTo=gw06&lt;br /&gt;
ConnectTo=vpn1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== tinc-up ====&lt;br /&gt;
Jetzt müssen wir noch ein Startskript namens /etc/tinc/tbmxbone/tinc-up erstellen:&lt;br /&gt;
'''Wichtig:''' in der datei muss wirklich $INTERFACE stehen. Tinc ersetzt dies automatisch durch das entsprechende interface bei ausführung.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
bmx6 dev=$INTERFACE # VPN Mesh Interface dem BMX6 Mesh hinzufügen&lt;br /&gt;
# Default tunneladressen dem tbmxbone zuweisen&lt;br /&gt;
bmx6 -c tunDev=Default /tun4Address=[BMXipv4Adresse] /tun6Adress=[BMX6ipv6Adresse] &lt;br /&gt;
# Feste Tunnel MTU von 1366 einstellen&lt;br /&gt;
bmx6 -c tunMtu=1366&lt;br /&gt;
# Lokales v4&amp;amp;v6 Netz announcen&lt;br /&gt;
bmx6 -c tunIn=localv4 /n=[DeinLokalesIPv4Netz] /b=100000000&lt;br /&gt;
bmx6 -c tunIn=localv6 /n=[DeinLokalesIPv6Netz] /b=100000000&lt;br /&gt;
# Defaultroute für v4 suchen&lt;br /&gt;
bmx6 -c tunOut=v4Default /network=0.0.0.0/0 /maxPrefixLen=3 /hysteresis=30 /tableRule=50000/200 &lt;br /&gt;
# Gateway für v4 präferieren&lt;br /&gt;
#bmx6 -c tunOut=v4Defaultgw06 /network=0.0.0.0/0 /maxPrefixLen=0 /hysteresis=30 /tableRule=50000/200 /gwName=gw06 /rating=1000000&lt;br /&gt;
# Defaultroute für v6 suchen&lt;br /&gt;
bmx6 -c tunOut=v6Default /network=0.0.0.0/0 /maxPrefixLen=64 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
# Routen für lokale v4 und v6 Netze suchen&lt;br /&gt;
bmx6 -c tunOut=ffv4 /network=10.0.0.0/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
bmx6 -c tunOut=ffv6 /network=fd00::/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch diese Datei muss ausführbar gemacht werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /etc/tinc/backbone/tinc-up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach sollte der Ordner etwa so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$:/etc/tinc/backbone# ls &lt;br /&gt;
tinc&lt;br /&gt;
hosts -&amp;gt; tinc&lt;br /&gt;
rsa_key.priv&lt;br /&gt;
rsa_key.pub&lt;br /&gt;
tinc.conf&lt;br /&gt;
tinc-up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation (fastd) ==&lt;br /&gt;
&lt;br /&gt;
Zuerst müssen wir bmx6 kompilieren:&lt;br /&gt;
 apt-get install build-essential make fastd&lt;br /&gt;
 git clone https://github.com/axn/bmx6&lt;br /&gt;
 cd bmx6&lt;br /&gt;
 make build_all&lt;br /&gt;
 make install&lt;br /&gt;
 &lt;br /&gt;
Nun bauen wir das FastdInterface:&lt;br /&gt;
&lt;br /&gt;
 mkdir /etc/fastd/fbmxbone&lt;br /&gt;
 cd /etc/fastd/fbmxbone&lt;br /&gt;
 nano fastd.conf&lt;br /&gt;
&lt;br /&gt;
Inhalt der Konfigdatei (ihr müsst euch einen eigenen Key mit fastd --generate-key, wenn ihr nicht für andere erreichbar sein wollt, müsst ihr den Key euch auch nicht merken):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bind 0.0.0.0 port 10042;&lt;br /&gt;
&lt;br /&gt;
drop capabilities yes;&lt;br /&gt;
forward no;&lt;br /&gt;
hide ip addresses yes;&lt;br /&gt;
hide mac addresses yes;&lt;br /&gt;
&lt;br /&gt;
peer group &amp;quot;ffrl&amp;quot; {&lt;br /&gt;
  include peers from &amp;quot;ffrl&amp;quot;;&lt;br /&gt;
  peer limit 1;&lt;br /&gt;
}&lt;br /&gt;
peer group &amp;quot;backbone&amp;quot; {&lt;br /&gt;
  include peers from &amp;quot;backbone&amp;quot;;&lt;br /&gt;
  peer limit 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
interface &amp;quot;fbmxbone&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
log to syslog level warn;&lt;br /&gt;
&lt;br /&gt;
method &amp;quot;salsa2012+umac&amp;quot;;&lt;br /&gt;
mode tap;&lt;br /&gt;
mtu 1406;&lt;br /&gt;
&lt;br /&gt;
on up sync &amp;quot;./on-up&amp;quot;;&lt;br /&gt;
on verify async &amp;quot;true&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
pmtu auto;&lt;br /&gt;
&lt;br /&gt;
secret &amp;quot;PUT IN SIKRIT KEY IN HERE&amp;quot;;&lt;br /&gt;
secure handshakes yes;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt clonen wir aus dem Git-Repo die PublicKeys der Knoten:&lt;br /&gt;
 git clone https://gitlab.kbu.freifunk.net/bmxbone/fastd &lt;br /&gt;
Und kopieren diese noch per Hand in die einzelnen Keyverzeichnisse (verbessern):&lt;br /&gt;
 mkdir ffrl&lt;br /&gt;
 mkdir backbone&lt;br /&gt;
 cp fastd/* backbone/&lt;br /&gt;
 mv backbone/gw06 ffrl/&lt;br /&gt;
Und brauchen noch ein on-up Skript (/etc/fastd/fbmxbone/on-up):&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 /sbin/ip link set dev fbmxbone address [MAC ADDY AUSDENKEN]&lt;br /&gt;
 /sbin/ip link set dev fbmxbone backboneup&lt;br /&gt;
 bmx6 dev=fbmxbone&lt;br /&gt;
 bmx6 -c tunDev=Default /tun4Address=[BMXipv4Adresse] /tun6Adress=[BMX6ipv6Adresse]&lt;br /&gt;
 bmx6 -c tunIn=localv4 /n=[DeinLokalesIPv4Netz] /b=100000000&lt;br /&gt;
 bmx6 -c tunIn=localv6 /n=[DeinLokalesIPv6Netz] /b=100000000&lt;br /&gt;
 bmx6 -c tunOut=v4Default /network=0.0.0.0/0 /maxPrefixLen=3 /hysteresis=30 /tableRule=50000/200 &lt;br /&gt;
 #bmx6 -c tunOut=v4Defaultgw06 /network=0.0.0.0/0 /maxPrefixLen=0 /hysteresis=30 /tableRule=50000/200 /gwName=gw06 /rating=1000000&lt;br /&gt;
 bmx6 -c tunOut=v6Default /network=0.0.0.0/0 /maxPrefixLen=64 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
 bmx6 -c tunOut=ffv4 /network=10.0.0.0/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
 bmx6 -c tunOut=ffv6 /network=fd00::/8 /hysteresis=30 /tableRule=50000/200&lt;br /&gt;
Und mittlerweile klar, ausführbar machen:&lt;br /&gt;
 chmod +x on-up&lt;br /&gt;
&lt;br /&gt;
== Routing ==&lt;br /&gt;
&lt;br /&gt;
Wir brauchen policy based routing:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;200 freifunk&amp;quot; &amp;gt;&amp;gt; /etc/iproute2/rt_tables&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
fastd's on-up, /etc/network/interfaces.d/bat0 und/oder tinc-up erledigen den Rest. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IPv4 DHCP ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install isc-dhcp-server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
Nun ändern wir die Konfiguration in /etc/dhcp/dhcpd.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
option domain-name &amp;quot;mesh.kbu.freifunk.net&amp;quot;;&lt;br /&gt;
option domain-name-servers [Supernode IPv4], [INSERT YOUR PREFERRED IPV4 DNS], 213.73.91.35;&lt;br /&gt;
&lt;br /&gt;
default-lease-time 150;&lt;br /&gt;
max-lease-time 720;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
subnet 10.X.X.X netmask Y.Y.Y.Y { # Die Range der Hood&lt;br /&gt;
	range 10.X.Y.10 10.X.Z.255; # Eure IPv4 Range&lt;br /&gt;
	option routers [Supernode IP Adresse];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IPv6 ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install radvd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
interface bat0&lt;br /&gt;
IgnoreIfMissing yes&lt;br /&gt;
{&lt;br /&gt;
 AdvSendAdvert on;&lt;br /&gt;
 MaxRtrAdvInterval 200;&lt;br /&gt;
 prefix [GlobaleIPv6Range des Supernodes] {&lt;br /&gt;
 };&lt;br /&gt;
 RDNSS [ULA IPv6 of Supernode], [your preferred ipv6 DNS-Server] {&lt;br /&gt;
 }; &lt;br /&gt;
 prefix [ULA IPv6Range der Supernode (fd00::/64)] {&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UDP-Queue Größe ==&lt;br /&gt;
Durch Broadcasts können können auf Supernodes kurzzeitig hohe Lastspitzen enstehen. In der aktuellen batman-adv-Version wird jedes Broadcast-Paket zudem 3x auf jedem Link versendet.&lt;br /&gt;
Die vergleichweise hohe Datenrate von 100MBit/s zwischen Supernodes bewirkt darüber hinaus, dass broadcast-Pakete mit 100MBit/s eingehen können, während sie gleichzeitig an alle Nodes gesendet werden müssen.&lt;br /&gt;
&lt;br /&gt;
Linux-Distributionen sehen per Default Queue-Größen im Bereich von 128 KB vor (http://www.cyberciti.biz/faq/linux-tcp-tuning/). Supernodes sind somit nicht in der Lage entsprechende Lastspitzen zu puffern und während Idle-Times zu versenden. Läuft die UDP-Queue über, so loggt fastd:&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
 2013-03-30 12:32:01 +0100 --- Warning: sendmsg: Resource temporarily unavailable&lt;br /&gt;
Jeder Log-Eintrag entspricht einem Paket, dass nicht enqueued werden konnte und damit verworfen wurde. Die Queue-Größen können via systctl angepasst werden (http://wwwx.cs.unc.edu/~sparkst/howto/network_tuning.php). Auf fastd2 wird zur Zeit verwendet:&lt;br /&gt;
 #/etc/sysctl.conf&lt;br /&gt;
 net.core.rmem_max=83886080&lt;br /&gt;
 net.core.wmem_max=83886080&lt;br /&gt;
 net.core.rmem_default=83886080&lt;br /&gt;
 net.core.wmem_default=83886080&lt;br /&gt;
&lt;br /&gt;
Das System verfügt dadurch über 80MB Speicher für Queues. Per default stehen ebenfalls 80MB zur Verfügung. Die konfigurierten 80MB reichen aus, um die 100MBit/s Verbindung über mehrere Sekunden auszulasten und Lastspitzen abzufangen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Netz-und-Technik]]&lt;br /&gt;
&lt;br /&gt;
== DNS-&amp;quot;Server&amp;quot; ==&lt;br /&gt;
Supernodes betreiben Caching-DNS-Forwarder. Hierzu wird unbound verwendet&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
 apt install unbound&lt;br /&gt;
&lt;br /&gt;
== Adressen ==&lt;br /&gt;
Das Setup unterscheidet zwischen v4 und v6. &lt;br /&gt;
&lt;br /&gt;
== /etc/unbound/unbound.conf ==&lt;br /&gt;
&lt;br /&gt;
 server:&lt;br /&gt;
        auto-trust-anchor-file: &amp;quot;/var/lib/unbound/root.key&amp;quot;&lt;br /&gt;
        interface: [ULA ipv6 des supernodes]&lt;br /&gt;
        access-control: [public ipv6 Range des Supernodes]  allow&lt;br /&gt;
        access-control: [ULA ipv6 Range des Supernodes] allow&lt;br /&gt;
        interface: [ipv4 des Supernodes]&lt;br /&gt;
        access-control: [IPv4 Range der Hood] allow&lt;br /&gt;
        verbosity: 1&lt;br /&gt;
  forward-zone:&lt;br /&gt;
      name: &amp;quot;.&amp;quot;&lt;br /&gt;
      forward-addr: [your Favorite v4 DNS IP]&lt;br /&gt;
      forward-addr: [your Favorite v6 DNS IP]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DHCP Client Leases in eine RAMdisk flüchtig speichern ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;tmpfs /var/lib/dhcp/ tmpfs defaults,size=10% 0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logrotate auf die letzte Stunde umstellen ==&lt;br /&gt;
&lt;br /&gt;
Mehr braucht es nicht im Betrieb&lt;br /&gt;
&lt;br /&gt;
Hierzu in /etc/logrotate.conf folgendes ändern:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;weekly&amp;quot; in &amp;quot;hourly&amp;quot; ändern&lt;br /&gt;
 &amp;quot;rotate 4&amp;quot; in &amp;quot;rotate 0&amp;quot; ändern&lt;br /&gt;
&lt;br /&gt;
=== cronJob hinzufügen === &lt;br /&gt;
mit crontab -e Editor aufrufen und folgende Zeile hinzufügen:&lt;br /&gt;
 &lt;br /&gt;
 * */1 * * * nice -n 20 logrotate /etc/logrotate.conf&lt;br /&gt;
&lt;br /&gt;
== Interfaces in /etc/network/interfaces.d/bat0 definieren ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto bat0&lt;br /&gt;
iface bat0 inet static&lt;br /&gt;
  hwaddress ether [MACADRESSE AUSDENKEN]&lt;br /&gt;
  address [ipv4 des Supernodes]&lt;br /&gt;
  netmask [Netzmaske der Hood]&lt;br /&gt;
  pre-up  modprobe batman-adv &amp;amp;&amp;amp; tunctl -t mesh-vpn &amp;amp;&amp;amp; batctl if add mesh-vpn&lt;br /&gt;
  post-up ip rule add iif bat0 table freifunk&lt;br /&gt;
  pre-down ip rule del iif bat0 table freifunk&lt;br /&gt;
&lt;br /&gt;
iface bat0 inet6 static&lt;br /&gt;
  address [GLOBAL IPv6 des Supernodes]&lt;br /&gt;
  netmask 64&lt;br /&gt;
  # Routes&lt;br /&gt;
  # Note: route del not needed - shutting down the interfaces removes routes anyway&lt;br /&gt;
  post-up ip -6 route add [IPv6 Range der Supernode] dev bat0&lt;br /&gt;
  post-up ip -6 route add [IPv6 Range der Supernode] dev bat0 table freifunk&lt;br /&gt;
&lt;br /&gt;
  # Rules (iif: routed traffic, from: traffic from the supernode)&lt;br /&gt;
  post-up ip -6 rule add iif bat0 table freifunk&lt;br /&gt;
  post-up ip -6 rule add from [GLOBAL IPv6 Range des Exits] table freifunk&lt;br /&gt;
  pre-down ip -6 rule del iif bat0 table freifunk&lt;br /&gt;
  pre-down ip -6 rule del from [GLOBAL IPv6 Range des Exits] table freifunk&lt;br /&gt;
&lt;br /&gt;
== IP-Tables Firewall ==&lt;br /&gt;
&lt;br /&gt;
Hier wollen wir nur die schlimmsten Routingfuckups verhindern, es soll nichts über z.B. eth0 rausgeforwardet werden können.&lt;br /&gt;
=== Installation ===&lt;br /&gt;
 apt install iptables-persistent&lt;br /&gt;
&lt;br /&gt;
=== Inhalt /etc/iptables/rules.v4 ===&lt;br /&gt;
&lt;br /&gt;
=== Inhalt /etc/iptables/rules.v6 ===&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Benutzer_Diskussion:Took&amp;diff=4423</id>
		<title>Benutzer Diskussion:Took</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Benutzer_Diskussion:Took&amp;diff=4423"/>
		<updated>2016-05-03T23:31:25Z</updated>

		<summary type="html">&lt;p&gt;Took: Leere Seite erstellt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Benutzer:Took&amp;diff=4422</id>
		<title>Benutzer:Took</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Benutzer:Took&amp;diff=4422"/>
		<updated>2016-05-03T23:26:18Z</updated>

		<summary type="html">&lt;p&gt;Took: Kontakt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Kontakt ==&lt;br /&gt;
E-Mail: freifunk ät sd-gp.de&lt;br /&gt;
&lt;br /&gt;
== PGP / GnuPG ==&lt;br /&gt;
[https://www.sd-gp.de/sdgp.asc Mein Public-Key]&lt;br /&gt;
&lt;br /&gt;
Fingerprint: '''584C 908F 3C56 03AD FBC7 FCF7 30AA D8DF 4AAD 9D4D'''&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Serverliste:Supernodes&amp;diff=4421</id>
		<title>Serverliste:Supernodes</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Serverliste:Supernodes&amp;diff=4421"/>
		<updated>2016-05-03T23:10:38Z</updated>

		<summary type="html">&lt;p&gt;Took: wikifi&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Infrastruktur]]&lt;br /&gt;
&lt;br /&gt;
Some Supernodes have stats, if you click their URL.&lt;br /&gt;
&lt;br /&gt;
Batman-adv Compat14 Netz (SSID kbu.freifunk.net) ffkbu Bonn&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable center sortable mw-datatable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
! style=&amp;quot;width:4em&amp;quot; | Server&lt;br /&gt;
! style=&amp;quot;width:11em&amp;quot;| DNS-Namen&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Ext. IP-Adressen&lt;br /&gt;
! style=&amp;quot;width:8em&amp;quot; | Int. IP-Adressen&lt;br /&gt;
! style=&amp;quot;width:6em&amp;quot; | Funktion&lt;br /&gt;
! style=&amp;quot;width:7em&amp;quot; | Kontakt&lt;br /&gt;
! style=&amp;quot;width:6em&amp;quot; | Hoster &lt;br /&gt;
! RZ Standort&lt;br /&gt;
|-&lt;br /&gt;
|  [[Server:Fastd1|Fastd1]]&lt;br /&gt;
| fastd1.kbu.freifunk.net&lt;br /&gt;
| [http://bgp.he.net/ip/78.46.68.75 78.46.68.75]&lt;br /&gt;
| no active IPV4 (172.27.0.1)&lt;br /&gt;
| [[Supernode]] soon Hostumzug/umbau, ipv6, bigMTU only&lt;br /&gt;
| [[Benutzer:Gevatter|gevatter]],  [[Benutzer:rampone|rampone]]&lt;br /&gt;
| [https://www.hetzner.de/hosting/kontakt/telefon-support Hetzner]&lt;br /&gt;
| Nürnberg&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Server:Fastd2|Fastd2]]&lt;br /&gt;
| fastd2.kbu.freifunk.net&lt;br /&gt;
| [http://bgp.he.net/ip/188.68.50.81 188.68.50.81]&lt;br /&gt;
| 10.159.8.1&lt;br /&gt;
| [[Supernode]] ipv4 via de.hideme, nov6 exit&lt;br /&gt;
| Johnny.Bee&lt;br /&gt;
| [https://www.netcup.de netcup.de]&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Server:Fastd3|Fastd3]]&lt;br /&gt;
| [http://fastd3.kbu.freifunk.net:8080 fastd3.kbu.freifunk.net]&lt;br /&gt;
| [http://bgp.he.net/ip/62.210.108.23 62.210.108.23]&lt;br /&gt;
| 10.159.16.1/22&lt;br /&gt;
| [[Supernode]] v4 via hideme, nov6, VM auf vpn1&lt;br /&gt;
| [[Benutzer:rampone|rampone]]&lt;br /&gt;
| online.net&lt;br /&gt;
| Paris&lt;br /&gt;
|-&lt;br /&gt;
| [[Server:Fastd4|Fastd4]]&lt;br /&gt;
| fastd4.kbu.freifunk.net &lt;br /&gt;
| [http://bgp.he.net/ip/5.189.134.60 5.189.134.60]&lt;br /&gt;
| 10.159.24.1&lt;br /&gt;
| [[Supernode]]&lt;br /&gt;
| [[Benutzer:kaleng|kaleng]], [[Benutzer:d0b|d0b]], [[Benutzer:K3v1neu|K3v1n]],  [[Benutzer:rampone|rampone]]&lt;br /&gt;
| [https://contabo.de/ Contabo]&lt;br /&gt;
| München&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Server:Fastd5|Fastd5]]&lt;br /&gt;
| [http://fastd5.kbu.freifunk.net:8080 fastd5.kbu.freifunk.net]&lt;br /&gt;
| [http://bgp.he.net/ip/62.210.108.175 62.210.108.175]&lt;br /&gt;
| 10.159.32.1&lt;br /&gt;
| [[Supernode]] v4 via hideme, nov6, VM auf vpn7&lt;br /&gt;
| [[Benutzer:rampone|rampone]], [[Benutzer:K3v1neu|K3v1n]]&lt;br /&gt;
| online.net&lt;br /&gt;
| Paris&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Server:Fastd6|Fastd6]]&lt;br /&gt;
| fastd6.kbu.freifunk.net&lt;br /&gt;
| [http://bgp.he.net/ip/5.9.102.122 5.9.102.122]&lt;br /&gt;
| 10.159.40.1 &lt;br /&gt;
| [[Supernode]] v4 via ffrl, nov6, bridged VM auf parabol&lt;br /&gt;
| [[Benutzer:simon|simon]], [[Benutzer:rampone|rampone]]&lt;br /&gt;
| [https://www.hetzner.de/hosting/kontakt/telefon-support Hetzner]&lt;br /&gt;
| Falkenstein (DC 16)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Server:Fastd7|Fastd7]]&lt;br /&gt;
| fastd7.kbu.freifunk.net&lt;br /&gt;
| [http://bgp.he.net/ip/5.9.67.131 5.9.67.131]&lt;br /&gt;
| 10.159.48.1 &lt;br /&gt;
| [[Supernode]] temp offline(2 much broadcast, decays perf. of other VMs)&lt;br /&gt;
| [[Benutzer:kaleng|kaleng]], scotty,  [[Benutzer:rampone|rampone]]&lt;br /&gt;
| [https://www.hetzner.de/hosting/kontakt/telefon-support Hetzner]&lt;br /&gt;
| Falkenstein (DC 16)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Batman-adv Compat15 Netz (SSID kbu.freifunk.net) Hood Koeln&lt;br /&gt;
WORK IN PROGRESS&lt;br /&gt;
{| class=&amp;quot;wikitable center sortable mw-datatable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
! style=&amp;quot;width:4em&amp;quot; | Server&lt;br /&gt;
! style=&amp;quot;width:11em&amp;quot;| DNS-Namen&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Ext. IP-Adressen&lt;br /&gt;
! style=&amp;quot;width:8em&amp;quot; | Int. IP-Adressen&lt;br /&gt;
! style=&amp;quot;width:6em&amp;quot; | Funktion&lt;br /&gt;
! style=&amp;quot;width:7em&amp;quot; | Kontakt&lt;br /&gt;
! style=&amp;quot;width:6em&amp;quot; | Hoster &lt;br /&gt;
! RZ Standort&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  [[Server:VPN1|VPN1]]&lt;br /&gt;
| [http://vpn1.kbu.freifunk.net/ vpn1.kbu.freifunk.net]&lt;br /&gt;
| [http://bgp.he.net/ip/62.210.108.23 62.210.108.23]&lt;br /&gt;
| 10.158.0.1/21&lt;br /&gt;
| [[Supernode]] v4 via hide.me, nov6&lt;br /&gt;
| [[Benutzer:Rampone|rampone]]&lt;br /&gt;
| [https://www.online.net/en/dedicated-server/dedibox-xc online.net]&lt;br /&gt;
| FR - Paris (DC2 Saal101)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Server:VPN4|VPN4]]&lt;br /&gt;
| vpn4.kbu.freifunk.net(gw01)&lt;br /&gt;
| [http://bgp.he.net/ip/5.189.150.229 5.189.150.229]&lt;br /&gt;
| 10.158.24.1/21&lt;br /&gt;
| [[Supernode]] offline&lt;br /&gt;
| [[Benutzer:K3v1neu|K3v1n]]&lt;br /&gt;
| [http://contabo.net CONTABO]&lt;br /&gt;
| München &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Server:VPN5|VPN5]]&lt;br /&gt;
| vpn5.kbu.freifunk.net(gw02)&lt;br /&gt;
| [http://bgp.he.net/ip/5.189.164.226 5.189.164.226]&lt;br /&gt;
| 10.158.32.1/21&lt;br /&gt;
| [[Supernode]]&lt;br /&gt;
| [[Benutzer:K3v1neu|K3v1n]]&lt;br /&gt;
| [http://contabo.net CONTABO]&lt;br /&gt;
| München &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Server:VPN6|VPN6]]&lt;br /&gt;
| vpn6.kbu.freifunk.net (parabol)&lt;br /&gt;
| [http://bgp.he.net/ip/5.9.134.236 5.9.134.236]&lt;br /&gt;
| 10.158.40.1/21&lt;br /&gt;
| [[Supernode]]&lt;br /&gt;
| [[Benutzer:K3v1neu|K3v1n]] [[Benutzer:rampone|rampone]], Simon&lt;br /&gt;
| Hetzner&lt;br /&gt;
| Falkenstein (DC 16) &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Server:VPN7|VPN7]]&lt;br /&gt;
| vpn7.kbu.freifunk.net(gw04)&lt;br /&gt;
| [http://bgp.he.net/ip/62.210.108.175 62.210.108.175]&lt;br /&gt;
| 10.158.48.1/21 &lt;br /&gt;
| [[Supernode]] offline&lt;br /&gt;
| [[Benutzer:K3v1neu|K3v1n]]&lt;br /&gt;
| [http://online.net online.net]&lt;br /&gt;
| Paris &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Server:VPN8|VPN8]]&lt;br /&gt;
| vpn8.kbu.freifunk.net(gw05)&lt;br /&gt;
| [http://bgp.he.net/ip/5.189.142.97 5.189.142.97]&lt;br /&gt;
| 10.158.56.1/21&lt;br /&gt;
| [[Supernode]]&lt;br /&gt;
| [[Benutzer:K3v1neu|K3v1n]]&lt;br /&gt;
| [http://contabo.net CONTABO]&lt;br /&gt;
| München &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Batman-adv Compat15 Netz (SSID kbu.freifunk.net) Hood Umland&lt;br /&gt;
WORK IN PROGRESS&lt;br /&gt;
{| class=&amp;quot;wikitable center sortable mw-datatable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
! style=&amp;quot;width:4em&amp;quot; | Server&lt;br /&gt;
! style=&amp;quot;width:11em&amp;quot;| DNS-Namen&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Ext. IP-Adressen&lt;br /&gt;
! style=&amp;quot;width:8em&amp;quot; | Int. IP-Adressen&lt;br /&gt;
! style=&amp;quot;width:6em&amp;quot; | Funktion&lt;br /&gt;
! style=&amp;quot;width:7em&amp;quot; | Kontakt&lt;br /&gt;
! style=&amp;quot;width:6em&amp;quot; | Hoster &lt;br /&gt;
! RZ Standort&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Server:UVPN1|UVPN1]]&lt;br /&gt;
| uvpn1.kbu.freifunk.net(gw01)&lt;br /&gt;
| [http://bgp.he.net/ip/5.189.150.229 5.189.150.229]&lt;br /&gt;
| 10.158.128.1/21&lt;br /&gt;
| [[Supernode]] offline&lt;br /&gt;
| [[Benutzer:K3v1neu|K3v1n]]&lt;br /&gt;
| [http://contabo.net CONTABO]&lt;br /&gt;
| München &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Server:UVPN2|UVPN2]]&lt;br /&gt;
| uvpn2.kbu.freifunk.net(gw02)&lt;br /&gt;
| [http://bgp.he.net/ip/5.189.164.226 5.189.164.226]&lt;br /&gt;
| 10.158.136.1/21&lt;br /&gt;
| [[Supernode]] &lt;br /&gt;
| [[Benutzer:K3v1neu|K3v1n]]&lt;br /&gt;
| [http://contabo.net CONTABO]&lt;br /&gt;
| München &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  [[Server:UVPN3|UVPN3]]&lt;br /&gt;
| [http://uvpn3.kbu.freifunk.net/ uvpn3.kbu.freifunk.net]&lt;br /&gt;
| [http://bgp.he.net/ip/62.210.108.23 62.210.108.23]&lt;br /&gt;
| 10.158.144.1/21&lt;br /&gt;
| [[Supernode]] v4 via hide.me, nov6&lt;br /&gt;
| [[Benutzer:Rampone|rampone]]&lt;br /&gt;
| [https://www.online.net/en/dedicated-server/dedibox-xc online.net]&lt;br /&gt;
| FR - Paris (DC2 Saal101)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Server:UVPN4|UVPN4]]&lt;br /&gt;
| uvpn4.kbu.freifunk.net(gw04)&lt;br /&gt;
| [http://bgp.he.net/ip/62.210.108.175 62.210.108.175]&lt;br /&gt;
| 10.158.152.1/21&lt;br /&gt;
| [[Supernode]] offline&lt;br /&gt;
| [[Benutzer:K3v1neu|K3v1n]]&lt;br /&gt;
| [http://online.net online.net]&lt;br /&gt;
| Frankfurt &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Server:UVPN5|UVPN5]]&lt;br /&gt;
| uvpn5.kbu.freifunk.net(gw05)&lt;br /&gt;
| [http://bgp.he.net/ip/5.189.142.97 5.189.142.97]&lt;br /&gt;
| 10.158.160.1/21&lt;br /&gt;
| [[Supernode]]&lt;br /&gt;
| [[Benutzer:K3v1neu|K3v1n]]&lt;br /&gt;
| [http://contabo.net CONTABO]&lt;br /&gt;
| München &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Server:UVPN6|UVPN6]]&lt;br /&gt;
| uvpn6.kbu.freifunk.net(parabol)&lt;br /&gt;
| [http://bgp.he.net/ip/5.9.134.236 5.9.134.236]&lt;br /&gt;
| 10.158.168.1/21&lt;br /&gt;
| [[Supernode]]&lt;br /&gt;
| [[Benutzer:K3v1neu|K3v1n]] [[Benutzer:rampone|rampone]], Simon&lt;br /&gt;
| Hetzner&lt;br /&gt;
| Falkenstein (DC 16) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Hood Euskirchen&lt;br /&gt;
{| class=&amp;quot;wikitable center sortable mw-datatable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
! style=&amp;quot;width:4em&amp;quot; | Server&lt;br /&gt;
! style=&amp;quot;width:11em&amp;quot;| DNS-Namen&lt;br /&gt;
! style=&amp;quot;width:12em&amp;quot;| Ext. IP-Adressen&lt;br /&gt;
! style=&amp;quot;width:8em&amp;quot; | Int. IP-Adressen&lt;br /&gt;
! style=&amp;quot;width:6em&amp;quot; | Funktion&lt;br /&gt;
! style=&amp;quot;width:7em&amp;quot; | Kontakt&lt;br /&gt;
! style=&amp;quot;width:6em&amp;quot; | Hoster &lt;br /&gt;
! RZ Standort&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Server:FFEU1|FFEU1]]&lt;br /&gt;
| gw01.ffeu.de&lt;br /&gt;
| [http://bgp.he.net/ip/5.189.150.229 5.189.150.229]&lt;br /&gt;
| 10.19.24.0/21&lt;br /&gt;
| [[Supernode]]&lt;br /&gt;
| [[Benutzer:K3v1neu|K3v1n]]&lt;br /&gt;
| [http://contabo.net CONTABO]&lt;br /&gt;
| München &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Server:FFEU2|FFEU2]]&lt;br /&gt;
| gw02.ffeu.de&lt;br /&gt;
| [http://bgp.he.net/ip/5.189.164.226 5.189.164.226]&lt;br /&gt;
| 10.19.32.0/21&lt;br /&gt;
| [[Supernode]] &lt;br /&gt;
| [[Benutzer:K3v1neu|K3v1n]]&lt;br /&gt;
| [http://contabo.net CONTABO]&lt;br /&gt;
| München &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Server:FFEU4|FFEU4]]&lt;br /&gt;
| gw04.ffeu.de&lt;br /&gt;
| [http://bgp.he.net/ip/62.210.108.175 62.210.108.175]&lt;br /&gt;
| 10.19.48.0/21&lt;br /&gt;
| [[Supernode]]&lt;br /&gt;
| [[Benutzer:K3v1neu|K3v1n]]&lt;br /&gt;
| [http://online.net online.net]&lt;br /&gt;
| Frankfurt &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Server:FFEU5|FFEU5]]&lt;br /&gt;
| gw05.ffeu.de&lt;br /&gt;
| [http://bgp.he.net/ip/5.189.142.97 5.189.142.97]&lt;br /&gt;
| 10.19.56.0/21&lt;br /&gt;
| [[Supernode]]&lt;br /&gt;
| [[Benutzer:K3v1neu|K3v1n]]&lt;br /&gt;
| [http://contabo.net CONTABO]&lt;br /&gt;
| München &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Server:FFEU7|FFEU7]]&lt;br /&gt;
| gw07.ffeu.de&lt;br /&gt;
| [http://bgp.he.net/ip/185.11.138.154 185.11.138.154]&lt;br /&gt;
| 10.19.72.0/21&lt;br /&gt;
| [[Supernode]]&lt;br /&gt;
| [[Benutzer:K3v1neu|K3v1n]] &lt;br /&gt;
| Serverway&lt;br /&gt;
| --- &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Architektur-Babel&amp;diff=4420</id>
		<title>Architektur-Babel</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Architektur-Babel&amp;diff=4420"/>
		<updated>2016-05-03T22:55:55Z</updated>

		<summary type="html">&lt;p&gt;Took: /* Hohe Last durch batman-adv über VPN-Links */ typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #F00&amp;quot;&amp;gt;'''Hinweis'''&amp;lt;/span&amp;gt;: Dieser Artikel beschreibt '''nicht das aktuelle KBU-Netz''' aus konzeptioneller Sicht und erklärt viele, tiefe Details. Um einfach mitzumachen musst Du nicht alles davon verstehen - wenn Du Interesse hast, lese einfach weiter :-).&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel beschreibt eine vom KBU-Netze ''abweichende, mögliche Konfiguration''. Sie ist ISP (d.h. VPN-Provider) unabhängig und verzichtet auf eine Node-Hierachie (Node, Supernode).&lt;br /&gt;
&lt;br /&gt;
Hierbei schildert die Einleitung zunächst verschiedene Probleme des aktuellen KBU-Netzes und Ideen für eine Verbesserung. Aus diesen Punkten werden Ziele und Anforderungen hergeleitet, die zu denen Umsetzungen vorgeschlagen werden.&lt;br /&gt;
&lt;br /&gt;
Im letzten Teil werden die technischen Details der Umsetzung erläutert.&lt;br /&gt;
&lt;br /&gt;
== Kurzzusammenfassung ==&lt;br /&gt;
&lt;br /&gt;
* ISP / VPN-Provider unabhängig.&lt;br /&gt;
* Routing via Babel (Backbone + Adhoc)&lt;br /&gt;
* Roaming über batman-adv&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Stand 04/2016 verwendet das KBU-Netz batman-adv auf allen links (auch VPN). Server erfüllen die Aufgabe der Supernodes. Broadcasts belasten das Netz dort.&lt;br /&gt;
&lt;br /&gt;
Viele Teile hiervon sind in https://github.com/yanosz/node-config testweise umgesetzt. Alles ist work-in-progress.&lt;br /&gt;
&lt;br /&gt;
=== Einschränkungen ===&lt;br /&gt;
Ein paar Dinge sind im batman-adv-Netz (Stand: Q1/2016) unschön &lt;br /&gt;
&lt;br /&gt;
==== Hohe Last durch batman-adv über VPN-Links  ====&lt;br /&gt;
batman-adv ist nicht dafür gedacht auch in VPNs verwendet zu werden. Algorithmus und Metrik ermitteln fortlaufend die Verbindungsqualität und belasten die VPN-Verbindung. Das Qualität ändert sich aber kaum (keine Funkstörung, VPN ist eingeschaltet oder aus), so dass viel Overhead entsteht. IP-Router (häufig Server in RZ) werden hierdurch enorm belastet&lt;br /&gt;
&lt;br /&gt;
==== Viel broadcast-Traffic durch Roaming über Hoods ====&lt;br /&gt;
batman-adv-Metadaten werden im ganzen Stadtgebiet verteilt und erlauben ein Roaming innerhalb einer Hood. Der Aufwand ist aber unnnötig. Kaum jemand wird bspw. von Lindweiler nach Porz roamen. Es gibt noch nicht einmal eine durchgehende Funkverbindung. Dabei belegen die Metadaten viel Wifi-Kapazität (d.h. airtime).&lt;br /&gt;
&lt;br /&gt;
==== Einstiegshürde ====&lt;br /&gt;
Neue Freifunk-Communities (bspw. Troisdorf, Hennef) müssen am Anfang recht viel Know-How ohne Freifunk-Bezug mitbringen (Konfiguration von Server, Supernodes). Besser wäre, die Einstiegshürde niedrig zu halten. Eine Hand voll OpenWRT-Router sollte ausreichen, um ein Freifunk-Netz aufzubauen. ''&amp;lt;br /&amp;gt;''Neue Freifunk-Communities sollten nicht vor der Herausforderung stehen, dass sie Server für den Betrieb auftreiben oder einen eigenen Verein gründen müssen. Werden wichtige Server von Einzelpersonen betrieben, besteht immer das Risiko, dass Sie weniger Zeit haben oder aussteigen und das gesamte Netz beeinträchtigt wird. &lt;br /&gt;
&lt;br /&gt;
Neue Communities sind ''für die Dezentralität extrem wichtig''. Um so mehr Communties sich finden und ihre Netze bauen, desto dezentraler wird Freifunk. Alle Netze existieren unabhängig voneinander.&lt;br /&gt;
&lt;br /&gt;
==== Abhängigkeit von Servern, Personen, ISPs ====&lt;br /&gt;
Das Freifunk-Netz sollte von niemanden einfach abgeschaltet werden können: &lt;br /&gt;
* Aktuell betreiben 1-2 Personen fast alle Supernodes in den Hoods - mehrere hundert nodes sind von ihnen abhängig&lt;br /&gt;
* Das Netz sollte auch nicht einem einzelnen ISP- oder Verein abhängen, der den Abuse-Desk betreibt. Ein passender abuse-Desk, der über Freifunk aufklärt ist zwar hilfreich - andernfalls wird bei abuse der Node-Aufsteller als Übeltäter identifiziert - aber das Netz sollte nicht auf einen Provider festgelegt sein. Bspw. sollte ein Node hide.me und ein anderer den Freifunk Rheinland e.V. nutzen können.&lt;br /&gt;
&lt;br /&gt;
=== Konzeptionelle Sicht ===&lt;br /&gt;
Es gibt bereits einige Ansätze wie lokale Supernodes auf Futro-Hardware, die einige Nachteile adressieren. Viele Einschränkungen und Kompromissen entstehen durch die Konzeptionierung des Freifunk-Netzes. Für die vorgestellten Einschränkungen sind u.a. folgende Punkte wichtig:&lt;br /&gt;
&lt;br /&gt;
==== Verschiedene Nodes nacheinander nutzen (Roaming) ====&lt;br /&gt;
Es ist hilfreich in einem bestimmten Gebiet (z.B. ein Gebäude) roamen zu können. Dabei kann sich ein Client mit verschiedenen Nodes verbinden, ohne dass Netzwerkverbindungen abreißen. Damit ein Client roamen kann, müssen Daten zwischen in Frage kommenden Nodes ausgetauscht werden. Der Bereich sollte nicht zu groß gewählt werden, damit nicht unnötig viele Daten übertragen werden müssen.&lt;br /&gt;
&lt;br /&gt;
==== Verschiedene IPv6-Adressen im Netz (Multihoming) ====&lt;br /&gt;
Wenn mehrere ISPs verwenden werden, gibt es viele IPv6-Netze die sich zum Teil dynamisch ändern.&lt;br /&gt;
&lt;br /&gt;
Nutzt ein Client eine IPv6-Verbindung in das Internet, so benötigt er eine IPv6-Adresse. Weiterhin muss er einen Router verwenden, der diese Adresse routen kann. Hier ist offen, welche Art von Adresse der Client verwenden soll (Public oder ULA) und wie Router nur passende Absenderadressen routen. Ein Router kann nicht jede beliebige Absenderaddresse in einem VPN-Tunnel verwenden (IP-Spoofing). Damit muss er die Adressen entweder ersetzen (Nat66) oder an den Router mit passendem VPN-Tunnel weiterleiten (Source Sepecific Routing).&lt;br /&gt;
&lt;br /&gt;
==== Freifunk-Routing ====&lt;br /&gt;
Clients und Nodes sollten direkte Ende-zu-Ende Verbindung aufbauen können. Jeder client soll seine eindeutige IP-Adresse haben können. Direkte Verbindungen in andere Communities sollen auch möglich sein.&lt;br /&gt;
Das Intercity-VPN ist eine Verbindung aller Freifunk-Communities.  Wie kommunizieren Clients im Freifunk-Netz untereinander? Welche Adressen verwenden genutzt und direkte Verbindungen aufbauen zu können? Wo werden Verbindungen zum ICVPN aufgebaut und wie wird DNS verwendet?&lt;br /&gt;
&lt;br /&gt;
== Ziele und Anforderungen ==&lt;br /&gt;
&lt;br /&gt;
=== Designziele ===&lt;br /&gt;
Das Netz soll die folgenden Eigenschaften bieten:&lt;br /&gt;
# '''ISP-Unabhängigkeit''': Es können verschiedene VPN-Provider verwendet werden. Das Netz ist nicht abhängig von einem ISP (bspw. Freifunk-Rheinland).&lt;br /&gt;
# '''Roaming''': Zwischen Nodes, die ''direkten Funkontakt'' haben, soll Roaming möglich sein.&lt;br /&gt;
# '''Skalierbarkeit''': Das Netz einer Community soll bis zu einer Größe von 65000 Nodes (zzgl. clients) skalieren können.&lt;br /&gt;
# '''IPv4 und IPv6''': Beides wird verwendet&lt;br /&gt;
# '''Dezentralität''': Die Komponenten des Netzes werden nicht zentral verwaltet.&lt;br /&gt;
# '''Geringe Hardware-Anforderungen''': Auch Geräte mit wenig Ressourcen können verwendet werden.&lt;br /&gt;
# '''Wiederverwendbarkeit''': Andere Communities sollen analog Netze gestalten können. Die Netze existieren unabhängig.&lt;br /&gt;
&lt;br /&gt;
=== ''Keine'' Designziele ===&lt;br /&gt;
Folgende Punkte werden nicht berücksichtigt. Technische gesehen sind sie aber grundsätzlich umsetzbar.&lt;br /&gt;
 &lt;br /&gt;
# '''Internet-Performance''': Ein hoch performanter Zugriff auf das Internet soll nicht sichergestellt sein.&lt;br /&gt;
# '''Netzwerk-Management''': Es muss nicht sichergestellt sein, dass eine einzelne Person möglichst viele Router effizient verwalten kann.&lt;br /&gt;
# '''Stabilität''': Die Verfügbarkeit einzelner Komponenten wird nicht sichergestellt.&lt;br /&gt;
&lt;br /&gt;
== Umsetzung ==&lt;br /&gt;
Modifizierte: [[Netzwerk-Konfiguration#Routing_über_das_VPN,_bridging_zwischen_batman-adv_und_Infrastruktur | Routing über das VPN, bridging zwischen batman-adv und Infrastruktur]]-Strategie&lt;br /&gt;
* Nodes verbinden zu einem ISP (z.B. FFRL e.V, hide.me) und erhalten Routbare IPs, sofern sie an das Internet angebunden sind.&lt;br /&gt;
* Jedem Node wird ein eindeutiges private IPv4 (/24) und ULA IPv6 Netz (/64) zugewiesen.&lt;br /&gt;
* Jeder Node betreibt einen DHCP und einen radvd auf dem Infrastruktur-Netz.&lt;br /&gt;
* Im ad-hoc-Netz werden babel und batman-adv verwendet.&lt;br /&gt;
** batman-adv ''nur'' für Roaming. Broadcast wird komplett gefiltert. Jeder Node ist batman-adv Gateway&lt;br /&gt;
** babel zur IP-Kommunikation zwischen den Nodes genutzt. &lt;br /&gt;
* Verfügt der Node über öffentliche IPv6-Prefixes, dann schaltet er DHCPv6-Prefix Delegation auf dem ad-hoc Interface (''nicht'' batman-adv) ein. Benachbarte Nodes können darüber Prefixes erhalten.&lt;br /&gt;
&lt;br /&gt;
=== Erreichte Anforderungen ===&lt;br /&gt;
* Das Netz ist Provider-Unabhängig, da jeder ISP genutzt werden kann. Traffic kann grundsätzlich auch ohne VPN in das Internet geleitet werden.&lt;br /&gt;
* Roaming ist über batman-adv möglich. Annahme: Clients benötigen nach einem Zellenwechsel keinen Broadcast: IPv6-ND ist nicht ''mehr'' nötig üb eine Layer-2 Adresse aufzulösen. ND-Table Einträge müssen langlebig sein.&lt;br /&gt;
* Das Netz skaliert bis theoretisch zu 65000 Knoten, da es ~ 65000 /24-Netze im Bereich 10.0.0.0/8 gibt. Annahme: Babel skaliert passend in zusammenhängenden Mesh-Segmenten.&lt;br /&gt;
* Dezentralität: Es gibt nicht notwendiger Weise Server in Rechenzentren.&lt;br /&gt;
* Geringe Hardware-Anforderungen: Auch TP-Link WR841n Geräte können verwendet werden.&lt;br /&gt;
* Wiederverwendbarkeit - Netze verschiedener Communities beeinflussen sich nicht, sofern sie nicht direkt mit Babel verbunden sind. Über das ICVPN können die ULA-Netze routed werden.&lt;br /&gt;
&lt;br /&gt;
== Node-Konfiguration - Technische Details ==&lt;br /&gt;
[[Datei:Babel-interface-configuration.png|thumb|600px|right|Abb. 1 - Interfaces eines Freifunk-Nodes]]&lt;br /&gt;
&lt;br /&gt;
Prototyp: https://github.com/yanosz/node-config&lt;br /&gt;
&lt;br /&gt;
Die Freifunk-Nodes werden wie folgt konfiguriert.&lt;br /&gt;
&lt;br /&gt;
=== Netze &amp;amp; Interfaces ===&lt;br /&gt;
Abbildung 1 zeigt ein Beispiel für die Konfiguration der Interfaces auf einem Node. Links sind die Interface, rechts die zugewiesenen IP-Adressen dargestellt. &amp;lt;br /&amp;gt;&lt;br /&gt;
Dem Node sind hier die Netze &amp;lt;tt&amp;gt;10.59.64.0/24&amp;lt;/tt&amp;gt; und &amp;lt;tt&amp;gt;fdd3:5d16:b5dd:f040::/64&amp;lt;/tt&amp;gt; zugewiesen.&lt;br /&gt;
&lt;br /&gt;
* '''wlan0''' betreibt das Infrastruktur-Netz für Clients. Es ist direkt in die Bridge ''br-freifunk'' eingebunden. BSSID und ESSID sind &amp;lt;tt&amp;gt;42:42:42:42:42:42&amp;lt;/tt&amp;gt;&lt;br /&gt;
* '''wlan1''' ist die Schnittstelle zum wlan-Mesh. Es ist direkt in ''bat0'' eingebunden, damit clients roamen können. wlan1 verfügt über eine IPv6 Link Local, und eine private IPv4-Adresse und ist damit auch in babel eingebunden.&lt;br /&gt;
* '''ethX''' steht für das WAN-Interface des Nodes&lt;br /&gt;
* '''ethY''' ist das LAN-Interface. Es bleibt bestehen, damit der Node administriert werden kann.&lt;br /&gt;
* '''bat0''' ist das batman-adv-Interface. Ist ist analog zu gluon in die Bridge ''br-freifunk'' eingebunden, damit clients roamen können&lt;br /&gt;
* '''br-freifunk''' bridged Infrastruktur-Netz und bat0. Es hat die für Clients sichtbaren Adressen. Die zugewiesenen Netze Netze &amp;lt;tt&amp;gt;10.59.64.0/24&amp;lt;/tt&amp;gt; und &amp;lt;tt&amp;gt;fdd3:5d16:b5dd:f040::/64&amp;lt;/tt&amp;gt; sind hierauf geschaltet.&lt;br /&gt;
* '''ppp0''' ist der Endpunkt des VPNs (hide.me, CCC, etc.). Es verfügt über extern erreichbare Adressen.&lt;br /&gt;
* '''tap0..N, l2tpeth0..N''' stehen für beliebige viele fastd oder L2TP-Tunnel. Sie werden über andere Netze (LAN, WAN, Master) aufgebaut - z.B. für Richtfunkstrecke oder verbessertes Roaming. &amp;lt;br /&amp;gt; Bei direkten Ende-Zu-Ende Verbindungen erzielt l2tp die bessere Performance. fastd kann hingegen einfacher konfiguriert werden und erlaubt Verschlüsselung. &amp;lt;br /&amp;gt; L2TP und fastd-Links werden nur dann in bat0 eingebunden, wenn tatsächlich Roaming über die verbundene Endpunkte erfolgen soll.&lt;br /&gt;
&lt;br /&gt;
=== IP-Adress- und -Subnet Zuweiseung ===&lt;br /&gt;
&lt;br /&gt;
Dem Knoten werden verschiedene IP-Adressen und Subnetze zugewiesen:&lt;br /&gt;
* Der Benutzer weißt manuell ein eindeutiges /24 IPv4 und ein /64 ULA-Netz zu. Beispiel: &amp;lt;tt&amp;gt;10.59.64.0/24&amp;lt;/tt&amp;gt; und &amp;lt;tt&amp;gt;fdd3:5d16:b5dd:f040::/64&amp;lt;/tt&amp;gt;. &amp;lt;br /&amp;gt; Innerhalb einer Community wird der gleiche ULA-Prefix (/48) verwendet - verschiedene Communities verwenden verschiedene ULA-Prefixes. Die ULA-Adressen werden im ICVPN routed. Für IPv4 für ein privater Adressbereich aus &amp;lt;tt&amp;gt;10.0.0.0/8&amp;lt;/tt&amp;gt; oder &amp;lt;tt&amp;gt;172.16.0.0/12&amp;lt;/tt&amp;gt; genutzt. &amp;lt;tt&amp;gt;192.168.0.0/16&amp;lt;/tt&amp;gt; wird nicht verwendet um Überschneidungen üblichen Adressbereichen auf SOHO-Routern zu vermeiden.&lt;br /&gt;
* Der Node erhält vom ISP (VPN-Provider!) ein größeren Range per DHCPv6-Prefix Delegation. (Beispiel /48). Ein /64 Netz daraus wird im Master-Netz verteilt - nicht aber im batman-adv-Mesh. Die restlichen Netze werden per DHCPv6 Prefix-Delegation auf dem ad-hoc Interface an Benachbarte Knoten weiter gegeben.&lt;br /&gt;
* Im Master-Netz verteilt der Knoten per radvd und DHCPv4 die manuell konfigurieren Netze und einen über ad-hoc oder VPN erhaltenen /64 Bereich. Alle IPv6-Prefixes werdrn per radv ''off-link'' als offlink angekündigt, damit kein ND-Discovery zwischen Clients nötig ist.&lt;br /&gt;
&lt;br /&gt;
=== Batman Advanced und ebtables ===&lt;br /&gt;
&lt;br /&gt;
Batman-Advvanced wird wie folgt konfiguriert.&lt;br /&gt;
* Der Gateway-Mode wird verwendet. Jeder Node ist Gateway. Der DHCP-Server verteilt Adressen aus dem zugwiesenen /24 Netz&lt;br /&gt;
* Distributed ARP-Tabels werden verwendet.&lt;br /&gt;
* Beacon-Interval ist 5s&lt;br /&gt;
* Nach bat0 gehender Broadcast und Multicast-Traffic wird per ebtables gefiltert. (TBD: Vom Node ausgehende Neighbor-Soliciation für's Roaming erlauben?).&lt;br /&gt;
* DHCP(v4) und ARP werden nicht gefilert, da sie innerhalb von batman-adv in unicast umgewandelt werden.&lt;br /&gt;
&lt;br /&gt;
=== Routing ===&lt;br /&gt;
&lt;br /&gt;
Da OpenWRT keine Network Namespace kann, wird Policy Routing verwendet.&lt;br /&gt;
&lt;br /&gt;
* Alle Freifunk-Interfaces (blaue Interfaces in Abb. 1) und das VPN verwenden eine gemeinsame Routing Table &amp;lt;tt&amp;gt;511&amp;lt;/tt&amp;gt; für incoming und outgoing traffic. &lt;br /&gt;
* babeld wird für das dynamische Routing verwendet. Ad-Hoc, sowie alle L2TP-Tunnel werden in Babel eingebunden.&lt;br /&gt;
* TBD:&lt;br /&gt;
** Multicast-Routing&lt;br /&gt;
** ICVPN-Routing&lt;br /&gt;
&lt;br /&gt;
=== Firewalling ===&lt;br /&gt;
Firewalling wird verwendet, um bei einer Fehlkonfiguration den Node zu schützen und Interfaces im Routing zu trennen.&lt;br /&gt;
* Die Zonen &amp;lt;tt&amp;gt;freifunk&amp;lt;/tt&amp;gt; und &amp;lt;tt&amp;gt;vpn&amp;lt;/tt&amp;gt; werden eingeführt.&lt;br /&gt;
* Alle blauen Interfaces (vgl. Abb.1) werden &amp;lt;tt&amp;gt;freifunk&amp;lt;/tt&amp;gt; zugeordnet - das VPN der &amp;lt;tt&amp;gt;vpn&amp;lt;/tt&amp;gt;-Zone.&lt;br /&gt;
* Forwardings innerhalb der Freifunk-Zone werden erlaubt. Forwarding von Freifunk nach VPN. Nach bedarf können Forwardings von LAN nach Freifunk oder VPN erlaubt werden.&lt;br /&gt;
* Die &amp;lt;tt&amp;gt;vpn&amp;lt;/tt&amp;gt;-Zone verwendet NAT und MSS-Clamping (TBD: Berliner VPN will kein NAT)&lt;br /&gt;
* Aus &amp;lt;tt&amp;gt;freifunk&amp;lt;/tt&amp;gt; und &amp;lt;tt&amp;gt;vpn&amp;lt;/tt&amp;gt; werden eingehende Verbindungen verboten. Ausgn: ICMP und DHCP. Bei Bedarf kann SSH freigegeben werden. &lt;br /&gt;
* In &amp;lt;tt&amp;gt;freifunk&amp;lt;/tt&amp;gt; werden eigehende babeld-Verbindungen (&amp;lt;tt&amp;gt;6696/udp&amp;lt;/tt&amp;gt;) erlaubt.&lt;br /&gt;
* Eingehende fastd Verbindungen werden aus dem WAN erlaubt. So können verschiedene Mesh-Inseln miteinander verbunden werden. der zugh. Link wird nicht in batman-adv eingebunden.&lt;br /&gt;
&lt;br /&gt;
== Fazit ==&lt;br /&gt;
* Die Architektur adressiert viele der identifizierten Probleme&lt;br /&gt;
* l3roamd könnte als Alternative zu batman-advanced interessant sein&lt;br /&gt;
* Die Architetkur ist nicht auf babel festgelegt - andere Protokolle sind denkbar. Anforderungen sind:&lt;br /&gt;
** Wired und Wireless Metrik möglich (ggf. auch durch vers. Protokolle!)&lt;br /&gt;
** Source Sepecific Routing (wg. DHCPv6-PD über ad-hoc)&lt;br /&gt;
* Die Teilnahme am Netz erfordert mehr Aufwand beim User - Adressen müssen konfiguriert werden.&lt;br /&gt;
* Aktuell gibt es keine schöne Karte oder Visualisierung für babel - Ortsangaben + IP-Netze Wiki gestützt verwalten?&lt;br /&gt;
* Das Netz sollte über fastd-Links dezentral verbunden werden können. Dieses P2P-Netz wäre zu organisieren - Liste mit dyndns-Namen im Wiki?&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=KBU_Gluon_Firmware&amp;diff=4335</id>
		<title>KBU Gluon Firmware</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=KBU_Gluon_Firmware&amp;diff=4335"/>
		<updated>2016-04-29T10:12:05Z</updated>

		<summary type="html">&lt;p&gt;Took: /* Gluon selber kompilieren */ typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Mitmachen]]&lt;br /&gt;
&lt;br /&gt;
Auf dieser Seite wird erläutert, wie du die aktuelle Gluon Firmware auf einem frischen Router installierst, bzw. die original Firmware durch Gluon ersetzt. Alternativ könnte weiterhin die stabile [[KBU Classic Firmware]] (fast) uneingeschränkt verwendet werden, allerdings werden die mit Classic-Firmware ausgestatteten Router NICHT mehr in der Karte angezeigt. Gluon unterstützt auch neuere Hardware. &lt;br /&gt;
Unter [[Gluon_Config_Mode | Config Mode]] findest Du die Information wie Du einen Router mit installierter KBU Gluon Firmware kofigurierst, unter [[Pimp_my_Node | Pimp my Node]] geht es dann weiter in die Tiefe. ;)&lt;br /&gt;
&lt;br /&gt;
== Freifunk-Firmware installieren ==&lt;br /&gt;
=== Freifunk-Firmware auswählen ===&lt;br /&gt;
Die korrekte Firmware-Version ist vom Router-Modell, der Aufstell-Region (Köln/Bonn/Umgebung) sowie der aktuell installierten Firmware abhängig. Das Modell und die Versionsnummer deines Routers findest du auf der Rückseite des Gerätes. &lt;br /&gt;
&lt;br /&gt;
[[Datei:wr741nd_pi3.jpg||400px|thumb|center]] &lt;br /&gt;
&lt;br /&gt;
Wir stellen unter https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/ weitere hier nicht aufgeführte aktuelle Images bereit, dafür einfach anhand des Dateinamens die zu deinem Modell passende Version auswählen. &amp;lt;br&amp;gt;&lt;br /&gt;
Bitte wähle die Firmware für deinen Router anhand des Modells, der Version und der Region. '''Das ''factory''-Release ist für das Flashen von Original-Routern, die ''sysupgrade''-Version ist für bereits mit Freifunk ausgestattete Router passend.''' &amp;lt;br&amp;gt;&lt;br /&gt;
{|class=&amp;quot;wikitable center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:tl-wr740n.jpg|center|thumb|200px]]&lt;br /&gt;
|[[File:tl-wr740n.jpg|center|thumb|200px]]&lt;br /&gt;
|[[File:tl-wr841n.jpg|center|thumb|200px]]&lt;br /&gt;
|[[File:tl-wr842n.jpg|center|thumb|200px]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-WR740N(D) &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wr740n-nd-v5.bin Köln v5.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wr740n-nd-v5.bin Bonn v5.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wr740n-nd-v5.bin Umgebung v5.x] &amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wr740n-nd-v5-sysupgrade.bin Köln v5.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wr740n-nd-v5-sysupgrade.bin Bonn v5.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wr740n-nd-v5-sysupgrade.bin Umgebung v5.x]&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-WR741N(D) &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wr741n-nd-v5.bin Köln v5.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wr741n-nd-v5.bin Bonn v5.x][https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wr741n-nd-v5.bin Umland v5.x] &amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wr741n-nd-v5-sysupgrade.bin Köln v5.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wr741n-nd-v5-sysupgrade.bin Bonn v5.x][https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wr741n-nd-v5-sysupgrade.bin Umland v5.x] &lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-WR841N(D) &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wr841n-nd-v8.bin Köln v8.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wr841n-nd-v8.bin Bonn v8.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wr841n-nd-v8.bin Umland v8.x]&amp;lt;br&amp;gt;[https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wr841n-nd-v9.bin Köln v9.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wr841n-nd-v9.bin Bonn v9.x][https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wr841n-nd-v9.bin Umland v9.x]&amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wr841n-nd-v8-sysupgrade.bin Köln v8.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wr841n-nd-v8-sysupgrade.bin Bonn v8.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wr841n-nd-v8-sysupgrade.bin Umland v8.x]&amp;lt;br&amp;gt;[https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wr841n-nd-v9-sysupgrade.bin Köln v9.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wr841n-nd-v9-sysupgrade.bin Bonn v9.x][https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wr841n-nd-v9-sysupgrade.bin Umland v9.x]&amp;lt;br&amp;gt;&lt;br /&gt;
(factory + sysupgrade [https://jenkins.kbu.freifunk.net/jenkins/view/KBU/job/KBU-gluon-Master-Koeln/2/deployedArtifacts/ Köln v10.x] [https://jenkins.kbu.freifunk.net/jenkins/view/KBU/job/KBU-gluon-Master-Bonn-small-MTU/10/deployedArtifacts/ Bonn v10.x] [https://jenkins.kbu.freifunk.net/jenkins/view/KBU/job/KBU-gluon-Master-Umland/4/deployedArtifacts/ Umland v10.x] )² &amp;lt;br&amp;gt;&lt;br /&gt;
(factory [http://sd-gp.de/ff-kbu/eigenbau/ Köln, Bonn &amp;amp; Umland v11.x])² &amp;lt;br&amp;gt;&lt;br /&gt;
²nicht als Release-Version. Nur in den Master-Builds enthalten.&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-WR842N(D) &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wr842n-nd-v1.bin Köln v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wr842n-nd-v1.bin Bonn v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wr842n-nd-v1.bin Umland v1.x]&amp;lt;br&amp;gt; [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wr842n-nd-v2.bin Köln v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wr842n-nd-v2.bin Bonn v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wr842n-nd-v2.bin Umland v2.x] &amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wr842n-nd-v1-sysupgrade.bin Köln v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wr842n-nd-v1-sysupgrade.bin Bonn v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wr842n-nd-v1-sysupgrade.bin Umland v1.x]&amp;lt;br&amp;gt; [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wr842n-nd-v2-sysupgrade.bin Köln v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wr842n-nd-v2-sysupgrade.bin Bonn v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wr842n-nd-v2-sysupgrade.bin Umland v2.x]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:tl-wr1043nd.jpg|center|thumb|200px]]&lt;br /&gt;
|[[File:tl-wdr3600.jpg|center|thumb|200px]]&lt;br /&gt;
|[[File:tl-wdr4300.jpg|center|thumb|200px]]&lt;br /&gt;
|[[File:tl-cpe210.jpg|center|thumb|180px]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-WR1043ND &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wr1043n-nd-v2.bin Köln v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wr1043n-nd-v2.bin Bonn v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wr1043n-nd-v2.bin Umland v2.x] &amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wr1043n-nd-v2-sysupgrade.bin Köln v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wr1043n-nd-v2-sysupgrade.bin Bonn v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wr1043n-nd-v2-sysupgrade.bin Umland v2.x] &lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-WDR3600 &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wdr3600-v1.bin Köln v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wdr3600-v1.bin Bonn v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wdr3600-v1.bin Umland v1.x] &amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wdr3600-v1-sysupgrade.bin Köln v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wdr3600-v1-sysupgrade.bin Bonn v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wdr3600-v1-sysupgrade.bin Umland v1.x]&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-WDR4300 &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wdr4300-v1.bin Köln v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wdr4300-v1.bin Bonn v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wdr4300-v1.bin Umland v1.x] &amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wdr4300-v1-sysupgrade.bin Köln v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wdr4300-v1-sysupgrade.bin Bonn v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wdr4300-v1-sysupgrade.bin Umland v1.x]&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-CPE210 &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-cpe210-v1.0.bin Köln v1.0] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-cpe210-v1.0.bin Bonn v1.0] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-cpe210-v1.0.bin Umgebung v1.0]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-cpe210-v1.1.bin Köln v1.1] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-cpe210-v1.1.bin Bonn v1.1] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-cpe210-v1.1.bin Umland v1.1] &amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-cpe210-v1.0-sysupgrade.bin Köln v1.0] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-cpe210-v1.0-sysupgrade.bin Bonn v1.0] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-cpe210-v1.0-sysupgrade.bin Umgebung v1.0]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-cpe210-v1.1-sysupgrade.bin Köln v1.1] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-cpe210-v1.1-sysupgrade.bin Bonn v1.1] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-cpe210-v1.1-sysupgrade.bin Umland v1.1]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Hinweis: '''Das optionale (D) in der Produktbezeichnung steht für die Produktvariante mit auswechselbaren Antennen, was den Router ein paar Euro teuerer macht. Von den Antennen abgesehen ist die Hardware die selbe, dementsprechend gibt es nur eine Firmware für die Modelle mit und ohne (D).&lt;br /&gt;
&lt;br /&gt;
Nach dem Herunterladen der Firmware ist es grundsätzlich sinnvoll die [[Überprüfen der Signatur|Signatur der Datei zu überprüfen]]. Während der Gluon Prerelease-Tests werden jedoch nicht alle Versionen signiert.&lt;br /&gt;
&lt;br /&gt;
=== Router mit dem Computer verbinden ===&lt;br /&gt;
Dafür solltest du Deinen Router mit Strom versorgen sowie die Netzwerkkarte deines PC mit einen der gelben Ports des Routers verbinden, hier reicht ein handelsübliches LAN Kabel. Am PC muss die Netzwerkkarte auf Automatische IP-Adresse beziehen (DHCP) eingestellt sein und WLAN sollte vorübergehend deaktiviert werden.&amp;lt;ref name=&amp;quot;wlanOff&amp;quot;&amp;gt;Da der Router (noch) nicht mit dem Internet verbunden ist könnte euer Rechner (je nach Setup) versuchen sich über WLAN mit evtl. bestehenden Funknetzen zu verbinden, obwohl ein LAN Kabel angeschlossen ist.&amp;lt;/ref&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
=== Freifunk Firmware einspielen ===&lt;br /&gt;
Jetzt kannst du den Router einfach über den Browser konfigurieren.&lt;br /&gt;
&lt;br /&gt;
Dazu rufst du in deinen Browser die auf der Router Rückseite angegebene Adresse auf, in der Regel http://192.168.1.1 (je nach Typ auch http://192.168.0.1) oder http://tplinklogin.net.&lt;br /&gt;
&lt;br /&gt;
Bevor du weitermachst, musst du dich erst anmelden. Die Standrad-Username / -Passwort Kombination ist ebenfalls auf der Routerrückseite zu finden, in der Regel: admin / admin&lt;br /&gt;
&lt;br /&gt;
Dein Browserfenster müsste nun so aussehen – Folge hier dem Link &amp;quot;System Tools&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:TP_link_01_start.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
Als nächste wählst du aus dem Menü &amp;quot;Firmware Upgrade&amp;quot; (1). Danach kannst du die vorhin (in Schritt 2) geladene Datei zum Hochladen auswählen (2). Nach einem Klick auf &amp;quot;Upgrade&amp;quot; (3) beginnt der Prozess.&lt;br /&gt;
&lt;br /&gt;
[[File:TP_link_02_firmware.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
Du musst noch einmal kurz bestätigen …&lt;br /&gt;
&lt;br /&gt;
[[File:TP_link_03_firmware_file.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
… und die Installation läuft. Während die Installation läuft, zieh bitte auf keinen Fall den Stecker oder das Netzwerk-Kabel – denn dann ist dein Router hinüber.&lt;br /&gt;
&lt;br /&gt;
[[File:TP_link_04_upgrade_progress.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
 '''Bei TL-WR841N v8.4:''' Beim Flashen über das Firmware-Upgrade der Original-Firmware tritt ggf. folgender Fehler auf:&lt;br /&gt;
   ''Error code: 23002''&lt;br /&gt;
   ''The uploaded file name is too long!''&lt;br /&gt;
 Hier hilft einfaches Umbenennen der herunter geladenen Freifunk-Firmware.&lt;br /&gt;
&lt;br /&gt;
Nachdem die Firmware fertig eingespielt ist, startet der Router automatisch neu.&lt;br /&gt;
&lt;br /&gt;
Dass der Router neu startet merkst du auch am kurzen Aufblinken der Lämpchen an deinem Router. &lt;br /&gt;
&lt;br /&gt;
[[File:TP_link_05_firmware_reboot_finished.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
Jetzt ist der Router nicht mehr unter der angegeben Adresse sichtbar und eine Fehlermeldung erscheint. Das ist gut so. Denn nun läuft nicht mehr die alte Firmware sondern die neue, tolle Freifunk Firmware auf deinem Router.&lt;br /&gt;
&lt;br /&gt;
=== Anschluss ans Internet ===&lt;br /&gt;
Nach dem automatischen Neustart ist der Router direkt im Normalbetrieb. Wenn keine weiteren Freifunk-Router in der dirkten Umgebung sind, musst Du allerdings den Freifunk-Router noch per Ethernetkabel mit Deinem Internet-Router verbinden, damit der Freifunk-Router auch Internet-Zugriff gewährt. Dazu wird der '''blaue''' Port des Freiunk-Routers mit dem Gästenetz-Port Deines Internet-Routers verbunden. Falls Du dort kein Gästenetz eingerichtet hast oder das gar nicht geht, tut's auch ein &amp;quot;normaler&amp;quot; LAN-Port Deines Routers, wo Du auch deinen Laptop etc. einstöpseln würdest. Ein Gästenetz wäre nur noch etwas sicherer. Eventuell musst Du die Filterregeln für das Gästenetz anpassen, da manche Router in der Standardkonfiguration nur bestimmte Ports freigegeben haben.&lt;br /&gt;
&lt;br /&gt;
'''WICHTIG:''' Wer hier in einer Firma oder gar einer städtischen Einrichtung ''mal eben'' einen Freifunk-Router an deren Intranet anschließt, schadet damit unter Umständen dem Freifunk-Projekt, da das nicht unbemerkt bleibt und fast immer gegen interne Sicherheitsrichtlinien verstößt. Sowas muss von der jeweiligen IT-Leitung explizit erlaubt werden. Wir wollen die Verantwortlichen nicht verärgern sondern überzeugen!&lt;br /&gt;
&lt;br /&gt;
=== Installation überprüfen ===&lt;br /&gt;
Nach erfolgreichem Boot sollte Dein Router nun ein offenes WLAN mit SSID kbu.freifunk.net anzeigen. Nach wenigen Minuten sollte er bei erfolgreichem Internetanschluss ausserdem auf https://map.kbu.freifunk.net auftauchen. (Als neuer Knoten mit kryptischem Namen unter Aktuelles).&lt;br /&gt;
&lt;br /&gt;
[[File:Map-kbu-fresh-router-screen-shot.png|center|thumb|800px|Hier wurde offenbar vor kurzem ein neuer Router (freifunkXXX) eingerichtet aber noch kein Name vergeben.]]&lt;br /&gt;
&lt;br /&gt;
=== Sinnvolle Ergänzungen ===&lt;br /&gt;
Wer seinen Router auch zukünftig auf der [https://map.kbu.freifunk.net Karte] wiederfinden möchte, sollte dem Router noch einen Name und Koordinaten spendieren. Wichtig hierbei: der Routername darf keine Sonderzeichen oder Leerzeichen enthalten, da er ein gültiger Hostname sein muss. Außerdem ist es sinnvoll, für Kontaktanfragen eine E-Mailadresse zu hinterlegen. Hierzu muss der Router noch einmal manuell im [[Gluon_Config_Mode | Config Mode]] neu gestartet werden.&lt;br /&gt;
&lt;br /&gt;
=== Fragen? ===&lt;br /&gt;
&lt;br /&gt;
Solltest Du Fragen zur Einrichtung des Routers haben oder Einträge Deines Knoten ändern wollen, schreibe gerne an unsere [[Mailingliste|E-Mail]]. Gerne kannst Du auch bei unseren regelmäßigen Treffen in Bonn oder Köln vorbeischauen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Neueste Versionen ==&lt;br /&gt;
&lt;br /&gt;
Am 27.4.2016 wurde Gluon v2016.1.4 als maintenance Release veröffentlicht. Hauptsächlich wurden alle WLAN Treiber in Gluon auf den neuesten Stand gebracht, was die Stabilität erhöhen soll.&lt;br /&gt;
&lt;br /&gt;
Die Releasenotes sind zu finden unter http://gluon.readthedocs.org/en/v2016.1.4/releases/v2016.1.4.html&lt;br /&gt;
&lt;br /&gt;
Simon hab das Release mal gebaut und online gestellt. Wer möchte kann es testen (im Ordner &amp;quot;2016.1.4.experimental&amp;quot;):&lt;br /&gt;
https://goo.gl/9EBESD&lt;br /&gt;
&lt;br /&gt;
=== Gluon selber kompilieren ===&lt;br /&gt;
&lt;br /&gt;
Oder, falls du grade eine Linux Shell auf hast (und je nach Rechner 1-3 Std warten kannst und ~20GB Diskspace frei hast), kannst das Release auch selber bauen indem du das hier eintippst:&lt;br /&gt;
&lt;br /&gt;
Bonn:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install git subversion build-essential gawk unzip libncurses5-dev zlib1g-dev python libssl-dev&lt;br /&gt;
git clone https://github.com/freifunk-gluon/gluon.git gluon -b v2016.1.x&lt;br /&gt;
cd gluon&lt;br /&gt;
git clone https://github.com/Gammelknup/site-ffkbu site -b v2016.1&lt;br /&gt;
make update&lt;br /&gt;
make -j2 GLUON_TARGET=ar71xx-generic GLUON_BRANCH=experimental BROKEN=1 V=s&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Köln:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install git subversion build-essential gawk unzip libncurses5-dev zlib1g-dev python libssl-dev&lt;br /&gt;
git clone https://github.com/freifunk-gluon/gluon.git gluon -b v2016.1.x&lt;br /&gt;
cd gluon&lt;br /&gt;
git clone https://github.com/Gammelknup/site-ffkbuk site -b v2016.1&lt;br /&gt;
make update&lt;br /&gt;
make -j2 GLUON_TARGET=ar71xx-generic GLUON_BRANCH=experimental BROKEN=1 V=s&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Umland:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install git subversion build-essential gawk unzip libncurses5-dev zlib1g-dev python libssl-dev&lt;br /&gt;
git clone https://github.com/freifunk-gluon/gluon.git gluon -b v2016.1.x&lt;br /&gt;
cd gluon&lt;br /&gt;
git clone https://github.com/Gammelknup/site-ffkbuu site -b v2016.1&lt;br /&gt;
make update&lt;br /&gt;
make -j2 GLUON_TARGET=ar71xx-generic GLUON_BRANCH=experimental BROKEN=1 V=s&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
für exotischere Hardware kann man noch diese Targets bauen:&lt;br /&gt;
&amp;lt;pre&amp;gt;make -j2 GLUON_TARGET=ar71xx-nand GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=brcm2708-bcm2708 GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=brcm2708-bcm2709 GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=mpc85xx-generic GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=ramips-rt305x GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=sunxi GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=x86-64 GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=x86-generic GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=x86-kvm_guest GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=x86-xen_domu GLUON_BRANCH=experimental BROKEN=1 V=s&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=KBU_Gluon_Firmware&amp;diff=4334</id>
		<title>KBU Gluon Firmware</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=KBU_Gluon_Firmware&amp;diff=4334"/>
		<updated>2016-04-29T10:10:59Z</updated>

		<summary type="html">&lt;p&gt;Took: /* Gluon selber kompilieren */ typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Mitmachen]]&lt;br /&gt;
&lt;br /&gt;
Auf dieser Seite wird erläutert, wie du die aktuelle Gluon Firmware auf einem frischen Router installierst, bzw. die original Firmware durch Gluon ersetzt. Alternativ könnte weiterhin die stabile [[KBU Classic Firmware]] (fast) uneingeschränkt verwendet werden, allerdings werden die mit Classic-Firmware ausgestatteten Router NICHT mehr in der Karte angezeigt. Gluon unterstützt auch neuere Hardware. &lt;br /&gt;
Unter [[Gluon_Config_Mode | Config Mode]] findest Du die Information wie Du einen Router mit installierter KBU Gluon Firmware kofigurierst, unter [[Pimp_my_Node | Pimp my Node]] geht es dann weiter in die Tiefe. ;)&lt;br /&gt;
&lt;br /&gt;
== Freifunk-Firmware installieren ==&lt;br /&gt;
=== Freifunk-Firmware auswählen ===&lt;br /&gt;
Die korrekte Firmware-Version ist vom Router-Modell, der Aufstell-Region (Köln/Bonn/Umgebung) sowie der aktuell installierten Firmware abhängig. Das Modell und die Versionsnummer deines Routers findest du auf der Rückseite des Gerätes. &lt;br /&gt;
&lt;br /&gt;
[[Datei:wr741nd_pi3.jpg||400px|thumb|center]] &lt;br /&gt;
&lt;br /&gt;
Wir stellen unter https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/ weitere hier nicht aufgeführte aktuelle Images bereit, dafür einfach anhand des Dateinamens die zu deinem Modell passende Version auswählen. &amp;lt;br&amp;gt;&lt;br /&gt;
Bitte wähle die Firmware für deinen Router anhand des Modells, der Version und der Region. '''Das ''factory''-Release ist für das Flashen von Original-Routern, die ''sysupgrade''-Version ist für bereits mit Freifunk ausgestattete Router passend.''' &amp;lt;br&amp;gt;&lt;br /&gt;
{|class=&amp;quot;wikitable center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:tl-wr740n.jpg|center|thumb|200px]]&lt;br /&gt;
|[[File:tl-wr740n.jpg|center|thumb|200px]]&lt;br /&gt;
|[[File:tl-wr841n.jpg|center|thumb|200px]]&lt;br /&gt;
|[[File:tl-wr842n.jpg|center|thumb|200px]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-WR740N(D) &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wr740n-nd-v5.bin Köln v5.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wr740n-nd-v5.bin Bonn v5.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wr740n-nd-v5.bin Umgebung v5.x] &amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wr740n-nd-v5-sysupgrade.bin Köln v5.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wr740n-nd-v5-sysupgrade.bin Bonn v5.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wr740n-nd-v5-sysupgrade.bin Umgebung v5.x]&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-WR741N(D) &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wr741n-nd-v5.bin Köln v5.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wr741n-nd-v5.bin Bonn v5.x][https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wr741n-nd-v5.bin Umland v5.x] &amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wr741n-nd-v5-sysupgrade.bin Köln v5.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wr741n-nd-v5-sysupgrade.bin Bonn v5.x][https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wr741n-nd-v5-sysupgrade.bin Umland v5.x] &lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-WR841N(D) &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wr841n-nd-v8.bin Köln v8.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wr841n-nd-v8.bin Bonn v8.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wr841n-nd-v8.bin Umland v8.x]&amp;lt;br&amp;gt;[https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wr841n-nd-v9.bin Köln v9.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wr841n-nd-v9.bin Bonn v9.x][https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wr841n-nd-v9.bin Umland v9.x]&amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wr841n-nd-v8-sysupgrade.bin Köln v8.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wr841n-nd-v8-sysupgrade.bin Bonn v8.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wr841n-nd-v8-sysupgrade.bin Umland v8.x]&amp;lt;br&amp;gt;[https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wr841n-nd-v9-sysupgrade.bin Köln v9.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wr841n-nd-v9-sysupgrade.bin Bonn v9.x][https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wr841n-nd-v9-sysupgrade.bin Umland v9.x]&amp;lt;br&amp;gt;&lt;br /&gt;
(factory + sysupgrade [https://jenkins.kbu.freifunk.net/jenkins/view/KBU/job/KBU-gluon-Master-Koeln/2/deployedArtifacts/ Köln v10.x] [https://jenkins.kbu.freifunk.net/jenkins/view/KBU/job/KBU-gluon-Master-Bonn-small-MTU/10/deployedArtifacts/ Bonn v10.x] [https://jenkins.kbu.freifunk.net/jenkins/view/KBU/job/KBU-gluon-Master-Umland/4/deployedArtifacts/ Umland v10.x] )² &amp;lt;br&amp;gt;&lt;br /&gt;
(factory [http://sd-gp.de/ff-kbu/eigenbau/ Köln, Bonn &amp;amp; Umland v11.x])² &amp;lt;br&amp;gt;&lt;br /&gt;
²nicht als Release-Version. Nur in den Master-Builds enthalten.&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-WR842N(D) &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wr842n-nd-v1.bin Köln v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wr842n-nd-v1.bin Bonn v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wr842n-nd-v1.bin Umland v1.x]&amp;lt;br&amp;gt; [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wr842n-nd-v2.bin Köln v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wr842n-nd-v2.bin Bonn v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wr842n-nd-v2.bin Umland v2.x] &amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wr842n-nd-v1-sysupgrade.bin Köln v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wr842n-nd-v1-sysupgrade.bin Bonn v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wr842n-nd-v1-sysupgrade.bin Umland v1.x]&amp;lt;br&amp;gt; [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wr842n-nd-v2-sysupgrade.bin Köln v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wr842n-nd-v2-sysupgrade.bin Bonn v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wr842n-nd-v2-sysupgrade.bin Umland v2.x]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:tl-wr1043nd.jpg|center|thumb|200px]]&lt;br /&gt;
|[[File:tl-wdr3600.jpg|center|thumb|200px]]&lt;br /&gt;
|[[File:tl-wdr4300.jpg|center|thumb|200px]]&lt;br /&gt;
|[[File:tl-cpe210.jpg|center|thumb|180px]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-WR1043ND &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wr1043n-nd-v2.bin Köln v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wr1043n-nd-v2.bin Bonn v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wr1043n-nd-v2.bin Umland v2.x] &amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wr1043n-nd-v2-sysupgrade.bin Köln v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wr1043n-nd-v2-sysupgrade.bin Bonn v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wr1043n-nd-v2-sysupgrade.bin Umland v2.x] &lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-WDR3600 &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wdr3600-v1.bin Köln v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wdr3600-v1.bin Bonn v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wdr3600-v1.bin Umland v1.x] &amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wdr3600-v1-sysupgrade.bin Köln v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wdr3600-v1-sysupgrade.bin Bonn v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wdr3600-v1-sysupgrade.bin Umland v1.x]&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-WDR4300 &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wdr4300-v1.bin Köln v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wdr4300-v1.bin Bonn v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wdr4300-v1.bin Umland v1.x] &amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wdr4300-v1-sysupgrade.bin Köln v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wdr4300-v1-sysupgrade.bin Bonn v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wdr4300-v1-sysupgrade.bin Umland v1.x]&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-CPE210 &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-cpe210-v1.0.bin Köln v1.0] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-cpe210-v1.0.bin Bonn v1.0] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-cpe210-v1.0.bin Umgebung v1.0]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-cpe210-v1.1.bin Köln v1.1] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-cpe210-v1.1.bin Bonn v1.1] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-cpe210-v1.1.bin Umland v1.1] &amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-cpe210-v1.0-sysupgrade.bin Köln v1.0] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-cpe210-v1.0-sysupgrade.bin Bonn v1.0] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-cpe210-v1.0-sysupgrade.bin Umgebung v1.0]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-cpe210-v1.1-sysupgrade.bin Köln v1.1] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-cpe210-v1.1-sysupgrade.bin Bonn v1.1] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-cpe210-v1.1-sysupgrade.bin Umland v1.1]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Hinweis: '''Das optionale (D) in der Produktbezeichnung steht für die Produktvariante mit auswechselbaren Antennen, was den Router ein paar Euro teuerer macht. Von den Antennen abgesehen ist die Hardware die selbe, dementsprechend gibt es nur eine Firmware für die Modelle mit und ohne (D).&lt;br /&gt;
&lt;br /&gt;
Nach dem Herunterladen der Firmware ist es grundsätzlich sinnvoll die [[Überprüfen der Signatur|Signatur der Datei zu überprüfen]]. Während der Gluon Prerelease-Tests werden jedoch nicht alle Versionen signiert.&lt;br /&gt;
&lt;br /&gt;
=== Router mit dem Computer verbinden ===&lt;br /&gt;
Dafür solltest du Deinen Router mit Strom versorgen sowie die Netzwerkkarte deines PC mit einen der gelben Ports des Routers verbinden, hier reicht ein handelsübliches LAN Kabel. Am PC muss die Netzwerkkarte auf Automatische IP-Adresse beziehen (DHCP) eingestellt sein und WLAN sollte vorübergehend deaktiviert werden.&amp;lt;ref name=&amp;quot;wlanOff&amp;quot;&amp;gt;Da der Router (noch) nicht mit dem Internet verbunden ist könnte euer Rechner (je nach Setup) versuchen sich über WLAN mit evtl. bestehenden Funknetzen zu verbinden, obwohl ein LAN Kabel angeschlossen ist.&amp;lt;/ref&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
=== Freifunk Firmware einspielen ===&lt;br /&gt;
Jetzt kannst du den Router einfach über den Browser konfigurieren.&lt;br /&gt;
&lt;br /&gt;
Dazu rufst du in deinen Browser die auf der Router Rückseite angegebene Adresse auf, in der Regel http://192.168.1.1 (je nach Typ auch http://192.168.0.1) oder http://tplinklogin.net.&lt;br /&gt;
&lt;br /&gt;
Bevor du weitermachst, musst du dich erst anmelden. Die Standrad-Username / -Passwort Kombination ist ebenfalls auf der Routerrückseite zu finden, in der Regel: admin / admin&lt;br /&gt;
&lt;br /&gt;
Dein Browserfenster müsste nun so aussehen – Folge hier dem Link &amp;quot;System Tools&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:TP_link_01_start.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
Als nächste wählst du aus dem Menü &amp;quot;Firmware Upgrade&amp;quot; (1). Danach kannst du die vorhin (in Schritt 2) geladene Datei zum Hochladen auswählen (2). Nach einem Klick auf &amp;quot;Upgrade&amp;quot; (3) beginnt der Prozess.&lt;br /&gt;
&lt;br /&gt;
[[File:TP_link_02_firmware.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
Du musst noch einmal kurz bestätigen …&lt;br /&gt;
&lt;br /&gt;
[[File:TP_link_03_firmware_file.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
… und die Installation läuft. Während die Installation läuft, zieh bitte auf keinen Fall den Stecker oder das Netzwerk-Kabel – denn dann ist dein Router hinüber.&lt;br /&gt;
&lt;br /&gt;
[[File:TP_link_04_upgrade_progress.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
 '''Bei TL-WR841N v8.4:''' Beim Flashen über das Firmware-Upgrade der Original-Firmware tritt ggf. folgender Fehler auf:&lt;br /&gt;
   ''Error code: 23002''&lt;br /&gt;
   ''The uploaded file name is too long!''&lt;br /&gt;
 Hier hilft einfaches Umbenennen der herunter geladenen Freifunk-Firmware.&lt;br /&gt;
&lt;br /&gt;
Nachdem die Firmware fertig eingespielt ist, startet der Router automatisch neu.&lt;br /&gt;
&lt;br /&gt;
Dass der Router neu startet merkst du auch am kurzen Aufblinken der Lämpchen an deinem Router. &lt;br /&gt;
&lt;br /&gt;
[[File:TP_link_05_firmware_reboot_finished.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
Jetzt ist der Router nicht mehr unter der angegeben Adresse sichtbar und eine Fehlermeldung erscheint. Das ist gut so. Denn nun läuft nicht mehr die alte Firmware sondern die neue, tolle Freifunk Firmware auf deinem Router.&lt;br /&gt;
&lt;br /&gt;
=== Anschluss ans Internet ===&lt;br /&gt;
Nach dem automatischen Neustart ist der Router direkt im Normalbetrieb. Wenn keine weiteren Freifunk-Router in der dirkten Umgebung sind, musst Du allerdings den Freifunk-Router noch per Ethernetkabel mit Deinem Internet-Router verbinden, damit der Freifunk-Router auch Internet-Zugriff gewährt. Dazu wird der '''blaue''' Port des Freiunk-Routers mit dem Gästenetz-Port Deines Internet-Routers verbunden. Falls Du dort kein Gästenetz eingerichtet hast oder das gar nicht geht, tut's auch ein &amp;quot;normaler&amp;quot; LAN-Port Deines Routers, wo Du auch deinen Laptop etc. einstöpseln würdest. Ein Gästenetz wäre nur noch etwas sicherer. Eventuell musst Du die Filterregeln für das Gästenetz anpassen, da manche Router in der Standardkonfiguration nur bestimmte Ports freigegeben haben.&lt;br /&gt;
&lt;br /&gt;
'''WICHTIG:''' Wer hier in einer Firma oder gar einer städtischen Einrichtung ''mal eben'' einen Freifunk-Router an deren Intranet anschließt, schadet damit unter Umständen dem Freifunk-Projekt, da das nicht unbemerkt bleibt und fast immer gegen interne Sicherheitsrichtlinien verstößt. Sowas muss von der jeweiligen IT-Leitung explizit erlaubt werden. Wir wollen die Verantwortlichen nicht verärgern sondern überzeugen!&lt;br /&gt;
&lt;br /&gt;
=== Installation überprüfen ===&lt;br /&gt;
Nach erfolgreichem Boot sollte Dein Router nun ein offenes WLAN mit SSID kbu.freifunk.net anzeigen. Nach wenigen Minuten sollte er bei erfolgreichem Internetanschluss ausserdem auf https://map.kbu.freifunk.net auftauchen. (Als neuer Knoten mit kryptischem Namen unter Aktuelles).&lt;br /&gt;
&lt;br /&gt;
[[File:Map-kbu-fresh-router-screen-shot.png|center|thumb|800px|Hier wurde offenbar vor kurzem ein neuer Router (freifunkXXX) eingerichtet aber noch kein Name vergeben.]]&lt;br /&gt;
&lt;br /&gt;
=== Sinnvolle Ergänzungen ===&lt;br /&gt;
Wer seinen Router auch zukünftig auf der [https://map.kbu.freifunk.net Karte] wiederfinden möchte, sollte dem Router noch einen Name und Koordinaten spendieren. Wichtig hierbei: der Routername darf keine Sonderzeichen oder Leerzeichen enthalten, da er ein gültiger Hostname sein muss. Außerdem ist es sinnvoll, für Kontaktanfragen eine E-Mailadresse zu hinterlegen. Hierzu muss der Router noch einmal manuell im [[Gluon_Config_Mode | Config Mode]] neu gestartet werden.&lt;br /&gt;
&lt;br /&gt;
=== Fragen? ===&lt;br /&gt;
&lt;br /&gt;
Solltest Du Fragen zur Einrichtung des Routers haben oder Einträge Deines Knoten ändern wollen, schreibe gerne an unsere [[Mailingliste|E-Mail]]. Gerne kannst Du auch bei unseren regelmäßigen Treffen in Bonn oder Köln vorbeischauen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Neueste Versionen ==&lt;br /&gt;
&lt;br /&gt;
Am 27.4.2016 wurde Gluon v2016.1.4 als maintenance Release veröffentlicht. Hauptsächlich wurden alle WLAN Treiber in Gluon auf den neuesten Stand gebracht, was die Stabilität erhöhen soll.&lt;br /&gt;
&lt;br /&gt;
Die Releasenotes sind zu finden unter http://gluon.readthedocs.org/en/v2016.1.4/releases/v2016.1.4.html&lt;br /&gt;
&lt;br /&gt;
Simon hab das Release mal gebaut und online gestellt. Wer möchte kann es testen (im Ordner &amp;quot;2016.1.4.experimental&amp;quot;):&lt;br /&gt;
https://goo.gl/9EBESD&lt;br /&gt;
&lt;br /&gt;
=== Gluon selber kompilieren ===&lt;br /&gt;
&lt;br /&gt;
Oder wer, falls du grade eine Linux Shell auf hast (und je nach Rechner 1-3 Std warten kannst und ~20GB Diskspace frei hast), kannst das Release auch selber bauen indem du das hier eintippst:&lt;br /&gt;
&lt;br /&gt;
Bonn:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install git subversion build-essential gawk unzip libncurses5-dev zlib1g-dev python libssl-dev&lt;br /&gt;
git clone https://github.com/freifunk-gluon/gluon.git gluon -b v2016.1.x&lt;br /&gt;
cd gluon&lt;br /&gt;
git clone https://github.com/Gammelknup/site-ffkbu site -b v2016.1&lt;br /&gt;
make update&lt;br /&gt;
make -j2 GLUON_TARGET=ar71xx-generic GLUON_BRANCH=experimental BROKEN=1 V=s&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Köln:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install git subversion build-essential gawk unzip libncurses5-dev zlib1g-dev python libssl-dev&lt;br /&gt;
git clone https://github.com/freifunk-gluon/gluon.git gluon -b v2016.1.x&lt;br /&gt;
cd gluon&lt;br /&gt;
git clone https://github.com/Gammelknup/site-ffkbuk site -b v2016.1&lt;br /&gt;
make update&lt;br /&gt;
make -j2 GLUON_TARGET=ar71xx-generic GLUON_BRANCH=experimental BROKEN=1 V=s&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Umland:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install git subversion build-essential gawk unzip libncurses5-dev zlib1g-dev python libssl-dev&lt;br /&gt;
git clone https://github.com/freifunk-gluon/gluon.git gluon -b v2016.1.x&lt;br /&gt;
cd gluon&lt;br /&gt;
git clone https://github.com/Gammelknup/site-ffkbuu site -b v2016.1&lt;br /&gt;
make update&lt;br /&gt;
make -j2 GLUON_TARGET=ar71xx-generic GLUON_BRANCH=experimental BROKEN=1 V=s&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
für exotischere Hardware kann man noch diese Targets bauen:&lt;br /&gt;
&amp;lt;pre&amp;gt;make -j2 GLUON_TARGET=ar71xx-nand GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=brcm2708-bcm2708 GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=brcm2708-bcm2709 GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=mpc85xx-generic GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=ramips-rt305x GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=sunxi GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=x86-64 GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=x86-generic GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=x86-kvm_guest GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=x86-xen_domu GLUON_BRANCH=experimental BROKEN=1 V=s&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=KBU_Gluon_Firmware&amp;diff=4333</id>
		<title>KBU Gluon Firmware</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=KBU_Gluon_Firmware&amp;diff=4333"/>
		<updated>2016-04-29T10:10:26Z</updated>

		<summary type="html">&lt;p&gt;Took: /* Gluon selber kompilieren */ 2 Std coimpile time, 20 GB space needed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Mitmachen]]&lt;br /&gt;
&lt;br /&gt;
Auf dieser Seite wird erläutert, wie du die aktuelle Gluon Firmware auf einem frischen Router installierst, bzw. die original Firmware durch Gluon ersetzt. Alternativ könnte weiterhin die stabile [[KBU Classic Firmware]] (fast) uneingeschränkt verwendet werden, allerdings werden die mit Classic-Firmware ausgestatteten Router NICHT mehr in der Karte angezeigt. Gluon unterstützt auch neuere Hardware. &lt;br /&gt;
Unter [[Gluon_Config_Mode | Config Mode]] findest Du die Information wie Du einen Router mit installierter KBU Gluon Firmware kofigurierst, unter [[Pimp_my_Node | Pimp my Node]] geht es dann weiter in die Tiefe. ;)&lt;br /&gt;
&lt;br /&gt;
== Freifunk-Firmware installieren ==&lt;br /&gt;
=== Freifunk-Firmware auswählen ===&lt;br /&gt;
Die korrekte Firmware-Version ist vom Router-Modell, der Aufstell-Region (Köln/Bonn/Umgebung) sowie der aktuell installierten Firmware abhängig. Das Modell und die Versionsnummer deines Routers findest du auf der Rückseite des Gerätes. &lt;br /&gt;
&lt;br /&gt;
[[Datei:wr741nd_pi3.jpg||400px|thumb|center]] &lt;br /&gt;
&lt;br /&gt;
Wir stellen unter https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/ weitere hier nicht aufgeführte aktuelle Images bereit, dafür einfach anhand des Dateinamens die zu deinem Modell passende Version auswählen. &amp;lt;br&amp;gt;&lt;br /&gt;
Bitte wähle die Firmware für deinen Router anhand des Modells, der Version und der Region. '''Das ''factory''-Release ist für das Flashen von Original-Routern, die ''sysupgrade''-Version ist für bereits mit Freifunk ausgestattete Router passend.''' &amp;lt;br&amp;gt;&lt;br /&gt;
{|class=&amp;quot;wikitable center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:tl-wr740n.jpg|center|thumb|200px]]&lt;br /&gt;
|[[File:tl-wr740n.jpg|center|thumb|200px]]&lt;br /&gt;
|[[File:tl-wr841n.jpg|center|thumb|200px]]&lt;br /&gt;
|[[File:tl-wr842n.jpg|center|thumb|200px]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-WR740N(D) &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wr740n-nd-v5.bin Köln v5.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wr740n-nd-v5.bin Bonn v5.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wr740n-nd-v5.bin Umgebung v5.x] &amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wr740n-nd-v5-sysupgrade.bin Köln v5.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wr740n-nd-v5-sysupgrade.bin Bonn v5.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wr740n-nd-v5-sysupgrade.bin Umgebung v5.x]&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-WR741N(D) &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wr741n-nd-v5.bin Köln v5.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wr741n-nd-v5.bin Bonn v5.x][https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wr741n-nd-v5.bin Umland v5.x] &amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wr741n-nd-v5-sysupgrade.bin Köln v5.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wr741n-nd-v5-sysupgrade.bin Bonn v5.x][https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wr741n-nd-v5-sysupgrade.bin Umland v5.x] &lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-WR841N(D) &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wr841n-nd-v8.bin Köln v8.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wr841n-nd-v8.bin Bonn v8.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wr841n-nd-v8.bin Umland v8.x]&amp;lt;br&amp;gt;[https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wr841n-nd-v9.bin Köln v9.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wr841n-nd-v9.bin Bonn v9.x][https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wr841n-nd-v9.bin Umland v9.x]&amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wr841n-nd-v8-sysupgrade.bin Köln v8.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wr841n-nd-v8-sysupgrade.bin Bonn v8.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wr841n-nd-v8-sysupgrade.bin Umland v8.x]&amp;lt;br&amp;gt;[https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wr841n-nd-v9-sysupgrade.bin Köln v9.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wr841n-nd-v9-sysupgrade.bin Bonn v9.x][https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wr841n-nd-v9-sysupgrade.bin Umland v9.x]&amp;lt;br&amp;gt;&lt;br /&gt;
(factory + sysupgrade [https://jenkins.kbu.freifunk.net/jenkins/view/KBU/job/KBU-gluon-Master-Koeln/2/deployedArtifacts/ Köln v10.x] [https://jenkins.kbu.freifunk.net/jenkins/view/KBU/job/KBU-gluon-Master-Bonn-small-MTU/10/deployedArtifacts/ Bonn v10.x] [https://jenkins.kbu.freifunk.net/jenkins/view/KBU/job/KBU-gluon-Master-Umland/4/deployedArtifacts/ Umland v10.x] )² &amp;lt;br&amp;gt;&lt;br /&gt;
(factory [http://sd-gp.de/ff-kbu/eigenbau/ Köln, Bonn &amp;amp; Umland v11.x])² &amp;lt;br&amp;gt;&lt;br /&gt;
²nicht als Release-Version. Nur in den Master-Builds enthalten.&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-WR842N(D) &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wr842n-nd-v1.bin Köln v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wr842n-nd-v1.bin Bonn v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wr842n-nd-v1.bin Umland v1.x]&amp;lt;br&amp;gt; [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wr842n-nd-v2.bin Köln v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wr842n-nd-v2.bin Bonn v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wr842n-nd-v2.bin Umland v2.x] &amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wr842n-nd-v1-sysupgrade.bin Köln v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wr842n-nd-v1-sysupgrade.bin Bonn v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wr842n-nd-v1-sysupgrade.bin Umland v1.x]&amp;lt;br&amp;gt; [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wr842n-nd-v2-sysupgrade.bin Köln v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wr842n-nd-v2-sysupgrade.bin Bonn v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wr842n-nd-v2-sysupgrade.bin Umland v2.x]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:tl-wr1043nd.jpg|center|thumb|200px]]&lt;br /&gt;
|[[File:tl-wdr3600.jpg|center|thumb|200px]]&lt;br /&gt;
|[[File:tl-wdr4300.jpg|center|thumb|200px]]&lt;br /&gt;
|[[File:tl-cpe210.jpg|center|thumb|180px]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-WR1043ND &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wr1043n-nd-v2.bin Köln v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wr1043n-nd-v2.bin Bonn v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wr1043n-nd-v2.bin Umland v2.x] &amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wr1043n-nd-v2-sysupgrade.bin Köln v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wr1043n-nd-v2-sysupgrade.bin Bonn v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wr1043n-nd-v2-sysupgrade.bin Umland v2.x] &lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-WDR3600 &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wdr3600-v1.bin Köln v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wdr3600-v1.bin Bonn v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wdr3600-v1.bin Umland v1.x] &amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wdr3600-v1-sysupgrade.bin Köln v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wdr3600-v1-sysupgrade.bin Bonn v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wdr3600-v1-sysupgrade.bin Umland v1.x]&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-WDR4300 &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wdr4300-v1.bin Köln v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wdr4300-v1.bin Bonn v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wdr4300-v1.bin Umland v1.x] &amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wdr4300-v1-sysupgrade.bin Köln v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wdr4300-v1-sysupgrade.bin Bonn v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wdr4300-v1-sysupgrade.bin Umland v1.x]&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-CPE210 &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-cpe210-v1.0.bin Köln v1.0] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-cpe210-v1.0.bin Bonn v1.0] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-cpe210-v1.0.bin Umgebung v1.0]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-cpe210-v1.1.bin Köln v1.1] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-cpe210-v1.1.bin Bonn v1.1] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-cpe210-v1.1.bin Umland v1.1] &amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-cpe210-v1.0-sysupgrade.bin Köln v1.0] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-cpe210-v1.0-sysupgrade.bin Bonn v1.0] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-cpe210-v1.0-sysupgrade.bin Umgebung v1.0]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-cpe210-v1.1-sysupgrade.bin Köln v1.1] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-cpe210-v1.1-sysupgrade.bin Bonn v1.1] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-cpe210-v1.1-sysupgrade.bin Umland v1.1]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Hinweis: '''Das optionale (D) in der Produktbezeichnung steht für die Produktvariante mit auswechselbaren Antennen, was den Router ein paar Euro teuerer macht. Von den Antennen abgesehen ist die Hardware die selbe, dementsprechend gibt es nur eine Firmware für die Modelle mit und ohne (D).&lt;br /&gt;
&lt;br /&gt;
Nach dem Herunterladen der Firmware ist es grundsätzlich sinnvoll die [[Überprüfen der Signatur|Signatur der Datei zu überprüfen]]. Während der Gluon Prerelease-Tests werden jedoch nicht alle Versionen signiert.&lt;br /&gt;
&lt;br /&gt;
=== Router mit dem Computer verbinden ===&lt;br /&gt;
Dafür solltest du Deinen Router mit Strom versorgen sowie die Netzwerkkarte deines PC mit einen der gelben Ports des Routers verbinden, hier reicht ein handelsübliches LAN Kabel. Am PC muss die Netzwerkkarte auf Automatische IP-Adresse beziehen (DHCP) eingestellt sein und WLAN sollte vorübergehend deaktiviert werden.&amp;lt;ref name=&amp;quot;wlanOff&amp;quot;&amp;gt;Da der Router (noch) nicht mit dem Internet verbunden ist könnte euer Rechner (je nach Setup) versuchen sich über WLAN mit evtl. bestehenden Funknetzen zu verbinden, obwohl ein LAN Kabel angeschlossen ist.&amp;lt;/ref&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
=== Freifunk Firmware einspielen ===&lt;br /&gt;
Jetzt kannst du den Router einfach über den Browser konfigurieren.&lt;br /&gt;
&lt;br /&gt;
Dazu rufst du in deinen Browser die auf der Router Rückseite angegebene Adresse auf, in der Regel http://192.168.1.1 (je nach Typ auch http://192.168.0.1) oder http://tplinklogin.net.&lt;br /&gt;
&lt;br /&gt;
Bevor du weitermachst, musst du dich erst anmelden. Die Standrad-Username / -Passwort Kombination ist ebenfalls auf der Routerrückseite zu finden, in der Regel: admin / admin&lt;br /&gt;
&lt;br /&gt;
Dein Browserfenster müsste nun so aussehen – Folge hier dem Link &amp;quot;System Tools&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:TP_link_01_start.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
Als nächste wählst du aus dem Menü &amp;quot;Firmware Upgrade&amp;quot; (1). Danach kannst du die vorhin (in Schritt 2) geladene Datei zum Hochladen auswählen (2). Nach einem Klick auf &amp;quot;Upgrade&amp;quot; (3) beginnt der Prozess.&lt;br /&gt;
&lt;br /&gt;
[[File:TP_link_02_firmware.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
Du musst noch einmal kurz bestätigen …&lt;br /&gt;
&lt;br /&gt;
[[File:TP_link_03_firmware_file.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
… und die Installation läuft. Während die Installation läuft, zieh bitte auf keinen Fall den Stecker oder das Netzwerk-Kabel – denn dann ist dein Router hinüber.&lt;br /&gt;
&lt;br /&gt;
[[File:TP_link_04_upgrade_progress.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
 '''Bei TL-WR841N v8.4:''' Beim Flashen über das Firmware-Upgrade der Original-Firmware tritt ggf. folgender Fehler auf:&lt;br /&gt;
   ''Error code: 23002''&lt;br /&gt;
   ''The uploaded file name is too long!''&lt;br /&gt;
 Hier hilft einfaches Umbenennen der herunter geladenen Freifunk-Firmware.&lt;br /&gt;
&lt;br /&gt;
Nachdem die Firmware fertig eingespielt ist, startet der Router automatisch neu.&lt;br /&gt;
&lt;br /&gt;
Dass der Router neu startet merkst du auch am kurzen Aufblinken der Lämpchen an deinem Router. &lt;br /&gt;
&lt;br /&gt;
[[File:TP_link_05_firmware_reboot_finished.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
Jetzt ist der Router nicht mehr unter der angegeben Adresse sichtbar und eine Fehlermeldung erscheint. Das ist gut so. Denn nun läuft nicht mehr die alte Firmware sondern die neue, tolle Freifunk Firmware auf deinem Router.&lt;br /&gt;
&lt;br /&gt;
=== Anschluss ans Internet ===&lt;br /&gt;
Nach dem automatischen Neustart ist der Router direkt im Normalbetrieb. Wenn keine weiteren Freifunk-Router in der dirkten Umgebung sind, musst Du allerdings den Freifunk-Router noch per Ethernetkabel mit Deinem Internet-Router verbinden, damit der Freifunk-Router auch Internet-Zugriff gewährt. Dazu wird der '''blaue''' Port des Freiunk-Routers mit dem Gästenetz-Port Deines Internet-Routers verbunden. Falls Du dort kein Gästenetz eingerichtet hast oder das gar nicht geht, tut's auch ein &amp;quot;normaler&amp;quot; LAN-Port Deines Routers, wo Du auch deinen Laptop etc. einstöpseln würdest. Ein Gästenetz wäre nur noch etwas sicherer. Eventuell musst Du die Filterregeln für das Gästenetz anpassen, da manche Router in der Standardkonfiguration nur bestimmte Ports freigegeben haben.&lt;br /&gt;
&lt;br /&gt;
'''WICHTIG:''' Wer hier in einer Firma oder gar einer städtischen Einrichtung ''mal eben'' einen Freifunk-Router an deren Intranet anschließt, schadet damit unter Umständen dem Freifunk-Projekt, da das nicht unbemerkt bleibt und fast immer gegen interne Sicherheitsrichtlinien verstößt. Sowas muss von der jeweiligen IT-Leitung explizit erlaubt werden. Wir wollen die Verantwortlichen nicht verärgern sondern überzeugen!&lt;br /&gt;
&lt;br /&gt;
=== Installation überprüfen ===&lt;br /&gt;
Nach erfolgreichem Boot sollte Dein Router nun ein offenes WLAN mit SSID kbu.freifunk.net anzeigen. Nach wenigen Minuten sollte er bei erfolgreichem Internetanschluss ausserdem auf https://map.kbu.freifunk.net auftauchen. (Als neuer Knoten mit kryptischem Namen unter Aktuelles).&lt;br /&gt;
&lt;br /&gt;
[[File:Map-kbu-fresh-router-screen-shot.png|center|thumb|800px|Hier wurde offenbar vor kurzem ein neuer Router (freifunkXXX) eingerichtet aber noch kein Name vergeben.]]&lt;br /&gt;
&lt;br /&gt;
=== Sinnvolle Ergänzungen ===&lt;br /&gt;
Wer seinen Router auch zukünftig auf der [https://map.kbu.freifunk.net Karte] wiederfinden möchte, sollte dem Router noch einen Name und Koordinaten spendieren. Wichtig hierbei: der Routername darf keine Sonderzeichen oder Leerzeichen enthalten, da er ein gültiger Hostname sein muss. Außerdem ist es sinnvoll, für Kontaktanfragen eine E-Mailadresse zu hinterlegen. Hierzu muss der Router noch einmal manuell im [[Gluon_Config_Mode | Config Mode]] neu gestartet werden.&lt;br /&gt;
&lt;br /&gt;
=== Fragen? ===&lt;br /&gt;
&lt;br /&gt;
Solltest Du Fragen zur Einrichtung des Routers haben oder Einträge Deines Knoten ändern wollen, schreibe gerne an unsere [[Mailingliste|E-Mail]]. Gerne kannst Du auch bei unseren regelmäßigen Treffen in Bonn oder Köln vorbeischauen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Neueste Versionen ==&lt;br /&gt;
&lt;br /&gt;
Am 27.4.2016 wurde Gluon v2016.1.4 als maintenance Release veröffentlicht. Hauptsächlich wurden alle WLAN Treiber in Gluon auf den neuesten Stand gebracht, was die Stabilität erhöhen soll.&lt;br /&gt;
&lt;br /&gt;
Die Releasenotes sind zu finden unter http://gluon.readthedocs.org/en/v2016.1.4/releases/v2016.1.4.html&lt;br /&gt;
&lt;br /&gt;
Simon hab das Release mal gebaut und online gestellt. Wer möchte kann es testen (im Ordner &amp;quot;2016.1.4.experimental&amp;quot;):&lt;br /&gt;
https://goo.gl/9EBESD&lt;br /&gt;
&lt;br /&gt;
=== Gluon selber kompilieren ===&lt;br /&gt;
&lt;br /&gt;
Oder wer, falls du grade eine Linux Shell auf hast (und je nach Rechner 1-3 Std waren kannst und ~20GB Diskspace frei hast), kannst das Release auch selber bauen indem du das hier eintippst:&lt;br /&gt;
&lt;br /&gt;
Bonn:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install git subversion build-essential gawk unzip libncurses5-dev zlib1g-dev python libssl-dev&lt;br /&gt;
git clone https://github.com/freifunk-gluon/gluon.git gluon -b v2016.1.x&lt;br /&gt;
cd gluon&lt;br /&gt;
git clone https://github.com/Gammelknup/site-ffkbu site -b v2016.1&lt;br /&gt;
make update&lt;br /&gt;
make -j2 GLUON_TARGET=ar71xx-generic GLUON_BRANCH=experimental BROKEN=1 V=s&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Köln:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install git subversion build-essential gawk unzip libncurses5-dev zlib1g-dev python libssl-dev&lt;br /&gt;
git clone https://github.com/freifunk-gluon/gluon.git gluon -b v2016.1.x&lt;br /&gt;
cd gluon&lt;br /&gt;
git clone https://github.com/Gammelknup/site-ffkbuk site -b v2016.1&lt;br /&gt;
make update&lt;br /&gt;
make -j2 GLUON_TARGET=ar71xx-generic GLUON_BRANCH=experimental BROKEN=1 V=s&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Umland:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install git subversion build-essential gawk unzip libncurses5-dev zlib1g-dev python libssl-dev&lt;br /&gt;
git clone https://github.com/freifunk-gluon/gluon.git gluon -b v2016.1.x&lt;br /&gt;
cd gluon&lt;br /&gt;
git clone https://github.com/Gammelknup/site-ffkbuu site -b v2016.1&lt;br /&gt;
make update&lt;br /&gt;
make -j2 GLUON_TARGET=ar71xx-generic GLUON_BRANCH=experimental BROKEN=1 V=s&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
für exotischere Hardware kann man noch diese Targets bauen:&lt;br /&gt;
&amp;lt;pre&amp;gt;make -j2 GLUON_TARGET=ar71xx-nand GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=brcm2708-bcm2708 GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=brcm2708-bcm2709 GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=mpc85xx-generic GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=ramips-rt305x GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=sunxi GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=x86-64 GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=x86-generic GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=x86-kvm_guest GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=x86-xen_domu GLUON_BRANCH=experimental BROKEN=1 V=s&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Firmware:Gluon-Firmware&amp;diff=4332</id>
		<title>Firmware:Gluon-Firmware</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Firmware:Gluon-Firmware&amp;diff=4332"/>
		<updated>2016-04-29T10:08:28Z</updated>

		<summary type="html">&lt;p&gt;Took: vorläufiger link zu erster v11 Firmware&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die [[KBU Gluon Firmware]] unterstuetzt auch neuere Hardware. Freifunk-Router mit Gluon-Firmware werden auf unserer [http://map.kbu.freifunk.net Karte] angezeigt, sofern Geo-Koordinaten bei der Konfiguration des Freifunk-Routers angegeben wurden. Für die Router mit Classic-Firmware gilt das leider nicht mehr, da hier Protokolle inkompatibel sind. Auch deshalb solltest Du auf die neue Firmware umsteigen, falls Du noch Classic-Versionen im Einsatz hast.&lt;br /&gt;
&lt;br /&gt;
Für die Hardware-Version 10 (v10) des beliebten und konstengünstigen TP-Link WR841N existiert aktuell keine Version 1.4, sondern nur eine [https://jenkins.kbu.freifunk.net/files/kbu-gluon-continuous/master/bonn/output/images/sysupgrade/gluon-ffkbu-0.6%2bmstr20160108-tp-link-tl-wr841n-nd-v10-sysupgrade.bin ''bleeding edge''-Version] aus dem Hauptentwicklungszweig. Diese scheint recht stabil zu sein. Für v11 wurde eine [http://sd-gp.de/ff-kbu/eigenbau/ vorläufige Version] zusammen-gepatcht.&lt;br /&gt;
&lt;br /&gt;
Die [[KBU Gluon Firmware]] wird aktiv weiterentwickelt und es ist insbesondere bei brandneuen Beta-Versionen mit Bugs zu rechnen. Die Aktualität erkennst Du am Datum im Dateinamen der Firmware.&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=KBU_Gluon_Firmware&amp;diff=4331</id>
		<title>KBU Gluon Firmware</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=KBU_Gluon_Firmware&amp;diff=4331"/>
		<updated>2016-04-29T10:03:44Z</updated>

		<summary type="html">&lt;p&gt;Took: /* Freifunk-Firmware auswählen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Mitmachen]]&lt;br /&gt;
&lt;br /&gt;
Auf dieser Seite wird erläutert, wie du die aktuelle Gluon Firmware auf einem frischen Router installierst, bzw. die original Firmware durch Gluon ersetzt. Alternativ könnte weiterhin die stabile [[KBU Classic Firmware]] (fast) uneingeschränkt verwendet werden, allerdings werden die mit Classic-Firmware ausgestatteten Router NICHT mehr in der Karte angezeigt. Gluon unterstützt auch neuere Hardware. &lt;br /&gt;
Unter [[Gluon_Config_Mode | Config Mode]] findest Du die Information wie Du einen Router mit installierter KBU Gluon Firmware kofigurierst, unter [[Pimp_my_Node | Pimp my Node]] geht es dann weiter in die Tiefe. ;)&lt;br /&gt;
&lt;br /&gt;
== Freifunk-Firmware installieren ==&lt;br /&gt;
=== Freifunk-Firmware auswählen ===&lt;br /&gt;
Die korrekte Firmware-Version ist vom Router-Modell, der Aufstell-Region (Köln/Bonn/Umgebung) sowie der aktuell installierten Firmware abhängig. Das Modell und die Versionsnummer deines Routers findest du auf der Rückseite des Gerätes. &lt;br /&gt;
&lt;br /&gt;
[[Datei:wr741nd_pi3.jpg||400px|thumb|center]] &lt;br /&gt;
&lt;br /&gt;
Wir stellen unter https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/ weitere hier nicht aufgeführte aktuelle Images bereit, dafür einfach anhand des Dateinamens die zu deinem Modell passende Version auswählen. &amp;lt;br&amp;gt;&lt;br /&gt;
Bitte wähle die Firmware für deinen Router anhand des Modells, der Version und der Region. '''Das ''factory''-Release ist für das Flashen von Original-Routern, die ''sysupgrade''-Version ist für bereits mit Freifunk ausgestattete Router passend.''' &amp;lt;br&amp;gt;&lt;br /&gt;
{|class=&amp;quot;wikitable center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:tl-wr740n.jpg|center|thumb|200px]]&lt;br /&gt;
|[[File:tl-wr740n.jpg|center|thumb|200px]]&lt;br /&gt;
|[[File:tl-wr841n.jpg|center|thumb|200px]]&lt;br /&gt;
|[[File:tl-wr842n.jpg|center|thumb|200px]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-WR740N(D) &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wr740n-nd-v5.bin Köln v5.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wr740n-nd-v5.bin Bonn v5.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wr740n-nd-v5.bin Umgebung v5.x] &amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wr740n-nd-v5-sysupgrade.bin Köln v5.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wr740n-nd-v5-sysupgrade.bin Bonn v5.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wr740n-nd-v5-sysupgrade.bin Umgebung v5.x]&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-WR741N(D) &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wr741n-nd-v5.bin Köln v5.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wr741n-nd-v5.bin Bonn v5.x][https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wr741n-nd-v5.bin Umland v5.x] &amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wr741n-nd-v5-sysupgrade.bin Köln v5.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wr741n-nd-v5-sysupgrade.bin Bonn v5.x][https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wr741n-nd-v5-sysupgrade.bin Umland v5.x] &lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-WR841N(D) &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wr841n-nd-v8.bin Köln v8.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wr841n-nd-v8.bin Bonn v8.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wr841n-nd-v8.bin Umland v8.x]&amp;lt;br&amp;gt;[https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wr841n-nd-v9.bin Köln v9.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wr841n-nd-v9.bin Bonn v9.x][https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wr841n-nd-v9.bin Umland v9.x]&amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wr841n-nd-v8-sysupgrade.bin Köln v8.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wr841n-nd-v8-sysupgrade.bin Bonn v8.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wr841n-nd-v8-sysupgrade.bin Umland v8.x]&amp;lt;br&amp;gt;[https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wr841n-nd-v9-sysupgrade.bin Köln v9.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wr841n-nd-v9-sysupgrade.bin Bonn v9.x][https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wr841n-nd-v9-sysupgrade.bin Umland v9.x]&amp;lt;br&amp;gt;&lt;br /&gt;
(factory + sysupgrade [https://jenkins.kbu.freifunk.net/jenkins/view/KBU/job/KBU-gluon-Master-Koeln/2/deployedArtifacts/ Köln v10.x] [https://jenkins.kbu.freifunk.net/jenkins/view/KBU/job/KBU-gluon-Master-Bonn-small-MTU/10/deployedArtifacts/ Bonn v10.x] [https://jenkins.kbu.freifunk.net/jenkins/view/KBU/job/KBU-gluon-Master-Umland/4/deployedArtifacts/ Umland v10.x] )² &amp;lt;br&amp;gt;&lt;br /&gt;
(factory [http://sd-gp.de/ff-kbu/eigenbau/ Köln, Bonn &amp;amp; Umland v11.x])² &amp;lt;br&amp;gt;&lt;br /&gt;
²nicht als Release-Version. Nur in den Master-Builds enthalten.&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-WR842N(D) &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wr842n-nd-v1.bin Köln v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wr842n-nd-v1.bin Bonn v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wr842n-nd-v1.bin Umland v1.x]&amp;lt;br&amp;gt; [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wr842n-nd-v2.bin Köln v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wr842n-nd-v2.bin Bonn v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wr842n-nd-v2.bin Umland v2.x] &amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wr842n-nd-v1-sysupgrade.bin Köln v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wr842n-nd-v1-sysupgrade.bin Bonn v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wr842n-nd-v1-sysupgrade.bin Umland v1.x]&amp;lt;br&amp;gt; [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wr842n-nd-v2-sysupgrade.bin Köln v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wr842n-nd-v2-sysupgrade.bin Bonn v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wr842n-nd-v2-sysupgrade.bin Umland v2.x]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:tl-wr1043nd.jpg|center|thumb|200px]]&lt;br /&gt;
|[[File:tl-wdr3600.jpg|center|thumb|200px]]&lt;br /&gt;
|[[File:tl-wdr4300.jpg|center|thumb|200px]]&lt;br /&gt;
|[[File:tl-cpe210.jpg|center|thumb|180px]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-WR1043ND &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wr1043n-nd-v2.bin Köln v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wr1043n-nd-v2.bin Bonn v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wr1043n-nd-v2.bin Umland v2.x] &amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wr1043n-nd-v2-sysupgrade.bin Köln v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wr1043n-nd-v2-sysupgrade.bin Bonn v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wr1043n-nd-v2-sysupgrade.bin Umland v2.x] &lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-WDR3600 &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wdr3600-v1.bin Köln v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wdr3600-v1.bin Bonn v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wdr3600-v1.bin Umland v1.x] &amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wdr3600-v1-sysupgrade.bin Köln v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wdr3600-v1-sysupgrade.bin Bonn v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wdr3600-v1-sysupgrade.bin Umland v1.x]&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-WDR4300 &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wdr4300-v1.bin Köln v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wdr4300-v1.bin Bonn v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wdr4300-v1.bin Umland v1.x] &amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wdr4300-v1-sysupgrade.bin Köln v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wdr4300-v1-sysupgrade.bin Bonn v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wdr4300-v1-sysupgrade.bin Umland v1.x]&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-CPE210 &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-cpe210-v1.0.bin Köln v1.0] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-cpe210-v1.0.bin Bonn v1.0] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-cpe210-v1.0.bin Umgebung v1.0]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-cpe210-v1.1.bin Köln v1.1] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-cpe210-v1.1.bin Bonn v1.1] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-cpe210-v1.1.bin Umland v1.1] &amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-cpe210-v1.0-sysupgrade.bin Köln v1.0] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-cpe210-v1.0-sysupgrade.bin Bonn v1.0] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-cpe210-v1.0-sysupgrade.bin Umgebung v1.0]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-cpe210-v1.1-sysupgrade.bin Köln v1.1] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-cpe210-v1.1-sysupgrade.bin Bonn v1.1] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-cpe210-v1.1-sysupgrade.bin Umland v1.1]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Hinweis: '''Das optionale (D) in der Produktbezeichnung steht für die Produktvariante mit auswechselbaren Antennen, was den Router ein paar Euro teuerer macht. Von den Antennen abgesehen ist die Hardware die selbe, dementsprechend gibt es nur eine Firmware für die Modelle mit und ohne (D).&lt;br /&gt;
&lt;br /&gt;
Nach dem Herunterladen der Firmware ist es grundsätzlich sinnvoll die [[Überprüfen der Signatur|Signatur der Datei zu überprüfen]]. Während der Gluon Prerelease-Tests werden jedoch nicht alle Versionen signiert.&lt;br /&gt;
&lt;br /&gt;
=== Router mit dem Computer verbinden ===&lt;br /&gt;
Dafür solltest du Deinen Router mit Strom versorgen sowie die Netzwerkkarte deines PC mit einen der gelben Ports des Routers verbinden, hier reicht ein handelsübliches LAN Kabel. Am PC muss die Netzwerkkarte auf Automatische IP-Adresse beziehen (DHCP) eingestellt sein und WLAN sollte vorübergehend deaktiviert werden.&amp;lt;ref name=&amp;quot;wlanOff&amp;quot;&amp;gt;Da der Router (noch) nicht mit dem Internet verbunden ist könnte euer Rechner (je nach Setup) versuchen sich über WLAN mit evtl. bestehenden Funknetzen zu verbinden, obwohl ein LAN Kabel angeschlossen ist.&amp;lt;/ref&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
=== Freifunk Firmware einspielen ===&lt;br /&gt;
Jetzt kannst du den Router einfach über den Browser konfigurieren.&lt;br /&gt;
&lt;br /&gt;
Dazu rufst du in deinen Browser die auf der Router Rückseite angegebene Adresse auf, in der Regel http://192.168.1.1 (je nach Typ auch http://192.168.0.1) oder http://tplinklogin.net.&lt;br /&gt;
&lt;br /&gt;
Bevor du weitermachst, musst du dich erst anmelden. Die Standrad-Username / -Passwort Kombination ist ebenfalls auf der Routerrückseite zu finden, in der Regel: admin / admin&lt;br /&gt;
&lt;br /&gt;
Dein Browserfenster müsste nun so aussehen – Folge hier dem Link &amp;quot;System Tools&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:TP_link_01_start.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
Als nächste wählst du aus dem Menü &amp;quot;Firmware Upgrade&amp;quot; (1). Danach kannst du die vorhin (in Schritt 2) geladene Datei zum Hochladen auswählen (2). Nach einem Klick auf &amp;quot;Upgrade&amp;quot; (3) beginnt der Prozess.&lt;br /&gt;
&lt;br /&gt;
[[File:TP_link_02_firmware.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
Du musst noch einmal kurz bestätigen …&lt;br /&gt;
&lt;br /&gt;
[[File:TP_link_03_firmware_file.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
… und die Installation läuft. Während die Installation läuft, zieh bitte auf keinen Fall den Stecker oder das Netzwerk-Kabel – denn dann ist dein Router hinüber.&lt;br /&gt;
&lt;br /&gt;
[[File:TP_link_04_upgrade_progress.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
 '''Bei TL-WR841N v8.4:''' Beim Flashen über das Firmware-Upgrade der Original-Firmware tritt ggf. folgender Fehler auf:&lt;br /&gt;
   ''Error code: 23002''&lt;br /&gt;
   ''The uploaded file name is too long!''&lt;br /&gt;
 Hier hilft einfaches Umbenennen der herunter geladenen Freifunk-Firmware.&lt;br /&gt;
&lt;br /&gt;
Nachdem die Firmware fertig eingespielt ist, startet der Router automatisch neu.&lt;br /&gt;
&lt;br /&gt;
Dass der Router neu startet merkst du auch am kurzen Aufblinken der Lämpchen an deinem Router. &lt;br /&gt;
&lt;br /&gt;
[[File:TP_link_05_firmware_reboot_finished.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
Jetzt ist der Router nicht mehr unter der angegeben Adresse sichtbar und eine Fehlermeldung erscheint. Das ist gut so. Denn nun läuft nicht mehr die alte Firmware sondern die neue, tolle Freifunk Firmware auf deinem Router.&lt;br /&gt;
&lt;br /&gt;
=== Anschluss ans Internet ===&lt;br /&gt;
Nach dem automatischen Neustart ist der Router direkt im Normalbetrieb. Wenn keine weiteren Freifunk-Router in der dirkten Umgebung sind, musst Du allerdings den Freifunk-Router noch per Ethernetkabel mit Deinem Internet-Router verbinden, damit der Freifunk-Router auch Internet-Zugriff gewährt. Dazu wird der '''blaue''' Port des Freiunk-Routers mit dem Gästenetz-Port Deines Internet-Routers verbunden. Falls Du dort kein Gästenetz eingerichtet hast oder das gar nicht geht, tut's auch ein &amp;quot;normaler&amp;quot; LAN-Port Deines Routers, wo Du auch deinen Laptop etc. einstöpseln würdest. Ein Gästenetz wäre nur noch etwas sicherer. Eventuell musst Du die Filterregeln für das Gästenetz anpassen, da manche Router in der Standardkonfiguration nur bestimmte Ports freigegeben haben.&lt;br /&gt;
&lt;br /&gt;
'''WICHTIG:''' Wer hier in einer Firma oder gar einer städtischen Einrichtung ''mal eben'' einen Freifunk-Router an deren Intranet anschließt, schadet damit unter Umständen dem Freifunk-Projekt, da das nicht unbemerkt bleibt und fast immer gegen interne Sicherheitsrichtlinien verstößt. Sowas muss von der jeweiligen IT-Leitung explizit erlaubt werden. Wir wollen die Verantwortlichen nicht verärgern sondern überzeugen!&lt;br /&gt;
&lt;br /&gt;
=== Installation überprüfen ===&lt;br /&gt;
Nach erfolgreichem Boot sollte Dein Router nun ein offenes WLAN mit SSID kbu.freifunk.net anzeigen. Nach wenigen Minuten sollte er bei erfolgreichem Internetanschluss ausserdem auf https://map.kbu.freifunk.net auftauchen. (Als neuer Knoten mit kryptischem Namen unter Aktuelles).&lt;br /&gt;
&lt;br /&gt;
[[File:Map-kbu-fresh-router-screen-shot.png|center|thumb|800px|Hier wurde offenbar vor kurzem ein neuer Router (freifunkXXX) eingerichtet aber noch kein Name vergeben.]]&lt;br /&gt;
&lt;br /&gt;
=== Sinnvolle Ergänzungen ===&lt;br /&gt;
Wer seinen Router auch zukünftig auf der [https://map.kbu.freifunk.net Karte] wiederfinden möchte, sollte dem Router noch einen Name und Koordinaten spendieren. Wichtig hierbei: der Routername darf keine Sonderzeichen oder Leerzeichen enthalten, da er ein gültiger Hostname sein muss. Außerdem ist es sinnvoll, für Kontaktanfragen eine E-Mailadresse zu hinterlegen. Hierzu muss der Router noch einmal manuell im [[Gluon_Config_Mode | Config Mode]] neu gestartet werden.&lt;br /&gt;
&lt;br /&gt;
=== Fragen? ===&lt;br /&gt;
&lt;br /&gt;
Solltest Du Fragen zur Einrichtung des Routers haben oder Einträge Deines Knoten ändern wollen, schreibe gerne an unsere [[Mailingliste|E-Mail]]. Gerne kannst Du auch bei unseren regelmäßigen Treffen in Bonn oder Köln vorbeischauen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Neueste Versionen ==&lt;br /&gt;
&lt;br /&gt;
Am 27.4.2016 wurde Gluon v2016.1.4 als maintenance Release veröffentlicht. Hauptsächlich wurden alle WLAN Treiber in Gluon auf den neuesten Stand gebracht, was die Stabilität erhöhen soll.&lt;br /&gt;
&lt;br /&gt;
Die Releasenotes sind zu finden unter http://gluon.readthedocs.org/en/v2016.1.4/releases/v2016.1.4.html&lt;br /&gt;
&lt;br /&gt;
Simon hab das Release mal gebaut und online gestellt. Wer möchte kann es testen (im Ordner &amp;quot;2016.1.4.experimental&amp;quot;):&lt;br /&gt;
https://goo.gl/9EBESD&lt;br /&gt;
&lt;br /&gt;
=== Gluon selber kompilieren ===&lt;br /&gt;
&lt;br /&gt;
Oder wer, falls du grade eine Linux Shell auf hast, kannst das Release auch selber bauen indem du das hier eintippst:&lt;br /&gt;
&lt;br /&gt;
Bonn:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install git subversion build-essential gawk unzip libncurses5-dev zlib1g-dev python libssl-dev&lt;br /&gt;
git clone https://github.com/freifunk-gluon/gluon.git gluon -b v2016.1.x&lt;br /&gt;
cd gluon&lt;br /&gt;
git clone https://github.com/Gammelknup/site-ffkbu site -b v2016.1&lt;br /&gt;
make update&lt;br /&gt;
make -j2 GLUON_TARGET=ar71xx-generic GLUON_BRANCH=experimental BROKEN=1 V=s&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Köln:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install git subversion build-essential gawk unzip libncurses5-dev zlib1g-dev python libssl-dev&lt;br /&gt;
git clone https://github.com/freifunk-gluon/gluon.git gluon -b v2016.1.x&lt;br /&gt;
cd gluon&lt;br /&gt;
git clone https://github.com/Gammelknup/site-ffkbuk site -b v2016.1&lt;br /&gt;
make update&lt;br /&gt;
make -j2 GLUON_TARGET=ar71xx-generic GLUON_BRANCH=experimental BROKEN=1 V=s&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Umland:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install git subversion build-essential gawk unzip libncurses5-dev zlib1g-dev python libssl-dev&lt;br /&gt;
git clone https://github.com/freifunk-gluon/gluon.git gluon -b v2016.1.x&lt;br /&gt;
cd gluon&lt;br /&gt;
git clone https://github.com/Gammelknup/site-ffkbuu site -b v2016.1&lt;br /&gt;
make update&lt;br /&gt;
make -j2 GLUON_TARGET=ar71xx-generic GLUON_BRANCH=experimental BROKEN=1 V=s&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
für exotischere Hardware kann man noch diese Targets bauen:&lt;br /&gt;
&amp;lt;pre&amp;gt;make -j2 GLUON_TARGET=ar71xx-nand GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=brcm2708-bcm2708 GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=brcm2708-bcm2709 GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=mpc85xx-generic GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=ramips-rt305x GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=sunxi GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=x86-64 GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=x86-generic GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=x86-kvm_guest GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=x86-xen_domu GLUON_BRANCH=experimental BROKEN=1 V=s&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=KBU_Gluon_Firmware&amp;diff=4330</id>
		<title>KBU Gluon Firmware</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=KBU_Gluon_Firmware&amp;diff=4330"/>
		<updated>2016-04-29T01:16:35Z</updated>

		<summary type="html">&lt;p&gt;Took: Neueste Version / Gluon kompilieren, Danke an Simon&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Mitmachen]]&lt;br /&gt;
&lt;br /&gt;
Auf dieser Seite wird erläutert, wie du die aktuelle Gluon Firmware auf einem frischen Router installierst, bzw. die original Firmware durch Gluon ersetzt. Alternativ könnte weiterhin die stabile [[KBU Classic Firmware]] (fast) uneingeschränkt verwendet werden, allerdings werden die mit Classic-Firmware ausgestatteten Router NICHT mehr in der Karte angezeigt. Gluon unterstützt auch neuere Hardware. &lt;br /&gt;
Unter [[Gluon_Config_Mode | Config Mode]] findest Du die Information wie Du einen Router mit installierter KBU Gluon Firmware kofigurierst, unter [[Pimp_my_Node | Pimp my Node]] geht es dann weiter in die Tiefe. ;)&lt;br /&gt;
&lt;br /&gt;
== Freifunk-Firmware installieren ==&lt;br /&gt;
=== Freifunk-Firmware auswählen ===&lt;br /&gt;
Die korrekte Firmware-Version ist vom Router-Modell, der Aufstell-Region (Köln/Bonn/Umgebung) sowie der aktuell installierten Firmware abhängig. Das Modell und die Versionsnummer deines Routers findest du auf der Rückseite des Gerätes. &lt;br /&gt;
&lt;br /&gt;
[[Datei:wr741nd_pi3.jpg||400px|thumb|center]] &lt;br /&gt;
&lt;br /&gt;
Wir stellen unter https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/ weitere hier nicht aufgeführte aktuelle Images bereit, dafür einfach anhand des Dateinamens die zu deinem Modell passende Version auswählen. &amp;lt;br&amp;gt;&lt;br /&gt;
Bitte wähle die Firmware für deinen Router anhand des Modells, der Version und der Region. '''Das ''factory''-Release ist für das Flashen von Original-Routern, die ''sysupgrade''-Version ist für bereits mit Freifunk ausgestattete Router passend.''' &amp;lt;br&amp;gt;&lt;br /&gt;
{|class=&amp;quot;wikitable center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:tl-wr740n.jpg|center|thumb|200px]]&lt;br /&gt;
|[[File:tl-wr740n.jpg|center|thumb|200px]]&lt;br /&gt;
|[[File:tl-wr841n.jpg|center|thumb|200px]]&lt;br /&gt;
|[[File:tl-wr842n.jpg|center|thumb|200px]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-WR740N(D) &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wr740n-nd-v5.bin Köln v5.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wr740n-nd-v5.bin Bonn v5.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wr740n-nd-v5.bin Umgebung v5.x] &amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wr740n-nd-v5-sysupgrade.bin Köln v5.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wr740n-nd-v5-sysupgrade.bin Bonn v5.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wr740n-nd-v5-sysupgrade.bin Umgebung v5.x]&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-WR741N(D) &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wr741n-nd-v5.bin Köln v5.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wr741n-nd-v5.bin Bonn v5.x][https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wr741n-nd-v5.bin Umland v5.x] &amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wr741n-nd-v5-sysupgrade.bin Köln v5.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wr741n-nd-v5-sysupgrade.bin Bonn v5.x][https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wr741n-nd-v5-sysupgrade.bin Umland v5.x] &lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-WR841N(D) &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wr841n-nd-v8.bin Köln v8.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wr841n-nd-v8.bin Bonn v8.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wr841n-nd-v8.bin Umland v8.x]&amp;lt;br&amp;gt;[https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wr841n-nd-v9.bin Köln v9.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wr841n-nd-v9.bin Bonn v9.x][https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wr841n-nd-v9.bin Umland v9.x]&amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wr841n-nd-v8-sysupgrade.bin Köln v8.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wr841n-nd-v8-sysupgrade.bin Bonn v8.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wr841n-nd-v8-sysupgrade.bin Umland v8.x]&amp;lt;br&amp;gt;[https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wr841n-nd-v9-sysupgrade.bin Köln v9.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wr841n-nd-v9-sysupgrade.bin Bonn v9.x][https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wr841n-nd-v9-sysupgrade.bin Umland v9.x]&amp;lt;br&amp;gt;&lt;br /&gt;
(factory + sysupgrade [https://jenkins.kbu.freifunk.net/jenkins/view/KBU/job/KBU-gluon-Master-Koeln/2/deployedArtifacts/ Köln v10.x] [https://jenkins.kbu.freifunk.net/jenkins/view/KBU/job/KBU-gluon-Master-Bonn-small-MTU/10/deployedArtifacts/ Bonn v10.x] [https://jenkins.kbu.freifunk.net/jenkins/view/KBU/job/KBU-gluon-Master-Umland/4/deployedArtifacts/ Umland v10.x] )² &amp;lt;br&amp;gt;²nicht als Release-Version. Nur in den Master-Builds enthalten.&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-WR842N(D) &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wr842n-nd-v1.bin Köln v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wr842n-nd-v1.bin Bonn v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wr842n-nd-v1.bin Umland v1.x]&amp;lt;br&amp;gt; [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wr842n-nd-v2.bin Köln v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wr842n-nd-v2.bin Bonn v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wr842n-nd-v2.bin Umland v2.x] &amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wr842n-nd-v1-sysupgrade.bin Köln v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wr842n-nd-v1-sysupgrade.bin Bonn v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wr842n-nd-v1-sysupgrade.bin Umland v1.x]&amp;lt;br&amp;gt; [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wr842n-nd-v2-sysupgrade.bin Köln v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wr842n-nd-v2-sysupgrade.bin Bonn v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wr842n-nd-v2-sysupgrade.bin Umland v2.x]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:tl-wr1043nd.jpg|center|thumb|200px]]&lt;br /&gt;
|[[File:tl-wdr3600.jpg|center|thumb|200px]]&lt;br /&gt;
|[[File:tl-wdr4300.jpg|center|thumb|200px]]&lt;br /&gt;
|[[File:tl-cpe210.jpg|center|thumb|180px]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-WR1043ND &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wr1043n-nd-v2.bin Köln v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wr1043n-nd-v2.bin Bonn v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wr1043n-nd-v2.bin Umland v2.x] &amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wr1043n-nd-v2-sysupgrade.bin Köln v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wr1043n-nd-v2-sysupgrade.bin Bonn v2.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wr1043n-nd-v2-sysupgrade.bin Umland v2.x] &lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-WDR3600 &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wdr3600-v1.bin Köln v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wdr3600-v1.bin Bonn v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wdr3600-v1.bin Umland v1.x] &amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wdr3600-v1-sysupgrade.bin Köln v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wdr3600-v1-sysupgrade.bin Bonn v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wdr3600-v1-sysupgrade.bin Umland v1.x]&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-WDR4300 &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-tl-wdr4300-v1.bin Köln v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-tl-wdr4300-v1.bin Bonn v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-tl-wdr4300-v1.bin Umland v1.x] &amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-tl-wdr4300-v1-sysupgrade.bin Köln v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-tl-wdr4300-v1-sysupgrade.bin Bonn v1.x] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-tl-wdr4300-v1-sysupgrade.bin Umland v1.x]&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot; | TL-CPE210 &amp;lt;br&amp;gt;&lt;br /&gt;
factory: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-cpe210-v1.0.bin Köln v1.0] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-cpe210-v1.0.bin Bonn v1.0] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-cpe210-v1.0.bin Umgebung v1.0]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/factory/gluon-ffkbuk-v1.4-tp-link-cpe210-v1.1.bin Köln v1.1] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/factory/gluon-ffkbu-v1.4-tp-link-cpe210-v1.1.bin Bonn v1.1] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/factory/gluon-ffkbuu-v1.4-tp-link-cpe210-v1.1.bin Umland v1.1] &amp;lt;br&amp;gt;&lt;br /&gt;
sysupgrade: [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-cpe210-v1.0-sysupgrade.bin Köln v1.0] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-cpe210-v1.0-sysupgrade.bin Bonn v1.0] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-cpe210-v1.0-sysupgrade.bin Umgebung v1.0]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/koeln/images/sysupgrade/gluon-ffkbuk-v1.4-tp-link-cpe210-v1.1-sysupgrade.bin Köln v1.1] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/bonn/images/sysupgrade/gluon-ffkbu-v1.4-tp-link-cpe210-v1.1-sysupgrade.bin Bonn v1.1] [https://jenkins.kbu.freifunk.net/files/kbu-gluon-release/v1.4/umland/images/sysupgrade/gluon-ffkbuu-v1.4-tp-link-cpe210-v1.1-sysupgrade.bin Umland v1.1]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Hinweis: '''Das optionale (D) in der Produktbezeichnung steht für die Produktvariante mit auswechselbaren Antennen, was den Router ein paar Euro teuerer macht. Von den Antennen abgesehen ist die Hardware die selbe, dementsprechend gibt es nur eine Firmware für die Modelle mit und ohne (D).&lt;br /&gt;
&lt;br /&gt;
Nach dem Herunterladen der Firmware ist es grundsätzlich sinnvoll die [[Überprüfen der Signatur|Signatur der Datei zu überprüfen]]. Während der Gluon Prerelease-Tests werden jedoch nicht alle Versionen signiert.&lt;br /&gt;
&lt;br /&gt;
=== Router mit dem Computer verbinden ===&lt;br /&gt;
Dafür solltest du Deinen Router mit Strom versorgen sowie die Netzwerkkarte deines PC mit einen der gelben Ports des Routers verbinden, hier reicht ein handelsübliches LAN Kabel. Am PC muss die Netzwerkkarte auf Automatische IP-Adresse beziehen (DHCP) eingestellt sein und WLAN sollte vorübergehend deaktiviert werden.&amp;lt;ref name=&amp;quot;wlanOff&amp;quot;&amp;gt;Da der Router (noch) nicht mit dem Internet verbunden ist könnte euer Rechner (je nach Setup) versuchen sich über WLAN mit evtl. bestehenden Funknetzen zu verbinden, obwohl ein LAN Kabel angeschlossen ist.&amp;lt;/ref&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
=== Freifunk Firmware einspielen ===&lt;br /&gt;
Jetzt kannst du den Router einfach über den Browser konfigurieren.&lt;br /&gt;
&lt;br /&gt;
Dazu rufst du in deinen Browser die auf der Router Rückseite angegebene Adresse auf, in der Regel http://192.168.1.1 (je nach Typ auch http://192.168.0.1) oder http://tplinklogin.net.&lt;br /&gt;
&lt;br /&gt;
Bevor du weitermachst, musst du dich erst anmelden. Die Standrad-Username / -Passwort Kombination ist ebenfalls auf der Routerrückseite zu finden, in der Regel: admin / admin&lt;br /&gt;
&lt;br /&gt;
Dein Browserfenster müsste nun so aussehen – Folge hier dem Link &amp;quot;System Tools&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:TP_link_01_start.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
Als nächste wählst du aus dem Menü &amp;quot;Firmware Upgrade&amp;quot; (1). Danach kannst du die vorhin (in Schritt 2) geladene Datei zum Hochladen auswählen (2). Nach einem Klick auf &amp;quot;Upgrade&amp;quot; (3) beginnt der Prozess.&lt;br /&gt;
&lt;br /&gt;
[[File:TP_link_02_firmware.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
Du musst noch einmal kurz bestätigen …&lt;br /&gt;
&lt;br /&gt;
[[File:TP_link_03_firmware_file.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
… und die Installation läuft. Während die Installation läuft, zieh bitte auf keinen Fall den Stecker oder das Netzwerk-Kabel – denn dann ist dein Router hinüber.&lt;br /&gt;
&lt;br /&gt;
[[File:TP_link_04_upgrade_progress.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
 '''Bei TL-WR841N v8.4:''' Beim Flashen über das Firmware-Upgrade der Original-Firmware tritt ggf. folgender Fehler auf:&lt;br /&gt;
   ''Error code: 23002''&lt;br /&gt;
   ''The uploaded file name is too long!''&lt;br /&gt;
 Hier hilft einfaches Umbenennen der herunter geladenen Freifunk-Firmware.&lt;br /&gt;
&lt;br /&gt;
Nachdem die Firmware fertig eingespielt ist, startet der Router automatisch neu.&lt;br /&gt;
&lt;br /&gt;
Dass der Router neu startet merkst du auch am kurzen Aufblinken der Lämpchen an deinem Router. &lt;br /&gt;
&lt;br /&gt;
[[File:TP_link_05_firmware_reboot_finished.png|center|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
Jetzt ist der Router nicht mehr unter der angegeben Adresse sichtbar und eine Fehlermeldung erscheint. Das ist gut so. Denn nun läuft nicht mehr die alte Firmware sondern die neue, tolle Freifunk Firmware auf deinem Router.&lt;br /&gt;
&lt;br /&gt;
=== Anschluss ans Internet ===&lt;br /&gt;
Nach dem automatischen Neustart ist der Router direkt im Normalbetrieb. Wenn keine weiteren Freifunk-Router in der dirkten Umgebung sind, musst Du allerdings den Freifunk-Router noch per Ethernetkabel mit Deinem Internet-Router verbinden, damit der Freifunk-Router auch Internet-Zugriff gewährt. Dazu wird der '''blaue''' Port des Freiunk-Routers mit dem Gästenetz-Port Deines Internet-Routers verbunden. Falls Du dort kein Gästenetz eingerichtet hast oder das gar nicht geht, tut's auch ein &amp;quot;normaler&amp;quot; LAN-Port Deines Routers, wo Du auch deinen Laptop etc. einstöpseln würdest. Ein Gästenetz wäre nur noch etwas sicherer. Eventuell musst Du die Filterregeln für das Gästenetz anpassen, da manche Router in der Standardkonfiguration nur bestimmte Ports freigegeben haben.&lt;br /&gt;
&lt;br /&gt;
'''WICHTIG:''' Wer hier in einer Firma oder gar einer städtischen Einrichtung ''mal eben'' einen Freifunk-Router an deren Intranet anschließt, schadet damit unter Umständen dem Freifunk-Projekt, da das nicht unbemerkt bleibt und fast immer gegen interne Sicherheitsrichtlinien verstößt. Sowas muss von der jeweiligen IT-Leitung explizit erlaubt werden. Wir wollen die Verantwortlichen nicht verärgern sondern überzeugen!&lt;br /&gt;
&lt;br /&gt;
=== Installation überprüfen ===&lt;br /&gt;
Nach erfolgreichem Boot sollte Dein Router nun ein offenes WLAN mit SSID kbu.freifunk.net anzeigen. Nach wenigen Minuten sollte er bei erfolgreichem Internetanschluss ausserdem auf https://map.kbu.freifunk.net auftauchen. (Als neuer Knoten mit kryptischem Namen unter Aktuelles).&lt;br /&gt;
&lt;br /&gt;
[[File:Map-kbu-fresh-router-screen-shot.png|center|thumb|800px|Hier wurde offenbar vor kurzem ein neuer Router (freifunkXXX) eingerichtet aber noch kein Name vergeben.]]&lt;br /&gt;
&lt;br /&gt;
=== Sinnvolle Ergänzungen ===&lt;br /&gt;
Wer seinen Router auch zukünftig auf der [https://map.kbu.freifunk.net Karte] wiederfinden möchte, sollte dem Router noch einen Name und Koordinaten spendieren. Wichtig hierbei: der Routername darf keine Sonderzeichen oder Leerzeichen enthalten, da er ein gültiger Hostname sein muss. Außerdem ist es sinnvoll, für Kontaktanfragen eine E-Mailadresse zu hinterlegen. Hierzu muss der Router noch einmal manuell im [[Gluon_Config_Mode | Config Mode]] neu gestartet werden.&lt;br /&gt;
&lt;br /&gt;
=== Fragen? ===&lt;br /&gt;
&lt;br /&gt;
Solltest Du Fragen zur Einrichtung des Routers haben oder Einträge Deines Knoten ändern wollen, schreibe gerne an unsere [[Mailingliste|E-Mail]]. Gerne kannst Du auch bei unseren regelmäßigen Treffen in Bonn oder Köln vorbeischauen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Neueste Versionen ==&lt;br /&gt;
&lt;br /&gt;
Am 27.4.2016 wurde Gluon v2016.1.4 als maintenance Release veröffentlicht. Hauptsächlich wurden alle WLAN Treiber in Gluon auf den neuesten Stand gebracht, was die Stabilität erhöhen soll.&lt;br /&gt;
&lt;br /&gt;
Die Releasenotes sind zu finden unter http://gluon.readthedocs.org/en/v2016.1.4/releases/v2016.1.4.html&lt;br /&gt;
&lt;br /&gt;
Simon hab das Release mal gebaut und online gestellt. Wer möchte kann es testen (im Ordner &amp;quot;2016.1.4.experimental&amp;quot;):&lt;br /&gt;
https://goo.gl/9EBESD&lt;br /&gt;
&lt;br /&gt;
=== Gluon selber kompilieren ===&lt;br /&gt;
&lt;br /&gt;
Oder wer, falls du grade eine Linux Shell auf hast, kannst das Release auch selber bauen indem du das hier eintippst:&lt;br /&gt;
&lt;br /&gt;
Bonn:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install git subversion build-essential gawk unzip libncurses5-dev zlib1g-dev python libssl-dev&lt;br /&gt;
git clone https://github.com/freifunk-gluon/gluon.git gluon -b v2016.1.x&lt;br /&gt;
cd gluon&lt;br /&gt;
git clone https://github.com/Gammelknup/site-ffkbu site -b v2016.1&lt;br /&gt;
make update&lt;br /&gt;
make -j2 GLUON_TARGET=ar71xx-generic GLUON_BRANCH=experimental BROKEN=1 V=s&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Köln:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install git subversion build-essential gawk unzip libncurses5-dev zlib1g-dev python libssl-dev&lt;br /&gt;
git clone https://github.com/freifunk-gluon/gluon.git gluon -b v2016.1.x&lt;br /&gt;
cd gluon&lt;br /&gt;
git clone https://github.com/Gammelknup/site-ffkbuk site -b v2016.1&lt;br /&gt;
make update&lt;br /&gt;
make -j2 GLUON_TARGET=ar71xx-generic GLUON_BRANCH=experimental BROKEN=1 V=s&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Umland:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install git subversion build-essential gawk unzip libncurses5-dev zlib1g-dev python libssl-dev&lt;br /&gt;
git clone https://github.com/freifunk-gluon/gluon.git gluon -b v2016.1.x&lt;br /&gt;
cd gluon&lt;br /&gt;
git clone https://github.com/Gammelknup/site-ffkbuu site -b v2016.1&lt;br /&gt;
make update&lt;br /&gt;
make -j2 GLUON_TARGET=ar71xx-generic GLUON_BRANCH=experimental BROKEN=1 V=s&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
für exotischere Hardware kann man noch diese Targets bauen:&lt;br /&gt;
&amp;lt;pre&amp;gt;make -j2 GLUON_TARGET=ar71xx-nand GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=brcm2708-bcm2708 GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=brcm2708-bcm2709 GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=mpc85xx-generic GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=ramips-rt305x GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=sunxi GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=x86-64 GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=x86-generic GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=x86-kvm_guest GLUON_BRANCH=experimental BROKEN=1 V=s&lt;br /&gt;
make -j2 GLUON_TARGET=x86-xen_domu GLUON_BRANCH=experimental BROKEN=1 V=s&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Pimp_my_Node&amp;diff=4289</id>
		<title>Pimp my Node</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Pimp_my_Node&amp;diff=4289"/>
		<updated>2016-04-14T23:28:03Z</updated>

		<summary type="html">&lt;p&gt;Took: /* Freifunk-Monitor: Router-Status per E-Mail */ added credits (I just did the wiki post...)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Mitmachen]]&lt;br /&gt;
&lt;br /&gt;
Hier finden sich interessante Optionen für etwas versiertere Nutzer. Diese Seite wurde größtenteils für die Classic Firmware geschrieben. Wer Gluon verwendet sollte unbedingt auch Gluon spezifische Resourcen, wie http://gluon.readthedocs.org , zu Rate ziehen. &lt;br /&gt;
&lt;br /&gt;
Die Möglichkeiten und Abweichungen von der Default-Konfiguration sind vielfältig. Diese sollten aber nur dann durchgeführt werden, wenn der Durchführende genau weiß was er da macht. Eine fehlerhaft Konfiguration kann zum Beispiel zu Störungen im Netzwerk führen, ferner könnten illegitime Maßnahmen implementiert werden. Beide zuvor genannten Beispiele würden zu einem Ausschluss aus unserem Netzwerk führen. Dennoch kann man gute Gründe haben die ein Abweichen von den Defaultwerten sinnvoll machen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Netztheorie/Technik und Entwicklung ==&lt;br /&gt;
Vertiefung&lt;br /&gt;
&lt;br /&gt;
*[[FSM-Dynamisches-Bridging]] &lt;br /&gt;
*[[Batman_adv]]&lt;br /&gt;
*[[Entwicklung]]&lt;br /&gt;
*[[Firmware|Firmware/Betriebssystem]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arbeiten auf der Shell ==&lt;br /&gt;
Vorraussetzung für folgende Befehle sind eine Verbindung mit dem KBU Freifunk Netz sowie ein Terminal / Shell. &lt;br /&gt;
Vergesst nicht eth0 gegen die Bezeichnung eures Netzwerkinterfaces, welches am Freifunk hängt zu tauschen. &lt;br /&gt;
Bei Macbooks via Wlan z.B. &amp;quot;en1&amp;quot; statt &amp;quot;eth0&amp;quot;! Die link local Adresse der jeweiligen node findet ihr auf der [http://register.kbu.freifunk.net KBU Register] Seite. Um Dateien auf dem Node ändern zu können, steht als einziger Editor ''vi'' bzw. ''vim'' zur Verfügung.&lt;br /&gt;
 &lt;br /&gt;
Zusätzlich zu den auf dieser Seite erläuterten Modifikationen gibt es im [https://github.com/freifunk-gluon/gluon/wiki/Commandline-administration Github-Wiki der Freifunk-Gluon-Firmware eine ausführliche Liste nützlicher Befehle ].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Firmware aktualisieren ===&lt;br /&gt;
==== Node mit uplink ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@&amp;lt;link local Adresse des Nodes&amp;gt;%eth0              // SSH Verbindung zum Node aufbauen, eth0 ist das lokale Interface, ggf. durch wlan0 etc. ersetzen&lt;br /&gt;
cd ../tmp/                                              // in das Verzeichnis &amp;quot;tmp&amp;quot; wechseln&lt;br /&gt;
free                                                    // Freien Speicher prüfen&lt;br /&gt;
wget http://pfad/zur/firmware.bin                       // Firmware herunterladen und dann&lt;br /&gt;
sysupgrade -v firmware.bin                              // Firmware-Upgrade durchführen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Achtung''': Beim Download der Firmware via wget kann auf dem Router die Integrität der Firmware nicht geprüft werden, da gpg i.d.R. auf den Routern nicht verfügbar ist. Deshalb ist es sicherer, den oben beschriebenen Weg zu wählen, oder die geprüfte Firmware per scp (s.u.) auf den Router zu kopieren. &lt;br /&gt;
&lt;br /&gt;
==== Node ohne uplink (mesh node) ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp -6 -v -r firmware.bin root@\[&amp;lt;link local Adresse des Nodes&amp;gt;%eth0\]:../tmp/          // Firmware auf den node schieben (md5 checken!)&lt;br /&gt;
ssh root@&amp;lt;link local Adresse des Nodes&amp;gt;%eth0 &lt;br /&gt;
cd ../tmp/  &lt;br /&gt;
sysupgrade -v firmware.bin  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Upgrade von inkompatibler Konfiguration (Lagacy auf Gluon, wechsel der hood, etc.) ====&lt;br /&gt;
Bei einem upgrade von einer inkompatiblen Version mittels &amp;lt;code&amp;gt;sysupgrade&amp;lt;/code&amp;gt; muss man normalerweise mittels&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysupgrade -n firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
die aktuellen Settings überschreiben lassen. Auf einem Node den man nur per ssh erreicht ist das unpraktisch, da auch Passwörter und ssh keys gelöscht werden. Zum Glück hat &amp;lt;code&amp;gt;sysupgrade&amp;lt;/code&amp;gt; einen interaktiven Modus, den man per&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysupgrade -i firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
startet. Hier kann man (nachdem man bestätigt hat, das ein Teil der Konfiguration übernommen werden soll) die Liste an zu sichernden Dingen bearbeiten. Die gluon-node-info (geo-Koordinaten und Kontaktadresse) so wie vor allem die drobbear/*keys sollte man behalten, evtl auch system mit dem host name des Nodes, der Rest kann gelöscht werden, falls man da keine wichtigen Anpassungen vorgenommen hat. ('dd' löscht Zeilen in vi ;)&lt;br /&gt;
&lt;br /&gt;
Je nach Route zum Router kann es sein, dass die ssh Verbindung abbricht während des interactiven upgrades. Genauer passiert das, wenn man nur durch einen VPN Tunnel Verbindung hat. (Nicht fleißig am Backbone mitgearbeitet? ;) Das ist blöd, weil man am Ende noch den Neustart bestätigen muss (etwas unsinniger weise). In diesem Fall sollte man besser eine config datei mit z.B. folgenden Zeilen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/etc/dropbear/authorized_keys&lt;br /&gt;
/etc/dropbear/dropbear_dss_host_key&lt;br /&gt;
/etc/dropbear/dropbear_rsa_host_key&lt;br /&gt;
/etc/config/gluon-node-info&lt;br /&gt;
/etc/config/system&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
erstellen und per &amp;lt;code&amp;gt;tar -cz config  &amp;amp;gt; config.tar.gz&amp;lt;/code&amp;gt; packen. Danach kann man mittels&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysupgrade -f config.tar.gz firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
das ganze unattended laufen lassen.&lt;br /&gt;
&lt;br /&gt;
==== Node ''zu Fuß'' updaten ====&lt;br /&gt;
Wenn man physikalischen Zugriff auf den Freifunk-Router hat, kann man auch einfach in den [[Config_Mode]] wechseln und dort über das entsprechende Menü eine neue Freifunk-Firmware hochladen. Hierbei kann man wählen, ob man die ggf. geänderte Konfiguration beibehalten möchte (upgrade-Image) oder alles von Grund auf neu installiert/konfiguriert. Ggf. muss man zuvor noch ein Root-Passwort setzen, damit das Update möglich wird.&lt;br /&gt;
&lt;br /&gt;
==== via TFTP  ====&lt;br /&gt;
Wenn mal ein Router nicht mehr bootet, aber der Bootloader noch funktioniert, (oder man einfach keinen Bock auf das Stock Webinterface hat) kann man häufig noch per tftp recht komfortabel eine neue Firmware einspielen. [http://wiki.openwrt.org/doc/howto/generic.flashing.tftp] ;)&lt;br /&gt;
&lt;br /&gt;
* tftp server auf dem lokalen Rechner installieren (Kurzfassung von z.B. [http://www.cyberciti.biz/faq/install-configure-tftp-server-ubuntu-debian-howto/])&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install tftpd-hpa&lt;br /&gt;
sudo chown -R tftp /srv/tftp/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Config anpassen &amp;amp; neustarten. Das &amp;quot;-c create file&amp;quot; braucht man um vom router Dateien zu senden (config sichern), &amp;quot;-s&amp;quot; da sonst absolute Pfade angegeben werden müssten (macht der Router natürlich nicht). Mehr zu den Optionen findet man auf der [http://linux.die.net/man/8/tftpd man page].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vim /etc/default/tftpd-hpa&lt;br /&gt;
&lt;br /&gt;
TFTP_USERNAME=&amp;quot;tftp&amp;quot;&lt;br /&gt;
TFTP_DIRECTORY=&amp;quot;/srv/tftp&amp;quot;&lt;br /&gt;
TFTP_ADDRESS=&amp;quot;0.0.0.0:69&amp;quot;&lt;br /&gt;
TFTP_OPTIONS=&amp;quot;-s -c&amp;quot;&lt;br /&gt;
&lt;br /&gt;
service tftpd-hpa restart &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Dann muss man noch herausfinden auf welcher IP der Router nach welchem Dateinamen Fragt. Eine gute Quelle ist openWRT, z.B. für den beliebten tl-wr841n wäre finden sich die Infos je nach Version [http://wiki.openwrt.org/toh/tp-link/tl-wr841nd#tftp_recovery_via_bootloader_for_v8_v9_v10_v11 hier].&lt;br /&gt;
&lt;br /&gt;
Falls noch Fragen offen bleiben, [https://www.freifunk-bingen.de/forum/hilfe-unterst%C3%BCtzung/flashen-eines-gebrickten-tp-link-routers-tftp die $Anderen wissen auch was]. ;)&lt;br /&gt;
&lt;br /&gt;
=== Hostnamen des Nodes ändern ===&lt;br /&gt;
Standardmäßig ist der Hostname des Nodes gleich der MAC-Adresse des Routers. Möchte man den Hostnamen ändern, so kann man dies per ssh&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set system.@system[0].hostname=what-ever-dude&lt;br /&gt;
uci commit&lt;br /&gt;
reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Änderung wird erst nach dem Kommando ''reboot'' (danach startet der Node neu) wirksam.&lt;br /&gt;
&lt;br /&gt;
=== IPv6 ping ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ping6 &amp;lt;link local Adresse des Nodes&amp;gt;%eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== IPv6 ssh ===&lt;br /&gt;
Hinter der link local Adresse &amp;quot;%&amp;quot; + &amp;quot;Netzwerk Interface an eurer Kiste&amp;quot; (Hier im Beispiel eth0)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@&amp;lt;link local Adresse des Nodes&amp;gt;%eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Paßwort-Authentifizierung abstellen ===&lt;br /&gt;
'''Wichtig:''' Als erstes prüfen, ob man sich mit seinem Schlüsselpaar auf den Router einloggen kann. Man sollte jetzt nicht mehr nach dem Paßwort gefragt werden (allerhöchstens nach dem Paßwort, welches den privaten Schlüssel schützt).&lt;br /&gt;
Falls das erfolgreich funktioniert, kann man die Datei ''/etc/config/dropbear'' wie folgt ändern:&lt;br /&gt;
&amp;lt;pre&amp;gt;config dropbear&lt;br /&gt;
        option PasswordAuth 'off'&lt;br /&gt;
        option RootPasswordAuth 'off'&lt;br /&gt;
        option Port         '22'&lt;br /&gt;
#       option BannerFile   '/etc/banner'&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nach einem Neustart des Routers mittels ''reboot'' sollte es jetzt nur noch möglich sein, sich mit seinem Schlüsselpaar auf den Rotuer einzuloggen.&lt;br /&gt;
&lt;br /&gt;
=== SSH public key auf Node aufspielen ===&lt;br /&gt;
Möchte man sich nicht immer per Paßwort auf den eigenen Node verbinden, so kann man das auch mit einem Schlüsselpaar realisieren. Falls man danach noch die Authentifizierung per Paßwort abschaltet (s. nächster Punkt), dann hat man einen sicheren Zugriff auf seinen Node realisiert.&lt;br /&gt;
Voraussetzung ist natürlich, dass man schon ein gültiges Schlüsselpaar besitzt. Falls dem so ist, so genügt es, den öffentlichen Schlüssel (public key) auf den Node zu übertragen. Das kann mit Hilfe von scp (secure copy) passieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp -6 id_rsa4096.pub root@[&amp;lt;link local Adresse des Nodes&amp;gt;%eth0]:/etc/dropbear/authorized_keys&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hierbei steht id_rsa.pub für die Datei, die den public key enthält. '''ACHTUNG:''' Obiger Befehl ersetzt die eventuell schon vorhandene Datei authorized_keys auf dem Node. Das ist ok für den ersten Key. Sollen mehrere Keys eingetragen werden (z. B. weil man außer vom Laptop auch vom Tablet auf seinen Node verbinden möchte), kann man das so machen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat ~/.ssh/id_rsa4096.pub | ssh root@[&amp;lt;link local Adresse des Nodes&amp;gt;%eth0] 'umask 077; cat &amp;gt;&amp;gt;.ssh/authorized_keys'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollte beim Kopierversuch die Meldung&lt;br /&gt;
&amp;lt;pre&amp;gt;ssh: Could not resolve hostname fe80:&amp;lt;/pre&amp;gt;&lt;br /&gt;
erscheinen, hat man höchstwahrscheinlich die eckigen Klammern um die IP-Adresse inklusive Interface vergessen. Dann wird der erste Doppelpunkt schon als Ende des Hostnamens interpretiert! Auch hier werden die Änderungen nach einem Neustart des Routers mittels ''reboot'' übernommen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Node überträgt keine Statistiken ===&lt;br /&gt;
Auf der [https://kbu.freifunk.net/cserv Cserv Seite] könnt ihr prüfen, ob eurer Node bereits Statistiken übermittelt.&lt;br /&gt;
==== ntp-Bug in Firmware 1.2.1b beseitigen ====&lt;br /&gt;
Falls sich ein Node-Betreiber wundert, warum sein Node keine Statistiken liefert und es ein Mesh-Only-Node ist (d. h. ohne eigenen Uplink zum Internet), so liegt das an einem Bug in der Firmware. Diesen kann man jedoch mit einfachen Mitteln beheben:&lt;br /&gt;
Editiert wird die Datei ''/etc/config/system''. Dort findet man einen Eintrag ''config timeserver 'ntp'''. Defaultmäßig stehen hier 4 Zeitserver von openwrt (in der Form x.openwrt.pool.ntp.org). Diese müssen bei Mesh-Only-Nodes in IPv6-Adressen geändert werden, und zwar, dass der komplette Konfigurationspunkt wie folgt aussieht:&lt;br /&gt;
&amp;lt;pre&amp;gt;config timeserver 'ntp'&lt;br /&gt;
        list server '2a03:4000:2:494::2'&lt;br /&gt;
        list server '2a01:4f8:161:2461:e4::1'&lt;br /&gt;
        list server '2a02:180:1:1::551f:bb4b'&lt;br /&gt;
        option enabled '1'&lt;br /&gt;
        option enable_server '0'&amp;lt;/pre&amp;gt;&lt;br /&gt;
Auch hier werden die Änderungen erst nach einem Neustart des Nodes mittels ''reboot'' wirksam.&lt;br /&gt;
Dieser Bug soll mit dem nächsten Firmware-Release behoben sein. Man kann die Eintragungen auch in den Nodes mit Internet-Uplink ändern ohne die Funktion zu beeinträchtigen.&lt;br /&gt;
&lt;br /&gt;
==== Collectd prüfen ====&lt;br /&gt;
Falls es durch das beheben des ntp-Bug noch immer nicht zum übertragen der Statistiken kommt, überprüft mal die Einstellungen eures Collectd. Es kann sein das beim Firmware Update diese Config nicht geupdatet wurde und eine veraltet IPV6 Adresse noch vorhanden ist, so sollte es sein:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vim /etc/collectd.conf                             // Config Datei für Collectd zum bearbeiten öffnen&lt;br /&gt;
&lt;br /&gt;
Zeile 39-44:    &lt;br /&gt;
&amp;lt;Plugin ping&amp;gt;                     &lt;br /&gt;
        TTL 127                   &lt;br /&gt;
        Interval 30                         &lt;br /&gt;
        Host &amp;quot;fdd3:5d16:b5dd:3::6&amp;quot;                 // Diesen Eintrag auf Übereinstimmmung prüfen      &lt;br /&gt;
&amp;lt;/Plugin&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Zeile 46-50:&lt;br /&gt;
&amp;lt;Plugin network&amp;gt;                                        &lt;br /&gt;
        Server &amp;quot;fdd3:5d16:b5dd:3::6&amp;quot; &amp;quot;25827&amp;quot;       // Diesen Eintrag auf Übereinstimmmung prüfen                 &lt;br /&gt;
        Forward false                                   &lt;br /&gt;
&amp;lt;/Plugin&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LAN Kopplung ===&lt;br /&gt;
Eine LAN Kopplung kann in manchen Fällen sinnvoll sein, besonders wenn man einen VLAN fähigen Switch und eine bestehende Ntzwerkverkabelung hat. Hier werden die Switchports angwiesen auch über LAN zu meshen.&lt;br /&gt;
&lt;br /&gt;
==== TL-WR841ND ====&lt;br /&gt;
03/2014: Hier wird über die alle 4 LAN Ports gemeshed, Mesh über WLAN kann man optional noch ausschalten! Folgende Config stammt von rampone/FF-KBU und wurde an 2 TL-WR841N v.8 getestet mit KBU-FF-Firmware 1.1.&lt;br /&gt;
&lt;br /&gt;
05/2015: Verifiziert (und ergänzt) für TL-WR841N v.9 und KBU-FF-Firmware 1.2.2rc3 .&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/network'' - Folgende Änderungen wurden an der FF-Firmware vorgenommen:&lt;br /&gt;
#config interface 'freifunk' -&amp;gt; Hier haben wir das ethX-Interface aus &amp;quot;ifname&amp;quot; rausgenommen, damit kein ff aus dem ethX (switch) rauskommt (X=1 für Hardware bis einschließlich v8, sonst X=0).&lt;br /&gt;
#config interface 'mesh_lan' -&amp;gt; kompl. codeblock hinzugefügt, dieser bewirkt das über ethX (switch) gemeshed wird. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config interface 'loopback'&lt;br /&gt;
	option ifname 'lo'&lt;br /&gt;
	option proto 'static'&lt;br /&gt;
	option ipaddr '127.0.0.1'&lt;br /&gt;
	option netmask '255.0.0.0'&lt;br /&gt;
&lt;br /&gt;
config interface 'wan'&lt;br /&gt;
	option ifname 'eth0'&lt;br /&gt;
	option proto 'dhcp'&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option accept_ra '0'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
&lt;br /&gt;
config switch&lt;br /&gt;
	option name 'switch0'&lt;br /&gt;
	option reset '1'&lt;br /&gt;
	option enable_vlan '1'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'switch0'&lt;br /&gt;
	option vlan '1'&lt;br /&gt;
	option ports '0 1 2 3 4'&lt;br /&gt;
&lt;br /&gt;
config interface 'freifunk'&lt;br /&gt;
	option ifname 'bat0'		#LAN-Kopplung: ifname eth1 (bzw. eth0, s.o.) entfernt&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option proto 'none'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option accept_ra '1'&lt;br /&gt;
	option macaddr '10:fe:ed:f1:53:84'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mtu '1528'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_vpn'&lt;br /&gt;
	option ifname 'mesh-vpn'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
	option macaddr '12:fe:ed:f2:53:84'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_lan'		#LAN-Kopplung: Codeblock mesh-lan hinzugefuegt&lt;br /&gt;
	option ifname 'eth0'            # ab TL-841N(D) v9: eth0, bis v8: eth1 . Bei falschem Interface läuft das mesh-lan über den blauen Port. Wer's mag...&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/wireless'' - Hier wird der Codeblock, der für das Mesh über WLAN verantwortlich ist auskommentiert (optional)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#config wifi-iface 'wifi_mesh'&lt;br /&gt;
#       option device 'radio0'&lt;br /&gt;
#       option network 'mesh'&lt;br /&gt;
#       option mode 'adhoc'&lt;br /&gt;
#       option ssid '02:d1:11:37:fc:39'&lt;br /&gt;
#       option bssid '02:d1:11:37:fc:39&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TL-WDR4300 ====&lt;br /&gt;
Das gleiche nochmal für den 4300er&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/network''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config interface 'loopback'&lt;br /&gt;
	option ifname 'lo'&lt;br /&gt;
	option proto 'static'&lt;br /&gt;
	option ipaddr '127.0.0.1'&lt;br /&gt;
	option netmask '255.0.0.0'&lt;br /&gt;
&lt;br /&gt;
config interface 'wan'&lt;br /&gt;
	option ifname 'eth0.2'&lt;br /&gt;
	option proto 'dhcp'&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option accept_ra '0'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option macaddr 'a2:f3:c1:65:81:cd'&lt;br /&gt;
&lt;br /&gt;
config switch&lt;br /&gt;
	option name 'eth0'&lt;br /&gt;
	option reset '1'&lt;br /&gt;
	option enable_vlan '1'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'eth0'&lt;br /&gt;
	option vlan '1'&lt;br /&gt;
	option ports '0t 2 3 4 5'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'eth0'&lt;br /&gt;
	option vlan '2'&lt;br /&gt;
	option ports '0t 1'&lt;br /&gt;
&lt;br /&gt;
config interface 'freifunk'&lt;br /&gt;
	option ifname 'bat0'		#LAN-Kopplung: ifname eth0.1 entfernt&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option proto 'none'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option accept_ra '1'&lt;br /&gt;
	option macaddr 'a0:f3:c1:64:81:cc'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mtu '1528'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_vpn'&lt;br /&gt;
	option ifname 'mesh-vpn'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
	option macaddr 'a2:f3:c1:65:81:cc'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_lan'		#LAN-Kopplung: Codeblock mesh-lan hinzugefuegt&lt;br /&gt;
        option ifname 'eth0.1'&lt;br /&gt;
        option proto 'batadv'&lt;br /&gt;
        option mesh 'bat0'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einsperren des Freifunk-Routers in eine DMZ ==&lt;br /&gt;
&lt;br /&gt;
Wer seinen Freifunk-Router einsperren und/oder die Bandbreite begrenzen möchte, kann dies am einfachsten tun, indem er ihn an seiner Firewall an einen eigenen Netzwerkport klemmt und diesen dann als DMZ konfiguriert. Ein KBU-Freifunk-Router muß zur Zeit im LAN DHCP, DNS, im Internet NTP sowie mit den [[fastd]]-Knoten reden können. Folgendes Bespiel für eine iptables-Firewall nimmt an, dass der Freifunk-Router über eth2 angeschlossen ist:&lt;br /&gt;
&lt;br /&gt;
 # eth2 darf nur dns, ntp, dhcp und ansonsten mit den fastdX reden&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p udp --dport 67:68 --sport 67:68 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p udp --dport 67:68 --sport 67:68 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p udp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p tcp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p udp --dport 123                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p udp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p tcp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p udp --dport 123                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 176.9.41.253                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 176.9.41.253                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 178.63.59.41                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 178.63.59.41                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 37.120.169.214               -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 37.120.169.214               -j ACCEPT &lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 37.221.195.47                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 37.221.195.47                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 78.46.68.75                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 78.46.68.75                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 84.201.35.206                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 84.201.35.206                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT                                      -j DROP&lt;br /&gt;
 iptables -i eth2 -A FORWARD                                    -j DROP&lt;br /&gt;
 # eth2 darf maximal 2000 kbit/s ein- und ausgehenden traffic machen&lt;br /&gt;
 wondershaper eth2 2000 2000&lt;br /&gt;
&lt;br /&gt;
Prinzipiell könnte man den Traffic noch weiter einschränken. DHCP und DNS müssen nur zum DHCP- bzw. DNS-Server funktionieren und der Traffic zu den fastd-Servern ließe sich auf TCP Port 80 und UDP Port 10000 begrenzen.&lt;br /&gt;
&lt;br /&gt;
===Alternative: Einsperren im VLAN===&lt;br /&gt;
siehe: [[FF-Router einsperren im VLAN]]&lt;br /&gt;
&lt;br /&gt;
== Weboberfläche aktivieren ==&lt;br /&gt;
&lt;br /&gt;
Im Normalbetrieb ist erst mal kein Zugriff notwendig (und auch erst mal nicht vorgesehen). Das läuft einfach! ;-) Und es gibt im Normalbetrieb eben auch kein Webinterface, welches Sicherheitslücken haben könnte.&lt;br /&gt;
&lt;br /&gt;
Zum ersten Konfigurieren schaltet mal den Router in einen Konfig-Modus. Der Router nimmt dann in diesem Modus nicht mehr am Freifunknetzwerk teil. Nun kann man dann Rechner an die LAN Ports des Freifunkrouters anschließen und über ein Webinterface per Browser den Router konfigurieren oder Updaten. Das sollte aber nur ganz selten notwendig sein. Nach einem Reboot des Routers geht das Gerät dann wieder in den Freifunk-Modus mit deinen Konfigurationsänderungen.&lt;br /&gt;
&lt;br /&gt;
Wenn man Spaß am Basteln hat kann man das Webinterface aber auch im Normalbetrieb aktivieren. Für die Absicherung muss man dann aber selber sorgen denn per Default ist das nicht abgesichert. Hier die Anleitung nach [http://wiki.freifunk.in-kiel.de/wiki/Firmware Freifunk Kiel], um auf die Weboberfläche zu gelangen:&lt;br /&gt;
&lt;br /&gt;
Das Webinterface des Routers ist nicht über die Link-Local-Adresse, sondern nur über die generelle IPv6 Adresse des Routers zu erreichen. Die IPv6-Adresse bekommt man über SSH (s. [[Pimp_my_Node#IPv6_ssh|IPv6 ssh]] auf den Router:&lt;br /&gt;
  ssh root@LinkLocalIPv6adresse_des_routers%Interface&lt;br /&gt;
Die generelle IPv6-Adresse erfährt man durch Eingabe von&lt;br /&gt;
  ifconfig | grep Global&lt;br /&gt;
Die IPv6-Adresse (&amp;quot;inet6 adr&amp;quot;) kann man nun im Browser in eckigen Klammern und vorangestelltem &amp;quot;http://&amp;quot; aufrufen (zum Beispiel: http://[2001:67c:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx]/) und gelangt so zum Webinterface LuCI.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
 uci delete uhttpd.main.listen_http&lt;br /&gt;
 uci delete uhttpd.main.listen_https&lt;br /&gt;
 &lt;br /&gt;
 uci add_list uhttpd.main.listen_http='[::]:80'&lt;br /&gt;
 uci add_list uhttpd.main.listen_http='0.0.0.0:80'&lt;br /&gt;
 uci add_list uhttpd.main.listen_https='[::]:80'&lt;br /&gt;
 uci add_list uhttpd.main.listen_https='0.0.0.0:80'&lt;br /&gt;
 &lt;br /&gt;
 uci commit uhttpd&lt;br /&gt;
 &lt;br /&gt;
 /etc/init.d/uhttpd enable&lt;br /&gt;
&lt;br /&gt;
== Uplink mit Android-Tethering/USB Netzwerkkarte ==&lt;br /&gt;
(ssh Zugang Erfahrung nötig)&lt;br /&gt;
&lt;br /&gt;
Das ganze sei von Anfang an als &amp;quot;sportlich&amp;quot; zu betrachten. Leider sind mobile 3g/LTE Tarife fast ausnahmslos nach einem bestimmten Volumen gedrosselt (üblicherweise auf 64 bis 56 kbit/s (neuere NetzclubSim sogar auf 32 kbit/s), Ausnahme bilden hier nur LTE Zuhause &amp;quot;DSL&amp;quot; Ersatz Tarife -&amp;gt; 386kbit/s).&lt;br /&gt;
Da Freifunk auch bei Nichtbenutzung Daten überträgt, ist nur bei LTE Zuhause Tarifen interessant dies als Dauerlösung zu nutzen. Dort ist aber wiederum meist ein LTE-Router vor Ort und man den Router auch &amp;quot;traditionell&amp;quot; via LAN Kabel anbinden.&lt;br /&gt;
Bei Benutzung als uplink bei Strassenfesten/Festivals etc. ist wahrscheinlich, dass erstens das Datenvolumen schnell aufgebraucht sein wird und zweitens ab einer bestimmten Größe auch das 3g Netz vor Ort überlastet ist. Wenn man es dennoch machen will (mehrere Sim Karten/spezieller hochvolumiger Tarif/Netzbetreiber gesponserter Uplink (träum)), sollte man die Benutzung von LTE erwägen. Auch dort könnten aber durch zukünftige Adapation Überlasterscheinungen auftreten. Desweitern nutzen 2g/3g/4g auch dasselbe Backbone, welcher dann auch für LTE ein Flaschenhals darstellt.&lt;br /&gt;
Muss nochmal nachprüfen, aber wenn, dann nicht uninteressant: Der Wlan Zugang des Telefons (CM7) wurde per tethering weitergeleitet und bei Abschalten gab es fallback auf 3g -&amp;gt; nicht schöne, aber einfache &amp;quot;Immer&amp;quot;netzlösung?  Mein Tablet zeigt nicht dieses Verhalten.)&lt;br /&gt;
&lt;br /&gt;
Blablabla, jetzt geht es los:&lt;br /&gt;
Das ganze habe ich mit einem 1043ND und einem droid 2.3CM7 Telefon und einem droid 2.2 Tablet ausprobiert, sollte aber auf jeglichen OpenWrt Router mit USB, Android USB tethering fähigem Gerät und einfachen USB ethernet Adaptern (nachprüfen!!!) funktionieren:&lt;br /&gt;
&lt;br /&gt;
- Per ssh in den router einloggen&lt;br /&gt;
- Installieren der notwendigen Treiber&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
opkg update&lt;br /&gt;
opkg install kmod-usb-uhci kmod-usb-net-rndis&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies sollte, falls ihr noch keine USB Unterstützung in der Firmware hat auch diese über dependencies nachinstallieren. (nachprüfen!!!)&lt;br /&gt;
&lt;br /&gt;
- Ihr müsst den Netzwerkzugang für da neue Interface &amp;quot;usb0&amp;quot; noch konfigurieren. Unter /etc/config/network fügt ihr z.B. folgendes hinzu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config interface 'wan2'&lt;br /&gt;
       option ifname 'usb0'&lt;br /&gt;
       option proto 'dhcp'&lt;br /&gt;
       option type 'bridge'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch unter Luci sollte dies konfigurierbar sein. &lt;br /&gt;
&lt;br /&gt;
- Nach einem Neustart und einem angeschlossenen Gerät sollte nun der Uplink via dem USB Netzwerk Gerät/Android tethering funktionieren.&lt;br /&gt;
- Sollte das Gerät erst später angeschlossen werden, so könnt ihr mit folgendem Befehl das Netzwerkgerät starten.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifup wan2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(Dies ist noch nicht ein perfektes Tutorial, werde es nochmal durchprobieren. Einen UMTS Stick hatte ich auf Anhieb noch nicht zum laufen gebracht. Auch scheint Multiwan in OpenWRT eine interessante Sache)&lt;br /&gt;
&lt;br /&gt;
== Zusätzlich zum Freifunk auch privates WLAN einrichten ==&lt;br /&gt;
&lt;br /&gt;
Es ist möglich ein privates WLAN anzulegen, das mit dem WAN Port gebridged und separat zum Mesh Netzwerk ist. (Bitte beachten, dass Mesh on Wan nicht zeitgleich mit aktiviert werden sollte.) &lt;br /&gt;
Effekt: Das private WLAN wird erweitert, zeitgleich fungiert der Router als Freifunk-Router. Die Netze sind voneinander abgekoppelt.&lt;br /&gt;
Das private WLAN kann per SSH in der Konsole aktiviert werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set wireless.wan_radio0=wifi-iface&lt;br /&gt;
uci set wireless.wan_radio0.device=radio0&lt;br /&gt;
uci set wireless.wan_radio0.network=wan&lt;br /&gt;
uci set wireless.wan_radio0.mode=ap&lt;br /&gt;
uci set wireless.wan_radio0.encryption=psk2&lt;br /&gt;
uci set wireless.wan_radio0.ssid=&amp;quot;$SSID&amp;quot;&lt;br /&gt;
uci set wireless.wan_radio0.key=&amp;quot;$KEY&amp;quot;&lt;br /&gt;
uci set wireless.wan_radio0.disabled=0&lt;br /&gt;
uci commit&lt;br /&gt;
wifi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Bitte ersetze $SSID mit dem Namen deines Heimnetzwerks und $KEY mit deinem bisher üblichen Key (der vom privaten Router). Falls dein Router beide Frequenzbänder unterstützt(2.4 und 5 Ghz) und du in beiden auch privates WLAN aktivieren möchtest, muss dies für radio0 und radio1 mit übernommen werden.&lt;br /&gt;
Zum deaktivieren des Ganzen wie folgt vorgehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set wireless.wan_radio0.disabled=1&lt;br /&gt;
uci commit&lt;br /&gt;
wifi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Automatischer Neustart bei längerem Mesh-Verlust, quick hack (and improved hack) zur Analyse ==&lt;br /&gt;
&lt;br /&gt;
Bei der Vernetzung von Notunterkünften mit Gluon-Beta (via Euskirchen) ist bei einem CPE210-Uplink aufgefallen, dass sämtliche Mesh-Verbindungen über Stunden ausgefallen waren. Es war zunächst unklar, ob überwiegend die Stromversorgung ursächlich ist, insbesondere da der Uplink-Router mehrfach betroffen und trotzdem via VPN erreichbar war. Dabei war dann nur ein Mesh mit sich selbst via &amp;quot;batctl o&amp;quot; sichtbar. Einzelne Mesh-Only-Router zeigten ebenfalls (selten) Ausfälle über mehrere Stunden: teilweise Nachts, wo Renovierungsarbeiten nicht die Ursache sein konnten.&lt;br /&gt;
&lt;br /&gt;
Um längere Ausfälle zu vermeiden wurde folgendes Script unter /root/check_mesh.sh abgelegt, das via cron-Job automatisch jede Minute ausgeführt wird und nach 10 Minuten ohne Mesh-Verbindung einen Reboot auslöst:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash&lt;br /&gt;
&lt;br /&gt;
FAILCOUNTFILE=/var/run/mesh0_failcount&lt;br /&gt;
MAXFAILCOUNT=10&lt;br /&gt;
&lt;br /&gt;
# check mesh connections with different originators and nexthops, MAC is 17 chars long&lt;br /&gt;
count=`batctl o | awk '/mesh0/{originator=substr($0,1,17); nexthop=substr($0,37,17); if (originator != nexthop){print originator&amp;quot; &amp;quot;nexthop}}' | wc -l`&lt;br /&gt;
&lt;br /&gt;
if [ $count -gt 1 ]; then  ## more than a single mesh with itself is left&lt;br /&gt;
  echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
else&lt;br /&gt;
  if [ -f $FAILCOUNTFILE ]; then  &lt;br /&gt;
    read failcount &amp;lt; $FAILCOUNTFILE&lt;br /&gt;
    failcount=$(($failcount+1))&lt;br /&gt;
    if [ $failcount -ge $MAXFAILCOUNT ]; then&lt;br /&gt;
      touch /etc/mesh0_failcount_`date +&amp;quot;%Y-%m-%d_%H%M&amp;quot;`&lt;br /&gt;
      sync&lt;br /&gt;
      reboot&lt;br /&gt;
    fi &lt;br /&gt;
    echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
  else&lt;br /&gt;
    echo 1 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
  fi&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es muss (hier mit awk, s.o.) nach _unterschiedlichen_ Werten für Originator und NextHop ausschau gehalten werden, denn bei einem fehlenden Mesh zwischen zwei Knoten meshen die Knoten noch mit sich selbst:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# batctl o | grep mesh0&lt;br /&gt;
62:e6:28:24:5f:52    0.730s   (  6) 62:e6:28:24:5f:52 [     mesh0]: 62:e6:28:24:5f:52 (  6)&lt;br /&gt;
62:e6:28:72:32:48    0.730s   (  8) 62:e6:28:72:32:48 [     mesh0]: 62:e6:28:72:32:48 (  8)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das war lesbar und einfach, aber wegen ständiger Schreibzugriffe schlecht für die Lebensdauer der Flash-Speicher. Besser also nur schreiben wenn Fehler passieren, etwa so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash&lt;br /&gt;
&lt;br /&gt;
FAILCOUNTFILE=/var/run/mesh0_failcount&lt;br /&gt;
MAXFAILCOUNT=10&lt;br /&gt;
&lt;br /&gt;
# check mesh connections with different originators and nexthops, MAC is 17 chars long&lt;br /&gt;
count=`batctl o | awk '/mesh0/{originator=substr($0,1,17); nexthop=substr($0,37,17); if (originator != nexthop){print originator&amp;quot; &amp;quot;nexthop}}' | wc -l`&lt;br /&gt;
&lt;br /&gt;
if [ -f $FAILCOUNTFILE ]; then          # Does the failcount file exist at all?&lt;br /&gt;
  read failcount &amp;lt; $FAILCOUNTFILE       # If it exist then there is a number in.&lt;br /&gt;
  if [ $count -gt 0 ]; then             # At least one originator with different nexthop exists&lt;br /&gt;
    if [ $failcount -gt 0 ]; then       # We'r lucky, everything is fine again!&lt;br /&gt;
      echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
      exit&lt;br /&gt;
    fi&lt;br /&gt;
  else                                  # no nexthop different than originator exists &lt;br /&gt;
    failcount=$(($failcount+1))&lt;br /&gt;
    if [ $failcount -ge $MAXFAILCOUNT ]; then&lt;br /&gt;
      echo 0 &amp;gt; $FAILCOUNTFILE                   # Reset counter before reboot&lt;br /&gt;
      logread &amp;gt; /etc/mesh0_failcount_lastwords_`date +&amp;quot;%Y-%m-%d_%H%M&amp;quot;`  # DEBUG info&lt;br /&gt;
      sync&lt;br /&gt;
      reboot&lt;br /&gt;
    fi &lt;br /&gt;
    echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
  fi&lt;br /&gt;
else&lt;br /&gt;
  echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Script wird dann noch ausführbar gemacht:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /root/check_mesh.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Via &amp;quot;crontab -e&amp;quot; führt dann folgender Eintrag zur Ausführung zu jeder vollen Minute:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* * * * * /root/check_mesh.sh &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wichtig ist, dass ein ausreichender Zeitraum zum Aufbau des Mesh-Netzes nach dem Reboot verbleibt. 10 Minuten (MAXFAILCOUNT) sollten hierzu ausreichen.&lt;br /&gt;
&lt;br /&gt;
Im /etc -Verzeichnis (das wurde gewählt, da Änderungen hier einen Neustart überleben) sind dann solche Reboot-Ereignisse ablesbar:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -al | grep failcount&lt;br /&gt;
-rw-r--r--    1 root     root             0 Oct 26 06:22 mesh0_failcount_2015-10_26_0622&lt;br /&gt;
-rw-r--r--    1 root     root             0 Oct 29 08:12 mesh0_failcount_2015-10-29_0812&lt;br /&gt;
-rw-r--r--    1 root     root             0 Oct 30 21:59 mesh0_failcount_2015-10-30_2159&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Vorfälle traten unregelmäßig alle paar Tage auf, wurden aber durch das Script abgefangen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Client-WLAN nachts automatisch ausstellen ==&lt;br /&gt;
&lt;br /&gt;
In Jugendherbergen oder Flüchtlingsheimen kann es durch rücksichts- oder gedankenloses Verhalten einzelner Gäste oder Bewohner zu akkustischen Beeinträchtigungen kommen, die durch temporäres Ausschalten des WLAN-Client-Netzes vermindert werden können. Damit kann natürlich nicht verhindert werden, dass einzelne Bewohner sich einen eigenen Freifunk-Router konfigurieren und ins Mesh-Netz hängen - das wäre ja sogar erwünscht. Folgendes Script ''restrict_client_access.sh'' ermöglicht das Abschalten in den frühen Morgenstunden (d.h. vor 0 Uhr abzuschalten ist hier nicht berücksichtigt). Es ist bisher für TP-Link TL-WR841-ND, sowie mit TL-WDR4300 und TL-WDR3600 mit der aktuellen Firmware v1.4 getestet. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash&lt;br /&gt;
&lt;br /&gt;
STOP_HOUR=0   # needs to be smaller than START_HOUR!!!&lt;br /&gt;
START_HOUR=7  # disable client0 network device if it's active &lt;br /&gt;
              # and hour is between STOP_HOUR and START_HOUR &lt;br /&gt;
&lt;br /&gt;
hour=`date +&amp;quot;%H&amp;quot;`&lt;br /&gt;
&lt;br /&gt;
ip addr list client0 &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
if [ $? -eq 0 ]; then                   # client network is on&lt;br /&gt;
  if [ $hour -lt ${START_HOUR} -a $hour -ge ${STOP_HOUR} ]; then        # turn it off&lt;br /&gt;
    uci set wireless.client_radio0.disabled=1&lt;br /&gt;
    uci set wireless.client_radio1.disabled=1                           # additional 5GHz wifi exists (e.g. WDR3600)&lt;br /&gt;
    uci commit wireless&lt;br /&gt;
    /etc/init.d/network restart&lt;br /&gt;
  fi&lt;br /&gt;
else                                    # client network is off&lt;br /&gt;
  if [ $hour -ge ${START_HOUR} -o $hour -lt ${STOP_HOUR} ]; then        # turn it on &lt;br /&gt;
    uci set wireless.client_radio0.disabled=0&lt;br /&gt;
    uci set wireless.client_radio1.disabled=0                           # additional 5GHz wifi exists (e.g WDR3600)&lt;br /&gt;
    uci commit wireless        &lt;br /&gt;
    /etc/init.d/network restart&lt;br /&gt;
  fi&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Script kann z.B. einfach im /root/ -Verzeichnis abgelegt werden. Via &amp;quot;crontab -e&amp;quot; führt dann folgender Eintrag zur Ausführung zu jeder vollen Minute:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* * * * * /root/restrict_client_access.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Hinweis:''' Die uci- sowie das Restart-Kommando dürfen nicht ausserhalb der if-Bedingungen das Script ''vereinfachen'', da sie jeweils nur bei einmaligem Umstellen täglich ausgeführt werden dürfen. Sonst verliert man jede Minute das Netz...&lt;br /&gt;
&lt;br /&gt;
'''Wichtig ''': Der NTP-Dienst bei Mesh-Only-Routern muss ggf. erst (oder nochmal) nach der hergestellten Mesh-Verbindung durchgestartet werden, da NTP keine großen Zeitsprünge macht. Das kan z.B. durch folgenden Eintrag via Crontab automatisiert werden (hier: zur vollen Minute 8, die ggf. nach längerer Auszeit auch zunächst falsch sein kann):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
8 * * * * /etc/init.d/sysntpd restart&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Besser wäre hier ein Script, dass nach dem erfolgreichen Herstellen einer Mesh-Verbindung zum Uplink den ndtd einmal durchstartet, damit die Zeit initial synchronisiert wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Client-WLAN an Mesh-Only-Routern nur aktivieren, wenn Mesh-WLAN vorhanden ist ==&lt;br /&gt;
&lt;br /&gt;
Bei Routern, die selbst keinen Uplink haben und deshalb davon abhängig sind mit Nachbarn zu meshen, kann das Freifunk-Client-WLAN ausgestellt werden, wenn kein Mesh-Link (und damit auch kein entfernter Uplink) greifbar ist.&lt;br /&gt;
&lt;br /&gt;
Folgendes Script kann in ''/root/client-off-if-mesh-off.sh'' abgelegt (und via ''chmod +x /root/client-off-if-mesh-off.sh'' ausführbar gemacht) werden, das dann via cron regelmäßig aufgerufen wird:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash                                                                                          &lt;br /&gt;
&lt;br /&gt;
FAILCOUNTFILE=/var/run/mesh0_nogatewaycount&lt;br /&gt;
MAXFAILCOUNT=2&lt;br /&gt;
&lt;br /&gt;
# check mesh connections with different originators and nexthops, MAC is 17 chars long&lt;br /&gt;
batctl gwl | grep -q &amp;quot;No gateways in range&amp;quot;&lt;br /&gt;
no_gw=$?&lt;br /&gt;
&lt;br /&gt;
if [ -f $FAILCOUNTFILE ]; then          # Does the failcount file exist at all?&lt;br /&gt;
  read failcount &amp;lt; $FAILCOUNTFILE       # If it exist then there is a number in.&lt;br /&gt;
  if [ ${no_gw} -eq 1 ]; then           # There is a gateway&lt;br /&gt;
    if [ $failcount -gt 0 ]; then       # We'r lucky, it is fine again, we decrease the failcount&lt;br /&gt;
      failcount=$(($failcount-1))&lt;br /&gt;
      echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
      if [ $failcount -eq 0 ]; then&lt;br /&gt;
        # turn on client network &lt;br /&gt;
        uci set wireless.client_radio0.disabled=0&lt;br /&gt;
        uci commit wireless&lt;br /&gt;
        wifi&lt;br /&gt;
      fi&lt;br /&gt;
      exit&lt;br /&gt;
    fi&lt;br /&gt;
  else                                  # no nexthop different than originator exists &lt;br /&gt;
    failcount=$(($failcount+1))&lt;br /&gt;
    if [ $failcount -eq $MAXFAILCOUNT ]; then&lt;br /&gt;
      # logread &amp;gt; /etc/mesh0_failcount_no-mesh_`date +&amp;quot;%Y-%m-%d_%H%M&amp;quot;`  # DEBUG info&lt;br /&gt;
      # turn off client network &lt;br /&gt;
      uci set wireless.client_radio0.disabled=1&lt;br /&gt;
      uci commit wireless&lt;br /&gt;
      wifi&lt;br /&gt;
    fi&lt;br /&gt;
    if [ $failcount -le $MAXFAILCOUNT ]; then ## only memorize failcounts up to MAXFAILCOUNT &lt;br /&gt;
      echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
    fi&lt;br /&gt;
  fi&lt;br /&gt;
else&lt;br /&gt;
  echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Via &amp;quot;crontab -e&amp;quot; führt dann folgender Eintrag zur Ausführung zu jeder vollen Minute:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* * * * * /root/client-off-if-mesh-off.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das obige Script ist dahingehend optimiert, dass nur bei Änderungen des Mesh-Status Daten auf den Flash-Speicher geschrieben werden. Für TP-Link WR 841ND wurde obiges Script getestet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Freifunk-Monitor: Router-Status per E-Mail ==&lt;br /&gt;
&lt;br /&gt;
Ich zitiere mal von der Mailingliste - das ganze ist in der Testphase und ich werde den Wiki-Eintrag später noch entsprechend Überarbeiten.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Hallo, Liebe Mitstreiter!&lt;br /&gt;
&lt;br /&gt;
Wir alle arbeiten daran, unser Netz besser, schneller und stabiler zu machen.&lt;br /&gt;
&lt;br /&gt;
Axel und ich möchten unseren Teil beitragen.&lt;br /&gt;
&lt;br /&gt;
Deshalb entwickeln wir den Freifunk-Monitor – eine kleine Software, die Betreiber von Freifunk-Routern auf Wunsch per E-Mail benachrichtigt, wenn ein- oder mehrere seiner Knoten seitens der Karte nicht erreichbar scheinen.&lt;br /&gt;
&lt;br /&gt;
Dieser Service muss derzeit explizit auf einem Router mit mindestens Gluon 1.4 via SSH angeschaltet werden (es gibt derzeit keine Web-Oberfläche).&lt;br /&gt;
&lt;br /&gt;
Wir laden hiermit alle Router-Betreiber ein, den Monitor zu testen!&lt;br /&gt;
&lt;br /&gt;
Rechnet damit, schlimmstenfalls zu viele oder ungerechtfertigte E-Mails vom Monitor zu bekommen - wir testen die Software noch.&lt;br /&gt;
&lt;br /&gt;
Wie ihr das wieder abschaltet steht unten.&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
Kommando zum Monitoring einschalten (Achtung, was folgt ist EINE Zeile):&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;if uci:get_first('gluon-node-info', 'owner', 'send_alerts', '') ~= '' then return true end&amp;quot; &amp;gt; /lib/gluon/announce/nodeinfo.d/send_alerts ; uci set gluon-node-info.@owner[0].send_alerts=1 ; uci commit&lt;br /&gt;
&lt;br /&gt;
Kommando zum E-Mail-Adresse setzen (falls nicht schon geschehen):&lt;br /&gt;
&lt;br /&gt;
uci set gluon-node-info.@owner[0].contact=ff@cocoanuts.org; uci commit&lt;br /&gt;
&lt;br /&gt;
Kommando zum E-Mail-Adresse prüfen:&lt;br /&gt;
&lt;br /&gt;
uci get gluon-node-info.@owner[0].contact&lt;br /&gt;
&lt;br /&gt;
Kommando zum Monitoring abschalten:&lt;br /&gt;
&lt;br /&gt;
uci set gluon-node-info.@owner[0].send_alerts=0 ; uci commit&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
Frohes Freifunken,&lt;br /&gt;
&lt;br /&gt;
    KaterMikesch &amp;amp; G3ntleman&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Pimp_my_Node&amp;diff=4288</id>
		<title>Pimp my Node</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Pimp_my_Node&amp;diff=4288"/>
		<updated>2016-04-14T23:19:39Z</updated>

		<summary type="html">&lt;p&gt;Took: Beta Freifunk-Monitor - von Mailingliste 1:1 übernommen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Mitmachen]]&lt;br /&gt;
&lt;br /&gt;
Hier finden sich interessante Optionen für etwas versiertere Nutzer. Diese Seite wurde größtenteils für die Classic Firmware geschrieben. Wer Gluon verwendet sollte unbedingt auch Gluon spezifische Resourcen, wie http://gluon.readthedocs.org , zu Rate ziehen. &lt;br /&gt;
&lt;br /&gt;
Die Möglichkeiten und Abweichungen von der Default-Konfiguration sind vielfältig. Diese sollten aber nur dann durchgeführt werden, wenn der Durchführende genau weiß was er da macht. Eine fehlerhaft Konfiguration kann zum Beispiel zu Störungen im Netzwerk führen, ferner könnten illegitime Maßnahmen implementiert werden. Beide zuvor genannten Beispiele würden zu einem Ausschluss aus unserem Netzwerk führen. Dennoch kann man gute Gründe haben die ein Abweichen von den Defaultwerten sinnvoll machen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Netztheorie/Technik und Entwicklung ==&lt;br /&gt;
Vertiefung&lt;br /&gt;
&lt;br /&gt;
*[[FSM-Dynamisches-Bridging]] &lt;br /&gt;
*[[Batman_adv]]&lt;br /&gt;
*[[Entwicklung]]&lt;br /&gt;
*[[Firmware|Firmware/Betriebssystem]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arbeiten auf der Shell ==&lt;br /&gt;
Vorraussetzung für folgende Befehle sind eine Verbindung mit dem KBU Freifunk Netz sowie ein Terminal / Shell. &lt;br /&gt;
Vergesst nicht eth0 gegen die Bezeichnung eures Netzwerkinterfaces, welches am Freifunk hängt zu tauschen. &lt;br /&gt;
Bei Macbooks via Wlan z.B. &amp;quot;en1&amp;quot; statt &amp;quot;eth0&amp;quot;! Die link local Adresse der jeweiligen node findet ihr auf der [http://register.kbu.freifunk.net KBU Register] Seite. Um Dateien auf dem Node ändern zu können, steht als einziger Editor ''vi'' bzw. ''vim'' zur Verfügung.&lt;br /&gt;
 &lt;br /&gt;
Zusätzlich zu den auf dieser Seite erläuterten Modifikationen gibt es im [https://github.com/freifunk-gluon/gluon/wiki/Commandline-administration Github-Wiki der Freifunk-Gluon-Firmware eine ausführliche Liste nützlicher Befehle ].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Firmware aktualisieren ===&lt;br /&gt;
==== Node mit uplink ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@&amp;lt;link local Adresse des Nodes&amp;gt;%eth0              // SSH Verbindung zum Node aufbauen, eth0 ist das lokale Interface, ggf. durch wlan0 etc. ersetzen&lt;br /&gt;
cd ../tmp/                                              // in das Verzeichnis &amp;quot;tmp&amp;quot; wechseln&lt;br /&gt;
free                                                    // Freien Speicher prüfen&lt;br /&gt;
wget http://pfad/zur/firmware.bin                       // Firmware herunterladen und dann&lt;br /&gt;
sysupgrade -v firmware.bin                              // Firmware-Upgrade durchführen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Achtung''': Beim Download der Firmware via wget kann auf dem Router die Integrität der Firmware nicht geprüft werden, da gpg i.d.R. auf den Routern nicht verfügbar ist. Deshalb ist es sicherer, den oben beschriebenen Weg zu wählen, oder die geprüfte Firmware per scp (s.u.) auf den Router zu kopieren. &lt;br /&gt;
&lt;br /&gt;
==== Node ohne uplink (mesh node) ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp -6 -v -r firmware.bin root@\[&amp;lt;link local Adresse des Nodes&amp;gt;%eth0\]:../tmp/          // Firmware auf den node schieben (md5 checken!)&lt;br /&gt;
ssh root@&amp;lt;link local Adresse des Nodes&amp;gt;%eth0 &lt;br /&gt;
cd ../tmp/  &lt;br /&gt;
sysupgrade -v firmware.bin  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Upgrade von inkompatibler Konfiguration (Lagacy auf Gluon, wechsel der hood, etc.) ====&lt;br /&gt;
Bei einem upgrade von einer inkompatiblen Version mittels &amp;lt;code&amp;gt;sysupgrade&amp;lt;/code&amp;gt; muss man normalerweise mittels&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysupgrade -n firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
die aktuellen Settings überschreiben lassen. Auf einem Node den man nur per ssh erreicht ist das unpraktisch, da auch Passwörter und ssh keys gelöscht werden. Zum Glück hat &amp;lt;code&amp;gt;sysupgrade&amp;lt;/code&amp;gt; einen interaktiven Modus, den man per&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysupgrade -i firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
startet. Hier kann man (nachdem man bestätigt hat, das ein Teil der Konfiguration übernommen werden soll) die Liste an zu sichernden Dingen bearbeiten. Die gluon-node-info (geo-Koordinaten und Kontaktadresse) so wie vor allem die drobbear/*keys sollte man behalten, evtl auch system mit dem host name des Nodes, der Rest kann gelöscht werden, falls man da keine wichtigen Anpassungen vorgenommen hat. ('dd' löscht Zeilen in vi ;)&lt;br /&gt;
&lt;br /&gt;
Je nach Route zum Router kann es sein, dass die ssh Verbindung abbricht während des interactiven upgrades. Genauer passiert das, wenn man nur durch einen VPN Tunnel Verbindung hat. (Nicht fleißig am Backbone mitgearbeitet? ;) Das ist blöd, weil man am Ende noch den Neustart bestätigen muss (etwas unsinniger weise). In diesem Fall sollte man besser eine config datei mit z.B. folgenden Zeilen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/etc/dropbear/authorized_keys&lt;br /&gt;
/etc/dropbear/dropbear_dss_host_key&lt;br /&gt;
/etc/dropbear/dropbear_rsa_host_key&lt;br /&gt;
/etc/config/gluon-node-info&lt;br /&gt;
/etc/config/system&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
erstellen und per &amp;lt;code&amp;gt;tar -cz config  &amp;amp;gt; config.tar.gz&amp;lt;/code&amp;gt; packen. Danach kann man mittels&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysupgrade -f config.tar.gz firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
das ganze unattended laufen lassen.&lt;br /&gt;
&lt;br /&gt;
==== Node ''zu Fuß'' updaten ====&lt;br /&gt;
Wenn man physikalischen Zugriff auf den Freifunk-Router hat, kann man auch einfach in den [[Config_Mode]] wechseln und dort über das entsprechende Menü eine neue Freifunk-Firmware hochladen. Hierbei kann man wählen, ob man die ggf. geänderte Konfiguration beibehalten möchte (upgrade-Image) oder alles von Grund auf neu installiert/konfiguriert. Ggf. muss man zuvor noch ein Root-Passwort setzen, damit das Update möglich wird.&lt;br /&gt;
&lt;br /&gt;
==== via TFTP  ====&lt;br /&gt;
Wenn mal ein Router nicht mehr bootet, aber der Bootloader noch funktioniert, (oder man einfach keinen Bock auf das Stock Webinterface hat) kann man häufig noch per tftp recht komfortabel eine neue Firmware einspielen. [http://wiki.openwrt.org/doc/howto/generic.flashing.tftp] ;)&lt;br /&gt;
&lt;br /&gt;
* tftp server auf dem lokalen Rechner installieren (Kurzfassung von z.B. [http://www.cyberciti.biz/faq/install-configure-tftp-server-ubuntu-debian-howto/])&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install tftpd-hpa&lt;br /&gt;
sudo chown -R tftp /srv/tftp/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Config anpassen &amp;amp; neustarten. Das &amp;quot;-c create file&amp;quot; braucht man um vom router Dateien zu senden (config sichern), &amp;quot;-s&amp;quot; da sonst absolute Pfade angegeben werden müssten (macht der Router natürlich nicht). Mehr zu den Optionen findet man auf der [http://linux.die.net/man/8/tftpd man page].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vim /etc/default/tftpd-hpa&lt;br /&gt;
&lt;br /&gt;
TFTP_USERNAME=&amp;quot;tftp&amp;quot;&lt;br /&gt;
TFTP_DIRECTORY=&amp;quot;/srv/tftp&amp;quot;&lt;br /&gt;
TFTP_ADDRESS=&amp;quot;0.0.0.0:69&amp;quot;&lt;br /&gt;
TFTP_OPTIONS=&amp;quot;-s -c&amp;quot;&lt;br /&gt;
&lt;br /&gt;
service tftpd-hpa restart &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Dann muss man noch herausfinden auf welcher IP der Router nach welchem Dateinamen Fragt. Eine gute Quelle ist openWRT, z.B. für den beliebten tl-wr841n wäre finden sich die Infos je nach Version [http://wiki.openwrt.org/toh/tp-link/tl-wr841nd#tftp_recovery_via_bootloader_for_v8_v9_v10_v11 hier].&lt;br /&gt;
&lt;br /&gt;
Falls noch Fragen offen bleiben, [https://www.freifunk-bingen.de/forum/hilfe-unterst%C3%BCtzung/flashen-eines-gebrickten-tp-link-routers-tftp die $Anderen wissen auch was]. ;)&lt;br /&gt;
&lt;br /&gt;
=== Hostnamen des Nodes ändern ===&lt;br /&gt;
Standardmäßig ist der Hostname des Nodes gleich der MAC-Adresse des Routers. Möchte man den Hostnamen ändern, so kann man dies per ssh&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set system.@system[0].hostname=what-ever-dude&lt;br /&gt;
uci commit&lt;br /&gt;
reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Änderung wird erst nach dem Kommando ''reboot'' (danach startet der Node neu) wirksam.&lt;br /&gt;
&lt;br /&gt;
=== IPv6 ping ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ping6 &amp;lt;link local Adresse des Nodes&amp;gt;%eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== IPv6 ssh ===&lt;br /&gt;
Hinter der link local Adresse &amp;quot;%&amp;quot; + &amp;quot;Netzwerk Interface an eurer Kiste&amp;quot; (Hier im Beispiel eth0)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@&amp;lt;link local Adresse des Nodes&amp;gt;%eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Paßwort-Authentifizierung abstellen ===&lt;br /&gt;
'''Wichtig:''' Als erstes prüfen, ob man sich mit seinem Schlüsselpaar auf den Router einloggen kann. Man sollte jetzt nicht mehr nach dem Paßwort gefragt werden (allerhöchstens nach dem Paßwort, welches den privaten Schlüssel schützt).&lt;br /&gt;
Falls das erfolgreich funktioniert, kann man die Datei ''/etc/config/dropbear'' wie folgt ändern:&lt;br /&gt;
&amp;lt;pre&amp;gt;config dropbear&lt;br /&gt;
        option PasswordAuth 'off'&lt;br /&gt;
        option RootPasswordAuth 'off'&lt;br /&gt;
        option Port         '22'&lt;br /&gt;
#       option BannerFile   '/etc/banner'&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nach einem Neustart des Routers mittels ''reboot'' sollte es jetzt nur noch möglich sein, sich mit seinem Schlüsselpaar auf den Rotuer einzuloggen.&lt;br /&gt;
&lt;br /&gt;
=== SSH public key auf Node aufspielen ===&lt;br /&gt;
Möchte man sich nicht immer per Paßwort auf den eigenen Node verbinden, so kann man das auch mit einem Schlüsselpaar realisieren. Falls man danach noch die Authentifizierung per Paßwort abschaltet (s. nächster Punkt), dann hat man einen sicheren Zugriff auf seinen Node realisiert.&lt;br /&gt;
Voraussetzung ist natürlich, dass man schon ein gültiges Schlüsselpaar besitzt. Falls dem so ist, so genügt es, den öffentlichen Schlüssel (public key) auf den Node zu übertragen. Das kann mit Hilfe von scp (secure copy) passieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp -6 id_rsa4096.pub root@[&amp;lt;link local Adresse des Nodes&amp;gt;%eth0]:/etc/dropbear/authorized_keys&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hierbei steht id_rsa.pub für die Datei, die den public key enthält. '''ACHTUNG:''' Obiger Befehl ersetzt die eventuell schon vorhandene Datei authorized_keys auf dem Node. Das ist ok für den ersten Key. Sollen mehrere Keys eingetragen werden (z. B. weil man außer vom Laptop auch vom Tablet auf seinen Node verbinden möchte), kann man das so machen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat ~/.ssh/id_rsa4096.pub | ssh root@[&amp;lt;link local Adresse des Nodes&amp;gt;%eth0] 'umask 077; cat &amp;gt;&amp;gt;.ssh/authorized_keys'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollte beim Kopierversuch die Meldung&lt;br /&gt;
&amp;lt;pre&amp;gt;ssh: Could not resolve hostname fe80:&amp;lt;/pre&amp;gt;&lt;br /&gt;
erscheinen, hat man höchstwahrscheinlich die eckigen Klammern um die IP-Adresse inklusive Interface vergessen. Dann wird der erste Doppelpunkt schon als Ende des Hostnamens interpretiert! Auch hier werden die Änderungen nach einem Neustart des Routers mittels ''reboot'' übernommen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Node überträgt keine Statistiken ===&lt;br /&gt;
Auf der [https://kbu.freifunk.net/cserv Cserv Seite] könnt ihr prüfen, ob eurer Node bereits Statistiken übermittelt.&lt;br /&gt;
==== ntp-Bug in Firmware 1.2.1b beseitigen ====&lt;br /&gt;
Falls sich ein Node-Betreiber wundert, warum sein Node keine Statistiken liefert und es ein Mesh-Only-Node ist (d. h. ohne eigenen Uplink zum Internet), so liegt das an einem Bug in der Firmware. Diesen kann man jedoch mit einfachen Mitteln beheben:&lt;br /&gt;
Editiert wird die Datei ''/etc/config/system''. Dort findet man einen Eintrag ''config timeserver 'ntp'''. Defaultmäßig stehen hier 4 Zeitserver von openwrt (in der Form x.openwrt.pool.ntp.org). Diese müssen bei Mesh-Only-Nodes in IPv6-Adressen geändert werden, und zwar, dass der komplette Konfigurationspunkt wie folgt aussieht:&lt;br /&gt;
&amp;lt;pre&amp;gt;config timeserver 'ntp'&lt;br /&gt;
        list server '2a03:4000:2:494::2'&lt;br /&gt;
        list server '2a01:4f8:161:2461:e4::1'&lt;br /&gt;
        list server '2a02:180:1:1::551f:bb4b'&lt;br /&gt;
        option enabled '1'&lt;br /&gt;
        option enable_server '0'&amp;lt;/pre&amp;gt;&lt;br /&gt;
Auch hier werden die Änderungen erst nach einem Neustart des Nodes mittels ''reboot'' wirksam.&lt;br /&gt;
Dieser Bug soll mit dem nächsten Firmware-Release behoben sein. Man kann die Eintragungen auch in den Nodes mit Internet-Uplink ändern ohne die Funktion zu beeinträchtigen.&lt;br /&gt;
&lt;br /&gt;
==== Collectd prüfen ====&lt;br /&gt;
Falls es durch das beheben des ntp-Bug noch immer nicht zum übertragen der Statistiken kommt, überprüft mal die Einstellungen eures Collectd. Es kann sein das beim Firmware Update diese Config nicht geupdatet wurde und eine veraltet IPV6 Adresse noch vorhanden ist, so sollte es sein:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vim /etc/collectd.conf                             // Config Datei für Collectd zum bearbeiten öffnen&lt;br /&gt;
&lt;br /&gt;
Zeile 39-44:    &lt;br /&gt;
&amp;lt;Plugin ping&amp;gt;                     &lt;br /&gt;
        TTL 127                   &lt;br /&gt;
        Interval 30                         &lt;br /&gt;
        Host &amp;quot;fdd3:5d16:b5dd:3::6&amp;quot;                 // Diesen Eintrag auf Übereinstimmmung prüfen      &lt;br /&gt;
&amp;lt;/Plugin&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Zeile 46-50:&lt;br /&gt;
&amp;lt;Plugin network&amp;gt;                                        &lt;br /&gt;
        Server &amp;quot;fdd3:5d16:b5dd:3::6&amp;quot; &amp;quot;25827&amp;quot;       // Diesen Eintrag auf Übereinstimmmung prüfen                 &lt;br /&gt;
        Forward false                                   &lt;br /&gt;
&amp;lt;/Plugin&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LAN Kopplung ===&lt;br /&gt;
Eine LAN Kopplung kann in manchen Fällen sinnvoll sein, besonders wenn man einen VLAN fähigen Switch und eine bestehende Ntzwerkverkabelung hat. Hier werden die Switchports angwiesen auch über LAN zu meshen.&lt;br /&gt;
&lt;br /&gt;
==== TL-WR841ND ====&lt;br /&gt;
03/2014: Hier wird über die alle 4 LAN Ports gemeshed, Mesh über WLAN kann man optional noch ausschalten! Folgende Config stammt von rampone/FF-KBU und wurde an 2 TL-WR841N v.8 getestet mit KBU-FF-Firmware 1.1.&lt;br /&gt;
&lt;br /&gt;
05/2015: Verifiziert (und ergänzt) für TL-WR841N v.9 und KBU-FF-Firmware 1.2.2rc3 .&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/network'' - Folgende Änderungen wurden an der FF-Firmware vorgenommen:&lt;br /&gt;
#config interface 'freifunk' -&amp;gt; Hier haben wir das ethX-Interface aus &amp;quot;ifname&amp;quot; rausgenommen, damit kein ff aus dem ethX (switch) rauskommt (X=1 für Hardware bis einschließlich v8, sonst X=0).&lt;br /&gt;
#config interface 'mesh_lan' -&amp;gt; kompl. codeblock hinzugefügt, dieser bewirkt das über ethX (switch) gemeshed wird. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config interface 'loopback'&lt;br /&gt;
	option ifname 'lo'&lt;br /&gt;
	option proto 'static'&lt;br /&gt;
	option ipaddr '127.0.0.1'&lt;br /&gt;
	option netmask '255.0.0.0'&lt;br /&gt;
&lt;br /&gt;
config interface 'wan'&lt;br /&gt;
	option ifname 'eth0'&lt;br /&gt;
	option proto 'dhcp'&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option accept_ra '0'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
&lt;br /&gt;
config switch&lt;br /&gt;
	option name 'switch0'&lt;br /&gt;
	option reset '1'&lt;br /&gt;
	option enable_vlan '1'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'switch0'&lt;br /&gt;
	option vlan '1'&lt;br /&gt;
	option ports '0 1 2 3 4'&lt;br /&gt;
&lt;br /&gt;
config interface 'freifunk'&lt;br /&gt;
	option ifname 'bat0'		#LAN-Kopplung: ifname eth1 (bzw. eth0, s.o.) entfernt&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option proto 'none'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option accept_ra '1'&lt;br /&gt;
	option macaddr '10:fe:ed:f1:53:84'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mtu '1528'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_vpn'&lt;br /&gt;
	option ifname 'mesh-vpn'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
	option macaddr '12:fe:ed:f2:53:84'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_lan'		#LAN-Kopplung: Codeblock mesh-lan hinzugefuegt&lt;br /&gt;
	option ifname 'eth0'            # ab TL-841N(D) v9: eth0, bis v8: eth1 . Bei falschem Interface läuft das mesh-lan über den blauen Port. Wer's mag...&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/wireless'' - Hier wird der Codeblock, der für das Mesh über WLAN verantwortlich ist auskommentiert (optional)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#config wifi-iface 'wifi_mesh'&lt;br /&gt;
#       option device 'radio0'&lt;br /&gt;
#       option network 'mesh'&lt;br /&gt;
#       option mode 'adhoc'&lt;br /&gt;
#       option ssid '02:d1:11:37:fc:39'&lt;br /&gt;
#       option bssid '02:d1:11:37:fc:39&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TL-WDR4300 ====&lt;br /&gt;
Das gleiche nochmal für den 4300er&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/network''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config interface 'loopback'&lt;br /&gt;
	option ifname 'lo'&lt;br /&gt;
	option proto 'static'&lt;br /&gt;
	option ipaddr '127.0.0.1'&lt;br /&gt;
	option netmask '255.0.0.0'&lt;br /&gt;
&lt;br /&gt;
config interface 'wan'&lt;br /&gt;
	option ifname 'eth0.2'&lt;br /&gt;
	option proto 'dhcp'&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option accept_ra '0'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option macaddr 'a2:f3:c1:65:81:cd'&lt;br /&gt;
&lt;br /&gt;
config switch&lt;br /&gt;
	option name 'eth0'&lt;br /&gt;
	option reset '1'&lt;br /&gt;
	option enable_vlan '1'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'eth0'&lt;br /&gt;
	option vlan '1'&lt;br /&gt;
	option ports '0t 2 3 4 5'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'eth0'&lt;br /&gt;
	option vlan '2'&lt;br /&gt;
	option ports '0t 1'&lt;br /&gt;
&lt;br /&gt;
config interface 'freifunk'&lt;br /&gt;
	option ifname 'bat0'		#LAN-Kopplung: ifname eth0.1 entfernt&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option proto 'none'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option accept_ra '1'&lt;br /&gt;
	option macaddr 'a0:f3:c1:64:81:cc'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mtu '1528'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_vpn'&lt;br /&gt;
	option ifname 'mesh-vpn'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
	option macaddr 'a2:f3:c1:65:81:cc'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_lan'		#LAN-Kopplung: Codeblock mesh-lan hinzugefuegt&lt;br /&gt;
        option ifname 'eth0.1'&lt;br /&gt;
        option proto 'batadv'&lt;br /&gt;
        option mesh 'bat0'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einsperren des Freifunk-Routers in eine DMZ ==&lt;br /&gt;
&lt;br /&gt;
Wer seinen Freifunk-Router einsperren und/oder die Bandbreite begrenzen möchte, kann dies am einfachsten tun, indem er ihn an seiner Firewall an einen eigenen Netzwerkport klemmt und diesen dann als DMZ konfiguriert. Ein KBU-Freifunk-Router muß zur Zeit im LAN DHCP, DNS, im Internet NTP sowie mit den [[fastd]]-Knoten reden können. Folgendes Bespiel für eine iptables-Firewall nimmt an, dass der Freifunk-Router über eth2 angeschlossen ist:&lt;br /&gt;
&lt;br /&gt;
 # eth2 darf nur dns, ntp, dhcp und ansonsten mit den fastdX reden&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p udp --dport 67:68 --sport 67:68 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p udp --dport 67:68 --sport 67:68 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p udp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p tcp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p udp --dport 123                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p udp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p tcp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p udp --dport 123                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 176.9.41.253                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 176.9.41.253                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 178.63.59.41                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 178.63.59.41                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 37.120.169.214               -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 37.120.169.214               -j ACCEPT &lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 37.221.195.47                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 37.221.195.47                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 78.46.68.75                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 78.46.68.75                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 84.201.35.206                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 84.201.35.206                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT                                      -j DROP&lt;br /&gt;
 iptables -i eth2 -A FORWARD                                    -j DROP&lt;br /&gt;
 # eth2 darf maximal 2000 kbit/s ein- und ausgehenden traffic machen&lt;br /&gt;
 wondershaper eth2 2000 2000&lt;br /&gt;
&lt;br /&gt;
Prinzipiell könnte man den Traffic noch weiter einschränken. DHCP und DNS müssen nur zum DHCP- bzw. DNS-Server funktionieren und der Traffic zu den fastd-Servern ließe sich auf TCP Port 80 und UDP Port 10000 begrenzen.&lt;br /&gt;
&lt;br /&gt;
===Alternative: Einsperren im VLAN===&lt;br /&gt;
siehe: [[FF-Router einsperren im VLAN]]&lt;br /&gt;
&lt;br /&gt;
== Weboberfläche aktivieren ==&lt;br /&gt;
&lt;br /&gt;
Im Normalbetrieb ist erst mal kein Zugriff notwendig (und auch erst mal nicht vorgesehen). Das läuft einfach! ;-) Und es gibt im Normalbetrieb eben auch kein Webinterface, welches Sicherheitslücken haben könnte.&lt;br /&gt;
&lt;br /&gt;
Zum ersten Konfigurieren schaltet mal den Router in einen Konfig-Modus. Der Router nimmt dann in diesem Modus nicht mehr am Freifunknetzwerk teil. Nun kann man dann Rechner an die LAN Ports des Freifunkrouters anschließen und über ein Webinterface per Browser den Router konfigurieren oder Updaten. Das sollte aber nur ganz selten notwendig sein. Nach einem Reboot des Routers geht das Gerät dann wieder in den Freifunk-Modus mit deinen Konfigurationsänderungen.&lt;br /&gt;
&lt;br /&gt;
Wenn man Spaß am Basteln hat kann man das Webinterface aber auch im Normalbetrieb aktivieren. Für die Absicherung muss man dann aber selber sorgen denn per Default ist das nicht abgesichert. Hier die Anleitung nach [http://wiki.freifunk.in-kiel.de/wiki/Firmware Freifunk Kiel], um auf die Weboberfläche zu gelangen:&lt;br /&gt;
&lt;br /&gt;
Das Webinterface des Routers ist nicht über die Link-Local-Adresse, sondern nur über die generelle IPv6 Adresse des Routers zu erreichen. Die IPv6-Adresse bekommt man über SSH (s. [[Pimp_my_Node#IPv6_ssh|IPv6 ssh]] auf den Router:&lt;br /&gt;
  ssh root@LinkLocalIPv6adresse_des_routers%Interface&lt;br /&gt;
Die generelle IPv6-Adresse erfährt man durch Eingabe von&lt;br /&gt;
  ifconfig | grep Global&lt;br /&gt;
Die IPv6-Adresse (&amp;quot;inet6 adr&amp;quot;) kann man nun im Browser in eckigen Klammern und vorangestelltem &amp;quot;http://&amp;quot; aufrufen (zum Beispiel: http://[2001:67c:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx]/) und gelangt so zum Webinterface LuCI.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
 uci delete uhttpd.main.listen_http&lt;br /&gt;
 uci delete uhttpd.main.listen_https&lt;br /&gt;
 &lt;br /&gt;
 uci add_list uhttpd.main.listen_http='[::]:80'&lt;br /&gt;
 uci add_list uhttpd.main.listen_http='0.0.0.0:80'&lt;br /&gt;
 uci add_list uhttpd.main.listen_https='[::]:80'&lt;br /&gt;
 uci add_list uhttpd.main.listen_https='0.0.0.0:80'&lt;br /&gt;
 &lt;br /&gt;
 uci commit uhttpd&lt;br /&gt;
 &lt;br /&gt;
 /etc/init.d/uhttpd enable&lt;br /&gt;
&lt;br /&gt;
== Uplink mit Android-Tethering/USB Netzwerkkarte ==&lt;br /&gt;
(ssh Zugang Erfahrung nötig)&lt;br /&gt;
&lt;br /&gt;
Das ganze sei von Anfang an als &amp;quot;sportlich&amp;quot; zu betrachten. Leider sind mobile 3g/LTE Tarife fast ausnahmslos nach einem bestimmten Volumen gedrosselt (üblicherweise auf 64 bis 56 kbit/s (neuere NetzclubSim sogar auf 32 kbit/s), Ausnahme bilden hier nur LTE Zuhause &amp;quot;DSL&amp;quot; Ersatz Tarife -&amp;gt; 386kbit/s).&lt;br /&gt;
Da Freifunk auch bei Nichtbenutzung Daten überträgt, ist nur bei LTE Zuhause Tarifen interessant dies als Dauerlösung zu nutzen. Dort ist aber wiederum meist ein LTE-Router vor Ort und man den Router auch &amp;quot;traditionell&amp;quot; via LAN Kabel anbinden.&lt;br /&gt;
Bei Benutzung als uplink bei Strassenfesten/Festivals etc. ist wahrscheinlich, dass erstens das Datenvolumen schnell aufgebraucht sein wird und zweitens ab einer bestimmten Größe auch das 3g Netz vor Ort überlastet ist. Wenn man es dennoch machen will (mehrere Sim Karten/spezieller hochvolumiger Tarif/Netzbetreiber gesponserter Uplink (träum)), sollte man die Benutzung von LTE erwägen. Auch dort könnten aber durch zukünftige Adapation Überlasterscheinungen auftreten. Desweitern nutzen 2g/3g/4g auch dasselbe Backbone, welcher dann auch für LTE ein Flaschenhals darstellt.&lt;br /&gt;
Muss nochmal nachprüfen, aber wenn, dann nicht uninteressant: Der Wlan Zugang des Telefons (CM7) wurde per tethering weitergeleitet und bei Abschalten gab es fallback auf 3g -&amp;gt; nicht schöne, aber einfache &amp;quot;Immer&amp;quot;netzlösung?  Mein Tablet zeigt nicht dieses Verhalten.)&lt;br /&gt;
&lt;br /&gt;
Blablabla, jetzt geht es los:&lt;br /&gt;
Das ganze habe ich mit einem 1043ND und einem droid 2.3CM7 Telefon und einem droid 2.2 Tablet ausprobiert, sollte aber auf jeglichen OpenWrt Router mit USB, Android USB tethering fähigem Gerät und einfachen USB ethernet Adaptern (nachprüfen!!!) funktionieren:&lt;br /&gt;
&lt;br /&gt;
- Per ssh in den router einloggen&lt;br /&gt;
- Installieren der notwendigen Treiber&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
opkg update&lt;br /&gt;
opkg install kmod-usb-uhci kmod-usb-net-rndis&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies sollte, falls ihr noch keine USB Unterstützung in der Firmware hat auch diese über dependencies nachinstallieren. (nachprüfen!!!)&lt;br /&gt;
&lt;br /&gt;
- Ihr müsst den Netzwerkzugang für da neue Interface &amp;quot;usb0&amp;quot; noch konfigurieren. Unter /etc/config/network fügt ihr z.B. folgendes hinzu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config interface 'wan2'&lt;br /&gt;
       option ifname 'usb0'&lt;br /&gt;
       option proto 'dhcp'&lt;br /&gt;
       option type 'bridge'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch unter Luci sollte dies konfigurierbar sein. &lt;br /&gt;
&lt;br /&gt;
- Nach einem Neustart und einem angeschlossenen Gerät sollte nun der Uplink via dem USB Netzwerk Gerät/Android tethering funktionieren.&lt;br /&gt;
- Sollte das Gerät erst später angeschlossen werden, so könnt ihr mit folgendem Befehl das Netzwerkgerät starten.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifup wan2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(Dies ist noch nicht ein perfektes Tutorial, werde es nochmal durchprobieren. Einen UMTS Stick hatte ich auf Anhieb noch nicht zum laufen gebracht. Auch scheint Multiwan in OpenWRT eine interessante Sache)&lt;br /&gt;
&lt;br /&gt;
== Zusätzlich zum Freifunk auch privates WLAN einrichten ==&lt;br /&gt;
&lt;br /&gt;
Es ist möglich ein privates WLAN anzulegen, das mit dem WAN Port gebridged und separat zum Mesh Netzwerk ist. (Bitte beachten, dass Mesh on Wan nicht zeitgleich mit aktiviert werden sollte.) &lt;br /&gt;
Effekt: Das private WLAN wird erweitert, zeitgleich fungiert der Router als Freifunk-Router. Die Netze sind voneinander abgekoppelt.&lt;br /&gt;
Das private WLAN kann per SSH in der Konsole aktiviert werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set wireless.wan_radio0=wifi-iface&lt;br /&gt;
uci set wireless.wan_radio0.device=radio0&lt;br /&gt;
uci set wireless.wan_radio0.network=wan&lt;br /&gt;
uci set wireless.wan_radio0.mode=ap&lt;br /&gt;
uci set wireless.wan_radio0.encryption=psk2&lt;br /&gt;
uci set wireless.wan_radio0.ssid=&amp;quot;$SSID&amp;quot;&lt;br /&gt;
uci set wireless.wan_radio0.key=&amp;quot;$KEY&amp;quot;&lt;br /&gt;
uci set wireless.wan_radio0.disabled=0&lt;br /&gt;
uci commit&lt;br /&gt;
wifi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Bitte ersetze $SSID mit dem Namen deines Heimnetzwerks und $KEY mit deinem bisher üblichen Key (der vom privaten Router). Falls dein Router beide Frequenzbänder unterstützt(2.4 und 5 Ghz) und du in beiden auch privates WLAN aktivieren möchtest, muss dies für radio0 und radio1 mit übernommen werden.&lt;br /&gt;
Zum deaktivieren des Ganzen wie folgt vorgehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uci set wireless.wan_radio0.disabled=1&lt;br /&gt;
uci commit&lt;br /&gt;
wifi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Automatischer Neustart bei längerem Mesh-Verlust, quick hack (and improved hack) zur Analyse ==&lt;br /&gt;
&lt;br /&gt;
Bei der Vernetzung von Notunterkünften mit Gluon-Beta (via Euskirchen) ist bei einem CPE210-Uplink aufgefallen, dass sämtliche Mesh-Verbindungen über Stunden ausgefallen waren. Es war zunächst unklar, ob überwiegend die Stromversorgung ursächlich ist, insbesondere da der Uplink-Router mehrfach betroffen und trotzdem via VPN erreichbar war. Dabei war dann nur ein Mesh mit sich selbst via &amp;quot;batctl o&amp;quot; sichtbar. Einzelne Mesh-Only-Router zeigten ebenfalls (selten) Ausfälle über mehrere Stunden: teilweise Nachts, wo Renovierungsarbeiten nicht die Ursache sein konnten.&lt;br /&gt;
&lt;br /&gt;
Um längere Ausfälle zu vermeiden wurde folgendes Script unter /root/check_mesh.sh abgelegt, das via cron-Job automatisch jede Minute ausgeführt wird und nach 10 Minuten ohne Mesh-Verbindung einen Reboot auslöst:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash&lt;br /&gt;
&lt;br /&gt;
FAILCOUNTFILE=/var/run/mesh0_failcount&lt;br /&gt;
MAXFAILCOUNT=10&lt;br /&gt;
&lt;br /&gt;
# check mesh connections with different originators and nexthops, MAC is 17 chars long&lt;br /&gt;
count=`batctl o | awk '/mesh0/{originator=substr($0,1,17); nexthop=substr($0,37,17); if (originator != nexthop){print originator&amp;quot; &amp;quot;nexthop}}' | wc -l`&lt;br /&gt;
&lt;br /&gt;
if [ $count -gt 1 ]; then  ## more than a single mesh with itself is left&lt;br /&gt;
  echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
else&lt;br /&gt;
  if [ -f $FAILCOUNTFILE ]; then  &lt;br /&gt;
    read failcount &amp;lt; $FAILCOUNTFILE&lt;br /&gt;
    failcount=$(($failcount+1))&lt;br /&gt;
    if [ $failcount -ge $MAXFAILCOUNT ]; then&lt;br /&gt;
      touch /etc/mesh0_failcount_`date +&amp;quot;%Y-%m-%d_%H%M&amp;quot;`&lt;br /&gt;
      sync&lt;br /&gt;
      reboot&lt;br /&gt;
    fi &lt;br /&gt;
    echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
  else&lt;br /&gt;
    echo 1 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
  fi&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es muss (hier mit awk, s.o.) nach _unterschiedlichen_ Werten für Originator und NextHop ausschau gehalten werden, denn bei einem fehlenden Mesh zwischen zwei Knoten meshen die Knoten noch mit sich selbst:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# batctl o | grep mesh0&lt;br /&gt;
62:e6:28:24:5f:52    0.730s   (  6) 62:e6:28:24:5f:52 [     mesh0]: 62:e6:28:24:5f:52 (  6)&lt;br /&gt;
62:e6:28:72:32:48    0.730s   (  8) 62:e6:28:72:32:48 [     mesh0]: 62:e6:28:72:32:48 (  8)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das war lesbar und einfach, aber wegen ständiger Schreibzugriffe schlecht für die Lebensdauer der Flash-Speicher. Besser also nur schreiben wenn Fehler passieren, etwa so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash&lt;br /&gt;
&lt;br /&gt;
FAILCOUNTFILE=/var/run/mesh0_failcount&lt;br /&gt;
MAXFAILCOUNT=10&lt;br /&gt;
&lt;br /&gt;
# check mesh connections with different originators and nexthops, MAC is 17 chars long&lt;br /&gt;
count=`batctl o | awk '/mesh0/{originator=substr($0,1,17); nexthop=substr($0,37,17); if (originator != nexthop){print originator&amp;quot; &amp;quot;nexthop}}' | wc -l`&lt;br /&gt;
&lt;br /&gt;
if [ -f $FAILCOUNTFILE ]; then          # Does the failcount file exist at all?&lt;br /&gt;
  read failcount &amp;lt; $FAILCOUNTFILE       # If it exist then there is a number in.&lt;br /&gt;
  if [ $count -gt 0 ]; then             # At least one originator with different nexthop exists&lt;br /&gt;
    if [ $failcount -gt 0 ]; then       # We'r lucky, everything is fine again!&lt;br /&gt;
      echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
      exit&lt;br /&gt;
    fi&lt;br /&gt;
  else                                  # no nexthop different than originator exists &lt;br /&gt;
    failcount=$(($failcount+1))&lt;br /&gt;
    if [ $failcount -ge $MAXFAILCOUNT ]; then&lt;br /&gt;
      echo 0 &amp;gt; $FAILCOUNTFILE                   # Reset counter before reboot&lt;br /&gt;
      logread &amp;gt; /etc/mesh0_failcount_lastwords_`date +&amp;quot;%Y-%m-%d_%H%M&amp;quot;`  # DEBUG info&lt;br /&gt;
      sync&lt;br /&gt;
      reboot&lt;br /&gt;
    fi &lt;br /&gt;
    echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
  fi&lt;br /&gt;
else&lt;br /&gt;
  echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Script wird dann noch ausführbar gemacht:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /root/check_mesh.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Via &amp;quot;crontab -e&amp;quot; führt dann folgender Eintrag zur Ausführung zu jeder vollen Minute:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* * * * * /root/check_mesh.sh &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wichtig ist, dass ein ausreichender Zeitraum zum Aufbau des Mesh-Netzes nach dem Reboot verbleibt. 10 Minuten (MAXFAILCOUNT) sollten hierzu ausreichen.&lt;br /&gt;
&lt;br /&gt;
Im /etc -Verzeichnis (das wurde gewählt, da Änderungen hier einen Neustart überleben) sind dann solche Reboot-Ereignisse ablesbar:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -al | grep failcount&lt;br /&gt;
-rw-r--r--    1 root     root             0 Oct 26 06:22 mesh0_failcount_2015-10_26_0622&lt;br /&gt;
-rw-r--r--    1 root     root             0 Oct 29 08:12 mesh0_failcount_2015-10-29_0812&lt;br /&gt;
-rw-r--r--    1 root     root             0 Oct 30 21:59 mesh0_failcount_2015-10-30_2159&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Vorfälle traten unregelmäßig alle paar Tage auf, wurden aber durch das Script abgefangen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Client-WLAN nachts automatisch ausstellen ==&lt;br /&gt;
&lt;br /&gt;
In Jugendherbergen oder Flüchtlingsheimen kann es durch rücksichts- oder gedankenloses Verhalten einzelner Gäste oder Bewohner zu akkustischen Beeinträchtigungen kommen, die durch temporäres Ausschalten des WLAN-Client-Netzes vermindert werden können. Damit kann natürlich nicht verhindert werden, dass einzelne Bewohner sich einen eigenen Freifunk-Router konfigurieren und ins Mesh-Netz hängen - das wäre ja sogar erwünscht. Folgendes Script ''restrict_client_access.sh'' ermöglicht das Abschalten in den frühen Morgenstunden (d.h. vor 0 Uhr abzuschalten ist hier nicht berücksichtigt). Es ist bisher für TP-Link TL-WR841-ND, sowie mit TL-WDR4300 und TL-WDR3600 mit der aktuellen Firmware v1.4 getestet. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash&lt;br /&gt;
&lt;br /&gt;
STOP_HOUR=0   # needs to be smaller than START_HOUR!!!&lt;br /&gt;
START_HOUR=7  # disable client0 network device if it's active &lt;br /&gt;
              # and hour is between STOP_HOUR and START_HOUR &lt;br /&gt;
&lt;br /&gt;
hour=`date +&amp;quot;%H&amp;quot;`&lt;br /&gt;
&lt;br /&gt;
ip addr list client0 &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
if [ $? -eq 0 ]; then                   # client network is on&lt;br /&gt;
  if [ $hour -lt ${START_HOUR} -a $hour -ge ${STOP_HOUR} ]; then        # turn it off&lt;br /&gt;
    uci set wireless.client_radio0.disabled=1&lt;br /&gt;
    uci set wireless.client_radio1.disabled=1                           # additional 5GHz wifi exists (e.g. WDR3600)&lt;br /&gt;
    uci commit wireless&lt;br /&gt;
    /etc/init.d/network restart&lt;br /&gt;
  fi&lt;br /&gt;
else                                    # client network is off&lt;br /&gt;
  if [ $hour -ge ${START_HOUR} -o $hour -lt ${STOP_HOUR} ]; then        # turn it on &lt;br /&gt;
    uci set wireless.client_radio0.disabled=0&lt;br /&gt;
    uci set wireless.client_radio1.disabled=0                           # additional 5GHz wifi exists (e.g WDR3600)&lt;br /&gt;
    uci commit wireless        &lt;br /&gt;
    /etc/init.d/network restart&lt;br /&gt;
  fi&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Script kann z.B. einfach im /root/ -Verzeichnis abgelegt werden. Via &amp;quot;crontab -e&amp;quot; führt dann folgender Eintrag zur Ausführung zu jeder vollen Minute:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* * * * * /root/restrict_client_access.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Hinweis:''' Die uci- sowie das Restart-Kommando dürfen nicht ausserhalb der if-Bedingungen das Script ''vereinfachen'', da sie jeweils nur bei einmaligem Umstellen täglich ausgeführt werden dürfen. Sonst verliert man jede Minute das Netz...&lt;br /&gt;
&lt;br /&gt;
'''Wichtig ''': Der NTP-Dienst bei Mesh-Only-Routern muss ggf. erst (oder nochmal) nach der hergestellten Mesh-Verbindung durchgestartet werden, da NTP keine großen Zeitsprünge macht. Das kan z.B. durch folgenden Eintrag via Crontab automatisiert werden (hier: zur vollen Minute 8, die ggf. nach längerer Auszeit auch zunächst falsch sein kann):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
8 * * * * /etc/init.d/sysntpd restart&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Besser wäre hier ein Script, dass nach dem erfolgreichen Herstellen einer Mesh-Verbindung zum Uplink den ndtd einmal durchstartet, damit die Zeit initial synchronisiert wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Client-WLAN an Mesh-Only-Routern nur aktivieren, wenn Mesh-WLAN vorhanden ist ==&lt;br /&gt;
&lt;br /&gt;
Bei Routern, die selbst keinen Uplink haben und deshalb davon abhängig sind mit Nachbarn zu meshen, kann das Freifunk-Client-WLAN ausgestellt werden, wenn kein Mesh-Link (und damit auch kein entfernter Uplink) greifbar ist.&lt;br /&gt;
&lt;br /&gt;
Folgendes Script kann in ''/root/client-off-if-mesh-off.sh'' abgelegt (und via ''chmod +x /root/client-off-if-mesh-off.sh'' ausführbar gemacht) werden, das dann via cron regelmäßig aufgerufen wird:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/ash                                                                                          &lt;br /&gt;
&lt;br /&gt;
FAILCOUNTFILE=/var/run/mesh0_nogatewaycount&lt;br /&gt;
MAXFAILCOUNT=2&lt;br /&gt;
&lt;br /&gt;
# check mesh connections with different originators and nexthops, MAC is 17 chars long&lt;br /&gt;
batctl gwl | grep -q &amp;quot;No gateways in range&amp;quot;&lt;br /&gt;
no_gw=$?&lt;br /&gt;
&lt;br /&gt;
if [ -f $FAILCOUNTFILE ]; then          # Does the failcount file exist at all?&lt;br /&gt;
  read failcount &amp;lt; $FAILCOUNTFILE       # If it exist then there is a number in.&lt;br /&gt;
  if [ ${no_gw} -eq 1 ]; then           # There is a gateway&lt;br /&gt;
    if [ $failcount -gt 0 ]; then       # We'r lucky, it is fine again, we decrease the failcount&lt;br /&gt;
      failcount=$(($failcount-1))&lt;br /&gt;
      echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
      if [ $failcount -eq 0 ]; then&lt;br /&gt;
        # turn on client network &lt;br /&gt;
        uci set wireless.client_radio0.disabled=0&lt;br /&gt;
        uci commit wireless&lt;br /&gt;
        wifi&lt;br /&gt;
      fi&lt;br /&gt;
      exit&lt;br /&gt;
    fi&lt;br /&gt;
  else                                  # no nexthop different than originator exists &lt;br /&gt;
    failcount=$(($failcount+1))&lt;br /&gt;
    if [ $failcount -eq $MAXFAILCOUNT ]; then&lt;br /&gt;
      # logread &amp;gt; /etc/mesh0_failcount_no-mesh_`date +&amp;quot;%Y-%m-%d_%H%M&amp;quot;`  # DEBUG info&lt;br /&gt;
      # turn off client network &lt;br /&gt;
      uci set wireless.client_radio0.disabled=1&lt;br /&gt;
      uci commit wireless&lt;br /&gt;
      wifi&lt;br /&gt;
    fi&lt;br /&gt;
    if [ $failcount -le $MAXFAILCOUNT ]; then ## only memorize failcounts up to MAXFAILCOUNT &lt;br /&gt;
      echo $failcount &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
    fi&lt;br /&gt;
  fi&lt;br /&gt;
else&lt;br /&gt;
  echo 0 &amp;gt; $FAILCOUNTFILE&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Via &amp;quot;crontab -e&amp;quot; führt dann folgender Eintrag zur Ausführung zu jeder vollen Minute:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* * * * * /root/client-off-if-mesh-off.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das obige Script ist dahingehend optimiert, dass nur bei Änderungen des Mesh-Status Daten auf den Flash-Speicher geschrieben werden. Für TP-Link WR 841ND wurde obiges Script getestet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Freifunk-Monitor: Router-Status per E-Mail ==&lt;br /&gt;
&lt;br /&gt;
Ich zitiere mal von der Mailingliste - das ganze ist in der Testphase und ich werde den Wiki-Eintrag später noch entsprechend Überarbeiten.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Hallo, Liebe Mitstreiter!&lt;br /&gt;
&lt;br /&gt;
Wir alle arbeiten daran, unser Netz besser, schneller und stabiler zu machen.&lt;br /&gt;
&lt;br /&gt;
Axel und ich möchten unseren Teil beitragen.&lt;br /&gt;
&lt;br /&gt;
Deshalb entwickeln wir den Freifunk-Monitor – eine kleine Software, die Betreiber von Freifunk-Routern auf Wunsch per E-Mail benachrichtigt, wenn ein- oder mehrere seiner Knoten seitens der Karte nicht erreichbar scheinen.&lt;br /&gt;
&lt;br /&gt;
Dieser Service muss derzeit explizit auf einem Router mit mindestens Gluon 1.4 via SSH angeschaltet werden (es gibt derzeit keine Web-Oberfläche).&lt;br /&gt;
&lt;br /&gt;
Wir laden hiermit alle Router-Betreiber ein, den Monitor zu testen!&lt;br /&gt;
&lt;br /&gt;
Rechnet damit, schlimmstenfalls zu viele oder ungerechtfertigte E-Mails vom Monitor zu bekommen - wir testen die Software noch.&lt;br /&gt;
&lt;br /&gt;
Wie ihr das wieder abschaltet steht unten.&lt;br /&gt;
&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
Kommando zum Monitoring einschalten (Achtung, was folgt ist EINE Zeile):&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;if uci:get_first('gluon-node-info', 'owner', 'send_alerts', '') ~= '' then return true end&amp;quot; &amp;gt; /lib/gluon/announce/nodeinfo.d/send_alerts ; uci set gluon-node-info.@owner[0].send_alerts=1 ; uci commit&lt;br /&gt;
&lt;br /&gt;
Kommando zum E-Mail-Adresse setzen (falls nicht schon geschehen):&lt;br /&gt;
&lt;br /&gt;
uci set gluon-node-info.@owner[0].contact=ff@cocoanuts.org; uci commit&lt;br /&gt;
&lt;br /&gt;
Kommando zum E-Mail-Adresse prüfen:&lt;br /&gt;
&lt;br /&gt;
uci get gluon-node-info.@owner[0].contact&lt;br /&gt;
&lt;br /&gt;
Kommando zum Monitoring abschalten:&lt;br /&gt;
&lt;br /&gt;
uci set gluon-node-info.@owner[0].send_alerts=0 ; uci commit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Installation&amp;diff=4281</id>
		<title>Installation</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Installation&amp;diff=4281"/>
		<updated>2016-04-06T09:18:08Z</updated>

		<summary type="html">&lt;p&gt;Took: Link zur &amp;quot;neuen Version dieser Seite&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;color:#F00&amp;quot;&amp;gt; '''Veraltet - nicht mehr verwenden'''&amp;lt;/span&amp;gt;[[Kategorie:Archiv]]&lt;br /&gt;
→ Siehe auch [[KBU_Gluon_Firmware]]&lt;br /&gt;
&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
Die Installation und Inbetriebnahme eines Routers im Freifunk-KBU Netz ist recht einfach, so dass grundlegendes IT-Verständnis dafür genügen sollte. In der unten stehenden Tabelle sind die von unserer Freifunk-Gruppe KBU aktiv unterstützten Geräte angegeben, die wir selbst im Einsatz haben oder hatten. Für andere Geräte beachte bitte [[Firmware]].&lt;br /&gt;
&lt;br /&gt;
Es gibt kaum Unterschiede zwischen einer Neuinstallation und einem Upgrade. Beides geschieht durch einen Firmware-Upgrade, wobei bei der Neuinstallation das Administrations-Interface der Hersteller-Firmware und sonst das von OpenWRT-Interface genutzt wird. Der Garantieanspruch geht dabei nicht verloren: man kann auch die Original-Firmware wieder aufspielen, die für das jeweilige Gerät vom Hersteller zum Download angeboten wird.&lt;br /&gt;
&lt;br /&gt;
Zur Installation bzw. für ein Upgrade sind die folgenden Schritte notwendig&lt;br /&gt;
# Download der Firmware&lt;br /&gt;
# Überprüfen der Signatur der Firmware, um eine Manipulation ausschließen zu können&lt;br /&gt;
# Einspielen der Firmware (Von der Hersteller-Firmware oder von OpenWRT aus)&lt;br /&gt;
# Registrieren des Nodes (optional)&lt;br /&gt;
# Konfigurieren des Nodes (optiomal)&lt;br /&gt;
&lt;br /&gt;
Nachfolgend sind die einzelnen Schritte genauer beschrieben.&lt;br /&gt;
&lt;br /&gt;
Bei Problemen, helfen wir gerne per [[IRC]] oder [[Mailingliste|E-Mail]] weiter.&lt;br /&gt;
&lt;br /&gt;
== Download der Firmware ==&lt;br /&gt;
[[Datei:wr741nd_pi3.jpg||300px|thumb|right|Abb. 1 Router und Hardversion]] &lt;br /&gt;
[[Datei:wr741nd_pi4.jpg||300px|thumb|right|Abb. 2 LAN Port ]] &lt;br /&gt;
* Typ und '''Hardware Version''' des TP-Link Routers prüfen, auf der Unterseite des Routers befindet sich der Router Typ und die Hardwareversion aufgedruckt (Abb.1).&lt;br /&gt;
* Download der aktuellen Freifunk Firmware für den Router Typ '''unter Berücksichtigung der entsprechenden Hardwareversion'''. Nach dem Download solltest Du sicher stellen, dass alle Dateien korrekt herunter geladen wurden ([[Firmware Überprüfen]]). &lt;br /&gt;
* Solltest Du Dir total unsicher sein, welche die richtige Firmware für Dein Router ist, dann wende Dich bitte per [[IRC]]hat oder über die [[Mailingliste|Mailingliste]] an uns.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable centered mw-datatable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|  Hersteller || Model ||  HW Revision || Antennen ||  Freifunk Firmware  &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || style=&amp;quot;width:10em&amp;quot;| TL-WR740N || style=&amp;quot;text-align:center&amp;quot;| v4.x (ohne v4.27) || style=&amp;quot;text-align:center&amp;quot;|  1 || style=&amp;quot;text-align:center&amp;quot;| [https://kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr740n-v4-1.2.1a.bin 1.2.1a] &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR741N(D) || style=&amp;quot;text-align:center&amp;quot;| v1.x || style=&amp;quot;text-align:center&amp;quot;|  1 || style=&amp;quot;text-align:center&amp;quot;| [https://kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr741nd-v1-1.2.1a.bin 1.2.1a] &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR741N(D) || style=&amp;quot;text-align:center&amp;quot;| v2.x || style=&amp;quot;text-align:center&amp;quot;|  1 || style=&amp;quot;text-align:center&amp;quot;| [https://kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr741nd-v2-1.2.1a.bin 1.2.1a] &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR741N(D) || style=&amp;quot;text-align:center&amp;quot;| v4.x || style=&amp;quot;text-align:center&amp;quot;| 1 || style=&amp;quot;text-align:center&amp;quot;| [https://kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr741nd-v4-1.2.1a.bin 1.2.1a] &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR841N(D) || style=&amp;quot;text-align:center&amp;quot;| v3 || style=&amp;quot;text-align:center&amp;quot;| 2 || style=&amp;quot;text-align:center&amp;quot;| [https://kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr841nd-v3-1.2.1a.bin 1.2.1a]&lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR841N(D) || style=&amp;quot;text-align:center&amp;quot;| v5 || style=&amp;quot;text-align:center&amp;quot;| 2 || style=&amp;quot;text-align:center&amp;quot;| [https://kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr841nd-v5-1.2.1a.bin 1.2.1a]&lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR841N(D) || style=&amp;quot;text-align:center&amp;quot;| v7.x || style=&amp;quot;text-align:center&amp;quot;| 2 || style=&amp;quot;text-align:center&amp;quot;| [https://kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr841nd-v7-1.2.1a.bin 1.2.1a] &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR841N(D) || style=&amp;quot;text-align:center&amp;quot;| v8.x || style=&amp;quot;text-align:center&amp;quot;| 2 || style=&amp;quot;text-align:center&amp;quot;| [https://kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr841n-v8-1.2.1a.bin 1.2.1a] &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR841N(D) || style=&amp;quot;text-align:center&amp;quot;| v9, v9.1 || style=&amp;quot;text-align:center&amp;quot;| 2 || style=&amp;quot;text-align:center&amp;quot;| [https://kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr841n-v9-1.2.1b.bin 1.2.1b] &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR842ND || style=&amp;quot;text-align:center&amp;quot;| v1.x || style=&amp;quot;text-align:center&amp;quot;| 2 || style=&amp;quot;text-align:center&amp;quot;| [https://kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr842n-v1-1.2.1a.bin 1.2.1a] &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR842ND || style=&amp;quot;text-align:center&amp;quot;| v2 || style=&amp;quot;text-align:center&amp;quot;| 2 || style=&amp;quot;text-align:center&amp;quot;| [https://kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr842n-v2-1.2.1b.bin 1.2.1b]&lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR1043ND || style=&amp;quot;text-align:center&amp;quot;| v1.x || style=&amp;quot;text-align:center&amp;quot;| 3  || style=&amp;quot;text-align:center&amp;quot;| [https://kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr1043nd-v1-1.2.1a.bin 1.2.1a]  &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WDR3500 ||style=&amp;quot;text-align:center&amp;quot;| v1 || style=&amp;quot;text-align:center&amp;quot;| 2  || style=&amp;quot;text-align:center&amp;quot;| [https://kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wdr3500-v1-1.2.1b.bin 1.2.1b]&lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WDR3600 ||style=&amp;quot;text-align:center&amp;quot;| v1.x || style=&amp;quot;text-align:center&amp;quot;| 2  || style=&amp;quot;text-align:center&amp;quot;| [https://kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wdr3600-v1-1.2.1a.bin 1.2.1a] &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WDR4300 ||style=&amp;quot;text-align:center&amp;quot;| v1.x || style=&amp;quot;text-align:center&amp;quot;| 3  || style=&amp;quot;text-align:center&amp;quot;| [https://kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wdr4300-v1-1.2.1a.bin 1.2.1a] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Überprüfen der Signatur ==&lt;br /&gt;
&lt;br /&gt;
Damit sichergestellt ist, dass die heruntergeladene Freifunk-Firmware auch wirklich die ist, welche wir erstellt und zum Download angeboten haben, sollten unbedingt die Hash-Werte (d.h. ein eindeutiger Fingerabdruck) der Firmware-Dateien und die korrekte Signatur der von uns bereitgestellten Hash-Wert-Datei geprüft werden. Dieses ist vermutlich der schwierigste Teil der Installation und wird von Einzelnen gelegentlich übergangen, getreu der Kölschen Lebensweisheit ''&amp;quot;Et hät noch immer joot jejange&amp;quot;''. Darauf sollte man sich aber in heutigen Zeiten nicht verlassen.&lt;br /&gt;
&lt;br /&gt;
Die Datei mit den Hash-Werten ist mit unserem GPG-Schlüssel signiert. Der heimliche Austausch einer Freifunk-Firmware und des entsprechenden Hash-Wertes ist also nicht möglich, da die Signatur nur bei unveränderter Hash-Wert-Datei gültig bleibt. Unser öffentliche GPG-Schlüssel ist auf gängigen Keyservern hinterlegt.&lt;br /&gt;
&lt;br /&gt;
Wer sich mit GPG noch nicht auskennt, kann sich z.B. unter [https://www.gnupg.org www.gnupg.org] aufschlauen.&lt;br /&gt;
&lt;br /&gt;
Unseren GPG-Schlüssel bekommt man z.B. unter Linux/Unix von der Kommandozeile aus so:&lt;br /&gt;
 # gpg --keyserver pgp.mit.edu --recv-key  '0FA27C6E4'&lt;br /&gt;
&lt;br /&gt;
Nach dem Download der beiden Dateien&lt;br /&gt;
* [https://kbu.freifunk.net/files/release/1.2.1/SHA256SUMS SHA256 Summen]&lt;br /&gt;
* [https://kbu.freifunk.net/files/release/1.2.1/SHA256SUMS.sign Signatur]&lt;br /&gt;
prüft man dann einfach die Signatur mit&lt;br /&gt;
&lt;br /&gt;
  $ gpg --verify SHA256SUMS.sign&lt;br /&gt;
  gpg: Signature made Wed 27 Aug 2014 10:40:01 PM CEST using RSA key ID FA27C6E4&lt;br /&gt;
  gpg: Good signature from &amp;quot;Freifunk-KBU Release Signing Key (Used by jenkins.kbu.freifunk.net) &amp;lt;info@kbu.freifunk.net&amp;gt;&amp;quot;&lt;br /&gt;
  gpg: WARNING: This key is not certified with a trusted signature!&lt;br /&gt;
  gpg:          There is no indication that the signature belongs to the owner.&lt;br /&gt;
  Primary key fingerprint: E3B3 AF2B 6B54 149B 9313  4EC0 E782 EAC7 FA27 C6E4&lt;br /&gt;
&lt;br /&gt;
Die Signatur ist also korrekt. Den Fingerprint prüft man am besten einmal offline bei unseren [http://kbu.freifunk.net/wiki/index.php?title=Hauptseite regelmäßigen Treffen].&lt;br /&gt;
&lt;br /&gt;
Dann kann man selbst den Hash-Wert der heruntergeladenen Firmware (hier am Beispiel des Routers TL WR841n mit der Hardware-Version 9) berechnen&lt;br /&gt;
&lt;br /&gt;
  $ sha256sum ff-kbu-tl-wr841n-v9-1.2.1b.bin&lt;br /&gt;
  2a3df4ea2e10cc9697a80fa0db7cf962fca052ec5d669779ae79e0345da16b30  ff-kbu-tl-wr841n-v9-1.2.1b.bin&lt;br /&gt;
&lt;br /&gt;
und mit dem Hash-Wert in der signierten und zuvor korrekt verifizierten Datei vergleichen:&lt;br /&gt;
&lt;br /&gt;
  $ grep ff-kbu-tl-wr841n-v9-1.2.1b.bin SHA256SUMS&lt;br /&gt;
  2a3df4ea2e10cc9697a80fa0db7cf962fca052ec5d669779ae79e0345da16b30  ./ff-kbu-tl-wr841n-v9-1.2.1b.bin&lt;br /&gt;
  2a3df4ea2e10cc9697a80fa0db7cf962fca052ec5d669779ae79e0345da16b30  ./untested/barrier_breaker/ff-kbu-tl-wr841n-v9-1.2.1b.bin&lt;br /&gt;
&lt;br /&gt;
Damit ist die heruntergeladenen Datei auch genau die, die wir für Freifunk erstellt und angeboten haben. Unter der Voraussetzung, dass uns niemand den privaten GPG-Schlüssel entwendet und das Passwort zur Sicherung des privaten Schlüssels geknackt hat. Letzteres ist sehr sehr unwahrscheinlich.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Verbindung zum Router herstellen: verbinden des PCs mit einen Netzwerkkabel (normales LAN Kabel) mit einem beliebigem LAN Port (gelb) (Abb.2).  &lt;br /&gt;
   '''Hinweis:''' Eine Ausnahme von dieser LAN/WAN/Farbwahl besteht beim TL-WR841N(D): hier ist es nicht der LAN Port (gelb)&lt;br /&gt;
   sondern der WAN Port (blau) - wobei diese Ausnahme bei (oder ggf. auch ab) der Hardware-Version 9.0 nicht mehr gilt.&lt;br /&gt;
&lt;br /&gt;
   '''Bei TL-WR841N v8.4:''' Beim Flashen über das Firmware-Upgrade der Original-Firmware tritt ggf. folgender Fehler auf:&lt;br /&gt;
   Error code: 23002&lt;br /&gt;
   The uploaded file name is too long!&lt;br /&gt;
   Hier hilft einfaches Umbenennen der herunter geladenen Freifunk-Firmware.&lt;br /&gt;
&lt;br /&gt;
Am PC muss die Netzwerkkarte auf Automatische IP-Adresse beziehen (DHCP) eingestellt sein.&lt;br /&gt;
&lt;br /&gt;
Ggf. den PC vorher von jeglichen anderen WLANs abmelden, sonst kann es zu Konflikten beim automatischen beziehen der IP kommen.&lt;br /&gt;
&lt;br /&gt;
=== Variante: Hersteller-Firmware ===&lt;br /&gt;
&lt;br /&gt;
#Aufrufen des Routermenüs im Webbrowser über die IP Adresse: 192.168.1.1. Benutzer: &amp;quot;admin&amp;quot; und Passwort: &amp;quot;admin&amp;quot; (im Auslieferungszustand)&lt;br /&gt;
#Menüpunkt &amp;quot;System-Tools&amp;quot;, Untermenüpunkt &amp;quot;Firmware-Upgrade&amp;quot; auswählen (Abb. 3)&lt;br /&gt;
#Button &amp;quot;Durchsuchen...&amp;quot; anklicken (Abb. 4) Die Firmwaredatei auswählen (Abb. 5) &lt;br /&gt;
#Button &amp;quot;Upgrade&amp;quot; anklicken (Abb. 6) - Sicherheitsfrage mit &amp;quot;OK&amp;quot; beantworten&lt;br /&gt;
#Die Installation der Firmware beginnt und dauert ca '''5 Minuten'''. Schalte den Router '''nicht aus''' (Abb. 7). Der Prozess ist abgeschlossen, wenn der Router neu startet und anschliessend die Sys-Lampe dauerhaft leuchtet.   (Abb. 8)&lt;br /&gt;
#Am Ende erscheint ggf. eine Fehlermeldung, weil der Router nicht mehr über die alte IP-Adresse direkt erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Eine weitere Konfiguration ist nicht nötig, kann aber über den config-mode vorgenommen werden (siehe [[Installation#Konfigurieren_des_Nodes|Abschnitt config-mode)]].&lt;br /&gt;
Der Router (WAN-Port) kann nun mit dem Netzwerk zum DSL Router verbunden werden.&lt;br /&gt;
&lt;br /&gt;
'''Wichtiger Hinweis:''' ''Verbinde keinesfalls Dein lokales Netz mit den '''LAN-Ports''' des Nodes. Sonst steht dein LAN im Freifunknetz offen!''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Möchtest Du jedoch einen Dienst (Web-/ Jabber-/ sonstiger Server) innerhalb des Freifunknetzwerkes anbieten, so ist einer der LAN-Ports dein Freund.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gallery caption=&amp;quot;Abbildungen zeigen das original Webinterface des Herstellers&amp;quot; widths=&amp;quot;180px&amp;quot; heights=&amp;quot;120px&amp;quot; perrow=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
 Datei:install_sc3.jpg|Abb. 3 Firmware-Upgrade&lt;br /&gt;
 Datei:install_sc4.jpg|Abb. 4 Durchsuchen&lt;br /&gt;
 Datei:install_sc5.jpg|Abb. 5 Datei wählen und Öffnen&amp;lt;br /&amp;gt;(Mittels des Dateimanagers des Betriebssystems)&lt;br /&gt;
 Datei:install_sc6.jpg|Abb. 6 Firmware-Upgrade&lt;br /&gt;
 Datei:install_sc10.jpg|Abb. 8 Erfolgreiche Installation&lt;br /&gt;
 &amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Variante: Update ===&lt;br /&gt;
&lt;br /&gt;
Updates der Freifunk-Software werden wie gewöhnliche OpenWRT-Updates eingespielt. (Vgl. http://wiki.openwrt.org/doc/howto/generic.sysupgrade). Solltest Du mit beim Upgrade Probleme haben, so helfen wir Dir gerne im [[IRC]] oder per [[Mailingliste]] weiter. Bei einem Update muss wie folgt vorgegangen werden:&lt;br /&gt;
&lt;br /&gt;
# Config Mode starten (Vgl. [[#Konfigurieren des Nodes]])&lt;br /&gt;
# Firmware-Upgrade auswählen&lt;br /&gt;
# Firmware hochladen und neu starten&lt;br /&gt;
&lt;br /&gt;
== Registrierung des Nodes ==&lt;br /&gt;
Bitte registrieren Deine Freifunk-Node und gibt die Position auf der Karte an. Dies erlaubt es uns, Dich bei Probleme zu verständigen - gleichzeitig kann Dein Node von Nutzern einfacher gefunden werden.&lt;br /&gt;
&lt;br /&gt;
Ein Node muss nach einem Update nicht erneut registriert werden.&lt;br /&gt;
&lt;br /&gt;
'''WICHTIG:''' Der PC muss mit dem gleichen Netzwerk wie die Freifunk Node verbunden sein! Du kannst nur Freifunk-Nodes registrieren, die unter Deiner IP online sind.&lt;br /&gt;
&lt;br /&gt;
#Zum Registrieren des Nodes die Webseite https://register.kbu.freifunk.net aufrufen (Abb. 20)&lt;br /&gt;
#Wenn noch nicht vorhanden, ein neuen Account erstellen (Abb. 21)&lt;br /&gt;
# Nach der Anmeldung erscheint auf der Startseite die unregistrierte Node als registrierbar (Abb. 22)&lt;br /&gt;
#Hier nun die Information zu der Node eingeben (Abb. 23)&lt;br /&gt;
#Bei &amp;quot;Standort auf der Karte&amp;quot; die Adresse eingeben und einen Moment warten. Das System sucht die passende Adresse automatisch heraus. Die Adresse anklicken (Abb. 24)&lt;br /&gt;
#Der genaue Standort der Node (blauer Marker) kann mit der Maus verändert werden (Abb. 25)&lt;br /&gt;
#Auf der Startseite ist die neu registrierte Node unter dem Punkt &amp;quot;Eigene Nodes&amp;quot; zu finden (Abb. 26)&lt;br /&gt;
#Um die Details der Registrierung zu bearbeiten, klickt man in der Leiste auf &amp;quot;Nodes&amp;quot; und sucht dann in der Liste seine Node und klickt auf den Link &amp;quot;Registrierung&amp;quot; (Abb. 27)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gallery&amp;gt;&lt;br /&gt;
 Datei:register_sc1.jpg|Abb. 20&lt;br /&gt;
 Datei:register_sc2.jpg|Abb. 21&lt;br /&gt;
 Datei:register_sc3.jpg|Abb. 22&lt;br /&gt;
 Datei:register_sc4.jpg|Abb. 23&lt;br /&gt;
 Datei:register_sc5.jpg|Abb. 24&lt;br /&gt;
 Datei:register_sc6.jpg|Abb. 25&lt;br /&gt;
 Datei:register_sc6-5.jpg|Abb. 26&lt;br /&gt;
 Datei:register_sc8.jpg|Abb. 27&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Konfigurieren des Nodes==&lt;br /&gt;
(config mode - optional)&amp;lt;br 7&amp;gt;&lt;br /&gt;
Grundsätzlich ist unsere Freifunk Firmware so konzipiert, dass der Betreiber eines Nodes (Freifunkknoten) keinerlei Konfigurationsarbeiten durchführen muss. Das bedeutet, nach dem Aufspielen unserer Firmware und der Registrierung, kann der Betreiber direkt loslegen und ist Teil unseres Freifunk-Netzwerkes. Wenn der Betreiber es wünscht, besteht natürlich für Ihn die Möglichkeit, seinen Knoten an seine speziellen Bedürfnisse anzupassen. Die Möglichkeiten und Abweichungen von der Default-Konfiguration sind vielfältig. Diese sollten aber nur dann durchgeführt werden, wenn der Durchführende genau weiß was er da macht. Eine fehlerhaft Konfiguration kann zum Beispiel zu Störungen im Netzwerk führen, ferner könnten illegitime Maßnahmen implementiert werden. Beide zuvor genannten Beispiele würden zu einem Ausschluss aus unserem Netzwerk führen. Dennoch kann man gute Gründe haben die ein Abweichen von den Defaultwerten sinnvoll machen. &lt;br /&gt;
&lt;br /&gt;
* Es ist zum Beispiel möglich, ein Passwort zu setzen um den Node per Fernzugriff/Login zu warten oder einige erweiterte Einstellungen vorzunehmen. &lt;br /&gt;
&lt;br /&gt;
Es kann durchaus sinnvoll sein, die LAN-Ports speziell zu konfigurieren oder zusätzliche Software für eine Bandbreitenbegrenzung zu installieren. &lt;br /&gt;
&lt;br /&gt;
An dieser Stellen möchten wir nur beschreiben, wie man in diesen Konfigurationsmodus gelangt. Eine ausführliche Beschreibung einiger [[Erweiterungen]] ist in Arbeit. Siehe auch [[Mitmachen#Pimp_My_Node|Pimp_My_Node]] &lt;br /&gt;
&lt;br /&gt;
'''Vorgehensweise'''&lt;br /&gt;
#PC mit Router über Netzwerkkabel verbinden (gelbe LAN Ports am Router)&lt;br /&gt;
#Wenn der Router gestartet ist (Power, Sys, WLAN leuchten dauerhaft), QSS Taste (schwarzer Knopf) 6 Sekunden drücken (Abb.10) (bis der Router neu startet, das sieht man daran, dass alle Lampen einmal ausgehen). Danach wird die Sys-Lampe, unregelmäßig blinken (Siehe: http://www.nilsschneider.net/2013/02/10/freifunk-blinken.html).&lt;br /&gt;
#bei manchen Routern (z.B. beim WR841N) muss man jetzt das Netzwerkkabel am Router umstecken (blauer WAN Port)&lt;br /&gt;
#Abwarten, bis der PC eine neue LAN-Verbindung aufgebaut hat (DHCP ist aktiv)&lt;br /&gt;
#Adresse http://192.168.1.1 aufrufen. - Punkt &amp;quot;Knoten neu einrichten&amp;quot; anklicken (Abb. 11)&lt;br /&gt;
#Vergabe von Passwort für den Fernzugriff/Login. Dann auf &amp;quot;weiter&amp;quot; klicken (Abb. 12)&lt;br /&gt;
#bei Bedarf die Bandbreitenbegrenzung aktivieren und auf &amp;quot;weiter&amp;quot; klicken (Abb. 13)&lt;br /&gt;
#auf &amp;quot;Jetzt neustarten!&amp;quot; klicken (Abb. 14) - Der Router startet neu, die kommende Fehlermeldung kann ignoriert werden (Abb. 15)&lt;br /&gt;
#Netzwerkkabel trennen und im WLAN warten, bis das netz &amp;quot;kbu.freifunk.net&amp;quot; auftaucht&lt;br /&gt;
&lt;br /&gt;
'''Verbinde keinesfalls Dein lokales Netz mit den gelben LAN-Ports des Nodes. Sonst steht es allen offen!'''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gallery&amp;gt;&lt;br /&gt;
 Datei:wr741nd_pi4-5.jpg|Abb. 10 QSS-Taste bei WR741ND&lt;br /&gt;
 Datei:config_sc1.jpg|Abb. 11&lt;br /&gt;
 Datei:config_sc2.jpg|Abb. 12&lt;br /&gt;
 Datei:config_sc3.jpg|Abb. 13&lt;br /&gt;
 Datei:config_sc4.jpg|Abb. 14&lt;br /&gt;
 Datei:config_sc5.jpg|Abb. 15&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== via Shell ===&lt;br /&gt;
Vorraussetzung für folgende Befehle sind eine Verbindung mit dem KBU Freifunk Netz sowie ein Terminal / Shell. &lt;br /&gt;
Vergesst nicht eth0 gegen die Bezeichnung eures Netzwerkinterfaces, welches am Freifunk hängt zu tauschen. &lt;br /&gt;
Bei Macbooks via Wlan z.B. &amp;quot;en1&amp;quot; statt &amp;quot;eth0&amp;quot;! Die link local Adresse der jeweiligen node findet ihr auf der [http://register.kbu.freifunk.net KBU Register] Seite. &lt;br /&gt;
IPv6 ping&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ping6 &amp;lt;link local adress des node&amp;gt;%eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IPv6 ssh - Hinter der link local Adresse &amp;quot;%&amp;quot; + &amp;quot;Netzwerk Interface an eurer Kiste&amp;quot; (Hier im Beispiel eth0)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@&amp;lt;link local adress des node&amp;gt;%eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Firmware upgrade bei node mit uplink&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@&amp;lt;link local adress des node&amp;gt;%eth0              // SSH Verbindung zum Node aufbauen&lt;br /&gt;
cd ../tmp/                                              // in das Verzeichnis &amp;quot;tmp&amp;quot; wechseln&lt;br /&gt;
free                                                    // Freien Speicher prüfen&lt;br /&gt;
wget http://pfad/zur/firmware.bin                       // Firmware herunterladen oder&lt;br /&gt;
sysupgrade -v firmware.bin                              // Firmwareupgrade durchführen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Achtung''': Beim Download der Firmware via wget kann auf dem Router die Integrität der Firmware nicht geprüft werden, da gpg i.d.R. auf den Routern nicht verfügbar ist. Deshalb ist es sicherer, den oben beschriebenen Weg zu wählen, oder die geprüfte Firmware per scp (s.u.) auf den Router zu kopieren. &lt;br /&gt;
&lt;br /&gt;
Firmware upgrade bei node ohne uplink&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp -6 -v -r firmware.bin root@\[&amp;lt;linkloc&amp;gt;%eth0\]:../tmp/          // Firmware auf den node schieben (md5 checken!)&lt;br /&gt;
ssh root@&amp;lt;link local adress des node&amp;gt;%eth0 &lt;br /&gt;
cd ../tmp/  &lt;br /&gt;
sysupgrade -v firmware.bin  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== LAN Kopplung ====&lt;br /&gt;
Eine LAN Kopplung kann in manchen Fällen sinnvoll sein, besonders wenn man einen VLAN fähigen Switch und eine bestehende Ntzwerkverkabelung hat. Hier werden die Switchports angwiesen auch über LAN zu meshen.&lt;br /&gt;
&lt;br /&gt;
===== TL-WR841ND =====&lt;br /&gt;
03/2014: Hier wird über die alle 4 LAN Ports gemeshed, Mesh über WLAN kann man optional noch ausschalten! Folgende Config stammt von rampone/FF-KBU und wurde an 2 TL-WR841N v.8 getestet mit KBU-FF-Firmware 1.1.&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/network'' - Folgende Änderungen wurden an der FF-Firmware 1.0 vorgenommen:&lt;br /&gt;
#config interface 'freifunk' -&amp;gt; Hier haben wir eth0 aus &amp;quot;ifname&amp;quot; rausgenommen, damit kein ff aus dem eth0 (switch) rauskommt.&lt;br /&gt;
#config interface 'mesh_lan' -&amp;gt; kompl. codeblock hinzugefügt, dieser bewirkt das über eth0 (switch) gemeshed wird. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config interface 'loopback'&lt;br /&gt;
	option ifname 'lo'&lt;br /&gt;
	option proto 'static'&lt;br /&gt;
	option ipaddr '127.0.0.1'&lt;br /&gt;
	option netmask '255.0.0.0'&lt;br /&gt;
&lt;br /&gt;
config interface 'wan'&lt;br /&gt;
	option ifname 'eth0'&lt;br /&gt;
	option proto 'dhcp'&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option accept_ra '0'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
&lt;br /&gt;
config switch&lt;br /&gt;
	option name 'switch0'&lt;br /&gt;
	option reset '1'&lt;br /&gt;
	option enable_vlan '1'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'switch0'&lt;br /&gt;
	option vlan '1'&lt;br /&gt;
	option ports '0 1 2 3 4'&lt;br /&gt;
&lt;br /&gt;
config interface 'freifunk'&lt;br /&gt;
	option ifname 'bat0'		#LAN-Kopplung: ifname eth1 entfernt&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option proto 'none'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option accept_ra '1'&lt;br /&gt;
	option macaddr '10:fe:ed:f1:53:84'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mtu '1528'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_vpn'&lt;br /&gt;
	option ifname 'mesh-vpn'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
	option macaddr '12:fe:ed:f2:53:84'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_lan'		#LAN-Kopplung: Codeblock mesh-lan hinzugefuegt&lt;br /&gt;
	option ifname 'eth1'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/wireless'' - Hier wird der Codeblock, der für das Mesh über WLAN verantwortlich ist auskommentiert (optional)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#config wifi-iface 'wifi_mesh'&lt;br /&gt;
#       option device 'radio0'&lt;br /&gt;
#       option network 'mesh'&lt;br /&gt;
#       option mode 'adhoc'&lt;br /&gt;
#       option ssid '02:d1:11:37:fc:39'&lt;br /&gt;
#       option bssid '02:d1:11:37:fc:39&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TL-WDR4300 =====&lt;br /&gt;
Das gleiche nochmal für den 4300er&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/network''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config interface 'loopback'&lt;br /&gt;
	option ifname 'lo'&lt;br /&gt;
	option proto 'static'&lt;br /&gt;
	option ipaddr '127.0.0.1'&lt;br /&gt;
	option netmask '255.0.0.0'&lt;br /&gt;
&lt;br /&gt;
config interface 'wan'&lt;br /&gt;
	option ifname 'eth0.2'&lt;br /&gt;
	option proto 'dhcp'&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option accept_ra '0'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option macaddr 'a2:f3:c1:65:81:cd'&lt;br /&gt;
&lt;br /&gt;
config switch&lt;br /&gt;
	option name 'eth0'&lt;br /&gt;
	option reset '1'&lt;br /&gt;
	option enable_vlan '1'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'eth0'&lt;br /&gt;
	option vlan '1'&lt;br /&gt;
	option ports '0t 2 3 4 5'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'eth0'&lt;br /&gt;
	option vlan '2'&lt;br /&gt;
	option ports '0t 1'&lt;br /&gt;
&lt;br /&gt;
config interface 'freifunk'&lt;br /&gt;
	option ifname 'bat0'		#LAN-Kopplung: ifname eth0.1 entfernt&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option proto 'none'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option accept_ra '1'&lt;br /&gt;
	option macaddr 'a0:f3:c1:64:81:cc'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mtu '1528'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_vpn'&lt;br /&gt;
	option ifname 'mesh-vpn'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
	option macaddr 'a2:f3:c1:65:81:cc'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_lan'		#LAN-Kopplung: Codeblock mesh-lan hinzugefuegt&lt;br /&gt;
        option ifname 'eth0.1'&lt;br /&gt;
        option proto 'batadv'&lt;br /&gt;
        option mesh 'bat0'&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Pimp My Node===&lt;br /&gt;
&lt;br /&gt;
An dieser Stelle möchten wir noch ein paar Erweiterungen vorstellen. Da die Geräte normalerweise 24/7 in Betrieb sind, kann, je nach Hardware, der ein oder andere Freifunkrouter mit ein paar zusätzlichen Funktionen und/oder Aufgaben betreut werden.&lt;br /&gt;
&lt;br /&gt;
;Web-Interface einschalten.&lt;br /&gt;
Um das WebInterface dauerhaft einzuschalten:&lt;br /&gt;
Per SSH auf der Konsole einloggen und &lt;br /&gt;
 /etc/init.d/uhttpd enable &lt;br /&gt;
ausführen.&lt;br /&gt;
&lt;br /&gt;
;Zusätzliche WLANs&lt;br /&gt;
:Hier eine Anleitung von [[Benutzer:Twinter|Twinter]], in der er euch zeigen möchte, wie Ihr einfach eurem Freifunk-Node [[AnleitungZusätzlichesWLAN|zusätzliche WLANs]] beibringen könnt.&lt;br /&gt;
&lt;br /&gt;
== Einsperren des Freifunk-Routers in eine DMZ ==&lt;br /&gt;
&lt;br /&gt;
Wer seinen Freifunk-Router einsperren und/oder die Bandbreite begrenzen möchte, kann dies am einfachsten tun, indem er ihn an seiner Firewall an einen eigenen Netzwerkport klemmt und diesen dann als DMZ konfiguriert. Ein KBU-Freifunk-Router muß zur Zeit im LAN DHCP, DNS, im Internet NTP sowie mit den [[fastd]]-Knoten reden können. Folgendes Bespiel für eine iptables-Firewall nimmt an, dass der Freifunk-Router über eth2 angeschlossen ist:&lt;br /&gt;
&lt;br /&gt;
 # eth2 darf nur dns, ntp, dhcp und ansonsten mit den fastdX reden&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p udp --dport 67:68 --sport 67:68 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p udp --dport 67:68 --sport 67:68 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p udp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p tcp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p tcp --dport 123                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p udp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p tcp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p tcp --dport 123                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 176.9.41.253                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 176.9.41.253                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 178.63.59.41                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 178.63.59.41                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 37.120.169.214               -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 37.120.169.214               -j ACCEPT &lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 37.221.195.47                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 37.221.195.47                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 78.46.68.75                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 78.46.68.75                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 84.201.35.206                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 84.201.35.206                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT                                      -j DROP&lt;br /&gt;
 iptables -i eth2 -A FORWARD                                    -j DROP&lt;br /&gt;
 # eth2 darf maximal 2000 kbit/s ein- und ausgehenden traffic machen&lt;br /&gt;
 wondershaper eth2 2000 2000&lt;br /&gt;
&lt;br /&gt;
Prinzipiell könnte man den Traffic noch weiter einschränken. DHCP und DNS müssen nur zum DHCP- bzw. DNS-Server funktionieren und der Traffic zu den fastd-Servern ließe sich auf TCP Port 80 und UDP Port 10000 begrenzen.&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Registrierung_des_Nodes&amp;diff=2943</id>
		<title>Registrierung des Nodes</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Registrierung_des_Nodes&amp;diff=2943"/>
		<updated>2014-11-18T10:59:26Z</updated>

		<summary type="html">&lt;p&gt;Took: typo fixed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Registrierung des Nodes ==&lt;br /&gt;
Bitte registrieren Deine Freifunk-Node und gibt die Position auf der Karte an. Dies erlaubt es uns, Dich bei Probleme zu verständigen - gleichzeitig kann Dein Node von Nutzern einfacher gefunden werden.&lt;br /&gt;
&lt;br /&gt;
Ein Node muss nach einem Update nicht erneut registriert werden.&lt;br /&gt;
&lt;br /&gt;
'''WICHTIG:''' Der PC muss mit dem gleichen Netzwerk wie die Freifunk Node verbunden sein! Du kannst nur Freifunk-Nodes registrieren, die unter Deiner IP online sind.&lt;br /&gt;
&lt;br /&gt;
#Zum Registrieren des Nodes die Webseite https://register.kbu.freifunk.net aufrufen (Abb. 20)&lt;br /&gt;
#Wenn noch nicht vorhanden, ein neuen Account erstellen (Abb. 21)&lt;br /&gt;
# Nach der Anmeldung erscheint auf der Startseite die unregistrierte Node als registrierbar (Abb. 22)&lt;br /&gt;
#Hier nun die Information zu der Node eingeben (Abb. 23)&lt;br /&gt;
#Bei &amp;quot;Standort auf der Karte&amp;quot; die Adresse eingeben und einen Moment warten. Das System sucht die passende Adresse automatisch heraus. Die Adresse anklicken (Abb. 24) (Hinweis: Man kann nicht direkt auf der Karte einen Marker setzten. Man muss unbedingt zunächst eine Adresse bei &amp;quot;Standort auf der Karte&amp;quot; eingeben - erst danach kann man den genauen Standort auf der Karte mit der Maus verändern!)&lt;br /&gt;
#Der genaue Standort der Node (blauer Marker) kann mit der Maus verändert werden (Abb. 25)&lt;br /&gt;
#Auf der Startseite ist die neu registrierte Node unter dem Punkt &amp;quot;Eigene Nodes&amp;quot; zu finden (Abb. 26)&lt;br /&gt;
#Um die Details der Registrierung zu bearbeiten, klickt man in der Leiste auf &amp;quot;Nodes&amp;quot; und sucht dann in der Liste seine Node und klickt auf den Link &amp;quot;Registrierung&amp;quot; (Abb. 27)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gallery&amp;gt;&lt;br /&gt;
 Datei:register_sc1.jpg|Abb. 20&lt;br /&gt;
 Datei:register_sc2.jpg|Abb. 21&lt;br /&gt;
 Datei:register_sc3.jpg|Abb. 22&lt;br /&gt;
 Datei:register_sc4.jpg|Abb. 23&lt;br /&gt;
 Datei:register_sc5.jpg|Abb. 24&lt;br /&gt;
 Datei:register_sc6.jpg|Abb. 25&lt;br /&gt;
 Datei:register_sc6-5.jpg|Abb. 26&lt;br /&gt;
 Datei:register_sc8.jpg|Abb. 27&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Registrierung_des_Nodes&amp;diff=2942</id>
		<title>Registrierung des Nodes</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Registrierung_des_Nodes&amp;diff=2942"/>
		<updated>2014-11-18T10:56:46Z</updated>

		<summary type="html">&lt;p&gt;Took: faq zur positionierung des markers auf der map&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Registrierung des Nodes ==&lt;br /&gt;
Bitte registrieren Deine Freifunk-Node und gibt die Position auf der Karte an. Dies erlaubt es uns, Dich bei Probleme zu verständigen - gleichzeitig kann Dein Node von Nutzern einfacher gefunden werden.&lt;br /&gt;
&lt;br /&gt;
Ein Node muss nach einem Update nicht erneut registriert werden.&lt;br /&gt;
&lt;br /&gt;
'''WICHTIG:''' Der PC muss mit dem gleichen Netzwerk wie die Freifunk Node verbunden sein! Du kannst nur Freifunk-Nodes registrieren, die unter Deiner IP online sind.&lt;br /&gt;
&lt;br /&gt;
#Zum Registrieren des Nodes die Webseite https://register.kbu.freifunk.net aufrufen (Abb. 20)&lt;br /&gt;
#Wenn noch nicht vorhanden, ein neuen Account erstellen (Abb. 21)&lt;br /&gt;
# Nach der Anmeldung erscheint auf der Startseite die unregistrierte Node als registrierbar (Abb. 22)&lt;br /&gt;
#Hier nun die Information zu der Node eingeben (Abb. 23)&lt;br /&gt;
#Bei &amp;quot;Standort auf der Karte&amp;quot; die Adresse eingeben und einen Moment warten. Das System sucht die passende Adresse automatisch heraus. Die Adresse anklicken (Abb. 24) (Hinweis: Man kann nicht direkt auf der Karte einen Marker setzten. Man muss unbedingt zunächst eine Adresse bei &amp;quot;Standort auf der Karte&amp;quot; eingeben - erst danach kann man den genauen Standtort auf der Karte mit der Maus verändern!)&lt;br /&gt;
#Der genaue Standort der Node (blauer Marker) kann mit der Maus verändert werden (Abb. 25)&lt;br /&gt;
#Auf der Startseite ist die neu registrierte Node unter dem Punkt &amp;quot;Eigene Nodes&amp;quot; zu finden (Abb. 26)&lt;br /&gt;
#Um die Details der Registrierung zu bearbeiten, klickt man in der Leiste auf &amp;quot;Nodes&amp;quot; und sucht dann in der Liste seine Node und klickt auf den Link &amp;quot;Registrierung&amp;quot; (Abb. 27)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gallery&amp;gt;&lt;br /&gt;
 Datei:register_sc1.jpg|Abb. 20&lt;br /&gt;
 Datei:register_sc2.jpg|Abb. 21&lt;br /&gt;
 Datei:register_sc3.jpg|Abb. 22&lt;br /&gt;
 Datei:register_sc4.jpg|Abb. 23&lt;br /&gt;
 Datei:register_sc5.jpg|Abb. 24&lt;br /&gt;
 Datei:register_sc6.jpg|Abb. 25&lt;br /&gt;
 Datei:register_sc6-5.jpg|Abb. 26&lt;br /&gt;
 Datei:register_sc8.jpg|Abb. 27&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Installation&amp;diff=2850</id>
		<title>Installation</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Installation&amp;diff=2850"/>
		<updated>2014-10-22T12:34:53Z</updated>

		<summary type="html">&lt;p&gt;Took: /* Variante: Hersteller-Firmware */ undo own change&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
Die Installation und Inbetriebnahme eines Routers im Freifunk-KBU Netz ist recht einfach, so dass grundlegendes IT-Verständnis dafür genügen sollte. In der unten stehenden Tabelle sind die von unserer Freifunk-Gruppe KBU aktiv unterstützten Geräte angegeben, die wir selbst im Einsatz haben oder hatten. Für andere Geräte beachte bitte [[Firmware]].&lt;br /&gt;
&lt;br /&gt;
Es gibt kaum Unterschiede zwischen einer Neuinstallation und einem Upgrade. Beides geschieht durch einen Firmware-Upgrade, wobei bei der Neuinstallation das Administrations-Interface der Hersteller-Firmware und sonst das von OpenWRT-Interface genutzt wird. Der Garantieanspruch geht dabei nicht verloren: man kann auch die Original-Firmware wieder aufspielen, die für das jeweilige Gerät vom Hersteller zum Download angeboten wird.&lt;br /&gt;
&lt;br /&gt;
Zur Installation bzw. für ein Upgrade sind die folgenden Schritte notwendig&lt;br /&gt;
# Download der Firmware&lt;br /&gt;
# Überprüfen der Signatur der Firmware, um eine Manipulation ausschließen zu können&lt;br /&gt;
# Einspielen der Firmware (Von der Hersteller-Firmware oder von OpenWRT aus)&lt;br /&gt;
# Registrieren des Nodes (optional)&lt;br /&gt;
# Konfigurieren des Nodes (optiomal)&lt;br /&gt;
&lt;br /&gt;
Nachfolgend sind die einzelnen Schritte genauer beschrieben.&lt;br /&gt;
&lt;br /&gt;
Bei Problemen, helfen wir gerne per [[IRC]] oder [[Mailingliste|E-Mail]] weiter.&lt;br /&gt;
&lt;br /&gt;
== Download der Firmware ==&lt;br /&gt;
[[Datei:wr741nd_pi3.jpg||300px|thumb|right|Abb. 1 Router und Hardversion]] &lt;br /&gt;
[[Datei:wr741nd_pi4.jpg||300px|thumb|right|Abb. 2 LAN Port ]] &lt;br /&gt;
* Typ und '''Hardware Version''' des TP-Link Routers prüfen, auf der Unterseite des Routers befindet sich der Router Typ und die Hardwareversion aufgedruckt (Abb.1).&lt;br /&gt;
* Download der aktuellen Freifunk Firmware für den Router Typ '''unter Berücksichtigung der entsprechenden Hardwareversion'''. Nach dem Download solltest Du sicher stellen, dass alle Dateien korrekt herunter geladen wurden ([[Firmware Überprüfen]]). &lt;br /&gt;
* Solltest Du Dir total unsicher sein, welche die richtige Firmware für Dein Router ist, dann wende Dich bitte per [[IRC]]hat oder über die [[Mailingliste|Mailingliste]] an uns.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable centered mw-datatable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|  Hersteller || Model ||  HW Revision || Antennen ||  Freifunk Firmware  &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || style=&amp;quot;width:10em&amp;quot;| TL-WR740N || style=&amp;quot;text-align:center&amp;quot;| v4.x (ohne v4.27) || style=&amp;quot;text-align:center&amp;quot;|  1 || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr740n-v4-1.2.1a.bin 1.2.1a] &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR741N(D) || style=&amp;quot;text-align:center&amp;quot;| v1.x || style=&amp;quot;text-align:center&amp;quot;|  1 || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr741nd-v1-1.2.1a.bin 1.2.1a] &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR741N(D) || style=&amp;quot;text-align:center&amp;quot;| v2.x || style=&amp;quot;text-align:center&amp;quot;|  1 || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr741nd-v2-1.2.1a.bin 1.2.1a] &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR741N(D) || style=&amp;quot;text-align:center&amp;quot;| v4.x || style=&amp;quot;text-align:center&amp;quot;| 1 || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr741nd-v4-1.2.1a.bin 1.2.1a] &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR841N(D) || style=&amp;quot;text-align:center&amp;quot;| v3 || style=&amp;quot;text-align:center&amp;quot;| 2 || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr841nd-v3-1.2.1a.bin 1.2.1a]&lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR841N(D) || style=&amp;quot;text-align:center&amp;quot;| v5 || style=&amp;quot;text-align:center&amp;quot;| 2 || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr841nd-v5-1.2.1a.bin 1.2.1a]&lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR841N(D) || style=&amp;quot;text-align:center&amp;quot;| v7.x || style=&amp;quot;text-align:center&amp;quot;| 2 || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr841nd-v7-1.2.1a.bin 1.2.1a] &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR841N(D) || style=&amp;quot;text-align:center&amp;quot;| v8.x || style=&amp;quot;text-align:center&amp;quot;| 2 || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr841n-v8-1.2.1a.bin 1.2.1a] &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR841N(D) || style=&amp;quot;text-align:center&amp;quot;| v9, v9.1 || style=&amp;quot;text-align:center&amp;quot;| 2 || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr841n-v9-1.2.1b.bin 1.2.1b] &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR842ND || style=&amp;quot;text-align:center&amp;quot;| v1.x || style=&amp;quot;text-align:center&amp;quot;| 2 || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr842n-v1-1.2.1a.bin 1.2.1a] &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR842ND || style=&amp;quot;text-align:center&amp;quot;| v2 || style=&amp;quot;text-align:center&amp;quot;| 2 || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr842n-v2-1.2.1b.bin 1.2.1b]&lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR1043ND || style=&amp;quot;text-align:center&amp;quot;| v1.x || style=&amp;quot;text-align:center&amp;quot;| 3  || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr1043nd-v1-1.2.1a.bin 1.2.1a]  &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WDR3500 ||style=&amp;quot;text-align:center&amp;quot;| v1 || style=&amp;quot;text-align:center&amp;quot;| 2  || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wdr3500-v1-1.2.1b.bin 1.2.1b]&lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WDR3600 ||style=&amp;quot;text-align:center&amp;quot;| v1.x || style=&amp;quot;text-align:center&amp;quot;| 2  || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wdr3600-v1-1.2.1a.bin 1.2.1a] &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WDR4300 ||style=&amp;quot;text-align:center&amp;quot;| v1.x (ohne v1.7), v1.7 läuft aber mindestens 1x OK || style=&amp;quot;text-align:center&amp;quot;| 3  || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wdr4300-v1-1.2.1a.bin 1.2.1a] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Überprüfen der Signatur ==&lt;br /&gt;
&lt;br /&gt;
Damit sichergestellt ist, dass die heruntergeladene Freifunk-Firmware auch wirklich die ist, welche wir erstellt und zum Download angeboten haben, sollten unbedingt die Hash-Werte (d.h. ein eindeutiger Fingerabdruck) der Firmware-Dateien und die korrekte Signatur der von uns bereitgestellten Hash-Wert-Datei geprüft werden. Dieses ist vermutlich der schwierigste Teil der Installation und wird von Einzelnen gelegentlich übergangen, getreu der Kölschen Lebensweisheit ''&amp;quot;Et hät noch immer joot jejange&amp;quot;''. Darauf sollte man sich aber in heutigen Zeiten nicht verlassen.&lt;br /&gt;
&lt;br /&gt;
Die Datei mit den Hash-Werten ist mit unserem GPG-Schlüssel signiert. Der heimliche Austausch einer Freifunk-Firmware und des entsprechenden Hash-Wertes ist also nicht möglich, da die Signatur nur bei unveränderter Hash-Wert-Datei gültig bleibt. Unser öffentliche GPG-Schlüssel ist auf gängigen Keyservern hinterlegt.&lt;br /&gt;
&lt;br /&gt;
Wer sich mit GPG noch nicht auskennt, kann sich z.B. unter [https://www.gnupg.org www.gnupg.org] aufschlauen.&lt;br /&gt;
&lt;br /&gt;
Unseren GPG-Schlüssel bekommt man z.B. unter Linux/Unix von der Kommandozeile aus so:&lt;br /&gt;
 # gpg --keyserver pgp.mit.edu --recv-key  '0FA27C6E4'&lt;br /&gt;
&lt;br /&gt;
Nach dem Download der beiden Dateien&lt;br /&gt;
* [http://jenkins.kbu.freifunk.net/files/release/1.2.1/SHA256SUMS SHA256 Summen]&lt;br /&gt;
* [http://jenkins.kbu.freifunk.net/files/release/1.2.1/SHA256SUMS.sign Signatur]&lt;br /&gt;
prüft man dann einfach die Signatur mit&lt;br /&gt;
&lt;br /&gt;
  $ gpg --verify SHA256SUMS.sign&lt;br /&gt;
  gpg: Signature made Wed 27 Aug 2014 10:40:01 PM CEST using RSA key ID FA27C6E4&lt;br /&gt;
  gpg: Good signature from &amp;quot;Freifunk-KBU Release Signing Key (Used by jenkins.kbu.freifunk.net) &amp;lt;info@kbu.freifunk.net&amp;gt;&amp;quot;&lt;br /&gt;
  gpg: WARNING: This key is not certified with a trusted signature!&lt;br /&gt;
  gpg:          There is no indication that the signature belongs to the owner.&lt;br /&gt;
  Primary key fingerprint: E3B3 AF2B 6B54 149B 9313  4EC0 E782 EAC7 FA27 C6E4&lt;br /&gt;
&lt;br /&gt;
Die Signatur ist also korrekt. Den Fingerprint prüft man am besten einmal offline bei unseren [http://kbu.freifunk.net/wiki/index.php?title=Hauptseite regelmäßigen Treffen].&lt;br /&gt;
&lt;br /&gt;
Dann kann man selbst den Hash-Wert der heruntergeladenen Firmware (hier am Beispiel des Routers TL WR841n mit der Hardware-Version 9) berechnen&lt;br /&gt;
&lt;br /&gt;
  $ sha256sum ff-kbu-tl-wr841n-v9-1.2.1b.bin&lt;br /&gt;
  2a3df4ea2e10cc9697a80fa0db7cf962fca052ec5d669779ae79e0345da16b30  ff-kbu-tl-wr841n-v9-1.2.1b.bin&lt;br /&gt;
&lt;br /&gt;
und mit dem Hash-Wert in der signierten und zuvor korrekt verifizierten Datei vergleichen:&lt;br /&gt;
&lt;br /&gt;
  $ grep ff-kbu-tl-wr841n-v9-1.2.1b.bin SHA256SUMS&lt;br /&gt;
  2a3df4ea2e10cc9697a80fa0db7cf962fca052ec5d669779ae79e0345da16b30  ./ff-kbu-tl-wr841n-v9-1.2.1b.bin&lt;br /&gt;
  2a3df4ea2e10cc9697a80fa0db7cf962fca052ec5d669779ae79e0345da16b30  ./untested/barrier_breaker/ff-kbu-tl-wr841n-v9-1.2.1b.bin&lt;br /&gt;
&lt;br /&gt;
Damit ist die heruntergeladenen Datei auch genau die, die wir für Freifunk erstellt und angeboten haben. Unter der Voraussetzung, dass uns niemand den privaten GPG-Schlüssel entwendet und das Passwort zur Sicherung des privaten Schlüssels geknackt hat. Letzteres ist sehr sehr unwahrscheinlich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Verbindung zum Router herstellen: verbinden des PCs mit einen Netzwerkkabel (normales LAN Kabel) mit einem beliebigem LAN Port (gelb) (Abb.2).  &lt;br /&gt;
   '''Hinweis:''' Eine Ausnahme von dieser LAN/WAN/Farbwahl besteht beim TL-WR841N(D): hier ist es nicht der LAN Port (gelb)&lt;br /&gt;
   sondern der WAN Port (blau) - wobei diese Ausnahme bei (oder ggf. auch ab) der Hardware-Version 9.0 nicht mehr gilt.&lt;br /&gt;
&lt;br /&gt;
   '''Bei TL-WR841N v8.4:''' Beim Flashen über das Firmware-Upgrade der Original-Firmware tritt ggf. folgender Fehler auf:&lt;br /&gt;
   Error code: 23002&lt;br /&gt;
   The uploaded file name is too long!&lt;br /&gt;
   Hier hilft einfaches Umbenennen der herunter geladenen Freifunk-Firmware.&lt;br /&gt;
&lt;br /&gt;
Am PC muss die Netzwerkkarte auf Automatische IP-Adresse beziehen (DHCP) eingestellt sein.&lt;br /&gt;
&lt;br /&gt;
Ggf. den PC vorher von jeglichen anderen WLANs abmelden, sonst kann es zu Konflikten beim automatischen beziehen der IP kommen.&lt;br /&gt;
&lt;br /&gt;
=== Variante: Hersteller-Firmware ===&lt;br /&gt;
&lt;br /&gt;
#Aufrufen des Routermenüs im Webbrowser über die IP Adresse: 192.168.1.1. Benutzer: &amp;quot;admin&amp;quot; und Passwort: &amp;quot;admin&amp;quot; (im Auslieferungszustand)&lt;br /&gt;
#Menüpunkt &amp;quot;System-Tools&amp;quot;, Untermenüpunkt &amp;quot;Firmware-Upgrade&amp;quot; auswählen (Abb. 3)&lt;br /&gt;
#Button &amp;quot;Durchsuchen...&amp;quot; anklicken (Abb. 4) Die Firmwaredatei auswählen (Abb. 5) &lt;br /&gt;
#Button &amp;quot;Upgrade&amp;quot; anklicken (Abb. 6) - Sicherheitsfrage mit &amp;quot;OK&amp;quot; beantworten&lt;br /&gt;
#Die Installation der Firmware beginnt und dauert ca '''5 Minuten'''. Schalte den Router '''nicht aus''' (Abb. 7). Der Prozess ist abgeschlossen, wenn der Router neu startet und anschliessend die Sys-Lampe dauerhaft leuchtet.   (Abb. 8)&lt;br /&gt;
#Am Ende erscheint ggf. eine Fehlermeldung, weil der Router nicht mehr über die alte IP-Adresse direkt erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Eine weitere Konfiguration ist nicht nötig, kann aber über den config-mode vorgenommen werden (siehe [[Installation#Konfigurieren_des_Nodes|Abschnitt config-mode)]].&lt;br /&gt;
Der Router (WAN-Port) kann nun mit dem Netzwerk zum DSL Router verbunden werden.&lt;br /&gt;
&lt;br /&gt;
'''Wichtiger Hinweis:''' ''Verbinde keinesfalls Dein lokales Netz mit den '''LAN-Ports''' des Nodes. Sonst steht dein LAN im Freifunknetz offen!''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Möchtest Du jedoch einen Dienst (Web-/ Jabber-/ sonstiger Server) innerhalb des Freifunknetzwerkes anbieten, so ist einer der LAN-Ports dein Freund.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gallery caption=&amp;quot;Abbildungen zeigen das original Webinterface des Herstellers&amp;quot; widths=&amp;quot;180px&amp;quot; heights=&amp;quot;120px&amp;quot; perrow=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
 Datei:install_sc3.jpg|Abb. 3 Firmware-Upgrade&lt;br /&gt;
 Datei:install_sc4.jpg|Abb. 4 Durchsuchen&lt;br /&gt;
 Datei:install_sc5.jpg|Abb. 5 Datei wählen und Öffnen&amp;lt;br /&amp;gt;(Mittels des Dateimanagers des Betriebssystems)&lt;br /&gt;
 Datei:install_sc6.jpg|Abb. 6 Firmware-Upgrade&lt;br /&gt;
 Datei:install_sc10.jpg|Abb. 8 Erfolgreiche Installation&lt;br /&gt;
 &amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Variante: Update ===&lt;br /&gt;
&lt;br /&gt;
Updates der Freifunk-Software werden wie gewöhnliche OpenWRT-Updates eingespielt. (Vgl. http://wiki.openwrt.org/doc/howto/generic.sysupgrade). Solltest Du mit beim Upgrade Probleme haben, so helfen wir Dir gerne im [[IRC]] oder per [[Mailingliste]] weiter. Bei einem Update muss wie folgt vorgegangen werden:&lt;br /&gt;
&lt;br /&gt;
# Config Mode starten (Vgl. [[#Konfigurieren des Nodes]])&lt;br /&gt;
# Firmware-Upgrade auswählen&lt;br /&gt;
# Firmware hochladen und neu starten&lt;br /&gt;
&lt;br /&gt;
== Registrierung des Nodes ==&lt;br /&gt;
Bitte registrieren Deine Freifunk-Node und gibt die Position auf der Karte an. Dies erlaubt es uns, Dich bei Probleme zu verständigen - gleichzeitig kann Dein Node von Nutzern einfacher gefunden werden.&lt;br /&gt;
&lt;br /&gt;
Ein Node muss nach einem Update nicht erneut registriert werden.&lt;br /&gt;
&lt;br /&gt;
'''WICHTIG:''' Der PC muss mit dem gleichen Netzwerk wie die Freifunk Node verbunden sein! Du kannst nur Freifunk-Nodes registrieren, die unter Deiner IP online sind.&lt;br /&gt;
&lt;br /&gt;
#Zum Registrieren des Nodes die Webseite https://register.kbu.freifunk.net aufrufen (Abb. 20)&lt;br /&gt;
#Wenn noch nicht vorhanden, ein neuen Account erstellen (Abb. 21)&lt;br /&gt;
# Nach der Anmeldung erscheint auf der Startseite die unregistrierte Node als registrierbar (Abb. 22)&lt;br /&gt;
#Hier nun die Information zu der Node eingeben (Abb. 23)&lt;br /&gt;
#Bei &amp;quot;Standort auf der Karte&amp;quot; die Adresse eingeben und einen Moment warten. Das System sucht die passende Adresse automatisch heraus. Die Adresse anklicken (Abb. 24)&lt;br /&gt;
#Der genaue Standort der Node (blauer Marker) kann mit der Maus verändert werden (Abb. 25)&lt;br /&gt;
#Auf der Startseite ist die neu registrierte Node unter dem Punkt &amp;quot;Eigene Nodes&amp;quot; zu finden (Abb. 26)&lt;br /&gt;
#Um die Details der Registrierung zu bearbeiten, klickt man in der Leiste auf &amp;quot;Nodes&amp;quot; und sucht dann in der Liste seine Node und klickt auf den Link &amp;quot;Registrierung&amp;quot; (Abb. 27)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gallery&amp;gt;&lt;br /&gt;
 Datei:register_sc1.jpg|Abb. 20&lt;br /&gt;
 Datei:register_sc2.jpg|Abb. 21&lt;br /&gt;
 Datei:register_sc3.jpg|Abb. 22&lt;br /&gt;
 Datei:register_sc4.jpg|Abb. 23&lt;br /&gt;
 Datei:register_sc5.jpg|Abb. 24&lt;br /&gt;
 Datei:register_sc6.jpg|Abb. 25&lt;br /&gt;
 Datei:register_sc6-5.jpg|Abb. 26&lt;br /&gt;
 Datei:register_sc8.jpg|Abb. 27&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Konfigurieren des Nodes==&lt;br /&gt;
(config mode - optional)&amp;lt;br 7&amp;gt;&lt;br /&gt;
Grundsätzlich ist unsere Freifunk Firmware so konzipiert, dass der Betreiber eines Nodes (Freifunkknoten) keinerlei Konfigurationsarbeiten durchführen muss. Das bedeutet, nach dem Aufspielen unserer Firmware und der Registrierung, kann der Betreiber direkt loslegen und ist Teil unseres Freifunk-Netzwerkes. Wenn der Betreiber es wünscht, besteht natürlich für Ihn die Möglichkeit, seinen Knoten an seine speziellen Bedürfnisse anzupassen. Die Möglichkeiten und Abweichungen von der Default-Konfiguration sind vielfältig. Diese sollten aber nur dann durchgeführt werden, wenn der Durchführende genau weiß was er da macht. Eine fehlerhaft Konfiguration kann zum Beispiel zu Störungen im Netzwerk führen, ferner könnten illegitime Maßnahmen implementiert werden. Beide zuvor genannten Beispiele würden zu einem Ausschluss aus unserem Netzwerk führen. Dennoch kann man gute Gründe haben die ein Abweichen von den Defaultwerten sinnvoll machen. &lt;br /&gt;
&lt;br /&gt;
* Es ist zum Beispiel möglich, ein Passwort zu setzen um den Node per Fernzugriff/Login zu warten oder einige erweiterte Einstellungen vorzunehmen. &lt;br /&gt;
&lt;br /&gt;
Es kann durchaus sinnvoll sein, die LAN-Ports speziell zu konfigurieren oder zusätzliche Software für eine Bandbreitenbegrenzung zu installieren. &lt;br /&gt;
&lt;br /&gt;
An dieser Stellen möchten wir nur beschreiben, wie man in diesen Konfigurationsmodus gelangt. Eine ausführliche Beschreibung einiger [[Erweiterungen]] ist in Arbeit. Siehe auch [[Mitmachen#Pimp_My_Node|Pimp_My_Node]] &lt;br /&gt;
&lt;br /&gt;
'''Vorgehensweise'''&lt;br /&gt;
#PC mit Router über Netzwerkkabel verbinden (gelbe LAN Ports am Router)&lt;br /&gt;
#Wenn der Router gestartet ist (Power, Sys, WLAN leuchten dauerhaft), QSS Taste (schwarzer Knopf) 6 Sekunden drücken (Abb.10) (bis der Router neu startet, das sieht man daran, dass alle Lampen einmal ausgehen). Danach wird die Sys-Lampe, unregelmäßig blinken (Siehe: http://www.nilsschneider.net/2013/02/10/freifunk-blinken.html).&lt;br /&gt;
#bei manchen Routern (z.B. beim WR841N) muss man jetzt das Netzwerkkabel am Router umstecken (blauer WAN Port)&lt;br /&gt;
#Abwarten, bis der PC eine neue LAN-Verbindung aufgebaut hat (DHCP ist aktiv)&lt;br /&gt;
#Adresse http://192.168.1.1 aufrufen. - Punkt &amp;quot;Knoten neu einrichten&amp;quot; anklicken (Abb. 11)&lt;br /&gt;
#Vergabe von Passwort für den Fernzugriff/Login. Dann auf &amp;quot;weiter&amp;quot; klicken (Abb. 12)&lt;br /&gt;
#bei Bedarf die Bandbreitenbegrenzung aktivieren und auf &amp;quot;weiter&amp;quot; klicken (Abb. 13)&lt;br /&gt;
#auf &amp;quot;Jetzt neustarten!&amp;quot; klicken (Abb. 14) - Der Router startet neu, die kommende Fehlermeldung kann ignoriert werden (Abb. 15)&lt;br /&gt;
#Netzwerkkabel trennen und im WLAN warten, bis das netz &amp;quot;kbu.freifunk.net&amp;quot; auftaucht&lt;br /&gt;
&lt;br /&gt;
'''Verbinde keinesfalls Dein lokales Netz mit den gelben LAN-Ports des Nodes. Sonst steht es allen offen!'''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gallery&amp;gt;&lt;br /&gt;
 Datei:wr741nd_pi4-5.jpg|Abb. 10 QSS-Taste bei WR741ND&lt;br /&gt;
 Datei:config_sc1.jpg|Abb. 11&lt;br /&gt;
 Datei:config_sc2.jpg|Abb. 12&lt;br /&gt;
 Datei:config_sc3.jpg|Abb. 13&lt;br /&gt;
 Datei:config_sc4.jpg|Abb. 14&lt;br /&gt;
 Datei:config_sc5.jpg|Abb. 15&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== via Shell ===&lt;br /&gt;
Vorraussetzung für folgende Befehle sind eine Verbindung mit dem KBU Freifunk Netz sowie ein Terminal / Shell. &lt;br /&gt;
Vergesst nicht eth0 gegen die Bezeichnung eures Netzwerkinterfaces, welches am Freifunk hängt zu tauschen. &lt;br /&gt;
Bei Macbooks via Wlan z.B. &amp;quot;en1&amp;quot; statt &amp;quot;eth0&amp;quot;! Die link local Adresse der jeweiligen node findet ihr auf der [http://register.kbu.freifunk.net KBU Register] Seite. &lt;br /&gt;
IPv6 ping&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ping6 &amp;lt;link local adress des node&amp;gt;%eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IPv6 ssh - Hinter der link local Adresse &amp;quot;%&amp;quot; + &amp;quot;Netzwerk Interface an eurer Kiste&amp;quot; (Hier im Beispiel eth0)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@&amp;lt;link local adress des node&amp;gt;%eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Firmware upgrade bei node mit uplink&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@&amp;lt;link local adress des node&amp;gt;%eth0              // SSH Verbindung zum Node aufbauen&lt;br /&gt;
cd ../tmp/                                              // in das Verzeichnis &amp;quot;tmp&amp;quot; wechseln&lt;br /&gt;
free                                                    // Freien Speicher prüfen&lt;br /&gt;
wget http://pfad/zur/firmware.bin                       // Firmware herunterladen oder&lt;br /&gt;
sysupgrade -v firmware.bin                              // Firmwareupgrade durchführen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Firmware upgrade bei node ohne uplink&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp -6 -v -r firmware.bin root@\[&amp;lt;linkloc&amp;gt;%eth0\]:../tmp/          // Firmware auf den node schieben (md5 checken!)&lt;br /&gt;
ssh root@&amp;lt;link local adress des node&amp;gt;%eth0 &lt;br /&gt;
cd ../tmp/  &lt;br /&gt;
sysupgrade -v firmware.bin  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== LAN Kopplung ====&lt;br /&gt;
Eine LAN Kopplung kann in manchen Fällen sinnvoll sein, besonders wenn man einen VLAN fähigen Switch und eine bestehende Ntzwerkverkabelung hat. Hier werden die Switchports angwiesen auch über LAN zu meshen.&lt;br /&gt;
&lt;br /&gt;
===== TL-WR841ND =====&lt;br /&gt;
03/2014: Hier wird über die alle 4 LAN Ports gemeshed, Mesh über WLAN kann man optional noch ausschalten! Folgende Config stammt von rampone/FF-KBU und wurde an 2 TL-WR841N v.8 getestet mit KBU-FF-Firmware 1.1.&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/network'' - Folgende Änderungen wurden an der FF-Firmware 1.0 vorgenommen:&lt;br /&gt;
#config interface 'freifunk' -&amp;gt; Hier haben wir eth0 aus &amp;quot;ifname&amp;quot; rausgenommen, damit kein ff aus dem eth0 (switch) rauskommt.&lt;br /&gt;
#config interface 'mesh_lan' -&amp;gt; kompl. codeblock hinzugefügt, dieser bewirkt das über eth0 (switch) gemeshed wird. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config interface 'loopback'&lt;br /&gt;
	option ifname 'lo'&lt;br /&gt;
	option proto 'static'&lt;br /&gt;
	option ipaddr '127.0.0.1'&lt;br /&gt;
	option netmask '255.0.0.0'&lt;br /&gt;
&lt;br /&gt;
config interface 'wan'&lt;br /&gt;
	option ifname 'eth0'&lt;br /&gt;
	option proto 'dhcp'&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option accept_ra '0'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
&lt;br /&gt;
config switch&lt;br /&gt;
	option name 'switch0'&lt;br /&gt;
	option reset '1'&lt;br /&gt;
	option enable_vlan '1'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'switch0'&lt;br /&gt;
	option vlan '1'&lt;br /&gt;
	option ports '0 1 2 3 4'&lt;br /&gt;
&lt;br /&gt;
config interface 'freifunk'&lt;br /&gt;
	option ifname 'bat0'		#LAN-Kopplung: ifname eth1 entfernt&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option proto 'none'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option accept_ra '1'&lt;br /&gt;
	option macaddr '10:fe:ed:f1:53:84'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mtu '1528'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_vpn'&lt;br /&gt;
	option ifname 'mesh-vpn'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
	option macaddr '12:fe:ed:f2:53:84'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_lan'		#LAN-Kopplung: Codeblock mesh-lan hinzugefuegt&lt;br /&gt;
	option ifname 'eth1'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/wireless'' - Hier wird der Codeblock, der für das Mesh über WLAN verantwortlich ist auskommentiert (optional)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#config wifi-iface 'wifi_mesh'&lt;br /&gt;
#       option device 'radio0'&lt;br /&gt;
#       option network 'mesh'&lt;br /&gt;
#       option mode 'adhoc'&lt;br /&gt;
#       option ssid '02:d1:11:37:fc:39'&lt;br /&gt;
#       option bssid '02:d1:11:37:fc:39&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TL-WDR4300 =====&lt;br /&gt;
Das gleiche nochmal für den 4300er&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/network''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config interface 'loopback'&lt;br /&gt;
	option ifname 'lo'&lt;br /&gt;
	option proto 'static'&lt;br /&gt;
	option ipaddr '127.0.0.1'&lt;br /&gt;
	option netmask '255.0.0.0'&lt;br /&gt;
&lt;br /&gt;
config interface 'wan'&lt;br /&gt;
	option ifname 'eth0.2'&lt;br /&gt;
	option proto 'dhcp'&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option accept_ra '0'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option macaddr 'a2:f3:c1:65:81:cd'&lt;br /&gt;
&lt;br /&gt;
config switch&lt;br /&gt;
	option name 'eth0'&lt;br /&gt;
	option reset '1'&lt;br /&gt;
	option enable_vlan '1'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'eth0'&lt;br /&gt;
	option vlan '1'&lt;br /&gt;
	option ports '0t 2 3 4 5'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'eth0'&lt;br /&gt;
	option vlan '2'&lt;br /&gt;
	option ports '0t 1'&lt;br /&gt;
&lt;br /&gt;
config interface 'freifunk'&lt;br /&gt;
	option ifname 'bat0'		#LAN-Kopplung: ifname eth0.1 entfernt&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option proto 'none'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option accept_ra '1'&lt;br /&gt;
	option macaddr 'a0:f3:c1:64:81:cc'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mtu '1528'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_vpn'&lt;br /&gt;
	option ifname 'mesh-vpn'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
	option macaddr 'a2:f3:c1:65:81:cc'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_lan'		#LAN-Kopplung: Codeblock mesh-lan hinzugefuegt&lt;br /&gt;
        option ifname 'eth0.1'&lt;br /&gt;
        option proto 'batadv'&lt;br /&gt;
        option mesh 'bat0'&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Pimp My Node===&lt;br /&gt;
&lt;br /&gt;
An dieser Stelle möchten wir noch ein paar Erweiterungen vorstellen. Da die Geräte normalerweise 24/7 in Betrieb sind, kann, je nach Hardware, der ein oder andere Freifunkrouter mit ein paar zusätzlichen Funktionen und/oder Aufgaben betreut werden.&lt;br /&gt;
&lt;br /&gt;
;Web-Interface einschalten.&lt;br /&gt;
Um das WebInterface dauerhaft einzuschalten:&lt;br /&gt;
Per SSH auf der Konsole einloggen und &lt;br /&gt;
 /etc/init.d/uhttpd enable &lt;br /&gt;
ausführen.&lt;br /&gt;
&lt;br /&gt;
;Zusätzliche WLANs&lt;br /&gt;
:Hier eine Anleitung von [[Benutzer:Twinter|Twinter]], in der er euch zeigen möchte, wie Ihr einfach eurem Freifunk-Node [[AnleitungZusätzlichesWLAN|zusätzliche WLANs]] beibringen könnt.&lt;br /&gt;
&lt;br /&gt;
== Einsperren des Freifunk-Routers in eine DMZ ==&lt;br /&gt;
&lt;br /&gt;
Wer seinen Freifunk-Router einsperren und/oder die Bandbreite begrenzen möchte, kann dies am einfachsten tun, indem er ihn an seiner Firewall an einen eigenen Netzwerkport klemmt und diesen dann als DMZ konfiguriert. Ein KBU-Freifunk-Router muß zur Zeit im LAN DHCP, DNS, im Internet NTP sowie mit den [[fastd]]-Knoten reden können. Folgendes Bespiel für eine iptables-Firewall nimmt an, dass der Freifunk-Router über eth2 angeschlossen ist:&lt;br /&gt;
&lt;br /&gt;
 # eth2 darf nur dns, ntp, dhcp und ansonsten mit den fastdX reden&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p udp --dport 67:68 --sport 67:68 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p udp --dport 67:68 --sport 67:68 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p udp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p tcp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p tcp --dport 123                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p udp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p tcp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p tcp --dport 123                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 176.9.41.253                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 176.9.41.253                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 178.63.59.41                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 178.63.59.41                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 37.120.169.214               -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 37.120.169.214               -j ACCEPT &lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 37.221.195.47                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 37.221.195.47                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 78.46.68.75                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 78.46.68.75                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 84.201.35.206                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 84.201.35.206                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT                                      -j DROP&lt;br /&gt;
 iptables -i eth2 -A FORWARD                                    -j DROP&lt;br /&gt;
 # eth2 darf maximal 2000 kbit/s ein- und ausgehenden traffic machen&lt;br /&gt;
 wondershaper eth2 2000 2000&lt;br /&gt;
&lt;br /&gt;
Prinzipiell könnte man den Traffic noch weiter einschränken. DHCP und DNS müssen nur zum DHCP- bzw. DNS-Server funktionieren und der Traffic zu den fastd-Servern ließe sich auf TCP Port 80 und UDP Port 10000 begrenzen.&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Installation&amp;diff=2849</id>
		<title>Installation</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Installation&amp;diff=2849"/>
		<updated>2014-10-22T12:27:36Z</updated>

		<summary type="html">&lt;p&gt;Took: /* Download der Firmware */ soeben ff-kbu-tl-wr841n-v9-1.2.1b.bin erfolgreich mit hardware rev 9.1 getestet&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
Die Installation und Inbetriebnahme eines Routers im Freifunk-KBU Netz ist recht einfach, so dass grundlegendes IT-Verständnis dafür genügen sollte. In der unten stehenden Tabelle sind die von unserer Freifunk-Gruppe KBU aktiv unterstützten Geräte angegeben, die wir selbst im Einsatz haben oder hatten. Für andere Geräte beachte bitte [[Firmware]].&lt;br /&gt;
&lt;br /&gt;
Es gibt kaum Unterschiede zwischen einer Neuinstallation und einem Upgrade. Beides geschieht durch einen Firmware-Upgrade, wobei bei der Neuinstallation das Administrations-Interface der Hersteller-Firmware und sonst das von OpenWRT-Interface genutzt wird. Der Garantieanspruch geht dabei nicht verloren: man kann auch die Original-Firmware wieder aufspielen, die für das jeweilige Gerät vom Hersteller zum Download angeboten wird.&lt;br /&gt;
&lt;br /&gt;
Zur Installation bzw. für ein Upgrade sind die folgenden Schritte notwendig&lt;br /&gt;
# Download der Firmware&lt;br /&gt;
# Überprüfen der Signatur der Firmware, um eine Manipulation ausschließen zu können&lt;br /&gt;
# Einspielen der Firmware (Von der Hersteller-Firmware oder von OpenWRT aus)&lt;br /&gt;
# Registrieren des Nodes (optional)&lt;br /&gt;
# Konfigurieren des Nodes (optiomal)&lt;br /&gt;
&lt;br /&gt;
Nachfolgend sind die einzelnen Schritte genauer beschrieben.&lt;br /&gt;
&lt;br /&gt;
Bei Problemen, helfen wir gerne per [[IRC]] oder [[Mailingliste|E-Mail]] weiter.&lt;br /&gt;
&lt;br /&gt;
== Download der Firmware ==&lt;br /&gt;
[[Datei:wr741nd_pi3.jpg||300px|thumb|right|Abb. 1 Router und Hardversion]] &lt;br /&gt;
[[Datei:wr741nd_pi4.jpg||300px|thumb|right|Abb. 2 LAN Port ]] &lt;br /&gt;
* Typ und '''Hardware Version''' des TP-Link Routers prüfen, auf der Unterseite des Routers befindet sich der Router Typ und die Hardwareversion aufgedruckt (Abb.1).&lt;br /&gt;
* Download der aktuellen Freifunk Firmware für den Router Typ '''unter Berücksichtigung der entsprechenden Hardwareversion'''. Nach dem Download solltest Du sicher stellen, dass alle Dateien korrekt herunter geladen wurden ([[Firmware Überprüfen]]). &lt;br /&gt;
* Solltest Du Dir total unsicher sein, welche die richtige Firmware für Dein Router ist, dann wende Dich bitte per [[IRC]]hat oder über die [[Mailingliste|Mailingliste]] an uns.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable centered mw-datatable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|  Hersteller || Model ||  HW Revision || Antennen ||  Freifunk Firmware  &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || style=&amp;quot;width:10em&amp;quot;| TL-WR740N || style=&amp;quot;text-align:center&amp;quot;| v4.x (ohne v4.27) || style=&amp;quot;text-align:center&amp;quot;|  1 || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr740n-v4-1.2.1a.bin 1.2.1a] &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR741N(D) || style=&amp;quot;text-align:center&amp;quot;| v1.x || style=&amp;quot;text-align:center&amp;quot;|  1 || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr741nd-v1-1.2.1a.bin 1.2.1a] &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR741N(D) || style=&amp;quot;text-align:center&amp;quot;| v2.x || style=&amp;quot;text-align:center&amp;quot;|  1 || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr741nd-v2-1.2.1a.bin 1.2.1a] &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR741N(D) || style=&amp;quot;text-align:center&amp;quot;| v4.x || style=&amp;quot;text-align:center&amp;quot;| 1 || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr741nd-v4-1.2.1a.bin 1.2.1a] &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR841N(D) || style=&amp;quot;text-align:center&amp;quot;| v3 || style=&amp;quot;text-align:center&amp;quot;| 2 || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr841nd-v3-1.2.1a.bin 1.2.1a]&lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR841N(D) || style=&amp;quot;text-align:center&amp;quot;| v5 || style=&amp;quot;text-align:center&amp;quot;| 2 || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr841nd-v5-1.2.1a.bin 1.2.1a]&lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR841N(D) || style=&amp;quot;text-align:center&amp;quot;| v7.x || style=&amp;quot;text-align:center&amp;quot;| 2 || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr841nd-v7-1.2.1a.bin 1.2.1a] &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR841N(D) || style=&amp;quot;text-align:center&amp;quot;| v8.x || style=&amp;quot;text-align:center&amp;quot;| 2 || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr841n-v8-1.2.1a.bin 1.2.1a] &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR841N(D) || style=&amp;quot;text-align:center&amp;quot;| v9, v9.1 || style=&amp;quot;text-align:center&amp;quot;| 2 || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr841n-v9-1.2.1b.bin 1.2.1b] &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR842ND || style=&amp;quot;text-align:center&amp;quot;| v1.x || style=&amp;quot;text-align:center&amp;quot;| 2 || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr842n-v1-1.2.1a.bin 1.2.1a] &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR842ND || style=&amp;quot;text-align:center&amp;quot;| v2 || style=&amp;quot;text-align:center&amp;quot;| 2 || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr842n-v2-1.2.1b.bin 1.2.1b]&lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR1043ND || style=&amp;quot;text-align:center&amp;quot;| v1.x || style=&amp;quot;text-align:center&amp;quot;| 3  || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr1043nd-v1-1.2.1a.bin 1.2.1a]  &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WDR3500 ||style=&amp;quot;text-align:center&amp;quot;| v1 || style=&amp;quot;text-align:center&amp;quot;| 2  || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wdr3500-v1-1.2.1b.bin 1.2.1b]&lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WDR3600 ||style=&amp;quot;text-align:center&amp;quot;| v1.x || style=&amp;quot;text-align:center&amp;quot;| 2  || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wdr3600-v1-1.2.1a.bin 1.2.1a] &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WDR4300 ||style=&amp;quot;text-align:center&amp;quot;| v1.x (ohne v1.7), v1.7 läuft aber mindestens 1x OK || style=&amp;quot;text-align:center&amp;quot;| 3  || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wdr4300-v1-1.2.1a.bin 1.2.1a] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Überprüfen der Signatur ==&lt;br /&gt;
&lt;br /&gt;
Damit sichergestellt ist, dass die heruntergeladene Freifunk-Firmware auch wirklich die ist, welche wir erstellt und zum Download angeboten haben, sollten unbedingt die Hash-Werte (d.h. ein eindeutiger Fingerabdruck) der Firmware-Dateien und die korrekte Signatur der von uns bereitgestellten Hash-Wert-Datei geprüft werden. Dieses ist vermutlich der schwierigste Teil der Installation und wird von Einzelnen gelegentlich übergangen, getreu der Kölschen Lebensweisheit ''&amp;quot;Et hät noch immer joot jejange&amp;quot;''. Darauf sollte man sich aber in heutigen Zeiten nicht verlassen.&lt;br /&gt;
&lt;br /&gt;
Die Datei mit den Hash-Werten ist mit unserem GPG-Schlüssel signiert. Der heimliche Austausch einer Freifunk-Firmware und des entsprechenden Hash-Wertes ist also nicht möglich, da die Signatur nur bei unveränderter Hash-Wert-Datei gültig bleibt. Unser öffentliche GPG-Schlüssel ist auf gängigen Keyservern hinterlegt.&lt;br /&gt;
&lt;br /&gt;
Wer sich mit GPG noch nicht auskennt, kann sich z.B. unter [https://www.gnupg.org www.gnupg.org] aufschlauen.&lt;br /&gt;
&lt;br /&gt;
Unseren GPG-Schlüssel bekommt man z.B. unter Linux/Unix von der Kommandozeile aus so:&lt;br /&gt;
 # gpg --keyserver pgp.mit.edu --recv-key  '0FA27C6E4'&lt;br /&gt;
&lt;br /&gt;
Nach dem Download der beiden Dateien&lt;br /&gt;
* [http://jenkins.kbu.freifunk.net/files/release/1.2.1/SHA256SUMS SHA256 Summen]&lt;br /&gt;
* [http://jenkins.kbu.freifunk.net/files/release/1.2.1/SHA256SUMS.sign Signatur]&lt;br /&gt;
prüft man dann einfach die Signatur mit&lt;br /&gt;
&lt;br /&gt;
  $ gpg --verify SHA256SUMS.sign&lt;br /&gt;
  gpg: Signature made Wed 27 Aug 2014 10:40:01 PM CEST using RSA key ID FA27C6E4&lt;br /&gt;
  gpg: Good signature from &amp;quot;Freifunk-KBU Release Signing Key (Used by jenkins.kbu.freifunk.net) &amp;lt;info@kbu.freifunk.net&amp;gt;&amp;quot;&lt;br /&gt;
  gpg: WARNING: This key is not certified with a trusted signature!&lt;br /&gt;
  gpg:          There is no indication that the signature belongs to the owner.&lt;br /&gt;
  Primary key fingerprint: E3B3 AF2B 6B54 149B 9313  4EC0 E782 EAC7 FA27 C6E4&lt;br /&gt;
&lt;br /&gt;
Die Signatur ist also korrekt. Den Fingerprint prüft man am besten einmal offline bei unseren [http://kbu.freifunk.net/wiki/index.php?title=Hauptseite regelmäßigen Treffen].&lt;br /&gt;
&lt;br /&gt;
Dann kann man selbst den Hash-Wert der heruntergeladenen Firmware (hier am Beispiel des Routers TL WR841n mit der Hardware-Version 9) berechnen&lt;br /&gt;
&lt;br /&gt;
  $ sha256sum ff-kbu-tl-wr841n-v9-1.2.1b.bin&lt;br /&gt;
  2a3df4ea2e10cc9697a80fa0db7cf962fca052ec5d669779ae79e0345da16b30  ff-kbu-tl-wr841n-v9-1.2.1b.bin&lt;br /&gt;
&lt;br /&gt;
und mit dem Hash-Wert in der signierten und zuvor korrekt verifizierten Datei vergleichen:&lt;br /&gt;
&lt;br /&gt;
  $ grep ff-kbu-tl-wr841n-v9-1.2.1b.bin SHA256SUMS&lt;br /&gt;
  2a3df4ea2e10cc9697a80fa0db7cf962fca052ec5d669779ae79e0345da16b30  ./ff-kbu-tl-wr841n-v9-1.2.1b.bin&lt;br /&gt;
  2a3df4ea2e10cc9697a80fa0db7cf962fca052ec5d669779ae79e0345da16b30  ./untested/barrier_breaker/ff-kbu-tl-wr841n-v9-1.2.1b.bin&lt;br /&gt;
&lt;br /&gt;
Damit ist die heruntergeladenen Datei auch genau die, die wir für Freifunk erstellt und angeboten haben. Unter der Voraussetzung, dass uns niemand den privaten GPG-Schlüssel entwendet und das Passwort zur Sicherung des privaten Schlüssels geknackt hat. Letzteres ist sehr sehr unwahrscheinlich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Verbindung zum Router herstellen: verbinden des PCs mit einen Netzwerkkabel (normales LAN Kabel) mit einem beliebigem LAN Port (gelb) (Abb.2).  &lt;br /&gt;
   '''Hinweis:''' Eine Ausnahme von dieser LAN/WAN/Farbwahl besteht beim TL-WR841N(D): hier ist es nicht der LAN Port (gelb)&lt;br /&gt;
   sondern der WAN Port (blau) - wobei diese Ausnahme bei (oder ggf. auch ab) der Hardware-Version 9.0 nicht mehr gilt.&lt;br /&gt;
&lt;br /&gt;
   '''Bei TL-WR841N v8.4:''' Beim Flashen über das Firmware-Upgrade der Original-Firmware tritt ggf. folgender Fehler auf:&lt;br /&gt;
   Error code: 23002&lt;br /&gt;
   The uploaded file name is too long!&lt;br /&gt;
   Hier hilft einfaches Umbenennen der herunter geladenen Freifunk-Firmware.&lt;br /&gt;
&lt;br /&gt;
Am PC muss die Netzwerkkarte auf Automatische IP-Adresse beziehen (DHCP) eingestellt sein.&lt;br /&gt;
&lt;br /&gt;
Ggf. den PC vorher von jeglichen anderen WLANs abmelden, sonst kann es zu Konflikten beim automatischen beziehen der IP kommen.&lt;br /&gt;
&lt;br /&gt;
=== Variante: Hersteller-Firmware ===&lt;br /&gt;
&lt;br /&gt;
#Aufrufen des Routermenüs im Webbrowser über die IP Adresse: 192.168.1.1 (oder 192.168.0.1). Benutzer: &amp;quot;admin&amp;quot; und Passwort: &amp;quot;admin&amp;quot; (im Auslieferungszustand)&lt;br /&gt;
#Menüpunkt &amp;quot;System-Tools&amp;quot;, Untermenüpunkt &amp;quot;Firmware-Upgrade&amp;quot; auswählen (Abb. 3)&lt;br /&gt;
#Button &amp;quot;Durchsuchen...&amp;quot; anklicken (Abb. 4) Die Firmwaredatei auswählen (Abb. 5) &lt;br /&gt;
#Button &amp;quot;Upgrade&amp;quot; anklicken (Abb. 6) - Sicherheitsfrage mit &amp;quot;OK&amp;quot; beantworten&lt;br /&gt;
#Die Installation der Firmware beginnt und dauert ca '''5 Minuten'''. Schalte den Router '''nicht aus''' (Abb. 7). Der Prozess ist abgeschlossen, wenn der Router neu startet und anschliessend die Sys-Lampe dauerhaft leuchtet.   (Abb. 8)&lt;br /&gt;
#Am Ende erscheint ggf. eine Fehlermeldung, weil der Router nicht mehr über die alte IP-Adresse direkt erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Eine weitere Konfiguration ist nicht nötig, kann aber über den config-mode vorgenommen werden (siehe [[Installation#Konfigurieren_des_Nodes|Abschnitt config-mode)]].&lt;br /&gt;
Der Router (WAN-Port) kann nun mit dem Netzwerk zum DSL Router verbunden werden.&lt;br /&gt;
&lt;br /&gt;
'''Wichtiger Hinweis:''' ''Verbinde keinesfalls Dein lokales Netz mit den '''LAN-Ports''' des Nodes. Sonst steht dein LAN im Freifunknetz offen!''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Möchtest Du jedoch einen Dienst (Web-/ Jabber-/ sonstiger Server) innerhalb des Freifunknetzwerkes anbieten, so ist einer der LAN-Ports dein Freund.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gallery caption=&amp;quot;Abbildungen zeigen das original Webinterface des Herstellers&amp;quot; widths=&amp;quot;180px&amp;quot; heights=&amp;quot;120px&amp;quot; perrow=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
 Datei:install_sc3.jpg|Abb. 3 Firmware-Upgrade&lt;br /&gt;
 Datei:install_sc4.jpg|Abb. 4 Durchsuchen&lt;br /&gt;
 Datei:install_sc5.jpg|Abb. 5 Datei wählen und Öffnen&amp;lt;br /&amp;gt;(Mittels des Dateimanagers des Betriebssystems)&lt;br /&gt;
 Datei:install_sc6.jpg|Abb. 6 Firmware-Upgrade&lt;br /&gt;
 Datei:install_sc10.jpg|Abb. 8 Erfolgreiche Installation&lt;br /&gt;
 &amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Variante: Update ===&lt;br /&gt;
&lt;br /&gt;
Updates der Freifunk-Software werden wie gewöhnliche OpenWRT-Updates eingespielt. (Vgl. http://wiki.openwrt.org/doc/howto/generic.sysupgrade). Solltest Du mit beim Upgrade Probleme haben, so helfen wir Dir gerne im [[IRC]] oder per [[Mailingliste]] weiter. Bei einem Update muss wie folgt vorgegangen werden:&lt;br /&gt;
&lt;br /&gt;
# Config Mode starten (Vgl. [[#Konfigurieren des Nodes]])&lt;br /&gt;
# Firmware-Upgrade auswählen&lt;br /&gt;
# Firmware hochladen und neu starten&lt;br /&gt;
&lt;br /&gt;
== Registrierung des Nodes ==&lt;br /&gt;
Bitte registrieren Deine Freifunk-Node und gibt die Position auf der Karte an. Dies erlaubt es uns, Dich bei Probleme zu verständigen - gleichzeitig kann Dein Node von Nutzern einfacher gefunden werden.&lt;br /&gt;
&lt;br /&gt;
Ein Node muss nach einem Update nicht erneut registriert werden.&lt;br /&gt;
&lt;br /&gt;
'''WICHTIG:''' Der PC muss mit dem gleichen Netzwerk wie die Freifunk Node verbunden sein! Du kannst nur Freifunk-Nodes registrieren, die unter Deiner IP online sind.&lt;br /&gt;
&lt;br /&gt;
#Zum Registrieren des Nodes die Webseite https://register.kbu.freifunk.net aufrufen (Abb. 20)&lt;br /&gt;
#Wenn noch nicht vorhanden, ein neuen Account erstellen (Abb. 21)&lt;br /&gt;
# Nach der Anmeldung erscheint auf der Startseite die unregistrierte Node als registrierbar (Abb. 22)&lt;br /&gt;
#Hier nun die Information zu der Node eingeben (Abb. 23)&lt;br /&gt;
#Bei &amp;quot;Standort auf der Karte&amp;quot; die Adresse eingeben und einen Moment warten. Das System sucht die passende Adresse automatisch heraus. Die Adresse anklicken (Abb. 24)&lt;br /&gt;
#Der genaue Standort der Node (blauer Marker) kann mit der Maus verändert werden (Abb. 25)&lt;br /&gt;
#Auf der Startseite ist die neu registrierte Node unter dem Punkt &amp;quot;Eigene Nodes&amp;quot; zu finden (Abb. 26)&lt;br /&gt;
#Um die Details der Registrierung zu bearbeiten, klickt man in der Leiste auf &amp;quot;Nodes&amp;quot; und sucht dann in der Liste seine Node und klickt auf den Link &amp;quot;Registrierung&amp;quot; (Abb. 27)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gallery&amp;gt;&lt;br /&gt;
 Datei:register_sc1.jpg|Abb. 20&lt;br /&gt;
 Datei:register_sc2.jpg|Abb. 21&lt;br /&gt;
 Datei:register_sc3.jpg|Abb. 22&lt;br /&gt;
 Datei:register_sc4.jpg|Abb. 23&lt;br /&gt;
 Datei:register_sc5.jpg|Abb. 24&lt;br /&gt;
 Datei:register_sc6.jpg|Abb. 25&lt;br /&gt;
 Datei:register_sc6-5.jpg|Abb. 26&lt;br /&gt;
 Datei:register_sc8.jpg|Abb. 27&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Konfigurieren des Nodes==&lt;br /&gt;
(config mode - optional)&amp;lt;br 7&amp;gt;&lt;br /&gt;
Grundsätzlich ist unsere Freifunk Firmware so konzipiert, dass der Betreiber eines Nodes (Freifunkknoten) keinerlei Konfigurationsarbeiten durchführen muss. Das bedeutet, nach dem Aufspielen unserer Firmware und der Registrierung, kann der Betreiber direkt loslegen und ist Teil unseres Freifunk-Netzwerkes. Wenn der Betreiber es wünscht, besteht natürlich für Ihn die Möglichkeit, seinen Knoten an seine speziellen Bedürfnisse anzupassen. Die Möglichkeiten und Abweichungen von der Default-Konfiguration sind vielfältig. Diese sollten aber nur dann durchgeführt werden, wenn der Durchführende genau weiß was er da macht. Eine fehlerhaft Konfiguration kann zum Beispiel zu Störungen im Netzwerk führen, ferner könnten illegitime Maßnahmen implementiert werden. Beide zuvor genannten Beispiele würden zu einem Ausschluss aus unserem Netzwerk führen. Dennoch kann man gute Gründe haben die ein Abweichen von den Defaultwerten sinnvoll machen. &lt;br /&gt;
&lt;br /&gt;
* Es ist zum Beispiel möglich, ein Passwort zu setzen um den Node per Fernzugriff/Login zu warten oder einige erweiterte Einstellungen vorzunehmen. &lt;br /&gt;
&lt;br /&gt;
Es kann durchaus sinnvoll sein, die LAN-Ports speziell zu konfigurieren oder zusätzliche Software für eine Bandbreitenbegrenzung zu installieren. &lt;br /&gt;
&lt;br /&gt;
An dieser Stellen möchten wir nur beschreiben, wie man in diesen Konfigurationsmodus gelangt. Eine ausführliche Beschreibung einiger [[Erweiterungen]] ist in Arbeit. Siehe auch [[Mitmachen#Pimp_My_Node|Pimp_My_Node]] &lt;br /&gt;
&lt;br /&gt;
'''Vorgehensweise'''&lt;br /&gt;
#PC mit Router über Netzwerkkabel verbinden (gelbe LAN Ports am Router)&lt;br /&gt;
#Wenn der Router gestartet ist (Power, Sys, WLAN leuchten dauerhaft), QSS Taste (schwarzer Knopf) 6 Sekunden drücken (Abb.10) (bis der Router neu startet, das sieht man daran, dass alle Lampen einmal ausgehen). Danach wird die Sys-Lampe, unregelmäßig blinken (Siehe: http://www.nilsschneider.net/2013/02/10/freifunk-blinken.html).&lt;br /&gt;
#bei manchen Routern (z.B. beim WR841N) muss man jetzt das Netzwerkkabel am Router umstecken (blauer WAN Port)&lt;br /&gt;
#Abwarten, bis der PC eine neue LAN-Verbindung aufgebaut hat (DHCP ist aktiv)&lt;br /&gt;
#Adresse http://192.168.1.1 aufrufen. - Punkt &amp;quot;Knoten neu einrichten&amp;quot; anklicken (Abb. 11)&lt;br /&gt;
#Vergabe von Passwort für den Fernzugriff/Login. Dann auf &amp;quot;weiter&amp;quot; klicken (Abb. 12)&lt;br /&gt;
#bei Bedarf die Bandbreitenbegrenzung aktivieren und auf &amp;quot;weiter&amp;quot; klicken (Abb. 13)&lt;br /&gt;
#auf &amp;quot;Jetzt neustarten!&amp;quot; klicken (Abb. 14) - Der Router startet neu, die kommende Fehlermeldung kann ignoriert werden (Abb. 15)&lt;br /&gt;
#Netzwerkkabel trennen und im WLAN warten, bis das netz &amp;quot;kbu.freifunk.net&amp;quot; auftaucht&lt;br /&gt;
&lt;br /&gt;
'''Verbinde keinesfalls Dein lokales Netz mit den gelben LAN-Ports des Nodes. Sonst steht es allen offen!'''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gallery&amp;gt;&lt;br /&gt;
 Datei:wr741nd_pi4-5.jpg|Abb. 10 QSS-Taste bei WR741ND&lt;br /&gt;
 Datei:config_sc1.jpg|Abb. 11&lt;br /&gt;
 Datei:config_sc2.jpg|Abb. 12&lt;br /&gt;
 Datei:config_sc3.jpg|Abb. 13&lt;br /&gt;
 Datei:config_sc4.jpg|Abb. 14&lt;br /&gt;
 Datei:config_sc5.jpg|Abb. 15&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== via Shell ===&lt;br /&gt;
Vorraussetzung für folgende Befehle sind eine Verbindung mit dem KBU Freifunk Netz sowie ein Terminal / Shell. &lt;br /&gt;
Vergesst nicht eth0 gegen die Bezeichnung eures Netzwerkinterfaces, welches am Freifunk hängt zu tauschen. &lt;br /&gt;
Bei Macbooks via Wlan z.B. &amp;quot;en1&amp;quot; statt &amp;quot;eth0&amp;quot;! Die link local Adresse der jeweiligen node findet ihr auf der [http://register.kbu.freifunk.net KBU Register] Seite. &lt;br /&gt;
IPv6 ping&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ping6 &amp;lt;link local adress des node&amp;gt;%eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IPv6 ssh - Hinter der link local Adresse &amp;quot;%&amp;quot; + &amp;quot;Netzwerk Interface an eurer Kiste&amp;quot; (Hier im Beispiel eth0)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@&amp;lt;link local adress des node&amp;gt;%eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Firmware upgrade bei node mit uplink&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@&amp;lt;link local adress des node&amp;gt;%eth0              // SSH Verbindung zum Node aufbauen&lt;br /&gt;
cd ../tmp/                                              // in das Verzeichnis &amp;quot;tmp&amp;quot; wechseln&lt;br /&gt;
free                                                    // Freien Speicher prüfen&lt;br /&gt;
wget http://pfad/zur/firmware.bin                       // Firmware herunterladen oder&lt;br /&gt;
sysupgrade -v firmware.bin                              // Firmwareupgrade durchführen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Firmware upgrade bei node ohne uplink&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp -6 -v -r firmware.bin root@\[&amp;lt;linkloc&amp;gt;%eth0\]:../tmp/          // Firmware auf den node schieben (md5 checken!)&lt;br /&gt;
ssh root@&amp;lt;link local adress des node&amp;gt;%eth0 &lt;br /&gt;
cd ../tmp/  &lt;br /&gt;
sysupgrade -v firmware.bin  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== LAN Kopplung ====&lt;br /&gt;
Eine LAN Kopplung kann in manchen Fällen sinnvoll sein, besonders wenn man einen VLAN fähigen Switch und eine bestehende Ntzwerkverkabelung hat. Hier werden die Switchports angwiesen auch über LAN zu meshen.&lt;br /&gt;
&lt;br /&gt;
===== TL-WR841ND =====&lt;br /&gt;
03/2014: Hier wird über die alle 4 LAN Ports gemeshed, Mesh über WLAN kann man optional noch ausschalten! Folgende Config stammt von rampone/FF-KBU und wurde an 2 TL-WR841N v.8 getestet mit KBU-FF-Firmware 1.1.&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/network'' - Folgende Änderungen wurden an der FF-Firmware 1.0 vorgenommen:&lt;br /&gt;
#config interface 'freifunk' -&amp;gt; Hier haben wir eth0 aus &amp;quot;ifname&amp;quot; rausgenommen, damit kein ff aus dem eth0 (switch) rauskommt.&lt;br /&gt;
#config interface 'mesh_lan' -&amp;gt; kompl. codeblock hinzugefügt, dieser bewirkt das über eth0 (switch) gemeshed wird. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config interface 'loopback'&lt;br /&gt;
	option ifname 'lo'&lt;br /&gt;
	option proto 'static'&lt;br /&gt;
	option ipaddr '127.0.0.1'&lt;br /&gt;
	option netmask '255.0.0.0'&lt;br /&gt;
&lt;br /&gt;
config interface 'wan'&lt;br /&gt;
	option ifname 'eth0'&lt;br /&gt;
	option proto 'dhcp'&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option accept_ra '0'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
&lt;br /&gt;
config switch&lt;br /&gt;
	option name 'switch0'&lt;br /&gt;
	option reset '1'&lt;br /&gt;
	option enable_vlan '1'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'switch0'&lt;br /&gt;
	option vlan '1'&lt;br /&gt;
	option ports '0 1 2 3 4'&lt;br /&gt;
&lt;br /&gt;
config interface 'freifunk'&lt;br /&gt;
	option ifname 'bat0'		#LAN-Kopplung: ifname eth1 entfernt&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option proto 'none'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option accept_ra '1'&lt;br /&gt;
	option macaddr '10:fe:ed:f1:53:84'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mtu '1528'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_vpn'&lt;br /&gt;
	option ifname 'mesh-vpn'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
	option macaddr '12:fe:ed:f2:53:84'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_lan'		#LAN-Kopplung: Codeblock mesh-lan hinzugefuegt&lt;br /&gt;
	option ifname 'eth1'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/wireless'' - Hier wird der Codeblock, der für das Mesh über WLAN verantwortlich ist auskommentiert (optional)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#config wifi-iface 'wifi_mesh'&lt;br /&gt;
#       option device 'radio0'&lt;br /&gt;
#       option network 'mesh'&lt;br /&gt;
#       option mode 'adhoc'&lt;br /&gt;
#       option ssid '02:d1:11:37:fc:39'&lt;br /&gt;
#       option bssid '02:d1:11:37:fc:39&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TL-WDR4300 =====&lt;br /&gt;
Das gleiche nochmal für den 4300er&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/network''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config interface 'loopback'&lt;br /&gt;
	option ifname 'lo'&lt;br /&gt;
	option proto 'static'&lt;br /&gt;
	option ipaddr '127.0.0.1'&lt;br /&gt;
	option netmask '255.0.0.0'&lt;br /&gt;
&lt;br /&gt;
config interface 'wan'&lt;br /&gt;
	option ifname 'eth0.2'&lt;br /&gt;
	option proto 'dhcp'&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option accept_ra '0'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option macaddr 'a2:f3:c1:65:81:cd'&lt;br /&gt;
&lt;br /&gt;
config switch&lt;br /&gt;
	option name 'eth0'&lt;br /&gt;
	option reset '1'&lt;br /&gt;
	option enable_vlan '1'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'eth0'&lt;br /&gt;
	option vlan '1'&lt;br /&gt;
	option ports '0t 2 3 4 5'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'eth0'&lt;br /&gt;
	option vlan '2'&lt;br /&gt;
	option ports '0t 1'&lt;br /&gt;
&lt;br /&gt;
config interface 'freifunk'&lt;br /&gt;
	option ifname 'bat0'		#LAN-Kopplung: ifname eth0.1 entfernt&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option proto 'none'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option accept_ra '1'&lt;br /&gt;
	option macaddr 'a0:f3:c1:64:81:cc'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mtu '1528'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_vpn'&lt;br /&gt;
	option ifname 'mesh-vpn'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
	option macaddr 'a2:f3:c1:65:81:cc'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_lan'		#LAN-Kopplung: Codeblock mesh-lan hinzugefuegt&lt;br /&gt;
        option ifname 'eth0.1'&lt;br /&gt;
        option proto 'batadv'&lt;br /&gt;
        option mesh 'bat0'&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Pimp My Node===&lt;br /&gt;
&lt;br /&gt;
An dieser Stelle möchten wir noch ein paar Erweiterungen vorstellen. Da die Geräte normalerweise 24/7 in Betrieb sind, kann, je nach Hardware, der ein oder andere Freifunkrouter mit ein paar zusätzlichen Funktionen und/oder Aufgaben betreut werden.&lt;br /&gt;
&lt;br /&gt;
;Web-Interface einschalten.&lt;br /&gt;
Um das WebInterface dauerhaft einzuschalten:&lt;br /&gt;
Per SSH auf der Konsole einloggen und &lt;br /&gt;
 /etc/init.d/uhttpd enable &lt;br /&gt;
ausführen.&lt;br /&gt;
&lt;br /&gt;
;Zusätzliche WLANs&lt;br /&gt;
:Hier eine Anleitung von [[Benutzer:Twinter|Twinter]], in der er euch zeigen möchte, wie Ihr einfach eurem Freifunk-Node [[AnleitungZusätzlichesWLAN|zusätzliche WLANs]] beibringen könnt.&lt;br /&gt;
&lt;br /&gt;
== Einsperren des Freifunk-Routers in eine DMZ ==&lt;br /&gt;
&lt;br /&gt;
Wer seinen Freifunk-Router einsperren und/oder die Bandbreite begrenzen möchte, kann dies am einfachsten tun, indem er ihn an seiner Firewall an einen eigenen Netzwerkport klemmt und diesen dann als DMZ konfiguriert. Ein KBU-Freifunk-Router muß zur Zeit im LAN DHCP, DNS, im Internet NTP sowie mit den [[fastd]]-Knoten reden können. Folgendes Bespiel für eine iptables-Firewall nimmt an, dass der Freifunk-Router über eth2 angeschlossen ist:&lt;br /&gt;
&lt;br /&gt;
 # eth2 darf nur dns, ntp, dhcp und ansonsten mit den fastdX reden&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p udp --dport 67:68 --sport 67:68 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p udp --dport 67:68 --sport 67:68 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p udp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p tcp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT   -p tcp --dport 123                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p udp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p tcp --dport 53                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD -p tcp --dport 123                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 176.9.41.253                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 176.9.41.253                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 178.63.59.41                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 178.63.59.41                 -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 37.120.169.214               -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 37.120.169.214               -j ACCEPT &lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 37.221.195.47                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 37.221.195.47                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 78.46.68.75                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 78.46.68.75                  -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --dst 84.201.35.206                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A FORWARD --src 84.201.35.206                -j ACCEPT&lt;br /&gt;
 iptables -i eth2 -A INPUT                                      -j DROP&lt;br /&gt;
 iptables -i eth2 -A FORWARD                                    -j DROP&lt;br /&gt;
 # eth2 darf maximal 2000 kbit/s ein- und ausgehenden traffic machen&lt;br /&gt;
 wondershaper eth2 2000 2000&lt;br /&gt;
&lt;br /&gt;
Prinzipiell könnte man den Traffic noch weiter einschränken. DHCP und DNS müssen nur zum DHCP- bzw. DNS-Server funktionieren und der Traffic zu den fastd-Servern ließe sich auf TCP Port 80 und UDP Port 10000 begrenzen.&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Installation&amp;diff=2839</id>
		<title>Installation</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Installation&amp;diff=2839"/>
		<updated>2014-10-15T13:21:03Z</updated>

		<summary type="html">&lt;p&gt;Took: /* Installation */ 2 Tipps hinzugefügt die Anfängern das Leben erleichtern könnten&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
Dieser Artikel/Abschnitt beschreibt die Installation und Inbetriebnahme eines Nodes im Freifunk-KBU Netz. Firmware wird für die Geräte TP-Link WR740N-v4, WR741ND und WR1043ND angeboten.&lt;br /&gt;
Für andere Geräte beachte bitte [[Firmware]].&lt;br /&gt;
&lt;br /&gt;
Hierbei gibt es kaum Unterschiede zwischen einer Neuinstallation und einem Upgrade. Upgrades werden wie Neu-Installationen von OpenWRT aus eingespielt.&lt;br /&gt;
&lt;br /&gt;
Zur Installation / für ein Upgrade sind die folgenden Schritte notwendig&lt;br /&gt;
# Download der Firmware und überprüfen der Signatur&lt;br /&gt;
# Einspielen der Firmware (Von der Hersteller-Firmware oder OpenWRT aus)&lt;br /&gt;
# Registrieren des Nodes (optional)&lt;br /&gt;
# Konfigurieren des Nodes (optiomal)&lt;br /&gt;
&lt;br /&gt;
Bei Problemen, helfen wir gerne per [[IRC]] oder [[Mailingliste|E-Mail]] weiter.&lt;br /&gt;
&lt;br /&gt;
== Download der Firmware ==&lt;br /&gt;
[[Datei:wr741nd_pi3.jpg||300px|thumb|right|Abb. 1 Router und Hardversion]] &lt;br /&gt;
[[Datei:wr741nd_pi4.jpg||300px|thumb|right|Abb. 2 LAN Port ]] &lt;br /&gt;
* Typ und '''Hardware Version''' des TP-Link Routers prüfen, auf der Unterseite des Routers befindet sich der Router Typ und die Hardwareversion aufgedruckt (Abb.1).&lt;br /&gt;
* Download der aktuellen Freifunk Firmware für den Router Typ '''unter Berücksichtigung der entsprechenden Hardwareversion'''. Nach dem Download solltest Du sicher stellen, dass alle Dateien korrekt herunter geladen wurden ([[Firmware Überprüfen]]). &lt;br /&gt;
* Solltest Du Dir total unsicher sein, welche die richtige Firmware für Dein Router ist, dann wende Dich bitte per [[IRC]]hat oder über die [[Mailingliste|Mailingliste]] an uns.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable centered mw-datatable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|  Hersteller || Model ||  HW Revision || Antennen ||  Freifunk Firmware  &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || style=&amp;quot;width:10em&amp;quot;| TL-WR740N || style=&amp;quot;text-align:center&amp;quot;| v4.x (ohne v4.27) || style=&amp;quot;text-align:center&amp;quot;|  1 || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr740n-v4-1.2.1a.bin 1.2.1a] &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR741N(D) || style=&amp;quot;text-align:center&amp;quot;| v1.x || style=&amp;quot;text-align:center&amp;quot;|  1 || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr741nd-v1-1.2.1a.bin 1.2.1a] &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR741N(D) || style=&amp;quot;text-align:center&amp;quot;| v2.x || style=&amp;quot;text-align:center&amp;quot;|  1 || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr741nd-v2-1.2.1a.bin 1.2.1a] &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR741N(D) || style=&amp;quot;text-align:center&amp;quot;| v4.x || style=&amp;quot;text-align:center&amp;quot;| 1 || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr741nd-v4-1.2.1a.bin 1.2.1a] &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR841N(D) || style=&amp;quot;text-align:center&amp;quot;| v3 || style=&amp;quot;text-align:center&amp;quot;| 2 || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr841nd-v3-1.2.1a.bin 1.2.1a]&lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR841N(D) || style=&amp;quot;text-align:center&amp;quot;| v5 || style=&amp;quot;text-align:center&amp;quot;| 2 || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr841nd-v5-1.2.1a.bin 1.2.1a]&lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR841N(D) || style=&amp;quot;text-align:center&amp;quot;| v7.x || style=&amp;quot;text-align:center&amp;quot;| 2 || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr841nd-v7-1.2.1a.bin 1.2.1a] &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR841N(D) || style=&amp;quot;text-align:center&amp;quot;| v8.x || style=&amp;quot;text-align:center&amp;quot;| 2 || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr841n-v8-1.2.1a.bin 1.2.1a] &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR841N(D) || style=&amp;quot;text-align:center&amp;quot;| v9 || style=&amp;quot;text-align:center&amp;quot;| 2 || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr841n-v9-1.2.1b.bin 1.2.1b] &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR842ND || style=&amp;quot;text-align:center&amp;quot;| v1.x || style=&amp;quot;text-align:center&amp;quot;| 2 || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr842n-v1-1.2.1a.bin 1.2.1a] &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR842ND || style=&amp;quot;text-align:center&amp;quot;| v2 || style=&amp;quot;text-align:center&amp;quot;| 2 || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr842n-v2-1.2.1b.bin 1.2.1b]&lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WR1043ND || style=&amp;quot;text-align:center&amp;quot;| v1.x || style=&amp;quot;text-align:center&amp;quot;| 3  || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wr1043nd-v1-1.2.1a.bin 1.2.1a]  &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WDR3500 ||style=&amp;quot;text-align:center&amp;quot;| v1 || style=&amp;quot;text-align:center&amp;quot;| 2  || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wdr3500-v1-1.2.1b.bin 1.2.1b]&lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WDR3600 ||style=&amp;quot;text-align:center&amp;quot;| v1.x || style=&amp;quot;text-align:center&amp;quot;| 2  || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wdr3600-v1-1.2.1a.bin 1.2.1a] &lt;br /&gt;
|-&lt;br /&gt;
|  TP Link || TL-WDR4300 ||style=&amp;quot;text-align:center&amp;quot;| v1.x (ohne v1.7), v1.7 läuft aber mindestens 1x OK || style=&amp;quot;text-align:center&amp;quot;| 3  || style=&amp;quot;text-align:center&amp;quot;| [http://jenkins.kbu.freifunk.net/files/release/1.2.1/ff-kbu-tl-wdr4300-v1-1.2.1a.bin 1.2.1a] &lt;br /&gt;
|}&lt;br /&gt;
Die passenden [http://jenkins.kbu.freifunk.net/files/release/1.2.1/SHA256SUMS SHA256 Summen] und die zugehörige [http://jenkins.kbu.freifunk.net/files/release/1.2.1/SHA256SUMS.sign Signatur]&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Verbindung zum Router herstellen: verbinden des PCs mit einen Netzwerkkabel (normales LAN Kabel) mit einem beliebigem LAN Port (gelb) (Abb.2).  &lt;br /&gt;
   '''Hinweis:''' Eine Ausnahme von dieser LAN/WAN/Farbwahl besteht beim TL-WR841N(D): hier ist es nicht der LAN Port (gelb)&lt;br /&gt;
   sondern der WAN Port (blau) - wobei diese Ausnahme bei (oder ggf. auch ab) der Hardware-Version 9.0 nicht mehr gilt.&lt;br /&gt;
&lt;br /&gt;
Am PC muss die Netzwerkkarte auf Automatische IP-Adresse beziehen (DHCP) eingestellt sein.&lt;br /&gt;
&lt;br /&gt;
Ggf. den PC vorher von jeglichen anderen WLANs abmelden, sonst kann es zu Konflikten beim automatischen beziehen der IP kommen.&lt;br /&gt;
&lt;br /&gt;
=== Variante: Hersteller-Firmware ===&lt;br /&gt;
&lt;br /&gt;
#Aufrufen des Routermenüs im Webbrowser über die IP Adresse: 192.168.1.1 (oder 192.168.0.1). Benutzer: &amp;quot;admin&amp;quot; und Passwort: &amp;quot;admin&amp;quot; (im Auslieferungszustand)&lt;br /&gt;
#Menüpunkt &amp;quot;System-Tools&amp;quot;, Untermenüpunkt &amp;quot;Firmware-Upgrade&amp;quot; auswählen (Abb. 3)&lt;br /&gt;
#Button &amp;quot;Durchsuchen...&amp;quot; anklicken (Abb. 4) Die Firmwaredatei auswählen (Abb. 5) &lt;br /&gt;
#Button &amp;quot;Upgrade&amp;quot; anklicken (Abb. 6) - Sicherheitsfrage mit &amp;quot;OK&amp;quot; beantworten&lt;br /&gt;
#Die Installation der Firmware beginnt und dauert ca '''5 Minuten'''. Schalte den Router '''nicht aus''' (Abb. 7). Der Prozess ist abgeschlossen, wenn der Router neu startet und anschliessend die Sys-Lampe dauerhaft leuchtet.   (Abb. 8)&lt;br /&gt;
#Am Ende erscheint ggf. eine Fehlermeldung, weil der Router nicht mehr über die alte IP-Adresse direkt erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
Eine weitere Konfiguration ist nicht nötig, kann aber über den config-mode vorgenommen werden (siehe [[Installation#Konfigurieren_des_Nodes|Abschnitt config-mode)]].&lt;br /&gt;
Der Router (WAN-Port) kann nun mit dem Netzwerk zum DSL Router verbunden werden.&lt;br /&gt;
&lt;br /&gt;
'''Wichtiger Hinweis:''' ''Verbinde keinesfalls Dein lokales Netz mit den '''LAN-Ports''' des Nodes. Sonst steht dein LAN im Freifunknetz offen!''&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Möchtest Du jedoch einen Dienst (Web-/ Jabber-/ sonstiger Server) innerhalb des Freifunknetzwerkes anbieten, so ist einer der LAN-Ports dein Freund.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gallery caption=&amp;quot;Abbildungen zeigen das original Webinterface des Herstellers&amp;quot; widths=&amp;quot;180px&amp;quot; heights=&amp;quot;120px&amp;quot; perrow=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
 Datei:install_sc3.jpg|Abb. 3 Firmware-Upgrade&lt;br /&gt;
 Datei:install_sc4.jpg|Abb. 4 Durchsuchen&lt;br /&gt;
 Datei:install_sc5.jpg|Abb. 5 Datei wählen und Öffnen&amp;lt;br /&amp;gt;(Mittels des Dateimanagers des Betriebssystems)&lt;br /&gt;
 Datei:install_sc6.jpg|Abb. 6 Firmware-Upgrade&lt;br /&gt;
 Datei:install_sc10.jpg|Abb. 8 Erfolgreiche Installation&lt;br /&gt;
 &amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Variante: Update ===&lt;br /&gt;
&lt;br /&gt;
Updates der Freifunk-Software werden wie gewöhnliche OpenWRT-Updates eingespielt. (Vgl. http://wiki.openwrt.org/doc/howto/generic.sysupgrade). Solltest Du mit beim Upgrade Probleme haben, so helfen wir Dir gerne im [[IRC]] oder per [[Mailingliste]] weiter. Bei einem Update muss wie folgt vorgegangen werden:&lt;br /&gt;
&lt;br /&gt;
# Config Mode starten (Vgl. [[#Konfigurieren des Nodes]])&lt;br /&gt;
# Firmware-Upgrade auswählen&lt;br /&gt;
# Firmware hochladen und neu starten&lt;br /&gt;
&lt;br /&gt;
== Registrierung des Nodes ==&lt;br /&gt;
Bitte registrieren Deine Freifunk-Node und gibt die Position auf der Karte an. Dies erlaubt es uns, Dich bei Probleme zu verständigen - gleichzeitig kann Dein Node von Nutzern einfacher gefunden werden.&lt;br /&gt;
&lt;br /&gt;
Ein Node muss nach einem Update nicht erneut registriert werden.&lt;br /&gt;
&lt;br /&gt;
'''WICHTIG:''' Der PC muss mit dem gleichen Netzwerk wie die Freifunk Node verbunden sein! Du kannst nur Freifunk-Nodes registrieren, die unter Deiner IP online sind.&lt;br /&gt;
&lt;br /&gt;
#Zum Registrieren des Nodes die Webseite https://register.kbu.freifunk.net aufrufen (Abb. 20)&lt;br /&gt;
#Wenn noch nicht vorhanden, ein neuen Account erstellen (Abb. 21)&lt;br /&gt;
# Nach der Anmeldung erscheint auf der Startseite die unregistrierte Node als registrierbar (Abb. 22)&lt;br /&gt;
#Hier nun die Information zu der Node eingeben (Abb. 23)&lt;br /&gt;
#Bei &amp;quot;Standort auf der Karte&amp;quot; die Adresse eingeben und einen Moment warten. Das System sucht die passende Adresse automatisch heraus. Die Adresse anklicken (Abb. 24)&lt;br /&gt;
#Der genaue Standort der Node (blauer Marker) kann mit der Maus verändert werden (Abb. 25)&lt;br /&gt;
#Auf der Startseite ist die neu registrierte Node unter dem Punkt &amp;quot;Eigene Nodes&amp;quot; zu finden (Abb. 26)&lt;br /&gt;
#Um die Details der Registrierung zu bearbeiten, klickt man in der Leiste auf &amp;quot;Nodes&amp;quot; und sucht dann in der Liste seine Node und klickt auf den Link &amp;quot;Registrierung&amp;quot; (Abb. 27)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gallery&amp;gt;&lt;br /&gt;
 Datei:register_sc1.jpg|Abb. 20&lt;br /&gt;
 Datei:register_sc2.jpg|Abb. 21&lt;br /&gt;
 Datei:register_sc3.jpg|Abb. 22&lt;br /&gt;
 Datei:register_sc4.jpg|Abb. 23&lt;br /&gt;
 Datei:register_sc5.jpg|Abb. 24&lt;br /&gt;
 Datei:register_sc6.jpg|Abb. 25&lt;br /&gt;
 Datei:register_sc6-5.jpg|Abb. 26&lt;br /&gt;
 Datei:register_sc8.jpg|Abb. 27&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Konfigurieren des Nodes==&lt;br /&gt;
(config mode - optional)&amp;lt;br 7&amp;gt;&lt;br /&gt;
Grundsätzlich ist unsere Freifunk Firmware so konzipiert, dass der Betreiber eines Nodes (Freifunkknoten) keinerlei Konfigurationsarbeiten durchführen muss. Das bedeutet, nach dem Aufspielen unserer Firmware und der Registrierung, kann der Betreiber direkt loslegen und ist Teil unseres Freifunk-Netzwerkes. Wenn der Betreiber es wünscht, besteht natürlich für Ihn die Möglichkeit, seinen Knoten an seine speziellen Bedürfnisse anzupassen. Die Möglichkeiten und Abweichungen von der Default-Konfiguration sind vielfältig. Diese sollten aber nur dann durchgeführt werden, wenn der Durchführende genau weiß was er da macht. Eine fehlerhaft Konfiguration kann zum Beispiel zu Störungen im Netzwerk führen, ferner könnten illegitime Maßnahmen implementiert werden. Beide zuvor genannten Beispiele würden zu einem Ausschluss aus unserem Netzwerk führen. Dennoch kann man gute Gründe haben die ein Abweichen von den Defaultwerten sinnvoll machen. &lt;br /&gt;
&lt;br /&gt;
* Es ist zum Beispiel möglich, ein Passwort zu setzen um den Node per Fernzugriff/Login zu warten oder einige erweiterte Einstellungen vorzunehmen. &lt;br /&gt;
&lt;br /&gt;
Es kann durchaus sinnvoll sein, die LAN-Ports speziell zu konfigurieren oder zusätzliche Software für eine Bandbreitenbegrenzung zu installieren. &lt;br /&gt;
&lt;br /&gt;
An dieser Stellen möchten wir nur beschreiben, wie man in diesen Konfigurationsmodus gelangt. Eine ausführliche Beschreibung einiger [[Erweiterungen]] ist in Arbeit. Siehe auch [[Mitmachen#Pimp_My_Node|Pimp_My_Node]] &lt;br /&gt;
&lt;br /&gt;
'''Vorgehensweise'''&lt;br /&gt;
#PC mit Router über Netzwerkkabel verbinden (gelbe LAN Ports am Router)&lt;br /&gt;
#Wenn der Router gestartet ist (Power, Sys, WLAN leuchten dauerhaft), QSS Taste (schwarzer Knopf) 6 Sekunden drücken (Abb.10) (bis der Router neu startet, das sieht man daran, dass alle Lampen einmal ausgehen). Danach wird die Sys-Lampe, unregelmäßig blinken (Siehe: http://www.nilsschneider.net/2013/02/10/freifunk-blinken.html).&lt;br /&gt;
#bei manchen Routern (z.B. beim WR841N) muss man jetzt das Netzwerkkabel am Router umstecken (blauer WAN Port)&lt;br /&gt;
#Abwarten, bis der PC eine neue LAN-Verbindung aufgebaut hat (DHCP ist aktiv)&lt;br /&gt;
#Adresse http://192.168.1.1 aufrufen. - Punkt &amp;quot;Knoten neu einrichten&amp;quot; anklicken (Abb. 11)&lt;br /&gt;
#Vergabe von Passwort für den Fernzugriff/Login. Dann auf &amp;quot;weiter&amp;quot; klicken (Abb. 12)&lt;br /&gt;
#bei Bedarf die Bandbreitenbegrenzung aktivieren und auf &amp;quot;weiter&amp;quot; klicken (Abb. 13)&lt;br /&gt;
#auf &amp;quot;Jetzt neustarten!&amp;quot; klicken (Abb. 14) - Der Router startet neu, die kommende Fehlermeldung kann ignoriert werden (Abb. 15)&lt;br /&gt;
#Netzwerkkabel trennen und im WLAN warten, bis das netz &amp;quot;kbu.freifunk.net&amp;quot; auftaucht&lt;br /&gt;
&lt;br /&gt;
'''Verbinde keinesfalls Dein lokales Netz mit den gelben LAN-Ports des Nodes. Sonst steht es allen offen!'''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gallery&amp;gt;&lt;br /&gt;
 Datei:wr741nd_pi4-5.jpg|Abb. 10 QSS-Taste bei WR741ND&lt;br /&gt;
 Datei:config_sc1.jpg|Abb. 11&lt;br /&gt;
 Datei:config_sc2.jpg|Abb. 12&lt;br /&gt;
 Datei:config_sc3.jpg|Abb. 13&lt;br /&gt;
 Datei:config_sc4.jpg|Abb. 14&lt;br /&gt;
 Datei:config_sc5.jpg|Abb. 15&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== via Shell ===&lt;br /&gt;
Vorraussetzung für folgende Befehle sind eine Verbindung mit dem KBU Freifunk Netz sowie ein Terminal / Shell. &lt;br /&gt;
Vergesst nicht eth0 gegen die Bezeichnung eures Netzwerkinterfaces, welches am Freifunk hängt zu tauschen. &lt;br /&gt;
Bei Macbooks via Wlan z.B. &amp;quot;en1&amp;quot; statt &amp;quot;eth0&amp;quot;! Die link local Adresse der jeweiligen node findet ihr auf der [http://register.kbu.freifunk.net KBU Register] Seite. &lt;br /&gt;
IPv6 ping&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ping6 &amp;lt;link local adress des node&amp;gt;%eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IPv6 ssh - Hinter der link local Adresse &amp;quot;%&amp;quot; + &amp;quot;Netzwerk Interface an eurer Kiste&amp;quot; (Hier im Beispiel eth0)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@&amp;lt;link local adress des node&amp;gt;%eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Firmware upgrade bei node mit uplink&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@&amp;lt;link local adress des node&amp;gt;%eth0              // SSH Verbindung zum Node aufbauen&lt;br /&gt;
cd ../tmp/                                              // in das Verzeichnis &amp;quot;tmp&amp;quot; wechseln&lt;br /&gt;
free                                                    // Freien Speicher prüfen&lt;br /&gt;
wget http://pfad/zur/firmware.bin                       // Firmware herunterladen oder&lt;br /&gt;
sysupgrade -v firmware.bin                              // Firmwareupgrade durchführen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Firmware upgrade bei node ohne uplink&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp -6 -v -r firmware.bin root@\[&amp;lt;linkloc&amp;gt;%eth0\]:../tmp/          // Firmware auf den node schieben (md5 checken!)&lt;br /&gt;
ssh root@&amp;lt;link local adress des node&amp;gt;%eth0 &lt;br /&gt;
cd ../tmp/  &lt;br /&gt;
sysupgrade -v firmware.bin  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== LAN Kopplung ====&lt;br /&gt;
Eine LAN Kopplung kann in manchen Fällen sinnvoll sein, besonders wenn man einen VLAN fähigen Switch und eine bestehende Ntzwerkverkabelung hat. Hier werden die Switchports angwiesen auch über LAN zu meshen.&lt;br /&gt;
&lt;br /&gt;
===== TL-WR841ND =====&lt;br /&gt;
03/2014: Hier wird über die alle 4 LAN Ports gemeshed, Mesh über WLAN kann man optional noch ausschalten! Folgende Config stammt von rampone/FF-KBU und wurde an 2 TL-WR841N v.8 getestet mit KBU-FF-Firmware 1.1.&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/network'' - Folgende Änderungen wurden an der FF-Firmware 1.0 vorgenommen:&lt;br /&gt;
#config interface 'freifunk' -&amp;gt; Hier haben wir eth0 aus &amp;quot;ifname&amp;quot; rausgenommen, damit kein ff aus dem eth0 (switch) rauskommt.&lt;br /&gt;
#config interface 'mesh_lan' -&amp;gt; kompl. codeblock hinzugefügt, dieser bewirkt das über eth0 (switch) gemeshed wird. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config interface 'loopback'&lt;br /&gt;
	option ifname 'lo'&lt;br /&gt;
	option proto 'static'&lt;br /&gt;
	option ipaddr '127.0.0.1'&lt;br /&gt;
	option netmask '255.0.0.0'&lt;br /&gt;
&lt;br /&gt;
config interface 'wan'&lt;br /&gt;
	option ifname 'eth0'&lt;br /&gt;
	option proto 'dhcp'&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option accept_ra '0'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
&lt;br /&gt;
config switch&lt;br /&gt;
	option name 'switch0'&lt;br /&gt;
	option reset '1'&lt;br /&gt;
	option enable_vlan '1'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'switch0'&lt;br /&gt;
	option vlan '1'&lt;br /&gt;
	option ports '0 1 2 3 4'&lt;br /&gt;
&lt;br /&gt;
config interface 'freifunk'&lt;br /&gt;
	option ifname 'bat0'		#LAN-Kopplung: ifname eth1 entfernt&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option proto 'none'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option accept_ra '1'&lt;br /&gt;
	option macaddr '10:fe:ed:f1:53:84'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mtu '1528'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_vpn'&lt;br /&gt;
	option ifname 'mesh-vpn'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
	option macaddr '12:fe:ed:f2:53:84'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_lan'		#LAN-Kopplung: Codeblock mesh-lan hinzugefuegt&lt;br /&gt;
	option ifname 'eth1'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/wireless'' - Hier wird der Codeblock, der für das Mesh über WLAN verantwortlich ist auskommentiert (optional)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#config wifi-iface 'wifi_mesh'&lt;br /&gt;
#       option device 'radio0'&lt;br /&gt;
#       option network 'mesh'&lt;br /&gt;
#       option mode 'adhoc'&lt;br /&gt;
#       option ssid '02:d1:11:37:fc:39'&lt;br /&gt;
#       option bssid '02:d1:11:37:fc:39&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TL-WDR4300 =====&lt;br /&gt;
Das gleiche nochmal für den 4300er&lt;br /&gt;
&lt;br /&gt;
''vim /etc/config/network''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config interface 'loopback'&lt;br /&gt;
	option ifname 'lo'&lt;br /&gt;
	option proto 'static'&lt;br /&gt;
	option ipaddr '127.0.0.1'&lt;br /&gt;
	option netmask '255.0.0.0'&lt;br /&gt;
&lt;br /&gt;
config interface 'wan'&lt;br /&gt;
	option ifname 'eth0.2'&lt;br /&gt;
	option proto 'dhcp'&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option accept_ra '0'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option macaddr 'a2:f3:c1:65:81:cd'&lt;br /&gt;
&lt;br /&gt;
config switch&lt;br /&gt;
	option name 'eth0'&lt;br /&gt;
	option reset '1'&lt;br /&gt;
	option enable_vlan '1'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'eth0'&lt;br /&gt;
	option vlan '1'&lt;br /&gt;
	option ports '0t 2 3 4 5'&lt;br /&gt;
&lt;br /&gt;
config switch_vlan&lt;br /&gt;
	option device 'eth0'&lt;br /&gt;
	option vlan '2'&lt;br /&gt;
	option ports '0t 1'&lt;br /&gt;
&lt;br /&gt;
config interface 'freifunk'&lt;br /&gt;
	option ifname 'bat0'		#LAN-Kopplung: ifname eth0.1 entfernt&lt;br /&gt;
	option type 'bridge'&lt;br /&gt;
	option proto 'none'&lt;br /&gt;
	option auto '1'&lt;br /&gt;
	option accept_ra '1'&lt;br /&gt;
	option macaddr 'a0:f3:c1:64:81:cc'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mtu '1528'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_vpn'&lt;br /&gt;
	option ifname 'mesh-vpn'&lt;br /&gt;
	option proto 'batadv'&lt;br /&gt;
	option mesh 'bat0'&lt;br /&gt;
	option macaddr 'a2:f3:c1:65:81:cc'&lt;br /&gt;
&lt;br /&gt;
config interface 'mesh_lan'		#LAN-Kopplung: Codeblock mesh-lan hinzugefuegt&lt;br /&gt;
        option ifname 'eth0.1'&lt;br /&gt;
        option proto 'batadv'&lt;br /&gt;
        option mesh 'bat0'&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Pimp My Node===&lt;br /&gt;
&lt;br /&gt;
An dieser Stelle möchten wir noch ein paar Erweiterungen vorstellen. Da die Geräte normalerweise 24/7 in Betrieb sind, kann, je nach Hardware, der ein oder andere Freifunkrouter mit ein paar zusätzlichen Funktionen und/oder Aufgaben betreut werden.&lt;br /&gt;
&lt;br /&gt;
;Web-Interface einschalten.&lt;br /&gt;
Um das WebInterface dauerhaft einzuschalten:&lt;br /&gt;
Per SSH auf der Konsole einloggen und &lt;br /&gt;
 /etc/init.d/uhttpd enable &lt;br /&gt;
ausführen.&lt;br /&gt;
&lt;br /&gt;
;Zusätzliche WLANs&lt;br /&gt;
:Hier eine Anleitung von [[Benutzer:Twinter|Twinter]], in der er euch zeigen möchte, wie Ihr einfach eurem Freifunk-Node [[AnleitungZusätzlichesWLAN|zusätzliche WLANs]] beibringen könnt.&lt;/div&gt;</summary>
		<author><name>Took</name></author>
	</entry>
</feed>