Top 20 Best Open Source DNS Servers for (Linux / Windows). In this post, we will have a look at the top 20 best open source DNS servers for Linux and Windows. The fact that they are open source makes it easy to customize them depending on any network configuration.
What is DNS Server
Connecting with DNS Server is another way to connect online safely. Using one of these free and public servers quickens your internet speed and you’ll experience a much smaller chance of technical issues as well as much more responsive browsing.
A DNS server or name server manages a massive database that maps domain names to IP addresses. DNS servers or Domain Name System is a protocol or system that will take the domain names that you enter into a browser and translate or forward them into the IP addresses needed to access those particular websites. In geek terms, that’s called Resolution.
Below is the list of Top 20 Best Open Source DNS Servers.
Top 20 Best Open Source DNS Servers for (Linux / Windows)
1. Knot DNS
Knot DNS is a high performance authoritative DNS server. It supports all key features of modern domain name systems.
It provides essential DNS features like incremental zone transfers (IXFR), dynamic updates (DDNS), and response rate limiting (RRL). It also has more advanced features that include automatic Domain Name System Security Extensions (DNSSEC) signing, dynamic A/AAAA/PTR records synthesis, and rapid on-the-fly reconfiguration.
This is a tool for users looking for performance, security, and stability on their networks.
2. PowerDNS
The PowerDNS nameserver consists of an authoritative server and a recursor which are offered separately.
The authoritative server answers questions about domains known to it. It doesn’t go out beyond its network to resolve queries about other domains. It stores discovery data in its database.
Meanwhile, the recursor, by default, does not know domains itself, but will always consult other authoritative servers to answer questions given to it.
PowerDNS was designed to serve both small and large domains. It is easy to set up and serves large query volumes on larger domains.
3. MaraDNS
With MaraDNS we have a small and lightweight cross platform open source DNS server. It is easy to configure as it only requires editing text configuration files.
It offers DNSSEC simple, comes with a long list of plug ins, and has tools that help improve the DNS server, as well as import data. It can store both IP records and corresponding reverse DNS lookup and PTR query records. It can be used as a master DNS server, and, with some caveats, as a slave DNS server.
This DNS server is secure and runs on both Windows and UNIX clones.
4. dnsmasq
dnsmasq is also a lightweight, easy to configure DNS forwarder with a small digital footprint. It is designed to provide DNS – as well as DHCP and TFTP – services to smaller networks or resource constrained routers and firewalls.
It can be configured to cache DNS queries to improve DNS lookup, Internet browsing and domain record resolution speeds to previously visited sites.
5. BIND 9
BIND is an abbreviation for “Berkeley Internet Name Domain.” This is because it was created in the early 1980s at the University of California at Berkeley.
This DNS server is used often in Linux servers and can effectively manage DNS cookies while also securing the server from DoS attacks.
Setup BIND DNS Server on Azure
Setup BIND DNS Server on AWS
Setup BIND DNS Server on GCP
6. NSD
Another choice of Top 20 Best Open Source DNS Servers for (Linux / Windows) is the NLnet Labs Name Server Daemon (NSD). It is an authoritative DNS name server. It was developed for networks where speed, reliability, stability, and security are of high importance.
It is ideal for Top Level Domain (TLD) implementations, DNS Root server, and networks that need a fast and optimized authoritative name server.
NSD consists of two programs: the zone compiler and the name server. The name server works with an intermediate database prepared by the zone compiler from standard zone files.
7. YADIFA
YADIFA was designed with the efficient management of large Internet zones in mind. It uses dynamic updates to automatically change domain name records and is capable of optimally handling multiple Internet zones.
It is small and light as well as RFC-compliant. It supports DNSSEC protocol and related operations which are carried out in real time.
YADIFA is a cross-platform solution that runs on Linux, FreeBSD, OpenBSD, and Solaris.
8. pdnsd
pdnsd is a server designed for local caching of DNS information. It can significantly increase browsing speeds on broadband connections.
It was designed to be highly adaptable to situations where connectivity is slow, unreliable, unavailable or highly dynamic. This makes it ideal for use with Wi-Fi hotspots or dial-up internet.
pdnsd maintains a disk cache of queries that systems perform to ensure subsequent queries are served faster from the cache. It is can be used on personal Unix/Linux systems or at home with desktops or laptops.
9. Posadis
This powerful authoritative and caching DNS server supports IPv6 and is part of a suite of programs that supports graphical configuration and zone file management.
10. Pi-hole
Pi-hole is a Linux network level advertisement and Internet tracker blocking application. It acts as a DNS sinkhole and can be optionally configured as a DHCP server. It was intended for use on private networks.
As the name suggests, Pi-hole was designed for low-power embedded devices with network capability, like a Raspberry Pi, but can also be installed on Linux machines.
It can also block advertisements and trackers anywhere – on websites as well as on other devices like smart TVs and mobile devices. It uses lists of offending domains to compare DNS queries against and, when a match is found, refuses to resolve the requested domain.
11. djbdns
The djbdns DNS server is in fact software package consisting of 7 applications. It is a DNS implementation.
The server component includes solutions like a DNS resolver and cache, a black listing server and zone transfers.
The client component, meanwhile, includes the solutions for simple address from name lookup, simple text record from name lookup, and a mail exchanger lookup.
It was intentionally split during the design phase to reduce code size, eliminate complex daemon programs and easier debugging.
12. Eddie
Eddie Enhanced DNS server is an ideal tool for sites with distributed web servers. It is dynamic enough to cater to sites with complex and mixed architectures – including different operating systems.
It dynamically balances client domain name resolution requests across all sites, regardless of geographical locations.
13. AdGuard
AdGuard is a tool that was meant to make it easy to set up. It is used for content filtering, blocking ads, and preventing analytics systems from harvesting user data as they surf the Internet. It is powered by over 50 DNS servers that are spread across 15 locations on the globe.
It can even be implemented in a home to restrict access to children and underage users from accessing harmful websites or those with adult content.
AdGuard has reports on online activities – grouped by device or user – that are easy to understand.
14. Acrylic DNS Proxy
Another recommendation of Top 20 Best Open Source DNS Servers for (Linux / Windows) is Acrylic DNS Proxy. It is is an open source local DNS proxy that is designed for Windows operating systems. It helps improve computers’ performance by caching responses from DNS servers. It also helps fight unwanted ads with the help of custom HOSTS files that support wildcards as well as regular expressions.
Additional features that come with this tool include DNS caching, custom HOSTS files, support for DNS-over-HTTPS, as well as support for SOCKS 5 proxies.
Download Acrylic DNS Proxy here.
15. CoreDNS
CoreDNS is a DNS server written in Go and is flexible enough to be used in a multitude of environments. It has a selection of plugins to perform various DNS functions like Kubernetes service discovery, Prometheus metrics, rewriting queries, and serving from zone files.
It also has plugins for all major cloud providers including Microsoft Azure DNS, GCP Cloud DNS, and AWS Route53.
16. Technitium DNS Server
Technitium DNS Server is an open source authoritative as well as recursive DNS server. It is used for self hosting a DNS server for privacy and security. It works out-of-the-box with no or minimal configuration and provides a user-friendly web UI that is accessible using any modern web browser.
It can be used to configure Block List URLs that get daily updates automatically to block ads. It also supports DNS-over-TLS and DNS-over-HTTPS protocols for forwarders which allows for the use of popular public DNS resolvers like Cloudflare, Google, and Quad9 for privacy by encrypting DNS traffic and protection from man-in-the-middle attacks.
Download Technitium DNS Server here.
17. Dual DHCP DNS Server
Dual DHCP DNS Server is a self-integrated service that automatically adds DHCP shared hosts to a DNS server.
The DHCP server is useful when maintaining IP addresses manually is not feasible – in larger networks, for example. The DNS server, meanwhile, takes care of resolving hostnames to their corresponding IP addresses.
It runs on both Windows and Linux.
Download Dual DHCP DNS Server here.
18. Erl-DNS
The name Erl-DNS comes from the fact that it was written in Erlang. It is a complete open source name server solution.
This DNS solution is known for its fast query response times – gauged at 30-65 µs/response – and can be used as an authoritative name server. It comes with several storage methods for its zone data. Users can extend it easily using the Erlang module system.
19. Unbound
Unbound is a lean and fast recursive DNS resolver that can be used for validation and caching. It also incorporates modern features based on open standards.
Unbound supports DNS-over-TLS and DNS-over-HTTPS for communication encryption. It supports various modern standards that limit the amount of data exchanged with authoritative servers to make it more robust.
It runs on FreeBSD, OpenBSD, NetBSD, macOS, Linux, and Microsoft Windows.
20. Trust-DNS
Trust-DNS is a DNS client, server, and resolver. It is written in Rust and was built to be safe and secure from the ground up.
This resolver supports many common query patterns which can be configured when creating the resolver. It is capable of using system configuration on Unix and Windows operating systems.
Top 20 Best Open Source DNS Servers for (Linux / Windows)
There is few reasons why we prepared the list of 20 open source DNS servers. One reason could be that you might want to change the DNS servers assigned by your ISP is if you suspect there’s a problem with the ones you’re using now. Another reason to change DNS servers is if you’re looking for better performing service. Other common reason to use DNS servers is to prevent logging of your web activity so that you can have a more private browsing experience. Lastly maybe you wan to consider Domain Forwarding, then consider GoDaddy.
Although almost all of the top 20 best open source DNS servers we have seen come with detailed instructions I would welcome you do to individual and professional research with regards to installation, configuration and monitoring of your chosen solution.
After all, we wouldn’t want to lower the security of the network or make it worse than the original one.
What is MaraDNS
MaraDNS is a free open-source computer program written by Sam Trenholme.
MaraDNS implements the Domain Name System (DNS), an essential internet
service. MaraDNS is open source software: This means that anyone is
free to download, use, and modify the program free of charge, as per
its license.
People like MaraDNS because it’s small, lightweight, easy to set up,
and remarkably secure. It’s also cross platform — the program runs
both in Windows and in UNIX clones.
MaraDNS has a web page and blog at https://maradns.samiam.org.
MaraDNS’s Git tree is hosted at
GitHub,
GitLab,
Bitbucket,
Codeberg,
and
SourceHut
(Please use
GitHub discussions
for bug reports).
ABOUT
MaraDNS is a small and lightweight cross-platform open-source DNS
server. The server is remarkably easy to configure for someone
comfortable editing text configuration files. MaraDNS is released under
a BSD license.
I initially wrote MaraDNS while I was a college student and a travelling
English teacher during the first 2000s decade.
Since the COVID-19 pandemic, I have been actively adding new features
to MaraDNS, most notably the new coLunacyDNS
service which uses Lua
to customize DNS replies.
Versions of some MaraDNS programs compiled as Windows binaries
(without needing Cygwin or another POSIX emulation library) are
in the folder maradns-win32/
Building MaraDNS
To build MaraDNS, one needs a POSIX system with:
- A POSIX compatible shell
- A POSIX compatible implementation of
make
, which has the POSIX202X
feature of allowing a make target to have a/
in it. - Other standard POSIX utilities (
awk
, etc.) - A current C compiler which can support, via
stdint
, 8-bit, 16-bit,
32-bit, and 64-bit sized integers. - A POSIX C library with both POSIX and Berkeley socket support.
(To build some of the documentation, the non-standard but widely
available unix2dos
text conversion utility is used.)
Then, do this:
./configure
CC=cc # Change this to gcc/clang/tcc as desired
export CC
make
Note that most implementations of make
will set $CC
to cc
if it’s
not already set, but the POSIX spec
says that the default value should be c99
, a compiler which will not
compile MaraDNS. A POSIX program like MaraDNS will not compile with a
strictly ISO compliant C compiler (the POSIX system calls will fail to
compile). However, all of the C programs here compile with gcc
,
clang
, and tcc
, and should compile with any reasonable POSIX C
compiler.
All of these are very standard tools which are included with the vast
majority of Linux and BSD distributions; packages usually have names like:
clang
(which usesllvm
) for the C compilerlibc-dev
for the development C standard library, which will have socketsmake
for make; if one does not wish to use GNU make (the Linux standard),
other make implementations exist, e.g. https://github.com/samboy/maramake- POSIX compatible implementations of
sh
,awk
, and other utilities are
also almost always included as part of a Linux base install.
MaraDNS successfully compiles with gcc
, clang
, and tcc
; it
successfully builds with GNU make, bmake, pdpmake (as long as non-POSIX
and/or POSIX202X extensions are enabled and CC
has the value cc
), and
maramake. The version of make
used to compile MaraDNS needs to have
the command name make
. MaraDNS compiles and runs with both Busybox
versions of the core POSIX utilities and GNU coreutils.
Supported OSes
MaraDNS is built and runs on Ubuntu 22.04 as of late 2022.
I currently use Ubuntu 22.04 to develop MaraDNS, both Ubuntu 22.04 and
Alpine Linux 3.14 to test that MaraDNS builds and passes all automated
regressions, and a Windows XP virtual machine to make the Windows
binaries.
Please use systemd
While MaraDNS does have scripts for starting up MaraDNS at system boot
time on sysvinit
systems, these scripts are no longer fully supported,
since most major Linux distributions have moved on to systemd
, which
is a lot better than the older sysvinit
process for starting up the
MaraDNS related services.
While make install
is only guaranteed to get MaraDNS to start up at
system boot time on Ubuntu 22.04, it should do the right thing in Rocky
Linux, Debian, RedHat, CentOS, Fedora, and other Linux distributions
which use systemd
.
There is some scaffolding for getting MaraDNS to run without systemd
.
There is a helper, duende
, to make MaraDNS a daemon on systems with
classic *NIX style init. While, with systemd
, it’s no longer needed
to use this Duende helper, I will keep Duende around for sysvinit
and
some level of OpenRC
compatibility. There are also shell scripts for
starting MaraDNS on sysvinit
systems which may or may not work with
other init systems.
systemd
handles the daemonization of the MaraDNS services the way
duende
does (did?) on sysvinit
and similar systems. The systemd
way
is much simpler at the development level, since systemd now handles a lot
of complexity the old init systems forced networking services to handle.
Important note for Windows users
Users of Microsoft Windows are better off downloading a prebuilt Windows
binary: http://maradns.samiam.org/download.html (or, look in the
folder maradns-win32
here)
Be sure to download the file with the .zip extension.
Only Deadwood and coLunacyDNS binaries are provided.
Deadwood has passed Y2038 tests in Windows 10.
What is DNS
The internet uses numbers, not names, to find computers. DNS is the
internet’s directory service: It takes a name, like “www.maradns.org”,
and converts that name in to an “IP” number that your computer can use
to connect to www.maradns.org.
DNS is one of these things many take for granted that is essential to
using today’s internet. Without DNS, the internet breaks. It is
critical that a DNS server keeps the internet working in a secure and
stable manner.
MaraDNS’ History
MaraDNS was started in 2001 in response to concerns that there were
only two freely available DNS servers (BIND and DjbDNS) at the time.
MaraDNS 1.0 was released in mid-2002, MaraDNS 1.2 was released in late
2005, MaraDNS 2.0 was released in the fall of 2010, and MaraDNS had
a version number jump up to 3.3 in 2019 in order to have the same version
number as Deadwood.
MaraDNS 1.0 used a recursive DNS server that was implemented rather
quickly and had difficult-to-maintain code. This code was completely
rewritten for the MaraDNS 2.0 release, which now uses a separate
recursive DNS server.
Overview
MaraDNS 3.5 consists of three primary components: A UDP-only authoritative
DNS server for hosting domains, a UDP recursive DNS server called
Deadwood
for finding domains on the internet, and a Lua-powered DNS
server called coLunacyDNS
. MaraDNS’ recursive DNS server Deadwood
shares no code with MaraDNS’ authoritative DNS server.
coLunacyDNS
is a Lua-based name server which uses a combination of C
(for the heavy lifting of binding to DNS sockets, processing DNS requests,
and handling pending replies from upstream DNS servers) and Lua (for
deciding how to respond to a given query) to have both performance
and flexibility.
In more detail: MaraDNS has one daemon, the authoritative daemon
(called maradns
), that provides information to recursive DNS servers
on the internet, and another daemon, the recursive daemon (called
Deadwood
), that gets DNS information from the internet for web
browsers and other internet clients.
A simplified way to look at it: MaraDNS
puts your web page on the
Internet; Deadwood
looks for web pages on the Internet.
Since MaraDNS’ authoritative daemon does not support TCP, MaraDNS
includes a separate DNS-over-TCP server called zoneserver
that
supports both standard DNS-over-TCP and DNS zone transfers.
Neither MaraDNS nor the UNIX version of Deadwood have support for
daemonization; this is handled by a separate program included with
MaraDNS called Duende
. Deadwood’s Windows port, on the other hand,
includes support for running as a Windows service.
MaraDNS also includes a simple DNS querying tool called askmara
and
a number of other miscellaneous tools: Lua 5.1 scripts for processing
MaraDNS’ documentation (since MaraDNS comes with a fork of Lua 5.1, these
scripts do not have an external dependency), some Unicode conversion
utilities, scripts for building and installing MaraDNS, automated SQA
tests, etc.
MaraDNS
is a native UNIX program which can run in Windows via cygwin.
Both Deadwood
, MaraDNS’ recursive resolver, and coLunacyDNS
, a DNS
server configured with a Lua 5.1 script, are cross-platform applications
with full Windows ports.
MaraDNS 2.0 has full (albeit not fully tested) IPv6 support.
Internals
MaraDNS 3.5’s authoritative server uses code going all the way back
to 2001. The core DNS-over-UDP server has a number of components,
including two different zone file parsers, a mararc parser, a secure
random number generator, and so on.
MaraDNS is written entirely in C. No objective C nor C++ classes are
used in MaraDNS’ code.
MaraDNS 2.0’s “Deadwood” recursive server was started in 2007 and has
far cleaner code. Its random number generator, for example, uses a
smaller, simpler, and more secure cryptographic algorithm; its
configuration file parser uses a finite state machine interpreter; its
handling of multiple simultaneous pending connections is done using
select() and a state machine instead of with threads.
Other DNS servers
The landscape of open-source DNS servers has changed greatly since 2001
when MaraDNS was started. There are now a number of different DNS
servers still actively developed and maintained: BIND, Power DNS,
NSD/Unbound, as well as MaraDNS. DjbDNS is no longer being updated and
the unofficial forks have limited support; notably it took nearly five
months for someone to come up with a patch for CVE-2012-1191.
MaraDNS’ strength is that it’s a remarkably small, lightweight, easy to
configure, and mostly cross-platform DNS server. Deadwood is a tiny DNS
server with full recursion support, perfect for embedded systems.
MaraDNS’ weakness is that it does not have some features other DNS
servers have. For example, while Deadwood has the strongest spoof
protection available without cryptography, it does not have support for
DNSSEC.
As another example, MaraDNS does not have full zone transfer support;
while MaraDNS can both serve zones and receive external zone files from
other DNS servers, MaraDNS needs to be restarted to update its database
of DNS records.
MaraDNS’ future
MaraDNS is a mature application. Being open source code, the amount
of time I have to devote to MaraDNS is highly variable. Right now,
I am concentrating my efforts to revamp MaraDNS so that it can
continue to compile and run for as long as possible, minimizing the
number of external dependencies so that outside changes are unlikely
to break MaraDNS.
For MaraDNS to break, either the C language would have to change to
break programs that compile with few to no warnings here in the 2020s,
or the POSIX standard would have to change to the point that POSIX
compliant scripts which run here in the 2020s no longer run. Both
of these are very unlikely to happen.
Y2038 statement
MaraDNS is fully Y2038 compliant on systems with a 64-bit time_t. Here
in the 2020s, even 32-bit Linux distributions, such as Alpine Linux,
have a 64-bit time_t.
Deadwood, in addition, for its Windows 32-bit binary, uses Windows
filetime to generate internal timestamps; filetime stamps will not run
over until the year 30827 or so.
coLunacyDNS, likewise, uses Windows filetime for timestamps with its
Win32 binary.
On *NIX systems with a 32-bit time_t
, some features which depend on
OS-level time and date libraries are disabled. MaraDNS has support for
showing a human readable timestamp with the timestamp_type
parameter;
this parameter is disabled on systems with a 32-bit time_t
since the
underlying libraries MaraDNS uses will probably fail at the Y2038 cutoff.
Likewise, MaraDNS has support for generating a human-readable SOA
serial number with the synth_soa_serial
parameter, but this feature
is disabled if time_t
is 32-bit. In both cases, the feature in
question is, by default, disabled in MaraDNS, so only users who have
explicitly enabled these features will see any change in behavior.
MaraDNS has the ability to generate a synthetic SOA serial number if
a zone file does not have a SOA record. The SOA serial is based on the
timestamp for the zone file. If time_t
is 32-bit, MaraDNS assumes that
the stat
call will return a negative timestamp after the Y2038 cutoff,
and will adjust timestamps from before 2001 (the year MaraDNS was first
developed) to be after the Y2038 cutoff. If there are systems out there
where a stat
call for a file’s modification time fail after the Y2038
cutoff, one can avoid Y2038 issues by having a SOA record with a serial
number in zone files. The Windows port of MaraDNS, as of 3.5.0028,
uses Windows Y2038 compliant system calls instead of POSIX calls to get
zone file timestamps.
Both Deadwood and coLunacyDNS make some effort to generate accurate
timestamps on *NIX systems with a 32-bit time_t until later than
2106; this code assumes that 32-bit systems will have the time
stamp “wrap around” after 2038 but still have the 32-bit time be
updated.
Cyber Resilience Act statement
MaraDNS is a project developed on a strictly volunteer, non-commercial
basis. It has been developed outside the course of a commercial
activity, developed entirely in the Americas (i.e. outside of Europe)
and therefore is not subject to the restrictions or conditions of the
proposed EU Cyber Resilience Act. Someone selling a product that
uses any component of MaraDNS may be subject to this act and may
need to handle any and all necessary compliance.
MaraDNS, as always, is provided free of charge but with no warranty.
Updates
2022 Updates
MaraDNS was updated in 2022 to have its automated tests run in an Ubuntu
22.04 Docker container instead of an Ubuntu 20.04 Docker container.
The tests have also been updated to be more portable, running in both
Alpine Linux (Busybox-based Linux distro) and Ubuntu 22.04.
I also fixed a minor security issue, which also affected other DNS servers,
where a clever attacker with access to the recurisve DNS server could had
kept records in the cache longer than desired.
min_ttl
now correctly sets a minimum TTL for direct answers to queries.
I have backported the min_ttl
parameter to the older legacy 3.4 version
of MaraDNS.
While using Deadwood as a fully recursive server is not guaranteed to
be fully supported, I have fixed a long standing bug with how Deadwood
handled certain CNAME chains, and have added tests to make sure this
bug stays fixed.
MaraDNS no longer uses non-POSIX scripting languages not included
with MaraDNS:
- MaraDNS’s documentation system, EJ, has been updated to use Lua 5.1
(included with MaraDNS with the namelunacy
incoLunacyDNS/lunacy
)
instead of Perl scripts. - The old
bind2csv2.py
tool has been removed, so that MaraDNS no
longer needs Python to run any of its components.
2021 Updates
Deadwood has a new parameter: source_ip4
. This optional parameter
is used to specify the source IP when sending queries upstream. The
majority of users should be able to leave this untouched; this is for
cases when Deadwood is multi-homed and we need to specify which IP
to use when querying root or upstream DNS servers.
One line change to zoneserver.c to make it work better with systemd.
Synthetic IP generator example added to coLunacyDNS
2020 Updates
I have updated things so that the Git version of MaraDNS is the
authoritative “One source of truth” for MaraDNS’s source code.
The Git code is, every time a new MaraDNS release is made,
converted in to tarballs (with full Git history) which can be
downloaded at Sourceforge
and MaraDNS’s web page.
I have added block list support to Deadwood, to allow a large list
of host names to be blocked.
I have created a new service: coLunacyDNS
, a simple Lua-based DNS server
which can return IPv4 (A
) and IPv6 (AAAA
) DNS records. It has the
ability to query other DNS servers, and customize the answer given to
the client based on the contents of a Lua script. All programs have IPv6
support in Linux as well as *NIX clones, and the Windows 32-bit binary of
coLunacyDNS
has IPv6 support.
Support MaraDNS or
listen to my music
¡Download MaraDNS!
Current stable release
The current stable release of MaraDNS is MaraDNS 3.5.0036, released
May 2, 2023. This release is available as UNIX/Windows source
code and as a Windows binary zipfile.
maradns-3.5.0036.tar.xz
sig
maradns-3-5-0036-win32.zip
sig
Note that Deadwood is no longer a separate project, and is now
included with MaraDNS.
Git tree
MaraDNS is developed using the Git revision control system.
The Git code is hosted at multiple locations:
Github
—
Codeberg
—
Gitlab
—
Bitbucket
—
SourceHut
Please use Github to file bug reports.
GPG public key
All tarball releases are signed with MaraDNS’s
GPG public key (last updated 2012).
Other
MaraDNS includes the scripting language Lunacy,
a Lua 5.1 fork, which is used by the coLunacyDNS service, the document
building scripts, and in some of the automated tests. Lunacy can
use editline to
have up arrow history, making it more pleasant to use on the command
line. A local download of a recent source tarball is here at editline-1.17.1.tar.gz.
Click/tap here for MaraDNS 3.4.10
MaraDNS 3.4.10 is a legacy release where the only changes are
security and other important updates. Here is the tarball:
maradns-3.4.10.tar.gz.
There is also just Deadwood 3.4.09,
an older branch of Deadwood where, as with MaraDNS 3.4, the only
changes are security and other important updates. Note that
all Deadwood 3.4.09 files are included with MaraDNS 3.4.09.
View the changelog
Disclaimer
THIS SOFTWARE IS PROVIDED BY THE AUTHORS »AS IS» AND ANY EXPRESS
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Information on file types
.bz2 A .bz2 file is compressed with the bzip2
program. The maradns tar.bz2 file contains the source code for MaraDNS.
.zip A .zip file is a compressed file that
Windows XP can open.
The MaraDNS .zip file contains a Windows native binary of MaraDNS.
This tutorial intends to discuss on Top 5 Open Source DNS Servers For Linux and Windows. Because of the Open Source software, they are easy to customize and configure. Now stay with us for the rest of the article on the Orcacore website to get more information about DNS servers and what are the best open-source DNS server software.
Table of Contents
What is a DNS Server Used For?
For a simple explanation, we can say that a DNS server looks like a phonebook on the internet. When you browse the web and search for a website for example google.com, a DNS server’s job is to search and find the correct IP address for the website. With this option, you can access the website and use the information.
So DNS servers are responsible for answering the DNS (Domain Name System) queries.
As you can see DNS servers are so important and useful for us. Now you can proceed to the following steps and get familiar with the Top 5 Open Source DNS Servers For Linux and Windows.
Number 1 – PowerDNS – Open Source DNS Servers
PowerDNS is one of the Top 5 Open Source DNS Servers For Linux and Windows that provides excellent performance and features for managing the DNS servers. The current releases of PowerDNS include:
- PowerDNS Authoritative Server: Users can easily manage their DNS Zones and Records with the authoritative server. It works with many different scripts like Java, Python, etc.
- PowerDNS Recursor: It is a component of PowerDNS that gets the necessary DNS information by querying Authoritative servers, and then returns the results to the client.
- DNSdist: It is a load balancer that can be used to distribute incoming DNS queries across multiple Authoritative servers or DNS resolvers. Also, it has amazing filtering and policy rules which are very useful to monitor the health and efficiency of their DNS infrastructure.
At this point, we provide a list that defines the key features of PowerDNS and makes it one of the most powerful DNS servers for Linux and Windows users.
Benefits of PowerDNS |
High Performance and Scalability |
Flexible Backends |
DNSSEC Support |
Dynamic Updates |
API Integration |
Geo-Redundancy |
Various Use Cases |
Also, PowerDNS is a great alternative tool to BIND. It is a full-featured software that has high performance and security.
Tips: You can find PowerDNS installation and configuration guides on the Orcacore website. Here you can see some of the PowerDNS guides:
PowerDNS in Virtualizor
Set up PowerDNS on Ubuntu 22.04
Install PowerDNS on AlmaLinux 9
Number 2 – Knot DNS Server
As described on the Official site, Knot DNS is one of the top 5 Open Source high-performance authoritative-only DNS Servers that supports all key features of the modern domain name system. It can serve TLS domains too. Knot DNS has amazing features, module extensions, and supported networking features.
At this point, you can see the following list that includes some of the amazing Knot DNS server key features.
Knot DNS Server – Key Features |
Primary and secondary server operation |
DNS extension (EDNS0, EDE, EXPIRE) |
UDP, TCP, and QUIC protocols |
Zone catalog generation and interpretation |
DNSSEC with NSEC and NSEC3 |
Name server identification using NSID or Chaos TXT records |
YAML-based or database-based configuration |
Response rate limiting |
Forward and reverse records synthesis |
Number 3 – dnsmasq DNS DHCP servers
dnsmasq is a simple tool that is used to configure DNS and DHCP for small businesses and networks. It can serve domain names that are only locally applicable and will not appear in DNS servers around the world. The DHCP server is combined with the DNS server and allows DHCP-assigned addresses to be properly resolved in the DNS.
Also, the main use of dnsmasq is for NAT in home networks.
Here is an example of dnsmasq installation and configuration on a Linux distro:
Install and Configure Dnsmasq on Ubuntu 22.04
Number 4 – MaraDNS Small Open Source DNS Server For Linux and Windows
MaraDNs is one of the Top 5 software that is Open Source and used for building DNS servers for your internet services. It is a simple and secure DNS server and has a good performance. MaraDNS includes two releases which are:
- maradns: It is s authoritative-only nameserver.
- Deadwood: It is a recursive name server.
Also, MaraDNS makes DNSSEC simple, offers you a long list of plug-ins, and has every tool to improve the DNS server, and import data. You can run MaraDNS on both Windows and Linux operating systems.
Number 5 – NSD – Name Server Daemon
NSD (Name Server Daemon) by NLnet Labs is one of the best authoritative DNS name servers for Linux and Windows. It is available for most operating systems and is popular for its security, speed, reliability, stability, and high performance.
Because of its high performance and speed, it is the best solution for DNS servers.
Also, it is available for free and open-source under a BSD license.
Conclusion
As you know, there are more DNS server software that you can use for managing DNS. Here we try to discuss on Top 5 Open Source DNS Servers For Linux and Windows operating systems. We try to provide more guides on DNS servers and their configuration on different platforms.
Hope you enjoy it. So What do you think about DNS servers? Which one you will use?
Do you have an idea or suggestion? Please comment for us and share your ideas.
Also, you may be interested in these articles:
Best Linux System Monitoring GUI Tools
Introduce the Best Web Hosting Control Panels
Introducing 5 Linux Mail Servers
FAQs
How do I choose the right DNS server for my needs?
Choosing the right DNS server depends on your specific use case. For example, if you manage a large, enterprise-level network, BIND or PowerDNS are a good choice. For smaller networks or home use, Dnsmasq may be a better choice.
Are open-source DNS servers reliable for production environments?
Yes, many open-source DNS servers are widely used in both small and large production environments. DNS servers like BIND and PowerDNS are used by ISPs, enterprises, and organizations globally because of their reliability, performance, and community support.
Is it difficult to set up and configure an open-source DNS server?
Setting up an open-source DNS server may be difficult depending on the server you choose. Some DNS servers like Dnsmasq are easier to configure with fewer options, while others like BIND have advanced features that need more technical expertise to set up correctly.
— 10 min read
Table of Content
A DNS server (Domain Name System server) is a system that translates human-readable domain names (like example.com
) into IP addresses (like 192.0.2.1
), which are used by computers to identify each other on a network.
DNS is essential for the functioning of the internet, as it allows users to access websites and services using easy-to-remember names instead of numeric IP addresses.
Benefits of DNS Servers
- Simplified Access: DNS servers make it easy for users to access websites using domain names instead of complex IP addresses.
- Load Distribution: DNS can distribute traffic across multiple servers, improving performance and availability.
- Security: DNS servers can provide security features like DNSSEC, which protects against certain types of attacks.
- Redundancy: DNS allows for multiple servers to be configured for a single domain, ensuring reliability and uptime.
- Efficient Network Management: DNS servers help in managing and organizing network resources, making it easier to update and maintain large networks.
- Caching: DNS servers cache queries, reducing the load on authoritative servers and speeding up the response time for frequently accessed domains.
These benefits make DNS servers a critical component of the internet’s infrastructure, ensuring efficient and reliable access to online resources.
Here’s a simple list of the best 12 open-source DNS servers:
1. BIND
BIND (Berkeley Internet Name Domain) is a complete, highly portable implementation of the Domain Name System (DNS) protocol.
The BIND name server, named
, can act as an authoritative name server, recursive resolver, DNS forwarder, or all three simultaneously.
It implements views for split-horizon DNS, automatic DNSSEC zone signing and key management, catalog zones to facilitate provisioning of zone data throughout a name server constellation, response policy zones (RPZ) to protect clients from malicious data, response rate limiting (RRL) and recursive query limits to reduce distributed denial of service attacks, and many other advanced DNS features.
BIND also includes a suite of administrative tools, including the dig
and delv
DNS lookup tools, nsupdate
for dynamic DNS zone updates, rndc
for remote name server administration, and more.
BIND remains a critical component of the internet’s infrastructure, providing robust and flexible DNS services for networks of all sizes. Its extensive feature set and reliability make it a preferred choice for DNS administrators worldwide.
Features
- Authoritative DNS Server: BIND can act as an authoritative server for domains, providing definitive responses to DNS queries for those domains.
- Recursive DNS Server: BIND can also be configured as a recursive resolver, fetching DNS information from other servers on behalf of clients.
- DNSSEC Support: BIND supports DNS Security Extensions (DNSSEC), which adds a layer of security to DNS by allowing clients to verify the authenticity of the DNS data.
- Dynamic DNS (DDNS): BIND allows for dynamic updates, where DNS records can be updated in real-time without restarting the server.
- Access Control Lists (ACLs): BIND provides fine-grained access control, allowing administrators to specify which clients can query the server, make updates, or perform other actions.
- Views: This feature allows BIND to provide different DNS responses based on the client’s IP address, which is useful for implementing split-horizon DNS.
- Logging and Monitoring: BIND includes extensive logging and monitoring features, helping administrators track server performance and diagnose issues.
- Load Balancing: BIND supports load balancing features, including round-robin DNS, to distribute traffic across multiple servers.
- IPv6 Support: BIND fully supports IPv6, including the ability to serve IPv6 DNS records (AAAA records).
- Zone Transfers: BIND supports zone transfers (AXFR/IXFR) for replicating DNS data between multiple servers.
ISC Open Source Projects / BIND · GitLab
Welcome to the public repository for BIND 9 source code and issues. Classic, full-featured and mostly standards-compliant DNS.
GitLab
GitHub — cytopia/docker-bind: Bind (bind9) caching DNS server on Alpine or Debian with wild-card domain support [multi-arch]
Bind (bind9) caching DNS server on Alpine or Debian with wild-card domain support [multi-arch] — cytopia/docker-bind
GitHubcytopia
2. PowerDNS
PowerDNS is an advanced, high-performance DNS server software that is widely used in both enterprise environments and service provider networks. It is designed to be highly scalable, flexible, and capable of integrating with a variety of backends.
PowerDNS is open-source and offers both authoritative and recursive DNS solutions, making it a versatile choice for different DNS roles. It is known for its powerful configuration options, reliability, and extensive features that cater to modern DNS requirements.
PowerDNS is a robust and flexible DNS server solution that is well-suited for modern DevOps environments. Its combination of performance, scalability, and extensive feature set makes it an ideal choice for managing DNS services in complex and dynamic infrastructures.
Features
- Authoritative DNS Server
- Recursive DNS Resolver
- Flexible Backend Support (MySQL, PostgreSQL, SQLite, LDAP, etc.)
- DNSSEC Support
- High Availability and Scalability
- Advanced Query Logging and Monitoring
- API for Automation
- GeoDNS and Traffic Management
- Integration with External Systems
- DNS Caching
- Optimized Performance
Home
Boost subscriber performance by up to 25% for less than 1% of your overall 5G network investment.
powerdns_logoOtto Moerbeek
3. Unbound
Unbound is a validating, recursive, and caching DNS resolver developed by NLnet Labs. It’s designed for high performance and security, making it a popular choice for DNS resolution tasks.
Unbound operates as an open-source project, offering a lightweight and efficient solution for DNS lookups while ensuring privacy and integrity through features like DNSSEC validation.
It is widely used in both small and large-scale deployments, from personal devices to enterprise networks. The project is maintained by a community focused on security, privacy, and stability, making Unbound a reliable choice for modern DNS infrastructure.
GitHub — NLnetLabs/unbound: Unbound is a validating, recursive, and caching DNS resolver.
Unbound is a validating, recursive, and caching DNS resolver. — NLnetLabs/unbound
GitHubNLnetLabs
4. NSD (Name Server Daemon)
NSD (Name Server Daemon) is an open-source authoritative DNS server developed by NLnet Labs. It is designed for high performance, security, and simplicity, making it ideal for serving DNS zones efficiently.
NSD is used in various environments, from small networks to large-scale internet infrastructures, where stability and reliability are critical. It focuses solely on authoritative DNS service without the added complexity of other DNS functions, ensuring it performs its role with speed and efficiency.
Name Server Daemon (NSD) by NLnet Labs — NSD 4.3.9 documentation
5. MaraDNS
MaraDNS is a lightweight, fe DNS server designed for simplicity, security, and ease of use. It provides both authoritative and recursive DNS services, making it versatile for various DNS tasks. MaraDNS is known for its small footprint, making it suitable for systems with limited resources.
It emphasizes security by default, with features like source code simplicity and minimal attack surface.
MaraDNS is well-suited for users who need a straightforward and secure DNS solution without the complexity of larger DNS servers.
MaraDNS — a small open-source DNS server
a small open-source DNS server
6. CoreDNS
CoreDNS is a flexible, extensible, and high-performance DNS server that can serve as a DNS forwarder, authoritative server, or service discovery tool. It is written in Go and designed with a modular architecture, allowing users to extend its functionality with plugins easily.
CoreDNS is widely used in cloud-native environments, particularly in Kubernetes, where it acts as the default DNS server.
Its simplicity, scalability, and integration with modern infrastructure make CoreDNS a popular choice for managing DNS in dynamic and containerized environments.
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.bind
and 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).
GitHub — coredns/coredns: CoreDNS is a DNS server that chains plugins
CoreDNS is a DNS server that chains plugins. Contribute to coredns/coredns development by creating an account on GitHub.
GitHubcoredns
CoreDNS: DNS and Service Discovery
kubernetes home
7. Knot DNS
Knot DNS is a high-performance authoritative-only DNS server.
Features
- Authoritative DNS Server
- High-Performance and Scalability
- DNSSEC Support
- Zone Transfers and Incremental Zone Updates
- Efficient Memory Use
- Multi-Threaded Processing
- Dynamic DNS (DDNS) Support
- Modular Configuration with Profiles
- Remote Control via API
- Built-in DNS Tools (e.g., zone file editor, key manager)
- Support for DNS over TLS (DoT)
- Incremental AXFR and IXFR Support
Knot projects / Knot DNS · GitLab
Knot DNS is a high-performance authoritative-only DNS server.
GitLab
Knot DNS
High-performance authoritative DNS server
Knot DNS
8. djbdns
djbdns is a DNS software package created by Daniel J. Bernstein as a secure alternative to BIND, addressing repeated security vulnerabilities found in the latter. Bernstein was so confident in its security that he offered a $1000 reward for anyone who could find a security hole, which was claimed in 2009. Despite being released in 2001 and placed in the public domain in 2007, djbdns remains popular, especially its tinydns component, which was the second most widely used authoritative DNS server in 2004.
One of djbdns’s notable strengths is its immunity to the widespread DNS cache poisoning vulnerability reported in 2008, though it was later found to be susceptible to a related attack. Since its release, the source code hasn’t been centrally managed, leading to numerous forks and patches, including dbndns, a version maintained by the Debian Project.
Overall, djbdns is recognized for its security and efficiency, making it a notable choice for DNS servers despite its age and lack of centralized updates.
djbdns: Domain Name System tools
9. YADIFA
YADIFA is a lightweight authoritative Name Server with DNSSEC capabilities. Developed by the passionate people behind the .eu top-level domain, YADIFA has been built from scratch to face today’s DNS challenges, with no compromise on security, speed and stability, to offer a better and safer Internet experience.
GitHub — yadifa/yadifa: YADIFA is a lightweight authoritative Name Server with DNSSEC capabilities. Developed by the passionate people behind the .eu top-level domain, YADIFA has been built from scratch to face today’s DNS challenges, with no compromise on security, speed and stability, to offer a better and safer Internet experience.
YADIFA is a lightweight authoritative Name Server with DNSSEC capabilities. Developed by the passionate people behind the .eu top-level domain, YADIFA has been built from scratch to face today’s…
GitHubyadifa
10. dnsmasq
dnsmasq provides a DNS server, a DHCP server with support for DHCPv6 and PXE, and a TFTP server. It is designed to be lightweight and have a small footprint, suitable for resource constrained routers and firewalls. dnsmasq can also be configured to cache DNS queries for improved DNS lookup speeds to previously visited sites.
Features
- DNS Caching
- DHCP Server
- DNS Forwarding
- TFTP Server
- IPv6 Support
- DNSSEC Validation
- Dynamic DNS (DDNS)
- Integrated with Network Booting (PXE)
- Configurable Domain Assignment
- Small Footprint and Low Resource Usage
Dnsmasq — network services for small networks.
network services for small networks.
11. Technitium DNS Server
Technitium DNS Server is an open source authoritative as well as recursive DNS server that can be used for self hosting a DNS server for privacy & security. It works out-of-the-box with no or minimal configuration and provides a user friendly web console accessible using any modern web browser.
Technitium DNS Server provides a HTTP API which is used by the web console to perform all actions. Thus any action that the web console does can be performed using this API from your own applications.
GitHub — TechnitiumSoftware/DnsServer: Technitium DNS Server
Technitium DNS Server. Contribute to TechnitiumSoftware/DnsServer development by creating an account on GitHub.
GitHubTechnitiumSoftware
12. CZNIC Knot Resolver
Knot Resolver is a high-performance, open-source DNS resolver developed by CZ.NIC. It is designed to be highly modular, allowing users to customize and extend its functionality with ease. Knot Resolver supports modern DNS protocols and provides advanced features for DNS resolution, making it a powerful tool for managing DNS queries in various environments.
Features
- Modular Architecture
- DNS-over-HTTPS (DoH) and DNS-over-TLS (DoT) Support
- DNSSEC Validation
- High Performance and Scalability
- Customizable Scripting with Lua
- Aggressive DNS Caching
- Support for DNS Forwarding
- Advanced Query Filtering
- Remote Configuration API
- Open-Source and Actively Maintained
Knot Resolver
Resolve DNS names like it’s 2024
Knot Resolver
These DNS servers are widely used for various purposes, from authoritative name servers to caching resolvers.