Doc: regenerate the man-pages (#2739)
A 'make -f Makefile.doc clean all'. Signed-off-by: Miek Gieben <miek@miek.nl>
This commit is contained in:
parent
b75478e73b
commit
c5bad4f81d
40 changed files with 460 additions and 204 deletions
|
@ -1,7 +1,7 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "COREDNS\-AUTO" "7" "February 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.TH "COREDNS\-AUTO" "7" "March 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fIauto\fR \- enables serving zone data from an RFC 1035\-style master file, which is automatically picked up from disk\.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "COREDNS\-AUTOPATH" "7" "December 2018" "CoreDNS" "CoreDNS plugins"
|
||||
.TH "COREDNS\-AUTOPATH" "7" "March 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fIautopath\fR \- allows for server\-side search path completion\.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "COREDNS\-BIND" "7" "October 2018" "CoreDNS" "CoreDNS plugins"
|
||||
.TH "COREDNS\-BIND" "7" "March 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fIbind\fR \- overrides the host to which the server should bind\.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "COREDNS\-CACHE" "7" "February 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.TH "COREDNS\-CACHE" "7" "March 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fIcache\fR \- enables a frontend cache\.
|
||||
|
@ -112,7 +112,7 @@ Proxy to Google Public DNS and only cache responses for example\.org (or below)\
|
|||
.nf
|
||||
|
||||
\&\. {
|
||||
proxy \. 8\.8\.8\.8:53
|
||||
forward \. 8\.8\.8\.8:53
|
||||
cache example\.org
|
||||
}
|
||||
.
|
||||
|
@ -121,4 +121,20 @@ Proxy to Google Public DNS and only cache responses for example\.org (or below)\
|
|||
.IP "" 0
|
||||
.
|
||||
.P
|
||||
Enable caching for all zones, keep a positive cache size of 5000 and a negative cache size of 2500: ~~~ corefile \. { cache { success 5000 denial 2500 } } ~~~
|
||||
Enable caching for all zones, keep a positive cache size of 5000 and a negative cache size of 2500:
|
||||
.
|
||||
.IP "" 4
|
||||
.
|
||||
.nf
|
||||
|
||||
\. {
|
||||
cache {
|
||||
success 5000
|
||||
denial 2500
|
||||
}
|
||||
}
|
||||
.
|
||||
.fi
|
||||
.
|
||||
.IP "" 0
|
||||
|
||||
|
|
61
man/coredns-cancel.7
Normal file
61
man/coredns-cancel.7
Normal file
|
@ -0,0 +1,61 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "COREDNS\-CANCEL" "7" "March 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fIcancel\fR \- a plugin that cancels a request\'s context after 5001 milliseconds\.
|
||||
.
|
||||
.SH "DESCRIPTION"
|
||||
The \fIcancel\fR plugin creates a canceling context for each request\. It adds a timeout that gets triggered after 5001 milliseconds\.
|
||||
.
|
||||
.P
|
||||
The 5001 number is chosen because the default timeout for DNS clients is 5 seconds, after that they give up\.
|
||||
.
|
||||
.P
|
||||
A plugin interested in the cancellation status should call \fBplugin\.Done()\fR on the context\. If the context was canceled due to a timeout the plugin should not write anything back to the client and return a value indicating CoreDNS should not either; a zero return value should suffice for that\.
|
||||
.
|
||||
.IP "" 4
|
||||
.
|
||||
.nf
|
||||
|
||||
cancel [TIMEOUT]
|
||||
.
|
||||
.fi
|
||||
.
|
||||
.IP "" 0
|
||||
.
|
||||
.IP "\(bu" 4
|
||||
\fBTIMEOUT\fR allows setting a custom timeout\. The default timeout is 5001 milliseconds (\fB5001 ms\fR)
|
||||
.
|
||||
.IP "" 0
|
||||
.
|
||||
.SH "EXAMPLES"
|
||||
.
|
||||
.nf
|
||||
|
||||
\&\. {
|
||||
cancel
|
||||
whoami
|
||||
}
|
||||
.
|
||||
.fi
|
||||
.
|
||||
.P
|
||||
Or with a custom timeout:
|
||||
.
|
||||
.IP "" 4
|
||||
.
|
||||
.nf
|
||||
|
||||
\&\. {
|
||||
cancel 1s
|
||||
whoami
|
||||
}
|
||||
.
|
||||
.fi
|
||||
.
|
||||
.IP "" 0
|
||||
.
|
||||
.SH "ALSO SEE"
|
||||
The Go documentation for the context package\.
|
|
@ -1,7 +1,7 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "COREDNS\-CHAOS" "7" "October 2018" "CoreDNS" "CoreDNS plugins"
|
||||
.TH "COREDNS\-CHAOS" "7" "March 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fIchaos\fR \- allows for responding to TXT queries in the CH class\.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "COREDNS\-DEBUG" "7" "October 2018" "CoreDNS" "CoreDNS plugins"
|
||||
.TH "COREDNS\-DEBUG" "7" "March 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fIdebug\fR \- disables the automatic recovery upon a crash so that you\'ll get a nice stack trace\.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "COREDNS\-DNSSEC" "7" "December 2018" "CoreDNS" "CoreDNS plugins"
|
||||
.TH "COREDNS\-DNSSEC" "7" "March 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fIdnssec\fR \- enable on\-the\-fly DNSSEC signing of served data\.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "COREDNS\-DNSTAP" "7" "October 2018" "CoreDNS" "CoreDNS plugins"
|
||||
.TH "COREDNS\-DNSTAP" "7" "March 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fIdnstap\fR \- enable logging to dnstap\.
|
||||
|
|
|
@ -38,8 +38,8 @@ erratic {
|
|||
.P
|
||||
In case of a zone transfer and truncate the final SOA record \fIisn\'t\fR added to the response\.
|
||||
.
|
||||
.SH "HEALTH"
|
||||
This plugin implements dynamic health checking\. For every dropped query it turns unhealthy\.
|
||||
.SH "READY"
|
||||
This plugin reports readiness to the ready plugin\.
|
||||
.
|
||||
.SH "EXAMPLES"
|
||||
.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "COREDNS\-ERRORS" "7" "December 2018" "CoreDNS" "CoreDNS plugins"
|
||||
.TH "COREDNS\-ERRORS" "7" "March 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fIerrors\fR \- enable error logging\.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "COREDNS\-ETCD" "7" "February 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.TH "COREDNS\-ETCD" "7" "March 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fIetcd\fR \- enables reading zone data from an etcd version 3 instance\.
|
||||
|
@ -10,7 +10,7 @@
|
|||
The data in etcd instance has to be encoded as a message \fIhttps://github\.com/skynetservices/skydns/blob/2fcff74cdc9f9a7dd64189a447ef27ac354b725f/msg/service\.go#L26\fR like SkyDNS \fIhttps://github\.com/skynetservices/skydns\fR\. It should also work just like SkyDNS\.
|
||||
.
|
||||
.P
|
||||
The etcd plugin makes extensive use of the proxy plugin to forward and query other servers in the network\.
|
||||
The etcd plugin makes extensive use of the forward plugin to forward and query other servers in the network\.
|
||||
.
|
||||
.SH "SYNTAX"
|
||||
.
|
||||
|
@ -61,7 +61,7 @@ etcd [ZONES\.\.\.] {
|
|||
\fBcredentials\fR is used to set the \fBUSERNAME\fR and \fBPASSWORD\fR for accessing the etcd cluster\.
|
||||
.
|
||||
.IP "\(bu" 4
|
||||
\fBupstream\fR upstream resolvers to be used resolve external names found in etcd (think CNAMEs) pointing to external names\. If you want CoreDNS to act as a proxy for clients, you\'ll need to add the proxy plugin\. If no \fBADDRESS\fR is given, CoreDNS will resolve CNAMEs against itself\. \fBADDRESS\fR can be an IP address, and IP:port or a string pointing to a file that is structured as /etc/resolv\.conf\.
|
||||
\fBupstream\fR upstream resolvers to be used resolve external names found in etcd (think CNAMEs) pointing to external names\. If you want CoreDNS to act as a proxy for clients, you\'ll need to add the \fIforward\fR plugin\. If no \fBADDRESS\fR is given, CoreDNS will resolve CNAMEs against itself\. \fBADDRESS\fR can be an IP address, and IP:port or a string pointing to a file that is structured as /etc/resolv\.conf\.
|
||||
.
|
||||
.IP "\(bu" 4
|
||||
\fBtls\fR followed by:
|
||||
|
@ -114,7 +114,7 @@ This is the default SkyDNS setup, with everything specified in full:
|
|||
prometheus
|
||||
cache 160 skydns\.local
|
||||
loadbalance
|
||||
proxy \. 8\.8\.8\.8:53 8\.8\.4\.4:53
|
||||
forward \. 8\.8\.8\.8:53 8\.8\.4\.4:53
|
||||
}
|
||||
.
|
||||
.fi
|
||||
|
@ -134,7 +134,7 @@ Or a setup where we use \fB/etc/resolv\.conf\fR as the basis for the proxy and t
|
|||
upstream
|
||||
}
|
||||
cache 160 skydns\.local
|
||||
proxy \. /etc/resolv\.conf
|
||||
forward \. /etc/resolv\.conf
|
||||
}
|
||||
.
|
||||
.fi
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "COREDNS\-FEDERATION" "7" "February 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.TH "COREDNS\-FEDERATION" "7" "March 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fIfederation\fR \- enables federated queries to be resolved via the kubernetes plugin\.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "COREDNS\-FILE" "7" "February 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.TH "COREDNS\-FILE" "7" "March 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fIfile\fR \- enables serving zone data from an RFC 1035\-style master file\.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "COREDNS\-FORWARD" "7" "February 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.TH "COREDNS\-FORWARD" "7" "March 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fIforward\fR \- facilitates proxying DNS messages to upstream resolvers\.
|
||||
|
|
207
man/coredns-grpc.7
Normal file
207
man/coredns-grpc.7
Normal file
|
@ -0,0 +1,207 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "COREDNS\-GRPC" "7" "March 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fIgrpc\fR \- facilitates proxying DNS messages to upstream resolvers via gRPC protocol\.
|
||||
.
|
||||
.SH "DESCRIPTION"
|
||||
The \fIgrpc\fR plugin supports gRPC and TLS\.
|
||||
.
|
||||
.P
|
||||
This plugin can only be used once per Server Block\.
|
||||
.
|
||||
.SH "SYNTAX"
|
||||
In its most basic form:
|
||||
.
|
||||
.IP "" 4
|
||||
.
|
||||
.nf
|
||||
|
||||
grpc FROM TO\.\.\.
|
||||
.
|
||||
.fi
|
||||
.
|
||||
.IP "" 0
|
||||
.
|
||||
.IP "\(bu" 4
|
||||
\fBFROM\fR is the base domain to match for the request to be proxied\.
|
||||
.
|
||||
.IP "\(bu" 4
|
||||
\fBTO\.\.\.\fR are the destination endpoints to proxy to\. The number of upstreams is limited to 15\.
|
||||
.
|
||||
.IP "" 0
|
||||
.
|
||||
.P
|
||||
Multiple upstreams are randomized (see \fBpolicy\fR) on first use\. When a proxy returns an error the next upstream in the list is tried\.
|
||||
.
|
||||
.P
|
||||
Extra knobs are available with an expanded syntax:
|
||||
.
|
||||
.IP "" 4
|
||||
.
|
||||
.nf
|
||||
|
||||
grpc FROM TO\.\.\. {
|
||||
except IGNORED_NAMES\.\.\.
|
||||
tls CERT KEY CA
|
||||
tls_servername NAME
|
||||
policy random|round_robin|sequential
|
||||
}
|
||||
.
|
||||
.fi
|
||||
.
|
||||
.IP "" 0
|
||||
.
|
||||
.IP "\(bu" 4
|
||||
\fBFROM\fR and \fBTO\.\.\.\fR as above\.
|
||||
.
|
||||
.IP "\(bu" 4
|
||||
\fBIGNORED_NAMES\fR in \fBexcept\fR is a space\-separated list of domains to exclude from proxying\. Requests that match none of these names will be passed through\.
|
||||
.
|
||||
.IP "\(bu" 4
|
||||
\fBtls\fR \fBCERT\fR \fBKEY\fR \fBCA\fR define the TLS properties for TLS connection\. From 0 to 3 arguments can be provided with the meaning as described below
|
||||
.
|
||||
.IP "\(bu" 4
|
||||
\fBtls\fR \- no client authentication is used, and the system CAs are used to verify the server certificate
|
||||
.
|
||||
.IP "\(bu" 4
|
||||
\fBtls\fR \fBCA\fR \- no client authentication is used, and the file CA is used to verify the server certificate
|
||||
.
|
||||
.IP "\(bu" 4
|
||||
\fBtls\fR \fBCERT\fR \fBKEY\fR \- client authentication is used with the specified cert/key pair\. The server certificate is verified with the system CAs
|
||||
.
|
||||
.IP "\(bu" 4
|
||||
\fBtls\fR \fBCERT\fR \fBKEY\fR \fBCA\fR \- client authentication is used with the specified cert/key pair\. The server certificate is verified using the specified CA file
|
||||
.
|
||||
.IP "" 0
|
||||
|
||||
.
|
||||
.IP "\(bu" 4
|
||||
\fBtls_servername\fR \fBNAME\fR allows you to set a server name in the TLS configuration; for instance 9\.9\.9\.9 needs this to be set to \fBdns\.quad9\.net\fR\. Multiple upstreams are still allowed in this scenario, but they have to use the same \fBtls_servername\fR\. E\.g\. mixing 9\.9\.9\.9 (QuadDNS) with 1\.1\.1\.1 (Cloudflare) will not work\.
|
||||
.
|
||||
.IP "\(bu" 4
|
||||
\fBpolicy\fR specifies the policy to use for selecting upstream servers\. The default is \fBrandom\fR\.
|
||||
.
|
||||
.IP "" 0
|
||||
.
|
||||
.P
|
||||
Also note the TLS config is "global" for the whole grpc proxy if you need a different \fBtls\-name\fR for different upstreams you\'re out of luck\.
|
||||
.
|
||||
.SH "METRICS"
|
||||
If monitoring is enabled (via the \fIprometheus\fR directive) then the following metric are exported:
|
||||
.
|
||||
.IP "\(bu" 4
|
||||
\fBcoredns_grpc_request_duration_seconds{to}\fR \- duration per upstream interaction\.
|
||||
.
|
||||
.IP "\(bu" 4
|
||||
\fBcoredns_grpc_request_count_total{to}\fR \- query count per upstream\.
|
||||
.
|
||||
.IP "\(bu" 4
|
||||
\fBcoredns_grpc_response_rcode_total{to, rcode}\fR \- count of RCODEs per upstream\. and we are randomly (this always uses the \fBrandom\fR policy) spraying to an upstream\.
|
||||
.
|
||||
.IP "" 0
|
||||
.
|
||||
.SH "EXAMPLES"
|
||||
Proxy all requests within \fBexample\.org\.\fR to a nameserver running on a different port:
|
||||
.
|
||||
.IP "" 4
|
||||
.
|
||||
.nf
|
||||
|
||||
example\.org {
|
||||
grpc \. 127\.0\.0\.1:9005
|
||||
}
|
||||
.
|
||||
.fi
|
||||
.
|
||||
.IP "" 0
|
||||
.
|
||||
.P
|
||||
Load balance all requests between three resolvers, one of which has a IPv6 address\.
|
||||
.
|
||||
.IP "" 4
|
||||
.
|
||||
.nf
|
||||
|
||||
\&\. {
|
||||
grpc \. 10\.0\.0\.10:53 10\.0\.0\.11:1053 [2003::1]:53
|
||||
}
|
||||
.
|
||||
.fi
|
||||
.
|
||||
.IP "" 0
|
||||
.
|
||||
.P
|
||||
Forward everything except requests to \fBexample\.org\fR
|
||||
.
|
||||
.IP "" 4
|
||||
.
|
||||
.nf
|
||||
|
||||
\&\. {
|
||||
grpc \. 10\.0\.0\.10:1234 {
|
||||
except example\.org
|
||||
}
|
||||
}
|
||||
.
|
||||
.fi
|
||||
.
|
||||
.IP "" 0
|
||||
.
|
||||
.P
|
||||
Proxy everything except \fBexample\.org\fR using the host\'s \fBresolv\.conf\fR\'s nameservers:
|
||||
.
|
||||
.IP "" 4
|
||||
.
|
||||
.nf
|
||||
|
||||
\&\. {
|
||||
grpc \. /etc/resolv\.conf {
|
||||
except example\.org
|
||||
}
|
||||
}
|
||||
.
|
||||
.fi
|
||||
.
|
||||
.IP "" 0
|
||||
.
|
||||
.P
|
||||
Proxy all requests to 9\.9\.9\.9 using the TLS protocol, and cache every answer for up to 30 seconds\. Note the \fBtls_servername\fR is mandatory if you want a working setup, as 9\.9\.9\.9 can\'t be used in the TLS negotiation\.
|
||||
.
|
||||
.IP "" 4
|
||||
.
|
||||
.nf
|
||||
|
||||
\&\. {
|
||||
grpc \. 9\.9\.9\.9 {
|
||||
tls_servername dns\.quad9\.net
|
||||
}
|
||||
cache 30
|
||||
}
|
||||
.
|
||||
.fi
|
||||
.
|
||||
.IP "" 0
|
||||
.
|
||||
.P
|
||||
Or with multiple upstreams from the same provider
|
||||
.
|
||||
.IP "" 4
|
||||
.
|
||||
.nf
|
||||
|
||||
\&\. {
|
||||
grpc \. 1\.1\.1\.1 1\.0\.0\.1 {
|
||||
tls_servername cloudflare\-dns\.com
|
||||
}
|
||||
cache 30
|
||||
}
|
||||
.
|
||||
.fi
|
||||
.
|
||||
.IP "" 0
|
||||
.
|
||||
.SH "BUGS"
|
||||
The TLS config is global for the whole grpc proxy if you need a different \fBtls_servername\fR for different upstreams you\'re out of luck\.
|
|
@ -1,13 +1,13 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "COREDNS\-HEALTH" "7" "February 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.TH "COREDNS\-HEALTH" "7" "March 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fIhealth\fR \- enables a health check endpoint\.
|
||||
.
|
||||
.SH "DESCRIPTION"
|
||||
By enabling \fIhealth\fR any plugin that implements health\.Healther interface \fIhttps://godoc\.org/github\.com/coredns/coredns/plugin/health#Healther\fR will be queried for it\'s health\. The combined health is exported, by default, on port 8080/health \.
|
||||
Enabled process wide health endpoint\. When CoreDNS is up and running this returns a 200 OK http status code\. The health is exported, by default, on port 8080/health \.
|
||||
.
|
||||
.SH "SYNTAX"
|
||||
.
|
||||
|
@ -18,10 +18,10 @@ health [ADDRESS]
|
|||
.fi
|
||||
.
|
||||
.P
|
||||
Optionally takes an address; the default is \fB:8080\fR\. The health path is fixed to \fB/health\fR\. The health endpoint returns a 200 response code and the word "OK" when this server is healthy\. It returns a 503\. \fIhealth\fR periodically (1s) polls plugins that exports health information\. If any of the plugins signals that it is unhealthy, the server will go unhealthy too\. Each plugin that supports health checks has a section "Health" in their README\.
|
||||
Optionally takes an address; the default is \fB:8080\fR\. The health path is fixed to \fB/health\fR\. The health endpoint returns a 200 response code and the word "OK" when this server is healthy\.
|
||||
.
|
||||
.P
|
||||
More options can be set with this extended syntax:
|
||||
An extra option can be set with this extended syntax:
|
||||
.
|
||||
.IP "" 4
|
||||
.
|
||||
|
@ -41,7 +41,7 @@ Where \fBlameduck\fR will make the process unhealthy then \fIwait\fR for \fBDURA
|
|||
.IP "" 0
|
||||
.
|
||||
.P
|
||||
If you have multiple Server Blocks and need to export health for each of the plugins, you must run health endpoints on different ports:
|
||||
If you have multiple Server Blocks, \fIhealth\fR should only be enabled in one of them (as it is process wide)\. If you really need multiple endpoints, you must run health endpoints on different ports:
|
||||
.
|
||||
.IP "" 4
|
||||
.
|
||||
|
@ -61,26 +61,6 @@ net {
|
|||
.
|
||||
.IP "" 0
|
||||
.
|
||||
.P
|
||||
Note that if you format this in one server block you will get an error on startup, that the second server can\'t setup the health plugin (on the same port)\.
|
||||
.
|
||||
.IP "" 4
|
||||
.
|
||||
.nf
|
||||
|
||||
com net {
|
||||
whoami
|
||||
erratic
|
||||
health :8080
|
||||
}
|
||||
.
|
||||
.fi
|
||||
.
|
||||
.IP "" 0
|
||||
.
|
||||
.SH "PLUGINS"
|
||||
Any plugin that implements the Healther interface will be used to report health\.
|
||||
.
|
||||
.SH "METRICS"
|
||||
If monitoring is enabled (via the \fIprometheus\fR directive) then the following metric is exported:
|
||||
.
|
||||
|
@ -125,4 +105,4 @@ Set a lameduck duration of 1 second:
|
|||
.IP "" 0
|
||||
.
|
||||
.SH "BUGS"
|
||||
When reloading, the Health handler is stopped before the new server instance is started\. If that new server fails to start, then the initial server instance is still available and DNS queries still served, but Health handler stays down\. Health will not reply HTTP request until a successful reload or a complete restart of CoreDNS\.
|
||||
When reloading, the health handler is stopped before the new server instance is started\. If that new server fails to start, then the initial server instance is still available and DNS queries still served, but health handler stays down\. Health will not reply HTTP request until a successful reload or a complete restart of CoreDNS\.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "COREDNS\-HOSTS" "7" "February 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.TH "COREDNS\-HOSTS" "7" "March 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fIhosts\fR \- enables serving zone data from a \fB/etc/hosts\fR style file\.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "COREDNS\-IMPORT" "7" "February 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.TH "COREDNS\-IMPORT" "7" "March 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fIimport\fR \- include files or reference snippets from a Corefile\.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "COREDNS\-K8S_EXTERNAL" "7" "December 2018" "CoreDNS" "CoreDNS plugins"
|
||||
.TH "COREDNS\-K8S_EXTERNAL" "7" "March 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fIk8s_external\fR \- resolve load balancer and external IPs from outside kubernetes clusters\.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "COREDNS\-KUBERNETES" "7" "February 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.TH "COREDNS\-KUBERNETES" "7" "March 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fIkubernetes\fR \- enables the reading zone data from a Kubernetes cluster\.
|
||||
|
@ -13,7 +13,7 @@ This plugin implements the Kubernetes DNS\-Based Service Discovery Specification
|
|||
CoreDNS running the kubernetes plugin can be used as a replacement for kube\-dns in a kubernetes cluster\. See the deployment \fIhttps://github\.com/coredns/deployment\fR repository for details on how to deploy CoreDNS in Kubernetes \fIhttps://github\.com/coredns/deployment/tree/master/kubernetes\fR\.
|
||||
.
|
||||
.P
|
||||
stubDomains and upstreamNameservers \fIhttps://kubernetes\.io/blog/2017/04/configuring\-private\-dns\-zones\-upstream\-nameservers\-kubernetes/\fR are implemented via the \fIproxy\fR plugin and kubernetes \fIupstream\fR\. See example below\.
|
||||
stubDomains and upstreamNameservers \fIhttps://kubernetes\.io/blog/2017/04/configuring\-private\-dns\-zones\-upstream\-nameservers\-kubernetes/\fR are implemented via the \fIforward\fR plugin and kubernetes \fIupstream\fR\. See the examples below\.
|
||||
.
|
||||
.P
|
||||
This plugin can only be used once per Server Block\.
|
||||
|
@ -70,6 +70,9 @@ kubernetes [ZONES\.\.\.] {
|
|||
\fBnamespaces\fR \fBNAMESPACE [NAMESPACE\.\.\.]\fR only exposes the k8s namespaces listed\. If this option is omitted all namespaces are exposed
|
||||
.
|
||||
.IP "\(bu" 4
|
||||
\fBnamespace_labels\fR \fBEXPRESSION\fR only expose the records for Kubernetes namespaces that match this label selector\. The label selector syntax is described in the Kubernetes User Guide \- Labels \fIhttp://kubernetes\.io/docs/user\-guide/labels/\fR\. An example that only exposes namespaces labeled as "istio\-injection=enabled", would use: \fBlabels istio\-injection=enabled\fR\.
|
||||
.
|
||||
.IP "\(bu" 4
|
||||
\fBlabels\fR \fBEXPRESSION\fR only exposes the records for Kubernetes objects that match this label selector\. The label selector syntax is described in the Kubernetes User Guide \- Labels \fIhttps://kubernetes\.io/docs/user\-guide/labels/\fR\. An example that only exposes objects labeled as "application=nginx" in the "staging" or "qa" environments, would use: \fBlabels environment in (staging, qa),application=nginx\fR\.
|
||||
.
|
||||
.IP "\(bu" 4
|
||||
|
@ -110,8 +113,8 @@ kubernetes [ZONES\.\.\.] {
|
|||
.
|
||||
.IP "" 0
|
||||
.
|
||||
.SH "HEALTH"
|
||||
This plugin implements dynamic health checking\. Currently this is limited to reporting healthy when the API has synced\.
|
||||
.SH "READY"
|
||||
This plugin reports readiness to the ready plugin\. This will happen after it has synced to the Kubernetes API\.
|
||||
.
|
||||
.SH "EXAMPLES"
|
||||
Handle all queries in the \fBcluster\.local\fR zone\. Connect to Kubernetes in\-cluster\. Also handle all \fBin\-addr\.arpa\fR \fBPTR\fR requests for \fB10\.0\.0\.0/17\fR \. Verify the existence of pods when answering pod requests\. Resolve upstream records against \fB10\.102\.3\.10\fR\. Note we show the entire server block here:
|
||||
|
@ -163,18 +166,23 @@ kubernetes cluster\.local {
|
|||
.IP "" 0
|
||||
.
|
||||
.SH "STUBDOMAINS AND UPSTREAMNAMESERVERS"
|
||||
Here we use the \fIproxy\fR plugin to implement a stubDomain that forwards \fBexample\.local\fR to the nameserver \fB10\.100\.0\.10:53\fR\. The \fIupstream\fR option in the \fIkubernetes\fR plugin means that ExternalName services (CNAMEs) will be resolved using the respective proxy\. Also configured is an upstreamNameserver \fB8\.8\.8\.8:53\fR that will be used for resolving names that do not fall in \fBcluster\.local\fR or \fBexample\.local\fR\.
|
||||
Here we use the \fIforward\fR plugin to implement a stubDomain that forwards \fBexample\.local\fR to the nameserver \fB10\.100\.0\.10:53\fR\. The \fIupstream\fR option in the \fIkubernetes\fR plugin means that ExternalName services (CNAMEs) will be resolved using the respective proxy\. Also configured is an upstreamNameserver \fB8\.8\.8\.8:53\fR that will be used for resolving names that do not fall in \fBcluster\.local\fR or \fBexample\.local\fR\.
|
||||
.
|
||||
.IP "" 4
|
||||
.
|
||||
.nf
|
||||
|
||||
\&\.:53 {
|
||||
cluster\.local:53 {
|
||||
kubernetes cluster\.local {
|
||||
upstream
|
||||
}
|
||||
proxy example\.local 10\.100\.0\.10:53
|
||||
proxy \. 8\.8\.8\.8:53
|
||||
}
|
||||
example\.local {
|
||||
forward \. 10\.100\.0\.10:53
|
||||
}
|
||||
|
||||
\. {
|
||||
forward \. 8\.8\.8\.8:53
|
||||
}
|
||||
.
|
||||
.fi
|
||||
|
@ -188,10 +196,10 @@ The configuration above represents the following Kube\-DNS stubDomains and upstr
|
|||
.
|
||||
.nf
|
||||
|
||||
stubDomains: |
|
||||
{“example\.local”: [“10\.100\.0\.10:53”]}
|
||||
upstreamNameservers: |
|
||||
[“8\.8\.8\.8:53”]
|
||||
stubDomains: |
|
||||
{“example\.local”: [“10\.100\.0\.10:53”]}
|
||||
upstreamNameservers: |
|
||||
[“8\.8\.8\.8:53”]
|
||||
.
|
||||
.fi
|
||||
.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "COREDNS\-LOADBALANCE" "7" "October 2018" "CoreDNS" "CoreDNS plugins"
|
||||
.TH "COREDNS\-LOADBALANCE" "7" "March 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fIloadbalance\fR \- randomize the order of A, AAAA and MX records\.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "COREDNS\-LOG" "7" "February 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.TH "COREDNS\-LOG" "7" "March 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fIlog\fR \- enables query logging to standard output\.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "COREDNS\-LOOP" "7" "January 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.TH "COREDNS\-LOOP" "7" "March 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fIloop\fR \- detect simple forwarding loops and halt the server\.
|
||||
|
@ -78,13 +78,13 @@ Less commonly, CoreDNS forwarding to an upstream server that in turn, forwards r
|
|||
.IP "" 0
|
||||
.
|
||||
.P
|
||||
To troubleshoot this problem, look in your Corefile for any \fBproxy\fR or \fBforward\fR to the zone in which the loop was detected\. Make sure that they are not forwarding to a local address or to another DNS server that is forwarding requests back to CoreDNS\. If \fBproxy\fR or \fBforward\fR are using a file (e\.g\. \fB/etc/resolv\.conf\fR), make sure that file does not contain local addresses\.
|
||||
To troubleshoot this problem, look in your Corefile for any \fBforward\fRs to the zone in which the loop was detected\. Make sure that they are not forwarding to a local address or to another DNS server that is forwarding requests back to CoreDNS\. If \fBforward\fR is using a file (e\.g\. \fB/etc/resolv\.conf\fR), make sure that file does not contain local addresses\.
|
||||
.
|
||||
.SS "TROUBLESHOOTING LOOPS IN KUBERNETES CLUSTERS"
|
||||
When a CoreDNS Pod deployed in Kubernetes detects a loop, the CoreDNS Pod will start to "CrashLoopBackOff"\. This is because Kubernetes will try to restart the Pod every time CoreDNS detects the loop and exits\.
|
||||
.
|
||||
.P
|
||||
A common cause of forwarding loops in Kubernetes clusters is an interaction with a local DNS cache on the host node (e\.g\. \fBsystemd\-resolved\fR)\. For example, in certain configurations \fBsystemd\-resolved\fR will put the loopback address \fB127\.0\.0\.53\fR as a nameserver into \fB/etc/resolv\.conf\fR\. Kubernetes (via \fBkubelet\fR) by default will pass this \fB/etc/resolv\.conf\fR file to all Pods using the \fBdefault\fR dnsPolicy rendering them unable to make DNS lookups (this includes CoreDNS Pods)\. CoreDNS uses this \fB/etc/resolv\.conf\fR as a list of upstreams to proxy/forward requests to\. Since it contains a loopback address, CoreDNS ends up forwarding requests to itself\.
|
||||
A common cause of forwarding loops in Kubernetes clusters is an interaction with a local DNS cache on the host node (e\.g\. \fBsystemd\-resolved\fR)\. For example, in certain configurations \fBsystemd\-resolved\fR will put the loopback address \fB127\.0\.0\.53\fR as a nameserver into \fB/etc/resolv\.conf\fR\. Kubernetes (via \fBkubelet\fR) by default will pass this \fB/etc/resolv\.conf\fR file to all Pods using the \fBdefault\fR dnsPolicy rendering them unable to make DNS lookups (this includes CoreDNS Pods)\. CoreDNS uses this \fB/etc/resolv\.conf\fR as a list of upstreams to forward requests to\. Since it contains a loopback address, CoreDNS ends up forwarding requests to itself\.
|
||||
.
|
||||
.P
|
||||
There are many ways to work around this issue, some are listed here:
|
||||
|
@ -96,7 +96,7 @@ Add the following to \fBkubelet\fR: \fB\-\-resolv\-conf <path\-to\-your\-real\-r
|
|||
Disable the local DNS cache on host nodes, and restore \fB/etc/resolv\.conf\fR to the original\.
|
||||
.
|
||||
.IP "\(bu" 4
|
||||
A quick and dirty fix is to edit your Corefile, replacing \fBproxy \. /etc/resolv\.conf\fR with the ip address of your upstream DNS, for example \fBproxy \. 8\.8\.8\.8\fR\. But this only fixes the issue for CoreDNS, kubelet will continue to forward the invalid \fBresolv\.conf\fR to all \fBdefault\fR dnsPolicy Pods, leaving them unable to resolve DNS\.
|
||||
A quick and dirty fix is to edit your Corefile, replacing \fBforward \. /etc/resolv\.conf\fR with the ip address of your upstream DNS, for example \fBforward \. 8\.8\.8\.8\fR\. But this only fixes the issue for CoreDNS, kubelet will continue to forward the invalid \fBresolv\.conf\fR to all \fBdefault\fR dnsPolicy Pods, leaving them unable to resolve DNS\.
|
||||
.
|
||||
.IP "" 0
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "COREDNS\-METADATA" "7" "December 2018" "CoreDNS" "CoreDNS plugins"
|
||||
.TH "COREDNS\-METADATA" "7" "March 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fImetadata\fR \- enable a meta data collector\.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "COREDNS\-METRICS" "7" "February 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.TH "COREDNS\-METRICS" "7" "March 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fIprometheus\fR \- enables Prometheus \fIhttps://prometheus\.io/\fR metrics\.
|
||||
|
@ -36,6 +36,9 @@ With \fIprometheus\fR you export metrics from CoreDNS and any plugin that has th
|
|||
.IP "\(bu" 4
|
||||
\fBcoredns_dns_response_rcode_count_total{server, zone, rcode}\fR \- response per zone and rcode\.
|
||||
.
|
||||
.IP "\(bu" 4
|
||||
\fBcoredns_plugin_enabled{server, zone, name}\fR \- indicates whether a plugin is enabled on per server and zone basis\.
|
||||
.
|
||||
.IP "" 0
|
||||
.
|
||||
.P
|
||||
|
@ -112,4 +115,4 @@ Or via an environment variable (this is supported throughout the Corefile): \fBe
|
|||
.IP "" 0
|
||||
.
|
||||
.SH "BUGS"
|
||||
When reloading, the Prometheus handler is stopped before the new server instance is started\. If that new server fails to start, then the initial server instance is still available and DNS queries still served, but Prometheus handler stays down\. Prometheus will not reply HTTP request until a successful reload or a complete restart of CoreDNS\.
|
||||
When reloading, the Prometheus handler is stopped before the new server instance is started\. If that new server fails to start, then the initial server instance is still available and DNS queries still served, but Prometheus handler stays down\. Prometheus will not reply HTTP request until a successful reload or a complete restart of CoreDNS\. Only the plugins that register as Handler are visible in \fBcoredns_plugin_enabled{server, zone, name}\fR\. As of today the plugins reload and bind will not be reported\.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "COREDNS\-NSID" "7" "October 2018" "CoreDNS" "CoreDNS plugins"
|
||||
.TH "COREDNS\-NSID" "7" "March 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fInsid\fR \- adds an identifier of this server to each reply\.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "COREDNS\-PPROF" "7" "October 2018" "CoreDNS" "CoreDNS plugins"
|
||||
.TH "COREDNS\-PPROF" "7" "March 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fIpprof\fR \- publishes runtime profiling data at endpoints under \fB/debug/pprof\fR\.
|
||||
|
@ -24,10 +24,30 @@ pprof [ADDRESS]
|
|||
.fi
|
||||
.
|
||||
.P
|
||||
If not specified, ADDRESS defaults to localhost:6053\.
|
||||
Optionally pprof takes an address; the default is \fBlocalhost:6053\fR\.
|
||||
.
|
||||
.P
|
||||
An extra option can be set with this extended syntax:
|
||||
.
|
||||
.IP "" 4
|
||||
.
|
||||
.nf
|
||||
|
||||
pprof [ADDRESS] {
|
||||
block [RATE]
|
||||
}
|
||||
.
|
||||
.fi
|
||||
.
|
||||
.IP "" 0
|
||||
.
|
||||
.IP "\(bu" 4
|
||||
\fBblock\fR option enables block profiling, \fBRATE\fR defaults to 1\. \fBRATE\fR must be a positive value\. See Diagnostics, chapter profiling \fIhttps://golang\.org/doc/diagnostics\.html\fR and runtime\.SetBlockProfileRate \fIhttps://golang\.org/pkg/runtime/#SetBlockProfileRate\fR for what block profiling entails\.
|
||||
.
|
||||
.IP "" 0
|
||||
.
|
||||
.SH "EXAMPLES"
|
||||
Enable pprof endpoints:
|
||||
Enable a pprof endpoint:
|
||||
.
|
||||
.IP "" 4
|
||||
.
|
||||
|
@ -60,14 +80,16 @@ Listen on an alternate address:
|
|||
.IP "" 0
|
||||
.
|
||||
.P
|
||||
Listen on an all addresses on port 6060:
|
||||
Listen on an all addresses on port 6060, and enable block profiling
|
||||
.
|
||||
.IP "" 4
|
||||
.
|
||||
.nf
|
||||
|
||||
\&\. {
|
||||
pprof :6060
|
||||
pprof :6060 {
|
||||
block
|
||||
}
|
||||
}
|
||||
.
|
||||
.fi
|
||||
|
@ -76,3 +98,6 @@ Listen on an all addresses on port 6060:
|
|||
.
|
||||
.SH "ALSO SEE"
|
||||
See Go\'s pprof documentation \fIhttps://golang\.org/pkg/net/http/pprof/\fR and Profiling Go Programs \fIhttps://blog\.golang\.org/profiling\-go\-programs\fR\.
|
||||
.
|
||||
.P
|
||||
See runtime\.SetBlockProfileRate \fIhttps://golang\.org/pkg/runtime/#SetBlockProfileRate\fR for background on block profiling\.
|
||||
|
|
64
man/coredns-ready.7
Normal file
64
man/coredns-ready.7
Normal file
|
@ -0,0 +1,64 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "COREDNS\-READY" "7" "March 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fIready\fR \- enables a readiness check HTTP endpoint\.
|
||||
.
|
||||
.SH "DESCRIPTION"
|
||||
By enabling \fIready\fR an HTTP endpoint on port 8181 will return 200 OK, when all plugins that are able to signal readiness have done so\. If some are not ready yet the endpoint will return a 503 with the body containing the list of plugins that are not ready\. Once a plugin has signaled it is ready it will not be queried again\.
|
||||
.
|
||||
.P
|
||||
Each Server Block that enables the \fIready\fR plugin will have the plugins \fIin that server block\fR report readiness into the /ready endpoint that runs on the same port\.
|
||||
.
|
||||
.SH "SYNTAX"
|
||||
.
|
||||
.nf
|
||||
|
||||
ready [ADDRESS]
|
||||
.
|
||||
.fi
|
||||
.
|
||||
.P
|
||||
\fIready\fR optionally takes an address; the default is \fB:8181\fR\. The path is fixed to \fB/ready\fR\. The readiness endpoint returns a 200 response code and the word "OK" when this server is ready\. It returns a 503 otherwise\.
|
||||
.
|
||||
.SH "PLUGINS"
|
||||
Any plugin wanting to signal readiness will need to implement the \fBready\.Readiness\fR interface by implementing a method \fBReady() bool\fR that returns true when the plugin is ready and false otherwise\.
|
||||
.
|
||||
.SH "EXAMPLES"
|
||||
Let \fIready\fR report readiness for both the \fB\.\fR and \fBexample\.org\fR servers (assuming the \fIwhois\fR plugin also exports readiness):
|
||||
.
|
||||
.IP "" 4
|
||||
.
|
||||
.nf
|
||||
|
||||
\&\. {
|
||||
ready
|
||||
erratic
|
||||
}
|
||||
|
||||
example\.org {
|
||||
ready
|
||||
whoami
|
||||
}
|
||||
.
|
||||
.fi
|
||||
.
|
||||
.IP "" 0
|
||||
.
|
||||
.P
|
||||
Run \fIready\fR on a different port\.
|
||||
.
|
||||
.IP "" 4
|
||||
.
|
||||
.nf
|
||||
|
||||
\&\. {
|
||||
ready localhost:8091
|
||||
}
|
||||
.
|
||||
.fi
|
||||
.
|
||||
.IP "" 0
|
||||
|
|
@ -1,105 +0,0 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "COREDNS\-REVERSE" "7" "May 2018" "CoreDNS" "CoreDNS plugins"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fIreverse\fR \- allows for dynamic responses to PTR and the related A/AAAA requests\.
|
||||
.
|
||||
.SH "DESCRIPTION"
|
||||
If a request matches a regular expression (see Template Syntax below) this plugin will generate a response\. This is only done for "address" records (PTR, A and AAAA)\.
|
||||
.
|
||||
.SH "SYNTAX"
|
||||
.
|
||||
.nf
|
||||
|
||||
reverse NETWORK\.\.\. {
|
||||
hostname TEMPLATE
|
||||
[ttl TTL]
|
||||
[fallthrough [ZONES\.\.\.]]
|
||||
[wildcard]
|
||||
.
|
||||
.fi
|
||||
.
|
||||
.IP "\(bu" 4
|
||||
\fBNETWORK\fR one or more CIDR formatted networks to respond on\.
|
||||
.
|
||||
.IP "\(bu" 4
|
||||
\fBhostname\fR injects the IP and zone to a template for the hostname\. Defaults to "ip\-{IP}\.{zone[1]}"\. See below for template\.
|
||||
.
|
||||
.IP "\(bu" 4
|
||||
\fBttl\fR defaults to 60
|
||||
.
|
||||
.IP "\(bu" 4
|
||||
\fBfallthrough\fR if zone matches and no record can be generated, pass request to the next plugin\. If \fB[ZONES\.\.\.]\fR is omitted, then fallthrough happens for all zones for which the plugin is authoritative\. If specific zones are listed (for example \fBin\-addr\.arpa\fR and \fBip6\.arpa\fR), then only queries for those zones will be subject to fallthrough\.
|
||||
.
|
||||
.IP "\(bu" 4
|
||||
\fBwildcard\fR allows matches to catch all subdomains as well\.
|
||||
.
|
||||
.IP "" 0
|
||||
.
|
||||
.SS "TEMPLATE SYNTAX"
|
||||
The template for the hostname is used for generating the PTR for a reverse lookup and matching the forward lookup back to an IP\.
|
||||
.
|
||||
.P
|
||||
The \fB{ip}\fR symbol is \fBrequired\fR to make reverse work\. For IPv4 lookups the IP is directly extracted With IPv6 lookups the ":" is removed, and any zero ranged are expanded, e\.g\., "ffff::ffff" results in "ffff000000000000000000000000ffff"
|
||||
.
|
||||
.P
|
||||
The \fB{zone[i]}\fR symbol is \fBoptional\fR and can be replaced by a fixed (zone) string\. The zone will be matched by the zones listed in \fIthis\fR configuration stanza\. \fBi\fR needs to be replaced with the index of the configured listener zones, starting with 1\.
|
||||
.
|
||||
.SH "EXAMPLES"
|
||||
.
|
||||
.nf
|
||||
|
||||
arpa compute\.internal {
|
||||
# proxy unmatched requests
|
||||
proxy \. 8\.8\.8\.8
|
||||
|
||||
# answer requests for IPs in this network
|
||||
# PTR 1\.0\.32\.10\.in\-addr\.arpa\. 3600 ip\-10\.0\.32\.1\.compute\.internal\.
|
||||
# A ip\-10\.0\.32\.1\.compute\.internal\. 3600 10\.0\.32\.1
|
||||
# v6 is also possible
|
||||
# PTR 1\.0\.0\.0\.0\.0\.0\.0\.0\.0\.0\.0\.0\.0\.0\.0\.0\.0\.0\.0\.0\.0\.0\.0\.0\.0\.0\.0\.1\.0\.d\.f\.ip6\.arpa\. 3600 ip\-fd010000000000000000000000000001\.compute\.internal\.
|
||||
# AAAA ip\-fd010000000000000000000000000001\.compute\.internal\. 3600 fd01::1
|
||||
reverse 10\.32\.0\.0/16 fd01::/16 {
|
||||
# template of the ip injection to hostname, zone resolved to compute\.internal\.
|
||||
hostname ip\-{ip}\.{zone[2]}
|
||||
|
||||
ttl 3600
|
||||
|
||||
# Forward unanswered or unmatched requests to proxy
|
||||
# without this flag, requesting A/AAAA records on compute\.internal\. will end here\.
|
||||
fallthrough
|
||||
}
|
||||
}
|
||||
.
|
||||
.fi
|
||||
.
|
||||
.IP "" 4
|
||||
.
|
||||
.nf
|
||||
|
||||
32\.10\.in\-addr\.arpa\.arpa arpa\.company\.org {
|
||||
|
||||
reverse 10\.32\.0\.0/16 {
|
||||
# template of the ip injection to hostname, zone resolved to arpa\.company\.org\.
|
||||
hostname "ip\-{ip}\.v4\.{zone[2]}"
|
||||
|
||||
ttl 3600
|
||||
|
||||
# fallthrough is not required, v4\.arpa\.company\.org\. will be only answered here
|
||||
}
|
||||
|
||||
# cidr closer to the ip wins, so we can overwrite the "default"
|
||||
reverse 10\.32\.2\.0/24 {
|
||||
# its also possible to set fix domain suffix
|
||||
hostname ip\-{ip}\.fix\.arpa\.company\.org\.
|
||||
|
||||
ttl 3600
|
||||
}
|
||||
}
|
||||
.
|
||||
.fi
|
||||
.
|
||||
.IP "" 0
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "COREDNS\-REWRITE" "7" "February 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.TH "COREDNS\-REWRITE" "7" "March 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fIrewrite\fR \- performs internal message rewriting\.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "COREDNS\-ROOT" "7" "October 2018" "CoreDNS" "CoreDNS plugins"
|
||||
.TH "COREDNS\-ROOT" "7" "March 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fIroot\fR \- simply specifies the root of where to find (zone) files\.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "COREDNS\-ROUTE53" "7" "February 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.TH "COREDNS\-ROUTE53" "7" "March 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fIroute53\fR \- enables serving zone data from AWS route53\.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "COREDNS\-SECONDARY" "7" "February 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.TH "COREDNS\-SECONDARY" "7" "March 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fIsecondary\fR \- enables serving a zone retrieved from a primary server\.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "COREDNS\-TEMPLATE" "7" "February 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.TH "COREDNS\-TEMPLATE" "7" "March 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fItemplate\fR \- allows for dynamic responses based on the incoming query\.
|
||||
|
@ -147,7 +147,7 @@ The \fB\.invalid\fR domain is a reserved TLD (see RFC 2606 Reserved Top Level DN
|
|||
.nf
|
||||
|
||||
\&\. {
|
||||
proxy \. 8\.8\.8\.8
|
||||
forward \. 8\.8\.8\.8
|
||||
|
||||
template ANY ANY invalid {
|
||||
rcode NXDOMAIN
|
||||
|
@ -181,7 +181,7 @@ Imagine you run \fBexample\.com\fR with a datacenter \fBdc1\.example\.com\fR\. T
|
|||
.nf
|
||||
|
||||
\&\. {
|
||||
proxy \. 8\.8\.8\.8
|
||||
forward \. 8\.8\.8\.8
|
||||
|
||||
template IN ANY example\.com\.dc1\.example\.com {
|
||||
rcode NXDOMAIN
|
||||
|
@ -201,7 +201,7 @@ A more verbose regex based equivalent would be
|
|||
.nf
|
||||
|
||||
\&\. {
|
||||
proxy \. 8\.8\.8\.8
|
||||
forward \. 8\.8\.8\.8
|
||||
|
||||
template IN ANY example\.com {
|
||||
match "example\e\.com\e\.(dc1\e\.example\e\.com\e\.)$"
|
||||
|
@ -223,7 +223,7 @@ The regex\-based version can do more complex matching/templating while zone\-bas
|
|||
.nf
|
||||
|
||||
\&\. {
|
||||
proxy \. 8\.8\.8\.8
|
||||
forward \. 8\.8\.8\.8
|
||||
|
||||
# ip\-a\-b\-c\-d\.example A a\.b\.c\.d
|
||||
|
||||
|
@ -260,7 +260,7 @@ Fallthrough is needed for mixed domains where only some responses are templated\
|
|||
.nf
|
||||
|
||||
\&\. {
|
||||
proxy \. 8\.8\.8\.8
|
||||
forward \. 8\.8\.8\.8
|
||||
|
||||
template IN A example {
|
||||
match "^ip\-(?P<a>10)\-(?P<b>[0\-9]*)\-(?P<c>[0\-9]*)\-(?P<d>[0\-9]*)[\.]dc[\.]example[\.]$"
|
||||
|
@ -280,7 +280,7 @@ Named capture groups can be used to template one response for multiple patterns\
|
|||
.nf
|
||||
|
||||
\&\. {
|
||||
proxy \. 8\.8\.8\.8
|
||||
forward \. 8\.8\.8\.8
|
||||
|
||||
template IN A example {
|
||||
match ^ip\-10\-(?P<b>[0\-9]*)\-(?P<c>[0\-9]*)\-(?P<d>[0\-9]*)[\.]example[\.]$
|
||||
|
@ -302,7 +302,7 @@ Named capture groups can be used to template one response for multiple patterns\
|
|||
.nf
|
||||
|
||||
\&\. {
|
||||
proxy \. 8\.8\.8\.8
|
||||
forward \. 8\.8\.8\.8
|
||||
|
||||
template IN A example {
|
||||
match ^ip\-10\-(?P<b>[0\-9]*)\-(?P<c>[0\-9]*)\-(?P<d>[0\-9]*)[\.]example[\.]$
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "COREDNS\-TLS" "7" "October 2018" "CoreDNS" "CoreDNS plugins"
|
||||
.TH "COREDNS\-TLS" "7" "March 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fItls\fR \- allows you to configure the server certificates for the TLS and gRPC servers\.
|
||||
|
@ -10,9 +10,6 @@
|
|||
CoreDNS supports queries that are encrypted using TLS (DNS over Transport Layer Security, RFC 7858) or are using gRPC (https://grpc\.io/, not an IETF standard)\. Normally DNS traffic isn\'t encrypted at all (DNSSEC only signs resource records)\.
|
||||
.
|
||||
.P
|
||||
The \fIproxy\fR plugin also support gRPC (\fBprotocol gRPC\fR), meaning you can chain CoreDNS servers using this protocol\.
|
||||
.
|
||||
.P
|
||||
The \fItls\fR "plugin" allows you to configure the cryptographic keys that are needed for both DNS\-over\-TLS and DNS\-over\-gRPC\. If the \fBtls\fR directive is omitted, then no encryption takes place\.
|
||||
.
|
||||
.P
|
||||
|
@ -38,7 +35,7 @@ Start a DNS\-over\-TLS server that picks up incoming DNS\-over\-TLS queries on p
|
|||
|
||||
tls://\.:5553 {
|
||||
tls cert\.pem key\.pem ca\.pem
|
||||
proxy \. /etc/resolv\.conf
|
||||
forward \. /etc/resolv\.conf
|
||||
}
|
||||
.
|
||||
.fi
|
||||
|
@ -54,7 +51,7 @@ Start a DNS\-over\-gRPC server that is similar to the previous example, but usin
|
|||
|
||||
grpc://\. {
|
||||
tls cert\.pem key\.pem ca\.pem
|
||||
proxy \. /etc/resolv\.conf
|
||||
forward \. /etc/resolv\.conf
|
||||
}
|
||||
.
|
||||
.fi
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "COREDNS\-TRACE" "7" "October 2018" "CoreDNS" "CoreDNS plugins"
|
||||
.TH "COREDNS\-TRACE" "7" "March 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fItrace\fR \- enables OpenTracing\-based tracing of DNS requests as they go through the plugin chain\.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "COREDNS\-WHOAMI" "7" "October 2018" "CoreDNS" "CoreDNS plugins"
|
||||
.TH "COREDNS\-WHOAMI" "7" "March 2019" "CoreDNS" "CoreDNS plugins"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fIwhoami\fR \- returns your resolver\'s local IP address, port and transport\.
|
||||
|
|
|
@ -56,4 +56,4 @@ CoreDNS Authors\.
|
|||
Apache License 2\.0
|
||||
.
|
||||
.SH "SEE ALSO"
|
||||
Corefile(5) coredns\-k8s_external(7) coredns\-erratic(7) coredns\-hosts(7) coredns\-dnssec(7) coredns\-health(7) coredns\-file(7) coredns\-root(7) coredns\-autopath(7) coredns\-auto(7) coredns\-dnstap(7) coredns\-pprof(7) coredns\-tls(7) coredns\-loadbalance(7) coredns\-cache(7) coredns\-whoami(7) coredns\-bind(7) coredns\-loop(7) coredns\-import(7) coredns\-chaos(7) coredns\-template(7) coredns\-proxy(7) coredns\-log(7) coredns\-kubernetes(7) coredns\-forward(7) coredns\-debug(7) coredns\-nsid(7) coredns\-secondary(7) coredns\-route53(7) coredns\-errors(7) coredns\-metrics(7) coredns\-reload(7) coredns\-rewrite(7) coredns\-metadata(7) coredns\-federation(7) coredns\-etcd(7) coredns\-trace(7)\.
|
||||
Corefile(5) coredns\-k8s_external(7) coredns\-erratic(7) coredns\-nsid(7) coredns\-hosts(7) coredns\-dnssec(7) coredns\-health(7) coredns\-grpc(7) coredns\-ready(7) coredns\-file(7) coredns\-root(7) coredns\-autopath(7) coredns\-auto(7) coredns\-dnstap(7) coredns\-pprof(7) coredns\-tls(7) coredns\-loadbalance(7) coredns\-cache(7) coredns\-whoami(7) coredns\-bind(7) coredns\-loop(7) coredns\-import(7) coredns\-chaos(7) coredns\-template(7) coredns\-log(7) coredns\-kubernetes(7) coredns\-forward(7) coredns\-debug(7) coredns\-secondary(7) coredns\-route53(7) coredns\-errors(7) coredns\-metrics(7) coredns\-reload(7) coredns\-rewrite(7) coredns\-metadata(7) coredns\-federation(7) coredns\-etcd(7) coredns\-cancel(7) coredns\-trace(7)\.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
.\" generated with Ronn/v0.7.3
|
||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
||||
.
|
||||
.TH "COREFILE" "5" "January 2019" "CoreDNS" "CoreDNS"
|
||||
.TH "COREFILE" "5" "March 2019" "CoreDNS" "CoreDNS"
|
||||
.
|
||||
.SH "NAME"
|
||||
\fBcorefile\fR
|
||||
|
|
Loading…
Add table
Reference in a new issue