Seamless Wifi - Multiple Access Points

Hey there.

Here's the code I use for provisioning my APs.
I use a couple of TP-Link 4900, one 4300 and one 1043, as a total of 5 devices at home, all in "dumb AP" setting.

As you can see, I didn't set up the wifi interfaces at all.
I just rely on all APs have proper vlans in place.

Since I use those dumb APs not only for APing but for providing individual vlan outlets, I just cannot provision the switch config in a generic way. All device are completely different.

At the bottom of the script, there's a block "some tweaking". It sets things that I think can do good for the connection in general, and additionally, it sets the "distance" parameter and the "beacon_int" parameter depending on the channel number. So 2.4GHz channels get "distance=20; beacon_int=300" and 5GHz channels get "beacon_int=100". That helps pushing clients to 5GHz.

I have a central box for DHCP, DNS and routing. I use that one (it's not an AP at all but a BananaPi M1 without wifi) to distribute my wifi settings to my APs.
I just call ssh ap1 ash < provision-wifi.sh

Just as dlang mentioned, I'd not use the same channel on all APs. You just clutter the capacity and leaving other capacity unused. Use different channels per AP, and if you need to have overlapping channels, try to assign them to APs as far apart as possible.
As you see my script, the 2.4GHz channel number 5 is assigned twice, but AP2 and AP3 are on the opposite corners of my house, one in the basement ant the other in the 2nd floor.

I tried much with channels and found out:

  • There's very little chance for one client to switch from one AP to another if the current AP is strong enough. Making it less strong by reducing the APs power is the best thing you can do.
  • There's a threshold configuration in the client driver, but that's a thing you can barely influence.
  • If a client decides to switch AP because of poor connectivity, the client usually performs a full scan. So there's no need to keep channels close or even overlap. Use none overlapping channels.

Regards,
Stephan.