summary refs log tree commit diff
path: root/nixos/doc/manual/release-notes/rl-2103.xml
diff options
context:
space:
mode:
authorAndreas Rammhold <andreas@rammhold.de>2020-11-03 13:41:00 +0100
committerAndreas Rammhold <andreas@rammhold.de>2020-11-03 19:21:25 +0100
commit5c16c31e067573616feda611858f742777af0555 (patch)
tree1c7267f2bac0cda4c474d5d70f9d6f3a576d4492 /nixos/doc/manual/release-notes/rl-2103.xml
parent2aa64e5df5819f7ebeaacfdefb8324736f7f68ba (diff)
downloadnixpkgs-5c16c31e067573616feda611858f742777af0555.tar
nixpkgs-5c16c31e067573616feda611858f742777af0555.tar.gz
nixpkgs-5c16c31e067573616feda611858f742777af0555.tar.bz2
nixpkgs-5c16c31e067573616feda611858f742777af0555.tar.lz
nixpkgs-5c16c31e067573616feda611858f742777af0555.tar.xz
nixpkgs-5c16c31e067573616feda611858f742777af0555.tar.zst
nixpkgs-5c16c31e067573616feda611858f742777af0555.zip
nixos/unbound: add release notes for the changes that were introduced
As part of this patch series a few changes have been made to the unbound
serivce the deserve proper documentation.
Diffstat (limited to 'nixos/doc/manual/release-notes/rl-2103.xml')
-rw-r--r--nixos/doc/manual/release-notes/rl-2103.xml56
1 files changed, 56 insertions, 0 deletions
diff --git a/nixos/doc/manual/release-notes/rl-2103.xml b/nixos/doc/manual/release-notes/rl-2103.xml
index 85eedfe0ec7..da20c9e8067 100644
--- a/nixos/doc/manual/release-notes/rl-2103.xml
+++ b/nixos/doc/manual/release-notes/rl-2103.xml
@@ -140,6 +140,62 @@
      All services should use <xref linkend="opt-systemd.services._name_.startLimitIntervalSec" /> or <literal>StartLimitIntervalSec</literal> in <xref linkend="opt-systemd.services._name_.unitConfig" /> instead.
     </para>
    </listitem>
+   <listitem>
+    <para>
+     The Unbound DNS resolver service (<literal>services.unbound</literal>) has been refactored to allow reloading, control sockets and to fix startup ordering issues.
+    </para>
+
+    <para>
+     It is now possible to enable a local UNIX control socket for unbound by setting the <xref linkend="opt-services.unbound.localControlSocketPath" />
+     option.
+    </para>
+
+    <para>
+     Previously we just applied a very minimal set of restrictions and
+     trusted unbound to properly drop root privs and capabilities.
+    </para>
+
+    <para>
+     As of this we are (for the most part) just using the upstream
+     example unit file for unbound. The main difference is that we start
+     unbound as <literal>unbound</literal> user with the required capabilities instead of
+     letting unbound do the chroot &amp; uid/gid changes.
+    </para>
+
+    <para>
+     The upstream unit configuration this is based on is a lot stricter with
+     all kinds of permissions then our previous variant. It also came with
+     the default of having the <literal>Type</literal> set to <literal>notify</literal>, therefore we are now also
+     using the <literal>unbound-with-systemd</literal> package here. Unbound will start up,
+     read the configuration files and start listening on the configured ports
+     before systemd will declare the unit <literal>active (running)</literal>.
+     This will likely help with startup order and the occasional race condition during system
+     activation where the DNS service is started but not yet ready to answer
+     queries. Services depending on <literal>nss-lookup.target</literal> or <literal>unbound.service</literal>
+     are now be able to use unbound when those targets have been reached.
+    </para>
+
+    <para>
+     Aditionally to the much stricter runtime environmet the
+     <literal>/dev/urandom</literal> mount lines we previously had in the code (that would
+     randomly failed during the stop-phase) have been removed as systemd will take care of those for us.
+    </para>
+
+    <para>
+     The <literal>preStart</literal> script is now only required if we enabled the trust
+      anchor updates (which are still enabled by default).
+    </para>
+
+    <para>
+     Another benefit of the refactoring is that we can now issue reloads via
+     either <literal>pkill -HUP unbound</literal> and <literal>systemctl reload unbound</literal> to reload the
+     running configuration without taking the daemon offline. A prerequisite
+     of this was that unbound configuration is available on a well known path
+     on the file system. We are using the path <literal>/etc/unbound/unbound.conf</literal> as that is the
+     default in the CLI tooling which in turn enables us to use
+     <literal>unbound-control</literal> without passing a custom configuration location.
+    </para>
+   </listitem>
   </itemizedlist>
  </section>
 </section>