DNS Records Deleted Immediately on Slave After v-sync-dns-cluster – Master → Slave Setup (Hestia-Zone)

Hello everyone,

I’m trying to configure a Master → Slave DNS cluster between two servers, both running:

  • HestiaCP (latest version)

  • Bind9

  • Both servers act as Web + DNS servers

I converted the cluster to Master → Slave (hestia-zone) mode following the official instructions.


What I Did

Changed cluster system on both servers

Edited:

/usr/local/hestia/conf/hestia.conf

Changed:

DNS_CLUSTER_SYSTEM='hestia'

To:

DNS_CLUSTER_SYSTEM='hestia-zone'


Bind Configuration

On Master:

Edited /etc/bind/named.conf.options:

allow-transfer { SLAVE_IP; };
also-notify { SLAVE_IP; };

Restarted bind:

systemctl restart bind9


On Slave:

Edited /etc/bind/named.conf.options:

allow-recursion { 127.0.0.1; ::1; MASTER_IP; };
allow-notify { MASTER_IP; };

Restarted bind:

systemctl restart bind9


API + Cluster Setup

  • Whitelisted Master IP in Slave API settings

  • Whitelisted Slave IP in Master API settings

  • Created user dns-user1 on Master (role: dns-cluster)

  • Created user dns-user2 on Slave (role: dns-cluster)

  • Generated API access & secret keys

  • Added remote DNS hosts:

On Master:

v-add-remote-dns-host SLAVE_HOST PORT 'ACCESS:SECRET' '' 'api' 'dns-user2'

On Slave:

v-add-remote-dns-host MASTER_HOST PORT 'ACCESS:SECRET' '' 'api' 'dns-user1'

  • Created child NS template on Master under a regular user (not admin)

  • Registered ns1 and ns2 at registrar


The Problem

When I run:

v-sync-dns-cluster

The DNS zones appear briefly on the Slave server…
Then they are deleted immediately.

It looks like:

  1. Zone gets created

  2. Sync runs

  3. Zone disappears from Slave

No errors are shown.


Additional Issue

When trying to delete the remote DNS host running this command v-delete-remote-dns-host hostname.domain.com , I get this error:

grep: /usr/local/hestia/data/users/admin/../../conf/dns-cluster.conf: No such file or directory
Error: dns-cluster host doesn't exist


Important Hint

If I set:

DNS_CLUSTER_SYSTEM='hestia'

Instead of:

DNS_CLUSTER_SYSTEM='hestia-zone'

Then the DNS records are not deleted from the other server and the cluster behaves normally when it’s in Master ↔ Master mode!

The issue only happens when switching to:

DNS_CLUSTER_SYSTEM='hestia-zone'

What Could Be Missing?

  • Is there something specific required when both servers are Web + DNS?

  • Should zones only exist on Master and never be manually created on Slave?

  • Could this be related to user ownership mismatch?

  • Is there something else required in Bind config when using hestia-zone?

I would really appreciate guidance from anyone who has successfully configured Master → Slave in hestia-zone mode.