first of all thank you very much for this very useful community!
I recently installed openwrt version 18.06.4 on my TD-W8970 and I plugged in a 4G usb dongle for internet access.
Everything is working well but some connecting problems with my smartphones.
All my devices (tv, laptop, irrigation control unit, ...) see and connect very fast to my wifi network except my smartphones (I tried with two different smartphones of different brands).
When I activate wifi on my smartphone (Xiaomi Redmi Note 7) the wifi network is not seen quickly even if I am very near to my openwrt router. Sometimes 5 minutes may pass before the network is seen and the smartphone connects to it. In sporadic cases the smarphone connects quickly to wifi.
I can't understand the reason, considering that other devices in my house connects very quickly and that my smartphone connects very quickly to other wifi networks (when I am outside my house).
Can you help me in understanding where is the problem?
I think the issue is in the middle between Xiaomi/Android and Openwrt because:
Xiaomi device with other non-Openwrt router: no problem!
Non-Xiaomi devices (e.g laptop, tv, ...) with Openwrt router: no problem!
Xiaomi device with Openwrt router: problem!
My wifi network on openwrt is not hidden; i have configured it with WPA/WPA2 encryption and mac address filter.
After performing other tests there is another strange behaviour: I activate wifi on xiaomi, a list of wifi networks appear but my openwrt network is not on the list, ... i wait for 5 minutes but the network does not appear; at this point, I go to xiaomi wifi settings and i remove the saved configuration (password) of my openwrt network, I re-add manually the same configuration (password) and the network suddenly appears and xiaomi connects to it.
This could be seen as a xiaomi bug but, I repeat, I have this problem only with my openwrt router.
Yes the MAC filter is likely the issue. When the phone probes with a random MAC, which is not in the whitelist, the AP does not respond. Android will not show an AP in its list until that AP has responded to a probe request.
MAC lists can be useful in point to point situations where you want to prevent certain paths from connecting, but they are not useful for general security.
You are right! I solved by disabling MAC filter on my openwrt router. Thank you very much!
Now the question is: why I have no problem in connecting to other routers (non-openwrt) having MAC filter enabled with the same Xiaomi smartphone?
I know that MAC filter is not a guarantee from a security point of view (since the MAC address might be obtained from probe requests) but sometimes it could be useful as additional layer of protection to prevent unauthorised access to the network by non-IT expert people that might know the wifi password.
So, considering that now MAC filter is disabled, how can I improve the security apart from using WPA2 encryption with a "strong" password?
Most other routers with a MAC whitelist configured will reply to probes from non-listed MACs. OpenWrt used to as well, but it changed in the code sometime last year. I don't know if it is an OpenWrt specific patch or something generally added to hostapd upstream.