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.

Hola que tal, fijate que llevaba 2 semanas tratando de resolver esto que posiblemente te este sucediendo, la respuesta es, deshabilita ipv6 de la tarjeta de red, si usas debian hazlo desde el archivo interfaces, si no tienes alguna configuracion omitelo, en ubuntu, hay que agregar dentro de la interfaz del yml la linea link-local: , deshabilita ipv6 desde sysctl agregando estas lineas al archivo
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

y al final aplica sysctl -p
agrega al archivo /etc/default/named la linea OPTIONS=“-u bind -4” y reinicia named o bind9

Saludos desde México

Hi, I’ve been trying to figure out what’s probably happening to you for two weeks now. The solution is to disable IPv6 on your network adapter. If you’re using Debian, do this from the interfaces file. If you don’t have any configuration, just leave it out. On Ubuntu, you need to add the line link-local: [ ] to the interface file in your YAML. Disable IPv6 using sysctl by adding these lines to your file: net.ipv6.conf.all.disable_ipv6 = 1, net.ipv6.conf.default.disable_ipv6 = 1, and net.ipv6.conf.lo.disable_ipv6 = 1.

Finally, run sysctl -p, add the line OPTIONS="-u bind -4" to your /etc/default/named file, and restart named or bind9.

Greetings from Mexico!