mirror of
https://gitlab.nic.cz/knot/knot-dns.git
synced 2026-02-03 18:49:28 -05:00
Knot DNS - DNS autoritaire haute performance
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.
|
||
|---|---|---|
| distro | ||
| doc | ||
| m4 | ||
| python | ||
| samples | ||
| scripts | ||
| src | ||
| tests | ||
| tests-extra | ||
| tests-fuzz | ||
| .dir-locals.el | ||
| .dockerignore | ||
| .gitattributes | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| .gitmodules | ||
| autogen.sh | ||
| configure.ac | ||
| COPYING | ||
| Dockerfile | ||
| Doxyfile.in | ||
| Knot.config | ||
| Knot.creator | ||
| Knot.files | ||
| Knot.includes | ||
| Makefile.am | ||
| NEWS | ||
| README.md | ||
Requirements
Installation
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
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
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