2016-04-03 09:02:34 +01:00
|
|
|
# secondary
|
|
|
|
|
|
2018-01-04 12:53:07 +00:00
|
|
|
## Name
|
2016-04-03 09:02:34 +01:00
|
|
|
|
2018-01-04 12:53:07 +00:00
|
|
|
*secondary* - enables serving a zone retrieved from a primary server.
|
|
|
|
|
|
|
|
|
|
## Description
|
|
|
|
|
|
|
|
|
|
With *secondary* you can transfer (via AXFR) a zone from another server. The retrieved zone is
|
|
|
|
|
*not committed* to disk (a violation of the RFC). This means restarting CoreDNS will cause it to
|
2019-12-29 13:35:17 +01:00
|
|
|
retrieve all secondary zones.
|
2016-04-03 09:02:34 +01:00
|
|
|
|
2021-06-11 19:54:49 +02:00
|
|
|
If the primary server(s) don't respond when CoreDNS is starting up, the AXFR will be retried
|
|
|
|
|
indefinitely every 10s.
|
|
|
|
|
|
2020-01-31 12:37:24 +01:00
|
|
|
## Syntax
|
|
|
|
|
|
2016-04-03 09:02:34 +01:00
|
|
|
~~~
|
2016-10-10 20:13:22 +01:00
|
|
|
secondary [ZONES...]
|
2016-04-03 09:02:34 +01:00
|
|
|
~~~
|
|
|
|
|
|
2016-10-10 20:13:22 +01:00
|
|
|
* **ZONES** zones it should be authoritative for. If empty, the zones from the configuration block
|
2016-08-22 14:40:24 -07:00
|
|
|
are used. Note that without a remote address to *get* the zone from, the above is not that useful.
|
2016-04-03 09:02:34 +01:00
|
|
|
|
|
|
|
|
A working syntax would be:
|
|
|
|
|
|
|
|
|
|
~~~
|
|
|
|
|
secondary [zones...] {
|
2021-01-10 11:06:28 +01:00
|
|
|
transfer from ADDRESS [ADDRESS...]
|
2016-04-03 09:02:34 +01:00
|
|
|
}
|
|
|
|
|
~~~
|
|
|
|
|
|
2021-01-10 11:06:28 +01:00
|
|
|
* `transfer from` specifies from which **ADDRESS** to fetch the zone. It can be specified multiple
|
2021-04-05 21:34:25 +08:00
|
|
|
times; if one does not work, another will be tried. Transferring this zone outwards again can be
|
2021-01-10 11:06:28 +01:00
|
|
|
done by enabling the *transfer* plugin.
|
2016-04-03 09:02:34 +01:00
|
|
|
|
2021-01-10 11:06:28 +01:00
|
|
|
When a zone is due to be refreshed (refresh timer fires) a random jitter of 5 seconds is applied,
|
|
|
|
|
before fetching. In the case of retry this will be 2 seconds. If there are any errors during the
|
|
|
|
|
transfer in, the transfer fails; this will be logged.
|
2018-01-23 10:35:10 +00:00
|
|
|
|
2016-04-03 09:02:34 +01:00
|
|
|
## Examples
|
|
|
|
|
|
2017-09-10 19:52:15 +01:00
|
|
|
Transfer `example.org` from 10.0.1.1, and if that fails try 10.1.2.1.
|
|
|
|
|
|
|
|
|
|
~~~ corefile
|
|
|
|
|
example.org {
|
|
|
|
|
secondary {
|
2020-09-24 11:30:39 -07:00
|
|
|
transfer from 10.0.1.1 10.1.2.1
|
2017-09-10 19:52:15 +01:00
|
|
|
}
|
|
|
|
|
}
|
2016-04-03 09:02:34 +01:00
|
|
|
~~~
|
2017-09-10 19:52:15 +01:00
|
|
|
|
|
|
|
|
Or re-export the retrieved zone to other secondaries.
|
|
|
|
|
|
|
|
|
|
~~~ corefile
|
2020-09-24 11:30:39 -07:00
|
|
|
example.net {
|
|
|
|
|
secondary {
|
2017-09-10 19:52:15 +01:00
|
|
|
transfer from 10.1.2.1
|
2020-09-24 11:30:39 -07:00
|
|
|
}
|
|
|
|
|
transfer {
|
|
|
|
|
to *
|
2017-09-10 19:52:15 +01:00
|
|
|
}
|
2016-04-03 09:02:34 +01:00
|
|
|
}
|
|
|
|
|
~~~
|
2018-01-04 12:53:07 +00:00
|
|
|
|
2018-01-10 11:45:12 +00:00
|
|
|
## Bugs
|
2018-01-04 12:53:07 +00:00
|
|
|
|
|
|
|
|
Only AXFR is supported and the retrieved zone is not committed to disk.
|
2020-09-24 11:30:39 -07:00
|
|
|
|
2020-10-28 18:56:35 +01:00
|
|
|
## See Also
|
2020-09-24 11:30:39 -07:00
|
|
|
|
|
|
|
|
See the *transfer* plugin to enable zone transfers _to_ other servers.
|
2021-06-11 19:54:49 +02:00
|
|
|
And RFC 5936 detailing the AXFR protocol.
|