Show pagesourceOld revisionsBacklinksBack to top × Table of Contents 802.11s-basiertes Mesh-Funknetz Status Konfiguration Unterstützung durch WLAN-Hardware Die Kommandozeile / CLI verwenden Überprüfen Einen einzelnen Peer vom Meshen abhalten Hintergrundinformation 802.11s-basiertes Mesh-Funknetz 802.11s ist ein offener Standard zur drahtlosen Verbindung von Geräten, ohne dafür Infrastruktur aufbauen zu müssen. Er arbeitet am Layer 2 und stellt sicher, dass alle Knoten einander wie auf einem gebridgten Layer-2-Netz sehen können, als ob sie an einen gemeinsamen Switch angesteckt wären. Die Layer 3-Infrastruktur funktioniert darauf aufbauend, z.B. IP-Routing und DHCP-Clients, aber auch komplexere Dienste wie Batman, Bird, OLSR usw. Status 802.11s funktioniert verlässlich seit OpenWrt 19.07 und später, inklusive Authentifizierung und Verschlüsselung - solange Hardware- bzw. Treiberunterstützung vorhanden ist und wpad-mesh-openssl (oder ähnliches) installiert ist. Es scheint (bestätigt in v19.07.4) ein Problem mit der Weiterleitung von ARP zu geben - die Mesh-Funktion funktioniert nur verlässlich von Mesh-Points aus, welche in Funkreichweite des Mesh-Portals (MPP) sind. Näheres hierzu unter https://forum.openwrt.org/t/bug-report-802-11s-mesh-v19-07-4/78524/4 Konfiguration Zunächst ist es nötig das standardmäßig installierte wpad wie folgt zu entfernen # opkg remove wpad-mini # opkg remove wpad-basic Dieses wird nun durch die Abhängigkeit wpad-mesh-openssl ersetzt: # opkg install wpad-mesh-openssl Bearbeite /etc/config/wireless und versichere dich dass: radio0 nicht deaktiviert ist, radio0 auf allen Geräten, die am Mesh teilnehmen sollen, kompatibel konfiguriert ist (selber Kanal, selbe Mesh-ID, selbes Passwort) und ein iface-Eintrag entsprechend folgender Zeilen vorhanden ist: config wifi-iface 'mesh' option network 'mesh' option device 'radio0' option mode 'mesh' option mesh_id 'mein-Meshnetz' # beliebig wählbar, aber identisch auf allen Geräten, die im selben Mesh sein sollen (wie auch das Passwort) option encryption 'psk2/aes' # oder 'none', um keine Verschlüsselung zu verwenden option key 'mein-geheimes-Passwort' Hinweis: Der Endgerätezugang wird durch eine Bridge zwischen 'ap' und dem 'mesh'-Interface hergestellt. Um im Mesh ein anderes Routingprotokoll wie z.B. OLSR zu verwenden, deaktiviere das 802.11s-eigene Routingprotokoll mit option mesh_fwding '0' . Für eine gesamte Liste an Mesh-Parametern können die folgenden Werte im Quelltext von mac80211.sh eingesehen werden: MP_CONFIG_INT MP_CONFIG_BOOL MP_CONFIG_STRING Alternativ hilft folgender Befehl: # iw dev <devname> get mesh_param um eine Liste von verfügbaren Mesh-Parametern zu erhalten, diese ist jedoch nicht dokumentiert. Danach noch das WLAN reinitialisieren und testen ob es funktioniert: # wifi # logread -l 20 -f # iw dev wlan0 station dump Unterstützung durch WLAN-Hardware Die 802.11s-Unterstützung hängt vom WLAN-Treiber ab. Die meisten aktuellen Open-Source-Treiber funktionieren. Deine Hardware unterstützt 802.11s-Mesh, wenn unter den unterstützten Interface-Modi “mesh point” gelistet ist. iw list | grep "Supported interface modes" -A 9 ... Supported interface modes: * IBSS * managed * AP * AP/VLAN * WDS * monitor * mesh point * P2P-client * P2P-GO ... Beispiel: ein Router mit ath9k iw list ... valid interface combinations: * #{ managed, WDS } <= 2048, #{ AP, mesh point } <= 8, #{ P2P-client, P2P-GO } <= 1, #{ IBSS } <= 1, total <= 2048, #channels <= 1, STA/AP BI must match * #{ IBSS, AP, mesh point } <= 1, total <= 1, #channels <= 1, STA/AP BI must match, radar detect widths: { 20 MHz (no HT), 20 MHz } ... Beispiel: ein USB-Stick mit ath9k_htc iw list ... valid interface combinations: * #{ managed, P2P-client } <= 2, #{ AP, mesh point, P2P-GO } <= 2, total <= 2, #channels <= 1 ... Die Kommandozeile / CLI verwenden iw ist ein nl80211-basierted Kommandozeilenprogramm zur Konfiguration von WLAN-Hardware. Mehr erfahren... Erstelle ein neues Interface namens “mesh0” iw phy phy0 interface add mesh0 type mp mesh_id meinmesh Stelle sicher, dass das neue Interface auch wirklich existiert ifconfig -a | grep mesh0 mesh0 Link encap:Ethernet HWaddr 00:18:39:14:48:B5 Schalte das Interface mesh0 aktiv ifconfig mesh0 up Weise dem Interface eine IP-Adresse zu, beispielsweise 10.0.0.1 ifconfig mesh0 10.0.0.1 Standardmäßig verwenden Mesh Points den WLAN-Kanal 1 und versuchen automatisch Links zu anderen Meshknoten mit derselben Mesh-ID am selben Kanal herzustellen. Überprüfen Verwende den iw-Befehl um Peer-Links oder die Tabelle der erreichbaren Nodes in Deinem Mesh anzuzeigen. iw dev $MESH_IFACE station dump iw dev $MESH_IFACE mpath dump Beispiel: iw dev $MESH_IFACE station dump Station 00:15:6d:84:14:10 (on mesh) inactive time: 1320 ms rx bytes: 352 rx packets: 4 tx bytes: 174 tx packets: 2 signal: -61 dBm tx bitrate: 1.0 MBit/s mesh llid: 32577 mesh plid: 15969 mesh plink: ESTAB Station 00:15:6d:84:14:09 (on mesh) inactive time: 3370 ms rx bytes: 1064 rx packets: 12 tx bytes: 545 tx packets: 7 signal: -53 dBm tx bitrate: 1.0 MBit/s mesh llid: 41036 mesh plid: 24435 mesh plink: ESTAB Einen einzelnen Peer vom Meshen abhalten Dazu ist möglicherweise das Paket iw-full nötig! Verwehre einem Peer das Meshen, basierend auf seiner MAC-Adresse iw dev $MESH_IFACE station set $MAC_TO_BLOCK plink_action block Überprüfe wie oben gezeigt mit iw dev $MESH_IFACE station dump mesh plink: BLOCKED Peer wieder freigeben: iw dev $MESH_IFACE station set $MAC_TO_UNBLOCK plink_action open Laut dieser Quelle bleibt die plink_action nach Reconnects von Mesh-Links nicht erhalten. Hintergrundinformation Ein guter Hintergrundartikel von CWNP https://wireless.wiki.kernel.org/en/developers/Documentation/ieee80211/802.11s Open80211s Mailingliste This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.OKMore information about cookies Last modified: 2021/01/05 08:08by aaaaalbert