summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorDag-Erling Smørgrav <des@FreeBSD.org>2019-02-06 12:31:02 +0000
committerDag-Erling Smørgrav <des@FreeBSD.org>2019-02-06 12:31:02 +0000
commit9c9d011eed674ddd7e4a0a148691887afb9e75cd (patch)
treecd45bceeed24e66e5b2838e8589d2c111cf691c6 /doc
parent089d83fbd0b24f957b753d440f188ddadaabf4ff (diff)
Notes
Diffstat (limited to 'doc')
-rw-r--r--doc/Changelog276
-rw-r--r--doc/README2
-rw-r--r--doc/example.conf.in67
-rw-r--r--doc/libunbound.3.in14
-rw-r--r--doc/unbound-anchor.8.in2
-rw-r--r--doc/unbound-checkconf.8.in2
-rw-r--r--doc/unbound-control.8.in13
-rw-r--r--doc/unbound-host.1.in2
-rw-r--r--doc/unbound.8.in4
-rw-r--r--doc/unbound.conf.5.in117
-rw-r--r--doc/unbound.doxygen11
11 files changed, 458 insertions, 52 deletions
diff --git a/doc/Changelog b/doc/Changelog
index 69bab6f640ad..2c029484f612 100644
--- a/doc/Changelog
+++ b/doc/Changelog
@@ -1,8 +1,280 @@
+5 February 2019: Wouter
+ - Fix tls-ciphers spelling in example.conf
+
+28 January 2019: Wouter
+ - ub_ctx_set_tls call for libunbound that enables DoT for the machines
+ set with ub_ctx_set_fwd. Patch from Florian Obser.
+ - Set build system for added call in the libunbound API.
+ - List example config for root zone copy locally hosted with auth-zone
+ as suggested from draft-ietf-dnsop-7706-bis-02. But with updated
+ B root address.
+ - set version to 1.9.0 for release.
+
+25 January 2019: Wouter
+ - Fix that tcp for auth zone and outgoing does not remove and
+ then gets the ssl read again applied to the deleted commpoint.
+ - updated contrib/fastrpz.patch to cleanly diff.
+ - no lock when threads disabled in tcp request buffer count.
+ - remove compile warnings from libnettle compile.
+ - output of newer lex 2.6.1 and bison 3.0.5.
+
+24 January 2019: Wouter
+ - Newer aclocal and libtoolize used for generating configure scripts,
+ aclocal 1.16.1 and libtoolize 2.4.6.
+ - Fix unit test for python 3.7 new keyword 'async'.
+ - clang analysis fixes, assert arc4random buffer in init,
+ no check for already checked delegation pointer in iterator,
+ in testcode check for NULL packet matches, in perf do not copy
+ from NULL start list when growing capacity. Adjust host and file
+ only when present in test header read to please checker. In
+ testcode for unknown macro operand give zero result. Initialise the
+ passed argv array in test code. In test code add EDNS data
+ segment copy only when nonempty.
+ - Patch from Florian Obser fixes some compiler warnings:
+ include mini_event.h to have a prototype for mini_ev_cmp
+ include edns.h to have a prototype for apply_edns_options
+ sldns_wire2str_edns_keepalive_print is only called in the wire2str,
+ module declare it static to get rid of compiler warning:
+ no previous prototype for function
+ infra_find_ip_ratedata() is only called in the infra module,
+ declare it static to get rid of compiler warning:
+ no previous prototype for function
+ do not shadow local variable buf in authzone
+ auth_chunks_delete and az_nsec3_findnode are only called in the
+ authzone module, declare them static to get rid of compiler warning:
+ no previous prototype for function...
+ copy_rrset() is only called in the respip module, declare it
+ static to get rid of compiler warning:
+ no previous prototype for function 'copy_rrset'
+ no need for another variable "r"; gets rid of compiler warning:
+ declaration shadows a local variable in libunbound.c
+ no need for another variable "ns"; gets rid of compiler warning:
+ declaration shadows a local variable in iterator.c
+ - Moved includes and make depend.
+
+23 January 2019: Wouter
+ - Patch from Manabu Sonoda with tls-ciphers and tls-ciphersuites
+ options for unbound.conf.
+ - Fixes for the patch, and man page entry.
+ - Fix configure to detect SSL_CTX_set_ciphersuites, for better
+ library compatibility when compiling.
+ - Patch for TLS session resumption from Manabu Sonoda,
+ enable with tls-session-ticket-keys in unbound.conf.
+ - Fixes for patch (includes, declarations, warnings). Free at end
+ and keep config options in order read from file to keep the first
+ one as the first one.
+ - Fix for IXFR fallback to reset counter when IXFR does not timeout.
+
+22 January 2019: Wouter
+ - Fix space calculation for tcp req buffer size.
+ - Doc for stream-wait-size and unit test.
+ - unbound-control stats has mem.streamwait that counts TCP and TLS
+ waiting result buffers.
+ - Fix for #4219: secondaries not updated after serial change, unbound
+ falls back to AXFR after IXFR gives several timeout failures.
+ - Fix that auth zone after IXFR fallback tries the same master.
+
+21 January 2019: Wouter
+ - Fix tcp idle timeout test, for difference in the tcp reply code.
+ - Unit test for tcp request reorder and timeouts.
+ - Unit tests for ssl out of order processing.
+ - Fix that multiple dns fragments can be carried in one TLS frame.
+ - Add stream-wait-size: 4m config option to limit the maximum
+ memory used by waiting tcp and tls stream replies. This avoids
+ a denial of service where these replies use up all of the memory.
+
+17 January 2019: Wouter
+ - For caps-for-id fallback, use the whitelist to avoid timeout
+ starting a fallback sequence for it.
+ - increase mesh max activation count for capsforid long fetches.
+
+16 January 2019: Ralph
+ - Get ready for the DNS flag day: remove EDNS lame procedure, do not
+ re-query without EDNS after timeout.
+
+15 January 2019: Wouter
+ - In the out of order processing, reset byte count for (potential)
+ partial read.
+ - Review fixes in out of order processing.
+
+14 January 2019: Wouter
+ - streamtcp option -a send queries consecutively and prints answers
+ as they arrive.
+ - Fix for out of order processing administration quit cleanup.
+ - unit test for tcp out of order processing.
+
+11 January 2019: Wouter
+ - Initial commit for out-of-order processing for TCP and TLS.
+
+9 January 2019: Wouter
+ - Log query name for looping module errors.
+
+8 January 2019: Wouter
+ - Fix syntax in comment of local alias processing.
+ - Fix NSEC3 record that is returned in wildcard replies from
+ auth-zone zones with NSEC3 and wildcards.
+
+7 January 2019: Wouter
+ - On FreeBSD warn if systcl settings do not allow server TCP FASTOPEN,
+ and server tcp fastopen is enabled at compile time.
+ - Document interaction between the tls-upstream option in the server
+ section and forward-tls-upstream option in the forward-zone sections.
+ - Add contrib/unbound-fuzzme.patch from Jacob Hoffman-Andrews,
+ the patch adds a program used for fuzzing.
+
+12 December 2018: Wouter
+ - Fix for crash in dns64 module if response is null.
+
+10 December 2018: Wouter
+ - Fix config parser memory leaks.
+ - ip-ratelimit-factor of 1 allows all traffic through, instead of the
+ previous blocking everything.
+ - Fix for FreeBSD port make with dnscrypt and dnstap enabled.
+ - Fix #4206: support openssl 1.0.2 for TLS hostname verification,
+ alongside the 1.1.0 and later support that is already there.
+ - Fixup openssl 1.0.2 compile
+
+6 December 2018: Wouter
+ - Fix dns64 allocation in wrong region for returned internal queries.
+
+3 December 2018: Wouter
+ - Fix icon, no ragged edges and nicer resolutions available, for eg.
+ Win 7 and Windows 10 display.
+ - cache-max-ttl also defines upperbound of initial TTL in response.
+
+30 November 2018: Wouter
+ - Patch for typo in unbound.conf man page.
+ - log-tag-queryreply: yes in unbound.conf tags the log-queries and
+ log-replies in the log file for easier log filter maintenance.
+
+29 November 2018: Wouter
+ - iana portlist updated.
+ - Fix chroot auth-zone fix to remove chroot prefix.
+ - tag for 1.8.2rc1, which became 1.8.2 on 4 dec 2018, with icon
+ updated. Trunk contains 1.8.3 in development.
+ Which became 1.8.3 on 11 december with only the dns64 fix of 6 dec.
+ Trunk then became 1.8.4 in development.
+ - Fix that unbound-checkconf does not complains if the config file
+ is not placed inside the chroot.
+ - Refuse to start with no ports.
+ - Remove clang analysis warnings.
+
+28 November 2018: Wouter
+ - Fix leak in chroot fix for auth-zone.
+ - Fix clang analysis for outside directory build test.
+
+27 November 2018: Wouter
+ - Fix DNS64 to not store intermediate results in cache, this avoids
+ other threads from picking up the wrong data. The module restores
+ the previous no_cache_store setting when the the module is finished.
+ - Fix #4208: 'stub-no-cache' and 'forward-no-cache' not work.
+ - New and better fix for Fix #4193: Fix that prefetch failure does
+ not overwrite valid cache entry with SERVFAIL.
+ - auth-zone give SERVFAIL when expired, fallback activates when
+ expired, and this is documented in the man page.
+ - stat count SERVFAIL downstream auth-zone queries for expired zones.
+ - Put new logos into windows installer.
+ - Fix windows compile for new rrset roundrobin fix.
+ - Update contrib fastrpz patch for latest release.
+
+26 November 2018: Wouter
+ - Fix to not set GLOB_NOSORT so the unbound.conf include: files are
+ sorted and in a predictable order.
+ - Fix #4193: Fix that prefetch failure does not overwrite valid cache
+ entry with SERVFAIL.
+ - Add unbound-control view_local_datas command, like local_datas.
+ - Fix that unbound-control can send file for view_local_datas.
+
+22 November 2018: Wouter
+ - With ./configure --with-pyunbound --with-pythonmodule
+ PYTHON_VERSION=3.6 or with 2.7 unbound can compile and unit tests
+ succeed for the python module.
+ - pythonmod logs the python error and traceback on failure.
+ - ignore debug python module for test in doxygen output.
+ - review fixes for python module.
+ - Fix #4209: Crash in libunbound when called from getdns.
+ - auth zone zonefiles can be in a chroot, the chroot directory
+ components are removed before use.
+ - Fix that empty zonefile means the zonefile is not set and not used.
+ - make depend.
+
+21 November 2018: Wouter
+ - Scrub NS records from NODATA responses as well.
+
+20 November 2018: Wouter
+ - Scrub NS records from NXDOMAIN responses to stop fragmentation
+ poisoning of the cache.
+ - Add patch from Jan Vcelak for pythonmod,
+ add sockaddr_storage getters, add support for query callbacks,
+ allow raw address access via comm_reply and update API documentation.
+ - Removed compile warnings in pythonmod sockaddr routines.
+
+19 November 2018: Wouter
+ - Support SO_REUSEPORT_LB in FreeBSD 12 with the so-reuseport: yes
+ option in unbound.conf.
+
+6 November 2018: Ralph
+ - Bugfix min-client-subnet-ipv6
+
+25 October 2018: Ralph
+ - Add min-client-subnet-ipv6 and min-client-subnet-ipv4 options.
+
+25 October 2018: Wouter
+ - Fix #4191: NXDOMAIN vs SERVFAIL during dns64 PTR query.
+ - Fix #4190: Please create a "ANY" deny option, adds the option
+ deny-any: yes in unbound.conf. This responds with an empty message
+ to queries of type ANY.
+ - Fix #4141: More randomness to rrset-roundrobin.
+ - Fix #4132: Openness/closeness of RANGE intervals in rpl files.
+ - Fix #4126: RTT_band too low on VSAT links with 600+ms latency,
+ adds the option unknown-server-time-limit to unbound.conf that
+ can be increased to avoid the problem.
+ - remade makefile dependencies.
+ - Fix #4152: Logs shows wrong time when using log-time-ascii: yes.
+
+24 October 2018: Ralph
+ - Add markdel function to ECS slabhash.
+ - Limit ECS scope returned to client to the scope used for caching.
+ - Make lint like previous #4154 fix.
+
+22 October 2018: Wouter
+ - Fix #4192: unbound-control-setup generates keys not readable by
+ group.
+ - check that the dnstap socket file can be opened and exists, print
+ error if not.
+ - Fix #4154: make ECS_MAX_TREESIZE configurable, with
+ the max-ecs-tree-size-ipv4 and max-ecs-tree-size-ipv6 options.
+
+22 October 2018: Ralph
+ - Change fast-server-num default to 3.
+
+8 October 2018: Ralph
+ - Add fast-server-permil and fast-server-num options.
+ - Deprecate low-rtt and low-rtt-permil options.
+
8 October 2018: Wouter
- - fastrpz.patch fix included.
+ - Squelch log of failed to tcp initiate after TCP Fastopen failure.
+
+5 October 2018: Wouter
+ - Squelch EADDRNOTAVAIL errors when the interface goes away,
+ this omits 'can't assign requested address' errors unless
+ verbosity is set to a high value.
+ - Set default for so-reuseport to no for FreeBSD. It is enabled
+ by default for Linux and DragonFlyBSD. The setting can
+ be configured in unbound.conf to override the default.
+ - iana port update.
+
+2 October 2018: Wouter
+ - updated contrib/fastrpz.patch to apply for this version
+ - dnscrypt.c removed sizeof to get array bounds.
+ - Fix testlock code to set noreturn on error routine.
+ - Remove unused variable from contrib fastrpz/rpz.c and
+ remove unused diagnostic pragmas that themselves generate warnings
+ - clang analyze test is used only when assertions are enabled.
1 October 2018: Wouter
- - tag for release 1.8.1rc1.
+ - tag for release 1.8.1rc1. Became release 1.8.1 on 8 oct, with
+ fastrpz.patch fix included. Trunk has 1.8.2 in development.
27 September 2018: Wouter
- Fix #4188: IPv6 forwarders without ipv6 result in SERVFAIL, fixes
diff --git a/doc/README b/doc/README
index c817e34be24c..0afef47bee24 100644
--- a/doc/README
+++ b/doc/README
@@ -1,4 +1,4 @@
-README for Unbound 1.8.1
+README for Unbound 1.9.0
Copyright 2007 NLnet Labs
http://unbound.net
diff --git a/doc/example.conf.in b/doc/example.conf.in
index fc8bc6b0de8d..bbfaf66ddaed 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.8.1.
+# See unbound.conf(5) man page, version 1.9.0.
#
# this is a comment.
@@ -123,6 +123,9 @@ server:
# Suggested values are 512 to 4096. Default is 4096. 65536 disables it.
# max-udp-size: 4096
+ # max memory to use for stream(tcp and tls) waiting result buffers.
+ # stream-wait-size: 4m
+
# buffer size for handling DNS data. No messages larger than this
# size can be sent or received, by UDP or TCP. In bytes.
# msg-buffer-size: 65552
@@ -145,6 +148,10 @@ server:
# msec to wait before close of port on timeout UDP. 0 disables.
# delay-close: 0
+ # msec for waiting for an unknown server to reply. Increase if you
+ # are behind a slow satellite link, to eg. 1128.
+ # unknown-server-time-limit: 376
+
# the amount of memory to use for the RRset cache.
# plain value in bytes or you can append k, m or G. default is "4Mb".
# rrset-cache-size: 4m
@@ -318,6 +325,10 @@ server:
# timetoresolve, fromcache and responsesize.
# log-replies: no
+ # log with tag 'query' and 'reply' instead of 'info' for
+ # filtering log-queries and log-replies from the log.
+ # log-tag-queryreply: no
+
# log the local-zone actions, like local-zone type inform is enabled
# also for the other local zone types.
# log-local-actions: no
@@ -449,6 +460,9 @@ server:
# if yes, perform key lookups adjacent to normal lookups.
# prefetch-key: no
+ # deny queries of type ANY with an empty response.
+ # deny-any: no
+
# if yes, Unbound rotates RRSet order in response.
# rrset-roundrobin: no
@@ -701,6 +715,19 @@ server:
# tls-service-pem: "path/to/publiccertfile.pem"
# tls-port: 853
+ # cipher setting for TLSv1.2
+ # tls-ciphers: "DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256"
+ # cipher setting for TLSv1.3
+ # tls-ciphersuites: "TLS_AES_128_GCM_SHA256:TLS_AES_128_CCM_8_SHA256:TLS_AES_128_CCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256"
+
+ # Add the secret file for TLS Session Ticket.
+ # Secret file must be 80 bytes of random data.
+ # First key use to encrypt and decrypt TLS session tickets.
+ # Other keys use to decrypt only.
+ # requires restart to take effect.
+ # tls-session-ticket-keys: "path/to/secret_file1"
+ # tls-session-ticket-keys: "path/to/secret_file2"
+
# request upstream over TLS (with plain DNS inside the TLS stream).
# Default is no. Can be turned on and off with unbound-control.
# tls-upstream: no
@@ -757,12 +784,12 @@ server:
# 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
- # select is disabled. prefetches are not sped up.
- # low-rtt-permil: 0
-
+ # select from the fastest servers this many times out of 1000. 0 means
+ # the fast server select is disabled. prefetches are not sped up.
+ # fast-server-permil: 0
+ # the number of servers that will be used in the fast server selection.
+ # fast-server-num: 3
+
# Specific options for ipsecmod. unbound needs to be configured with
# --enable-ipsecmod for these to take effect.
#
@@ -879,15 +906,25 @@ remote-control:
# notifies.
# auth-zone:
# name: "."
-# for-downstream: no
+# master: 199.9.14.201 # b.root-servers.net
+# master: 192.33.4.12 # c.root-servers.net
+# master: 199.7.91.13 # d.root-servers.net
+# master: 192.5.5.241 # f.root-servers.net
+# master: 192.112.36.4 # g.root-servers.net
+# master: 193.0.14.129 # k.root-servers.net
+# master: 192.0.47.132 # xfr.cjr.dns.icann.org
+# master: 192.0.32.132 # xfr.lax.dns.icann.org
+# master: 2001:500:200::b # b.root-servers.net
+# master: 2001:500:2::c # c.root-servers.net
+# master: 2001:500:2d::d # d.root-servers.net
+# master: 2001:500:2f::f # f.root-servers.net
+# master: 2001:500:12::d0d # g.root-servers.net
+# master: 2001:7fd::1 # k.root-servers.net
+# master: 2620:0:2830:202::132 # xfr.cjr.dns.icann.org
+# master: 2620:0:2d0:202::132 # xfr.lax.dns.icann.org
+# fallback-enabled: yes
+# for-downstream: no
# for-upstream: yes
-# fallback-enabled: yes
-# master: b.root-servers.net
-# master: c.root-servers.net
-# master: e.root-servers.net
-# master: f.root-servers.net
-# master: g.root-servers.net
-# master: k.root-servers.net
# auth-zone:
# name: "example.org"
# for-downstream: yes
diff --git a/doc/libunbound.3.in b/doc/libunbound.3.in
index 003c867b1a7f..6115a977a501 100644
--- a/doc/libunbound.3.in
+++ b/doc/libunbound.3.in
@@ -1,4 +1,4 @@
-.TH "libunbound" "3" "Oct 8, 2018" "NLnet Labs" "unbound 1.8.1"
+.TH "libunbound" "3" "Feb 5, 2019" "NLnet Labs" "unbound 1.9.0"
.\"
.\" libunbound.3 -- unbound library functions manual
.\"
@@ -20,6 +20,7 @@
.B ub_ctx_config,
.B ub_ctx_set_fwd,
.B ub_ctx_set_stub,
+.B ub_ctx_set_tls,
.B ub_ctx_resolvconf,
.B ub_ctx_hosts,
.B ub_ctx_add_ta,
@@ -43,7 +44,7 @@
.B ub_ctx_zone_remove,
.B ub_ctx_data_add,
.B ub_ctx_data_remove
-\- Unbound DNS validating resolver 1.8.1 functions.
+\- Unbound DNS validating resolver 1.9.0 functions.
.SH "SYNOPSIS"
.B #include <unbound.h>
.LP
@@ -72,6 +73,9 @@
\fIint\fR isprime);
.LP
\fIint\fR
+\fBub_ctx_set_tls\fR(\fIstruct ub_ctx*\fR ctx, \fIint\fR tls);
+.LP
+\fIint\fR
\fBub_ctx_resolvconf\fR(\fIstruct ub_ctx*\fR ctx, \fIchar*\fR fname);
.LP
\fIint\fR
@@ -227,6 +231,12 @@ for different zones, or to add multiple addresses for a particular zone.
At this time it is only possible to set configuration before the
first resolve is done.
.TP
+.B ub_ctx_set_tls
+Enable DNS over TLS (DoT) for machines set with
+.B ub_ctx_set_fwd.
+At this time it is only possible to set configuration before the
+first resolve is done.
+.TP
.B ub_ctx_resolvconf
By default the root servers are queried and full resolver mode is used, but
you can use this call to read the list of nameservers to use from the
diff --git a/doc/unbound-anchor.8.in b/doc/unbound-anchor.8.in
index 089aa47dfacb..226297f34dce 100644
--- a/doc/unbound-anchor.8.in
+++ b/doc/unbound-anchor.8.in
@@ -1,4 +1,4 @@
-.TH "unbound-anchor" "8" "Oct 8, 2018" "NLnet Labs" "unbound 1.8.1"
+.TH "unbound-anchor" "8" "Feb 5, 2019" "NLnet Labs" "unbound 1.9.0"
.\"
.\" unbound-anchor.8 -- unbound anchor maintenance utility manual
.\"
diff --git a/doc/unbound-checkconf.8.in b/doc/unbound-checkconf.8.in
index 60f56267ff15..9e5df52c98a1 100644
--- a/doc/unbound-checkconf.8.in
+++ b/doc/unbound-checkconf.8.in
@@ -1,4 +1,4 @@
-.TH "unbound-checkconf" "8" "Oct 8, 2018" "NLnet Labs" "unbound 1.8.1"
+.TH "unbound-checkconf" "8" "Feb 5, 2019" "NLnet Labs" "unbound 1.9.0"
.\"
.\" unbound-checkconf.8 -- unbound configuration checker manual
.\"
diff --git a/doc/unbound-control.8.in b/doc/unbound-control.8.in
index d176394cf2d3..f7558e5a9ed2 100644
--- a/doc/unbound-control.8.in
+++ b/doc/unbound-control.8.in
@@ -1,4 +1,4 @@
-.TH "unbound-control" "8" "Oct 8, 2018" "NLnet Labs" "unbound 1.8.1"
+.TH "unbound-control" "8" "Feb 5, 2019" "NLnet Labs" "unbound 1.9.0"
.\"
.\" unbound-control.8 -- unbound remote control manual
.\"
@@ -322,6 +322,9 @@ serial check). And then the zone is transferred for a newer zone version.
.TP
.B view_local_data_remove \fIview\fR \fIname
\fIlocal_data_remove\fR for given view.
+.TP
+.B view_local_datas \fIview\fR
+Add a list of \fIlocal_data\fR for given view from stdin. Like local_datas.
.SH "EXIT CODE"
The unbound\-control program exits with status code 1 on error, 0 on success.
.SH "SET UP"
@@ -496,6 +499,10 @@ Memory in bytes in use by the iterator module.
Memory in bytes in use by the validator module. Includes the key cache and
negative cache.
.TP
+.I mem.streamwait
+Memory in bytes in used by the TCP and TLS stream wait buffers. These are
+answers waiting to be written back to the clients.
+.TP
.I histogram.<sec>.<usec>.to.<sec>.<usec>
Shows a histogram, summed over all threads. Every element counts the
recursive queries whose reply time fit between the lower and upper bound.
@@ -531,6 +538,10 @@ other servers.
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.tls.resume
+Number of TLS session resumptions, these are queries over TLS towards
+the unbound server where the client negotiated a TLS session resumption key.
+.TP
.I num.query.ipv6
Number of queries that were made using IPv6 towards the unbound server.
.TP
diff --git a/doc/unbound-host.1.in b/doc/unbound-host.1.in
index d3a0b42bf5e0..1c24aa601d09 100644
--- a/doc/unbound-host.1.in
+++ b/doc/unbound-host.1.in
@@ -1,4 +1,4 @@
-.TH "unbound\-host" "1" "Oct 8, 2018" "NLnet Labs" "unbound 1.8.1"
+.TH "unbound\-host" "1" "Feb 5, 2019" "NLnet Labs" "unbound 1.9.0"
.\"
.\" unbound-host.1 -- unbound DNS lookup utility
.\"
diff --git a/doc/unbound.8.in b/doc/unbound.8.in
index 65aa4b11d764..999ac24fcacf 100644
--- a/doc/unbound.8.in
+++ b/doc/unbound.8.in
@@ -1,4 +1,4 @@
-.TH "unbound" "8" "Oct 8, 2018" "NLnet Labs" "unbound 1.8.1"
+.TH "unbound" "8" "Feb 5, 2019" "NLnet Labs" "unbound 1.9.0"
.\"
.\" unbound.8 -- unbound manual
.\"
@@ -9,7 +9,7 @@
.\"
.SH "NAME"
.B unbound
-\- Unbound DNS validating resolver 1.8.1.
+\- Unbound DNS validating resolver 1.9.0.
.SH "SYNOPSIS"
.B unbound
.RB [ \-h ]
diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in
index bc233fdeb0c7..2710100da9bf 100644
--- a/doc/unbound.conf.5.in
+++ b/doc/unbound.conf.5.in
@@ -1,4 +1,4 @@
-.TH "unbound.conf" "5" "Oct 8, 2018" "NLnet Labs" "unbound 1.8.1"
+.TH "unbound.conf" "5" "Feb 5, 2019" "NLnet Labs" "unbound 1.9.0"
.\"
.\" unbound.conf.5 -- unbound.conf manual
.\"
@@ -207,6 +207,16 @@ Maximum UDP response size (not applied to TCP response). 65536 disables the
udp response size maximum, and uses the choice from the client, always.
Suggested values are 512 to 4096. Default is 4096.
.TP
+.B stream\-wait\-size: \fI<number>
+Number of bytes size maximum to use for waiting stream buffers. Default is
+4 megabytes. A plain number is in bytes, append 'k', 'm' or 'g' for kilobytes,
+megabytes or gigabytes (1024*1024 bytes in a megabyte). As TCP and TLS streams
+queue up multiple results, the amount of memory used for these buffers does
+not exceed this number, otherwise the responses are dropped. This manages
+the total memory usage of the server (under heavy use), the number of requests
+that can be queued up per connection is also limited, with further requests
+waiting in TCP buffers.
+.TP
.B msg\-buffer\-size: \fI<number>
Number of bytes size of the message buffers. Default is 65552 bytes, enough
for 64 Kb packets, the maximum DNS message size. No message larger than this
@@ -253,6 +263,12 @@ eg. 1500 msec. When timeouts happen you need extra sockets, it checks
the ID and remote IP of packets, and unwanted packets are added to the
unwanted packet counter.
.TP
+.B unknown\-server\-time\-limit: \fI<msec>
+The wait time in msec for waiting for an unknown server to reply.
+Increase this if you are behind a slow satellite link, to eg. 1128.
+That would then avoid re\-querying every initial query because it times out.
+Default is 376 msec.
+.TP
.B so\-rcvbuf: \fI<number>
If not 0, then set the SO_RCVBUF socket option to get more buffer
space on UDP port 53 incoming queries. So that short spikes on busy
@@ -314,11 +330,9 @@ Must be set to a power of 2.
.TP
.B cache\-max\-ttl: \fI<seconds>
Time to live maximum for RRsets and messages in the cache. Default is
-86400 seconds (1 day). If the maximum kicks in, responses to clients
-still get decrementing TTLs based on the original (larger) values.
-When the internal TTL expires, the cache item has expired.
+86400 seconds (1 day). When the TTL expires, the cache item has expired.
Can be set lower to force the resolver to query for data often, and not
-trust (very large) TTL values.
+trust (very large) TTL values. Downstream clients also see the lower TTL.
.TP
.B cache\-min\-ttl: \fI<seconds>
Time to live minimum for RRsets and messages in the cache. Default is 0.
@@ -436,13 +450,15 @@ 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
load CA certs, otherwise the connections cannot be authenticated.
+This option enables TLS for all of them, but if you do not set this you can
+configure TLS specifically for some forward zones with forward\-tls\-upstream. And also with stub\-tls\-upstream.
.TP
.B ssl\-upstream: \fI<yes or no>
Alternate syntax for \fBtls\-upstream\fR. If both are present in the config
file the last is used.
.TP
.B tls\-service\-key: \fI<file>
-If enabled, the server provider TLS service on its TCP sockets. The clients
+If enabled, the server provides TLS service on its TCP sockets. The clients
have to use tls\-upstream: yes. The file is the private key for the TLS
session. The public certificate is in the tls\-service\-pem file. Default
is "", turned off. Requires a restart (a reload is not enough) if changed,
@@ -488,6 +504,27 @@ List portnumbers as tls\-additional\-port, and when interfaces are defined,
eg. with the @port suffix, as this port number, they provide dns over TLS
service. Can list multiple, each on a new statement.
.TP
+.B tls-session-ticket-keys: \fI<file>
+If not "", lists files with 80 bytes of random contents that are used to
+perform TLS session resumption for clients using the unbound server.
+These files contain the secret key for the TLS session tickets.
+First key use to encrypt and decrypt TLS session tickets.
+Other keys use to decrypt only. With this you can roll over to new keys,
+by generating a new first file and allowing decrypt of the old file by
+listing it after the first file for some time, after the wait clients are not
+using the old key any more and the old key can be removed.
+One way to create the file is dd if=/dev/random bs=1 count=80 of=ticket.dat
+The first 16 bytes should be different from the old one if you create a second key, that is the name used to identify the key. Then there is 32 bytes random
+data for an AES key and then 32 bytes random data for the HMAC key.
+.TP
+.B tls\-ciphers: \fI<string with cipher list>
+Set the list of ciphers to allow when serving TLS. Use "" for defaults,
+and that is the default.
+.TP
+.B tls\-ciphersuites: \fI<string with ciphersuites list>
+Set the list of ciphersuites to allow when serving TLS. This is for newer
+TLS 1.3 connections. Use "" for defaults, and that is the default.
+.TP
.B use\-systemd: \fI<yes or no>
Enable or disable systemd socket activation.
Default is no.
@@ -655,6 +692,11 @@ 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\-tag\-queryreply: \fI<yes or no>
+Prints the word 'query' and 'reply' with log\-queries and log\-replies.
+This makes filtering logs easier. The default is off (for backwards
+compatibility).
+.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
@@ -848,12 +890,18 @@ keep the cache up to date. Default is no. Turning it on gives about
10 percent more traffic and load on the machine, but popular items do
not expire from the cache.
.TP
-.B prefetch-key: \fI<yes or no>
+.B prefetch\-key: \fI<yes or no>
If yes, fetch the DNSKEYs earlier in the validation process, when a DS
record is encountered. This lowers the latency of requests. It does use
a little more CPU. Also if the cache is set to 0, it is no use. Default is no.
.TP
-.B rrset-roundrobin: \fI<yes or no>
+.B deny\-any: \fI<yes or no>
+If yes, deny queries of type ANY with an empty response. Default is no.
+If disabled, unbound responds with a short list of resource records if some
+can be found in the cache and makes the upstream type ANY query if there
+are none.
+.TP
+.B rrset\-roundrobin: \fI<yes or no>
If yes, Unbound rotates RRSet order in response (the random number is taken
from the query ID, for speed and thread safety). Default is no.
.TP
@@ -1391,22 +1439,20 @@ This can make ordinary queries complete (if repeatedly queried for),
and enter the cache, whilst also mitigating the traffic flow by the
factor given.
.TP 5
-.B low\-rtt: \fI<msec time>
-Set the time in millisecond that is considere a low ping time for fast
-server selection with the low\-rtt\-permil option, that turns this on or off.
-The default is 45 msec, a number from IPv6 quick response documents.
+.B fast\-server\-permil: \fI<number>
+Specify how many times out of 1000 to pick from the set of fastest servers.
+0 turns the feature off. A value of 900 would pick from the fastest
+servers 90 percent of the time, and would perform normal exploration of random
+servers for the remaining time. When prefetch is enabled (or serve\-expired),
+such prefetches are not sped up, because there is no one waiting for it, and it
+presents a good moment to perform server exploration. The
+\fBfast\-server\-num\fR option can be used to specify the size of the fastest
+servers set. The default for fast\-server\-permil is 0.
.TP 5
-.B low\-rtt\-permil: \fI<number>
-Specify how many times out of 1000 to pick the fast server from the low
-rtt band. 0 turns the feature off. A value of 900 would pick the fast
-server when such fast servers are available 90 percent of the time, and
-the remaining time perform normal exploration of random servers.
-When prefetch is enabled (or serve\-expired), such prefetches are not
-sped up, because there is no one waiting for it, and it presents a good
-moment to perform server exploration. The low\-rtt option can be used
-to specify which servers are picked for fast server selection, servers
-with a ping roundtrip time below that value are considered.
-The default for low\-rtt\-permil is 0.
+.B fast\-server\-num: \fI<number>
+Set the number of servers that should be used for fast server selection. Only
+use the fastest specified number of servers with the fast\-server\-permil
+option, that turns this on or off. The default is to use the fastest 3 servers.
.SS "Remote Control Options"
In the
.B remote\-control:
@@ -1604,6 +1650,13 @@ lookups of that data.
Authority zones can be read from zonefile. And can be kept updated via
AXFR and IXFR. After update the zonefile is rewritten. The update mechanism
uses the SOA timer values and performs SOA UDP queries to detect zone changes.
+.LP
+If the update fetch fails, the timers in the SOA record are used to time
+another fetch attempt. Until the SOA expiry timer is reached. Then the
+zone is expired. When a zone is expired, queries are SERVFAIL, and
+any new serial number is accepted from the master (even if older), and if
+fallback is enabled, the fallback activates to fetch from the upstream instead
+of the SERVFAIL.
.TP
.B name: \fI<zone name>
Name of the authority zone.
@@ -1843,6 +1896,24 @@ to expose to third parties for IPv6. Defaults to 56.
.B max\-client\-subnet\-ipv4: \fI<number>\fR
Specifies the maximum prefix length of the client source address we are willing
to expose to third parties for IPv4. Defaults to 24.
+.TP
+.B min\-client\-subnet\-ipv6: \fI<number>\fR
+Specifies the minimum prefix length of the IPv6 source mask we are willing to
+accept in queries. Shorter source masks result in REFUSED answers. Source mask
+of 0 is always accepted. Default is 0.
+.TP
+.B min\-client\-subnet\-ipv4: \fI<number>\fR
+Specifies the minimum prefix length of the IPv4 source mask we are willing to
+accept in queries. Shorter source masks result in REFUSED answers. Source mask
+of 0 is always accepted. Default is 0.
+.TP
+.B max\-ecs\-tree\-size\-ipv4: \fI<number>\fR
+Specifies the maximum number of subnets ECS answers kept in the ECS radix tree.
+This number applies for each qname/qclass/qtype tuple. Defaults to 100.
+.TP
+.B max\-ecs\-tree\-size\-ipv6: \fI<number>\fR
+Specifies the maximum number of subnets ECS answers kept in the ECS radix tree.
+This number applies for each qname/qclass/qtype tuple. Defaults to 100.
.SS "Opportunistic IPsec Support Module Options"
.LP
The IPsec module must be configured in the \fBmodule\-config:\fR "ipsecmod
diff --git a/doc/unbound.doxygen b/doc/unbound.doxygen
index fe39876816b5..24f4203a83ed 100644
--- a/doc/unbound.doxygen
+++ b/doc/unbound.doxygen
@@ -612,17 +612,22 @@ RECURSIVE = YES
EXCLUDE = ./build \
./compat \
+ ./contrib \
util/configparser.c \
util/configparser.h \
util/configlexer.c \
util/locks.h \
+ pythonmod/doc \
+ pythonmod/examples \
pythonmod/unboundmodule.py \
pythonmod/interface.h \
- pythonmod/examples/resgen.py \
- pythonmod/examples/resmod.py \
- pythonmod/examples/resip.py \
+ pythonmod/ubmodule-msg.py \
+ pythonmod/ubmodule-tst.py \
+ unboundmodule.py \
libunbound/python/unbound.py \
libunbound/python/libunbound_wrap.c \
+ libunbound/python/doc \
+ libunbound/python/examples \
./ldns-src \
doc/control_proto_spec.txt \
doc/requirements.txt