Fault tolerant DNS cluster

Yep. For small companies, it might be not important, how you build/configure your DNS servers, as you might need to serve just a few queries per second or a few queries per minute. But good design is key to success if your goal is to serve thousands and thousands of queries per minute or second.
Here is an example of a design that will allow you to achieve this goal.

Queries go from up to down (to the DNS cluster).

The first line – “FW/LB” – is Load Balancer. Any. It could be a Fortigate firewall, working in pair with another firewall, It could be an F5 Load balancer, a solution based on Cisco devices.

The second line – is a group of DNS servers. It is not a cluster, but standalone DNS servers, configured as DNS caches, this means they will store recent DNS queries in memory (in case no records are present in memory DNS server will query Auth DNS server), and I`m advising you to use three DNS servers. But you can use more, or less. That depends on your tasks/goals, but never use a single server.

The third line – “FW/LB” again. With the same purpose – to rebalance queries between Auth DNS servers.

The fourth line (last, but not least important) – Authoritative DNS servers. In this case, the best practice is to use two: primary and backup servers with zone transfer between them. But you can also use more servers or less (if you feel lucky), that again depend on how big your system load is.

You can even create a fifth line and call it the “source of truth” and put the primary (master) DNS server there, living only backup (secondary) DNS servers in the fourth line.