Unterbrechungsfreies WLAN: Roaming (Fast Transition)

 

Hinter dem Marketingbegriff Mesh-WLAN verbirgt sich häufig der Wunsch nach einem WLAN das einfach überall im Haus funktioniert. Doch was ist eigentlich ein Mesh-WLAN? Und was wird wirklich benötigt, damit WLAN überall und auch während dem Wechsel von einer Empfangsstation zur anderen funktioniert? Mein Setup besteht aus zwei Access-Points, welche als Einheit eine einzige WLAN-SSID zur Verfügung stellen. Als Access-Points verwende ich Geräte von unterschiedlichen Herstellern und OpenWrt als Firmware. Die Access-Points liefern einen unterbrechungsfreien Empfang, wenn ich mich von einem Stockwerk zum anderen bewege und wechseln beim Verlassen des 5GHz-Empfangsbereichs auf eine langsamere 2,4GHz-Verbindung, damit das WLAN überall bestmöglich funktioniert. Am Ende des Artikels erkläre ich meine Einstellungen im Detail.

Mesh-WLAN

Der Begriff Mesh-WLAN ist nicht eindeutig definiert, dennoch werden damit mehrere WLAN-Geräte verstanden, die zusammen ein einziges WLAN zur Verfügung stellen. Klassische Mesh-WLAN-Systeme kommunizieren untereinander meist auch über WLAN, was nicht für alle Gegebenheiten geeignet ist. Als Beispiel könnte eine LAN-Verkabelung zwischen verschiedenen Stockwerken eines Gebäudes oft eine schnellere und stabilere Verbindung der WLAN-Access-Points untereinander gewährleistet. 

Was brauche ich wirklich fĂĽr ein unterbrechungsfreies WLAN?

Das, was sich die meisten mit dem Begriff Mesh-WLAN erwarten, ist eigentlich die Funktion 802.11r Fast Basic Service Set (BSS) Transition: Die Basis damit Clients möglichst schnell von einem WLAN Access Point zum anderen wechseln können: ohne Unterbrechung. Abhängig von der eingesetzten Hardware kann die Verbindung der Access-Points untereinander über unterschiedlichste Verbindungen stattfinden, als Beispiel WLAN, PowerLine oder einer LAN-Verkabelung. Die Entscheidung welcher Access-Point für die Verbindung verwendet wird liegt beim Client. Auch wenn aktuelle Geräten zusammen mit Access-Points und 802.11r bereits eine sehr gute Roaming-Funktionalität besitzen, kann deren Verhalten beim Einsatz von 802.11k und 802.11v (Seamless Roaming: Access Point und Band Steering) weiter optimiert werden. 

Wie funktioniert 802.11r?

Bei mehreren Access Points mit derselben SSID und demselben Key, entscheidet das Endgerät, wann es auf einen anderen Access-Point mit einem besseren Empfang wechseln soll. Verbindet sich ein Endgerät mit einem WLAN muss dieses sich zunächst Authentifizieren und eine IP-Adresse vom DHCP-Server holen, was ein wenig Zeit kostet. Normalerweise müsste das Gerät beim Wechsel von einem Access Point zum anderen erneut den kompletten Anmeldeprozess durchlaufen und den Datenverkehr anhalten, bis die Verbindung abgeschlossen ist. Der Standard 802.11r vereinfacht den Verbindungsprozess, indem der Anmeldevorgang beim Wechsel von einem Access Point zum anderen verkürzt wird. Zeitintensive Aufgaben werden dabei weggelassen. Ohne der Notwendigkeit eine neue IP-Adresse vom DHCP-Server zu holen, kann der Wechsel von einem Access-Point soweit reduziert werden, dass der Verbindungswechsel zu keiner spürbaren Unterbrechung führt.

Was ist Seamless Roaming?

Des Öfteren taucht auch der Begriff Seamless Roaming für den nahtlosen Wechsel von einer Funkzelle zur nächsten auf. Neben dem Standard 802.11r werden zusätzlich meist die Standards 802.11k und 802.11v eingesetzt, welche den Clients Informationen zu benachbarten WLAN Access Points zur Verfügung stellen damit diese in der Lage sind bessere Entscheidungen für die Verbindung treffen zu können. 

Was ist Access Point - Steering?

Access Point Steering ist eine Routerfunktion die alle WLAN-AccessPoints und deren verbundener Endgeräte überwacht und die Endgeräte aktiv informiert, falls ein anderer Access-Point eine deutlich bessere Verbindung zur Verfügung stellen kann. Technisch gesehen stehen hinter dem Access Point Steering die Standards 802.11r, 802.11k und 802.11v.

Was ist Band Steering?

Für das WLAN kommen zwei verschiedene Frequenzbänder zum Einsatz: 2,4GHz und 5GHz. Das 5GHz-Band liefert einen höheren Datendurchsatz als das ältere 2,4GHz-Band, besitzt aber eine geringere Reichweite. Das sogenannte Band Steering ist eine Router-Funktion welche die Endgeräte dabei unterstützt das gerade am besten geeignete Frequezband für die Verbindung zu verwenden und somit den meisten Durchsatz und die beste Verbindungsqualität zu liefern. 

Mein Setup: nahtloser WLAN-Empfang über 2 Stockwerke mit 3 verschiedenen Access Points. 

Die beiden Stockwerke meines Hauses sind durch eine Betondecke getrennt, wodurch es nicht möglich ist einen einzelnen WLAN-Access-Point so zu platzieren, dass dieser überall ausreichend WLAN-Empfang zur Verfügung stellen kann. Nachdem der Router meines Providers nur begrenzte Möglichkeiten bietet, habe ich das WLAN darauf deaktiviert und verwende das Gerät rein für die Internetverbindung. Das WLAN im Erdgeschoss wird von einem zusätzlichen Router versorgt, diesen habe ich zentral im Erdgeschoss aufgestellt. Um den WLAN-Empfang im ersten Stock zu verbessern, habe ich dort einen weiteren Access-Point im Vorhaus platziert und zusätzlich einen Access Point im Wohnzimmer. Die Verbindung der Geräte erfolgt über eine LAN-Verkabelung, ähnlich dem folgenden Versuchsaufbau:

Siehe auch: Verkabelung, Variante 2

Als Router verwende ich einen bereits in die Jahre gekommenen aber immer noch schnellen Linksys WRT3200ACM und als AccessPoints einen relativ neuen und relativ günstigen Netgear WAC104 sowie einen alten Netgear EX3700. Auf den drei Geräten habe ich die neueste OpenWrt-Firmware installiert: 23.05.4. Außerdem habe ich für andere WLANs mehrere TP-Link RE650 v2, sowie Zyxel NWA50AX erfolgreich in Betrieb genommen. Sollte ich in Zukunft einen weiteren Access-Point benötigen, zum Beispiel um den Empfang im Keller zu verbessern, kann ich dafür eine beliebige Hardware mit OpenWrt-Unterstützung verwenden, siehe: OpenWrt Hardware Empfehlung - verfügbare Geräte 2024. 

Im Artikel "LAN & WLAN im Heimnetzwerk: der ultimative Guide" habe ich einfach 802.11r in den OpenWrt-Optionen aktiviert, was bereits einen unterbrechungsfreien Wechsel von einer Empfangszone zur anderen ermöglicht. Zudem kann den Geräten mit dem Aktivieren von 802.11k und dem Einsatz eines Client Steering Deamon geholfen werden, möglichst immer die beste Verbindung zu verwenden. 

Voraussetzung: OpenWrt-Wpad Full

Damit ich alle WLAN-Funktionen von OpenWrt verwenden kann, habe ich wpad-basic-wolfssl mit der Vollversion: wpad ersetzt. 

 

Sollte das Gerät, wie zum Beispiel beim TP-Link RE650v2 weniger als 1MB Storage Disk Space besitzen, kann das Paket alternativ zu "Software" direkt in die Firmware integriert werden, siehe: OpenWrt Upgrade einfach: Software und Einstellungen behalten

WLAN Einstellungen

Die Bash-Befehle für die hier vorgestellten WLAN-Einstellungen können auch einfach über das Terminal gesetzt werden, siehe:OpenWRT WLAN FT-Konfiguration - Online generieren 

Auf allen Access Points sollte fĂĽr jeweils 2,4GHz und 5GHz ĂĽberall dieselbe SSID, VerschlĂĽsselung, und derselbe Key verwendet werden. Der WLAN-Name befindet sich dazu im Reiter: "General Setup"

Die Sicherheitseinstellungen und das WLAN-Passwort werden im Reiter: "Wireless Security" eingestellt:

Bei meinem Setup verwende ich WPA2-PSK und AES als VerschlĂĽsselung. Die VerschlĂĽsselung auf "auto" machte bei bestimmten Clients Probleme.

Advanced Settings: DTIM Interval 1,2 oder 3?

Wird als DTIM Interval 1 verwendet, sendet der AP mit jedem Beacon zusätzlich Informationen zum WLAN-Netzwerk über Broadcast und Multicast Frames. Der Standard DTIM Interval von OpenWrt ist 2. Apple empfiehlt für deren Geräte einen DTIM Interval von 3, da sich ein höherer Wert positiv auf den Standby-Stromverbrauch auswirkt. Bestimmte Hersteller verwendet für das 2,4GHz Netzwerk einen DTIM Interval von 1 und für das 5GHz Netzwerk einen Interval von 3.

WLAN Roaming Einstellungen

Falls nicht bereits geschehen, sollte in den WLAN-Einstellungen aller Interfaces mit demselben WLAN-Key 802.11r Fast Transition aktiviert werden:

Wichtig ist zudem, dass auf allen Access Points dieselbe Mobility Domain - in Form eines 4-stelligen Hex-Codes - hinterlegt wird. Nachdem OpenWrt hier "4f57" auf allen Geräten als Standardwert vorgibt, muss die Mobility Domain nicht zwingend angegeben werden.

"FT over the Air" sollte anstelle von "FT over DS" verwendet werden, damit auch Apple-Geräte ohne Probleme funktionieren. Für WPA2 und "FT over the Air" wird die Einstellung "Generate PMK locally" empfohlen. Alternativ kann "Generate PMK locally deaktiviert werden, wenn R0 und R1 Key Listen verwendet werden, siehe: OpenWrt: Externe R0 und R1 Key Holder erzeugen - online. Wer UCI-Befehle im Terminal bevorzugt, sollte einen Blick auf den Online-Helper werfen: OpenWRT WLAN FT-Konfiguration - Online generieren

Wie bereits im Artikel LAN & WLAN im Heimnetzwerk: der ultimative Guide beschrieben, reicht das Aktivieren der "802.11r Fast Transition" - Option aus, damit sich die Geräte ohne Unterbrechung beim Wechsel von einer Empfangszone zur anderen verbinden. Die Verantwortung für den Wechsel auf eine andere Empfangszone liegt dabei rein beim Endgerät. Für eine zusätzliche Unterstützung seitens Router kann ein sogenannter Client Steering Deamon eingerichtet werden.

Client Steering

Der Client-Steering Deamon tauscht die Verbindungsinformationen mit den anderen Access Points aus und kann aktiv in das Verhalten der WLAN-Clients eingreifen. Für OpenWrt gibt es zwei verschiedene Client-Steering Deamon: usteer und dawn, beide benötigen die folgenden Einstellungen in den WLAN-Settings. 

(Die Menüpunkte unter Interface Configuration / WLAN Roaming für 802.11k werden erst nach dem Aktivieren von WPad-Full und einem Neustart des Routers sichtbar). 

FĂĽr das Verwenden von "usteer" reicht ein einfaches Installieren der des gleichnamigen Paketes "usteer":

Client Steering Daemon: usteer

"usteer" kann per Terminal, oder ĂĽber die GUI als Software-Paket auf allen Access Points installiert werden:

 opkg update && opkg install usteer luci-app-usteer

luci-app-usteer bietet einen Ăśberblick in der GUI welche Clients sich gerade auf welchem Access Point verbunden haben, bez. ĂĽber die "Hearing map": Welcher Client auf welchem Access Point sichtbar ist. AuĂźerdem zeigt die Client-List, ob alle Access Points fĂĽr einen WLAN-Empfang bereit sind:

Damit AP Steering funktioniert, benötigt Usteer zumindest einen Wert für "signal_diff_threshold"

Zudem muss "roam_scan_snr" gesetzt werden damit Clients Scans fĂĽr Roaming angestoĂźen werden.

Zusätzlich habe ich auf meinen Geräten noch diese beiden Einstellungen gesetzt:

In den Einstellungen (Settings) kann Usteer zudem auf ein bestimmtes WLAN beschränkt werden:

Siehe dazu auch die offizielle Dokumentation und eine entsprechende Diskussion im OpenWRT-Forum.

Eine Alternative zu "usteer" kann für das Seamless Roaming auch "dawn" verwendet werden. Ich habe dawn eine kurze Zeit mit den Standardeinstellungen getestet: also nur die usteer-Pakete: "usteer" und "luci-app-usteer" gegen "dawn" und "luci-app-dawn" getauscht. Das Band Steering hat bei mir mit dawn etwas besser funktioniert, dafür finde ich die GUI-Oberfläche von Usteer wesentlich übersichtlicher.

Einstellungen direkt im Terminal

Zwar können in den neuesten OpenWrt-Versionen alle relevanten Einstellungen auch in der Verwaltungsoberfläche eingestellt werden, dennoch bietet das Terminal mitunter die Möglichkeit die Einstellungen schneller zu setzen, oder von einem Gerät zum anderen zu übertragen. 

Das direkte Ändern der Einstellungen über das Terminal setzt eine Verbindung mit Putty oder einem anderen SSH-Client auf alle Router oder Access Points, bzw. auf deren IP-Adresse voraus:

Im Terminal können die WLAN-Einstellungen mit dem folgenden Befehl bearbeitet werden:

vi /etc/config/wireless

Für die Bedienung des Terminal-Editors VI, siehe: VI Editor - Befehle.

Die Einstellungen können zudem über UCI-Befehle im Terminal gesetzt werden. Hier meine aktuellen Einstellungen inkl. der Möglichkeit diese per Online Wizard für das eigene Setup anzupassen: OpenWRT WLAN FT-Konfiguration - Online generieren

Und: funktioniert es? Kontrolle im System Log

Bei der ersten Verbindung schaut die Anmeldung am Access-Point wie folgt aus: Das Smartphone meldet sich ĂĽber einen 4-Wege-Handshake an und bekommt vom DHCP-Server eine IP-Adresse:

OpenWrt hostapd: phy0-ap0: STA 11:22:33:44:55:00 IEEE 802.11: associated (aid 2)
OpenWrt hostapd: phy0-ap0: AP-STA-CONNECTED 11:22:33:44:55:00 auth_alg=open

OpenWrt hostapd: phy0-ap0: STA 11:22:33:44:55:00 RADIUS: starting accounting session 235E20F50584CA9B
OpenWrt hostapd: phy0-ap0: STA 11:22:33:44:55:00 WPA: pairwise key handshake completed (RSN)
OpenWrt hostapd: phy0-ap0: EAPOL-4WAY-HS-COMPLETED 11:22:33:44:55:00

...

OpenWrt dnsmasq-dhcp[1]: DHCPREQUEST(br-lan) 192.168.1.122 11:22:33:44:55:00
OpenWrt dnsmasq-dhcp[1]: DHCPACK(br-lan) 192.168.1.122 11:22:33:44:55:00 A53-von-Bernhard

OpenWrt hostapd: phy0-ap0: STA 11:22:33:44:55:00 IEEE 802.11: authenticated

Die Verbindungen in Reichweite eines Gerätes und mit welchem der Access Points die jeweiligen Geräte verbunden sind, kann auch in der OpenWrt-GUI "Network", "Usteer" angezeigt werden:

Ist ein anderer Access Point mit einem besseren Empfang in Reichweite, wechselt das Gerät ohne spürbarer Unterbrechung mit einer abgekürzten Anmeldung, 

OpenWrtWZ usteer: usteer event=auth_req_accept node=hostapd.phy0-ap0 sta=11:22:33:44:55:00 signal=-62
OpenWrtWZ usteer: usteer event=assoc_req_accept node=hostapd.phy0-ap0 sta=11:22:33:44:55:00 signal=-64
OpenWrtWZ hostapd: phy0-ap0: STA 11:22:33:44:55:00 IEEE 802.11: associated (aid 1)
OpenWrtWZ hostapd: phy0-ap0: AP-STA-CONNECTED 11:22:33:44:55:00 auth_alg=ft

woraufhin die Verbindung zum ursprĂĽnglichen Access Point getrennt wird:

OpenWrt hostapd: phy0-ap0: AP-STA-DISCONNECTED 11:22:33:44:55:00
OpenWrt hostapd: phy0-ap0: STA 11:22:33:44:55:00 IEEE 802.11: disassociated due to inactivity

Bestimmte Clients, speziell nicht mobile oder ältere Geräte, sind mitunter nicht in der Lage ohne einem erneuten 4-Wege-Handshake von einem Access Point zum anderen zu wechseln. Nachdem stationäre Geräte in der Regel nicht zwischen den Empfangszonen bewegt werden, sollte das normalerweise keine Probleme verursachen. Wer für die Geräte dennoch einen bestimmten AccessPoint verwenden will, kann über ein zusätzliches WiFi-Netzwerk für diese Geräte nachdenken:

Zudem könnten eigene WiFi-Kennungen für die unterschiedlichen WLAN-Kanäle in Erwägung gezogen werden:

Eigene WLAN-Kennung fĂĽr 5Ghz?

Die Verantwortung für den Wechsel von einem AP zum anderen bzw. die Entscheidung welches Frequenzband verwendet werden soll liegt zunächst beim Endgerät. Abhängig von der verbauten WLAN-Hardware und dem verwendeten Treiber ist das Verhalten der Geräte unter Umständen nicht immer optimal. Der Steering Deamon kann an dieser Stelle unterstützen, trifft mitunter aber auch nicht immer die besten Entscheidungen. Speziell beim Einsatz von 2,4GHz und 5GHz in derselben Mobility Domain. Häufig wird als Lösung der Einsatz einer eigenen WLAN-Kennung für 5GHz mit einer eigenen Mobility Domain empfohlen. Um sicherzustellen, dass sich die Geräte rein mit dem 5GHz-WLAN verbinden, kann auf den mobilen Geräten für alle anderen WLAN-Netzwerke "Automatisch erneut verbinden" deaktiviert werden.

Troubleshooting

Wireless is disabled

Bei Problemen sollten in den Device-Einstellungen zudem der Country Code eingestellt werden:

Hintergrund: Mit der Standardeinstellung Country Code: "driver default" war es mir bei einem der Access Points nicht möglich das WLAN-Interface zu aktivieren.

Der Status "disabled" wechselte erst nach dem Setzen des Country Code auf einem meiner APs.

Quellen

Fazit

Beim Einsatz der WLAN-Standards 802.11r/k/v können mehrere Access-Points als gemeinsame Einheit auftreten und für einen bestmöglichen WLAN-Empfang sorgen. Neben bestimmten Geräten eines Herstellers, können die Standards auch mit einer Open Source-Firmware wie OpenWrt genutzt werden und Geräte von unterschiedlichen Herstellern zum Einsatz kommen: OpenWrt Hardware Empfehlung - verfügbare Geräte 2024. Für ein einfaches Setup im Terminal, siehe: OpenWRT WLAN FT-Konfiguration - Online generieren

positive Bewertung({{pro_count}})
Beitrag bewerten:
{{percentage}} % positiv
negative Bewertung({{con_count}})

DANKE fĂĽr deine Bewertung!

Fragen / Kommentare


(sortiert nach Bewertung / Datum) [alle Kommentare(neueste zuerst)]

✍anonym
26.06.2024 23:52
Ich bekomme nach der Einrichtung auf allen APs die Meldung "daemon.ERR hostapd: nl80211:  kernel reports: key Addition failed". Woran könnte das liegen?

✍anonym
02.01.2024 21:34
Muss man usteer auf allen Access-Points installieren?
✍Bernhard
gepostet am 07.01.2024 10:30
Ja, muss auf allen AccessPoints installiert werden.

Beitrag erstellt von Bernhard

✍anonym
02.06.2024 00:44
Endlich mal eine anständige Anleitung zu diesem Thema. Jetzt gibt es endlich Fast Roaming bei mir.

Vielen Dank für diesen Beitrag!

✍anonym
17.04.2024 08:44
Danke für deine Arbeit, wirklich toll gemacht und bin noch am abarbeiten der Einstellungen.

Hier in den Artikel bitte noch einfügen:
"Die Einstellung "FT over the Air" und "Reassociation Deadline" mit dem Wert 20000 hat das Problem gelöst."

von hier: https://www.libe.net/heimnetzwerk#router-ap

Habe ebenfalls das Problem das teilweise geräte, obwohl vollen Empfang, weder aufs Netzwerk noch aufs Internet zugreifen können, erst das Wechseln des W-Lan schafft dabei Abhilfe.

Hoffe mit der Einstellung ist ín Zukunft das Problem behoben.

Gruß
Karsten
✍Bernhard
gepostet am 17.04.2024 09:50
Danke dir! Ich werde den Screenshot in diesem Artikel demnächst anpassen.

Beitrag erstellt von Bernhard

Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu Mehr Details