I have a three node cluster with HA and glusterfs and thought I would move my internal DNS from two raspberry pis to it. I set up three LXC containers running named to provide lookups for my internal domain, and three containers running pihole to serve as caching resolvers. Each node normally runs one pair of DNS and pihole, and the containers are configured with HA and stored on glusterFS. One of the DNS servers is master and the others pull their zone files from it. The three piholes all look to the three DNS servers for local lookups. My DHCP server gives clients the addresses of the three piholes. All this worked fine until I had some glusterfs networking issues. The result was that my whole DNS system came crashing down and while I was able to recover it, the downtime was quite annoying.
I'm now rebuilding the cluster with a minor change -- this time, putting one of the DNA/pihole pairs on local storage (call them the "standalone" servers. The idea is that even if glusterfs goes out, the third node can still provide DNS service independently. The one concern I have with this is what happens if the standalone DNS restarts and is unable to download a zone file from the master on restart, or the zone TTL expires. That would cause it to stop serving local data. My current thinking is to change the third DNS server from a slave to a master, and use a cron job to download the zone files from the real master every hour or two. That way the third pair would be truly independent.
Are there other, better, ways to deal with this sort of thing?
Thanks,
John
I'm now rebuilding the cluster with a minor change -- this time, putting one of the DNA/pihole pairs on local storage (call them the "standalone" servers. The idea is that even if glusterfs goes out, the third node can still provide DNS service independently. The one concern I have with this is what happens if the standalone DNS restarts and is unable to download a zone file from the master on restart, or the zone TTL expires. That would cause it to stop serving local data. My current thinking is to change the third DNS server from a slave to a master, and use a cron job to download the zone files from the real master every hour or two. That way the third pair would be truly independent.
Are there other, better, ways to deal with this sort of thing?
Thanks,
John