Knot DNS - DNS autoritaire haute performance
Find a file
Jan Vcelak 2c4ebdffe1 tests-extra: enable additionals checking for selected tests
The Additional section of the answers should be compared with BIND on
expected delegations.

Knot DNS also puts A/AAAA records into the Additional section for NS,
MX, and SRV records.
2015-07-09 15:40:35 +02:00
doc Merge branch 'conf_file_no_dot' into 'master' 2015-06-18 12:42:28 +02:00
libtap tests: use libtool to link libtap 2015-05-25 17:27:49 +02:00
m4 Add AS_VAR_COPY compatibility macro for CentOS 2015-05-28 12:04:07 +02:00
samples configure: add --with-bash-completions=auto flag 2015-06-15 11:28:32 +02:00
scripts scripts: update project files script 2015-05-14 13:26:35 +02:00
src server: don't put NS into authority for authoritative answers 2015-06-29 18:29:26 +02:00
tests tests/dthreads: fix possible NULL dereference 2015-06-22 12:41:44 +02:00
tests-extra tests-extra: enable additionals checking for selected tests 2015-07-09 15:40:35 +02:00
tests-fuzz move utilities for fuzzy testing outside tests 2015-04-02 14:06:49 +02:00
.gitattributes Add .gitattributes export-ignore 2011-11-02 14:58:23 +01:00
.gitignore Add /src/zscanner/libzscanner.pc to .gitignore 2015-05-20 15:12:28 +02:00
.ycm_extra_conf.py YCM config: ignore custom warnings in editor 2015-05-22 16:56:44 +02:00
AUTHORS Second try on adding Jan Včelák to AUTHORS 2013-04-05 14:22:31 +02:00
autogen.sh add autogen.sh 2014-12-17 14:14:56 +01:00
ChangeLog First try at autotools 2011-02-25 15:26:15 +01:00
configure.ac bump version to 2.0.0 (final) 2015-06-26 11:03:09 +02:00
COPYING Add OpenSSL linking exception to the copyright file 2011-11-02 23:23:31 +01:00
coverity_model.c Add an empty Coverity modeling file as a base 2014-04-07 10:27:16 +02:00
Doxy.page.h Various spelling and typo fixes 2014-03-24 09:43:16 +01:00
Doxyfile Add src/dnssec to master Doxyfile 2015-02-11 13:11:12 +01:00
Knot.config Project files updates + doxygen fixes 2014-11-07 09:46:57 +01:00
Knot.creator Added QtCreator project files 2011-02-28 11:19:59 +01:00
Knot.files conf: split the configuration into the base and the interface 2015-06-01 16:41:04 +02:00
Knot.includes tests: add common configuration helper 2015-05-14 09:10:10 +02:00
KNOWN_ISSUES doc: insert supported classes info from KNOWN_ISSUES 2014-08-20 16:07:11 +02:00
Makefile.am configure: add --with-bash-completions=auto flag 2015-06-15 11:28:32 +02:00
NEWS bump version to 2.0.0 (final) 2015-06-26 11:03:09 +02:00
README README: update Fedora instructions 2015-06-03 21:13:33 +02:00
THANKS Clean project directory 2013-10-01 14:19:49 +02:00

Dependencies
============

Knot DNS has several dependencies:
* libtool
* autoconf > 2.65
* liburcu >= 0.5.4
* gnutls >= 3.0
* jansson >= 2.3

Embedded libraries:
* lmdb               (system library is preferred)

Optional packages:
* libcap-ng >= 0.6.4 (for POSIX 1003.1e capabilities(7))
* libidn             (for IDNA2003 support in Knot utilities)
* libsystemd         (for systemd init system support)

Dependencies for building documentation:
* python-sphinx

Installation
============

Knot DNS may already be included in your operating system distribution and
therefore can be installed from packages (Linux), ports (BSD) or via
Homebrew (Mac). This is always preferred unless you want to test the latest
features, contribute to Knot development, or you just know what you are doing.

Following sections describe how to build Knot DNS from the source code.

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 liburcu-dev libgnutls28-dev libjansson-dev

Install optional packages to override embedded libraries:
$ sudo apt-get install liblmdb-dev

Install optional packages:
$ sudo apt-get install libcap-ng-dev libsystemd-dev

Fedora like distributions
-------------------------
Update the system:
# yum upgrade

Install basic development tools:
# yum install @buildsys-build

Install prerequisites:
# yum install \
  libtool autoconf automake userspace-rcu-devel gnutls-devel jansson-devel

Install optional packages to override embedded libraries:
# yum install lmdb-devel

Install optional packages:
# yum install libcap-ng-devel systemd-devel protobuf-c-devel fstrm-devel libidn-devel

2) Install Knot DNS

Knot DNS requires compiler to support atomic intrinsics.
GCC version at least 4.1 supports legacy atomic builtins, however 4.7
or newer is preferred. Clang supports atomics since version 2.9.

Get the source code:
$ git clone git://git.nic.cz/knot-dns.git
Or extract source package to knot-dns directory

Compile Knot
$ cd knot-dns
$ autoreconf -if
$ ./configure
$ make

Install Knot DNS into system:
$ sudo make install
$ sudo ldconfig

NOTE: If you want to reduce zscanner compile time, use configure option --disable-fastparser.

Running
=======

1) Each server needs configuration file. Please see samples/knot.sample.conf,
project documentation, or man 5 knot.conf for more details.
Configuration file has to specify:
- storage for PID files, journal files etc.
- network interfaces
- served zones

E.g. use the default config file:
$ cd /etc/knot
$ mv knot.sample.conf knot.conf
Modify the config:
$ vim 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've
installed Knot using a binary package.

Start Knot in the foreground to see if it runs:
$ knotd -c myserver.conf

For more information, refer to the user manual or:
$ knotc -h
$ knotd -h