mirror of
https://github.com/coredns/coredns.git
synced 2025-10-27 00:04:15 -04:00
doc: Slight README rewrite (#1546)
Drop prominent placement of SkyDNS, some cleanups
This commit is contained in:
60
README.md
60
README.md
@@ -13,12 +13,9 @@ function.
|
|||||||
|
|
||||||
CoreDNS is a [Cloud Native Computing Foundation](https://cncf.io) inception level project.
|
CoreDNS is a [Cloud Native Computing Foundation](https://cncf.io) inception level project.
|
||||||
|
|
||||||
CoreDNS is the successor to [SkyDNS](https://github.com/skynetservices/skydns). SkyDNS is a thin
|
CoreDNS is a fast and flexible DNS server. The keyword here is *flexible*: with CoreDNS you
|
||||||
layer that exposes services in etcd in the DNS. CoreDNS builds on this idea and is a **generic** DNS
|
are able to do what you want with your DNS data by utilizing plugin. If some functionality is not
|
||||||
server that can talk to multiple backends (etcd, kubernetes, etc.).
|
provided out of the box you can add it by [writing a plugin](https://coredns.io/explugins).
|
||||||
|
|
||||||
CoreDNS aims to be a fast and flexible DNS server. The keyword here is *flexible*: with CoreDNS you
|
|
||||||
are able to do what you want with your DNS data. And if not: write a plugin!
|
|
||||||
|
|
||||||
CoreDNS can listen for DNS request coming in over UDP/TCP (go'old DNS), TLS ([RFC
|
CoreDNS can listen for DNS request coming in over UDP/TCP (go'old DNS), TLS ([RFC
|
||||||
7858](https://tools.ietf.org/html/rfc7858)) and [gRPC](https://grpc.io) (not a standard).
|
7858](https://tools.ietf.org/html/rfc7858)) and [gRPC](https://grpc.io) (not a standard).
|
||||||
@@ -32,50 +29,42 @@ Currently CoreDNS is able to:
|
|||||||
* Allow for zone transfers, i.e., act as a primary server (*file*).
|
* Allow for zone transfers, i.e., act as a primary server (*file*).
|
||||||
* Automatically load zone files from disk (*auto*).
|
* Automatically load zone files from disk (*auto*).
|
||||||
* Caching (*cache*).
|
* Caching (*cache*).
|
||||||
* Health checking endpoint (*health*).
|
* Use etcd as a backend (replace [SkyDNS](https://github.com/skynetservices/skydns)) (*etcd*).
|
||||||
* Use etcd as a backend, i.e., a 101.5% replacement for
|
|
||||||
[SkyDNS](https://github.com/skynetservices/skydns) (*etcd*).
|
|
||||||
* Use k8s (kubernetes) as a backend (*kubernetes*).
|
* Use k8s (kubernetes) as a backend (*kubernetes*).
|
||||||
* Serve as a proxy to forward queries to some other (recursive) nameserver (*proxy*).
|
* Serve as a proxy to forward queries to some other (recursive) nameserver (*proxy*, and *forward*).
|
||||||
* Provide metrics (by using Prometheus) (*metrics*).
|
* Provide metrics (by using Prometheus) (*metrics*).
|
||||||
* Provide query (*log*) and error (*error*) logging.
|
* Provide query (*log*) and error (*error*) logging.
|
||||||
* Support the CH class: `version.bind` and friends (*chaos*).
|
* Support the CH class: `version.bind` and friends (*chaos*).
|
||||||
* Support the RFC 5001 DNS name server identifier (NSID) option (*nsid*).
|
* Support the RFC 5001 DNS name server identifier (NSID) option (*nsid*).
|
||||||
* Profiling support (*pprof*).
|
* Profiling support (*pprof*).
|
||||||
* Rewrite queries (qtype, qclass and qname) (*rewrite*).
|
* Rewrite queries (qtype, qclass and qname) (*rewrite* and *template*).
|
||||||
* Echo back the IP address, transport and port number used (*whoami*). This is also the default
|
|
||||||
plugin that gets loaded when CoreDNS can't find a Corefile to load.
|
|
||||||
|
|
||||||
Each of the plugins has a README.md of its own, see [coredns.io/plugins](https://coredns.io/plugins)
|
And more. Each of the plugins is documented. See [coredns.io/plugins](https://coredns.io/plugins)
|
||||||
for all in-tree plugins, and [coredns.io/explugins](https://coredns.io/explugins) for all
|
for all in-tree plugins, and [coredns.io/explugins](https://coredns.io/explugins) for all
|
||||||
out-of-tree plugins.
|
out-of-tree plugins.
|
||||||
|
|
||||||
## Status
|
## Compilation from Source
|
||||||
|
|
||||||
CoreDNS can be used as an authoritative nameserver for your domains. CoreDNS should be able to
|
|
||||||
provide you with enough functionality to replace parts of BIND 9, Knot, NSD or PowerDNS and SkyDNS.
|
|
||||||
|
|
||||||
## Compilation
|
|
||||||
|
|
||||||
Check out the project and do dependency resolution with:
|
Check out the project and do dependency resolution with:
|
||||||
|
|
||||||
go get github.com/coredns/coredns
|
~~~
|
||||||
|
% go get github.com/coredns/coredns
|
||||||
|
~~~
|
||||||
|
|
||||||
Some of the dependencies require Go version 1.8 or later.
|
Some of the dependencies require Go version 1.9 or later.
|
||||||
|
|
||||||
(If you already have the source of CoreDNS checked out in the appropriate place in your `GOPATH`, you can get all
|
We vendor most (not all!) packages. Building from scratch is easiest, by just using `make`:
|
||||||
dependencies with `go get ./...`.)
|
|
||||||
|
|
||||||
Then use `go build` as you would normally do:
|
~~~
|
||||||
|
% make
|
||||||
go build
|
~~~
|
||||||
|
|
||||||
This should yield a `coredns` binary.
|
This should yield a `coredns` binary.
|
||||||
|
|
||||||
## Compilation with Docker
|
## Compilation with Docker
|
||||||
|
|
||||||
CoreDNS requires Go to compile. However, if you already have docker installed and prefer not to setup
|
CoreDNS requires Go to compile. However, if you already have docker installed and prefer not to setup
|
||||||
a Go environment, you could build coredns easily:
|
a Go environment, you could build CoreDNS easily:
|
||||||
|
|
||||||
```
|
```
|
||||||
$ docker run --rm -i -t -v $PWD:/go/src/github.com/coredns/coredns \
|
$ docker run --rm -i -t -v $PWD:/go/src/github.com/coredns/coredns \
|
||||||
@@ -110,7 +99,7 @@ Start a simple proxy, you'll need to be root to start listening on port 53.
|
|||||||
|
|
||||||
~~~ corefile
|
~~~ corefile
|
||||||
.:53 {
|
.:53 {
|
||||||
proxy . 8.8.8.8:53
|
forward . 8.8.8.8:53
|
||||||
log
|
log
|
||||||
}
|
}
|
||||||
~~~
|
~~~
|
||||||
@@ -140,7 +129,7 @@ nameserver *and* rewrite ANY queries to HINFO.
|
|||||||
~~~ txt
|
~~~ txt
|
||||||
.:1053 {
|
.:1053 {
|
||||||
rewrite ANY HINFO
|
rewrite ANY HINFO
|
||||||
proxy . 8.8.8.8:53
|
forward . 8.8.8.8:53
|
||||||
|
|
||||||
file /var/lib/coredns/example.org.signed example.org {
|
file /var/lib/coredns/example.org.signed example.org {
|
||||||
transfer to *
|
transfer to *
|
||||||
@@ -163,7 +152,7 @@ Means you are authoritative for `0.0.10.in-addr.arpa.`.
|
|||||||
This also works for IPv6 addresses. If for some reason you want to serve a zone named `10.0.0.0/24`
|
This also works for IPv6 addresses. If for some reason you want to serve a zone named `10.0.0.0/24`
|
||||||
add the closing dot: `10.0.0.0/24.` as this also stops the conversion.
|
add the closing dot: `10.0.0.0/24.` as this also stops the conversion.
|
||||||
|
|
||||||
This even works for CIDR (See RFC 1518 and 1519) addressing, i.e `10.0.0.0/25`, CoreDNS will then
|
This even works for CIDR (See RFC 1518 and 1519) addressing, i.e. `10.0.0.0/25`, CoreDNS will then
|
||||||
check if the `in-addr` request falls in the correct range.
|
check if the `in-addr` request falls in the correct range.
|
||||||
|
|
||||||
Listening on TLS and for gRPC? Use:
|
Listening on TLS and for gRPC? Use:
|
||||||
@@ -186,12 +175,17 @@ When no transport protocol is specified the default `dns://` is assumed.
|
|||||||
|
|
||||||
## Community
|
## Community
|
||||||
|
|
||||||
|
We're most active on Slack (and Github):
|
||||||
|
|
||||||
|
- Slack: #coredns on <https://slack.cncf.io>
|
||||||
|
- Github: <https://github.com/coredns/coredns>
|
||||||
|
|
||||||
|
More resources can be found:
|
||||||
|
|
||||||
- Website: <https://coredns.io>
|
- Website: <https://coredns.io>
|
||||||
- Blog: <https://blog.coredns.io>
|
- Blog: <https://blog.coredns.io>
|
||||||
- Twitter: [@corednsio](https://twitter.com/corednsio)
|
- Twitter: [@corednsio](https://twitter.com/corednsio)
|
||||||
- Github: <https://github.com/coredns/coredns>
|
|
||||||
- Mailing list/group: <coredns-discuss@googlegroups.com>
|
- Mailing list/group: <coredns-discuss@googlegroups.com>
|
||||||
- Slack: #coredns on <https://slack.cncf.io>
|
|
||||||
|
|
||||||
## Deployment
|
## Deployment
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user