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

Aus Freifunk Franken
Wechseln zu:Navigation, Suche
Keine Bearbeitungszusammenfassung
K (→‎Verschlüsselte Babel-Verbindungen über Mesh: Link zu vertiefender OpenWrt Erklärseite ergänzt.)
 
(2 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 sind inzwischen veraltete Stände der 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. (Ihr dortiger Accountname: MaretaDagostino). Commit '''b9bbdac''' vom '''9.2.2019''' mit dem Tag '''"20190209-beta"''', auf diesen Stand bezieht sich die folgende Auflistung.
Vertiefung: [https://openwrt.org/docs/guide-user/network/wifi/mesh/80211s OpenWrt: 802.11s based wireless mesh network]


==Besondere Features, implementiert==
==Bauen==


* Verschlüsselte Babel-Verbindungen über Mesh möglich.
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 --->".
* Webinterface angepasst.


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


* Updates funktionieren nur auf Routern mit Hardware-Bridge zuverlässig, das sind meistens Geräte mit 5 Ports (z.B. WR1043).
[[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.


==Ungetestet==
Wenn die Änderungen gespeichert sind, geht es wie gewohnt mit "./buildscript build" weiter.
 
* Fast alle Routermodelle.
* Funktionsweise und Wirksamkeit der Bandbreitenbegrenzung.
* ...sicherlich vieles andere mehr...
 
==Historie==
 
* Commit 1d301d0dd vom 28.10.2018, Tag "20181028-beta":<br>
Erste real eingesetzte Version. Codebasis ist hier die Firmware von Adrian, das Hoodfile muss nach /www/hood/keyxchangev2data kopiert werden.
 
* Commit b9bbdac vom 9.2.2019, Tag "20190209-beta":<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.
 
* ToDo: Anpassen an die aktuelle Release der Freifunk Franken Original-Firmware, vermutlich ist der Fork inzwischen obsolet! Es wird genügen, vor dem Bauen der Original-Firmware ein zusätzliches OpenWrt Paket zu selektieren.


==Konfiguration==
==Konfiguration==
'''Achtung:''' Auf dem 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 dem 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 54: 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/gateway====
====/etc/config/gateway====
Zeile 72: 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 85: 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.