New blog post "My Own DNS Server At Home - Part 1: IPv4" wherein I install and configure a basic BIND DNS server for my network at home. Part 2 will cover IPv6. It's quite hardcore. So if it feels a bit overwhelming, just read it as a nice story and not as a HOWTO. DNS with BIND is a bit demanding, but I find it fascinating!

https://jan.wildeboer.net/2025/08/My-DNS-Part-1/

Replies to this post will show up as comments under the blog post!

My Own DNS Server At Home - Part 1: IPv4

“It’s always DNS” is a famous meme among network people. Name resolution is technically quite simple. It’s “just” translating a hostname like jan.wildeboer.net to an IP address. What could possibly go wrong? I am a radical optimist and detail-obsessed knowledge collector, so I decided to find out. As part of my goal to make my home network a little island of Digital Sovereignty, meaning that everything at home should JustWork™, even with no working internet connection, a DNS server is needed.

Jan Wildeboer's Blog
@jwildeboer I wish I could get #IPv6 but my #ISP is so incompetentband unwilling to provide details (despite being obligated to do so by law), but given they have absurdly high latency for uplink and downlink (despite being DOCSIS) I am convinced they have some serious peering issues...
@kkarhan @jwildeboer What ISP (ASN)?
@UnderEu @jwildeboer Internet Service Provider & their respectable Autonomous System aka. Network...
@kkarhan @jwildeboer I am asking what ISP (ASN) you're talking about
@kkarhan @jwildeboer So…??? Who is it?

@UnderEu @jwildeboer which one do you guess?

Pritip: they were allowed to buy up almost all cable networks in Germany...

@jwildeboer The fediverse reply to blog post comment feature is cool!
@jwildeboer Thanks for another quality howto. I am a FreeBSD nerd and from my quick read you can use this to guide you setting up bind on FreeBSD as well. The config files are in different places and the startup commands differ but thats it.
I normally run a split DNS for internal vs external if I own or control a registered domain instead of running .internal .local or one I made up. This is however a personal choice as both ways work and both can have issues.