summaryrefslogtreecommitdiffstats
path: root/doc/requirements.rst
diff options
context:
space:
mode:
authorDaniel Salzman <daniel.salzman@nic.cz>2017-06-19 13:31:55 +0200
committerDaniel Salzman <daniel.salzman@nic.cz>2017-06-19 22:21:52 +0200
commit4078f1500892f156e4c8f4aeebbf427aa0c7bc88 (patch)
treeea68e7f603f7225705588aa4cbace4effb38f919 /doc/requirements.rst
parentMerge branch 'fix_ettl' into 'master' (diff)
downloadknot-4078f1500892f156e4c8f4aeebbf427aa0c7bc88.tar.xz
knot-4078f1500892f156e4c8f4aeebbf427aa0c7bc88.zip
doc: unify installation, update introduction, and extend migration
Diffstat (limited to 'doc/requirements.rst')
-rw-r--r--doc/requirements.rst63
1 files changed, 51 insertions, 12 deletions
diff --git a/doc/requirements.rst b/doc/requirements.rst
index cba883b62..d596c6e21 100644
--- a/doc/requirements.rst
+++ b/doc/requirements.rst
@@ -13,26 +13,33 @@ installations, and a commodity server or a virtual solution will be
sufficient in most cases.
However, please note that there are some scenarios that will require
-administrator's attention and a testing of exact requirements before
-deploying Knot DNS to a production environment. These cases include deployment for a
-large number of zones (DNS hosting), large number of records in one
-or more zones (TLD) or large number of requests.
+administrator's attention and some testing of exact requirements before
+deploying Knot DNS to a production environment. These cases include
+deployment for a large number of zones (DNS hosting), large number
+of records in one or more zones (TLD), or large number of requests.
CPU requirements
----------------
-Knot DNS scales with processing power and also with the number of
-available cores/CPUs.
+The server scales with processing power and also with the number of
+available cores/CPUs. Enabling Hyper-threading is convenient if supported.
There is no lower bound on the CPU requirements, but it should support
memory barriers and CAS (i586 and newer).
+Network card
+------------
+
+The best results have been achieved with multi-queue network cards. The
+number of multi-queues should equal the total number of CPU cores (with
+Hyper-threading enabled).
+
Memory requirements
-------------------
-Knot DNS implementation focuses on performance and thus can be quite
+The server implementation focuses on performance and thus can be quite
memory demanding. The rough estimate for memory requirements is
-3 times the size of the zone in text format. Again this is only
+3 times the size of the zone in the text format. Again this is only
an estimate and you are advised to do your own measurements before
deploying Knot DNS to production.
@@ -45,7 +52,39 @@ deploying Knot DNS to production.
Operating system
================
-Knot DNS itself is written in a portable way, but it depends on
-several libraries. Namely userspace-rcu, which could be a constraint
-when it comes to the operating system support. Knot DNS can be compiled
-and run on most UNIX-like systems, such as Linux, \*BSD, and OS X.
+Knot DNS itself is written in a portable way and can be compiled
+and run on most UNIX-like systems, such as Linux, \*BSD, and macOS.
+
+Required libraries
+==================
+
+Knot DNS requires a few libraries to be available:
+
+* libedit
+* GnuTLS >= 3.3
+* Userspace RCU >= 0.5.4
+* lmdb >= 0.9.15
+
+.. NOTE::
+ The LMDB library is included with the Knot DNS source code, however linking
+ with the system library is preferred.
+
+Optional libraries
+==================
+
+International Domain Names support (IDNA2003 or IDNA2008) in kdig:
+
+* libidn or libidn2
+
+Systemd's startup notifications mechanism and journald logging:
+
+* libsystemd
+
+Dnstap support in kdig and module dnstap:
+
+* fstrm (and protobuf-c if building from the source code)
+
+POSIX 1003.1e :manpage:`capabilites(7)` by sandboxing the exposed threads.
+Most rights are stripped from the exposed threads for security reasons.
+
+* libcap-ng >= 0.6.4