Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
C
Coredns
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Railgun
Coredns
Commits
bfee92a7
Commit
bfee92a7
authored
Feb 21, 2018
by
Miek Gieben
Committed by
GitHub
Feb 21, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
doc: Slight README rewrite (#1546)
Drop prominent placement of SkyDNS, some cleanups
parent
22409290
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
27 additions
and
33 deletions
+27
-33
README.md
README.md
+27
-33
No files found.
README.md
View file @
bfee92a7
...
@@ -13,12 +13,9 @@ function.
...
@@ -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:
...
@@ -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, s
ee
[
coredns.io/plugins
](
https://coredns.io/plugins
)
And more. Each of the plugins is documented. S
ee
[
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.
~~~
(If you already have the source of CoreDNS checked out in the appropriate place in your
`GOPATH`
, you can get all
Some of the dependencies require Go version 1.9 or later.
dependencies with
`go get ./...`
.)
Then use
`go build`
as you would normally do
:
We vendor most (not all!) packages. Building from scratch is easiest, by just using
`make`
:
go build
~~~
% make
~~~
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.
...
@@ -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.
...
@@ -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.`.
...
@@ -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.
...
@@ -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
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment