First of all, my apologies if I'm posting in the wrong forum. I'm a bit lost in the SE galaxy. But since my issue is quite complex and specific, I feel this is the best place. Let me know if I'm wrong.
So for the issue:
- I'm using a home router, lent by my service provider. It's local IPv4 is 192.168.1.254.
- I have a raspberry pi (IP 192.168.1.15) running a dns service (and ad-blocker) called pihole, configured to use unbound (full recursive dns) on the same machine as its upstream source.
- The router is running a dhcp service and points to the raspberry as the default dns server.
I have no problem on my computers, either in wifi or ethernet. Network configuration is alright, DNS is indeed coming from the pi.
Now I want my nexus 6P using the latest version of android to be able to use wifi at home. So I simply connect it to the router wifi, same as I did with my laptop, which is doing great. However, the smartphone is doing his own stuff. Sometimes all will be great, and more often than not, it will drop the wifi saying that there is no internet connection.
Of course I tried a bunch of stuff:
- Setting network configuration in the phone instead of letting DHCP do its job, no change.
- Changing wifi channel, no change.
- Rebooting router, phone, and both, no change.
- Whitelisting google services like ad service gstatic check and whatever appeared in my pihole admin panel: seemed to solve the problem at the moment, but a few days later, not that great. And not really what I want.
- Try both "google" and "no provider" as wifi quality check provider in the android wifi settings. No effect.
- Use external DNS servers like 126.96.36.199 or 188.8.131.52: seems to do the job. But absolutely not my goal.
Note that dns request going through the pi can take up to 1 sec to be answered since it's doing a full recursive search. And I suspect the problem is coming from here.
So does anyone have any idea how to get my phone to stick on this wifi network? Btw, my phone is not rooted and I'd like to avoid going down this road.