Gateway-Firmware mit Babel über Mesh
Privater experimenteller Firmware-Fork!
Dies ist die Beschreibung einer Firmware-Modifikation von Miki. Ursprung ist die Freifunk-Franken-Firmware und deren verschiedene Varianten für dezentrale Gateways.
Der Quellcode ist in Github zu finden. (Mein dortiger Accountname: MaretaDagostino)
Aktuell empfohlener Softwarestand
Commit 21691839c vom 27.1.2019
Auf diesen Stand bezieht sich die folgende Auflistung. Achtung! Nicht auf dem Archer C60 V2 verwenden, da ist der Import noch nicht fertig.
Besondere Features, implementiert
- Verschlüsselte Babel-Verbindungen über Mesh möglich.
- 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":
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 "???":
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
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:
- Freifunk-Firmware auf TP-Link WR1043N(D) installieren
- Freifunk-Firmware auf Ubiquiti Unifi AC-Mesh installieren
- Installation der Gatewayfirmware, Hoodfile nach /etc/hoodfile kopieren
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"
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.
/etc/config/configuregateway
Am Ende der Datei wird folgender Block angefügt, der Name des Interfaces kann nach Bedarf angepasst werden.
configuregateway |
config babelpeer 'w2babel' option iface 'w2babel' option type 'wireless' option rxcost '2048' |
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!
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.
wireless |
config wifi-iface 'w2babel' option device 'radio0' option network 'w2babel' option ifname 'w2babel' option mode 'mesh' option mesh_id 'fff_irgend_was' option encryption 'psk2+aes' option key '784e0K767.................' option mesh_fwding '0' |
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.)
network |
config rule 'w2babel_rule' option in 'w2babel' option lookup '10' option priority '28' config rule6 'w2babel_rule6' option in 'w2babel' option lookup '10' option priority '28' |
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.
- Frequenzbereiche und deren Zulassungsbedingungen sofern für Freifunk relevant.