summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorDag-Erling Smørgrav <des@FreeBSD.org>2018-09-10 16:32:55 +0000
committerDag-Erling Smørgrav <des@FreeBSD.org>2018-09-10 16:32:55 +0000
commitdcaa814d350c5ee7deb2164502a24f2f698b9799 (patch)
tree9cb62373e6c424da021043a171564ced3bb19501 /doc
parent4aea2433fa04a7a86c8972869bd021b7a3622dc8 (diff)
Notes
Diffstat (limited to 'doc')
-rw-r--r--doc/Changelog249
-rw-r--r--doc/README4
-rw-r--r--doc/example.conf.in42
-rw-r--r--doc/libunbound.3.in4
-rw-r--r--doc/unbound-anchor.8.in7
-rw-r--r--doc/unbound-checkconf.8.in2
-rw-r--r--doc/unbound-control.8.in26
-rw-r--r--doc/unbound-host.1.in10
-rw-r--r--doc/unbound.8.in4
-rw-r--r--doc/unbound.conf.5.in103
10 files changed, 421 insertions, 30 deletions
diff --git a/doc/Changelog b/doc/Changelog
index 3d05ae53a1a5..7e81304f930f 100644
--- a/doc/Changelog
+++ b/doc/Changelog
@@ -1,14 +1,263 @@
+4 September 2018: Wouter
+ - Tag for 1.8.0rc1 release.
+
+31 August 2018: Wouter
+ - Disable minimal-responses in subnet unit tests.
+
+30 August 2018: Wouter
+ - Fix that a local-zone with a local-zone-type that is transparent
+ in a view with view-first, makes queries check for answers from the
+ local-zones defined outside of views.
+
+28 August 2018: Ralph
+ - Disable minimal-responses in ipsecmod unit tests.
+ - Added serve-expired-ttl and serve-expired-ttl-reset options.
+
+27 August 2018: Wouter
+ - Set defaults to yes for a number of options to increase speed and
+ resilience of the server. The so-reuseport, harden-below-nxdomain,
+ and minimal-responses options are enabled by default. They used
+ to be disabled by default, waiting to make sure they worked. They
+ are enabled by default now, and can be disabled explicitly by
+ setting them to "no" in the unbound.conf config file. The reuseport
+ and minimal options increases speed of the server, and should be
+ otherwise harmless. The harden-below-nxdomain option works well
+ together with the recently default enabled qname minimisation, this
+ causes more fetches to use information from the cache.
+ - next release is called 1.8.0.
+ - Fix lintflags for lint on FreeBSD.
+
+22 August 2018: George
+ - #4140: Expose repinfo (comm_reply) to the inplace_callbacks. This
+ gives access to reply information for the client's communication
+ point when the callback is called before the mesh state (modules).
+ Changes to C and Python's inplace_callback signatures were also
+ necessary.
+
+21 August 2018: Wouter
+ - log-local-actions: yes option for unbound.conf that logs all the
+ local zone actions, a patch from Saksham Manchanda (Secure64).
+ - #4146: num.query.subnet and num.query.subnet_cache counters.
+ - Fix only misc failure from log-servfail when val-log-level is not
+ enabled.
+
+17 August 2018: Ralph
+ - Fix classification for QTYPE=CNAME queries when QNAME minimisation is
+ enabled.
+
+17 August 2018: Wouter
+ - Set libunbound to increase current, because the libunbound change
+ to the event callback function signature. That needs programs,
+ that use it, to recompile against the new header definition.
+ - print servfail info to log as error.
+ - added more servfail printout statements, to the iterator.
+ - log-servfail: yes prints log lines that say why queries are
+ returning SERVFAIL to clients.
+
+16 August 2018: Wouter
+ - Fix warning on compile without threads.
+ - Fix contrib/fastrpz.patch.
+
+15 August 2018: Wouter
+ - Fix segfault in auth-zone read and reorder of RRSIGs.
+
+14 August 2018: Wouter
+ - Fix that printout of error for cycle targets is a verbosity 4
+ printout and does not wrongly print it is a memory error.
+ - Upgraded crosscompile script to include libunbound DLL in the
+ zipfile.
+
+10 August 2018: Wouter
+ - Fix #4144: dns64 module caches wrong (negative) information.
+
+9 August 2018: Wouter
+ - unbound-checkconf checks if modules exist and prints if they are
+ not compiled in the name of the wrong module.
+ - document --enable-subnet in doc/README.
+ - Patch for stub-no-cache and forward-no-cache options that disable
+ caching for the contents of that stub or forward, for when you
+ want immediate changes visible, from Bjoern A. Zeeb.
+
+7 August 2018: Ralph
+ - Make capsforid fallback QNAME minimisation aware.
+
+7 August 2018: Wouter
+ - Fix #4142: unbound.service.in: improvements and fixes.
+ Add unit dependency ordering (based on systemd-resolved).
+ Add 'CAP_SYS_RESOURCE' to 'CapabilityBoundingSet' (fixes warnings
+ about missing privileges during startup). Add 'AF_INET6' to
+ 'RestrictAddressFamilies' (without it IPV6 can't work). From
+ Guido Shanahan.
+ - Patch to implement tcp-connection-limit from Jim Hague (Sinodun).
+ This limits the number of simultaneous TCP client connections
+ from a nominated netblock.
+ - make depend, yacc, lex, doc, headers. And log the limit exceeded
+ message only on high verbosity, so as to not spam the logs when
+ it is busy.
+
+6 August 2018: Wouter
+ - Fix for #4136: Fix to unconditionally call destroy in daemon.c.
+
+3 August 2018: George
+ - Expose if a query (or a subquery) was ratelimited (not src IP
+ ratelimiting) to libunbound under 'ub_result.was_ratelimited'.
+ This also introduces a change to 'ub_event_callback_type' in
+ libunbound/unbound-event.h.
+ - Tidy pylib tests.
+
+3 August 2018: Wouter
+ - Revert previous change for #4136: because it introduces build
+ problems.
+ - New fix for #4136: This one ignores lex without without
+ yylex_destroy.
+
+1 August 2018: Wouter
+ - Fix to remove systemd sockaddr function check, that is not
+ always present. Make socket activation more lenient. But not
+ different when socket activation is not used.
+ - iana port list update.
+
+31 July 2018: Wouter
+ - Patches from Jim Hague (Sinodun) for EDNS KeepAlive.
+ - Sort out test runs when the build directory isn't the project
+ root directory.
+ - Add config tcp-idle-timeout (default 30s). This applies to
+ client connections only; the timeout on TCP connections upstream
+ is unaffected.
+ - Error if EDNS Keepalive received over UDP.
+ - Add edns-tcp-keepalive and edns-tcp-keepalive timeout options
+ and implement option in client responses.
+ - Correct and expand manual page entries for keepalive and idle timeout.
+ - Implement progressive backoff of TCP idle/keepalive timeout.
+ - Fix 'make depend' to work when build dir is not project root.
+ - Add delay parameter to streamtcp, -d secs.
+ To be used when testing idle timeout.
+ - From Wouter: make depend, the dependencies in the patches did not
+ apply cleanly. Also remade yacc and lex.
+ - Fix mesh.c incompatible pointer pass.
+ - Please doxygen so it passes.
+ - Fix #4139: Fix unbound-host leaks memory on ANY.
+
+30 July 2018: Wouter
+ - Fix #4136: insufficiency from mismatch of FLEX capability between
+ released tarball and build host.
+
+27 July 2018: Wouter
+ - Fix man page, say that chroot is enabled by default.
+
+26 July 2018: Wouter
+ - Fix #4135: 64-bit Windows Installer Creates Entries Under The
+ Wrong Registry Key, reported by Brian White.
+
+23 July 2018: Wouter
+ - Fix use-systemd readiness signalling, only when use-systemd is yes
+ and not in signal handler.
+
+20 July 2018: Wouter
+ - Fix #4130: print text describing -dd and unbound-checkconf on
+ config file read error at startup, the errors may have been moved
+ away by the startup process.
+ - Fix #4131: for solaris, error YY_CURRENT_BUFFER undeclared.
+
+19 July 2018: Wouter
+ - Fix #4129 unbound-control error message with wrong cert permissions
+ is too cryptic.
+
+17 July 2018: Wouter
+ - Fix #4127 unbound -h does not list -p help.
+ - Print error if SSL name verification configured but not available
+ in the ssl library.
+ - Fix that ratelimit and ip-ratelimit are applied after reload of
+ changed config file.
+ - Resize ratelimit and ip-ratelimit caches if changed on reload.
+
+16 July 2018: Wouter
+ - Fix qname minimisation NXDOMAIN validation lookup failures causing
+ error_supers assertion fails.
+ - Squelch can't bind socket errors with Permission denied unless
+ verbosity is 4 or higher, for UDP outgoing sockets.
+
+12 July 2018: Wouter
+ - Fix to improve systemd socket activation code file descriptor
+ assignment.
+ - Fix for 4126 that the #define for UNKNOWN_SERVER_NICENESS can be more
+ easily changed to adjust default rtt assumptions.
+
+10 July 2018: Wouter
+ - Note in documentation that the cert name match code needs
+ OpenSSL 1.1.0 or later to be enabled.
+
+6 July 2018: Wouter
+ - Fix documentation ambiguity for tls-win-cert in tls-upstream and
+ forward-tls-upstream docs.
+ - iana port update.
+ - Note RFC8162 support. SMIMEA record type can be read in by the
+ zone record parser.
+ - Fix round robin for failed addresses with prefer-ip6: yes
+
+4 July 2018: Wouter
+ - Fix #4112: Fix that unbound-anchor -f /etc/resolv.conf will not pass
+ if DNSSEC is not enabled. New option -R allows fallback from
+ resolv.conf to direct queries.
+
+3 July 2018: Wouter
+ - Better documentation for unblock-lan-zones and insecure-lan-zones
+ config statements.
+ - Fix permission denied printed for auth zone probe random port nrs.
+
+2 July 2018: Wouter
+ - Fix checking for libhiredis printout in configure output.
+ - Fix typo on man page in ip-address description.
+ - Update libunbound/python/examples/dnssec_test.py example code to
+ also set the 20326 trust anchor for the root in the example code.
+
+29 June 2018: Wouter
+ - dns64-ignore-aaaa: config option to list domain names for which the
+ existing AAAA is ignored and dns64 processing is used on the A
+ record.
+
+28 June 2018: Wouter
+ - num.queries.tls counter for queries over TLS.
+ - log port number with err_addr logs.
+
+27 June 2018: Wouter
+ - #4109: Fix that package config depends on python unconditionally.
+ - Patch, do not export python from pkg-config, from Petr Menšík.
+
+26 June 2018: Wouter
+ - Partial fix for permission denied on IPv6 address on FreeBSD.
+ - Fix that auth-zone master reply with current SOA serial does not
+ stop scan of masters for an updated zone.
+ - Fix that auth-zone does not start the wait timer without checking
+ if the wait timer has already been started.
+
+21 June 2018: Wouter
+ - #4108: systemd reload hang fix.
+ - Fix usage printout for unbound-host, hostname has to be last
+ argument on BSDs and Windows.
+
19 June 2018: Wouter
- Fix for unbound-control on Windows and set TCP socket parameters
more closely.
+ This fix is part of 1.7.3.
+ - Windows example service.conf edited with more windows specific
+ configuration.
- Fix windows unbound-control no cert bad file descriptor error.
+ This fix is part of 1.7.3.
18 June 2018: Wouter
- Fix that control-use-cert: no works for 127.0.0.1 to disable certs.
+ This fix is part of 1.7.3rc2.
- Fix unbound-checkconf for control-use-cert.
+ This fix is part of 1.7.3.
15 June 2018: Wouter
- tag for 1.7.3rc1.
+ - trunk has 1.7.4.
+ - unbound-control auth_zone_reload _zone_ option rereads the zonefile.
+ - unbound-control auth_zone_transfer _zone_ option starts the probe
+ sequence for a master to transfer the zone from and transfers when
+ a new zone version is available.
14 June 2018: Wouter
- #4103: Fix that auth-zone does not insist on SOA record first in
diff --git a/doc/README b/doc/README
index 5bd23fac67be..ae90773412ff 100644
--- a/doc/README
+++ b/doc/README
@@ -1,4 +1,4 @@
-README for Unbound 1.7.3
+README for Unbound 1.8.0
Copyright 2007 NLnet Labs
http://unbound.net
@@ -76,6 +76,8 @@ The DNSTAP code has BSD license in dnstap/dnstap.c.
Disable support for RSASHA256 and RSASHA512 crypto.
* --disable-gost
Disable support for GOST crypto, RFC 5933.
+ * --enable-subnet
+ Enable EDNS client subnet processing.
* 'make test' runs a series of self checks.
diff --git a/doc/example.conf.in b/doc/example.conf.in
index be83bdacc21c..fadfd9c6827b 100644
--- a/doc/example.conf.in
+++ b/doc/example.conf.in
@@ -1,7 +1,7 @@
#
# Example configuration file.
#
-# See unbound.conf(5) man page, version 1.7.3.
+# See unbound.conf(5) man page, version 1.8.0.
#
# this is a comment.
@@ -103,7 +103,7 @@ server:
# so-sndbuf: 0
# use SO_REUSEPORT to distribute queries over threads.
- # so-reuseport: no
+ # so-reuseport: yes
# use IP_TRANSPARENT so the interface: addresses can be non-local
# and you can config non-existing IPs that are going to work later on
@@ -212,6 +212,15 @@ server:
# Default is 0, system default MSS.
# outgoing-tcp-mss: 0
+ # Idle TCP timeout, connection closed in milliseconds
+ # tcp-idle-timeout: 30000
+
+ # Enable EDNS TCP keepalive option.
+ # edns-tcp-keepalive: no
+
+ # Timeout for EDNS TCP keepalive, in msec.
+ # edns-tcp-keepalive-timeout: 120000
+
# Use systemd socket activation for UDP, TCP, and control sockets.
# use-systemd: no
@@ -309,6 +318,13 @@ server:
# timetoresolve, fromcache and responsesize.
# log-replies: no
+ # log the local-zone actions, like local-zone type inform is enabled
+ # also for the other local zone types.
+ # log-local-actions: no
+
+ # print log lines that say why queries return SERVFAIL to clients.
+ # log-servfail: no
+
# the pid file. Can be an absolute path outside of chroot/work dir.
# pidfile: "@UNBOUND_PIDFILE@"
@@ -357,7 +373,7 @@ server:
# harden-dnssec-stripped: yes
# Harden against queries that fall under dnssec-signed nxdomain names.
- # harden-below-nxdomain: no
+ # harden-below-nxdomain: yes
# Harden the referral path by performing additional queries for
# infrastructure data. Validates the replies (if possible).
@@ -438,7 +454,7 @@ server:
# if yes, Unbound doesn't insert authority/additional sections
# into response messages when those sections are not required.
- # minimal-responses: no
+ # minimal-responses: yes
# true to disable DNSSEC lameness check in iterator.
# disable-dnssec-lame-check: no
@@ -527,6 +543,16 @@ server:
# Serve expired responses from cache, with TTL 0 in the response,
# and then attempt to fetch the data afresh.
# serve-expired: no
+ #
+ # Limit serving of expired responses to configured seconds after
+ # expiration. 0 disables the limit.
+ # serve-expired-ttl: 0
+ #
+ # Set the TTL of expired records to the serve-expired-ttl value after a
+ # failed attempt to retrieve the record from upstream. This makes sure
+ # that the expired records will be served as long as there are queries
+ # for it.
+ # serve-expired-ttl-reset: no
# Have the validator log failed validations for your diagnosis.
# 0: off. 1: A line per failed user query. 2: With reason and bad IP.
@@ -692,6 +718,9 @@ server:
# Enable dns64 in module-config. Used to synthesize IPv6 from IPv4.
# dns64-prefix: 64:ff9b::0/96
+ # DNS64 ignore AAAA records for these domains and use A instead.
+ # dns64-ignore-aaaa: "example.com"
+
# ratelimit for uncached, new queries, this limits recursion effort.
# ratelimiting is experimental, and may help against randomqueryflood.
# if 0(default) it is disabled, otherwise state qps allowed per zone.
@@ -725,6 +754,9 @@ server:
# 0 blocks when ip is ratelimited, otherwise let 1/xth traffic through
# ip-ratelimit-factor: 10
+ # Limit the number of connections simultaneous from a netblock
+ # tcp-connection-limit: 192.0.2.0/24 12
+
# what is considered a low rtt (ping time for upstream server), in msec
# low-rtt: 45
# select low rtt this many times out of 1000. 0 means the fast server
@@ -814,6 +846,7 @@ remote-control:
# stub-prime: no
# stub-first: no
# stub-tls-upstream: no
+# stub-no-cache: no
# stub-zone:
# name: "example.org"
# stub-host: ns.example.com.
@@ -830,6 +863,7 @@ remote-control:
# forward-addr: 192.0.2.73@5355 # forward to port 5355.
# forward-first: no
# forward-tls-upstream: no
+# forward-no-cache: no
# forward-zone:
# name: "example.org"
# forward-host: fwd.example.com
diff --git a/doc/libunbound.3.in b/doc/libunbound.3.in
index d4b0efd69a9d..9a2fff835601 100644
--- a/doc/libunbound.3.in
+++ b/doc/libunbound.3.in
@@ -1,4 +1,4 @@
-.TH "libunbound" "3" "Jun 21, 2018" "NLnet Labs" "unbound 1.7.3"
+.TH "libunbound" "3" "Sep 10, 2018" "NLnet Labs" "unbound 1.8.0"
.\"
.\" libunbound.3 -- unbound library functions manual
.\"
@@ -43,7 +43,7 @@
.B ub_ctx_zone_remove,
.B ub_ctx_data_add,
.B ub_ctx_data_remove
-\- Unbound DNS validating resolver 1.7.3 functions.
+\- Unbound DNS validating resolver 1.8.0 functions.
.SH "SYNOPSIS"
.B #include <unbound.h>
.LP
diff --git a/doc/unbound-anchor.8.in b/doc/unbound-anchor.8.in
index ca7cafa060ab..ece844deff37 100644
--- a/doc/unbound-anchor.8.in
+++ b/doc/unbound-anchor.8.in
@@ -1,4 +1,4 @@
-.TH "unbound-anchor" "8" "Jun 21, 2018" "NLnet Labs" "unbound 1.7.3"
+.TH "unbound-anchor" "8" "Sep 10, 2018" "NLnet Labs" "unbound 1.8.0"
.\"
.\" unbound-anchor.8 -- unbound anchor maintenance utility manual
.\"
@@ -109,6 +109,11 @@ It does so, because the tool when used for bootstrapping the recursive
resolver, cannot use that recursive resolver itself because it is bootstrapping
that server.
.TP
+.B \-R
+Allow fallback from \-f resolv.conf file to direct root servers query.
+It allows you to prefer local resolvers, but fallback automatically
+to direct root query if they do not respond or do not support DNSSEC.
+.TP
.B \-v
More verbose. Once prints informational messages, multiple times may enable
large debug amounts (such as full certificates or byte\-dumps of downloaded
diff --git a/doc/unbound-checkconf.8.in b/doc/unbound-checkconf.8.in
index 9d35e64dbe08..1fa91d35d3c5 100644
--- a/doc/unbound-checkconf.8.in
+++ b/doc/unbound-checkconf.8.in
@@ -1,4 +1,4 @@
-.TH "unbound-checkconf" "8" "Jun 21, 2018" "NLnet Labs" "unbound 1.7.3"
+.TH "unbound-checkconf" "8" "Sep 10, 2018" "NLnet Labs" "unbound 1.8.0"
.\"
.\" unbound-checkconf.8 -- unbound configuration checker manual
.\"
diff --git a/doc/unbound-control.8.in b/doc/unbound-control.8.in
index f3d9669f8160..596138470e53 100644
--- a/doc/unbound-control.8.in
+++ b/doc/unbound-control.8.in
@@ -1,4 +1,4 @@
-.TH "unbound-control" "8" "Jun 21, 2018" "NLnet Labs" "unbound 1.7.3"
+.TH "unbound-control" "8" "Sep 10, 2018" "NLnet Labs" "unbound 1.8.0"
.\"
.\" unbound-control.8 -- unbound remote control manual
.\"
@@ -293,6 +293,18 @@ ips are dropped before checking the cache.
List the auth zones that are configured. Printed one per line with a
status, indicating if the zone is expired and current serial number.
.TP
+.B auth_zone_reload \fIzone\fR
+Reload the auth zone from zonefile. The zonefile is read in overwriting
+the current contents of the zone in memory. This changes the auth zone
+contents itself, not the cache contents. Such cache contents exists if
+you set unbound to validate with for-upstream yes and that can be cleared
+with \fBflush_zone\fR \fIzone\fR.
+.TP
+.B auth_zone_transfer \fIzone\fR
+Tranfer the auth zone from master. The auth zone probe sequence is started,
+where the masters are probed to see if they have an updated zone (with the SOA
+serial check). And then the zone is transferred for a newer zone version.
+.TP
.B view_list_local_zones \fIview\fR
\fIlist_local_zones\fR for given view.
.TP
@@ -515,6 +527,10 @@ Number of queries that were made using TCP towards the unbound server.
Number of queries that the unbound server made using TCP outgoing towards
other servers.
.TP
+.I num.query.tls
+Number of queries that were made using TLS towards the unbound server.
+These are also counted in num.query.tcp, because TLS uses TCP.
+.TP
.I num.query.ipv6
Number of queries that were made using IPv6 towards the unbound server.
.TP
@@ -625,6 +641,14 @@ answered using cached data.
The number of queries answered using cached NSEC records with NXDOMAIN RCODE.
These queries would otherwise have been sent to the internet, but are now
answered using cached data.
+.TP
+.I num.query.subnet
+Number of queries that got an answer that contained EDNS client subnet data.
+.TP
+.I num.query.subnet_cache
+Number of queries answered from the edns client subnet cache. These are
+counted as cachemiss by the main counters, but hit the client subnet
+specific cache, after getting processed by the edns client subnet module.
.SH "FILES"
.TP
.I @ub_conf_file@
diff --git a/doc/unbound-host.1.in b/doc/unbound-host.1.in
index ea95bd77e071..dacee3d13429 100644
--- a/doc/unbound-host.1.in
+++ b/doc/unbound-host.1.in
@@ -1,4 +1,4 @@
-.TH "unbound\-host" "1" "Jun 21, 2018" "NLnet Labs" "unbound 1.7.3"
+.TH "unbound\-host" "1" "Sep 10, 2018" "NLnet Labs" "unbound 1.8.0"
.\"
.\" unbound-host.1 -- unbound DNS lookup utility
.\"
@@ -12,20 +12,20 @@
\- unbound DNS lookup utility
.SH "SYNOPSIS"
.B unbound\-host
+.RB [ \-C
+.IR configfile ]
.RB [ \-vdhr46D ]
.RB [ \-c
.IR class ]
.RB [ \-t
.IR type ]
-.I hostname
.RB [ \-y
.IR key ]
.RB [ \-f
.IR keyfile ]
.RB [ \-F
.IR namedkeyfile ]
-.RB [ \-C
-.IR configfile ]
+.I hostname
.SH "DESCRIPTION"
.B Unbound\-host
uses the unbound validating resolver to query for the hostname and display
@@ -86,6 +86,8 @@ are read.
.B \-C \fIconfigfile
Uses the specified unbound.conf to prime
.IR libunbound (3).
+Pass it as first argument if you want to override some options from the
+config file with further arguments on the commandline.
.TP
.B \-r
Read /etc/resolv.conf, and use the forward DNS servers from there (those could
diff --git a/doc/unbound.8.in b/doc/unbound.8.in
index 5613ce30b20d..7062fb07eacb 100644
--- a/doc/unbound.8.in
+++ b/doc/unbound.8.in
@@ -1,4 +1,4 @@
-.TH "unbound" "8" "Jun 21, 2018" "NLnet Labs" "unbound 1.7.3"
+.TH "unbound" "8" "Sep 10, 2018" "NLnet Labs" "unbound 1.8.0"
.\"
.\" unbound.8 -- unbound manual
.\"
@@ -9,7 +9,7 @@
.\"
.SH "NAME"
.B unbound
-\- Unbound DNS validating resolver 1.7.3.
+\- Unbound DNS validating resolver 1.8.0.
.SH "SYNOPSIS"
.B unbound
.RB [ \-h ]
diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in
index 9167a5a10def..a3536a14a249 100644
--- a/doc/unbound.conf.5.in
+++ b/doc/unbound.conf.5.in
@@ -1,4 +1,4 @@
-.TH "unbound.conf" "5" "Jun 21, 2018" "NLnet Labs" "unbound 1.7.3"
+.TH "unbound.conf" "5" "Sep 10, 2018" "NLnet Labs" "unbound 1.8.0"
.\"
.\" unbound.conf.5 -- unbound.conf manual
.\"
@@ -121,7 +121,7 @@ interface and port number), if not specified the default port (from
\fBport\fR) is used.
.TP
.B ip\-address: \fI<ip address[@port]>
-Same as interface: (for easy of compatibility with nsd.conf).
+Same as interface: (for ease of compatibility with nsd.conf).
.TP
.B interface\-automatic: \fI<yes or no>
Detect source interface on UDP queries and copy them to replies. This
@@ -278,9 +278,9 @@ to so\-rcvbuf.
.B so\-reuseport: \fI<yes or no>
If yes, then open dedicated listening sockets for incoming queries for each
thread and try to set the SO_REUSEPORT socket option on each socket. May
-distribute incoming queries to threads more evenly. Default is no. On Linux
-it is supported in kernels >= 3.9. On other systems, FreeBSD, OSX it may
-also work. You can enable it (on any platform and kernel),
+distribute incoming queries to threads more evenly. Default is yes.
+On Linux it is supported in kernels >= 3.9. On other systems, FreeBSD, OSX
+it may also work. You can enable it (on any platform and kernel),
it then attempts to open the port and passes the option if it was available
at compile time, if that works it is used, if it fails, it continues
silently (unless verbosity 3) without the option.
@@ -389,6 +389,37 @@ Note that not all platform supports socket option to set MSS (TCP_MAXSEG).
Default is system default MSS determined by interface MTU and
negotiation between Unbound and other servers.
.TP
+.B tcp-idle-timeout: \fI<msec>\fR
+The period Unbound will wait for a query on a TCP connection.
+If this timeout expires Unbound closes the connection.
+This option defaults to 30000 milliseconds.
+When the number of free incoming TCP buffers falls below 50% of the
+total number configured, the option value used is progressively
+reduced, first to 1% of the configured value, then to 0.2% of the
+configured value if the number of free buffers falls below 35% of the
+total number configured, and finally to 0 if the number of free buffers
+falls below 20% of the total number configured. A minimum timeout of
+200 milliseconds is observed regardless of the option value used.
+.TP
+.B edns-tcp-keepalive: \fI<yes or no>\fR
+Enable or disable EDNS TCP Keepalive. Default is no.
+.TP
+.B edns-tcp-keepalive-timeout: \fI<msec>\fR
+The period Unbound will wait for a query on a TCP connection when
+EDNS TCP Keepalive is active. If this timeout expires Unbound closes
+the connection. If the client supports the EDNS TCP Keepalive option,
+Unbound sends the timeout value to the client to encourage it to
+close the connection before the server times out.
+This option defaults to 120000 milliseconds.
+When the number of free incoming TCP buffers falls below 50% of
+the total number configured, the advertised timeout is progressively
+reduced to 1% of the configured value, then to 0.2% of the configured
+value if the number of free buffers falls below 35% of the total number
+configured, and finally to 0 if the number of free buffers falls below
+20% of the total number configured.
+A minimum actual timeout of 200 milliseconds is observed regardless of the
+advertised timeout.
+.TP
.B tcp\-upstream: \fI<yes or no>
Enable or disable whether the upstream queries use TCP only for transport.
Default is no. Useful in tunneling scenarios.
@@ -403,7 +434,7 @@ Enabled or disable whether the upstream queries use TLS only for transport.
Default is no. Useful in tunneling scenarios. The TLS contains plain DNS in
TCP wireformat. The other server must support this (see
\fBtls\-service\-key\fR).
-If you enable this, also configure a tls\-cert\-bundle or use tls\-win\cert to
+If you enable this, also configure a tls\-cert\-bundle or use tls\-win\-cert to
load CA certs, otherwise the connections cannot be authenticated.
.TP
.B ssl\-upstream: \fI<yes or no>
@@ -466,6 +497,11 @@ Enable or disable whether the unbound server forks into the background as
a daemon. Set the value to \fIno\fR when unbound runs as systemd service.
Default is yes.
.TP
+.B tcp\-connection\-limit: \fI<IP netblock> <limit>
+Allow up to \fIlimit\R simultaneous TCP connections from the given netblock.
+When at the limit, further connections are accepted but closed immediately.
+This option is experimental at this time.
+.TP
.B access\-control: \fI<IP netblock> <action>
The netblock is given as an IP4 or IP6 address with /size appended for a
classless network block. The action can be \fIdeny\fR, \fIrefuse\fR,
@@ -557,8 +593,9 @@ to chroot and dropping permissions. This allows the pidfile to be
Additionally, unbound may need to access /dev/random (for entropy)
from inside the chroot.
.IP
-If given a chroot is done to the given directory. The default is
-"@UNBOUND_CHROOT_DIR@". If you give "" no chroot is performed.
+If given a chroot is done to the given directory. By default chroot is
+enabled and the default is "@UNBOUND_CHROOT_DIR@". If you give "" no
+chroot is performed.
.TP
.B username: \fI<name>
If given, after binding the port the user privileges are dropped. Default is
@@ -618,6 +655,16 @@ Default is no. Note that it takes time to print these
lines which makes the server (significantly) slower. Odd (nonprintable)
characters in names are printed as '?'.
.TP
+.B log\-local\-actions: \fI<yes or no>
+Print log lines to inform about local zone actions. These lines are like the
+local\-zone type inform prints out, but they are also printed for the other
+types of local zones.
+.TP
+.B log\-servfail: \fI<yes or no>
+Print log lines that say why queries return SERVFAIL to clients.
+This is separate from the verbosity debug logs, much smaller, and printed
+at the error level, not the info level of debug info from verbosity.
+.TP
.B pidfile: \fI<filename>
The process id is written to the file. Default is "@UNBOUND_PIDFILE@".
So,
@@ -700,7 +747,7 @@ noerror for empty nonterminals, hence this is possible. Very old software
might return nxdomain for empty nonterminals (that usually happen for reverse
IP address lookups), and thus may be incompatible with this. To try to avoid
this only DNSSEC-secure nxdomains are used, because the old software does not
-have DNSSEC. Default is off.
+have DNSSEC. Default is on.
The nxdomain must be secure, this means nsec3 with optout is insufficient.
.TP
.B harden\-referral\-path: \fI<yes or no>
@@ -814,9 +861,11 @@ from the query ID, for speed and thread safety). Default is no.
If yes, Unbound doesn't insert authority/additional sections into response
messages when those sections are not required. This reduces response
size significantly, and may avoid TCP fallback for some responses.
-This may cause a slight speedup. The default is no, because the DNS
+This may cause a slight speedup. The default is yes, even though the DNS
protocol RFCs mandate these sections, and the additional content could
-be of use and save roundtrips for clients.
+be of use and save roundtrips for clients. Because they are not used,
+and the saved roundtrips are easier saved with prefetch, whilst this is
+faster.
.TP
.B disable-dnssec-lame-check: \fI<yes or no>
If true, disables the DNSSEC lameness check in the iterator. This check
@@ -964,6 +1013,17 @@ If enabled, unbound attempts to serve old responses from cache with a
TTL of 0 in the response without waiting for the actual resolution to finish.
The actual resolution answer ends up in the cache later on. Default is "no".
.TP
+.B serve\-expired\-ttl: \fI<seconds>
+Limit serving of expired responses to configured seconds after expiration. 0
+disables the limit. This option only applies when \fBserve\-expired\fR is
+enabled. The default is 0.
+.TP
+.B serve\-expired\-ttl\-reset: \fI<yes or no>
+Set the TTL of expired records to the \fBserve\-expired\-ttl\fR value after a
+failed attempt to retrieve the record from upstream. This makes sure that the
+expired records will be served as long as there are queries for it. Default is
+"no".
+.TP
.B val\-nsec3\-keysize\-iterations: \fI<"list of values">
List of keysize and iteration count values, separated by spaces, surrounded
by quotes. Default is "1024 150 2048 500 4096 2500". This determines the
@@ -1012,7 +1072,7 @@ Number of bytes size of the aggressive negative cache. Default is 1 megabyte.
A plain number is in bytes, append 'k', 'm' or 'g' for kilobytes, megabytes
or gigabytes (1024*1024 bytes in a megabyte).
.TP
-.B unblock\-lan\-zones: \fI<yesno>
+.B unblock\-lan\-zones: \fI<yes or no>
Default is disabled. If enabled, then for private address space,
the reverse lookups are no longer filtered. This allows unbound when
running as dns service on a host where it provides service for that host,
@@ -1023,7 +1083,7 @@ as a (DHCP-) DNS network resolver for a group of machines, where such
lookups should be filtered (RFC compliance), this also stops potential
data leakage about the local network to the upstream DNS servers.
.TP
-.B insecure\-lan\-zones: \fI<yesno>
+.B insecure\-lan\-zones: \fI<yes or no>
Default is disabled. If enabled, then reverse lookups in private
address space are not validated. This is usually required whenever
\fIunblock\-lan\-zones\fR is used.
@@ -1470,6 +1530,10 @@ Default is no.
.TP
.B stub\-ssl\-upstream: \fI<yes or no>
Alternate syntax for \fBstub\-tls\-upstream\fR.
+.TP
+.B stub\-no\-cache: \fI<yes or no>
+Default is no. If enabled, data inside the stub is not cached. This is
+useful when you want immediate changes to be visible.
.SS "Forward Zone Options"
.LP
There may be multiple
@@ -1504,6 +1568,7 @@ the '@' and '#', the '@' comes first.
At high verbosity it logs the TLS certificate, with TLS enabled.
If you leave out the '#' and auth name from the forward\-addr, any
name is accepted. The cert must also match a CA from the tls\-cert\-bundle.
+The cert name match code needs OpenSSL 1.1.0 or later to be enabled.
.TP
.B forward\-first: \fI<yes or no>
If enabled, a query is attempted without the forward clause if it fails.
@@ -1514,11 +1579,15 @@ The default is no.
.B forward\-tls\-upstream: \fI<yes or no>
Enabled or disable whether the queries to this forwarder use TLS for transport.
Default is no.
-If you enable this, also configure a tls\-cert\-bundle or use tls\-win\cert to
+If you enable this, also configure a tls\-cert\-bundle or use tls\-win\-cert to
load CA certs, otherwise the connections cannot be authenticated.
.TP
.B forward\-ssl\-upstream: \fI<yes or no>
Alternate syntax for \fBforward\-tls\-upstream\fR.
+.TP
+.B forward\-no\-cache: \fI<yes or no>
+Default is no. If enabled, data inside the forward is not cached. This is
+useful when you want immediate changes to be visible.
.SS "Authority Zone Options"
.LP
Authority zones are configured with \fBauth\-zone:\fR, and each one must
@@ -1653,6 +1722,12 @@ It must be /96 or shorter. The default prefix is 64:ff9b::/96.
.B dns64\-synthall: \fI<yes or no>\fR
Debug option, default no. If enabled, synthesize all AAAA records
despite the presence of actual AAAA records.
+.TP
+.B dns64\-ignore\-aaaa: \fI<name>\fR
+List domain for which the AAAA records are ignored and the A record is
+used by dns64 processing instead. Can be entered multiple times, list a
+new domain for which it applies, one per line. Applies also to names
+underneath the name given.
.SS "DNSCrypt Options"
.LP
The