2016-03-27 07:37:23 +01:00
|
|
|
# file
|
|
|
|
|
|
2018-01-04 12:53:07 +00:00
|
|
|
## Name
|
|
|
|
|
|
|
|
|
|
*file* - enables serving zone data from an RFC 1035-style master file.
|
|
|
|
|
|
|
|
|
|
## Description
|
2016-03-27 07:37:23 +01:00
|
|
|
|
2017-09-14 09:36:06 +01:00
|
|
|
The file plugin is used for an "old-style" DNS server. It serves from a preloaded file that exists
|
2018-11-28 11:57:39 -08:00
|
|
|
on disk. If the zone file contains signatures (i.e., is signed using DNSSEC), correct DNSSEC answers
|
|
|
|
|
are returned. Only NSEC is supported! If you use this setup *you* are responsible for re-signing the
|
2016-08-29 19:15:04 +01:00
|
|
|
zonefile.
|
2016-03-27 07:37:23 +01:00
|
|
|
|
|
|
|
|
## Syntax
|
|
|
|
|
|
|
|
|
|
~~~
|
2016-10-10 20:13:22 +01:00
|
|
|
file DBFILE [ZONES...]
|
2016-03-27 07:37:23 +01:00
|
|
|
~~~
|
|
|
|
|
|
2018-11-28 11:57:39 -08:00
|
|
|
* **DBFILE** the database file to read and parse. If the path is relative, the path from the *root*
|
2016-10-11 20:42:28 +01:00
|
|
|
directive will be prepended to it.
|
2016-10-10 20:13:22 +01:00
|
|
|
* **ZONES** zones it should be authoritative for. If empty, the zones from the configuration block
|
2016-03-27 07:37:23 +01:00
|
|
|
are used.
|
|
|
|
|
|
2018-11-28 11:57:39 -08:00
|
|
|
If you want to round-robin A and AAAA responses look at the *loadbalance* plugin.
|
2016-03-27 07:37:23 +01:00
|
|
|
|
|
|
|
|
~~~
|
2016-10-10 20:13:22 +01:00
|
|
|
file DBFILE [ZONES... ] {
|
|
|
|
|
transfer to ADDRESS...
|
2018-09-29 17:50:49 +02:00
|
|
|
reload DURATION
|
2016-04-15 14:26:27 +01:00
|
|
|
no_reload
|
2019-01-13 16:54:49 +00:00
|
|
|
upstream
|
2016-03-27 07:37:23 +01:00
|
|
|
}
|
|
|
|
|
~~~
|
|
|
|
|
|
2016-10-10 20:13:22 +01:00
|
|
|
* `transfer` enables zone transfers. It may be specified multiples times. `To` or `from` signals
|
2018-11-28 11:57:39 -08:00
|
|
|
the direction. **ADDRESS** must be denoted in CIDR notation (e.g., 127.0.0.1/32) or just as plain
|
2016-09-18 09:32:06 +01:00
|
|
|
addresses. The special wildcard `*` means: the entire internet (only valid for 'transfer to').
|
|
|
|
|
When an address is specified a notify message will be send whenever the zone is reloaded.
|
2018-11-28 11:57:39 -08:00
|
|
|
* `reload` interval to perform a reload of the zone if the SOA version changes. Default is one minute.
|
|
|
|
|
Value of `0` means to not scan for changes and reload. For example, `30s` checks the zonefile every 30 seconds
|
|
|
|
|
and reloads the zone when serial changes.
|
2018-09-29 17:50:49 +02:00
|
|
|
* `no_reload` deprecated. Sets reload to 0.
|
2019-01-13 16:54:49 +00:00
|
|
|
* `upstream` 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. CoreDNS will resolve CNAMEs against itself.
|
2016-03-27 07:37:23 +01:00
|
|
|
|
|
|
|
|
## Examples
|
2016-04-03 09:02:34 +01:00
|
|
|
|
2016-09-18 09:32:06 +01:00
|
|
|
Load the `example.org` zone from `example.org.signed` and allow transfers to the internet, but send
|
|
|
|
|
notifies to 10.240.1.1
|
2016-04-03 09:02:34 +01:00
|
|
|
|
2017-10-31 07:14:49 +00:00
|
|
|
~~~ corefile
|
|
|
|
|
example.org {
|
|
|
|
|
file example.org.signed {
|
|
|
|
|
transfer to *
|
|
|
|
|
transfer to 10.240.1.1
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
~~~
|
|
|
|
|
|
|
|
|
|
Or use a single zone file for multiple zones:
|
|
|
|
|
|
2016-04-03 09:02:34 +01:00
|
|
|
~~~
|
2017-10-31 07:14:49 +00:00
|
|
|
. {
|
|
|
|
|
file example.org.signed example.org example.net {
|
|
|
|
|
transfer to *
|
|
|
|
|
transfer to 10.240.1.1
|
|
|
|
|
}
|
2016-04-03 09:02:34 +01:00
|
|
|
}
|
|
|
|
|
~~~
|