You have to point your router’s DNS server to an upstream DNS server which it can get that info from. If it works out of the box it’s using the resolver on the box which is probably configured by your ISP or uses OpenDNS or google DNS upstream.
Your PC is told where the DNS server is on your local network when it gets its IP address via DHCP.
If you add a PiHole to your network all you’re doing is sticking another box in there and telling your router to use DHCP to tell everyone to use the PiHole dude for DNS.
No, that is not how it works.
In DNS we talk about 3 different actors; name servers, full-service resolvers, and stub resolvers.
- The name server is loaded with data from a file. It answers queries from that, and nothing else.
- The full-service resolver is configured with a special set of name server addresses to boot-strap from, the root servers, and nothing else. The rest, it can recursively find by asking the root and traversing the tree. It then caches this data.
- The stub resolver is the libraries your application are linked with in the end node. They, on Real Computers, look in /etc/resolv.conf for a set of full-service resolvers to query. The behaviour is similar on Windows.
The PiHole is a Full-Service Resolver with a limiting configuration that makes it behave, in part, like a name server. If you have bought "broadband" instead of actual Internet you might nog be able to use it as a full-service resolver without configuring it to forward is queries to another full-service resolver. Which, of course makes the Pihole partially useless, because the entity running the other FSR will get your queries anyway. The goal must be that the PiHole or alternatively, the FSR you set up with less blockings, can talk to the root servers and all other name servers that server names on the Internet.