Add 802.11s based wireless mesh network

Submitted by Miki on April 24, 2021, 3:57 p.m.

Details

Message ID a1ab7489-707f-d02a-da54-00373dd159b3@michelaweb.eu
State New
Headers show

Commit Message

Miki April 24, 2021, 3:57 p.m.
with OpenSLL to use psk2/aes encryption. Useful as Batman replacement
using layer3 peerings if no separate peering channel/hardware is possible.
---
 bsp/ar71xx-generic/.config           | 1 -
 bsp/ath79-generic/.config            | 1 -
 bsp/ath79-tiny/.config               | 1 -
 src/packages/fff/fff-layer3/Makefile | 3 ++-
 src/packages/fff/fff-node/Makefile   | 3 ++-
 5 files changed, 4 insertions(+), 5 deletions(-)

Patch hide | download patch | download mbox

diff --git a/bsp/ar71xx-generic/.config b/bsp/ar71xx-generic/.config
index f505d86..722c431 100644
--- a/bsp/ar71xx-generic/.config
+++ b/bsp/ar71xx-generic/.config
@@ -26,7 +26,6 @@  CONFIG_CLEAN_IPKG=y
 # CONFIG_FASTD_ENABLE_METHOD_GENERIC_UMAC is not set
 CONFIG_KERNEL_SQUASHFS_FRAGMENT_CACHE_SIZE=1
 # CONFIG_PACKAGE_ALFRED_VIS is not set
-CONFIG_PACKAGE_hostapd-mini=y
 CONFIG_PACKAGE_iwinfo=m
 CONFIG_PACKAGE_libiwinfo=m
 CONFIG_PACKAGE_opkg=m
diff --git a/bsp/ath79-generic/.config b/bsp/ath79-generic/.config
index 029f57f..a358d4c 100644
--- a/bsp/ath79-generic/.config
+++ b/bsp/ath79-generic/.config
@@ -74,7 +74,6 @@  CONFIG_CLEAN_IPKG=y
 # CONFIG_FASTD_ENABLE_METHOD_GENERIC_UMAC is not set
 CONFIG_KERNEL_SQUASHFS_FRAGMENT_CACHE_SIZE=1
 # CONFIG_PACKAGE_ALFRED_VIS is not set
-CONFIG_PACKAGE_hostapd-mini=y
 CONFIG_PACKAGE_iwinfo=m
 CONFIG_PACKAGE_libiwinfo=m
 CONFIG_PACKAGE_opkg=m
diff --git a/bsp/ath79-tiny/.config b/bsp/ath79-tiny/.config
index 8a394e1..4ebd4b2 100644
--- a/bsp/ath79-tiny/.config
+++ b/bsp/ath79-tiny/.config
@@ -48,7 +48,6 @@  CONFIG_CLEAN_IPKG=y
 # CONFIG_FASTD_ENABLE_METHOD_GENERIC_UMAC is not set
 CONFIG_KERNEL_SQUASHFS_FRAGMENT_CACHE_SIZE=1
 # CONFIG_PACKAGE_ALFRED_VIS is not set
-CONFIG_PACKAGE_hostapd-mini=y
 CONFIG_PACKAGE_iwinfo=m
 CONFIG_PACKAGE_libiwinfo=m
 CONFIG_PACKAGE_opkg=m
diff --git a/src/packages/fff/fff-layer3/Makefile
b/src/packages/fff/fff-layer3/Makefile
index ce3d200..bb9f0c5 100644
--- a/src/packages/fff/fff-layer3/Makefile
+++ b/src/packages/fff/fff-layer3/Makefile
@@ -36,7 +36,8 @@  define Package/fff-layer3
              +mtr \
              +tc \
              +tcpdump \
-             +vxlan
+             +vxlan \
+             +wpad-mesh-openssl
 endef
 
 define Package/fff-layer3/description
diff --git a/src/packages/fff/fff-node/Makefile
b/src/packages/fff/fff-node/Makefile
index 6a6a639..de9adc5 100644
--- a/src/packages/fff/fff-node/Makefile
+++ b/src/packages/fff/fff-node/Makefile
@@ -14,7 +14,8 @@  define Package/fff-node
              +fff-fastd \
              +fff-firewall \
              +fff-hoods \
-             +fff-uradvd
+             +fff-uradvd \
+             +hostapd-mini
 endef
 
 define Package/fff-node/description

Comments

Miki April 24, 2021, 4:25 p.m.
Hallo,

anscheinend ist Patchwork inzwischen obsolet, ich kümmere mich dann
heute noch um einen Pull-Request auf Git.

Motivation: Was soll der Patch bezwecken?

Wenn separate Hardware verfügbar ist, um das Peering auf einem anderen
Kanal zu machen, ist das immer die bessere Lösung. Anderenfalls kann mit
dem Paket "wpad-mesh-openssl" Babel verschlüsselt mit anderen Layer3
Routern über WLAN meshen. (Mit "wpad-mesh-wolfssl" konnte ich zwar einen
blauen Strich im Monitoring erzeugen, schaffte aber keinen Datenverkehr.
Das kann natürlich an meiner Unfähigkeit liegen, erklärt aber die Wahl
des größeren Pakets.)

Später mit einem weiteren Patch könnte die /etc/config/wireless
vielleicht automatisch und updatefest konfiguriert werden, so dass auch
dieses Feature zentral über /etc/config/gateway konfiguriert werden
könnte. Vorerst möchte ich das erst mal grundsätzlich zur Diskussion
stellen, weil das Paket ein ziemlich großer Brocken ist.

Konfiguration, vor configure-layer3, zusätzlicher Block:

> /etc/config/gateway

config babelpeer 'w2babel'
    option iface 'w2babel'
    option type 'wireless'
    option rxcost '3072'  # Beispielwert

Konfiguration, nach configure-layer3, zusätzlicher Block, nicht updatefest:

> /etc/config/wireless

config wifi-iface 'w2babel'
    option device 'radio0'  # Gegebenenfalls anpassen
    option network 'babelpeer_w2babel'
    option ifname 'w2babel'
    option mode 'mesh'
    option mesh_id 'w2mesh'
    option encryption 'psk2/aes'
    option key 'SehrGeheimesPasswort4711'  # Natürlich anpassen
    option mesh_fwding '0'

Modifikation von '31' auf etwas kleineres, z.B. '28'. Ich weiß nicht,
warum das hilft, aber sonst ist die Verbindung nicht stabil.
Die beiden Blöcke werden automatisch angelegt.

> /etc/config/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'

Viele Grüße,
Miki
Miki April 24, 2021, 10:47 p.m.
Dieser Patch kann so leider nicht allgemein verwendet werden!

Beim Bauen der "node" Variante wird über das Makefile für alle BSP die
Auswahl /hostapd-mini/ erzwungen. Bei manchen BSP führt das aber zu
Konflikten mit anderen dort ausgewählten Paketen.

Deshalb habe ich auf Git den Pull-Request geschlossen. Schade. :-(
Vielleicht kennt ja jemand eine Methode, wie man im Makefile eine
Abhängigkeit explizit abwählen kann? Dann könnte man in den drei BSP das
hostapd-mini stehen lassen und bräuchte den Node-Zweig des Makefiles
nicht anfassen.
Miki April 25, 2021, 7:12 p.m.
Bitte ignoriert diesen Patch!

Wer das eigentliche Feature testen will, kann schon über "./buildscript
config openwrt" manuell "hostapd-mini" abwählen und "wpad-mesh-openssl"
selektieren.

Ich versuche jetzt einen ganz anderen Ansatz (über verschiedene BSP für
Node und Layer3). Wie hier einzelne Optionen ein/aus schalten würde eine
separate Verwaltung abhängig vom selektierten BSP bedeuten, und da denke
ich eine übersichtlichere Methode gefunden zu haben.

Jemand mit Patchwork-Account kann auch gerne diesen Patch dort löschen,
auf "closed" setzen oder sonstwie in die Tonne klopfen.
Vielen Dank,
Miki
Miki April 30, 2021, 7:14 p.m.
Hallo,

das Umschalten zwischen Babel-über-Mesh und zurück, sowie die
Übertragung auf dem Mesh-Weg haben mich nicht wirklich überzeugt. Es
wären weitere Untersuchungen nötig, warum das so ist, die ich mir
alleine nicht zutraue. Wenn es geht, dann geht es gut. Aber man muss zum
Beispiel den Router booten, um wieder auf die Normalverbindung zurück zu
kommen.

> Ich versuche jetzt einen ganz anderen Ansatz (über verschiedene BSP für
> Node und Layer3). Wie hier einzelne Optionen ein/aus schalten würde eine
> separate Verwaltung abhängig vom selektierten BSP bedeuten, und da denke
> ich eine übersichtlichere Methode gefunden zu haben.

Diese andere Methode würde erfordern, verschiedene BSP für Node und für
Layer3 zu verwenden. Nachdem sich schon bisher seit ca. 2 Jahren niemand
für dieses Feature interessiert, das notwendige Paket unser Image um ca.
25% vergrößern würde, und noch Nacharbeiten erforderlich wären, glaube
ich nicht wirklich dran, dass dies Eingang in die
Freifunk-Franken-Firmware findet.

Deshalb habe ich mich entschieden, das Projekt zu begraben. Wer eine
solche Installation will, muss sie dann eben für den eigenen Router
selber bauen. Die Stelle im Wiki, wo früher mein alter Fork beschrieben
war (der jetzt gelöscht ist, da eh zu alt), habe ich entsprechend angepasst.
https://wiki.freifunk-franken.de/w/Gateway-Firmware_mit_Babel_%C3%BCber_Mesh

> Jemand mit Patchwork-Account kann auch gerne diesen Patch dort löschen,
> auf "closed" setzen oder sonstwie in die Tonne klopfen.

Das gilt natürlich nach wie vor.

Liebe Grüße,
Miki
Michael Fritscher June 30, 2021, 11:30 a.m.
Am 2021-04-25 00:47, schrieb Miki:
> Beim Bauen der "node" Variante wird über das Makefile für alle BSP die
> Auswahl /hostapd-mini/ erzwungen. Bei manchen BSP führt das aber zu
> Konflikten mit anderen dort ausgewählten Paketen.
> 
> Deshalb habe ich auf Git den Pull-Request geschlossen. Schade. :-(

Moin,

nunja, ab der nächsten OpenWRT Version dürfte mit den 32/4 Geräten eh 
Schluss sein, dann kann man auch einfach global auf die "große" 
hostapd-mini Variante umsteigen. Archiviere also deinen (interessanten) 
Patchset mal :-)

Viele Grüße
Michael Fritscher