2017-06-08 13:48:04 -06:00
|
|
|
# hosts
|
|
|
|
|
|
2018-01-04 12:53:07 +00:00
|
|
|
## Name
|
|
|
|
|
|
|
|
|
|
*hosts* - enables serving zone data from a `/etc/hosts` style file.
|
|
|
|
|
|
|
|
|
|
## Description
|
2017-06-08 13:48:04 -06:00
|
|
|
|
2017-09-14 09:36:06 +01:00
|
|
|
The hosts plugin is useful for serving zones from a /etc/hosts file. It serves from a preloaded
|
2017-06-08 13:48:04 -06:00
|
|
|
file that exists on disk. It checks the file for changes and updates the zones accordingly. This
|
2017-09-14 09:36:06 +01:00
|
|
|
plugin only supports A, AAAA, and PTR records. The hosts plugin can be used with readily
|
2017-06-08 13:48:04 -06:00
|
|
|
available hosts files that block access to advertising servers.
|
|
|
|
|
|
2018-02-28 18:16:05 -08:00
|
|
|
This plugin can only be used once per Server Block.
|
|
|
|
|
|
2017-06-08 13:48:04 -06:00
|
|
|
## Syntax
|
|
|
|
|
|
|
|
|
|
~~~
|
2017-07-23 21:15:16 +01:00
|
|
|
hosts [FILE [ZONES...]] {
|
2017-09-21 04:18:13 -07:00
|
|
|
[INLINE]
|
2018-01-07 16:32:59 +00:00
|
|
|
fallthrough [ZONES...]
|
2017-06-08 13:48:04 -06:00
|
|
|
}
|
|
|
|
|
~~~
|
|
|
|
|
|
|
|
|
|
* **FILE** the hosts file to read and parse. If the path is relative the path from the *root*
|
2018-01-07 16:32:59 +00:00
|
|
|
directive will be prepended to it. Defaults to /etc/hosts if omitted. We scan the file for changes
|
2017-10-31 01:40:47 -06:00
|
|
|
every 5 seconds.
|
2017-06-08 13:48:04 -06:00
|
|
|
* **ZONES** zones it should be authoritative for. If empty, the zones from the configuration block
|
2017-09-21 04:18:13 -07:00
|
|
|
are used.
|
|
|
|
|
* **INLINE** the hosts file contents inlined in Corefile. If there are any lines before fallthrough
|
|
|
|
|
then all of them will be treated as the additional content for hosts file. The specified hosts
|
|
|
|
|
file path will still be read but entries will be overrided.
|
2017-09-14 09:36:06 +01:00
|
|
|
* `fallthrough` If zone matches and no record can be generated, pass request to the next plugin.
|
2018-01-07 16:32:59 +00:00
|
|
|
If **[ZONES...]** is omitted, then fallthrough happens for all zones for which the plugin
|
|
|
|
|
is authoritative. If specific zones are listed (for example `in-addr.arpa` and `ip6.arpa`), then only
|
|
|
|
|
queries for those zones will be subject to fallthrough.
|
2017-06-08 13:48:04 -06:00
|
|
|
|
|
|
|
|
## Examples
|
|
|
|
|
|
2017-07-23 21:15:16 +01:00
|
|
|
Load `/etc/hosts` file.
|
2017-06-08 13:48:04 -06:00
|
|
|
|
2017-10-10 09:39:35 +02:00
|
|
|
~~~ corefile
|
|
|
|
|
. {
|
|
|
|
|
hosts
|
|
|
|
|
}
|
2017-06-08 13:48:04 -06:00
|
|
|
~~~
|
|
|
|
|
|
2017-07-23 21:15:16 +01:00
|
|
|
Load `example.hosts` file in the current directory.
|
2017-06-08 13:48:04 -06:00
|
|
|
|
|
|
|
|
~~~
|
|
|
|
|
hosts example.hosts
|
|
|
|
|
~~~
|
|
|
|
|
|
|
|
|
|
Load example.hosts file and only serve example.org and example.net from it and fall through to the
|
2017-09-14 09:36:06 +01:00
|
|
|
next plugin if query doesn't match.
|
2017-06-08 13:48:04 -06:00
|
|
|
|
|
|
|
|
~~~
|
|
|
|
|
hosts example.hosts example.org example.net {
|
|
|
|
|
fallthrough
|
|
|
|
|
}
|
|
|
|
|
~~~
|
2017-09-21 04:18:13 -07:00
|
|
|
|
|
|
|
|
Load hosts file inlined in Corefile.
|
|
|
|
|
|
|
|
|
|
~~~
|
|
|
|
|
hosts example.hosts example.org {
|
|
|
|
|
10.0.0.1 example.org
|
|
|
|
|
fallthrough
|
|
|
|
|
}
|
|
|
|
|
~~~
|