Uninterrupted WiFi: Roaming (Fast Transition)

 

The marketing term "mesh WiFi" often refers to the desire for a WiFi that simply works everywhere in the house. But what actually is a mesh WiFi? And what is really needed for WiFi to work everywhere and even when switching from one receiving station to another? My setup consists of two access points, which as a unit provide a single WiFi SSID. As access points I use devices from different manufacturers and OpenWrt as firmware. The access points provide uninterrupted reception when I move from one floor to another and switch to a slower 2.4GHz connection when I leave the 5GHz reception range, so that the WiFi works best everywhere. I explain my settings in detail at the end of the article.

Mesh WiFi

The term mesh WiFi is not clearly defined, yet it refers to multiple WiFi devices that together provide a single WiFi. Classic mesh WiFi systems usually also communicate with each other via WiFi, which is not suitable for all circumstances. As an example, LAN cabling between different floors of a building could often ensure a faster and more stable connection between WiFi access points.

What do I really need for an uninterrupted WiFi?

What most people expect with the term mesh WiFi is actually the 802.11r Fast Basic Service Set (BSS) Transition feature: the basis for allowing clients to move from one WiFi access point to another as quickly as possible: without interruption. Depending on the hardware used, the access points can be connected to each other via a wide variety of connections, such as WiFi, PowerLine or LAN cabling. The decision as to which access point is used for the connection lies with the client. Even though current devices together with access points and 802.11r already have very good roaming functionality, their behavior can be further optimized when 802.11k and 802.11v (seamless roaming: access point and band steering) are used.

How does 802.11r work?

In the case of multiple access points with the same SSID and key, the end device decides when to switch to another access point with better reception. When an end device connects to a WiFi, it must first authenticate itself and get an IP address from the DHCP server, which takes a little time. Normally, when switching from one access point to another, the device would have to go through the entire login process again and stop data traffic until the connection is complete. The 802.11r standard simplifies the connection process by shortening the login process when switching from one access point to another. Time-consuming tasks are eliminated. Without the need to fetch a new IP address from the DHCP server, the process of switching from one access point to another can be reduced to the point where the connection change results in no noticeable interruption.

What is Seamless Roaming?

The term seamless roaming is often used to describe the seamless change from one radio cell to the next. In addition to the 802.11r standard, the 802.11k and 802.11v standards are usually used, which provide clients with information about neighboring WiFi access points so that they can make better decisions about the connection.

What is Access Point Steering?

Access Point Steering is a router function that monitors all WiFi access points and their connected end devices and actively informs the end devices if another access point can provide a significantly better connection. Technically, Access Point Steering is based on the 802.11r, 802.11k and 802.11v standards.

What is Band Steering?

Two different frequency bands are used for WiFi: 2.4GHz and 5GHz. The 5GHz band delivers higher data throughput than the older 2.4GHz band, but has a shorter range. Band steering is a router feature that helps devices use the most appropriate frequency band for the connection, providing the most throughput and the best connection quality.

My setup: seamless WiFi reception over 2 floors with 3 different access points.

The two floors of my house are separated by a concrete ceiling, which makes it impossible to place a single WiFi access point in such a way that it can provide sufficient WiFi reception everywhere. Since the router of my provider offers only limited possibilities, I deactivated the WiFi on it and use the device purely for the Internet connection. The WiFi on the first floor is supplied by an additional router. I have placed this router centrally on the first floor and an additional access point in the living room. To improve the WiFi reception on the second floor, I placed another access point in the front hall. The devices are connected via LAN cabling, similar to the following experimental setup:

See also: Cabling, Variant 2

I use an aging but still fast Linksys WRT3200ACM as a router and a relatively new and relatively cheap Netgear WAC104 and an old Netgear EX3700 as access points. I have installed the latest OpenWrt firmware on all three devices: 23.05.3. I have also successfully put several TP-Link RE650 v2 and Zyxel NWA50AX into operation for other WLANs. If I need another access point in the future, for example to improve reception in the basement, I can use any hardware with OpenWrt support for that, see: OpenWrt hardware recommendation - available devices 2024.

In the article "LAN & WiFi in the home network: the ultimate guide" I simply enabled 802.11r in the OpenWrt options, which already allows an uninterrupted switch from one reception zone to another. Furthermore, enabling 802.11k and using a Client Steering Deamon can help the devices to always use the best connection if possible.

Prerequisite: OpenWrt-Wpad Full

To be able to use all WiFi features of OpenWrt, I replaced wpad-basic-wolfssl with the full version: wpad.

 

WLAN settings:

The same SSID, encryption and key should be used on all access points for both 2.4GHz and 5GHz. The WLAN name can be found in the tab: "General Setup"

The security settings and the WLAN password are set in the "Wireless Security" tab:

In my setup, I use WPA2-PSK and AES as encryption. Setting the encryption to "auto" caused problems with certain clients.

The country code should also be set in the device settings:

Background: With the default setting Country Code: "driver default", I was unable to activate the WLAN interface on one of the access points.

The status "disabled" only changed after setting the country code on one of my APs.

Advanced Settings: DTIM Interval 1,2 or 3?

If DTIM Interval 1 is used, the AP sends additional information about the WLAN network via broadcast and multicast frames with each beacon. The standard DTIM interval of OpenWrt is 2. Apple recommends a DTIM interval of 3 for their devices, as a higher value has a positive effect on standby power consumption. Certain manufacturers use a DTIM interval of 1 for the 2.4GHz network and an interval of 3 for the 5GHz network.

Connection lost after a few days?

With a certain 2.4GHz client, I had the phenomenon that it lost the connection after several days and could no longer establish a connection by itself. I am therefore currently testing the following setting:

WLAN roaming settings

If not already done, 802.11r Fast Transition should be activated in the WLAN settings of all interfaces with the same WLAN key:

As already described in the article LAN & WLAN in the home network: the ultimate guide, this setting is sufficient for the devices to connect without interruption when switching from one reception zone to another. The responsibility for switching to a different reception zone lies solely with the end device. For additional support from the router, a so-called Client Steering Deamon can be set up.

Client steering

The Client Steering Deamon exchanges connection information with the other access points and can actively intervene in the behavior of the WLAN clients. For OpenWrt there are two different Client Steering Deamon: usteer and dawn, both require the following settings in the WLAN settings.

(The menu items under Interface Configuration / WLAN Roaming for 802.11k only become visible after activating WPad-Full and restarting the router).

To use "usteer", simply install the "usteer" package of the same name:

Client Steering Daemon: usteer

"usteer" can be installed via terminal or via the GUI as a software package on all access points:

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

luci-app-usteer provides an overview in the GUI of which clients are currently connected to which access point, or via the "Hearing map": which client is visible on which access point. The client list also shows whether all access points are ready for WLAN reception:

For AP steering to work, Usteer requires at least one value for "signal_diff_threshold"

In addition, "roam_scan_snr" must be set so that client scans for roaming are triggered.

I have also set these two settings on my devices:

Usteer can also be restricted to a specific WLAN in the settings:

See also the official documentation and a corresponding discussion in the OpenWRT forum.

As an alternative to "usteer", "dawn" can also be used for seamless roaming. Since I no longer use "dawn" and therefore have too little experience with it, I will not go into more detail about the alternative setup.

Settings directly in the terminal

Although all relevant settings can also be set in the management interface in the latest OpenWrt versions, the terminal sometimes offers the option of setting the settings more quickly or transferring them from one device to another.

Changing the settings directly via the terminal requires a connection with or another SSH client to all routers or access points, or to their IP address:

In the terminal, the WLAN settings can be edited with the following command:

vi /etc/config/wireless

To operate the VI terminal editor, see: VI Editor - Commands.

For reference, here are my current settings:

File: /etc/config/wireless:

[+]
config wifi-device 'radio0'
	option type 'mac80211'
	option path 'pci0000:00/0000:00:00.0/0000:01:00.0'
	option channel '36'
	option band '5g'
	option cell_density '0'
	option htmode 'VHT40'
	option country 'DE'

config wifi-iface 'default_radio0'
	option device 'radio0'
	option network 'lan'
	option mode 'ap'
	option ssid 'myWiFiName'
	option encryption 'psk2+ccmp'
	option key 'mysecretwlankey'
	option ieee80211k '1'
	option time_advertisement '2'
	option time_zone 'UTC0'
	option bss_transition '1'
	option wnm_sleep_mode '1'
	option ieee80211r '1'
	option mobility_domain 'ab01'
	option ft_over_ds '0'
	option ft_psk_generate_local '1'
	option reassociation_deadline '20000'
	option dtim_period '3'
	option disassoc_low_ack '0'

config wifi-device 'radio1'
	option type 'mac80211'
	option path 'platform/10180000.wmac'
	option band '2g'
	option htmode 'HT20'
	option cell_density '0'
	option channel '9'
	option country 'DE'

config wifi-iface 'default_radio1'
	option device 'radio1'
	option network 'lan'
	option mode 'ap'
	option ssid 'myWiFiName'
	option encryption 'psk2+ccmp'
	option key 'mysecretwlankey'
	option ieee80211k '1'
	option time_advertisement '2'
	option time_zone 'UTC0'
	option bss_transition '1'
	option wnm_sleep_mode '1'
	option ieee80211r '1'
	option mobility_domain 'ab01'
	option ft_over_ds '0'
	option ft_psk_generate_local '1'
	option reassociation_deadline '20000'
	option dtim_period '1'
	option disassoc_low_ack '0'

File: /etc/config/usteer

config usteer
	option network 'lan'
	option syslog '1'
	option local_mode '0'
	option ipv6 '0'
	option debug_level '2'
	list ssid_list 'myWiFiName'
	option band_steering_threshold '19'
	option roam_scan_snr '-60'
	option signal_diff_threshold '15'
	option min_connect_snr '-72'
	option min_snr '-78'
	option load_balancing_threshold '10'

Sources

Conclusion

When using the WiFi standards 802.11r/k/v, several access points can act as a common unit and provide the best possible WiFi reception. In addition to specific devices from one manufacturer, the standards can also be used with an open source firmware such as OpenWrt and devices from different manufacturers can be used: OpenWrt hardware recommendation - available devices 2024.

 

positive Bewertung({{pro_count}})
Rate Post:
{{percentage}} % positive
negative Bewertung({{con_count}})

THANK YOU for your review!

Questions / Comments


By continuing to browse the site, you agree to our use of cookies. More Details