Knot DNS - DNS autoritaire haute performance
Find a file
2015-08-21 13:24:16 +02:00
doc Merge branch 'keymgr-tsig-generate' into 'master' 2015-08-13 19:19:09 +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 Makefile: don't install bash completition 2015-08-21 13:24:16 +02:00
scripts scripts: update project files script 2015-05-14 13:26:35 +02:00
src process: remove storage writability check 2015-08-19 13:32:58 +02:00
tests timers: update timers just when server shutdown or reload 2015-08-10 18:52:39 +02:00
tests-extra tests-extra: add server.clean + improve events/flush test 2015-08-06 14:20:25 +02:00
tests-fuzz tests-fuzz: add missing binary to gitignore 2015-08-20 14:24:57 +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 Makefile: don't install bash completition 2015-08-21 13:24:16 +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 Merge branch 'afl-persistent' into 'master' 2015-08-20 14:35:20 +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 Makefile: don't install bash completition 2015-08-21 13:24:16 +02:00
NEWS update NEWS 2015-07-14 13:58:07 +02:00
README Added Gitter link 2015-07-17 10:50:01 +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:
$ 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'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

Join the chat at https://gitter.im/CZ-NIC/knot