26th April 2026
tl;dr make sure the static IP assigned to the Pi-hole device uses a CIDR that contains enough addresses for DHCP to utilise: /24 NOT /32.
Last weekend I updated the Pi-hole software on our home network and, after rebooting, saw the dreaded no address range available for DHCP request via eth0 message in the logs:
The documentation it links to doesn't really give much more information than what you see above:
Whenever I've seen this message in the past I've always assumed it was caused by a conflict between the Pi-hole and the router trying to act as the DHCP server for the network (even though that is turned off on the router). Usually, rebooting the router and the Pi-hole seems to resolve everything, but not this time.
After a few attempts to get things working again, I switched DHCP back to the router, to get everyone back online. This bypasses the Pi-hole entirely, so for the past week we've been suffering the full-fat internet with ads 😱 You can use the Pi-hole without using it as the DHCP server, by setting it as your DNS server, but this means updating each device individually, and won't work for any devices that don't allow you to set DNS manually.
During the week, I tried a couple of times to switch DHCP back to the Pi-hole, but kept ending up with devices not being assigned an IP address. I initially assumed this was because their IP addresses had originally been assigned by the router and that when the lease expired, things would work correctly, but releasing and renewing the leases manually didn't seem to work.
After a bit of digging, it turns out that the issue was with the static IP assigned to the device running Pi-hole: 192.168.1.75/32. Apparently, when DHCP is running on the Pi-hole, it looks to the network configuration on the device to determine what addresses are available to assign, despite a range already being defined in the Pi-hole settings:
Because the CIDR in the static IP settings only represented a single address, there were no addresses available to assign to other devices. Changing the CIDR to /24 increased the available range and resolved the issue.
It seems strange to me that the static IP settings of the device affects the addresses that are to be assigned. What's even stranger is that it has been working like this for years. I've gone from not understanding why it wasn't working, to not understanding how it was working before, but at least it's working…