Home LAB DNS - Technitium

My Home LAB has been a core part of my career for the last 25 years and during that time, has evolved and changed as new technologies came along. Having had Microsoft Windows Server installed as the core part of my LAB throughout that, I have always ended up running DNS as part of my Active Directory Domain. This all changed when, attempting to install a PKI infrastructure (that wasn't Microsoft) I discovered that CAA records weren't a simple implementation.

After numerous hours searching (and yes, using AI) I did eventually manage to implement it, however, being the techy I am I wasn't satisfied with this and so, I decided to take the plunge and implement an entirely new DNS infrastructure within my Home LAB. 

I'm a big fan of Linux, but with all the will in the world I'm no expert on the command line so one of my core requirements for any new DNS Server was that it had at least some form of GUI. I tried many different ones, but I came along Technitium DNS and the more I read in to it the more I liked the sound of it.

What is Technitium DNS?

Technitium is an open source, authoritative as well as a recursive DNS server. To put it in basic terms, it can act as both a primary DNS server for your DNS zones, and can also be used as a query server for internal and external DNS resolution.

Why it's great for a Home LAB environment

To get the most out of any Home LAB I would highly recommend some form of DNS server. A lot of things that you may want to test/install may well require a FQDN (fully qualified domain name) rather than using the IP address. And if anything, I personally feel it's the best method and opens up a whole world of opportunities as you develop your LAB environment. For me, I found that Microsoft's AD/DNS implementation is great for what it was designed to do, but when you want to start extending beyond the rhelms of Microsoft products it starts to become more restrictive and, frustrating.

What are the key features of Technitium DNS?

Despite it being Open Source being a huge benefit, some of the main features that stood out to me (but not an exhaustive list):
  • Authoritative DNS server - server your own internal domains such as lab.example.local OR if you're feeling really brave, you can set it to be authoratative for external DNS resolution (i.e. .com/.net etc) but you need to be confident that your security and monitoring are in place as you'll need to open up ports on your firewall or router to allow this.

  • Recursive DNS server - Allows you to query Technitium for DNS resolution, for example if your clients want to resolve www.google.com, Technitium will act as the resolver for you as long as you've configured everything correctly during installation.

  • DNS blocking - Technitium can use widely recognised DNS blacklists to act as a web filter, seamlessly filtering out Adverts, Malware, Adult Content and many others. It has built in filtering lists but you can also add custom ones.

  • DHCP Server - Technitium can also act as your local DHCP server and issue IP addresses for your clients and is also VLAN aware so you can have different scopes for different VLANs.

  • Monitoring/Reporting - By far one of the best features is it's built in query monitoring and report tools. Graphs show the number of DNS queries, top source clients, top destinations and top blocked amongst a bunch of others. In addition, you can query to the granular detail all the logs, something that frankly, isn't so straight forward via AD/DNS.

How can I install and try out Technitium?

There are a number of methods of installing Technitium. There's a recognised Docker container image, or you can install using their install script. I did try the Docker image but I personally felt it added a little more complexity to the overall installation. My PERSONAL recommendation is a fresh Linux installation, entirely your choice which one, however my preference has always been Ubuntu Server.

All the details can be found in their blog post at https://blog.technitium.com/2017/11/running-dns-server-on-ubuntu-linux.html

Have you used Technitium, or tried it? Let me know your thoughts and share your experiences

Comments