Knot DNS is a high-performance authoritative-only DNS server.
  • C 85.4%
  • Python 11.4%
  • Ragel 1%
  • Makefile 0.7%
  • Shell 0.6%
  • Other 0.8%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Daniel Salzman 303a0acf21 Merge branch 'fix_test_events_soa' into 'master'
Fix test events/soa

See merge request knot/knot-dns!1932
2026-11-06 10:59:17 +01:00
distro ZONEMD: correct handling of NSEC3-like-owenered ordinary RRs... 2026-10-20 18:53:33 +02:00
doc libknot+kdig+probe: support for EDNS(0) CO flag RFC9824 2026-11-03 14:47:26 +01:00
m4 Fix code coverage measurement 2025-12-06 19:30:49 +01:00
python python: add missing 'y' zone-purge filter to the documentation 2026-10-15 08:17:32 +02:00
samples samples: add systemd template service file knot@.service 2026-09-18 09:21:21 +02:00
scripts scripts: remove linux/arm/v7 from Makefile.docker 2026-09-08 10:37:52 +02:00
src conf: add check for empty key secret 2026-11-04 13:17:11 +01:00
tests zone-update: include TTL changes in RRset diffs 2026-11-03 15:26:13 +01:00
tests-extra tests-extra: events/soa -- always beware of ongoing AXFR 2026-11-04 16:43:21 +01:00
tests-fuzz fuzz_svcb_render: add missing license header 2026-10-23 12:45:39 +02:00
tests-redis tests-redis: remove RLTest lockfile in tmp to avoid problems with removing when user changes 2026-06-22 15:36:42 +02:00
.dir-locals.el added surmised C indentation rules for emacs users 2017-03-25 13:15:24 -05:00
.dockerignore docker: Transfer much less data for build 2021-02-09 14:21:46 +01:00
.gitattributes Add .gitattributes export-ignore 2011-11-02 14:58:23 +01:00
.gitignore gitignore: newer qtcreator stuff 2026-06-04 19:25:36 +02:00
.gitlab-ci.yml CI: update Fedora versions 2026-07-31 16:27:13 +02:00
.gitmodules OSS-Fuzz: Add new fuzzer targets svcb reader 2026-10-23 15:36:29 +08:00
autogen.sh add autogen.sh 2014-12-17 14:14:56 +01:00
configure.ac configure: improve libhiredis detection 2026-11-02 08:59:48 +01:00
COPYING COPYING: change to LGPL-2.0 or later 2025-03-24 09:53:50 +01:00
Dockerfile docker: Update Dockerfiles to install protobuf-compiler to use protoc instead of protoc-c 2025-11-27 15:52:28 +01:00
Doxyfile.in Update Doxyfile 2025-10-24 09:17:08 +02:00
Knot.config Try to solve undetected defines from config.h in QTcreator 2017-08-22 09:06:53 +02:00
Knot.creator Added QtCreator project files 2011-02-28 11:19:59 +01:00
Knot.files mod-ecs: new module setting the ECS scope prefix length 2026-09-29 16:19:32 +02:00
Knot.includes Update Knot.includes 2025-12-15 08:33:51 +01:00
Makefile.am Fix code coverage measurement 2025-12-06 19:30:49 +01:00
NEWS NEWS: add version 3.6.0 2026-09-08 09:28:30 +02:00
README.md README: remove not updated Coverity status 2026-08-18 10:44:31 +02:00

Fuzzing Status

Requirements

doc/requirements.rst

Installation

doc/installation.rst

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-dev libprotobuf-c-dev protobuf-c-compiler protobuf-compiler libfstrm-dev libmaxminddb-dev libnghttp2-dev libbpf-dev libxdp-dev libmnl-dev python3-sphinx python3-sphinx-panels softhsm2

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 libbpf-devel libxdp-devel libmnl-devel python-sphinx python-sphinx-panels softhsm

When compiling on RHEL based system, the Fedora EPEL repository has to be enabled.

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
./configure
make

Note that ./configure accepts various parameters (see ./configure --help). The following examples assume --sysconfdir=/etc and --localstatedir=/var/lib.

Install Knot DNS into system:

sudo make install
sudo ldconfig

Running

1. Ensure some configuration

doc/configuration.rst

Please see 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

doc/operation.rst

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