git: 5fa84c6ec176 - main - unbound: Update to 1.25.0
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 23 May 2026 01:57:16 UTC
The branch main has been updated by des:
URL: https://cgit.FreeBSD.org/src/commit/?id=5fa84c6ec176d186ddad25d31f8760e50f48157f
commit 5fa84c6ec176d186ddad25d31f8760e50f48157f
Merge: b13335331092 4dd0a17edce6
Author: Dag-Erling Smørgrav <des@FreeBSD.org>
AuthorDate: 2026-05-23 01:54:22 +0000
Commit: Dag-Erling Smørgrav <des@FreeBSD.org>
CommitDate: 2026-05-23 01:54:22 +0000
unbound: Update to 1.25.0
Release notes at
https://nlnetlabs.nl/news/2026/Apr/29/unbound-1.25.0-released/
Merge commit '4dd0a17edce60370304a45f2c40251e09e193bd6'
MFC after: 1 week
contrib/unbound/README.md | 21 +-
contrib/unbound/aclocal.m4 | 857 +-
contrib/unbound/acx_nlnetlabs.m4 | 77 +-
contrib/unbound/cachedb/cachedb.c | 108 +-
contrib/unbound/cachedb/redis.c | 6 +
contrib/unbound/compat/arc4random.c | 7 +
contrib/unbound/compat/chacha_private.h | 4 +-
contrib/unbound/compat/getentropy_linux.c | 20 +
contrib/unbound/compat/gmtime_r.c | 5 +-
contrib/unbound/config.h.in | 397 +-
contrib/unbound/configure | 6522 ++++++---------
contrib/unbound/configure.ac | 123 +-
contrib/unbound/contrib/README | 2 +
contrib/unbound/contrib/gost12.patch | 325 +
contrib/unbound/contrib/ios/install_openssl.sh | 12 +-
contrib/unbound/contrib/ios/setenv_ios.sh | 5 +
contrib/unbound/contrib/unbound.service.in | 2 +-
.../unbound/contrib/unbound_portable.service.in | 2 +-
contrib/unbound/daemon/daemon.c | 326 +-
contrib/unbound/daemon/daemon.h | 41 +
contrib/unbound/daemon/remote.c | 315 +-
contrib/unbound/daemon/remote.h | 8 +
contrib/unbound/daemon/stats.c | 6 +
contrib/unbound/daemon/unbound.c | 51 +-
contrib/unbound/daemon/worker.c | 258 +-
contrib/unbound/dns64/dns64.c | 23 +-
contrib/unbound/dnstap/dtstream.c | 16 +-
contrib/unbound/dnstap/dtstream.h | 6 +
contrib/unbound/dnstap/unbound-dnstap-socket.c | 28 +-
contrib/unbound/doc/Changelog | 484 ++
contrib/unbound/doc/README | 2 +-
contrib/unbound/doc/README.DNS64 | 6 +-
contrib/unbound/doc/README.man | 11 +-
contrib/unbound/doc/example.conf | 75 +-
contrib/unbound/doc/example.conf.in | 75 +-
contrib/unbound/doc/libunbound.3 | 6 +-
contrib/unbound/doc/libunbound.3.in | 6 +-
contrib/unbound/doc/unbound-anchor.8 | 21 +-
contrib/unbound/doc/unbound-anchor.8.in | 21 +-
contrib/unbound/doc/unbound-anchor.rst | 15 +-
contrib/unbound/doc/unbound-checkconf.8 | 6 +-
contrib/unbound/doc/unbound-checkconf.8.in | 6 +-
contrib/unbound/doc/unbound-control.8 | 45 +-
contrib/unbound/doc/unbound-control.8.in | 45 +-
contrib/unbound/doc/unbound-control.rst | 34 +
contrib/unbound/doc/unbound-host.1 | 6 +-
contrib/unbound/doc/unbound-host.1.in | 6 +-
contrib/unbound/doc/unbound.8 | 8 +-
contrib/unbound/doc/unbound.8.in | 8 +-
contrib/unbound/doc/unbound.conf.5 | 558 +-
contrib/unbound/doc/unbound.conf.5.in | 558 +-
contrib/unbound/doc/unbound.conf.rst | 524 +-
contrib/unbound/doc/unbound.rst | 2 +-
contrib/unbound/edns-subnet/subnetmod.c | 108 +-
contrib/unbound/edns-subnet/subnetmod.h | 10 +
contrib/unbound/install-sh | 178 +-
contrib/unbound/ipsecmod/ipsecmod.c | 2 +-
contrib/unbound/iterator/iter_fwd.c | 5 +
contrib/unbound/iterator/iter_hints.c | 5 +
contrib/unbound/iterator/iter_priv.c | 168 +-
contrib/unbound/iterator/iter_scrub.c | 70 +-
contrib/unbound/iterator/iter_utils.c | 50 +-
contrib/unbound/iterator/iter_utils.h | 1 +
contrib/unbound/iterator/iterator.c | 43 +-
contrib/unbound/libunbound/unbound.h | 4 +
contrib/unbound/ltmain.sh | 1566 ++--
contrib/unbound/pythonmod/interface.i | 1857 -----
contrib/unbound/pythonmod/pythonmod_utils.c | 201 -
contrib/unbound/respip/respip.c | 9 +-
contrib/unbound/services/authzone.c | 150 +-
contrib/unbound/services/cache/dns.c | 110 +-
contrib/unbound/services/cache/dns.h | 2 +-
contrib/unbound/services/cache/infra.c | 3 +-
contrib/unbound/services/cache/rrset.c | 37 +-
contrib/unbound/services/listen_dnsport.c | 40 +-
contrib/unbound/services/localzone.c | 179 +-
contrib/unbound/services/localzone.h | 12 +-
contrib/unbound/services/mesh.c | 130 +-
contrib/unbound/services/mesh.h | 13 +-
contrib/unbound/services/modstack.c | 7 +-
contrib/unbound/services/outside_network.c | 65 +-
contrib/unbound/services/outside_network.h | 7 +
contrib/unbound/services/rpz.c | 1 +
contrib/unbound/sldns/rrdef.h | 4 +-
contrib/unbound/sldns/wire2str.c | 3 +
contrib/unbound/smallapp/unbound-anchor.c | 12 +-
contrib/unbound/smallapp/unbound-checkconf.c | 48 +-
contrib/unbound/smallapp/unbound-control.c | 15 +-
contrib/unbound/smallapp/unbound-host.c | 12 +-
contrib/unbound/testcode/checklocks.c | 916 ---
contrib/unbound/testcode/do-tests.sh | 76 -
contrib/unbound/testcode/doqclient.c | 2764 -------
contrib/unbound/testcode/fake_event.c | 2044 -----
contrib/unbound/testcode/testbound.c | 788 --
contrib/unbound/testcode/unitdname.c | 1314 ---
contrib/unbound/testcode/unitinfra.c | 210 -
contrib/unbound/testcode/unitldns.c | 284 -
contrib/unbound/testcode/unitmain.c | 1401 ----
contrib/unbound/testcode/unitmain.h | 92 -
contrib/unbound/testcode/unitneg.c | 545 --
contrib/unbound/testcode/unitverify.c | 706 --
contrib/unbound/testcode/unitzonemd.c | 542 --
contrib/unbound/util/alloc.c | 2 +-
contrib/unbound/util/config_file.c | 116 +
contrib/unbound/util/config_file.h | 32 +
contrib/unbound/util/configlexer.c | 8521 ++++++++++----------
contrib/unbound/util/configlexer.lex | 4 +-
contrib/unbound/util/configparser.c | 4650 +++++------
contrib/unbound/util/configparser.h | 184 +-
contrib/unbound/util/configparser.y | 53 +-
contrib/unbound/util/data/msgencode.c | 58 +-
contrib/unbound/util/data/msgencode.h | 4 +-
contrib/unbound/util/data/msgparse.c | 12 +
contrib/unbound/util/data/msgparse.h | 25 +
contrib/unbound/util/data/msgreply.c | 72 +-
contrib/unbound/util/data/msgreply.h | 28 +-
contrib/unbound/util/data/packed_rrset.c | 36 +-
contrib/unbound/util/data/packed_rrset.h | 3 +
contrib/unbound/util/fptr_wlist.c | 7 +-
contrib/unbound/util/fptr_wlist.h | 8 +-
contrib/unbound/util/iana_ports.inc | 9 +-
contrib/unbound/util/locks.h | 27 +
contrib/unbound/util/log.c | 32 +-
contrib/unbound/util/module.h | 19 +-
contrib/unbound/util/net_help.c | 54 +-
contrib/unbound/util/net_help.h | 12 +-
contrib/unbound/util/netevent.c | 27 +-
contrib/unbound/util/shm_side/shm_main.c | 219 +-
contrib/unbound/util/shm_side/shm_main.h | 15 +
contrib/unbound/util/timehist.h | 4 +
contrib/unbound/validator/val_neg.c | 14 +-
contrib/unbound/validator/val_sigcrypt.c | 12 +
contrib/unbound/validator/val_sigcrypt.h | 2 +-
contrib/unbound/validator/val_utils.c | 25 +
contrib/unbound/validator/val_utils.h | 11 +
contrib/unbound/validator/validator.c | 95 +-
contrib/unbound/winrc/win_svc.c | 6 +-
lib/libunbound/config.h | 403 +-
138 files changed, 16189 insertions(+), 27522 deletions(-)
diff --cc contrib/unbound/README.md
index 3bbd38b3b78b,000000000000..d805e4d0a3d7
mode 100644,000000..100644
--- a/contrib/unbound/README.md
+++ b/contrib/unbound/README.md
@@@ -1,42 -1,0 +1,45 @@@
+# Unbound
+
+[](https://github.com/NLnetLabs/unbound/actions)
+[](https://repology.org/project/unbound/versions)
+[](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:unbound)
+[](https://unbound.readthedocs.io/en/latest/?badge=latest)
- [](https://fosstodon.org/@nlnetlabs)
++[](https://social.nlnetlabs.nl/@nlnetlabs)
+
+Unbound is a validating, recursive, caching DNS resolver. It is designed to be
+fast and lean and incorporates modern features based on open standards. If you
+have any feedback, we would love to hear from you. Don’t hesitate to
+[create an issue on Github](https://github.com/NLnetLabs/unbound/issues/new)
+or post a message on the [Unbound mailing list](https://lists.nlnetlabs.nl/mailman/listinfo/unbound-users).
+You can learn more about Unbound by reading our
+[documentation](https://unbound.docs.nlnetlabs.nl/).
+
+## Compiling
+
+Make sure you have the C toolchain, OpenSSL and its include files, and libexpat
+installed.
+If building from the repository source you also need flex and bison installed.
+Unbound can be compiled and installed using:
+
+```
+./configure && make && make install
+```
+
- You can use libevent if you want. libevent is useful when using many (10000)
- outgoing ports. By default max 256 ports are opened at the same time and the
- builtin alternative is equally capable and a little faster.
-
++You can use libevent if you want. libevent is useful when using many (e.g.,
++10000) outgoing ports.
+Use the `--with-libevent` configure option to compile Unbound with libevent
+support.
+
++If not, the default builtin alternative opens max 256 ports at the same time
++and is equally capable and a little faster.
++
++
+## Unbound configuration
+
- All of Unbound's configuration options are described in the man pages, which
- will be installed and are available on the Unbound
- [documentation page](https://unbound.docs.nlnetlabs.nl/).
++All of Unbound's configuration options are described in the `unbound.conf(5)`
++man page, which will be installed and is also available on the Unbound
++[documentation page](https://unbound.docs.nlnetlabs.nl/en/latest/manpages/unbound.conf.html)
++for the latest version.
+
- An example configuration file is located in
++An example configuration file, with minimal documentation, is located in
+[doc/example.conf](https://github.com/NLnetLabs/unbound/blob/master/doc/example.conf.in).
diff --cc contrib/unbound/contrib/gost12.patch
index 000000000000,c8df071666aa..c8df071666aa
mode 000000,100644..100644
--- a/contrib/unbound/contrib/gost12.patch
+++ b/contrib/unbound/contrib/gost12.patch
diff --cc contrib/unbound/doc/example.conf
index ba9fee412d7b,000000000000..8820e4ae6058
mode 100644,000000..100644
--- a/contrib/unbound/doc/example.conf
+++ b/contrib/unbound/doc/example.conf
@@@ -1,1424 -1,0 +1,1455 @@@
+#
+# Example configuration file.
+#
- # See unbound.conf(5) man page, version 1.24.2.
++# See unbound.conf(5) man page, version 1.25.0.
+#
+# this is a comment.
+
+# Use this anywhere in the file to include other text into this file.
+#include: "otherfile.conf"
+
+# Use this anywhere in the file to include other text, that explicitly starts a
+# clause, into this file. Text after this directive needs to start a clause.
+#include-toplevel: "otherfile.conf"
+
+# The server clause sets the main parameters.
+server:
+ # whitespace is not necessary, but looks cleaner.
+
+ # verbosity number, 0 is least verbose. 1 is default.
+ # verbosity: 1
+
+ # print statistics to the log (for every thread) every N seconds.
+ # Set to "" or 0 to disable. Default is disabled.
+ # statistics-interval: 0
+
+ # enable shm for stats, default no. if you enable also enable
+ # statistics-interval, every time it also writes stats to the
+ # shared memory segment keyed with shm-key.
+ # shm-enable: no
+
+ # shm for stats uses this key, and key+1 for the shared mem segment.
+ # shm-key: 11777
+
+ # enable cumulative statistics, without clearing them after printing.
+ # statistics-cumulative: no
+
+ # enable extended statistics (query types, answer codes, status)
+ # printed from unbound-control. Default off, because of speed.
+ # extended-statistics: no
+
+ # Inhibits selected extended statistics (qtype, qclass, qopcode, rcode,
+ # rpz-actions) from printing if their value is 0.
+ # Default on.
+ # statistics-inhibit-zero: yes
+
+ # number of threads to create. 1 disables threading.
+ # num-threads: 1
+
+ # specify the interfaces to answer queries from by ip-address.
+ # The default is to listen to localhost (127.0.0.1 and ::1).
+ # specify 0.0.0.0 and ::0 to bind to all available interfaces.
+ # specify every interface[@port] on a new 'interface:' labelled line.
+ # The listen interfaces are not changed on reload, only on restart.
+ # interface: 192.0.2.153
+ # interface: 192.0.2.154
+ # interface: 192.0.2.154@5003
- # interface: 2001:DB8::5
++ # interface: 2001:db8::5
+ # interface: eth0@5003
+
+ # enable this feature to copy the source address of queries to reply.
+ # Socket options are not supported on all platforms. experimental.
+ # interface-automatic: no
+
+ # instead of the default port, open additional ports separated by
+ # spaces when interface-automatic is enabled, by listing them here.
+ # interface-automatic-ports: ""
+
+ # port to answer queries from
+ # port: 53
+
+ # specify the interfaces to send outgoing queries to authoritative
+ # server from by ip-address. If none, the default (all) interface
+ # is used. Specify every interface on a 'outgoing-interface:' line.
+ # outgoing-interface: 192.0.2.153
- # outgoing-interface: 2001:DB8::5
- # outgoing-interface: 2001:DB8::6
++ # outgoing-interface: 2001:db8::5
++ # outgoing-interface: 2001:db8::6
+
+ # Specify a netblock to use remainder 64 bits as random bits for
+ # upstream queries. Uses freebind option (Linux).
- # outgoing-interface: 2001:DB8::/64
++ # outgoing-interface: 2001:db8::/64
+ # Also (Linux:) ip -6 addr add 2001:db8::/64 dev lo
+ # And: ip -6 route add local 2001:db8::/64 dev lo
+ # And set prefer-ip6: yes to use the ip6 randomness from a netblock.
+ # Set this to yes to prefer ipv6 upstream servers over ipv4.
+ # prefer-ip6: no
+
+ # Prefer ipv4 upstream servers, even if ipv6 is available.
+ # prefer-ip4: no
+
+ # number of ports to allocate per thread, determines the size of the
+ # port range that can be open simultaneously. About double the
+ # num-queries-per-thread, or, use as many as the OS will allow you.
+ # outgoing-range: 4096
+
+ # permit Unbound to use this port number or port range for
+ # making outgoing queries, using an outgoing interface.
+ # outgoing-port-permit: 32768
+
+ # deny Unbound the use this of port number or port range for
+ # making outgoing queries, using an outgoing interface.
+ # Use this to make sure Unbound does not grab a UDP port that some
+ # other server on this computer needs. The default is to avoid
+ # IANA-assigned port numbers.
+ # If multiple outgoing-port-permit and outgoing-port-avoid options
+ # are present, they are processed in order.
+ # outgoing-port-avoid: "3200-3208"
+
+ # number of outgoing simultaneous tcp buffers to hold per thread.
+ # outgoing-num-tcp: 10
+
+ # number of incoming simultaneous tcp buffers to hold per thread.
+ # incoming-num-tcp: 10
+
+ # buffer size for UDP port 53 incoming (SO_RCVBUF socket option).
+ # 0 is system default. Use 4m to catch query spikes for busy servers.
+ # so-rcvbuf: 0
+
+ # buffer size for UDP port 53 outgoing (SO_SNDBUF socket option).
+ # 0 is system default. Set larger to handle spikes on very busy servers.
+ # so-sndbuf: 4m
+
+ # use SO_REUSEPORT to distribute queries over threads.
+ # at extreme load it could be better to turn it off to distribute even.
+ # 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
+ # (uses IP_BINDANY on FreeBSD).
+ # ip-transparent: no
+
+ # use IP_FREEBIND so the interface: addresses can be non-local
+ # and you can bind to nonexisting IPs and interfaces that are down.
+ # Linux only. On Linux you also have ip-transparent that is similar.
+ # ip-freebind: no
+
+ # the value of the Differentiated Services Codepoint (DSCP)
+ # in the differentiated services field (DS) of the outgoing
+ # IP packets
+ # ip-dscp: 0
+
+ # EDNS reassembly buffer to advertise to UDP peers (the actual buffer
+ # is set with msg-buffer-size).
+ # edns-buffer-size: 1232
+
+ # Maximum UDP response size (not applied to TCP response).
+ # Suggested values are 512 to 4096. Default is 1232. 65536 disables it.
+ # max-udp-size: 1232
+
+ # 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
+
+ # the amount of memory to use for the message cache.
+ # plain value in bytes or you can append k, m or G. default is "4Mb".
+ # msg-cache-size: 4m
+
+ # the number of slabs to use for the message cache.
+ # the number of slabs must be a power of 2.
+ # more slabs reduce lock contention, but fragment memory usage.
+ # msg-cache-slabs: 4
+
+ # the number of queries that a thread gets to service.
+ # num-queries-per-thread: 2048
+
+ # if very busy, 50% queries run to completion, 50% get timeout in msec
+ # jostle-timeout: 200
+
+ # msec to wait before close of port on timeout UDP. 0 disables.
+ # delay-close: 0
+
+ # perform connect for UDP sockets to mitigate ICMP side channel.
+ # udp-connect: yes
+
+ # The number of retries, per upstream nameserver in a delegation, when
+ # a throwaway response (also timeouts) is received.
+ # outbound-msg-retry: 5
+
+ # Hard limit on the number of outgoing queries Unbound will make while
+ # resolving a name, making sure large NS sets do not loop.
+ # It resets on query restarts (e.g., CNAME) and referrals.
+ # max-sent-count: 32
+
+ # Hard limit on the number of times Unbound is allowed to restart a
+ # query upon encountering a CNAME record.
+ # max-query-restarts: 11
+
+ # Limit on number of NS records in NS RRset for incoming packets.
+ # iter-scrub-ns: 20
+
+ # Limit on number of CNAME, DNAME records for incoming packets.
+ # iter-scrub-cname: 11
+
++ # Limit on number of RRSIGs for an RRset for incoming packets.
++ # iter-scrub-rrsig: 8
++
+ # Limit on upstream queries for an incoming query and its recursion.
+ # max-global-quota: 200
+
+ # Should the scrubber remove promiscuous NS from positive answers,
+ # protects against poison attempts.
+ # iter-scrub-promiscuous: yes
+
+ # 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
+
+ # msec before recursion replies are dropped. The work item continues.
+ # discard-timeout: 1900
+
+ # Max number of replies waiting for recursion per IP address.
+ # wait-limit: 1000
+
+ # Max replies waiting for recursion for IP address with cookie.
+ # wait-limit-cookie: 10000
+
+ # Apart from the default, the wait limit can be set for a netblock.
+ # wait-limit-netblock: 192.0.2.0/24 50000
+
+ # Apart from the default, the wait limit with cookie can be adjusted.
+ # wait-limit-cookie-netblock: 192.0.2.0/24 50000
+
+ # Defaults for loopback, it has no wait limit.
+ # wait-limit-netblock: 127.0.0.0/8 -1
+ # wait-limit-netblock: ::1/128 -1
+ # wait-limit-cookie-netblock: 127.0.0.0/8 -1
+ # wait-limit-cookie-netblock: ::1/128 -1
+
+ # 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
+
+ # the number of slabs to use for the RRset cache.
+ # the number of slabs must be a power of 2.
+ # more slabs reduce lock contention, but fragment memory usage.
+ # rrset-cache-slabs: 4
+
+ # the time to live (TTL) value lower bound, in seconds. Default 0.
+ # If more than an hour could easily give trouble due to stale data.
+ # cache-min-ttl: 0
+
+ # the time to live (TTL) value cap for RRsets and messages in the
+ # cache. Items are not cached for longer. In seconds.
+ # cache-max-ttl: 86400
+
+ # the time to live (TTL) value cap for negative responses in the cache
+ # cache-max-negative-ttl: 3600
+
+ # the time to live (TTL) value lower bound, in seconds. Default 0.
+ # For negative responses in the cache. If disabled, default,
+ # cache-min-ttl applies if configured.
+ # cache-min-negative-ttl: 0
+
+ # the time to live (TTL) value for cached roundtrip times, lameness and
+ # EDNS version information for hosts. In seconds.
+ # infra-host-ttl: 900
+
+ # minimum wait time for responses, increase if uplink is long. In msec.
+ # infra-cache-min-rtt: 50
+
+ # maximum wait time for responses. In msec.
+ # infra-cache-max-rtt: 120000
+
+ # enable to make server probe down hosts more frequently.
+ # infra-keep-probing: no
+
+ # the number of slabs to use for the Infrastructure cache.
+ # the number of slabs must be a power of 2.
+ # more slabs reduce lock contention, but fragment memory usage.
+ # infra-cache-slabs: 4
+
+ # the maximum number of hosts that are cached (roundtrip, EDNS, lame).
+ # infra-cache-numhosts: 10000
+
+ # define a number of tags here, use with local-zone, access-control,
+ # interface-*.
+ # repeat the define-tag statement to add additional tags.
+ # define-tag: "tag1 tag2 tag3"
+
+ # Enable IPv4, "yes" or "no".
+ # do-ip4: yes
+
+ # Enable IPv6, "yes" or "no".
+ # do-ip6: yes
+
+ # If running unbound on an IPv6-only host, domains that only have
+ # IPv4 servers would become unresolvable. If NAT64 is available in
+ # the network, unbound can use NAT64 to reach these servers with
+ # the following option. This is NOT needed for enabling DNS64 on a
+ # system that has IPv4 connectivity.
+ # Consider also enabling prefer-ip6 to prefer native IPv6 connections
+ # to nameservers.
+ # do-nat64: no
+
+ # NAT64 prefix. Defaults to using dns64-prefix value.
+ # nat64-prefix: 64:ff9b::0/96
+
+ # Enable UDP, "yes" or "no".
+ # do-udp: yes
+
+ # Enable TCP, "yes" or "no".
+ # do-tcp: yes
+
+ # upstream connections use TCP only (and no UDP), "yes" or "no"
+ # useful for tunneling scenarios, default no.
+ # tcp-upstream: no
+
+ # upstream connections also use UDP (even if do-udp is no).
+ # useful if if you want UDP upstream, but don't provide UDP downstream.
+ # udp-upstream-without-downstream: no
+
+ # Maximum segment size (MSS) of TCP socket on which the server
+ # responds to queries. Default is 0, system default MSS.
+ # tcp-mss: 0
+
+ # Maximum segment size (MSS) of TCP socket for outgoing queries.
+ # 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. Overrides tcp-idle-timeout
+ # if edns-tcp-keepalive is set.
+ # edns-tcp-keepalive-timeout: 120000
+
+ # UDP queries that have waited in the socket buffer for a long time
+ # can be dropped. Default is 0, disabled. In seconds, such as 3.
+ # sock-queue-timeout: 0
+
+ # Use systemd socket activation for UDP, TCP, and control sockets.
+ # use-systemd: no
+
+ # Detach from the terminal, run in background, "yes" or "no".
+ # Set the value to "no" when Unbound runs as systemd service.
+ # do-daemonize: yes
+
+ # control which clients are allowed to make (recursive) queries
+ # to this server. Specify classless netblocks with /size and action.
+ # By default everything is refused, except for localhost.
+ # Choose deny (drop message), refuse (polite error reply),
+ # allow (recursive ok), allow_setrd (recursive ok, rd bit is forced on),
+ # allow_snoop (recursive and nonrecursive ok)
+ # allow_cookie (allow UDP with valid cookie or stateful transport)
+ # deny_non_local (drop queries unless can be answered from local-data)
+ # refuse_non_local (like deny_non_local but polite error reply).
+ # access-control: 127.0.0.0/8 allow
+ # access-control: ::1 allow
+ # access-control: ::ffff:127.0.0.1 allow
+
+ # tag access-control with list of tags (in "" with spaces between)
+ # Clients using this access control element use localzones that
+ # are tagged with one of these tags.
+ # access-control-tag: 192.0.2.0/24 "tag2 tag3"
+
+ # set action for particular tag for given access control element.
+ # if you have multiple tag values, the tag used to lookup the action
+ # is the first tag match between access-control-tag and local-zone-tag
+ # where "first" comes from the order of the define-tag values.
+ # access-control-tag-action: 192.0.2.0/24 tag3 refuse
+
+ # set redirect data for particular tag for access control element
+ # access-control-tag-data: 192.0.2.0/24 tag2 "A 127.0.0.1"
+
+ # Set view for access control element
+ # access-control-view: 192.0.2.0/24 viewname
+
+ # Similar to 'access-control:' but for interfaces.
+ # Control which listening interfaces are allowed to accept (recursive)
+ # queries for this server.
+ # The specified interfaces should be the same as the ones specified in
+ # 'interface:' followed by the action.
+ # The actions are the same as 'access-control:' above.
+ # By default all the interfaces configured are refused.
+ # Note: any 'access-control*:' setting overrides all 'interface-*:'
+ # settings for targeted clients.
+ # interface-action: 192.0.2.153 allow
+ # interface-action: 192.0.2.154 allow
+ # interface-action: 192.0.2.154@5003 allow
- # interface-action: 2001:DB8::5 allow
++ # interface-action: 2001:db8::5 allow
+ # interface-action: eth0@5003 allow
+
+ # Similar to 'access-control-tag:' but for interfaces.
+ # Tag interfaces with a list of tags (in "" with spaces between).
+ # Interfaces using these tags use localzones that are tagged with one
+ # of these tags.
+ # The specified interfaces should be the same as the ones specified in
+ # 'interface:' followed by the list of tags.
+ # Note: any 'access-control*:' setting overrides all 'interface-*:'
+ # settings for targeted clients.
+ # interface-tag: eth0@5003 "tag2 tag3"
+
+ # Similar to 'access-control-tag-action:' but for interfaces.
+ # Set action for particular tag for a given interface element.
+ # If you have multiple tag values, the tag used to lookup the action
+ # is the first tag match between interface-tag and local-zone-tag
+ # where "first" comes from the order of the define-tag values.
+ # The specified interfaces should be the same as the ones specified in
+ # 'interface:' followed by the tag and action.
+ # Note: any 'access-control*:' setting overrides all 'interface-*:'
+ # settings for targeted clients.
+ # interface-tag-action: eth0@5003 tag3 refuse
+
+ # Similar to 'access-control-tag-data:' but for interfaces.
+ # Set redirect data for a particular tag for an interface element.
+ # The specified interfaces should be the same as the ones specified in
+ # 'interface:' followed by the tag and the redirect data.
+ # Note: any 'access-control*:' setting overrides all 'interface-*:'
+ # settings for targeted clients.
+ # interface-tag-data: eth0@5003 tag2 "A 127.0.0.1"
+
+ # Similar to 'access-control-view:' but for interfaces.
+ # Set view for an interface element.
+ # The specified interfaces should be the same as the ones specified in
+ # 'interface:' followed by the view name.
+ # Note: any 'access-control*:' setting overrides all 'interface-*:'
+ # settings for targeted clients.
+ # interface-view: eth0@5003 viewname
+
+ # if given, a chroot(2) is done to the given directory.
+ # i.e. you can chroot to the working directory, for example,
+ # for extra security, but make sure all files are in that directory.
+ #
+ # If chroot is enabled, you should pass the configfile (from the
+ # commandline) as a full path from the original root. After the
+ # chroot has been performed the now defunct portion of the config
+ # file path is removed to be able to reread the config after a reload.
+ #
+ # All other file paths (working dir, logfile, roothints, and
+ # key files) can be specified in several ways:
+ # o as an absolute path relative to the new root.
+ # o as a relative path to the working directory.
+ # o as an absolute path relative to the original root.
+ # In the last case the path is adjusted to remove the unused portion.
+ #
+ # The pid file can be absolute and outside of the chroot, it is
+ # written just prior to performing the chroot and dropping permissions.
+ #
+ # Additionally, Unbound may need to access /dev/urandom (for entropy).
+ # How to do this is specific to your OS.
+ #
+ # If you give "" no chroot is performed. The path must not end in a /.
+ # chroot: "/var/unbound"
+
+ # if given, user privileges are dropped (after binding port),
+ # and the given username is assumed. Default is user "unbound".
+ # If you give "" no privileges are dropped.
+ # username: "unbound"
+
+ # the working directory. The relative files in this config are
+ # relative to this directory. If you give "" the working directory
+ # is not changed.
+ # If you give a server: directory: dir before include: file statements
+ # then those includes can be relative to the working directory.
+ # directory: "/var/unbound"
+
+ # the log file, "" means log to stderr.
+ # Use of this option sets use-syslog to "no".
+ # logfile: ""
+
+ # Log to syslog(3) if yes. The log facility LOG_DAEMON is used to
+ # log to. If yes, it overrides the logfile.
+ # use-syslog: yes
+
+ # Log identity to report. if empty, defaults to the name of argv[0]
+ # (usually "unbound").
+ # log-identity: ""
+
+ # print UTC timestamp in ascii to logfile, default is epoch in seconds.
+ # log-time-ascii: no
+
+ # log timestamp in ISO8601 format if also log-time-ascii is enabled.
+ # (y-m-dTh:m:s.msec[+-]tzhours:tzminutes)
+ # log-time-iso: no
+
+ # print one line with time, IP, name, type, class for every query.
+ # log-queries: no
+
+ # print one line per reply, with time, IP, name, type, class, rcode,
+ # 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 with destination address, port and type for log-replies.
+ # log-destaddr: 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
+
++ # log system-wide Linux thread ID, insted of Unbound's internal thread
++ # counter. Only on Linux and only when threads are available.
++ # log-thread-id: no
++
+ # the pid file. Can be an absolute path outside of chroot/work dir.
+ # pidfile: "/var/unbound/unbound.pid"
+
+ # file to read root hints from.
+ # get one from https://www.internic.net/domain/named.cache
+ # root-hints: ""
+
+ # enable to not answer id.server and hostname.bind queries.
+ # hide-identity: no
+
+ # enable to not answer version.server and version.bind queries.
+ # hide-version: no
+
+ # enable to not answer trustanchor.unbound queries.
+ # hide-trustanchor: no
+
+ # enable to not set the User-Agent HTTP header.
+ # hide-http-user-agent: no
+
+ # the identity to report. Leave "" or default to return hostname.
+ # identity: ""
+
+ # the version to report. Leave "" or default to return package version.
+ # version: ""
+
+ # NSID identity (hex string, or "ascii_somestring"). default disabled.
+ # nsid: "aabbccdd"
+
+ # User-Agent HTTP header to use. Leave "" or default to use package name
+ # and version.
+ # http-user-agent: ""
+
+ # the target fetch policy.
+ # series of integers describing the policy per dependency depth.
+ # The number of values in the list determines the maximum dependency
+ # depth the recursor will pursue before giving up. Each integer means:
+ # -1 : fetch all targets opportunistically,
+ # 0: fetch on demand,
+ # positive value: fetch that many targets opportunistically.
+ # Enclose the list of numbers between quotes ("").
+ # target-fetch-policy: "3 2 1 0 0"
+
+ # Harden against very small EDNS buffer sizes.
+ # harden-short-bufsize: yes
+
+ # Harden against unseemly large queries.
+ # harden-large-queries: no
+
+ # Harden against out of zone rrsets, to avoid spoofing attempts.
+ # harden-glue: yes
+
+ # Harden against unverified (outside-zone, including sibling zone) glue rrsets
+ # harden-unverified-glue: no
+
+ # Harden against receiving dnssec-stripped data. If you turn it
+ # off, failing to validate dnskey data for a trustanchor will
+ # trigger insecure mode for that zone (like without a trustanchor).
+ # Default on, which insists on dnssec data for trust-anchored zones.
+ # harden-dnssec-stripped: yes
+
+ # Harden against queries that fall under dnssec-signed nxdomain names.
+ # harden-below-nxdomain: yes
+
+ # Harden the referral path by performing additional queries for
+ # infrastructure data. Validates the replies (if possible).
+ # Default off, because the lookups burden the server. Experimental
+ # implementation of draft-wijngaards-dnsext-resolver-side-mitigation.
+ # harden-referral-path: no
+
+ # Harden against algorithm downgrade when multiple algorithms are
+ # advertised in the DS record. If no, allows any algorithm
+ # to validate the zone which is the standard behavior for validators.
+ # Check the manpage for detailed information.
+ # harden-algo-downgrade: no
+
+ # Harden against unknown records in the authority section and the
+ # additional section.
+ # harden-unknown-additional: no
+
+ # Sent minimum amount of information to upstream servers to enhance
+ # privacy. Only sent minimum required labels of the QNAME and set QTYPE
+ # to A when possible.
+ # qname-minimisation: yes
+
+ # QNAME minimisation in strict mode. Do not fall-back to sending full
+ # QNAME to potentially broken nameservers. A lot of domains will not be
+ # resolvable when this option in enabled.
+ # This option only has effect when qname-minimisation is enabled.
+ # qname-minimisation-strict: no
+
+ # Aggressive NSEC uses the DNSSEC NSEC chain to synthesize NXDOMAIN
+ # and other denials, using information from previous NXDOMAINs answers.
+ # aggressive-nsec: yes
+
+ # Use 0x20-encoded random bits in the query to foil spoof attempts.
+ # This feature is an experimental implementation of draft dns-0x20.
+ # use-caps-for-id: no
+
+ # Domains (and domains in them) without support for dns-0x20 and
+ # the fallback fails because they keep sending different answers.
+ # caps-exempt: "licdn.com"
+ # caps-exempt: "senderbase.org"
+
+ # Enforce privacy of these addresses. Strips them away from answers.
+ # It may cause DNSSEC validation to additionally mark it as bogus.
+ # Protects against 'DNS Rebinding' (uses browser as network proxy).
+ # Only 'private-domain' and 'local-data' names are allowed to have
+ # these private addresses. No default.
+ # private-address: 10.0.0.0/8
+ # private-address: 172.16.0.0/12
+ # private-address: 192.168.0.0/16
+ # private-address: 169.254.0.0/16
+ # private-address: fd00::/8
+ # private-address: fe80::/10
+ # private-address: ::ffff:0:0/96
+
+ # Allow the domain (and its subdomains) to contain private addresses.
+ # local-data statements are allowed to contain private addresses too.
+ # private-domain: "example.com"
+
+ # If nonzero, unwanted replies are not only reported in statistics,
+ # but also a running total is kept per thread. If it reaches the
+ # threshold, a warning is printed and a defensive action is taken,
+ # the cache is cleared to flush potential poison out of it.
+ # A suggested value is 10000000, the default is 0 (turned off).
+ # unwanted-reply-threshold: 0
+
+ # Do not query the following addresses. No DNS queries are sent there.
+ # List one address per entry. List classless netblocks with /size,
+ # do-not-query-address: 127.0.0.1/8
+ # do-not-query-address: ::1
+
+ # if yes, the above default do-not-query-address entries are present.
+ # if no, localhost can be queried (for testing and debugging).
+ # do-not-query-localhost: yes
+
+ # if yes, perform prefetching of almost expired message cache entries.
+ # prefetch: no
+
+ # 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: yes
+
+ # if yes, Unbound doesn't insert authority/additional sections
+ # into response messages when those sections are not required.
+ # minimal-responses: yes
+
+ # true to disable DNSSEC lameness check in iterator.
+ # disable-dnssec-lame-check: no
+
+ # module configuration of the server. A string with identifiers
+ # separated by spaces. Syntax: "[dns64] [validator] iterator"
+ # most modules have to be listed at the beginning of the line,
+ # except cachedb(just before iterator), and python (at the beginning,
+ # or, just before the iterator).
+ # module-config: "validator iterator"
+
- # File with trusted keys, kept uptodate using RFC5011 probes,
++ # File with trusted keys, kept up-to-date using RFC5011 probes,
+ # initial file like trust-anchor-file, then it stores metadata.
+ # Use several entries, one per domain name, to track multiple zones.
+ #
+ # If you want to perform DNSSEC validation, run unbound-anchor before
+ # you start Unbound (i.e. in the system boot scripts).
+ # And then enable the auto-trust-anchor-file config item.
+ # Please note usage of unbound-anchor root anchor is at your own risk
+ # and under the terms of our LICENSE (see that file in the source).
+ # auto-trust-anchor-file: "/var/unbound/root.key"
+
+ # trust anchor signaling sends a RFC8145 key tag query after priming.
+ # trust-anchor-signaling: yes
+
+ # Root key trust anchor sentinel (draft-ietf-dnsop-kskroll-sentinel)
+ # root-key-sentinel: yes
+
+ # File with trusted keys for validation. Specify more than one file
+ # with several entries, one file per entry.
+ # Zone file format, with DS and DNSKEY entries.
+ # Note this gets out of date, use auto-trust-anchor-file please.
+ # trust-anchor-file: ""
+
+ # Trusted key for validation. DS or DNSKEY. specify the RR on a
+ # single line, surrounded by "". TTL is ignored. class is IN default.
+ # Note this gets out of date, use auto-trust-anchor-file please.
+ # (These examples are from August 2007 and may not be valid anymore).
+ # trust-anchor: "nlnetlabs.nl. DNSKEY 257 3 5 AQPzzTWMz8qSWIQlfRnPckx2BiVmkVN6LPupO3mbz7FhLSnm26n6iG9N Lby97Ji453aWZY3M5/xJBSOS2vWtco2t8C0+xeO1bc/d6ZTy32DHchpW 6rDH1vp86Ll+ha0tmwyy9QP7y2bVw5zSbFCrefk8qCUBgfHm9bHzMG1U BYtEIQ=="
+ # trust-anchor: "jelte.nlnetlabs.nl. DS 42860 5 1 14D739EB566D2B1A5E216A0BA4D17FA9B038BE4A"
+
+ # File with trusted keys for validation. Specify more than one file
+ # with several entries, one file per entry. Like trust-anchor-file
+ # but has a different file format. Format is BIND-9 style format,
+ # the trusted-keys { name flag proto algo "key"; }; clauses are read.
+ # you need external update procedures to track changes in keys.
+ # trusted-keys-file: ""
+
+ # Ignore chain of trust. Domain is treated as insecure.
+ # domain-insecure: "example.com"
+
+ # Override the date for validation with a specific fixed date.
+ # Do not set this unless you are debugging signature inception
+ # and expiration. "" or "0" turns the feature off. -1 ignores date.
+ # val-override-date: ""
+
+ # The time to live for bogus data, rrsets and messages. This avoids
+ # some of the revalidation, until the time interval expires. in secs.
+ # val-bogus-ttl: 60
+
+ # The signature inception and expiration dates are allowed to be off
+ # by 10% of the signature lifetime (expir-incep) from our local clock.
+ # This leeway is capped with a minimum and a maximum. In seconds.
+ # val-sig-skew-min: 3600
+ # val-sig-skew-max: 86400
+
+ # The maximum number the validator should restart validation with
+ # another authority in case of failed validation.
+ # val-max-restart: 5
+
+ # Should additional section of secure message also be kept clean of
- # unsecure data. Useful to shield the users of this validator from
++ # non-secure data. Useful to shield the users of this validator from
+ # potential bogus data in the additional section. All unsigned data
+ # in the additional section is removed from secure messages.
+ # val-clean-additional: yes
+
+ # Turn permissive mode on to permit bogus messages. Thus, messages
+ # for which security checks failed will be returned to clients,
+ # instead of SERVFAIL. It still performs the security checks, which
+ # result in interesting log files and possibly the AD bit in
+ # replies if the message is found secure. The default is off.
+ # val-permissive-mode: no
+
+ # Ignore the CD flag in incoming queries and refuse them bogus data.
+ # Enable it if the only clients of Unbound are legacy servers (w2008)
+ # that set CD but cannot validate themselves.
+ # ignore-cd-flag: no
+
+ # Disable the DO flag in outgoing requests. It is helpful for upstream
+ # devices that cannot handle DNSSEC information. But do not enable it
+ # otherwise, because it would stop DNSSEC validation.
+ # disable-edns-do: no
*** 14597 LINES SKIPPED ***