PiHole can't recover from loss of internet connectivity

Expected Behaviour:

PiHole running on PI2.

  • Pi-hole [v5.12.2
  • Web Interface [v5.15.1]
    I have a problem with internet router - it sometimes get stuck and doesn't answer ping on LAN.
    I expect PiHole to start resolving hosts after router is restarted

Actual Behaviour:

After router is rebooted, it works again, and if I config PC to use external DNS everything works as expected, but PiHole answers all requests as
"config error is REFUSED (EDE: network error)", even if Rate-limiting is set to 0/0

Debug Token:


It is highly unlikely that Pi-hole's rate limiting would be involved here if there is no corresponding rate limit warning in your logs - and your debug log suggests there isn't.

Absence of any such warning commonly means that Pi-hole itself is fully functional, but it isn't aware of any route one of its configured upstream DNS resolvers.

If this is still an issue, you should be able to verify this on the next occurence by enabling DEBUG_QUERIES=true in your pihole-FTL.conf.

This in turn would imply that the OS is not supplying them routes.

From your debug log, I notice that you've configured your Pi-hole to use only OpenDNS IPv6 addresses as Pi-hole's upstreams.

This is just a guess:
There is a chance that your router has finished IPv4 configuration, but has not acquired and/or not announced a global IPv6 prefix yet after rebooting, and thus your Pi-hole host OS has no way to learn the new IPv6 gateway address.
Your debug log may support that assumption by listing no IPv6 gateway, and also a non-prefix IPv6 address for eth0:

*** [ DIAGNOSING ]: Name resolution (IPv6) using a random blocked domain and a known ad-serving domain
[✓] update-accounte.strikefighterconsultinginc.com is :: on eth0 (::e1<redacted>1b)

Normally, this should fix itself once your router starts sending out Router Advertisements (RA) with the new gateway (usually, every few minutes).

You could try to avoid this by switching to OpenDNS IPv4 addresses.

I'll try to switch to IPV4 and see if problem disappears.
For now, doesn't matter how long I wait - pihole continues to be blocked, when I reboot pihole it works, so I doubt the problem is related to router IPV4 vs IPV6 initialization. I also tried to check "my ip" using alternative DNS server - checker displayed IPV6 address (so IPV6 connectivity fully works).

Is there any "request/response" process that happens only when pi is rebooted, which can lead to restoration of the broken IPV6 network ?
If yes, that could explain why rebooting pi restores is, while rebooting the router doesn't.

If other client devices can successfully access public IPv6 addresses, that would suggest that Pi-hole's host OS is not correctly receiving or processing information as offered by your router.

You could try to check your host's IPv6 routing configuration by running

ip -6 route

No, not usually - but that would ultimately depend on the configuration of both your router and the connecting client OS, i.e. if both would use Stateful DHPCv6 for IP address assignment (exclusively), then your observation would match.

After I moved to IPV4 pihole succeeds to recover from loss of internet connectivity.

output of ip -6 route:
pi@pihole:~ $ ip -6 route
::1 dev lo proto kernel metric 256 pref medium
2a0d:6fc0:8671:6000::/64 dev eth0 proto ra metric 9000 pref medium
fe80::/64 dev eth0 proto kernel metric 256 pref medium
default via fe80::724f:b8ff:fe74:b873 dev eth0 proto ra metric 9000 pref medium

but I had a chance to do it only ~ 1 after hour the disconnection & router reboot event.
Next time I'll do it closer to the reboot time and update.