Open Source seamless Wi-Fi Roaming with OpenWrt
A POT with Architecture, Configurations, and Appendices (802.11r / 802.11k / 802.11v)
Modern homes, offices, hospitality environments, and multi-floor buildings increasingly depend on uninterrupted wireless connectivity. Voice over IP, video conferencing, cloud applications, streaming, and IoT ecosystems require continuous connectivity while users move between rooms and floors. Traditional multi-access-point deployments often fail to provide this experience because devices remain attached to distant access points (“sticky clients”) or experience short disconnections during handover.
OpenWrt enables the build of an enterprise-grade roaming infrastructure using affordable hardware and open-source software. This article provides a complete end-to-end guide covering architecture, theory, configuration, and real deployment examples.
Understanding Modern Wi-Fi Roaming
A network composed of multiple access points broadcasting the same SSID is called an Extended Service Set (ESS). Each access point represents a Basic Service Set (BSS), but from the user perspective, the network behaves as a single wireless infrastructure.
A fundamental concept must be emphasized: the client always decides when to roam. The network cannot force roaming; it can only assist and optimize the process. Modern roaming relies on three IEEE standards:
802.11k allows access points to provide neighbor reports, reducing scanning time when a client searches for a better signal.
802.11v allows the network to suggest when and where the client should roam, helping eliminate sticky clients.
802.11r (Fast Transition) dramatically reduces authentication time during handover.
In real deployments, 802.11k and 802.11v deliver the most consistent improvements, while 802.11r is especially valuable for real-time applications such as VoIP and video calls.
Recommended Network Architecture
A robust roaming deployment separates routing and wireless access.
The recommended architecture uses a single main router responsible for DHCP, firewalling, and routing, while additional OpenWrt devices operate as dumb access points connected via a wired Ethernet backhaul.
All access points must share an identical wireless configuration, including SSID, password, encryption method, and Layer-2 network. Radio planning is critical: neighboring access points must use different channels and balanced transmit power to encourage roaming.
Required Software Components
Seamless roaming requires the full hostapd implementation. The default OpenWrt package must be replaced with:
opkg update
opkg remove wpad-basic-mbedtls
opkg install wpad-mbedtlsA roaming coordination daemon must also be installed. OpenWrt offers two main options:
Usteer is simple, lightweight, and ideal for home and small office deployments.
DAWN (Distributed Automatic Wireless Network) is more advanced and better suited to larger infrastructures with high client density.
Deployment Example — Four-Floor Building
Main Router (Ground Floor) — 192.168.1.1
AP Floor 1–192.168.1.2
AP Floor 2–192.168.1.3
AP Floor 3–192.168.1.4
Common wireless parameters:
SSID: CasaRoaming
Security: WPA2/WPA3 mixed
Mobility Domain: a1b2
DTIM: 3
Configuration Overview
The router remains the only DHCP server. All access points operate as dumb APs with DHCP and firewall disabled.
Wireless configuration must be identical across all devices and include 802.11r, 802.11k, and 802.11v.
Appendix A — Router (Master) Configuration
/etc/config/network
config interface 'lan'
option device 'br-lan'
option proto 'static'
option ipaddr '192.168.1.1'
option netmask '255.255.255.0'
/etc/config/dhcp
config dhcp 'lan'
option interface 'lan'
option start '100'
option limit '150'
option leasetime '12h'Appendix B — Access Point (Slave) Configuration
Example AP-01:
/etc/config/network
config interface 'lan'
option device 'br-lan'
option proto 'static'
option ipaddr '192.168.1.2'
option netmask '255.255.255.0'
option gateway '192.168.1.1'
option dns '192.168.1.1'Disable services:
/etc/init.d/dnsmasq disable
/etc/init.d/firewall disableAppendix C — Wireless Configuration (All APs)
config wifi-iface 'default_radio0'
option mode 'ap'
option network 'lan'
option ssid 'CasaRoaming'
option encryption 'sae-mixed'
option key 'PasswordRobusta123'
option ieee80211r '1'
option mobility_domain 'a1b2'
option ft_over_ds '0'
option ft_psk_generate_local '1'
option reassociation_deadline '1000'
option ieee80211k '1'
option rrm_neighbor_report '1'
option rrm_beacon_report '1'
option ieee80211v '1'
option bss_transition '1'
option wnm_sleep_mode '1'Channel planning example:
Get Antonio Francesco Gentile’s stories in your inbox
Join Medium for free to get updates from this writer.
Ground floor → 1 / 36
Floor 1 → 6 / 52
Floor 2 → 11 / 100
Floor 3 → 1 / 116
Appendix D — Roaming with Usteer
Install packages:
opkg install usteer luci-app-usteerEnable service:
/etc/init.d/usteer enable
/etc/init.d/usteer startConfiguration file /etc/config/usteer:
config usteer 'usteer'
option enabled '1'
option network 'lan'
option band_steering '1'
option load_balancing '1'
option steer_reject_timeout '60000'
option min_snr '15'
option roam_trigger_snr '20'
option roam_delta '5'
option assoc_steering '1'Usteer provides band steering, client steering, and load balancing, and is recommended for most deployments.
Appendix E — Roaming with DAWN (Advanced Alternative)
Install packages:
opkg install dawn luci-app-dawnEnable service:
/etc/init.d/dawn enable
/etc/init.d/dawn startConfiguration /etc/config/dawn:
config network
option broadcast_ip '192.168.1.255'
option tcp_port '1025'
option network_option '2'
option shared_key 'OpenWrtRoamingKey'
config metric 'global'
option min_probe_count '2'
option bandwidth_threshold '6'
option use_station_count '1'
option max_station_diff '1'DAWN offers distributed decision-making and advanced metrics suited to high-density deployments.
Appendix F — LuCI Configuration Workflow
Access points must receive static IP addresses, DHCP must be disabled, and the firewall must be turned off.
Wireless roaming settings are available in:
Network → Wireless → Edit SSID → WLAN Roaming
Enable 802.11r, 802.11k, and 802.11v using the same Mobility Domain on every AP.
Usteer or DAWN can be configured from the Services menu.
Appendix G — Deployment Checklists
Network prerequisites include wired backhaul, a single DHCP server, static IP assignment, and a shared subnet.
Wireless verification includes an identical SSID and encryption, matching the mobility domain, non-overlapping channels, and a DTIM set to 3.
Advanced roaming validation includes full WPA/WPA2 installation, an active steering daemon, and successful roaming tests during VoIP calls.
Final Thoughts
OpenWrt enables enterprise-grade Wi-Fi roaming using open-source tools and commodity hardware. Successful deployments depend on consistent configuration, thoughtful architecture, and careful RF planning.
When properly implemented, seamless roaming significantly improves the user experience across multi-floor homes, offices, and hospitality environments, delivering connectivity comparable to that of commercial wireless systems.







