diff --git a/doc/installation.xml b/doc/installation.xml index 57eb0e09e43ddc012fa584eeb5923e0f349b543e..092deed61e10eda75c730dc38e70cdec90dae5c7 100644 --- a/doc/installation.xml +++ b/doc/installation.xml @@ -11,9 +11,9 @@ <para> Knot DNS requires few libraries to be compiled: <itemizedlist> - <listitem><tt>OpenSSL</tt></listitem> - <listitem><tt>zlib</tt></listitem> - <listitem><tt>Userspace RCU</tt></listitem> + <listitem>OpenSSL</listitem> + <listitem>zlib</listitem> + <listitem>Userspace RCU</listitem> </itemizedlist> </para> <para> @@ -39,7 +39,10 @@ library and liburcu-dev for development files. </para> <para> - Minimum supported version of Userspace RCU library is [TODO]. + Minimum supported version of Userspace RCU library is 0.4.0, + but we recommend using latest available version. It is + especially on non-Linux systems as we got some compatibility + patches accepted in later releases of Userspace RCU. </para> </section> </section> @@ -55,20 +58,28 @@ <para> For all available options run: - <tt>./configure --help</tt> + <programlisting> + ./configure --help + </programlisting> </para> </section> <section> <title>Compilation</title> <para> - After running <tt>./configure</tt> you can compile Knot DNS by - running <tt>make</tt> command, which will produce binaries and + After running ./configure you can compile Knot DNS by + running make command, which will produce binaries and other related files. + <programlisting> + make + </programlisting> </para> <para> - Knot DNS build process is safe to paralelize using <tt>make -j - N</tt>, where N is number of concurrent processes. Using this + Knot DNS build process is safe to paralelize using "make -j + N", where N is number of concurrent processes. Using this option can increase speed of the compilation. + <programlisting> + make -j N + </programlisting> </para> </section> <section> @@ -77,10 +88,13 @@ When you have finished building the Knot DNS, it's time to install the binaries and configuration files into the operation system hierarchy. You can do so by - executing <tt>make install</tt> command. When installing as a + executing "make install" command. When installing as a non-root user you might have to gain elevated privileges by - switching to root user, e.g. <tt>sudo make install</tt> - or <tt>su -c 'make install'</tt>. + switching to root user, e.g. "sudo make install" + or "su -c 'make install'". + <programlisting> + make install + </programlisting> </para> </section> </section> diff --git a/doc/reference.xml b/doc/reference.xml index fddd5552ee98162f85d06e56af699d4efcc2323a..cce56eb799227770c3ed01a843c8c550b402382b 100644 --- a/doc/reference.xml +++ b/doc/reference.xml @@ -1,6 +1,197 @@ <chapter> <title>Knot DNS Configuration Reference</title> <para> - [TODO] + This reference describe every configuration option in Knot DNS. </para> + <section xml:id="section"> + <title>system</title> + <para> + The <emphasis>system</emphasis> statement contains general + options related to the operating system and other general + options which don't fit anywhere else. + </para> + <section> + <title>Options</title> + <para> + Contains zero or more: + <itemizedlist> + <listitem><link xml:id="identity">identity</link> "<emphasis>identity</emphasis>";</listitem> + <listitem><link xml:id="version">version</link> "<emphasis>version</emphasis>";</listitem> + <listitem><link xml:id="nsid">nsid</link> "<emphasis>nsid</emphasis>";</listitem> + <listitem><link xml:id="storage">storage</link> "<emphasis>directory</emphasis>";</listitem> + <listitem><link xml:id="pidfile">pidfile</link> "<emphasis>pidfile</emphasis>";</listitem> + <listitem><link xml:id="workers">workers</link> <emphasis>number</emphasis>;</listitem> + <listitem><link xml:id="user">user</link> <emphasis>user</emphasis>[.<emphasis>group</emphasis>];</listitem> + </itemizedlist> + </para> + </section> + <section> + <title>Example:</title> + <para> + <programlisting> + system { + version "1.0.7"; + storage "/var/lib/knot"; + } + </programlisting> + </para> + </section> + <section> + <title>Statement Definition and Usage</title> + <section xml:id="identity"> + <title>identity</title> + <para> + Identity of the server (see RFC 4892). Not used yet. + </para> + <para> + <programlisting> + system { + identity "Knot DNS"; + } + </programlisting> + </para> + </section> + <section xml:id="version"> + <title>version</title> + <para> + Version of the server (see RFC 4892). Not used yet. + </para> + <para> + <programlisting> + system { + version "1.0.5"; + } + </programlisting> + </para> + </section> + <section xml:id="nsid"> + <title>nsid</title> + <para> + DNS Name Server Identifier (RFC 5001) + </para> + <para> + Use a string format "text" or a hexstring f.e. 0x01ab00 + </para> + <para> + <programlisting> + system { + nsid 0x00cafe; + } + </programlisting> + </para> + </section> + <section xml:id="storage"> + <title>storage</title> + <para> + The working directory of the Knot DNS, it is used to store compiled zone files and it's also a default location of the pidfile. + </para> + <para> + <programlisting> + system { + storage "/var/lib/knot"; + } + </programlisting> + </para> + </section> + <section xml:id="pidfile"> + <title>pidfile</title> + <para> + Custom pidfile location. + </para> + <para> + Default value: knot.pid in <link xml:id="storage">storage</link> directory) + </para> + <para> + <programlisting> + system { + pidfile "/var/run/knot.pid"; + </programlisting> + </para> + </section> + <section xml:id="workers"> + <title>workers</title> + <para> + Number of workers (threads) per interface. This option is used to force number of threads used per interface. + </para> + <para> + Default value: unset (auto-estimates optimal value from the number of online CPUs) + </para> + <para> + <programlisting> + system { + workers: 16 + } + </programlisting> + </para> + </section> + <section xml:id="user"> + <title>user</title> + <para> + System user or user.group under which the Knot DNS is run after starting and binding to interfaces. + </para> + <para> + Default value: root.root + </para> + <para> + <programlisting> + system { + user knot.knot; + } + </programlisting> + </para> + </section> + </section> + </section> + <section xml:id="keys"> + <title>keys</title> + <para> + The <emphasis>keys</emphasis> statement sets up the TSIG keys used to authenticate zone transfers. + </para> + <section> + <title>Options</title> + <para> + Contains one or more: + <itemizedlist> + <listitem><emphasis><link xml:id="key_id">key_id</link></emphasis> <emphasis>algorithm</emphasis> "<emphasis>key-contents</emphasis>";</listitem> + </itemizedlist> + </para> + </section> + <section> + <title>Example</title> + <para> + <programlisting> + keys { + key0.server0 hmac-md5 "Wg=="; + foobar.example.com. hmac-sha256 "RQ=="; + } + </programlisting> + </para> + </section> + <section> + <title>Statement Definition and Usage</title> + <section xml:id="key_id"> + <title><emphasis>key_id</emphasis></title> + <para> + The <emphasis>key_id</emphasis> statement defines a secret shared key for use with TSIG. It consists of + </para> + <para> + You will need to use bind or ldns utils to generate TSIG keys. Knot DNS doesn't have it's own generation utilities yet. + <programlisting> + $ dnssec-keygen -a HMAC-SHA256 -b 256 -n HOST foobar.example.com + Kfoobar.example.com.+163+21239 + $ cat Kfoobar.example.com.+163+21239.key + foobar.example.com. IN KEY 512 3 163 rqv2WRyDgIUaHcJi03Zssor9jtG1kOpb3dPywxZfTeo= + </programlisting> + </para> + <para> + Key generated in previous paragraph would be written as: + <programlisting> + keys { + foobar.example.com. hmac-sha256 "rqv2WRyDgIUaHcJi03Zssor9jtG1kOpb3dPywxZfTeo="; + } + </programlisting> + </para> + </section> + </section> + </section> </chapter>