diff options
author | 2017-03-13 20:24:37 +0000 | |
---|---|---|
committer | 2017-03-13 20:24:37 +0000 | |
commit | bfaf9e0aecc74d4e6897cdb9c6ef51b4b21ffd4e (patch) | |
tree | 1eb571726beee206742fa69d6d97ef80d6dcd48f /README.md | |
parent | 4985d698e2d1e7c8335bff3b39c1d593cf1f02e6 (diff) | |
download | coredns-bfaf9e0aecc74d4e6897cdb9c6ef51b4b21ffd4e.tar.gz coredns-bfaf9e0aecc74d4e6897cdb9c6ef51b4b21ffd4e.tar.zst coredns-bfaf9e0aecc74d4e6897cdb9c6ef51b4b21ffd4e.zip |
core: add more transports (#574)
* core: add listening for other protocols
Allow CoreDNS to listen for TLS request coming over port 853. This can
be enabled with `tls://` in the config file.
Implement listening for grps:// as well.
a Corefile like:
~~~
. tls://.:1853 {
whoami
tls
}
~~~
Means we listen on 1853 for tls requests, the `tls` config item allows
configuration for TLS parameters. We *might* be tempted to use Caddy's
Let's Encrypt implementation here.
* Refactor coredns/grpc into CoreDNS
This makes gRPC a first class citizen in CoreDNS. Add defines as being
just another server.
* some cleanups
* unexport the servers
* Move protobuf dir
* Hook up TLS properly
* Fix test
* listen for TLS as well. README updates
* disable test, fix package
* fix test
* Fix tests
* Fix remaining test
* Some tests
* Make the test work
* Add grpc test from #580
* fix crash
* Fix tests
* Close conn
* README cleanups
* README
* link RFC
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 34 |
1 files changed, 29 insertions, 5 deletions
@@ -5,9 +5,10 @@ [](https://codecov.io/github/coredns/coredns?branch=master) [](https://goreportcard.com/report/coredns/coredns) -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 it's so similar that CoreDNS is now a server type plugin for -Caddy. CoreDNS is also a [Cloud Native Computing Foundation](https://cncf.io) inception level project. +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 it's so similar that CoreDNS is now a server type +plugin for Caddy. CoreDNS is also 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 layer that exposes services in etcd in the DNS. CoreDNS builds on this idea and is a generic DNS @@ -16,6 +17,11 @@ server that can talk to multiple backends (etcd, kubernetes, etc.). 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 some middleware! +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 (not +a standard. + + Currently CoreDNS is able to: * Serve zone data from a file; both DNSSEC (NSEC only) and DNS are supported (*file*). @@ -44,8 +50,8 @@ Each of the middlewares has a README.md of its own. CoreDNS can be used as an authoritative nameserver for your domains, and should be stable enough to provide you with good DNS(SEC) service. -There are still a few known [issues](https://github.com/coredns/coredns/issues), and work is ongoing on making -things fast and to reduce the memory usage. +There are still a few known [issues](https://github.com/coredns/coredns/issues), and work is ongoing +on making 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 BIND 9, Knot, NSD or PowerDNS and SkyDNS. Most documentation is in the source and some blog articles can @@ -169,6 +175,24 @@ example.org { } ~~~ +Listening on TLS and for gRPC? Use: + +~~~ txt +tls://example.org grpc://example.org { + # ... +} +~~~ + +Specifying ports works in the same way: + +~~~ txt +grpc://example.org:1443 { + # ... +} +~~~ + +When no transport protocol is specified the default `dns://` is assumed. + ## Blog and Contact Website: <https://coredns.io> |