Code Quality Rank: L3
Programming language: C
License: GNU General Public License v3.0 only
Tags: DNS    
Latest version: v3.0-xdp4

Knot DNS alternatives and similar tools

Based on the "DNS" category.
Alternatively, view Knot DNS alternatives based on common mentions on social networks and blogs.

  • PowerDNS

    PowerDNS Authoritative, PowerDNS Recursor, dnsdist
  • Unbound

    Unbound is a validating, recursive, and caching DNS resolver.
  • Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
    Promo www.influxdata.com
    InfluxDB Logo
  • Bind

    Mirror of https://gitlab.isc.org/isc-projects/bind9, please submit issues and PR/MRs in the GitLab. Any issues and PRs opened here will be closed without a comment.
  • NSD

    The NLnet Labs Name Server Daemon (NSD) is an authoritative, RFC compliant DNS nameserver.
  • Knot DNS Resolver

    Knot Resolver - resolve DNS names like it's 2024
  • Designate

    OpenStack Technical Committee Decisions. Mirror of code maintained at opendev.org.
  • 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.
  • dnsmasq

    DISCONTINUED. mirror of dnsmasq (git://thekelleys.org.uk/dnsmasq.git ). This account is NOT maintained by dnsmasq developers. I am happy to give account to them. Please feel free to contact me. 1584171677[at]qq[dot]com
  • djbdns

    A collection of DNS applications, including tinydns.
  • CoreDNS

    Flexible DNS server written on Go.

Do you think we are missing an alternative of Knot DNS or a related project?

Add another 'DNS' Tool


Language grade: C/C++ Coverity Status Fuzzing Status Documentation Status





1. Install prerequisites

Debian based distributions

Update the system:
sudo apt-get update
sudo apt-get upgrade
Install prerequisites:
sudo apt-get install \
  libtool autoconf automake make pkg-config liburcu-dev libgnutls28-dev libedit-dev liblmdb-dev
Install optional packages:
sudo apt-get install \
  libcap-ng-dev libsystemd-dev libidn2-0-dev libprotobuf-c-dev protobuf-c-compiler libfstrm-dev libmaxminddb-dev libnghttp2-dev libmnl-dev

Fedora like distributions

Update the system:
dnf upgrade
Install basic development tools:
dnf install @buildsys-build
Install prerequisites:
dnf install \
  libtool autoconf automake pkgconfig userspace-rcu-devel gnutls-devel libedit-devel lmdb-devel
Install optional packages:
dnf install \
  libcap-ng-devel systemd-devel libidn2-devel protobuf-c-devel fstrm-devel libmaxminddb-devel libnghttp2-devel libmnl-devel

When compiling on RHEL based system, the Fedora EPEL repository has to be enabled. Also for RHEL 6, forward compatibility package gnutls30-devel with newer GnuTLS is required instead of gnutls-devel.

2. Install Knot DNS

Get the source code:

git clone https://gitlab.nic.cz/knot/knot-dns.git

Or extract source package to knot-dns directory.

Compile the source code:

cd knot-dns
autoreconf -if

Install Knot DNS into system:

sudo make install
sudo ldconfig


1. Ensure some configuration


Please see [samples/knot.sample.conf](samples/knot.sample.conf), project documentation, or man 5 knot.conf for more details. Basically the configuration should specify:

  • network interfaces
  • served zones

E.g. use the default configuration file:

cd /etc/knot
mv knot.sample.conf knot.conf

Modify the configuration file:

editor knot.conf

2. Prepare working directory

mv example.com.zone /var/lib/knot/

3. Start the server


This can be done by running the knotd command. Alternatively, your distribution should have an init script available, if you installed Knot DNS from a binary package.

Start the server in foreground to see if it runs:

knotd -c /etc/knot/knot.conf