Your HomeLab DNS Needs a Backup // Technitium
Read full transcript 15 segments
-
In my last Technicium tutorial, I built In my last Technicium tutorial, I built exactly the DNS setup I wanted for my exactly the DNS setup I wanted for my exactly the DNS setup I wanted for my home lab. A real recursive DNS server home lab. A real recursive DNS server home lab. A real recursive DNS server running in Docker, managed through a running in Docker, managed through a running in Docker, managed through a clean web interface and even automated clean web interface and even automated clean web interface and even automated via infrastructure as code. The only via infrastructure as code. The only via infrastructure as code. The only problem was I built it on just one problem was I built it on just one problem was I built it on just one server. And when that server or the server. And when that server or the server. And when that server or the container goes down, nothing would container goes down, nothing would container goes down, nothing would actually work in my home appl anymore. actually work in my home appl anymore. actually work in my home appl anymore. And that's why today I'm going to show And that's why today I'm going to show And that's why today I'm going to show you how to add a second or even a third you how to add a second or even a third you how to add a second or even a third technium server as a backup. We'll use technium server as a backup. We'll use technium server as a backup. We'll use the built-in Technesium clustering the built-in Technesium clustering the built-in Technesium clustering function, which allows you to function, which allows you to function, which allows you to synchronize the DNS configuration across synchronize the DNS configuration across synchronize the DNS configuration across multiple containers you can run on multiple containers you can run on multiple containers you can run on separate servers where all of them can separate servers where all of them can separate servers where all of them can later actively answer DNS queries from later actively answer DNS queries from later actively answer DNS queries from your clients. That's by the way a pretty your clients. That's by the way a pretty your clients. That's by the way a pretty common setup in professional IT common setup in professional IT common setup in professional IT environments because in networking so environments because in networking so environments because in networking so much depends on DNS. So in my opinion, much depends on DNS. So in my opinion, much depends on DNS. So in my opinion, it's a musthave for a reliable network it's a musthave for a reliable network it's a musthave for a reliable network setup. And trust me guys, it's even not setup. And trust me guys, it's even not setup. And trust me guys, it's even not that complicated to configure. Okay that complicated to configure. Okay that complicated to configure. Okay guys, so that's a simple diagram that guys, so that's a simple diagram that guys, so that's a simple diagram that visualizes what exactly we are building visualizes what exactly we are building visualizes what exactly we are building today. By the way, I've already today. By the way, I've already today. By the way, I've already implemented this to my own home lab. So implemented this to my own home lab. So implemented this to my own home lab. So it's already running in production and it's already running in production and it's already running in production and it's working pretty well. Uh maybe I'm it's working pretty well. Uh maybe I'm it's working pretty well. Uh maybe I'm showing you this later, but I've also showing you this later, but I've also showing you this later, but I've also added a third DNS server. So you can added a third DNS server. So you can added a third DNS server. So you can easily expand this setup if you like. Of easily expand this setup if you like. Of easily expand this setup if you like. Of course, it makes the most sense if course, it makes the most sense if course, it makes the most sense if you're deploying the technium DNS you're deploying the technium DNS you're deploying the technium DNS containers on separate physical containers on separate physical containers on separate physical machines. In my setup, I am running a machines. In my setup, I am running a machines. In my setup, I am running a free node Proxmox cluster and I've free node Proxmox cluster and I've free node Proxmox cluster and I've distributed the technium DNS containers
-
distributed the technium DNS containers distributed the technium DNS containers across all the free nodes. So, whenever across all the free nodes. So, whenever across all the free nodes. So, whenever I'm rebooting one of the Proxbox I'm rebooting one of the Proxbox I'm rebooting one of the Proxbox servers, the secondary or third DNS servers, the secondary or third DNS servers, the secondary or third DNS container can jump in and answer the container can jump in and answer the container can jump in and answer the requests coming from my clients. By the requests coming from my clients. By the requests coming from my clients. By the way, if you haven't watched my first way, if you haven't watched my first way, if you haven't watched my first video about how to deploy Technicium video about how to deploy Technicium video about how to deploy Technicium with a simple Docker Compose setup, then with a simple Docker Compose setup, then with a simple Docker Compose setup, then go and watch that video. Of course, I go and watch that video. Of course, I go and watch that video. Of course, I put you that in the description. Today, put you that in the description. Today, put you that in the description. Today, we'll expand on this setup. So, I'm not we'll expand on this setup. So, I'm not we'll expand on this setup. So, I'm not explaining everything from the explaining everything from the explaining everything from the beginning, just what you need to make beginning, just what you need to make beginning, just what you need to make your DNS setup reliable with clustering. your DNS setup reliable with clustering. your DNS setup reliable with clustering. All right, but that's basically how this All right, but that's basically how this All right, but that's basically how this works. So as soon as you add a secondary works. So as soon as you add a secondary works. So as soon as you add a secondary or third DNS server to your technium or third DNS server to your technium or third DNS server to your technium cluster, it will automatically cluster, it will automatically cluster, it will automatically synchronize the configuration from the synchronize the configuration from the synchronize the configuration from the primary DNS server to the secondary, primary DNS server to the secondary, primary DNS server to the secondary, third and so on. And it is not only a third and so on. And it is not only a third and so on. And it is not only a cold backup. So that means that the DNS cold backup. So that means that the DNS cold backup. So that means that the DNS server two or three are sitting there server two or three are sitting there server two or three are sitting there and waiting for the first server to and waiting for the first server to and waiting for the first server to fail. The clients can send DNS requests fail. The clients can send DNS requests fail. The clients can send DNS requests to the first or the second or third to the first or the second or third to the first or the second or third server and all of them will answer the server and all of them will answer the server and all of them will answer the DNS requests individually. You can also DNS requests individually. You can also DNS requests individually. You can also use a DHCP server and that provides the use a DHCP server and that provides the use a DHCP server and that provides the IP addresses for all my free DNS servers IP addresses for all my free DNS servers IP addresses for all my free DNS servers or in that demo example for the two DNS or in that demo example for the two DNS or in that demo example for the two DNS servers to that client. So whenever the servers to that client. So whenever the servers to that client. So whenever the client receives an IP address from your client receives an IP address from your client receives an IP address from your router or open sense firewall, it will router or open sense firewall, it will router or open sense firewall, it will get the IP addresses of the DNS servers get the IP addresses of the DNS servers get the IP addresses of the DNS servers automatically and then the client can automatically and then the client can automatically and then the client can send the DNS requests to one of these send the DNS requests to one of these send the DNS requests to one of these servers in the cluster. Windows, Mac OS servers in the cluster. Windows, Mac OS servers in the cluster. Windows, Mac OS or Linux have their own ways of making
-
or Linux have their own ways of making or Linux have their own ways of making DNS queries and the one operating system DNS queries and the one operating system DNS queries and the one operating system might always query the first one. The might always query the first one. The might always query the first one. The secondary might check which one responds secondary might check which one responds secondary might check which one responds the fastest and then use that. So it the fastest and then use that. So it the fastest and then use that. So it really depends on the OS. On Mac OS, I really depends on the OS. On Mac OS, I really depends on the OS. On Mac OS, I can tell you from my experience, it can tell you from my experience, it can tell you from my experience, it sends the request to the first DNS sends the request to the first DNS sends the request to the first DNS server, but when that goes down, it will server, but when that goes down, it will server, but when that goes down, it will notice that pretty fast and then send notice that pretty fast and then send notice that pretty fast and then send out the request to the secondary one. out the request to the secondary one. out the request to the secondary one. Now, before we go through the Now, before we go through the Now, before we go through the installation and configuration, let's installation and configuration, let's installation and configuration, let's quickly talk about monitoring as well quickly talk about monitoring as well quickly talk about monitoring as well because DNS is one of those services you because DNS is one of those services you because DNS is one of those services you mostly only notice when something mostly only notice when something mostly only notice when something breaks. And in a professional IT breaks. And in a professional IT breaks. And in a professional IT environment, there are many other environment, there are many other environment, there are many other critical services just like that. Of critical services just like that. Of critical services just like that. Of course, you just want to know what's course, you just want to know what's course, you just want to know what's going on in your network. And that's going on in your network. And that's going on in your network. And that's where you should use Op Manager Nexus, where you should use Op Manager Nexus, where you should use Op Manager Nexus, made by Manage Engine, the sponsor of made by Manage Engine, the sponsor of made by Manage Engine, the sponsor of today's video. OP Manager Nexus is an IT today's video. OP Manager Nexus is an IT today's video. OP Manager Nexus is an IT operations management and fullstack operations management and fullstack operations management and fullstack observability platform for NetOps, observability platform for NetOps, observability platform for NetOps, DevOps, SRRES, and IT teams that need DevOps, SRRES, and IT teams that need DevOps, SRRES, and IT teams that need visibility across their entire visibility across their entire visibility across their entire infrastructure. And what makes it infrastructure. And what makes it infrastructure. And what makes it interesting compared to other monitoring interesting compared to other monitoring interesting compared to other monitoring tools is that Op manager Nexus brings in tools is that Op manager Nexus brings in tools is that Op manager Nexus brings in a wide range of areas. all together in a wide range of areas. all together in a wide range of areas. all together in one single platform. So it does one single platform. So it does one single platform. So it does application performance management. It application performance management. It application performance management. It does infrastructure monitoring, does infrastructure monitoring, does infrastructure monitoring, bandwidth and traffic management, bandwidth and traffic management, bandwidth and traffic management, configuration and compliance management, configuration and compliance management, configuration and compliance management, plus IP address, switchboard and plus IP address, switchboard and plus IP address, switchboard and firewall management. And it supports firewall management. And it supports firewall management. And it supports more than 450 plus vendors, 10,000 plus more than 450 plus vendors, 10,000 plus more than 450 plus vendors, 10,000 plus device types and 150 plus applications
-
device types and 150 plus applications device types and 150 plus applications completely out of the box. And you get completely out of the box. And you get completely out of the box. And you get visibility about everything that matters visibility about everything that matters visibility about everything that matters in your infrastructure from one central in your infrastructure from one central in your infrastructure from one central place that scales up to monitor more place that scales up to monitor more place that scales up to monitor more than 10,000 devices and 50,000 than 10,000 devices and 50,000 than 10,000 devices and 50,000 interfaces. And for fault management, it interfaces. And for fault management, it interfaces. And for fault management, it can also help you to stay ahead of can also help you to stay ahead of can also help you to stay ahead of outages with root cause analysis, outages with root cause analysis, outages with root cause analysis, troubleshooting reports, alarming with troubleshooting reports, alarming with troubleshooting reports, alarming with thresholds that use machine learning and thresholds that use machine learning and thresholds that use machine learning and predictive algorithms without having you predictive algorithms without having you predictive algorithms without having you to tune every metric. So OP Manager to tune every metric. So OP Manager to tune every metric. So OP Manager Nexus is a really huge professional Nexus is a really huge professional Nexus is a really huge professional platform. It has tons and tons of platform. It has tons and tons of platform. It has tons and tons of features, more than we could cover here. features, more than we could cover here. features, more than we could cover here. So, better try it out yourself. There's So, better try it out yourself. There's So, better try it out yourself. There's a 30 days free trial that is super a 30 days free trial that is super a 30 days free trial that is super simple to set up on Windows or a Linux simple to set up on Windows or a Linux simple to set up on Windows or a Linux server. Of course, I'll put you the link server. Of course, I'll put you the link server. Of course, I'll put you the link to it in the description box down below. to it in the description box down below. to it in the description box down below. Okay guys, so now let's get back to Okay guys, so now let's get back to Okay guys, so now let's get back to Technium DNS clustering. I've prepared Technium DNS clustering. I've prepared Technium DNS clustering. I've prepared for this demonstration two small virtual for this demonstration two small virtual for this demonstration two small virtual machines on my Proxmox cluster running machines on my Proxmox cluster running machines on my Proxmox cluster running Ubuntu Linux and the Docker engine. And Ubuntu Linux and the Docker engine. And Ubuntu Linux and the Docker engine. And of course, I've already deployed the of course, I've already deployed the of course, I've already deployed the Technicium DNS server with Docker Technicium DNS server with Docker Technicium DNS server with Docker Compose. So, just like in my first Compose. So, just like in my first Compose. So, just like in my first tutorial, I've done this because I can tutorial, I've done this because I can tutorial, I've done this because I can better show you how you can set up this better show you how you can set up this better show you how you can set up this completely from scratch without having completely from scratch without having completely from scratch without having to break my existing DNS setup. So, to break my existing DNS setup. So, to break my existing DNS setup. So, that's why we're using this small that's why we're using this small that's why we're using this small demonstration. But you can easily add demonstration. But you can easily add demonstration. But you can easily add just like I told you a third or even just like I told you a third or even just like I told you a third or even fourth DNS uh container maybe running on fourth DNS uh container maybe running on fourth DNS uh container maybe running on a separate physical machine that would a separate physical machine that would a separate physical machine that would be the best. But for this demo, I think be the best. But for this demo, I think be the best. But for this demo, I think it's fine that they are all running on it's fine that they are all running on it's fine that they are all running on one node. And for this, I've also one node. And for this, I've also one node. And for this, I've also deployed a client test server that's
-
deployed a client test server that's deployed a client test server that's running Ubuntu desktop. So there I can running Ubuntu desktop. So there I can running Ubuntu desktop. So there I can show you how that's running when one of show you how that's running when one of show you how that's running when one of these servers goes down. Now let's jump these servers goes down. Now let's jump these servers goes down. Now let's jump into the terminal. So there I'm into the terminal. So there I'm into the terminal. So there I'm connected to both of these DNS servers. connected to both of these DNS servers. connected to both of these DNS servers. So here in this directory, I've added a So here in this directory, I've added a So here in this directory, I've added a compos.l file. This contains the compos.l file. This contains the compos.l file. This contains the application deployment of technium application deployment of technium application deployment of technium running the latest version. It's running the latest version. It's running the latest version. It's important to use the same version on important to use the same version on important to use the same version on every cluster node. I think that is every cluster node. I think that is every cluster node. I think that is recommended should be self-explanable. recommended should be self-explanable. recommended should be self-explanable. And each container gets a separate host And each container gets a separate host And each container gets a separate host name. The first one is DNS test one. name. The first one is DNS test one. name. The first one is DNS test one. Secondary is DNS test 2 of course. So Secondary is DNS test 2 of course. So Secondary is DNS test 2 of course. So that makes sense. And I've also that makes sense. And I've also that makes sense. And I've also preconfigured these DNS servers with the preconfigured these DNS servers with the preconfigured these DNS servers with the environment variable DNS server domain. environment variable DNS server domain. environment variable DNS server domain. You can by the way set this in the web You can by the way set this in the web You can by the way set this in the web UI later as well. I'm showing you this. UI later as well. I'm showing you this. UI later as well. I'm showing you this. But uh what is important that you But uh what is important that you But uh what is important that you configure both DNS servers with a configure both DNS servers with a configure both DNS servers with a primary identity in a cluster domain. So primary identity in a cluster domain. So primary identity in a cluster domain. So that we will set up later. So this means that we will set up later. So this means that we will set up later. So this means every DNS server should have a unique every DNS server should have a unique every DNS server should have a unique name dot and then a cluster domain. In name dot and then a cluster domain. In name dot and then a cluster domain. In my example, I'm calling this my example, I'm calling this my example, I'm calling this techniumcluster.est.
-
techniumcluster.est. techniumcluster.est. In my production homelab, it's I think In my production homelab, it's I think In my production homelab, it's I think DNSC cluster.home.crave.de. DNSC cluster.home.crave.de. DNSC cluster.home.crave.de. So just pick any unique name. It should So just pick any unique name. It should So just pick any unique name. It should be a separate zone just for the be a separate zone just for the be a separate zone just for the identities of the technium cluster. So identities of the technium cluster. So identities of the technium cluster. So do not put this on your general DNS zone do not put this on your general DNS zone do not put this on your general DNS zone that you're using for other uh servers. that you're using for other uh servers. that you're using for other uh servers. And then of course I've uh provisioned And then of course I've uh provisioned And then of course I've uh provisioned the admin password. I'm storing this in the admin password. I'm storing this in the admin password. I'm storing this in av file in the same directory. I'm also av file in the same directory. I'm also av file in the same directory. I'm also storing the locks in a path with a storing the locks in a path with a storing the locks in a path with a persistent Docker volume. So this is persistent Docker volume. So this is persistent Docker volume. So this is recommended by Technicium. You can find recommended by Technicium. You can find recommended by Technicium. You can find that in the documentation. And for this that in the documentation. And for this that in the documentation. And for this setup, I'm still currently using four setup, I'm still currently using four setup, I'm still currently using four waters, but you can of course also run waters, but you can of course also run waters, but you can of course also run this as a recursive DNS server. Now, this as a recursive DNS server. Now, this as a recursive DNS server. Now, what is important for the port exposure, what is important for the port exposure, what is important for the port exposure, these, of course, are needed for DNS these, of course, are needed for DNS these, of course, are needed for DNS queries, TCP and UDP on port 53. That's queries, TCP and UDP on port 53. That's queries, TCP and UDP on port 53. That's where DNS requests are coming from. When where DNS requests are coming from. When where DNS requests are coming from. When you're running a traffic reverse proxy you're running a traffic reverse proxy you're running a traffic reverse proxy like in my technium tutorial, you do not like in my technium tutorial, you do not like in my technium tutorial, you do not need to expose this port here. So that's need to expose this port here. So that's need to expose this port here. So that's for the web interface on these test for the web interface on these test for the web interface on these test containers. I'm not running traffic. So containers. I'm not running traffic. So containers. I'm not running traffic. So I'm just uh exposing the port 5380 to I'm just uh exposing the port 5380 to I'm just uh exposing the port 5380 to log into the web interface. And then log into the web interface. And then log into the web interface. And then there's also this port here 53443. This there's also this port here 53443. This there's also this port here 53443. This is required as a direct HTTPS point for is required as a direct HTTPS point for is required as a direct HTTPS point for the technium clustering. So when the the technium clustering. So when the the technium clustering. So when the secondary or the third cluster is secondary or the third cluster is secondary or the third cluster is synchronizing its configuration, this is synchronizing its configuration, this is synchronizing its configuration, this is happening over this port here. And then happening over this port here. And then happening over this port here. And then there's also this setting here. So this there's also this setting here. So this there's also this setting here. So this preserves the technicium recommended
-
preserves the technicium recommended preserves the technicium recommended outbound port range. I found that in the outbound port range. I found that in the outbound port range. I found that in the documentation. I will add this to my documentation. I will add this to my documentation. I will add this to my boiler plates template so that you can boiler plates template so that you can boiler plates template so that you can easily just copy and paste that from uh easily just copy and paste that from uh easily just copy and paste that from uh my library as well. Link is in the my library as well. Link is in the my library as well. Link is in the description. So the second server description. So the second server description. So the second server basically looks the same. Of course it basically looks the same. Of course it basically looks the same. Of course it has a different IP address and a has a different IP address and a has a different IP address and a different name. Yeah, let's try to log different name. Yeah, let's try to log different name. Yeah, let's try to log into the web interface of the first DNS into the web interface of the first DNS into the web interface of the first DNS server. So this is where we start server. So this is where we start server. So this is where we start initiating the cluster. Of course, this initiating the cluster. Of course, this initiating the cluster. Of course, this is happening on that port here. So, I'm is happening on that port here. So, I'm is happening on that port here. So, I'm adding this here and log in with my adding this here and log in with my adding this here and log in with my credentials. All right. So, let's also credentials. All right. So, let's also credentials. All right. So, let's also open a connection to the secondary open a connection to the secondary open a connection to the secondary server because I need that later as server because I need that later as server because I need that later as well. Should have the same credential. well. Should have the same credential. well. Should have the same credential. And here we are. So, as you can see, And here we are. So, as you can see, And here we are. So, as you can see, there's nothing going on. It's just there's nothing going on. It's just there's nothing going on. It's just demo. That's fine. And first of all, you demo. That's fine. And first of all, you demo. That's fine. And first of all, you need to check whether the DNS servers need to check whether the DNS servers need to check whether the DNS servers have their unique identity before have their unique identity before have their unique identity before initializing the cluster. So go to initializing the cluster. So go to initializing the cluster. So go to settings and here the DNS server domain settings and here the DNS server domain settings and here the DNS server domain that should be the unique name the that should be the unique name the that should be the unique name the cluster domain that we are later using cluster domain that we are later using cluster domain that we are later using of course on both of these servers on of course on both of these servers on of course on both of these servers on the first server let's go to the first server let's go to the first server let's go to administration and go to cluster here administration and go to cluster here administration and go to cluster here you can see the cluster is not you can see the cluster is not you can see the cluster is not initialized currently so we'll do that initialized currently so we'll do that initialized currently so we'll do that just click on initialize new cluster just click on initialize new cluster just click on initialize new cluster again it's super simple and here you can again it's super simple and here you can again it's super simple and here you can add the cluster domain note that when add the cluster domain note that when add the cluster domain note that when you're initializing the cluster this you're initializing the cluster this you're initializing the cluster this server will become the new primary one server will become the new primary one server will become the new primary one and all the others you can join later.
-
and all the others you can join later. and all the others you can join later. They become the secondary nodes. I'm They become the secondary nodes. I'm They become the secondary nodes. I'm using techniciumcluster.est using techniciumcluster.est using techniciumcluster.est as a unique domain. And now we need to as a unique domain. And now we need to as a unique domain. And now we need to add the primary nodes IP address. In my add the primary nodes IP address. In my add the primary nodes IP address. In my example, this is 1020 example, this is 1020 example, this is 1020 240. 240. 240. And yeah, that's basically it. All And yeah, that's basically it. All And yeah, that's basically it. All right, let's click on initialize. Now right, let's click on initialize. Now right, let's click on initialize. Now the cluster is initialized. Again, it's the cluster is initialized. Again, it's the cluster is initialized. Again, it's not really complicated, but that now has not really complicated, but that now has not really complicated, but that now has created two separate things here. First created two separate things here. First created two separate things here. First of all, if we go to zones, you can see of all, if we go to zones, you can see of all, if we go to zones, you can see that it has created two DNS zones that that it has created two DNS zones that that it has created two DNS zones that are needed for the cluster to function are needed for the cluster to function are needed for the cluster to function properly. So, before adding a secondary properly. So, before adding a secondary properly. So, before adding a secondary server, check if those two zones are server, check if those two zones are server, check if those two zones are created. Now, the cluster domain is created. Now, the cluster domain is created. Now, the cluster domain is Technicium's dedicated DNS name space Technicium's dedicated DNS name space Technicium's dedicated DNS name space for the cluster itself. So, it is not a for the cluster itself. So, it is not a for the cluster itself. So, it is not a client-facing zone like home.crave.de client-facing zone like home.crave.de client-facing zone like home.crave.de that I'm using for my other applications that I'm using for my other applications that I'm using for my other applications or server DNS records. Technicium uses or server DNS records. Technicium uses or server DNS records. Technicium uses the cluster domain for its node the cluster domain for its node the cluster domain for its node identities, the cluster records, the identities, the cluster records, the identities, the cluster records, the catalog zone and TLSA records which is catalog zone and TLSA records which is catalog zone and TLSA records which is required for secure communication. So, required for secure communication. So, required for secure communication. So, choose a unique domain that does not choose a unique domain that does not choose a unique domain that does not conflict with any existing zone. Note conflict with any existing zone. Note conflict with any existing zone. Note that this cluster domain cannot be that this cluster domain cannot be that this cluster domain cannot be changed later because the generated changed later because the generated changed later because the generated cluster state and records depend on that cluster state and records depend on that cluster state and records depend on that namespace. Okay, once we have that, we namespace. Okay, once we have that, we namespace. Okay, once we have that, we can jump to the secondary server. Also can jump to the secondary server. Also can jump to the secondary server. Also go into administration clustering and go into administration clustering and go into administration clustering and then just click on initialize join then just click on initialize join then just click on initialize join cluster. And here we need to fill in cluster. And here we need to fill in cluster. And here we need to fill in more information. First of all, the more information. First of all, the more information. First of all, the secondary node IP address. So this is
-
secondary node IP address. So this is secondary node IP address. So this is the IP address for that current server. the IP address for that current server. the IP address for that current server. And then we need the primary node URL. And then we need the primary node URL. And then we need the primary node URL. So this you can find here. You can just So this you can find here. You can just So this you can find here. You can just copy this. And what is optional, but copy this. And what is optional, but copy this. And what is optional, but this is quite important. You also should this is quite important. You also should this is quite important. You also should add the primary nodes IP address. If you add the primary nodes IP address. If you add the primary nodes IP address. If you do not add the IP address, then um the do not add the IP address, then um the do not add the IP address, then um the secondary server will try to resolve the secondary server will try to resolve the secondary server will try to resolve the primary nodes IP via this DNS entry and primary nodes IP via this DNS entry and primary nodes IP via this DNS entry and that might not work in your current that might not work in your current that might not work in your current setup yet. Also, because this is usually setup yet. Also, because this is usually setup yet. Also, because this is usually a self-signed certificate um click on a self-signed certificate um click on a self-signed certificate um click on ignore certificate validation errors. Of ignore certificate validation errors. Of ignore certificate validation errors. Of course, in a production setup, you could course, in a production setup, you could course, in a production setup, you could also provide a correct validation for also provide a correct validation for also provide a correct validation for this, but to just make it simple in a this, but to just make it simple in a this, but to just make it simple in a home lab, we'll just ignore certificate home lab, we'll just ignore certificate home lab, we'll just ignore certificate errors. Of course, we know what server errors. Of course, we know what server errors. Of course, we know what server it is, so that's fine. And then we need it is, so that's fine. And then we need it is, so that's fine. And then we need to just add the primary nodes username to just add the primary nodes username to just add the primary nodes username and the password. So, basically the same and the password. So, basically the same and the password. So, basically the same credentials as you need to log into the credentials as you need to log into the credentials as you need to log into the web interface. And that should be all. web interface. And that should be all. web interface. And that should be all. If everything is configured correctly, If everything is configured correctly, If everything is configured correctly, you should be able to join the first uh you should be able to join the first uh you should be able to join the first uh server in the cluster. And then you server in the cluster. And then you server in the cluster. And then you should already see both servers be should already see both servers be should already see both servers be added. And when you refresh that page on added. And when you refresh that page on added. And when you refresh that page on the first server, you should also be the first server, you should also be the first server, you should also be able to see the secondary one here. All able to see the secondary one here. All able to see the secondary one here. All right. And that's basically it. On the right. And that's basically it. On the right. And that's basically it. On the first and the second server, you should first and the second server, you should first and the second server, you should see all the zones, the cluster catalog see all the zones, the cluster catalog see all the zones, the cluster catalog zone, the technium cluster domain zone.
-
zone, the technium cluster domain zone. zone, the technium cluster domain zone. But you might not in an existing DNS But you might not in an existing DNS But you might not in an existing DNS setup see existing DNS zones. That's setup see existing DNS zones. That's setup see existing DNS zones. That's because you can very specifically decide because you can very specifically decide because you can very specifically decide what zones or what options you want to what zones or what options you want to what zones or what options you want to synchronize to the secondary or third synchronize to the secondary or third synchronize to the secondary or third DNS server in the cluster. So when you DNS server in the cluster. So when you DNS server in the cluster. So when you add a new zone for example let's add add a new zone for example let's add add a new zone for example let's add DNS-demo DNS-demo DNS-demo test here for example as a primary zone test here for example as a primary zone test here for example as a primary zone then you can choose a catalog zone. If then you can choose a catalog zone. If then you can choose a catalog zone. If you do not select this it will not be you do not select this it will not be you do not select this it will not be synchronized to the DNS server cluster synchronized to the DNS server cluster synchronized to the DNS server cluster but by default you probably want all the but by default you probably want all the but by default you probably want all the zones on all the servers available. So zones on all the servers available. So zones on all the servers available. So therefore it is pre-selected as a therefore it is pre-selected as a therefore it is pre-selected as a cluster zone. Let's click on add here. cluster zone. Let's click on add here. cluster zone. Let's click on add here. And then we can also add a new DNS And then we can also add a new DNS And then we can also add a new DNS record. I'm just adding a simple a record. I'm just adding a simple a record. I'm just adding a simple a record for I don't know app for example record for I don't know app for example record for I don't know app for example and just give this the IP address of the and just give this the IP address of the and just give this the IP address of the Ubuntu test machine for example. Yeah, Ubuntu test machine for example. Yeah, Ubuntu test machine for example. Yeah, we can also add a PTR create reverse we can also add a PTR create reverse we can also add a PTR create reverse zone for PTR and let's click on save. So zone for PTR and let's click on save. So zone for PTR and let's click on save. So then we should see a few more entries then we should see a few more entries then we should see a few more entries here in that demo test zone and we here in that demo test zone and we here in that demo test zone and we should also see the recursive zones. If should also see the recursive zones. If should also see the recursive zones. If we go to the options you can also go to we go to the options you can also go to we go to the options you can also go to zone options catalog zone. You can see zone options catalog zone. You can see zone options catalog zone. You can see this is not synchronized automatically this is not synchronized automatically this is not synchronized automatically to the cluster catalog but I can do this to the cluster catalog but I can do this to the cluster catalog but I can do this here. So um let's click on save and then here. So um let's click on save and then here. So um let's click on save and then when we go to the secondary server it when we go to the secondary server it when we go to the secondary server it sometimes can take some time. Here they sometimes can take some time. Here they sometimes can take some time. Here they are. So it took like a few seconds but are. So it took like a few seconds but are. So it took like a few seconds but now you can see the DNS demo.est zone now you can see the DNS demo.est zone now you can see the DNS demo.est zone with all the records that we have with all the records that we have with all the records that we have created synchronized to the secondary
-
created synchronized to the secondary created synchronized to the secondary server. That's fine. Now I could server. That's fine. Now I could server. That's fine. Now I could basically just send a DNS request from basically just send a DNS request from basically just send a DNS request from any client to any of the two servers and any client to any of the two servers and any client to any of the two servers and they would now start independently they would now start independently they would now start independently answering those requests. Let's just uh answering those requests. Let's just uh answering those requests. Let's just uh test if that works. So uh let's connect test if that works. So uh let's connect test if that works. So uh let's connect to my test client. So let's just run a to my test client. So let's just run a to my test client. So let's just run a simple DNS query on the DNS demo.est simple DNS query on the DNS demo.est simple DNS query on the DNS demo.est zone that we have created. So now we zone that we have created. So now we zone that we have created. So now we should be able to see the answer here. should be able to see the answer here. should be able to see the answer here. Yep, you can see uh Yep, you can see uh Yep, you can see uh DNS1.teniumclustluster.est. So now I can also try to resolve the app So now I can also try to resolve the app DNS demo.est record. That should point DNS demo.est record. That should point DNS demo.est record. That should point to the IP address of this machine here. to the IP address of this machine here. to the IP address of this machine here. 10.2042. 10.2042. 10.2042. Yep, that works fine. So you can see Yep, that works fine. So you can see Yep, that works fine. So you can see that um one of the DNS servers is that um one of the DNS servers is that um one of the DNS servers is answering the request. I just don't know answering the request. I just don't know answering the request. I just don't know which one it is because again that which one it is because again that which one it is because again that depends on the operating system. So here depends on the operating system. So here depends on the operating system. So here in the network configuration, we can in the network configuration, we can in the network configuration, we can also check when we go to the wired also check when we go to the wired also check when we go to the wired connection. Here are both DNS servers connection. Here are both DNS servers connection. Here are both DNS servers added. But if we go to the dashboard, we added. But if we go to the dashboard, we added. But if we go to the dashboard, we should be able to see these metrics should be able to see these metrics should be able to see these metrics here. So yeah, you can see the client here. So yeah, you can see the client here. So yeah, you can see the client has sent 24 queries and on the secondary has sent 24 queries and on the secondary has sent 24 queries and on the secondary server. So here we can also see these server. So here we can also see these server. So here we can also see these queries. So maybe Linux has sent it to queries. So maybe Linux has sent it to queries. So maybe Linux has sent it to the secondary server for whatever the secondary server for whatever the secondary server for whatever reason. Yeah. But uh this should also reason. Yeah. But uh this should also reason. Yeah. But uh this should also tell you one of the limitations uh of tell you one of the limitations uh of tell you one of the limitations uh of this setup. So those two servers answer this setup. So those two servers answer this setup. So those two servers answer the requests individually and you do not
-
the requests individually and you do not the requests individually and you do not have a central dashboard for all the have a central dashboard for all the have a central dashboard for all the metrics. You have to check all the DNS metrics. You have to check all the DNS metrics. You have to check all the DNS servers. So maybe I'll do a future video servers. So maybe I'll do a future video servers. So maybe I'll do a future video about um setting up a monitoring with about um setting up a monitoring with about um setting up a monitoring with Graphfana or something like this. That Graphfana or something like this. That Graphfana or something like this. That would be interesting because then you would be interesting because then you would be interesting because then you could better analyze or see the DNS could better analyze or see the DNS could better analyze or see the DNS requests from one central dashboard. I requests from one central dashboard. I requests from one central dashboard. I think that would be good. Please let me think that would be good. Please let me think that would be good. Please let me know in the comments if you would like know in the comments if you would like know in the comments if you would like to see that. But yes, that's basically to see that. But yes, that's basically to see that. But yes, that's basically everything you have to do to set up a everything you have to do to set up a everything you have to do to set up a DNS cluster. Again, I told it in the DNS cluster. Again, I told it in the DNS cluster. Again, I told it in the beginning. It's not really that beginning. It's not really that beginning. It's not really that complicated. I still want to explain one complicated. I still want to explain one complicated. I still want to explain one more thing here that might be more thing here that might be more thing here that might be interesting for all the people running interesting for all the people running interesting for all the people running Open sense as a firewall because Open sense as a firewall because Open sense as a firewall because currently, as you can see, I've currently, as you can see, I've currently, as you can see, I've configured this manual here. Of course, configured this manual here. Of course, configured this manual here. Of course, you do not want to do this on all your you do not want to do this on all your you do not want to do this on all your devices, clients, and operating systems. devices, clients, and operating systems. devices, clients, and operating systems. You should use your DHCP server. Of You should use your DHCP server. Of You should use your DHCP server. Of course, your setup might look completely course, your setup might look completely course, your setup might look completely different than my setup. You might use a different than my setup. You might use a different than my setup. You might use a simple router or another firewall simple router or another firewall simple router or another firewall system, another DHCP server. Yeah. So, I system, another DHCP server. Yeah. So, I system, another DHCP server. Yeah. So, I cannot explain this for each and every cannot explain this for each and every cannot explain this for each and every setup, but on my setup, it works this setup, but on my setup, it works this setup, but on my setup, it works this way. By the way, I've recently switched way. By the way, I've recently switched way. By the way, I've recently switched my DHCP and also DNS server from the old my DHCP and also DNS server from the old my DHCP and also DNS server from the old legacy implementations with ISC to the legacy implementations with ISC to the legacy implementations with ISC to the new KIA DHCP server on Open Sense.
-
new KIA DHCP server on Open Sense. new KIA DHCP server on Open Sense. There's also a video I'm currently There's also a video I'm currently There's also a video I'm currently preparing that's uh coming up explaining preparing that's uh coming up explaining preparing that's uh coming up explaining all the different changes in the recent all the different changes in the recent all the different changes in the recent OpenSense updates and some other general OpenSense updates and some other general OpenSense updates and some other general must-haves that you should configure must-haves that you should configure must-haves that you should configure here. So, if you're running the legacy here. So, if you're running the legacy here. So, if you're running the legacy version, you unfortunately can only set version, you unfortunately can only set version, you unfortunately can only set up two DNS server IP addresses to your up two DNS server IP addresses to your up two DNS server IP addresses to your DHCP server. So, in KIA that works a bit DHCP server. So, in KIA that works a bit DHCP server. So, in KIA that works a bit different. So here for example when we different. So here for example when we different. So here for example when we go to um KIA DHCP version 4 if we go to go to um KIA DHCP version 4 if we go to go to um KIA DHCP version 4 if we go to the subnet here [snorts] if you deselect the subnet here [snorts] if you deselect the subnet here [snorts] if you deselect this here autocolct options data you can this here autocolct options data you can this here autocolct options data you can see all these fields here and then you see all these fields here and then you see all these fields here and then you can add multiple DNS servers so can add multiple DNS servers so can add multiple DNS servers so therefore I've added the IP addresses therefore I've added the IP addresses therefore I've added the IP addresses for my first second and third DNS server for my first second and third DNS server for my first second and third DNS server running technicium in my prod setup just running technicium in my prod setup just running technicium in my prod setup just to show you how exactly I've distributed to show you how exactly I've distributed to show you how exactly I've distributed this across my physical ical machines. this across my physical ical machines. this across my physical ical machines. One of the DNS servers is currently One of the DNS servers is currently One of the DNS servers is currently running on server pro one. Then a running on server pro one. Then a running on server pro one. Then a secondary container is running on server secondary container is running on server secondary container is running on server pro 6 and the third DNS server is pro 6 and the third DNS server is pro 6 and the third DNS server is running on server pro 7. So I've really running on server pro 7. So I've really running on server pro 7. So I've really distributed all the servers across the distributed all the servers across the distributed all the servers across the physical Proxmox node. So when I need to physical Proxmox node. So when I need to physical Proxmox node. So when I need to restart the first one, the secondary or restart the first one, the secondary or restart the first one, the secondary or third containers can jump in. That's third containers can jump in. That's third containers can jump in. That's what I said in the beginning. It makes what I said in the beginning. It makes what I said in the beginning. It makes the most sense to just distribute that the most sense to just distribute that the most sense to just distribute that with separate physical machines. Of with separate physical machines. Of with separate physical machines. Of course, you can also add a Technician course, you can also add a Technician course, you can also add a Technician DNS server running on a Raspberry Pi or DNS server running on a Raspberry Pi or DNS server running on a Raspberry Pi or something completely outside of something completely outside of something completely outside of Proxmark. So, that all works kind of the Proxmark. So, that all works kind of the Proxmark. So, that all works kind of the same way. Now, let's also do a quick
-
same way. Now, let's also do a quick same way. Now, let's also do a quick failover test. So, let us just run failover test. So, let us just run failover test. So, let us just run Docker Compose down to just shut down Docker Compose down to just shut down Docker Compose down to just shut down the secondary technium server. If we go the secondary technium server. If we go the secondary technium server. If we go back here in the first server, when we back here in the first server, when we back here in the first server, when we go to administration clustering, you go to administration clustering, you go to administration clustering, you should see that the second one becomes should see that the second one becomes should see that the second one becomes unreachable. So if that happens, you unreachable. So if that happens, you unreachable. So if that happens, you know there's something wrong with the know there's something wrong with the know there's something wrong with the DNS server and the synchronization is DNS server and the synchronization is DNS server and the synchronization is currently stopped until it comes online currently stopped until it comes online currently stopped until it comes online again. But if we go back to the Ubuntu again. But if we go back to the Ubuntu again. But if we go back to the Ubuntu machine, let's for example just run machine, let's for example just run machine, let's for example just run another DNS query. You can see and a another DNS query. You can see and a another DNS query. You can see and a response comes back immediately and you response comes back immediately and you response comes back immediately and you should be able to resolve DNS queries should be able to resolve DNS queries should be able to resolve DNS queries whenever one of these servers is whenever one of these servers is whenever one of these servers is offline. That's not an issue. And yeah, offline. That's not an issue. And yeah, offline. That's not an issue. And yeah, so that's how I've made my DNS setup in so that's how I've made my DNS setup in so that's how I've made my DNS setup in the home lab more reliable. a few the home lab more reliable. a few the home lab more reliable. a few lessons learned that I want to summarize lessons learned that I want to summarize lessons learned that I want to summarize at the end here. So first of all, this at the end here. So first of all, this at the end here. So first of all, this is what you can do to achieve a real is what you can do to achieve a real is what you can do to achieve a real host redundancy for your DNS queries. host redundancy for your DNS queries. host redundancy for your DNS queries. And this is not just a cold backup. So And this is not just a cold backup. So And this is not just a cold backup. So the secondary or third servers are not the secondary or third servers are not the secondary or third servers are not just waiting for the first one to fail. just waiting for the first one to fail. just waiting for the first one to fail. Any client can send DNS requests to any Any client can send DNS requests to any Any client can send DNS requests to any of the servers. They all answering. And of the servers. They all answering. And of the servers. They all answering. And it is important that the first DNS it is important that the first DNS it is important that the first DNS server, the primary one, still remains server, the primary one, still remains server, the primary one, still remains your primary DNS server. whatever change your primary DNS server. whatever change your primary DNS server. whatever change you're doing like if you're deleting any you're doing like if you're deleting any you're doing like if you're deleting any zones or any records there. This can be zones or any records there. This can be zones or any records there. This can be synchronized to the other servers as synchronized to the other servers as synchronized to the other servers as well. This is also by the way where you well. This is also by the way where you well. This is also by the way where you connect your infrastructure as code and connect your infrastructure as code and connect your infrastructure as code and automation tools or using the technium automation tools or using the technium automation tools or using the technium API. You always do these changes on the API. You always do these changes on the API. You always do these changes on the primary server and that's then sending
-
primary server and that's then sending primary server and that's then sending out the changes to the other ones. So out the changes to the other ones. So out the changes to the other ones. So that's it for today. Thank you so much that's it for today. Thank you so much that's it for today. Thank you so much for watching. I hope I could help you for watching. I hope I could help you for watching. I hope I could help you setting up a reliable DNS clustering for setting up a reliable DNS clustering for setting up a reliable DNS clustering for your own home lab. Please leave me some your own home lab. Please leave me some your own home lab. Please leave me some comments down below. Thank you so much comments down below. Thank you so much comments down below. Thank you so much for watching. Thanks everybody who is for watching. Thanks everybody who is for watching. Thanks everybody who is supporting my channel on Patreon or as a supporting my channel on Patreon or as a supporting my channel on Patreon or as a YouTube member. You guys are so amazing YouTube member. You guys are so amazing YouTube member. You guys are so amazing and you make all these free tutorials and you make all these free tutorials and you make all these free tutorials possible for everybody. So, a big thanks possible for everybody. So, a big thanks possible for everybody. So, a big thanks and of course I'll catch you in the next and of course I'll catch you in the next and of course I'll catch you in the next video. Take care. Bye-bye.
Summary
This tutorial explains how to add backup Technicium DNS servers using its built-in clustering function. It emphasizes the importance of redundant DNS for reliable home lab networks, similar to professional IT setups. The practical takeaway is that easily achievable clustering ensures continuous DNS resolution even if one server goes offline.