How to create wlan using 2 identical access points?

I have bought a second hand D-Link Dap-2695 to match the DAP-2695 that I already had in use with openwrt18.02. I have just installed OpenWrt on the second one and I will place these 2 APs in opposite corners of my home. Both of them are connected to the wired network.

What would be the best way to configure these 2 to make sure I have "one large wifi network" (or something that is perceived by our phones/laptops as 1 large network)?

Same SSID and pass phrase (key) on both units, but on non-overlapping channels serves most people well. Disable DHCP (and probably DNS) on AP 2, connect the LAN on AP 1 to the LAN on AP 2 with a cable, and you should be up and going.

Edit: Set the LAN address on AP 2 to something on the same subnet as that of AP 1's LAN, but outside of the DHCP lease range!

You may read of "802.11r fast roaming" but, at least in my experience, so few client devices support it that it's something you can add later, when you've got time to kill. It's not hard to configure, but I believe in starting simple until you know things are working as expected.


Thank you @jeff! But one question though:

At the moment AP1 is connected to my switch that is connected to my server/gateway, dhcp and dns are running on that server.

Would it hurt to do the WIFI setup as you describe but connect AP2 to the same switch (and not to the LAN of AP1)? I already have a cable going from switch to the room AP2 needs to be in :slight_smile:

Cable to the switch should work the same, assuming there isn't something funky in the way the switch is configured.

(Note that the LAN address for AP 1 and AP 2 need to be different, on the same subnet, and not ones that DHCP is going to offer.)


I have all the ip-addresses handed out by the server/gateway (wired as well as wireless) all connected devices are in the same subnet.


At least reserve a static IP address for both APs

Use the same channel for faster migration when you move around the place, use non-overlapping channels for maximum throughput.

That setup you want to get is very common and many people would want to get it working well, not only with 2 router but with 3 or more, until a big whole house is well wifi covered at all places.

From my opinion, the best would be:

  • All APs with same SSID
  • Same security settings WPA2 PSK (same password)
  • Same Channel (so devices wont need to re-scan at all frequencies, radio keeps on working channel)
  • Enable 802.11r Fast Transition feature (i enable the feature but i still dont know how to check if its working well, difficult to debug)
  • IMPORTANT HERE: Tell the AP to disconnect STA when the RSSI or SNR is below a value

Openwrt have nothing by default to manage station disconnection for example, on low RSSI signal recevice, but you can install this nice lua script that will do the job:

The stations will connect to AP1 first, then if you go away from AP1 and walk to AP2, the device should connect to AP2 because it have stronger signal, but depend on the brand, chip, driver etc, some devices do it well, others will keep connected to AP1 and wont change automatically to AP2.
To make this work well for all devices, no matter brands etc, the AP1 must disconnect the device when the signal drops to a certain level, forcing the device to scan wifi again and associate to AP2 then. That forces the wifi roaming for even devices dont prepared for that.
You can fine tunning the RSSI values and/or SNR desired values at which point AP1 will disconnect devices, and also at which level will allow a device connects again.

With this kind of setup, after the tunnings made walking on the terrain with the devices, you can get a perfect roaming setup, and so, you can have a VOIP call roaming around and dont lose the connection.


In the process of setting up my 2 access points I messed up, so had to reinstall one of them using recovery mode. Now both are running, one is in the left-low-end of the house, the other is in the right-high-end. Used all of the advice you described and am now trying to decipher what it says in the provided github. :grin: I am not a linux / software n00b but in this referred Readme there is a lot of terms that imply knowledge that I do not have, yet. Trying to document what I did, will come back once I have it running (or hit a wall :wink: )

1 Like

Okay, it all worked out, not that complicated in the end. And I got an introduction to UCI, what more does a man want :slight_smile:

I have version 18.6.02 running so, I did not need to install all the packages. Now running as a service, works great.

More details and uci commands here.
  1. Installed the needed packages:
    opkg install libuci-lua

  2. Copied both files to my routers

  1. Added the settings for the scripts
uci set wireless.default_radio0.signal_connect='-70'
uci set wireless.default_radio0.signal_stay='-80'
uci set wireless.default_radio0.signal_strikes='3'
uci set wireless.default_radio0.signal_poll_time='5'
uci set wireless.default_radio0.signal_drop_reason='3'
uci set wireless.default_radio0.signal_blacklist='AABBCCDDEEFF'
uci set wireless.default_radio0.ieee80211r='1'
uci set wireless.default_radio0.ft_over_ds='1'
uci set wireless.default_radio0.ft_psk_generate_local='1'

uci set wireless.default_radio1.signal_connect='-70'
uci set wireless.default_radio1.signal_stay='-80'
uci set wireless.default_radio1.signal_strikes='3'
uci set wireless.default_radio1.signal_poll_time='5'
uci set wireless.default_radio1.signal_drop_reason='3'
uci set wireless.default_radio1.signal_blacklist='AABBCCDDEEFF'
uci set wireless.default_radio1.ieee80211r='1'
uci set wireless.default_radio1.ft_over_ds='1'
uci set wireless.default_radio1.ft_psk_generate_local='1'`
  1. Used scripts as a service:
chmod +x /usr/bin/wifi-disconnect-low-signal.lua
chmod +x /etc/init.d/wifi-disconnect-low-signal
 /etc/init.d/wifi-disconnect-low-signal enable
 /etc/init.d/wifi-disconnect-low-signal start

Now I am trying to make a switch work as seamless as @rubenkku describes :smiley:

Thanks everyone for helping me out here!

1 Like

Im glad that my advice worked out :slightly_smiling_face:, hope you finally get it working like a charm.

It is always good to learn from anothers, like we do, and keep sharing the free knowledge, that's the reason we expend our time on this forums.

Best whishes, Ruben.

@rubenkku This looks really promising, I will try to check it out in the next few days. A separate script should be a lot more portable to new versions of hostapd than my approach of directly patching hostapd.

I've found that the "drop low signal" approach is a big advantage even with a single AP in a festival situation where people connect to the hotspot then may walk away. It is a real drag on the whole AP to try to work a client with a weak signal. I liken it to having a meeting but there is someone way in the back of the room who can barely hear you and you have to shout back and forth over and over. It would be better for the whole group to just ignore him.

@mk24 Hello Mike, i tried to compile the hostapd you patched, but since you pached LEDE 17.1.xx the compile for current Openwrt release 18.0.xx was not properly pached (not same version, etc) so i got world errors at compile time.

After look at your project comments, i found this barbieri's lua script, that is very easy to install and use.

As you said, this script may be used even for single APs.

It is always good to control at witch point we want the stations remain connected or disconnect it. And also, the minimum signal required to get connected to AP.
I think that this feature should be included in every routers Wireless Setup by default.