Knot DNS - DNS autoritaire haute performance
Find a file
Daniel Salzman 1f98f8dc18 nameserver: decrease maximum CNAME/DNAME chain length from 20 to 5
The reason for this change is to reduce possible amplification attacks and
other negative effects of long processing loops.

Also most resolvers don't accept multiple jumps without requerying, so this
change should be harmless.
2021-03-05 08:50:06 +01:00
distro Revert "distro/deb: rename knot.tmpfile -> knot.tmpfiles" 2021-03-02 14:45:42 +01:00
doc kxdpgun: obtain routes from RTNETLINK instead popen(/sbin/ip) 2021-02-23 16:20:17 +01:00
m4 configure: don't automatically disable fastparser with Clang compiler 2020-09-14 16:45:35 +02:00
python python: allow calling from other directories 2020-08-07 21:37:06 +02:00
samples doc: replace terms master/slave with primary/secondary where suitable 2021-01-19 19:40:13 +01:00
scripts scripts: rename PowerTools to powertools in CentOS Dockerfile 2021-02-23 17:27:41 +01:00
src nameserver: decrease maximum CNAME/DNAME chain length from 20 to 5 2021-03-05 08:50:06 +01:00
tests conf: ignore obsolete default-template-related options 2021-02-23 11:21:58 +01:00
tests-extra nameserver: decrease maximum CNAME/DNAME chain length from 20 to 5 2021-03-05 08:50:06 +01:00
tests-fuzz tests-fuzz: fix inconsistent server_reconfigure() API 2021-01-27 13:11:51 +01: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 kzonesign: move from sbin to bin 2020-08-06 20:54:16 +02:00
.gitlab-ci.yml distro/tests: update distributions 2020-10-30 17:14:14 +01:00
.gitmodules Update links to gitlab.nic.cz 2020-07-28 16:41:05 +02:00
autogen.sh add autogen.sh 2014-12-17 14:14:56 +01:00
configure.ac kxdpgun: obtain routes from RTNETLINK instead popen(/sbin/ip) 2021-02-23 16:20:17 +01:00
COPYING COPYING: remove obsolete OpenSSL exception as we no longer use OpenSSL 2019-09-30 21:48:46 +02:00
Dockerfile Dockerfile: replace iproute2 with libmnl 2021-02-23 16:20:17 +01:00
Doxyfile.in doxygen: don't use logo as it's too big anyway 2019-10-06 19:23:56 +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 kxdpgun: remove unused popenve 2021-02-23 16:20:17 +01:00
Knot.includes zscanner: move to libzscanner 2018-03-12 13:37:09 +01:00
Makefile.am Include README.md in distribution package 2020-05-25 12:29:19 +02:00
NEWS NEWS: extend improvement/fix description 2021-01-11 09:44:56 +01:00
README.md kxdpgun: obtain routes from RTNETLINK instead popen(/sbin/ip) 2021-02-23 16:20:17 +01:00

Language grade: C/C++ Coverity Status Fuzzing Status Documentation 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-0-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
./configure
make

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