parent
e8af22cb8f
commit
2be83e89e5
|
@ -0,0 +1,41 @@
|
|||
+++
|
||||
title = "CoreDNS-1.2.1 Release"
|
||||
description = "CoreDNS-1.2.1 Release Notes."
|
||||
tags = ["Release", "1.2.1", "Notes"]
|
||||
release = "1.2.1"
|
||||
date = "2018-08-28T07:10:29+01:00"
|
||||
author = "coredns"
|
||||
+++
|
||||
|
||||
We are pleased to announce the [release](https://github.com/coredns/coredns/releases/tag/v1.2.1) of
|
||||
CoreDNS-1.2.1!
|
||||
|
||||
This release features bugfixes (mostly in the [*kubernetes*](/plugins/kubernetes) plugin,
|
||||
documentation improvements and one new plugin: [*loop*](/plugin/loop).
|
||||
|
||||
# Plugins
|
||||
|
||||
* A new plugin called [*loop*](/plugins/loop) was added. When starting up it detects resolver loops
|
||||
and stops the process if one is detected.
|
||||
|
||||
## Contributors
|
||||
|
||||
The following people helped with getting this release done. Good to see a whole bunch of new names,
|
||||
as well as the usual suspects:
|
||||
|
||||
Bingshen Wang,
|
||||
Chris O'Haver,
|
||||
Eugen Kleiner,
|
||||
Francois Tur,
|
||||
Jiacheng Xu,
|
||||
Karsten Weiss,
|
||||
Lorenzo Fontana,
|
||||
Miek Gieben,
|
||||
Nitish Tiwari,
|
||||
Stanislav Zapolsky,
|
||||
varyoo,
|
||||
Yong Tang,
|
||||
Zach Eddy.
|
||||
|
||||
For documentation see our (in progress!) [manual](/manual). For help and other resources, see our
|
||||
[community page](https://coredns.io/community/).
|
|
@ -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-07-11T10:14:28.424385"
|
||||
date = "2018-08-28T06:15:01.551450"
|
||||
+++
|
||||
|
||||
## Description
|
||||
|
@ -27,7 +27,7 @@ auto [ZONES...] {
|
|||
**ZONES** zones it should be authoritative for. If empty, the zones from the configuration block
|
||||
are used.
|
||||
|
||||
* `directory` loads zones from the speficied **DIR**. If a file name matches **REGEXP** it will be
|
||||
* `directory` loads zones from the specified **DIR**. If a file name matches **REGEXP** it will be
|
||||
used to extract the origin. **ORIGIN_TEMPLATE** will be used as a template for the origin. Strings
|
||||
like `{<number>}` are replaced with the respective matches in the file name, e.g. `{1}` is the
|
||||
first match, `{2}` is the second. The default is: `db\.(.*) {1}` i.e. from a file with the
|
||||
|
|
|
@ -4,7 +4,7 @@ description = "*autopath* allows for server-side search path completion."
|
|||
weight = 2
|
||||
tags = [ "plugin", "autopath" ]
|
||||
categories = [ "plugin" ]
|
||||
date = "2018-07-11T10:14:28.425144"
|
||||
date = "2018-08-28T06:15:01.551825"
|
||||
+++
|
||||
|
||||
## Description
|
||||
|
|
|
@ -4,7 +4,7 @@ description = "*bind* overrides the host to which the server should bind."
|
|||
weight = 3
|
||||
tags = [ "plugin", "bind" ]
|
||||
categories = [ "plugin" ]
|
||||
date = "2018-07-11T10:14:28.425729"
|
||||
date = "2018-08-28T06:15:01.552149"
|
||||
+++
|
||||
|
||||
## Description
|
||||
|
|
|
@ -4,7 +4,7 @@ description = "*cache* enables a frontend cache."
|
|||
weight = 4
|
||||
tags = [ "plugin", "cache" ]
|
||||
categories = [ "plugin" ]
|
||||
date = "2018-07-11T10:14:28.426487"
|
||||
date = "2018-08-28T06:15:01.552421"
|
||||
+++
|
||||
|
||||
## Description
|
||||
|
|
|
@ -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-07-11T10:14:28.427215"
|
||||
date = "2018-08-28T06:15:01.552698"
|
||||
+++
|
||||
|
||||
## Description
|
||||
|
|
|
@ -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-07-11T10:14:28.427875"
|
||||
date = "2018-08-28T06:15:01.552942"
|
||||
+++
|
||||
|
||||
## Description
|
||||
|
|
|
@ -4,7 +4,7 @@ description = "*dnssec* enable on-the-fly DNSSEC signing of served data."
|
|||
weight = 7
|
||||
tags = [ "plugin", "dnssec" ]
|
||||
categories = [ "plugin" ]
|
||||
date = "2018-07-11T10:14:28.428601"
|
||||
date = "2018-08-28T06:15:01.553261"
|
||||
+++
|
||||
|
||||
## Description
|
||||
|
|
|
@ -4,7 +4,7 @@ description = "*dnstap* enable logging to dnstap."
|
|||
weight = 8
|
||||
tags = [ "plugin", "dnstap" ]
|
||||
categories = [ "plugin" ]
|
||||
date = "2018-07-11T10:14:28.429310"
|
||||
date = "2018-08-28T06:15:01.553539"
|
||||
+++
|
||||
|
||||
## Description
|
||||
|
|
|
@ -4,7 +4,7 @@ description = "*erratic* a plugin useful for testing client behavior."
|
|||
weight = 9
|
||||
tags = [ "plugin", "erratic" ]
|
||||
categories = [ "plugin" ]
|
||||
date = "2018-07-11T10:14:28.430017"
|
||||
date = "2018-08-28T06:15:01.553796"
|
||||
+++
|
||||
|
||||
## Description
|
||||
|
@ -13,7 +13,8 @@ date = "2018-07-11T10:14:28.430017"
|
|||
The *erratic* plugin will respond to every A or AAAA query. For any other type it will return
|
||||
a SERVFAIL response. The reply for A will return 192.0.2.53 (see [RFC
|
||||
5737](https://tools.ietf.org/html/rfc5737),
|
||||
for AAAA it returns 2001:DB8::53 (see [RFC 3849](https://tools.ietf.org/html/rfc3849)).
|
||||
for AAAA it returns 2001:DB8::53 (see [RFC 3849](https://tools.ietf.org/html/rfc3849)) and for an
|
||||
AXFR request it will respond with a small zone transfer.
|
||||
|
||||
*erratic* can also be used in conjunction with the *autopath* plugin. This is mostly to aid in
|
||||
testing.
|
||||
|
@ -33,6 +34,8 @@ erratic {
|
|||
* `delay`: delay 1 per **AMOUNT** of queries for **DURATION**, the default for **AMOUNT** is 2 and
|
||||
the default for **DURATION** is 100ms.
|
||||
|
||||
In case of a zone transfer and truncate the final SOA record *isn't* added to the response.
|
||||
|
||||
## Health
|
||||
|
||||
This plugin implements dynamic health checking. For every dropped query it turns unhealthy.
|
||||
|
|
|
@ -4,7 +4,7 @@ description = "*errors* enable error logging."
|
|||
weight = 10
|
||||
tags = [ "plugin", "errors" ]
|
||||
categories = [ "plugin" ]
|
||||
date = "2018-07-11T10:14:28.430602"
|
||||
date = "2018-08-28T06:15:01.554012"
|
||||
+++
|
||||
|
||||
## Description
|
||||
|
|
|
@ -4,7 +4,7 @@ description = "*etcd* enables reading zone data from an etcd version 3 instance.
|
|||
weight = 11
|
||||
tags = [ "plugin", "etcd" ]
|
||||
categories = [ "plugin" ]
|
||||
date = "2018-07-11T10:14:28.431331"
|
||||
date = "2018-08-28T06:15:01.554420"
|
||||
+++
|
||||
|
||||
## Description
|
||||
|
@ -65,13 +65,19 @@ etcd [ZONES...] {
|
|||
## Special Behaviour
|
||||
CoreDNS etcd plugin leverages directory structure to look for related entries. For example an entry `/skydns/test/skydns/mx` would have entries like `/skydns/test/skydns/mx/a`, `/skydns/test/skydns/mx/b` and so on. Similarly a directory `/skydns/test/skydns/mx1` will have all `mx1` entries.
|
||||
|
||||
With etcd3, support for [hierarchial keys are dropped](https://coreos.com/etcd/docs/latest/learning/api.html). This means there are no directories but only flat keys with prefixes in etcd3. To accomodate lookups, etcdv3 plugin now does a lookup on prefix `/skydns/test/skydns/mx/` to search for entries like `/skydns/test/skydns/mx/a` etc, and if there is nothing found on `/skydns/test/skydns/mx/`, it looks for `/skydns/test/skydns/mx` to find entries like `/skydns/test/skydns/mx1`.
|
||||
With etcd3, support for [hierarchial keys are dropped](https://coreos.com/etcd/docs/latest/learning/api.html). This means there are no directories but only flat keys with prefixes in etcd3. To accommodate lookups, etcdv3 plugin now does a lookup on prefix `/skydns/test/skydns/mx/` to search for entries like `/skydns/test/skydns/mx/a` etc, and if there is nothing found on `/skydns/test/skydns/mx/`, it looks for `/skydns/test/skydns/mx` to find entries like `/skydns/test/skydns/mx1`.
|
||||
|
||||
This causes two lookups from CoreDNS to etcdv3 in certain cases.
|
||||
|
||||
## Migration to `etcdv3` API
|
||||
|
||||
With CoreDNS release `1.2.0`, you'll need to migrate existing CoreDNS related data (if any) on your etcd server to etcdv3 API. This is because with `etcdv3` support, CoreDNS can't see the data stored to an etcd server using `etcdv2` API.
|
||||
|
||||
Refer this [blog by CoreOS team](https://coreos.com/blog/migrating-applications-etcd-v3.html) to migrate to etcdv3 API.
|
||||
|
||||
## Examples
|
||||
|
||||
This is the default SkyDNS setup, with everying specified in full:
|
||||
This is the default SkyDNS setup, with everything specified in full:
|
||||
|
||||
~~~ corefile
|
||||
. {
|
||||
|
@ -110,6 +116,9 @@ etcd skydns.local {
|
|||
...
|
||||
~~~
|
||||
|
||||
Before getting started with these examples, please setup `etcdctl` (with `etcdv3` API) as explained [here](https://coreos.com/etcd/docs/latest/dev-guide/interacting_v3.html). This will help you to put sample keys in your etcd server.
|
||||
|
||||
If you prefer, you can use `curl` to populate the `etcd` server, but with `curl` the endpoint URL depends on the version of `etcd`. For instance, `etcd v3.2` or before uses only [CLIENT-URL]/v3alpha/* while `etcd v3.5` or later uses [CLIENT-URL]/v3/* . Also, Key and Value must be base64 encoded in the JSON payload. With, `etcdctl` these details are automatically taken care off. You can check [this document](https://github.com/coreos/etcd/blob/master/Documentation/dev-guide/api_grpc_gateway.md#notes) for details.
|
||||
|
||||
### Reverse zones
|
||||
|
||||
|
@ -127,8 +136,7 @@ Next you'll need to populate the zone with reverse records, here we add a revers
|
|||
10.0.0.127 pointing to reverse.skydns.local.
|
||||
|
||||
~~~
|
||||
% curl -XPUT http://127.0.0.1:4001/v2/keys/skydns/arpa/in-addr/10/0/0/127 \
|
||||
-d value='{"host":"reverse.skydns.local."}'
|
||||
% etcdctl put /skydns/arpa/in-addr/10/0/0/127 '{"host":"reverse.skydns.local."}'
|
||||
~~~
|
||||
|
||||
Querying with dig:
|
||||
|
@ -143,7 +151,7 @@ reverse.skydns.local.
|
|||
The zone name itself can be used A record. This behavior can be achieved by writing special entries to the ETCD path of your zone. If your zone is named `skydns.local` for example, you can create an `A` record for this zone as follows:
|
||||
|
||||
~~~
|
||||
% curl -XPUT http://127.0.0.1:2379/v2/keys/skydns/local/skydns/dns/apex -d value='{"host":"1.1.1.1","ttl":"60"}'
|
||||
% etcdctl put /skydns/local/skydns/ '{"host":"1.1.1.1","ttl":60}'
|
||||
~~~
|
||||
|
||||
If you query the zone name itself, you will receive the created `A` record:
|
||||
|
@ -155,27 +163,57 @@ If you query the zone name itself, you will receive the created `A` record:
|
|||
|
||||
If you would like to use DNS RR for the zone name, you can set the following:
|
||||
~~~
|
||||
% curl -XPUT http://127.0.0.1:2379/v2/keys/skydns/local/skydns/dns/apex/x1 -d value='{"host":"1.1.1.1","ttl":"60"}'
|
||||
% curl -XPUT http://127.0.0.1:2379/v2/keys/skydns/local/skydns/dns/apex/x2 -d value='{"host":"1.1.1.2","ttl":"60"}'
|
||||
% etcdctl put /skydns/local/skydns/x1 '{"host":"1.1.1.1","ttl":"60"}'
|
||||
% etcdctl put /skydns/local/skydns/x2 '{"host":"1.1.1.2","ttl":"60"}'
|
||||
~~~
|
||||
|
||||
If you query the zone name now, you will get the following response:
|
||||
|
||||
~~~ sh
|
||||
dig +short skydns.local @localhost
|
||||
% dig +short skydns.local @localhost
|
||||
1.1.1.1
|
||||
1.1.1.2
|
||||
~~~
|
||||
|
||||
### Zone name as AAAA record
|
||||
|
||||
If you would like to use `AAAA` records for the zone name too, you can set the following:
|
||||
~~~
|
||||
% curl -XPUT http://127.0.0.1:2379/v2/keys/skydns/local/skydns/dns/apex/x3 -d value='{"host":"2003::8:1","ttl":"60"}'
|
||||
% curl -XPUT http://127.0.0.1:2379/v2/keys/skydns/local/skydns/dns/apex/x4 -d value='{"host":"2003::8:2","ttl":"60"}'
|
||||
% etcdctl put /skydns/local/skydns/x3 '{"host":"2003::8:1","ttl":"60"}'
|
||||
% etcdctl put /skydns/local/skydns/x4 '{"host":"2003::8:2","ttl":"60"}'
|
||||
~~~
|
||||
|
||||
If you query the zone name now for `AAAA` now, you will get the following response:
|
||||
If you query the zone name for `AAAA` now, you will get the following response:
|
||||
~~~ sh
|
||||
dig +short skydns.local AAAA @localhost
|
||||
% dig +short skydns.local AAAA @localhost
|
||||
2003::8:1
|
||||
2003::8:2
|
||||
~~~
|
||||
|
||||
### SRV record
|
||||
|
||||
If you would like to use `SRV` records, you can set the following:
|
||||
~~~
|
||||
% etcdctl put /skydns/local/skydns/x5 '{"host":"skydns-local.server","ttl":60,"priority":10,"port":8080}'
|
||||
~~~
|
||||
Please notice that the key `host` is the `target` in `SRV`, so it should be a domain name.
|
||||
|
||||
If you query the zone name for `SRV` now, you will get the following response:
|
||||
|
||||
~~~ sh
|
||||
% dig +short skydns.local SRV @localhost
|
||||
10 100 8080 skydns-local.server.
|
||||
~~~
|
||||
|
||||
### TXT record
|
||||
|
||||
If you would like to use `TXT` records, you can set the following:
|
||||
~~~
|
||||
% etcdctl put /skydns/local/skydns/x6 '{"ttl":60,"text":"this is a random text message."}'
|
||||
~~~
|
||||
|
||||
If you query the zone name for `TXT` now, you will get the following response:
|
||||
~~~ sh
|
||||
% dig +short skydns.local TXT @localhost
|
||||
"this is a random text message."
|
||||
~~~
|
||||
|
|
|
@ -4,7 +4,7 @@ description = "*federation* enables federated queries to be resolved via the kub
|
|||
weight = 12
|
||||
tags = [ "plugin", "federation" ]
|
||||
categories = [ "plugin" ]
|
||||
date = "2018-07-11T10:14:28.431929"
|
||||
date = "2018-08-28T06:15:01.554774"
|
||||
+++
|
||||
|
||||
## Description
|
||||
|
|
|
@ -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-07-11T10:14:28.432522"
|
||||
date = "2018-08-28T06:15:01.555057"
|
||||
+++
|
||||
|
||||
## Description
|
||||
|
|
|
@ -4,7 +4,7 @@ description = "*forward* facilitates proxying DNS messages to upstream resolvers
|
|||
weight = 14
|
||||
tags = [ "plugin", "forward" ]
|
||||
categories = [ "plugin" ]
|
||||
date = "2018-07-11T10:14:28.433274"
|
||||
date = "2018-08-28T06:15:01.555374"
|
||||
+++
|
||||
|
||||
## Description
|
||||
|
|
|
@ -4,7 +4,7 @@ description = "*health* enables a health check endpoint."
|
|||
weight = 15
|
||||
tags = [ "plugin", "health" ]
|
||||
categories = [ "plugin" ]
|
||||
date = "2018-07-11T10:14:28.433874"
|
||||
date = "2018-08-28T06:15:01.555655"
|
||||
+++
|
||||
|
||||
## Description
|
||||
|
|
|
@ -4,7 +4,7 @@ description = "*hosts* enables serving zone data from a `/etc/hosts` style file.
|
|||
weight = 16
|
||||
tags = [ "plugin", "hosts" ]
|
||||
categories = [ "plugin" ]
|
||||
date = "2018-07-11T10:14:28.434480"
|
||||
date = "2018-08-28T06:15:01.555923"
|
||||
+++
|
||||
|
||||
## Description
|
||||
|
|
|
@ -4,7 +4,7 @@ description = "*kubernetes* enables the reading zone data from a Kubernetes clus
|
|||
weight = 17
|
||||
tags = [ "plugin", "kubernetes" ]
|
||||
categories = [ "plugin" ]
|
||||
date = "2018-07-11T10:14:28.435188"
|
||||
date = "2018-08-28T06:15:01.556292"
|
||||
+++
|
||||
|
||||
## Description
|
||||
|
@ -70,7 +70,7 @@ kubernetes [ZONES...] {
|
|||
|
||||
* `disabled`: Default. Do not process pod requests, always returning `NXDOMAIN`
|
||||
* `insecure`: Always return an A record with IP from request (without checking k8s). This option
|
||||
is is vulnerable to abuse if used maliciously in conjunction with wildcard SSL certs. This
|
||||
is vulnerable to abuse if used maliciously in conjunction with wildcard SSL certs. This
|
||||
option is provided for backward compatibility with kube-dns.
|
||||
* `verified`: Return an A record if there exists a pod in same namespace with matching IP. This
|
||||
option requires substantially more memory than in insecure mode, since it will maintain a watch
|
||||
|
@ -95,9 +95,10 @@ kubernetes [ZONES...] {
|
|||
* `noendpoints` will turn off the serving of endpoint records by disabling the watch on endpoints.
|
||||
All endpoint queries and headless service queries will result in an NXDOMAIN.
|
||||
* `transfer` enables zone transfers. It may be specified multiples times. `To` signals the direction
|
||||
(only `to` is alllow). **ADDRESS** must be denoted in CIDR notation (127.0.0.1/32 etc.) or just as
|
||||
(only `to` is allow). **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.
|
||||
Sending DNS notifies is not supported.
|
||||
[Deprecated](https://github.com/kubernetes/dns/blob/master/docs/specification.md#26---deprecated-records) pod records in the sub domain `pod.cluster.local` are not transferred.
|
||||
* `fallthrough` **[ZONES...]** If a query for a record in the zones for which the plugin is authoritative
|
||||
results in NXDOMAIN, normally that is what the response will be. However, if you specify this option,
|
||||
the query will instead be passed on down the plugin chain, which can include another plugin to handle
|
||||
|
|
|
@ -4,7 +4,7 @@ description = "*loadbalance* randomize the order of A, AAAA and MX records."
|
|||
weight = 18
|
||||
tags = [ "plugin", "loadbalance" ]
|
||||
categories = [ "plugin" ]
|
||||
date = "2018-07-11T10:14:28.435776"
|
||||
date = "2018-08-28T06:15:01.556548"
|
||||
+++
|
||||
|
||||
## Description
|
||||
|
|
|
@ -4,7 +4,7 @@ description = "*log* enables query logging to standard output."
|
|||
weight = 19
|
||||
tags = [ "plugin", "log" ]
|
||||
categories = [ "plugin" ]
|
||||
date = "2018-07-11T10:14:28.436410"
|
||||
date = "2018-08-28T06:15:01.556838"
|
||||
+++
|
||||
|
||||
## Description
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
+++
|
||||
title = "loop"
|
||||
description = "*loop* detect simple forwarding loops and halt the server."
|
||||
weight = 20
|
||||
tags = [ "plugin", "loop" ]
|
||||
categories = [ "plugin" ]
|
||||
date = "2018-08-28T06:15:01.557080"
|
||||
+++
|
||||
|
||||
## Description
|
||||
|
||||
The *loop* plugin will send a random query to ourselves and will then keep track of how many times
|
||||
we see it. If we see it more than twice, we assume CoreDNS is looping and we halt the process.
|
||||
|
||||
The plugin will try to send the query for up to 30 seconds. This is done to give CoreDNS enough time
|
||||
to start up. Once a query has been successfully sent *loop* disables itself to prevent a query of
|
||||
death.
|
||||
|
||||
The query sent is `<random number>.<random number>.zone` with type set to HINFO.
|
||||
|
||||
## Syntax
|
||||
|
||||
~~~ txt
|
||||
loop
|
||||
~~~
|
||||
|
||||
## Examples
|
||||
|
||||
Start a server on the default port and load the *loop* and *forward* plugins. The *forward* plugin
|
||||
forwards to it self.
|
||||
|
||||
~~~ txt
|
||||
. {
|
||||
loop
|
||||
forward . 127.0.0.1
|
||||
}
|
||||
~~~
|
||||
|
||||
After CoreDNS has started it stops the process while logging:
|
||||
|
||||
~~~ txt
|
||||
plugin/loop: Seen "HINFO IN 5577006791947779410.8674665223082153551." more than twice, loop detected
|
||||
~~~
|
||||
|
||||
## Limitations
|
||||
|
||||
This plugin only attempts to find simple static forwarding loops at start up time. To detect a loop, all of the following must be true
|
||||
|
||||
* the loop must be present at start up time.
|
||||
* the loop must occur for at least the `HINFO` query type.
|
|
@ -1,10 +1,10 @@
|
|||
+++
|
||||
title = "metadata"
|
||||
description = "*metadata* enable a meta data collector."
|
||||
weight = 20
|
||||
weight = 21
|
||||
tags = [ "plugin", "metadata" ]
|
||||
categories = [ "plugin" ]
|
||||
date = "2018-07-11T10:14:28.436996"
|
||||
date = "2018-08-28T06:15:01.557285"
|
||||
+++
|
||||
|
||||
## Description
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
+++
|
||||
title = "prometheus"
|
||||
description = "*prometheus* enables [Prometheus](https://prometheus.io/) metrics."
|
||||
weight = 21
|
||||
weight = 22
|
||||
tags = [ "plugin", "metrics" ]
|
||||
categories = [ "plugin" ]
|
||||
date = "2018-07-11T10:14:28.437584"
|
||||
date = "2018-08-28T06:15:01.557531"
|
||||
+++
|
||||
|
||||
## Description
|
||||
|
@ -63,7 +63,7 @@ Use an alternative address:
|
|||
}
|
||||
~~~
|
||||
|
||||
Or via an enviroment variable (this is supported throughout the Corefile): `export PORT=9253`, and
|
||||
Or via an environment variable (this is supported throughout the Corefile): `export PORT=9253`, and
|
||||
then:
|
||||
|
||||
~~~ corefile
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
+++
|
||||
title = "nsid"
|
||||
description = "*nsid* adds an identifier of this server to each reply."
|
||||
weight = 22
|
||||
weight = 23
|
||||
tags = [ "plugin", "nsid" ]
|
||||
categories = [ "plugin" ]
|
||||
date = "2018-07-11T10:14:28.438164"
|
||||
date = "2018-08-28T06:15:01.557802"
|
||||
+++
|
||||
|
||||
## Description
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
+++
|
||||
title = "pprof"
|
||||
description = "*pprof* publishes runtime profiling data at endpoints under `/debug/pprof`."
|
||||
weight = 23
|
||||
weight = 24
|
||||
tags = [ "plugin", "pprof" ]
|
||||
categories = [ "plugin" ]
|
||||
date = "2018-07-11T10:14:28.438769"
|
||||
date = "2018-08-28T06:15:01.558073"
|
||||
+++
|
||||
|
||||
## Description
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
+++
|
||||
title = "proxy"
|
||||
description = "*proxy* facilitates both a basic reverse proxy and a robust load balancer."
|
||||
weight = 24
|
||||
weight = 25
|
||||
tags = [ "plugin", "proxy" ]
|
||||
categories = [ "plugin" ]
|
||||
date = "2018-07-11T10:14:28.439352"
|
||||
date = "2018-08-28T06:15:01.558378"
|
||||
+++
|
||||
|
||||
## Description
|
||||
|
@ -102,7 +102,7 @@ If monitoring is enabled (via the *prometheus* directive) then the following met
|
|||
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.
|
||||
request (and metric). See the documentation in the metrics plugin.
|
||||
|
||||
## Examples
|
||||
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
+++
|
||||
title = "reload"
|
||||
description = "*reload* allows automatic reload of a changed Corefile."
|
||||
weight = 25
|
||||
weight = 26
|
||||
tags = [ "plugin", "reload" ]
|
||||
categories = [ "plugin" ]
|
||||
date = "2018-07-11T10:14:28.439963"
|
||||
date = "2018-08-28T06:15:01.558628"
|
||||
+++
|
||||
|
||||
## Description
|
||||
|
@ -87,7 +87,7 @@ is already listening on that port. The process reloads and performs the followin
|
|||
3. fail to start a new listener on 443
|
||||
4. fail loading the new Corefile, abort and keep using the old process
|
||||
|
||||
After the aborted attempt to reload we are left with the old proceses running, but the listener is
|
||||
After the aborted attempt to reload we are left with the old processes running, but the listener is
|
||||
closed in step 1; so the health endpoint is broken. The same can hopen in the prometheus metrics plugin.
|
||||
|
||||
In general be careful with assigning new port and expecting reload to work fully.
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
+++
|
||||
title = "rewrite"
|
||||
description = "*rewrite* performs internal message rewriting."
|
||||
weight = 26
|
||||
weight = 27
|
||||
tags = [ "plugin", "rewrite" ]
|
||||
categories = [ "plugin" ]
|
||||
date = "2018-07-11T10:14:28.440802"
|
||||
date = "2018-08-28T06:15:01.558999"
|
||||
+++
|
||||
|
||||
## Description
|
||||
|
@ -24,7 +24,8 @@ rewrite [continue|stop] FIELD FROM TO
|
|||
* `type` - the type field of the request will be rewritten. FROM/TO must be a DNS record type (`A`, `MX`, etc);
|
||||
e.g., to rewrite ANY queries to HINFO, use `rewrite type ANY HINFO`.
|
||||
* `class` - the class of the message will be rewritten. FROM/TO must be a DNS class type (`IN`, `CH`, or `HS`) e.g., to rewrite CH queries to IN use `rewrite class CH IN`.
|
||||
* `name` - the query name in the _request_ is rewritten; by default this is a full match of the name, e.g., `rewrite name miek.nl example.org`. Other match types are supported, see the **Name Field Rewrites** section below.
|
||||
* `name` - the query name in the _request_ is rewritten; by default this is a full match of the
|
||||
name, e.g., `rewrite name example.net example.org`. Other match types are supported, see the **Name Field Rewrites** section below.
|
||||
* `answer name` - the query name in the _response_ is rewritten. This option has special restrictions and requirements, in particular it must always combined with a `name` rewrite. See below in the **Response Rewrites** section.
|
||||
* `edns0` - an EDNS0 option can be appended to the request as described below in the **EDNS0 Options** section.
|
||||
|
||||
|
@ -41,7 +42,8 @@ for not specifying this rule processing mode is `stop`
|
|||
|
||||
The `rewrite` plugin offers the ability to match on the name in the question section of
|
||||
a DNS request. The match could be exact, substring, or based on a prefix, suffix, or regular
|
||||
expression.
|
||||
expression. If the newly used name is not a legal domain name the plugin returns an error to the
|
||||
client.
|
||||
|
||||
The syntax for the name re-writing is as follows:
|
||||
|
||||
|
@ -222,6 +224,12 @@ Examples:
|
|||
rewrite edns0 local set 0xffee {client_ip}
|
||||
~~~
|
||||
|
||||
The following example rewrites the `schmoogle.com` suffix to `google.com`.
|
||||
|
||||
~~~
|
||||
rewrite name suffix .schmoogle.com. .google.com.
|
||||
~~~
|
||||
|
||||
The following example uses metadata and an imaginary "some-plugin" that would provide "some-label" as metadata information.
|
||||
|
||||
~~~
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
+++
|
||||
title = "root"
|
||||
description = "*root* simply specifies the root of where to find (zone) files."
|
||||
weight = 27
|
||||
weight = 28
|
||||
tags = [ "plugin", "root" ]
|
||||
categories = [ "plugin" ]
|
||||
date = "2018-07-11T10:14:28.441359"
|
||||
date = "2018-08-28T06:15:01.559216"
|
||||
+++
|
||||
|
||||
## Description
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
+++
|
||||
title = "route53"
|
||||
description = "*route53* enables serving zone data from AWS route53."
|
||||
weight = 28
|
||||
weight = 29
|
||||
tags = [ "plugin", "route53" ]
|
||||
categories = [ "plugin" ]
|
||||
date = "2018-07-11T10:14:28.441925"
|
||||
date = "2018-08-28T06:15:01.559424"
|
||||
+++
|
||||
|
||||
## Description
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
+++
|
||||
title = "secondary"
|
||||
description = "*secondary* enables serving a zone retrieved from a primary server."
|
||||
weight = 29
|
||||
weight = 30
|
||||
tags = [ "plugin", "secondary" ]
|
||||
categories = [ "plugin" ]
|
||||
date = "2018-07-11T10:14:28.442483"
|
||||
date = "2018-08-28T06:15:01.559667"
|
||||
+++
|
||||
|
||||
## Description
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
+++
|
||||
title = "template"
|
||||
description = "*template* allows for dynamic responses based on the incoming query."
|
||||
weight = 30
|
||||
weight = 31
|
||||
tags = [ "plugin", "template" ]
|
||||
categories = [ "plugin" ]
|
||||
date = "2018-07-11T10:14:28.443265"
|
||||
date = "2018-08-28T06:15:01.560029"
|
||||
+++
|
||||
|
||||
## Description
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
+++
|
||||
title = "tls"
|
||||
description = "*tls* allows you to configure the server certificates for the TLS and gRPC servers."
|
||||
weight = 31
|
||||
weight = 32
|
||||
tags = [ "plugin", "tls" ]
|
||||
categories = [ "plugin" ]
|
||||
date = "2018-07-11T10:14:28.443905"
|
||||
date = "2018-08-28T06:15:01.560282"
|
||||
+++
|
||||
|
||||
## Description
|
||||
|
|
|
@ -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 = 33
|
||||
tags = [ "plugin", "trace" ]
|
||||
categories = [ "plugin" ]
|
||||
date = "2018-07-11T10:14:28.444491"
|
||||
date = "2018-08-28T06:15:01.560516"
|
||||
+++
|
||||
|
||||
## Description
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
+++
|
||||
title = "whoami"
|
||||
description = "*whoami* returns your resolver's local IP address, port and transport."
|
||||
weight = 33
|
||||
weight = 34
|
||||
tags = [ "plugin", "whoami" ]
|
||||
categories = [ "plugin" ]
|
||||
date = "2018-07-11T10:14:28.445039"
|
||||
date = "2018-08-28T06:15:01.560693"
|
||||
+++
|
||||
|
||||
## Description
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
[release]
|
||||
version = "1.2.0"
|
||||
version = "1.2.1"
|
||||
|
|
Loading…
Reference in New Issue