coredns/middleware/secondary
Miek Gieben a235833be8 middleware/secondary: pull all zones (#834)
Use the same OnStartup setup as in the file middleware. We need to copy
the variable from range, otherwise it gets overwriten in the next loop
because of the async goroutine call.

Hard to test, we have secondary_test.go which we could extend with
multiple zones for instance. For now this fix does not have an test case
with it...
2017-08-05 01:36:11 -07:00
..
README.md middleware/secondary: multiple fixes (#745) 2017-06-21 23:46:20 -07:00
secondary.go Fix import path github.com/miekg/coredns -> github.com/coredns/coredns (#547) 2017-02-22 06:51:47 +00:00
setup.go middleware/secondary: pull all zones (#834) 2017-08-05 01:36:11 -07:00
setup_test.go middleware/root: add it (#330) 2016-10-11 20:42:28 +01:00

secondary

secondary enables serving a zone retrieved from a primary server.

Syntax

secondary [ZONES...]
  • ZONES zones it should be authoritative for. If empty, the zones from the configuration block are used. Note that without a remote address to get the zone from, the above is not that useful.

A working syntax would be:

secondary [zones...] {
    transfer from ADDRESS
    transfer to ADDRESS
    upstream ADDRESS...
}
  • transfer from specifies from which address to fetch the zone. It can be specified multiple times; if one does not work, another will be tried.
  • transfer to can be enabled to allow this secondary zone to be transferred again.
  • upstream defines upstream resolvers to be used resolve external names found (think CNAMEs) pointing to external names. This is only really useful when CoreDNS is configured as a proxy, for normal authoritative serving you don't need or want to use this.

Examples

secondary example.org {
    transfer from 10.0.1.1
    transfer from 10.1.2.1
}