Gateway-Firmware mit Babel über Mesh: Unterschied zwischen den Versionen

Aus Freifunk Franken
Wechseln zu:Navigation, Suche
(Neuerstellung.)
 
K (→‎Verschlüsselte Babel-Verbindungen über Mesh: Link zu vertiefender OpenWrt Erklärseite ergänzt.)
 
(9 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
__TOC__
__TOC__
=Privater experimenteller Firmware-Fork!=
=Verschlüsselte Babel-Verbindungen über Mesh=


Dies ist die Beschreibung einer Firmware-Modifikation von [[Benutzer:Miki|Miki]]. Ursprung ist die Freifunk-Franken-Firmware und deren verschiedene Varianten für dezentrale Gateways.
Dies ist die Beschreibung einer Firmware-Modifikation von [[Benutzer:Miki|Miki]]. Bisher ist das Feature nicht in die originale Freifunk Franken Firmware integriert, die modifizierte Firmware muss selber aus den Quellen gebaut werden.


Der [https://github.com/MaretaDagostino/fff-firmware Quellcode ist in Github] zu finden.
Vertiefung: [https://openwrt.org/docs/guide-user/network/wifi/mesh/80211s OpenWrt: 802.11s based wireless mesh network]


==Akuell empfohlener Softwarestand==
==Bauen==


Commit '''21691839c''' vom '''27.1.2019'''
Gebaut wird nach dem README.md im Git [[https://git.freifunk-franken.de/freifunk-franken/firmware]], alternativ beschrieben auch [[FirmwareEntwicklung|hier im Wiki]]. Nach dem Schritt "./buildscript prepare" wird nun <pre>./buildscript config openwrt</pre> aufgerufen. Es erscheint ein Auswahldialog. Die gesuchten Einstellungen sind im Unterbereich "Network --->".


Auf diesen Stand bezieht sich die folgende Auflistung.  
1) Zuerst wird "hostapd-mini" abgewählt < >.


==Besondere Features, implementiert==
[[Datei:WpadMesh.png|center|761px|Dialog "hostapd-mini abwählen"]]
<br>
2) Danach wird "wpad-mesh-openssl" angewählt, im selben Bereich weiter unten. Es genügt nicht, das Feature als Modul zu ergänzen, es muss mit <*> fest eingebunden werden.


* Verschlüsselte Babel-Verbindungen über Mesh möglich.
Wenn die Änderungen gespeichert sind, geht es wie gewohnt mit "./buildscript build" weiter.
* Software-Struktur gemeinsamer Pakete nahe an der Original-Firmware, um längerfristige Pflege zu erleichtern.
* Unterstützung zusätzlicher Routermodelle aus den Entwicklerbranches von Adrian oder Fabian (hier ungetestet, reiner Code-Import).
 
==Besondere Features, in der Warteliste==
 
* Zuverlässige Update-Möglichkeit auf dem ''Ubiquiti Unifi AC-Mesh'' Router.
* Hochladen der Konfigurationsdateien über das Web-Interface.
* Konfigurationslauf übers Webinterface anstoßen können.
* Einzelne Funkbereiche (2,4 GHz und/oder 5 GHz) einzeln übers Webinterface deaktivieren können.
 
==Bekannte Fehler==
 
* Updates funktionieren nur auf Routern mit Hardware-Bridge zuverlässig, das sind meistens Geräte mit 5 Ports (z.B. WR1043).
* Im zentralen Monitoring-Tool wird die "Quality" von Babel-Peerings nicht angezeigt.
 
==Ungetestet==
 
* Fast alle Routermodelle.
* Funktionsweise und Wirksamkeit der Bandbreitenbegrenzung.
* ...sicherlich vieles andere mehr...
 
==Historie==
 
* Commit 1d301d0dd vom 28.10.2018, Tag "20181028-beta":<br>
Hier musste das Hoodfile nach /www/hood/keyxchangev2data kopiert werden. Die Seite "WiFi Scan" im Webinterface funktionierte nicht. Verschiedene für Gateways sinnlose Bedienelemente wurden noch angezeigt. Diverse Pakete aus Adrians Firmware für zentrale V2 Hoods waren noch im Code enthalten, obwohl die Build-Option für V2 Firmware bereits entfernt war.
 
* Commit ??? vom ???, Tag "???":<br>
Wechsel der Quelle auf Freifunk Franken Original-Firmware mit Gateway-Paketen nach Fabians Methode. Das Hoodfile muss jetzt nach /etc/hoodfile kopiert werden. In der GW-Firmware funktionslose Bedienelemente wurden aus dem Webinterface entfernt. Diverse Pakete für zentrale V2 Hoods wurden entfernt, da in Gateways obsolet. Code-Import zur Unterstützung der Router Ubiquiti Edge X und Archer C60 v1/v2.


==Konfiguration==
==Konfiguration==
'''Achtung:''' Auf der Ubiquiti Unifi AC-Mesh und vermutlich auch anderen Routern mit nur einer oder zwei Ethernetschnittstellen ist ein Firmware-Upgrade unzuverlässig. Miki hat bei ihren Tests auf der AC-Mesh schließlich immer mit TFTP die Originalfirmware des Herstellers aufgespielt und dann die Gateway-Firmware als erneute "Erstinstallation".


Anleitungen im Wiki:
Anleitungen im Wiki:
* [[Portal:Firmware#Installationsanleitung_f.C3.BCr_Erstinstallation|Freifunk-Firmware auf TP-Link WR1043N(D) installieren]]
* [[Firmware_installieren#Installationsanleitung_f.C3.BCr_Erstinstallation|Freifunk-Firmware installieren]]
* [[Anleitung:UbiquitiUnifiACMesh|Freifunk-Firmware auf Ubiquiti Unifi AC-Mesh installieren]]  
* [[Layer3Firmware|Installation der Layer3-Firmware]]
* [[Gatewayfirmware|Installation der Gatewayfirmware]], Hoodfile nach /etc/hoodfile kopieren
* [[Layer3Firmware_Config|Layer3-Firmware Konfiguration]]


===Richtwerte für Babel Penalty (rxcost) in dezentralen Hoods===
===Richtwerte für Babel Penalty (rxcost) in dezentralen Hoods===
Zeile 67: Zeile 39:
===Konfiguration des Extra-Features "Babel über Mesh"===
===Konfiguration des Extra-Features "Babel über Mesh"===


Ein besonderes Feature dieser Software-Modifikation ist die Möglichkeit, mit verschlüsselten Babel-Verbindungen über Mesh zu peeren. Da solltet ihr aber keine zu großen Illusionen haben! Den eh schon stark ausgelasteten 2,4 GHz Funkraum teilt ihr euch mit allen Clients. Die Performance entspricht also in etwa dem, was eine Batman-Verbindung in einer V2 Hood hergibt.
Das besondere Feature dieser Software-Modifikation ist die Möglichkeit, mit verschlüsselten Babel-Verbindungen über Mesh zu peeren. Da solltet ihr aber keine zu großen Illusionen haben! Den eh schon stark ausgelasteten 2,4 GHz Funkraum teilt ihr euch mit allen Clients. Die Performance entspricht also in etwa dem, was eine Batman-Verbindung in einer "node" Hood hergibt.


====/etc/config/configuregateway====
====/etc/config/gateway====


Am Ende der Datei wird folgender Block angefügt, der Name des Interfaces kann nach Bedarf angepasst werden.
Am Ende der Datei wird folgender Block angefügt, der Name des Interfaces kann nach Bedarf angepasst werden.


{| role="presentation" class="wikitable mw-collapsible autocollapse"
{| role="presentation" class="wikitable mw-collapsible autocollapse"
| <strong>configuregateway</strong>
| <strong>gateway</strong>
|-
|-
| <pre>config babelpeer 'w2babel'
| <pre>config babelpeer 'w2babel'
Zeile 85: Zeile 57:
====Nach der Konfiguration====
====Nach der Konfiguration====


Die folgenden Änderungen müssen gemacht werden, nachdem das Script "configuregateway" erfolgreich ausgeführt wurde. Sie sind nicht updatefest und gehen bei jedem erneuten Aufruf von configuregateway verloren!
Die folgenden Änderungen müssen gemacht werden, nachdem das Script "configure-layer3" erfolgreich ausgeführt wurde. Sie sind nicht updatefest und gehen bei jedem erneuten Aufruf von configure-layer3 verloren!


Am Ende der Datei "/etc/config/wireless" wird folgender Block eingetragen. Dabei muss der Name des Interfaces und das Device (radio0 oder radio1) angepasst werden. Die Mesh-ID sollte einen Namen bekommen, der '''nicht''' das Wort "Freifunk" enthält, damit keine Clients versuchen sich darauf zu verbinden. Der Key muss mit dem Peering-Partner abgesprochen werden.
Am Ende der Datei "/etc/config/wireless" wird folgender Block eingetragen. Dabei muss der Name des Interfaces und das Device (radio0 oder radio1) angepasst werden. Die Mesh-ID sollte einen Namen bekommen, der '''nicht''' das Wort "Freifunk" enthält, damit keine Clients versuchen sich darauf zu verbinden. Der Key muss mit dem Peering-Partner abgesprochen werden.
Zeile 98: Zeile 70:
     option mode 'mesh'
     option mode 'mesh'
     option mesh_id 'fff_irgend_was'
     option mesh_id 'fff_irgend_was'
     option encryption 'psk2+aes'
     option encryption 'psk2/aes'
     option key '784e0K767.................'
     option key '784e0K767.................'
     option mesh_fwding '0'
     option mesh_fwding '0'

Aktuelle Version vom 30. April 2021, 21:01 Uhr

Verschlüsselte Babel-Verbindungen über Mesh

Dies ist die Beschreibung einer Firmware-Modifikation von Miki. Bisher ist das Feature nicht in die originale Freifunk Franken Firmware integriert, die modifizierte Firmware muss selber aus den Quellen gebaut werden.

Vertiefung: OpenWrt: 802.11s based wireless mesh network

Bauen

Gebaut wird nach dem README.md im Git [[1]], alternativ beschrieben auch hier im Wiki. Nach dem Schritt "./buildscript prepare" wird nun

./buildscript config openwrt

aufgerufen. Es erscheint ein Auswahldialog. Die gesuchten Einstellungen sind im Unterbereich "Network --->".

1) Zuerst wird "hostapd-mini" abgewählt < >.

Dialog "hostapd-mini abwählen"
Dialog "hostapd-mini abwählen"


2) Danach wird "wpad-mesh-openssl" angewählt, im selben Bereich weiter unten. Es genügt nicht, das Feature als Modul zu ergänzen, es muss mit <*> fest eingebunden werden.

Wenn die Änderungen gespeichert sind, geht es wie gewohnt mit "./buildscript build" weiter.

Konfiguration

Anleitungen im Wiki:

Richtwerte für Babel Penalty (rxcost) in dezentralen Hoods

Es wird empfohlen, die "rxcost" jeweils zur Hälfte auf beide Seiten des Peerings zu verteilen. Pro Link sollte maximal 16384 verwendet werden, damit auch bei vielen Hops das Maximum von 65535 nicht erreicht wird.

  • Ethernet: 96
  • Richtfunk
    • >100Mbit: 256
    • 30-100Mbit: 512
    • 10-30Mbit: 1024
    • bis 10Mbit: 4096
    • VPN: 4096 - 16384

Konfiguration des Extra-Features "Babel über Mesh"

Das besondere Feature dieser Software-Modifikation ist die Möglichkeit, mit verschlüsselten Babel-Verbindungen über Mesh zu peeren. Da solltet ihr aber keine zu großen Illusionen haben! Den eh schon stark ausgelasteten 2,4 GHz Funkraum teilt ihr euch mit allen Clients. Die Performance entspricht also in etwa dem, was eine Batman-Verbindung in einer "node" Hood hergibt.

/etc/config/gateway

Am Ende der Datei wird folgender Block angefügt, der Name des Interfaces kann nach Bedarf angepasst werden.

Nach der Konfiguration

Die folgenden Änderungen müssen gemacht werden, nachdem das Script "configure-layer3" erfolgreich ausgeführt wurde. Sie sind nicht updatefest und gehen bei jedem erneuten Aufruf von configure-layer3 verloren!

Am Ende der Datei "/etc/config/wireless" wird folgender Block eingetragen. Dabei muss der Name des Interfaces und das Device (radio0 oder radio1) angepasst werden. Die Mesh-ID sollte einen Namen bekommen, der nicht das Wort "Freifunk" enthält, damit keine Clients versuchen sich darauf zu verbinden. Der Key muss mit dem Peering-Partner abgesprochen werden.

In der Datei "/etc/config/network" kommen für das neue Interface zwei Blöcke mit Rules vor. Miki hat bei ihren Tests festgestellt, dass die Verbindung instabil war, wenn der Wert der Option "priority" genauso wie bei den anderen Babel Interfaces war. Sie hatte Erfolg damit, statt des Defaultwertes 31 den Wert 28 einzutragen. (Eine Erklärung für das Phänomen kennt Miki nicht.)

5 GHz Warnung

Ein Peering über Mesh wird in den meisten Fällen außerhalb geschlossener Gebäude stattfinden. Falls das Gerät 5 GHz unterstützt (z.B. AC-Mesh), muss daher normalerweise der 5 GHz Funkbereich deaktiviert werden! Die Freifunk-Firmware ist nicht zertifiziert und darf auf 5 GHz generell nicht im Freien verwendet werden.