Update README.md
Minor grammatical fixes.
This commit is contained in:
parent
5318e1084b
commit
63840bc2fa
1 changed files with 22 additions and 22 deletions
44
README.md
44
README.md
|
@ -1,47 +1,47 @@
|
||||||
# CoreDNS
|
# CoreDNS
|
||||||
|
|
||||||
CoreDNS is DNS server that started as a fork of [Caddy](https://github.com/mholt/caddy/). It has the
|
CoreDNS is a DNS server that started as a fork of [Caddy](https://github.com/mholt/caddy/). It has the
|
||||||
same model: it chains middleware. In fact to similar that CoreDNS is now a server type plugin for
|
same model: it chains middleware. In fact it's so similar that CoreDNS is now a server type plugin for
|
||||||
CAddy, i.e. you'll need Caddy to compile CoreDNS.
|
Caddy, i.e., you'll need Caddy to compile CoreDNS.
|
||||||
|
|
||||||
CoreDNS is the successor of [SkyDNS](https://github.com/skynetservices/skydns). SkyDNS is a thin
|
CoreDNS is the successor to [SkyDNS](https://github.com/skynetservices/skydns). SkyDNS is a thin
|
||||||
layer that exposes services in etcd in the DNS. CoreDNS builds on this idea and is a generic DNS
|
layer that exposes services in etcd in the DNS. CoreDNS builds on this idea and is a generic DNS
|
||||||
server that can talk to multiple backends (etcd, consul, kubernetes, etc.).
|
server that can talk to multiple backends (etcd, consul, kubernetes, etc.).
|
||||||
|
|
||||||
CoreDNS aims to be a fast and flexible DNS server. The keyword here is *flexible*, with CoreDNS you
|
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 middleware!
|
are able to do what you want with your DNS data. And if not: write some middleware!
|
||||||
|
|
||||||
Currently CoreDNS is able to:
|
Currently CoreDNS is able to:
|
||||||
|
|
||||||
* Serve zone data from a file, both DNSSEC (NSEC only) and DNS is supported (middleware/file).
|
* Serve zone data from a file; both DNSSEC (NSEC only) and DNS are supported (middleware/file).
|
||||||
* Retrieve zone data from primaries, i.e. act as a secondary server (AXFR only) (middleware/secondary).
|
* Retrieve zone data from primaries, i.e., act as a secondary server (AXFR only) (middleware/secondary).
|
||||||
* Sign zone data on-the-fly (middleware/dnssec).
|
* Sign zone data on-the-fly (middleware/dnssec).
|
||||||
* Loadbalancing of responses (middleware/loadbalance).
|
* Load balancing of responses (middleware/loadbalance).
|
||||||
* Allow for zone transfers, i.e. act as a primary server (middleware/file).
|
* Allow for zone transfers, i.e., act as a primary server (middleware/file).
|
||||||
* Caching (middleware/cache).
|
* Caching (middleware/cache).
|
||||||
* Health checking (middleware/health).
|
* Health checking (middleware/health).
|
||||||
* Use etcd as a backend, i.e. a 101.5% replacement for
|
* Use etcd as a backend, i.e., a 101.5% replacement for
|
||||||
[SkyDNS](https://github.com/skynetservices/skydns) (middleware/etcd).
|
[SkyDNS](https://github.com/skynetservices/skydns) (middleware/etcd).
|
||||||
* Use k8s (kubernetes) as a backend (middleware/kubernetes).
|
* Use k8s (kubernetes) as a backend (middleware/kubernetes).
|
||||||
* Serve as a proxy to forward queries to some other (recursive) nameserver (middleware/proxy).
|
* Serve as a proxy to forward queries to some other (recursive) nameserver (middleware/proxy).
|
||||||
* Rewrite queries (both qtype, qclass and qname) (middleware/rewrite).
|
* Rewrite queries (qtype, qclass and qname) (middleware/rewrite).
|
||||||
* Provide metrics (by using Prometheus) (middleware/metrics).
|
* Provide metrics (by using Prometheus) (middleware/metrics).
|
||||||
* Provide Logging (middleware/log).
|
* Provide Logging (middleware/log).
|
||||||
* Has support for the CH class: `version.bind` and friends (middleware/chaos).
|
* Support the CH class: `version.bind` and friends (middleware/chaos).
|
||||||
* Profiling support (middleware/pprof).
|
* Profiling support (middleware/pprof).
|
||||||
|
|
||||||
Each of the middlewares has a README.md of their own.
|
Each of the middlewares has a README.md of its own.
|
||||||
|
|
||||||
## Status
|
## Status
|
||||||
|
|
||||||
I'm using CoreDNS is my primary, authoritative, nameserver for my domains (`miek.nl`, `atoom.net`
|
I'm using CoreDNS is my primary, authoritative, nameserver for my domains (`miek.nl`, `atoom.net`
|
||||||
and a few others). CoreDNS should be stable enough to provide you with a good DNS(SEC) service.
|
and a few others). CoreDNS should be stable enough to provide you with good DNS(SEC) service.
|
||||||
|
|
||||||
There are still few [issues](https://github.com/miekg/coredns/issues), and work is ongoing on making
|
There are still few [issues](https://github.com/miekg/coredns/issues), and work is ongoing on making
|
||||||
things fast and reduce the memory usage.
|
things fast and to reduce the memory usage.
|
||||||
|
|
||||||
All in all, CoreDNS should be able to provide you with enough functionality to replace parts of
|
All in all, CoreDNS should be able to provide you with enough functionality to replace parts of
|
||||||
BIND9, Knot, NSD or PowerDNS and SkyDNS.
|
BIND 9, Knot, NSD or PowerDNS and SkyDNS.
|
||||||
Most documentation is in the source and some blog articles can be [found
|
Most documentation is in the source and some blog articles can be [found
|
||||||
here](https://miek.nl/tags/coredns/). If you do want to use CoreDNS in production, please let us
|
here](https://miek.nl/tags/coredns/). If you do want to use CoreDNS in production, please let us
|
||||||
know and how we can help.
|
know and how we can help.
|
||||||
|
@ -52,7 +52,7 @@ Caddyfile when I forked it).
|
||||||
## Compilation
|
## Compilation
|
||||||
|
|
||||||
CoreDNS (as a servertype plugin for Caddy) has a dependency on Caddy - this is *almost* like
|
CoreDNS (as a servertype plugin for Caddy) has a dependency on Caddy - this is *almost* like
|
||||||
the normal Go dependencies, but with a small twist, caddy (the source) need to know that CoreDNS
|
the normal Go dependencies, but with a small twist: caddy (the source) need to know that CoreDNS
|
||||||
exists and for this we need to add 1 line `_ "github.com/miekg/coredns/core"` to file in caddy.
|
exists and for this we need to add 1 line `_ "github.com/miekg/coredns/core"` to file in caddy.
|
||||||
|
|
||||||
You have the source of CoreDNS, this should preferably be downloaded under your `$GOPATH`. Get all
|
You have the source of CoreDNS, this should preferably be downloaded under your `$GOPATH`. Get all
|
||||||
|
@ -60,13 +60,13 @@ dependencies:
|
||||||
|
|
||||||
go get ./...
|
go get ./...
|
||||||
|
|
||||||
Then, execute `go generate`, this will patch Caddy to add CoreDNS (and remove the HTTP server
|
Then, execute `go generate`. This will patch Caddy to add CoreDNS (and remove the HTTP server
|
||||||
plugin), and then `go build` as you would normally do:
|
plugin), and then `go build` as you would normally do:
|
||||||
|
|
||||||
go generate
|
go generate
|
||||||
go build
|
go build
|
||||||
|
|
||||||
Should yield a `coredns` binary.
|
This should yield a `coredns` binary.
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
|
@ -82,10 +82,10 @@ Start a simple proxy, you'll need to be root to start listening on port 53.
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Just start CoreDNS: `./coredns`.
|
Just start CoreDNS: `./coredns`.
|
||||||
And then just query on that port (53), the query should be forwarded to 8.8.8.8 and the response
|
And then just query on that port (53). The query should be forwarded to 8.8.8.8 and the response
|
||||||
will be returned. Each query should also show up in the log.
|
will be returned. Each query should also show up in the log.
|
||||||
|
|
||||||
Serve the (NSEC) DNSSEC signed `example.org` on port 1053, errors and logging to stdout. Allow zone
|
Serve the (NSEC) DNSSEC-signed `example.org` on port 1053, with errors and logging sent to stdout. Allow zone
|
||||||
transfers to everybody, but specically mention 1 IP address so that CoreDNS can send notifies to it.
|
transfers to everybody, but specically mention 1 IP address so that CoreDNS can send notifies to it.
|
||||||
|
|
||||||
~~~ txt
|
~~~ txt
|
||||||
|
|
Loading…
Add table
Reference in a new issue