OpenWRT WLAN FT-Konfiguration - Online generieren

 

Um meine WLAN-Einstellungen für OpenWrt schneller setzen zu können, habe ich einen Online-Wizard für das Erstellen der notwendigen Befehle zusammengestellt. Ziel des Setups ist der Aufbau einer gemeinsamen WLAN-Mobility-Domain für mehrere AccessPoints: damit das Roaming - FT (Fast Transition) - zwischen den Access Points ordentlich funktioniert. Als Hardware werden Access Points mit vorhandenem 2,4-GHz und 5GHz-Band vorausgesetzt. Die Befehle werden für die ersten beiden WLAN-Interfaces zusammengestellt, um zwischen den beiden Interfaces ein Band Steering zu ermöglichen. Beim Laden der Seite wird dazu rein im Browser eine zufällige Mobility-Domain und optional ein zufülliger 128-bit Key für die r0kh und r1kh - Keys erzeugt. Beim Anpassen des Formulars können die Bash-Kommandos über "Befehle neu zusammenstellen" aktualisiert werden. 

Für bestimmte Einstellungen werden eigene Bash-Befehle verwendet damit die Einstellungen universell auf allen Access Points eingesetzt werden können. Die Mobility-Domain und das Password für die r0kh und r1kh-Keys werden rein im Browser generiert und es werden keine Informationen zum Webserver gesendet. Voraussetzt werden die Softwarepakete Wpad Full und Usteer. Die Settings überschreiben die Einstellungen des ersten WLAN Interfaces. Getestet mit OpenWrt Version 23.05.3. 

WLAN Settings

Land (Country)
Mobility Domain (Optional, 
Vorschlag wurde automatisch generiert)
SSID (Optional)
WLAN KEY (Optional)
Generate PMK locally (ft_psk_generate_local)
 
Password (für die r0kh und r1khs Keys, ein Vorschlag dazu wurde automatisch generiert)
 
BSSIDs der WLAN-Interfaces (Die Beispiel MAC-Adressen müssen durch die MAC-Adressen aller AccessPoints ersetzt werden, siehe auch: BSSIDs auslesen

Befehle neu zusammenstellen

ssh Terminal uci Befehle für das WLAN-Setup

#Wifi 0 und 1 aktivieren:
uci set wireless.radio0.disabled='0'
uci set wireless.radio0.country='DE'
uci set wireless.radio1.disabled='0'
uci set wireless.radio1.country='DE'
#siehe: https://openwrt.org/docs/guide-quick-start/basic_wifi
uci commit wireless
wifi reload


#WiFi Interface 0
uci set wireless.@wifi-iface[0].dtim_period=$(if [ $(uci get wireless.radio0.htmode | grep 'V') ]; then echo '3';else echo '1'; fi)
uci set wireless.@wifi-iface[0].ieee80211k='1'
uci set wireless.@wifi-iface[0].disassoc_low_ack='0'
uci set wireless.@wifi-iface[0].ieee80211r='1'
uci set wireless.@wifi-iface[0].ft_over_ds='0'
uci set wireless.@wifi-iface[0].reassociation_deadline='20000'
uci set wireless.@wifi-iface[0].bss_transition='1'
uci set wireless.@wifi-iface[0].mobility_domain='f834'
uci set wireless.@wifi-iface[0].wnm_sleep_mode='1'
uci set wireless.@wifi-iface[0].ft_psk_generate_local='1'


#WiFi Interface 1
uci set wireless.@wifi-iface[1].dtim_period=$(if [ $(uci get wireless.radio1.htmode | grep 'V') ]; then echo '3';else echo '1'; fi)
uci set wireless.@wifi-iface[1].ieee80211k='1'
uci set wireless.@wifi-iface[1].disassoc_low_ack='0'
uci set wireless.@wifi-iface[1].ieee80211r='1'
uci set wireless.@wifi-iface[1].ft_over_ds='0'
uci set wireless.@wifi-iface[1].reassociation_deadline='20000'
uci set wireless.@wifi-iface[1].bss_transition='1'
uci set wireless.@wifi-iface[1].mobility_domain='f834'
uci set wireless.@wifi-iface[1].wnm_sleep_mode='1'
uci set wireless.@wifi-iface[1].ft_psk_generate_local='1'


#Usteer Settings
uci set usteer.@usteer[0].band_steering_threshold='19'
uci set usteer.@usteer[0].roam_scan_snr='-60'
uci set usteer.@usteer[0].roam_trigger_snr='-70'
uci set usteer.@usteer[0].signal_diff_threshold='15'
uci set usteer.@usteer[0].load_balancing_threshold='10'


#Bitte die Einstellungen vor dem Commit mit dem Befehl uci changes kontrollieren:
uci changes

#Änderungen können mit folgendem Befehl rückgängig gemacht werden: rm -rf /tmp/.uci/

#Die Einstellungen können mit 'uci commit' gespeichert werden:
uci commit

#Gerät entweder neu starten, oder zumindest WiFi und Usteer neu laden:
wifi reload
/etc/init.d/usteer reload

Bitte vor dem Speichervorgang "uci commit" mit "uci changes" alle Änderungen kontrollieren. Die Befehle können einfach in eine SSH-Terminalverbindung (z.B. putty, Linux Shell, oder Windows Terminal) kopiert und ausgeführt werden. Für eine Verbindung zu den Access Points kann der Befehl: ssh root@ und die IP-Adresse verwendet werden: 

PS C:\Users\LiBe> ssh root@192.168.1.1
root@192.168.1.1's password:

BSSIDs (MACs) aller APs auslesen (optional: bei Verwendung von r0kh und r1kh-Keys):

Wurde das WLAN noch nicht eingerichtet, können die MAC-Adressen der ersten 2 Interfaces mit folgendem Befehl ausgelesen werden:

cat /sys/class/net/wlan[01]/address
11:22:33:44:55:00 
11:22:33:44:55:01 

Sollte das WLAN bereits aktiviert worden sein, ändern sich die WLAN-Interfaces auf "phyx-ap0" und folgender Befehl zeigt die Adressen:

cat /sys/class/net/phy[01]-ap0/address
22:33:44:55:66:00 
22:33:44:55:66:01

Für eine gemeinsame Mobilty-Domain ohne der Option: ft_psk_generate_local kann anhand aller MAC-Adressen der verwendeten AccessPoints ein FT-Setup zusammengestellt werden. 

Ohne Internet verbunden: Generate PMK locally ...

Bei mir zu Hause verwende ich die Einstellungen mit deaktiviertem "Generate PMK locally", da ich bei bestimmten Clients nach einiger Zeit ein Verbindungsproblem hatte: Bestimmte Geräte waren nach einigen Tagen: "Ohne Internet verbunden". Zufall oder nicht: ohne Generate PMK locally und mit eigenen r0kh- und r1kh- Keys hatte ich das Problem nicht mehr. 

Informationen zu den verwendeten Einstellungen

 

 

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)]

✍Philipp
24.06.2024 19:31
Tolle Anleitung allerdings sind mir 2 Kleinigkeiten aufgefallen.

1. usteer ist standardmäßig nicht installiert und muss erst als Paket installiert werden
2. mir hat es das Routing zerhauen bei der Config. Plötzlich hat der AP kein Internet mehr.
✍Philipp
gepostet am 25.06.2024 09:57
Kommando zurück für die Netzwerkconfig. 
Mein Noname AP mit  MTK3943 Board wechselte bei jedem Reboot/restart des LAN Moduls die MAC Adresse auf eine Random Adresse und DHCP hatte ich vergessen zu deaktivieren :-(

Beitrag erstellt von Philipp
✍Bernhard
gepostet am 25.06.2024 10:30
danke fürs Update

Beitrag erstellt von Bernhard

✍Philipp
29.06.2024 16:44
Hi,
Jetzt ist mir aber was aufgefallen. Deine Config oben ist nur für die Erstellung einer SSID geeignet. Wenn man eine zweite SSID damit eintragen will werden die Einstellungen nämlich überschrieben der ursprünglichen SSID. 
Die genauen Befehle die stattdessen hier passen muss ich mir aber noch anschauen. 

Viele Grüße 

Philipp
✍Bernhard
gepostet am 04.07.2024 07:29
Danke. Ich habe den Beitrag angepasst und erwähnt, dass die Einstellungen das erste Interface überschreiben.

Beitrag erstellt von Bernhard

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