I’ve been using pi-hole for the last 3 or 4 years and I’m pretty satisfied with it. Now I’m thinking about the next step. Nowadays I have my local network and a tailscale to access my hosts. I’m thinking about a DNS solutions to solve the names on the locla network and thru tailscale simultanely, while been able to block ads on DNS like pi-hole do. What do you think would be a better solution for this next step? I’ve only used bind before, but I think and old dog can learn a new trick.
You should add your DNS forwarder as its own node in Tailscale, and configure the tailnet to resolve DNS through it. That way you’ll be able to resolve both MagicDNS node names and your local domains, as well as being blocklist-enabled. Besides, I think you can also define custom A/AAAA records on your Tailscale console, skipping local records on Pi-hole altogether.
I’d also recommend Technitium for a new DNS solution, mainly because they’re going to add support for clustering soon. This could be highly useful if you want to configure blocklists once and sync them between different Technitium nodes. Should it works out, I’m thinking of installing it alongside every Tailscale exit node, for the benefit of synced blocklists, local domains, and exit-node geolocated IPs for external domains.
Did you know you can use pihole as a full DNS server to serve A and cname records?
I have my public DNS at OVH and internal stuff in pihole, split view DNS is amazing.
I have been experimenting with this recently. I just have tailscale pointing to adguard on a vm i use as an exit node and run nginx to handle the reverse proxy.
I’ve been using technitium dns server for this. It is an all in one solution and is working well for me through tailscale as a global name server.
Yeah. Real DNS zones that transfer are a thing of beauty.
Bind is reliable. It’s a good choice.
I’d still keep the pihole, though. You can use one as the upstream for the other. Or, configure the pihole to use your local DNS server only for your local domain name.
I just saw that bind now comes with tls support (for quite some time actually…), which was the reason I originally went with unbound instead. So I guess I have an excuse to look at it again… 😀
Local Unbound with Tailscale’s split DNS has been solid for me. I use it as an OPNsense service with the web GUI, but the standalone YAML config looks simple enough.
Blocky.
I second this. Very light, feature-rich, configurable and works flawlessly. I use it for ad blocking, proxying all DNS requests to DoT upstreams, and local addresses in LAN and over Wireguard.
I’ve had pihole running in the past, then Adguard, but moved to NextDNS several years ago and have been happy with it. For a small fee, it removes all need for self hosting your own. I set up profiles for the kids, wife etc, then set the DNS in their phones, tablets, so I know its always working wherever they are. You can set local IPs in it if you want, but I use a reverse proxy for all LAN requests instead.
Only slight issue I’ve had with it was recently making several quick changes to DNS in Cloudflare, and NextDNS took several hours to propagate which was a PITA at the time.
Edit: I’ve just seen that they now offer a free tier which they didn’t in the past.
And how do you fix the problem with applications that have hard coded dns?
If you’re referring to network based DNS, I use their script to have it on my Ubiquiti router as well. I have that with its own profile with full blocking for iot etc.
I had PiHole with unbound on my OPNsense way back when, but the internet just needs to work for both me and my family and not go offline with me tinkering with the homelab. NextDNS takes all of that hassle out of the equation.