The conventional setup for DNS services has an instance of tinydns
serving your public data, on an IP address delegated-to by superdomain content DNS servers from a (shared) database file.
To replicate the data that are published to other tinydns
servers, just copy the data file and compile it with tinydns-data
on the copied-to machine.
admin@b.ns.example ~ %cd ~publicfile/dns admin@b.ns.example ~publicfile/dns %rsync --compress a.ns.example:/home/publicfile/dns/data . admin@b.ns.example ~publicfile/dns %tinydns-data admin@b.ns.example ~publicfile/dns %
Yes, it is as simple as using rsync
.
In fact, any method that will copy a file from one location to another is satisfactory. Bernstein djbdns always has been neutral with respect to how one copies files. One could even use the cp command, for example, or the uucp command, or Zmodem, or SneakerNet. rsync and scp are no more than suggestions.
No, do not use "zone transfer".
"zone transfer" even ("incremental zone transfer") is hopelessly inefficient, uses the DNS protocol with its (in Bernstein's own words) sophomoric compression scheme, and lacks the ability to transfer any of the things (such as location codes, time to die, temporarily disabled addresses, and even comments) that have never been understood by "zone transfer". Simple file copying of the data source file preserves all of these, effortlessly; and with general-purpose file copying tools, proper compression, and no special DNS-only protocol involved.
No, do not copy data.cdb
One of the guarantees required by tinydns
and provided by tinydns-data
is that data.cdb is never in a partly-written state.
This is why it compiles to a temporary file, renames it once it has fully completed writing it, and the data.cdb file is never modified again.
("cdb" is short for Bernstein's Constant DataBase file format.)
rsync et al. do not provide this guarantee and will mess up DNS service for the period that the file is in the partly-copied state.
If you really want to copy compiled files around, then copy them to a temporary name and rename them over the target after the copy has fully completed successfully.