Ramblings of an aging IT geek
← Ramblings of an aging IT geek
networking

the resolver lives here now

Why I stopped forwarding DNS to a public upstream and stood up a recursive Unbound resolver on the homelab instead.

A bundle of patch cables behind a network rack

For years my home DNS was a thin layer that forwarded everything to whichever public resolver was fashionable that month. It worked, mostly, until a public resolver had a wobble one evening and the whole house went quiet, the telly included. The dependency was invisible right up to the moment it wasn't.

So I switched to running my own recursive resolver. Unbound, on the little box that already does too much, configured to talk to the root servers directly instead of forwarding. No upstream to fail, no third party logging every lookup the household makes, and DNSSEC validation done locally so I can actually trust the answers rather than trusting the pipe.

server:
    interface: 0.0.0.0
    do-ip6: no
    prefetch: yes
    cache-min-ttl: 300
    auto-trust-anchor-file: "/var/lib/unbound/root.key"

The first lookup of the day is a hair slower while it walks the delegation chain. Everything after that comes out of cache and is, if anything, faster than the forwarder was. The genuinely nice part is that nothing changed when the next public resolver had its next bad evening, because I'm no longer leaning on one. The house just kept working, which is the entire point of a homelab and also the bit nobody notices.