Please follow the below template, it will help us to help you!
If you are Experiencing issues with a Pi-hole install that has non-standard elements (e.g you are using nginx instead of lighttpd, or there is some other aspect of your install that is customised) - please use the Community Help category.
Expected Behaviour:
_Running latest Pi-hole on latest Raspberry Pi OS with all updated packages
Have it set exclusively as only DNS server available to network devices
Using Cisco Meraki MX firewall as DHCP server
Went for a good month or two without any issues and then BAM started happening again.
Actual Behaviour:
pi-hole stops resolving DNS queries on the network. This happens sometimes within a day after restarting, or within a month after restarting.
It is always the same, just randomly stop accepting DNS queries.
The log shows that Pi-hole itself is blocking domains correctly, but that the router is giving out a Cloudflare DNS server, not Pi-hole, to clients to use for DNS:
From your description it sounds like this change happens in the router, and then within that lease time the client picks up a renewal and gets the non-Pi-hole address. This appears as Pi-hole stopping working across the network.
Could any kind of process change the DNS server, since you mentioned that you've set it as the only DNS server, and it sounds like Pi-hole works for a while then doesn't. Maybe a periodic router auto-update changes it?
As for the concurrent DNS queries, does your Pi-hole Dashboard reveal a client which is causing the queries? Or do you have the Pi-hole as the router's upstream server?
This happens at least once a month. Usually a full shutdown and restart of the Rasp Pi system resolves the issue. But, I would like it to be more stable and resolve the root issue.
Is it possible I need to increase this # from 150 to higher?
A Maximum number of concurrent message is commonly triggered by a faulty DNS configuration closing a DNS loop of sorts, or by an unresponsive or inaccessible upstream DNS server (e.g. due to loss of upstream connectivity), or seldom by some misbehaving clients excessively requesting resolution.
Your debug log shows that you've enabled Pi-hole's Conditional Forwarding, which may close a partial DNS loop if your router would use Pi-hole as upstream DNS resolver.
Repeating chrislph's question:
In addition, your debug log shows that you've disabled Pi-hole's rate limiting.
If it would be a single client's excessive DNS requests that trigger the max concurrent warning, chances are that reenabling rate limiting may have that kick in earlier, potentially helping to identify an offending client.
And likely unrelated to your observation, but your debug log shows that you are using local as local domain for Conditional Forwarding.
Note that the .local TLD is reserved for mDNS usage and should NOT be used with plain DNS.
If your router would really propagate local as local domain, you should change that to a different domain as internal or lan.
I will fix that .local TLD as I thought it was OK to use that (totally just my own lack of understanding around DNS)
I have now removed the 'local' designation under Conditional formatting in pi-hole. I wonder if I should even just turn off conditonal formatting? Not very versed in DNS settings just yet and learning as I go.
My Meraki firewall that acts as my router and has a few options to set the DNS server manually.
I'm am using the "Specify Nameserver" option and entering in the pi-hole IP. Which shouldn't have the 150 limit that the Upstream option does (stated in documentation at least)
I will enable the rate limiting feature in pi-hole and see what happens next.