Hy everyone,
I have a PiHole instance running on my home server, and I changed my router (Fritz box) DNS in order to use my PiHole. Everything runs great.
I was wondering if I can put another DNS provider on my "alternative DNS server" in my router, in order to have a fallback alternative in case my server is down, or if I should avoid it.
I'm asking this because I don't know if the request will be handled in parallel between the two DNS provider (that would make my PiHole useless) or not.
Thank you.
The issue is that according to the spec the two DNS servers provided by DHCP are equivalent. While most clients favor the first one as the default, that's not universally the case and when and how it switches to the secondary can vary by client (and effectively appear random). So you won't be able to know for sure which client uses your DNS, especially after your DNS server was unreachable for a while for whatever reason. Personally I've "just" gotten a second Pi to run redundant copies of PiHole, but only having a single DNS server is usually fine as well.
I tried that, devices just request to alternate dns when they get nothing from pihole. I use adgh, and ig there is a setting where you can set the answer to blocked stuff, like 0.0.0.0, empty..etc. if you set thay to 0.0.0.0, devices won't query 2nd dns (i hope) when adgh is up. But it is best to have a 2nd pihole/adgh, i have one on my proxmox and another on a pi, synced with adgh sync
Edit: if you don't have another pi, use nextdns
90% of network traffic uses the primary, but some things like to use both or exclusively the secomd one on random days.
I use Gravity-Sync to keep the settings/lists between them identical. (lots of local dns records for local self-hosted stuff, and each device has a static ip + dns record to identify it easily in logs)
I've set my secondary DNS to cloudflare, and my pihole still blocked ads for me. I assumed the secondary DNS server is used only if the primary can't be pinged. But i haven't actually looked into it.
Putting Cloudflare as my secondary would allow some requests to get through and then often the device whose requests went to Cloudflare would continue using Cloudflare for a while.
The best solution I found was to run a second Pihole and use it as the secondary.
You can use something like orbital sync to keep them syncronized
Afaik there is no primary and secondary, you cant tell which one to use.
Its best to have 2 piholes, but having 2nd DNS set to nextdns or something like that should be fine if you cant run 2 instances, probably not the best setup tho
mary DNS Server: Clients will first attempt to use the primary DNS server specified in their network settings. This ser
What's the point tho? If your PiHole fails you need to know otherwise you could be risking days / months of web surfing in the fallback DNS server without even noticing it.
As for a reply, there’s no RFC that specifies that a specific order is applied to DNS servers. So in short, you can't have a fallback that is reliable and most operating systems will just load balance or opportunistically pick between the two.
Thank you, this is what I was worrying about.
As for the "why", even if my server is quite stable, a shutdown may be necessary and sometimes slowdowns with pi-hole happened. Some redundancy would have been better.
Well, I'm not sure you read the other comments but there is confirmation that for clients there isn't an order for DNS servers from RFC2182:
The distinction between primary and secondary servers is relevant only to the servers for the zone concerned, to the rest of the DNS there are simply multiple servers.
All are treated equally at first instance, even by the parent server that delegates the zone. Resolvers often measure the performance of the various servers, choose the “best”, for some definition of best, and prefer that one for most queries.
You should put your pihole server in the dns server in the network settings. My mobile devices didn't use my pihole server until I changed the dns server configured there... (I am using a FritzBox as well)
When you specify more than one DNS server for network clients, the order in which these servers are used is not random. The following sequence is observed:
Primary DNS Server: Clients will first attempt to use the primary DNS server specified in their network settings. This server is often considered the default.
Secondary DNS Server: If the primary DNS server is unavailable or unable to resolve a query, clients will then attempt to use the secondary DNS server. This server acts as a backup.
So in OPs case his Pihole will always be used if it's available, and only when it's not will the secondary be used.
Except that, as I’ve already mentioned, I have two piholes, and sometimes both will be receiving requests. Based on your description, the second would never receive requests as long as the first is online. Perhaps this is router dependent, but it’s what I’ve observed.
AFAIK the FritzBox switchs mainly to the faster DNS Server. I tried to use Quad9 with cloudfare as the second DNS server, most of the time cloudfare was the used since it was a bit faster.