axfrdns runs chrooted in the directory specified by the $ROOT environment variable, under the uid and gid specified by the $UID and $GID environment variables.
Normally axfrdns runs under tcpserver to handle TCP connections on port 53 of a local IP address. tcpserver is responsible for rejecting connections from hosts not authorized to perform zone transfers. axfrdns can also run under secure connection tools offering an UCSPI-compliant interface.
axfrdns looks up zone-transfer results in data.cdb, a binary file created by tinydns-data. It also responds to normal client queries, such as SOA queries, which usually precede zone-transfer requests.
axfrdns allows zone transfers for any zone listed in the $AXFR environment variable. $AXFR is a slash-separated list of domain names. If $AXFR is not set, axfrdns allows zone transfers for all zones available in data.cdb.
axfrdns aborts if it runs out of memory, or has trouble reading data.cdb, or receives a request larger than 512 bytes, or receives a truncated request, or receives a zone-transfer request disallowed by $AXFR, or receives a request not answered by data.cdb, or waits 60 seconds with nothing happening.
axfrdns does not provide glue records outside the target domain.
The data.cdb format is more flexible than the zone-transfer data format. data.cdb specifies, for example, precisely which authority records and additional records to include with a response to a particular query, and how long to cache negative answers to a query. axfrdns discards this information; it simply prints records in the order that they appear in data.cdb.
Zone-transfer clients rely on zone serial numbers changing for every zone modification. tinydns-data uses the modification time of the data file as its serial number for all zones. Do not make more than one modification per second.
BIND's zone-transfer client, named-xfer, converts zone-transfer data to zone-file format. Beware that zone-file format has no generic mechanism to express records of arbitrary types; named-xfer chokes if it does not recognize a record type used in data.cdb.