Technitium DNS v14 is released with support for clustering (github.com)
from stratself@lemdro.id to selfhosted@lemmy.world on 09 Nov 07:59
https://lemdro.id/post/31569064

Technitium DNS Server (TDNS) has gotten a new release with many awesome features: TOTP authentication, an upgraded .NET library, and many security and performance fixes.

But most important of all, it now supports clustering. A long-awaited feature, this allows Technitium to sync DNS zones and configurations across multiple nodes, without needing an external orchestrator like Kubernetes, or an out-of-band method to replicate underlying data. For selfhosters, this would enable resilience for many use cases, such as internal homelab adblocks or even selfhosting your public domains.

From a discussion with the developer and his sneak peek on Reddit, it is now known that the cluster is set up as a single-primary/multiple-secondary topology. They communicate via good-old REST API calls, and transported via HTTPS for on-the-wire encryption.

To sync DNS zones (i.e. domains), the primary server provisions the “catalog” of domains, for secondary ones to dynamically update records in a method known as Zone Transfers. This feature, standardized as Catalog Zones (RFC9432), were actually supported since the previous v13 release as groundwork for the current implementation.

As an interesting result, nodes can sync to a cluster’s catalog zone, as well as define their own zones and even employs other catalog zones from outside the cluster. This would allow setups where, for example, some domains are shared between all nodes, and some others only between a subset of servers.

To sync the rest of the data such as blocklists, allowlists, and installed apps, the software simply sends over incremental backups to secondaries. The admin UI panel is also revamped to improve multi-node management: it now allows logging in to other cluster nodes, as well as collating some aggregated statistics for the central Dashboard. Lastly, a secondary node can be promoted to primary in case of failures, with signing keys also managed within for a seamless transition of DNSSEC signed zones.

More details about configuring clusters is to be provided in a blogpost in the upcoming days. It is important to note that this feature only supports DNS stuff, and not DHCP just yet (Technitium is also a DHCP server). This, along with DHCPv6 and auto-promotion rules for secondaries, is planned for the upcoming major release(s) later on.

As a single-person copyleft project, the growth of this absolute gem of a software has been tremendous, and can only get better from here. I personally can’t wait to try it out soon

Disclaimer: I’m just a user, not the maintainer of the project. Information here may be updated for correctness and you can repost this to whatever

#selfhosted

threaded - newest

zwerg@feddit.org on 09 Nov 08:19 next collapse

How is this better/differentthan pihole?

comrade_twisty@feddit.org on 09 Nov 08:40 next collapse

One big advantage is that you don’t need to run unbound in addition to free yourself from (commercial/non-profit) upstream dns providers completely.

besmtt@lemmy.world on 09 Nov 09:30 collapse

Is this done by keeping recursion set to the default and leaving Forwarders blank?

tux0r@feddit.org on 10 Nov 12:24 collapse

Yes

KlavKalashj@lemmy.world on 11 Nov 05:24 collapse

I dont get it. With these settings, dns just stops working and requests are timing out.

tux0r@feddit.org on 11 Nov 08:28 collapse

You mean, by not setting them?

KlavKalashj@lemmy.world on 11 Nov 13:59 collapse

Yes

stratself@lemdro.id on 09 Nov 08:58 collapse

Off the top of my head:

  • Allows using DoH/DoT/DoQUIC/recursive upstreams without installing extra packages (unbound, cloudflared, etc)
  • Allows acting as a DoH/DoH3/DoT/DoQUIC server alongside normal DNS over UDP and TCP
  • Allows configuring SOCKS/HTTP proxies for forwarders
  • Act as authoritative zone server with DNSSEC signing
  • Allows custom responses via plugins (e.g. conditional responses based on client’s IP addresses)
  • Accept PROXY Protocol to forward client IPs from trusted load balancers
  • All the clustering and zone transfers magic
  • DNS64

It really dives deep into the inner workings of DNS and does pretty much anything Pi-Hole does, with many more security and QoL features. Although the UI may feel a bit dated, I’d recommend it to anyone running their own homelab infrastructure beyond just adblocking

fightforlife@lemmy.world on 09 Nov 10:43 collapse

The feature list sounds even better than adguard home. I might give this a try!

Courantdair@jlai.lu on 09 Nov 13:47 collapse

Proxy protocol is the one thing I’m missing from adguard, nice that it has it!

besmtt@lemmy.world on 09 Nov 08:43 next collapse

I’d love to hear from anyone has used this, especially if you moved from Pi-hole to Technitium. I run Pi-hole in an LXC and on a Pi3b and it’s mildly annoying to make changes or updates, so clustering has piqued my curiosity.

arcayne@lemmy.today on 09 Nov 09:48 next collapse

I tried out Pi-hole many years ago, found it a bit too dumbed down and limited for my taste. I’ve been running Technitium for 5-ish years in my homelab, it’s been rock solid and very pleasant work with. I’ve even deployed it at work for a few projects as well. Been waiting for the clustering feature for a while now, super stoked to see this release.

BarbecueCowboy@lemmy.dbzer0.com on 09 Nov 14:26 next collapse

Plus side, the increase in functionality with technitium is drastic. Down side, the increase in functionality is drastic…

You can do everything you’d want to do with pihole with technitium instead, but there’s a lot of additional advanced features that will have you reading a lot of documentation.

non_burglar@lemmy.world on 09 Nov 14:33 collapse

I moved from pihole to technitium roughly two years ago. I was tired of pihole not doing “adult” DNS things, like zone transfers. Technitium is a real DNS server, pihole is just a resolver. You can create actual soa and srv records with technitium.

sem@lemmy.blahaj.zone on 09 Nov 13:12 next collapse

What does it do?

tvcvt@lemmy.ml on 09 Nov 14:14 collapse

Technetium is a recursive DNS resolver with a nice web UI. If you’re familiar with PiHole or AdGuard Home, you can think of it in that genre, but much more full-featured.

sem@lemmy.blahaj.zone on 10 Nov 00:38 collapse

Is it kind of like unbound with a webgui then?

tvcvt@lemmy.ml on 10 Nov 02:41 collapse

I use it like I might use unbound or dnsmasq, but I’d think of it more like bind. It’s can be used as a recursive or authoritative resolver. It supports all kinds of protocols (DOT, DOH, DNSSEC, etc). Handles zone transfers easily. It’s pretty slick. Definitely worth a look

xavier666@lemmy.umucat.day on 09 Nov 14:06 next collapse

This looks really cool. And I just setup Pihole 😐

ohshit604@sh.itjust.works on 09 Nov 14:23 next collapse

If only reverse proxying Technitium wasn’t a pain in the ass to do I would actually use it. Maybe one day they’ll fix the login issues until then PiHole works.

stratself@lemdro.id on 09 Nov 14:57 collapse

What issues did you have reverse-proxying? For me it was just as simple as pointing to port 5380. Other ports like 53 could be passed on with a layer-4 router

What about the login issues? I’d hope they’ll be integrating with OIDC or some other auth mechanism, but for now managing 2FA creds should make do

ohshit604@sh.itjust.works on 09 Nov 15:17 collapse

This was a while ago so the details are fuzzy, I gave it Traefiks docker labels on port :5380 but that didn’t seem to work then I read an a bug report saying give Traefik :8053 so I tried that and again didn’t work so I went back to :5380 and all of a sudden it reverse proxied but my login wouldn’t work even though it worked when going to the LAN IP+Port didn’t find much in terms of troubleshooting and documentation so I eventually gave up on it.

I have had terrible experiences with recursive DNS resolvers, PiHole+Unbound worked for maybe an hour then would completely kill my internet access, the same essentially went with OpenSense, I had hope for Technitium but alas didn’t feel the need to spend hours troubleshooting something that PiHole alone did with ease.

stratself@lemdro.id on 09 Nov 16:35 collapse

Ah, I see. Well I’m glad you found PiHole useful and stick to using it anyhow!

clb92@feddit.dk on 09 Nov 14:26 next collapse

I am about to install a second Technitium instance, so this is great timing.

non_burglar@lemmy.world on 09 Nov 14:28 collapse

It already could sync zones, I’ve been doing primary -> secondary zone transfers for at least two years.

It didn’t sync lists and other configs, though. That’s new.