CoreDNS is a DNS server/forwarder, written in Go, that chains plugins. Each plugin performs a (DNS) function.
CoreDNS is a fast and flexible DNS server. With CoreDNS you are able to do what you want with your DNS data by using plugins. If some functionality is not provided out of the box you can add it by writing a plugin.
The software can listen for DNS requests coming in over UDP/TCP (go’old DNS), TLS (RFC 7858), also called DoT, DNS over HTTP/2 – DoH – (RFC 8484) and gRPC (not a standard).
This is free and open source software.
Key Features
- Serve zone data from a file; both DNSSEC (NSEC only) and DNS are supported (file and auto).
- Retrieve zone data from primaries, i.e., act as a secondary server (AXFR only) (secondary).
- Sign zone data on-the-fly (dnssec).
- Load balancing of responses (loadbalance).
- Allow for zone transfers, i.e., act as a primary server (file + transfer).
- Automatically load zone files from disk (auto).
- Caching of DNS responses (cache).
- Use etcd as a backend (replacing SkyDNS) (etcd).
- Use k8s (kubernetes) as a backend (kubernetes).
- Serve as a proxy to forward queries to some other (recursive) nameserver (forward).
- Provide metrics (by using Prometheus) (prometheus).
- Provide query (log) and error (errors) logging.
- Integrate with cloud providers (route53).
- Support the CH class:
version.bindand friends (chaos). - Support the RFC 5001 DNS name server identifier (NSID) option (nsid).
- Profiling support (pprof).
- Rewrite queries (qtype, qclass and qname) (rewrite and template).
- Block ANY queries (any).
- Provide DNS64 IPv6 Translation (dns64).
Website: coredns.io
Support: GitHub Code Repository
Developer: CoreDNS Authors
License: Apache License 2.0
CoreDNS is written in Go. Learn Go with our recommended free books and free tutorials.
Related Software
| DNS Servers | |
|---|---|
| CoreDNS | DNS server that chains plugins |
| BIND | Flexible, full-featured DNS system |
| PowerDNS | Authoritative server, the Recursor, and Dnsdist |
| NSD | NLnet Labs Name Server Daemon |
| Technitium | Self host a DNS server for privacy and security |
| SmartDNS | Local DNS server that accepts DNS query requests from local clients |
| Unbound | Validating, recursive, caching DNS resolver |
| Hickory | Rust-based DNS client, server and resolver |
| YADIFA | Lightweight authoritative Name Server with DNSSEC capabilities |
| Knot DNS | High-performance authoritative-only DNS server |
| gdnsd | Authoritative-only DNS server |
| Dnsmasq | Network infrastructure: DNS, DHCP, router advertisement and network boot |
| acme-dns | Simplified DNS server with a RESTful HTTP API |
| encrypted-dns | Modern encrypted DNS server |
| MaraDNS | Small DNS server |
| aardvark-dns | Authoritative DNS server for A/AAAA container records |
| FDNS | Encrypted DNS proxy designed for small networks and Linux desktops |
| tinydns | Tiny DNS server with simple JSON config |
| pkdns | DNS server resolving pkarr self-sovereign domains |
| dprox | Lightweight DNS proxy server |
| PopuraDNS | Simple DNS server with decentralized domain names support |
| pdnsd | DNS server designed for local caching of DNS information |
| dnrs | DNS server written in rust |
Read our verdict in the software roundup.
Explore our comprehensive directory of recommended free and open source software. Our carefully curated collection spans every major software category.This directory is part of our ongoing series of informative articles for Linux enthusiasts. It features hundreds of detailed reviews, along with open source alternatives to proprietary solutions from major corporations such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk. You’ll also find interesting projects to try, hardware coverage, free programming books and tutorials, and much more. Discovered a useful open source Linux program that we haven’t covered yet? Let us know by completing this form. |

