Improving wifi roaming without mesh routers

By Atomstar on Friday 5 April 2019 17:57 - Comments (6)
Category: Smarthome, Views: 1.928

Although I've managed to get WiFi connection in most corners of my house, I still had limited signal in my garden ('for one of those days you can squint your eyes in the sun trying to read the screen', a friend joked). Although this situation rarely happens, I still like to fix things in theory sometimes :p

Mesh vs roaming



Mesh network example



Wifi roaming example




Commercial mesh routers offer two useful features:
  1. They create a mesh network (i.e. p2p) between the access points, which serves as a (WiFi) backbone for the network. The advantage is that you don't need a cable between them. Strictly speaking, you only have a mesh with 3 or more points (as mesh implies multiple routing possibilities), although some commercial options sell with 2 access points, in which it's simply a point to point WiFi connection.
  2. They allow clients to roam easily between access points, such that you only need to set up SSID/password once and this configuration is repeated.
Although there are commercial 'mesh' solutions, in my case I could easily pull a cable between the two locations and therefore didn't need the wireless backbone mesh routers typically offer. Instead, my idea was to use two OpenWRT devices (one routing, one dumb), create a wired connection between them, and roam between them with my phone.

Encouraging roaming at home

Wifi roaming sticky client

In theory, roaming could be solved on the hardware level by having a set of antennas, each emitting the same data (or actually radio waves) to one client. The client would then work with the strongest signal and never know which antenna it was talking to. These antennas could be smart and detect which of them detects most client signal and then broadcast only there. While in theory this could work, as far as I know this is not how mesh routers implement this (citation needed).

If the above option doesn't work, roaming has to be achieved on a software level, which is much more tricky. In the end, it's a client's decision to (dis)connect to/from an AP. Even if the AP forcibly disconnects a client to encourage it to roam to a next station, the client can still decide to reconnect. As a user, this 'feels' like the client is 'stuck' to an AP which is getting out of range. The criterium to disconnect and seek again is set per client/OS, e.g. iOS disconnects at -70 dB. See for example this or this article.

Having said that, there are some tricks that can help with roaming. Apple has a nice article about roaming standards.
  1. 802.11r: fast BSS transition speeds up handover between APs - available in OpenWRT
  2. 802.11k: radio resource managemen, give clients a list of nearby APs
  3. 802.11v: Wireless Network Management, provides network information to the client to improve roaming

Choosing a router firmware

OpenWRT Logo
There is a wide range of router firmwares, for which the hierarchy is roughly as follows:
  1. OpenWRT: mother of all firmwares, limited hardware support because of strict opensource policy but extremely configurable
  2. DD-WRT (by Brainslayer): active project, however smaller community and seems to rely a lot on one person with a rather ominous name
    1. Kong: recompile of DD-WRT, has a few additional features, active project minor delta from main branch, even smaller community
    2. Tomato (by Shabby): inactive since 2017-04
      1. Asuswrt - official fork of tomato adopted by ASUS.
        1. Asuswrt-Merlin (=XWRT =Cross-WRT?), fork of AsusWRT
          1. XVortex — active, no vlan support, fork of AsusWRT-Merlin
I strongly prefer OpenWRT because of it's very active development, broad user base, and fairly good documentation. The only caveat is that they support less hardware because they require open source drivers. TP-link is generally well supported (e.g. Archer C7, WDR3600), Netgear (e.g. R7000) less so.

I also tried DD-WRT which has much wider hardware support out of the box, lots of features as well, but presented more monolithically, if it's not included by default it's difficult to do. Also, 'documentation' is spread over forum posts which are oftentimes conflicting with each other. I never got VLANs working on DD-WRT which was two clicks in OpenWRT, for example.

Routers

I use an Archer C7 v2 as main router (tip: Ziggo sells these cheaply as 'WiFi booster', which can be unlocked by flashing the firmware), and an WDR3600 as my secondary router.

Implementing roaming

802.11r configuration in OpenWRT
Once you have two or more routers with OpenWRT newer than 2018, enabling roaming is very simple:
Install full wpad
  1. Go to System -> Software
  2. Install 'wpad' package (to replace wpad-mini)
Enable
  1. Go to Network -> Wireless
  2. Choose an interface, go to Interface
  3. Configuration -> Wireless Security
  4. Enable 802.11r:
    1. choose a unique NAS ID per AP (or leave empty)
    2. the same Mobility Domain fo all APs
    3. enable FT over DS,
    4. generate PSK locally
To verify, you should see FT-PSK, on Mac this can be checked using the airport utility.
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -s
Wifi 802.11r FT-PSK verification

Volgende: How many houses are not sold publicly/funda? 01-06 How many houses are not sold publicly/funda?
Volgende: VLAN tagging on OpenWRT/managed switches 03-04 VLAN tagging on OpenWRT/managed switches

Comments


By Tweakers user i-chat, Friday 5 April 2019 19:50

This is a verry usefull post so: +50 for that...

But recent encounters with TP-link got me to shand a cheaper router back because it was broadcom based, which for openwrt-puposes is the worsed you can get.

a verry strong disclaimer/warning is in order. though the versions you mentioned ar a safe bet others are not (any longer).

sadly though, that netgear though supported, is a bit more cumbersome to install upon.

By Tweakers user rb338, Friday 5 April 2019 22:44

+50 indeed!
One last tip: if you don't see the 802.11r option, install the wpad package.

By Tweakers user ArnieNFW, Monday 8 April 2019 11:18

Interesting. I've got the 4300 and 3600, both running OpenWRT. (14.xxx I believe). I've gotta check if 11r is available for me, although I believe my versions are prior 2018.
For 3600 there is not a recent version available, I believe (checked this weekend).
Else I'll check wpad.

By madtraxx, Monday 8 April 2019 19:53

Why not use on of the so "many" solutions already available? Linksys Velop, Netgear Orbi, Eero, Unify and so on....... there are so many solutions available which allow easy configuration, that can be hard wired between "nodes" or using their own proprietary mesh setup (and if needed they can be expanded by adding additional "nodes").

By Tweakers user Atomstar, Monday 8 April 2019 20:18

rb338 wrote on Friday 5 April 2019 @ 22:44:
+50 indeed!
One last tip: if you don't see the 802.11r option, install the wpad package.
Thanks! I indeed forgot this, fixed now.
ArnieNFW wrote on Monday 8 April 2019 @ 11:18:
Interesting. I've got the 4300 and 3600, both running OpenWRT. (14.xxx I believe). I've gotta check if 11r is available for me, although I believe my versions are prior 2018.
For 3600 there is not a recent version available, I believe (checked this weekend).
Else I'll check wpad.
I have a secondary TP-link WR3600 router which runs OpenWRT 18 with 802.11r working. 14.x is very old (2014). Installing 18 should help, then install wpad, then enable 802.11r.
madtraxx wrote on Monday 8 April 2019 @ 19:53:
Why not use on of the so "many" solutions already available? Linksys Velop, Netgear Orbi, Eero, Unify and so on....... there are so many solutions available which allow easy configuration, that can be hard wired between "nodes" or using their own proprietary mesh setup (and if needed they can be expanded by adding additional "nodes").
I don't need the mesh functionality, I already had the hardware, and I like OpenWRT and its features.

By Tweakers user laurens0619, Friday 12 April 2019 14:37

If you would like to understand more about sticky clients (client who dont roam) I propose:
http://wifinigel.blogspot...t-are-sticky-clients.html

In practice most modern clients are perfectly capable of roaming without making any modifications. Implementing 802.11krv is only making it worse in some situations due to compability issues.

The best approach in my view is:
* Use a sperate band for 2.4 and 5ghz and only configure 5ghz. 5ghz networks have less overlap which encourage clients to
* disable low link rates (!) this is one of the most important aspects to stimulate roaming and also what most MESH/unifi have setup.

If you have disabled low link rates & setup roaming (same SSID, security, encryption) in a good way it should act the same as "mesh" setups.

Please be aware that if you use different vendors/chipsets sometimes roaming can be less effective. Best approach is to use at least same vendor but preferably same model

[Comment edited on Friday 12 April 2019 15:15]


Comment form
(required)
(required, but will not be displayed)
(optional)