mirror of
https://github.com/coredns/coredns.git
synced 2025-12-05 18:05:10 -05:00
middleware/hosts for /etc/hosts parsing (#695)
* add hosts middleware * forgot pointer receiver * add appropriately modified hostsfile tests from golang repo * remove test artifacts, separate hostsfile parsing from caching and opening, remove unused metrics references, move middleware up the chain * refactored the logic for creating records and filtering ip address versions. also got PTR lookups working * Add README.md. Modify config to be more concise. Add zones list to config. Filter PTR responses based on zones list. * add Fallthrough and return correct dns response code otherwise * Simplified Hostsfile to only store hosts in the zones we care about, and by ip version. Added handler tests and improved other tests. * oops, goimports loaded a package from a different repo
This commit is contained in:
45
middleware/hosts/README.md
Normal file
45
middleware/hosts/README.md
Normal file
@@ -0,0 +1,45 @@
|
||||
# hosts
|
||||
|
||||
*hosts* enables serving zone data from a /etc/hosts style file.
|
||||
|
||||
The hosts middleware is useful for serving zones from a /etc/hosts file. It serves from a preloaded
|
||||
file that exists on disk. It checks the file for changes and updates the zones accordingly. This
|
||||
middleware only supports A, AAAA, and PTR records. The hosts middleware can be used with readily
|
||||
available hosts files that block access to advertising servers.
|
||||
|
||||
## Syntax
|
||||
|
||||
~~~
|
||||
hosts FILE [ZONES...] {
|
||||
fallthrough
|
||||
}
|
||||
~~~
|
||||
|
||||
* **FILE** the hosts file to read and parse. If the path is relative the path from the *root*
|
||||
directive will be prepended to it. Defaults to /etc/hosts if omitted
|
||||
* **ZONES** zones it should be authoritative for. If empty, the zones from the configuration block
|
||||
are used.
|
||||
* `fallthrough` If zone matches and no record can be generated, pass request to the next middleware.
|
||||
|
||||
## Examples
|
||||
|
||||
Load /etc/hosts file
|
||||
|
||||
~~~
|
||||
hosts
|
||||
~~~
|
||||
|
||||
Load example.hosts file
|
||||
|
||||
~~~
|
||||
hosts example.hosts
|
||||
~~~
|
||||
|
||||
Load example.hosts file and only serve example.org and example.net from it and fall through to the
|
||||
next middleware if query doesn't match
|
||||
|
||||
~~~
|
||||
hosts example.hosts example.org example.net {
|
||||
fallthrough
|
||||
}
|
||||
~~~
|
||||
Reference in New Issue
Block a user