Files
coredns.io/content/plugins/transfer.md
T
2022-01-24 16:14:41 +01:00

63 lines
1.9 KiB
Markdown

+++
title = "transfer"
description = "*transfer* perform (outgoing) zone transfers for other plugins."
weight = 48
tags = ["plugin", "transfer"]
categories = ["plugin"]
date = "2022-01-24T14:51:48.8774881"
+++
## Description
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.
## Syntax
~~~
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. `1.2.3.4`, `12:34::56`, `1.2.3.4:5300`, `[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.
## Examples
Use in conjunction with the _acl_ plugin to restrict access to subnet 10.1.0.0/16.
```
...
acl {
allow type AXFR net 10.1.0.0/16
allow type IXFR net 10.1.0.0/16
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.