Hi there -
I am just starting out in my home lab, networking, and computer programming journeys, so its a quite a bit all at the same time. Some questions may have generally accepted or 'obvious' answers that never came my way, apologies!
I have recently gotten my home server 'stable', in a rather loose sense. I am running Technetium as DNS and adware/blocking, Traefik for reverse proxy, and beszel for monitoring. A second computer is becoming my new test-bench so I stop taking the entire house offline every reboot.
I'm at the point where my main DNS server, a Raspberry Pi, needs some updates and a reboot, which made me start asking the question - is there a good way to back up DNS servicing on my local network to deal with hardware failure or shutdown, either intentional or accidental? My router only has one box to enter a DNS IP, otherwise I could just duplicate the technitium container on two devices. Is everyone just very deliberate about when they schedule shutdowns and reboots of their home devices?
@zhent Welcome! I hope you are doing good and glad to have you in the forums here. I think you are asking the right questions and starting to think about the basics of HA in the lab. And DNS is definitely one of those core critical servers. It does make things a bit more interesting that your router only allows you to enter one input for DNS record input.
Usually what I would recommend with Technitium is that you would create two Technitium servers and now there is native clustering as of Technitium v15. You can connect two Technitium servers together for clustering those and having high availability to your DNS infrastructure. This allows you to have a primary and secondary DNS server for clients/servers.
I think one of the best ways you could have a "single" IP but also have two servers servicing your infrastructure is that you could have two servers fronted by Keepalived. You could load Keepalived on both of your container hosts. Then you would use something like the following configuration, that they call a "tracking script" I believe:
vrrp_script chk_technitium {
script "/usr/local/bin/check-technitium.sh"
interval 1
timeout 1
fall 2
rise 2
}
The above config will check DNS every 1 second and after 2 failures, it will consider the check failed. This way you could populate with the virtual IP of the Keepalived config and then it will forward DNS requests to the master server (configurable), until the container goes down. Then, the tracking script will fire and recognize the DNS service is down and will failover the solution to the secondary server.
Let me know if this helps.
Brandon
