update docs

This commit is contained in:
Miek Gieben 2018-06-20 06:44:17 +00:00
parent 530a61caf7
commit 78d114fe98
33 changed files with 76 additions and 91 deletions

View File

@ -4,7 +4,7 @@ description = "*auto* enables serving zone data from an RFC 1035-style master fi
weight = 1
tags = [ "plugin", "auto" ]
categories = [ "plugin" ]
date = "2018-05-24T08:47:52.442416"
date = "2018-06-20T06:43:55.261676"
+++
## Description

View File

@ -4,7 +4,7 @@ description = "*autopath* allows for server-side search path completion."
weight = 2
tags = [ "plugin", "autopath" ]
categories = [ "plugin" ]
date = "2018-05-24T08:47:52.442833"
date = "2018-06-20T06:43:55.262235"
+++
## Description

View File

@ -4,7 +4,7 @@ description = "*bind* overrides the host to which the server should bind."
weight = 3
tags = [ "plugin", "bind" ]
categories = [ "plugin" ]
date = "2018-05-24T08:47:52.443129"
date = "2018-06-20T06:43:55.262713"
+++
## Description

View File

@ -4,7 +4,7 @@ description = "*cache* enables a frontend cache."
weight = 4
tags = [ "plugin", "cache" ]
categories = [ "plugin" ]
date = "2018-05-24T08:47:52.443392"
date = "2018-06-20T06:43:55.263150"
+++
## Description

View File

@ -4,7 +4,7 @@ description = "*chaos* allows for responding to TXT queries in the CH class."
weight = 5
tags = [ "plugin", "chaos" ]
categories = [ "plugin" ]
date = "2018-05-24T08:47:52.443658"
date = "2018-06-20T06:43:55.263606"
+++
## Description

View File

@ -4,7 +4,7 @@ description = "*debug* disables the automatic recovery upon a crash so that you'
weight = 6
tags = [ "plugin", "debug" ]
categories = [ "plugin" ]
date = "2018-05-24T08:47:52.443851"
date = "2018-06-20T06:43:55.264001"
+++
## Description

View File

@ -4,7 +4,7 @@ description = "*dnssec* enable on-the-fly DNSSEC signing of served data."
weight = 7
tags = [ "plugin", "dnssec" ]
categories = [ "plugin" ]
date = "2018-05-24T08:47:52.444092"
date = "2018-06-20T06:43:55.264444"
+++
## Description

View File

@ -4,7 +4,7 @@ description = "*dnstap* enable logging to dnstap"
weight = 8
tags = [ "plugin", "dnstap" ]
categories = [ "plugin" ]
date = "2018-05-24T08:47:52.444315"
date = "2018-06-20T06:43:55.264879"
+++
## Description

View File

@ -4,7 +4,7 @@ description = "*erratic* a plugin useful for testing client behavior."
weight = 9
tags = [ "plugin", "erratic" ]
categories = [ "plugin" ]
date = "2018-05-24T08:47:52.444539"
date = "2018-06-20T06:43:55.265306"
+++
## Description

View File

@ -4,7 +4,7 @@ description = "*errors* enable error logging."
weight = 10
tags = [ "plugin", "errors" ]
categories = [ "plugin" ]
date = "2018-05-24T08:47:52.444723"
date = "2018-06-20T06:43:55.265681"
+++
## Description

View File

@ -4,7 +4,7 @@ description = "*etcd* enables reading zone data from an etcd instance."
weight = 11
tags = [ "plugin", "etcd" ]
categories = [ "plugin" ]
date = "2018-05-24T08:47:52.445007"
date = "2018-06-20T06:43:55.266156"
+++
## Description

View File

@ -4,7 +4,7 @@ description = "*federation* enables federated queries to be resolved via the kub
weight = 12
tags = [ "plugin", "federation" ]
categories = [ "plugin" ]
date = "2018-05-24T08:47:52.445261"
date = "2018-06-20T06:43:55.266602"
+++
## Description

View File

@ -4,7 +4,7 @@ description = "*file* enables serving zone data from an RFC 1035-style master fi
weight = 13
tags = [ "plugin", "file" ]
categories = [ "plugin" ]
date = "2018-05-24T08:47:52.445474"
date = "2018-06-20T06:43:55.266994"
+++
## Description

View File

@ -4,7 +4,7 @@ description = "*forward* facilitates proxying DNS messages to upstream resolvers
weight = 14
tags = [ "plugin", "forward" ]
categories = [ "plugin" ]
date = "2018-05-24T08:47:52.445723"
date = "2018-06-20T06:43:55.267443"
+++
## Description
@ -85,6 +85,10 @@ forward FROM TO... {
Also note the TLS config is "global" for the whole forwarding proxy if you need a different
`tls-name` for different upstreams you're out of luck.
On each endpoint, the timeouts of the communication are set by default and automatically tuned depending early results.
- dialTimeout by default is 30 sec, and can decrease automatically down to 100ms
- readTimeout by default is 2 sec, and can decrease automatically down to 10ms
## Metrics
If monitoring is enabled (via the *prometheus* directive) then the following metric are exported:

View File

@ -4,7 +4,7 @@ description = "*health* enables a health check endpoint."
weight = 15
tags = [ "plugin", "health" ]
categories = [ "plugin" ]
date = "2018-05-24T08:47:52.445949"
date = "2018-06-20T06:43:55.267872"
+++
## Description

View File

@ -4,18 +4,38 @@ description = "*hosts* enables serving zone data from a `/etc/hosts` style file.
weight = 16
tags = [ "plugin", "hosts" ]
categories = [ "plugin" ]
date = "2018-05-24T08:47:52.446188"
date = "2018-06-20T06:43:55.268277"
+++
## Description
The hosts plugin is useful for serving zones from a /etc/hosts file. It serves from a preloaded
The hosts plugin 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
plugin only supports A, AAAA, and PTR records. The hosts plugin can be used with readily
available hosts files that block access to advertising servers.
This plugin can only be used once per Server Block.
## The hosts file
Commonly the entries are of the from `IP_address canonical_hostname [aliases...]` as explained by the hosts(5) man page.
Examples:
~~~
# The following lines are desirable for IPv4 capable hosts
127.0.0.1 localhost
192.168.1.10 example.com example
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fdfc:a744:27b5:3b0e::1 example.com example
~~~
### PTR records
PTR records for reverse lookups are generated automatically by CoreDNS (based on the hosts file entries) and cannot be created manually.
## Syntax
~~~
@ -77,3 +97,7 @@ Load hosts file inlined in Corefile.
}
}
~~~
## See also
The form of the entries in the `/etc/hosts` file are based on IETF [RFC 952](https://tools.ietf.org/html/rfc952) which was updated by IETF [RFC 1123](https://tools.ietf.org/html/rfc1123).

View File

@ -4,7 +4,7 @@ description = "*kubernetes* enables the reading zone data from a Kubernetes clus
weight = 17
tags = [ "plugin", "kubernetes" ]
categories = [ "plugin" ]
date = "2018-05-24T08:47:52.446513"
date = "2018-06-20T06:43:55.268802"
+++
## Description

View File

@ -4,7 +4,7 @@ description = "*loadbalance* acts as a round-robin DNS loadbalancer by randomizi
weight = 18
tags = [ "plugin", "loadbalance" ]
categories = [ "plugin" ]
date = "2018-05-24T08:47:52.446777"
date = "2018-06-20T06:43:55.269245"
+++
in the answer.

View File

@ -4,7 +4,7 @@ description = "*log* enables query logging to standard output."
weight = 19
tags = [ "plugin", "log" ]
categories = [ "plugin" ]
date = "2018-05-24T08:47:52.447045"
date = "2018-06-20T06:43:55.269699"
+++
## Description

View File

@ -4,7 +4,7 @@ description = "*prometheus* enables [Prometheus](https://prometheus.io/) metrics
weight = 20
tags = [ "plugin", "metrics" ]
categories = [ "plugin" ]
date = "2018-05-24T08:47:52.447286"
date = "2018-06-20T06:43:55.270095"
+++
## Description

View File

@ -4,7 +4,7 @@ description = "*nsid* adds an identifier of this server to each reply."
weight = 21
tags = [ "plugin", "nsid" ]
categories = [ "plugin" ]
date = "2018-05-24T08:47:52.447546"
date = "2018-06-20T06:43:55.270515"
+++
## Description

View File

@ -4,7 +4,7 @@ description = "*pprof* publishes runtime profiling data at endpoints under `/deb
weight = 22
tags = [ "plugin", "pprof" ]
categories = [ "plugin" ]
date = "2018-05-24T08:47:52.447810"
date = "2018-06-20T06:43:55.270968"
+++
## Description

View File

@ -4,7 +4,7 @@ description = "*proxy* facilitates both a basic reverse proxy and a robust load
weight = 23
tags = [ "plugin", "proxy" ]
categories = [ "plugin" ]
date = "2018-05-24T08:47:52.448106"
date = "2018-06-20T06:43:55.271471"
+++
## Description
@ -34,7 +34,7 @@ proxy FROM TO... {
health_check PATH:PORT [DURATION]
except IGNORED_NAMES...
spray
protocol [dns [force_tcp]|https_google [bootstrap ADDRESS...]|grpc [insecure|CACERT|KEY CERT|KEY CERT CACERT]]
protocol [dns [force_tcp]|grpc [insecure|CACERT|KEY CERT|KEY CERT CACERT]]
}
~~~
@ -57,8 +57,7 @@ proxy FROM TO... {
* `spray` when all backends are unhealthy, randomly pick one to send the traffic to. (This is
a failsafe.)
* `protocol` specifies what protocol to use to speak to an upstream, `dns` (the default) is plain
old DNS, and `https_google` uses `https://dns.google.com` and speaks a JSON DNS dialect. Note when
using this **TO** will be ignored. The `grpc` option will talk to a server that has implemented
old DNS. The `grpc` option will talk to a server that has implemented
the [DnsService](https://github.com/coredns/coredns/blob/master/pb/dns.proto).
## Policies
@ -76,10 +75,6 @@ available. This is to preeempt the case where the healthchecking (as a mechanism
## Upstream Protocols
Currently `protocol` supports `dns` (i.e., standard DNS over UDP/TCP) and `https_google` (JSON
payload over HTTPS). Note that with `https_google` the entire transport is encrypted. Only *you* and
*Google* can see your DNS activity.
`dns`
: uses the standard DNS exchange. You can pass `force_tcp` to make sure that the proxied connection is performed
over TCP, regardless of the inbound request's protocol.
@ -95,13 +90,6 @@ payload over HTTPS). Note that with `https_google` the entire transport is encry
* **KEY** **CERT** **CACERT** - Client authentication is used with the specified key/cert pair. The
server certificate is verified using the **CACERT** file.
`https_google`
: bootstrap **ADDRESS...** is used to (re-)resolve `dns.google.com`.
This happens every 300s. If not specified the default is used: 8.8.8.8:53/8.8.4.4:53.
Note that **TO** is *ignored* when `https_google` is used, as its upstream is defined as `dns.google.com`.
## Metrics
If monitoring is enabled (via the *prometheus* directive) then the following metric is exported:
@ -111,7 +99,7 @@ If monitoring is enabled (via the *prometheus* directive) then the following met
* `coredns_proxy_request_count_total{server, proto, proto_proxy, family, to}` - query count per
upstream.
Where `proxy_proto` is the protocol used (`dns`, `grpc`, or `https_google`) and `to` is **TO**
Where `proxy_proto` is the protocol used (`dns` or `grpc`) and `to` is **TO**
specified in the config, `proto` is the protocol used by the incoming query ("tcp" or "udp"), family
the transport family ("1" for IPv4, and "2" for IPv6). `Server` is the server responsible for the
request (and metric). See the documention in the metrics plugin.
@ -172,34 +160,3 @@ Proxy everything except `example.org` using the host's `resolv.conf`'s nameserve
}
}
~~~
Proxy all requests within `example.org` to Google's `dns.google.com`.
~~~ corefile
. {
proxy example.org 1.2.3.4:53 {
protocol https_google
}
}
~~~
Proxy everything with HTTPS to `dns.google.com`, except `example.org`. Then have another proxy in
another stanza that uses plain DNS to resolve names under `example.org`.
~~~ corefile
. {
proxy . 1.2.3.4:53 {
except example.org
protocol https_google
}
}
example.org {
proxy . 8.8.8.8:53
}
~~~
## Bugs
When using the `google_https` protocol the health checking will health check the wrong endpoint.
See <https://github.com/coredns/coredns/issues/1202> for some background.

View File

@ -4,7 +4,7 @@ description = "*reload* allows automatic reload of a changed Corefile"
weight = 24
tags = [ "plugin", "reload" ]
categories = [ "plugin" ]
date = "2018-05-24T08:47:52.448362"
date = "2018-06-20T06:43:55.271880"
+++
## Description

View File

@ -1,10 +1,10 @@
+++
title = "rewrite"
description = "*rewrite* performs internal message rewriting."
weight = 26
weight = 25
tags = [ "plugin", "rewrite" ]
categories = [ "plugin" ]
date = "2018-05-24T08:47:52.448976"
date = "2018-06-20T06:43:55.272407"
+++
## Description
@ -182,8 +182,8 @@ rewrite [continue|stop] name regex STRING STRING answer name STRING STRING
Using FIELD edns0, you can set, append, or replace specific EDNS0 options on the request.
* `replace` will modify any matching (what that means may vary based on EDNS0 type) option with the specified option
* `append` will add the option regardless of what options already exist
* `replace` will modify any "matching" option with the specified option. The criteria for "matching" varies based on EDNS0 type.
* `append` will add the option only if no matching option exists
* `set` will modify a matching option or add one if none is found
Currently supported are `EDNS0_LOCAL`, `EDNS0_NSID` and `EDNS0_SUBNET`.

View File

@ -1,10 +1,10 @@
+++
title = "root"
description = "*root* simply specifies the root of where to find (zone) files."
weight = 27
weight = 26
tags = [ "plugin", "root" ]
categories = [ "plugin" ]
date = "2018-05-24T08:47:52.449187"
date = "2018-06-20T06:43:55.272806"
+++
## Description

View File

@ -1,10 +1,10 @@
+++
title = "route53"
description = "*route53* enables serving zone data from AWS route53."
weight = 28
weight = 27
tags = [ "plugin", "route53" ]
categories = [ "plugin" ]
date = "2018-05-24T08:47:52.449410"
date = "2018-06-20T06:43:55.273223"
+++
## Description

View File

@ -1,10 +1,10 @@
+++
title = "secondary"
description = "*secondary* enables serving a zone retrieved from a primary server."
weight = 29
weight = 28
tags = [ "plugin", "secondary" ]
categories = [ "plugin" ]
date = "2018-05-24T08:47:52.449662"
date = "2018-06-20T06:43:55.273669"
+++
## Description

View File

@ -1,10 +1,10 @@
+++
title = "template"
description = "*template* allows for dynamic responses based on the incoming query."
weight = 30
weight = 29
tags = [ "plugin", "template" ]
categories = [ "plugin" ]
date = "2018-05-24T08:47:52.450010"
date = "2018-06-20T06:43:55.274202"
+++
## Description
@ -94,7 +94,7 @@ The most simplistic template is
### Resolve .invalid as NXDOMAIN
The `.invalid` domain is a reserved TLD (see [RFC-2606 Reserved Top Level DNS Names](https://tools.ietf.org/html/rfc2606#section-2)) to indicate invalid domains.
The `.invalid` domain is a reserved TLD (see [RFC 2606 Reserved Top Level DNS Names](https://tools.ietf.org/html/rfc2606#section-2)) to indicate invalid domains.
~~~ corefile
. {
@ -249,7 +249,7 @@ Named capture groups can be used to template one response for multiple patterns.
* [Go regexp](https://golang.org/pkg/regexp/) for details about the regex implementation
* [RE2 syntax reference](https://github.com/google/re2/wiki/Syntax) for details about the regex syntax
* [RFC-1034](https://tools.ietf.org/html/rfc1034#section-3.6.1) and [RFC 1035](https://tools.ietf.org/html/rfc1035#section-5) for the resource record format
* [RFC 1034](https://tools.ietf.org/html/rfc1034#section-3.6.1) and [RFC 1035](https://tools.ietf.org/html/rfc1035#section-5) for the resource record format
* [Go template](https://golang.org/pkg/text/template/) for the template language reference
## Bugs

View File

@ -1,10 +1,10 @@
+++
title = "tls"
description = "*tls* allows you to configure the server certificates for the TLS and gRPC servers."
weight = 31
weight = 30
tags = [ "plugin", "tls" ]
categories = [ "plugin" ]
date = "2018-05-24T08:47:52.450277"
date = "2018-06-20T06:43:55.274696"
+++
## Description

View File

@ -1,10 +1,10 @@
+++
title = "trace"
description = "*trace* enables OpenTracing-based tracing of DNS requests as they go through the plugin chain."
weight = 32
weight = 31
tags = [ "plugin", "trace" ]
categories = [ "plugin" ]
date = "2018-05-24T08:47:52.450556"
date = "2018-06-20T06:43:55.275109"
+++
## Description

View File

@ -1,10 +1,10 @@
+++
title = "whoami"
description = "*whoami* returns your resolver's local IP address, port and transport."
weight = 33
weight = 32
tags = [ "plugin", "whoami" ]
categories = [ "plugin" ]
date = "2018-05-24T08:47:52.450894"
date = "2018-06-20T06:43:55.275493"
+++
## Description