This feature is often thought as being much more complex than it really is.
What is does, is transfers any zones on the given machine to the DA machines you add to the list.
So, if you have server A and add the IP for server B to the list, whenever you add a domain on server A, server B will receive a copy of the dns zone. Server B will now also be able to resolve the domain. Since this uses the API, nothing is needed to be setup with regards to clustering on server B to get data from server A transfered over to server B.
A sample nameserver setup would be (you can add more/change them as you need):
ns1.domain.com -> resolve to an IP on server A
ns2.domain.com -> resolve to an IP on server B
Since server B is also running a perfectly good copy of DirectAdmin, there is no reason you can’t cluster it with server A as well. Login to server B, and add the IP for server A to the list. You can use the same nameserver settings that you use on A.
For each IP in the list of external dns servers, there are the options “Zone Transfer” and “Domain Check”. You don’t need to have these both on if the features they represent are not needed with your setup. Example, if you still use local nameservers, but just want to prevent a user from adding a domain to server A that already exists on server B, then you disable the Zone Transfer, and just leave Domain Check.
If you are moving users between server without deleteing them from the original machine, and they share the same external dns server, then you might need to disable the “Domain Check” option. Without disabling it, DA will tell you that the domain already exists in your system (on the external machine). When you disable the “Domain Check” and leave Zone Transfer enabled, DA will blindly add the domain to the exernal machine (it still checks locally of course), and will overwrite any zone information that might already be there.
If you need to transfer all of your zones from your current machine to the servers listed in your multi-server IP list, then you can type:
echo "action=rewrite&value=named" >> /usr/local/directadmin/data/task.queue
which will rewrite all local zone, thus triggering the transfer of them to the remote servers.
Master NS with multiple DA boxes pushing to it
Let’s assume you have a master ns1 box where multiple DA boxes push just the dns zone to it.
It’s recommended you enable the master dns subdomain owner check feature on that master NS server.
What this does is enables hostname+user logging into the /etc/virtual/cluster_domainowners file on the master, so a user on box2 cannot create a subdomain from a full domain belonging to a User on box1. It’s not needed if the remote domain check is being done on a DA box that has a User associated with the domain, since that remote DA can use the /etc/virtual/domainowners for this check. But as the zone transfer is dns-only, without the feature, there is no User or hostname to figure out who actually owns it, hence the need for the option.