Knot DNS - DNS autoritaire haute performance
Find a file
David Vašek a5738dc673 debug: sample of a signal debug handler
In this example this debugging tool uses records specific data in put_additional() (in knot/nameserver/internet.c)
and prints them out in case of SIGSEGV signal arrives during processing of the same function.
In other uses, the examined data and their print-out format must be modified.

WARNING: This simple solution isn't thread-safe -- the debug data can be overwritten by another thread
         processing the same function. If code is being processed in parallel, this debugging helper
         should be used to debug short parts of code at most.
2023-09-22 15:58:32 +02:00
distro distro/deb: synchronize deb-nolibxdp/control with deb/control 2023-09-15 07:49:38 +02:00
doc keymgr/offlineKSK: bugfix: KSK side not refreshing RRSIGS if unset rrsig-refresh 2023-09-22 12:33:10 +02:00
m4 m4: change the non-release versioning to comply with PEP 440 2023-06-21 20:13:29 +02:00
python knot_exporter: new option --no-zone-serial 2023-09-14 07:34:04 +02:00
samples dbus: new option keys_updated 2023-06-29 14:19:32 +02:00
scripts scripts: remove texinfo from Dockerfiles 2023-08-30 08:22:45 +02:00
src debug: sample of a signal debug handler 2023-09-22 15:58:32 +02:00
tests zone-sign: don't share PKCS 11 private keys by multiple signing threads 2023-09-20 18:14:39 +02:00
tests-extra tests-extra/offline_ksk: synchronize policy configurations with the documentation 2023-09-22 12:33:10 +02:00
tests-fuzz tests-fuzz: use the same style for setting a buffer size 2023-07-31 18:52:20 +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 Add support for building on Cygwin and MSYS 2023-02-17 08:03:06 +01:00
.gitlab-ci.yml pkg: remove deprecated Debian Buster and Ubuntu Bionic 2023-09-14 12:45:43 +02: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 doc: remove broken info support 2023-08-30 08:16:56 +02:00
COPYING COPYING: remove obsolete OpenSSL exception as we no longer use OpenSSL 2019-09-30 21:48:46 +02:00
Dockerfile docker: change MAINTAINER to LABEL due to deprecation 2023-07-13 08:40:43 +02:00
Doxyfile.in Doxyfile: remove obsolete options 2022-03-16 15:24:42 +01: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 debug: sample of a signal debug handler 2023-09-22 15:58:32 +02:00
Knot.includes contrib: remove embedded libbpf 0.0.6, which no longer works with BTF and old kernels 2022-12-19 20:45:25 +01:00
Makefile.am Include README.md in distribution package 2020-05-25 12:29:19 +02:00
NEWS NEWS: add version 3.3.0 2023-08-26 09:57:13 +02:00
README.md Add python-sphinx-panels to dependencies where necessary 2023-08-17 09:10:56 +02:00

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

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

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

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