Indoor Wi-Fi Roaming with OpenWRT
This post dives deep into optimizing indoor Wi-Fi roaming with OpenWRT, tackling frustrating 'sticky client' issues common in home networks. The author meticulously details their journey using usteer and 802.11k neighbor reports to achieve seamless handoffs. It's a prime example of the HN community's appreciation for technical problem-solving with open-source tools and detailed, practical implementation guides.
The Lowdown
The author, Rui Carmo, revisited their OpenWRT-powered home network to address persistent Wi-Fi roaming issues, particularly with Apple devices exhibiting 'sticky client' behavior. Despite having Cudy AX3000 units and OpenWRT running, clients weren't switching access points efficiently, leading to poor performance in certain areas.
- The network is intentionally split into separate 2.4GHz (for legacy IoT, WPA2) and 5GHz (for modern clients, WPA3/SAE) SSIDs, rejecting the common advice of merging them to accommodate diverse device needs.
- Initial checks showed 802.11r/k/v features were enabled, and Fast Transition was occurring, yet client-managed roaming remained suboptimal.
- The core problem was identified as a missing steering daemon and
hostapdnot correctly providing 802.11k neighbor reports to clients. - The solution involved installing
usteerfor client steering andstatic-neighbor-reportsto ensure APs could exchange band-specific neighbor information effectively. - Post-implementation, 2.4GHz performance remained largely stable, but the 5GHz band showed a noticeable shift in client distribution and a significant reduction in 'very weak' sticky client associations.
- While one Fast Transition error was observed, the overall result indicated successful client roaming, validating the technical improvements.
The author expresses satisfaction with the OpenWRT setup on Cudy APs, highlighting the value of a transparent, inspectable network environment over cloud-managed or vendor-locked solutions, and plans to continue monitoring the system's performance.