1unbound.conf(5)                 unbound 1.4.20                 unbound.conf(5)
2
3
4

NAME

6       unbound.conf - Unbound configuration file.
7

SYNOPSIS

9       unbound.conf
10

DESCRIPTION

12       unbound.conf  is  used  to  configure  unbound(8).  The file format has
13       attributes and values. Some attributes  have  attributes  inside  them.
14       The notation is: attribute: value.
15
16       Comments  start  with  #  and  last to the end of line. Empty lines are
17       ignored as is whitespace at the beginning of a line.
18
19       The utility unbound-checkconf(8) can  be  used  to  check  unbound.conf
20       prior to usage.
21

EXAMPLE

23       An    example    config   file   is   shown   below.   Copy   this   to
24       /etc/unbound/unbound.conf and start the server with:
25
26            $ unbound -c /etc/unbound/unbound.conf
27
28       Most settings are the defaults. Stop the server with:
29
30            $ kill `cat /etc/unbound/unbound.pid`
31
32       Below is a minimal config file. The  source  distribution  contains  an
33       extensive example.conf file with all the options.
34
35       # unbound.conf(5) config file for unbound(8).
36       server:
37            directory: "/etc/unbound"
38            username: unbound
39            # make sure unbound can access entropy from inside the chroot.
40            # e.g. on linux the use these commands (on BSD, devfs(8) is used):
41            #      mount --bind -n /dev/random /etc/unbound/dev/random
42            # and  mount --bind -n /dev/log /etc/unbound/dev/log
43            chroot: "/etc/unbound"
44            # logfile: "/etc/unbound/unbound.log"  #uncomment to use logfile.
45            pidfile: "/etc/unbound/unbound.pid"
46            # verbosity: 1      # uncomment and increase to get more logging.
47            # listen on all interfaces, answer queries from the local subnet.
48            interface: 0.0.0.0
49            interface: ::0
50            access-control: 10.0.0.0/8 allow
51            access-control: 2001:DB8::/64 allow
52

FILE FORMAT

54       There  must be whitespace between keywords. Attribute keywords end with
55       a colon ':'. An attribute is followed by its containing attributes,  or
56       a value.
57
58       Files  can be included using the include: directive. It can appear any‐
59       where, it accepts a single file name as argument.  Processing continues
60       as  if  the text from the included file was copied into the config file
61       at that point.  If also using chroot, using full  path  names  for  the
62       included files works, relative pathnames for the included names work if
63       the directory where the daemon is  started  equals  its  chroot/working
64       directory.   Wildcards  can  be  used  to  include  multiple files, see
65       glob(7).
66
67   Server Options
68       These options are part of the server: clause.
69
70       verbosity: <number>
71              The verbosity number, level 0 means no verbosity,  only  errors.
72              Level  1  gives  operational information. Level 2 gives detailed
73              operational information. Level 3 gives query level  information,
74              output  per  query.   Level 4 gives algorithm level information.
75              Level 5 logs client identification for cache misses.  Default is
76              level  1.  The verbosity can also be increased from the command‐
77              line, see unbound(8).
78
79       statistics-interval: <seconds>
80              The number of seconds between printing statistics to the log for
81              every  thread.  Disable with value 0 or "". Default is disabled.
82              The histogram statistics are only printed if replies  were  sent
83              during  the  statistics  interval,  requestlist  statistics  are
84              printed for every interval (but can be 0).  This is because  the
85              median calculation requires data to be present.
86
87       statistics-cumulative: <yes or no>
88              If  enabled,  statistics  are cumulative since starting unbound,
89              without clearing the statistics counters after logging the  sta‐
90              tistics. Default is no.
91
92       extended-statistics: <yes or no>
93              If  enabled,  extended  statistics are printed from unbound-con‐
94              trol(8).  Default is off, because keeping track of more  statis‐
95              tics takes time.  The counters are listed in unbound-control(8).
96
97       num-threads: <number>
98              The  number  of threads to create to serve clients. Use 1 for no
99              threading.
100
101       port: <port number>
102              The port number, default 53, on which  the  server  responds  to
103              queries.
104
105       interface: <ip address[@port]>
106              Interface  to  use  to connect to the network. This interface is
107              listened to for queries from clients, and answers to clients are
108              given  from  it.  Can be given multiple times to work on several
109              interfaces. If none are given the default is to listen to local‐
110              host.   The  interfaces  are not changed on a reload (kill -HUP)
111              but only on restart.  A port number can be specified with  @port
112              (without spaces between interface and port number), if not spec‐
113              ified the default port (from port) is used.
114
115       interface-automatic: <yes or no>
116              Detect source interface on UDP queries and copy them to replies.
117              This  feature  is experimental, and needs support in your OS for
118              particular socket options.  Default value is no.
119
120       outgoing-interface: <ip address>
121              Interface to use to connect to the network.  This  interface  is
122              used  to send queries to authoritative servers and receive their
123              replies. Can be given multiple times to work on  several  inter‐
124              faces.  If  none  are  given  the default (all) is used. You can
125              specify the same interfaces in  interface:  and  outgoing-inter‐
126              face:  lines,  the  interfaces  are then used for both purposes.
127              Outgoing queries are sent via a  random  outgoing  interface  to
128              counter spoofing.
129
130       outgoing-range: <number>
131              Number  of ports to open. This number of file descriptors can be
132              opened per thread. Must be at least 1. Default depends  on  com‐
133              pile options. Larger numbers need extra resources from the oper‐
134              ating system.  For performance a a very large value is best, use
135              libevent to make this possible.
136
137       outgoing-port-permit: <port number or range>
138              Permit  unbound  to  open this port or range of ports for use to
139              send queries.  A  larger  number  of  permitted  outgoing  ports
140              increases  resilience against spoofing attempts. Make sure these
141              ports are not needed by other daemons.  By  default  only  ports
142              above 1024 that have not been assigned by IANA are used.  Give a
143              port number or a range of the form "low-high", without spaces.
144
145              The outgoing-port-permit and outgoing-port-avoid statements  are
146              processed  in the line order of the config file, adding the per‐
147              mitted ports and subtracting the avoided ports from the  set  of
148              allowed  ports.   The  processing starts with the non IANA allo‐
149              cated ports above 1024 in the set of allowed ports.
150
151       outgoing-port-avoid: <port number or range>
152              Do not permit unbound to open this port or range  of  ports  for
153              use to send queries. Use this to make sure unbound does not grab
154              a port that another daemon needs. The port  is  avoided  on  all
155              outgoing  interfaces,  both  IP4 and IP6.  By default only ports
156              above 1024 that have not been assigned by IANA are used.  Give a
157              port number or a range of the form "low-high", without spaces.
158
159       outgoing-num-tcp: <number>
160              Number  of  outgoing TCP buffers to allocate per thread. Default
161              is 10. If set to 0, or if do_tcp is  "no",  no  TCP  queries  to
162              authoritative servers are done.
163
164       incoming-num-tcp: <number>
165              Number  of  incoming TCP buffers to allocate per thread. Default
166              is 10. If set to 0, or if do_tcp is "no", no  TCP  queries  from
167              clients are accepted.
168
169       edns-buffer-size: <number>
170              Number  of bytes size to advertise as the EDNS reassembly buffer
171              size.  This is the value put into  datagrams  over  UDP  towards
172              peers.   The actual buffer size is determined by msg-buffer-size
173              (both for TCP and UDP).  Do not  set  higher  than  that  value.
174              Default  is 4096 which is RFC recommended.  If you have fragmen‐
175              tation reassembly problems, usually seen  as  timeouts,  then  a
176              value of 1480 can fix it.  Setting to 512 bypasses even the most
177              stringent path MTU problems, but is seen as extreme,  since  the
178              amount of TCP fallback generated is excessive (probably also for
179              this resolver, consider tuning the outgoing tcp number).
180
181       msg-buffer-size: <number>
182              Number of bytes size of the message buffers.  Default  is  65552
183              bytes,  enough  for 64 Kb packets, the maximum DNS message size.
184              No message larger than this can be  sent  or  received.  Can  be
185              reduced to use less memory, but some requests for DNS data, such
186              as for huge resource records, will result in a SERVFAIL reply to
187              the client.
188
189       msg-cache-size: <number>
190              Number  of  bytes  size  of  the  message  cache.  Default  is 4
191              megabytes.  A plain number is in bytes, append 'k', 'm'  or  'g'
192              for  kilobytes,  megabytes  or  gigabytes  (1024*1024 bytes in a
193              megabyte).
194
195       msg-cache-slabs: <number>
196              Number of slabs in the message cache.  Slabs  reduce  lock  con‐
197              tention  by  threads.   Must  be  set  to  a power of 2. Setting
198              (close) to the number of cpus is a reasonable guess.
199
200       num-queries-per-thread: <number>
201              The number of queries that every thread will service  simultane‐
202              ously.   If  more  queries  arrive  that  need servicing, and no
203              queries can  be  jostled  out  (see  jostle-timeout),  then  the
204              queries  are  dropped.  This forces the client to resend after a
205              timeout; allowing the  server  time  to  work  on  the  existing
206              queries. Default depends on compile options, 512 or 1024.
207
208       jostle-timeout: <msec>
209              Timeout  used when the server is very busy.  Set to a value that
210              usually results in one roundtrip to the authority  servers.   If
211              too  many queries arrive, then 50% of the queries are allowed to
212              run to completion, and the other 50% are replaced with  the  new
213              incoming  query  if  they  have  already  spent  more than their
214              allowed time.  This protects against denial of service  by  slow
215              queries  or  high  query  rates.  Default 200 milliseconds.  The
216              effect is that the qps for long-lasting queries is  about  (num‐
217              queriesperthread  /  2)  /  (average time for such long queries)
218              qps.  The qps  for  short  queries  can  be  about  (numqueries‐
219              perthread  /  2)  /  (jostletimeout  in  whole  seconds) qps per
220              thread, about (1024/2)*5 = 2560 qps by default.
221
222       so-rcvbuf: <number>
223              If not 0, then set the SO_RCVBUF socket option to get more  buf‐
224              fer space on UDP port 53 incoming queries.  So that short spikes
225              on busy servers do not drop  packets  (see  counter  in  netstat
226              -su).   Default  is 0 (use system value).  Otherwise, the number
227              of bytes to ask for, try "4m" on a busy server.  The OS caps  it
228              at  a  maximum, on linux unbound needs root permission to bypass
229              the limit, or the admin can use  sysctl  net.core.rmem_max.   On
230              BSD  change kern.ipc.maxsockbuf in /etc/sysctl.conf.  On OpenBSD
231              change header and recompile kernel. On Solaris ndd -set /dev/udp
232              udp_max_buf 8388608.
233
234       so-sndbuf: <number>
235              If  not 0, then set the SO_SNDBUF socket option to get more buf‐
236              fer space on UDP port 53 outgoing queries.  This for  very  busy
237              servers  handles  spikes  in  answer  traffic,  otherwise 'send:
238              resource temporarily unavailable' can  get  logged,  the  buffer
239              overrun  is also visible by netstat -su.  Default is 0 (use sys‐
240              tem value).  Specify the number of bytes to ask for, try "4m" on
241              a  very  busy  server.   The  OS  caps it at a maximum, on linux
242              unbound needs root permission to bypass the limit, or the  admin
243              can  use  sysctl net.core.wmem_max.  On BSD, Solaris changes are
244              similar to so-rcvbuf.
245
246       rrset-cache-size: <number>
247              Number of bytes size of the RRset cache. Default is 4 megabytes.
248              A  plain  number  is  in bytes, append 'k', 'm' or 'g' for kilo‐
249              bytes, megabytes or gigabytes (1024*1024 bytes in a megabyte).
250
251       rrset-cache-slabs: <number>
252              Number of slabs in the RRset cache. Slabs reduce lock contention
253              by threads.  Must be set to a power of 2.
254
255       cache-max-ttl: <seconds>
256              Time  to  live  maximum  for  RRsets  and messages in the cache.
257              Default is 86400 seconds (1  day).  If  the  maximum  kicks  in,
258              responses  to  clients  still get decrementing TTLs based on the
259              original (larger) values.  When the internal  TTL  expires,  the
260              cache  item has expired.  Can be set lower to force the resolver
261              to query for data often, and not trust (very large) TTL values.
262
263       cache-min-ttl: <seconds>
264              Time to live minimum for  RRsets  and  messages  in  the  cache.
265              Default  is  0.  If the the minimum kicks in, the data is cached
266              for longer than the domain owner intended, and thus less queries
267              are  made  to look up the data.  Zero makes sure the data in the
268              cache is as the domain owner intended, higher values, especially
269              more  than an hour or so, can lead to trouble as the data in the
270              cache does not match up with the actual data any more.
271
272       infra-host-ttl: <seconds>
273              Time to live for entries in the host cache. The host cache  con‐
274              tains  roundtrip  timing, lameness and EDNS support information.
275              Default is 900.
276
277       infra-cache-slabs: <number>
278              Number of slabs in the infrastructure cache. Slabs  reduce  lock
279              contention by threads. Must be set to a power of 2.
280
281       infra-cache-numhosts: <number>
282              Number  of  hosts  for  which  information is cached. Default is
283              10000.
284
285       do-ip4: <yes or no>
286              Enable or disable whether ip4 queries are  answered  or  issued.
287              Default is yes.
288
289       do-ip6: <yes or no>
290              Enable  or  disable  whether ip6 queries are answered or issued.
291              Default is yes.  If disabled, queries are not answered on  IPv6,
292              and queries are not sent on IPv6 to the internet nameservers.
293
294       do-udp: <yes or no>
295              Enable  or  disable  whether UDP queries are answered or issued.
296              Default is yes.
297
298       do-tcp: <yes or no>
299              Enable or disable whether TCP queries are  answered  or  issued.
300              Default is yes.
301
302       tcp-upstream: <yes or no>
303              Enable  or disable whether the upstream queries use TCP only for
304              transport.  Default is no.  Useful in tunneling scenarios.
305
306       ssl-upstream: <yes or no>
307              Enabled or disable whether the upstream queries use SSL only for
308              transport.   Default is no.  Useful in tunneling scenarios.  The
309              SSL contains plain DNS in TCP wireformat.  The other server must
310              support this (see ssl-service-key).
311
312       ssl-service-key: <file>
313              If  enabled, the server provider SSL service on its TCP sockets.
314              The clients have to use ssl-upstream: yes.  The file is the pri‐
315              vate  key for the TLS session.  The public certificate is in the
316              ssl-service-pem file.  Default is "", turned  off.   Requires  a
317              restart (a reload is not enough) if changed, because the private
318              key is read while root permissions are held  and  before  chroot
319              (if  any).   Normal  DNS  TCP  service is not provided and gives
320              errors, this service is best run with a different  port:  config
321              or @port suffixes in the interface config.
322
323       ssl-service-pem: <file>
324              The  public  key  certificate  pem  file  for  the  ssl service.
325              Default is "", turned off.
326
327       ssl-port: <number>
328              The port number on which to provide  TCP  SSL  service,  default
329              443, only interfaces configured with that port number as @number
330              get the SSL service.
331
332       do-daemonize: <yes or no>
333              Enable or disable whether the  unbound  server  forks  into  the
334              background as a daemon. Default is yes.
335
336       access-control: <IP netblock> <action>
337              The  netblock  is  given  as  an  IP4  or IP6 address with /size
338              appended for a classless network block. The action can be  deny,
339              refuse, allow or allow_snoop.
340
341              The action deny stops queries from hosts from that netblock.
342
343              The  action  refuse  stops  queries  too,  but sends a DNS rcode
344              REFUSED error message back.
345
346              The action allow gives access to clients from that netblock.  It
347              gives  only  access  for recursion clients (which is what almost
348              all clients need).  Nonrecursive queries are refused.
349
350              The allow action does allow nonrecursive queries to  access  the
351              local-data that is configured.  The reason is that this does not
352              involve the  unbound  server  recursive  lookup  algorithm,  and
353              static data is served in the reply.  This supports normal opera‐
354              tions where nonrecursive queries are made for the  authoritative
355              data.   For  nonrecursive  queries  any replies from the dynamic
356              cache are refused.
357
358              The action allow_snoop gives nonrecursive access too.  This give
359              both  recursive  and non recursive access.  The name allow_snoop
360              refers to  cache  snooping,  a  technique  to  use  nonrecursive
361              queries  to  examine  the  cache  contents (for malicious acts).
362              However, nonrecursive queries can also be a  valuable  debugging
363              tool (when you want to examine the cache contents). In that case
364              use allow_snoop for your administration host.
365
366              By default only localhost is allowed, the rest is refused.   The
367              default  is  refused, because that is protocol-friendly. The DNS
368              protocol is not designed to handle dropped packets due  to  pol‐
369              icy,  and  dropping  may  result in (possibly excessive) retried
370              queries.
371
372       chroot: <directory>
373              If chroot is enabled, you should pass the configfile  (from  the
374              commandline)  as  a  full path from the original root. After the
375              chroot has been performed the now defunct portion of the  config
376              file  path  is  removed  to be able to reread the config after a
377              reload.
378
379              All other file paths (working dir, logfile, roothints,  and  key
380              files)  can  be  specified  in several ways: as an absolute path
381              relative to the new root, as a  relative  path  to  the  working
382              directory, or as an absolute path relative to the original root.
383              In the last case the path is adjusted to remove the unused  por‐
384              tion.
385
386              The  pidfile can be either a relative path to the working direc‐
387              tory, or an absolute path relative to the original root.  It  is
388              written  just  prior  to  chroot  and dropping permissions. This
389              allows the pidfile to be /var/run/unbound.pid and the chroot  to
390              be /var/unbound, for example.
391
392              Additionally,  unbound  may  need  to  access  /dev/random  (for
393              entropy) from inside the chroot.
394
395              If given a chroot is done to the given directory. The default is
396              "/etc/unbound". If you give "" no chroot is performed.
397
398       username: <name>
399              If  given,  after  binding  the  port  the  user  privileges are
400              dropped. Default is "unbound". If you give username: "" no  user
401              change is performed.
402
403              If  this  user  is  not capable of binding the port, reloads (by
404              signal HUP) will still retain the opened ports.  If  you  change
405              the  port  number  in  the config file, and that new port number
406              requires privileges, then a  reload  will  fail;  a  restart  is
407              needed.
408
409       directory: <directory>
410              Sets   the   working  directory  for  the  program.  Default  is
411              "/etc/unbound".
412
413       logfile: <filename>
414              If "" is given, logging goes to stderr, or nowhere  once  daemo‐
415              nized.  The logfile is appended to, in the following format:
416              [seconds since 1970] unbound[pid:tid]: type: message.
417              If  this  option  is  given,  the use-syslog is option is set to
418              "no".  The logfile is reopened (for append) when the config file
419              is reread, on SIGHUP.
420
421       use-syslog: <yes or no>
422              Sets  unbound  to  send  log messages to the syslogd, using sys‐
423              log(3).  The log facility  LOG_DAEMON  is  used,  with  identity
424              "unbound".  The logfile setting is overridden when use-syslog is
425              turned on.  The default is to log to syslog.
426
427       log-time-ascii: <yes or no>
428              Sets logfile lines to use a timestamp in UTC ascii.  Default  is
429              no,  which  prints the seconds since 1970 in brackets. No effect
430              if using syslog, in  that  case  syslog  formats  the  timestamp
431              printed into the log files.
432
433       log-queries: <yes or no>
434              Prints one line per query to the log, with the log timestamp and
435              IP address, name, type and class.  Default is no.  Note that  it
436              takes time to print these lines which makes the server (signifi‐
437              cantly) slower.  Odd  (nonprintable)  characters  in  names  are
438              printed as '?'.
439
440       pidfile: <filename>
441              The   process   id   is   written   to   the  file.  Default  is
442              "/var/run/unbound/unbound.pid".  So,
443              kill -HUP `cat /var/run/unbound/unbound.pid`
444              triggers a reload,
445              kill -QUIT `cat /var/run/unbound/unbound.pid`
446              gracefully terminates.
447
448       root-hints: <filename>
449              Read the root hints from this file. Default  is  nothing,  using
450              builtin  hints for the IN class. The file has the format of zone
451              files, with  root  nameserver  names  and  addresses  only.  The
452              default  may  become outdated, when servers change, therefore it
453              is good practice to use a root-hints file.
454
455       hide-identity: <yes or no>
456              If enabled id.server and hostname.bind queries are refused.
457
458       identity: <string>
459              Set the identity to report. If set to "", the default, then  the
460              hostname of the server is returned.
461
462       hide-version: <yes or no>
463              If enabled version.server and version.bind queries are refused.
464
465       version: <string>
466              Set  the  version to report. If set to "", the default, then the
467              package version is returned.
468
469       target-fetch-policy: <"list of numbers">
470              Set the target fetch policy used by unbound to determine  if  it
471              should  fetch nameserver target addresses opportunistically. The
472              policy is described per dependency depth.
473
474              The number of values determines  the  maximum  dependency  depth
475              that  unbound  will  pursue in answering a query.  A value of -1
476              means to fetch all targets opportunistically for that dependency
477              depth.  A  value  of 0 means to fetch on demand only. A positive
478              value fetches that many targets opportunistically.
479
480              Enclose the list between quotes ("") and put spaces between num‐
481              bers.   The default is "3 2 1 0 0". Setting all zeroes, "0 0 0 0
482              0" gives behaviour closer to that of BIND 9, while  setting  "-1
483              -1  -1  -1  -1" gives behaviour rumoured to be closer to that of
484              BIND 8.
485
486       harden-short-bufsize: <yes or no>
487              Very small EDNS buffer sizes from queries are  ignored.  Default
488              is  off,  since  it  is  legal  protocol wise to send these, and
489              unbound tries to give very small answers to these queries, where
490              possible.
491
492       harden-large-queries: <yes or no>
493              Very  large  queries  are  ignored.  Default is off, since it is
494              legal protocol wise to send these, and could  be  necessary  for
495              operation if TSIG or EDNS payload is very large.
496
497       harden-glue: <yes or no>
498              Will  trust  glue  only  if  it is within the servers authority.
499              Default is on.
500
501       harden-dnssec-stripped: <yes or no>
502              Require DNSSEC data for trust-anchored zones, if  such  data  is
503              absent,  the  zone  becomes  bogus. If turned off, and no DNSSEC
504              data is received (or the DNSKEY data fails  to  validate),  then
505              the  zone  is made insecure, this behaves like there is no trust
506              anchor. You could turn this off if you are sometimes  behind  an
507              intrusive  firewall (of some sort) that removes DNSSEC data from
508              packets, or a zone changes from  signed  to  unsigned  to  badly
509              signed  often.  If  turned  off  you run the risk of a downgrade
510              attack that disables security for a zone. Default is on.
511
512       harden-below-nxdomain: <yes or no>
513              From draft-vixie-dnsext-resimprove, returns nxdomain to  queries
514              for  a name below another name that is already known to be nxdo‐
515              main.  DNSSEC mandates noerror  for  empty  nonterminals,  hence
516              this  is  possible.  Very old software might return nxdomain for
517              empty nonterminals (that usually happen for reverse  IP  address
518              lookups),  and  thus  may  be incompatible with this.  To try to
519              avoid this only DNSSEC-secure nxdomains are  used,  because  the
520              old software does not have DNSSEC.  Default is off.
521
522       harden-referral-path: <yes or no>
523              Harden  the  referral  path by performing additional queries for
524              infrastructure data.  Validates the replies if trust anchors are
525              configured and the zones are signed.  This enforces DNSSEC vali‐
526              dation on nameserver NS sets and the nameserver  addresses  that
527              are  encountered  on  the  referral path to the answer.  Default
528              off, because it burdens the authority servers, and it is not RFC
529              standard,  and could lead to performance problems because of the
530              extra query load that is generated.   Experimental  option.   If
531              you  enable  it  consider  adding  more  numbers  after the tar‐
532              get-fetch-policy to increase the max depth that is checked to.
533
534       use-caps-for-id: <yes or no>
535              Use  0x20-encoded  random  bits  in  the  query  to  foil  spoof
536              attempts.   This  perturbs  the lowercase and uppercase of query
537              names sent to authority servers and checks if  the  reply  still
538              has  the  correct casing.  Disabled by default.  This feature is
539              an experimental implementation of draft dns-0x20.
540
541       private-address: <IP address or subnet>
542              Give IPv4 of IPv6 addresses  or  classless  subnets.  These  are
543              addresses  on  your  private  network, and are not allowed to be
544              returned for public  internet  names.   Any  occurence  of  such
545              addresses are removed from DNS answers. Additionally, the DNSSEC
546              validator may mark the  answers  bogus.  This  protects  against
547              so-called  DNS  Rebinding, where a user browser is turned into a
548              network proxy, allowing remote access  through  the  browser  to
549              other  parts of your private network.  Some names can be allowed
550              to contain your private addresses, by default all the local-data
551              that  you  configured  is  allowed to, and you can specify addi‐
552              tional names using private-domain.   No  private  addresses  are
553              enabled  by default.  We consider to enable this for the RFC1918
554              private IP address space by  default  in  later  releases.  That
555              would  enable  private  addresses  for  10.0.0.0/8 172.16.0.0/12
556              192.168.0.0/16 169.254.0.0/16 fd00::/8 and fe80::/10, since  the
557              RFC  standards  say these addresses should not be visible on the
558              public internet.  Turning on 127.0.0.0/8 would hinder many spam‐
559              blocklists as they use that.
560
561       private-domain: <domain name>
562              Allow  this  domain,  and  all its subdomains to contain private
563              addresses.  Give multiple times to allow multiple  domain  names
564              to contain private addresses. Default is none.
565
566       unwanted-reply-threshold: <number>
567              If  set,  a total number of unwanted replies is kept track of in
568              every thread.  When it reaches the threshold, a defensive action
569              is  taken  and  a  warning is printed to the log.  The defensive
570              action is to clear  the  rrset  and  message  caches,  hopefully
571              flushing  away  any poison.  A value of 10 million is suggested.
572              Default is 0 (turned off).
573
574       do-not-query-address: <IP address>
575              Do not query the given IP address. Can be  IP4  or  IP6.  Append
576              /num  to  indicate  a classless delegation netblock, for example
577              like 10.2.3.4/24 or 2001::11/64.
578
579       do-not-query-localhost: <yes or no>
580              If yes, localhost is added to the do-not-query-address  entries,
581              both  IP6  ::1 and IP4 127.0.0.1/8. If no, then localhost can be
582              used to send queries to. Default is yes.
583
584       prefetch: <yes or no>
585              If yes, message cache elements are prefetched before they expire
586              to  keep  the  cache  up to date.  Default is no.  Turning it on
587              gives about 10 percent more traffic and load on the machine, but
588              popular items do not expire from the cache.
589
590       prefetch-key: <yes or no>
591              If  yes,  fetch  the  DNSKEYs earlier in the validation process,
592              when a DS record is encountered.  This  lowers  the  latency  of
593              requests.   It does use a little more CPU.  Also if the cache is
594              set to 0, it is no use. Default is no.
595
596       rrset-roundrobin: <yes or no>
597              If yes, Unbound rotates RRSet order in response (the random num‐
598              ber  is  taken  from the query ID, for speed and thread safety).
599              Default is no.
600
601       minimal-responses: <yes or no>
602              If yes, Unbound  doesn't  insert  authority/additional  sections
603              into  response  messages  when  those sections are not required.
604              This reduces response size  significantly,  and  may  avoid  TCP
605              fallback  for  some responses.  This may cause a slight speedup.
606              The default is no, because the DNS protocol RFCs  mandate  these
607              sections,  and  the  additional content could be of use and save
608              roundtrips for clients.
609
610       module-config: <"module names">
611              Module configuration, a list of module names separated  by  spa‐
612              ces,  surround  the  string with quotes (""). The modules can be
613              validator, iterator.  Setting this to "iterator" will result  in
614              a  non-validating  server.  Setting this to "validator iterator"
615              will turn on DNSSEC validation.  The ordering of the modules  is
616              important.  You must also set trust-anchors for validation to be
617              useful.
618
619       trust-anchor-file: <filename>
620              File with trusted  keys  for  validation.  Both  DS  and  DNSKEY
621              entries  can  appear  in the file. The format of the file is the
622              standard DNS Zone file format.   Default  is  "",  or  no  trust
623              anchor file.
624
625       auto-trust-anchor-file: <filename>
626              File  with  trust  anchor  for  one  zone, which is tracked with
627              RFC5011 probes.  The probes are several times  per  month,  thus
628              the  machine must be online frequently.  The initial file can be
629              one with contents as described in trust-anchor-file.   The  file
630              is  written  to  when the anchor is updated, so the unbound user
631              must have write permission.
632
633       trust-anchor: <"Resource Record">
634              A DS or DNSKEY RR for a key  to  use  for  validation.  Multiple
635              entries  can be given to specify multiple trusted keys, in addi‐
636              tion to the trust-anchor-files.  The resource record is  entered
637              in  the  same  format  as 'dig' or 'drill' prints them, the same
638              format as in the zone file. Has to be on a single line, with  ""
639              around it. A TTL can be specified for ease of cut and paste, but
640              is ignored.  A class can be specified, but class IN is default.
641
642       trusted-keys-file: <filename>
643              File with trusted keys for validation.  Specify  more  than  one
644              file   with   several   entries,   one   file  per  entry.  Like
645              trust-anchor-file but has a different  file  format.  Format  is
646              BIND-9  style  format,  the  trusted-keys { name flag proto algo
647              "key"; }; clauses are read.  It is  possible  to  use  wildcards
648              with  this  statement,  the wildcard is expanded on start and on
649              reload.
650
651       dlv-anchor-file: <filename>
652              File with trusted keys for DLV  (DNSSEC  Lookaside  Validation).
653              Both  DS and DNSKEY entries can be used in the file, in the same
654              format as for trust-anchor-file: statements. Only one DLV can be
655              configured,  more would be slow. The DLV configured is used as a
656              root trusted DLV, this means that it  is  a  lookaside  for  the
657              root. Default is "", or no dlv anchor file.
658
659       dlv-anchor: <"Resource Record">
660              Much  like  trust-anchor,  this  is  a DLV anchor with the DS or
661              DNSKEY inline.
662
663       domain-insecure: <domain name>
664              Sets domain name to  be  insecure,  DNSSEC  chain  of  trust  is
665              ignored  towards  the  domain name.  So a trust anchor above the
666              domain name can not make the domain secure  with  a  DS  record,
667              such  a  DS  record  is  then  ignored.   Also keys from DLV are
668              ignored for the domain.  Can be given multiple times to  specify
669              multiple  domains  that  are treated as if unsigned.  If you set
670              trust anchors for the domain they override this setting (and the
671              domain is secured).
672
673              This  can  be useful if you want to make sure a trust anchor for
674              external lookups does not affect an (unsigned) internal  domain.
675              A  DS  record externally can create validation failures for that
676              internal domain.
677
678       val-override-date: <rrsig-style date spec>
679              Default is "" or "0", which disables this debugging feature.  If
680              enabled by giving a RRSIG style date, that date is used for ver‐
681              ifying RRSIG inception and expiration dates, instead of the cur‐
682              rent  date.  Do  not set this unless you are debugging signature
683              inception and expiration. The value -1 ignores  the  date  alto‐
684              gether, useful for some special applications.
685
686       val-sig-skew-min: <seconds>
687              Minimum  number  of  seconds of clock skew to apply to validated
688              signatures.  A value of 10% of the signature  lifetime  (expira‐
689              tion  -  inception) is used, capped by this setting.  Default is
690              3600 (1 hour) which allows  for  daylight  savings  differences.
691              Lower  this value for more strict checking of short lived signa‐
692              tures.
693
694       val-sig-skew-max: <seconds>
695              Maximum number of seconds of clock skew to  apply  to  validated
696              signatures.   A  value of 10% of the signature lifetime (expira‐
697              tion - inception) is used, capped by this setting.   Default  is
698              86400  (24  hours) which allows for timezone setting problems in
699              stable domains.  Setting both min and max very low disables  the
700              clock skew allowances.  Setting both min and max very high makes
701              the validator check the signature timestamps less strictly.
702
703       val-bogus-ttl: <number>
704              The time to live for bogus data. This is data  that  has  failed
705              validation;  due  to invalid signatures or other checks. The TTL
706              from that data  cannot  be  trusted,  and  this  value  is  used
707              instead. The value is in seconds, default 60.  The time interval
708              prevents repeated revalidation of bogus data.
709
710       val-clean-additional: <yes or no>
711              Instruct the validator to remove data from the  additional  sec‐
712              tion  of  secure messages that are not signed properly. Messages
713              that are insecure, bogus, indeterminate  or  unchecked  are  not
714              affected.  Default is yes. Use this setting to protect the users
715              that rely on this validator for authentication from protentially
716              bad data in the additional section.
717
718       val-log-level: <number>
719              Have  the  validator  print  validation  failures  to  the  log.
720              Regardless of the verbosity setting.  Default is 0, off.  At  1,
721              for  every  user query that fails a line is printed to the logs.
722              This way you can monitor what happens with  validation.   Use  a
723              diagnosis tool, such as dig or drill, to find out why validation
724              is failing for these queries.  At 2, not  only  the  query  that
725              failed is printed but also the reason why unbound thought it was
726              wrong and which server sent the faulty data.
727
728       val-permissive-mode: <yes or no>
729              Instruct the validator to mark bogus messages as  indeterminate.
730              The  security  checks  are performed, but if the result is bogus
731              (failed security), the reply is not  withheld  from  the  client
732              with  SERVFAIL as usual. The client receives the bogus data. For
733              messages that are found to be  secure  the  AD  bit  is  set  in
734              replies.  Also logging is performed as for full validation.  The
735              default value is "no".
736
737       ignore-cd-flag: <yes or no>
738              Instruct unbound to ignore the CD flag from clients  and  refuse
739              to  return  bogus  answers to them.  Thus, the CD (Checking Dis‐
740              abled) flag does not disable checking any more.  This is  useful
741              if  legacy (w2008) servers that set the CD flag but cannot vali‐
742              date DNSSEC themselves are the clients, and  then  unbound  pro‐
743              vides them with DNSSEC protection.  The default value is "no".
744
745       val-nsec3-keysize-iterations: <"list of values">
746              List of keysize and iteration count values, separated by spaces,
747              surrounded by quotes. Default is "1024 150 2048 500 4096  2500".
748              This determines the maximum allowed NSEC3 iteration count before
749              a message is simply marked insecure instead  of  performing  the
750              many hashing iterations. The list must be in ascending order and
751              have at least one entry. If you set it to "1024 65535" there  is
752              no  restriction  to  NSEC3 iteration values.  This table must be
753              kept short; a very long list could cause slower operation.
754
755       add-holddown: <seconds>
756              Instruct the auto-trust-anchor-file probe mechanism for  RFC5011
757              autotrust  updates to add new trust anchors only after they have
758              been visible for this time.  Default is 30 days as per the RFC.
759
760       del-holddown: <seconds>
761              Instruct the auto-trust-anchor-file probe mechanism for  RFC5011
762              autotrust  updates  to  remove  revoked trust anchors after they
763              have been kept in the revoked list for this long.  Default is 30
764              days as per the RFC.
765
766       keep-missing: <seconds>
767              Instruct  the auto-trust-anchor-file probe mechanism for RFC5011
768              autotrust updates to remove missing  trust  anchors  after  they
769              have  been  unseen for this long.  This cleans up the state file
770              if the target zone does not perform trust anchor revocation,  so
771              this makes the auto probe mechanism work with zones that perform
772              regular (non-5011) rollovers.  The default  is  366  days.   The
773              value 0 does not remove missing anchors, as per the RFC.
774
775       key-cache-size: <number>
776              Number  of  bytes size of the key cache. Default is 4 megabytes.
777              A plain number is in bytes, append 'k', 'm'  or  'g'  for  kilo‐
778              bytes, megabytes or gigabytes (1024*1024 bytes in a megabyte).
779
780       key-cache-slabs: <number>
781              Number  of  slabs in the key cache. Slabs reduce lock contention
782              by threads.  Must be set to a power of 2. Setting (close) to the
783              number of cpus is a reasonable guess.
784
785       neg-cache-size: <number>
786              Number  of  bytes size of the aggressive negative cache. Default
787              is 1 megabyte.  A plain number is in bytes, append 'k',  'm'  or
788              'g'  for kilobytes, megabytes or gigabytes (1024*1024 bytes in a
789              megabyte).
790
791       local-zone: <zone> <type>
792              Configure a local zone. The type determines the answer  to  give
793              if  there  is  no  match  from  local-data.  The types are deny,
794              refuse, static, transparent, redirect, nodefault,  typetranspar‐
795              ent,  and  are  explained below. After that the default settings
796              are listed. Use local-data: to enter data into the  local  zone.
797              Answers  for  local  zones  are  authoritative  DNS  answers. By
798              default the zones are class IN.
799
800              If you need more complicated authoritative data, with referrals,
801              wildcards, CNAME/DNAME support, or DNSSEC authoritative service,
802              setup a stub-zone for it as detailed in the  stub  zone  section
803              below.
804
805            deny Do  not  send an answer, drop the query.  If there is a match
806                 from local data, the query is answered.
807
808            refuse
809                 Send an error message reply, with rcode REFUSED.  If there is
810                 a match from local data, the query is answered.
811
812            static
813                 If  there  is a match from local data, the query is answered.
814                 Otherwise, the query is answered  with  nodata  or  nxdomain.
815                 For  a  negative  answer  a  SOA is included in the answer if
816                 present as local-data for the zone apex domain.
817
818            transparent
819                 If there is a match from local data, the query  is  answered.
820                 Otherwise  if  the  query  has a different name, the query is
821                 resolved normally.  If the query  is  for  a  name  given  in
822                 localdata  but  no  such  type of data is given in localdata,
823                 then a noerror nodata answer is returned.  If  no  local-zone
824                 is  given  local-data causes a transparent zone to be created
825                 by default.
826
827            typetransparent
828                 If there is a match from local data, the query  is  answered.
829                 If  the  query  is for a different name, or for the same name
830                 but for a different type, the  query  is  resolved  normally.
831                 So,  similar  to transparent but types that are not listed in
832                 local data are resolved normally, so if an A record is in the
833                 local  data  that  does  not  cause  a  nodata reply for AAAA
834                 queries.
835
836            redirect
837                 The query is answered from the local data for the zone  name.
838                 There  may  be  no  local  data  beneath the zone name.  This
839                 answers queries for the zone, and all subdomains of the  zone
840                 with the local data for the zone.  It can be used to redirect
841                 a domain to return a different  address  record  to  the  end
842                 user,    with   local-zone:   "example.com."   redirect   and
843                 local-data: "example.com. A 127.0.0.1" queries for  www.exam‐
844                 ple.com and www.foo.example.com are redirected, so that users
845                 with web browsers  cannot  access  sites  with  suffix  exam‐
846                 ple.com.
847
848            nodefault
849                 Used  to turn off default contents for AS112 zones. The other
850                 types also turn off default contents for the zone. The 'node‐
851                 fault'  option  has  no other effect than turning off default
852                 contents for the given zone.
853
854       The default zones are localhost, reverse 127.0.0.1  and  ::1,  and  the
855       AS112  zones. The AS112 zones are reverse DNS zones for private use and
856       reserved IP addresses for which the servers on the internet cannot pro‐
857       vide  correct  answers. They are configured by default to give nxdomain
858       (no reverse information) answers. The defaults can  be  turned  off  by
859       specifying  your  own local-zone of that name, or using the 'nodefault'
860       type. Below is a list of the default zone contents.
861
862            localhost
863                 The IP4 and IP6 localhost information is given.  NS  and  SOA
864                 records are provided for completeness and to satisfy some DNS
865                 update tools. Default content:
866                 local-zone: "localhost." static
867                 local-data: "localhost. 10800 IN NS localhost."
868                 local-data: "localhost. 10800 IN
869                     SOA localhost. nobody.invalid. 1 3600 1200 604800 10800"
870                 local-data: "localhost. 10800 IN A 127.0.0.1"
871                 local-data: "localhost. 10800 IN AAAA ::1"
872
873            reverse IPv4 loopback
874                 Default content:
875                 local-zone: "127.in-addr.arpa." static
876                 local-data: "127.in-addr.arpa. 10800 IN NS localhost."
877                 local-data: "127.in-addr.arpa. 10800 IN
878                     SOA localhost. nobody.invalid. 1 3600 1200 604800 10800"
879                 local-data: "1.0.0.127.in-addr.arpa. 10800 IN
880                     PTR localhost."
881
882            reverse IPv6 loopback
883                 Default content:
884                 local-zone: "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.
885                     0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa." static
886                 local-data: "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.
887                     0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa. 10800 IN
888                     NS localhost."
889                 local-data: "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.
890                     0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa. 10800 IN
891                     SOA localhost. nobody.invalid. 1 3600 1200 604800 10800"
892                 local-data: "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.
893                     0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa. 10800 IN
894                     PTR localhost."
895
896            reverse RFC1918 local use zones
897                 Reverse data for zones  10.in-addr.arpa,  16.172.in-addr.arpa
898                 to     31.172.in-addr.arpa,     168.192.in-addr.arpa.     The
899                 local-zone: is set static  and  as  local-data:  SOA  and  NS
900                 records are provided.
901
902            reverse RFC3330 IP4 this, link-local, testnet and broadcast
903                 Reverse  data for zones 0.in-addr.arpa, 254.169.in-addr.arpa,
904                 2.0.192.in-addr.arpa (TEST  NET  1),  100.51.198.in-addr.arpa
905                 (TEST   NET   2),   113.0.203.in-addr.arpa   (TEST   NET  3),
906                 255.255.255.255.in-addr.arpa.
907
908            reverse RFC4291 IP6 unspecified
909                 Reverse data for zone
910                 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.
911                 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa.
912
913            reverse RFC4193 IPv6 Locally Assigned Local Addresses
914                 Reverse data for zone D.F.ip6.arpa.
915
916            reverse RFC4291 IPv6 Link Local Addresses
917                 Reverse data for zones 8.E.F.ip6.arpa to B.E.F.ip6.arpa.
918
919            reverse IPv6 Example Prefix
920                 Reverse data for zone 8.B.D.0.1.0.0.2.ip6.arpa. This zone  is
921                 used  for tutorials and examples. You can remove the block on
922                 this zone with:
923                   local-zone: 8.B.D.0.1.0.0.2.ip6.arpa. nodefault
924                 You can also selectively unblock a part of the zone by making
925                 that part transparent with a local-zone statement.  This also
926                 works with the other default zones.
927
928       local-data: "<resource record string>"
929            Configure local data, which is served in reply to queries for  it.
930            The query has to match exactly unless you configure the local-zone
931            as redirect. If not matched exactly, the  local-zone  type  deter‐
932            mines  further processing. If local-data is configured that is not
933            a subdomain of a local-zone, a transparent local-zone  is  config‐
934            ured.   For  record  types  such  as TXT, use single quotes, as in
935            local-data: 'example. TXT "text"'.
936
937            If you need more complicated authoritative data,  with  referrals,
938            wildcards,  CNAME/DNAME  support, or DNSSEC authoritative service,
939            setup a stub-zone for it as detailed  in  the  stub  zone  section
940            below.
941
942       local-data-ptr: "IPaddr name"
943            Configure  local data shorthand for a PTR record with the reversed
944            IPv4 or IPv6 address and the host name.   For  example  "192.0.2.4
945            www.example.com".   TTL  can  be  inserted like this: "2001:DB8::4
946            7200 www.example.com"
947
948   Remote Control Options
949       In the remote-control: clause are the declarations for the remote  con‐
950       trol  facility.  If this is enabled, the unbound-control(8) utility can
951       be used to send commands to the running  unbound  server.   The  server
952       uses  these clauses to setup SSLv3 / TLSv1 security for the connection.
953       The unbound-control(8) utility also reads  the  remote-control  section
954       for  options.   To  setup  the correct self-signed certificates use the
955       unbound-control-setup(8) utility.
956
957       control-enable: <yes or no>
958            The option is used to enable remote control, default is "no".   If
959            turned off, the server does not listen for control commands.
960
961       control-interface: <ip address>
962            Give IPv4 or IPv6 addresses to listen on for control commands.  By
963            default localhost (127.0.0.1 and ::1) is listened to.  Use 0.0.0.0
964            and ::0 to listen to all interfaces.
965
966       control-port: <port number>
967            The  port  number  to  listen  on for control commands, default is
968            8953.  If you change this port number, and permissions  have  been
969            dropped,  a  reload  is not sufficient to open the port again, you
970            must then restart.
971
972       server-key-file: <private key file>
973            Path to the server private  key,  by  default  unbound_server.key.
974            This file is generated by the unbound-control-setup utility.  This
975            file is used by the unbound server, but not by unbound-control.
976
977       server-cert-file: <certificate file.pem>
978            Path  to  the  server  self   signed   certificate,   by   default
979            unbound_server.pem.   This  file  is generated by the unbound-con‐
980            trol-setup utility.  This file is used by the unbound server,  and
981            also by unbound-control.
982
983       control-key-file: <private key file>
984            Path  to  the  control client private key, by default unbound_con‐
985            trol.key.  This file is  generated  by  the  unbound-control-setup
986            utility.  This file is used by unbound-control.
987
988       control-cert-file: <certificate file.pem>
989            Path  to  the  control client certificate, by default unbound_con‐
990            trol.pem.  This certificate has to be signed with the server  cer‐
991            tificate.   This  file  is  generated by the unbound-control-setup
992            utility.  This file is used by unbound-control.
993
994   Stub Zone Options
995       There may be multiple stub-zone: clauses. Each with a name: and zero or
996       more  hostnames  or IP addresses.  For the stub zone this list of name‐
997       servers is used. Class IN is assumed.  The servers should be  authority
998       servers,  not  recursors;  unbound  performs  the  recursive processing
999       itself for stub zones.
1000
1001       The stub zone can be used to configure authoritative data to be used by
1002       the resolver that cannot be accessed using the public internet servers.
1003       This is useful for  company-local  data  or  private  zones.  Setup  an
1004       authoritative  server  on a different host (or different port). Enter a
1005       config entry for unbound with stub-addr: <ip address  of  host[@port]>.
1006       The unbound resolver can then access the data, without referring to the
1007       public internet for it.
1008
1009       This setup allows DNSSEC signed zones to be served by  that  authorita‐
1010       tive  server, in which case a trusted key entry with the public key can
1011       be put in config, so that unbound can validate the data and set the  AD
1012       bit  on  replies for the private zone (authoritative servers do not set
1013       the AD bit).  This setup makes unbound capable of answering queries for
1014       the private zone, and can even set the AD bit ('authentic'), but the AA
1015       ('authoritative') bit is not set on these replies.
1016
1017       name: <domain name>
1018              Name of the stub zone.
1019
1020       stub-host: <domain name>
1021              Name of stub zone nameserver. Is itself resolved  before  it  is
1022              used.
1023
1024       stub-addr: <IP address>
1025              IP address of stub zone nameserver. Can be IP 4 or IP 6.  To use
1026              a nondefault port for DNS communication append '@' with the port
1027              number.
1028
1029       stub-prime: <yes or no>
1030              This  option  is  by default off.  If enabled it performs NS set
1031              priming, which is similar to root hints, where it  starts  using
1032              the  list of nameservers currently published by the zone.  Thus,
1033              if the hint list is slightly outdated, the resolver picks  up  a
1034              correct list online.
1035
1036       stub-first: <yes or no>
1037              If  enabled,  a query is attempted without the stub clause if it
1038              fails.  The data could not be retrieved and  would  have  caused
1039              SERVFAIL  because  the  servers  are  unreachable, instead it is
1040              tried without this clause.  The default is no.
1041
1042   Forward Zone Options
1043       There may be multiple forward-zone: clauses. Each with a name: and zero
1044       or  more  hostnames or IP addresses.  For the forward zone this list of
1045       nameservers is used to forward the queries to. The  servers  listed  as
1046       forward-host:  and  forward-addr:  have to handle further recursion for
1047       the query.  Thus, those servers are  not  authority  servers,  but  are
1048       (just  like unbound is) recursive servers too; unbound does not perform
1049       recursion itself for the forward zone, it lets the remote server do it.
1050       Class  IN  is  assumed.   A forward-zone entry with name "." and a for‐
1051       ward-addr target will forward all queries to that other server  (unless
1052       it can answer from the cache).
1053
1054       name: <domain name>
1055              Name of the forward zone.
1056
1057       forward-host: <domain name>
1058              Name  of  server  to forward to. Is itself resolved before it is
1059              used.
1060
1061       forward-addr: <IP address>
1062              IP address of server to forward to. Can be IP 4 or IP 6.  To use
1063              a nondefault port for DNS communication append '@' with the port
1064              number.
1065
1066       forward-first: <yes or no>
1067              If enabled, a query is attempted without the forward  clause  if
1068              it fails.  The data could not be retrieved and would have caused
1069              SERVFAIL because the servers  are  unreachable,  instead  it  is
1070              tried without this clause.  The default is no.
1071
1072   Python Module Options
1073       The  python: clause gives the settings for the python(1) script module.
1074       This module acts like the iterator and validator modules do, on queries
1075       and  answers.   To  enable the script module it has to be compiled into
1076       the daemon, and the word "python" has to be put in  the  module-config:
1077       option (usually first, or between the validator and iterator).
1078
1079       python-script: <python file>
1080              The script file to load.
1081

MEMORY CONTROL EXAMPLE

1083       In the example config settings below memory usage is reduced. Some ser‐
1084       vice levels are lower, notable very large data and a high TCP load  are
1085       no longer supported. Very large data and high TCP loads are exceptional
1086       for the DNS.  DNSSEC validation is enabled, just add trust anchors.  If
1087       you do not have to worry about programs using more than 3 Mb of memory,
1088       the below example is not for you. Use the defaults to receive full ser‐
1089       vice, which on BSD-32bit tops out at 30-40 Mb after heavy usage.
1090
1091       # example settings that reduce memory usage
1092       server:
1093            num-threads: 1
1094            outgoing-num-tcp: 1 # this limits TCP service, uses less buffers.
1095            incoming-num-tcp: 1
1096            outgoing-range: 60  # uses less memory, but less performance.
1097            msg-buffer-size: 8192   # note this limits service, 'no huge stuff'.
1098            msg-cache-size: 100k
1099            msg-cache-slabs: 1
1100            rrset-cache-size: 100k
1101            rrset-cache-slabs: 1
1102            infra-cache-numhosts: 200
1103            infra-cache-slabs: 1
1104            key-cache-size: 100k
1105            key-cache-slabs: 1
1106            neg-cache-size: 10k
1107            num-queries-per-thread: 30
1108            target-fetch-policy: "2 1 0 0 0 0"
1109            harden-large-queries: "yes"
1110            harden-short-bufsize: "yes"
1111

FILES

1113       /etc/unbound
1114              default unbound working directory.
1115
1116       /etc/unbound
1117              default chroot(2) location.
1118
1119       /etc/unbound/unbound.conf
1120              unbound configuration file.
1121
1122       /var/run/unbound/unbound.pid
1123              default unbound pidfile with process ID of the running daemon.
1124
1125       unbound.log
1126              unbound log file. default is to log to syslog(3).
1127

SEE ALSO

1129       unbound(8), unbound-checkconf(8).
1130

AUTHORS

1132       Unbound  was written by NLnet Labs. Please see CREDITS file in the dis‐
1133       tribution for further details.
1134
1135
1136
1137NLnet Labs                       Mar 21, 2013                  unbound.conf(5)
Impressum