Device connectivity issues with Pihole

Expected Behaviour:

1. When turning on a network-connected device (e.g. TV), it should be able to acquire an IP address and connect to the internet quickly (e.g. within a few seconds).

2. When attempting to connect to a device already turned on and connected to wifi (e.g. camera), I should be able to connect quickly (e.g. within a few seconds).

Actual Behaviour:

1. Devices do not quickly acquire an IP address when turned on, or upon arriving back home with wifi enabled. IP address may not be acquired until Pi-hole is disabled.

2. Users may not be able to access wifi-connected devices at all, until Pi-hole is disabled.

Debug Token:

I can provide this when I get home!

Description:

Running Pi-hole on a 3B+ with Raspbian. Pi-hole is acting as DHCP server. Home network is Google Wifi based. 3B+ is also running OpenVPN via PiVPN.

Items #1 and #2 seem to be inter-related. When I get home from work, it’s like a 50/50 that my phone will automatically register an IP address; often it fails to register an IP address, so I need to connect to my VPN to disable Pi-hole for 30 seconds. Upon doing so, my phone quickly acquires an IP address.

Similarly, when turning on the TV in the morning (a TCL Roku TV), it often fails to register an IP address despite having a wired connection to a Google Wifi access point. Same fix applies - disable Pi-hole for 30 seconds and it registers an IP address within moments.

Finally, I have a Foscam R2 camera that I frequently cannot connect to. The camera is always on. Fix is - again - disabling the Pi-hole. A few seconds after doing so, I can connect as usual.

Any ideas on what might be causing this connectivity issue?

Did you disable the DHCP server on the router? Google Wifi is known to be a little lean on the router settings and customization.

Google Wifi has been set up to only assign one DHCP address, and that one address is reserved for the pihole. Pihole has been set up to assign all other DHCP addresses. Although come to think of it, there’s a small range of addresses that aren’t assigned to either. Maybe that’s the problem.

Currently Google Wifi assigns xxx.xxx.xx.20 to the pihole, while pihole assigns the range of xxx.xxx.xx.21 - .255. That leaves .1 - .19 without anything handling them. Could that be the problem?

This should not be a problem. IP addresses don’t have to be consecutive or fill the entire range.

It may be that the devices see that the Google Wifi doesn’t have any more space in its range, and so they don’t look for another DHCP server (as it is not expected to have two running on one network.

That seems likely. Google Wifi did recently push a message complaining that there was another device on the network (Pihole) doing the DHCP work.

I could allow Google Wifi to take over DHCP assignment, but that eliminates my ability to parse which specific devices are seeing ads at any given time. I previously had Google Wifi handling DHCP but when I did so, all devices got lumped into one entry on the clients list. Any ideas on what I can do to keep clients separate?

You can try conditional forwarding, but this does not provide individual IPs with all routers. I would try it and see if it works with your setup.

Another option - manually assign clients to Pi-Hole. Those that are manually mapped should show as individual IP’s, and those that you cannot manually map (IOT devices, typically), would still show as the router IP.

Thanks jfb.

Just so I’m clear, as I’m still pretty new to this - when manually assigning clients, do you mean the “Static DHCP leases configuration” under settings? If so, would it require me to manually set IP addresses as well?

I mean manually assign a DNS server at the client. That way, regardless of any DNS server assignment done by DHCP server, the client will use the manually assigned DNS.

The problem you have is that your router is showing it’s own IP for all the clients, and this is related to how the router sets up the DNS with it’s clients. With some routers, individual clients are shown at the Pi-Hole.

So, if you manually assign DNS at the client, then it doesn’t use the router-offered DNS and you should see each of those clients listed in the Pi-Hole by IP.

Google Wifi is set up to use a custom DNS server, which is the Pihole’s IP address. This is also the only IP address that Google Wifi can assign from DHCP. Pihole is using Cloudflare for its DNS.

Is this what you’re referring to?

By client, I mean at the actual computer. If you have a PC, then manually change the DNS settings on that PC to point to Pi-Hole. You should then see the IP of that computer show up in your Pi-Hole query logs.

Gotcha. I’ll have to give that a shot when I get home. I’ll reply back here when I adjust these things.

Finally had a chance to come back to this …

I changed DHCP handling over to the Google WiFi and set up conditional forwarding. Connectivity seems to be better, only downside now is that clients show up only as IP addresses, and not as the device names. Any suggestions?

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.