Gateway-Firmware mit Babel über Mesh

__TOC__
=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 [], 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 < >.
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:
* Freifunk-Firmware installieren
* Installation der Layer3-Firmware
* Layer3-Firmware Konfiguration
===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.
gateway
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 "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.
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.