While running the following, noticed the whitespace warning from presubmit: ``` ubuntu@ubuntu:~/coredns$ docker run -i -t --rm -v $PWD:/go/src/github.com/coredns/coredns --net=host golang:1.11 root@ubuntu:/go# cd src/github.com/coredns/coredns/ root@ubuntu:/go/src/github.com/coredns/coredns# make ** presubmit/context ** presubmit/filename-hyphen ** presubmit/test-lowercase ** presubmit/trailing-whitespace plugin/auto/README.md:* `reload` interval to perform reload of zone if SOA version changes. Default is one minute. plugin/auto/README.md: Value of `0` means to not scan for changes and reload. eg. `30s` checks zonefile every 30 seconds plugin/file/README.md:* `reload` interval to perform reload of zone if SOA version changes. Default is one minute. plugin/file/README.md: Value of `0` means to not scan for changes and reload. eg. `30s` checks zonefile every 30 seconds ** presubmit/trailing-whitespace: please remove any trailing white space ``` Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
73 lines
2.4 KiB
Markdown
73 lines
2.4 KiB
Markdown
# file
|
|
|
|
## Name
|
|
|
|
*file* - enables serving zone data from an RFC 1035-style master file.
|
|
|
|
## Description
|
|
|
|
The file plugin is used for an "old-style" DNS server. It serves from a preloaded file that exists
|
|
on disk. If the zone file contains signatures (i.e. is signed, i.e. DNSSEC) correct DNSSEC answers
|
|
are returned. Only NSEC is supported! If you use this setup *you* are responsible for resigning the
|
|
zonefile.
|
|
|
|
## Syntax
|
|
|
|
~~~
|
|
file DBFILE [ZONES...]
|
|
~~~
|
|
|
|
* **DBFILE** the database file to read and parse. If the path is relative the path from the *root*
|
|
directive will be prepended to it.
|
|
* **ZONES** zones it should be authoritative for. If empty, the zones from the configuration block
|
|
are used.
|
|
|
|
If you want to round robin A and AAAA responses look at the *loadbalance* plugin.
|
|
|
|
~~~
|
|
file DBFILE [ZONES... ] {
|
|
transfer to ADDRESS...
|
|
reload DURATION
|
|
no_reload
|
|
upstream [ADDRESS...]
|
|
}
|
|
~~~
|
|
|
|
* `transfer` enables zone transfers. It may be specified multiples times. `To` or `from` signals
|
|
the direction. **ADDRESS** must be denoted in CIDR notation (127.0.0.1/32 etc.) or just as plain
|
|
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.
|
|
* `reload` interval to perform reload of zone if SOA version changes. Default is one minute.
|
|
Value of `0` means to not scan for changes and reload. eg. `30s` checks zonefile every 30 seconds
|
|
and reloads zone when serial changes.
|
|
* `no_reload` deprecated. Sets reload to 0.
|
|
* `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. **ADDRESS** can be an IP
|
|
address, and IP:port or a string pointing to a file that is structured as /etc/resolv.conf.
|
|
If no **ADDRESS** is given, CoreDNS will resolve CNAMEs against itself.
|
|
|
|
## Examples
|
|
|
|
Load the `example.org` zone from `example.org.signed` and allow transfers to the internet, but send
|
|
notifies to 10.240.1.1
|
|
|
|
~~~ corefile
|
|
example.org {
|
|
file example.org.signed {
|
|
transfer to *
|
|
transfer to 10.240.1.1
|
|
}
|
|
}
|
|
~~~
|
|
|
|
Or use a single zone file for multiple zones:
|
|
|
|
~~~
|
|
. {
|
|
file example.org.signed example.org example.net {
|
|
transfer to *
|
|
transfer to 10.240.1.1
|
|
}
|
|
}
|
|
~~~
|