NSD 4.x - slave server zone files?

I have been running NSD 4.x for quite some time.. Single master with multiple secondary slave servers.

Everything has been running fine, currently on 4.1.19.

On our slave servers, it seems that zones only AXFR to memory on the slave hosts? Never do they ever write the zones to disk even though we have specified a zonefile ? The server seems to operate ok and serves the zones out of memory, but zone files are never created on the slave server.

Is there something that needs to be set to tell the slave server that AXFR zones from the master to write the zone files to disk ? or is there some reason why these files are not written?

No errors in the logs and have verified that paths exist and are writable by the NSD user.

running nsd chroot? zonefiles-write set to 0 in nsd.conf?
also: do you use a database file? (I don't)
I use to force the write to disc by "nsd-control write <zone>" and inspect the log immediately.

Andreas

I am using the database file, and I do see that maybe it’s all being dump there.

When enabling the database, does it no longer write the individual zone files?

Database may be fine, so long as a saved copy of the zones are somewhere. We are not running chroot, and zonefiles-write is not set 0; no errors in log. So perhaps the database is it.

Hi Robert,

I am using the database file, and I do see that maybe it’s all being dump there.

When enabling the database, does it no longer write the individual zone files?

Database may be fine, so long as a saved copy of the zones are
somewhere. We are not running chroot, and zonefiles-write is not set 0;
no errors in log. So perhaps the database is it.

Here's the setting from nsd.conf:

zonefiles-write: <seconds>
  Write changed secondary zones to their zonefile every N seconds. If
  the zone (pattern) configuration has "" zonefile, it is not
  written. Zones that have received zone transfer updates are written to
  their zonefile. Default is 0 (disabled) when there is a
  database, and 3600 (1 hour) when database is "". The database also
  commits zone transfer contents. You can configure it away
  from the default by putting the config statement for zonefiles-write:
  after the database: statement in the config file.

The default configuration uses the database, and on a slave, that's
enough. There's no need to write plain text zone files. If you really
want to write out zone files to disk when the database is in use, then
you have to run:

nsd-control write

You can also choose NOT to use the database, by setting:

database: ""

In this case, NSD will flush the zone files to disk, but only once per
hour by default. You can control how often they are written to disk with
the above setting.

Regards,
Anand