transfer perform (outgoing) zone transfers for other plugins.


This plugin answers zone transfers for authoritative plugins that implement transfer.Transferer.

transfer answers full zone transfer (AXFR) requests and incremental zone transfer (IXFR) requests with AXFR fallback if the zone has changed.

When a plugin wants to notify it’s secondaries it will call back into the transfer plugin.

The following plugins implement zone transfers using this plugin: file, auto, secondary, and kubernetes. See transfer.go for implementation details if you are a plugin author that wants to use this plugin.


transfer [ZONE...] {
  to ADDRESS...
  • ZONE The zones transfer will answer zone transfer requests for. If left blank, the zones are inherited from the enclosing server block. To answer zone transfers for a given zone, there must be another plugin in the same server block that serves the same zone, and implements transfer.Transferer.

  • to ADDRESS… The hosts transfer will transfer to. Use * to permit transfers to all addresses. Zone change notifications are sent to all ADDRESS that are an IP address or an IP address and port e.g., 12:34::56,, [12:34::56]:5300. to may be specified multiple times.

You can use the acl plugin to further restrict hosts permitted to receive a zone transfer. See example below.


Use in conjunction with the acl plugin to restrict access to subnet

  acl {
    allow type AXFR net
    allow type IXFR net
    block type AXFR net *
    block type IXFR net *
  transfer {
    to *

Each plugin that can use transfer includes an example of use in their respective documentation.