http://wiki.freifunk-rheinbach.de/api.php?action=feedcontributions&user=Thomas&feedformat=atomFreifunk-Rheinbach Wiki - Benutzerbeiträge [de]2024-03-28T14:30:11ZBenutzerbeiträgeMediaWiki 1.41.0http://wiki.freifunk-rheinbach.de/index.php?title=Autonomous_System_Number_(ASN)&diff=275Autonomous System Number (ASN)2019-09-05T18:18:00Z<p>Thomas: </p>
<hr />
<div>An '''Autonomous System Number''' (ASN) is a unique number that's available globally to identify an autonomous system and which enables that system to exchange exterior routing information with other neighboring autonomous systems.<br />
<br />
The number of autonomous system numbers is limited. For autonomous system numbers to be assigned, current guidelines need the network to be multi-homed and have a unique routing policy. Autonomous system numbers can be assigned only through a request to the local Internet registry.<br />
<br />
In the early days ASN where limited to 2 Bytes. Public numbers range from 1 to 64511. Numbers above 64511 until 65534 are reserved for private use. Because this limitation the ASN has been expanded to 4 bytes. The old private range is preserved and a second private range is 4200000000 to 4294967294.<br />
<br />
The public ASN for FFRL is 201701.<br />
<br />
FFRL uses private ASN for the Autonomous Systems of the local communities. <br />
<br />
The private ASN for Freifunk communities are used for connecting to the FFRL [[backbone]] wihich is documented in GitHub [https://github.com/freifunk/icvpn-meta ICVPN-Meta].<br />
<br />
At the time of writing I had not found any hint where and how to allocate an private ASN in FFRL.<br />
<br />
[[Kategorie:Dokumentation]]</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=Autonomous_System_Number_(ASN)&diff=274Autonomous System Number (ASN)2019-09-05T18:17:27Z<p>Thomas: First draft</p>
<hr />
<div>An '''Autonomous System Number''' (ASN) is a unique number that's available globally to identify an autonomous system and which enables that system to exchange exterior routing information with other neighboring autonomous systems.<br />
<br />
The number of autonomous system numbers is limited. For autonomous system numbers to be assigned, current guidelines need the network to be multi-homed and have a unique routing policy. Autonomous system numbers can be assigned only through a request to the local Internet registry.<br />
<br />
In the early days ASN where limited to 2 Bytes. Public numbers range from 1 to 64511. Numbers above 64511 until 65534 are reserved for private use. Because this limitation the ASN has been expanded to 4 bytes. The old private range is preserved and a second private range is 4200000000 to 4294967294.<br />
<br />
The public ASN for FFRL is 201701.<br />
<br />
FFRL uses private ASN for the Autonomous Systems of the local communities. <br />
<br />
The private ASN for Freifunk communities are used for connecting to the FFRL [[backbone]] wihich is documented in GitHub [https://github.com/freifunk/icvpn-meta ICVPN-Meta].<br />
<br />
At the time of writing I had not found any hint where and how to allocate an private ASN in FFRL.<br />
<br />
[[Gehört zu::Dokumentation]]</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=Freifunk-Rheinbach_Wiki:Impressum&diff=273Freifunk-Rheinbach Wiki:Impressum2018-11-25T10:50:22Z<p>Thomas: Die Seite wurde neu angelegt: „== Kontakt== Thomas Arend<br /> Zingsheimstraße 31<br /> 53359 Rheinbach<br /> e-Mail: thomas ( at ) arend-rhb.de ==Haftungsausschluss== ===Inhalt des Onli…“</p>
<hr />
<div>== Kontakt==<br />
<br />
Thomas Arend<br /><br />
Zingsheimstraße 31<br /><br />
53359 Rheinbach<br /><br />
e-Mail: thomas ( at ) arend-rhb.de<br />
<br />
==Haftungsausschluss==<br />
<br />
===Inhalt des Onlineangebotes===<br />
<p>Der Autor übernimmt keinerlei Gewähr für die Aktualität, Richtigkeit und Vollständigkeit der bereitgestellten Informationen auf unserer Website. Haftungsansprüche gegen den Autor, welche sich auf Schäden materieller oder ideeller Art beziehen, die durch die Nutzung oder Nichtnutzung der dargebotenen Informationen bzw. durch die Nutzung fehlerhafter und unvollständiger Informationen verursacht wurden, sind grundsätzlich ausgeschlossen, sofern seitens des Autors kein nachweislich vorsätzliches oder grob fahrlässiges Verschulden vorliegt.<br><br />
Alle Angebote sind freibleibend und unverbindlich. Der Autor behält es sich ausdrücklich vor, Teile der Seiten oder das gesamte Angebot ohne gesonderte Ankündigung zu verändern, zu ergänzen, zu löschen oder die Veröffentlichung zeitweise oder endgültig einzustellen.</p><br />
===Verweise und Links===<br />
<p>Bei direkten oder indirekten Verweisen auf fremde Webseiten (“Hyperlinks”), die außerhalb des Verantwortungsbereiches des Autors liegen, würde eine Haftungsverpflichtung ausschließlich in dem Fall in Kraft treten, in dem der Autor von den Inhalten Kenntnis hat und es ihm technisch möglich und zumutbar wäre, die Nutzung im Falle rechtswidriger Inhalte zu verhindern.<br><br />
Der Autor erklärt hiermit ausdrücklich, dass zum Zeitpunkt der Linksetzung keine illegalen Inhalte auf den zu verlinkenden Seiten erkennbar waren. Auf die aktuelle und zukünftige Gestaltung, die Inhalte oder die Urheberschaft der verlinkten/verknüpften Seiten hat der Autor keinerlei Einfluss. Deshalb distanziert er sich hiermit ausdrücklich von allen Inhalten aller verlinkten /verknüpften Seiten, die nach der Linksetzung verändert wurden. Diese Feststellung gilt für alle innerhalb des eigenen Internetangebotes gesetzten Links und Verweise sowie für Fremdeinträge in vom Autor eingerichteten Gästebüchern, Diskussionsforen, Linkverzeichnissen, Mailinglisten und in allen anderen Formen von Datenbanken, auf deren Inhalt externe Schreibzugriffe möglich sind. Für illegale, fehlerhafte oder unvollständige Inhalte und insbesondere für Schäden, die aus der Nutzung oder Nichtnutzung solcherart dargebotener Informationen entstehen, haftet allein der Anbieter der Seite, auf welche verwiesen wurde, nicht derjenige, der über Links auf die jeweilige Veröffentlichung lediglich verweist.</p><br />
===Urheber- und Kennzeichenrecht===<br />
<p>Der Autor ist bestrebt, in allen Publikationen die Urheberrechte der verwendeten Bilder, Grafiken, Tondokumente, Videosequenzen und Texte zu beachten, von ihm selbst erstellte Bilder, Grafiken, Tondokumente, Videosequenzen und Texte zu nutzen oder auf lizenzfreie Grafiken, Tondokumente, Videosequenzen und Texte zurückzugreifen.<br><br />
Alle innerhalb des Internetangebotes genannten und ggf. durch Dritte geschützten Marken- und Warenzeichen unterliegen uneingeschränkt den Bestimmungen des jeweils gültigen Kennzeichenrechts und den Besitzrechten der jeweiligen eingetragenen Eigentümer. Allein aufgrund der bloßen Nennung ist nicht der Schluss zu ziehen, dass Markenzeichen nicht durch Rechte Dritter geschützt sind!<br><br />
Das Copyright für veröffentlichte, vom Autor selbst erstellte Objekte bleibt allein beim Autor der Seiten. Eine Vervielfältigung oder Verwendung solcher Grafiken, Tondokumente, Videosequenzen und Texte in anderen elektronischen oder gedruckten Publikationen ist ohne ausdrückliche Zustimmung des Autors nicht gestattet.</p><br />
===Datenschutz===<br />
<p>Sofern innerhalb des Internetangebotes die Möglichkeit zur Eingabe persönlicher oder geschäftlicher Daten (Emailadressen, Namen, Anschriften) besteht, so erfolgt die Preisgabe dieser Daten seitens des Nutzers auf ausdrücklich freiwilliger Basis. Die Inanspruchnahme und Bezahlung aller angebotenen Dienste ist – soweit technisch möglich und zumutbar – auch ohne Angabe solcher Daten bzw. unter Angabe anonymisierter Daten oder eines Pseudonyms gestattet. Die Nutzung der im Rahmen des Impressums oder vergleichbarer Angaben veröffentlichten Kontaktdaten wie Postanschriften, Telefon- und Faxnummern sowie Emailadressen durch Dritte zur Übersendung von nicht ausdrücklich angeforderten Informationen ist nicht gestattet. Rechtliche Schritte gegen die Versender von sogenannten Spam-Mails bei Verstössen gegen dieses Verbot sind ausdrücklich vorbehalten.</p><br />
<br />
===Datenschutzerklärung für die Nutzung von Facebook-Plugins (Like-Button)===<br />
<p>Diese Webseite nutzt Plugins des Anbieters Facebook.com, welche durch das Unternehmen Facebook Inc., 1601 S. California Avenue, Palo Alto, CA 94304 in den USA bereitgestellt werden. Nutzer unserer Webseite, auf der das Facebook-Plugin installiert ist, werden hiermit darauf hingewiesen, dass durch das Plugin eine Verbindung zu Facebook aufgebaut wird, wodurch eine Übermittlung an Ihren Browser durchgeführt wird, damit das Plugin auf der Webseite erscheint.<br><br />
Des Weiteren werden durch die Nutzung Daten an die Facebook-Server weitergeleitet, welche Informationen über Ihre Webseitenbesuche auf unserer Homepage enthalten. Dies hat für eingeloggte Facebook-Nutzer zur Folge, dass die Nutzungsdaten ihrem persönlichen Facebook-Account zugeordnet werden.<br><br />
Sobald Sie als eingeloggter Facebook-Nutzer aktiv das Facebook-Plugin nutzen (z.B. durch das Klicken auf den „Gefällt mir“ Knopf oder die Nutzung der Kommentarfunktion), werden diese Daten zu Ihrem Facebook-Account übertragen und veröffentlicht. Dies können Sie nur durch vorheriges Ausloggen aus Ihrem Facebook-Account umgehen.<br><br />
Weitere Information bezüglich der Datennutzung durch Facebook entnehmen Sie bitte den datenschutzrechtlichen Bestimmungen auf Facebook.</p><br />
<br />
===Datenschutzerklärung für die Nutzung von Twitter===<br />
<p>Auf unseren Seiten sind Funktionen des Dienstes Twitter eingebunden. Diese Funktionen werden angeboten durch die Twitter Inc., 795 Folsom St., Suite 600, San Francisco, CA 94107, USA. Durch das Benutzen von Twitter und der Funktion „Re-Tweet“ werden die von Ihnen besuchten Webseiten mit Ihrem Twitter-Account verknüpft und anderen Nutzern bekannt gegeben. Dabei werden auch Daten an Twitter übertragen.</p><br />
<p>Wir weisen darauf hin, dass wir als Anbieter der Seiten keine Kenntnis vom Inhalt der übermittelten Daten sowie deren Nutzung durch Twitter erhalten. Weitere Informationen hierzu finden Sie in der Datenschutzerklärung von Twitter unter http://twitter.com/privacy.</p><br />
<p>Ihre Datenschutzeinstellungen bei Twitter können Sie in den Konto-Einstellungen unter http://twitter.com/account/settings ändern.</p><br />
<br />
===Datenschutzerklärung für die Nutzung von Google +1===<br />
<p><b>Erfassung und Weitergabe von Informationen:</b><br><br />
Mithilfe der Google +1-Schaltfläche können Sie Informationen weltweit veröffentlichen. Über die Google +1-Schaltfläche erhalten Sie und andere Nutzer personalisierte Inhalte von Google und unseren Partnern. Google speichert sowohl die Information, dass Sie für einen Inhalt +1 gegeben haben, als auch Informationen über die Seite, die Sie beim Klicken auf +1 angesehen haben. Ihre +1 können als Hinweise zusammen mit Ihrem Profilnamen und Ihrem Foto in Google-Diensten, wie etwa in Suchergebnissen oder in Ihrem Google-Profil, oder an anderen Stellen auf Websites und Anzeigen im Internet eingeblendet werden. Google zeichnet Informationen über Ihre +1-Aktivitäten auf, um die Google-Dienste für Sie und andere zu verbessern.</p><br />
<p>Um die Google +1-Schaltfläche verwenden zu können, benötigen Sie ein weltweit sichtbares, öffentliches Google-Profil, das zumindest den für das Profil gewählten Namen enthalten muss. Dieser Name wird in allen Google-Diensten verwendet. In manchen Fällen kann dieser Name auch einen anderen Namen ersetzen, den Sie beim Teilen von Inhalten über Ihr Google-Konto verwendet haben. Die Identität Ihres Google-Profils kann Nutzern angezeigt werden, die Ihre E-Mail-Adresse kennen oder über andere identifizierende Informationen von Ihnen verfügen.</p><br />
<p><b>Verwendung der erfassten Informationen:</b><br><br />
Neben den oben erläuterten Verwendungszwecken werden die von Ihnen bereitgestellten Informationen gemäß den geltenden Google-Datenschutzbestimmungen genutzt. Google veröffentlicht möglicherweise zusammengefasste Statistiken über die +1-Aktivitäten der Nutzer bzw. gibt diese an Nutzer und Partner weiter, wie etwa Publisher, Inserenten oder verbundene Websites.</p><br />
<br />
===Datenschutzerklärung für die Nutzung von Google Adsense===<br />
<p>Diese Website benutzt Google AdSense, einen Dienst zum Einbinden von Werbeanzeigen der Google Inc. („Google“). Google AdSense verwendet sog. „Cookies“, Textdateien, die auf Ihrem Computer gespeichert werden und die eine Analyse der Benutzung der Website ermöglicht. Google AdSense verwendet auch so genannte Web Beacons (unsichtbare Grafiken). Durch diese Web Beacons können Informationen wie der Besucherverkehr auf diesen Seiten ausgewertet werden. Die durch Cookies und Web Beacons erzeugten Informationen über die Benutzung dieser Website (einschließlich Ihrer IP-Adresse) und Auslieferung von Werbeformaten werden an einen Server von Google in den USA übertragen und dort gespeichert.</p><br />
<p>Diese Informationen können von Google an Vertragspartner von Google weiter gegeben werden. Google wird Ihre IP-Adresse jedoch nicht mit anderen von Ihnen gespeicherten Daten zusammenführen. Sie können die Installation der Cookies durch eine entsprechende Einstellung Ihrer Browser Software verhindern; wir weisen Sie jedoch darauf hin, dass Sie in diesem Fall gegebenenfalls nicht sämtliche Funktionen dieser Website voll umfänglich nutzen können. Durch die Nutzung dieser Website erklären Sie sich mit der Bearbeitung der über Sie erhobenen Daten durch Google in der zuvor beschriebenen Art und Weise und zu dem zuvor benannten Zweck einverstanden.</p><br />
<br />
===Datenschutzerklärung für die Nutzung von Google Analytics===<br />
<p>Diese Website benutzt Google Analytics, einen Webanalysedienst der Google Inc. („Google“). Google Analytics verwendet sog. „Cookies“, Textdateien, die auf Ihrem Computer gespeichert werden und die eine Analyse der Benutzung der Website durch Sie ermöglichen. Die durch den Cookie erzeugten Informationen über Ihre Benutzung dieser Website werden in der Regel an einen Server von Google in den USA übertragen und dort gespeichert.</p><br />
<p>Im Falle der Aktivierung der IP-Anonymisierung auf dieser Webseite, wird Ihre IP-Adresse von Google jedoch innerhalb von Mitgliedstaaten der Europäischen Union oder in anderen Vertragsstaaten des Abkommens über den Europäischen Wirtschaftsraum zuvor gekürzt. Nur in Ausnahmefällen wird die volle IP-Adresse an einen Server von Google in den USA übertragen und dort gekürzt. Im Auftrag des Betreibers dieser Website wird Google diese Informationen benutzen, um Ihre Nutzung der Website auszuwerten, um Reports über die Websiteaktivitäten zusammenzustellen und um weitere mit der Websitenutzung und der Internetnutzung verbundene Dienstleistungen gegenüber dem Websitebetreiber zu erbringenDie im Rahmen von Google Analytics von Ihrem Browser übermittelte IP-Adresse wird nicht mit anderen Daten von Google zusammengeführt.</p><br />
<p>Sie können die Speicherung der Cookies durch eine entsprechende Einstellung Ihrer Browser-Software verhindern; wir weisen Sie jedoch darauf hin, dass Sie in diesem Fall gegebenenfalls nicht sämtliche Funktionen dieser Website vollumfänglich werden nutzen können. Sie können darüber hinaus die Erfassung der durch das Cookie erzeugten und auf Ihre Nutzung der Website bezogenen Daten (inkl. Ihrer IP-Adresse) an Google sowie die Verarbeitung dieser Daten durch Google verhindern, indem sie das unter dem folgenden Link verfügbare Browser-Plugin herunterladen und installieren http://tools.google.com/dlpage/gaoptout?hl=de.</p><br />
Quelle: [http://www.haftungsausschluss-vorlage.de/ Haftungsausschluss Muster] von [http://www.haftungsausschluss.org/ Haftungsausschluss.org], [http://www.dsgvo-gesetz.info/ www.dsgvo-gesetz.info] und das [http://www.datenschutzgesetz.de/ Datenschutzgesetz].</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=Freifunk-Rheinbach_Wiki:Datenschutz&diff=272Freifunk-Rheinbach Wiki:Datenschutz2018-11-25T10:40:45Z<p>Thomas: Die Seite wurde neu angelegt: „== Datenschutzerklärung == ===Kurzfassung=== <ol> <li>Personenbezogene Daten werden nur mit Ihrem Wissen und Ihrer Einwilligung erhoben.</li> <li>Wenn S…“</p>
<hr />
<div>== Datenschutzerklärung ==<br />
<br />
===Kurzfassung===<br />
<ol><br />
<li>Personenbezogene Daten werden nur mit Ihrem Wissen und Ihrer Einwilligung erhoben.</li><br />
<li>Wenn Sie Cookies annehmen, werden Cookies zur Steuerung des Web-Seite <strong>auf Ihrem Rechner hinterlegt</strong>.</li><br />
<li>Die von Ihrem Browser übermittelten, von mir erhobenen und verarbeiteten Daten reichen nicht aus Sie zu identifizieren. Eine festgelegte Löschfrist für diese Daten besteht nicht.</li><br />
<li>Wenn Sie einen Kommentar zu einer Seite oder einen Artikels abgeben, werden durch Sie bereitgestellte personenbezogene Daten erhoben, verarbeitet, gespeichert und teilweise veröffentlicht. Was normalerweise Sinn oder Zweck eines Kommentars ist. Die Speicherung erfolgt grundsätzlich unbegrenzt.</li><br />
<li>Über das Teilen der Artikel in sozialen Medien werden keine Daten erhoben.</li><br />
</ol><br />
==Informationspflicht bei Erhebung von personenbezogenen Daten bei der betroffenen Person==<br />
Siehe [https://dsgvo-gesetz.de/art-13-dsgvo/ Artikel 13 DSGVO].<br />
<br />
===Kontaktdaten===<br />
<br />
gem. Art 13 a DSGVO<br />
<br />
Thomas Arend<br />
Zingsheimstraße 31<br />
53359 Rheinbach<br />
<a name="eins">E-Mail:</a> thomas ( at ) arend-rhb.de<br />
<br />
===Kontaktdaten Datenschutzbeauftragter gem. Art 13 b)===<br />
Entfällt.<br />
<br />
===Zweck und Rechtsgrundlage===<br />
<br />
gem. Art 13 c) DSGVO<br />
<br />
Die Rechtsgrundlage für die Verarbeitung von Kommentaren und die Speicherung von Cookies auf Ihrem Rechner ist [htps://dsgvo-gesetz.de/art-6-dsgvo/ Artikel 6 Absatz 1 Buchstabe a].<br />
<br />
Mit Bestätigung der "Cookie Notice" bei ersten Aufruf der Seite, erteilen Sie Ihr Einverständnis nach Artikel 13 DSVGO.<br />
<br />
Mit Absenden eines Kommentars oder Beitrages stimmen Sie der Speicherung, Verarbeitung und Veröffentlichung zu. Dies erfolgt grundsätzlich unbegrenzt. Dabei behalte ich mir jedoch vor die Kommentare oder Beiträge jederzeit zu löschen oder nicht zu veröffentlichen. Beiträge dürfen von mir und anderen Nutzern angepasst werden.<br />
<br />
Die Rechtsgrundlage für die Verarbeitung von Log-Daten und der Teilname am „Skalierbare Zentrale Messverfahren“ (siehe unten) ist [https://dsgvo-gesetz.de/art-6-dsgvo/ Artikel 6 Absatz 1 Buchstabe f DSGVO]. Zweck siehe <a href="#art13d">"Mein berechtigtes Interesse" </a>.<br />
<br />
===Mein berechtigtes Interesse===<br />
<br />
gem. Art 13 d) DSGVO<br />
<br />
Log-Daten werden durch mich verarbeitet, um<br />
<ul><br />
<li>einen reibungslosen Verbindungsaufbau und</li><br />
<li>eine komfortable Nutzung dieser Website zu ermöglichen und</li><br />
<li>die Inhalte korrekt auszuliefern.</li><br />
</ul><br />
Die Informationen werden gespeichert und ausgewertet um<br />
<ul><br />
<li>die Systemsicherheit und -stabilität zu gewährleisten,</li><br />
<li>die Fehlerfreiheit der Seiten zu prüfen und</li><br />
<li>Statistiken über die Nutzung und Reichweite der Seiten zu erstellen.</li><br />
</ul><br />
Mein berechtigtes Interesse folgt aus den oben genannten Zwecken, die Daten sind für mich technisch erforderlich, um Ihnen meine Website anzuzeigen und die Stabilität und Sicherheit zu gewährleisten. In keinem Fall verwende ich die erhobenen Daten zu dem Zweck, Rückschlüsse auf Ihre Person zu ziehen.<br />
<br />
===Empfänger personenbezogener Daten===<br />
gem. Art 13 e) DSGVO<br />
<br />
Eine Weitergabe der erhobenen Daten erfolgt grundsätzlich nicht.<br />
<br />
Für die Teilnahme am „Skalierbare Zentrale Messverfahren“ werden 1 Pixel große Bilder von einem externen Server zum Zählen der Seitenzugriffe eingebunden und durch Ihren Browser von einem anderen Server geladen. Den Abruf durch Ihren Browser können Sie durch einen Werbe-Blocker verhindern.<br />
<br />
Durch die Einbindung eines Spendenbutton für Paypal wird / kann Ihr Browser bei entsprechender Einstellung kleine Bilder von Palypal Servern nachladen.<br />
<br />
===Übermittlung an ein Drittland oder eine internationale Organisation===<br />
<br />
gem. Art. 13 f) DSGVO<br />
<br />
Eine Übermittlung an ein Drittland erfolgt grundsätzlich nicht.<br />
<br />
Durch das Einbetten von Bildern oder Links z.B. in Kommentaren kann Ihr Browser andere Server kontaktieren und diesen Informationen (IP-Adresse, ...) an anderer Server übertragen. Siehe oben "Empfänger ...".<br />
<br />
===Auskunftsrecht===<br />
<br />
gem. Art. 15 DSGVO<br />
<br />
Sie haben dieser Web-Seite folgende IP-Adressen übermittelt:<br />
<br />
Ihrer Zugriffe werden mit der Client oder Remote-Adresse in Log-Datein eingetragen.<br />
<br />
Als Browser / User-Agent haben Sie angegeben: <strong>[youragent]</strong><br />
<br />
Da ich über Ihre IP-Adresse hinaus keine Informationen habe, um die vorhandenen Daten Ihnen zuzuordnen, brauche ich für die Beantwortung einer Anfrage [https://dsgvo-gesetz.de/art-15-dsgvo/ gem. Artikel 15 DSVGO] mindestens folgende Informationen (Siehe [https://dsgvo-gesetz.de/art-11-dsgvo/ Artikel 11 Absatz 2 DSVGO]:<br />
<ol><br />
<li>IP-Adressen (Liste) mit genauem Zeitraum der Nutzung mit denen Sie hier zugegriffen haben. Siehe oben.</li><br />
<li>Nachweis (Bestätigung Ihres Providers / Zugangsanbieters), dass diese IP-Adressen im angefragten Zeitraum ausschließlich Ihnen zugeordnet waren.</li><br />
<li>Nachweis, dass das zugeordnete Endgerät in diesen Zeiträumen ausschließlich von Ihnen und nicht von Dritten (Ehepartner, Kinder, Gäste etc.) genutzt wurde.</li><br />
<li>Ggf. weitere Daten und Nachweise</li><br />
</ol><br />
<br />
==Erhebung und Speicherung (personenbezogener) Daten sowie Art und Zweck von deren Verwendung==<br />
Welche (personenbezogenen) Daten werden gespeichert?<br />
===Log-Dateien===<br />
Beim Aufrufen dieser Web-Seite werden durch Ihren Browser Informationen an meinen Server gesendet. Ein Teil dieser Informationen ist zwingend notwendig, um eine bestimmte Seite bereitstellen zu können. Welche Daten Ihr Browser sendet, bestimmen Sie selbst. Ohne Ihre IP-Adresse kann z.B. keine Information an Ihr Endgerät Sie gesandt werden. Ein kleiner Teil dieser Informationen werden in einem Log-File (Access-Log) dauerhaft (bis zur Löschung) gespeichert. In Fehlerfall werden weitere technische Informationen in einem weiteren Log-File gespeichert (Error-Log).<br />
<br />
Im Access-Log dieses Servers werden alle Seitenzugriffe wie im folgenden Beispiel aufgezeichnet.<br />
====Beispiel IPv6====<br />
<pre><br />
2003:a2:df71:6303:ecc8:2134:234d:ee1 - - [08/May/2018:20:40:14 +0200] "GET /wp-content/plugins/showtime-slideshow/include/style.css?ver=4.9.5 HTTP/1.1" 404 55603 "http://byggvir.de/wp-admin/options-general.php?settings-updated=true" "Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0"<br />
</pre><br />
<h4>Beispiel IPv4</h4><br />
<pre>96.123.245.12 - - [08/May/2018:20:40:14 +0200] "GET /wp-content/plugins/showtime-slideshow/include/style.css?ver=4.9.5 HTTP/1.1" 404 55603 "http://byggvir.de/wp-admin/options-general.php?settings-updated=true" "Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0"<br />
</pre><br />
Hierbei handelt es sich um:<br />
<ol><br />
<li>eine IP-Adresse</li><br />
<li>Datum und Uhrzeit des Aufrufes / Eintrages</li><br />
<li>Aufgerufene Seite</li><br />
<li>Returncode des Servers</li><br />
<li>Länge der Antwort in Byte</li><br />
<li>[https://de.wikipedia.org/wiki/Referrer Refferer] (Verweis)</li><br />
<li>[https://de.wikipedia.org/wiki/User_Agent User-Agent]</li><br />
</ol><br />
Aufgrund der Verwendung von [https://de.wikipedia.org/wiki/IPv6 IPv6] und des direkten Zugriffes (kein NAT, kein Proxy) kann der erste Eintrag eindeutig dem Gerät zugeordnet werden, von dem die Anfrage stammt. Eine IPv6-Adresse ist genau einem Gerät zugeordnet, wenn kein VPN Dienst, Proxy oder NAT verwendet wird.<br />
<br />
Heutzutage verbirgt sich hinter einer IPv4-Adresse in der Regel ein Anschluss mit mehreren Geräten und Nutzern oder der Server eines Providers mit sehr vielen Nutzern und Geräten. Möglicherweise ist in der IPv6-Adresse die MAC Adresse des Gerätes enthalten, was im Beispiel nicht der Fall ist.<br />
<br />
Bei der Verwendung einer [https://de.wikipedia.org/wiki/IPv4 IPv4]-Adresse (zweiter Eintrag) wird diese Adresse daher in der Regel die Adresse des Proxy Servers Ihres Providers oder die IP-Adresse Ihres Routers sein<br />
<br />
Der Refferer (Verweisende) gibt Auskunft darüber, von welcher Seite Ihre Anfrage kommt - welche Seite Sie auf diese Web-Seite verwiesen hat. Wenn Sie die Adresse per Hand eingeben, dann ist dieser Wert leer. Ihr Browser sollte einen Refferer nur dann übertragen, wenn Sie von einer Seite dieser Web-Seite kommen. Kommen Sie z.B. von einen Suchergebnis der Google Suche, sollte der Eintrag leer sein. Dies können Sie in Ihrem Browser einstellen.<br />
<br />
Auch die Informationen über Ihren User-Agent sind nicht valide, da alle Werte über Plug-Ins manipuliert werden können, so dass hinter einem Internet Explorer unter Windows durchaus ein Firefox unter Linux stecken kann.<br />
<br />
Mit diesen Log-Daten sind Sie nur mit Hilfe zusätzlicher Informationen identifizierbar, über die ich nicht verfüge und auf die ich keinen Zugriff habe. Daher erfüllen diese Einträge m.E. nicht die Kriterien Personenbezogener Daten ([https://dsgvo-gesetz.de/art-4-dsgvo/ Artikel 4 1. DSGVO]). Dies ist jedoch strittig.<br />
<br />
Eine Weitergabe der Log-Einträge an Dritte erfolgt nicht. Einen Zugriff der STRATO AG (Hoster) kann ich leider nicht verhindern. Eine Weitergabe der Log-Einträge bei Rechtsverstößen behalte ich mir vor.<br />
<br />
===Kommentare und Beiträge===<br />
<br />
Wenn Besucher Kommentare auf der Website schreiben, sammle ich die Daten, die im Kommentar-Formular angezeigt werden, außerdem die IP-Adresse des Besuchers und den User-Agent-String (damit wird der Browser identifiziert), um die Erkennung von Spam zu unterstützen.<br />
<br />
Aus Ihrer E-Mail-Adresse kann eine anonymisierte Zeichenfolge erstellt (auch Hash genannt) und dem Gravatar-Dienst übergeben werden, um zu prüfen, ob Sie diesen benutzen. Die Datenschutzerklärung des Gravatar-Dienstes finden Sie hier: [https://automattic.com/privacy/ https://automattic.com/privacy/]. Nachdem Ihr Kommentar freigegeben wurde, ist Ihr Profilbild öffentlich im Kontext Ihres Kommentars sichtbar.<br />
<br />
Durch Absenden eines Kommentars willigen Sie in die Speicherung, Verarbeitung und Veröffentlichung (Anzeige) des Kommentars auf dieser Seite ein. [https://dsgvo-gesetz.de/art-6-dsgvo/ Artikel 6 (1) a DSGVO].<br />
<br />
Falls Sie einen Kommentar abgeben, werden im Wesentlichen folgende zusätzliche Informationen gespeichert:<br />
<ol><br />
<li>der Kommentartext, den Sie eingeben,</li><br />
<li>der Name, den Sie eingeben,</li><br />
<li>die E-Mail-Adresse, die Sie eingeben,</li><br />
<li>die Web-Seite, die Sie eingeben.</li><br />
<li>die IP-Adresse, des Computers, DSL-.Router oder des Proxy-Servers über den Sie den Kommentar abschicken.</li><br />
</ol><br />
Die Informationen 1 bis 4 müssen Sie im Kommentar-Formular eingeben. Alle weiteren Informationen steuert Ihr Browser bzw. dieser Server nach den Angaben Ihres Browsers und der internen Uhr bei.<br />
<br />
Die Informationen 1 bis 4 werden nicht auf Gültigkeit geprüft.<br />
<br />
Ihre E-Mail Adresse wird nicht angezeigt, wohl aber ein Gravatar, wenn Sie diesen Dienst mit der eingegebenen E-Mail-Adresse nutzen. Die E-Mailadresse dient der Prüfung der Plausibilität des Kommentars und ggf. der Kontaktaufnahme für Rückfragen oder Antworten, die ich nicht öffentlich geben möchte.<br />
<br />
===Cookies===<br />
<br />
Diese Seiten basiert auf WordPress. Cookies werden von den Programmen in einer Web-Seite (z.B. mit JavaScript) erzeugt und verwendet. Bei Cookies handelt es sich um Informationen, die als Text auf Ihrem Rechner gespeichert werden. Cookies ermöglichen es Informationen auf Ihrem Rechner zwischenzuspeichern und beim nächsten Aufruf der Web-Seite wiederzuverwenden. Sie dienen dazu, das Internetangebot insgesamt nutzerfreundlicher und effektiver zu machen. Zum Beispiel können Sie dadurch in Web-Shops einkaufen, ohne sich anzumelden und einen Warenkorb mit mehr als einem Artikel befüllen.<br />
<br />
Welche Cookies gesetzt sind, können Sie sich im Browser anschauen. In Firefox z.-B. unter den Seiteninformationen (View Page Info - Security - Cookies). In der Regel löscht der Browser die Cokkies nach einem festgelegten Ablaufdatum.<br />
<br />
Cookies können keine Programme ausführen oder Viren auf Ihren Computer übertragen.<br />
<br />
Wenn Sie einen Kommentar auf meiner Website schreiben, willigen Sie ein, Ihren Namen, E-Mail-Adresse und Webside in Cookies zu speichern. Dies ist eine Komfortfunktion, damit Sie bei einem weiteren Kommentar diese Daten nicht erneut eingeben müssen. Diese Cookies werden ein Jahr lang gespeichert.<br />
<br />
Falls Sie ein Konto haben und sich auf meiner Website anmelden, wird ein temporäres Cookie gesetzt, um festzustellen, ob Ihr Browser Cookies akzeptiert. Dieses Cookie enthält keine personenbezogenen Daten und wird verworfen, wenn Sie Ihren Browser schließt.<br />
<br />
Wenn Sie sich anmelden, werden einige Cookies eingerichten, um Ihre Anmeldeinformationen und Anzeigeoptionen zu speichern. Anmelde-Cookies verfallen nach zwei Tagen und Cookies für die Anzeigeoptionen nach einem Jahr. Falls Sie bei der Anmeldung „Angemeldet bleiben“ auswählen, wird Ihre Anmeldung zwei Wochen lang aufrechterhalten. Mit der Abmeldung aus Ihrem Konto werden die Anmelde-Cookies gelöscht.<br />
<br />
Wenn Sie einen Artikel bearbeiten oder veröffentlichen, wird ein zusätzlicher Cookie in Ihrem Browser gespeichert. Dieser Cookie verweist nur auf die Beitrags-ID des Artikels, den Sie gerade bearbeitet haben. Der Cookie verfällt nach einem Tag.<br />
===Session-Id===<br />
Web-Server erlauben grundsätzlich keine Sitzungen (Sessions). Eine Web-Seite wird abgerufen und ausgeliefert. Damit hat der Web-Server seine Aufgabe erledigt. D.h. jede weitere Anfrage an eine Web-Seite ist für den Web-Server eine jungfräuliche Anfrage. Dies würde bedeutet, dass Sie keine Artikel in einen Warenkorb legen und sich nicht bei einer Web-Seite anmelden könnten. Eine Sitzung muss daher durch die Anwendung auf dem Server "simuliert" werden.<br />
<br />
WikiMedia bettet dazu eine eindeutige [https://de.wikipedia.org/wiki/Sitzungsbezeichner Session-Id], auch Session Cookie oder fälschlich Server Side Cookie, genannt bei Ihrem ersten Aufruf dieser Web-Seite ein. Diese Information wird von Ihrem Browser mit jedem Aufruf an den Web-Server übertragen und natürlich auch auf dem Server gespeichert, um eine "Sitzung" zu simulieren. Die Gültigkeitsdauer dieser Cookies ist begrenzt. Nach Ablauf der Gültigkeitsdauer sollten Diese Session-Id automatisch gelöscht werden. Weitere Informationen gerne auf Anfrage.<br />
<br />
Achtung: Die Übertragung der Session-Id über unverschlüsselte Verbindungen ermöglicht unter bestimmten Bedingungen Dritten eine Sitzung zu übernehmen.<br />
<br />
==Haftungsausschluss== <br />
Die Inhalte dieses Webprojektes wurden sorgfältig geprüft und nach bestem Wissen erstellt. Aber für die hier dargebotenen Informationen wird kein Anspruch auf Vollständigkeit, Aktualität, Qualität und Richtigkeit erhoben. Es kann keine Verantwortung für Schäden übernommen werden, die durch das Vertrauen auf die Inhalte dieser Website oder deren Gebrauch entstehen.<br />
<br />
==Schutzrechtsverletzung== <br />
Falls Sie vermuten, dass von dieser Website aus eines Ihrer Schutzrechte verletzt wird, teilen Sie dies bitte umgehend per elektronischer Post mit, damit zügig Abhilfe geschafft werden kann.</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=UMTS&diff=271UMTS2018-06-24T18:42:51Z<p>Thomas: /* Schritt 3.2: USB-3G-Dongle von Medion (S4222) mit gomgt einrichten */ Tunneldigger und UMTS</p>
<hr />
<div>Dieser Artikel beschreibt wie ein Freifunkrouter mit einem UMTS-Stick (USB-3G-Dongle) oder einem Smartphone mit USB-Tethering zu einem mobilen Hotspot wird. Einige Modelle (z.B. TP-LINK TL-WR841 V7, V10, WR1043ND oder MR3020) lassen sich mit einer Powerbank (5 Volt) oder der Autobatterie autark vom 220V Netz wirklich mobil betreiben.<br />
<br />
Getestet mit: TP-LINK TL-WR1043 v2 und v3, TP-LINK TL-MR3020 v1.9 und MEDION Surfstick S4222 mit FONIC Prepaid Karte.<br />
<br />
== Mobiler Router mit UMTS ==<br />
<br />
Für einen Freifunkrouter, der über einen UMTS-Stick ans Internet angebunden werden soll, sollte das Image mit USB Unterstützung verwendet werden. Trotz der USB Unterstützung sind folgende Schritte notwendig, um den UMTS-Stick zum Laufen zu bringen. (Es werden auch die Module aufgeführt, die ohne USB-Unterstützung bei der Erstellung der FF-Firmware benötigt werden.)<br />
<br />
== Voraussetzungen ==<br />
<br />
Für die Installation eines UMTS-Stick (weitere Hinweise unter [[USB-Support]]) sind folgende Voraussetzungen zu erfüllen:<br />
<br />
* Der Router benötigt einen USB-Port.<br />
* Während der Softwareinstallation muss der Router über den WAN-Port aus Internet angeschlossen sein.<br />
* In ''/etc/resolv.conf'' muss ein erreichbarer Nameserver (z.B. 8.8.8.8) eingetragen werden, damit die OpenWrt Pakete gefunden werden. <br />
<br />
Als Nameserver nutze ich meinen lokalen Router.<br />
<br />
Beispile: /etc/resolv,conf<br />
<pre><br />
search lan<br />
nameserver 192.168.20.1<br />
nameserver 127.0.0.1<br />
</pre><br />
<br />
== Schritt 1a: Installation der Software (Teil 1) == <br />
<br />
Ab Gluon v2017.x haben die Router bei Freifunk Rheinbach USN_Support an Bord, wenn sie einen USB-Port haben. Ausnahmen bestätigen die Regel: Der TP-Link TL-WR842N(D) läuft mit USB-Support instabil.<br />
<br />
Gluon verwendet einen eigenen, modifizierten Kernel. Daher müssen Kernel-Module für diesen Kernel kompiliert werden. Dies geschieht bei der Generierung der Firmware. Die Module befinden sich im Ordner ''/output/modules''. Für die Installation der richtigen Module sollte in der Datei ''/etc/opkg/customfeed.conf'' der Pfad zu den Modulen eingetragen werden, die mit der Firmware generiert wurden. Für meine Zwecke habe ich die Pakete auf einem Router mit USB-Stick geladen und den Ordner unter der Statusseite als ''/download'' abgelegt. Hier das Beispiel für mein Image vom 05.10.2016:<br />
<br />
<pre><br />
# add your custom package feeds here<br />
#<br />
# src/gz example_feed_name http://www.example.com/path/to/files<br />
src/gz gluon http://[fda0:747e:ab29:2241:16cc:20ff:fecd:15bc]/download/modules/gluon-su-rhb-s2016.2-usb-20161005/ar71xx/generic <br />
</pre><br />
<br />
Als erstes müssen die Paketlisten aufdatiert und die Pakete installiert werden.<br />
<br />
<pre><br />
opkg update<br />
opkg install \<br />
kmod-usb-core \<br />
kmod-usb2 \<br />
libusb-1.0 \<br />
usb-modeswitch \<br />
usbreset<br />
</pre><br />
<br />
Anschließend soll der Router neu gestartet werden. (Der Sinn leuchtet mir nicht ganz ein.)<br />
<br />
reboot ; exit<br />
<br />
Nach einem Reboot muss natürlich die ''/etc/resolv.conf'' wieder angepasst werden, wenn weitere Software installiert werden soll.<br />
<br />
== Schritt 1b. Softwareinstallation (Teil 2) ==<br />
<br />
Die Installation der weiteren Software kann nicht schaden und wird - nach anderen Beschreibungen - für ältere USB-Dongle benötigt.<br />
<br />
<pre><br />
opkg update<br />
opkg install \<br />
chat \<br />
comgt \<br />
kmod-ppp \<br />
kmod-pppoe \<br />
kmod-usb-serial \<br />
kmod-usb-serial-option \<br />
kmod-usb-serial-\<br />
wwan \<br />
ppp \<br />
ppp-mod-pppoe<br />
</pre><br />
<br />
Der Speicher des TP-LINK TL-MR3020 reicht für die obige Lösung leider nicht aus.<br />
<br />
Alternativ kann ''rdnis'' genutzt werden, was aber nach verschiedenen Berichten bei älteren 3G-Dongles ggf. nicht funktioniert.<br />
<br />
<pre><br />
opkg undate<br />
opkg install \<br />
kmod-nls-base \<br />
kmod-usb-core \<br />
kmod-mii \<br />
kmod-usb-net \<br />
kmod-usb-net-cdc-ether \<br />
kmod-usb-net-rndis \<br />
kmod-usb-uhci <br />
</pre><br />
<br />
(Diese Pakete passen auf einen TP-LINK MR3020. Sie reichen aber nicht aus, um einen Medion UMTS-Stick damit anzusteuern. Hier funktioniert nur ein USB-Tethering über ein Mobiltelefon.) <br />
<br />
Diese Lösung habe ich mit dem Medion Stick noch nicht getestet. In welchem Umfang neuere Sticks die erste Lösung nicht mehr unterstützen, weiß ich nicht.<br />
<br />
== Schritt 2: Stick prüfen ==<br />
<br />
Mit den drei folgenden Befehlen wird geprüft, ob der UMTS-Dongle erkannt wird.<br />
<br />
<pre><br />
usbmode -l<br />
ls /dev/ttyUSB*<br />
gcom info -d /dev/ttyUSB0<br />
</pre><br />
<br />
== Schritt 3: USB-Schnittstellen einrichten ==<br />
<br />
Für die Einrichtung der USB-Schnittstelle gibt es verschiedene Möglichkeiten. Wird der USB-3G-Dongle von Medion genutzt, funktioniert die Einrichtung mit ''gomgt''. Soll die UMTS-Verbindung über ein USB-Tethering erfolgen, dann muss rdnis verwendet werden.<br />
<br />
Im Gegensatz zu anderen Installationsanweisungen, die die WAN Schnittstelle umbenennen und durch die USB-Schnittstelle erstetzen, wird in dieser Lösung eine zusätzliche WAN-Schnittstellen (theter und umts) definiert. Dies hat den Vorteil, dass der Router auch über den WAN-Port funktioniert.<br />
<br />
=== Schritt 3.1: TP-LINK TL-MR3020 mit rdnis für USB-Tethering einrichten ===<br />
<br />
Beim TP-LINK TL-MR3020 ist der Overlay-Speicher leider zu klein, um eine UMTS Unterstützung nachträglich zu installieren. Um Platz zu schaffen, muss auf das Paket ''gluon-status-page'' verzichtet werden. Dann kann eine Firmware für den TP-LINK TL-MR3020 gebaut werden, die den Router über ein Mobiltelefon mit USB-Tethering mit den [[fastd]] Servern verbindet. Für die Lösung mit einem USB-3G-Dongle reicht der Platz noch nicht. Mit dem TL-3020 kommt daher nur eine Minimallösung über USB-Tethering in Frage, die auch bei anderen Routern mit USB-Port möglich ist.<br />
<br />
<pre><br />
USB_PACKAGES_MR3020 := \<br />
kmod-nls-base \<br />
kmod-usb-core \<br />
kmod-mii \<br />
kmod-usb-net \<br />
kmod-usb-net-cdc-ether \<br />
kmod-usb-net-rndis \<br />
kmod-usb-uhci<br />
<br />
# basic support for USB stack<br />
USB_PACKAGES_BASIC := \<br />
kmod-usb-core \<br />
kmod-usb2<br />
<br />
GLUON_TLMR3020_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_MR3020)<br />
</pre><br />
<br />
Mit folgenden Befehlen wird die Schnittstelle aktiviert.<br />
<br />
<pre><br />
uci set network.tether='interface'<br />
uci set network.tether.ifname='usb0'<br />
uci set network.tether.auto='1'<br />
uci set network.tether.proto='dhcp'<br />
uci set network.tether.type='bridge'<br />
uci set network.tether.peerdns='0'<br />
uci set network.tether.device='/dev/ttyUSB0'<br />
uci commit<br />
</pre><br />
<br />
Die zusätzliche WAN Schnittstelle müssen noch in der Firewall eingerichtet werden.<br />
<br />
<pre><br />
uci add_list firewall.@zone[1].network='tether'<br />
uci commit firewall <br />
</pre><br />
<br />
Die obigen Ergänzungen der Netzwerkeinstellungen bleiben auch bei einer Aktualisierung der Firmware erhalten. (Außer man erzwingt ein Rücksetzen aller Einstellungen.) Dagegen müssen die folgenden Anpassungen bei jeder Aktualisierung der Firmware erneut vorgenommen werden.<br />
<br />
Wie bereits oben beschrieben müssen auch hier die Dateien <br />
* ''/etc/hotplug.d/iface/50-gluon-wan-dnsmasq'' und <br />
* ''/lib/gluon/wan-dnsmasq/update.lua''<br />
angepasst werden.<br />
<br />
In der Datei ''50-gluon-wan-dnsmasq'' muss das neue Interface ''tether'' in die Liste eingefügt werden ...<br />
<br />
<pre><br />
if [ "$INTERFACE" = 'wan' -o "$INTERFACE" = 'wan6' -o "$INTERFACE" = 'tether' ]; then<br />
/lib/gluon/wan-dnsmasq/update.lua<br />
fi<br />
</pre><br />
<br />
und in der Datei ''update.lua'' wird der Aufruf ''pcall(s,'tether')'' eingefügt.<br />
<br />
<pre><br />
...<br />
else<br />
pcall(s,'wan6')<br />
pcall(s,'wan')<br />
pcall(s,'tether')<br />
end<br />
...<br />
</pre><br />
<br />
Durch diese Konfiguratioin werden zwei zusätlichen Netzwerkschnittstellen usb0 und br-tether erstellt.<br />
<br />
Getestet wurde diese Konfiguration mit einem Samsung Galaxy Note 4.<br />
<br />
==== Tunneldigger ====<br />
<br />
Wenn anstelle [[fastd]] [[Tunneldigger]] eingesetzt wird, muss die Tunneldigger Konfiguration geändert werden. Tunneldigger wird an die Netzwerkschnittstelle [[br-wan]] gebunden. Diese Bindung muss auif br-tether geändert werden.<br />
<br />
<pre><br />
uci set tunneldigger.mesh_vpn.bind_interface='br-tether'<br />
uci commit tunnlerdigger<br />
/etc/init.d/tunneldigger restart<br />
</pre><br />
<br />
=== Schritt 3.2: USB-3G-Dongle von Medion (S4222) mit gomgt einrichten ===<br />
<br />
Bei Routern mit mehr Speicher als der MR3020 (z.B. WR1043nd v1 bis v4, v5 hat kein USB mehr) kann ein vollständiger USB-Support installiert werden. Mit einem USB-3G-Dongle kann eine Verbindung ins Internet aufgebaut werden, über die ''fastd'' oder ''Tunneldigger'' einen Tunnel zu den Supernodes im Internet aufbauen können. <br />
<br />
Dazu definieren wir eine weitere Netzwerkschnittstelle, die ich 'umts' genannt habe. Viele Kochrezepte empfehlen die Schnittstelle ''wan'' zu benennen und die alte Schnittstelle in ''wan2'' umzubenennen. Dies ist jedoch nicht notwendig. Der Router kann mit mehreren Schnittstellen gleichzeitig umgehen. Dies hat den Vorteil, dass der Router sowohl über den WAN-Port, als auch über einen UMTS-Stick angebunden werden kann. Eine gleichzeitige Verbindung mit beiden Schnittstellen ist möglich. Hier kann es jedoch passieren, dass die Verbindung über UMTS stattfindet, was sehr teuer werden kann. <br />
<br />
Dieses zusätzliche Interface ''umts'' mit folgendem Script auf dem Freifunkrouter als Netzwerkschnittstelle eingerichtet. Dabei ist &lt;xxxx&gt; durch die PIN der eingesetzten SIM-Karte zu ersetzen. Wenn alles richtig läuft, meldet sich die Schnittstelle als ''3g-umts''. Die Schnittstelle ''umts'' muss außerdem der Firewall in der Zone 1 bekannt gemacht werden. Dies geschieht am besten mittels ''uci'' Befehlen, die ich in einem Script ''umts'' zusammengefügt habe. <br />
<br />
(Die folgende Anpassung ist nicht in der Firmware enthalten.)<br />
<br />
<pre><br />
#!/bin/sh<br />
<br />
echo "Einrichten der Netzwerkschnittstelle für UMTS<br />
<br />
uci set network.umts=interface<br />
uci set network.umts.proto=3g<br />
uci set network.umts.peerdns=0<br />
uci set network.umts.ifname=umts0<br />
uci set network.umts.device=/dev/ttyUSB0<br />
uci set network.umts.apn=internet<br />
uci set network.umts.pincode=&lt;xxxx&gt;<br />
uci set network.umts.delay=90<br />
uci commit<br />
<br />
uci add_list firewall.@zone[1].network='umts'<br />
uci add_list firewall.@zone[1].network='tether'<br />
uci commit firewall<br />
</pre><br />
<br />
Anmerkung: Der Ursprüngliche Befehl "uci set firewall.@zone[1].network='umts tether wan wan6' ist zumindest ab Gluon 2017.1.x falsch.<br />
<br />
Für den DNS muss die Datei /var/gluon/wan-dnsmasq/resolv.conf geändert werden. Diese wird durch zwei Scripte erstellt. (In der Rheinbacher Firmware ab Gluon v2017.x sind die folgenden Anpassungen bereits drin.)<br />
<br />
Zusätzlich müssen zwei Dateien angepasst werden: /''etc/hotplug.d/iface/50-gluon-wan-dnsmasq'' und ''/lib/gluon/wan-dnsmasq/update.lua''<br />
<br />
In der Datei ''50-gluon-wan-dnsmasq'' muss das neue Interface ''umts'' in die Liste eingefügt werden ...<br />
<br />
<pre><br />
if [ "$INTERFACE" = 'wan' -o "$INTERFACE" = 'wan6' -o "$INTERFACE" = 'umts' -o "$INTERFACE" = tether']; then<br />
/lib/gluon/wan-dnsmasq/update.lua<br />
fi<br />
</pre><br />
<br />
und in der Datei ''update.lua'' wird der Aufruf ''pcall(s,'umts')'' eingefügt.<br />
<br />
<pre><br />
...<br />
else<br />
pcall(s,'wan6')<br />
pcall(s,'wan')<br />
pcall(s,'umts')<br />
end<br />
...<br />
</pre><br />
<br />
==== Tunneldigger ====<br />
<br />
Wenn anstelle [[fastd]] [[Tunneldigger]] eingesetzt wird, muss die Tunneldigger Konfiguration geändert werden. Tunneldigger ist normalerweise an die Netzwerkschnittstelle [[br-wan]] gebunden. Diese Bindung muss auf [[3g-umts]] geändert werden.<br />
<br />
Leider muss diese Umschaltung noch von HAnd ausgeführt werden.<br />
<br />
<pre><br />
uci set tunneldigger.mesh_vpn.bind_interface='3g-umts'<br />
uci commit tunnlerdigger<br />
/etc/init.d/tunneldigger restart<br />
</pre><br />
<br />
== Test ==<br />
<br />
TP-Link TL-WR1043ND mit USB-3G-Dongle. Hier wird die Schnittstelle 3g-umts bereitgestellt. (Die IP-Adresse 10.171.235.229 stallt vom Mobilfunkanbieter. GGf. wird es zu Konflikten kommen, wenn dieser Adressbereich vom Freifunknetz verwendet wird.<br />
<br />
<pre><br />
root@su-rhb-test-01:~# ifconfig 3g-umts<br />
3g-umts Link encap:Point-to-Point Protocol <br />
inet addr:10.171.235.229 P-t-P:10.64.64.64 Mask:255.255.255.255<br />
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1<br />
RX packets:9 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:615 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:3 <br />
RX bytes:98 (98.0 B) TX bytes:140590 (137.2 KiB)<br />
</pre><br />
<br />
<br />
TP-Link TL-MR3020 am Samsung Galaxy Note 4 mit USB-Tethering:<br />
<br />
<pre><br />
root@su-rhb-ff-ext-002:~# ifconfig usb0<br />
usb0 Link encap:Ethernet HWaddr 02:50:07:03:35:64 <br />
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<br />
RX packets:159014 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:66906 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:1000 <br />
RX bytes:60228689 (57.4 MiB) TX bytes:20634066 (19.6 MiB)<br />
root@su-rhb-ff-ext-002:~# ifconfig br-tether<br />
br-tether Link encap:Ethernet HWaddr 02:50:07:03:35:64 <br />
inet addr:192.168.42.85 Bcast:192.168.42.255 Mask:255.255.255.0<br />
inet6 addr: fe80::50:7ff:fe03:3564/64 Scope:Link<br />
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<br />
RX packets:163095 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:67936 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:0 <br />
RX bytes:61112941 (58.2 MiB) TX bytes:17979223 (17.1 MiB)<br />
</pre><br />
<br />
== Links ==<br />
<br />
[https://wiki.hacksaar.de/Freifunk:Mobiler_Hotspot#USB-3G-Dongle_mit_PPP_bei_Nutzung_von_comgt Freifunk:Mobiler Hotspot]<br />
<br />
[https://wiki.darmstadt.freifunk.net/Firmware_Modifikationen#Konfiguration_einer_3g_LTE_Verbindung_mit_einem_QMI_f.C3.A4higen_LTE_Stick 3G, LTE, mehrere WAN Verbindungen Konfigurieren, etc.]</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=UMTS&diff=270UMTS2018-06-24T18:31:31Z<p>Thomas: /* Test */</p>
<hr />
<div>Dieser Artikel beschreibt wie ein Freifunkrouter mit einem UMTS-Stick (USB-3G-Dongle) oder einem Smartphone mit USB-Tethering zu einem mobilen Hotspot wird. Einige Modelle (z.B. TP-LINK TL-WR841 V7, V10, WR1043ND oder MR3020) lassen sich mit einer Powerbank (5 Volt) oder der Autobatterie autark vom 220V Netz wirklich mobil betreiben.<br />
<br />
Getestet mit: TP-LINK TL-WR1043 v2 und v3, TP-LINK TL-MR3020 v1.9 und MEDION Surfstick S4222 mit FONIC Prepaid Karte.<br />
<br />
== Mobiler Router mit UMTS ==<br />
<br />
Für einen Freifunkrouter, der über einen UMTS-Stick ans Internet angebunden werden soll, sollte das Image mit USB Unterstützung verwendet werden. Trotz der USB Unterstützung sind folgende Schritte notwendig, um den UMTS-Stick zum Laufen zu bringen. (Es werden auch die Module aufgeführt, die ohne USB-Unterstützung bei der Erstellung der FF-Firmware benötigt werden.)<br />
<br />
== Voraussetzungen ==<br />
<br />
Für die Installation eines UMTS-Stick (weitere Hinweise unter [[USB-Support]]) sind folgende Voraussetzungen zu erfüllen:<br />
<br />
* Der Router benötigt einen USB-Port.<br />
* Während der Softwareinstallation muss der Router über den WAN-Port aus Internet angeschlossen sein.<br />
* In ''/etc/resolv.conf'' muss ein erreichbarer Nameserver (z.B. 8.8.8.8) eingetragen werden, damit die OpenWrt Pakete gefunden werden. <br />
<br />
Als Nameserver nutze ich meinen lokalen Router.<br />
<br />
Beispile: /etc/resolv,conf<br />
<pre><br />
search lan<br />
nameserver 192.168.20.1<br />
nameserver 127.0.0.1<br />
</pre><br />
<br />
== Schritt 1a: Installation der Software (Teil 1) == <br />
<br />
Ab Gluon v2017.x haben die Router bei Freifunk Rheinbach USN_Support an Bord, wenn sie einen USB-Port haben. Ausnahmen bestätigen die Regel: Der TP-Link TL-WR842N(D) läuft mit USB-Support instabil.<br />
<br />
Gluon verwendet einen eigenen, modifizierten Kernel. Daher müssen Kernel-Module für diesen Kernel kompiliert werden. Dies geschieht bei der Generierung der Firmware. Die Module befinden sich im Ordner ''/output/modules''. Für die Installation der richtigen Module sollte in der Datei ''/etc/opkg/customfeed.conf'' der Pfad zu den Modulen eingetragen werden, die mit der Firmware generiert wurden. Für meine Zwecke habe ich die Pakete auf einem Router mit USB-Stick geladen und den Ordner unter der Statusseite als ''/download'' abgelegt. Hier das Beispiel für mein Image vom 05.10.2016:<br />
<br />
<pre><br />
# add your custom package feeds here<br />
#<br />
# src/gz example_feed_name http://www.example.com/path/to/files<br />
src/gz gluon http://[fda0:747e:ab29:2241:16cc:20ff:fecd:15bc]/download/modules/gluon-su-rhb-s2016.2-usb-20161005/ar71xx/generic <br />
</pre><br />
<br />
Als erstes müssen die Paketlisten aufdatiert und die Pakete installiert werden.<br />
<br />
<pre><br />
opkg update<br />
opkg install \<br />
kmod-usb-core \<br />
kmod-usb2 \<br />
libusb-1.0 \<br />
usb-modeswitch \<br />
usbreset<br />
</pre><br />
<br />
Anschließend soll der Router neu gestartet werden. (Der Sinn leuchtet mir nicht ganz ein.)<br />
<br />
reboot ; exit<br />
<br />
Nach einem Reboot muss natürlich die ''/etc/resolv.conf'' wieder angepasst werden, wenn weitere Software installiert werden soll.<br />
<br />
== Schritt 1b. Softwareinstallation (Teil 2) ==<br />
<br />
Die Installation der weiteren Software kann nicht schaden und wird - nach anderen Beschreibungen - für ältere USB-Dongle benötigt.<br />
<br />
<pre><br />
opkg update<br />
opkg install \<br />
chat \<br />
comgt \<br />
kmod-ppp \<br />
kmod-pppoe \<br />
kmod-usb-serial \<br />
kmod-usb-serial-option \<br />
kmod-usb-serial-\<br />
wwan \<br />
ppp \<br />
ppp-mod-pppoe<br />
</pre><br />
<br />
Der Speicher des TP-LINK TL-MR3020 reicht für die obige Lösung leider nicht aus.<br />
<br />
Alternativ kann ''rdnis'' genutzt werden, was aber nach verschiedenen Berichten bei älteren 3G-Dongles ggf. nicht funktioniert.<br />
<br />
<pre><br />
opkg undate<br />
opkg install \<br />
kmod-nls-base \<br />
kmod-usb-core \<br />
kmod-mii \<br />
kmod-usb-net \<br />
kmod-usb-net-cdc-ether \<br />
kmod-usb-net-rndis \<br />
kmod-usb-uhci <br />
</pre><br />
<br />
(Diese Pakete passen auf einen TP-LINK MR3020. Sie reichen aber nicht aus, um einen Medion UMTS-Stick damit anzusteuern. Hier funktioniert nur ein USB-Tethering über ein Mobiltelefon.) <br />
<br />
Diese Lösung habe ich mit dem Medion Stick noch nicht getestet. In welchem Umfang neuere Sticks die erste Lösung nicht mehr unterstützen, weiß ich nicht.<br />
<br />
== Schritt 2: Stick prüfen ==<br />
<br />
Mit den drei folgenden Befehlen wird geprüft, ob der UMTS-Dongle erkannt wird.<br />
<br />
<pre><br />
usbmode -l<br />
ls /dev/ttyUSB*<br />
gcom info -d /dev/ttyUSB0<br />
</pre><br />
<br />
== Schritt 3: USB-Schnittstellen einrichten ==<br />
<br />
Für die Einrichtung der USB-Schnittstelle gibt es verschiedene Möglichkeiten. Wird der USB-3G-Dongle von Medion genutzt, funktioniert die Einrichtung mit ''gomgt''. Soll die UMTS-Verbindung über ein USB-Tethering erfolgen, dann muss rdnis verwendet werden.<br />
<br />
Im Gegensatz zu anderen Installationsanweisungen, die die WAN Schnittstelle umbenennen und durch die USB-Schnittstelle erstetzen, wird in dieser Lösung eine zusätzliche WAN-Schnittstellen (theter und umts) definiert. Dies hat den Vorteil, dass der Router auch über den WAN-Port funktioniert.<br />
<br />
=== Schritt 3.1: TP-LINK TL-MR3020 mit rdnis für USB-Tethering einrichten ===<br />
<br />
Beim TP-LINK TL-MR3020 ist der Overlay-Speicher leider zu klein, um eine UMTS Unterstützung nachträglich zu installieren. Um Platz zu schaffen, muss auf das Paket ''gluon-status-page'' verzichtet werden. Dann kann eine Firmware für den TP-LINK TL-MR3020 gebaut werden, die den Router über ein Mobiltelefon mit USB-Tethering mit den [[fastd]] Servern verbindet. Für die Lösung mit einem USB-3G-Dongle reicht der Platz noch nicht. Mit dem TL-3020 kommt daher nur eine Minimallösung über USB-Tethering in Frage, die auch bei anderen Routern mit USB-Port möglich ist.<br />
<br />
<pre><br />
USB_PACKAGES_MR3020 := \<br />
kmod-nls-base \<br />
kmod-usb-core \<br />
kmod-mii \<br />
kmod-usb-net \<br />
kmod-usb-net-cdc-ether \<br />
kmod-usb-net-rndis \<br />
kmod-usb-uhci<br />
<br />
# basic support for USB stack<br />
USB_PACKAGES_BASIC := \<br />
kmod-usb-core \<br />
kmod-usb2<br />
<br />
GLUON_TLMR3020_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_MR3020)<br />
</pre><br />
<br />
Mit folgenden Befehlen wird die Schnittstelle aktiviert.<br />
<br />
<pre><br />
uci set network.tether='interface'<br />
uci set network.tether.ifname='usb0'<br />
uci set network.tether.auto='1'<br />
uci set network.tether.proto='dhcp'<br />
uci set network.tether.type='bridge'<br />
uci set network.tether.peerdns='0'<br />
uci set network.tether.device='/dev/ttyUSB0'<br />
uci commit<br />
</pre><br />
<br />
Die zusätzliche WAN Schnittstelle müssen noch in der Firewall eingerichtet werden.<br />
<br />
<pre><br />
uci add_list firewall.@zone[1].network='tether'<br />
uci commit firewall <br />
</pre><br />
<br />
Die obigen Ergänzungen der Netzwerkeinstellungen bleiben auch bei einer Aktualisierung der Firmware erhalten. (Außer man erzwingt ein Rücksetzen aller Einstellungen.) Dagegen müssen die folgenden Anpassungen bei jeder Aktualisierung der Firmware erneut vorgenommen werden.<br />
<br />
Wie bereits oben beschrieben müssen auch hier die Dateien <br />
* ''/etc/hotplug.d/iface/50-gluon-wan-dnsmasq'' und <br />
* ''/lib/gluon/wan-dnsmasq/update.lua''<br />
angepasst werden.<br />
<br />
In der Datei ''50-gluon-wan-dnsmasq'' muss das neue Interface ''tether'' in die Liste eingefügt werden ...<br />
<br />
<pre><br />
if [ "$INTERFACE" = 'wan' -o "$INTERFACE" = 'wan6' -o "$INTERFACE" = 'tether' ]; then<br />
/lib/gluon/wan-dnsmasq/update.lua<br />
fi<br />
</pre><br />
<br />
und in der Datei ''update.lua'' wird der Aufruf ''pcall(s,'tether')'' eingefügt.<br />
<br />
<pre><br />
...<br />
else<br />
pcall(s,'wan6')<br />
pcall(s,'wan')<br />
pcall(s,'tether')<br />
end<br />
...<br />
</pre><br />
<br />
Durch diese Konfiguratioin werden zwei zusätlichen Netzwerkschnittstellen usb0 und br-tether erstellt.<br />
<br />
Getestet wurde diese Konfiguration mit einem Samsung Galaxy Note 4.<br />
<br />
==== Tunneldigger ====<br />
<br />
Wenn anstelle [[fastd]] [[Tunneldigger]] eingesetzt wird, muss die Tunneldigger Konfiguration geändert werden. Tunneldigger wird an die Netzwerkschnittstelle [[br-wan]] gebunden. Diese Bindung muss auif br-tether geändert werden.<br />
<br />
<pre><br />
uci set tunneldigger.mesh_vpn.bind_interface='br-tether'<br />
uci commit tunnlerdigger<br />
/etc/init.d/tunneldigger restart<br />
</pre><br />
<br />
=== Schritt 3.2: USB-3G-Dongle von Medion (S4222) mit gomgt einrichten ===<br />
<br />
Bei Routwern mit mehr Speicher als der MR3020 kann ein vollständiger USB-Support installiert werden. Mit einem USB-3G-Dongle kann eine zweite Verbindung ins Internet aufgebaut werden, über die ''fastd'' einen Tunnel zu den Supernodes im Internet aufbauen kann. Dazu definieren wir eine neue Netzwerkschnittstelle, die ich 'umts' genannt habe. Viele Kochrezepte empfehlen die Schnittstelle ''wan'' zu benennen und die alte Schnittstelle in ''wan2'' umzubenennen. Dies ist jedoch nicht notwendig. Der Router kann mit mehreren Schnittstellen gleichzeitig umgehen. Dies hat den Vorteil, dass der Router sowohl über den WAN-Port, als auch über einen UMTS-Stick angebunden werden kann. Auch eine gleichzeitige Verbindung mit beiden Schnittstellen ist möglich. Hier kann es jedoch passieren, dass die Verbindung über die UMTS stattfindet, was sehr teuer werden kann. <br />
<br />
dazu wird dieses Interface mit folgendem Script auf dem Freifunkrouter als Netzwerkschnittstelle eingerichtet. Dabei ist &lt;xxxx&gt; durch die PIN der SIM-Karte zu ersetzen. Wenn alles richtig läuft, meldet sich die Schnittstelle als ''3g-umts''. Die Schnittstelle ''umts'' muss außerdem der Firewall in der Zone 1 bekannt gemacht werden. Dies geschieht am besten mittels ''uci'' Befehlen, die ich in einem Script ''umts'' zusammengefügt habe. <br />
<br />
(Die folgende Anpassung ist noch nicht in der Firmware enthalten.)<br />
<br />
<pre><br />
#!/bin/sh<br />
<br />
echo "Einrichten der Netzwerkschnittstelle für UMTS<br />
<br />
uci set network.umts=interface<br />
uci set network.umts.proto=3g<br />
uci set network.umts.peerdns=0<br />
uci set network.umts.ifname=umts0<br />
uci set network.umts.device=/dev/ttyUSB0<br />
uci set network.umts.apn=internet<br />
uci set network.umts.pincode=&lt;xxxx&gt;<br />
uci set network.umts.delay=90<br />
uci commit<br />
<br />
uci add_list firewall.@zone[1].network='umts'<br />
uci commit firewall<br />
</pre><br />
<br />
Für den DNS muss die Datei /var/gluon/wan-dnsmasq/resolv.conf geändert werden. Diese wird durch zwei Scripte erstellt. (In der Firmware ab Gluon v2017.x sind die folgenden Anpassungen bereits drin.)<br />
<br />
Zusätzlich müssen zwei Dateien angepasst werden: /''etc/hotplug.d/iface/50-gluon-wan-dnsmasq'' und ''/lib/gluon/wan-dnsmasq/update.lua''<br />
<br />
In der Datei ''50-gluon-wan-dnsmasq'' muss das neue Interface ''umts'' in die Liste eingefügt werden ...<br />
<br />
<pre><br />
if [ "$INTERFACE" = 'wan' -o "$INTERFACE" = 'wan6' -o "$INTERFACE" = 'umts' ]; then<br />
/lib/gluon/wan-dnsmasq/update.lua<br />
fi<br />
</pre><br />
<br />
und in der Datei ''update.lua'' wird der Aufruf ''pcall(s,'umts')'' eingefügt.<br />
<br />
<pre><br />
...<br />
else<br />
pcall(s,'wan6')<br />
pcall(s,'wan')<br />
pcall(s,'umts')<br />
end<br />
...<br />
</pre><br />
<br />
==== Tunneldigger ====<br />
<br />
Wenn anstelle [[fastd]] [[Tunneldigger]] eingesetzt wird, muss die Tunneldigger Konfiguration geändert werden. Tunneldigger ist normalerweise an die Netzwerkschnittstelle [[br-wan]] gebunden. Diese Bindung muss auf [[3g-umts]] geändert werden.<br />
<br />
<pre><br />
uci set tunneldigger.mesh_vpn.bind_interface='3g-umts'<br />
uci commit tunnlerdigger<br />
/etc/init.d/tunneldigger restart<br />
</pre><br />
<br />
Ein ausreichend großer Router kann natürlich auch für beide Methoden konfiguriert werden.<br />
<br />
== Test ==<br />
<br />
TP-Link TL-WR1043ND mit USB-3G-Dongle. Hier wird die Schnittstelle 3g-umts bereitgestellt. (Die IP-Adresse 10.171.235.229 stallt vom Mobilfunkanbieter. GGf. wird es zu Konflikten kommen, wenn dieser Adressbereich vom Freifunknetz verwendet wird.<br />
<br />
<pre><br />
root@su-rhb-test-01:~# ifconfig 3g-umts<br />
3g-umts Link encap:Point-to-Point Protocol <br />
inet addr:10.171.235.229 P-t-P:10.64.64.64 Mask:255.255.255.255<br />
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1<br />
RX packets:9 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:615 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:3 <br />
RX bytes:98 (98.0 B) TX bytes:140590 (137.2 KiB)<br />
</pre><br />
<br />
<br />
TP-Link TL-MR3020 am Samsung Galaxy Note 4 mit USB-Tethering:<br />
<br />
<pre><br />
root@su-rhb-ff-ext-002:~# ifconfig usb0<br />
usb0 Link encap:Ethernet HWaddr 02:50:07:03:35:64 <br />
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<br />
RX packets:159014 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:66906 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:1000 <br />
RX bytes:60228689 (57.4 MiB) TX bytes:20634066 (19.6 MiB)<br />
root@su-rhb-ff-ext-002:~# ifconfig br-tether<br />
br-tether Link encap:Ethernet HWaddr 02:50:07:03:35:64 <br />
inet addr:192.168.42.85 Bcast:192.168.42.255 Mask:255.255.255.0<br />
inet6 addr: fe80::50:7ff:fe03:3564/64 Scope:Link<br />
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<br />
RX packets:163095 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:67936 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:0 <br />
RX bytes:61112941 (58.2 MiB) TX bytes:17979223 (17.1 MiB)<br />
</pre><br />
<br />
== Links ==<br />
<br />
[https://wiki.hacksaar.de/Freifunk:Mobiler_Hotspot#USB-3G-Dongle_mit_PPP_bei_Nutzung_von_comgt Freifunk:Mobiler Hotspot]<br />
<br />
[https://wiki.darmstadt.freifunk.net/Firmware_Modifikationen#Konfiguration_einer_3g_LTE_Verbindung_mit_einem_QMI_f.C3.A4higen_LTE_Stick 3G, LTE, mehrere WAN Verbindungen Konfigurieren, etc.]</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=UMTS&diff=269UMTS2018-06-24T18:30:58Z<p>Thomas: /* Schritt 3.2: USB-3G-Dongle von Medion (S4222) mit gomgt einrichten */ Tunneldigger</p>
<hr />
<div>Dieser Artikel beschreibt wie ein Freifunkrouter mit einem UMTS-Stick (USB-3G-Dongle) oder einem Smartphone mit USB-Tethering zu einem mobilen Hotspot wird. Einige Modelle (z.B. TP-LINK TL-WR841 V7, V10, WR1043ND oder MR3020) lassen sich mit einer Powerbank (5 Volt) oder der Autobatterie autark vom 220V Netz wirklich mobil betreiben.<br />
<br />
Getestet mit: TP-LINK TL-WR1043 v2 und v3, TP-LINK TL-MR3020 v1.9 und MEDION Surfstick S4222 mit FONIC Prepaid Karte.<br />
<br />
== Mobiler Router mit UMTS ==<br />
<br />
Für einen Freifunkrouter, der über einen UMTS-Stick ans Internet angebunden werden soll, sollte das Image mit USB Unterstützung verwendet werden. Trotz der USB Unterstützung sind folgende Schritte notwendig, um den UMTS-Stick zum Laufen zu bringen. (Es werden auch die Module aufgeführt, die ohne USB-Unterstützung bei der Erstellung der FF-Firmware benötigt werden.)<br />
<br />
== Voraussetzungen ==<br />
<br />
Für die Installation eines UMTS-Stick (weitere Hinweise unter [[USB-Support]]) sind folgende Voraussetzungen zu erfüllen:<br />
<br />
* Der Router benötigt einen USB-Port.<br />
* Während der Softwareinstallation muss der Router über den WAN-Port aus Internet angeschlossen sein.<br />
* In ''/etc/resolv.conf'' muss ein erreichbarer Nameserver (z.B. 8.8.8.8) eingetragen werden, damit die OpenWrt Pakete gefunden werden. <br />
<br />
Als Nameserver nutze ich meinen lokalen Router.<br />
<br />
Beispile: /etc/resolv,conf<br />
<pre><br />
search lan<br />
nameserver 192.168.20.1<br />
nameserver 127.0.0.1<br />
</pre><br />
<br />
== Schritt 1a: Installation der Software (Teil 1) == <br />
<br />
Ab Gluon v2017.x haben die Router bei Freifunk Rheinbach USN_Support an Bord, wenn sie einen USB-Port haben. Ausnahmen bestätigen die Regel: Der TP-Link TL-WR842N(D) läuft mit USB-Support instabil.<br />
<br />
Gluon verwendet einen eigenen, modifizierten Kernel. Daher müssen Kernel-Module für diesen Kernel kompiliert werden. Dies geschieht bei der Generierung der Firmware. Die Module befinden sich im Ordner ''/output/modules''. Für die Installation der richtigen Module sollte in der Datei ''/etc/opkg/customfeed.conf'' der Pfad zu den Modulen eingetragen werden, die mit der Firmware generiert wurden. Für meine Zwecke habe ich die Pakete auf einem Router mit USB-Stick geladen und den Ordner unter der Statusseite als ''/download'' abgelegt. Hier das Beispiel für mein Image vom 05.10.2016:<br />
<br />
<pre><br />
# add your custom package feeds here<br />
#<br />
# src/gz example_feed_name http://www.example.com/path/to/files<br />
src/gz gluon http://[fda0:747e:ab29:2241:16cc:20ff:fecd:15bc]/download/modules/gluon-su-rhb-s2016.2-usb-20161005/ar71xx/generic <br />
</pre><br />
<br />
Als erstes müssen die Paketlisten aufdatiert und die Pakete installiert werden.<br />
<br />
<pre><br />
opkg update<br />
opkg install \<br />
kmod-usb-core \<br />
kmod-usb2 \<br />
libusb-1.0 \<br />
usb-modeswitch \<br />
usbreset<br />
</pre><br />
<br />
Anschließend soll der Router neu gestartet werden. (Der Sinn leuchtet mir nicht ganz ein.)<br />
<br />
reboot ; exit<br />
<br />
Nach einem Reboot muss natürlich die ''/etc/resolv.conf'' wieder angepasst werden, wenn weitere Software installiert werden soll.<br />
<br />
== Schritt 1b. Softwareinstallation (Teil 2) ==<br />
<br />
Die Installation der weiteren Software kann nicht schaden und wird - nach anderen Beschreibungen - für ältere USB-Dongle benötigt.<br />
<br />
<pre><br />
opkg update<br />
opkg install \<br />
chat \<br />
comgt \<br />
kmod-ppp \<br />
kmod-pppoe \<br />
kmod-usb-serial \<br />
kmod-usb-serial-option \<br />
kmod-usb-serial-\<br />
wwan \<br />
ppp \<br />
ppp-mod-pppoe<br />
</pre><br />
<br />
Der Speicher des TP-LINK TL-MR3020 reicht für die obige Lösung leider nicht aus.<br />
<br />
Alternativ kann ''rdnis'' genutzt werden, was aber nach verschiedenen Berichten bei älteren 3G-Dongles ggf. nicht funktioniert.<br />
<br />
<pre><br />
opkg undate<br />
opkg install \<br />
kmod-nls-base \<br />
kmod-usb-core \<br />
kmod-mii \<br />
kmod-usb-net \<br />
kmod-usb-net-cdc-ether \<br />
kmod-usb-net-rndis \<br />
kmod-usb-uhci <br />
</pre><br />
<br />
(Diese Pakete passen auf einen TP-LINK MR3020. Sie reichen aber nicht aus, um einen Medion UMTS-Stick damit anzusteuern. Hier funktioniert nur ein USB-Tethering über ein Mobiltelefon.) <br />
<br />
Diese Lösung habe ich mit dem Medion Stick noch nicht getestet. In welchem Umfang neuere Sticks die erste Lösung nicht mehr unterstützen, weiß ich nicht.<br />
<br />
== Schritt 2: Stick prüfen ==<br />
<br />
Mit den drei folgenden Befehlen wird geprüft, ob der UMTS-Dongle erkannt wird.<br />
<br />
<pre><br />
usbmode -l<br />
ls /dev/ttyUSB*<br />
gcom info -d /dev/ttyUSB0<br />
</pre><br />
<br />
== Schritt 3: USB-Schnittstellen einrichten ==<br />
<br />
Für die Einrichtung der USB-Schnittstelle gibt es verschiedene Möglichkeiten. Wird der USB-3G-Dongle von Medion genutzt, funktioniert die Einrichtung mit ''gomgt''. Soll die UMTS-Verbindung über ein USB-Tethering erfolgen, dann muss rdnis verwendet werden.<br />
<br />
Im Gegensatz zu anderen Installationsanweisungen, die die WAN Schnittstelle umbenennen und durch die USB-Schnittstelle erstetzen, wird in dieser Lösung eine zusätzliche WAN-Schnittstellen (theter und umts) definiert. Dies hat den Vorteil, dass der Router auch über den WAN-Port funktioniert.<br />
<br />
=== Schritt 3.1: TP-LINK TL-MR3020 mit rdnis für USB-Tethering einrichten ===<br />
<br />
Beim TP-LINK TL-MR3020 ist der Overlay-Speicher leider zu klein, um eine UMTS Unterstützung nachträglich zu installieren. Um Platz zu schaffen, muss auf das Paket ''gluon-status-page'' verzichtet werden. Dann kann eine Firmware für den TP-LINK TL-MR3020 gebaut werden, die den Router über ein Mobiltelefon mit USB-Tethering mit den [[fastd]] Servern verbindet. Für die Lösung mit einem USB-3G-Dongle reicht der Platz noch nicht. Mit dem TL-3020 kommt daher nur eine Minimallösung über USB-Tethering in Frage, die auch bei anderen Routern mit USB-Port möglich ist.<br />
<br />
<pre><br />
USB_PACKAGES_MR3020 := \<br />
kmod-nls-base \<br />
kmod-usb-core \<br />
kmod-mii \<br />
kmod-usb-net \<br />
kmod-usb-net-cdc-ether \<br />
kmod-usb-net-rndis \<br />
kmod-usb-uhci<br />
<br />
# basic support for USB stack<br />
USB_PACKAGES_BASIC := \<br />
kmod-usb-core \<br />
kmod-usb2<br />
<br />
GLUON_TLMR3020_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_MR3020)<br />
</pre><br />
<br />
Mit folgenden Befehlen wird die Schnittstelle aktiviert.<br />
<br />
<pre><br />
uci set network.tether='interface'<br />
uci set network.tether.ifname='usb0'<br />
uci set network.tether.auto='1'<br />
uci set network.tether.proto='dhcp'<br />
uci set network.tether.type='bridge'<br />
uci set network.tether.peerdns='0'<br />
uci set network.tether.device='/dev/ttyUSB0'<br />
uci commit<br />
</pre><br />
<br />
Die zusätzliche WAN Schnittstelle müssen noch in der Firewall eingerichtet werden.<br />
<br />
<pre><br />
uci add_list firewall.@zone[1].network='tether'<br />
uci commit firewall <br />
</pre><br />
<br />
Die obigen Ergänzungen der Netzwerkeinstellungen bleiben auch bei einer Aktualisierung der Firmware erhalten. (Außer man erzwingt ein Rücksetzen aller Einstellungen.) Dagegen müssen die folgenden Anpassungen bei jeder Aktualisierung der Firmware erneut vorgenommen werden.<br />
<br />
Wie bereits oben beschrieben müssen auch hier die Dateien <br />
* ''/etc/hotplug.d/iface/50-gluon-wan-dnsmasq'' und <br />
* ''/lib/gluon/wan-dnsmasq/update.lua''<br />
angepasst werden.<br />
<br />
In der Datei ''50-gluon-wan-dnsmasq'' muss das neue Interface ''tether'' in die Liste eingefügt werden ...<br />
<br />
<pre><br />
if [ "$INTERFACE" = 'wan' -o "$INTERFACE" = 'wan6' -o "$INTERFACE" = 'tether' ]; then<br />
/lib/gluon/wan-dnsmasq/update.lua<br />
fi<br />
</pre><br />
<br />
und in der Datei ''update.lua'' wird der Aufruf ''pcall(s,'tether')'' eingefügt.<br />
<br />
<pre><br />
...<br />
else<br />
pcall(s,'wan6')<br />
pcall(s,'wan')<br />
pcall(s,'tether')<br />
end<br />
...<br />
</pre><br />
<br />
Durch diese Konfiguratioin werden zwei zusätlichen Netzwerkschnittstellen usb0 und br-tether erstellt.<br />
<br />
Getestet wurde diese Konfiguration mit einem Samsung Galaxy Note 4.<br />
<br />
==== Tunneldigger ====<br />
<br />
Wenn anstelle [[fastd]] [[Tunneldigger]] eingesetzt wird, muss die Tunneldigger Konfiguration geändert werden. Tunneldigger wird an die Netzwerkschnittstelle [[br-wan]] gebunden. Diese Bindung muss auif br-tether geändert werden.<br />
<br />
<pre><br />
uci set tunneldigger.mesh_vpn.bind_interface='br-tether'<br />
uci commit tunnlerdigger<br />
/etc/init.d/tunneldigger restart<br />
</pre><br />
<br />
=== Schritt 3.2: USB-3G-Dongle von Medion (S4222) mit gomgt einrichten ===<br />
<br />
Bei Routwern mit mehr Speicher als der MR3020 kann ein vollständiger USB-Support installiert werden. Mit einem USB-3G-Dongle kann eine zweite Verbindung ins Internet aufgebaut werden, über die ''fastd'' einen Tunnel zu den Supernodes im Internet aufbauen kann. Dazu definieren wir eine neue Netzwerkschnittstelle, die ich 'umts' genannt habe. Viele Kochrezepte empfehlen die Schnittstelle ''wan'' zu benennen und die alte Schnittstelle in ''wan2'' umzubenennen. Dies ist jedoch nicht notwendig. Der Router kann mit mehreren Schnittstellen gleichzeitig umgehen. Dies hat den Vorteil, dass der Router sowohl über den WAN-Port, als auch über einen UMTS-Stick angebunden werden kann. Auch eine gleichzeitige Verbindung mit beiden Schnittstellen ist möglich. Hier kann es jedoch passieren, dass die Verbindung über die UMTS stattfindet, was sehr teuer werden kann. <br />
<br />
dazu wird dieses Interface mit folgendem Script auf dem Freifunkrouter als Netzwerkschnittstelle eingerichtet. Dabei ist &lt;xxxx&gt; durch die PIN der SIM-Karte zu ersetzen. Wenn alles richtig läuft, meldet sich die Schnittstelle als ''3g-umts''. Die Schnittstelle ''umts'' muss außerdem der Firewall in der Zone 1 bekannt gemacht werden. Dies geschieht am besten mittels ''uci'' Befehlen, die ich in einem Script ''umts'' zusammengefügt habe. <br />
<br />
(Die folgende Anpassung ist noch nicht in der Firmware enthalten.)<br />
<br />
<pre><br />
#!/bin/sh<br />
<br />
echo "Einrichten der Netzwerkschnittstelle für UMTS<br />
<br />
uci set network.umts=interface<br />
uci set network.umts.proto=3g<br />
uci set network.umts.peerdns=0<br />
uci set network.umts.ifname=umts0<br />
uci set network.umts.device=/dev/ttyUSB0<br />
uci set network.umts.apn=internet<br />
uci set network.umts.pincode=&lt;xxxx&gt;<br />
uci set network.umts.delay=90<br />
uci commit<br />
<br />
uci add_list firewall.@zone[1].network='umts'<br />
uci commit firewall<br />
</pre><br />
<br />
Für den DNS muss die Datei /var/gluon/wan-dnsmasq/resolv.conf geändert werden. Diese wird durch zwei Scripte erstellt. (In der Firmware ab Gluon v2017.x sind die folgenden Anpassungen bereits drin.)<br />
<br />
Zusätzlich müssen zwei Dateien angepasst werden: /''etc/hotplug.d/iface/50-gluon-wan-dnsmasq'' und ''/lib/gluon/wan-dnsmasq/update.lua''<br />
<br />
In der Datei ''50-gluon-wan-dnsmasq'' muss das neue Interface ''umts'' in die Liste eingefügt werden ...<br />
<br />
<pre><br />
if [ "$INTERFACE" = 'wan' -o "$INTERFACE" = 'wan6' -o "$INTERFACE" = 'umts' ]; then<br />
/lib/gluon/wan-dnsmasq/update.lua<br />
fi<br />
</pre><br />
<br />
und in der Datei ''update.lua'' wird der Aufruf ''pcall(s,'umts')'' eingefügt.<br />
<br />
<pre><br />
...<br />
else<br />
pcall(s,'wan6')<br />
pcall(s,'wan')<br />
pcall(s,'umts')<br />
end<br />
...<br />
</pre><br />
<br />
==== Tunneldigger ====<br />
<br />
Wenn anstelle [[fastd]] [[Tunneldigger]] eingesetzt wird, muss die Tunneldigger Konfiguration geändert werden. Tunneldigger ist normalerweise an die Netzwerkschnittstelle [[br-wan]] gebunden. Diese Bindung muss auf [[3g-umts]] geändert werden.<br />
<br />
<pre><br />
uci set tunneldigger.mesh_vpn.bind_interface='3g-umts'<br />
uci commit tunnlerdigger<br />
/etc/init.d/tunneldigger restart<br />
</pre><br />
<br />
Ein ausreichend großer Router kann natürlich auch für beide Methoden konfiguriert werden.<br />
<br />
== Test ==<br />
<br />
TP-Link TL-WR1043ND mit USB-3G-Dongle. Hier wird die Schnittstelle 3g-umts bereitgestellt. (Die IP-Adresse 10.171.235.229 stallt vom Mobilfunkanbieter. GGf. wird es zu Konflikten kommen, wenn dieser Adressbereich auch vom Freifunknetz verwendet wird.<br />
<br />
<pre><br />
root@su-rhb-test-01:~# ifconfig 3g-umts<br />
3g-umts Link encap:Point-to-Point Protocol <br />
inet addr:10.171.235.229 P-t-P:10.64.64.64 Mask:255.255.255.255<br />
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1<br />
RX packets:9 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:615 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:3 <br />
RX bytes:98 (98.0 B) TX bytes:140590 (137.2 KiB)<br />
</pre><br />
<br />
<br />
TP-Link TL-MR3020 am Samsung Galaxy Note 4 mit USB-Tethering:<br />
<br />
<pre><br />
root@su-rhb-ff-ext-002:~# ifconfig usb0<br />
usb0 Link encap:Ethernet HWaddr 02:50:07:03:35:64 <br />
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<br />
RX packets:159014 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:66906 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:1000 <br />
RX bytes:60228689 (57.4 MiB) TX bytes:20634066 (19.6 MiB)<br />
root@su-rhb-ff-ext-002:~# ifconfig br-tether<br />
br-tether Link encap:Ethernet HWaddr 02:50:07:03:35:64 <br />
inet addr:192.168.42.85 Bcast:192.168.42.255 Mask:255.255.255.0<br />
inet6 addr: fe80::50:7ff:fe03:3564/64 Scope:Link<br />
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<br />
RX packets:163095 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:67936 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:0 <br />
RX bytes:61112941 (58.2 MiB) TX bytes:17979223 (17.1 MiB)<br />
</pre><br />
<br />
== Links ==<br />
<br />
[https://wiki.hacksaar.de/Freifunk:Mobiler_Hotspot#USB-3G-Dongle_mit_PPP_bei_Nutzung_von_comgt Freifunk:Mobiler Hotspot]<br />
<br />
[https://wiki.darmstadt.freifunk.net/Firmware_Modifikationen#Konfiguration_einer_3g_LTE_Verbindung_mit_einem_QMI_f.C3.A4higen_LTE_Stick 3G, LTE, mehrere WAN Verbindungen Konfigurieren, etc.]</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=UMTS&diff=268UMTS2018-06-24T00:48:55Z<p>Thomas: /* Schritt 3.1: TP-LINK TL-MR3020 mit rdnis für USB-Tethering einrichten */ Firewall: Hinzufügen der Schnittstelle angepasst.</p>
<hr />
<div>Dieser Artikel beschreibt wie ein Freifunkrouter mit einem UMTS-Stick (USB-3G-Dongle) oder einem Smartphone mit USB-Tethering zu einem mobilen Hotspot wird. Einige Modelle (z.B. TP-LINK TL-WR841 V7, V10, WR1043ND oder MR3020) lassen sich mit einer Powerbank (5 Volt) oder der Autobatterie autark vom 220V Netz wirklich mobil betreiben.<br />
<br />
Getestet mit: TP-LINK TL-WR1043 v2 und v3, TP-LINK TL-MR3020 v1.9 und MEDION Surfstick S4222 mit FONIC Prepaid Karte.<br />
<br />
== Mobiler Router mit UMTS ==<br />
<br />
Für einen Freifunkrouter, der über einen UMTS-Stick ans Internet angebunden werden soll, sollte das Image mit USB Unterstützung verwendet werden. Trotz der USB Unterstützung sind folgende Schritte notwendig, um den UMTS-Stick zum Laufen zu bringen. (Es werden auch die Module aufgeführt, die ohne USB-Unterstützung bei der Erstellung der FF-Firmware benötigt werden.)<br />
<br />
== Voraussetzungen ==<br />
<br />
Für die Installation eines UMTS-Stick (weitere Hinweise unter [[USB-Support]]) sind folgende Voraussetzungen zu erfüllen:<br />
<br />
* Der Router benötigt einen USB-Port.<br />
* Während der Softwareinstallation muss der Router über den WAN-Port aus Internet angeschlossen sein.<br />
* In ''/etc/resolv.conf'' muss ein erreichbarer Nameserver (z.B. 8.8.8.8) eingetragen werden, damit die OpenWrt Pakete gefunden werden. <br />
<br />
Als Nameserver nutze ich meinen lokalen Router.<br />
<br />
Beispile: /etc/resolv,conf<br />
<pre><br />
search lan<br />
nameserver 192.168.20.1<br />
nameserver 127.0.0.1<br />
</pre><br />
<br />
== Schritt 1a: Installation der Software (Teil 1) == <br />
<br />
Ab Gluon v2017.x haben die Router bei Freifunk Rheinbach USN_Support an Bord, wenn sie einen USB-Port haben. Ausnahmen bestätigen die Regel: Der TP-Link TL-WR842N(D) läuft mit USB-Support instabil.<br />
<br />
Gluon verwendet einen eigenen, modifizierten Kernel. Daher müssen Kernel-Module für diesen Kernel kompiliert werden. Dies geschieht bei der Generierung der Firmware. Die Module befinden sich im Ordner ''/output/modules''. Für die Installation der richtigen Module sollte in der Datei ''/etc/opkg/customfeed.conf'' der Pfad zu den Modulen eingetragen werden, die mit der Firmware generiert wurden. Für meine Zwecke habe ich die Pakete auf einem Router mit USB-Stick geladen und den Ordner unter der Statusseite als ''/download'' abgelegt. Hier das Beispiel für mein Image vom 05.10.2016:<br />
<br />
<pre><br />
# add your custom package feeds here<br />
#<br />
# src/gz example_feed_name http://www.example.com/path/to/files<br />
src/gz gluon http://[fda0:747e:ab29:2241:16cc:20ff:fecd:15bc]/download/modules/gluon-su-rhb-s2016.2-usb-20161005/ar71xx/generic <br />
</pre><br />
<br />
Als erstes müssen die Paketlisten aufdatiert und die Pakete installiert werden.<br />
<br />
<pre><br />
opkg update<br />
opkg install \<br />
kmod-usb-core \<br />
kmod-usb2 \<br />
libusb-1.0 \<br />
usb-modeswitch \<br />
usbreset<br />
</pre><br />
<br />
Anschließend soll der Router neu gestartet werden. (Der Sinn leuchtet mir nicht ganz ein.)<br />
<br />
reboot ; exit<br />
<br />
Nach einem Reboot muss natürlich die ''/etc/resolv.conf'' wieder angepasst werden, wenn weitere Software installiert werden soll.<br />
<br />
== Schritt 1b. Softwareinstallation (Teil 2) ==<br />
<br />
Die Installation der weiteren Software kann nicht schaden und wird - nach anderen Beschreibungen - für ältere USB-Dongle benötigt.<br />
<br />
<pre><br />
opkg update<br />
opkg install \<br />
chat \<br />
comgt \<br />
kmod-ppp \<br />
kmod-pppoe \<br />
kmod-usb-serial \<br />
kmod-usb-serial-option \<br />
kmod-usb-serial-\<br />
wwan \<br />
ppp \<br />
ppp-mod-pppoe<br />
</pre><br />
<br />
Der Speicher des TP-LINK TL-MR3020 reicht für die obige Lösung leider nicht aus.<br />
<br />
Alternativ kann ''rdnis'' genutzt werden, was aber nach verschiedenen Berichten bei älteren 3G-Dongles ggf. nicht funktioniert.<br />
<br />
<pre><br />
opkg undate<br />
opkg install \<br />
kmod-nls-base \<br />
kmod-usb-core \<br />
kmod-mii \<br />
kmod-usb-net \<br />
kmod-usb-net-cdc-ether \<br />
kmod-usb-net-rndis \<br />
kmod-usb-uhci <br />
</pre><br />
<br />
(Diese Pakete passen auf einen TP-LINK MR3020. Sie reichen aber nicht aus, um einen Medion UMTS-Stick damit anzusteuern. Hier funktioniert nur ein USB-Tethering über ein Mobiltelefon.) <br />
<br />
Diese Lösung habe ich mit dem Medion Stick noch nicht getestet. In welchem Umfang neuere Sticks die erste Lösung nicht mehr unterstützen, weiß ich nicht.<br />
<br />
== Schritt 2: Stick prüfen ==<br />
<br />
Mit den drei folgenden Befehlen wird geprüft, ob der UMTS-Dongle erkannt wird.<br />
<br />
<pre><br />
usbmode -l<br />
ls /dev/ttyUSB*<br />
gcom info -d /dev/ttyUSB0<br />
</pre><br />
<br />
== Schritt 3: USB-Schnittstellen einrichten ==<br />
<br />
Für die Einrichtung der USB-Schnittstelle gibt es verschiedene Möglichkeiten. Wird der USB-3G-Dongle von Medion genutzt, funktioniert die Einrichtung mit ''gomgt''. Soll die UMTS-Verbindung über ein USB-Tethering erfolgen, dann muss rdnis verwendet werden.<br />
<br />
Im Gegensatz zu anderen Installationsanweisungen, die die WAN Schnittstelle umbenennen und durch die USB-Schnittstelle erstetzen, wird in dieser Lösung eine zusätzliche WAN-Schnittstellen (theter und umts) definiert. Dies hat den Vorteil, dass der Router auch über den WAN-Port funktioniert.<br />
<br />
=== Schritt 3.1: TP-LINK TL-MR3020 mit rdnis für USB-Tethering einrichten ===<br />
<br />
Beim TP-LINK TL-MR3020 ist der Overlay-Speicher leider zu klein, um eine UMTS Unterstützung nachträglich zu installieren. Um Platz zu schaffen, muss auf das Paket ''gluon-status-page'' verzichtet werden. Dann kann eine Firmware für den TP-LINK TL-MR3020 gebaut werden, die den Router über ein Mobiltelefon mit USB-Tethering mit den [[fastd]] Servern verbindet. Für die Lösung mit einem USB-3G-Dongle reicht der Platz noch nicht. Mit dem TL-3020 kommt daher nur eine Minimallösung über USB-Tethering in Frage, die auch bei anderen Routern mit USB-Port möglich ist.<br />
<br />
<pre><br />
USB_PACKAGES_MR3020 := \<br />
kmod-nls-base \<br />
kmod-usb-core \<br />
kmod-mii \<br />
kmod-usb-net \<br />
kmod-usb-net-cdc-ether \<br />
kmod-usb-net-rndis \<br />
kmod-usb-uhci<br />
<br />
# basic support for USB stack<br />
USB_PACKAGES_BASIC := \<br />
kmod-usb-core \<br />
kmod-usb2<br />
<br />
GLUON_TLMR3020_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_MR3020)<br />
</pre><br />
<br />
Mit folgenden Befehlen wird die Schnittstelle aktiviert.<br />
<br />
<pre><br />
uci set network.tether='interface'<br />
uci set network.tether.ifname='usb0'<br />
uci set network.tether.auto='1'<br />
uci set network.tether.proto='dhcp'<br />
uci set network.tether.type='bridge'<br />
uci set network.tether.peerdns='0'<br />
uci set network.tether.device='/dev/ttyUSB0'<br />
uci commit<br />
</pre><br />
<br />
Die zusätzliche WAN Schnittstelle müssen noch in der Firewall eingerichtet werden.<br />
<br />
<pre><br />
uci add_list firewall.@zone[1].network='tether'<br />
uci commit firewall <br />
</pre><br />
<br />
Die obigen Ergänzungen der Netzwerkeinstellungen bleiben auch bei einer Aktualisierung der Firmware erhalten. (Außer man erzwingt ein Rücksetzen aller Einstellungen.) Dagegen müssen die folgenden Anpassungen bei jeder Aktualisierung der Firmware erneut vorgenommen werden.<br />
<br />
Wie bereits oben beschrieben müssen auch hier die Dateien <br />
* ''/etc/hotplug.d/iface/50-gluon-wan-dnsmasq'' und <br />
* ''/lib/gluon/wan-dnsmasq/update.lua''<br />
angepasst werden.<br />
<br />
In der Datei ''50-gluon-wan-dnsmasq'' muss das neue Interface ''tether'' in die Liste eingefügt werden ...<br />
<br />
<pre><br />
if [ "$INTERFACE" = 'wan' -o "$INTERFACE" = 'wan6' -o "$INTERFACE" = 'tether' ]; then<br />
/lib/gluon/wan-dnsmasq/update.lua<br />
fi<br />
</pre><br />
<br />
und in der Datei ''update.lua'' wird der Aufruf ''pcall(s,'tether')'' eingefügt.<br />
<br />
<pre><br />
...<br />
else<br />
pcall(s,'wan6')<br />
pcall(s,'wan')<br />
pcall(s,'tether')<br />
end<br />
...<br />
</pre><br />
<br />
Durch diese Konfiguratioin werden zwei zusätlichen Netzwerkschnittstellen usb0 und br-tether erstellt.<br />
<br />
Getestet wurde diese Konfiguration mit einem Samsung Galaxy Note 4.<br />
<br />
==== Tunneldigger ====<br />
<br />
Wenn anstelle [[fastd]] [[Tunneldigger]] eingesetzt wird, muss die Tunneldigger Konfiguration geändert werden. Tunneldigger wird an die Netzwerkschnittstelle [[br-wan]] gebunden. Diese Bindung muss auif br-tether geändert werden.<br />
<br />
<pre><br />
uci set tunneldigger.mesh_vpn.bind_interface='br-tether'<br />
uci commit tunnlerdigger<br />
/etc/init.d/tunneldigger restart<br />
</pre><br />
<br />
=== Schritt 3.2: USB-3G-Dongle von Medion (S4222) mit gomgt einrichten ===<br />
<br />
Bei Routwern mit mehr Speicher als der MR3020 kann ein vollständiger USB-Support installiert werden. Mit einem USB-3G-Dongle kann eine zweite Verbindung ins Internet aufgebaut werden, über die ''fastd'' einen Tunnel zu den Supernodes im Internet aufbauen kann. Dazu definieren wir eine neue Netzwerkschnittstelle, die ich 'umts' genannt habe. Viele Kochrezepte empfehlen die Schnittstelle ''wan'' zu benennen und die alte Schnittstelle in ''wan2'' umzubenennen. Dies ist jedoch nicht notwendig. Der Router kann mit mehreren Schnittstellen gleichzeitig umgehen. Dies hat den Vorteil, dass der Router sowohl über den WAN-Port, als auch über einen UMTS-Stick angebunden werden kann. Auch eine gleichzeitige Verbindung mit beiden Schnittstellen ist möglich. Hier kann es jedoch passieren, dass die Verbindung über die UMTS stattfindet, was sehr teuer werden kann. <br />
<br />
dazu wird dieses Interface mit folgendem Script auf dem Freifunkrouter als Netzwerkschnittstelle eingerichtet. Dabei ist &lt;xxxx&gt; durch die PIN der SIM-Karte zu ersetzen. Wenn alles richtig läuft, meldet sich die Schnittstelle als ''3g-umts''. Die Schnittstelle ''umts'' muss außerdem der Firewall in der Zone 1 bekannt gemacht werden. Dies geschieht am besten mittels ''uci'' Befehlen, die ich in einem Script ''umts'' zusammengefügt habe. <br />
<br />
(Die folgende Anpassung ist noch nicht in der Firmware enthalten.)<br />
<br />
<pre><br />
#!/bin/sh<br />
<br />
echo "Einrichten der Netzwerkschnittstelle für UMTS<br />
<br />
uci set network.umts=interface<br />
uci set network.umts.proto=3g<br />
uci set network.umts.peerdns=0<br />
uci set network.umts.ifname=umts0<br />
uci set network.umts.device=/dev/ttyUSB0<br />
uci set network.umts.apn=internet<br />
uci set network.umts.pincode=&lt;xxxx&gt;<br />
uci set network.umts.delay=90<br />
uci commit<br />
<br />
uci add_list firewall.@zone[1].network='umts'<br />
uci commit firewall<br />
</pre><br />
<br />
Für den DNS muss die Datei /var/gluon/wan-dnsmasq/resolv.conf geändert werden. Diese wird durch zwei Scripte erstellt. (In der Firmware ab Gluon v2017.x sind die folgenden Anpassungen bereits drin.)<br />
<br />
Zusätzlich müssen zwei Dateien angepasst werden: /''etc/hotplug.d/iface/50-gluon-wan-dnsmasq'' und ''/lib/gluon/wan-dnsmasq/update.lua''<br />
<br />
In der Datei ''50-gluon-wan-dnsmasq'' muss das neue Interface ''umts'' in die Liste eingefügt werden ...<br />
<br />
<pre><br />
if [ "$INTERFACE" = 'wan' -o "$INTERFACE" = 'wan6' -o "$INTERFACE" = 'umts' ]; then<br />
/lib/gluon/wan-dnsmasq/update.lua<br />
fi<br />
</pre><br />
<br />
und in der Datei ''update.lua'' wird der Aufruf ''pcall(s,'umts')'' eingefügt.<br />
<br />
<pre><br />
...<br />
else<br />
pcall(s,'wan6')<br />
pcall(s,'wan')<br />
pcall(s,'umts')<br />
end<br />
...<br />
</pre><br />
<br />
Ein ausreichend großer Router kann natürlich auch für beide Methoden konfiguriert werden.<br />
<br />
== Test ==<br />
<br />
TP-Link TL-WR1043ND mit USB-3G-Dongle. Hier wird die Schnittstelle 3g-umts bereitgestellt. (Die IP-Adresse 10.171.235.229 stallt vom Mobilfunkanbieter. GGf. wird es zu Konflikten kommen, wenn dieser Adressbereich auch vom Freifunknetz verwendet wird.<br />
<br />
<pre><br />
root@su-rhb-test-01:~# ifconfig 3g-umts<br />
3g-umts Link encap:Point-to-Point Protocol <br />
inet addr:10.171.235.229 P-t-P:10.64.64.64 Mask:255.255.255.255<br />
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1<br />
RX packets:9 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:615 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:3 <br />
RX bytes:98 (98.0 B) TX bytes:140590 (137.2 KiB)<br />
</pre><br />
<br />
<br />
TP-Link TL-MR3020 am Samsung Galaxy Note 4 mit USB-Tethering:<br />
<br />
<pre><br />
root@su-rhb-ff-ext-002:~# ifconfig usb0<br />
usb0 Link encap:Ethernet HWaddr 02:50:07:03:35:64 <br />
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<br />
RX packets:159014 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:66906 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:1000 <br />
RX bytes:60228689 (57.4 MiB) TX bytes:20634066 (19.6 MiB)<br />
root@su-rhb-ff-ext-002:~# ifconfig br-tether<br />
br-tether Link encap:Ethernet HWaddr 02:50:07:03:35:64 <br />
inet addr:192.168.42.85 Bcast:192.168.42.255 Mask:255.255.255.0<br />
inet6 addr: fe80::50:7ff:fe03:3564/64 Scope:Link<br />
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<br />
RX packets:163095 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:67936 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:0 <br />
RX bytes:61112941 (58.2 MiB) TX bytes:17979223 (17.1 MiB)<br />
</pre><br />
<br />
== Links ==<br />
<br />
[https://wiki.hacksaar.de/Freifunk:Mobiler_Hotspot#USB-3G-Dongle_mit_PPP_bei_Nutzung_von_comgt Freifunk:Mobiler Hotspot]<br />
<br />
[https://wiki.darmstadt.freifunk.net/Firmware_Modifikationen#Konfiguration_einer_3g_LTE_Verbindung_mit_einem_QMI_f.C3.A4higen_LTE_Stick 3G, LTE, mehrere WAN Verbindungen Konfigurieren, etc.]</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=UMTS&diff=267UMTS2018-06-24T00:47:35Z<p>Thomas: /* Schritt 3.2: USB-3G-Dongle von Medion (S4222) mit gomgt einrichten */ Firewall: Hinzufügen der Schnittstelle korrigiert.</p>
<hr />
<div>Dieser Artikel beschreibt wie ein Freifunkrouter mit einem UMTS-Stick (USB-3G-Dongle) oder einem Smartphone mit USB-Tethering zu einem mobilen Hotspot wird. Einige Modelle (z.B. TP-LINK TL-WR841 V7, V10, WR1043ND oder MR3020) lassen sich mit einer Powerbank (5 Volt) oder der Autobatterie autark vom 220V Netz wirklich mobil betreiben.<br />
<br />
Getestet mit: TP-LINK TL-WR1043 v2 und v3, TP-LINK TL-MR3020 v1.9 und MEDION Surfstick S4222 mit FONIC Prepaid Karte.<br />
<br />
== Mobiler Router mit UMTS ==<br />
<br />
Für einen Freifunkrouter, der über einen UMTS-Stick ans Internet angebunden werden soll, sollte das Image mit USB Unterstützung verwendet werden. Trotz der USB Unterstützung sind folgende Schritte notwendig, um den UMTS-Stick zum Laufen zu bringen. (Es werden auch die Module aufgeführt, die ohne USB-Unterstützung bei der Erstellung der FF-Firmware benötigt werden.)<br />
<br />
== Voraussetzungen ==<br />
<br />
Für die Installation eines UMTS-Stick (weitere Hinweise unter [[USB-Support]]) sind folgende Voraussetzungen zu erfüllen:<br />
<br />
* Der Router benötigt einen USB-Port.<br />
* Während der Softwareinstallation muss der Router über den WAN-Port aus Internet angeschlossen sein.<br />
* In ''/etc/resolv.conf'' muss ein erreichbarer Nameserver (z.B. 8.8.8.8) eingetragen werden, damit die OpenWrt Pakete gefunden werden. <br />
<br />
Als Nameserver nutze ich meinen lokalen Router.<br />
<br />
Beispile: /etc/resolv,conf<br />
<pre><br />
search lan<br />
nameserver 192.168.20.1<br />
nameserver 127.0.0.1<br />
</pre><br />
<br />
== Schritt 1a: Installation der Software (Teil 1) == <br />
<br />
Ab Gluon v2017.x haben die Router bei Freifunk Rheinbach USN_Support an Bord, wenn sie einen USB-Port haben. Ausnahmen bestätigen die Regel: Der TP-Link TL-WR842N(D) läuft mit USB-Support instabil.<br />
<br />
Gluon verwendet einen eigenen, modifizierten Kernel. Daher müssen Kernel-Module für diesen Kernel kompiliert werden. Dies geschieht bei der Generierung der Firmware. Die Module befinden sich im Ordner ''/output/modules''. Für die Installation der richtigen Module sollte in der Datei ''/etc/opkg/customfeed.conf'' der Pfad zu den Modulen eingetragen werden, die mit der Firmware generiert wurden. Für meine Zwecke habe ich die Pakete auf einem Router mit USB-Stick geladen und den Ordner unter der Statusseite als ''/download'' abgelegt. Hier das Beispiel für mein Image vom 05.10.2016:<br />
<br />
<pre><br />
# add your custom package feeds here<br />
#<br />
# src/gz example_feed_name http://www.example.com/path/to/files<br />
src/gz gluon http://[fda0:747e:ab29:2241:16cc:20ff:fecd:15bc]/download/modules/gluon-su-rhb-s2016.2-usb-20161005/ar71xx/generic <br />
</pre><br />
<br />
Als erstes müssen die Paketlisten aufdatiert und die Pakete installiert werden.<br />
<br />
<pre><br />
opkg update<br />
opkg install \<br />
kmod-usb-core \<br />
kmod-usb2 \<br />
libusb-1.0 \<br />
usb-modeswitch \<br />
usbreset<br />
</pre><br />
<br />
Anschließend soll der Router neu gestartet werden. (Der Sinn leuchtet mir nicht ganz ein.)<br />
<br />
reboot ; exit<br />
<br />
Nach einem Reboot muss natürlich die ''/etc/resolv.conf'' wieder angepasst werden, wenn weitere Software installiert werden soll.<br />
<br />
== Schritt 1b. Softwareinstallation (Teil 2) ==<br />
<br />
Die Installation der weiteren Software kann nicht schaden und wird - nach anderen Beschreibungen - für ältere USB-Dongle benötigt.<br />
<br />
<pre><br />
opkg update<br />
opkg install \<br />
chat \<br />
comgt \<br />
kmod-ppp \<br />
kmod-pppoe \<br />
kmod-usb-serial \<br />
kmod-usb-serial-option \<br />
kmod-usb-serial-\<br />
wwan \<br />
ppp \<br />
ppp-mod-pppoe<br />
</pre><br />
<br />
Der Speicher des TP-LINK TL-MR3020 reicht für die obige Lösung leider nicht aus.<br />
<br />
Alternativ kann ''rdnis'' genutzt werden, was aber nach verschiedenen Berichten bei älteren 3G-Dongles ggf. nicht funktioniert.<br />
<br />
<pre><br />
opkg undate<br />
opkg install \<br />
kmod-nls-base \<br />
kmod-usb-core \<br />
kmod-mii \<br />
kmod-usb-net \<br />
kmod-usb-net-cdc-ether \<br />
kmod-usb-net-rndis \<br />
kmod-usb-uhci <br />
</pre><br />
<br />
(Diese Pakete passen auf einen TP-LINK MR3020. Sie reichen aber nicht aus, um einen Medion UMTS-Stick damit anzusteuern. Hier funktioniert nur ein USB-Tethering über ein Mobiltelefon.) <br />
<br />
Diese Lösung habe ich mit dem Medion Stick noch nicht getestet. In welchem Umfang neuere Sticks die erste Lösung nicht mehr unterstützen, weiß ich nicht.<br />
<br />
== Schritt 2: Stick prüfen ==<br />
<br />
Mit den drei folgenden Befehlen wird geprüft, ob der UMTS-Dongle erkannt wird.<br />
<br />
<pre><br />
usbmode -l<br />
ls /dev/ttyUSB*<br />
gcom info -d /dev/ttyUSB0<br />
</pre><br />
<br />
== Schritt 3: USB-Schnittstellen einrichten ==<br />
<br />
Für die Einrichtung der USB-Schnittstelle gibt es verschiedene Möglichkeiten. Wird der USB-3G-Dongle von Medion genutzt, funktioniert die Einrichtung mit ''gomgt''. Soll die UMTS-Verbindung über ein USB-Tethering erfolgen, dann muss rdnis verwendet werden.<br />
<br />
Im Gegensatz zu anderen Installationsanweisungen, die die WAN Schnittstelle umbenennen und durch die USB-Schnittstelle erstetzen, wird in dieser Lösung eine zusätzliche WAN-Schnittstellen (theter und umts) definiert. Dies hat den Vorteil, dass der Router auch über den WAN-Port funktioniert.<br />
<br />
=== Schritt 3.1: TP-LINK TL-MR3020 mit rdnis für USB-Tethering einrichten ===<br />
<br />
Beim TP-LINK TL-MR3020 ist der Overlay-Speicher leider zu klein, um eine UMTS Unterstützung nachträglich zu installieren. Um Platz zu schaffen, muss auf das Paket ''gluon-status-page'' verzichtet werden. Dann kann eine Firmware für den TP-LINK TL-MR3020 gebaut werden, die den Router über ein Mobiltelefon mit USB-Tethering mit den [[fastd]] Servern verbindet. Für die Lösung mit einem USB-3G-Dongle reicht der Platz noch nicht. Mit dem TL-3020 kommt daher nur eine Minimallösung über USB-Tethering in Frage, die auch bei anderen Routern mit USB-Port möglich ist.<br />
<br />
<pre><br />
USB_PACKAGES_MR3020 := \<br />
kmod-nls-base \<br />
kmod-usb-core \<br />
kmod-mii \<br />
kmod-usb-net \<br />
kmod-usb-net-cdc-ether \<br />
kmod-usb-net-rndis \<br />
kmod-usb-uhci<br />
<br />
# basic support for USB stack<br />
USB_PACKAGES_BASIC := \<br />
kmod-usb-core \<br />
kmod-usb2<br />
<br />
GLUON_TLMR3020_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_MR3020)<br />
</pre><br />
<br />
Mit folgenden Befehlen wird die Schnittstelle aktiviert.<br />
<br />
<pre><br />
uci set network.tether='interface'<br />
uci set network.tether.ifname='usb0'<br />
uci set network.tether.auto='1'<br />
uci set network.tether.proto='dhcp'<br />
uci set network.tether.type='bridge'<br />
uci set network.tether.peerdns='0'<br />
uci set network.tether.device='/dev/ttyUSB0'<br />
uci commit<br />
</pre><br />
<br />
Die zusätzliche WAN Schnittstelle müssen noch in der Firewall eingerichtet werden.<br />
<br />
<pre><br />
uci set firewall.@zone[1].network='umts tether wan wan6'<br />
uci commit firewall <br />
</pre><br />
<br />
Die obigen Ergänzungen der Netzwerkeinstellungen bleiben auch bei einer Aktualisierung der Firmware erhalten. (Außer man erzwingt ein Rücksetzen aller Einstellungen.) Dagegen müssen die folgenden Anpassungen bei jeder Aktualisierung der Firmware erneut vorgenommen werden.<br />
<br />
Wie bereits oben beschrieben müssen auch hier die Dateien <br />
* ''/etc/hotplug.d/iface/50-gluon-wan-dnsmasq'' und <br />
* ''/lib/gluon/wan-dnsmasq/update.lua''<br />
angepasst werden.<br />
<br />
In der Datei ''50-gluon-wan-dnsmasq'' muss das neue Interface ''tether'' in die Liste eingefügt werden ...<br />
<br />
<pre><br />
if [ "$INTERFACE" = 'wan' -o "$INTERFACE" = 'wan6' -o "$INTERFACE" = 'tether' ]; then<br />
/lib/gluon/wan-dnsmasq/update.lua<br />
fi<br />
</pre><br />
<br />
und in der Datei ''update.lua'' wird der Aufruf ''pcall(s,'tether')'' eingefügt.<br />
<br />
<pre><br />
...<br />
else<br />
pcall(s,'wan6')<br />
pcall(s,'wan')<br />
pcall(s,'tether')<br />
end<br />
...<br />
</pre><br />
<br />
Durch diese Konfiguratioin werden zwei zusätlichen Netzwerkschnittstellen usb0 und br-tether erstellt.<br />
<br />
Getestet wurde diese Konfiguration mit einem Samsung Galaxy Note 4.<br />
<br />
==== Tunneldigger ====<br />
<br />
Wenn anstelle [[fastd]] [[Tunneldigger]] eingesetzt wird, muss die Tunneldigger Konfiguration geändert werden. Tunneldigger wird an die Netzwerkschnittstelle [[br-wan]] gebunden. Diese Bindung muss auif br-tether geändert werden.<br />
<br />
<pre><br />
uci set tunneldigger.mesh_vpn.bind_interface='br-tether'<br />
uci commit tunnlerdigger<br />
/etc/init.d/tunneldigger restart<br />
</pre><br />
<br />
=== Schritt 3.2: USB-3G-Dongle von Medion (S4222) mit gomgt einrichten ===<br />
<br />
Bei Routwern mit mehr Speicher als der MR3020 kann ein vollständiger USB-Support installiert werden. Mit einem USB-3G-Dongle kann eine zweite Verbindung ins Internet aufgebaut werden, über die ''fastd'' einen Tunnel zu den Supernodes im Internet aufbauen kann. Dazu definieren wir eine neue Netzwerkschnittstelle, die ich 'umts' genannt habe. Viele Kochrezepte empfehlen die Schnittstelle ''wan'' zu benennen und die alte Schnittstelle in ''wan2'' umzubenennen. Dies ist jedoch nicht notwendig. Der Router kann mit mehreren Schnittstellen gleichzeitig umgehen. Dies hat den Vorteil, dass der Router sowohl über den WAN-Port, als auch über einen UMTS-Stick angebunden werden kann. Auch eine gleichzeitige Verbindung mit beiden Schnittstellen ist möglich. Hier kann es jedoch passieren, dass die Verbindung über die UMTS stattfindet, was sehr teuer werden kann. <br />
<br />
dazu wird dieses Interface mit folgendem Script auf dem Freifunkrouter als Netzwerkschnittstelle eingerichtet. Dabei ist &lt;xxxx&gt; durch die PIN der SIM-Karte zu ersetzen. Wenn alles richtig läuft, meldet sich die Schnittstelle als ''3g-umts''. Die Schnittstelle ''umts'' muss außerdem der Firewall in der Zone 1 bekannt gemacht werden. Dies geschieht am besten mittels ''uci'' Befehlen, die ich in einem Script ''umts'' zusammengefügt habe. <br />
<br />
(Die folgende Anpassung ist noch nicht in der Firmware enthalten.)<br />
<br />
<pre><br />
#!/bin/sh<br />
<br />
echo "Einrichten der Netzwerkschnittstelle für UMTS<br />
<br />
uci set network.umts=interface<br />
uci set network.umts.proto=3g<br />
uci set network.umts.peerdns=0<br />
uci set network.umts.ifname=umts0<br />
uci set network.umts.device=/dev/ttyUSB0<br />
uci set network.umts.apn=internet<br />
uci set network.umts.pincode=&lt;xxxx&gt;<br />
uci set network.umts.delay=90<br />
uci commit<br />
<br />
uci add_list firewall.@zone[1].network='umts'<br />
uci commit firewall<br />
</pre><br />
<br />
Für den DNS muss die Datei /var/gluon/wan-dnsmasq/resolv.conf geändert werden. Diese wird durch zwei Scripte erstellt. (In der Firmware ab Gluon v2017.x sind die folgenden Anpassungen bereits drin.)<br />
<br />
Zusätzlich müssen zwei Dateien angepasst werden: /''etc/hotplug.d/iface/50-gluon-wan-dnsmasq'' und ''/lib/gluon/wan-dnsmasq/update.lua''<br />
<br />
In der Datei ''50-gluon-wan-dnsmasq'' muss das neue Interface ''umts'' in die Liste eingefügt werden ...<br />
<br />
<pre><br />
if [ "$INTERFACE" = 'wan' -o "$INTERFACE" = 'wan6' -o "$INTERFACE" = 'umts' ]; then<br />
/lib/gluon/wan-dnsmasq/update.lua<br />
fi<br />
</pre><br />
<br />
und in der Datei ''update.lua'' wird der Aufruf ''pcall(s,'umts')'' eingefügt.<br />
<br />
<pre><br />
...<br />
else<br />
pcall(s,'wan6')<br />
pcall(s,'wan')<br />
pcall(s,'umts')<br />
end<br />
...<br />
</pre><br />
<br />
Ein ausreichend großer Router kann natürlich auch für beide Methoden konfiguriert werden.<br />
<br />
== Test ==<br />
<br />
TP-Link TL-WR1043ND mit USB-3G-Dongle. Hier wird die Schnittstelle 3g-umts bereitgestellt. (Die IP-Adresse 10.171.235.229 stallt vom Mobilfunkanbieter. GGf. wird es zu Konflikten kommen, wenn dieser Adressbereich auch vom Freifunknetz verwendet wird.<br />
<br />
<pre><br />
root@su-rhb-test-01:~# ifconfig 3g-umts<br />
3g-umts Link encap:Point-to-Point Protocol <br />
inet addr:10.171.235.229 P-t-P:10.64.64.64 Mask:255.255.255.255<br />
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1<br />
RX packets:9 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:615 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:3 <br />
RX bytes:98 (98.0 B) TX bytes:140590 (137.2 KiB)<br />
</pre><br />
<br />
<br />
TP-Link TL-MR3020 am Samsung Galaxy Note 4 mit USB-Tethering:<br />
<br />
<pre><br />
root@su-rhb-ff-ext-002:~# ifconfig usb0<br />
usb0 Link encap:Ethernet HWaddr 02:50:07:03:35:64 <br />
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<br />
RX packets:159014 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:66906 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:1000 <br />
RX bytes:60228689 (57.4 MiB) TX bytes:20634066 (19.6 MiB)<br />
root@su-rhb-ff-ext-002:~# ifconfig br-tether<br />
br-tether Link encap:Ethernet HWaddr 02:50:07:03:35:64 <br />
inet addr:192.168.42.85 Bcast:192.168.42.255 Mask:255.255.255.0<br />
inet6 addr: fe80::50:7ff:fe03:3564/64 Scope:Link<br />
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<br />
RX packets:163095 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:67936 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:0 <br />
RX bytes:61112941 (58.2 MiB) TX bytes:17979223 (17.1 MiB)<br />
</pre><br />
<br />
== Links ==<br />
<br />
[https://wiki.hacksaar.de/Freifunk:Mobiler_Hotspot#USB-3G-Dongle_mit_PPP_bei_Nutzung_von_comgt Freifunk:Mobiler Hotspot]<br />
<br />
[https://wiki.darmstadt.freifunk.net/Firmware_Modifikationen#Konfiguration_einer_3g_LTE_Verbindung_mit_einem_QMI_f.C3.A4higen_LTE_Stick 3G, LTE, mehrere WAN Verbindungen Konfigurieren, etc.]</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=UMTS&diff=266UMTS2018-06-22T23:31:40Z<p>Thomas: /* Schritt 3.1: TP-LINK TL-MR3020 mit rdnis für USB-Tethering einrichten */</p>
<hr />
<div>Dieser Artikel beschreibt wie ein Freifunkrouter mit einem UMTS-Stick (USB-3G-Dongle) oder einem Smartphone mit USB-Tethering zu einem mobilen Hotspot wird. Einige Modelle (z.B. TP-LINK TL-WR841 V7, V10, WR1043ND oder MR3020) lassen sich mit einer Powerbank (5 Volt) oder der Autobatterie autark vom 220V Netz wirklich mobil betreiben.<br />
<br />
Getestet mit: TP-LINK TL-WR1043 v2 und v3, TP-LINK TL-MR3020 v1.9 und MEDION Surfstick S4222 mit FONIC Prepaid Karte.<br />
<br />
== Mobiler Router mit UMTS ==<br />
<br />
Für einen Freifunkrouter, der über einen UMTS-Stick ans Internet angebunden werden soll, sollte das Image mit USB Unterstützung verwendet werden. Trotz der USB Unterstützung sind folgende Schritte notwendig, um den UMTS-Stick zum Laufen zu bringen. (Es werden auch die Module aufgeführt, die ohne USB-Unterstützung bei der Erstellung der FF-Firmware benötigt werden.)<br />
<br />
== Voraussetzungen ==<br />
<br />
Für die Installation eines UMTS-Stick (weitere Hinweise unter [[USB-Support]]) sind folgende Voraussetzungen zu erfüllen:<br />
<br />
* Der Router benötigt einen USB-Port.<br />
* Während der Softwareinstallation muss der Router über den WAN-Port aus Internet angeschlossen sein.<br />
* In ''/etc/resolv.conf'' muss ein erreichbarer Nameserver (z.B. 8.8.8.8) eingetragen werden, damit die OpenWrt Pakete gefunden werden. <br />
<br />
Als Nameserver nutze ich meinen lokalen Router.<br />
<br />
Beispile: /etc/resolv,conf<br />
<pre><br />
search lan<br />
nameserver 192.168.20.1<br />
nameserver 127.0.0.1<br />
</pre><br />
<br />
== Schritt 1a: Installation der Software (Teil 1) == <br />
<br />
Ab Gluon v2017.x haben die Router bei Freifunk Rheinbach USN_Support an Bord, wenn sie einen USB-Port haben. Ausnahmen bestätigen die Regel: Der TP-Link TL-WR842N(D) läuft mit USB-Support instabil.<br />
<br />
Gluon verwendet einen eigenen, modifizierten Kernel. Daher müssen Kernel-Module für diesen Kernel kompiliert werden. Dies geschieht bei der Generierung der Firmware. Die Module befinden sich im Ordner ''/output/modules''. Für die Installation der richtigen Module sollte in der Datei ''/etc/opkg/customfeed.conf'' der Pfad zu den Modulen eingetragen werden, die mit der Firmware generiert wurden. Für meine Zwecke habe ich die Pakete auf einem Router mit USB-Stick geladen und den Ordner unter der Statusseite als ''/download'' abgelegt. Hier das Beispiel für mein Image vom 05.10.2016:<br />
<br />
<pre><br />
# add your custom package feeds here<br />
#<br />
# src/gz example_feed_name http://www.example.com/path/to/files<br />
src/gz gluon http://[fda0:747e:ab29:2241:16cc:20ff:fecd:15bc]/download/modules/gluon-su-rhb-s2016.2-usb-20161005/ar71xx/generic <br />
</pre><br />
<br />
Als erstes müssen die Paketlisten aufdatiert und die Pakete installiert werden.<br />
<br />
<pre><br />
opkg update<br />
opkg install \<br />
kmod-usb-core \<br />
kmod-usb2 \<br />
libusb-1.0 \<br />
usb-modeswitch \<br />
usbreset<br />
</pre><br />
<br />
Anschließend soll der Router neu gestartet werden. (Der Sinn leuchtet mir nicht ganz ein.)<br />
<br />
reboot ; exit<br />
<br />
Nach einem Reboot muss natürlich die ''/etc/resolv.conf'' wieder angepasst werden, wenn weitere Software installiert werden soll.<br />
<br />
== Schritt 1b. Softwareinstallation (Teil 2) ==<br />
<br />
Die Installation der weiteren Software kann nicht schaden und wird - nach anderen Beschreibungen - für ältere USB-Dongle benötigt.<br />
<br />
<pre><br />
opkg update<br />
opkg install \<br />
chat \<br />
comgt \<br />
kmod-ppp \<br />
kmod-pppoe \<br />
kmod-usb-serial \<br />
kmod-usb-serial-option \<br />
kmod-usb-serial-\<br />
wwan \<br />
ppp \<br />
ppp-mod-pppoe<br />
</pre><br />
<br />
Der Speicher des TP-LINK TL-MR3020 reicht für die obige Lösung leider nicht aus.<br />
<br />
Alternativ kann ''rdnis'' genutzt werden, was aber nach verschiedenen Berichten bei älteren 3G-Dongles ggf. nicht funktioniert.<br />
<br />
<pre><br />
opkg undate<br />
opkg install \<br />
kmod-nls-base \<br />
kmod-usb-core \<br />
kmod-mii \<br />
kmod-usb-net \<br />
kmod-usb-net-cdc-ether \<br />
kmod-usb-net-rndis \<br />
kmod-usb-uhci <br />
</pre><br />
<br />
(Diese Pakete passen auf einen TP-LINK MR3020. Sie reichen aber nicht aus, um einen Medion UMTS-Stick damit anzusteuern. Hier funktioniert nur ein USB-Tethering über ein Mobiltelefon.) <br />
<br />
Diese Lösung habe ich mit dem Medion Stick noch nicht getestet. In welchem Umfang neuere Sticks die erste Lösung nicht mehr unterstützen, weiß ich nicht.<br />
<br />
== Schritt 2: Stick prüfen ==<br />
<br />
Mit den drei folgenden Befehlen wird geprüft, ob der UMTS-Dongle erkannt wird.<br />
<br />
<pre><br />
usbmode -l<br />
ls /dev/ttyUSB*<br />
gcom info -d /dev/ttyUSB0<br />
</pre><br />
<br />
== Schritt 3: USB-Schnittstellen einrichten ==<br />
<br />
Für die Einrichtung der USB-Schnittstelle gibt es verschiedene Möglichkeiten. Wird der USB-3G-Dongle von Medion genutzt, funktioniert die Einrichtung mit ''gomgt''. Soll die UMTS-Verbindung über ein USB-Tethering erfolgen, dann muss rdnis verwendet werden.<br />
<br />
Im Gegensatz zu anderen Installationsanweisungen, die die WAN Schnittstelle umbenennen und durch die USB-Schnittstelle erstetzen, wird in dieser Lösung eine zusätzliche WAN-Schnittstellen (theter und umts) definiert. Dies hat den Vorteil, dass der Router auch über den WAN-Port funktioniert.<br />
<br />
=== Schritt 3.1: TP-LINK TL-MR3020 mit rdnis für USB-Tethering einrichten ===<br />
<br />
Beim TP-LINK TL-MR3020 ist der Overlay-Speicher leider zu klein, um eine UMTS Unterstützung nachträglich zu installieren. Um Platz zu schaffen, muss auf das Paket ''gluon-status-page'' verzichtet werden. Dann kann eine Firmware für den TP-LINK TL-MR3020 gebaut werden, die den Router über ein Mobiltelefon mit USB-Tethering mit den [[fastd]] Servern verbindet. Für die Lösung mit einem USB-3G-Dongle reicht der Platz noch nicht. Mit dem TL-3020 kommt daher nur eine Minimallösung über USB-Tethering in Frage, die auch bei anderen Routern mit USB-Port möglich ist.<br />
<br />
<pre><br />
USB_PACKAGES_MR3020 := \<br />
kmod-nls-base \<br />
kmod-usb-core \<br />
kmod-mii \<br />
kmod-usb-net \<br />
kmod-usb-net-cdc-ether \<br />
kmod-usb-net-rndis \<br />
kmod-usb-uhci<br />
<br />
# basic support for USB stack<br />
USB_PACKAGES_BASIC := \<br />
kmod-usb-core \<br />
kmod-usb2<br />
<br />
GLUON_TLMR3020_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_MR3020)<br />
</pre><br />
<br />
Mit folgenden Befehlen wird die Schnittstelle aktiviert.<br />
<br />
<pre><br />
uci set network.tether='interface'<br />
uci set network.tether.ifname='usb0'<br />
uci set network.tether.auto='1'<br />
uci set network.tether.proto='dhcp'<br />
uci set network.tether.type='bridge'<br />
uci set network.tether.peerdns='0'<br />
uci set network.tether.device='/dev/ttyUSB0'<br />
uci commit<br />
</pre><br />
<br />
Die zusätzliche WAN Schnittstelle müssen noch in der Firewall eingerichtet werden.<br />
<br />
<pre><br />
uci set firewall.@zone[1].network='umts tether wan wan6'<br />
uci commit firewall <br />
</pre><br />
<br />
Die obigen Ergänzungen der Netzwerkeinstellungen bleiben auch bei einer Aktualisierung der Firmware erhalten. (Außer man erzwingt ein Rücksetzen aller Einstellungen.) Dagegen müssen die folgenden Anpassungen bei jeder Aktualisierung der Firmware erneut vorgenommen werden.<br />
<br />
Wie bereits oben beschrieben müssen auch hier die Dateien <br />
* ''/etc/hotplug.d/iface/50-gluon-wan-dnsmasq'' und <br />
* ''/lib/gluon/wan-dnsmasq/update.lua''<br />
angepasst werden.<br />
<br />
In der Datei ''50-gluon-wan-dnsmasq'' muss das neue Interface ''tether'' in die Liste eingefügt werden ...<br />
<br />
<pre><br />
if [ "$INTERFACE" = 'wan' -o "$INTERFACE" = 'wan6' -o "$INTERFACE" = 'tether' ]; then<br />
/lib/gluon/wan-dnsmasq/update.lua<br />
fi<br />
</pre><br />
<br />
und in der Datei ''update.lua'' wird der Aufruf ''pcall(s,'tether')'' eingefügt.<br />
<br />
<pre><br />
...<br />
else<br />
pcall(s,'wan6')<br />
pcall(s,'wan')<br />
pcall(s,'tether')<br />
end<br />
...<br />
</pre><br />
<br />
Durch diese Konfiguratioin werden zwei zusätlichen Netzwerkschnittstellen usb0 und br-tether erstellt.<br />
<br />
Getestet wurde diese Konfiguration mit einem Samsung Galaxy Note 4.<br />
<br />
==== Tunneldigger ====<br />
<br />
Wenn anstelle [[fastd]] [[Tunneldigger]] eingesetzt wird, muss die Tunneldigger Konfiguration geändert werden. Tunneldigger wird an die Netzwerkschnittstelle [[br-wan]] gebunden. Diese Bindung muss auif br-tether geändert werden.<br />
<br />
<pre><br />
uci set tunneldigger.mesh_vpn.bind_interface='br-tether'<br />
uci commit tunnlerdigger<br />
/etc/init.d/tunneldigger restart<br />
</pre><br />
<br />
=== Schritt 3.2: USB-3G-Dongle von Medion (S4222) mit gomgt einrichten ===<br />
<br />
Bei Routwern mit mehr Speicher als der MR3020 kann ein vollständiger USB-Support installiert werden. Mit einem USB-3G-Dongle kann eine zweite Verbindung ins Internet aufgebaut werden, über die ''fastd'' einen Tunnel zu den Supernodes im Internet aufbauen kann. Dazu definieren wir eine neue Netzwerkschnittstelle, die ich 'umts' genannt habe. Viele Kochrezepte empfehlen die Schnittstelle ''wan'' zu benennen und die alte Schnittstelle in ''wan2'' umzubenennen. Dies ist jedoch nicht notwendig. Der Router kann mit mehreren Schnittstellen gleichzeitig umgehen. Dies hat den Vorteil, dass der Router sowohl über den WAN-Port, als auch über einen UMTS-Stick angebunden werden kann. Auch eine gleichzeitige Verbindung mit beiden Schnittstellen ist möglich. Hier kann es jedoch passieren, dass die Verbindung über die UMTS stattfindet, was sehr teuer werden kann. <br />
<br />
dazu wird dieses Interface mit folgendem Script auf dem Freifunkrouter als Netzwerkschnittstelle eingerichtet. Dabei ist &lt;xxxx&gt; durch die PIN der SIM-Karte zu ersetzen. Wenn alles richtig läuft, meldet sich die Schnittstelle als ''3g-umts''. Die Schnittstelle ''umts'' muss außerdem der Firewall in der Zone 1 bekannt gemacht werden. Dies geschieht am besten mittels ''uci'' Befehlen, die ich in einem Script ''umts'' zusammengefügt habe. <br />
<br />
(Die folgende Anpassung ist noch nicht in der Firmware enthalten.)<br />
<br />
<pre><br />
#!/bin/sh<br />
<br />
echo "Einrichten der Netzwerkschnittstelle für UMTS<br />
<br />
uci set network.umts=interface<br />
uci set network.umts.proto=3g<br />
uci set network.umts.peerdns=0<br />
uci set network.umts.ifname=umts0<br />
uci set network.umts.device=/dev/ttyUSB0<br />
uci set network.umts.apn=internet<br />
uci set network.umts.pincode=&lt;xxxx&gt;<br />
uci set network.umts.delay=90<br />
uci commit<br />
<br />
uci set firewall.@zone[1].network='wan wan6 umts'<br />
uci commit firewall<br />
</pre><br />
<br />
Für den DNS muss die Datei /var/gluon/wan-dnsmasq/resolv.conf geändert werden. Diese wird durch zwei Scripte erstellt. (In der Firmware ab Gluon v2017.x sind die folgenden Anpassungen bereits drin.)<br />
<br />
Zusätzlich müssen zwei Dateien angepasst werden: /''etc/hotplug.d/iface/50-gluon-wan-dnsmasq'' und ''/lib/gluon/wan-dnsmasq/update.lua''<br />
<br />
In der Datei ''50-gluon-wan-dnsmasq'' muss das neue Interface ''umts'' in die Liste eingefügt werden ...<br />
<br />
<pre><br />
if [ "$INTERFACE" = 'wan' -o "$INTERFACE" = 'wan6' -o "$INTERFACE" = 'umts' ]; then<br />
/lib/gluon/wan-dnsmasq/update.lua<br />
fi<br />
</pre><br />
<br />
und in der Datei ''update.lua'' wird der Aufruf ''pcall(s,'umts')'' eingefügt.<br />
<br />
<pre><br />
...<br />
else<br />
pcall(s,'wan6')<br />
pcall(s,'wan')<br />
pcall(s,'umts')<br />
end<br />
...<br />
</pre><br />
<br />
Ein ausreichend großer Router kann natürlich auch für beide Methoden konfiguriert werden.<br />
<br />
== Test ==<br />
<br />
TP-Link TL-WR1043ND mit USB-3G-Dongle. Hier wird die Schnittstelle 3g-umts bereitgestellt. (Die IP-Adresse 10.171.235.229 stallt vom Mobilfunkanbieter. GGf. wird es zu Konflikten kommen, wenn dieser Adressbereich auch vom Freifunknetz verwendet wird.<br />
<br />
<pre><br />
root@su-rhb-test-01:~# ifconfig 3g-umts<br />
3g-umts Link encap:Point-to-Point Protocol <br />
inet addr:10.171.235.229 P-t-P:10.64.64.64 Mask:255.255.255.255<br />
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1<br />
RX packets:9 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:615 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:3 <br />
RX bytes:98 (98.0 B) TX bytes:140590 (137.2 KiB)<br />
</pre><br />
<br />
<br />
TP-Link TL-MR3020 am Samsung Galaxy Note 4 mit USB-Tethering:<br />
<br />
<pre><br />
root@su-rhb-ff-ext-002:~# ifconfig usb0<br />
usb0 Link encap:Ethernet HWaddr 02:50:07:03:35:64 <br />
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<br />
RX packets:159014 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:66906 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:1000 <br />
RX bytes:60228689 (57.4 MiB) TX bytes:20634066 (19.6 MiB)<br />
root@su-rhb-ff-ext-002:~# ifconfig br-tether<br />
br-tether Link encap:Ethernet HWaddr 02:50:07:03:35:64 <br />
inet addr:192.168.42.85 Bcast:192.168.42.255 Mask:255.255.255.0<br />
inet6 addr: fe80::50:7ff:fe03:3564/64 Scope:Link<br />
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<br />
RX packets:163095 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:67936 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:0 <br />
RX bytes:61112941 (58.2 MiB) TX bytes:17979223 (17.1 MiB)<br />
</pre><br />
<br />
== Links ==<br />
<br />
[https://wiki.hacksaar.de/Freifunk:Mobiler_Hotspot#USB-3G-Dongle_mit_PPP_bei_Nutzung_von_comgt Freifunk:Mobiler Hotspot]<br />
<br />
[https://wiki.darmstadt.freifunk.net/Firmware_Modifikationen#Konfiguration_einer_3g_LTE_Verbindung_mit_einem_QMI_f.C3.A4higen_LTE_Stick 3G, LTE, mehrere WAN Verbindungen Konfigurieren, etc.]</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=UMTS&diff=265UMTS2018-06-22T23:26:34Z<p>Thomas: /* Schritt 3.1: TP-LINK TL-MR3020 mit rdnis für USB-Tethering einrichten */</p>
<hr />
<div>Dieser Artikel beschreibt wie ein Freifunkrouter mit einem UMTS-Stick (USB-3G-Dongle) oder einem Smartphone mit USB-Tethering zu einem mobilen Hotspot wird. Einige Modelle (z.B. TP-LINK TL-WR841 V7, V10, WR1043ND oder MR3020) lassen sich mit einer Powerbank (5 Volt) oder der Autobatterie autark vom 220V Netz wirklich mobil betreiben.<br />
<br />
Getestet mit: TP-LINK TL-WR1043 v2 und v3, TP-LINK TL-MR3020 v1.9 und MEDION Surfstick S4222 mit FONIC Prepaid Karte.<br />
<br />
== Mobiler Router mit UMTS ==<br />
<br />
Für einen Freifunkrouter, der über einen UMTS-Stick ans Internet angebunden werden soll, sollte das Image mit USB Unterstützung verwendet werden. Trotz der USB Unterstützung sind folgende Schritte notwendig, um den UMTS-Stick zum Laufen zu bringen. (Es werden auch die Module aufgeführt, die ohne USB-Unterstützung bei der Erstellung der FF-Firmware benötigt werden.)<br />
<br />
== Voraussetzungen ==<br />
<br />
Für die Installation eines UMTS-Stick (weitere Hinweise unter [[USB-Support]]) sind folgende Voraussetzungen zu erfüllen:<br />
<br />
* Der Router benötigt einen USB-Port.<br />
* Während der Softwareinstallation muss der Router über den WAN-Port aus Internet angeschlossen sein.<br />
* In ''/etc/resolv.conf'' muss ein erreichbarer Nameserver (z.B. 8.8.8.8) eingetragen werden, damit die OpenWrt Pakete gefunden werden. <br />
<br />
Als Nameserver nutze ich meinen lokalen Router.<br />
<br />
Beispile: /etc/resolv,conf<br />
<pre><br />
search lan<br />
nameserver 192.168.20.1<br />
nameserver 127.0.0.1<br />
</pre><br />
<br />
== Schritt 1a: Installation der Software (Teil 1) == <br />
<br />
Ab Gluon v2017.x haben die Router bei Freifunk Rheinbach USN_Support an Bord, wenn sie einen USB-Port haben. Ausnahmen bestätigen die Regel: Der TP-Link TL-WR842N(D) läuft mit USB-Support instabil.<br />
<br />
Gluon verwendet einen eigenen, modifizierten Kernel. Daher müssen Kernel-Module für diesen Kernel kompiliert werden. Dies geschieht bei der Generierung der Firmware. Die Module befinden sich im Ordner ''/output/modules''. Für die Installation der richtigen Module sollte in der Datei ''/etc/opkg/customfeed.conf'' der Pfad zu den Modulen eingetragen werden, die mit der Firmware generiert wurden. Für meine Zwecke habe ich die Pakete auf einem Router mit USB-Stick geladen und den Ordner unter der Statusseite als ''/download'' abgelegt. Hier das Beispiel für mein Image vom 05.10.2016:<br />
<br />
<pre><br />
# add your custom package feeds here<br />
#<br />
# src/gz example_feed_name http://www.example.com/path/to/files<br />
src/gz gluon http://[fda0:747e:ab29:2241:16cc:20ff:fecd:15bc]/download/modules/gluon-su-rhb-s2016.2-usb-20161005/ar71xx/generic <br />
</pre><br />
<br />
Als erstes müssen die Paketlisten aufdatiert und die Pakete installiert werden.<br />
<br />
<pre><br />
opkg update<br />
opkg install \<br />
kmod-usb-core \<br />
kmod-usb2 \<br />
libusb-1.0 \<br />
usb-modeswitch \<br />
usbreset<br />
</pre><br />
<br />
Anschließend soll der Router neu gestartet werden. (Der Sinn leuchtet mir nicht ganz ein.)<br />
<br />
reboot ; exit<br />
<br />
Nach einem Reboot muss natürlich die ''/etc/resolv.conf'' wieder angepasst werden, wenn weitere Software installiert werden soll.<br />
<br />
== Schritt 1b. Softwareinstallation (Teil 2) ==<br />
<br />
Die Installation der weiteren Software kann nicht schaden und wird - nach anderen Beschreibungen - für ältere USB-Dongle benötigt.<br />
<br />
<pre><br />
opkg update<br />
opkg install \<br />
chat \<br />
comgt \<br />
kmod-ppp \<br />
kmod-pppoe \<br />
kmod-usb-serial \<br />
kmod-usb-serial-option \<br />
kmod-usb-serial-\<br />
wwan \<br />
ppp \<br />
ppp-mod-pppoe<br />
</pre><br />
<br />
Der Speicher des TP-LINK TL-MR3020 reicht für die obige Lösung leider nicht aus.<br />
<br />
Alternativ kann ''rdnis'' genutzt werden, was aber nach verschiedenen Berichten bei älteren 3G-Dongles ggf. nicht funktioniert.<br />
<br />
<pre><br />
opkg undate<br />
opkg install \<br />
kmod-nls-base \<br />
kmod-usb-core \<br />
kmod-mii \<br />
kmod-usb-net \<br />
kmod-usb-net-cdc-ether \<br />
kmod-usb-net-rndis \<br />
kmod-usb-uhci <br />
</pre><br />
<br />
(Diese Pakete passen auf einen TP-LINK MR3020. Sie reichen aber nicht aus, um einen Medion UMTS-Stick damit anzusteuern. Hier funktioniert nur ein USB-Tethering über ein Mobiltelefon.) <br />
<br />
Diese Lösung habe ich mit dem Medion Stick noch nicht getestet. In welchem Umfang neuere Sticks die erste Lösung nicht mehr unterstützen, weiß ich nicht.<br />
<br />
== Schritt 2: Stick prüfen ==<br />
<br />
Mit den drei folgenden Befehlen wird geprüft, ob der UMTS-Dongle erkannt wird.<br />
<br />
<pre><br />
usbmode -l<br />
ls /dev/ttyUSB*<br />
gcom info -d /dev/ttyUSB0<br />
</pre><br />
<br />
== Schritt 3: USB-Schnittstellen einrichten ==<br />
<br />
Für die Einrichtung der USB-Schnittstelle gibt es verschiedene Möglichkeiten. Wird der USB-3G-Dongle von Medion genutzt, funktioniert die Einrichtung mit ''gomgt''. Soll die UMTS-Verbindung über ein USB-Tethering erfolgen, dann muss rdnis verwendet werden.<br />
<br />
Im Gegensatz zu anderen Installationsanweisungen, die die WAN Schnittstelle umbenennen und durch die USB-Schnittstelle erstetzen, wird in dieser Lösung eine zusätzliche WAN-Schnittstellen (theter und umts) definiert. Dies hat den Vorteil, dass der Router auch über den WAN-Port funktioniert.<br />
<br />
=== Schritt 3.1: TP-LINK TL-MR3020 mit rdnis für USB-Tethering einrichten ===<br />
<br />
Beim TP-LINK TL-MR3020 ist der Overlay-Speicher leider zu klein, um eine UMTS Unterstützung nachträglich zu installieren. Um Platz zu schaffen, muss auf das Paket ''gluon-status-page'' verzichtet werden. Dann kann eine Firmware für den TP-LINK TL-MR3020 gebaut werden, die den Router über ein Mobiltelefon mit USB-Tethering mit den [[fastd]] Servern verbindet. Für die Lösung mit einem USB-3G-Dongle reicht der Platz noch nicht. Mit dem TL-3020 kommt daher nur eine Minimallösung über USB-Tethering in Frage, die auch bei anderen Routern mit USB-Port möglich ist.<br />
<br />
<pre><br />
USB_PACKAGES_MR3020 := \<br />
kmod-nls-base \<br />
kmod-usb-core \<br />
kmod-mii \<br />
kmod-usb-net \<br />
kmod-usb-net-cdc-ether \<br />
kmod-usb-net-rndis \<br />
kmod-usb-uhci<br />
<br />
# basic support for USB stack<br />
USB_PACKAGES_BASIC := \<br />
kmod-usb-core \<br />
kmod-usb2<br />
<br />
GLUON_TLMR3020_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_MR3020)<br />
</pre><br />
<br />
Mit folgenden Befehlen wird dann die Schnittstelle aktiviert.<br />
<br />
<pre><br />
uci set network.tether='interface'<br />
uci set network.tether.ifname='usb0'<br />
uci set network.tether.auto='1'<br />
uci set network.tether.proto='dhcp'<br />
uci set network.tether.type='bridge'<br />
uci set network.tether.peerdns='0'<br />
uci set network.tether.device='/dev/ttyUSB0'<br />
uci commit<br />
<br />
uci set firewall.@zone[1].network='tether wan wan6'<br />
uci commit firewall <br />
</pre><br />
<br />
Die obigen Ergänzungen der Netzwerkeinstellungen bleiben auch bei einer Aktualisierung der Firmware erhalten. (Außer man erzwingt ein Rücksetzen aller Einstellungen.) Dagegen müssen die folgenden Anpassungen bei jeder Aktualisierung der Firmware erneut vorgenommen werden.<br />
<br />
Wie bereits oben beschrieben müssen auch hier die Dateien <br />
* ''/etc/hotplug.d/iface/50-gluon-wan-dnsmasq'' und <br />
* ''/lib/gluon/wan-dnsmasq/update.lua''<br />
angepasst werden.<br />
<br />
In der Datei ''50-gluon-wan-dnsmasq'' muss das neue Interface ''tether'' in die Liste eingefügt werden ...<br />
<br />
<pre><br />
if [ "$INTERFACE" = 'wan' -o "$INTERFACE" = 'wan6' -o "$INTERFACE" = 'tether' ]; then<br />
/lib/gluon/wan-dnsmasq/update.lua<br />
fi<br />
</pre><br />
<br />
und in der Datei ''update.lua'' wird der Aufruf ''pcall(s,'tether')'' eingefügt.<br />
<br />
<pre><br />
...<br />
else<br />
pcall(s,'wan6')<br />
pcall(s,'wan')<br />
pcall(s,'tether')<br />
end<br />
...<br />
</pre><br />
<br />
Durch diese Konfiguratioin werden zwei zusätlichen Netzwerkschnittstellen usb0 und br-tether erstellt.<br />
<br />
Getestet wurde diese Konfiguration mit einem Samsung Galaxy Note 4.<br />
<br />
==== Tunneldigger ====<br />
<br />
Wenn anstelle [[fastd]] [[Tunneldigger]] eingesetzt wird, muss die Tunneldigger Konfiguration geändert werden. Tunneldigger wird an die Netzwerkschnittstelle [[br-wan]] gebunden. Diese Bindung muss auif br-tether geändert werden.<br />
<br />
<pre><br />
uci set tunneldigger.mesh_vpn.bind_interface='br-tether'<br />
uci commit tunnlerdigger<br />
/etc/init.d/tunneldigger restart<br />
</pre><br />
<br />
=== Schritt 3.2: USB-3G-Dongle von Medion (S4222) mit gomgt einrichten ===<br />
<br />
Bei Routwern mit mehr Speicher als der MR3020 kann ein vollständiger USB-Support installiert werden. Mit einem USB-3G-Dongle kann eine zweite Verbindung ins Internet aufgebaut werden, über die ''fastd'' einen Tunnel zu den Supernodes im Internet aufbauen kann. Dazu definieren wir eine neue Netzwerkschnittstelle, die ich 'umts' genannt habe. Viele Kochrezepte empfehlen die Schnittstelle ''wan'' zu benennen und die alte Schnittstelle in ''wan2'' umzubenennen. Dies ist jedoch nicht notwendig. Der Router kann mit mehreren Schnittstellen gleichzeitig umgehen. Dies hat den Vorteil, dass der Router sowohl über den WAN-Port, als auch über einen UMTS-Stick angebunden werden kann. Auch eine gleichzeitige Verbindung mit beiden Schnittstellen ist möglich. Hier kann es jedoch passieren, dass die Verbindung über die UMTS stattfindet, was sehr teuer werden kann. <br />
<br />
dazu wird dieses Interface mit folgendem Script auf dem Freifunkrouter als Netzwerkschnittstelle eingerichtet. Dabei ist &lt;xxxx&gt; durch die PIN der SIM-Karte zu ersetzen. Wenn alles richtig läuft, meldet sich die Schnittstelle als ''3g-umts''. Die Schnittstelle ''umts'' muss außerdem der Firewall in der Zone 1 bekannt gemacht werden. Dies geschieht am besten mittels ''uci'' Befehlen, die ich in einem Script ''umts'' zusammengefügt habe. <br />
<br />
(Die folgende Anpassung ist noch nicht in der Firmware enthalten.)<br />
<br />
<pre><br />
#!/bin/sh<br />
<br />
echo "Einrichten der Netzwerkschnittstelle für UMTS<br />
<br />
uci set network.umts=interface<br />
uci set network.umts.proto=3g<br />
uci set network.umts.peerdns=0<br />
uci set network.umts.ifname=umts0<br />
uci set network.umts.device=/dev/ttyUSB0<br />
uci set network.umts.apn=internet<br />
uci set network.umts.pincode=&lt;xxxx&gt;<br />
uci set network.umts.delay=90<br />
uci commit<br />
<br />
uci set firewall.@zone[1].network='wan wan6 umts'<br />
uci commit firewall<br />
</pre><br />
<br />
Für den DNS muss die Datei /var/gluon/wan-dnsmasq/resolv.conf geändert werden. Diese wird durch zwei Scripte erstellt. (In der Firmware ab Gluon v2017.x sind die folgenden Anpassungen bereits drin.)<br />
<br />
Zusätzlich müssen zwei Dateien angepasst werden: /''etc/hotplug.d/iface/50-gluon-wan-dnsmasq'' und ''/lib/gluon/wan-dnsmasq/update.lua''<br />
<br />
In der Datei ''50-gluon-wan-dnsmasq'' muss das neue Interface ''umts'' in die Liste eingefügt werden ...<br />
<br />
<pre><br />
if [ "$INTERFACE" = 'wan' -o "$INTERFACE" = 'wan6' -o "$INTERFACE" = 'umts' ]; then<br />
/lib/gluon/wan-dnsmasq/update.lua<br />
fi<br />
</pre><br />
<br />
und in der Datei ''update.lua'' wird der Aufruf ''pcall(s,'umts')'' eingefügt.<br />
<br />
<pre><br />
...<br />
else<br />
pcall(s,'wan6')<br />
pcall(s,'wan')<br />
pcall(s,'umts')<br />
end<br />
...<br />
</pre><br />
<br />
Ein ausreichend großer Router kann natürlich auch für beide Methoden konfiguriert werden.<br />
<br />
== Test ==<br />
<br />
TP-Link TL-WR1043ND mit USB-3G-Dongle. Hier wird die Schnittstelle 3g-umts bereitgestellt. (Die IP-Adresse 10.171.235.229 stallt vom Mobilfunkanbieter. GGf. wird es zu Konflikten kommen, wenn dieser Adressbereich auch vom Freifunknetz verwendet wird.<br />
<br />
<pre><br />
root@su-rhb-test-01:~# ifconfig 3g-umts<br />
3g-umts Link encap:Point-to-Point Protocol <br />
inet addr:10.171.235.229 P-t-P:10.64.64.64 Mask:255.255.255.255<br />
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1<br />
RX packets:9 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:615 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:3 <br />
RX bytes:98 (98.0 B) TX bytes:140590 (137.2 KiB)<br />
</pre><br />
<br />
<br />
TP-Link TL-MR3020 am Samsung Galaxy Note 4 mit USB-Tethering:<br />
<br />
<pre><br />
root@su-rhb-ff-ext-002:~# ifconfig usb0<br />
usb0 Link encap:Ethernet HWaddr 02:50:07:03:35:64 <br />
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<br />
RX packets:159014 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:66906 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:1000 <br />
RX bytes:60228689 (57.4 MiB) TX bytes:20634066 (19.6 MiB)<br />
root@su-rhb-ff-ext-002:~# ifconfig br-tether<br />
br-tether Link encap:Ethernet HWaddr 02:50:07:03:35:64 <br />
inet addr:192.168.42.85 Bcast:192.168.42.255 Mask:255.255.255.0<br />
inet6 addr: fe80::50:7ff:fe03:3564/64 Scope:Link<br />
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<br />
RX packets:163095 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:67936 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:0 <br />
RX bytes:61112941 (58.2 MiB) TX bytes:17979223 (17.1 MiB)<br />
</pre><br />
<br />
== Links ==<br />
<br />
[https://wiki.hacksaar.de/Freifunk:Mobiler_Hotspot#USB-3G-Dongle_mit_PPP_bei_Nutzung_von_comgt Freifunk:Mobiler Hotspot]<br />
<br />
[https://wiki.darmstadt.freifunk.net/Firmware_Modifikationen#Konfiguration_einer_3g_LTE_Verbindung_mit_einem_QMI_f.C3.A4higen_LTE_Stick 3G, LTE, mehrere WAN Verbindungen Konfigurieren, etc.]</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=TP-Link_TL-MR3020&diff=264TP-Link TL-MR30202018-06-22T23:18:46Z<p>Thomas: /* USB-Support in der site.mk definieren */</p>
<hr />
<div>Der [http://www.tp-link.de/products/details/cat-4691_TL-MR3020.html TP-Link TL-MR3020] ist ein kleiner, handlicher 3G/4G-WLAN-Router und benötigt einen UMTS-Stick oder ein Smartphone mit USB-Tethering.<br />
<br />
== Allgemeines ==<br />
<br />
Aufgrund der geringen Leistung ist der MR3020 als "normaler" FF-Router ungeeignet. Mit UMTS-Stick oder USB-Tethering über Smartphone kann er jedoch eine Internetverbindung zu den [[VPN-Servern]] aufbauen und andere Router temporär ans Internet anbinden.<br />
<br />
== Packages ==<br />
<br />
Da der Speicher sehr begrenzt ist, können keine USB-Netwerk- oder USB-Storage-Packete im Image untergebracht werden. Als mobiler File-Server wäre der Router eher ungeeignet.<br />
<br />
Auf die Status-Seite muss aus Platzgründen leider verzichten werden. Alternative wäre ein Verzicht auf die Web-Setup-Seiten.<br />
<br />
== USB-Support in der site.mk definieren ==<br />
<br />
Die [[site.mk]] unterscheidet sich in den einzelnen Gluon Versionen etwas.<br />
<br />
Aufgrund des geringen Speichers muss auf die Statusseite verzichtete werden.<br />
=== Gluon 2016.x.y ===<br />
<pre><br />
USB_PACKAGES_BASIC := \<br />
kmod-usb-core \<br />
kmod-usb2<br />
<br />
USB_PACKAGES_MR3020 := \<br />
kmod-nls-base \<br />
kmod-usb-core \<br />
kmod-mii \<br />
kmod-usb-net \<br />
kmod-usb-net-cdc-ether \<br />
kmod-usb-net-rndis \<br />
kmod-usb-uhci<br />
<br />
GLUON_TLMR3020_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_MR3020) -gluon-status-page<br />
</pre><br />
<br />
=== Gluon 2017.x.y ===<br />
<br />
<pre><br />
USB_PACKAGES_BASIC := \<br />
kmod-usb-core \<br />
kmod-usb2<br />
<br />
USB_PACKAGES_MR3020 := \<br />
kmod-nls-base \<br />
kmod-usb-core \<br />
kmod-mii \<br />
kmod-usb-net \<br />
kmod-usb-net-cdc-ether \<br />
kmod-usb-net-rndis \<br />
kmod-usb-uhci<br />
<br />
GLUON_tp-link-tl-mr3020-v1_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_MR3020) -gluon-status-page<br />
</pre><br />
<br />
Die Anpassung weiteren Dateien ist unter [[UMTS]] beschrieben.</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=TP-Link_TL-MR3020&diff=263TP-Link TL-MR30202018-06-22T23:17:33Z<p>Thomas: /* Allgemeines */</p>
<hr />
<div>Der [http://www.tp-link.de/products/details/cat-4691_TL-MR3020.html TP-Link TL-MR3020] ist ein kleiner, handlicher 3G/4G-WLAN-Router und benötigt einen UMTS-Stick oder ein Smartphone mit USB-Tethering.<br />
<br />
== Allgemeines ==<br />
<br />
Aufgrund der geringen Leistung ist der MR3020 als "normaler" FF-Router ungeeignet. Mit UMTS-Stick oder USB-Tethering über Smartphone kann er jedoch eine Internetverbindung zu den [[VPN-Servern]] aufbauen und andere Router temporär ans Internet anbinden.<br />
<br />
== Packages ==<br />
<br />
Da der Speicher sehr begrenzt ist, können keine USB-Netwerk- oder USB-Storage-Packete im Image untergebracht werden. Als mobiler File-Server wäre der Router eher ungeeignet.<br />
<br />
Auf die Status-Seite muss aus Platzgründen leider verzichten werden. Alternative wäre ein Verzicht auf die Web-Setup-Seiten.<br />
<br />
== USB-Support in der site.mk definieren ==<br />
<br />
Die [[site.mk]] unterscheidet sich in den einzelnen Gluon Versionen etwas.<br />
<br />
=== Gluon 2016.x.y ===<br />
<pre><br />
USB_PACKAGES_BASIC := \<br />
kmod-usb-core \<br />
kmod-usb2<br />
<br />
USB_PACKAGES_MR3020 := \<br />
kmod-nls-base \<br />
kmod-usb-core \<br />
kmod-mii \<br />
kmod-usb-net \<br />
kmod-usb-net-cdc-ether \<br />
kmod-usb-net-rndis \<br />
kmod-usb-uhci<br />
<br />
GLUON_TLMR3020_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_MR3020) -gluon-status-page<br />
</pre><br />
<br />
=== Gluon 2017.x.y ===<br />
<br />
<pre><br />
USB_PACKAGES_BASIC := \<br />
kmod-usb-core \<br />
kmod-usb2<br />
<br />
USB_PACKAGES_MR3020 := \<br />
kmod-nls-base \<br />
kmod-usb-core \<br />
kmod-mii \<br />
kmod-usb-net \<br />
kmod-usb-net-cdc-ether \<br />
kmod-usb-net-rndis \<br />
kmod-usb-uhci<br />
<br />
GLUON_tp-link-tl-mr3020-v1_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_MR3020) -gluon-status-page<br />
</pre><br />
<br />
Die Anpassung weiteren Dateien ist unter [[UMTS]] beschrieben.</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=Netgear&diff=262Netgear2018-05-30T23:23:21Z<p>Thomas: /* Stabile Firmware Images Netgear */</p>
<hr />
<div>Die Firma '''Netgear''' stellt Router her, von denen einige durch [[OpenWRT]] / [[Gluon]] unterstützt werden. Um einen Netgear Router für Freifunk zu nutzen, muss die [[Firmware | Original-Firmware]] durch eine Freifunk-Firmware einer Freifunk-Community ersetzt werden.<br />
Die Gesamtliste der Firmware aller unterstützten Router befindet sich unter [http://www.freifunk-rheinbach.de/de-DE/routerimages.html Routerimages].<br />
<br />
== Factory oder Sysupgrade? ==<br />
<br />
Die Firmware gibt es in zwei Varianten ''factory'' und ''sysupgrade''. Die ''factory''-Images dienen der Erstinstallation des Routers, wenn er noch die Original-Firmware des Herstellers hat. Das ''facotory''_Image ersetzt die Original-Firmware auf dem Router. Die ''sysupgrade''-Images sind kleiner und dienen der Aktualisierung der Firmware, wenn der bereits mit der Freifunk-Firmware läuft.<br />
<br />
== Installation ==<br />
<br />
Wie die Firmware auf einem Router installiert wird, wird unter [[Installation]] beschrieben. <br />
<br />
== Stabile Firmware Images Netgear ==<br />
<br />
Die Images sind von uns nicht getestet, da uns keine Router dieser Typen zur Verfügung stehen.<br />
<br />
{| class="wikitable"<br />
! Modell<br />
! colspan="3" | Versionen<br />
|-<br />
| WNDR 3700<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/netgear-wndr3700.img ohne]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/netgear-wndr3700v2.img V2]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/netgear-wndr3700v4.img V4]<br />
|-<br />
| WNDR 3800<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/netgear-wndr3800.img ohne]<br />
|-<br />
| WNDR 4300<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/netgear-wndr4300.img ohne]<br />
|-<br />
| WNDR MAC<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/netgear-wndrmacv2.img V2]<br />
|-<br />
|}<br />
<br />
[[Category:Hersteller]]<br />
[[Category:Firmware]]</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=TP-LINK&diff=261TP-LINK2018-05-30T23:22:23Z<p>Thomas: Neuer Imageserver</p>
<hr />
<div>Die Firma '''TP-LINK''' stellt Router her, von denen die meisten Modelle durch [[OpenWRT]] / [[Gluon]] unterstützt werden. Um einen TP-LINK Router für Freifunk zu nutzen, muss die [[Firmware | Original-Firmware]] durch eine Freifunk-Firmware einer Freifunk-Community ersetzt werden. Die stabile Firmware für Rheinbach basiert seit dem 14.02.2016 auf Gluon v2016.1.x, <br />
<br />
Die WLAN-Router TL-WR-841N(D) und TL-WR-842N(D) sind wahrscheinlich die für Freifunk am häufigsten eingesetzten Modelle. Die Gesamtliste der Firmware aller unterstützten Router befindet sich auf dem [http://images.freifunk-rheinbach.de/ Server für die Images].<br />
<br />
== Factory oder Sysupgrade? ==<br />
<br />
Die Firmware gibt es in zwei Varianten ''factory'' und ''sysupgrade''. Die ''Factory''-Images dienen der Erstinstallation des Routers, wenn er noch die Original-Firmware des Herstellers hat. Das ''Facotory''-Image ersetzt die Original-Firmware auf dem Router. Die ''Sysupgrade''-Images sind kleiner und dienen der Aktualisierung der Firmware, wenn der Router bereits mit einer Freifunk-Firmware läuft.<br />
<br />
Die hier aufgeführten Links verweisen alle auf das Factory-Image. Für die Sysupgrade-Images bitte zum [http://images.freifunk-rheinbach.de/ Server für die Images] gehen.<br />
<br />
== Installation ==<br />
<br />
Wie die Firmware auf einem Router installiert wird, wird unter [[Installation]] beschrieben. <br />
<br />
== TFTP Recovery (De-Bricking) ==<br />
<br />
Wenn die Freifunk Firmware nicht mehr richtig startet und der Router nicht mehr zugänglich ist, kann er meist mit der Original-Firmware zurückgesetzt werden.<br />
<br />
Das einfachste Verfahren ist, ein Boot-Image auf einem TFTP-Server bereitzustellen. Genaue Beschreibungen zu den einzelnen Routern finden sich im OpenWrt-Wiki. Der Router sucht auf einem TFTP-Server mit der Adresse 192.168.0.66 nach eienme Boot-Image für sein Model. Ältere Firmware sucht nach der Adresse 192.168.1.66. Eine kurze Beschreibung findet sich beim [[TP-Link TL-W841ND]]<br />
<br />
Sind Router sind so beschädigt, dass dieses Verfahren nicht funktioniert, könnte ein Recovery über eine interne serielle Schnittstelle den Router retten. Das Recovery mit einem seriellen Kabel ist in der Regel aufwändiger und bei den billigen, alten Routern lohnt die Zeit den Preis nicht. Außerdem kostet das passende Kabel oft so viel wie ein WR841.<br />
<br />
== Getestete Router ==<br />
<br />
Die Freifunk Rheinbach Firmware wurde mit den folgenden Routern getestet. Andere Modelle stehen uns leider nicht zur Verfügung.<br />
<br />
{| class="wikitable"<br />
! Modell<br />
! colspan="4" | Versionen<br />
|-<br />
| Archer C7<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-archer-c7-v2.bin V2]<br />
|-<br />
| TL-MR-3020<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-mr3020-v1.bin V1]<br />
|-<br />
| TL-WR-8421N(D)<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr841n-nd-v7.bin V7]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr841n-nd-v9.bin V9] <br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr841n-nd-v10.bin V10]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr841n-nd-v11.bin V11] <br />
|-<br />
| TL-WR-842N(D) <br />
| [https://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr842n-nd-v2.bin V2]<br />
|-<br />
| TL-WR-941N(D) <br />
| [https://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr941n-nd-v6.bin V6]<br />
|-<br />
| TL-WR-1043N(D) <br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr1043n-nd-v2.bin V2]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr1043n-nd-v3.bin V3]<br />
|-<br />
| TL-WDR-3600<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wdr3600-v1.bin V1]<br />
<br />
|}<br />
<br />
== Stabile Firmware Images TP-LINK ==<br />
<br />
{| class="wikitable"<br />
! Modell<br />
! colspan="7" | Versionen<br />
|-<br />
| CPE210<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-cpe210-v1.0.bin v1.0]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-cpe210-v1.1.bin v1.1]<br />
|-<br />
| CPE220<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-cpe220-v1.0.bin v1.0]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-cpe220-v1.1.bin v1.1]<br />
|-<br />
| CPE510<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-cpe510-v1.0.bin v1.0]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-cpe510-v1.1.bin v1.1]<br />
|-<br />
| CPE520<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-cpe520-v1.0.bin v1.0]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-cpe520-v1.1.bin v1.1]<br />
|-<br />
| TL-MR3020<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-mr3020-v1.bin v1]<br />
|-<br />
| TL-MR3040<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-mr3040-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-mr3040-v2.bin v2]<br />
|-<br />
| TL-MR3220<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-mr3220-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-mr3220-v2.bin v2]<br />
|-<br />
| TL-MR3420<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-mr3420-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-mr3420-v2.bin v2]<br />
|-<br />
| TL-WA701N-ND<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wa701n-nd-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wa701n-nd-v2.bin v2]<br />
|-<br />
| TL-WA750RE<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wa750re-v1.bin v1]<br />
|-<br />
| TL-WA801N-ND<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wa801n-nd-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wa801n-nd-v2.bin v2]<br />
|-<br />
| TL-WA830RE<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wa830re-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wa830re-v2.bin v2]<br />
|-<br />
| TL-WA850RE<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wa850re-v1.bin v1]<br />
|-<br />
| TL-WA860RE<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wa860re-v1.bin v1]<br />
|-<br />
| TL-WA901N-ND<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wa901n-nd-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wa901n-nd-v2.bin v2]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wa901n-nd-v3.bin v3]<br />
|-<br />
| TL-WDR3500<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wdr3500-v1.bin v1]<br />
|-<br />
| TL-WDR3600<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wdr3600-v1.bin v1]<br />
|-<br />
| TL-WDR4300<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wdr4300-v1.bin v1]<br />
|-<br />
| TL-WDR4900<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wdr4900-v1.bin v1]<br />
|-<br />
| TL-WR1043N-ND<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr1043n-nd-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr1043n-nd-v2.bin v2]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr1043n-nd-v3.bin v3]<br />
|-<br />
| TL-WR2543N-ND<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr2543n-nd-v1.bin v1]<br />
|-<br />
| TL-WR703N<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr703n-v1.bin v1]<br />
|-<br />
| TL-WR710N<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr710n-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr710n-v2.bin v2]<br />
|-<br />
| TL-WR740N-ND<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr740n-nd-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr740n-nd-v3.bin v3]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr740n-nd-v4.bin v4]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr740n-nd-v5.bin v5]<br />
|-<br />
| TL-WR741N-ND<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr741n-nd-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr741n-nd-v2.bin v2]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr741n-nd-v4.bin v4]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr741n-nd-v5.bin v5]<br />
|-<br />
| TL-WR743N-ND<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr743n-nd-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr743n-nd-v2.bin v2]<br />
|-<br />
| TL-WR841N-ND<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr841n-nd-v3.bin v3]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr841n-nd-v5.bin v5]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr841n-nd-v7.bin v7]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr841n-nd-v8.bin v8]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr841n-nd-v9.bin v9]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr841n-nd-v10.bin v10]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr841n-nd-v11.bin v11]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr841n-nd-v12.bin v12]<br />
|-<br />
| TL-WR842N-ND<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr842n-nd-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr842n-nd-v2.bin v2]<br />
|-<br />
| TL-WR843N-ND<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr843n-nd-v1.bin v1]<br />
|-<br />
| TL-WR940N-ND<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr940n-nd-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr940n-nd-v2.bin v2]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr940n-nd-v3.bin v3]<br />
|-<br />
| TL-WR941N-ND<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr941n-nd-v2.bin v2]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr941n-nd-v3.bin v3]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr941n-nd-v4.bin v4]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr941n-nd-v5.bin v5]<br />
| [http://images.freifunk-rheinbach.de/firmware/stable/latest/images/factory/tp-link-tl-wr941n-nd-v6.bin v6]<br />
|}<br />
<br />
[[Category:Hersteller]]<br />
[[Category:Firmware]]</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=B.A.T.M.A.N.&diff=260B.A.T.M.A.N.2018-05-27T20:27:42Z<p>Thomas: /* Starten und Aktivieren */ DHCPC ergänzt</p>
<hr />
<div>B.A.T.M.A.N. (Abkürzung für '''B'''etter '''A'''pproach '''T'''o '''M'''obile '''A'''dhoc '''N'''etworking) ist ein Routing-Protokoll für mobile Ad-hoc-Netze. Siehe [https://de.wikipedia.org/wiki/B.A.T.M.A.N. WikiPedia]. Im Freifunk wird unter anderem B.A.T.M.A.N. als Routing-Protokoll eingesetzt.<br />
<br />
== Abstrakt ==<br />
<br />
In diesem Artikel wird beschrieben, wie B.A.T.M.A.N. zusammen mit [[fastd]] auf einem Rechner mit Debian eingerichtet wird und der Rechner direkt an das Netz des Freifunk Rheinland, Domäne Wupper, angebunden wird. Als Beispiel dient die Konfiguration der Freifunk Rheinbach Community. <br />
<br />
Mit Stand Mai 2018 wird auch alfred installiert, aber nicht konfiguriert.<br />
<br />
Die Verbindung der [[Node | Nodes]] (Router) zu den Servern im Internet erfolgt über einen verschlüsselten Tunnel. Bei Freifunk Rheinbach wird für die Tunnel ''fastd'' verwendet. Nodes, die in WLAN Reichweite zueinander stehen, verbinden sich untereinander über ein MESH-Netzwerk. Auch über Kabel (LAN oder WAN-Port) können sich Nodes vermaschen. Auf all diesen Verbindungen wird das Routing-Protokoll B.A.T.M.A.N. verwendet.<br />
<br />
== Hinweise ==<br />
<br />
Ich verwende als Shell die [[bash]]. Standard ist bei Debian 8.7.1 [[dash]]. Die Befehle in den Scripten sind so einfach, dass sie in beiden Shells funktionieren sollten.<br />
<br />
Dieser Beitrag basiert auf zahlreichen Quellen und den Erfahrungen aus den Tests. Soweit möglich versuche ich ältere Befehle durch neuere, moderne Befehle zu ersetzen.<br />
<br />
Der Beitrag [https://www.freifunk-gera-greiz.de/wiki/-/wiki/Allgemein/Raspberry+Pi+mit+B.A.T.M.A.N.+und+fastd+unter+Raspbian Raspberry Pi mit B.A.T.M.A.N. und fastd unter Raspbian] liegt dieser Lösung teilweise zu Grunde. Ich habe jedoch '''brctl''' durch die Befehle von '''ip''' ersetzt.<br />
<br />
== git ==<br />
<br />
Die benötigten Dateien stehen für FF-Rheonbach / Freifunk Rhein-Sieg und die Domäne Wupper in [https://github.com/Byggvir/fastd-BATMAN/ Github].<br />
<br />
Herunterladen mit<br />
<br />
<pre><br />
git clone https://github.com/Byggvir/fastd-BATMAN.git<br />
</pre> <br />
<br />
== Installation der Software ==<br />
<br />
=== B.A.T.M.A.N. und fastd installieren ===<br />
<br />
Die folgenden Befehle und Scripte wurden unter '''Debian 8''', '''Debian 9'''und '''Raspbian 2018-04''' entwickelt und getestet.<br />
<br />
Das folgende Script installiert auf einem Debian 8 / 9 bzw. Raspbian die notwendige Software - einschließlich fastd. Je nach System kann es notwendig sein zusätzliche Pakete zu installieren. Das folgende Script wurde auf zwei relativ frischen, jungfräulichen Debian 8.7.1 getestet.<br />
<br />
Achtung: Die Router verwenden B.A.T.M.A.N. 2017.2 (Stand: 03.02.2018, Gluon v2017.1.4); Aktuell ist 2018.1. Im Debian sind meist ältere Versionen. Deshalb empfiehlt sich eine Installation aus den Quellen<br />
<br />
Vor der Installation mit dem nachfolgenden Script müssen die passenden linunx-header- Dateien für den Kernel installiert sein / werden. <br />
<br />
Z.B.<br />
<br />
'''Debian:''' Für Raspbian befinden sich die Linux-Headers in linux-headers-amd64.<br />
'''Raspbian:''' Für Raspbian befinden sich die Linux-Headers in raspberrypi-kernel-headers.<br />
<br />
<pre><br />
#!/bin/bash<br />
<br />
# Installation B.A.T.M.A.N.<br />
# Version festlegen<br />
<br />
VBAT="2018.1"<br />
SRC="https://downloads.open-mesh.org/batman/releases/batman-adv-${VBAT}"<br />
<br />
# Installation der linux-headers für den Kernel.<br />
<br />
MACHINE=$(uname -m)<br />
<br />
case "$MACHINE" in<br />
<br />
x86_64) <br />
apt install linux-headers-amd64 # Debian<br />
;;<br />
armv7l)<br />
apt install raspberrypi-kernel-headers # Raspian<br />
;;<br />
*)<br />
echo -e "Unbekannte Architektur ${MACHINE}"<br />
exit 1<br />
;;<br />
<br />
esac<br />
<br />
# Wir brauchen ein paar Repos, die nicht im Default einhalten sind.<br />
<br />
grep 'http://repo.universe-factory.net/debian/' /etc/apt/sources.list || echo 'deb http://repo.universe-factory.net/debian/ sid main' >> /etc/apt/sources.list<br />
<br />
# Und den Schlüssel für das Paket. Aktuell: 16EF3F64CB201D9C<br />
<br />
KEY=16EF3F64CB201D9C<br />
gpg --keyserver pgpkeys.mit.edu --recv-key $KEY<br />
gpg -a --export $KEY | apt-key add -<br />
<br />
# Nun die Software, die wahrscheinlich fehlt, inklusive fastd<br />
<br />
apt install apt-transport-https<br />
apt update<br />
apt install build-essential bridge-utils pkg-config libnl-3-dev libnl-genl-3-dev fastd<br />
<br />
# Für alfred benötigte Entwicklunsgbibliotheken<br />
<br />
apt install libnl-3-dev libnl-genl-3-dev libcap-dev libgps-dev<br />
<br />
# Jetzt wird B.A.T.M.A.N. alfred aus den Quellen geladen und installiert<br />
<br />
cd /tmp<br />
wget ${SRC}/alfred-${VBAT}.tar.gz<br />
tar xzf alfred-${VBAT}.tar.gz<br />
cd alfred-${VBAT}<br />
make CONFIG_ALFRED_GPSD=n<br />
make CONFIG_ALFRED_GPSD=n install<br />
<br />
# Jetzt wird B.A.T.M.A.N. batctl aus den Quellen geladen und installiert<br />
<br />
cd /tmp<br />
wget ${SRC}/batctl-${VBAT}.tar.gz<br />
tar xzf batctl-${VBAT}.tar.gz<br />
cd batctl-${VBAT}<br />
make<br />
make install<br />
<br />
<br />
# Jetzt wird B.A.T.M.A.N. batman-adv aus den Quellen geladen und installiert<br />
<br />
cd /tmp<br />
wget ${SRC}/batman-adv-${VBAT}.tar.gz<br />
tar xzf batman-adv-${VBAT}.tar.gz<br />
cd batman-adv-${VBAT}<br />
make<br />
make install<br />
<br />
# Wir können batman-adv gleich starten<br />
<br />
modprobe batman-adv<br />
<br />
# ... und in die /etc/modules eintragen, damit es auch bei einem Neustart vorhanden ist<br />
<br />
grep '^batman-adv' /etc/modules || echo -e '#B.A.T.M.A.N für Freifunk\nbatman-adv' >> /etc/modules<br />
<br />
# zum Schluss legen wir uns noch ein Verzeichnis für die Konfiguration der fastd-Tunnel an.<br />
<br />
mkdir -p /etc/fastd/ffrhb/peers<br />
<br />
</pre><br />
<br />
== Konfiguration ==<br />
<br />
=== B.A.T.M.A.N. konfigurieren ===<br />
<br />
Der Befehl ''modprobe batman-adv'' startes B.A.T.M.A.N. gleich nach der Installation. Durch Aufnahme von ''batman-adv'' in die Datei ''/etc/modules'', wird B.A.T.M.A.N. beim Neustart des Rechner geladen. Beides wird bereits mit dem obigen Script erledigt, so dass wir fertig sind.<br />
<br />
=== fastd konfigurieren ===<br />
<br />
Das script ''/etc/init.d/fastd'' startet die Default-Konfiguration in ''/etc/default/fastd'' und alle Konfigurationen in ''/etc/fastd/*/fastd.conf''. Eine Konfiguration in ''/etc/fastd/fastd.conf'' (wie in OpenSuSE) hat daher keine Auswirkung und wird nicht geladen.<br />
<br />
Die folgende Konfigurationsdatei ''fastd.conf'' muss daher in das Verzeichnis ''/etc/fastd/ffrhb/'' kopiert werden.<br />
<br />
<br />
Der ''secret key'' in der Datei dient nur als Beispiel und ist durch einen eigenen Schlüssel zu ersetzen. Ein eigener Schlüssel wird mit ''fastd --generate-key'' erzeugt.<br />
<br />
Die MTU beträgt für Freifunk Rheinland zur Zeit 1364 Byte.<br />
<br />
Das peer limit sollte auf 1 stehen, auch wenn 10 Server definiert sind. Mehrere Tunnel zur gleichen Zeit bieten zur Zeit keine Vorteile und belasten die Server.<br />
<br />
==== Datei /etc/fastd/ffrhb/fastd.conf ====<br />
<br />
<pre><br />
# Log warnings and errors to stderr<br />
log level warn;<br />
<br />
# Log everything to syslog<br />
log to syslog level warn;<br />
<br />
# Set the interface name<br />
interface "mesh-vpn";<br />
<br />
# Support salsa2012+umac and null methods, prefer salsa2012+umac<br />
method "salsa2012+umac";<br />
method "null";<br />
<br />
mode tap;<br />
<br />
# Bind to a fixed port, IPv4 only<br />
bind 0.0.0.0:53757;<br />
<br />
# Please replace the key with your own key.<br />
<br />
# Secret key generated by `fastd --generate-key`<br />
secret "e0e07c1462748f4b0f36423c0ce5c4169e48354a07a3b908435f8ab128259c53";<br />
# Secret: e0e07c1462748f4b0f36423c0ce5c4169e48354a07a3b908435f8ab128259c53<br />
# Public: 72dc4c1aa15cfe4ae5d54caccd8efbd1af8848770843b26a58ed2fb8edb82d50<br />
<br />
secure handshakes yes;<br />
<br />
# Set the interface MTU for TAP mode with xsalsa20/aes128 over IPv4 with a base MTU of 1492 (PPPoE)<br />
# (see MTU selection documentation)<br />
# For Freifunk Rheinland is the MTU 1364<br />
<br />
mtu 1364;<br />
<br />
peer limit 1;<br />
<br />
# Include peers from the directory 'peers'<br />
include peers from "/etc/fastd/ffrhb/peers";<br />
<br />
## IP v6 Adresse muss ggf. nach ip link set up dev bat0 gesetzt werden mit:<br />
## ip addr add dev bat0 fda0:747e:ab29:2241:.../64 scope global<br />
<br />
on up "<br />
/etc/fastd/ffrhb/on-up.sh $INTERFACE<br />
";<br />
</pre><br />
<br />
Die Schnittstelle ''mesh-vpn'' muss B.A.T.M.A.N. als Interface hinzugefügt werden und benötigt eine IPv6 Adresss mit scope global. Dies geschieht mit folgenden Script, dass unter /etc/fastd/ffrhb/on-up.sh gespeichert wird. Die MTU der Netzwerkschnittstelle ''bat0'' muss auf die MTU der Freifunk Community gesetzt werden. Für Rheinbach (Domäne Wupper ist es zur Zeit 1364).<br />
<br />
==== Datei /etc/fastd/ffrhb/on-up.sh ====<br />
<br />
Der Unterschied des folgenden Scriptes zu anderen Erklärungen / Beispielen im Internet ist, dass hier eine globale IPv6 Adresse für das Interface bat0 erzeugt wird und die MTU an die Bedürfnisse der FF-Rheinland angepasst wird. Deshalb erfolgt dies in einem eigenen Script und nicht in der fastd.conf. Das Script muss von fastd über ''on up'' aufgerufen werden.<br />
<br />
<pre><br />
#!/bin/bash<br />
<br />
# Execute when fastd is going up<br />
# Autor: Thomas Arend<br />
# (c) 2017 by Thomas Arend<br />
# Date: 27.05.2018<br />
<br />
INTERFACE=${1:-mesh-vpn}<br />
logger "fastd on-up started"<br />
<br />
# Start meshing on fastd tunnel<br />
ip link set up dev $INTERFACE || logger "Error: Interface $INTERFACE not set up"<br />
<br />
# Add tunnel interface to mesh<br />
batctl if add $INTERFACE || logger "Error: Interface $INTERFACE not added to batman"<br />
#sysctl net.ipv6.conf.bat0.disable_ipv6=1<br />
#sysctl net.ipv6.conf.mesh-vpn.disable_ipv6=1<br />
<br />
# Set mtu for bat0<br />
# Change 1364 to your value in the site.conf for the FF firmware<br />
<br />
ip link set up dev bat0 mtu 1364 || logger "Error when setting MTU to 1364"<br />
batctl gw client 45<br />
batctl orig_interval 5000<br />
batctl multicast_mode 0<br />
echo 15 > /sys/class/net/bat0/mesh/hop_penalty<br />
echo 1 > /sys/class/net/bat0/mesh/bridge_loop_avoidance<br />
echo 1 > /sys/class/net/$INTERFACE/batman_adv/no_rebroadcast<br />
<br />
ip link add name br-client type bridge<br />
ip link set bat0 master br-client<br />
<br />
# Add ipv6 addr with scope global to bat0<br />
<br />
NIP='fda0:747e:ab29:2241'<br />
GIP=`ip addr show dev bat0 | grep 'inet6 fe80::.* scope link' | sed 's#.*inet6 fe80::##; s# .*$##'`<br />
<br />
ip addr add ${NIP}:${GIP} dev br-client scope global || logger "Error: IPv6 ${NIP}:${GIP} not set"<br />
</pre><br />
<br />
Alternative für das Bestimmen der IP-Adresse:<br />
<br />
IPv6=`grep 'fe80.*bat0$'/proc/net/if_inet6 | sed 's#fe80000000000000#fda0747eab292241#;s# .*##; s#\([0-9a-f]\{4,4\}\)#\1:#g; s#:$##'`<br />
<br />
==== Datei /etc/fastd/ffrhb/on-down.sh ====<br />
<br />
<pre><br />
#!/bin/bash<br />
<br />
# Execute when fastd is going down<br />
# Autor: Thomas Arend<br />
# (c) 2018 by Thomas Arend<br />
# Date: 27.05.2018<br />
<br />
ip link delete br-client type bridge<br />
ip link set down dev bat0<br />
ip link delete dev bat0<br />
</pre><br />
<br />
==== Schlüssel Dateien für die Peers ====<br />
<br />
Jeder [[Peer]] besitzt wie unser Rechner ein Schlüsselpaar, anhand dessen er eindeutig identifiziert wird. Die öffentlichen Schlüssel der müssen Peers kommen in das Unterverzeichnis ''peers''. Die Namen spielen dabei keine Rolle. Wir verwenden folgende Namenskonvention, um die Peer und öffentlichen Schlüssel zu erkennen: ''mesh_vpn_backbone_peer_wupper&lt;n&gt;''. Diese Namen werden auch in der Firmware verwendet, &lt;n&gt; ist dabei die Nummer des Servers (0-9).<br />
<br />
Beispiel für Wupper 0.<br />
<br />
<pre><br />
key "e52daa654abcf5c20c5b7a74b5145f70a7491435c6ef334ae352e4f19c00e8f5";<br />
remote "0.wupper.ffrl.de" port 53757;<br />
</pre><br />
<br />
==== Anpassungen dhcpcd.conf ====<br />
<br />
In der Datei /etc/dhcpcd.conf müssen unter Rasbian und Debian 9 (8?) folgende Ergänzungen vorgenommen werden:<br />
<br />
<pre><br />
denyinterfaces bat0, mesh-vpn<br />
<br />
interface mesh-vpn<br />
noip4ll<br />
<br />
interface br-client<br />
noipv4ll<br />
<br />
interface bat0<br />
noipv4l<br />
</pre><br />
<br />
Ggf. kann zusätzlich ''br-client'' von DHCPC ausgenommen werden, wenn auf eine IPv4 Adresse 10.x.x.x verzichtet werden kann / soll.<br />
<br />
==== Starten und Aktivieren ====<br />
<br />
Nun muss nur noch ''fastd'' gestartet werden mit:<br />
<br />
service fastd start<br />
<br />
Um ''fastd'' mit jedem Neustart automatisch zu starten, muss der folgende Befehl ausgeführt werden:<br />
<br />
systemctl enable fastd<br />
<br />
=== Test der Konfiguration ===<br />
<br />
Ob alles richtig läuft, zeigen ''ifconfig'', ''systemctl status fastd'' und ''batctl if'' bzw. ''batctl tg''<br />
<br />
<pre><br />
root@medion:~# ifconfig bat0<br />
bat0 Link encap:Ethernet Hardware Adresse 32:e7:53:24:17:5f <br />
inet6-Adresse: fda0:747e:ab29:2241:30e7:53ff:fe24:175f/64 Gültigkeitsbereich:Global<br />
inet6-Adresse: fe80::30e7:53ff:fe24:175f/64 Gültigkeitsbereich:Verbindung<br />
UP BROADCAST RUNNING MULTICAST MTU:1364 Metrik:1<br />
RX packets:61804 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:28 errors:0 dropped:24 overruns:0 carrier:0<br />
Kollisionen:0 Sendewarteschlangenlänge:0 <br />
RX bytes:3708888 (3.5 MiB) TX bytes:3529 (3.4 KiB)<br />
<br />
mesh-vpn Link encap:Ethernet Hardware Adresse aa:53:8d:76:e2:fa <br />
inet6-Adresse: fe80::a853:8dff:fe76:e2fa/64 Gültigkeitsbereich:Verbindung<br />
UP BROADCAST RUNNING MULTICAST MTU:1364 Metrik:1<br />
RX packets:66901 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:23753 errors:0 dropped:0 overruns:0 carrier:0<br />
Kollisionen:0 Sendewarteschlangenlänge:500 <br />
RX bytes:9241074 (8.8 MiB) TX bytes:5150504 (4.9 MiB)<br />
<br />
root@medion:~# systemctl -l status fastd<br />
● fastd.service - LSB: Fast and Secure Tunneling Daemon<br />
Loaded: loaded (/etc/init.d/fastd)<br />
Active: active (running) since Fr 2017-03-03 16:54:08 CET; 26min ago<br />
Process: 2686 ExecStop=/etc/init.d/fastd stop (code=exited, status=0/SUCCESS)<br />
Process: 2697 ExecStart=/etc/init.d/fastd start (code=exited, status=0/SUCCESS)<br />
CGroup: /system.slice/fastd.service<br />
└─2710 /usr/bin/fastd --syslog-level info --config /etc/fastd/ffrhb/fastd.conf<br />
<br />
Mär 03 16:54:08 medion fastd[2697]: Starting Fast and Secure Tunneling Daemon... Autostarting fastd 'ffrhb':.<br />
Mär 03 16:54:08 medion systemd[1]: Started LSB: Fast and Secure Tunneling Daemon.<br />
<br />
root@x2:/etc/fastd/ffrhb/peers# batctl if<br />
mesh-vpn: active<br />
<br />
root@medion:~# batctl tl<br />
[B.A.T.M.A.N. adv 2016.5, MainIF/MAC: mesh-vpn/aa:53:8d:76:e2:fa (bat0/32:e7:53:24:17:5f BATMAN_IV), TTVN: 3]<br />
Client VID Flags Last seen (CRC )<br />
33:33:ff:24:17:5f -1 [.P....] 0.000 (0x2453b430)<br />
33:33:00:00:00:fb -1 [.P....] 0.000 (0x2453b430)<br />
01:00:5e:00:00:01 -1 [.P....] 0.000 (0x2453b430)<br />
32:e7:53:24:17:5f -1 [.P....] 0.000 (0x2453b430)<br />
33:33:00:00:00:01 -1 [.P....] 0.000 (0x2453b430)<br />
</pre><br />
<br />
== Warnungen ==<br />
<br />
Fastd baut den Tunnel über eine beliebige Netzwerkverbindung auf. D.h. der Rechner kann in einem WLAN - privat oder öffentlich - betrieben werden. Dies kann auch ein Freifunk-Netz sein.<br />
<br />
Ist der Rechner in einem Freifunk-Netz, dann baut er einen fastd-Tunnel im fastd-Tunnel des Nodes auf, der die Verbindung zum Internet herstellt. Dies ist nicht sinnvoll und kann Effekte haben, die ich derzeit nicht überblicke und die nicht wünschenswert sind. Ein Effekt wird das Splitten von großen IP-Paketen sein.<br />
<br />
== Ergebnis und Siegerehrung ==<br />
<br />
Über unseren fastd-Tunnel können wir auf die Nodes und die Clients des Freifunknetzes über IPv6 zugreifen.</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=B.A.T.M.A.N.&diff=259B.A.T.M.A.N.2018-05-27T20:22:08Z<p>Thomas: /* Hinweise und Warnungen */</p>
<hr />
<div>B.A.T.M.A.N. (Abkürzung für '''B'''etter '''A'''pproach '''T'''o '''M'''obile '''A'''dhoc '''N'''etworking) ist ein Routing-Protokoll für mobile Ad-hoc-Netze. Siehe [https://de.wikipedia.org/wiki/B.A.T.M.A.N. WikiPedia]. Im Freifunk wird unter anderem B.A.T.M.A.N. als Routing-Protokoll eingesetzt.<br />
<br />
== Abstrakt ==<br />
<br />
In diesem Artikel wird beschrieben, wie B.A.T.M.A.N. zusammen mit [[fastd]] auf einem Rechner mit Debian eingerichtet wird und der Rechner direkt an das Netz des Freifunk Rheinland, Domäne Wupper, angebunden wird. Als Beispiel dient die Konfiguration der Freifunk Rheinbach Community. <br />
<br />
Mit Stand Mai 2018 wird auch alfred installiert, aber nicht konfiguriert.<br />
<br />
Die Verbindung der [[Node | Nodes]] (Router) zu den Servern im Internet erfolgt über einen verschlüsselten Tunnel. Bei Freifunk Rheinbach wird für die Tunnel ''fastd'' verwendet. Nodes, die in WLAN Reichweite zueinander stehen, verbinden sich untereinander über ein MESH-Netzwerk. Auch über Kabel (LAN oder WAN-Port) können sich Nodes vermaschen. Auf all diesen Verbindungen wird das Routing-Protokoll B.A.T.M.A.N. verwendet.<br />
<br />
== Hinweise ==<br />
<br />
Ich verwende als Shell die [[bash]]. Standard ist bei Debian 8.7.1 [[dash]]. Die Befehle in den Scripten sind so einfach, dass sie in beiden Shells funktionieren sollten.<br />
<br />
Dieser Beitrag basiert auf zahlreichen Quellen und den Erfahrungen aus den Tests. Soweit möglich versuche ich ältere Befehle durch neuere, moderne Befehle zu ersetzen.<br />
<br />
Der Beitrag [https://www.freifunk-gera-greiz.de/wiki/-/wiki/Allgemein/Raspberry+Pi+mit+B.A.T.M.A.N.+und+fastd+unter+Raspbian Raspberry Pi mit B.A.T.M.A.N. und fastd unter Raspbian] liegt dieser Lösung teilweise zu Grunde. Ich habe jedoch '''brctl''' durch die Befehle von '''ip''' ersetzt.<br />
<br />
== git ==<br />
<br />
Die benötigten Dateien stehen für FF-Rheonbach / Freifunk Rhein-Sieg und die Domäne Wupper in [https://github.com/Byggvir/fastd-BATMAN/ Github].<br />
<br />
Herunterladen mit<br />
<br />
<pre><br />
git clone https://github.com/Byggvir/fastd-BATMAN.git<br />
</pre> <br />
<br />
== Installation der Software ==<br />
<br />
=== B.A.T.M.A.N. und fastd installieren ===<br />
<br />
Die folgenden Befehle und Scripte wurden unter '''Debian 8''', '''Debian 9'''und '''Raspbian 2018-04''' entwickelt und getestet.<br />
<br />
Das folgende Script installiert auf einem Debian 8 / 9 bzw. Raspbian die notwendige Software - einschließlich fastd. Je nach System kann es notwendig sein zusätzliche Pakete zu installieren. Das folgende Script wurde auf zwei relativ frischen, jungfräulichen Debian 8.7.1 getestet.<br />
<br />
Achtung: Die Router verwenden B.A.T.M.A.N. 2017.2 (Stand: 03.02.2018, Gluon v2017.1.4); Aktuell ist 2018.1. Im Debian sind meist ältere Versionen. Deshalb empfiehlt sich eine Installation aus den Quellen<br />
<br />
Vor der Installation mit dem nachfolgenden Script müssen die passenden linunx-header- Dateien für den Kernel installiert sein / werden. <br />
<br />
Z.B.<br />
<br />
'''Debian:''' Für Raspbian befinden sich die Linux-Headers in linux-headers-amd64.<br />
'''Raspbian:''' Für Raspbian befinden sich die Linux-Headers in raspberrypi-kernel-headers.<br />
<br />
<pre><br />
#!/bin/bash<br />
<br />
# Installation B.A.T.M.A.N.<br />
# Version festlegen<br />
<br />
VBAT="2018.1"<br />
SRC="https://downloads.open-mesh.org/batman/releases/batman-adv-${VBAT}"<br />
<br />
# Installation der linux-headers für den Kernel.<br />
<br />
MACHINE=$(uname -m)<br />
<br />
case "$MACHINE" in<br />
<br />
x86_64) <br />
apt install linux-headers-amd64 # Debian<br />
;;<br />
armv7l)<br />
apt install raspberrypi-kernel-headers # Raspian<br />
;;<br />
*)<br />
echo -e "Unbekannte Architektur ${MACHINE}"<br />
exit 1<br />
;;<br />
<br />
esac<br />
<br />
# Wir brauchen ein paar Repos, die nicht im Default einhalten sind.<br />
<br />
grep 'http://repo.universe-factory.net/debian/' /etc/apt/sources.list || echo 'deb http://repo.universe-factory.net/debian/ sid main' >> /etc/apt/sources.list<br />
<br />
# Und den Schlüssel für das Paket. Aktuell: 16EF3F64CB201D9C<br />
<br />
KEY=16EF3F64CB201D9C<br />
gpg --keyserver pgpkeys.mit.edu --recv-key $KEY<br />
gpg -a --export $KEY | apt-key add -<br />
<br />
# Nun die Software, die wahrscheinlich fehlt, inklusive fastd<br />
<br />
apt install apt-transport-https<br />
apt update<br />
apt install build-essential bridge-utils pkg-config libnl-3-dev libnl-genl-3-dev fastd<br />
<br />
# Für alfred benötigte Entwicklunsgbibliotheken<br />
<br />
apt install libnl-3-dev libnl-genl-3-dev libcap-dev libgps-dev<br />
<br />
# Jetzt wird B.A.T.M.A.N. alfred aus den Quellen geladen und installiert<br />
<br />
cd /tmp<br />
wget ${SRC}/alfred-${VBAT}.tar.gz<br />
tar xzf alfred-${VBAT}.tar.gz<br />
cd alfred-${VBAT}<br />
make CONFIG_ALFRED_GPSD=n<br />
make CONFIG_ALFRED_GPSD=n install<br />
<br />
# Jetzt wird B.A.T.M.A.N. batctl aus den Quellen geladen und installiert<br />
<br />
cd /tmp<br />
wget ${SRC}/batctl-${VBAT}.tar.gz<br />
tar xzf batctl-${VBAT}.tar.gz<br />
cd batctl-${VBAT}<br />
make<br />
make install<br />
<br />
<br />
# Jetzt wird B.A.T.M.A.N. batman-adv aus den Quellen geladen und installiert<br />
<br />
cd /tmp<br />
wget ${SRC}/batman-adv-${VBAT}.tar.gz<br />
tar xzf batman-adv-${VBAT}.tar.gz<br />
cd batman-adv-${VBAT}<br />
make<br />
make install<br />
<br />
# Wir können batman-adv gleich starten<br />
<br />
modprobe batman-adv<br />
<br />
# ... und in die /etc/modules eintragen, damit es auch bei einem Neustart vorhanden ist<br />
<br />
grep '^batman-adv' /etc/modules || echo -e '#B.A.T.M.A.N für Freifunk\nbatman-adv' >> /etc/modules<br />
<br />
# zum Schluss legen wir uns noch ein Verzeichnis für die Konfiguration der fastd-Tunnel an.<br />
<br />
mkdir -p /etc/fastd/ffrhb/peers<br />
<br />
</pre><br />
<br />
== Konfiguration ==<br />
<br />
=== B.A.T.M.A.N. konfigurieren ===<br />
<br />
Der Befehl ''modprobe batman-adv'' startes B.A.T.M.A.N. gleich nach der Installation. Durch Aufnahme von ''batman-adv'' in die Datei ''/etc/modules'', wird B.A.T.M.A.N. beim Neustart des Rechner geladen. Beides wird bereits mit dem obigen Script erledigt, so dass wir fertig sind.<br />
<br />
=== fastd konfigurieren ===<br />
<br />
Das script ''/etc/init.d/fastd'' startet die Default-Konfiguration in ''/etc/default/fastd'' und alle Konfigurationen in ''/etc/fastd/*/fastd.conf''. Eine Konfiguration in ''/etc/fastd/fastd.conf'' (wie in OpenSuSE) hat daher keine Auswirkung und wird nicht geladen.<br />
<br />
Die folgende Konfigurationsdatei ''fastd.conf'' muss daher in das Verzeichnis ''/etc/fastd/ffrhb/'' kopiert werden.<br />
<br />
<br />
Der ''secret key'' in der Datei dient nur als Beispiel und ist durch einen eigenen Schlüssel zu ersetzen. Ein eigener Schlüssel wird mit ''fastd --generate-key'' erzeugt.<br />
<br />
Die MTU beträgt für Freifunk Rheinland zur Zeit 1364 Byte.<br />
<br />
Das peer limit sollte auf 1 stehen, auch wenn 10 Server definiert sind. Mehrere Tunnel zur gleichen Zeit bieten zur Zeit keine Vorteile und belasten die Server.<br />
<br />
==== Datei /etc/fastd/ffrhb/fastd.conf ====<br />
<br />
<pre><br />
# Log warnings and errors to stderr<br />
log level warn;<br />
<br />
# Log everything to syslog<br />
log to syslog level warn;<br />
<br />
# Set the interface name<br />
interface "mesh-vpn";<br />
<br />
# Support salsa2012+umac and null methods, prefer salsa2012+umac<br />
method "salsa2012+umac";<br />
method "null";<br />
<br />
mode tap;<br />
<br />
# Bind to a fixed port, IPv4 only<br />
bind 0.0.0.0:53757;<br />
<br />
# Please replace the key with your own key.<br />
<br />
# Secret key generated by `fastd --generate-key`<br />
secret "e0e07c1462748f4b0f36423c0ce5c4169e48354a07a3b908435f8ab128259c53";<br />
# Secret: e0e07c1462748f4b0f36423c0ce5c4169e48354a07a3b908435f8ab128259c53<br />
# Public: 72dc4c1aa15cfe4ae5d54caccd8efbd1af8848770843b26a58ed2fb8edb82d50<br />
<br />
secure handshakes yes;<br />
<br />
# Set the interface MTU for TAP mode with xsalsa20/aes128 over IPv4 with a base MTU of 1492 (PPPoE)<br />
# (see MTU selection documentation)<br />
# For Freifunk Rheinland is the MTU 1364<br />
<br />
mtu 1364;<br />
<br />
peer limit 1;<br />
<br />
# Include peers from the directory 'peers'<br />
include peers from "/etc/fastd/ffrhb/peers";<br />
<br />
## IP v6 Adresse muss ggf. nach ip link set up dev bat0 gesetzt werden mit:<br />
## ip addr add dev bat0 fda0:747e:ab29:2241:.../64 scope global<br />
<br />
on up "<br />
/etc/fastd/ffrhb/on-up.sh $INTERFACE<br />
";<br />
</pre><br />
<br />
Die Schnittstelle ''mesh-vpn'' muss B.A.T.M.A.N. als Interface hinzugefügt werden und benötigt eine IPv6 Adresss mit scope global. Dies geschieht mit folgenden Script, dass unter /etc/fastd/ffrhb/on-up.sh gespeichert wird. Die MTU der Netzwerkschnittstelle ''bat0'' muss auf die MTU der Freifunk Community gesetzt werden. Für Rheinbach (Domäne Wupper ist es zur Zeit 1364).<br />
<br />
==== Datei /etc/fastd/ffrhb/on-up.sh ====<br />
<br />
Der Unterschied des folgenden Scriptes zu anderen Erklärungen / Beispielen im Internet ist, dass hier eine globale IPv6 Adresse für das Interface bat0 erzeugt wird und die MTU an die Bedürfnisse der FF-Rheinland angepasst wird. Deshalb erfolgt dies in einem eigenen Script und nicht in der fastd.conf. Das Script muss von fastd über ''on up'' aufgerufen werden.<br />
<br />
<pre><br />
#!/bin/bash<br />
<br />
# Execute when fastd is going up<br />
# Autor: Thomas Arend<br />
# (c) 2017 by Thomas Arend<br />
# Date: 27.05.2018<br />
<br />
INTERFACE=${1:-mesh-vpn}<br />
logger "fastd on-up started"<br />
<br />
# Start meshing on fastd tunnel<br />
ip link set up dev $INTERFACE || logger "Error: Interface $INTERFACE not set up"<br />
<br />
# Add tunnel interface to mesh<br />
batctl if add $INTERFACE || logger "Error: Interface $INTERFACE not added to batman"<br />
#sysctl net.ipv6.conf.bat0.disable_ipv6=1<br />
#sysctl net.ipv6.conf.mesh-vpn.disable_ipv6=1<br />
<br />
# Set mtu for bat0<br />
# Change 1364 to your value in the site.conf for the FF firmware<br />
<br />
ip link set up dev bat0 mtu 1364 || logger "Error when setting MTU to 1364"<br />
batctl gw client 45<br />
batctl orig_interval 5000<br />
batctl multicast_mode 0<br />
echo 15 > /sys/class/net/bat0/mesh/hop_penalty<br />
echo 1 > /sys/class/net/bat0/mesh/bridge_loop_avoidance<br />
echo 1 > /sys/class/net/$INTERFACE/batman_adv/no_rebroadcast<br />
<br />
ip link add name br-client type bridge<br />
ip link set bat0 master br-client<br />
<br />
# Add ipv6 addr with scope global to bat0<br />
<br />
NIP='fda0:747e:ab29:2241'<br />
GIP=`ip addr show dev bat0 | grep 'inet6 fe80::.* scope link' | sed 's#.*inet6 fe80::##; s# .*$##'`<br />
<br />
ip addr add ${NIP}:${GIP} dev br-client scope global || logger "Error: IPv6 ${NIP}:${GIP} not set"<br />
</pre><br />
<br />
Alternative für das Bestimmen der IP-Adresse:<br />
<br />
IPv6=`grep 'fe80.*bat0$'/proc/net/if_inet6 | sed 's#fe80000000000000#fda0747eab292241#;s# .*##; s#\([0-9a-f]\{4,4\}\)#\1:#g; s#:$##'`<br />
<br />
==== Datei /etc/fastd/ffrhb/on-down.sh ====<br />
<br />
<pre><br />
#!/bin/bash<br />
<br />
# Execute when fastd is going down<br />
# Autor: Thomas Arend<br />
# (c) 2018 by Thomas Arend<br />
# Date: 27.05.2018<br />
<br />
ip link delete br-client type bridge<br />
ip link set down dev bat0<br />
ip link delete dev bat0<br />
</pre><br />
<br />
==== Schlüssel Dateien für die Peers ====<br />
<br />
Jeder [[Peer]] besitzt wie unser Rechner ein Schlüsselpaar, anhand dessen er eindeutig identifiziert wird. Die öffentlichen Schlüssel der müssen Peers kommen in das Unterverzeichnis ''peers''. Die Namen spielen dabei keine Rolle. Wir verwenden folgende Namenskonvention, um die Peer und öffentlichen Schlüssel zu erkennen: ''mesh_vpn_backbone_peer_wupper&lt;n&gt;''. Diese Namen werden auch in der Firmware verwendet, &lt;n&gt; ist dabei die Nummer des Servers (0-9).<br />
<br />
Beispiel für Wupper 0.<br />
<br />
<pre><br />
key "e52daa654abcf5c20c5b7a74b5145f70a7491435c6ef334ae352e4f19c00e8f5";<br />
remote "0.wupper.ffrl.de" port 53757;<br />
</pre><br />
<br />
==== Starten und Aktivieren ====<br />
<br />
Nun muss nur noch ''fastd'' gestartet werden mit:<br />
<br />
service fastd start<br />
<br />
Um ''fastd'' mit jedem Neustart automatisch zu starten, muss der folgende Befehl ausgeführt werden:<br />
<br />
systemctl enable fastd<br />
<br />
=== Test der Konfiguration ===<br />
<br />
Ob alles richtig läuft, zeigen ''ifconfig'', ''systemctl status fastd'' und ''batctl if'' bzw. ''batctl tg''<br />
<br />
<pre><br />
root@medion:~# ifconfig bat0<br />
bat0 Link encap:Ethernet Hardware Adresse 32:e7:53:24:17:5f <br />
inet6-Adresse: fda0:747e:ab29:2241:30e7:53ff:fe24:175f/64 Gültigkeitsbereich:Global<br />
inet6-Adresse: fe80::30e7:53ff:fe24:175f/64 Gültigkeitsbereich:Verbindung<br />
UP BROADCAST RUNNING MULTICAST MTU:1364 Metrik:1<br />
RX packets:61804 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:28 errors:0 dropped:24 overruns:0 carrier:0<br />
Kollisionen:0 Sendewarteschlangenlänge:0 <br />
RX bytes:3708888 (3.5 MiB) TX bytes:3529 (3.4 KiB)<br />
<br />
mesh-vpn Link encap:Ethernet Hardware Adresse aa:53:8d:76:e2:fa <br />
inet6-Adresse: fe80::a853:8dff:fe76:e2fa/64 Gültigkeitsbereich:Verbindung<br />
UP BROADCAST RUNNING MULTICAST MTU:1364 Metrik:1<br />
RX packets:66901 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:23753 errors:0 dropped:0 overruns:0 carrier:0<br />
Kollisionen:0 Sendewarteschlangenlänge:500 <br />
RX bytes:9241074 (8.8 MiB) TX bytes:5150504 (4.9 MiB)<br />
<br />
root@medion:~# systemctl -l status fastd<br />
● fastd.service - LSB: Fast and Secure Tunneling Daemon<br />
Loaded: loaded (/etc/init.d/fastd)<br />
Active: active (running) since Fr 2017-03-03 16:54:08 CET; 26min ago<br />
Process: 2686 ExecStop=/etc/init.d/fastd stop (code=exited, status=0/SUCCESS)<br />
Process: 2697 ExecStart=/etc/init.d/fastd start (code=exited, status=0/SUCCESS)<br />
CGroup: /system.slice/fastd.service<br />
└─2710 /usr/bin/fastd --syslog-level info --config /etc/fastd/ffrhb/fastd.conf<br />
<br />
Mär 03 16:54:08 medion fastd[2697]: Starting Fast and Secure Tunneling Daemon... Autostarting fastd 'ffrhb':.<br />
Mär 03 16:54:08 medion systemd[1]: Started LSB: Fast and Secure Tunneling Daemon.<br />
<br />
root@x2:/etc/fastd/ffrhb/peers# batctl if<br />
mesh-vpn: active<br />
<br />
root@medion:~# batctl tl<br />
[B.A.T.M.A.N. adv 2016.5, MainIF/MAC: mesh-vpn/aa:53:8d:76:e2:fa (bat0/32:e7:53:24:17:5f BATMAN_IV), TTVN: 3]<br />
Client VID Flags Last seen (CRC )<br />
33:33:ff:24:17:5f -1 [.P....] 0.000 (0x2453b430)<br />
33:33:00:00:00:fb -1 [.P....] 0.000 (0x2453b430)<br />
01:00:5e:00:00:01 -1 [.P....] 0.000 (0x2453b430)<br />
32:e7:53:24:17:5f -1 [.P....] 0.000 (0x2453b430)<br />
33:33:00:00:00:01 -1 [.P....] 0.000 (0x2453b430)<br />
</pre><br />
<br />
== Warnungen ==<br />
<br />
Fastd baut den Tunnel über eine beliebige Netzwerkverbindung auf. D.h. der Rechner kann in einem WLAN - privat oder öffentlich - betrieben werden. Dies kann auch ein Freifunk-Netz sein.<br />
<br />
Ist der Rechner in einem Freifunk-Netz, dann baut er einen fastd-Tunnel im fastd-Tunnel des Nodes auf, der die Verbindung zum Internet herstellt. Dies ist nicht sinnvoll und kann Effekte haben, die ich derzeit nicht überblicke und die nicht wünschenswert sind. Ein Effekt wird das Splitten von großen IP-Paketen sein.<br />
<br />
== Ergebnis und Siegerehrung ==<br />
<br />
Über unseren fastd-Tunnel können wir auf die Nodes und die Clients des Freifunknetzes über IPv6 zugreifen.</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=B.A.T.M.A.N.&diff=258B.A.T.M.A.N.2018-05-27T20:21:29Z<p>Thomas: /* Datei /etc/fastd/ffrhb/on-up.sh */</p>
<hr />
<div>B.A.T.M.A.N. (Abkürzung für '''B'''etter '''A'''pproach '''T'''o '''M'''obile '''A'''dhoc '''N'''etworking) ist ein Routing-Protokoll für mobile Ad-hoc-Netze. Siehe [https://de.wikipedia.org/wiki/B.A.T.M.A.N. WikiPedia]. Im Freifunk wird unter anderem B.A.T.M.A.N. als Routing-Protokoll eingesetzt.<br />
<br />
== Abstrakt ==<br />
<br />
In diesem Artikel wird beschrieben, wie B.A.T.M.A.N. zusammen mit [[fastd]] auf einem Rechner mit Debian eingerichtet wird und der Rechner direkt an das Netz des Freifunk Rheinland, Domäne Wupper, angebunden wird. Als Beispiel dient die Konfiguration der Freifunk Rheinbach Community. <br />
<br />
Mit Stand Mai 2018 wird auch alfred installiert, aber nicht konfiguriert.<br />
<br />
Die Verbindung der [[Node | Nodes]] (Router) zu den Servern im Internet erfolgt über einen verschlüsselten Tunnel. Bei Freifunk Rheinbach wird für die Tunnel ''fastd'' verwendet. Nodes, die in WLAN Reichweite zueinander stehen, verbinden sich untereinander über ein MESH-Netzwerk. Auch über Kabel (LAN oder WAN-Port) können sich Nodes vermaschen. Auf all diesen Verbindungen wird das Routing-Protokoll B.A.T.M.A.N. verwendet.<br />
<br />
== Hinweise ==<br />
<br />
Ich verwende als Shell die [[bash]]. Standard ist bei Debian 8.7.1 [[dash]]. Die Befehle in den Scripten sind so einfach, dass sie in beiden Shells funktionieren sollten.<br />
<br />
Dieser Beitrag basiert auf zahlreichen Quellen und den Erfahrungen aus den Tests. Soweit möglich versuche ich ältere Befehle durch neuere, moderne Befehle zu ersetzen.<br />
<br />
Der Beitrag [https://www.freifunk-gera-greiz.de/wiki/-/wiki/Allgemein/Raspberry+Pi+mit+B.A.T.M.A.N.+und+fastd+unter+Raspbian Raspberry Pi mit B.A.T.M.A.N. und fastd unter Raspbian] liegt dieser Lösung teilweise zu Grunde. Ich habe jedoch '''brctl''' durch die Befehle von '''ip''' ersetzt.<br />
<br />
== git ==<br />
<br />
Die benötigten Dateien stehen für FF-Rheonbach / Freifunk Rhein-Sieg und die Domäne Wupper in [https://github.com/Byggvir/fastd-BATMAN/ Github].<br />
<br />
Herunterladen mit<br />
<br />
<pre><br />
git clone https://github.com/Byggvir/fastd-BATMAN.git<br />
</pre> <br />
<br />
== Installation der Software ==<br />
<br />
=== B.A.T.M.A.N. und fastd installieren ===<br />
<br />
Die folgenden Befehle und Scripte wurden unter '''Debian 8''', '''Debian 9'''und '''Raspbian 2018-04''' entwickelt und getestet.<br />
<br />
Das folgende Script installiert auf einem Debian 8 / 9 bzw. Raspbian die notwendige Software - einschließlich fastd. Je nach System kann es notwendig sein zusätzliche Pakete zu installieren. Das folgende Script wurde auf zwei relativ frischen, jungfräulichen Debian 8.7.1 getestet.<br />
<br />
Achtung: Die Router verwenden B.A.T.M.A.N. 2017.2 (Stand: 03.02.2018, Gluon v2017.1.4); Aktuell ist 2018.1. Im Debian sind meist ältere Versionen. Deshalb empfiehlt sich eine Installation aus den Quellen<br />
<br />
Vor der Installation mit dem nachfolgenden Script müssen die passenden linunx-header- Dateien für den Kernel installiert sein / werden. <br />
<br />
Z.B.<br />
<br />
'''Debian:''' Für Raspbian befinden sich die Linux-Headers in linux-headers-amd64.<br />
'''Raspbian:''' Für Raspbian befinden sich die Linux-Headers in raspberrypi-kernel-headers.<br />
<br />
<pre><br />
#!/bin/bash<br />
<br />
# Installation B.A.T.M.A.N.<br />
# Version festlegen<br />
<br />
VBAT="2018.1"<br />
SRC="https://downloads.open-mesh.org/batman/releases/batman-adv-${VBAT}"<br />
<br />
# Installation der linux-headers für den Kernel.<br />
<br />
MACHINE=$(uname -m)<br />
<br />
case "$MACHINE" in<br />
<br />
x86_64) <br />
apt install linux-headers-amd64 # Debian<br />
;;<br />
armv7l)<br />
apt install raspberrypi-kernel-headers # Raspian<br />
;;<br />
*)<br />
echo -e "Unbekannte Architektur ${MACHINE}"<br />
exit 1<br />
;;<br />
<br />
esac<br />
<br />
# Wir brauchen ein paar Repos, die nicht im Default einhalten sind.<br />
<br />
grep 'http://repo.universe-factory.net/debian/' /etc/apt/sources.list || echo 'deb http://repo.universe-factory.net/debian/ sid main' >> /etc/apt/sources.list<br />
<br />
# Und den Schlüssel für das Paket. Aktuell: 16EF3F64CB201D9C<br />
<br />
KEY=16EF3F64CB201D9C<br />
gpg --keyserver pgpkeys.mit.edu --recv-key $KEY<br />
gpg -a --export $KEY | apt-key add -<br />
<br />
# Nun die Software, die wahrscheinlich fehlt, inklusive fastd<br />
<br />
apt install apt-transport-https<br />
apt update<br />
apt install build-essential bridge-utils pkg-config libnl-3-dev libnl-genl-3-dev fastd<br />
<br />
# Für alfred benötigte Entwicklunsgbibliotheken<br />
<br />
apt install libnl-3-dev libnl-genl-3-dev libcap-dev libgps-dev<br />
<br />
# Jetzt wird B.A.T.M.A.N. alfred aus den Quellen geladen und installiert<br />
<br />
cd /tmp<br />
wget ${SRC}/alfred-${VBAT}.tar.gz<br />
tar xzf alfred-${VBAT}.tar.gz<br />
cd alfred-${VBAT}<br />
make CONFIG_ALFRED_GPSD=n<br />
make CONFIG_ALFRED_GPSD=n install<br />
<br />
# Jetzt wird B.A.T.M.A.N. batctl aus den Quellen geladen und installiert<br />
<br />
cd /tmp<br />
wget ${SRC}/batctl-${VBAT}.tar.gz<br />
tar xzf batctl-${VBAT}.tar.gz<br />
cd batctl-${VBAT}<br />
make<br />
make install<br />
<br />
<br />
# Jetzt wird B.A.T.M.A.N. batman-adv aus den Quellen geladen und installiert<br />
<br />
cd /tmp<br />
wget ${SRC}/batman-adv-${VBAT}.tar.gz<br />
tar xzf batman-adv-${VBAT}.tar.gz<br />
cd batman-adv-${VBAT}<br />
make<br />
make install<br />
<br />
# Wir können batman-adv gleich starten<br />
<br />
modprobe batman-adv<br />
<br />
# ... und in die /etc/modules eintragen, damit es auch bei einem Neustart vorhanden ist<br />
<br />
grep '^batman-adv' /etc/modules || echo -e '#B.A.T.M.A.N für Freifunk\nbatman-adv' >> /etc/modules<br />
<br />
# zum Schluss legen wir uns noch ein Verzeichnis für die Konfiguration der fastd-Tunnel an.<br />
<br />
mkdir -p /etc/fastd/ffrhb/peers<br />
<br />
</pre><br />
<br />
== Konfiguration ==<br />
<br />
=== B.A.T.M.A.N. konfigurieren ===<br />
<br />
Der Befehl ''modprobe batman-adv'' startes B.A.T.M.A.N. gleich nach der Installation. Durch Aufnahme von ''batman-adv'' in die Datei ''/etc/modules'', wird B.A.T.M.A.N. beim Neustart des Rechner geladen. Beides wird bereits mit dem obigen Script erledigt, so dass wir fertig sind.<br />
<br />
=== fastd konfigurieren ===<br />
<br />
Das script ''/etc/init.d/fastd'' startet die Default-Konfiguration in ''/etc/default/fastd'' und alle Konfigurationen in ''/etc/fastd/*/fastd.conf''. Eine Konfiguration in ''/etc/fastd/fastd.conf'' (wie in OpenSuSE) hat daher keine Auswirkung und wird nicht geladen.<br />
<br />
Die folgende Konfigurationsdatei ''fastd.conf'' muss daher in das Verzeichnis ''/etc/fastd/ffrhb/'' kopiert werden.<br />
<br />
<br />
Der ''secret key'' in der Datei dient nur als Beispiel und ist durch einen eigenen Schlüssel zu ersetzen. Ein eigener Schlüssel wird mit ''fastd --generate-key'' erzeugt.<br />
<br />
Die MTU beträgt für Freifunk Rheinland zur Zeit 1364 Byte.<br />
<br />
Das peer limit sollte auf 1 stehen, auch wenn 10 Server definiert sind. Mehrere Tunnel zur gleichen Zeit bieten zur Zeit keine Vorteile und belasten die Server.<br />
<br />
==== Datei /etc/fastd/ffrhb/fastd.conf ====<br />
<br />
<pre><br />
# Log warnings and errors to stderr<br />
log level warn;<br />
<br />
# Log everything to syslog<br />
log to syslog level warn;<br />
<br />
# Set the interface name<br />
interface "mesh-vpn";<br />
<br />
# Support salsa2012+umac and null methods, prefer salsa2012+umac<br />
method "salsa2012+umac";<br />
method "null";<br />
<br />
mode tap;<br />
<br />
# Bind to a fixed port, IPv4 only<br />
bind 0.0.0.0:53757;<br />
<br />
# Please replace the key with your own key.<br />
<br />
# Secret key generated by `fastd --generate-key`<br />
secret "e0e07c1462748f4b0f36423c0ce5c4169e48354a07a3b908435f8ab128259c53";<br />
# Secret: e0e07c1462748f4b0f36423c0ce5c4169e48354a07a3b908435f8ab128259c53<br />
# Public: 72dc4c1aa15cfe4ae5d54caccd8efbd1af8848770843b26a58ed2fb8edb82d50<br />
<br />
secure handshakes yes;<br />
<br />
# Set the interface MTU for TAP mode with xsalsa20/aes128 over IPv4 with a base MTU of 1492 (PPPoE)<br />
# (see MTU selection documentation)<br />
# For Freifunk Rheinland is the MTU 1364<br />
<br />
mtu 1364;<br />
<br />
peer limit 1;<br />
<br />
# Include peers from the directory 'peers'<br />
include peers from "/etc/fastd/ffrhb/peers";<br />
<br />
## IP v6 Adresse muss ggf. nach ip link set up dev bat0 gesetzt werden mit:<br />
## ip addr add dev bat0 fda0:747e:ab29:2241:.../64 scope global<br />
<br />
on up "<br />
/etc/fastd/ffrhb/on-up.sh $INTERFACE<br />
";<br />
</pre><br />
<br />
Die Schnittstelle ''mesh-vpn'' muss B.A.T.M.A.N. als Interface hinzugefügt werden und benötigt eine IPv6 Adresss mit scope global. Dies geschieht mit folgenden Script, dass unter /etc/fastd/ffrhb/on-up.sh gespeichert wird. Die MTU der Netzwerkschnittstelle ''bat0'' muss auf die MTU der Freifunk Community gesetzt werden. Für Rheinbach (Domäne Wupper ist es zur Zeit 1364).<br />
<br />
==== Datei /etc/fastd/ffrhb/on-up.sh ====<br />
<br />
Der Unterschied des folgenden Scriptes zu anderen Erklärungen / Beispielen im Internet ist, dass hier eine globale IPv6 Adresse für das Interface bat0 erzeugt wird und die MTU an die Bedürfnisse der FF-Rheinland angepasst wird. Deshalb erfolgt dies in einem eigenen Script und nicht in der fastd.conf. Das Script muss von fastd über ''on up'' aufgerufen werden.<br />
<br />
<pre><br />
#!/bin/bash<br />
<br />
# Execute when fastd is going up<br />
# Autor: Thomas Arend<br />
# (c) 2017 by Thomas Arend<br />
# Date: 27.05.2018<br />
<br />
INTERFACE=${1:-mesh-vpn}<br />
logger "fastd on-up started"<br />
<br />
# Start meshing on fastd tunnel<br />
ip link set up dev $INTERFACE || logger "Error: Interface $INTERFACE not set up"<br />
<br />
# Add tunnel interface to mesh<br />
batctl if add $INTERFACE || logger "Error: Interface $INTERFACE not added to batman"<br />
#sysctl net.ipv6.conf.bat0.disable_ipv6=1<br />
#sysctl net.ipv6.conf.mesh-vpn.disable_ipv6=1<br />
<br />
# Set mtu for bat0<br />
# Change 1364 to your value in the site.conf for the FF firmware<br />
<br />
ip link set up dev bat0 mtu 1364 || logger "Error when setting MTU to 1364"<br />
batctl gw client 45<br />
batctl orig_interval 5000<br />
batctl multicast_mode 0<br />
echo 15 > /sys/class/net/bat0/mesh/hop_penalty<br />
echo 1 > /sys/class/net/bat0/mesh/bridge_loop_avoidance<br />
echo 1 > /sys/class/net/$INTERFACE/batman_adv/no_rebroadcast<br />
<br />
ip link add name br-client type bridge<br />
ip link set bat0 master br-client<br />
<br />
# Add ipv6 addr with scope global to bat0<br />
<br />
NIP='fda0:747e:ab29:2241'<br />
GIP=`ip addr show dev bat0 | grep 'inet6 fe80::.* scope link' | sed 's#.*inet6 fe80::##; s# .*$##'`<br />
<br />
ip addr add ${NIP}:${GIP} dev br-client scope global || logger "Error: IPv6 ${NIP}:${GIP} not set"<br />
</pre><br />
<br />
Alternative für das Bestimmen der IP-Adresse:<br />
<br />
IPv6=`grep 'fe80.*bat0$'/proc/net/if_inet6 | sed 's#fe80000000000000#fda0747eab292241#;s# .*##; s#\([0-9a-f]\{4,4\}\)#\1:#g; s#:$##'`<br />
<br />
==== Datei /etc/fastd/ffrhb/on-down.sh ====<br />
<br />
<pre><br />
#!/bin/bash<br />
<br />
# Execute when fastd is going down<br />
# Autor: Thomas Arend<br />
# (c) 2018 by Thomas Arend<br />
# Date: 27.05.2018<br />
<br />
ip link delete br-client type bridge<br />
ip link set down dev bat0<br />
ip link delete dev bat0<br />
</pre><br />
<br />
==== Schlüssel Dateien für die Peers ====<br />
<br />
Jeder [[Peer]] besitzt wie unser Rechner ein Schlüsselpaar, anhand dessen er eindeutig identifiziert wird. Die öffentlichen Schlüssel der müssen Peers kommen in das Unterverzeichnis ''peers''. Die Namen spielen dabei keine Rolle. Wir verwenden folgende Namenskonvention, um die Peer und öffentlichen Schlüssel zu erkennen: ''mesh_vpn_backbone_peer_wupper&lt;n&gt;''. Diese Namen werden auch in der Firmware verwendet, &lt;n&gt; ist dabei die Nummer des Servers (0-9).<br />
<br />
Beispiel für Wupper 0.<br />
<br />
<pre><br />
key "e52daa654abcf5c20c5b7a74b5145f70a7491435c6ef334ae352e4f19c00e8f5";<br />
remote "0.wupper.ffrl.de" port 53757;<br />
</pre><br />
<br />
==== Starten und Aktivieren ====<br />
<br />
Nun muss nur noch ''fastd'' gestartet werden mit:<br />
<br />
service fastd start<br />
<br />
Um ''fastd'' mit jedem Neustart automatisch zu starten, muss der folgende Befehl ausgeführt werden:<br />
<br />
systemctl enable fastd<br />
<br />
=== Test der Konfiguration ===<br />
<br />
Ob alles richtig läuft, zeigen ''ifconfig'', ''systemctl status fastd'' und ''batctl if'' bzw. ''batctl tg''<br />
<br />
<pre><br />
root@medion:~# ifconfig bat0<br />
bat0 Link encap:Ethernet Hardware Adresse 32:e7:53:24:17:5f <br />
inet6-Adresse: fda0:747e:ab29:2241:30e7:53ff:fe24:175f/64 Gültigkeitsbereich:Global<br />
inet6-Adresse: fe80::30e7:53ff:fe24:175f/64 Gültigkeitsbereich:Verbindung<br />
UP BROADCAST RUNNING MULTICAST MTU:1364 Metrik:1<br />
RX packets:61804 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:28 errors:0 dropped:24 overruns:0 carrier:0<br />
Kollisionen:0 Sendewarteschlangenlänge:0 <br />
RX bytes:3708888 (3.5 MiB) TX bytes:3529 (3.4 KiB)<br />
<br />
mesh-vpn Link encap:Ethernet Hardware Adresse aa:53:8d:76:e2:fa <br />
inet6-Adresse: fe80::a853:8dff:fe76:e2fa/64 Gültigkeitsbereich:Verbindung<br />
UP BROADCAST RUNNING MULTICAST MTU:1364 Metrik:1<br />
RX packets:66901 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:23753 errors:0 dropped:0 overruns:0 carrier:0<br />
Kollisionen:0 Sendewarteschlangenlänge:500 <br />
RX bytes:9241074 (8.8 MiB) TX bytes:5150504 (4.9 MiB)<br />
<br />
root@medion:~# systemctl -l status fastd<br />
● fastd.service - LSB: Fast and Secure Tunneling Daemon<br />
Loaded: loaded (/etc/init.d/fastd)<br />
Active: active (running) since Fr 2017-03-03 16:54:08 CET; 26min ago<br />
Process: 2686 ExecStop=/etc/init.d/fastd stop (code=exited, status=0/SUCCESS)<br />
Process: 2697 ExecStart=/etc/init.d/fastd start (code=exited, status=0/SUCCESS)<br />
CGroup: /system.slice/fastd.service<br />
└─2710 /usr/bin/fastd --syslog-level info --config /etc/fastd/ffrhb/fastd.conf<br />
<br />
Mär 03 16:54:08 medion fastd[2697]: Starting Fast and Secure Tunneling Daemon... Autostarting fastd 'ffrhb':.<br />
Mär 03 16:54:08 medion systemd[1]: Started LSB: Fast and Secure Tunneling Daemon.<br />
<br />
root@x2:/etc/fastd/ffrhb/peers# batctl if<br />
mesh-vpn: active<br />
<br />
root@medion:~# batctl tl<br />
[B.A.T.M.A.N. adv 2016.5, MainIF/MAC: mesh-vpn/aa:53:8d:76:e2:fa (bat0/32:e7:53:24:17:5f BATMAN_IV), TTVN: 3]<br />
Client VID Flags Last seen (CRC )<br />
33:33:ff:24:17:5f -1 [.P....] 0.000 (0x2453b430)<br />
33:33:00:00:00:fb -1 [.P....] 0.000 (0x2453b430)<br />
01:00:5e:00:00:01 -1 [.P....] 0.000 (0x2453b430)<br />
32:e7:53:24:17:5f -1 [.P....] 0.000 (0x2453b430)<br />
33:33:00:00:00:01 -1 [.P....] 0.000 (0x2453b430)<br />
</pre><br />
<br />
== Hinweise und Warnungen ==<br />
<br />
Fastd baut den Tunnel über eine beliebige Netzwerkverbindung auf. D.h. der Rechner kann in einem WLAN - privat oder öffentlich - betrieben werden. Dies kann auch ein Freifunk-Netz sein.<br />
<br />
Ist der Rechner in einem Freifunk-Netz, dann baut er einen fastd-Tunnel im fastd-Tunnel des Nodes auf, der die Verbindung zum Internet herstellt. Dies ist nicht sinnvoll und kann Effekte haben, die ich derzeit nicht überblicke und die nicht wünschenswert sind. Ein Effekt wird das Splitten von großen IP-Paketen sein.<br />
<br />
== Ergebnis und Siegerehrung ==<br />
<br />
Über unseren fastd-Tunnel können wir auf die Nodes und die Clients des Freifunknetzes über IPv6 zugreifen.</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=B.A.T.M.A.N.&diff=257B.A.T.M.A.N.2018-05-27T20:20:04Z<p>Thomas: /* Hinweis */</p>
<hr />
<div>B.A.T.M.A.N. (Abkürzung für '''B'''etter '''A'''pproach '''T'''o '''M'''obile '''A'''dhoc '''N'''etworking) ist ein Routing-Protokoll für mobile Ad-hoc-Netze. Siehe [https://de.wikipedia.org/wiki/B.A.T.M.A.N. WikiPedia]. Im Freifunk wird unter anderem B.A.T.M.A.N. als Routing-Protokoll eingesetzt.<br />
<br />
== Abstrakt ==<br />
<br />
In diesem Artikel wird beschrieben, wie B.A.T.M.A.N. zusammen mit [[fastd]] auf einem Rechner mit Debian eingerichtet wird und der Rechner direkt an das Netz des Freifunk Rheinland, Domäne Wupper, angebunden wird. Als Beispiel dient die Konfiguration der Freifunk Rheinbach Community. <br />
<br />
Mit Stand Mai 2018 wird auch alfred installiert, aber nicht konfiguriert.<br />
<br />
Die Verbindung der [[Node | Nodes]] (Router) zu den Servern im Internet erfolgt über einen verschlüsselten Tunnel. Bei Freifunk Rheinbach wird für die Tunnel ''fastd'' verwendet. Nodes, die in WLAN Reichweite zueinander stehen, verbinden sich untereinander über ein MESH-Netzwerk. Auch über Kabel (LAN oder WAN-Port) können sich Nodes vermaschen. Auf all diesen Verbindungen wird das Routing-Protokoll B.A.T.M.A.N. verwendet.<br />
<br />
== Hinweise ==<br />
<br />
Ich verwende als Shell die [[bash]]. Standard ist bei Debian 8.7.1 [[dash]]. Die Befehle in den Scripten sind so einfach, dass sie in beiden Shells funktionieren sollten.<br />
<br />
Dieser Beitrag basiert auf zahlreichen Quellen und den Erfahrungen aus den Tests. Soweit möglich versuche ich ältere Befehle durch neuere, moderne Befehle zu ersetzen.<br />
<br />
Der Beitrag [https://www.freifunk-gera-greiz.de/wiki/-/wiki/Allgemein/Raspberry+Pi+mit+B.A.T.M.A.N.+und+fastd+unter+Raspbian Raspberry Pi mit B.A.T.M.A.N. und fastd unter Raspbian] liegt dieser Lösung teilweise zu Grunde. Ich habe jedoch '''brctl''' durch die Befehle von '''ip''' ersetzt.<br />
<br />
== git ==<br />
<br />
Die benötigten Dateien stehen für FF-Rheonbach / Freifunk Rhein-Sieg und die Domäne Wupper in [https://github.com/Byggvir/fastd-BATMAN/ Github].<br />
<br />
Herunterladen mit<br />
<br />
<pre><br />
git clone https://github.com/Byggvir/fastd-BATMAN.git<br />
</pre> <br />
<br />
== Installation der Software ==<br />
<br />
=== B.A.T.M.A.N. und fastd installieren ===<br />
<br />
Die folgenden Befehle und Scripte wurden unter '''Debian 8''', '''Debian 9'''und '''Raspbian 2018-04''' entwickelt und getestet.<br />
<br />
Das folgende Script installiert auf einem Debian 8 / 9 bzw. Raspbian die notwendige Software - einschließlich fastd. Je nach System kann es notwendig sein zusätzliche Pakete zu installieren. Das folgende Script wurde auf zwei relativ frischen, jungfräulichen Debian 8.7.1 getestet.<br />
<br />
Achtung: Die Router verwenden B.A.T.M.A.N. 2017.2 (Stand: 03.02.2018, Gluon v2017.1.4); Aktuell ist 2018.1. Im Debian sind meist ältere Versionen. Deshalb empfiehlt sich eine Installation aus den Quellen<br />
<br />
Vor der Installation mit dem nachfolgenden Script müssen die passenden linunx-header- Dateien für den Kernel installiert sein / werden. <br />
<br />
Z.B.<br />
<br />
'''Debian:''' Für Raspbian befinden sich die Linux-Headers in linux-headers-amd64.<br />
'''Raspbian:''' Für Raspbian befinden sich die Linux-Headers in raspberrypi-kernel-headers.<br />
<br />
<pre><br />
#!/bin/bash<br />
<br />
# Installation B.A.T.M.A.N.<br />
# Version festlegen<br />
<br />
VBAT="2018.1"<br />
SRC="https://downloads.open-mesh.org/batman/releases/batman-adv-${VBAT}"<br />
<br />
# Installation der linux-headers für den Kernel.<br />
<br />
MACHINE=$(uname -m)<br />
<br />
case "$MACHINE" in<br />
<br />
x86_64) <br />
apt install linux-headers-amd64 # Debian<br />
;;<br />
armv7l)<br />
apt install raspberrypi-kernel-headers # Raspian<br />
;;<br />
*)<br />
echo -e "Unbekannte Architektur ${MACHINE}"<br />
exit 1<br />
;;<br />
<br />
esac<br />
<br />
# Wir brauchen ein paar Repos, die nicht im Default einhalten sind.<br />
<br />
grep 'http://repo.universe-factory.net/debian/' /etc/apt/sources.list || echo 'deb http://repo.universe-factory.net/debian/ sid main' >> /etc/apt/sources.list<br />
<br />
# Und den Schlüssel für das Paket. Aktuell: 16EF3F64CB201D9C<br />
<br />
KEY=16EF3F64CB201D9C<br />
gpg --keyserver pgpkeys.mit.edu --recv-key $KEY<br />
gpg -a --export $KEY | apt-key add -<br />
<br />
# Nun die Software, die wahrscheinlich fehlt, inklusive fastd<br />
<br />
apt install apt-transport-https<br />
apt update<br />
apt install build-essential bridge-utils pkg-config libnl-3-dev libnl-genl-3-dev fastd<br />
<br />
# Für alfred benötigte Entwicklunsgbibliotheken<br />
<br />
apt install libnl-3-dev libnl-genl-3-dev libcap-dev libgps-dev<br />
<br />
# Jetzt wird B.A.T.M.A.N. alfred aus den Quellen geladen und installiert<br />
<br />
cd /tmp<br />
wget ${SRC}/alfred-${VBAT}.tar.gz<br />
tar xzf alfred-${VBAT}.tar.gz<br />
cd alfred-${VBAT}<br />
make CONFIG_ALFRED_GPSD=n<br />
make CONFIG_ALFRED_GPSD=n install<br />
<br />
# Jetzt wird B.A.T.M.A.N. batctl aus den Quellen geladen und installiert<br />
<br />
cd /tmp<br />
wget ${SRC}/batctl-${VBAT}.tar.gz<br />
tar xzf batctl-${VBAT}.tar.gz<br />
cd batctl-${VBAT}<br />
make<br />
make install<br />
<br />
<br />
# Jetzt wird B.A.T.M.A.N. batman-adv aus den Quellen geladen und installiert<br />
<br />
cd /tmp<br />
wget ${SRC}/batman-adv-${VBAT}.tar.gz<br />
tar xzf batman-adv-${VBAT}.tar.gz<br />
cd batman-adv-${VBAT}<br />
make<br />
make install<br />
<br />
# Wir können batman-adv gleich starten<br />
<br />
modprobe batman-adv<br />
<br />
# ... und in die /etc/modules eintragen, damit es auch bei einem Neustart vorhanden ist<br />
<br />
grep '^batman-adv' /etc/modules || echo -e '#B.A.T.M.A.N für Freifunk\nbatman-adv' >> /etc/modules<br />
<br />
# zum Schluss legen wir uns noch ein Verzeichnis für die Konfiguration der fastd-Tunnel an.<br />
<br />
mkdir -p /etc/fastd/ffrhb/peers<br />
<br />
</pre><br />
<br />
== Konfiguration ==<br />
<br />
=== B.A.T.M.A.N. konfigurieren ===<br />
<br />
Der Befehl ''modprobe batman-adv'' startes B.A.T.M.A.N. gleich nach der Installation. Durch Aufnahme von ''batman-adv'' in die Datei ''/etc/modules'', wird B.A.T.M.A.N. beim Neustart des Rechner geladen. Beides wird bereits mit dem obigen Script erledigt, so dass wir fertig sind.<br />
<br />
=== fastd konfigurieren ===<br />
<br />
Das script ''/etc/init.d/fastd'' startet die Default-Konfiguration in ''/etc/default/fastd'' und alle Konfigurationen in ''/etc/fastd/*/fastd.conf''. Eine Konfiguration in ''/etc/fastd/fastd.conf'' (wie in OpenSuSE) hat daher keine Auswirkung und wird nicht geladen.<br />
<br />
Die folgende Konfigurationsdatei ''fastd.conf'' muss daher in das Verzeichnis ''/etc/fastd/ffrhb/'' kopiert werden.<br />
<br />
<br />
Der ''secret key'' in der Datei dient nur als Beispiel und ist durch einen eigenen Schlüssel zu ersetzen. Ein eigener Schlüssel wird mit ''fastd --generate-key'' erzeugt.<br />
<br />
Die MTU beträgt für Freifunk Rheinland zur Zeit 1364 Byte.<br />
<br />
Das peer limit sollte auf 1 stehen, auch wenn 10 Server definiert sind. Mehrere Tunnel zur gleichen Zeit bieten zur Zeit keine Vorteile und belasten die Server.<br />
<br />
==== Datei /etc/fastd/ffrhb/fastd.conf ====<br />
<br />
<pre><br />
# Log warnings and errors to stderr<br />
log level warn;<br />
<br />
# Log everything to syslog<br />
log to syslog level warn;<br />
<br />
# Set the interface name<br />
interface "mesh-vpn";<br />
<br />
# Support salsa2012+umac and null methods, prefer salsa2012+umac<br />
method "salsa2012+umac";<br />
method "null";<br />
<br />
mode tap;<br />
<br />
# Bind to a fixed port, IPv4 only<br />
bind 0.0.0.0:53757;<br />
<br />
# Please replace the key with your own key.<br />
<br />
# Secret key generated by `fastd --generate-key`<br />
secret "e0e07c1462748f4b0f36423c0ce5c4169e48354a07a3b908435f8ab128259c53";<br />
# Secret: e0e07c1462748f4b0f36423c0ce5c4169e48354a07a3b908435f8ab128259c53<br />
# Public: 72dc4c1aa15cfe4ae5d54caccd8efbd1af8848770843b26a58ed2fb8edb82d50<br />
<br />
secure handshakes yes;<br />
<br />
# Set the interface MTU for TAP mode with xsalsa20/aes128 over IPv4 with a base MTU of 1492 (PPPoE)<br />
# (see MTU selection documentation)<br />
# For Freifunk Rheinland is the MTU 1364<br />
<br />
mtu 1364;<br />
<br />
peer limit 1;<br />
<br />
# Include peers from the directory 'peers'<br />
include peers from "/etc/fastd/ffrhb/peers";<br />
<br />
## IP v6 Adresse muss ggf. nach ip link set up dev bat0 gesetzt werden mit:<br />
## ip addr add dev bat0 fda0:747e:ab29:2241:.../64 scope global<br />
<br />
on up "<br />
/etc/fastd/ffrhb/on-up.sh $INTERFACE<br />
";<br />
</pre><br />
<br />
Die Schnittstelle ''mesh-vpn'' muss B.A.T.M.A.N. als Interface hinzugefügt werden und benötigt eine IPv6 Adresss mit scope global. Dies geschieht mit folgenden Script, dass unter /etc/fastd/ffrhb/on-up.sh gespeichert wird. Die MTU der Netzwerkschnittstelle ''bat0'' muss auf die MTU der Freifunk Community gesetzt werden. Für Rheinbach (Domäne Wupper ist es zur Zeit 1364).<br />
<br />
==== Datei /etc/fastd/ffrhb/on-up.sh ====<br />
<br />
Der Unterschied des folgenden Scriptes zu anderen Erklärungen / Beispielen im Internet ist, dass hier eine globale IPv6 Adresse für das Interface bat0 erzeugt wird und die MTU an die Bedürfnisse der FF-Rheinland angepasst wird. Deshalb erfolgt dies in einem eigenen Script und nicht in der fastd.conf. Das Script muss von fastd über ''on up'' aufgerufen werden.<br />
<br />
<pre><br />
#!/bin/bash<br />
<br />
# Execute when fastd is going up<br />
# Autor: Thomas Arend<br />
# (c) 2017 by Thomas Arend<br />
# Date: 27.05.2018<br />
<br />
INTERFACE=${1:-mesh-vpn}<br />
logger "fastd on-up started"<br />
<br />
# Start meshing on fastd tunnel<br />
ip link set up dev $INTERFACE || logger "Error: Interface $INTERFACE not set up"<br />
<br />
# Add tunnel interface to mesh<br />
batctl if add $INTERFACE || logger "Error: Interface $INTERFACE not added to batman"<br />
#sysctl net.ipv6.conf.bat0.disable_ipv6=1<br />
#sysctl net.ipv6.conf.mesh-vpn.disable_ipv6=1<br />
<br />
# Set mtu for bat0<br />
# Change 1364 to your value in the site.conf for the FF firmware<br />
<br />
ip link set up dev bat0 mtu 1364 || logger "Error when setting MTU to 1364"<br />
batctl gw client 45<br />
batctl orig_interval 5000<br />
batctl multicast_mode 0<br />
echo 15 > /sys/class/net/bat0/mesh/hop_penalty<br />
echo 1 > /sys/class/net/bat0/mesh/bridge_loop_avoidance<br />
echo 1 > /sys/class/net/$INTERFACE/batman_adv/no_rebroadcast<br />
<br />
ip link add name br-client type bridge<br />
ip link set bat0 master br-client<br />
<br />
# Add ipv6 addr with scope global to bat0<br />
<br />
NIP='fda0:747e:ab29:2241'<br />
GIP=`ip addr show dev bat0 | grep 'inet6 fe80::.* scope link' | sed 's#.*inet6 fe80::##; s# .*$##'`<br />
<br />
ip addr add ${NIP}:${GIP} dev br-client scope global || logger "Error: IPv6 ${NIP}:${GIP} not set"<br />
</pre><br />
<br />
Alternative für das Bestimmen der IP-Adresse:<br />
<br />
IPv6=`grep 'fe80.*bat0$'/proc/net/if_inet6 | sed 's#fe80000000000000#fda0747eab292241#;s# .*##; s#\([0-9a-f]\{4,4\}\)#\1:#g; s#:$##'`<br />
<br />
==== Schlüssel Dateien für die Peers ====<br />
<br />
Jeder [[Peer]] besitzt wie unser Rechner ein Schlüsselpaar, anhand dessen er eindeutig identifiziert wird. Die öffentlichen Schlüssel der müssen Peers kommen in das Unterverzeichnis ''peers''. Die Namen spielen dabei keine Rolle. Wir verwenden folgende Namenskonvention, um die Peer und öffentlichen Schlüssel zu erkennen: ''mesh_vpn_backbone_peer_wupper&lt;n&gt;''. Diese Namen werden auch in der Firmware verwendet, &lt;n&gt; ist dabei die Nummer des Servers (0-9).<br />
<br />
Beispiel für Wupper 0.<br />
<br />
<pre><br />
key "e52daa654abcf5c20c5b7a74b5145f70a7491435c6ef334ae352e4f19c00e8f5";<br />
remote "0.wupper.ffrl.de" port 53757;<br />
</pre><br />
<br />
==== Starten und Aktivieren ====<br />
<br />
Nun muss nur noch ''fastd'' gestartet werden mit:<br />
<br />
service fastd start<br />
<br />
Um ''fastd'' mit jedem Neustart automatisch zu starten, muss der folgende Befehl ausgeführt werden:<br />
<br />
systemctl enable fastd<br />
<br />
=== Test der Konfiguration ===<br />
<br />
Ob alles richtig läuft, zeigen ''ifconfig'', ''systemctl status fastd'' und ''batctl if'' bzw. ''batctl tg''<br />
<br />
<pre><br />
root@medion:~# ifconfig bat0<br />
bat0 Link encap:Ethernet Hardware Adresse 32:e7:53:24:17:5f <br />
inet6-Adresse: fda0:747e:ab29:2241:30e7:53ff:fe24:175f/64 Gültigkeitsbereich:Global<br />
inet6-Adresse: fe80::30e7:53ff:fe24:175f/64 Gültigkeitsbereich:Verbindung<br />
UP BROADCAST RUNNING MULTICAST MTU:1364 Metrik:1<br />
RX packets:61804 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:28 errors:0 dropped:24 overruns:0 carrier:0<br />
Kollisionen:0 Sendewarteschlangenlänge:0 <br />
RX bytes:3708888 (3.5 MiB) TX bytes:3529 (3.4 KiB)<br />
<br />
mesh-vpn Link encap:Ethernet Hardware Adresse aa:53:8d:76:e2:fa <br />
inet6-Adresse: fe80::a853:8dff:fe76:e2fa/64 Gültigkeitsbereich:Verbindung<br />
UP BROADCAST RUNNING MULTICAST MTU:1364 Metrik:1<br />
RX packets:66901 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:23753 errors:0 dropped:0 overruns:0 carrier:0<br />
Kollisionen:0 Sendewarteschlangenlänge:500 <br />
RX bytes:9241074 (8.8 MiB) TX bytes:5150504 (4.9 MiB)<br />
<br />
root@medion:~# systemctl -l status fastd<br />
● fastd.service - LSB: Fast and Secure Tunneling Daemon<br />
Loaded: loaded (/etc/init.d/fastd)<br />
Active: active (running) since Fr 2017-03-03 16:54:08 CET; 26min ago<br />
Process: 2686 ExecStop=/etc/init.d/fastd stop (code=exited, status=0/SUCCESS)<br />
Process: 2697 ExecStart=/etc/init.d/fastd start (code=exited, status=0/SUCCESS)<br />
CGroup: /system.slice/fastd.service<br />
└─2710 /usr/bin/fastd --syslog-level info --config /etc/fastd/ffrhb/fastd.conf<br />
<br />
Mär 03 16:54:08 medion fastd[2697]: Starting Fast and Secure Tunneling Daemon... Autostarting fastd 'ffrhb':.<br />
Mär 03 16:54:08 medion systemd[1]: Started LSB: Fast and Secure Tunneling Daemon.<br />
<br />
root@x2:/etc/fastd/ffrhb/peers# batctl if<br />
mesh-vpn: active<br />
<br />
root@medion:~# batctl tl<br />
[B.A.T.M.A.N. adv 2016.5, MainIF/MAC: mesh-vpn/aa:53:8d:76:e2:fa (bat0/32:e7:53:24:17:5f BATMAN_IV), TTVN: 3]<br />
Client VID Flags Last seen (CRC )<br />
33:33:ff:24:17:5f -1 [.P....] 0.000 (0x2453b430)<br />
33:33:00:00:00:fb -1 [.P....] 0.000 (0x2453b430)<br />
01:00:5e:00:00:01 -1 [.P....] 0.000 (0x2453b430)<br />
32:e7:53:24:17:5f -1 [.P....] 0.000 (0x2453b430)<br />
33:33:00:00:00:01 -1 [.P....] 0.000 (0x2453b430)<br />
</pre><br />
<br />
== Hinweise und Warnungen ==<br />
<br />
Fastd baut den Tunnel über eine beliebige Netzwerkverbindung auf. D.h. der Rechner kann in einem WLAN - privat oder öffentlich - betrieben werden. Dies kann auch ein Freifunk-Netz sein.<br />
<br />
Ist der Rechner in einem Freifunk-Netz, dann baut er einen fastd-Tunnel im fastd-Tunnel des Nodes auf, der die Verbindung zum Internet herstellt. Dies ist nicht sinnvoll und kann Effekte haben, die ich derzeit nicht überblicke und die nicht wünschenswert sind. Ein Effekt wird das Splitten von großen IP-Paketen sein.<br />
<br />
== Ergebnis und Siegerehrung ==<br />
<br />
Über unseren fastd-Tunnel können wir auf die Nodes und die Clients des Freifunknetzes über IPv6 zugreifen.</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=B.A.T.M.A.N.&diff=256B.A.T.M.A.N.2018-05-27T20:14:21Z<p>Thomas: /* Datei /etc/fastd/ffrhb/on-up.sh */ Angepasst.</p>
<hr />
<div>B.A.T.M.A.N. (Abkürzung für '''B'''etter '''A'''pproach '''T'''o '''M'''obile '''A'''dhoc '''N'''etworking) ist ein Routing-Protokoll für mobile Ad-hoc-Netze. Siehe [https://de.wikipedia.org/wiki/B.A.T.M.A.N. WikiPedia]. Im Freifunk wird unter anderem B.A.T.M.A.N. als Routing-Protokoll eingesetzt.<br />
<br />
== Abstrakt ==<br />
<br />
In diesem Artikel wird beschrieben, wie B.A.T.M.A.N. zusammen mit [[fastd]] auf einem Rechner mit Debian eingerichtet wird und der Rechner direkt an das Netz des Freifunk Rheinland, Domäne Wupper, angebunden wird. Als Beispiel dient die Konfiguration der Freifunk Rheinbach Community. <br />
<br />
Mit Stand Mai 2018 wird auch alfred installiert, aber nicht konfiguriert.<br />
<br />
Die Verbindung der [[Node | Nodes]] (Router) zu den Servern im Internet erfolgt über einen verschlüsselten Tunnel. Bei Freifunk Rheinbach wird für die Tunnel ''fastd'' verwendet. Nodes, die in WLAN Reichweite zueinander stehen, verbinden sich untereinander über ein MESH-Netzwerk. Auch über Kabel (LAN oder WAN-Port) können sich Nodes vermaschen. Auf all diesen Verbindungen wird das Routing-Protokoll B.A.T.M.A.N. verwendet.<br />
<br />
== Hinweis ==<br />
<br />
Ich verwende als Shell die [[bash]]. Standard ist bei Debian 8.7.1 [[dash]]. Die Befehle in den Scripten sind so einfach, dass sie in beiden Shells funktionieren sollten<br />
<br />
== git ==<br />
<br />
Die benötigten Dateien stehen für FF-Rheonbach / Freifunk Rhein-Sieg und die Domäne Wupper in [https://github.com/Byggvir/fastd-BATMAN/ Github].<br />
<br />
Herunterladen mit<br />
<br />
<pre><br />
git clone https://github.com/Byggvir/fastd-BATMAN.git<br />
</pre> <br />
<br />
== Installation der Software ==<br />
<br />
=== B.A.T.M.A.N. und fastd installieren ===<br />
<br />
Die folgenden Befehle und Scripte wurden unter '''Debian 8''', '''Debian 9'''und '''Raspbian 2018-04''' entwickelt und getestet.<br />
<br />
Das folgende Script installiert auf einem Debian 8 / 9 bzw. Raspbian die notwendige Software - einschließlich fastd. Je nach System kann es notwendig sein zusätzliche Pakete zu installieren. Das folgende Script wurde auf zwei relativ frischen, jungfräulichen Debian 8.7.1 getestet.<br />
<br />
Achtung: Die Router verwenden B.A.T.M.A.N. 2017.2 (Stand: 03.02.2018, Gluon v2017.1.4); Aktuell ist 2018.1. Im Debian sind meist ältere Versionen. Deshalb empfiehlt sich eine Installation aus den Quellen<br />
<br />
Vor der Installation mit dem nachfolgenden Script müssen die passenden linunx-header- Dateien für den Kernel installiert sein / werden. <br />
<br />
Z.B.<br />
<br />
'''Debian:''' Für Raspbian befinden sich die Linux-Headers in linux-headers-amd64.<br />
'''Raspbian:''' Für Raspbian befinden sich die Linux-Headers in raspberrypi-kernel-headers.<br />
<br />
<pre><br />
#!/bin/bash<br />
<br />
# Installation B.A.T.M.A.N.<br />
# Version festlegen<br />
<br />
VBAT="2018.1"<br />
SRC="https://downloads.open-mesh.org/batman/releases/batman-adv-${VBAT}"<br />
<br />
# Installation der linux-headers für den Kernel.<br />
<br />
MACHINE=$(uname -m)<br />
<br />
case "$MACHINE" in<br />
<br />
x86_64) <br />
apt install linux-headers-amd64 # Debian<br />
;;<br />
armv7l)<br />
apt install raspberrypi-kernel-headers # Raspian<br />
;;<br />
*)<br />
echo -e "Unbekannte Architektur ${MACHINE}"<br />
exit 1<br />
;;<br />
<br />
esac<br />
<br />
# Wir brauchen ein paar Repos, die nicht im Default einhalten sind.<br />
<br />
grep 'http://repo.universe-factory.net/debian/' /etc/apt/sources.list || echo 'deb http://repo.universe-factory.net/debian/ sid main' >> /etc/apt/sources.list<br />
<br />
# Und den Schlüssel für das Paket. Aktuell: 16EF3F64CB201D9C<br />
<br />
KEY=16EF3F64CB201D9C<br />
gpg --keyserver pgpkeys.mit.edu --recv-key $KEY<br />
gpg -a --export $KEY | apt-key add -<br />
<br />
# Nun die Software, die wahrscheinlich fehlt, inklusive fastd<br />
<br />
apt install apt-transport-https<br />
apt update<br />
apt install build-essential bridge-utils pkg-config libnl-3-dev libnl-genl-3-dev fastd<br />
<br />
# Für alfred benötigte Entwicklunsgbibliotheken<br />
<br />
apt install libnl-3-dev libnl-genl-3-dev libcap-dev libgps-dev<br />
<br />
# Jetzt wird B.A.T.M.A.N. alfred aus den Quellen geladen und installiert<br />
<br />
cd /tmp<br />
wget ${SRC}/alfred-${VBAT}.tar.gz<br />
tar xzf alfred-${VBAT}.tar.gz<br />
cd alfred-${VBAT}<br />
make CONFIG_ALFRED_GPSD=n<br />
make CONFIG_ALFRED_GPSD=n install<br />
<br />
# Jetzt wird B.A.T.M.A.N. batctl aus den Quellen geladen und installiert<br />
<br />
cd /tmp<br />
wget ${SRC}/batctl-${VBAT}.tar.gz<br />
tar xzf batctl-${VBAT}.tar.gz<br />
cd batctl-${VBAT}<br />
make<br />
make install<br />
<br />
<br />
# Jetzt wird B.A.T.M.A.N. batman-adv aus den Quellen geladen und installiert<br />
<br />
cd /tmp<br />
wget ${SRC}/batman-adv-${VBAT}.tar.gz<br />
tar xzf batman-adv-${VBAT}.tar.gz<br />
cd batman-adv-${VBAT}<br />
make<br />
make install<br />
<br />
# Wir können batman-adv gleich starten<br />
<br />
modprobe batman-adv<br />
<br />
# ... und in die /etc/modules eintragen, damit es auch bei einem Neustart vorhanden ist<br />
<br />
grep '^batman-adv' /etc/modules || echo -e '#B.A.T.M.A.N für Freifunk\nbatman-adv' >> /etc/modules<br />
<br />
# zum Schluss legen wir uns noch ein Verzeichnis für die Konfiguration der fastd-Tunnel an.<br />
<br />
mkdir -p /etc/fastd/ffrhb/peers<br />
<br />
</pre><br />
<br />
== Konfiguration ==<br />
<br />
=== B.A.T.M.A.N. konfigurieren ===<br />
<br />
Der Befehl ''modprobe batman-adv'' startes B.A.T.M.A.N. gleich nach der Installation. Durch Aufnahme von ''batman-adv'' in die Datei ''/etc/modules'', wird B.A.T.M.A.N. beim Neustart des Rechner geladen. Beides wird bereits mit dem obigen Script erledigt, so dass wir fertig sind.<br />
<br />
=== fastd konfigurieren ===<br />
<br />
Das script ''/etc/init.d/fastd'' startet die Default-Konfiguration in ''/etc/default/fastd'' und alle Konfigurationen in ''/etc/fastd/*/fastd.conf''. Eine Konfiguration in ''/etc/fastd/fastd.conf'' (wie in OpenSuSE) hat daher keine Auswirkung und wird nicht geladen.<br />
<br />
Die folgende Konfigurationsdatei ''fastd.conf'' muss daher in das Verzeichnis ''/etc/fastd/ffrhb/'' kopiert werden.<br />
<br />
<br />
Der ''secret key'' in der Datei dient nur als Beispiel und ist durch einen eigenen Schlüssel zu ersetzen. Ein eigener Schlüssel wird mit ''fastd --generate-key'' erzeugt.<br />
<br />
Die MTU beträgt für Freifunk Rheinland zur Zeit 1364 Byte.<br />
<br />
Das peer limit sollte auf 1 stehen, auch wenn 10 Server definiert sind. Mehrere Tunnel zur gleichen Zeit bieten zur Zeit keine Vorteile und belasten die Server.<br />
<br />
==== Datei /etc/fastd/ffrhb/fastd.conf ====<br />
<br />
<pre><br />
# Log warnings and errors to stderr<br />
log level warn;<br />
<br />
# Log everything to syslog<br />
log to syslog level warn;<br />
<br />
# Set the interface name<br />
interface "mesh-vpn";<br />
<br />
# Support salsa2012+umac and null methods, prefer salsa2012+umac<br />
method "salsa2012+umac";<br />
method "null";<br />
<br />
mode tap;<br />
<br />
# Bind to a fixed port, IPv4 only<br />
bind 0.0.0.0:53757;<br />
<br />
# Please replace the key with your own key.<br />
<br />
# Secret key generated by `fastd --generate-key`<br />
secret "e0e07c1462748f4b0f36423c0ce5c4169e48354a07a3b908435f8ab128259c53";<br />
# Secret: e0e07c1462748f4b0f36423c0ce5c4169e48354a07a3b908435f8ab128259c53<br />
# Public: 72dc4c1aa15cfe4ae5d54caccd8efbd1af8848770843b26a58ed2fb8edb82d50<br />
<br />
secure handshakes yes;<br />
<br />
# Set the interface MTU for TAP mode with xsalsa20/aes128 over IPv4 with a base MTU of 1492 (PPPoE)<br />
# (see MTU selection documentation)<br />
# For Freifunk Rheinland is the MTU 1364<br />
<br />
mtu 1364;<br />
<br />
peer limit 1;<br />
<br />
# Include peers from the directory 'peers'<br />
include peers from "/etc/fastd/ffrhb/peers";<br />
<br />
## IP v6 Adresse muss ggf. nach ip link set up dev bat0 gesetzt werden mit:<br />
## ip addr add dev bat0 fda0:747e:ab29:2241:.../64 scope global<br />
<br />
on up "<br />
/etc/fastd/ffrhb/on-up.sh $INTERFACE<br />
";<br />
</pre><br />
<br />
Die Schnittstelle ''mesh-vpn'' muss B.A.T.M.A.N. als Interface hinzugefügt werden und benötigt eine IPv6 Adresss mit scope global. Dies geschieht mit folgenden Script, dass unter /etc/fastd/ffrhb/on-up.sh gespeichert wird. Die MTU der Netzwerkschnittstelle ''bat0'' muss auf die MTU der Freifunk Community gesetzt werden. Für Rheinbach (Domäne Wupper ist es zur Zeit 1364).<br />
<br />
==== Datei /etc/fastd/ffrhb/on-up.sh ====<br />
<br />
Der Unterschied des folgenden Scriptes zu anderen Erklärungen / Beispielen im Internet ist, dass hier eine globale IPv6 Adresse für das Interface bat0 erzeugt wird und die MTU an die Bedürfnisse der FF-Rheinland angepasst wird. Deshalb erfolgt dies in einem eigenen Script und nicht in der fastd.conf. Das Script muss von fastd über ''on up'' aufgerufen werden.<br />
<br />
<pre><br />
#!/bin/bash<br />
<br />
# Execute when fastd is going up<br />
# Autor: Thomas Arend<br />
# (c) 2017 by Thomas Arend<br />
# Date: 27.05.2018<br />
<br />
INTERFACE=${1:-mesh-vpn}<br />
logger "fastd on-up started"<br />
<br />
# Start meshing on fastd tunnel<br />
ip link set up dev $INTERFACE || logger "Error: Interface $INTERFACE not set up"<br />
<br />
# Add tunnel interface to mesh<br />
batctl if add $INTERFACE || logger "Error: Interface $INTERFACE not added to batman"<br />
#sysctl net.ipv6.conf.bat0.disable_ipv6=1<br />
#sysctl net.ipv6.conf.mesh-vpn.disable_ipv6=1<br />
<br />
# Set mtu for bat0<br />
# Change 1364 to your value in the site.conf for the FF firmware<br />
<br />
ip link set up dev bat0 mtu 1364 || logger "Error when setting MTU to 1364"<br />
batctl gw client 45<br />
batctl orig_interval 5000<br />
batctl multicast_mode 0<br />
echo 15 > /sys/class/net/bat0/mesh/hop_penalty<br />
echo 1 > /sys/class/net/bat0/mesh/bridge_loop_avoidance<br />
echo 1 > /sys/class/net/$INTERFACE/batman_adv/no_rebroadcast<br />
<br />
ip link add name br-client type bridge<br />
ip link set bat0 master br-client<br />
<br />
# Add ipv6 addr with scope global to bat0<br />
<br />
NIP='fda0:747e:ab29:2241'<br />
GIP=`ip addr show dev bat0 | grep 'inet6 fe80::.* scope link' | sed 's#.*inet6 fe80::##; s# .*$##'`<br />
<br />
ip addr add ${NIP}:${GIP} dev br-client scope global || logger "Error: IPv6 ${NIP}:${GIP} not set"<br />
</pre><br />
<br />
Alternative für das Bestimmen der IP-Adresse:<br />
<br />
IPv6=`grep 'fe80.*bat0$'/proc/net/if_inet6 | sed 's#fe80000000000000#fda0747eab292241#;s# .*##; s#\([0-9a-f]\{4,4\}\)#\1:#g; s#:$##'`<br />
<br />
==== Schlüssel Dateien für die Peers ====<br />
<br />
Jeder [[Peer]] besitzt wie unser Rechner ein Schlüsselpaar, anhand dessen er eindeutig identifiziert wird. Die öffentlichen Schlüssel der müssen Peers kommen in das Unterverzeichnis ''peers''. Die Namen spielen dabei keine Rolle. Wir verwenden folgende Namenskonvention, um die Peer und öffentlichen Schlüssel zu erkennen: ''mesh_vpn_backbone_peer_wupper&lt;n&gt;''. Diese Namen werden auch in der Firmware verwendet, &lt;n&gt; ist dabei die Nummer des Servers (0-9).<br />
<br />
Beispiel für Wupper 0.<br />
<br />
<pre><br />
key "e52daa654abcf5c20c5b7a74b5145f70a7491435c6ef334ae352e4f19c00e8f5";<br />
remote "0.wupper.ffrl.de" port 53757;<br />
</pre><br />
<br />
==== Starten und Aktivieren ====<br />
<br />
Nun muss nur noch ''fastd'' gestartet werden mit:<br />
<br />
service fastd start<br />
<br />
Um ''fastd'' mit jedem Neustart automatisch zu starten, muss der folgende Befehl ausgeführt werden:<br />
<br />
systemctl enable fastd<br />
<br />
=== Test der Konfiguration ===<br />
<br />
Ob alles richtig läuft, zeigen ''ifconfig'', ''systemctl status fastd'' und ''batctl if'' bzw. ''batctl tg''<br />
<br />
<pre><br />
root@medion:~# ifconfig bat0<br />
bat0 Link encap:Ethernet Hardware Adresse 32:e7:53:24:17:5f <br />
inet6-Adresse: fda0:747e:ab29:2241:30e7:53ff:fe24:175f/64 Gültigkeitsbereich:Global<br />
inet6-Adresse: fe80::30e7:53ff:fe24:175f/64 Gültigkeitsbereich:Verbindung<br />
UP BROADCAST RUNNING MULTICAST MTU:1364 Metrik:1<br />
RX packets:61804 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:28 errors:0 dropped:24 overruns:0 carrier:0<br />
Kollisionen:0 Sendewarteschlangenlänge:0 <br />
RX bytes:3708888 (3.5 MiB) TX bytes:3529 (3.4 KiB)<br />
<br />
mesh-vpn Link encap:Ethernet Hardware Adresse aa:53:8d:76:e2:fa <br />
inet6-Adresse: fe80::a853:8dff:fe76:e2fa/64 Gültigkeitsbereich:Verbindung<br />
UP BROADCAST RUNNING MULTICAST MTU:1364 Metrik:1<br />
RX packets:66901 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:23753 errors:0 dropped:0 overruns:0 carrier:0<br />
Kollisionen:0 Sendewarteschlangenlänge:500 <br />
RX bytes:9241074 (8.8 MiB) TX bytes:5150504 (4.9 MiB)<br />
<br />
root@medion:~# systemctl -l status fastd<br />
● fastd.service - LSB: Fast and Secure Tunneling Daemon<br />
Loaded: loaded (/etc/init.d/fastd)<br />
Active: active (running) since Fr 2017-03-03 16:54:08 CET; 26min ago<br />
Process: 2686 ExecStop=/etc/init.d/fastd stop (code=exited, status=0/SUCCESS)<br />
Process: 2697 ExecStart=/etc/init.d/fastd start (code=exited, status=0/SUCCESS)<br />
CGroup: /system.slice/fastd.service<br />
└─2710 /usr/bin/fastd --syslog-level info --config /etc/fastd/ffrhb/fastd.conf<br />
<br />
Mär 03 16:54:08 medion fastd[2697]: Starting Fast and Secure Tunneling Daemon... Autostarting fastd 'ffrhb':.<br />
Mär 03 16:54:08 medion systemd[1]: Started LSB: Fast and Secure Tunneling Daemon.<br />
<br />
root@x2:/etc/fastd/ffrhb/peers# batctl if<br />
mesh-vpn: active<br />
<br />
root@medion:~# batctl tl<br />
[B.A.T.M.A.N. adv 2016.5, MainIF/MAC: mesh-vpn/aa:53:8d:76:e2:fa (bat0/32:e7:53:24:17:5f BATMAN_IV), TTVN: 3]<br />
Client VID Flags Last seen (CRC )<br />
33:33:ff:24:17:5f -1 [.P....] 0.000 (0x2453b430)<br />
33:33:00:00:00:fb -1 [.P....] 0.000 (0x2453b430)<br />
01:00:5e:00:00:01 -1 [.P....] 0.000 (0x2453b430)<br />
32:e7:53:24:17:5f -1 [.P....] 0.000 (0x2453b430)<br />
33:33:00:00:00:01 -1 [.P....] 0.000 (0x2453b430)<br />
</pre><br />
<br />
== Hinweise und Warnungen ==<br />
<br />
Fastd baut den Tunnel über eine beliebige Netzwerkverbindung auf. D.h. der Rechner kann in einem WLAN - privat oder öffentlich - betrieben werden. Dies kann auch ein Freifunk-Netz sein.<br />
<br />
Ist der Rechner in einem Freifunk-Netz, dann baut er einen fastd-Tunnel im fastd-Tunnel des Nodes auf, der die Verbindung zum Internet herstellt. Dies ist nicht sinnvoll und kann Effekte haben, die ich derzeit nicht überblicke und die nicht wünschenswert sind. Ein Effekt wird das Splitten von großen IP-Paketen sein.<br />
<br />
== Ergebnis und Siegerehrung ==<br />
<br />
Über unseren fastd-Tunnel können wir auf die Nodes und die Clients des Freifunknetzes über IPv6 zugreifen.</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=B.A.T.M.A.N.&diff=255B.A.T.M.A.N.2018-05-27T20:12:37Z<p>Thomas: </p>
<hr />
<div>B.A.T.M.A.N. (Abkürzung für '''B'''etter '''A'''pproach '''T'''o '''M'''obile '''A'''dhoc '''N'''etworking) ist ein Routing-Protokoll für mobile Ad-hoc-Netze. Siehe [https://de.wikipedia.org/wiki/B.A.T.M.A.N. WikiPedia]. Im Freifunk wird unter anderem B.A.T.M.A.N. als Routing-Protokoll eingesetzt.<br />
<br />
== Abstrakt ==<br />
<br />
In diesem Artikel wird beschrieben, wie B.A.T.M.A.N. zusammen mit [[fastd]] auf einem Rechner mit Debian eingerichtet wird und der Rechner direkt an das Netz des Freifunk Rheinland, Domäne Wupper, angebunden wird. Als Beispiel dient die Konfiguration der Freifunk Rheinbach Community. <br />
<br />
Mit Stand Mai 2018 wird auch alfred installiert, aber nicht konfiguriert.<br />
<br />
Die Verbindung der [[Node | Nodes]] (Router) zu den Servern im Internet erfolgt über einen verschlüsselten Tunnel. Bei Freifunk Rheinbach wird für die Tunnel ''fastd'' verwendet. Nodes, die in WLAN Reichweite zueinander stehen, verbinden sich untereinander über ein MESH-Netzwerk. Auch über Kabel (LAN oder WAN-Port) können sich Nodes vermaschen. Auf all diesen Verbindungen wird das Routing-Protokoll B.A.T.M.A.N. verwendet.<br />
<br />
== Hinweis ==<br />
<br />
Ich verwende als Shell die [[bash]]. Standard ist bei Debian 8.7.1 [[dash]]. Die Befehle in den Scripten sind so einfach, dass sie in beiden Shells funktionieren sollten<br />
<br />
== git ==<br />
<br />
Die benötigten Dateien stehen für FF-Rheonbach / Freifunk Rhein-Sieg und die Domäne Wupper in [https://github.com/Byggvir/fastd-BATMAN/ Github].<br />
<br />
Herunterladen mit<br />
<br />
<pre><br />
git clone https://github.com/Byggvir/fastd-BATMAN.git<br />
</pre> <br />
<br />
== Installation der Software ==<br />
<br />
=== B.A.T.M.A.N. und fastd installieren ===<br />
<br />
Die folgenden Befehle und Scripte wurden unter '''Debian 8''', '''Debian 9'''und '''Raspbian 2018-04''' entwickelt und getestet.<br />
<br />
Das folgende Script installiert auf einem Debian 8 / 9 bzw. Raspbian die notwendige Software - einschließlich fastd. Je nach System kann es notwendig sein zusätzliche Pakete zu installieren. Das folgende Script wurde auf zwei relativ frischen, jungfräulichen Debian 8.7.1 getestet.<br />
<br />
Achtung: Die Router verwenden B.A.T.M.A.N. 2017.2 (Stand: 03.02.2018, Gluon v2017.1.4); Aktuell ist 2018.1. Im Debian sind meist ältere Versionen. Deshalb empfiehlt sich eine Installation aus den Quellen<br />
<br />
Vor der Installation mit dem nachfolgenden Script müssen die passenden linunx-header- Dateien für den Kernel installiert sein / werden. <br />
<br />
Z.B.<br />
<br />
'''Debian:''' Für Raspbian befinden sich die Linux-Headers in linux-headers-amd64.<br />
'''Raspbian:''' Für Raspbian befinden sich die Linux-Headers in raspberrypi-kernel-headers.<br />
<br />
<pre><br />
#!/bin/bash<br />
<br />
# Installation B.A.T.M.A.N.<br />
# Version festlegen<br />
<br />
VBAT="2018.1"<br />
SRC="https://downloads.open-mesh.org/batman/releases/batman-adv-${VBAT}"<br />
<br />
# Installation der linux-headers für den Kernel.<br />
<br />
MACHINE=$(uname -m)<br />
<br />
case "$MACHINE" in<br />
<br />
x86_64) <br />
apt install linux-headers-amd64 # Debian<br />
;;<br />
armv7l)<br />
apt install raspberrypi-kernel-headers # Raspian<br />
;;<br />
*)<br />
echo -e "Unbekannte Architektur ${MACHINE}"<br />
exit 1<br />
;;<br />
<br />
esac<br />
<br />
# Wir brauchen ein paar Repos, die nicht im Default einhalten sind.<br />
<br />
grep 'http://repo.universe-factory.net/debian/' /etc/apt/sources.list || echo 'deb http://repo.universe-factory.net/debian/ sid main' >> /etc/apt/sources.list<br />
<br />
# Und den Schlüssel für das Paket. Aktuell: 16EF3F64CB201D9C<br />
<br />
KEY=16EF3F64CB201D9C<br />
gpg --keyserver pgpkeys.mit.edu --recv-key $KEY<br />
gpg -a --export $KEY | apt-key add -<br />
<br />
# Nun die Software, die wahrscheinlich fehlt, inklusive fastd<br />
<br />
apt install apt-transport-https<br />
apt update<br />
apt install build-essential bridge-utils pkg-config libnl-3-dev libnl-genl-3-dev fastd<br />
<br />
# Für alfred benötigte Entwicklunsgbibliotheken<br />
<br />
apt install libnl-3-dev libnl-genl-3-dev libcap-dev libgps-dev<br />
<br />
# Jetzt wird B.A.T.M.A.N. alfred aus den Quellen geladen und installiert<br />
<br />
cd /tmp<br />
wget ${SRC}/alfred-${VBAT}.tar.gz<br />
tar xzf alfred-${VBAT}.tar.gz<br />
cd alfred-${VBAT}<br />
make CONFIG_ALFRED_GPSD=n<br />
make CONFIG_ALFRED_GPSD=n install<br />
<br />
# Jetzt wird B.A.T.M.A.N. batctl aus den Quellen geladen und installiert<br />
<br />
cd /tmp<br />
wget ${SRC}/batctl-${VBAT}.tar.gz<br />
tar xzf batctl-${VBAT}.tar.gz<br />
cd batctl-${VBAT}<br />
make<br />
make install<br />
<br />
<br />
# Jetzt wird B.A.T.M.A.N. batman-adv aus den Quellen geladen und installiert<br />
<br />
cd /tmp<br />
wget ${SRC}/batman-adv-${VBAT}.tar.gz<br />
tar xzf batman-adv-${VBAT}.tar.gz<br />
cd batman-adv-${VBAT}<br />
make<br />
make install<br />
<br />
# Wir können batman-adv gleich starten<br />
<br />
modprobe batman-adv<br />
<br />
# ... und in die /etc/modules eintragen, damit es auch bei einem Neustart vorhanden ist<br />
<br />
grep '^batman-adv' /etc/modules || echo -e '#B.A.T.M.A.N für Freifunk\nbatman-adv' >> /etc/modules<br />
<br />
# zum Schluss legen wir uns noch ein Verzeichnis für die Konfiguration der fastd-Tunnel an.<br />
<br />
mkdir -p /etc/fastd/ffrhb/peers<br />
<br />
</pre><br />
<br />
== Konfiguration ==<br />
<br />
=== B.A.T.M.A.N. konfigurieren ===<br />
<br />
Der Befehl ''modprobe batman-adv'' startes B.A.T.M.A.N. gleich nach der Installation. Durch Aufnahme von ''batman-adv'' in die Datei ''/etc/modules'', wird B.A.T.M.A.N. beim Neustart des Rechner geladen. Beides wird bereits mit dem obigen Script erledigt, so dass wir fertig sind.<br />
<br />
=== fastd konfigurieren ===<br />
<br />
Das script ''/etc/init.d/fastd'' startet die Default-Konfiguration in ''/etc/default/fastd'' und alle Konfigurationen in ''/etc/fastd/*/fastd.conf''. Eine Konfiguration in ''/etc/fastd/fastd.conf'' (wie in OpenSuSE) hat daher keine Auswirkung und wird nicht geladen.<br />
<br />
Die folgende Konfigurationsdatei ''fastd.conf'' muss daher in das Verzeichnis ''/etc/fastd/ffrhb/'' kopiert werden.<br />
<br />
<br />
Der ''secret key'' in der Datei dient nur als Beispiel und ist durch einen eigenen Schlüssel zu ersetzen. Ein eigener Schlüssel wird mit ''fastd --generate-key'' erzeugt.<br />
<br />
Die MTU beträgt für Freifunk Rheinland zur Zeit 1364 Byte.<br />
<br />
Das peer limit sollte auf 1 stehen, auch wenn 10 Server definiert sind. Mehrere Tunnel zur gleichen Zeit bieten zur Zeit keine Vorteile und belasten die Server.<br />
<br />
==== Datei /etc/fastd/ffrhb/fastd.conf ====<br />
<br />
<pre><br />
# Log warnings and errors to stderr<br />
log level warn;<br />
<br />
# Log everything to syslog<br />
log to syslog level warn;<br />
<br />
# Set the interface name<br />
interface "mesh-vpn";<br />
<br />
# Support salsa2012+umac and null methods, prefer salsa2012+umac<br />
method "salsa2012+umac";<br />
method "null";<br />
<br />
mode tap;<br />
<br />
# Bind to a fixed port, IPv4 only<br />
bind 0.0.0.0:53757;<br />
<br />
# Please replace the key with your own key.<br />
<br />
# Secret key generated by `fastd --generate-key`<br />
secret "e0e07c1462748f4b0f36423c0ce5c4169e48354a07a3b908435f8ab128259c53";<br />
# Secret: e0e07c1462748f4b0f36423c0ce5c4169e48354a07a3b908435f8ab128259c53<br />
# Public: 72dc4c1aa15cfe4ae5d54caccd8efbd1af8848770843b26a58ed2fb8edb82d50<br />
<br />
secure handshakes yes;<br />
<br />
# Set the interface MTU for TAP mode with xsalsa20/aes128 over IPv4 with a base MTU of 1492 (PPPoE)<br />
# (see MTU selection documentation)<br />
# For Freifunk Rheinland is the MTU 1364<br />
<br />
mtu 1364;<br />
<br />
peer limit 1;<br />
<br />
# Include peers from the directory 'peers'<br />
include peers from "/etc/fastd/ffrhb/peers";<br />
<br />
## IP v6 Adresse muss ggf. nach ip link set up dev bat0 gesetzt werden mit:<br />
## ip addr add dev bat0 fda0:747e:ab29:2241:.../64 scope global<br />
<br />
on up "<br />
/etc/fastd/ffrhb/on-up.sh $INTERFACE<br />
";<br />
</pre><br />
<br />
Die Schnittstelle ''mesh-vpn'' muss B.A.T.M.A.N. als Interface hinzugefügt werden und benötigt eine IPv6 Adresss mit scope global. Dies geschieht mit folgenden Script, dass unter /etc/fastd/ffrhb/on-up.sh gespeichert wird. Die MTU der Netzwerkschnittstelle ''bat0'' muss auf die MTU der Freifunk Community gesetzt werden. Für Rheinbach (Domäne Wupper ist es zur Zeit 1364).<br />
<br />
==== Datei /etc/fastd/ffrhb/on-up.sh ====<br />
<br />
Der Unterschied des folgenden Scriptes zu anderen Erklärungen / Beispielen im Internet ist, dass hier eine globale IPv6 Adresse für das Interface bat0 erzeugt wird und die MTU an die Bedürfnisse der FF-Rheinland angepasst wird. Deshalb erfolgt dies in einem eigenen Script und nicht in der fastd.conf. Das Script muss von fastd über ''on up'' aufgerufen werden.<br />
<br />
<pre><br />
#!/bin/bash<br />
<br />
# Execute when fastd is up<br />
# Autor: Thomas Arend<br />
# (c) 2017 by Thomas Arend<br />
# Date: 03.03.2017<br />
<br />
INTERFACE=${1:-mesh-vpn}<br />
<br />
# Start meshing on fastd tunnel<br />
ip link set up dev $INTERFACE || echo Error: Interface $INTERFACE not set up<br />
<br />
# Add tunnel interface to mesh<br />
batctl if add $INTERFACE || echo Error: Interface $INTERFACE not added to batman<br />
<br />
# Set mtu for bat0<br />
# Change 1364 to your value in the site.conf for the FF firmware<br />
<br />
ip link set up dev bat0 mtu 1364 || echo Error when setting MTU to 1364<br />
<br />
# Add ipv6 addr with scope global to bat0<br />
<br />
NIP='fda0:747e:ab29:2241'<br />
GIP=`ip addr show dev bat0 | grep 'inet6 fe80::.* scope link' | sed 's#.*inet6 fe80::##; s# .*$##'`<br />
<br />
ip addr add ${NIP}:${GIP} dev bat0 scope global || echo Error: IPv6 ${NIP}:${GIP} not set<br />
<br />
</pre><br />
<br />
Alternative für das Bestimmen der IP-Adresse:<br />
<br />
IPv6=`grep 'fe80.*bat0$'/proc/net/if_inet6 | sed 's#fe80000000000000#fda0747eab292241#;s# .*##; s#\([0-9a-f]\{4,4\}\)#\1:#g; s#:$##'`<br />
<br />
==== Schlüssel Dateien für die Peers ====<br />
<br />
Jeder [[Peer]] besitzt wie unser Rechner ein Schlüsselpaar, anhand dessen er eindeutig identifiziert wird. Die öffentlichen Schlüssel der müssen Peers kommen in das Unterverzeichnis ''peers''. Die Namen spielen dabei keine Rolle. Wir verwenden folgende Namenskonvention, um die Peer und öffentlichen Schlüssel zu erkennen: ''mesh_vpn_backbone_peer_wupper&lt;n&gt;''. Diese Namen werden auch in der Firmware verwendet, &lt;n&gt; ist dabei die Nummer des Servers (0-9).<br />
<br />
Beispiel für Wupper 0.<br />
<br />
<pre><br />
key "e52daa654abcf5c20c5b7a74b5145f70a7491435c6ef334ae352e4f19c00e8f5";<br />
remote "0.wupper.ffrl.de" port 53757;<br />
</pre><br />
<br />
==== Starten und Aktivieren ====<br />
<br />
Nun muss nur noch ''fastd'' gestartet werden mit:<br />
<br />
service fastd start<br />
<br />
Um ''fastd'' mit jedem Neustart automatisch zu starten, muss der folgende Befehl ausgeführt werden:<br />
<br />
systemctl enable fastd<br />
<br />
=== Test der Konfiguration ===<br />
<br />
Ob alles richtig läuft, zeigen ''ifconfig'', ''systemctl status fastd'' und ''batctl if'' bzw. ''batctl tg''<br />
<br />
<pre><br />
root@medion:~# ifconfig bat0<br />
bat0 Link encap:Ethernet Hardware Adresse 32:e7:53:24:17:5f <br />
inet6-Adresse: fda0:747e:ab29:2241:30e7:53ff:fe24:175f/64 Gültigkeitsbereich:Global<br />
inet6-Adresse: fe80::30e7:53ff:fe24:175f/64 Gültigkeitsbereich:Verbindung<br />
UP BROADCAST RUNNING MULTICAST MTU:1364 Metrik:1<br />
RX packets:61804 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:28 errors:0 dropped:24 overruns:0 carrier:0<br />
Kollisionen:0 Sendewarteschlangenlänge:0 <br />
RX bytes:3708888 (3.5 MiB) TX bytes:3529 (3.4 KiB)<br />
<br />
mesh-vpn Link encap:Ethernet Hardware Adresse aa:53:8d:76:e2:fa <br />
inet6-Adresse: fe80::a853:8dff:fe76:e2fa/64 Gültigkeitsbereich:Verbindung<br />
UP BROADCAST RUNNING MULTICAST MTU:1364 Metrik:1<br />
RX packets:66901 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:23753 errors:0 dropped:0 overruns:0 carrier:0<br />
Kollisionen:0 Sendewarteschlangenlänge:500 <br />
RX bytes:9241074 (8.8 MiB) TX bytes:5150504 (4.9 MiB)<br />
<br />
root@medion:~# systemctl -l status fastd<br />
● fastd.service - LSB: Fast and Secure Tunneling Daemon<br />
Loaded: loaded (/etc/init.d/fastd)<br />
Active: active (running) since Fr 2017-03-03 16:54:08 CET; 26min ago<br />
Process: 2686 ExecStop=/etc/init.d/fastd stop (code=exited, status=0/SUCCESS)<br />
Process: 2697 ExecStart=/etc/init.d/fastd start (code=exited, status=0/SUCCESS)<br />
CGroup: /system.slice/fastd.service<br />
└─2710 /usr/bin/fastd --syslog-level info --config /etc/fastd/ffrhb/fastd.conf<br />
<br />
Mär 03 16:54:08 medion fastd[2697]: Starting Fast and Secure Tunneling Daemon... Autostarting fastd 'ffrhb':.<br />
Mär 03 16:54:08 medion systemd[1]: Started LSB: Fast and Secure Tunneling Daemon.<br />
<br />
root@x2:/etc/fastd/ffrhb/peers# batctl if<br />
mesh-vpn: active<br />
<br />
root@medion:~# batctl tl<br />
[B.A.T.M.A.N. adv 2016.5, MainIF/MAC: mesh-vpn/aa:53:8d:76:e2:fa (bat0/32:e7:53:24:17:5f BATMAN_IV), TTVN: 3]<br />
Client VID Flags Last seen (CRC )<br />
33:33:ff:24:17:5f -1 [.P....] 0.000 (0x2453b430)<br />
33:33:00:00:00:fb -1 [.P....] 0.000 (0x2453b430)<br />
01:00:5e:00:00:01 -1 [.P....] 0.000 (0x2453b430)<br />
32:e7:53:24:17:5f -1 [.P....] 0.000 (0x2453b430)<br />
33:33:00:00:00:01 -1 [.P....] 0.000 (0x2453b430)<br />
</pre><br />
<br />
== Hinweise und Warnungen ==<br />
<br />
Fastd baut den Tunnel über eine beliebige Netzwerkverbindung auf. D.h. der Rechner kann in einem WLAN - privat oder öffentlich - betrieben werden. Dies kann auch ein Freifunk-Netz sein.<br />
<br />
Ist der Rechner in einem Freifunk-Netz, dann baut er einen fastd-Tunnel im fastd-Tunnel des Nodes auf, der die Verbindung zum Internet herstellt. Dies ist nicht sinnvoll und kann Effekte haben, die ich derzeit nicht überblicke und die nicht wünschenswert sind. Ein Effekt wird das Splitten von großen IP-Paketen sein.<br />
<br />
== Ergebnis und Siegerehrung ==<br />
<br />
Über unseren fastd-Tunnel können wir auf die Nodes und die Clients des Freifunknetzes über IPv6 zugreifen.</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=B.A.T.M.A.N.&diff=254B.A.T.M.A.N.2018-05-27T20:08:03Z<p>Thomas: /* B.A.T.M.A.N. und fastd installieren */ Überarbeitung des Scriptes. Alfred wird mit installiert, aber nicht konfiguriert.</p>
<hr />
<div>B.A.T.M.A.N. (Abkürzung für '''B'''etter '''A'''pproach '''T'''o '''M'''obile '''A'''dhoc '''N'''etworking) ist ein Routing-Protokoll für mobile Ad-hoc-Netze. Siehe [https://de.wikipedia.org/wiki/B.A.T.M.A.N. WikiPedia]. Im Freifunk wird unter anderem B.A.T.M.A.N. als Routing-Protokoll eingesetzt.<br />
<br />
== Abstrakt ==<br />
<br />
In diesem Artikel wird beschrieben, wie B.A.T.M.A.N. zusammen mit [[fastd]] auf einem Rechner mit Debian eingerichtet wird und der Rechner direkt an das Netz des Freifunk Rheinland, Domäne Wupper, angebunden wird. Als Beispiel dient die Konfiguration der Freifunk Rheinbach Community. <br />
<br />
Die Verbindung der [[Node | Nodes]] (Router) zu den Servern im Internet erfolgt über einen verschlüsselten Tunnel. Bei Freifunk Rheinbach wird für die Tunnel ''fastd'' verwendet. Nodes, die in WLAN Reichweite zueinander stehen, verbinden sich untereinander über ein MESH-Netzwerk. Auch über Kabel (LAN oder WAN-Port) können sich Nodes vermaschen. Auf all diesen Verbindungen wird das Routing-Protokoll B.A.T.M.A.N. verwendet.<br />
<br />
== Hinweis ==<br />
<br />
Ich verwende als Shell die [[bash]]. Standard ist bei Debian 8.7.1 [[dash]]. Die Befehle in den Scripten sind so einfach, dass sie in beiden Shells funktionieren sollten<br />
<br />
== Installation der Software ==<br />
<br />
=== B.A.T.M.A.N. und fastd installieren ===<br />
<br />
Die folgenden Befehle und Scripte wurden unter '''Debian 8''', '''Debian 9'''und '''Raspbian 2018-04''' entwickelt und getestet.<br />
<br />
Das folgende Script installiert auf einem Debian 8 / 9 bzw. Raspbian die notwendige Software - einschließlich fastd. Je nach System kann es notwendig sein zusätzliche Pakete zu installieren. Das folgende Script wurde auf zwei relativ frischen, jungfräulichen Debian 8.7.1 getestet.<br />
<br />
Achtung: Die Router verwenden B.A.T.M.A.N. 2017.2 (Stand: 03.02.2018, Gluon v2017.1.4); Aktuell ist 2018.1. Im Debian sind meist ältere Versionen. Deshalb empfiehlt sich eine Installation aus den Quellen<br />
<br />
Vor der Installation mit dem nachfolgenden Script müssen die passenden linunx-header- Dateien für den Kernel installiert sein / werden. <br />
<br />
Z.B.<br />
<br />
'''Debian:''' Für Raspbian befinden sich die Linux-Headers in linux-headers-amd64.<br />
'''Raspbian:''' Für Raspbian befinden sich die Linux-Headers in raspberrypi-kernel-headers.<br />
<br />
<pre><br />
#!/bin/bash<br />
<br />
# Installation B.A.T.M.A.N.<br />
# Version festlegen<br />
<br />
VBAT="2018.1"<br />
SRC="https://downloads.open-mesh.org/batman/releases/batman-adv-${VBAT}"<br />
<br />
# Installation der linux-headers für den Kernel.<br />
<br />
MACHINE=$(uname -m)<br />
<br />
case "$MACHINE" in<br />
<br />
x86_64) <br />
apt install linux-headers-amd64 # Debian<br />
;;<br />
armv7l)<br />
apt install raspberrypi-kernel-headers # Raspian<br />
;;<br />
*)<br />
echo -e "Unbekannte Architektur ${MACHINE}"<br />
exit 1<br />
;;<br />
<br />
esac<br />
<br />
# Wir brauchen ein paar Repos, die nicht im Default einhalten sind.<br />
<br />
grep 'http://repo.universe-factory.net/debian/' /etc/apt/sources.list || echo 'deb http://repo.universe-factory.net/debian/ sid main' >> /etc/apt/sources.list<br />
<br />
# Und den Schlüssel für das Paket. Aktuell: 16EF3F64CB201D9C<br />
<br />
KEY=16EF3F64CB201D9C<br />
gpg --keyserver pgpkeys.mit.edu --recv-key $KEY<br />
gpg -a --export $KEY | apt-key add -<br />
<br />
# Nun die Software, die wahrscheinlich fehlt, inklusive fastd<br />
<br />
apt install apt-transport-https<br />
apt update<br />
apt install build-essential bridge-utils pkg-config libnl-3-dev libnl-genl-3-dev fastd<br />
<br />
# Für alfred benötigte Entwicklunsgbibliotheken<br />
<br />
apt install libnl-3-dev libnl-genl-3-dev libcap-dev libgps-dev<br />
<br />
# Jetzt wird B.A.T.M.A.N. alfred aus den Quellen geladen und installiert<br />
<br />
cd /tmp<br />
wget ${SRC}/alfred-${VBAT}.tar.gz<br />
tar xzf alfred-${VBAT}.tar.gz<br />
cd alfred-${VBAT}<br />
make CONFIG_ALFRED_GPSD=n<br />
make CONFIG_ALFRED_GPSD=n install<br />
<br />
# Jetzt wird B.A.T.M.A.N. batctl aus den Quellen geladen und installiert<br />
<br />
cd /tmp<br />
wget ${SRC}/batctl-${VBAT}.tar.gz<br />
tar xzf batctl-${VBAT}.tar.gz<br />
cd batctl-${VBAT}<br />
make<br />
make install<br />
<br />
<br />
# Jetzt wird B.A.T.M.A.N. batman-adv aus den Quellen geladen und installiert<br />
<br />
cd /tmp<br />
wget ${SRC}/batman-adv-${VBAT}.tar.gz<br />
tar xzf batman-adv-${VBAT}.tar.gz<br />
cd batman-adv-${VBAT}<br />
make<br />
make install<br />
<br />
# Wir können batman-adv gleich starten<br />
<br />
modprobe batman-adv<br />
<br />
# ... und in die /etc/modules eintragen, damit es auch bei einem Neustart vorhanden ist<br />
<br />
grep '^batman-adv' /etc/modules || echo -e '#B.A.T.M.A.N für Freifunk\nbatman-adv' >> /etc/modules<br />
<br />
# zum Schluss legen wir uns noch ein Verzeichnis für die Konfiguration der fastd-Tunnel an.<br />
<br />
mkdir -p /etc/fastd/ffrhb/peers<br />
<br />
</pre><br />
<br />
== Konfiguration ==<br />
<br />
=== B.A.T.M.A.N. konfigurieren ===<br />
<br />
Der Befehl ''modprobe batman-adv'' startes B.A.T.M.A.N. gleich nach der Installation. Durch Aufnahme von ''batman-adv'' in die Datei ''/etc/modules'', wird B.A.T.M.A.N. beim Neustart des Rechner geladen. Beides wird bereits mit dem obigen Script erledigt, so dass wir fertig sind.<br />
<br />
=== fastd konfigurieren ===<br />
<br />
Das script ''/etc/init.d/fastd'' startet die Default-Konfiguration in ''/etc/default/fastd'' und alle Konfigurationen in ''/etc/fastd/*/fastd.conf''. Eine Konfiguration in ''/etc/fastd/fastd.conf'' (wie in OpenSuSE) hat daher keine Auswirkung und wird nicht geladen.<br />
<br />
Die folgende Konfigurationsdatei ''fastd.conf'' muss daher in das Verzeichnis ''/etc/fastd/ffrhb/'' kopiert werden.<br />
<br />
<br />
Der ''secret key'' in der Datei dient nur als Beispiel und ist durch einen eigenen Schlüssel zu ersetzen. Ein eigener Schlüssel wird mit ''fastd --generate-key'' erzeugt.<br />
<br />
Die MTU beträgt für Freifunk Rheinland zur Zeit 1364 Byte.<br />
<br />
Das peer limit sollte auf 1 stehen, auch wenn 10 Server definiert sind. Mehrere Tunnel zur gleichen Zeit bieten zur Zeit keine Vorteile und belasten die Server.<br />
<br />
==== Datei /etc/fastd/ffrhb/fastd.conf ====<br />
<br />
<pre><br />
# Log warnings and errors to stderr<br />
log level warn;<br />
<br />
# Log everything to syslog<br />
log to syslog level warn;<br />
<br />
# Set the interface name<br />
interface "mesh-vpn";<br />
<br />
# Support salsa2012+umac and null methods, prefer salsa2012+umac<br />
method "salsa2012+umac";<br />
method "null";<br />
<br />
mode tap;<br />
<br />
# Bind to a fixed port, IPv4 only<br />
bind 0.0.0.0:53757;<br />
<br />
# Please replace the key with your own key.<br />
<br />
# Secret key generated by `fastd --generate-key`<br />
secret "e0e07c1462748f4b0f36423c0ce5c4169e48354a07a3b908435f8ab128259c53";<br />
# Secret: e0e07c1462748f4b0f36423c0ce5c4169e48354a07a3b908435f8ab128259c53<br />
# Public: 72dc4c1aa15cfe4ae5d54caccd8efbd1af8848770843b26a58ed2fb8edb82d50<br />
<br />
secure handshakes yes;<br />
<br />
# Set the interface MTU for TAP mode with xsalsa20/aes128 over IPv4 with a base MTU of 1492 (PPPoE)<br />
# (see MTU selection documentation)<br />
# For Freifunk Rheinland is the MTU 1364<br />
<br />
mtu 1364;<br />
<br />
peer limit 1;<br />
<br />
# Include peers from the directory 'peers'<br />
include peers from "/etc/fastd/ffrhb/peers";<br />
<br />
## IP v6 Adresse muss ggf. nach ip link set up dev bat0 gesetzt werden mit:<br />
## ip addr add dev bat0 fda0:747e:ab29:2241:.../64 scope global<br />
<br />
on up "<br />
/etc/fastd/ffrhb/on-up.sh $INTERFACE<br />
";<br />
</pre><br />
<br />
Die Schnittstelle ''mesh-vpn'' muss B.A.T.M.A.N. als Interface hinzugefügt werden und benötigt eine IPv6 Adresss mit scope global. Dies geschieht mit folgenden Script, dass unter /etc/fastd/ffrhb/on-up.sh gespeichert wird. Die MTU der Netzwerkschnittstelle ''bat0'' muss auf die MTU der Freifunk Community gesetzt werden. Für Rheinbach (Domäne Wupper ist es zur Zeit 1364).<br />
<br />
==== Datei /etc/fastd/ffrhb/on-up.sh ====<br />
<br />
Der Unterschied des folgenden Scriptes zu anderen Erklärungen / Beispielen im Internet ist, dass hier eine globale IPv6 Adresse für das Interface bat0 erzeugt wird und die MTU an die Bedürfnisse der FF-Rheinland angepasst wird. Deshalb erfolgt dies in einem eigenen Script und nicht in der fastd.conf. Das Script muss von fastd über ''on up'' aufgerufen werden.<br />
<br />
<pre><br />
#!/bin/bash<br />
<br />
# Execute when fastd is up<br />
# Autor: Thomas Arend<br />
# (c) 2017 by Thomas Arend<br />
# Date: 03.03.2017<br />
<br />
INTERFACE=${1:-mesh-vpn}<br />
<br />
# Start meshing on fastd tunnel<br />
ip link set up dev $INTERFACE || echo Error: Interface $INTERFACE not set up<br />
<br />
# Add tunnel interface to mesh<br />
batctl if add $INTERFACE || echo Error: Interface $INTERFACE not added to batman<br />
<br />
# Set mtu for bat0<br />
# Change 1364 to your value in the site.conf for the FF firmware<br />
<br />
ip link set up dev bat0 mtu 1364 || echo Error when setting MTU to 1364<br />
<br />
# Add ipv6 addr with scope global to bat0<br />
<br />
NIP='fda0:747e:ab29:2241'<br />
GIP=`ip addr show dev bat0 | grep 'inet6 fe80::.* scope link' | sed 's#.*inet6 fe80::##; s# .*$##'`<br />
<br />
ip addr add ${NIP}:${GIP} dev bat0 scope global || echo Error: IPv6 ${NIP}:${GIP} not set<br />
<br />
</pre><br />
<br />
Alternative für das Bestimmen der IP-Adresse:<br />
<br />
IPv6=`grep 'fe80.*bat0$'/proc/net/if_inet6 | sed 's#fe80000000000000#fda0747eab292241#;s# .*##; s#\([0-9a-f]\{4,4\}\)#\1:#g; s#:$##'`<br />
<br />
==== Schlüssel Dateien für die Peers ====<br />
<br />
Jeder [[Peer]] besitzt wie unser Rechner ein Schlüsselpaar, anhand dessen er eindeutig identifiziert wird. Die öffentlichen Schlüssel der müssen Peers kommen in das Unterverzeichnis ''peers''. Die Namen spielen dabei keine Rolle. Wir verwenden folgende Namenskonvention, um die Peer und öffentlichen Schlüssel zu erkennen: ''mesh_vpn_backbone_peer_wupper&lt;n&gt;''. Diese Namen werden auch in der Firmware verwendet, &lt;n&gt; ist dabei die Nummer des Servers (0-9).<br />
<br />
Beispiel für Wupper 0.<br />
<br />
<pre><br />
key "e52daa654abcf5c20c5b7a74b5145f70a7491435c6ef334ae352e4f19c00e8f5";<br />
remote "0.wupper.ffrl.de" port 53757;<br />
</pre><br />
<br />
==== Starten und Aktivieren ====<br />
<br />
Nun muss nur noch ''fastd'' gestartet werden mit:<br />
<br />
service fastd start<br />
<br />
Um ''fastd'' mit jedem Neustart automatisch zu starten, muss der folgende Befehl ausgeführt werden:<br />
<br />
systemctl enable fastd<br />
<br />
=== Test der Konfiguration ===<br />
<br />
Ob alles richtig läuft, zeigen ''ifconfig'', ''systemctl status fastd'' und ''batctl if'' bzw. ''batctl tg''<br />
<br />
<pre><br />
root@medion:~# ifconfig bat0<br />
bat0 Link encap:Ethernet Hardware Adresse 32:e7:53:24:17:5f <br />
inet6-Adresse: fda0:747e:ab29:2241:30e7:53ff:fe24:175f/64 Gültigkeitsbereich:Global<br />
inet6-Adresse: fe80::30e7:53ff:fe24:175f/64 Gültigkeitsbereich:Verbindung<br />
UP BROADCAST RUNNING MULTICAST MTU:1364 Metrik:1<br />
RX packets:61804 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:28 errors:0 dropped:24 overruns:0 carrier:0<br />
Kollisionen:0 Sendewarteschlangenlänge:0 <br />
RX bytes:3708888 (3.5 MiB) TX bytes:3529 (3.4 KiB)<br />
<br />
mesh-vpn Link encap:Ethernet Hardware Adresse aa:53:8d:76:e2:fa <br />
inet6-Adresse: fe80::a853:8dff:fe76:e2fa/64 Gültigkeitsbereich:Verbindung<br />
UP BROADCAST RUNNING MULTICAST MTU:1364 Metrik:1<br />
RX packets:66901 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:23753 errors:0 dropped:0 overruns:0 carrier:0<br />
Kollisionen:0 Sendewarteschlangenlänge:500 <br />
RX bytes:9241074 (8.8 MiB) TX bytes:5150504 (4.9 MiB)<br />
<br />
root@medion:~# systemctl -l status fastd<br />
● fastd.service - LSB: Fast and Secure Tunneling Daemon<br />
Loaded: loaded (/etc/init.d/fastd)<br />
Active: active (running) since Fr 2017-03-03 16:54:08 CET; 26min ago<br />
Process: 2686 ExecStop=/etc/init.d/fastd stop (code=exited, status=0/SUCCESS)<br />
Process: 2697 ExecStart=/etc/init.d/fastd start (code=exited, status=0/SUCCESS)<br />
CGroup: /system.slice/fastd.service<br />
└─2710 /usr/bin/fastd --syslog-level info --config /etc/fastd/ffrhb/fastd.conf<br />
<br />
Mär 03 16:54:08 medion fastd[2697]: Starting Fast and Secure Tunneling Daemon... Autostarting fastd 'ffrhb':.<br />
Mär 03 16:54:08 medion systemd[1]: Started LSB: Fast and Secure Tunneling Daemon.<br />
<br />
root@x2:/etc/fastd/ffrhb/peers# batctl if<br />
mesh-vpn: active<br />
<br />
root@medion:~# batctl tl<br />
[B.A.T.M.A.N. adv 2016.5, MainIF/MAC: mesh-vpn/aa:53:8d:76:e2:fa (bat0/32:e7:53:24:17:5f BATMAN_IV), TTVN: 3]<br />
Client VID Flags Last seen (CRC )<br />
33:33:ff:24:17:5f -1 [.P....] 0.000 (0x2453b430)<br />
33:33:00:00:00:fb -1 [.P....] 0.000 (0x2453b430)<br />
01:00:5e:00:00:01 -1 [.P....] 0.000 (0x2453b430)<br />
32:e7:53:24:17:5f -1 [.P....] 0.000 (0x2453b430)<br />
33:33:00:00:00:01 -1 [.P....] 0.000 (0x2453b430)<br />
</pre><br />
<br />
== Hinweise und Warnungen ==<br />
<br />
Fastd baut den Tunnel über eine beliebige Netzwerkverbindung auf. D.h. der Rechner kann in einem WLAN - privat oder öffentlich - betrieben werden. Dies kann auch ein Freifunk-Netz sein.<br />
<br />
Ist der Rechner in einem Freifunk-Netz, dann baut er einen fastd-Tunnel im fastd-Tunnel des Nodes auf, der die Verbindung zum Internet herstellt. Dies ist nicht sinnvoll und kann Effekte haben, die ich derzeit nicht überblicke und die nicht wünschenswert sind. Ein Effekt wird das Splitten von großen IP-Paketen sein.<br />
<br />
== Ergebnis und Siegerehrung ==<br />
<br />
Über unseren fastd-Tunnel können wir auf die Nodes und die Clients des Freifunknetzes über IPv6 zugreifen.</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=DNS&diff=253DNS2018-04-16T14:51:24Z<p>Thomas: Die Seite wurde neu angelegt: „Siehe: [https://forum.ffrn.de/t/warum-funktioniert-das-dns-auf-meinem-knoten-nicht/587 Warum funktioniert das DNS auf meinem Knoten nicht?] Der Domain Name Se…“</p>
<hr />
<div>Siehe: [https://forum.ffrn.de/t/warum-funktioniert-das-dns-auf-meinem-knoten-nicht/587 Warum funktioniert das DNS auf meinem Knoten nicht?]<br />
<br />
Der Domain Name Service (DNS) ist so konfiguriert, dass die Knoten nicht auf die lokalen Domain Name Server zugreifen. Nur für den Aufbau der Tunnel (fastd, L2TP ...) muss der Router die Namen der Gateways über das lokale Netz auflösen. Dies gilt auch für Dienste wie NTP und den Autoupdater.<br />
<br />
Einige Communities stellen einen eigenen Nameserver bereit, der über DHCP in /tmp/resolv.conf.auto eingetragen wird. Mit folgendem Befehl wird ein eigener DNS-Server an die Liste angehängt.<br />
<br />
echo namserver <ip> >> /tmp/resolv.conf.auto</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=B.A.T.M.A.N.&diff=252B.A.T.M.A.N.2018-04-15T19:27:53Z<p>Thomas: /* fastd konfigurieren */</p>
<hr />
<div>B.A.T.M.A.N. (Abkürzung für '''B'''etter '''A'''pproach '''T'''o '''M'''obile '''A'''dhoc '''N'''etworking) ist ein Routing-Protokoll für mobile Ad-hoc-Netze. Siehe [https://de.wikipedia.org/wiki/B.A.T.M.A.N. WikiPedia]. Im Freifunk wird unter anderem B.A.T.M.A.N. als Routing-Protokoll eingesetzt.<br />
<br />
== Abstrakt ==<br />
<br />
In diesem Artikel wird beschrieben, wie B.A.T.M.A.N. zusammen mit [[fastd]] auf einem Rechner mit Debian eingerichtet wird und der Rechner direkt an das Netz des Freifunk Rheinland, Domäne Wupper, angebunden wird. Als Beispiel dient die Konfiguration der Freifunk Rheinbach Community. <br />
<br />
Die Verbindung der [[Node | Nodes]] (Router) zu den Servern im Internet erfolgt über einen verschlüsselten Tunnel. Bei Freifunk Rheinbach wird für die Tunnel ''fastd'' verwendet. Nodes, die in WLAN Reichweite zueinander stehen, verbinden sich untereinander über ein MESH-Netzwerk. Auch über Kabel (LAN oder WAN-Port) können sich Nodes vermaschen. Auf all diesen Verbindungen wird das Routing-Protokoll B.A.T.M.A.N. verwendet.<br />
<br />
== Hinweis ==<br />
<br />
Ich verwende als Shell die [[bash]]. Standard ist bei Debian 8.7.1 [[dash]]. Die Befehle in den Scripten sind so einfach, dass sie in beiden Shells funktionieren sollten<br />
<br />
== Installation der Software ==<br />
<br />
=== B.A.T.M.A.N. und fastd installieren ===<br />
<br />
Die folgenden Befehle und Scripte wurden unter '''Debian 8.7.1''' entwickelt und getestet.<br />
<br />
Das folgende Script installiert auf einem Debian 8 die notwendige Software - einschließlich fastd. Je nach System kann es notwendig sein zusätzliche Pakete zu installieren. Das folgende Script wurde auf zwei relativ frischen, jungfräulichen Debian 8.7.1 getestet.<br />
<br />
Achtung: Die Router verwenden B.A.T.M.A.N. 2017.2 (Stand: 03.02.2018, Gluon v2017.1.4); Aktuell ist 2017.4. Im Debian sind meist ältere Versionen. Deshalb empfiehlt sich eine Installation aus den Quellen<br />
<br />
Vor der Installation mit dem nachfolgenden Script müssen die passenden linunx-header- Dateien für den Kernel installiert sein / werden. Dies geht zum Beispiel mit mit ''apt-get install linux-headers-4.9.0-5-all-amd64''. <br />
<br />
Der Befehl ist zwar im Script, aber nicht getestet.<br />
<br />
<br />
'''Raspbian:''' Für Raspbian befinden sich die Linux-Headers in rapberrypi-kernel-headers.<br />
<br />
<pre><br />
#!/bin/bash<br />
<br />
# Installation B.A.T.M.A.N.<br />
# Version festlegen<br />
<br />
VBAT="2017.2"<br />
<br />
# Installation der linux-headers für den Kernel.<br />
<br />
apt install linux-headers-$(uname -r | sed 's#-amd64#-all-amd64#')<br />
<br />
<br />
# Wir brauchen ein paar Repos, die nicht im Default einhalten sind.<br />
<br />
grep 'http://repo.universe-factory.net/debian/' /etc/apt/sources.list || echo 'deb http://repo.universe-factory.net/debian/ sid main' >> /etc/apt/sources.list<br />
<br />
# Und den Schlüssel für das Paket. Aktuell: 16EF3F64CB201D9C<br />
<br />
KEY=16EF3F64CB201D9C<br />
gpg --keyserver pgpkeys.mit.edu --recv-key $KEY<br />
gpg -a --export $KEY | apt-key add -<br />
<br />
# Nun die Software, die wahrscheinlich fehlt, inklusive fastd<br />
<br />
apt install apt-transport-https<br />
apt update<br />
apt install build-essential bridge-utils pkg-config libnl-3-dev libnl-genl-3-dev linux-headers-amd64 fastd<br />
<br />
# Jetzt wird B.A.T.M.A.N. batctl aus den Quellen geladen und installiert<br />
<br />
cd /usr/src/<br />
wget http://downloads.open-mesh.org/batman/stable/sources/batctl/batctl-${VBAT}.tar.gz<br />
tar xzf batctl-${VBAT}.tar.gz<br />
cd batctl-${VBAT}<br />
make<br />
make install<br />
<br />
<br />
# Jetzt wird B.A.T.M.A.N. batman-adv aus den Quellen geladen und installiert<br />
<br />
cd /usr/src/<br />
wget http://downloads.open-mesh.org/batman/stable/sources/batman-adv/batman-adv-${VBAT}.tar.gz<br />
tar xzf batman-adv-${VBAT}.tar.gz<br />
cd batman-adv-${VBAT}<br />
make<br />
make install<br />
<br />
# Wir können batman-adv gleich starten<br />
<br />
modprobe batman-adv<br />
<br />
# ... und in die /etc/modules eintragen, damit es auch bei einem Neustart vorhanden ist<br />
<br />
grep '^batman-adv' /etc/modules || echo -e '#B.A.T.M.A.N für Freifunk\nbatman-adv' >> /etc/modules<br />
<br />
# zum Schluss legen wir uns noch ein Verzeichnis für die Konfiguration der fastd-Tunnel an.<br />
<br />
mkdir -p /etc/fastd/ffrhb/peers<br />
</pre><br />
<br />
== Konfiguration ==<br />
<br />
=== B.A.T.M.A.N. konfigurieren ===<br />
<br />
Der Befehl ''modprobe batman-adv'' startes B.A.T.M.A.N. gleich nach der Installation. Durch Aufnahme von ''batman-adv'' in die Datei ''/etc/modules'', wird B.A.T.M.A.N. beim Neustart des Rechner geladen. Beides wird bereits mit dem obigen Script erledigt, so dass wir fertig sind.<br />
<br />
=== fastd konfigurieren ===<br />
<br />
Das script ''/etc/init.d/fastd'' startet die Default-Konfiguration in ''/etc/default/fastd'' und alle Konfigurationen in ''/etc/fastd/*/fastd.conf''. Eine Konfiguration in ''/etc/fastd/fastd.conf'' (wie in OpenSuSE) hat daher keine Auswirkung und wird nicht geladen.<br />
<br />
Die folgende Konfigurationsdatei ''fastd.conf'' muss daher in das Verzeichnis ''/etc/fastd/ffrhb/'' kopiert werden.<br />
<br />
<br />
Der ''secret key'' in der Datei dient nur als Beispiel und ist durch einen eigenen Schlüssel zu ersetzen. Ein eigener Schlüssel wird mit ''fastd --generate-key'' erzeugt.<br />
<br />
Die MTU beträgt für Freifunk Rheinland zur Zeit 1364 Byte.<br />
<br />
Das peer limit sollte auf 1 stehen, auch wenn 10 Server definiert sind. Mehrere Tunnel zur gleichen Zeit bieten zur Zeit keine Vorteile und belasten die Server.<br />
<br />
==== Datei /etc/fastd/ffrhb/fastd.conf ====<br />
<br />
<pre><br />
# Log warnings and errors to stderr<br />
log level warn;<br />
<br />
# Log everything to syslog<br />
log to syslog level warn;<br />
<br />
# Set the interface name<br />
interface "mesh-vpn";<br />
<br />
# Support salsa2012+umac and null methods, prefer salsa2012+umac<br />
method "salsa2012+umac";<br />
method "null";<br />
<br />
mode tap;<br />
<br />
# Bind to a fixed port, IPv4 only<br />
bind 0.0.0.0:53757;<br />
<br />
# Please replace the key with your own key.<br />
<br />
# Secret key generated by `fastd --generate-key`<br />
secret "e0e07c1462748f4b0f36423c0ce5c4169e48354a07a3b908435f8ab128259c53";<br />
# Secret: e0e07c1462748f4b0f36423c0ce5c4169e48354a07a3b908435f8ab128259c53<br />
# Public: 72dc4c1aa15cfe4ae5d54caccd8efbd1af8848770843b26a58ed2fb8edb82d50<br />
<br />
secure handshakes yes;<br />
<br />
# Set the interface MTU for TAP mode with xsalsa20/aes128 over IPv4 with a base MTU of 1492 (PPPoE)<br />
# (see MTU selection documentation)<br />
# For Freifunk Rheinland is the MTU 1364<br />
<br />
mtu 1364;<br />
<br />
peer limit 1;<br />
<br />
# Include peers from the directory 'peers'<br />
include peers from "/etc/fastd/ffrhb/peers";<br />
<br />
## IP v6 Adresse muss ggf. nach ip link set up dev bat0 gesetzt werden mit:<br />
## ip addr add dev bat0 fda0:747e:ab29:2241:.../64 scope global<br />
<br />
on up "<br />
/etc/fastd/ffrhb/on-up.sh $INTERFACE<br />
";<br />
</pre><br />
<br />
Die Schnittstelle ''mesh-vpn'' muss B.A.T.M.A.N. als Interface hinzugefügt werden und benötigt eine IPv6 Adresss mit scope global. Dies geschieht mit folgenden Script, dass unter /etc/fastd/ffrhb/on-up.sh gespeichert wird. Die MTU der Netzwerkschnittstelle ''bat0'' muss auf die MTU der Freifunk Community gesetzt werden. Für Rheinbach (Domäne Wupper ist es zur Zeit 1364).<br />
<br />
==== Datei /etc/fastd/ffrhb/on-up.sh ====<br />
<br />
Der Unterschied des folgenden Scriptes zu anderen Erklärungen / Beispielen im Internet ist, dass hier eine globale IPv6 Adresse für das Interface bat0 erzeugt wird und die MTU an die Bedürfnisse der FF-Rheinland angepasst wird. Deshalb erfolgt dies in einem eigenen Script und nicht in der fastd.conf. Das Script muss von fastd über ''on up'' aufgerufen werden.<br />
<br />
<pre><br />
#!/bin/bash<br />
<br />
# Execute when fastd is up<br />
# Autor: Thomas Arend<br />
# (c) 2017 by Thomas Arend<br />
# Date: 03.03.2017<br />
<br />
INTERFACE=${1:-mesh-vpn}<br />
<br />
# Start meshing on fastd tunnel<br />
ip link set up dev $INTERFACE || echo Error: Interface $INTERFACE not set up<br />
<br />
# Add tunnel interface to mesh<br />
batctl if add $INTERFACE || echo Error: Interface $INTERFACE not added to batman<br />
<br />
# Set mtu for bat0<br />
# Change 1364 to your value in the site.conf for the FF firmware<br />
<br />
ip link set up dev bat0 mtu 1364 || echo Error when setting MTU to 1364<br />
<br />
# Add ipv6 addr with scope global to bat0<br />
<br />
NIP='fda0:747e:ab29:2241'<br />
GIP=`ip addr show dev bat0 | grep 'inet6 fe80::.* scope link' | sed 's#.*inet6 fe80::##; s# .*$##'`<br />
<br />
ip addr add ${NIP}:${GIP} dev bat0 scope global || echo Error: IPv6 ${NIP}:${GIP} not set<br />
<br />
</pre><br />
<br />
Alternative für das Bestimmen der IP-Adresse:<br />
<br />
IPv6=`grep 'fe80.*bat0$'/proc/net/if_inet6 | sed 's#fe80000000000000#fda0747eab292241#;s# .*##; s#\([0-9a-f]\{4,4\}\)#\1:#g; s#:$##'`<br />
<br />
==== Schlüssel Dateien für die Peers ====<br />
<br />
Jeder [[Peer]] besitzt wie unser Rechner ein Schlüsselpaar, anhand dessen er eindeutig identifiziert wird. Die öffentlichen Schlüssel der müssen Peers kommen in das Unterverzeichnis ''peers''. Die Namen spielen dabei keine Rolle. Wir verwenden folgende Namenskonvention, um die Peer und öffentlichen Schlüssel zu erkennen: ''mesh_vpn_backbone_peer_wupper&lt;n&gt;''. Diese Namen werden auch in der Firmware verwendet, &lt;n&gt; ist dabei die Nummer des Servers (0-9).<br />
<br />
Beispiel für Wupper 0.<br />
<br />
<pre><br />
key "e52daa654abcf5c20c5b7a74b5145f70a7491435c6ef334ae352e4f19c00e8f5";<br />
remote "0.wupper.ffrl.de" port 53757;<br />
</pre><br />
<br />
==== Starten und Aktivieren ====<br />
<br />
Nun muss nur noch ''fastd'' gestartet werden mit:<br />
<br />
service fastd start<br />
<br />
Um ''fastd'' mit jedem Neustart automatisch zu starten, muss der folgende Befehl ausgeführt werden:<br />
<br />
systemctl enable fastd<br />
<br />
=== Test der Konfiguration ===<br />
<br />
Ob alles richtig läuft, zeigen ''ifconfig'', ''systemctl status fastd'' und ''batctl if'' bzw. ''batctl tg''<br />
<br />
<pre><br />
root@medion:~# ifconfig bat0<br />
bat0 Link encap:Ethernet Hardware Adresse 32:e7:53:24:17:5f <br />
inet6-Adresse: fda0:747e:ab29:2241:30e7:53ff:fe24:175f/64 Gültigkeitsbereich:Global<br />
inet6-Adresse: fe80::30e7:53ff:fe24:175f/64 Gültigkeitsbereich:Verbindung<br />
UP BROADCAST RUNNING MULTICAST MTU:1364 Metrik:1<br />
RX packets:61804 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:28 errors:0 dropped:24 overruns:0 carrier:0<br />
Kollisionen:0 Sendewarteschlangenlänge:0 <br />
RX bytes:3708888 (3.5 MiB) TX bytes:3529 (3.4 KiB)<br />
<br />
mesh-vpn Link encap:Ethernet Hardware Adresse aa:53:8d:76:e2:fa <br />
inet6-Adresse: fe80::a853:8dff:fe76:e2fa/64 Gültigkeitsbereich:Verbindung<br />
UP BROADCAST RUNNING MULTICAST MTU:1364 Metrik:1<br />
RX packets:66901 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:23753 errors:0 dropped:0 overruns:0 carrier:0<br />
Kollisionen:0 Sendewarteschlangenlänge:500 <br />
RX bytes:9241074 (8.8 MiB) TX bytes:5150504 (4.9 MiB)<br />
<br />
root@medion:~# systemctl -l status fastd<br />
● fastd.service - LSB: Fast and Secure Tunneling Daemon<br />
Loaded: loaded (/etc/init.d/fastd)<br />
Active: active (running) since Fr 2017-03-03 16:54:08 CET; 26min ago<br />
Process: 2686 ExecStop=/etc/init.d/fastd stop (code=exited, status=0/SUCCESS)<br />
Process: 2697 ExecStart=/etc/init.d/fastd start (code=exited, status=0/SUCCESS)<br />
CGroup: /system.slice/fastd.service<br />
└─2710 /usr/bin/fastd --syslog-level info --config /etc/fastd/ffrhb/fastd.conf<br />
<br />
Mär 03 16:54:08 medion fastd[2697]: Starting Fast and Secure Tunneling Daemon... Autostarting fastd 'ffrhb':.<br />
Mär 03 16:54:08 medion systemd[1]: Started LSB: Fast and Secure Tunneling Daemon.<br />
<br />
root@x2:/etc/fastd/ffrhb/peers# batctl if<br />
mesh-vpn: active<br />
<br />
root@medion:~# batctl tl<br />
[B.A.T.M.A.N. adv 2016.5, MainIF/MAC: mesh-vpn/aa:53:8d:76:e2:fa (bat0/32:e7:53:24:17:5f BATMAN_IV), TTVN: 3]<br />
Client VID Flags Last seen (CRC )<br />
33:33:ff:24:17:5f -1 [.P....] 0.000 (0x2453b430)<br />
33:33:00:00:00:fb -1 [.P....] 0.000 (0x2453b430)<br />
01:00:5e:00:00:01 -1 [.P....] 0.000 (0x2453b430)<br />
32:e7:53:24:17:5f -1 [.P....] 0.000 (0x2453b430)<br />
33:33:00:00:00:01 -1 [.P....] 0.000 (0x2453b430)<br />
</pre><br />
<br />
== Hinweise und Warnungen ==<br />
<br />
Fastd baut den Tunnel über eine beliebige Netzwerkverbindung auf. D.h. der Rechner kann in einem WLAN - privat oder öffentlich - betrieben werden. Dies kann auch ein Freifunk-Netz sein.<br />
<br />
Ist der Rechner in einem Freifunk-Netz, dann baut er einen fastd-Tunnel im fastd-Tunnel des Nodes auf, der die Verbindung zum Internet herstellt. Dies ist nicht sinnvoll und kann Effekte haben, die ich derzeit nicht überblicke und die nicht wünschenswert sind. Ein Effekt wird das Splitten von großen IP-Paketen sein.<br />
<br />
== Ergebnis und Siegerehrung ==<br />
<br />
Über unseren fastd-Tunnel können wir auf die Nodes und die Clients des Freifunknetzes über IPv6 zugreifen.</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=B.A.T.M.A.N.&diff=251B.A.T.M.A.N.2018-04-15T19:24:48Z<p>Thomas: /* Raspbian */</p>
<hr />
<div>B.A.T.M.A.N. (Abkürzung für '''B'''etter '''A'''pproach '''T'''o '''M'''obile '''A'''dhoc '''N'''etworking) ist ein Routing-Protokoll für mobile Ad-hoc-Netze. Siehe [https://de.wikipedia.org/wiki/B.A.T.M.A.N. WikiPedia]. Im Freifunk wird unter anderem B.A.T.M.A.N. als Routing-Protokoll eingesetzt.<br />
<br />
== Abstrakt ==<br />
<br />
In diesem Artikel wird beschrieben, wie B.A.T.M.A.N. zusammen mit [[fastd]] auf einem Rechner mit Debian eingerichtet wird und der Rechner direkt an das Netz des Freifunk Rheinland, Domäne Wupper, angebunden wird. Als Beispiel dient die Konfiguration der Freifunk Rheinbach Community. <br />
<br />
Die Verbindung der [[Node | Nodes]] (Router) zu den Servern im Internet erfolgt über einen verschlüsselten Tunnel. Bei Freifunk Rheinbach wird für die Tunnel ''fastd'' verwendet. Nodes, die in WLAN Reichweite zueinander stehen, verbinden sich untereinander über ein MESH-Netzwerk. Auch über Kabel (LAN oder WAN-Port) können sich Nodes vermaschen. Auf all diesen Verbindungen wird das Routing-Protokoll B.A.T.M.A.N. verwendet.<br />
<br />
== Hinweis ==<br />
<br />
Ich verwende als Shell die [[bash]]. Standard ist bei Debian 8.7.1 [[dash]]. Die Befehle in den Scripten sind so einfach, dass sie in beiden Shells funktionieren sollten<br />
<br />
== Installation der Software ==<br />
<br />
=== B.A.T.M.A.N. und fastd installieren ===<br />
<br />
Die folgenden Befehle und Scripte wurden unter '''Debian 8.7.1''' entwickelt und getestet.<br />
<br />
Das folgende Script installiert auf einem Debian 8 die notwendige Software - einschließlich fastd. Je nach System kann es notwendig sein zusätzliche Pakete zu installieren. Das folgende Script wurde auf zwei relativ frischen, jungfräulichen Debian 8.7.1 getestet.<br />
<br />
Achtung: Die Router verwenden B.A.T.M.A.N. 2017.2 (Stand: 03.02.2018, Gluon v2017.1.4); Aktuell ist 2017.4. Im Debian sind meist ältere Versionen. Deshalb empfiehlt sich eine Installation aus den Quellen<br />
<br />
Vor der Installation mit dem nachfolgenden Script müssen die passenden linunx-header- Dateien für den Kernel installiert sein / werden. Dies geht zum Beispiel mit mit ''apt-get install linux-headers-4.9.0-5-all-amd64''. <br />
<br />
Der Befehl ist zwar im Script, aber nicht getestet.<br />
<br />
<br />
'''Raspbian:''' Für Raspbian befinden sich die Linux-Headers in rapberrypi-kernel-headers.<br />
<br />
<pre><br />
#!/bin/bash<br />
<br />
# Installation B.A.T.M.A.N.<br />
# Version festlegen<br />
<br />
VBAT="2017.2"<br />
<br />
# Installation der linux-headers für den Kernel.<br />
<br />
apt install linux-headers-$(uname -r | sed 's#-amd64#-all-amd64#')<br />
<br />
<br />
# Wir brauchen ein paar Repos, die nicht im Default einhalten sind.<br />
<br />
grep 'http://repo.universe-factory.net/debian/' /etc/apt/sources.list || echo 'deb http://repo.universe-factory.net/debian/ sid main' >> /etc/apt/sources.list<br />
<br />
# Und den Schlüssel für das Paket. Aktuell: 16EF3F64CB201D9C<br />
<br />
KEY=16EF3F64CB201D9C<br />
gpg --keyserver pgpkeys.mit.edu --recv-key $KEY<br />
gpg -a --export $KEY | apt-key add -<br />
<br />
# Nun die Software, die wahrscheinlich fehlt, inklusive fastd<br />
<br />
apt install apt-transport-https<br />
apt update<br />
apt install build-essential bridge-utils pkg-config libnl-3-dev libnl-genl-3-dev linux-headers-amd64 fastd<br />
<br />
# Jetzt wird B.A.T.M.A.N. batctl aus den Quellen geladen und installiert<br />
<br />
cd /usr/src/<br />
wget http://downloads.open-mesh.org/batman/stable/sources/batctl/batctl-${VBAT}.tar.gz<br />
tar xzf batctl-${VBAT}.tar.gz<br />
cd batctl-${VBAT}<br />
make<br />
make install<br />
<br />
<br />
# Jetzt wird B.A.T.M.A.N. batman-adv aus den Quellen geladen und installiert<br />
<br />
cd /usr/src/<br />
wget http://downloads.open-mesh.org/batman/stable/sources/batman-adv/batman-adv-${VBAT}.tar.gz<br />
tar xzf batman-adv-${VBAT}.tar.gz<br />
cd batman-adv-${VBAT}<br />
make<br />
make install<br />
<br />
# Wir können batman-adv gleich starten<br />
<br />
modprobe batman-adv<br />
<br />
# ... und in die /etc/modules eintragen, damit es auch bei einem Neustart vorhanden ist<br />
<br />
grep '^batman-adv' /etc/modules || echo -e '#B.A.T.M.A.N für Freifunk\nbatman-adv' >> /etc/modules<br />
<br />
# zum Schluss legen wir uns noch ein Verzeichnis für die Konfiguration der fastd-Tunnel an.<br />
<br />
mkdir -p /etc/fastd/ffrhb/peers<br />
</pre><br />
<br />
== Konfiguration ==<br />
<br />
=== B.A.T.M.A.N. konfigurieren ===<br />
<br />
Der Befehl ''modprobe batman-adv'' startes B.A.T.M.A.N. gleich nach der Installation. Durch Aufnahme von ''batman-adv'' in die Datei ''/etc/modules'', wird B.A.T.M.A.N. beim Neustart des Rechner geladen. Beides wird bereits mit dem obigen Script erledigt, so dass wir fertig sind.<br />
<br />
=== fastd konfigurieren ===<br />
<br />
Das script ''/etc/init.d/fastd'' startet die Default-Konfiguration in ''/etc/default/fastd'' und alle Konfigurationen in ''/etc/fastd/*/fastd.conf''. Eine Konfiguration in ''/etc/fastd/fastd.conf'' hat daher keien Auswirkung und wird nicht geladen.<br />
<br />
Die folgende Konfigurationsdatei ''fastd.conf'' muss daher in das Verzeichnis ''/etc/fastd/ffrhb/'' kopiert werden.<br />
<br />
<br />
Der ''secret key'' in der Datei dient nur als Beispiel und ist durch einen eigenen Schlüssel zu ersetzen. Ein eigener Schlüssel wird mit ''fastd --generate-key'' erzeugt.<br />
<br />
Die MTU beträgt für Freifunk Rheinland zur Zeit 1364 Byte.<br />
<br />
Das peer limit sollte auf 1 stehen, auch wenn 10 Server definiert sind. Mehrere Tunnel zur gleichen Zeit bieten zur Zeit keine Vorteile und belasten die Server.<br />
<br />
==== Datei /etc/fastd/ffrhb/fastd.conf ====<br />
<br />
<pre><br />
# Log warnings and errors to stderr<br />
log level warn;<br />
<br />
# Log everything to syslog<br />
log to syslog level warn;<br />
<br />
# Set the interface name<br />
interface "mesh-vpn";<br />
<br />
# Support salsa2012+umac and null methods, prefer salsa2012+umac<br />
method "salsa2012+umac";<br />
method "null";<br />
<br />
mode tap;<br />
<br />
# Bind to a fixed port, IPv4 only<br />
bind 0.0.0.0:53757;<br />
<br />
# Please replace the key with your own key.<br />
<br />
# Secret key generated by `fastd --generate-key`<br />
secret "e0e07c1462748f4b0f36423c0ce5c4169e48354a07a3b908435f8ab128259c53";<br />
# Secret: e0e07c1462748f4b0f36423c0ce5c4169e48354a07a3b908435f8ab128259c53<br />
# Public: 72dc4c1aa15cfe4ae5d54caccd8efbd1af8848770843b26a58ed2fb8edb82d50<br />
<br />
secure handshakes yes;<br />
<br />
# Set the interface MTU for TAP mode with xsalsa20/aes128 over IPv4 with a base MTU of 1492 (PPPoE)<br />
# (see MTU selection documentation)<br />
# For Freifunk Rheinland is the MTU 1364<br />
<br />
mtu 1364;<br />
<br />
peer limit 1;<br />
<br />
# Include peers from the directory 'peers'<br />
include peers from "/etc/fastd/ffrhb/peers";<br />
<br />
## IP v6 Adresse muss ggf. nach ip link set up dev bat0 gesetzt werden mit:<br />
## ip addr add dev bat0 fda0:747e:ab29:2241:.../64 scope global<br />
<br />
on up "<br />
/etc/fastd/ffrhb/on-up.sh $INTERFACE<br />
";<br />
</pre><br />
<br />
Die Schnittstelle ''mesh-vpn'' muss B.A.T.M.A.N. als Interface hinzugefügt werden und benötigt eine IPv6 Adresss mit scope global. Dies geschieht mit folgenden Script, dass unter /etc/fastd/ffrhb/on-up.sh gespeichert wird. Die MTU der Netzwerkschnittstelle ''bat0'' muss auf die MTU der Freifunk Community gesetzt werden. Für Rheinbach (Domäne Wupper ist es zur Zeit 1364).<br />
<br />
==== Datei /etc/fastd/ffrhb/on-up.sh ====<br />
<br />
Der Unterschied des folgenden Scriptes zu anderen Erklärungen / Beispielen im Internet ist, dass hier eine globale IPv6 Adresse für das Interface bat0 erzeugt wird und die MTU an die Bedürfnisse der FF-Rheinland angepasst wird. Deshalb erfolgt dies auch in einem eigenen Script und nicht in der fastd.conf. Das Script muss von fastd über ''on up'' aufgerufen werden.<br />
<br />
<pre><br />
#!/bin/bash<br />
<br />
# Execute when fastd is up<br />
# Autor: Thomas Arend<br />
# (c) 2017 by Thomas Arend<br />
# Date: 03.03.2017<br />
<br />
INTERFACE=${1:-mesh-vpn}<br />
<br />
# Start meshing on fastd tunnel<br />
ip link set up dev $INTERFACE || echo Error: Interface $INTERFACE not set up<br />
<br />
# Add tunnel interface to mesh<br />
batctl if add $INTERFACE || echo Error: Interface $INTERFACE not added to batman<br />
<br />
# Set mtu for bat0<br />
# Change 1364 to your value in the site.conf for the FF firmware<br />
<br />
ip link set up dev bat0 mtu 1364 || echo Error when setting MTU to 1364<br />
<br />
# Add ipv6 addr with scope global to bat0<br />
<br />
NIP='fda0:747e:ab29:2241'<br />
GIP=`ip addr show dev bat0 | grep 'inet6 fe80::.* scope link' | sed 's#.*inet6 fe80::##; s# .*$##'`<br />
<br />
ip addr add ${NIP}:${GIP} dev bat0 scope global || echo Error: IPv6 ${NIP}:${GIP} not set<br />
<br />
</pre><br />
<br />
Alternative für das Bestimmen der IP-Adresse:<br />
<br />
IPv6=`grep 'fe80.*bat0$'/proc/net/if_inet6 | sed 's#fe80000000000000#fda0747eab292241#;s# .*##; s#\([0-9a-f]\{4,4\}\)#\1:#g; s#:$##'`<br />
<br />
==== Schlüssel Dateien für die Peers ====<br />
<br />
Jeder [[Peer]] besitzt wie unser Rechner ein Schlüsselpaar, anhand dessen er eindeutig identifiziert wird. Die öffentlichen Schlüssel der müssen Peers kommen in das Unterverzeichnis ''peers''. Die Namen spielen dabei keine Rolle. Wir verwenden folgende Namenskonvention, um die Peer und öffentlichen Schlüssel zu erkennen: ''mesh_vpn_backbone_peer_wupper&lt;n&gt;''. Diese Namen werden auch in der Firmware verwendet, &lt;n&gt; ist dabei die Nummer des Servers (0-9).<br />
<br />
Beispiel für Wupper 0.<br />
<br />
<pre><br />
key "e52daa654abcf5c20c5b7a74b5145f70a7491435c6ef334ae352e4f19c00e8f5";<br />
remote "0.wupper.ffrl.de" port 53757;<br />
</pre><br />
<br />
==== Starten und Aktivieren ====<br />
<br />
Nun muss nur noch ''fastd'' gestartet werden mit:<br />
<br />
service fastd start<br />
<br />
Um ''fastd'' mit jedem Neustart automatisch zu starten, muss der folgende Befehl ausgeführt werden:<br />
<br />
systemctl enable fastd<br />
<br />
=== Test der Konfiguration ===<br />
<br />
Ob alles richtig läuft, zeigen ''ifconfig'', ''systemctl status fastd'' und ''batctl if'' bzw. ''batctl tg''<br />
<br />
<pre><br />
root@medion:~# ifconfig bat0<br />
bat0 Link encap:Ethernet Hardware Adresse 32:e7:53:24:17:5f <br />
inet6-Adresse: fda0:747e:ab29:2241:30e7:53ff:fe24:175f/64 Gültigkeitsbereich:Global<br />
inet6-Adresse: fe80::30e7:53ff:fe24:175f/64 Gültigkeitsbereich:Verbindung<br />
UP BROADCAST RUNNING MULTICAST MTU:1364 Metrik:1<br />
RX packets:61804 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:28 errors:0 dropped:24 overruns:0 carrier:0<br />
Kollisionen:0 Sendewarteschlangenlänge:0 <br />
RX bytes:3708888 (3.5 MiB) TX bytes:3529 (3.4 KiB)<br />
<br />
mesh-vpn Link encap:Ethernet Hardware Adresse aa:53:8d:76:e2:fa <br />
inet6-Adresse: fe80::a853:8dff:fe76:e2fa/64 Gültigkeitsbereich:Verbindung<br />
UP BROADCAST RUNNING MULTICAST MTU:1364 Metrik:1<br />
RX packets:66901 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:23753 errors:0 dropped:0 overruns:0 carrier:0<br />
Kollisionen:0 Sendewarteschlangenlänge:500 <br />
RX bytes:9241074 (8.8 MiB) TX bytes:5150504 (4.9 MiB)<br />
<br />
root@medion:~# systemctl -l status fastd<br />
● fastd.service - LSB: Fast and Secure Tunneling Daemon<br />
Loaded: loaded (/etc/init.d/fastd)<br />
Active: active (running) since Fr 2017-03-03 16:54:08 CET; 26min ago<br />
Process: 2686 ExecStop=/etc/init.d/fastd stop (code=exited, status=0/SUCCESS)<br />
Process: 2697 ExecStart=/etc/init.d/fastd start (code=exited, status=0/SUCCESS)<br />
CGroup: /system.slice/fastd.service<br />
└─2710 /usr/bin/fastd --syslog-level info --config /etc/fastd/ffrhb/fastd.conf<br />
<br />
Mär 03 16:54:08 medion fastd[2697]: Starting Fast and Secure Tunneling Daemon... Autostarting fastd 'ffrhb':.<br />
Mär 03 16:54:08 medion systemd[1]: Started LSB: Fast and Secure Tunneling Daemon.<br />
<br />
root@x2:/etc/fastd/ffrhb/peers# batctl if<br />
mesh-vpn: active<br />
<br />
root@medion:~# batctl tl<br />
[B.A.T.M.A.N. adv 2016.5, MainIF/MAC: mesh-vpn/aa:53:8d:76:e2:fa (bat0/32:e7:53:24:17:5f BATMAN_IV), TTVN: 3]<br />
Client VID Flags Last seen (CRC )<br />
33:33:ff:24:17:5f -1 [.P....] 0.000 (0x2453b430)<br />
33:33:00:00:00:fb -1 [.P....] 0.000 (0x2453b430)<br />
01:00:5e:00:00:01 -1 [.P....] 0.000 (0x2453b430)<br />
32:e7:53:24:17:5f -1 [.P....] 0.000 (0x2453b430)<br />
33:33:00:00:00:01 -1 [.P....] 0.000 (0x2453b430)<br />
</pre><br />
<br />
== Hinweise und Warnungen ==<br />
<br />
Fastd baut den Tunnel über eine beliebige Netzwerkverbindung auf. D.h. der Rechner kann in einem WLAN - privat oder öffentlich - betrieben werden. Dies kann auch ein Freifunk-Netz sein.<br />
<br />
Ist der Rechner in einem Freifunk-Netz, dann baut er einen fastd-Tunnel im fastd-Tunnel des Nodes auf, der die Verbindung zum Internet herstellt. Dies ist nicht sinnvoll und kann Effekte haben, die ich derzeit nicht überblicke und die nicht wünschenswert sind. Ein Effekt wird das Splitten von großen IP-Paketen sein.<br />
<br />
== Ergebnis und Siegerehrung ==<br />
<br />
Über unseren fastd-Tunnel können wir auf die Nodes und die Clients des Freifunknetzes über IPv6 zugreifen.</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=B.A.T.M.A.N.&diff=250B.A.T.M.A.N.2018-04-15T19:24:00Z<p>Thomas: /* B.A.T.M.A.N. und fastd installieren */</p>
<hr />
<div>B.A.T.M.A.N. (Abkürzung für '''B'''etter '''A'''pproach '''T'''o '''M'''obile '''A'''dhoc '''N'''etworking) ist ein Routing-Protokoll für mobile Ad-hoc-Netze. Siehe [https://de.wikipedia.org/wiki/B.A.T.M.A.N. WikiPedia]. Im Freifunk wird unter anderem B.A.T.M.A.N. als Routing-Protokoll eingesetzt.<br />
<br />
== Abstrakt ==<br />
<br />
In diesem Artikel wird beschrieben, wie B.A.T.M.A.N. zusammen mit [[fastd]] auf einem Rechner mit Debian eingerichtet wird und der Rechner direkt an das Netz des Freifunk Rheinland, Domäne Wupper, angebunden wird. Als Beispiel dient die Konfiguration der Freifunk Rheinbach Community. <br />
<br />
Die Verbindung der [[Node | Nodes]] (Router) zu den Servern im Internet erfolgt über einen verschlüsselten Tunnel. Bei Freifunk Rheinbach wird für die Tunnel ''fastd'' verwendet. Nodes, die in WLAN Reichweite zueinander stehen, verbinden sich untereinander über ein MESH-Netzwerk. Auch über Kabel (LAN oder WAN-Port) können sich Nodes vermaschen. Auf all diesen Verbindungen wird das Routing-Protokoll B.A.T.M.A.N. verwendet.<br />
<br />
== Hinweis ==<br />
<br />
Ich verwende als Shell die [[bash]]. Standard ist bei Debian 8.7.1 [[dash]]. Die Befehle in den Scripten sind so einfach, dass sie in beiden Shells funktionieren sollten<br />
<br />
== Installation der Software ==<br />
<br />
=== B.A.T.M.A.N. und fastd installieren ===<br />
<br />
Die folgenden Befehle und Scripte wurden unter '''Debian 8.7.1''' entwickelt und getestet.<br />
<br />
Das folgende Script installiert auf einem Debian 8 die notwendige Software - einschließlich fastd. Je nach System kann es notwendig sein zusätzliche Pakete zu installieren. Das folgende Script wurde auf zwei relativ frischen, jungfräulichen Debian 8.7.1 getestet.<br />
<br />
Achtung: Die Router verwenden B.A.T.M.A.N. 2017.2 (Stand: 03.02.2018, Gluon v2017.1.4); Aktuell ist 2017.4. Im Debian sind meist ältere Versionen. Deshalb empfiehlt sich eine Installation aus den Quellen<br />
<br />
Vor der Installation mit dem nachfolgenden Script müssen die passenden linunx-header- Dateien für den Kernel installiert sein / werden. Dies geht zum Beispiel mit mit ''apt-get install linux-headers-4.9.0-5-all-amd64''. <br />
<br />
Der Befehl ist zwar im Script, aber nicht getestet.<br />
<br />
<br />
==== Raspbian ====<br />
<br />
FDür Raspbian bifinden sich die Linux-Headers in rapberrypi-kernel-headers.<br />
<br />
<pre><br />
#!/bin/bash<br />
<br />
# Installation B.A.T.M.A.N.<br />
# Version festlegen<br />
<br />
VBAT="2017.2"<br />
<br />
# Installation der linux-headers für den Kernel.<br />
<br />
apt install linux-headers-$(uname -r | sed 's#-amd64#-all-amd64#')<br />
<br />
<br />
# Wir brauchen ein paar Repos, die nicht im Default einhalten sind.<br />
<br />
grep 'http://repo.universe-factory.net/debian/' /etc/apt/sources.list || echo 'deb http://repo.universe-factory.net/debian/ sid main' >> /etc/apt/sources.list<br />
<br />
# Und den Schlüssel für das Paket. Aktuell: 16EF3F64CB201D9C<br />
<br />
KEY=16EF3F64CB201D9C<br />
gpg --keyserver pgpkeys.mit.edu --recv-key $KEY<br />
gpg -a --export $KEY | apt-key add -<br />
<br />
# Nun die Software, die wahrscheinlich fehlt, inklusive fastd<br />
<br />
apt install apt-transport-https<br />
apt update<br />
apt install build-essential bridge-utils pkg-config libnl-3-dev libnl-genl-3-dev linux-headers-amd64 fastd<br />
<br />
# Jetzt wird B.A.T.M.A.N. batctl aus den Quellen geladen und installiert<br />
<br />
cd /usr/src/<br />
wget http://downloads.open-mesh.org/batman/stable/sources/batctl/batctl-${VBAT}.tar.gz<br />
tar xzf batctl-${VBAT}.tar.gz<br />
cd batctl-${VBAT}<br />
make<br />
make install<br />
<br />
<br />
# Jetzt wird B.A.T.M.A.N. batman-adv aus den Quellen geladen und installiert<br />
<br />
cd /usr/src/<br />
wget http://downloads.open-mesh.org/batman/stable/sources/batman-adv/batman-adv-${VBAT}.tar.gz<br />
tar xzf batman-adv-${VBAT}.tar.gz<br />
cd batman-adv-${VBAT}<br />
make<br />
make install<br />
<br />
# Wir können batman-adv gleich starten<br />
<br />
modprobe batman-adv<br />
<br />
# ... und in die /etc/modules eintragen, damit es auch bei einem Neustart vorhanden ist<br />
<br />
grep '^batman-adv' /etc/modules || echo -e '#B.A.T.M.A.N für Freifunk\nbatman-adv' >> /etc/modules<br />
<br />
# zum Schluss legen wir uns noch ein Verzeichnis für die Konfiguration der fastd-Tunnel an.<br />
<br />
mkdir -p /etc/fastd/ffrhb/peers<br />
</pre><br />
<br />
== Konfiguration ==<br />
<br />
=== B.A.T.M.A.N. konfigurieren ===<br />
<br />
Der Befehl ''modprobe batman-adv'' startes B.A.T.M.A.N. gleich nach der Installation. Durch Aufnahme von ''batman-adv'' in die Datei ''/etc/modules'', wird B.A.T.M.A.N. beim Neustart des Rechner geladen. Beides wird bereits mit dem obigen Script erledigt, so dass wir fertig sind.<br />
<br />
=== fastd konfigurieren ===<br />
<br />
Das script ''/etc/init.d/fastd'' startet die Default-Konfiguration in ''/etc/default/fastd'' und alle Konfigurationen in ''/etc/fastd/*/fastd.conf''. Eine Konfiguration in ''/etc/fastd/fastd.conf'' hat daher keien Auswirkung und wird nicht geladen.<br />
<br />
Die folgende Konfigurationsdatei ''fastd.conf'' muss daher in das Verzeichnis ''/etc/fastd/ffrhb/'' kopiert werden.<br />
<br />
<br />
Der ''secret key'' in der Datei dient nur als Beispiel und ist durch einen eigenen Schlüssel zu ersetzen. Ein eigener Schlüssel wird mit ''fastd --generate-key'' erzeugt.<br />
<br />
Die MTU beträgt für Freifunk Rheinland zur Zeit 1364 Byte.<br />
<br />
Das peer limit sollte auf 1 stehen, auch wenn 10 Server definiert sind. Mehrere Tunnel zur gleichen Zeit bieten zur Zeit keine Vorteile und belasten die Server.<br />
<br />
==== Datei /etc/fastd/ffrhb/fastd.conf ====<br />
<br />
<pre><br />
# Log warnings and errors to stderr<br />
log level warn;<br />
<br />
# Log everything to syslog<br />
log to syslog level warn;<br />
<br />
# Set the interface name<br />
interface "mesh-vpn";<br />
<br />
# Support salsa2012+umac and null methods, prefer salsa2012+umac<br />
method "salsa2012+umac";<br />
method "null";<br />
<br />
mode tap;<br />
<br />
# Bind to a fixed port, IPv4 only<br />
bind 0.0.0.0:53757;<br />
<br />
# Please replace the key with your own key.<br />
<br />
# Secret key generated by `fastd --generate-key`<br />
secret "e0e07c1462748f4b0f36423c0ce5c4169e48354a07a3b908435f8ab128259c53";<br />
# Secret: e0e07c1462748f4b0f36423c0ce5c4169e48354a07a3b908435f8ab128259c53<br />
# Public: 72dc4c1aa15cfe4ae5d54caccd8efbd1af8848770843b26a58ed2fb8edb82d50<br />
<br />
secure handshakes yes;<br />
<br />
# Set the interface MTU for TAP mode with xsalsa20/aes128 over IPv4 with a base MTU of 1492 (PPPoE)<br />
# (see MTU selection documentation)<br />
# For Freifunk Rheinland is the MTU 1364<br />
<br />
mtu 1364;<br />
<br />
peer limit 1;<br />
<br />
# Include peers from the directory 'peers'<br />
include peers from "/etc/fastd/ffrhb/peers";<br />
<br />
## IP v6 Adresse muss ggf. nach ip link set up dev bat0 gesetzt werden mit:<br />
## ip addr add dev bat0 fda0:747e:ab29:2241:.../64 scope global<br />
<br />
on up "<br />
/etc/fastd/ffrhb/on-up.sh $INTERFACE<br />
";<br />
</pre><br />
<br />
Die Schnittstelle ''mesh-vpn'' muss B.A.T.M.A.N. als Interface hinzugefügt werden und benötigt eine IPv6 Adresss mit scope global. Dies geschieht mit folgenden Script, dass unter /etc/fastd/ffrhb/on-up.sh gespeichert wird. Die MTU der Netzwerkschnittstelle ''bat0'' muss auf die MTU der Freifunk Community gesetzt werden. Für Rheinbach (Domäne Wupper ist es zur Zeit 1364).<br />
<br />
==== Datei /etc/fastd/ffrhb/on-up.sh ====<br />
<br />
Der Unterschied des folgenden Scriptes zu anderen Erklärungen / Beispielen im Internet ist, dass hier eine globale IPv6 Adresse für das Interface bat0 erzeugt wird und die MTU an die Bedürfnisse der FF-Rheinland angepasst wird. Deshalb erfolgt dies auch in einem eigenen Script und nicht in der fastd.conf. Das Script muss von fastd über ''on up'' aufgerufen werden.<br />
<br />
<pre><br />
#!/bin/bash<br />
<br />
# Execute when fastd is up<br />
# Autor: Thomas Arend<br />
# (c) 2017 by Thomas Arend<br />
# Date: 03.03.2017<br />
<br />
INTERFACE=${1:-mesh-vpn}<br />
<br />
# Start meshing on fastd tunnel<br />
ip link set up dev $INTERFACE || echo Error: Interface $INTERFACE not set up<br />
<br />
# Add tunnel interface to mesh<br />
batctl if add $INTERFACE || echo Error: Interface $INTERFACE not added to batman<br />
<br />
# Set mtu for bat0<br />
# Change 1364 to your value in the site.conf for the FF firmware<br />
<br />
ip link set up dev bat0 mtu 1364 || echo Error when setting MTU to 1364<br />
<br />
# Add ipv6 addr with scope global to bat0<br />
<br />
NIP='fda0:747e:ab29:2241'<br />
GIP=`ip addr show dev bat0 | grep 'inet6 fe80::.* scope link' | sed 's#.*inet6 fe80::##; s# .*$##'`<br />
<br />
ip addr add ${NIP}:${GIP} dev bat0 scope global || echo Error: IPv6 ${NIP}:${GIP} not set<br />
<br />
</pre><br />
<br />
Alternative für das Bestimmen der IP-Adresse:<br />
<br />
IPv6=`grep 'fe80.*bat0$'/proc/net/if_inet6 | sed 's#fe80000000000000#fda0747eab292241#;s# .*##; s#\([0-9a-f]\{4,4\}\)#\1:#g; s#:$##'`<br />
<br />
==== Schlüssel Dateien für die Peers ====<br />
<br />
Jeder [[Peer]] besitzt wie unser Rechner ein Schlüsselpaar, anhand dessen er eindeutig identifiziert wird. Die öffentlichen Schlüssel der müssen Peers kommen in das Unterverzeichnis ''peers''. Die Namen spielen dabei keine Rolle. Wir verwenden folgende Namenskonvention, um die Peer und öffentlichen Schlüssel zu erkennen: ''mesh_vpn_backbone_peer_wupper&lt;n&gt;''. Diese Namen werden auch in der Firmware verwendet, &lt;n&gt; ist dabei die Nummer des Servers (0-9).<br />
<br />
Beispiel für Wupper 0.<br />
<br />
<pre><br />
key "e52daa654abcf5c20c5b7a74b5145f70a7491435c6ef334ae352e4f19c00e8f5";<br />
remote "0.wupper.ffrl.de" port 53757;<br />
</pre><br />
<br />
==== Starten und Aktivieren ====<br />
<br />
Nun muss nur noch ''fastd'' gestartet werden mit:<br />
<br />
service fastd start<br />
<br />
Um ''fastd'' mit jedem Neustart automatisch zu starten, muss der folgende Befehl ausgeführt werden:<br />
<br />
systemctl enable fastd<br />
<br />
=== Test der Konfiguration ===<br />
<br />
Ob alles richtig läuft, zeigen ''ifconfig'', ''systemctl status fastd'' und ''batctl if'' bzw. ''batctl tg''<br />
<br />
<pre><br />
root@medion:~# ifconfig bat0<br />
bat0 Link encap:Ethernet Hardware Adresse 32:e7:53:24:17:5f <br />
inet6-Adresse: fda0:747e:ab29:2241:30e7:53ff:fe24:175f/64 Gültigkeitsbereich:Global<br />
inet6-Adresse: fe80::30e7:53ff:fe24:175f/64 Gültigkeitsbereich:Verbindung<br />
UP BROADCAST RUNNING MULTICAST MTU:1364 Metrik:1<br />
RX packets:61804 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:28 errors:0 dropped:24 overruns:0 carrier:0<br />
Kollisionen:0 Sendewarteschlangenlänge:0 <br />
RX bytes:3708888 (3.5 MiB) TX bytes:3529 (3.4 KiB)<br />
<br />
mesh-vpn Link encap:Ethernet Hardware Adresse aa:53:8d:76:e2:fa <br />
inet6-Adresse: fe80::a853:8dff:fe76:e2fa/64 Gültigkeitsbereich:Verbindung<br />
UP BROADCAST RUNNING MULTICAST MTU:1364 Metrik:1<br />
RX packets:66901 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:23753 errors:0 dropped:0 overruns:0 carrier:0<br />
Kollisionen:0 Sendewarteschlangenlänge:500 <br />
RX bytes:9241074 (8.8 MiB) TX bytes:5150504 (4.9 MiB)<br />
<br />
root@medion:~# systemctl -l status fastd<br />
● fastd.service - LSB: Fast and Secure Tunneling Daemon<br />
Loaded: loaded (/etc/init.d/fastd)<br />
Active: active (running) since Fr 2017-03-03 16:54:08 CET; 26min ago<br />
Process: 2686 ExecStop=/etc/init.d/fastd stop (code=exited, status=0/SUCCESS)<br />
Process: 2697 ExecStart=/etc/init.d/fastd start (code=exited, status=0/SUCCESS)<br />
CGroup: /system.slice/fastd.service<br />
└─2710 /usr/bin/fastd --syslog-level info --config /etc/fastd/ffrhb/fastd.conf<br />
<br />
Mär 03 16:54:08 medion fastd[2697]: Starting Fast and Secure Tunneling Daemon... Autostarting fastd 'ffrhb':.<br />
Mär 03 16:54:08 medion systemd[1]: Started LSB: Fast and Secure Tunneling Daemon.<br />
<br />
root@x2:/etc/fastd/ffrhb/peers# batctl if<br />
mesh-vpn: active<br />
<br />
root@medion:~# batctl tl<br />
[B.A.T.M.A.N. adv 2016.5, MainIF/MAC: mesh-vpn/aa:53:8d:76:e2:fa (bat0/32:e7:53:24:17:5f BATMAN_IV), TTVN: 3]<br />
Client VID Flags Last seen (CRC )<br />
33:33:ff:24:17:5f -1 [.P....] 0.000 (0x2453b430)<br />
33:33:00:00:00:fb -1 [.P....] 0.000 (0x2453b430)<br />
01:00:5e:00:00:01 -1 [.P....] 0.000 (0x2453b430)<br />
32:e7:53:24:17:5f -1 [.P....] 0.000 (0x2453b430)<br />
33:33:00:00:00:01 -1 [.P....] 0.000 (0x2453b430)<br />
</pre><br />
<br />
== Hinweise und Warnungen ==<br />
<br />
Fastd baut den Tunnel über eine beliebige Netzwerkverbindung auf. D.h. der Rechner kann in einem WLAN - privat oder öffentlich - betrieben werden. Dies kann auch ein Freifunk-Netz sein.<br />
<br />
Ist der Rechner in einem Freifunk-Netz, dann baut er einen fastd-Tunnel im fastd-Tunnel des Nodes auf, der die Verbindung zum Internet herstellt. Dies ist nicht sinnvoll und kann Effekte haben, die ich derzeit nicht überblicke und die nicht wünschenswert sind. Ein Effekt wird das Splitten von großen IP-Paketen sein.<br />
<br />
== Ergebnis und Siegerehrung ==<br />
<br />
Über unseren fastd-Tunnel können wir auf die Nodes und die Clients des Freifunknetzes über IPv6 zugreifen.</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=Firewall&diff=249Firewall2018-04-13T19:36:04Z<p>Thomas: Die Seite wurde neu angelegt: „Einstellungen in der Firewall == Rhein-Sieg mit Tunneldigger == # UDP Ports 20.000-21999 für L2TP # Jeder Node benutzt einen eigenen dynamisch zugewiesenen…“</p>
<hr />
<div>Einstellungen in der Firewall<br />
<br />
== Rhein-Sieg mit Tunneldigger ==<br />
<br />
# UDP Ports 20.000-21999 für L2TP<br />
# Jeder Node benutzt einen eigenen dynamisch zugewiesenen Port nach der Initialen Aushandlung<br />
<br />
== FastD Wupper ==<br />
<br />
Siehe site.conf und [https://wiki.freifunk-rheinland.net/wiki/Wupper Wupper] im Freifunk-Rheinland wiki.</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=Recovery&diff=248Recovery2018-03-22T22:26:33Z<p>Thomas: Die Seite wurde neu angelegt: „Die Möglichkeiten einen Router zurückzusetzen sind vielfältig. Hier kann nur das Verfahren des FTP-Recovery für ausgewählte TP-Link Router beschrieben wer…“</p>
<hr />
<div>Die Möglichkeiten einen Router zurückzusetzen sind vielfältig. Hier kann nur das Verfahren des FTP-Recovery für ausgewählte TP-Link Router beschrieben werden.<br />
<br />
Für das folgende Verfahre wird ein TFTP-Server benötigt, der auf der Adresse 192.168.0.66 lauscht. Siehe [[Raspberry Pi]]<br />
<br />
Zum De-Bricking mittels TFTP sind folgende Schritte notwendig.<br />
<br />
* Firmware bei TP-Link, z.B. unter für den [https://www.tp-link.com/de/download/TL-WR841ND_V9.html#Firmware TP-Link TL-R841N(D) V9] herunterladen<br />
* ZIP-Datei entpacken<br />
* Der Name des Image ''wr841nv9_wr841ndv9_en_3_16_9_up_boot(150310).bin'' enthält das Wort "boot", daher muss die Datei mit folgendem Befehl um den Boot-Teil gekürzt werden:<br />
dd if=wr841nv9_wr841ndv9_en_3_16_9_up_boot\(150310\).bin of=wr841nv9_tp_recovery.bin skip=257 bs=512<br />
* Die Datei ''wr841nv9_tp_recovery.bin'' auf den TFTP-Server ins Root-Verzeichnis kopieren.<br />
* Die Netzwerkkarte des Servers auf die Adresse 192.168.0.66/24 stellen. Z.B. mit<br />
ip addr add 192.168.0.66/24 dev eth0<br />
* Einen gelben Port des Routers mit der Netzwerkkarte des Servers verbinden. <br />
* Router anschalten und dabei die Reset-Taste drücken bis die Lock-LED leuchtet.<br />
* Warten bis der Router neu startet. Fertig</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=TP-Link_TL-WR841&diff=247TP-Link TL-WR8412018-03-22T21:44:32Z<p>Thomas: Die Seite wurde neu angelegt: „Der TP-Link TL-WR841N ist TP-Link Router mit den günstigsten Preis. Etwas teurer ist der TP-Link TL-WR841ND mit abnehmbaren Antennen. Diese Router sind leider…“</p>
<hr />
<div>Der TP-Link TL-WR841N ist TP-Link Router mit den günstigsten Preis. Etwas teurer ist der TP-Link TL-WR841ND mit abnehmbaren Antennen. Diese Router sind leider vom Speicher langsam zu klein. Außerdem werden in den neueren Versioen (v12, cǘ13) neuere Prozessoren verwendet, die nicht so gut unterstützt werden.<br />
<br />
Derzeit sind die WR841 nicht zu empfehlen. Besser ist ein [[TP-Link TL-WR1043|TP-Link TL-WR1043N(D)]], der in der Version 5 leider keinen USB-Port mehr hat.</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=TP-LINK&diff=246TP-LINK2018-03-22T21:37:56Z<p>Thomas: Recovery Informationen hinzugefügt.</p>
<hr />
<div>Die Firma '''TP-LINK''' stellt Router her, von denen die meisten Modelle durch [[OpenWRT]] / [[Gluon]] unterstützt werden. Um einen TP-LINK Router für Freifunk zu nutzen, muss die [[Firmware | Original-Firmware]] durch eine Freifunk-Firmware einer Freifunk-Community ersetzt werden. Die stabile Firmware für Rheinbach basiert seit dem 14.02.2016 auf Gluon v2016.1.x, <br />
<br />
Die WLAN-Router TL-WR-841N(D) und TL-WR-842N(D) sind wahrscheinlich die für Freifunk am häufigsten eingesetzten Modelle. Die Gesamtliste der Firmware aller unterstützten Router befindet sich auf dem [http://images.freifunk-rheinbach.de/ Server für die Images].<br />
<br />
== Factory oder Sysupgrade? ==<br />
<br />
Die Firmware gibt es in zwei Varianten ''factory'' und ''sysupgrade''. Die ''Factory''-Images dienen der Erstinstallation des Routers, wenn er noch die Original-Firmware des Herstellers hat. Das ''Facotory''-Image ersetzt die Original-Firmware auf dem Router. Die ''Sysupgrade''-Images sind kleiner und dienen der Aktualisierung der Firmware, wenn der Router bereits mit einer Freifunk-Firmware läuft.<br />
<br />
Die hier aufgeführten Links verweisen alle auf das Factory-Image. Für die Sysupgrade-Images bitte zum [http://images.freifunk-rheinbach.de/ Server für die Images] gehen.<br />
<br />
== Installation ==<br />
<br />
Wie die Firmware auf einem Router installiert wird, wird unter [[Installation]] beschrieben. <br />
<br />
== TFTP Recovery (De-Bricking) ==<br />
<br />
Wenn die Freifunk Firmware nicht mehr richtig startet und der Router nicht mehr zugänglich ist, kann er meist mit der Original-Firmware zurückgesetzt werden.<br />
<br />
Das einfachste Verfahren ist, ein Boot-Image auf einem TFTP-Server bereitzustellen. Genaue Beschreibungen zu den einzelnen Routern finden sich im OpenWrt-Wiki. Der Router sucht auf einem TFTP-Server mit der Adresse 192.168.0.66 nach eienme Boot-Image für sein Model. Ältere Firmware sucht nach der Adresse 192.168.1.66. Eine kurze Beschreibung findet sich beim [[TP-Link TL-W841ND]]<br />
<br />
Sind Router sind so beschädigt, dass dieses Verfahren nicht funktioniert, könnte ein Recovery über eine interne serielle Schnittstelle den Router retten. Das Recovery mit einem seriellen Kabel ist in der Regel aufwändiger und bei den billigen, alten Routern lohnt die Zeit den Preis nicht. Außerdem kostet das passende Kabel oft so viel wie ein WR841.<br />
<br />
== Getestete Router ==<br />
<br />
Die Freifunk Rheinbach Firmware wurde mit den folgenden Routern getestet. Andere Modelle stehen uns leider nicht zur Verfügung.<br />
<br />
{| class="wikitable"<br />
! Modell<br />
! colspan="4" | Versionen<br />
|-<br />
| Archer C7<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-archer-c7-v2.bin V2]<br />
|-<br />
| TL-MR-3020<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-mr3020-v1.bin V1]<br />
|-<br />
| TL-WR-8421N(D)<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr841n-nd-v7.bin V7]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr841n-nd-v9.bin V9] <br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr841n-nd-v10.bin V10]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr841n-nd-v11.bin V11] <br />
|-<br />
| TL-WR-842N(D) <br />
| [https://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr842n-nd-v2.bin V2]<br />
|-<br />
| TL-WR-941N(D) <br />
| [https://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr941n-nd-v6.bin V6]<br />
|-<br />
| TL-WR-1043N(D) <br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr1043n-nd-v2.bin V2]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr1043n-nd-v3.bin V3]<br />
|-<br />
| TL-WDR-3600<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wdr3600-v1.bin V1]<br />
<br />
|}<br />
<br />
== Stabile Firmware Images TP-LINK ==<br />
<br />
{| class="wikitable"<br />
! Modell<br />
! colspan="7" | Versionen<br />
|-<br />
| CPE210<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-cpe210-v1.0.bin v1.0]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-cpe210-v1.1.bin v1.1]<br />
|-<br />
| CPE220<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-cpe220-v1.0.bin v1.0]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-cpe220-v1.1.bin v1.1]<br />
|-<br />
| CPE510<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-cpe510-v1.0.bin v1.0]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-cpe510-v1.1.bin v1.1]<br />
|-<br />
| CPE520<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-cpe520-v1.0.bin v1.0]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-cpe520-v1.1.bin v1.1]<br />
|-<br />
| TL-MR3020<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-mr3020-v1.bin v1]<br />
|-<br />
| TL-MR3040<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-mr3040-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-mr3040-v2.bin v2]<br />
|-<br />
| TL-MR3220<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-mr3220-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-mr3220-v2.bin v2]<br />
|-<br />
| TL-MR3420<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-mr3420-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-mr3420-v2.bin v2]<br />
|-<br />
| TL-WA701N-ND<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wa701n-nd-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wa701n-nd-v2.bin v2]<br />
|-<br />
| TL-WA750RE<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wa750re-v1.bin v1]<br />
|-<br />
| TL-WA801N-ND<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wa801n-nd-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wa801n-nd-v2.bin v2]<br />
|-<br />
| TL-WA830RE<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wa830re-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wa830re-v2.bin v2]<br />
|-<br />
| TL-WA850RE<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wa850re-v1.bin v1]<br />
|-<br />
| TL-WA860RE<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wa860re-v1.bin v1]<br />
|-<br />
| TL-WA901N-ND<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wa901n-nd-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wa901n-nd-v2.bin v2]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wa901n-nd-v3.bin v3]<br />
|-<br />
| TL-WDR3500<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wdr3500-v1.bin v1]<br />
|-<br />
| TL-WDR3600<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wdr3600-v1.bin v1]<br />
|-<br />
| TL-WDR4300<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wdr4300-v1.bin v1]<br />
|-<br />
| TL-WDR4900<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wdr4900-v1.bin v1]<br />
|-<br />
| TL-WR1043N-ND<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr1043n-nd-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr1043n-nd-v2.bin v2]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr1043n-nd-v3.bin v3]<br />
|-<br />
| TL-WR2543N-ND<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr2543n-nd-v1.bin v1]<br />
|-<br />
| TL-WR703N<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr703n-v1.bin v1]<br />
|-<br />
| TL-WR710N<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr710n-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr710n-v2.bin v2]<br />
|-<br />
| TL-WR740N-ND<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr740n-nd-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr740n-nd-v3.bin v3]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr740n-nd-v4.bin v4]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr740n-nd-v5.bin v5]<br />
|-<br />
| TL-WR741N-ND<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr741n-nd-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr741n-nd-v2.bin v2]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr741n-nd-v4.bin v4]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr741n-nd-v5.bin v5]<br />
|-<br />
| TL-WR743N-ND<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr743n-nd-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr743n-nd-v2.bin v2]<br />
|-<br />
| TL-WR841N-ND<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr841n-nd-v3.bin v3]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr841n-nd-v5.bin v5]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr841n-nd-v7.bin v7]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr841n-nd-v8.bin v8]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr841n-nd-v9.bin v9]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr841n-nd-v10.bin v10]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr841n-nd-v11.bin v11]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr841n-nd-v12.bin v12]<br />
|-<br />
| TL-WR842N-ND<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr842n-nd-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr842n-nd-v2.bin v2]<br />
|-<br />
| TL-WR843N-ND<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr843n-nd-v1.bin v1]<br />
|-<br />
| TL-WR940N-ND<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr940n-nd-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr940n-nd-v2.bin v2]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr940n-nd-v3.bin v3]<br />
|-<br />
| TL-WR941N-ND<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr941n-nd-v2.bin v2]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr941n-nd-v3.bin v3]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr941n-nd-v4.bin v4]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr941n-nd-v5.bin v5]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr941n-nd-v6.bin v6]<br />
|}<br />
<br />
[[Category:Hersteller]]<br />
[[Category:Firmware]]</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=Raspberry_Pi&diff=245Raspberry Pi2018-03-22T20:49:43Z<p>Thomas: Die Seite wurde neu angelegt: „== ... als TFTP-Server == Um auf dem Raspberry P unter Raspbian einen TFTP-Server aufzusetzen müssen folgende Befehl (root-Rechte) ausgeführt werden. sud…“</p>
<hr />
<div>== ... als TFTP-Server ==<br />
<br />
Um auf dem Raspberry P unter Raspbian einen TFTP-Server aufzusetzen müssen folgende Befehl (root-Rechte) ausgeführt werden.<br />
<br />
sudo apt-get install tftpd-hpa tftpd tftp<br />
<br />
Um den Raspberry Pi zum Flashen der TP-Link Router zu nutzen, müssen<br />
* Recovery Images in das Verzeichnis /srv/tftp kopiert werden und<br />
* die IP-Adresse 192.168.0.66 der Ethernet-Schnittstelle zugewiesen werden.<br />
<br />
sudo ip addr add 192.168.0.66/24 dev eth0</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=IP-Adressen_Rhein-Sieg&diff=244IP-Adressen Rhein-Sieg2018-03-08T18:08:46Z<p>Thomas: </p>
<hr />
<div>Folgende IP Adressen gelten für Rheinbach nach Umstellung auf Tunneldigger und die Gateways der Freifunker Rhein-Sieg.<br />
<br />
{| class="wikitable"<br />
! Nutzung !! Adresse / Subnet<br />
|- style="text-align:center"<br />
|colspan=2 style="font-weight:bold" | IPv4<br />
|-<br />
| Subnet || 10.152.112.0/21<br />
|-<br />
| Link-Local-Node || 10.152.112.1<br />
|- style="text-align:center"<br />
|colspan=2 style="font-weight:bold" | IPv6<br />
|-<br />
| Subnet || 2a03:2260:3017:1400::/64<br />
|-<br />
| Link-Local-Node || 2a03:2260:3017:1400::1/128<br />
|}</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=IP-Adressen_Rhein-Sieg&diff=243IP-Adressen Rhein-Sieg2018-03-08T18:06:18Z<p>Thomas: Tippfehler beseitigt</p>
<hr />
<div>Folgende IP Adressen gelten für Rheinbach nach Umstellung auf Tunneldigger und die Gateways der Freifunker Rhein-Sieg.<br />
<br />
{| class="wikitable"<br />
! Nutzung !! Adresse / Subnet<br />
|- style="text-align:center"<br />
|colspan=2 | IPv4<br />
|-<br />
| Subnet || 10.152.112.0/21<br />
|-<br />
| Link-Local-Node || 10.152.112.1<br />
|- style="text-align:center"<br />
|colspan=2 | IPv6<br />
|-<br />
| Subnet || 2a03:2260:3017:1400::/64<br />
|-<br />
| Link-Local-Node || 2a03:2260:3017:1400::1/128<br />
|}</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=IP-Adressen_Rhein-Sieg&diff=242IP-Adressen Rhein-Sieg2018-03-08T18:05:40Z<p>Thomas: Die Seite wurde neu angelegt: „Folgende IP Adressen gelten für Rheinbach nach Umstellung auf Tunneldigger und die Gateways der Freifunker Rhein-Sieg. {| class="wikitable" ! Nutzung !! Adre…“</p>
<hr />
<div>Folgende IP Adressen gelten für Rheinbach nach Umstellung auf Tunneldigger und die Gateways der Freifunker Rhein-Sieg.<br />
<br />
{| class="wikitable"<br />
! Nutzung !! Adresse / Subnet<br />
|- style="text-align:center"<br />
|colspan=2 | IPv4<br />
|-<br />
| Subnet || 0.152.112.0/21<br />
|-<br />
| Link-Local-Node || 10.152.112.1<br />
|- style="text-align:center"<br />
|colspan=2 | IPv6<br />
|-<br />
| Subnet || 2a03:2260:3017:1400::/64<br />
|-<br />
| Link-Local-Node || 2a03:2260:3017:1400::1/128<br />
|}</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=Datei:Cidr.png&diff=241Datei:Cidr.png2018-03-08T14:32:26Z<p>Thomas: </p>
<hr />
<div>Classless Inter-Domain Routing: Tabelle für die Zuordnung von Subnet Blöcken im FF Rhein-Sieg für den Bereich /16 bis /21</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=Datei:Cidr.png&diff=240Datei:Cidr.png2018-03-08T14:30:56Z<p>Thomas: Thomas lud eine neue Version von Datei:Cidr.png hoch</p>
<hr />
<div>Classless Inter-Domain Routing: Tabelle für die Zuordnung von Subnet Blöcken im FF Rhein-Sieg.</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=CIDR&diff=239CIDR2018-03-08T14:17:04Z<p>Thomas: Die Seite wurde neu angelegt: „CIDR = Classless Inter-Domain Routing file:cidr.png“</p>
<hr />
<div>CIDR = Classless Inter-Domain Routing<br />
<br />
[[file:cidr.png]]</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=Datei:Cidr.png&diff=238Datei:Cidr.png2018-03-08T14:15:44Z<p>Thomas: Classless Inter-Domain Routing: Tabelle für die Zuordnung von Subnet Blöcken im FF Rhein-Sieg.</p>
<hr />
<div>Classless Inter-Domain Routing: Tabelle für die Zuordnung von Subnet Blöcken im FF Rhein-Sieg.</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=UMTS&diff=237UMTS2018-02-17T10:23:48Z<p>Thomas: /* Schritt 3: USB-Schnittstellen einrichten */</p>
<hr />
<div>Dieser Artikel beschreibt wie ein Freifunkrouter mit einem UMTS-Stick (USB-3G-Dongle) oder einem Smartphone mit USB-Tethering zu einem mobilen Hotspot wird. Einige Modelle (z.B. TP-LINK TL-WR841 V7, V10, WR1043ND oder MR3020) lassen sich mit einer Powerbank (5 Volt) oder der Autobatterie autark vom 220V Netz wirklich mobil betreiben.<br />
<br />
Getestet mit: TP-LINK TL-WR1043 v2 und v3, TP-LINK TL-MR3020 v1.9 und MEDION Surfstick S4222 mit FONIC Prepaid Karte.<br />
<br />
== Mobiler Router mit UMTS ==<br />
<br />
Für einen Freifunkrouter, der über einen UMTS-Stick ans Internet angebunden werden soll, sollte das Image mit USB Unterstützung verwendet werden. Trotz der USB Unterstützung sind folgende Schritte notwendig, um den UMTS-Stick zum Laufen zu bringen. (Es werden auch die Module aufgeführt, die ohne USB-Unterstützung bei der Erstellung der FF-Firmware benötigt werden.)<br />
<br />
== Voraussetzungen ==<br />
<br />
Für die Installation eines UMTS-Stick (weitere Hinweise unter [[USB-Support]]) sind folgende Voraussetzungen zu erfüllen:<br />
<br />
* Der Router benötigt einen USB-Port.<br />
* Während der Softwareinstallation muss der Router über den WAN-Port aus Internet angeschlossen sein.<br />
* In ''/etc/resolv.conf'' muss ein erreichbarer Nameserver (z.B. 8.8.8.8) eingetragen werden, damit die OpenWrt Pakete gefunden werden. <br />
<br />
Als Nameserver nutze ich meinen lokalen Router.<br />
<br />
Beispile: /etc/resolv,conf<br />
<pre><br />
search lan<br />
nameserver 192.168.20.1<br />
nameserver 127.0.0.1<br />
</pre><br />
<br />
== Schritt 1a: Installation der Software (Teil 1) == <br />
<br />
Ab Gluon v2017.x haben die Router bei Freifunk Rheinbach USN_Support an Bord, wenn sie einen USB-Port haben. Ausnahmen bestätigen die Regel: Der TP-Link TL-WR842N(D) läuft mit USB-Support instabil.<br />
<br />
Gluon verwendet einen eigenen, modifizierten Kernel. Daher müssen Kernel-Module für diesen Kernel kompiliert werden. Dies geschieht bei der Generierung der Firmware. Die Module befinden sich im Ordner ''/output/modules''. Für die Installation der richtigen Module sollte in der Datei ''/etc/opkg/customfeed.conf'' der Pfad zu den Modulen eingetragen werden, die mit der Firmware generiert wurden. Für meine Zwecke habe ich die Pakete auf einem Router mit USB-Stick geladen und den Ordner unter der Statusseite als ''/download'' abgelegt. Hier das Beispiel für mein Image vom 05.10.2016:<br />
<br />
<pre><br />
# add your custom package feeds here<br />
#<br />
# src/gz example_feed_name http://www.example.com/path/to/files<br />
src/gz gluon http://[fda0:747e:ab29:2241:16cc:20ff:fecd:15bc]/download/modules/gluon-su-rhb-s2016.2-usb-20161005/ar71xx/generic <br />
</pre><br />
<br />
Als erstes müssen die Paketlisten aufdatiert und die Pakete installiert werden.<br />
<br />
<pre><br />
opkg update<br />
opkg install \<br />
kmod-usb-core \<br />
kmod-usb2 \<br />
libusb-1.0 \<br />
usb-modeswitch \<br />
usbreset<br />
</pre><br />
<br />
Anschließend soll der Router neu gestartet werden. (Der Sinn leuchtet mir nicht ganz ein.)<br />
<br />
reboot ; exit<br />
<br />
Nach einem Reboot muss natürlich die ''/etc/resolv.conf'' wieder angepasst werden, wenn weitere Software installiert werden soll.<br />
<br />
== Schritt 1b. Softwareinstallation (Teil 2) ==<br />
<br />
Die Installation der weiteren Software kann nicht schaden und wird - nach anderen Beschreibungen - für ältere USB-Dongle benötigt.<br />
<br />
<pre><br />
opkg update<br />
opkg install \<br />
chat \<br />
comgt \<br />
kmod-ppp \<br />
kmod-pppoe \<br />
kmod-usb-serial \<br />
kmod-usb-serial-option \<br />
kmod-usb-serial-\<br />
wwan \<br />
ppp \<br />
ppp-mod-pppoe<br />
</pre><br />
<br />
Der Speicher des TP-LINK TL-MR3020 reicht für die obige Lösung leider nicht aus.<br />
<br />
Alternativ kann ''rdnis'' genutzt werden, was aber nach verschiedenen Berichten bei älteren 3G-Dongles ggf. nicht funktioniert.<br />
<br />
<pre><br />
opkg undate<br />
opkg install \<br />
kmod-nls-base \<br />
kmod-usb-core \<br />
kmod-mii \<br />
kmod-usb-net \<br />
kmod-usb-net-cdc-ether \<br />
kmod-usb-net-rndis \<br />
kmod-usb-uhci <br />
</pre><br />
<br />
(Diese Pakete passen auf einen TP-LINK MR3020. Sie reichen aber nicht aus, um einen Medion UMTS-Stick damit anzusteuern. Hier funktioniert nur ein USB-Tethering über ein Mobiltelefon.) <br />
<br />
Diese Lösung habe ich mit dem Medion Stick noch nicht getestet. In welchem Umfang neuere Sticks die erste Lösung nicht mehr unterstützen, weiß ich nicht.<br />
<br />
== Schritt 2: Stick prüfen ==<br />
<br />
Mit den drei folgenden Befehlen wird geprüft, ob der UMTS-Dongle erkannt wird.<br />
<br />
<pre><br />
usbmode -l<br />
ls /dev/ttyUSB*<br />
gcom info -d /dev/ttyUSB0<br />
</pre><br />
<br />
== Schritt 3: USB-Schnittstellen einrichten ==<br />
<br />
Für die Einrichtung der USB-Schnittstelle gibt es verschiedene Möglichkeiten. Wird der USB-3G-Dongle von Medion genutzt, funktioniert die Einrichtung mit ''gomgt''. Soll die UMTS-Verbindung über ein USB-Tethering erfolgen, dann muss rdnis verwendet werden.<br />
<br />
Im Gegensatz zu anderen Installationsanweisungen, die die WAN Schnittstelle umbenennen und durch die USB-Schnittstelle erstetzen, wird in dieser Lösung eine zusätzliche WAN-Schnittstellen (theter und umts) definiert. Dies hat den Vorteil, dass der Router auch über den WAN-Port funktioniert.<br />
<br />
=== Schritt 3.1: TP-LINK TL-MR3020 mit rdnis für USB-Tethering einrichten ===<br />
<br />
Beim TP-LINK TL-MR3020 ist der Overlay-Speicher leider zu klein, um eine UMTS Unterstützung nachträglich zu installieren. Um Platz zu schaffen, muss auf das Paket ''gluon-status-page'' verzichtet werden. Dann kann eine Firmware für den TP-LINK TL-MR3020 gebaut werden, die den Router über ein Mobiltelefon mit USB-Tethering mit den [[fastd]] Servern verbindet. Für die Lösung mit einem USB-3G-Dongle reicht der Platz noch nicht. Mit dem TL-3020 kommt daher nur eine Minimallösung über USB-Tethering in Frage, die auch bei anderen Routern mit USB-Port möglich ist.<br />
<br />
<pre><br />
USB_PACKAGES_MR3020 := \<br />
kmod-nls-base \<br />
kmod-usb-core \<br />
kmod-mii \<br />
kmod-usb-net \<br />
kmod-usb-net-cdc-ether \<br />
kmod-usb-net-rndis \<br />
kmod-usb-uhci<br />
<br />
# basic support for USB stack<br />
USB_PACKAGES_BASIC := \<br />
kmod-usb-core \<br />
kmod-usb2<br />
<br />
GLUON_TLMR3020_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_MR3020)<br />
</pre><br />
<br />
Mit folgenden Befehlen wird dann die Schnittstelle aktiviert.<br />
<br />
<pre><br />
uci set network.tether='interface'<br />
uci set network.tether.ifname='usb0'<br />
uci set network.tether.auto='1'<br />
uci set network.tether.proto='dhcp'<br />
uci set network.tether.type='bridge'<br />
uci set network.tether.peerdns='0'<br />
uci set network.tether.device='/dev/ttyUSB0'<br />
uci commit<br />
<br />
uci set firewall.@zone[1].network='tether wan wan6'<br />
uci commit firewall <br />
</pre><br />
<br />
Die obigen Ergänzungen der Netzwerkeinstellungen bleiben auch bei einer Aktualisierung der Firmware erhalten. (Außer man erzwingt ein Rücksetzen aller Einstellungen.) Dagegen müssen die folgenden Anpassungen bei jeder Aktualisierung der Firmware erneut vorgenommen werden.<br />
<br />
Wie bereits oben beschrieben müssen auch hier die Dateien <br />
* ''/etc/hotplug.d/iface/50-gluon-wan-dnsmasq'' und <br />
* ''/lib/gluon/wan-dnsmasq/update.lua''<br />
angepasst werden.<br />
<br />
In der Datei ''50-gluon-wan-dnsmasq'' muss das neue Interface ''tether'' in die Liste eingefügt werden ...<br />
<br />
<pre><br />
if [ "$INTERFACE" = 'wan' -o "$INTERFACE" = 'wan6' -o "$INTERFACE" = 'tether' ]; then<br />
/lib/gluon/wan-dnsmasq/update.lua<br />
fi<br />
</pre><br />
<br />
und in der Datei ''update.lua'' wird der Aufruf ''pcall(s,'tether')'' eingefügt.<br />
<br />
<pre><br />
...<br />
else<br />
pcall(s,'wan6')<br />
pcall(s,'wan')<br />
pcall(s,'tether')<br />
end<br />
...<br />
</pre><br />
<br />
Durch diese Konfiguratioin werden zwei zusätlichen Netzwerkschnittstellen usb0 und br-tether erstellt.<br />
<br />
Getestet wurde diese Konfiguration mit einem Samsung Galaxy Note 4.<br />
<br />
=== Schritt 3.2: USB-3G-Dongle von Medion (S4222) mit gomgt einrichten ===<br />
<br />
Bei Routwern mit mehr Speicher als der MR3020 kann ein vollständiger USB-Support installiert werden. Mit einem USB-3G-Dongle kann eine zweite Verbindung ins Internet aufgebaut werden, über die ''fastd'' einen Tunnel zu den Supernodes im Internet aufbauen kann. Dazu definieren wir eine neue Netzwerkschnittstelle, die ich 'umts' genannt habe. Viele Kochrezepte empfehlen die Schnittstelle ''wan'' zu benennen und die alte Schnittstelle in ''wan2'' umzubenennen. Dies ist jedoch nicht notwendig. Der Router kann mit mehreren Schnittstellen gleichzeitig umgehen. Dies hat den Vorteil, dass der Router sowohl über den WAN-Port, als auch über einen UMTS-Stick angebunden werden kann. Auch eine gleichzeitige Verbindung mit beiden Schnittstellen ist möglich. Hier kann es jedoch passieren, dass die Verbindung über die UMTS stattfindet, was sehr teuer werden kann. <br />
<br />
dazu wird dieses Interface mit folgendem Script auf dem Freifunkrouter als Netzwerkschnittstelle eingerichtet. Dabei ist &lt;xxxx&gt; durch die PIN der SIM-Karte zu ersetzen. Wenn alles richtig läuft, meldet sich die Schnittstelle als ''3g-umts''. Die Schnittstelle ''umts'' muss außerdem der Firewall in der Zone 1 bekannt gemacht werden. Dies geschieht am besten mittels ''uci'' Befehlen, die ich in einem Script ''umts'' zusammengefügt habe. <br />
<br />
(Die folgende Anpassung ist noch nicht in der Firmware enthalten.)<br />
<br />
<pre><br />
#!/bin/sh<br />
<br />
echo "Einrichten der Netzwerkschnittstelle für UMTS<br />
<br />
uci set network.umts=interface<br />
uci set network.umts.proto=3g<br />
uci set network.umts.peerdns=0<br />
uci set network.umts.ifname=umts0<br />
uci set network.umts.device=/dev/ttyUSB0<br />
uci set network.umts.apn=internet<br />
uci set network.umts.pincode=&lt;xxxx&gt;<br />
uci set network.umts.delay=90<br />
uci commit<br />
<br />
uci set firewall.@zone[1].network='wan wan6 umts'<br />
uci commit firewall<br />
</pre><br />
<br />
Für den DNS muss die Datei /var/gluon/wan-dnsmasq/resolv.conf geändert werden. Diese wird durch zwei Scripte erstellt. (In der Firmware ab Gluon v2017.x sind die folgenden Anpassungen bereits drin.)<br />
<br />
Zusätzlich müssen zwei Dateien angepasst werden: /''etc/hotplug.d/iface/50-gluon-wan-dnsmasq'' und ''/lib/gluon/wan-dnsmasq/update.lua''<br />
<br />
In der Datei ''50-gluon-wan-dnsmasq'' muss das neue Interface ''umts'' in die Liste eingefügt werden ...<br />
<br />
<pre><br />
if [ "$INTERFACE" = 'wan' -o "$INTERFACE" = 'wan6' -o "$INTERFACE" = 'umts' ]; then<br />
/lib/gluon/wan-dnsmasq/update.lua<br />
fi<br />
</pre><br />
<br />
und in der Datei ''update.lua'' wird der Aufruf ''pcall(s,'umts')'' eingefügt.<br />
<br />
<pre><br />
...<br />
else<br />
pcall(s,'wan6')<br />
pcall(s,'wan')<br />
pcall(s,'umts')<br />
end<br />
...<br />
</pre><br />
<br />
Ein ausreichend großer Router kann natürlich auch für beide Methoden konfiguriert werden.<br />
<br />
== Test ==<br />
<br />
TP-Link TL-WR1043ND mit USB-3G-Dongle. Hier wird die Schnittstelle 3g-umts bereitgestellt. (Die IP-Adresse 10.171.235.229 stallt vom Mobilfunkanbieter. GGf. wird es zu Konflikten kommen, wenn dieser Adressbereich auch vom Freifunknetz verwendet wird.<br />
<br />
<pre><br />
root@su-rhb-test-01:~# ifconfig 3g-umts<br />
3g-umts Link encap:Point-to-Point Protocol <br />
inet addr:10.171.235.229 P-t-P:10.64.64.64 Mask:255.255.255.255<br />
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1<br />
RX packets:9 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:615 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:3 <br />
RX bytes:98 (98.0 B) TX bytes:140590 (137.2 KiB)<br />
</pre><br />
<br />
<br />
TP-Link TL-MR3020 am Samsung Galaxy Note 4 mit USB-Tethering:<br />
<br />
<pre><br />
root@su-rhb-ff-ext-002:~# ifconfig usb0<br />
usb0 Link encap:Ethernet HWaddr 02:50:07:03:35:64 <br />
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<br />
RX packets:159014 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:66906 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:1000 <br />
RX bytes:60228689 (57.4 MiB) TX bytes:20634066 (19.6 MiB)<br />
root@su-rhb-ff-ext-002:~# ifconfig br-tether<br />
br-tether Link encap:Ethernet HWaddr 02:50:07:03:35:64 <br />
inet addr:192.168.42.85 Bcast:192.168.42.255 Mask:255.255.255.0<br />
inet6 addr: fe80::50:7ff:fe03:3564/64 Scope:Link<br />
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<br />
RX packets:163095 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:67936 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:0 <br />
RX bytes:61112941 (58.2 MiB) TX bytes:17979223 (17.1 MiB)<br />
</pre><br />
<br />
== Links ==<br />
<br />
[https://wiki.hacksaar.de/Freifunk:Mobiler_Hotspot#USB-3G-Dongle_mit_PPP_bei_Nutzung_von_comgt Freifunk:Mobiler Hotspot]<br />
<br />
[https://wiki.darmstadt.freifunk.net/Firmware_Modifikationen#Konfiguration_einer_3g_LTE_Verbindung_mit_einem_QMI_f.C3.A4higen_LTE_Stick 3G, LTE, mehrere WAN Verbindungen Konfigurieren, etc.]</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=UMTS&diff=236UMTS2018-02-17T10:19:09Z<p>Thomas: /* Schritt 1a: Installation der Software (Teil 1) */</p>
<hr />
<div>Dieser Artikel beschreibt wie ein Freifunkrouter mit einem UMTS-Stick (USB-3G-Dongle) oder einem Smartphone mit USB-Tethering zu einem mobilen Hotspot wird. Einige Modelle (z.B. TP-LINK TL-WR841 V7, V10, WR1043ND oder MR3020) lassen sich mit einer Powerbank (5 Volt) oder der Autobatterie autark vom 220V Netz wirklich mobil betreiben.<br />
<br />
Getestet mit: TP-LINK TL-WR1043 v2 und v3, TP-LINK TL-MR3020 v1.9 und MEDION Surfstick S4222 mit FONIC Prepaid Karte.<br />
<br />
== Mobiler Router mit UMTS ==<br />
<br />
Für einen Freifunkrouter, der über einen UMTS-Stick ans Internet angebunden werden soll, sollte das Image mit USB Unterstützung verwendet werden. Trotz der USB Unterstützung sind folgende Schritte notwendig, um den UMTS-Stick zum Laufen zu bringen. (Es werden auch die Module aufgeführt, die ohne USB-Unterstützung bei der Erstellung der FF-Firmware benötigt werden.)<br />
<br />
== Voraussetzungen ==<br />
<br />
Für die Installation eines UMTS-Stick (weitere Hinweise unter [[USB-Support]]) sind folgende Voraussetzungen zu erfüllen:<br />
<br />
* Der Router benötigt einen USB-Port.<br />
* Während der Softwareinstallation muss der Router über den WAN-Port aus Internet angeschlossen sein.<br />
* In ''/etc/resolv.conf'' muss ein erreichbarer Nameserver (z.B. 8.8.8.8) eingetragen werden, damit die OpenWrt Pakete gefunden werden. <br />
<br />
Als Nameserver nutze ich meinen lokalen Router.<br />
<br />
Beispile: /etc/resolv,conf<br />
<pre><br />
search lan<br />
nameserver 192.168.20.1<br />
nameserver 127.0.0.1<br />
</pre><br />
<br />
== Schritt 1a: Installation der Software (Teil 1) == <br />
<br />
Ab Gluon v2017.x haben die Router bei Freifunk Rheinbach USN_Support an Bord, wenn sie einen USB-Port haben. Ausnahmen bestätigen die Regel: Der TP-Link TL-WR842N(D) läuft mit USB-Support instabil.<br />
<br />
Gluon verwendet einen eigenen, modifizierten Kernel. Daher müssen Kernel-Module für diesen Kernel kompiliert werden. Dies geschieht bei der Generierung der Firmware. Die Module befinden sich im Ordner ''/output/modules''. Für die Installation der richtigen Module sollte in der Datei ''/etc/opkg/customfeed.conf'' der Pfad zu den Modulen eingetragen werden, die mit der Firmware generiert wurden. Für meine Zwecke habe ich die Pakete auf einem Router mit USB-Stick geladen und den Ordner unter der Statusseite als ''/download'' abgelegt. Hier das Beispiel für mein Image vom 05.10.2016:<br />
<br />
<pre><br />
# add your custom package feeds here<br />
#<br />
# src/gz example_feed_name http://www.example.com/path/to/files<br />
src/gz gluon http://[fda0:747e:ab29:2241:16cc:20ff:fecd:15bc]/download/modules/gluon-su-rhb-s2016.2-usb-20161005/ar71xx/generic <br />
</pre><br />
<br />
Als erstes müssen die Paketlisten aufdatiert und die Pakete installiert werden.<br />
<br />
<pre><br />
opkg update<br />
opkg install \<br />
kmod-usb-core \<br />
kmod-usb2 \<br />
libusb-1.0 \<br />
usb-modeswitch \<br />
usbreset<br />
</pre><br />
<br />
Anschließend soll der Router neu gestartet werden. (Der Sinn leuchtet mir nicht ganz ein.)<br />
<br />
reboot ; exit<br />
<br />
Nach einem Reboot muss natürlich die ''/etc/resolv.conf'' wieder angepasst werden, wenn weitere Software installiert werden soll.<br />
<br />
== Schritt 1b. Softwareinstallation (Teil 2) ==<br />
<br />
Die Installation der weiteren Software kann nicht schaden und wird - nach anderen Beschreibungen - für ältere USB-Dongle benötigt.<br />
<br />
<pre><br />
opkg update<br />
opkg install \<br />
chat \<br />
comgt \<br />
kmod-ppp \<br />
kmod-pppoe \<br />
kmod-usb-serial \<br />
kmod-usb-serial-option \<br />
kmod-usb-serial-\<br />
wwan \<br />
ppp \<br />
ppp-mod-pppoe<br />
</pre><br />
<br />
Der Speicher des TP-LINK TL-MR3020 reicht für die obige Lösung leider nicht aus.<br />
<br />
Alternativ kann ''rdnis'' genutzt werden, was aber nach verschiedenen Berichten bei älteren 3G-Dongles ggf. nicht funktioniert.<br />
<br />
<pre><br />
opkg undate<br />
opkg install \<br />
kmod-nls-base \<br />
kmod-usb-core \<br />
kmod-mii \<br />
kmod-usb-net \<br />
kmod-usb-net-cdc-ether \<br />
kmod-usb-net-rndis \<br />
kmod-usb-uhci <br />
</pre><br />
<br />
(Diese Pakete passen auf einen TP-LINK MR3020. Sie reichen aber nicht aus, um einen Medion UMTS-Stick damit anzusteuern. Hier funktioniert nur ein USB-Tethering über ein Mobiltelefon.) <br />
<br />
Diese Lösung habe ich mit dem Medion Stick noch nicht getestet. In welchem Umfang neuere Sticks die erste Lösung nicht mehr unterstützen, weiß ich nicht.<br />
<br />
== Schritt 2: Stick prüfen ==<br />
<br />
Mit den drei folgenden Befehlen wird geprüft, ob der UMTS-Dongle erkannt wird.<br />
<br />
<pre><br />
usbmode -l<br />
ls /dev/ttyUSB*<br />
gcom info -d /dev/ttyUSB0<br />
</pre><br />
<br />
== Schritt 3: USB-Schnittstellen einrichten ==<br />
<br />
Für die Einrichtung der USB-Schnittstelle gibt es verschiedene Möglichkeiten. Wird der USB-3G-Dongle von Medion genutzt, funktioniert die Einrichtung mit ''gomgt''. Soll die UMTS-Verbindung über ein USB-Tethering erfolgen, dann muss rdnis verwendet werden.<br />
<br />
Im Gegensatz zu anderen Installationsanweisungen, die die WAN Schnittstelle umbenennen und durch die USB-Schnittstelle erstetzen, wird in dieser Lösung eine zusätzliche WAN-Schnittstellen (theter und umts) definiert. Dies hat den Vorteil, dass der Router auch über den WAN-Port funktioniert.<br />
<br />
=== Schritt 3.1: TP-LINK TL-MR3020 mit rdnis für USB-Tethering einrichten ===<br />
<br />
Beim TP-LINK TL-MR3020 ist der Overlay-Speicher leider zu klein, um eine UMTS Unterstützung nachträglich zu installieren. Um Platz zu schaffen, muss auf das Paket ''gluon-status-page'' verzichtet werden. Dann kann eine Firmware für den TP-LINK TL-MR3020 gebaut werden, die den Router über ein Mobiltelefon mit USB-Tethering mit den [[fastd]] Servern verbindet. Für die Lösung mit einem USB-3G-Dongle reicht der Platz noch nicht. Mit dem TL-3020 kommt daher nur eine Minimallösung über USB-Tethering in Frage, die auch bei anderen Routern mit USB-Port möglich ist.<br />
<br />
<pre><br />
USB_PACKAGES_MR3020 := \<br />
kmod-nls-base \<br />
kmod-usb-core \<br />
kmod-mii \<br />
kmod-usb-net \<br />
kmod-usb-net-cdc-ether \<br />
kmod-usb-net-rndis \<br />
kmod-usb-uhci<br />
<br />
# basic support for USB stack<br />
USB_PACKAGES_BASIC := \<br />
kmod-usb-core \<br />
kmod-usb2<br />
<br />
GLUON_TLMR3020_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_MR3020)<br />
</pre><br />
<br />
Mit folgenden Befehlen wird dann die Schnittstelle aktiviert.<br />
<br />
<pre><br />
uci set network.tether='interface'<br />
uci set network.tether.ifname='usb0'<br />
uci set network.tether.auto='1'<br />
uci set network.tether.proto='dhcp'<br />
uci set network.tether.type='bridge'<br />
uci set network.tether.peerdns='0'<br />
uci set network.tether.device='/dev/ttyUSB0'<br />
uci commit<br />
<br />
uci set firewall.@zone[1].network='tether wan wan6'<br />
uci commit firewall <br />
</pre><br />
<br />
Die obigen Ergänzungen der Netzwerkeinstellungen bleiben auch bei einer Aktualisierung der Firmware erhalten. (Außer man erzwingt ein Rücksetzen aller Einstellungen.) Dagegen müssen die folgenden Anpassungen bei jeder Aktualisierung der Firmware erneut vorgenommen werden.<br />
<br />
Wie bereits oben beschrieben müssen auch hier die Dateien <br />
* ''/etc/hotplug.d/iface/50-gluon-wan-dnsmasq'' und <br />
* ''/lib/gluon/wan-dnsmasq/update.lua''<br />
angepasst werden.<br />
<br />
In der Datei ''50-gluon-wan-dnsmasq'' muss das neue Interface ''tether'' in die Liste eingefügt werden ...<br />
<br />
<pre><br />
if [ "$INTERFACE" = 'wan' -o "$INTERFACE" = 'wan6' -o "$INTERFACE" = 'tether' ]; then<br />
/lib/gluon/wan-dnsmasq/update.lua<br />
fi<br />
</pre><br />
<br />
und in der Datei ''update.lua'' wird der Aufruf ''pcall(s,'tether')'' eingefügt.<br />
<br />
<pre><br />
...<br />
else<br />
pcall(s,'wan6')<br />
pcall(s,'wan')<br />
pcall(s,'tether')<br />
end<br />
...<br />
</pre><br />
<br />
Durch diese Konfiguratioin werden zwei zusätlichen Netzwerkschnittstellen usb0 und br-tether erstellt.<br />
<br />
Getestet wurde diese Konfiguration mit einem Samsung Galaxy Note 4.<br />
<br />
=== Schritt 3.2: USB-3G-Dongle von Medion (S4222) mit gomgt einrichten ===<br />
<br />
Bei Routwern mit mehr Speicher als der MR3020 kann ein vollständiger USB-Support installiert werden. Mit einem USB-3G-Dongle kann eine zweite Verbindung ins Internet aufgebaut werden, über die ''fastd'' einen Tunnel zu den Supernodes im Internet aufbauen kann. Dazu definieren wir eine neue Netzwerkschnittstelle, die ich 'umts' genannt habe. Viele Kochrezepte empfehlen die Schnittstelle ''wan'' zu benennen und die alte Schnittstelle in ''wan2'' umzubenennen. Dies ist jedoch nicht notwendig. Der Router kann mit mehreren Schnittstellen gleichzeitig umgehen. Dies hat den Vorteil, dass der Router sowohl über den WAN-Port, als auch über einen UMTS-Stick angebunden werden kann. Auch eine gleichzeitige Verbindung mit beiden Schnittstellen ist möglich. Hier kann es jedoch passieren, dass die Verbindung über die UMTS stattfindet, was sehr teuer werden kann. <br />
<br />
dazu wird dieses Interface mit folgendem Script auf dem Freifunkrouter als Netzwerkschnittstelle eingerichtet. Dabei ist &lt;xxxx&gt; durch die PIN der SIM-Karte zu ersetzen. Wenn alles richtig läuft, meldet sich die Schnittstelle als ''3g-umts''. Die Schnittstelle ''umts'' muss außerdem der Firewall in der Zone 1 bekannt gemacht werden. Dies geschieht am besten mittels ''uci'' Befehlen, die ich in einem Script ''umts'' zusammengefügt habe. <br />
<br />
<pre><br />
#!/bin/sh<br />
<br />
echo "Einrichten der Netzwerkschnittstelle für UMTS<br />
<br />
uci set network.umts=interface<br />
uci set network.umts.proto=3g<br />
uci set network.umts.peerdns=0<br />
uci set network.umts.ifname=umts0<br />
uci set network.umts.device=/dev/ttyUSB0<br />
uci set network.umts.apn=internet<br />
uci set network.umts.pincode=&lt;xxxx&gt;<br />
uci set network.umts.delay=90<br />
uci commit<br />
<br />
uci set firewall.@zone[1].network='wan wan6 umts'<br />
uci commit firewall<br />
</pre><br />
<br />
Für den DNS muss die Datei /var/gluon/wan-dnsmasq/resolv.conf geändert werden. Diese wird durch zwei Scripte erstellt <br />
<br />
Zusätzlich müssen zwei Dateien angepasst werden: /''etc/hotplug.d/iface/50-gluon-wan-dnsmasq'' und ''/lib/gluon/wan-dnsmasq/update.lua''<br />
<br />
In der Datei ''50-gluon-wan-dnsmasq'' muss das neue Interface ''umts'' in die Liste eingefügt werden ...<br />
<br />
<pre><br />
if [ "$INTERFACE" = 'wan' -o "$INTERFACE" = 'wan6' -o "$INTERFACE" = 'umts' ]; then<br />
/lib/gluon/wan-dnsmasq/update.lua<br />
fi<br />
</pre><br />
<br />
und in der Datei ''update.lua'' wird der Aufruf ''pcall(s,'umts')'' eingefügt.<br />
<br />
<pre><br />
...<br />
else<br />
pcall(s,'wan6')<br />
pcall(s,'wan')<br />
pcall(s,'umts')<br />
end<br />
...<br />
</pre><br />
<br />
Ein ausreichend gr0ßer Router kann natürlich auch für beide Methoden konfiguriert werden.<br />
<br />
== Test ==<br />
<br />
TP-Link TL-WR1043ND mit USB-3G-Dongle. Hier wird die Schnittstelle 3g-umts bereitgestellt. (Die IP-Adresse 10.171.235.229 stallt vom Mobilfunkanbieter. GGf. wird es zu Konflikten kommen, wenn dieser Adressbereich auch vom Freifunknetz verwendet wird.<br />
<br />
<pre><br />
root@su-rhb-test-01:~# ifconfig 3g-umts<br />
3g-umts Link encap:Point-to-Point Protocol <br />
inet addr:10.171.235.229 P-t-P:10.64.64.64 Mask:255.255.255.255<br />
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1<br />
RX packets:9 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:615 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:3 <br />
RX bytes:98 (98.0 B) TX bytes:140590 (137.2 KiB)<br />
</pre><br />
<br />
<br />
TP-Link TL-MR3020 am Samsung Galaxy Note 4 mit USB-Tethering:<br />
<br />
<pre><br />
root@su-rhb-ff-ext-002:~# ifconfig usb0<br />
usb0 Link encap:Ethernet HWaddr 02:50:07:03:35:64 <br />
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<br />
RX packets:159014 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:66906 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:1000 <br />
RX bytes:60228689 (57.4 MiB) TX bytes:20634066 (19.6 MiB)<br />
root@su-rhb-ff-ext-002:~# ifconfig br-tether<br />
br-tether Link encap:Ethernet HWaddr 02:50:07:03:35:64 <br />
inet addr:192.168.42.85 Bcast:192.168.42.255 Mask:255.255.255.0<br />
inet6 addr: fe80::50:7ff:fe03:3564/64 Scope:Link<br />
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<br />
RX packets:163095 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:67936 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:0 <br />
RX bytes:61112941 (58.2 MiB) TX bytes:17979223 (17.1 MiB)<br />
</pre><br />
<br />
== Links ==<br />
<br />
[https://wiki.hacksaar.de/Freifunk:Mobiler_Hotspot#USB-3G-Dongle_mit_PPP_bei_Nutzung_von_comgt Freifunk:Mobiler Hotspot]<br />
<br />
[https://wiki.darmstadt.freifunk.net/Firmware_Modifikationen#Konfiguration_einer_3g_LTE_Verbindung_mit_einem_QMI_f.C3.A4higen_LTE_Stick 3G, LTE, mehrere WAN Verbindungen Konfigurieren, etc.]</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=USB-Support&diff=235USB-Support2018-02-17T10:16:17Z<p>Thomas: /* USB-Support im Image */</p>
<hr />
<div>In den [[Gluon]] [[Images]] wird in der Regel kein USB-Support für die [[Freifunk]]-[[Router]] mit USB-Port mitgeliefert.<br />
<br />
Der USB-Support für Router kann allerdings nachträglich installiert werden. Nicht alle Router mit USB-Port haben ausreichend Speicher, um einen vollständigen USB-Support zu bieten; mein [[TP-Link]] [[TL-MR3020]] gehört leider zu dieser Sorte.<br />
<br />
== Voraussetzungen ==<br />
<br />
Für die Installation des USB-Support sind folgende Voraussetzungen zu erfüllen:<br />
<br />
* Der Router benötigt einen USB-Port.<br />
* Während der Softwareinstallation muss der Router über den WAN-Port aus Internet angeschlossen sein.<br />
* In ''/etc/resolv.conf'' muss ein erreichbarer Nameserver (z.B. 8.8.8.8) eingetragen werden, damit die OpenWrt Pakete gefunden werden. <br />
<br />
Als Nameserver nutze ich meinen lokalen Router.<br />
Beispile: /etc/resolv,conf<br />
<pre><br />
search lan<br />
nameserver 192.168.20.1<br />
nameserver 127.0.0.1<br />
</pre><br />
<br />
== Nachträgliche Installation ==<br />
<br />
Gluon verwendet einen eigenen, modifizierten Kernel. Daher müssen [[Kernel-Module]] für diesen Kernel kompiliert werden. Dies geschieht bei der Generierung der Firmware. Die Module befinden sich im Ordner ''/output/modules''. Für die [[Installation]] der richtigen Module sollte in der Datei ''/etc/opkg/customfeed.conf'' der Pfad zu den Modulen eingetragen werden, die mit der Firmware generiert wurden. <br />
<br />
Für meine Zwecke habe ich die Pakete auf einem Router mit USB-Stick geladen und den Ordner unter der Statusseite als ''/download'' abgelegt. Hier das Beispiel für mein Image vom 05.10.2016: <br />
<br />
<pre><br />
# add your custom package feeds here<br />
#<br />
# src/gz example_feed_name http://www.example.com/path/to/files<br />
src/gz gluon http://[fda0:747e:ab29:2241:16cc:20ff:fecd:15bc]/download/modules/gluon-su-rhb-s2016.2-usb-20161005/ar71xx/generic <br />
</pre><br />
<br />
In Images ab dem 10.10.2016 ist der korrekte Pfad in der Datei ''site.conf'' unter "opkg extra" angegeben.<br />
<br />
Als erstes müssen die Paketlisten aktualisiert (opkg update) und dann die Pakete installiert (opkg install) werden. Mit den folgenden Befehlen wird eine minimale USB-Unterstützung installiert.<br />
<br />
<pre><br />
opkg update<br />
opkg install \<br />
kmod-usb-core \<br />
kmod-usb2 \<br />
libusb-1.0 \<br />
usb-modeswitch \<br />
usbreset<br />
</pre><br />
<br />
Anschließend sollte der Router neu gestartet werden. <br />
reboot ; exit<br />
<br />
Nach einem Reboot muss natürlich die ''/etc/resolv.conf'' wieder angepasst werden, wenn weitere Software installiert werden soll.<br />
<br />
<br />
Damit kann man im Grunde nicht viel anfangen. Wie einzeln Geräte genutzt und installiert werden ist jeweils getrennt für [[USB-Speicherstick]] oder [[UMTS | USB-3G-Dongle für Mobilfunk]] beschrieben.<br />
<br />
== USB-Support im Image ==<br />
<br />
Die notwendigen Module für einen USB-Support lassen sich auch im Image beim Build einbinden. Dazu müssen die notwendigen Packages in der [[site.mk]] angegeben werden. Dies ist etwas umfangreicher, da - wie oben erwähnt - nicht alle Router über ausreichend Speicher verfügen.<br />
<br />
Hier eine passende ''site.mk'' für Freifunk Rheinbach mit möglichst umfassenden USB-Support:<br />
<br />
=== Bis Gluon v2016.x ===<br />
<br />
<pre><br />
# FF-Rheinbach<br />
<br />
GLUON_SITE_PACKAGES := \<br />
gluon-mesh-batman-adv-15 \<br />
gluon-alfred \<br />
gluon-autoupdater \<br />
gluon-authorized-keys \<br />
gluon-config-mode-autoupdater \<br />
gluon-config-mode-contact-info \<br />
gluon-config-mode-core \<br />
gluon-config-mode-geo-location \<br />
gluon-config-mode-hostname \<br />
gluon-config-mode-mesh-vpn \<br />
gluon-ebtables-filter-multicast \<br />
gluon-ebtables-filter-ra-dhcp \<br />
gluon-luci-admin \<br />
gluon-luci-autoupdater \<br />
gluon-luci-mesh-vpn-fastd \<br />
gluon-luci-node-role \<br />
gluon-luci-portconfig \<br />
gluon-luci-private-wifi \<br />
gluon-luci-wifi-config \<br />
gluon-mesh-vpn-fastd \<br />
gluon-neighbour-info \<br />
gluon-next-node \<br />
gluon-radvd \<br />
gluon-setup-mode \<br />
gluon-status-page \<br />
gluon-wan-dnsmasq \<br />
haveged \<br />
iptables \<br />
iwinfo \<br />
<br />
<br />
# basic support for USB stack<br />
USB_PACKAGES_BASIC := \<br />
kmod-usb-core \<br />
kmod-usb2<br />
<br />
# UMTS support for USB devices<br />
USB_PACKAGES_UMTS := \<br />
libusb-1.0 \<br />
usb-modeswitch \<br />
usbreset \<br />
chat \<br />
comgt \<br />
kmod-ppp \<br />
kmod-pppoe \<br />
kmod-usb-serial \<br />
kmod-usb-serial-option \<br />
kmod-usb-serial-wwan \<br />
ppp \<br />
ppp-mod-pppoe<br />
<br />
# storage support for USB devices<br />
USB_PACKAGES_STORAGE := \<br />
block-mount \<br />
blkid \<br />
kmod-fs-ext4 \<br />
kmod-fs-vfat \<br />
kmod-usb-storage \<br />
kmod-usb-storage-extras \<br />
kmod-nls-cp1250 \<br />
kmod-nls-cp1251 \<br />
kmod-nls-cp437 \<br />
kmod-nls-cp775 \<br />
kmod-nls-cp850 \<br />
kmod-nls-cp852 \<br />
kmod-nls-cp866 \<br />
kmod-nls-iso8859-1 \<br />
kmod-nls-iso8859-13 \<br />
kmod-nls-iso8859-15 \<br />
kmod-nls-iso8859-2 \<br />
kmod-nls-koi8r \<br />
kmod-nls-utf8 \<br />
swap-utils<br />
<br />
# network support for USB devices<br />
USB_PACKAGES_NET := \<br />
kmod-ath9k-htc \<br />
kmod-ath9k-common \<br />
kmod-ath \<br />
kmod-brcmfmac \<br />
kmod-carl9170 \<br />
kmod-mii \<br />
kmod-nls-base \<br />
kmod-rt73-usb \<br />
kmod-rtl8192cu \<br />
kmod-rtl8187 \<br />
kmod-usb-net \<br />
kmod-usb-net-asix \<br />
kmod-usb-net-asix-ax88179 \<br />
kmod-usb-net-cdc-eem \<br />
kmod-usb-net-cdc-ether \<br />
kmod-usb-net-cdc-mbim \<br />
kmod-usb-net-cdc-ncm \<br />
kmod-usb-net-cdc-subset \<br />
kmod-usb-net-dm9601-ether \<br />
kmod-usb-net-hso \<br />
kmod-usb-net-huawei-cdc-ncm \<br />
kmod-usb-net-ipheth \<br />
kmod-usb-net-kalmia \<br />
kmod-usb-net-kaweth \<br />
kmod-usb-net-mcs7830 \<br />
kmod-usb-net-pegasus \<br />
kmod-usb-net-qmi-wwan \<br />
kmod-usb-net-rndis \<br />
kmod-usb-net-rtl8152 \<br />
kmod-usb-net-sierrawireless \<br />
kmod-usb-net-smsc95xx<br />
<br />
# network support for PCI devices<br />
PCI_PACKAGES_NET := \<br />
kmod-3c59x \<br />
kmod-e100 \<br />
kmod-e1000 \<br />
kmod-e1000e \<br />
kmod-forcedeth \<br />
kmod-igb \<br />
kmod-natsemi \<br />
kmod-ne2k-pci \<br />
kmod-pcnet32 \<br />
kmod-r8169 \<br />
kmod-sis900 \<br />
kmod-sky2 \<br />
kmod-tg3 \<br />
kmod-tulip \<br />
kmod-via-rhine<br />
<br />
# misc packages<br />
MISC_PACKAGES := \<br />
kmod-usb-acm \<br />
kmod-usb-serial-simple<br />
<br />
USB_PACKAGES_MR3020 := \<br />
kmod-nls-base \<br />
kmod-usb-core \<br />
kmod-mii \<br />
kmod-usb-net \<br />
kmod-usb-net-cdc-ether \<br />
kmod-usb-net-rndis \<br />
kmod-usb-uhci<br />
<br />
#<br />
# $(GLUON_TARGET) specific settings:<br />
#<br />
<br />
# x86-generic<br />
ifeq ($(GLUON_TARGET),x86-generic)<br />
# support the usb stack on x86 devices<br />
# and add a few common USB and PCI NICs<br />
GLUON_SITE_PACKAGES += \<br />
kmod-usb-hid \<br />
kmod-hid-generic \<br />
$(USB_PACKAGES_BASIC) \<br />
$(USB_PACKAGES_STORAGE) \<br />
$(USB_PACKAGES_NET) \<br />
$(PCI_PACKAGES_NET) \<br />
$(MISC_PACKAGES)<br />
endif<br />
<br />
# x86-64<br />
ifeq ($(GLUON_TARGET),x86-64)<br />
# support the usb stack on x86-64 devices<br />
# and add a few common USB and PCI NICs<br />
GLUON_SITE_PACKAGES += \<br />
kmod-usb-hid \<br />
kmod-hid-generic \<br />
$(USB_PACKAGES_BASIC) \<br />
$(USB_PACKAGES_STORAGE) \<br />
$(USB_PACKAGES_NET) \<br />
$(PCI_PACKAGES_NET) \<br />
$(MISC_PACKAGES)<br />
endif<br />
<br />
# Raspberry Pi A/B/B+<br />
ifeq ($(GLUON_TARGET),brcm2708-bcm2708)<br />
GLUON_SITE_PACKAGES += \<br />
kmod-usb-hid \<br />
kmod-hid-generic \<br />
$(USB_PACKAGES_BASIC) \<br />
$(USB_PACKAGES_STORAGE) \<br />
$(USB_PACKAGES_NET) \<br />
$(MISC_PACKAGES)<br />
endif<br />
<br />
# Raspberry Pi 2<br />
ifeq ($(GLUON_TARGET),brcm2708-bcm2709)<br />
GLUON_SITE_PACKAGES += \<br />
kmod-usb-hid \<br />
kmod-hid-generic \<br />
$(USB_PACKAGES_BASIC) \<br />
$(USB_PACKAGES_STORAGE) \<br />
$(USB_PACKAGES_NET) \<br />
$(MISC_PACKAGES)<br />
endif<br />
<br />
# ar71xx-generic<br />
GLUON_ARCHERC7_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_UMTS) $(USB_PACKAGES_STORAGE) $(USB_PACKAGES_NET) $(MISC_PACKAGES)<br />
GLUON_DIR505A1_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_STORAGE) $(USB_PACKAGES_NET) $(MISC_PACKAGES)<br />
GLUON_GLINET_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_STORAGE) $(USB_PACKAGES_NET) $(MISC_PACKAGES)<br />
GLUON_TLWR842_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_UMTS) $(USB_PACKAGES_STORAGE) $(USB_PACKAGES_NET) $(MISC_PACKAGES)<br />
GLUON_TLWR1043_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_UMTS) $(USB_PACKAGES_STORAGE) $(USB_PACKAGES_NET) $(MISC_PACKAGES)<br />
GLUON_TLWR2543_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_STORAGE) $(USB_PACKAGES_NET) $(MISC_PACKAGES)<br />
GLUON_TLWDR4300_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_UMTS) $(USB_PACKAGES_STORAGE) $(USB_PACKAGES_NET) $(MISC_PACKAGES)<br />
GLUON_WNDR3700_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_STORAGE) $(USB_PACKAGES_NET) $(MISC_PACKAGES)<br />
GLUON_WRT160NL_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_STORAGE) $(USB_PACKAGES_NET) $(MISC_PACKAGES)<br />
GLUON_WZRHPAG300H_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_STORAGE) $(USB_PACKAGES_NET) $(MISC_PACKAGES)<br />
GLUON_WZRHPG450H_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_STORAGE) $(USB_PACKAGES_NET) $(MISC_PACKAGES)<br />
GLUON_TLMR3020_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_MR3020) -gluon-status-page<br />
<br />
# mpc85xx-generic<br />
GLUON_TLWDR4900_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_STORAGE) $(USB_PACKAGES_NET) $(MISC_PACKAGES)<br />
<br />
DEFAULT_GLUON_RELEASE := s2016.2-usb-$(shell date '+%Y%m%d')<br />
<br />
# Allow overriding the release number from the command line<br />
GLUON_RELEASE ?= $(DEFAULT_GLUON_RELEASE)<br />
GLUON_PRIORITY ?= 0<br />
GLUON_LANGS ?= en de<br />
GLUON_ATH10K_MESH ?= 11s<br />
</pre><br />
<br />
=== Ab gluon v2017.x ===<br />
<pre><br />
# FF-Rheinbach<br />
<br />
GLUON_SITE_PACKAGES := \<br />
gluon-mesh-batman-adv-15 \<br />
gluon-alfred \<br />
gluon-authorized-keys \<br />
gluon-autoupdater \<br />
gluon-client-bridge \<br />
gluon-config-mode-autoupdater \<br />
gluon-config-mode-contact-info \<br />
gluon-config-mode-core \<br />
gluon-config-mode-geo-location \<br />
gluon-config-mode-hostname \<br />
gluon-config-mode-mesh-vpn \<br />
gluon-core \<br />
gluon-ebtables \<br />
gluon-ebtables-filter-multicast \<br />
gluon-ebtables-filter-ra-dhcp \<br />
gluon-ebtables-segment-mld \<br />
gluon-ebtables-source-filter \<br />
gluon-mesh-vpn-core \<br />
gluon-mesh-vpn-fastd \<br />
gluon-neighbour-info \<br />
gluon-radvd \<br />
gluon-respondd \<br />
gluon-setup-mode \<br />
gluon-site \<br />
gluon-status-page \<br />
gluon-status-page-api \<br />
gluon-wan-dnsmasq \<br />
gluon-web \<br />
gluon-web-admin \<br />
gluon-web-autoupdater \<br />
gluon-web-mesh-vpn-fastd \<br />
gluon-web-network \<br />
gluon-web-node-role \<br />
gluon-web-private-wifi \<br />
gluon-web-theme \<br />
gluon-web-wifi-config \<br />
haveged \<br />
iptables \<br />
iwinfo \<br />
<br />
## Für Tunneldigger vpn<br />
## gluon-mesh-vpn-tunneldigger \<br />
<br />
# basic support for USB stack<br />
USB_PACKAGES_BASIC := \<br />
kmod-usb-core \<br />
kmod-usb2<br />
<br />
# UMTS support for USB devices<br />
USB_PACKAGES_UMTS := \<br />
libusb-1.0 \<br />
usb-modeswitch \<br />
usbreset \<br />
chat \<br />
comgt \<br />
kmod-ppp \<br />
kmod-pppoe \<br />
kmod-usb-serial \<br />
kmod-usb-serial-option \<br />
kmod-usb-serial-wwan \<br />
ppp \<br />
ppp-mod-pppoe<br />
<br />
# storage support for USB devices<br />
USB_PACKAGES_STORAGE := \<br />
block-mount \<br />
blkid \<br />
kmod-fs-ext4 \<br />
kmod-fs-vfat \<br />
kmod-usb-storage \<br />
kmod-usb-storage-extras \<br />
kmod-nls-cp1250 \<br />
kmod-nls-cp1251 \<br />
kmod-nls-cp437 \<br />
kmod-nls-cp775 \<br />
kmod-nls-cp850 \<br />
kmod-nls-cp852 \<br />
kmod-nls-cp866 \<br />
kmod-nls-iso8859-1 \<br />
kmod-nls-iso8859-13 \<br />
kmod-nls-iso8859-15 \<br />
kmod-nls-iso8859-2 \<br />
kmod-nls-koi8r \<br />
kmod-nls-utf8 \<br />
swap-utils<br />
<br />
# network support for USB devices<br />
USB_PACKAGES_NET := \<br />
kmod-ath9k-htc \<br />
kmod-ath9k-common \<br />
kmod-ath \<br />
kmod-brcmfmac \<br />
kmod-carl9170 \<br />
kmod-mii \<br />
kmod-nls-base \<br />
kmod-rt73-usb \<br />
kmod-rtl8192cu \<br />
kmod-rtl8187 \<br />
kmod-usb-net \<br />
kmod-usb-net-asix \<br />
kmod-usb-net-asix-ax88179 \<br />
kmod-usb-net-cdc-eem \<br />
kmod-usb-net-cdc-ether \<br />
kmod-usb-net-cdc-mbim \<br />
kmod-usb-net-cdc-ncm \<br />
kmod-usb-net-cdc-subset \<br />
kmod-usb-net-dm9601-ether \<br />
kmod-usb-net-hso \<br />
kmod-usb-net-huawei-cdc-ncm \<br />
kmod-usb-net-ipheth \<br />
kmod-usb-net-kalmia \<br />
kmod-usb-net-kaweth \<br />
kmod-usb-net-mcs7830 \<br />
kmod-usb-net-pegasus \<br />
kmod-usb-net-qmi-wwan \<br />
kmod-usb-net-rndis \<br />
kmod-usb-net-rtl8152 \<br />
kmod-usb-net-sierrawireless \<br />
kmod-usb-net-smsc95xx<br />
<br />
# network support for PCI devices<br />
PCI_PACKAGES_NET := \<br />
kmod-3c59x \<br />
kmod-e100 \<br />
kmod-e1000 \<br />
kmod-e1000e \<br />
kmod-forcedeth \<br />
kmod-igb \<br />
kmod-natsemi \<br />
kmod-ne2k-pci \<br />
kmod-pcnet32 \<br />
kmod-r8169 \<br />
kmod-sis900 \<br />
kmod-sky2 \<br />
kmod-tg3 \<br />
kmod-tulip \<br />
kmod-via-rhine<br />
<br />
# misc packages<br />
MISC_PACKAGES := \<br />
kmod-usb-acm \<br />
kmod-usb-serial-simple<br />
<br />
USB_PACKAGES_MR3020 := \<br />
kmod-nls-base \<br />
kmod-usb-core \<br />
kmod-mii \<br />
kmod-usb-net \<br />
kmod-usb-net-cdc-ether \<br />
kmod-usb-net-rndis \<br />
kmod-usb-uhci<br />
<br />
#<br />
# $(GLUON_TARGET) specific settings:<br />
#<br />
<br />
# x86-generic<br />
ifeq ($(GLUON_TARGET),x86-generic)<br />
# support the usb stack on x86 devices<br />
# and add a few common USB and PCI NICs<br />
GLUON_SITE_PACKAGES += \<br />
kmod-usb-hid \<br />
kmod-hid-generic \<br />
$(USB_PACKAGES_BASIC) \<br />
$(USB_PACKAGES_STORAGE) \<br />
$(USB_PACKAGES_NET) \<br />
$(PCI_PACKAGES_NET) \<br />
<br />
endif<br />
<br />
# x86-64<br />
ifeq ($(GLUON_TARGET),x86-64)<br />
# support the usb stack on x86-64 devices<br />
# and add a few common USB and PCI NICs<br />
GLUON_SITE_PACKAGES += \<br />
kmod-usb-hid \<br />
kmod-hid-generic \<br />
$(USB_PACKAGES_BASIC) \<br />
$(USB_PACKAGES_STORAGE) \<br />
$(USB_PACKAGES_NET) \<br />
$(PCI_PACKAGES_NET) \<br />
<br />
endif<br />
<br />
# Raspberry Pi A/B/B+<br />
ifeq ($(GLUON_TARGET),brcm2708-bcm2708)<br />
GLUON_SITE_PACKAGES += \<br />
kmod-usb-hid \<br />
kmod-hid-generic \<br />
$(USB_PACKAGES_BASIC) \<br />
$(USB_PACKAGES_STORAGE) \<br />
$(USB_PACKAGES_NET) \<br />
<br />
endif<br />
<br />
# Raspberry Pi 2<br />
ifeq ($(GLUON_TARGET),brcm2708-bcm2709)<br />
GLUON_SITE_PACKAGES += \<br />
kmod-usb-hid \<br />
kmod-hid-generic \<br />
$(USB_PACKAGES_BASIC) \<br />
$(USB_PACKAGES_STORAGE) \<br />
$(USB_PACKAGES_NET) \<br />
<br />
endif<br />
<br />
# ar71xx-generic / tiny<br />
GLUON_tp-link-archer-c7-v2_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_UMTS) $(USB_PACKAGES_STORAGE) $(USB_PACKAGES_NET) $(MISC_PACKAGES)<br />
GLUON_tp-link-archer-c7-v4_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_UMTS) $(USB_PACKAGES_STORAGE) $(USB_PACKAGES_NET) $(MISC_PACKAGES)<br />
<br />
# 842 can't install a full featured usb image, we don't need network and UMTS on our 842 devices<br />
<br />
GLUON_tp-link-tl-wr842n-nd-v1_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_STORAGE)<br />
GLUON_tp-link-tl-wr842n-nd-v2_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_STORAGE)<br />
GLUON_tp-link-tl-wr842n-nd-v3_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_STORAGE)<br />
<br />
GLUON_tp-link-tl-wr1043n-nd-v1_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_UMTS) $(USB_PACKAGES_STORAGE) $(USB_PACKAGES_NET) $(MISC_PACKAGES)<br />
GLUON_tp-link-tl-wr1043n-nd-v2_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_UMTS) $(USB_PACKAGES_STORAGE) $(USB_PACKAGES_NET) $(MISC_PACKAGES)<br />
GLUON_tp-link-tl-wr1043n-nd-v3_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_UMTS) $(USB_PACKAGES_STORAGE) $(USB_PACKAGES_NET) $(MISC_PACKAGES)<br />
GLUON_tp-link-tl-wr1043n-nd-v4_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_UMTS) $(USB_PACKAGES_STORAGE) $(USB_PACKAGES_NET) $(MISC_PACKAGES)<br />
<br />
GLUON_tp-link-tl-wdr3500-v1_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_UMTS) $(USB_PACKAGES_STORAGE) $(USB_PACKAGES_NET) $(MISC_PACKAGES)<br />
GLUON_tp-link-tl-wdr3600-v1_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_UMTS) $(USB_PACKAGES_STORAGE) $(USB_PACKAGES_NET) $(MISC_PACKAGES)<br />
GLUON_tp-link-tl-wdr4300-v1_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_UMTS) $(USB_PACKAGES_STORAGE) $(USB_PACKAGES_NET) $(MISC_PACKAGES)<br />
<br />
GLUON_tp-link-tl-mr3020-v1_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_MR3020) -gluon-status-page<br />
<br />
# mpc85xx-generic<br />
GLUON_tp-link-tl-wdr4900-v1_SITE_PACKAGES := $(USB_PACKAGES_BASIC) $(USB_PACKAGES_STORAGE) $(USB_PACKAGES_NET) $(MISC_PACKAGES)<br />
<br />
DEFAULT_GLUON_RELEASE := v2017.1.4-$(shell date '+%Y%m%d')-stable-usb<br />
<br />
# Allow overriding the release number from the command line<br />
GLUON_RELEASE ?= $(DEFAULT_GLUON_RELEASE)<br />
GLUON_PRIORITY ?= 0<br />
GLUON_LANGS ?= en de<br />
GLUON_ATH10K_MESH ?= 11s<br />
</pre><br />
<br />
== Besonderheiten ==<br />
<br />
=== TP-Link TL-MR3020 ===<br />
<br />
Mit den normalen Gluon 2016.x (vorherige Versionen habe ich nicht ausprobiert) hat der Router TP-Link TL-MR3020 zu wenig freien Speicher für den USB-Support eines USB-3G-Dongle. Abhilfe schafft eine abgespecktre Firmware. Es reicht, auf die Status-Page zu verzichten um USB-Tethering zu unterstützen.</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=Ibss&diff=234Ibss2018-02-09T13:39:45Z<p>Thomas: Tippfehler bei Deaktivieren beseitigt.</p>
<hr />
<div>Freifunkrouter können sich untereinander über ein Adhoc-WLAN verbinden ([[meshing]]). Die Schnittstelle heißt ibss0 für die Kanäle im 2.4 GHz Bereich und ibss1 für den 5GHz Bereich.<br />
<br />
Das Meshing kan mit folgenden Befehlen aktiviert bzw. deaktiviert werden:<br />
<br />
# Aktivieren:<br />
uci set wireless.ibss_radio0.disabled='0'<br />
uci set wireless.ibss_radio1.disabled='0'<br />
uci commit<br />
wifi<br />
<br />
# Deaktivieren:<br />
uci set wireless.ibss_radio0.disabled='1'<br />
uci set wireless.ibss_radio1.disabled='1'<br />
uci commit<br />
wifi</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=B.A.T.M.A.N.&diff=233B.A.T.M.A.N.2018-02-04T11:45:14Z<p>Thomas: /* fastd konfigurieren */ Ergänzungen zum fastd</p>
<hr />
<div>B.A.T.M.A.N. (Abkürzung für '''B'''etter '''A'''pproach '''T'''o '''M'''obile '''A'''dhoc '''N'''etworking) ist ein Routing-Protokoll für mobile Ad-hoc-Netze. Siehe [https://de.wikipedia.org/wiki/B.A.T.M.A.N. WikiPedia]. Im Freifunk wird unter anderem B.A.T.M.A.N. als Routing-Protokoll eingesetzt.<br />
<br />
== Abstrakt ==<br />
<br />
In diesem Artikel wird beschrieben, wie B.A.T.M.A.N. zusammen mit [[fastd]] auf einem Rechner mit Debian eingerichtet wird und der Rechner direkt an das Netz des Freifunk Rheinland, Domäne Wupper, angebunden wird. Als Beispiel dient die Konfiguration der Freifunk Rheinbach Community. <br />
<br />
Die Verbindung der [[Node | Nodes]] (Router) zu den Servern im Internet erfolgt über einen verschlüsselten Tunnel. Bei Freifunk Rheinbach wird für die Tunnel ''fastd'' verwendet. Nodes, die in WLAN Reichweite zueinander stehen, verbinden sich untereinander über ein MESH-Netzwerk. Auch über Kabel (LAN oder WAN-Port) können sich Nodes vermaschen. Auf all diesen Verbindungen wird das Routing-Protokoll B.A.T.M.A.N. verwendet.<br />
<br />
== Hinweis ==<br />
<br />
Ich verwende als Shell die [[bash]]. Standard ist bei Debian 8.7.1 [[dash]]. Die Befehle in den Scripten sind so einfach, dass sie in beiden Shells funktionieren sollten<br />
<br />
== Installation der Software ==<br />
<br />
=== B.A.T.M.A.N. und fastd installieren ===<br />
<br />
Die folgenden Befehle und Scripte wurden unter '''Debian 8.7.1''' entwickelt und getestet.<br />
<br />
Das folgende Script installiert auf einem Debian 8 die notwendige Software - einschließlich fastd. Je nach System kann es notwendig sein zusätzliche Pakete zu installieren. Das folgende Script wurde auf zwei relativ frischen, jungfräulichen Debian 8.7.1 getestet.<br />
<br />
Achtung: Die Router verwenden B.A.T.M.A.N. 2017.2 (Stand: 03.02.2018, Gluon v2017.1.4); Aktuell ist 2017.4. Im Debian sind meist ältere Versionen. Deshalb empfiehlt sich eine Installation aus den Quellen<br />
<br />
Vor der Installation mit dem nachfolgenden Script müssen die passenden linunx-header- Dateien für den Kernel installiert sein / werden. Dies geht zum Beispiel mit mit ''apt-get install linux-headers-4.9.0-5-all-amd64''. <br />
<br />
Der Befehl ist zwar im Script, aber nicht getestet.<br />
<br />
<br />
<pre><br />
#!/bin/bash<br />
<br />
# Installation B.A.T.M.A.N.<br />
# Version festlegen<br />
<br />
VBAT="2017.2"<br />
<br />
# Installation der linux-headers für den Kernel.<br />
<br />
apt install linux-headers-$(uname -r | sed 's#-amd64#-all-amd64#')<br />
<br />
<br />
# Wir brauchen ein paar Repos, die nicht im Default einhalten sind.<br />
<br />
grep 'http://repo.universe-factory.net/debian/' /etc/apt/sources.list || echo 'deb http://repo.universe-factory.net/debian/ sid main' >> /etc/apt/sources.list<br />
<br />
# Und den Schlüssel für das Paket. Aktuell: 16EF3F64CB201D9C<br />
<br />
KEY=16EF3F64CB201D9C<br />
gpg --keyserver pgpkeys.mit.edu --recv-key $KEY<br />
gpg -a --export $KEY | apt-key add -<br />
<br />
# Nun die Software, die wahrscheinlich fehlt, inklusive fastd<br />
<br />
apt install apt-transport-https<br />
apt update<br />
apt install build-essential bridge-utils pkg-config libnl-3-dev libnl-genl-3-dev linux-headers-amd64 fastd<br />
<br />
# Jetzt wird B.A.T.M.A.N. batctl aus den Quellen geladen und installiert<br />
<br />
cd /usr/src/<br />
wget http://downloads.open-mesh.org/batman/stable/sources/batctl/batctl-${VBAT}.tar.gz<br />
tar xzf batctl-${VBAT}.tar.gz<br />
cd batctl-${VBAT}<br />
make<br />
make install<br />
<br />
<br />
# Jetzt wird B.A.T.M.A.N. batman-adv aus den Quellen geladen und installiert<br />
<br />
cd /usr/src/<br />
wget http://downloads.open-mesh.org/batman/stable/sources/batman-adv/batman-adv-${VBAT}.tar.gz<br />
tar xzf batman-adv-${VBAT}.tar.gz<br />
cd batman-adv-${VBAT}<br />
make<br />
make install<br />
<br />
# Wir können batman-adv gleich starten<br />
<br />
modprobe batman-adv<br />
<br />
# ... und in die /etc/modules eintragen, damit es auch bei einem Neustart vorhanden ist<br />
<br />
grep '^batman-adv' /etc/modules || echo -e '#B.A.T.M.A.N für Freifunk\nbatman-adv' >> /etc/modules<br />
<br />
# zum Schluss legen wir uns noch ein Verzeichnis für die Konfiguration der fastd-Tunnel an.<br />
<br />
mkdir -p /etc/fastd/ffrhb/peers<br />
</pre><br />
<br />
== Konfiguration ==<br />
<br />
=== B.A.T.M.A.N. konfigurieren ===<br />
<br />
Der Befehl ''modprobe batman-adv'' startes B.A.T.M.A.N. gleich nach der Installation. Durch Aufnahme von ''batman-adv'' in die Datei ''/etc/modules'', wird B.A.T.M.A.N. beim Neustart des Rechner geladen. Beides wird bereits mit dem obigen Script erledigt, so dass wir fertig sind.<br />
<br />
=== fastd konfigurieren ===<br />
<br />
Das script ''/etc/init.d/fastd'' startet die Default-Konfiguration in ''/etc/default/fastd'' und alle Konfigurationen in ''/etc/fastd/*/fastd.conf''. Eine Konfiguration in ''/etc/fastd/fastd.conf'' hat daher keien Auswirkung und wird nicht geladen.<br />
<br />
Die folgende Konfigurationsdatei ''fastd.conf'' muss daher in das Verzeichnis ''/etc/fastd/ffrhb/'' kopiert werden.<br />
<br />
<br />
Der ''secret key'' in der Datei dient nur als Beispiel und ist durch einen eigenen Schlüssel zu ersetzen. Ein eigener Schlüssel wird mit ''fastd --generate-key'' erzeugt.<br />
<br />
Die MTU beträgt für Freifunk Rheinland zur Zeit 1364 Byte.<br />
<br />
Das peer limit sollte auf 1 stehen, auch wenn 10 Server definiert sind. Mehrere Tunnel zur gleichen Zeit bieten zur Zeit keine Vorteile und belasten die Server.<br />
<br />
==== Datei /etc/fastd/ffrhb/fastd.conf ====<br />
<br />
<pre><br />
# Log warnings and errors to stderr<br />
log level warn;<br />
<br />
# Log everything to syslog<br />
log to syslog level warn;<br />
<br />
# Set the interface name<br />
interface "mesh-vpn";<br />
<br />
# Support salsa2012+umac and null methods, prefer salsa2012+umac<br />
method "salsa2012+umac";<br />
method "null";<br />
<br />
mode tap;<br />
<br />
# Bind to a fixed port, IPv4 only<br />
bind 0.0.0.0:53757;<br />
<br />
# Please replace the key with your own key.<br />
<br />
# Secret key generated by `fastd --generate-key`<br />
secret "e0e07c1462748f4b0f36423c0ce5c4169e48354a07a3b908435f8ab128259c53";<br />
# Secret: e0e07c1462748f4b0f36423c0ce5c4169e48354a07a3b908435f8ab128259c53<br />
# Public: 72dc4c1aa15cfe4ae5d54caccd8efbd1af8848770843b26a58ed2fb8edb82d50<br />
<br />
secure handshakes yes;<br />
<br />
# Set the interface MTU for TAP mode with xsalsa20/aes128 over IPv4 with a base MTU of 1492 (PPPoE)<br />
# (see MTU selection documentation)<br />
# For Freifunk Rheinland is the MTU 1364<br />
<br />
mtu 1364;<br />
<br />
peer limit 1;<br />
<br />
# Include peers from the directory 'peers'<br />
include peers from "/etc/fastd/ffrhb/peers";<br />
<br />
## IP v6 Adresse muss ggf. nach ip link set up dev bat0 gesetzt werden mit:<br />
## ip addr add dev bat0 fda0:747e:ab29:2241:.../64 scope global<br />
<br />
on up "<br />
/etc/fastd/ffrhb/on-up.sh $INTERFACE<br />
";<br />
</pre><br />
<br />
Die Schnittstelle ''mesh-vpn'' muss B.A.T.M.A.N. als Interface hinzugefügt werden und benötigt eine IPv6 Adresss mit scope global. Dies geschieht mit folgenden Script, dass unter /etc/fastd/ffrhb/on-up.sh gespeichert wird. Die MTU der Netzwerkschnittstelle ''bat0'' muss auf die MTU der Freifunk Community gesetzt werden. Für Rheinbach (Domäne Wupper ist es zur Zeit 1364).<br />
<br />
==== Datei /etc/fastd/ffrhb/on-up.sh ====<br />
<br />
Der Unterschied des folgenden Scriptes zu anderen Erklärungen / Beispielen im Internet ist, dass hier eine globale IPv6 Adresse für das Interface bat0 erzeugt wird und die MTU an die Bedürfnisse der FF-Rheinland angepasst wird. Deshalb erfolgt dies auch in einem eigenen Script und nicht in der fastd.conf. Das Script muss von fastd über ''on up'' aufgerufen werden.<br />
<br />
<pre><br />
#!/bin/bash<br />
<br />
# Execute when fastd is up<br />
# Autor: Thomas Arend<br />
# (c) 2017 by Thomas Arend<br />
# Date: 03.03.2017<br />
<br />
INTERFACE=${1:-mesh-vpn}<br />
<br />
# Start meshing on fastd tunnel<br />
ip link set up dev $INTERFACE || echo Error: Interface $INTERFACE not set up<br />
<br />
# Add tunnel interface to mesh<br />
batctl if add $INTERFACE || echo Error: Interface $INTERFACE not added to batman<br />
<br />
# Set mtu for bat0<br />
# Change 1364 to your value in the site.conf for the FF firmware<br />
<br />
ip link set up dev bat0 mtu 1364 || echo Error when setting MTU to 1364<br />
<br />
# Add ipv6 addr with scope global to bat0<br />
<br />
NIP='fda0:747e:ab29:2241'<br />
GIP=`ip addr show dev bat0 | grep 'inet6 fe80::.* scope link' | sed 's#.*inet6 fe80::##; s# .*$##'`<br />
<br />
ip addr add ${NIP}:${GIP} dev bat0 scope global || echo Error: IPv6 ${NIP}:${GIP} not set<br />
<br />
</pre><br />
<br />
Alternative für das Bestimmen der IP-Adresse:<br />
<br />
IPv6=`grep 'fe80.*bat0$'/proc/net/if_inet6 | sed 's#fe80000000000000#fda0747eab292241#;s# .*##; s#\([0-9a-f]\{4,4\}\)#\1:#g; s#:$##'`<br />
<br />
==== Schlüssel Dateien für die Peers ====<br />
<br />
Jeder [[Peer]] besitzt wie unser Rechner ein Schlüsselpaar, anhand dessen er eindeutig identifiziert wird. Die öffentlichen Schlüssel der müssen Peers kommen in das Unterverzeichnis ''peers''. Die Namen spielen dabei keine Rolle. Wir verwenden folgende Namenskonvention, um die Peer und öffentlichen Schlüssel zu erkennen: ''mesh_vpn_backbone_peer_wupper&lt;n&gt;''. Diese Namen werden auch in der Firmware verwendet, &lt;n&gt; ist dabei die Nummer des Servers (0-9).<br />
<br />
Beispiel für Wupper 0.<br />
<br />
<pre><br />
key "e52daa654abcf5c20c5b7a74b5145f70a7491435c6ef334ae352e4f19c00e8f5";<br />
remote "0.wupper.ffrl.de" port 53757;<br />
</pre><br />
<br />
==== Starten und Aktivieren ====<br />
<br />
Nun muss nur noch ''fastd'' gestartet werden mit:<br />
<br />
service fastd start<br />
<br />
Um ''fastd'' mit jedem Neustart automatisch zu starten, muss der folgende Befehl ausgeführt werden:<br />
<br />
systemctl enable fastd<br />
<br />
=== Test der Konfiguration ===<br />
<br />
Ob alles richtig läuft, zeigen ''ifconfig'', ''systemctl status fastd'' und ''batctl if'' bzw. ''batctl tg''<br />
<br />
<pre><br />
root@medion:~# ifconfig bat0<br />
bat0 Link encap:Ethernet Hardware Adresse 32:e7:53:24:17:5f <br />
inet6-Adresse: fda0:747e:ab29:2241:30e7:53ff:fe24:175f/64 Gültigkeitsbereich:Global<br />
inet6-Adresse: fe80::30e7:53ff:fe24:175f/64 Gültigkeitsbereich:Verbindung<br />
UP BROADCAST RUNNING MULTICAST MTU:1364 Metrik:1<br />
RX packets:61804 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:28 errors:0 dropped:24 overruns:0 carrier:0<br />
Kollisionen:0 Sendewarteschlangenlänge:0 <br />
RX bytes:3708888 (3.5 MiB) TX bytes:3529 (3.4 KiB)<br />
<br />
mesh-vpn Link encap:Ethernet Hardware Adresse aa:53:8d:76:e2:fa <br />
inet6-Adresse: fe80::a853:8dff:fe76:e2fa/64 Gültigkeitsbereich:Verbindung<br />
UP BROADCAST RUNNING MULTICAST MTU:1364 Metrik:1<br />
RX packets:66901 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:23753 errors:0 dropped:0 overruns:0 carrier:0<br />
Kollisionen:0 Sendewarteschlangenlänge:500 <br />
RX bytes:9241074 (8.8 MiB) TX bytes:5150504 (4.9 MiB)<br />
<br />
root@medion:~# systemctl -l status fastd<br />
● fastd.service - LSB: Fast and Secure Tunneling Daemon<br />
Loaded: loaded (/etc/init.d/fastd)<br />
Active: active (running) since Fr 2017-03-03 16:54:08 CET; 26min ago<br />
Process: 2686 ExecStop=/etc/init.d/fastd stop (code=exited, status=0/SUCCESS)<br />
Process: 2697 ExecStart=/etc/init.d/fastd start (code=exited, status=0/SUCCESS)<br />
CGroup: /system.slice/fastd.service<br />
└─2710 /usr/bin/fastd --syslog-level info --config /etc/fastd/ffrhb/fastd.conf<br />
<br />
Mär 03 16:54:08 medion fastd[2697]: Starting Fast and Secure Tunneling Daemon... Autostarting fastd 'ffrhb':.<br />
Mär 03 16:54:08 medion systemd[1]: Started LSB: Fast and Secure Tunneling Daemon.<br />
<br />
root@x2:/etc/fastd/ffrhb/peers# batctl if<br />
mesh-vpn: active<br />
<br />
root@medion:~# batctl tl<br />
[B.A.T.M.A.N. adv 2016.5, MainIF/MAC: mesh-vpn/aa:53:8d:76:e2:fa (bat0/32:e7:53:24:17:5f BATMAN_IV), TTVN: 3]<br />
Client VID Flags Last seen (CRC )<br />
33:33:ff:24:17:5f -1 [.P....] 0.000 (0x2453b430)<br />
33:33:00:00:00:fb -1 [.P....] 0.000 (0x2453b430)<br />
01:00:5e:00:00:01 -1 [.P....] 0.000 (0x2453b430)<br />
32:e7:53:24:17:5f -1 [.P....] 0.000 (0x2453b430)<br />
33:33:00:00:00:01 -1 [.P....] 0.000 (0x2453b430)<br />
</pre><br />
<br />
== Hinweise und Warnungen ==<br />
<br />
Fastd baut den Tunnel über eine beliebige Netzwerkverbindung auf. D.h. der Rechner kann in einem WLAN - privat oder öffentlich - betrieben werden. Dies kann auch ein Freifunk-Netz sein.<br />
<br />
Ist der Rechner in einem Freifunk-Netz, dann baut er einen fastd-Tunnel im fastd-Tunnel des Nodes auf, der die Verbindung zum Internet herstellt. Dies ist nicht sinnvoll und kann Effekte haben, die ich derzeit nicht überblicke und die nicht wünschenswert sind. Ein Effekt wird das Splitten von großen IP-Paketen sein.<br />
<br />
== Ergebnis und Siegerehrung ==<br />
<br />
Über unseren fastd-Tunnel können wir auf die Nodes und die Clients des Freifunknetzes über IPv6 zugreifen.</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=B.A.T.M.A.N.&diff=232B.A.T.M.A.N.2018-02-03T19:24:15Z<p>Thomas: /* B.A.T.M.A.N. und fastd installieren */</p>
<hr />
<div>B.A.T.M.A.N. (Abkürzung für '''B'''etter '''A'''pproach '''T'''o '''M'''obile '''A'''dhoc '''N'''etworking) ist ein Routing-Protokoll für mobile Ad-hoc-Netze. Siehe [https://de.wikipedia.org/wiki/B.A.T.M.A.N. WikiPedia]. Im Freifunk wird unter anderem B.A.T.M.A.N. als Routing-Protokoll eingesetzt.<br />
<br />
== Abstrakt ==<br />
<br />
In diesem Artikel wird beschrieben, wie B.A.T.M.A.N. zusammen mit [[fastd]] auf einem Rechner mit Debian eingerichtet wird und der Rechner direkt an das Netz des Freifunk Rheinland, Domäne Wupper, angebunden wird. Als Beispiel dient die Konfiguration der Freifunk Rheinbach Community. <br />
<br />
Die Verbindung der [[Node | Nodes]] (Router) zu den Servern im Internet erfolgt über einen verschlüsselten Tunnel. Bei Freifunk Rheinbach wird für die Tunnel ''fastd'' verwendet. Nodes, die in WLAN Reichweite zueinander stehen, verbinden sich untereinander über ein MESH-Netzwerk. Auch über Kabel (LAN oder WAN-Port) können sich Nodes vermaschen. Auf all diesen Verbindungen wird das Routing-Protokoll B.A.T.M.A.N. verwendet.<br />
<br />
== Hinweis ==<br />
<br />
Ich verwende als Shell die [[bash]]. Standard ist bei Debian 8.7.1 [[dash]]. Die Befehle in den Scripten sind so einfach, dass sie in beiden Shells funktionieren sollten<br />
<br />
== Installation der Software ==<br />
<br />
=== B.A.T.M.A.N. und fastd installieren ===<br />
<br />
Die folgenden Befehle und Scripte wurden unter '''Debian 8.7.1''' entwickelt und getestet.<br />
<br />
Das folgende Script installiert auf einem Debian 8 die notwendige Software - einschließlich fastd. Je nach System kann es notwendig sein zusätzliche Pakete zu installieren. Das folgende Script wurde auf zwei relativ frischen, jungfräulichen Debian 8.7.1 getestet.<br />
<br />
Achtung: Die Router verwenden B.A.T.M.A.N. 2017.2 (Stand: 03.02.2018, Gluon v2017.1.4); Aktuell ist 2017.4. Im Debian sind meist ältere Versionen. Deshalb empfiehlt sich eine Installation aus den Quellen<br />
<br />
Vor der Installation mit dem nachfolgenden Script müssen die passenden linunx-header- Dateien für den Kernel installiert sein / werden. Dies geht zum Beispiel mit mit ''apt-get install linux-headers-4.9.0-5-all-amd64''. <br />
<br />
Der Befehl ist zwar im Script, aber nicht getestet.<br />
<br />
<br />
<pre><br />
#!/bin/bash<br />
<br />
# Installation B.A.T.M.A.N.<br />
# Version festlegen<br />
<br />
VBAT="2017.2"<br />
<br />
# Installation der linux-headers für den Kernel.<br />
<br />
apt install linux-headers-$(uname -r | sed 's#-amd64#-all-amd64#')<br />
<br />
<br />
# Wir brauchen ein paar Repos, die nicht im Default einhalten sind.<br />
<br />
grep 'http://repo.universe-factory.net/debian/' /etc/apt/sources.list || echo 'deb http://repo.universe-factory.net/debian/ sid main' >> /etc/apt/sources.list<br />
<br />
# Und den Schlüssel für das Paket. Aktuell: 16EF3F64CB201D9C<br />
<br />
KEY=16EF3F64CB201D9C<br />
gpg --keyserver pgpkeys.mit.edu --recv-key $KEY<br />
gpg -a --export $KEY | apt-key add -<br />
<br />
# Nun die Software, die wahrscheinlich fehlt, inklusive fastd<br />
<br />
apt install apt-transport-https<br />
apt update<br />
apt install build-essential bridge-utils pkg-config libnl-3-dev libnl-genl-3-dev linux-headers-amd64 fastd<br />
<br />
# Jetzt wird B.A.T.M.A.N. batctl aus den Quellen geladen und installiert<br />
<br />
cd /usr/src/<br />
wget http://downloads.open-mesh.org/batman/stable/sources/batctl/batctl-${VBAT}.tar.gz<br />
tar xzf batctl-${VBAT}.tar.gz<br />
cd batctl-${VBAT}<br />
make<br />
make install<br />
<br />
<br />
# Jetzt wird B.A.T.M.A.N. batman-adv aus den Quellen geladen und installiert<br />
<br />
cd /usr/src/<br />
wget http://downloads.open-mesh.org/batman/stable/sources/batman-adv/batman-adv-${VBAT}.tar.gz<br />
tar xzf batman-adv-${VBAT}.tar.gz<br />
cd batman-adv-${VBAT}<br />
make<br />
make install<br />
<br />
# Wir können batman-adv gleich starten<br />
<br />
modprobe batman-adv<br />
<br />
# ... und in die /etc/modules eintragen, damit es auch bei einem Neustart vorhanden ist<br />
<br />
grep '^batman-adv' /etc/modules || echo -e '#B.A.T.M.A.N für Freifunk\nbatman-adv' >> /etc/modules<br />
<br />
# zum Schluss legen wir uns noch ein Verzeichnis für die Konfiguration der fastd-Tunnel an.<br />
<br />
mkdir -p /etc/fastd/ffrhb/peers<br />
</pre><br />
<br />
== Konfiguration ==<br />
<br />
=== B.A.T.M.A.N. konfigurieren ===<br />
<br />
Der Befehl ''modprobe batman-adv'' startes B.A.T.M.A.N. gleich nach der Installation. Durch Aufnahme von ''batman-adv'' in die Datei ''/etc/modules'', wird B.A.T.M.A.N. beim Neustart des Rechner geladen. Beides wird bereits mit dem obigen Script erledigt, so dass wir fertig sind.<br />
<br />
=== fastd konfigurieren ===<br />
<br />
Die folgende Konfigurationsdatei fastd.conf muss in das Verzeichnis /etc/fastd/ffrhb/ kopiert werden.<br />
<br />
<br />
Der ''secret key'' in der Datei dient nur als Beispiel und ist durch einen eigenen Schlüssel zu ersetzen. Ein eigener Schlüssel wir mit ''fastd --generate-key'' erzeugt.<br />
<br />
Die MTU beträgt für Freifunk Rheinland zur Zeit 1364 Byte.<br />
<br />
Das peer limit sollte auf 1 stehen, auch wenn 10 Server definiert sind. Mehrere Tunnel zur gleichen Zeit bieten zur Zeit keine Vorteile und belasten die Server.<br />
<br />
==== Datei /etc/fastd/ffrhb/fastd.conf ====<br />
<br />
<pre><br />
# Log warnings and errors to stderr<br />
log level warn;<br />
<br />
# Log everything to syslog<br />
log to syslog level warn;<br />
<br />
# Set the interface name<br />
interface "mesh-vpn";<br />
<br />
# Support salsa2012+umac and null methods, prefer salsa2012+umac<br />
method "salsa2012+umac";<br />
method "null";<br />
<br />
mode tap;<br />
<br />
# Bind to a fixed port, IPv4 only<br />
bind 0.0.0.0:53757;<br />
<br />
# Please replace the key with your own key.<br />
<br />
# Secret key generated by `fastd --generate-key`<br />
secret "e0e07c1462748f4b0f36423c0ce5c4169e48354a07a3b908435f8ab128259c53";<br />
# Secret: e0e07c1462748f4b0f36423c0ce5c4169e48354a07a3b908435f8ab128259c53<br />
# Public: 72dc4c1aa15cfe4ae5d54caccd8efbd1af8848770843b26a58ed2fb8edb82d50<br />
<br />
secure handshakes yes;<br />
<br />
# Set the interface MTU for TAP mode with xsalsa20/aes128 over IPv4 with a base MTU of 1492 (PPPoE)<br />
# (see MTU selection documentation)<br />
# For Freifunk Rheinland is the MTU 1364<br />
<br />
mtu 1364;<br />
<br />
peer limit 1;<br />
<br />
# Include peers from the directory 'peers'<br />
include peers from "/etc/fastd/ffrhb/peers";<br />
<br />
## IP v6 Adresse muss ggf. nach ip link set up dev bat0 gesetzt werden mit:<br />
## ip addr add dev bat0 fda0:747e:ab29:2241:.../64 scope global<br />
<br />
on up "<br />
/etc/fastd/ffrhb/on-up.sh $INTERFACE<br />
";<br />
</pre><br />
<br />
Die Schnittstelle ''mesh-vpn'' muss B.A.T.M.A.N. als Interface hinzugefügt werden und benötigt eine IPv6 Adresss mit scope global. Dies geschieht mit folgenden Script, dass unter /etc/fastd/ffrhb/on-up.sh gespeichert wird. Die MTU der Netzwerkschnittstelle ''bat0'' muss auf die MTU der Freifunk Community gesetzt werden. Für Rheinbach (Domäne Wupper ist es zur Zeit 1364).<br />
<br />
==== Datei /etc/fastd/ffrhb/on-up.sh ====<br />
<br />
Der Unterschied des folgenden Scriptes zu anderen Erklärungen / Beispielen im Internet ist, dass hier eine globale IPv6 Adresse für das Interface bat0 erzeugt wird und die MTU an die Bedürfnisse der FF-Rheinland angepasst wird. Deshalb erfolgt dies auch in einem eigenen Script und nicht in der fastd.conf. Das Script muss von fastd über ''on up'' aufgerufen werden.<br />
<br />
<pre><br />
#!/bin/bash<br />
<br />
# Execute when fastd is up<br />
# Autor: Thomas Arend<br />
# (c) 2017 by Thomas Arend<br />
# Date: 03.03.2017<br />
<br />
INTERFACE=${1:-mesh-vpn}<br />
<br />
# Start meshing on fastd tunnel<br />
ip link set up dev $INTERFACE || echo Error: Interface $INTERFACE not set up<br />
<br />
# Add tunnel interface to mesh<br />
batctl if add $INTERFACE || echo Error: Interface $INTERFACE not added to batman<br />
<br />
# Set mtu for bat0<br />
# Change 1364 to your value in the site.conf for the FF firmware<br />
<br />
ip link set up dev bat0 mtu 1364 || echo Error when setting MTU to 1364<br />
<br />
# Add ipv6 addr with scope global to bat0<br />
<br />
NIP='fda0:747e:ab29:2241'<br />
GIP=`ip addr show dev bat0 | grep 'inet6 fe80::.* scope link' | sed 's#.*inet6 fe80::##; s# .*$##'`<br />
<br />
ip addr add ${NIP}:${GIP} dev bat0 scope global || echo Error: IPv6 ${NIP}:${GIP} not set<br />
<br />
</pre><br />
<br />
Alternative für das Bestimmen der IP-Adresse:<br />
<br />
IPv6=`grep 'fe80.*bat0$'/proc/net/if_inet6 | sed 's#fe80000000000000#fda0747eab292241#;s# .*##; s#\([0-9a-f]\{4,4\}\)#\1:#g; s#:$##'`<br />
<br />
==== Schlüssel Dateien für die Peers ====<br />
<br />
Jeder [[Peer]] besitzt wie unser Rechner ein Schlüsselpaar, anhand dessen er eindeutig identifiziert wird. Die öffentlichen Schlüssel der müssen Peers kommen in das Unterverzeichnis ''peers''. Die Namen spielen dabei keine Rolle. Wir verwenden folgende Namenskonvention, um die Peer und öffentlichen Schlüssel zu erkennen: ''mesh_vpn_backbone_peer_wupper&lt;n&gt;''. Diese Namen werden auch in der Firmware verwendet, &lt;n&gt; ist dabei die Nummer des Servers (0-9).<br />
<br />
Beispiel für Wupper 0.<br />
<br />
<pre><br />
key "e52daa654abcf5c20c5b7a74b5145f70a7491435c6ef334ae352e4f19c00e8f5";<br />
remote "0.wupper.ffrl.de" port 53757;<br />
</pre><br />
<br />
==== Starten und Aktivieren ====<br />
<br />
Nun muss nur noch ''fastd'' gestartet werden mit:<br />
<br />
service fastd start<br />
<br />
Um ''fastd'' mit jedem Neustart automatisch zu starten, muss der folgende Befehl ausgeführt werden:<br />
<br />
systemctl enable fastd<br />
<br />
=== Test der Konfiguration ===<br />
<br />
Ob alles richtig läuft, zeigen ''ifconfig'', ''systemctl status fastd'' und ''batctl if'' bzw. ''batctl tg''<br />
<br />
<pre><br />
root@medion:~# ifconfig bat0<br />
bat0 Link encap:Ethernet Hardware Adresse 32:e7:53:24:17:5f <br />
inet6-Adresse: fda0:747e:ab29:2241:30e7:53ff:fe24:175f/64 Gültigkeitsbereich:Global<br />
inet6-Adresse: fe80::30e7:53ff:fe24:175f/64 Gültigkeitsbereich:Verbindung<br />
UP BROADCAST RUNNING MULTICAST MTU:1364 Metrik:1<br />
RX packets:61804 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:28 errors:0 dropped:24 overruns:0 carrier:0<br />
Kollisionen:0 Sendewarteschlangenlänge:0 <br />
RX bytes:3708888 (3.5 MiB) TX bytes:3529 (3.4 KiB)<br />
<br />
mesh-vpn Link encap:Ethernet Hardware Adresse aa:53:8d:76:e2:fa <br />
inet6-Adresse: fe80::a853:8dff:fe76:e2fa/64 Gültigkeitsbereich:Verbindung<br />
UP BROADCAST RUNNING MULTICAST MTU:1364 Metrik:1<br />
RX packets:66901 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:23753 errors:0 dropped:0 overruns:0 carrier:0<br />
Kollisionen:0 Sendewarteschlangenlänge:500 <br />
RX bytes:9241074 (8.8 MiB) TX bytes:5150504 (4.9 MiB)<br />
<br />
root@medion:~# systemctl -l status fastd<br />
● fastd.service - LSB: Fast and Secure Tunneling Daemon<br />
Loaded: loaded (/etc/init.d/fastd)<br />
Active: active (running) since Fr 2017-03-03 16:54:08 CET; 26min ago<br />
Process: 2686 ExecStop=/etc/init.d/fastd stop (code=exited, status=0/SUCCESS)<br />
Process: 2697 ExecStart=/etc/init.d/fastd start (code=exited, status=0/SUCCESS)<br />
CGroup: /system.slice/fastd.service<br />
└─2710 /usr/bin/fastd --syslog-level info --config /etc/fastd/ffrhb/fastd.conf<br />
<br />
Mär 03 16:54:08 medion fastd[2697]: Starting Fast and Secure Tunneling Daemon... Autostarting fastd 'ffrhb':.<br />
Mär 03 16:54:08 medion systemd[1]: Started LSB: Fast and Secure Tunneling Daemon.<br />
<br />
root@x2:/etc/fastd/ffrhb/peers# batctl if<br />
mesh-vpn: active<br />
<br />
root@medion:~# batctl tl<br />
[B.A.T.M.A.N. adv 2016.5, MainIF/MAC: mesh-vpn/aa:53:8d:76:e2:fa (bat0/32:e7:53:24:17:5f BATMAN_IV), TTVN: 3]<br />
Client VID Flags Last seen (CRC )<br />
33:33:ff:24:17:5f -1 [.P....] 0.000 (0x2453b430)<br />
33:33:00:00:00:fb -1 [.P....] 0.000 (0x2453b430)<br />
01:00:5e:00:00:01 -1 [.P....] 0.000 (0x2453b430)<br />
32:e7:53:24:17:5f -1 [.P....] 0.000 (0x2453b430)<br />
33:33:00:00:00:01 -1 [.P....] 0.000 (0x2453b430)<br />
</pre><br />
<br />
== Hinweise und Warnungen ==<br />
<br />
Fastd baut den Tunnel über eine beliebige Netzwerkverbindung auf. D.h. der Rechner kann in einem WLAN - privat oder öffentlich - betrieben werden. Dies kann auch ein Freifunk-Netz sein.<br />
<br />
Ist der Rechner in einem Freifunk-Netz, dann baut er einen fastd-Tunnel im fastd-Tunnel des Nodes auf, der die Verbindung zum Internet herstellt. Dies ist nicht sinnvoll und kann Effekte haben, die ich derzeit nicht überblicke und die nicht wünschenswert sind. Ein Effekt wird das Splitten von großen IP-Paketen sein.<br />
<br />
== Ergebnis und Siegerehrung ==<br />
<br />
Über unseren fastd-Tunnel können wir auf die Nodes und die Clients des Freifunknetzes über IPv6 zugreifen.</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=B.A.T.M.A.N.&diff=231B.A.T.M.A.N.2018-02-03T19:18:59Z<p>Thomas: /* B.A.T.M.A.N. und fastd installieren */</p>
<hr />
<div>B.A.T.M.A.N. (Abkürzung für '''B'''etter '''A'''pproach '''T'''o '''M'''obile '''A'''dhoc '''N'''etworking) ist ein Routing-Protokoll für mobile Ad-hoc-Netze. Siehe [https://de.wikipedia.org/wiki/B.A.T.M.A.N. WikiPedia]. Im Freifunk wird unter anderem B.A.T.M.A.N. als Routing-Protokoll eingesetzt.<br />
<br />
== Abstrakt ==<br />
<br />
In diesem Artikel wird beschrieben, wie B.A.T.M.A.N. zusammen mit [[fastd]] auf einem Rechner mit Debian eingerichtet wird und der Rechner direkt an das Netz des Freifunk Rheinland, Domäne Wupper, angebunden wird. Als Beispiel dient die Konfiguration der Freifunk Rheinbach Community. <br />
<br />
Die Verbindung der [[Node | Nodes]] (Router) zu den Servern im Internet erfolgt über einen verschlüsselten Tunnel. Bei Freifunk Rheinbach wird für die Tunnel ''fastd'' verwendet. Nodes, die in WLAN Reichweite zueinander stehen, verbinden sich untereinander über ein MESH-Netzwerk. Auch über Kabel (LAN oder WAN-Port) können sich Nodes vermaschen. Auf all diesen Verbindungen wird das Routing-Protokoll B.A.T.M.A.N. verwendet.<br />
<br />
== Hinweis ==<br />
<br />
Ich verwende als Shell die [[bash]]. Standard ist bei Debian 8.7.1 [[dash]]. Die Befehle in den Scripten sind so einfach, dass sie in beiden Shells funktionieren sollten<br />
<br />
== Installation der Software ==<br />
<br />
=== B.A.T.M.A.N. und fastd installieren ===<br />
<br />
Die folgenden Befehle und Scripte wurden unter '''Debian 8.7.1''' entwickelt und getestet.<br />
<br />
Das folgende Script installiert auf einem Debian 8 die notwendige Software - einschließlich fastd. Je nach System kann es notwendig sein zusätzliche Pakete zu installieren. Das folgende Script wurde auf zwei relativ frischen, jungfräulichen Debian 8.7.1 getestet.<br />
<br />
Achtung: Die Router verwenden B.A.T.M.A.N. 2017.2 (Stand: 03.02.2018)<br />
<br />
Vor der Installation mit dem nachfolgenden Script müssen die passendenr linunx-header Dateien für den Kernel installiert sein / werden. Zum Beispiel mit ''apt-get install linux-headers-4.9.0-5-all-amd64''. <br />
<br />
<br />
<pre><br />
#!/bin/bash<br />
<br />
# Installation B.A.T.M.A.N.<br />
# Version festlegen<br />
<br />
VBAT="2017.2"<br />
<br />
# Installation der linux-headers für den Kernel.<br />
<br />
apt install linux-headers-$(uname -r | sed 's#-amd64#-all-amd64#')<br />
<br />
<br />
# Wir brauchen ein paar Repos, die nicht im Default einhalten sind.<br />
<br />
grep 'http://repo.universe-factory.net/debian/' /etc/apt/sources.list || echo 'deb http://repo.universe-factory.net/debian/ sid main' >> /etc/apt/sources.list<br />
<br />
# Und den Schlüssel für das Paket. Aktuell: 16EF3F64CB201D9C<br />
<br />
KEY=16EF3F64CB201D9C<br />
gpg --keyserver pgpkeys.mit.edu --recv-key $KEY<br />
gpg -a --export $KEY | apt-key add -<br />
<br />
# Nun die Software, die wahrscheinlich fehlt, inklusive fastd<br />
<br />
apt install apt-transport-https<br />
apt update<br />
apt install build-essential bridge-utils pkg-config libnl-3-dev libnl-genl-3-dev linux-headers-amd64 fastd<br />
<br />
# Jetzt wird B.A.T.M.A.N. batctl aus den Quellen geladen und installiert<br />
<br />
cd /usr/src/<br />
wget http://downloads.open-mesh.org/batman/stable/sources/batctl/batctl-${VBAT}.tar.gz<br />
tar xzf batctl-${VBAT}.tar.gz<br />
cd batctl-${VBAT}<br />
make<br />
make install<br />
<br />
<br />
# Jetzt wird B.A.T.M.A.N. batman-adv aus den Quellen geladen und installiert<br />
<br />
cd /usr/src/<br />
wget http://downloads.open-mesh.org/batman/stable/sources/batman-adv/batman-adv-${VBAT}.tar.gz<br />
tar xzf batman-adv-${VBAT}.tar.gz<br />
cd batman-adv-${VBAT}<br />
make<br />
make install<br />
<br />
# Wir können batman-adv gleich starten<br />
<br />
modprobe batman-adv<br />
<br />
# ... und in die /etc/modules eintragen, damit es auch bei einem Neustart vorhanden ist<br />
<br />
grep '^batman-adv' /etc/modules || echo -e '#B.A.T.M.A.N für Freifunk\nbatman-adv' >> /etc/modules<br />
<br />
# zum Schluss legen wir uns noch ein Verzeichnis für die Konfiguration der fastd-Tunnel an.<br />
<br />
mkdir -p /etc/fastd/ffrhb/peers<br />
</pre><br />
<br />
== Konfiguration ==<br />
<br />
=== B.A.T.M.A.N. konfigurieren ===<br />
<br />
Der Befehl ''modprobe batman-adv'' startes B.A.T.M.A.N. gleich nach der Installation. Durch Aufnahme von ''batman-adv'' in die Datei ''/etc/modules'', wird B.A.T.M.A.N. beim Neustart des Rechner geladen. Beides wird bereits mit dem obigen Script erledigt, so dass wir fertig sind.<br />
<br />
=== fastd konfigurieren ===<br />
<br />
Die folgende Konfigurationsdatei fastd.conf muss in das Verzeichnis /etc/fastd/ffrhb/ kopiert werden.<br />
<br />
<br />
Der ''secret key'' in der Datei dient nur als Beispiel und ist durch einen eigenen Schlüssel zu ersetzen. Ein eigener Schlüssel wir mit ''fastd --generate-key'' erzeugt.<br />
<br />
Die MTU beträgt für Freifunk Rheinland zur Zeit 1364 Byte.<br />
<br />
Das peer limit sollte auf 1 stehen, auch wenn 10 Server definiert sind. Mehrere Tunnel zur gleichen Zeit bieten zur Zeit keine Vorteile und belasten die Server.<br />
<br />
==== Datei /etc/fastd/ffrhb/fastd.conf ====<br />
<br />
<pre><br />
# Log warnings and errors to stderr<br />
log level warn;<br />
<br />
# Log everything to syslog<br />
log to syslog level warn;<br />
<br />
# Set the interface name<br />
interface "mesh-vpn";<br />
<br />
# Support salsa2012+umac and null methods, prefer salsa2012+umac<br />
method "salsa2012+umac";<br />
method "null";<br />
<br />
mode tap;<br />
<br />
# Bind to a fixed port, IPv4 only<br />
bind 0.0.0.0:53757;<br />
<br />
# Please replace the key with your own key.<br />
<br />
# Secret key generated by `fastd --generate-key`<br />
secret "e0e07c1462748f4b0f36423c0ce5c4169e48354a07a3b908435f8ab128259c53";<br />
# Secret: e0e07c1462748f4b0f36423c0ce5c4169e48354a07a3b908435f8ab128259c53<br />
# Public: 72dc4c1aa15cfe4ae5d54caccd8efbd1af8848770843b26a58ed2fb8edb82d50<br />
<br />
secure handshakes yes;<br />
<br />
# Set the interface MTU for TAP mode with xsalsa20/aes128 over IPv4 with a base MTU of 1492 (PPPoE)<br />
# (see MTU selection documentation)<br />
# For Freifunk Rheinland is the MTU 1364<br />
<br />
mtu 1364;<br />
<br />
peer limit 1;<br />
<br />
# Include peers from the directory 'peers'<br />
include peers from "/etc/fastd/ffrhb/peers";<br />
<br />
## IP v6 Adresse muss ggf. nach ip link set up dev bat0 gesetzt werden mit:<br />
## ip addr add dev bat0 fda0:747e:ab29:2241:.../64 scope global<br />
<br />
on up "<br />
/etc/fastd/ffrhb/on-up.sh $INTERFACE<br />
";<br />
</pre><br />
<br />
Die Schnittstelle ''mesh-vpn'' muss B.A.T.M.A.N. als Interface hinzugefügt werden und benötigt eine IPv6 Adresss mit scope global. Dies geschieht mit folgenden Script, dass unter /etc/fastd/ffrhb/on-up.sh gespeichert wird. Die MTU der Netzwerkschnittstelle ''bat0'' muss auf die MTU der Freifunk Community gesetzt werden. Für Rheinbach (Domäne Wupper ist es zur Zeit 1364).<br />
<br />
==== Datei /etc/fastd/ffrhb/on-up.sh ====<br />
<br />
Der Unterschied des folgenden Scriptes zu anderen Erklärungen / Beispielen im Internet ist, dass hier eine globale IPv6 Adresse für das Interface bat0 erzeugt wird und die MTU an die Bedürfnisse der FF-Rheinland angepasst wird. Deshalb erfolgt dies auch in einem eigenen Script und nicht in der fastd.conf. Das Script muss von fastd über ''on up'' aufgerufen werden.<br />
<br />
<pre><br />
#!/bin/bash<br />
<br />
# Execute when fastd is up<br />
# Autor: Thomas Arend<br />
# (c) 2017 by Thomas Arend<br />
# Date: 03.03.2017<br />
<br />
INTERFACE=${1:-mesh-vpn}<br />
<br />
# Start meshing on fastd tunnel<br />
ip link set up dev $INTERFACE || echo Error: Interface $INTERFACE not set up<br />
<br />
# Add tunnel interface to mesh<br />
batctl if add $INTERFACE || echo Error: Interface $INTERFACE not added to batman<br />
<br />
# Set mtu for bat0<br />
# Change 1364 to your value in the site.conf for the FF firmware<br />
<br />
ip link set up dev bat0 mtu 1364 || echo Error when setting MTU to 1364<br />
<br />
# Add ipv6 addr with scope global to bat0<br />
<br />
NIP='fda0:747e:ab29:2241'<br />
GIP=`ip addr show dev bat0 | grep 'inet6 fe80::.* scope link' | sed 's#.*inet6 fe80::##; s# .*$##'`<br />
<br />
ip addr add ${NIP}:${GIP} dev bat0 scope global || echo Error: IPv6 ${NIP}:${GIP} not set<br />
<br />
</pre><br />
<br />
Alternative für das Bestimmen der IP-Adresse:<br />
<br />
IPv6=`grep 'fe80.*bat0$'/proc/net/if_inet6 | sed 's#fe80000000000000#fda0747eab292241#;s# .*##; s#\([0-9a-f]\{4,4\}\)#\1:#g; s#:$##'`<br />
<br />
==== Schlüssel Dateien für die Peers ====<br />
<br />
Jeder [[Peer]] besitzt wie unser Rechner ein Schlüsselpaar, anhand dessen er eindeutig identifiziert wird. Die öffentlichen Schlüssel der müssen Peers kommen in das Unterverzeichnis ''peers''. Die Namen spielen dabei keine Rolle. Wir verwenden folgende Namenskonvention, um die Peer und öffentlichen Schlüssel zu erkennen: ''mesh_vpn_backbone_peer_wupper&lt;n&gt;''. Diese Namen werden auch in der Firmware verwendet, &lt;n&gt; ist dabei die Nummer des Servers (0-9).<br />
<br />
Beispiel für Wupper 0.<br />
<br />
<pre><br />
key "e52daa654abcf5c20c5b7a74b5145f70a7491435c6ef334ae352e4f19c00e8f5";<br />
remote "0.wupper.ffrl.de" port 53757;<br />
</pre><br />
<br />
==== Starten und Aktivieren ====<br />
<br />
Nun muss nur noch ''fastd'' gestartet werden mit:<br />
<br />
service fastd start<br />
<br />
Um ''fastd'' mit jedem Neustart automatisch zu starten, muss der folgende Befehl ausgeführt werden:<br />
<br />
systemctl enable fastd<br />
<br />
=== Test der Konfiguration ===<br />
<br />
Ob alles richtig läuft, zeigen ''ifconfig'', ''systemctl status fastd'' und ''batctl if'' bzw. ''batctl tg''<br />
<br />
<pre><br />
root@medion:~# ifconfig bat0<br />
bat0 Link encap:Ethernet Hardware Adresse 32:e7:53:24:17:5f <br />
inet6-Adresse: fda0:747e:ab29:2241:30e7:53ff:fe24:175f/64 Gültigkeitsbereich:Global<br />
inet6-Adresse: fe80::30e7:53ff:fe24:175f/64 Gültigkeitsbereich:Verbindung<br />
UP BROADCAST RUNNING MULTICAST MTU:1364 Metrik:1<br />
RX packets:61804 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:28 errors:0 dropped:24 overruns:0 carrier:0<br />
Kollisionen:0 Sendewarteschlangenlänge:0 <br />
RX bytes:3708888 (3.5 MiB) TX bytes:3529 (3.4 KiB)<br />
<br />
mesh-vpn Link encap:Ethernet Hardware Adresse aa:53:8d:76:e2:fa <br />
inet6-Adresse: fe80::a853:8dff:fe76:e2fa/64 Gültigkeitsbereich:Verbindung<br />
UP BROADCAST RUNNING MULTICAST MTU:1364 Metrik:1<br />
RX packets:66901 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:23753 errors:0 dropped:0 overruns:0 carrier:0<br />
Kollisionen:0 Sendewarteschlangenlänge:500 <br />
RX bytes:9241074 (8.8 MiB) TX bytes:5150504 (4.9 MiB)<br />
<br />
root@medion:~# systemctl -l status fastd<br />
● fastd.service - LSB: Fast and Secure Tunneling Daemon<br />
Loaded: loaded (/etc/init.d/fastd)<br />
Active: active (running) since Fr 2017-03-03 16:54:08 CET; 26min ago<br />
Process: 2686 ExecStop=/etc/init.d/fastd stop (code=exited, status=0/SUCCESS)<br />
Process: 2697 ExecStart=/etc/init.d/fastd start (code=exited, status=0/SUCCESS)<br />
CGroup: /system.slice/fastd.service<br />
└─2710 /usr/bin/fastd --syslog-level info --config /etc/fastd/ffrhb/fastd.conf<br />
<br />
Mär 03 16:54:08 medion fastd[2697]: Starting Fast and Secure Tunneling Daemon... Autostarting fastd 'ffrhb':.<br />
Mär 03 16:54:08 medion systemd[1]: Started LSB: Fast and Secure Tunneling Daemon.<br />
<br />
root@x2:/etc/fastd/ffrhb/peers# batctl if<br />
mesh-vpn: active<br />
<br />
root@medion:~# batctl tl<br />
[B.A.T.M.A.N. adv 2016.5, MainIF/MAC: mesh-vpn/aa:53:8d:76:e2:fa (bat0/32:e7:53:24:17:5f BATMAN_IV), TTVN: 3]<br />
Client VID Flags Last seen (CRC )<br />
33:33:ff:24:17:5f -1 [.P....] 0.000 (0x2453b430)<br />
33:33:00:00:00:fb -1 [.P....] 0.000 (0x2453b430)<br />
01:00:5e:00:00:01 -1 [.P....] 0.000 (0x2453b430)<br />
32:e7:53:24:17:5f -1 [.P....] 0.000 (0x2453b430)<br />
33:33:00:00:00:01 -1 [.P....] 0.000 (0x2453b430)<br />
</pre><br />
<br />
== Hinweise und Warnungen ==<br />
<br />
Fastd baut den Tunnel über eine beliebige Netzwerkverbindung auf. D.h. der Rechner kann in einem WLAN - privat oder öffentlich - betrieben werden. Dies kann auch ein Freifunk-Netz sein.<br />
<br />
Ist der Rechner in einem Freifunk-Netz, dann baut er einen fastd-Tunnel im fastd-Tunnel des Nodes auf, der die Verbindung zum Internet herstellt. Dies ist nicht sinnvoll und kann Effekte haben, die ich derzeit nicht überblicke und die nicht wünschenswert sind. Ein Effekt wird das Splitten von großen IP-Paketen sein.<br />
<br />
== Ergebnis und Siegerehrung ==<br />
<br />
Über unseren fastd-Tunnel können wir auf die Nodes und die Clients des Freifunknetzes über IPv6 zugreifen.</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=B.A.T.M.A.N.&diff=230B.A.T.M.A.N.2018-02-03T18:16:48Z<p>Thomas: /* B.A.T.M.A.N. und fastd installieren */</p>
<hr />
<div>B.A.T.M.A.N. (Abkürzung für '''B'''etter '''A'''pproach '''T'''o '''M'''obile '''A'''dhoc '''N'''etworking) ist ein Routing-Protokoll für mobile Ad-hoc-Netze. Siehe [https://de.wikipedia.org/wiki/B.A.T.M.A.N. WikiPedia]. Im Freifunk wird unter anderem B.A.T.M.A.N. als Routing-Protokoll eingesetzt.<br />
<br />
== Abstrakt ==<br />
<br />
In diesem Artikel wird beschrieben, wie B.A.T.M.A.N. zusammen mit [[fastd]] auf einem Rechner mit Debian eingerichtet wird und der Rechner direkt an das Netz des Freifunk Rheinland, Domäne Wupper, angebunden wird. Als Beispiel dient die Konfiguration der Freifunk Rheinbach Community. <br />
<br />
Die Verbindung der [[Node | Nodes]] (Router) zu den Servern im Internet erfolgt über einen verschlüsselten Tunnel. Bei Freifunk Rheinbach wird für die Tunnel ''fastd'' verwendet. Nodes, die in WLAN Reichweite zueinander stehen, verbinden sich untereinander über ein MESH-Netzwerk. Auch über Kabel (LAN oder WAN-Port) können sich Nodes vermaschen. Auf all diesen Verbindungen wird das Routing-Protokoll B.A.T.M.A.N. verwendet.<br />
<br />
== Hinweis ==<br />
<br />
Ich verwende als Shell die [[bash]]. Standard ist bei Debian 8.7.1 [[dash]]. Die Befehle in den Scripten sind so einfach, dass sie in beiden Shells funktionieren sollten<br />
<br />
== Installation der Software ==<br />
<br />
=== B.A.T.M.A.N. und fastd installieren ===<br />
<br />
Die folgenden Befehle und Scripte wurden unter '''Debian 8.7.1''' entwickelt und getestet.<br />
<br />
Das folgende Script installiert auf einem Debian 8 die notwendige Software - einschließlich fastd. Je nach System kann es notwendig sein zusätzliche Pakete zu installieren. Das folgende Script wurde auf zwei relativ frischen, jungfräulichen Debian 8.7.1 getestet.<br />
<br />
Achtung: Die Router verwenden B.A.T.M.A.N. 2017.4 (Stand: 03.02.2018)<br />
<br />
<pre><br />
#!/bin/bash<br />
<br />
# Installation B.A.T.M.A.N.<br />
# Version festlegen<br />
<br />
VBAT="2017.4"<br />
<br />
# Wir brauchen ein paar Repos, die nicht im Default einhalten sind.<br />
<br />
grep 'http://repo.universe-factory.net/debian/' /etc/apt/sources.list || echo 'deb http://repo.universe-factory.net/debian/ sid main' >> /etc/apt/sources.list<br />
<br />
# Und den Schlüssel für das Paket. Aktuell: 16EF3F64CB201D9C<br />
<br />
KEY=16EF3F64CB201D9C<br />
gpg --keyserver pgpkeys.mit.edu --recv-key $KEY<br />
gpg -a --export $KEY | apt-key add -<br />
<br />
# Nun die Software, die wahrscheinlich fehlt, inklusive fastd<br />
<br />
apt install apt-transport-https<br />
apt update<br />
apt install build-essential bridge-utils pkg-config libnl-3-dev libnl-genl-3-dev linux-headers-amd64 fastd<br />
<br />
# Jetzt wird B.A.T.M.A.N. batctl aus den Quellen geladen und installiert<br />
<br />
cd /usr/src/<br />
wget http://downloads.open-mesh.org/batman/stable/sources/batctl/batctl-${VBAT}.tar.gz<br />
tar xzf batctl-${VBAT}.tar.gz<br />
cd batctl-${VBAT}<br />
make<br />
make install<br />
<br />
<br />
# Jetzt wird B.A.T.M.A.N. batman-adv aus den Quellen geladen und installiert<br />
<br />
cd /usr/src/<br />
wget http://downloads.open-mesh.org/batman/stable/sources/batman-adv/batman-adv-${VBAT}.tar.gz<br />
tar xzf batman-adv-${VBAT}.tar.gz<br />
cd batman-adv-${VBAT}<br />
make<br />
make install<br />
<br />
# Wir können batman-adv gleich starten<br />
<br />
modprobe batman-adv<br />
<br />
# ... und in die /etc/modules eintragen, damit es auch bei einem Neustart vorhanden ist<br />
<br />
grep '^batman-adv' /etc/modules || echo -e '#B.A.T.M.A.N für Freifunk\nbatman-adv' >> /etc/modules<br />
<br />
# zum Schluss legen wir uns noch ein Verzeichnis für die Konfiguration der fastd-Tunnel an.<br />
<br />
mkdir -p /etc/fastd/ffrhb/peers<br />
</pre><br />
<br />
== Konfiguration ==<br />
<br />
=== B.A.T.M.A.N. konfigurieren ===<br />
<br />
Der Befehl ''modprobe batman-adv'' startes B.A.T.M.A.N. gleich nach der Installation. Durch Aufnahme von ''batman-adv'' in die Datei ''/etc/modules'', wird B.A.T.M.A.N. beim Neustart des Rechner geladen. Beides wird bereits mit dem obigen Script erledigt, so dass wir fertig sind.<br />
<br />
=== fastd konfigurieren ===<br />
<br />
Die folgende Konfigurationsdatei fastd.conf muss in das Verzeichnis /etc/fastd/ffrhb/ kopiert werden.<br />
<br />
<br />
Der ''secret key'' in der Datei dient nur als Beispiel und ist durch einen eigenen Schlüssel zu ersetzen. Ein eigener Schlüssel wir mit ''fastd --generate-key'' erzeugt.<br />
<br />
Die MTU beträgt für Freifunk Rheinland zur Zeit 1364 Byte.<br />
<br />
Das peer limit sollte auf 1 stehen, auch wenn 10 Server definiert sind. Mehrere Tunnel zur gleichen Zeit bieten zur Zeit keine Vorteile und belasten die Server.<br />
<br />
==== Datei /etc/fastd/ffrhb/fastd.conf ====<br />
<br />
<pre><br />
# Log warnings and errors to stderr<br />
log level warn;<br />
<br />
# Log everything to syslog<br />
log to syslog level warn;<br />
<br />
# Set the interface name<br />
interface "mesh-vpn";<br />
<br />
# Support salsa2012+umac and null methods, prefer salsa2012+umac<br />
method "salsa2012+umac";<br />
method "null";<br />
<br />
mode tap;<br />
<br />
# Bind to a fixed port, IPv4 only<br />
bind 0.0.0.0:53757;<br />
<br />
# Please replace the key with your own key.<br />
<br />
# Secret key generated by `fastd --generate-key`<br />
secret "e0e07c1462748f4b0f36423c0ce5c4169e48354a07a3b908435f8ab128259c53";<br />
# Secret: e0e07c1462748f4b0f36423c0ce5c4169e48354a07a3b908435f8ab128259c53<br />
# Public: 72dc4c1aa15cfe4ae5d54caccd8efbd1af8848770843b26a58ed2fb8edb82d50<br />
<br />
secure handshakes yes;<br />
<br />
# Set the interface MTU for TAP mode with xsalsa20/aes128 over IPv4 with a base MTU of 1492 (PPPoE)<br />
# (see MTU selection documentation)<br />
# For Freifunk Rheinland is the MTU 1364<br />
<br />
mtu 1364;<br />
<br />
peer limit 1;<br />
<br />
# Include peers from the directory 'peers'<br />
include peers from "/etc/fastd/ffrhb/peers";<br />
<br />
## IP v6 Adresse muss ggf. nach ip link set up dev bat0 gesetzt werden mit:<br />
## ip addr add dev bat0 fda0:747e:ab29:2241:.../64 scope global<br />
<br />
on up "<br />
/etc/fastd/ffrhb/on-up.sh $INTERFACE<br />
";<br />
</pre><br />
<br />
Die Schnittstelle ''mesh-vpn'' muss B.A.T.M.A.N. als Interface hinzugefügt werden und benötigt eine IPv6 Adresss mit scope global. Dies geschieht mit folgenden Script, dass unter /etc/fastd/ffrhb/on-up.sh gespeichert wird. Die MTU der Netzwerkschnittstelle ''bat0'' muss auf die MTU der Freifunk Community gesetzt werden. Für Rheinbach (Domäne Wupper ist es zur Zeit 1364).<br />
<br />
==== Datei /etc/fastd/ffrhb/on-up.sh ====<br />
<br />
Der Unterschied des folgenden Scriptes zu anderen Erklärungen / Beispielen im Internet ist, dass hier eine globale IPv6 Adresse für das Interface bat0 erzeugt wird und die MTU an die Bedürfnisse der FF-Rheinland angepasst wird. Deshalb erfolgt dies auch in einem eigenen Script und nicht in der fastd.conf. Das Script muss von fastd über ''on up'' aufgerufen werden.<br />
<br />
<pre><br />
#!/bin/bash<br />
<br />
# Execute when fastd is up<br />
# Autor: Thomas Arend<br />
# (c) 2017 by Thomas Arend<br />
# Date: 03.03.2017<br />
<br />
INTERFACE=${1:-mesh-vpn}<br />
<br />
# Start meshing on fastd tunnel<br />
ip link set up dev $INTERFACE || echo Error: Interface $INTERFACE not set up<br />
<br />
# Add tunnel interface to mesh<br />
batctl if add $INTERFACE || echo Error: Interface $INTERFACE not added to batman<br />
<br />
# Set mtu for bat0<br />
# Change 1364 to your value in the site.conf for the FF firmware<br />
<br />
ip link set up dev bat0 mtu 1364 || echo Error when setting MTU to 1364<br />
<br />
# Add ipv6 addr with scope global to bat0<br />
<br />
NIP='fda0:747e:ab29:2241'<br />
GIP=`ip addr show dev bat0 | grep 'inet6 fe80::.* scope link' | sed 's#.*inet6 fe80::##; s# .*$##'`<br />
<br />
ip addr add ${NIP}:${GIP} dev bat0 scope global || echo Error: IPv6 ${NIP}:${GIP} not set<br />
<br />
</pre><br />
<br />
Alternative für das Bestimmen der IP-Adresse:<br />
<br />
IPv6=`grep 'fe80.*bat0$'/proc/net/if_inet6 | sed 's#fe80000000000000#fda0747eab292241#;s# .*##; s#\([0-9a-f]\{4,4\}\)#\1:#g; s#:$##'`<br />
<br />
==== Schlüssel Dateien für die Peers ====<br />
<br />
Jeder [[Peer]] besitzt wie unser Rechner ein Schlüsselpaar, anhand dessen er eindeutig identifiziert wird. Die öffentlichen Schlüssel der müssen Peers kommen in das Unterverzeichnis ''peers''. Die Namen spielen dabei keine Rolle. Wir verwenden folgende Namenskonvention, um die Peer und öffentlichen Schlüssel zu erkennen: ''mesh_vpn_backbone_peer_wupper&lt;n&gt;''. Diese Namen werden auch in der Firmware verwendet, &lt;n&gt; ist dabei die Nummer des Servers (0-9).<br />
<br />
Beispiel für Wupper 0.<br />
<br />
<pre><br />
key "e52daa654abcf5c20c5b7a74b5145f70a7491435c6ef334ae352e4f19c00e8f5";<br />
remote "0.wupper.ffrl.de" port 53757;<br />
</pre><br />
<br />
==== Starten und Aktivieren ====<br />
<br />
Nun muss nur noch ''fastd'' gestartet werden mit:<br />
<br />
service fastd start<br />
<br />
Um ''fastd'' mit jedem Neustart automatisch zu starten, muss der folgende Befehl ausgeführt werden:<br />
<br />
systemctl enable fastd<br />
<br />
=== Test der Konfiguration ===<br />
<br />
Ob alles richtig läuft, zeigen ''ifconfig'', ''systemctl status fastd'' und ''batctl if'' bzw. ''batctl tg''<br />
<br />
<pre><br />
root@medion:~# ifconfig bat0<br />
bat0 Link encap:Ethernet Hardware Adresse 32:e7:53:24:17:5f <br />
inet6-Adresse: fda0:747e:ab29:2241:30e7:53ff:fe24:175f/64 Gültigkeitsbereich:Global<br />
inet6-Adresse: fe80::30e7:53ff:fe24:175f/64 Gültigkeitsbereich:Verbindung<br />
UP BROADCAST RUNNING MULTICAST MTU:1364 Metrik:1<br />
RX packets:61804 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:28 errors:0 dropped:24 overruns:0 carrier:0<br />
Kollisionen:0 Sendewarteschlangenlänge:0 <br />
RX bytes:3708888 (3.5 MiB) TX bytes:3529 (3.4 KiB)<br />
<br />
mesh-vpn Link encap:Ethernet Hardware Adresse aa:53:8d:76:e2:fa <br />
inet6-Adresse: fe80::a853:8dff:fe76:e2fa/64 Gültigkeitsbereich:Verbindung<br />
UP BROADCAST RUNNING MULTICAST MTU:1364 Metrik:1<br />
RX packets:66901 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:23753 errors:0 dropped:0 overruns:0 carrier:0<br />
Kollisionen:0 Sendewarteschlangenlänge:500 <br />
RX bytes:9241074 (8.8 MiB) TX bytes:5150504 (4.9 MiB)<br />
<br />
root@medion:~# systemctl -l status fastd<br />
● fastd.service - LSB: Fast and Secure Tunneling Daemon<br />
Loaded: loaded (/etc/init.d/fastd)<br />
Active: active (running) since Fr 2017-03-03 16:54:08 CET; 26min ago<br />
Process: 2686 ExecStop=/etc/init.d/fastd stop (code=exited, status=0/SUCCESS)<br />
Process: 2697 ExecStart=/etc/init.d/fastd start (code=exited, status=0/SUCCESS)<br />
CGroup: /system.slice/fastd.service<br />
└─2710 /usr/bin/fastd --syslog-level info --config /etc/fastd/ffrhb/fastd.conf<br />
<br />
Mär 03 16:54:08 medion fastd[2697]: Starting Fast and Secure Tunneling Daemon... Autostarting fastd 'ffrhb':.<br />
Mär 03 16:54:08 medion systemd[1]: Started LSB: Fast and Secure Tunneling Daemon.<br />
<br />
root@x2:/etc/fastd/ffrhb/peers# batctl if<br />
mesh-vpn: active<br />
<br />
root@medion:~# batctl tl<br />
[B.A.T.M.A.N. adv 2016.5, MainIF/MAC: mesh-vpn/aa:53:8d:76:e2:fa (bat0/32:e7:53:24:17:5f BATMAN_IV), TTVN: 3]<br />
Client VID Flags Last seen (CRC )<br />
33:33:ff:24:17:5f -1 [.P....] 0.000 (0x2453b430)<br />
33:33:00:00:00:fb -1 [.P....] 0.000 (0x2453b430)<br />
01:00:5e:00:00:01 -1 [.P....] 0.000 (0x2453b430)<br />
32:e7:53:24:17:5f -1 [.P....] 0.000 (0x2453b430)<br />
33:33:00:00:00:01 -1 [.P....] 0.000 (0x2453b430)<br />
</pre><br />
<br />
== Hinweise und Warnungen ==<br />
<br />
Fastd baut den Tunnel über eine beliebige Netzwerkverbindung auf. D.h. der Rechner kann in einem WLAN - privat oder öffentlich - betrieben werden. Dies kann auch ein Freifunk-Netz sein.<br />
<br />
Ist der Rechner in einem Freifunk-Netz, dann baut er einen fastd-Tunnel im fastd-Tunnel des Nodes auf, der die Verbindung zum Internet herstellt. Dies ist nicht sinnvoll und kann Effekte haben, die ich derzeit nicht überblicke und die nicht wünschenswert sind. Ein Effekt wird das Splitten von großen IP-Paketen sein.<br />
<br />
== Ergebnis und Siegerehrung ==<br />
<br />
Über unseren fastd-Tunnel können wir auf die Nodes und die Clients des Freifunknetzes über IPv6 zugreifen.</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=B.A.T.M.A.N.&diff=229B.A.T.M.A.N.2018-02-03T17:48:42Z<p>Thomas: /* B.A.T.M.A.N. und fastd installieren */</p>
<hr />
<div>B.A.T.M.A.N. (Abkürzung für '''B'''etter '''A'''pproach '''T'''o '''M'''obile '''A'''dhoc '''N'''etworking) ist ein Routing-Protokoll für mobile Ad-hoc-Netze. Siehe [https://de.wikipedia.org/wiki/B.A.T.M.A.N. WikiPedia]. Im Freifunk wird unter anderem B.A.T.M.A.N. als Routing-Protokoll eingesetzt.<br />
<br />
== Abstrakt ==<br />
<br />
In diesem Artikel wird beschrieben, wie B.A.T.M.A.N. zusammen mit [[fastd]] auf einem Rechner mit Debian eingerichtet wird und der Rechner direkt an das Netz des Freifunk Rheinland, Domäne Wupper, angebunden wird. Als Beispiel dient die Konfiguration der Freifunk Rheinbach Community. <br />
<br />
Die Verbindung der [[Node | Nodes]] (Router) zu den Servern im Internet erfolgt über einen verschlüsselten Tunnel. Bei Freifunk Rheinbach wird für die Tunnel ''fastd'' verwendet. Nodes, die in WLAN Reichweite zueinander stehen, verbinden sich untereinander über ein MESH-Netzwerk. Auch über Kabel (LAN oder WAN-Port) können sich Nodes vermaschen. Auf all diesen Verbindungen wird das Routing-Protokoll B.A.T.M.A.N. verwendet.<br />
<br />
== Hinweis ==<br />
<br />
Ich verwende als Shell die [[bash]]. Standard ist bei Debian 8.7.1 [[dash]]. Die Befehle in den Scripten sind so einfach, dass sie in beiden Shells funktionieren sollten<br />
<br />
== Installation der Software ==<br />
<br />
=== B.A.T.M.A.N. und fastd installieren ===<br />
<br />
Die folgenden Befehle und Scripte wurden unter '''Debian 8.7.1''' entwickelt und getestet.<br />
<br />
Das folgende Script installiert auf einem Debian 8 die notwendige Software - einschließlich fastd. Je nach System kann es notwendig sein zusätzliche Pakete zu installieren. Das folgende Script wurde auf zwei relativ frischen, jungfräulichen Debian 8.7.1 getestet.<br />
<br />
Achtung: Die Router verwenden B.A.T.M.A.N. 2017.4 (Stand: 03.02.2018)<br />
<br />
<pre><br />
#!/bin/bash<br />
<br />
# Installation B.A.T.M.A.N.<br />
# Version festlegen<br />
<br />
VBAT="2017.4"<br />
<br />
# Wir brauchen ein paar Repos, die nicht im Default einhalten sind.<br />
<br />
grep 'http://repo.universe-factory.net/debian/' /etc/apt/sources.list || echo 'deb http://repo.universe-factory.net/debian/ sid main' >> /etc/apt/sources.list<br />
<br />
# Und den Schlüssel für das Paket. Aktuell: 16EF3F64CB201D9C<br />
<br />
KEY=16EF3F64CB201D9C<br />
gpg --keyserver pgpkeys.mit.edu --recv-key $KEY<br />
gpg -a --export $KEY | apt-key add -<br />
<br />
# Nun die Software, die wahrscheinlich fehlt, inklusive fastd<br />
<br />
apt install apt-transport-https<br />
apt update<br />
apt install build-essential bridge-utils pkg-config libnl-3-dev libnl-genl-3-dev linux-headers-amd64 fastd<br />
<br />
# Jetzt wird B.A.T.M.A.N. batctl aus den Quellen geladen und installiert<br />
<br />
cd /usr/src/<br />
wget http://downloads.open-mesh.org/batman/stable/sources/batctl/batctl-${VBAT}.tar.gz<br />
tar xzf batctl-${VBAT}.tar.gz<br />
cd batctl-${VBAT}<br />
make<br />
make install<br />
<br />
<br />
# Jetzt wird B.A.T.M.A.N. batman-adv aus den Quellen geladen und installiert<br />
<br />
cd /usr/src/<br />
wget http://downloads.open-mesh.org/batman/stable/sources/batman-adv/batman-adv-${VBAT}.tar.gz<br />
tar xzf batman-adv-${VBAT}.tar.gz<br />
cd batman-adv-${VBAT}<br />
make<br />
make install<br />
<br />
# Wir können batman-adv gleich starten<br />
<br />
modprobe batman-adv<br />
<br />
# ... und in die /etc/modules eintragen, damit es auch bei einem Neustart vorhanden ist<br />
<br />
grep '^batman-adv' /etc/modules || echo -e '#B.A.T.M.A.N für Freifunk'\nbatman-adv' >> /etc/modules<br />
<br />
# zum Schluss legen wir uns noch ein Verzeichnis für die Konfiguration der fastd-Tunnel an.<br />
<br />
mkdir -p /etc/fastd/ffrhb/peers<br />
</pre><br />
<br />
== Konfiguration ==<br />
<br />
=== B.A.T.M.A.N. konfigurieren ===<br />
<br />
Der Befehl ''modprobe batman-adv'' startes B.A.T.M.A.N. gleich nach der Installation. Durch Aufnahme von ''batman-adv'' in die Datei ''/etc/modules'', wird B.A.T.M.A.N. beim Neustart des Rechner geladen. Beides wird bereits mit dem obigen Script erledigt, so dass wir fertig sind.<br />
<br />
=== fastd konfigurieren ===<br />
<br />
Die folgende Konfigurationsdatei fastd.conf muss in das Verzeichnis /etc/fastd/ffrhb/ kopiert werden.<br />
<br />
<br />
Der ''secret key'' in der Datei dient nur als Beispiel und ist durch einen eigenen Schlüssel zu ersetzen. Ein eigener Schlüssel wir mit ''fastd --generate-key'' erzeugt.<br />
<br />
Die MTU beträgt für Freifunk Rheinland zur Zeit 1364 Byte.<br />
<br />
Das peer limit sollte auf 1 stehen, auch wenn 10 Server definiert sind. Mehrere Tunnel zur gleichen Zeit bieten zur Zeit keine Vorteile und belasten die Server.<br />
<br />
==== Datei /etc/fastd/ffrhb/fastd.conf ====<br />
<br />
<pre><br />
# Log warnings and errors to stderr<br />
log level warn;<br />
<br />
# Log everything to syslog<br />
log to syslog level warn;<br />
<br />
# Set the interface name<br />
interface "mesh-vpn";<br />
<br />
# Support salsa2012+umac and null methods, prefer salsa2012+umac<br />
method "salsa2012+umac";<br />
method "null";<br />
<br />
mode tap;<br />
<br />
# Bind to a fixed port, IPv4 only<br />
bind 0.0.0.0:53757;<br />
<br />
# Please replace the key with your own key.<br />
<br />
# Secret key generated by `fastd --generate-key`<br />
secret "e0e07c1462748f4b0f36423c0ce5c4169e48354a07a3b908435f8ab128259c53";<br />
# Secret: e0e07c1462748f4b0f36423c0ce5c4169e48354a07a3b908435f8ab128259c53<br />
# Public: 72dc4c1aa15cfe4ae5d54caccd8efbd1af8848770843b26a58ed2fb8edb82d50<br />
<br />
secure handshakes yes;<br />
<br />
# Set the interface MTU for TAP mode with xsalsa20/aes128 over IPv4 with a base MTU of 1492 (PPPoE)<br />
# (see MTU selection documentation)<br />
# For Freifunk Rheinland is the MTU 1364<br />
<br />
mtu 1364;<br />
<br />
peer limit 1;<br />
<br />
# Include peers from the directory 'peers'<br />
include peers from "/etc/fastd/ffrhb/peers";<br />
<br />
## IP v6 Adresse muss ggf. nach ip link set up dev bat0 gesetzt werden mit:<br />
## ip addr add dev bat0 fda0:747e:ab29:2241:.../64 scope global<br />
<br />
on up "<br />
/etc/fastd/ffrhb/on-up.sh $INTERFACE<br />
";<br />
</pre><br />
<br />
Die Schnittstelle ''mesh-vpn'' muss B.A.T.M.A.N. als Interface hinzugefügt werden und benötigt eine IPv6 Adresss mit scope global. Dies geschieht mit folgenden Script, dass unter /etc/fastd/ffrhb/on-up.sh gespeichert wird. Die MTU der Netzwerkschnittstelle ''bat0'' muss auf die MTU der Freifunk Community gesetzt werden. Für Rheinbach (Domäne Wupper ist es zur Zeit 1364).<br />
<br />
==== Datei /etc/fastd/ffrhb/on-up.sh ====<br />
<br />
Der Unterschied des folgenden Scriptes zu anderen Erklärungen / Beispielen im Internet ist, dass hier eine globale IPv6 Adresse für das Interface bat0 erzeugt wird und die MTU an die Bedürfnisse der FF-Rheinland angepasst wird. Deshalb erfolgt dies auch in einem eigenen Script und nicht in der fastd.conf. Das Script muss von fastd über ''on up'' aufgerufen werden.<br />
<br />
<pre><br />
#!/bin/bash<br />
<br />
# Execute when fastd is up<br />
# Autor: Thomas Arend<br />
# (c) 2017 by Thomas Arend<br />
# Date: 03.03.2017<br />
<br />
INTERFACE=${1:-mesh-vpn}<br />
<br />
# Start meshing on fastd tunnel<br />
ip link set up dev $INTERFACE || echo Error: Interface $INTERFACE not set up<br />
<br />
# Add tunnel interface to mesh<br />
batctl if add $INTERFACE || echo Error: Interface $INTERFACE not added to batman<br />
<br />
# Set mtu for bat0<br />
# Change 1364 to your value in the site.conf for the FF firmware<br />
<br />
ip link set up dev bat0 mtu 1364 || echo Error when setting MTU to 1364<br />
<br />
# Add ipv6 addr with scope global to bat0<br />
<br />
NIP='fda0:747e:ab29:2241'<br />
GIP=`ip addr show dev bat0 | grep 'inet6 fe80::.* scope link' | sed 's#.*inet6 fe80::##; s# .*$##'`<br />
<br />
ip addr add ${NIP}:${GIP} dev bat0 scope global || echo Error: IPv6 ${NIP}:${GIP} not set<br />
<br />
</pre><br />
<br />
Alternative für das Bestimmen der IP-Adresse:<br />
<br />
IPv6=`grep 'fe80.*bat0$'/proc/net/if_inet6 | sed 's#fe80000000000000#fda0747eab292241#;s# .*##; s#\([0-9a-f]\{4,4\}\)#\1:#g; s#:$##'`<br />
<br />
==== Schlüssel Dateien für die Peers ====<br />
<br />
Jeder [[Peer]] besitzt wie unser Rechner ein Schlüsselpaar, anhand dessen er eindeutig identifiziert wird. Die öffentlichen Schlüssel der müssen Peers kommen in das Unterverzeichnis ''peers''. Die Namen spielen dabei keine Rolle. Wir verwenden folgende Namenskonvention, um die Peer und öffentlichen Schlüssel zu erkennen: ''mesh_vpn_backbone_peer_wupper&lt;n&gt;''. Diese Namen werden auch in der Firmware verwendet, &lt;n&gt; ist dabei die Nummer des Servers (0-9).<br />
<br />
Beispiel für Wupper 0.<br />
<br />
<pre><br />
key "e52daa654abcf5c20c5b7a74b5145f70a7491435c6ef334ae352e4f19c00e8f5";<br />
remote "0.wupper.ffrl.de" port 53757;<br />
</pre><br />
<br />
==== Starten und Aktivieren ====<br />
<br />
Nun muss nur noch ''fastd'' gestartet werden mit:<br />
<br />
service fastd start<br />
<br />
Um ''fastd'' mit jedem Neustart automatisch zu starten, muss der folgende Befehl ausgeführt werden:<br />
<br />
systemctl enable fastd<br />
<br />
=== Test der Konfiguration ===<br />
<br />
Ob alles richtig läuft, zeigen ''ifconfig'', ''systemctl status fastd'' und ''batctl if'' bzw. ''batctl tg''<br />
<br />
<pre><br />
root@medion:~# ifconfig bat0<br />
bat0 Link encap:Ethernet Hardware Adresse 32:e7:53:24:17:5f <br />
inet6-Adresse: fda0:747e:ab29:2241:30e7:53ff:fe24:175f/64 Gültigkeitsbereich:Global<br />
inet6-Adresse: fe80::30e7:53ff:fe24:175f/64 Gültigkeitsbereich:Verbindung<br />
UP BROADCAST RUNNING MULTICAST MTU:1364 Metrik:1<br />
RX packets:61804 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:28 errors:0 dropped:24 overruns:0 carrier:0<br />
Kollisionen:0 Sendewarteschlangenlänge:0 <br />
RX bytes:3708888 (3.5 MiB) TX bytes:3529 (3.4 KiB)<br />
<br />
mesh-vpn Link encap:Ethernet Hardware Adresse aa:53:8d:76:e2:fa <br />
inet6-Adresse: fe80::a853:8dff:fe76:e2fa/64 Gültigkeitsbereich:Verbindung<br />
UP BROADCAST RUNNING MULTICAST MTU:1364 Metrik:1<br />
RX packets:66901 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:23753 errors:0 dropped:0 overruns:0 carrier:0<br />
Kollisionen:0 Sendewarteschlangenlänge:500 <br />
RX bytes:9241074 (8.8 MiB) TX bytes:5150504 (4.9 MiB)<br />
<br />
root@medion:~# systemctl -l status fastd<br />
● fastd.service - LSB: Fast and Secure Tunneling Daemon<br />
Loaded: loaded (/etc/init.d/fastd)<br />
Active: active (running) since Fr 2017-03-03 16:54:08 CET; 26min ago<br />
Process: 2686 ExecStop=/etc/init.d/fastd stop (code=exited, status=0/SUCCESS)<br />
Process: 2697 ExecStart=/etc/init.d/fastd start (code=exited, status=0/SUCCESS)<br />
CGroup: /system.slice/fastd.service<br />
└─2710 /usr/bin/fastd --syslog-level info --config /etc/fastd/ffrhb/fastd.conf<br />
<br />
Mär 03 16:54:08 medion fastd[2697]: Starting Fast and Secure Tunneling Daemon... Autostarting fastd 'ffrhb':.<br />
Mär 03 16:54:08 medion systemd[1]: Started LSB: Fast and Secure Tunneling Daemon.<br />
<br />
root@x2:/etc/fastd/ffrhb/peers# batctl if<br />
mesh-vpn: active<br />
<br />
root@medion:~# batctl tl<br />
[B.A.T.M.A.N. adv 2016.5, MainIF/MAC: mesh-vpn/aa:53:8d:76:e2:fa (bat0/32:e7:53:24:17:5f BATMAN_IV), TTVN: 3]<br />
Client VID Flags Last seen (CRC )<br />
33:33:ff:24:17:5f -1 [.P....] 0.000 (0x2453b430)<br />
33:33:00:00:00:fb -1 [.P....] 0.000 (0x2453b430)<br />
01:00:5e:00:00:01 -1 [.P....] 0.000 (0x2453b430)<br />
32:e7:53:24:17:5f -1 [.P....] 0.000 (0x2453b430)<br />
33:33:00:00:00:01 -1 [.P....] 0.000 (0x2453b430)<br />
</pre><br />
<br />
== Hinweise und Warnungen ==<br />
<br />
Fastd baut den Tunnel über eine beliebige Netzwerkverbindung auf. D.h. der Rechner kann in einem WLAN - privat oder öffentlich - betrieben werden. Dies kann auch ein Freifunk-Netz sein.<br />
<br />
Ist der Rechner in einem Freifunk-Netz, dann baut er einen fastd-Tunnel im fastd-Tunnel des Nodes auf, der die Verbindung zum Internet herstellt. Dies ist nicht sinnvoll und kann Effekte haben, die ich derzeit nicht überblicke und die nicht wünschenswert sind. Ein Effekt wird das Splitten von großen IP-Paketen sein.<br />
<br />
== Ergebnis und Siegerehrung ==<br />
<br />
Über unseren fastd-Tunnel können wir auf die Nodes und die Clients des Freifunknetzes über IPv6 zugreifen.</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=Hopglass&diff=228Hopglass2018-01-19T21:29:03Z<p>Thomas: /* Build */</p>
<hr />
<div>Die Freifunkkarte wird für Freifunk-Rheinbach über '''hopglass''' erstellt.<br />
<br />
<br />
== Voraussetzungen ==<br />
<br />
Die Erstellung der Freifunk-Karte benötigt npm. <br />
<br />
=== Installation npm ===<br />
<br />
npm wird unter Debian wie folgt installiert:<br />
<br />
<pre><br />
curl -sL https://deb.nodesource.com/setup_9.x | sudo -E bash -<br />
sudo apt-get install -y nodejs<br />
</pre><br />
<br />
== Installation hopglass ==<br />
<br />
Erste Installation<br />
<br />
<pre><br />
git clone https://github.com/hopglass/hopglass<br />
<br />
cd hopglass<br />
npm install<br />
npm install grunt-cli<br />
</pre><br />
<br />
Ist hopglass bereits auf dem Rechner kann die Software mittels ''git pull'' aktualisiert werden. <br />
<br />
== Build hopglass ==<br />
<br />
Anschließen wird das hopglass-Verzeichnis ''build'' mit folgendem Befehl erstellt.<br />
<br />
<pre><br />
node_modules/.bin/grunt<br />
</pre><br />
<br />
Dieses Verzeichnis muss nach der Anpassung der config.json id das Root-Verzeichnis des Web-Server kopiert werden.</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=Hopglass&diff=227Hopglass2018-01-19T21:28:34Z<p>Thomas: Erste Erstellung</p>
<hr />
<div>Die Freifunkkarte wird für Freifunk-Rheinbach über '''hopglass''' erstellt.<br />
<br />
<br />
== Voraussetzungen ==<br />
<br />
Die Erstellung der Freifunk-Karte benötigt npm. <br />
<br />
=== Installation npm ===<br />
<br />
npm wird unter Debian wie folgt installiert:<br />
<br />
<pre><br />
curl -sL https://deb.nodesource.com/setup_9.x | sudo -E bash -<br />
sudo apt-get install -y nodejs<br />
</pre><br />
<br />
== Installation hopglass ==<br />
<br />
Erste Installation<br />
<br />
<pre><br />
git clone https://github.com/hopglass/hopglass<br />
<br />
cd hopglass<br />
npm install<br />
npm install grunt-cli<br />
</pre><br />
<br />
Ist hopglass bereits auf dem Rechner kann die Software mittels ''git pull'' aktualisiert werden. <br />
<br />
== Build ==<br />
<br />
Anschließen wird das hopglass-Verzeichnis ''build'' mit folgendem Befehl erstellt.<br />
<br />
<pre><br />
node_modules/.bin/grunt<br />
</pre><br />
<br />
Dieses Verzeichnis muss nach der Anpassung der config.json id das Root-Verzeichnis des Web-Server kopiert werden.</div>Thomashttp://wiki.freifunk-rheinbach.de/index.php?title=TP-LINK&diff=226TP-LINK2018-01-13T19:02:24Z<p>Thomas: Neue Firmware</p>
<hr />
<div>Die Firma '''TP-LINK''' stellt Router her, von denen die meisten Modelle durch [[OpenWRT]] / [[Gluon]] unterstützt werden. Um einen TP-LINK Router für Freifunk zu nutzen, muss die [[Firmware | Original-Firmware]] durch eine Freifunk-Firmware einer Freifunk-Community ersetzt werden. Die stabile Firmware für Rheinbach basiert seit dem 14.02.2016 auf Gluon v2016.1.x, <br />
<br />
Die WLAN-Router TL-WR-841N(D) und TL-WR-842N(D) sind wahrscheinlich die für Freifunk am häufigsten eingesetzten Modelle. Die Gesamtliste der Firmware aller unterstützten Router befindet sich auf dem [http://images.freifunk-rheinbach.de/ Server für die Images].<br />
<br />
== Factory oder Sysupgrade? ==<br />
<br />
Die Firmware gibt es in zwei Varianten ''factory'' und ''sysupgrade''. Die ''Factory''-Images dienen der Erstinstallation des Routers, wenn er noch die Original-Firmware des Herstellers hat. Das ''Facotory''-Image ersetzt die Original-Firmware auf dem Router. Die ''Sysupgrade''-Images sind kleiner und dienen der Aktualisierung der Firmware, wenn der Router bereits mit einer Freifunk-Firmware läuft.<br />
<br />
Die hier aufgeführten Links verweisen alle auf das Factory-Image. Für die Sysupgrade-Images bitte zum [http://images.freifunk-rheinbach.de/ Server für die Images] gehen.<br />
<br />
== Installation ==<br />
<br />
Wie die Firmware auf einem Router installiert wird, wird unter [[Installation]] beschrieben. <br />
<br />
== Getestete Router ==<br />
<br />
Die Freifunk Rheinbach Firmware wurde mit den folgenden Routern getestet. Andere Modelle stehen uns leider nicht zur Verfügung.<br />
<br />
{| class="wikitable"<br />
! Modell<br />
! colspan="4" | Versionen<br />
|-<br />
| Archer C7<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-archer-c7-v2.bin V2]<br />
|-<br />
| TL-MR-3020<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-mr3020-v1.bin V1]<br />
|-<br />
| TL-WR-8421N(D)<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr841n-nd-v7.bin V7]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr841n-nd-v9.bin V9] <br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr841n-nd-v10.bin V10]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr841n-nd-v11.bin V11] <br />
|-<br />
| TL-WR-842N(D) <br />
| [https://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr842n-nd-v2.bin V2]<br />
|-<br />
| TL-WR-941N(D) <br />
| [https://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr941n-nd-v6.bin V6]<br />
|-<br />
| TL-WR-1043N(D) <br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr1043n-nd-v2.bin V2]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr1043n-nd-v3.bin V3]<br />
|-<br />
| TL-WDR-3600<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wdr3600-v1.bin V1]<br />
<br />
|}<br />
<br />
== Stabile Firmware Images TP-LINK ==<br />
<br />
{| class="wikitable"<br />
! Modell<br />
! colspan="7" | Versionen<br />
|-<br />
| CPE210<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-cpe210-v1.0.bin v1.0]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-cpe210-v1.1.bin v1.1]<br />
|-<br />
| CPE220<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-cpe220-v1.0.bin v1.0]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-cpe220-v1.1.bin v1.1]<br />
|-<br />
| CPE510<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-cpe510-v1.0.bin v1.0]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-cpe510-v1.1.bin v1.1]<br />
|-<br />
| CPE520<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-cpe520-v1.0.bin v1.0]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-cpe520-v1.1.bin v1.1]<br />
|-<br />
| TL-MR3020<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-mr3020-v1.bin v1]<br />
|-<br />
| TL-MR3040<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-mr3040-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-mr3040-v2.bin v2]<br />
|-<br />
| TL-MR3220<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-mr3220-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-mr3220-v2.bin v2]<br />
|-<br />
| TL-MR3420<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-mr3420-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-mr3420-v2.bin v2]<br />
|-<br />
| TL-WA701N-ND<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wa701n-nd-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wa701n-nd-v2.bin v2]<br />
|-<br />
| TL-WA750RE<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wa750re-v1.bin v1]<br />
|-<br />
| TL-WA801N-ND<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wa801n-nd-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wa801n-nd-v2.bin v2]<br />
|-<br />
| TL-WA830RE<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wa830re-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wa830re-v2.bin v2]<br />
|-<br />
| TL-WA850RE<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wa850re-v1.bin v1]<br />
|-<br />
| TL-WA860RE<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wa860re-v1.bin v1]<br />
|-<br />
| TL-WA901N-ND<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wa901n-nd-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wa901n-nd-v2.bin v2]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wa901n-nd-v3.bin v3]<br />
|-<br />
| TL-WDR3500<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wdr3500-v1.bin v1]<br />
|-<br />
| TL-WDR3600<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wdr3600-v1.bin v1]<br />
|-<br />
| TL-WDR4300<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wdr4300-v1.bin v1]<br />
|-<br />
| TL-WDR4900<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wdr4900-v1.bin v1]<br />
|-<br />
| TL-WR1043N-ND<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr1043n-nd-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr1043n-nd-v2.bin v2]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr1043n-nd-v3.bin v3]<br />
|-<br />
| TL-WR2543N-ND<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr2543n-nd-v1.bin v1]<br />
|-<br />
| TL-WR703N<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr703n-v1.bin v1]<br />
|-<br />
| TL-WR710N<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr710n-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr710n-v2.bin v2]<br />
|-<br />
| TL-WR740N-ND<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr740n-nd-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr740n-nd-v3.bin v3]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr740n-nd-v4.bin v4]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr740n-nd-v5.bin v5]<br />
|-<br />
| TL-WR741N-ND<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr741n-nd-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr741n-nd-v2.bin v2]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr741n-nd-v4.bin v4]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr741n-nd-v5.bin v5]<br />
|-<br />
| TL-WR743N-ND<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr743n-nd-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr743n-nd-v2.bin v2]<br />
|-<br />
| TL-WR841N-ND<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr841n-nd-v3.bin v3]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr841n-nd-v5.bin v5]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr841n-nd-v7.bin v7]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr841n-nd-v8.bin v8]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr841n-nd-v9.bin v9]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr841n-nd-v10.bin v10]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr841n-nd-v11.bin v11]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr841n-nd-v12.bin v12]<br />
|-<br />
| TL-WR842N-ND<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr842n-nd-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr842n-nd-v2.bin v2]<br />
|-<br />
| TL-WR843N-ND<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr843n-nd-v1.bin v1]<br />
|-<br />
| TL-WR940N-ND<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr940n-nd-v1.bin v1]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr940n-nd-v2.bin v2]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr940n-nd-v3.bin v3]<br />
|-<br />
| TL-WR941N-ND<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr941n-nd-v2.bin v2]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr941n-nd-v3.bin v3]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr941n-nd-v4.bin v4]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr941n-nd-v5.bin v5]<br />
| [http://images.freifunk-rheinbach.de/v2017.1.x/images/factory/tp-link-tl-wr941n-nd-v6.bin v6]<br />
|}<br />
<br />
[[Category:Hersteller]]<br />
[[Category:Firmware]]</div>Thomas