2025-05-20 06:20:20 -04:00
|
|
|
.\" Man page generated from reStructuredText.
|
|
|
|
|
.
|
|
|
|
|
.
|
|
|
|
|
.nr rst2man-indent-level 0
|
|
|
|
|
.
|
|
|
|
|
.de1 rstReportMargin
|
|
|
|
|
\\$1 \\n[an-margin]
|
|
|
|
|
level \\n[rst2man-indent-level]
|
|
|
|
|
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|
|
|
|
-
|
|
|
|
|
\\n[rst2man-indent0]
|
|
|
|
|
\\n[rst2man-indent1]
|
|
|
|
|
\\n[rst2man-indent2]
|
|
|
|
|
..
|
|
|
|
|
.de1 INDENT
|
|
|
|
|
.\" .rstReportMargin pre:
|
|
|
|
|
. RS \\$1
|
|
|
|
|
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
|
|
|
|
|
. nr rst2man-indent-level +1
|
|
|
|
|
.\" .rstReportMargin post:
|
|
|
|
|
..
|
|
|
|
|
.de UNINDENT
|
|
|
|
|
. RE
|
|
|
|
|
.\" indent \\n[an-margin]
|
|
|
|
|
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|
|
|
|
.nr rst2man-indent-level -1
|
|
|
|
|
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|
|
|
|
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
|
|
|
|
..
|
|
|
|
|
.TH "UNBOUND-ANCHOR" "8" "@date@" "@version@" "Unbound"
|
|
|
|
|
.SH NAME
|
|
|
|
|
unbound-anchor \- Unbound @version@ anchor utility.
|
|
|
|
|
.SH SYNOPSIS
|
|
|
|
|
.sp
|
|
|
|
|
\fBunbound\-anchor\fP [\fBopts\fP]
|
|
|
|
|
.SH DESCRIPTION
|
|
|
|
|
.sp
|
|
|
|
|
\fBunbound\-anchor\fP performs setup or update of the root trust anchor for DNSSEC
|
|
|
|
|
validation.
|
|
|
|
|
The program fetches the trust anchor with the method from \fI\%RFC 7958\fP when
|
|
|
|
|
regular \fI\%RFC 5011\fP update fails to bring it up to date.
|
2010-09-23 09:51:29 -04:00
|
|
|
It can be run (as root) from the commandline, or run as part of startup
|
2025-05-20 06:20:20 -04:00
|
|
|
scripts.
|
|
|
|
|
Before you start the \fI\%unbound(8)\fP DNS server.
|
|
|
|
|
.sp
|
2010-09-27 05:31:53 -04:00
|
|
|
Suggested usage:
|
2025-05-20 06:20:20 -04:00
|
|
|
.INDENT 0.0
|
|
|
|
|
.INDENT 3.5
|
|
|
|
|
.sp
|
2010-09-27 05:31:53 -04:00
|
|
|
.nf
|
2025-05-20 06:20:20 -04:00
|
|
|
.ft C
|
|
|
|
|
# in the init scripts.
|
|
|
|
|
# provide or update the root anchor (if necessary)
|
|
|
|
|
unbound\-anchor \-a \(dq@UNBOUND_ROOTKEY_FILE@\(dq
|
|
|
|
|
# Please note usage of this root anchor is at your own risk
|
|
|
|
|
# and under the terms of our LICENSE (see source).
|
|
|
|
|
#
|
|
|
|
|
# start validating resolver
|
|
|
|
|
# the unbound.conf contains:
|
|
|
|
|
# auto\-trust\-anchor\-file: \(dq@UNBOUND_ROOTKEY_FILE@\(dq
|
|
|
|
|
unbound \-c unbound.conf
|
|
|
|
|
.ft P
|
2010-09-27 05:31:53 -04:00
|
|
|
.fi
|
2025-05-20 06:20:20 -04:00
|
|
|
.UNINDENT
|
|
|
|
|
.UNINDENT
|
|
|
|
|
.sp
|
|
|
|
|
This tool provides builtin default contents for the root anchor and root update
|
|
|
|
|
certificate files.
|
|
|
|
|
.sp
|
2010-09-23 09:51:29 -04:00
|
|
|
It tests if the root anchor file works, and if not, and an update is possible,
|
|
|
|
|
attempts to update the root anchor using the root update certificate.
|
2025-05-20 06:20:20 -04:00
|
|
|
It performs a https fetch of
|
|
|
|
|
\fI\%root\-anchors.xml\fP
|
|
|
|
|
and checks the results (\fI\%RFC 7958\fP); if all checks are successful, it updates
|
|
|
|
|
the root anchor file.
|
|
|
|
|
Otherwise the root anchor file is unchanged.
|
|
|
|
|
It performs \fI\%RFC 5011\fP tracking if the DNSSEC information available via the
|
|
|
|
|
DNS makes that possible.
|
|
|
|
|
.sp
|
|
|
|
|
It does not perform an update if the certificate is expired, if the network is
|
|
|
|
|
down or other errors occur.
|
|
|
|
|
.sp
|
2010-09-23 09:51:29 -04:00
|
|
|
The available options are:
|
2025-05-20 06:20:20 -04:00
|
|
|
.INDENT 0.0
|
2010-09-23 09:51:29 -04:00
|
|
|
.TP
|
2025-05-20 06:20:20 -04:00
|
|
|
.B \-a <file>
|
2010-09-23 09:51:29 -04:00
|
|
|
The root anchor key file, that is read in and written out.
|
2025-05-20 06:20:20 -04:00
|
|
|
Default is \fB@UNBOUND_ROOTKEY_FILE@\fP\&.
|
|
|
|
|
If the file does not exist, or is empty, a builtin root key is written
|
|
|
|
|
to it.
|
|
|
|
|
.UNINDENT
|
|
|
|
|
.INDENT 0.0
|
2010-09-23 09:51:29 -04:00
|
|
|
.TP
|
2025-05-20 06:20:20 -04:00
|
|
|
.B \-c <file>
|
2010-09-27 05:31:53 -04:00
|
|
|
The root update certificate file, that is read in.
|
2025-05-20 06:20:20 -04:00
|
|
|
Default is \fB@UNBOUND_ROOTCERT_FILE@\fP\&.
|
2010-09-27 05:31:53 -04:00
|
|
|
If the file does not exist, or is empty, a builtin certificate is used.
|
2025-05-20 06:20:20 -04:00
|
|
|
.UNINDENT
|
|
|
|
|
.INDENT 0.0
|
2010-09-27 05:31:53 -04:00
|
|
|
.TP
|
2010-10-01 07:47:53 -04:00
|
|
|
.B \-l
|
|
|
|
|
List the builtin root key and builtin root update certificate on stdout.
|
2025-05-20 06:20:20 -04:00
|
|
|
.UNINDENT
|
|
|
|
|
.INDENT 0.0
|
2010-10-01 07:47:53 -04:00
|
|
|
.TP
|
2025-05-20 06:20:20 -04:00
|
|
|
.B \-u <name>
|
|
|
|
|
The server name, it connects to \fBhttps://name\fP\&.
|
|
|
|
|
Specify without \fBhttps://\fP prefix.
|
|
|
|
|
The default is \fB\(dqdata.iana.org\(dq\fP\&.
|
|
|
|
|
It connects to the port specified with \fI\%\-P\fP\&.
|
2016-10-05 05:56:05 -04:00
|
|
|
You can pass an IPv4 address or IPv6 address (no brackets) if you want.
|
2025-05-20 06:20:20 -04:00
|
|
|
.UNINDENT
|
|
|
|
|
.INDENT 0.0
|
2010-09-27 05:31:53 -04:00
|
|
|
.TP
|
2020-04-17 05:47:36 -04:00
|
|
|
.B \-S
|
2025-05-20 06:20:20 -04:00
|
|
|
Do not use SNI for the HTTPS connection.
|
|
|
|
|
Default is to use SNI.
|
|
|
|
|
.UNINDENT
|
|
|
|
|
.INDENT 0.0
|
2020-04-17 05:47:36 -04:00
|
|
|
.TP
|
2025-05-20 06:20:20 -04:00
|
|
|
.B \-b <address>
|
|
|
|
|
The source address to bind to for domain resolution and contacting the
|
|
|
|
|
server on https.
|
|
|
|
|
May be either an IPv4 address or IPv6 address (no brackets).
|
|
|
|
|
.UNINDENT
|
|
|
|
|
.INDENT 0.0
|
2019-09-24 10:42:36 -04:00
|
|
|
.TP
|
2025-05-20 06:20:20 -04:00
|
|
|
.B \-x <path>
|
|
|
|
|
The pathname to the root\-anchors.xml file on the server.
|
|
|
|
|
(forms URL with \fI\%\-u\fP).
|
|
|
|
|
The default is \fB/root\-anchors/root\-anchors.xml\fP\&.
|
|
|
|
|
.UNINDENT
|
|
|
|
|
.INDENT 0.0
|
2010-09-27 05:31:53 -04:00
|
|
|
.TP
|
2025-05-20 06:20:20 -04:00
|
|
|
.B \-s <path>
|
|
|
|
|
The pathname to the root\-anchors.p7s file on the server.
|
|
|
|
|
(forms URL with \fI\%\-u\fP).
|
|
|
|
|
The default is \fB/root\-anchors/root\-anchors.p7s\fP\&.
|
|
|
|
|
This file has to be a PKCS7 signature over the xml file, using the pem
|
|
|
|
|
file (\fI\%\-c\fP) as trust anchor.
|
|
|
|
|
.UNINDENT
|
|
|
|
|
.INDENT 0.0
|
2010-09-27 05:31:53 -04:00
|
|
|
.TP
|
2025-05-20 06:20:20 -04:00
|
|
|
.B \-n <name>
|
|
|
|
|
The emailAddress for the Subject of the signer\(aqs certificate from the
|
|
|
|
|
p7s signature file.
|
|
|
|
|
Only signatures from this name are allowed.
|
|
|
|
|
The default is \fBdnssec@iana.org\fP\&.
|
|
|
|
|
If you pass \fB\(dq\(dq\fP then the emailAddress is not checked.
|
|
|
|
|
.UNINDENT
|
|
|
|
|
.INDENT 0.0
|
2013-01-03 09:38:38 -05:00
|
|
|
.TP
|
2010-09-27 05:31:53 -04:00
|
|
|
.B \-4
|
2025-05-20 06:20:20 -04:00
|
|
|
Use IPv4 for domain resolution and contacting the server on
|
|
|
|
|
https.
|
|
|
|
|
Default is to use IPv4 and IPv6 where appropriate.
|
|
|
|
|
.UNINDENT
|
|
|
|
|
.INDENT 0.0
|
2010-09-27 05:31:53 -04:00
|
|
|
.TP
|
|
|
|
|
.B \-6
|
2025-05-20 06:20:20 -04:00
|
|
|
Use IPv6 for domain resolution and contacting the server on https.
|
|
|
|
|
Default is to use IPv4 and IPv6 where appropriate.
|
|
|
|
|
.UNINDENT
|
|
|
|
|
.INDENT 0.0
|
|
|
|
|
.TP
|
|
|
|
|
.B \-f <resolv.conf>
|
|
|
|
|
Use the given resolv.conf file.
|
|
|
|
|
Not enabled by default, but you could try to pass
|
|
|
|
|
\fB/etc/resolv.conf\fP on some systems.
|
|
|
|
|
It contains the IP addresses of the recursive nameservers to use.
|
|
|
|
|
However, since this tool could be used to bootstrap that very recursive
|
|
|
|
|
nameserver, it would not be useful (since that server is not up yet,
|
|
|
|
|
since we are bootstrapping it).
|
|
|
|
|
It could be useful in a situation where you know an upstream cache is
|
|
|
|
|
deployed (and running) and in captive portal situations.
|
|
|
|
|
.UNINDENT
|
|
|
|
|
.INDENT 0.0
|
|
|
|
|
.TP
|
|
|
|
|
.B \-r <root.hints>
|
|
|
|
|
Use the given root.hints file (same syntax as the BIND and Unbound root
|
|
|
|
|
hints file) to bootstrap domain resolution.
|
|
|
|
|
By default a list of builtin root hints is used.
|
|
|
|
|
unbound\-anchor goes to the network itself for these roots, to resolve
|
|
|
|
|
the server (\fI\%\-u\fP option) and to check the root DNSKEY records.
|
2010-09-27 05:31:53 -04:00
|
|
|
It does so, because the tool when used for bootstrapping the recursive
|
2025-05-20 06:20:20 -04:00
|
|
|
resolver, cannot use that recursive resolver itself because it is
|
|
|
|
|
bootstrapping that server.
|
|
|
|
|
.UNINDENT
|
|
|
|
|
.INDENT 0.0
|
2010-09-27 05:31:53 -04:00
|
|
|
.TP
|
2018-07-04 06:02:16 -04:00
|
|
|
.B \-R
|
2025-05-20 06:20:20 -04:00
|
|
|
Allow fallback from \fI\%\-f\fP \fB<resolv.conf>\fP file to direct root
|
|
|
|
|
servers query.
|
|
|
|
|
It allows you to prefer local resolvers, but fallback automatically to
|
|
|
|
|
direct root query if they do not respond or do not support DNSSEC.
|
|
|
|
|
.UNINDENT
|
|
|
|
|
.INDENT 0.0
|
2018-07-04 06:02:16 -04:00
|
|
|
.TP
|
2010-09-27 05:31:53 -04:00
|
|
|
.B \-v
|
2025-05-20 06:20:20 -04:00
|
|
|
More verbose.
|
|
|
|
|
Once prints informational messages, multiple times may enable large
|
|
|
|
|
debug amounts (such as full certificates or byte\-dumps of downloaded
|
|
|
|
|
files).
|
|
|
|
|
By default it prints almost nothing.
|
|
|
|
|
It also prints nothing on errors by default; in that case the original
|
|
|
|
|
root anchor file is simply left undisturbed, so that a recursive server
|
|
|
|
|
can start right after it.
|
|
|
|
|
.UNINDENT
|
|
|
|
|
.INDENT 0.0
|
2010-09-27 05:31:53 -04:00
|
|
|
.TP
|
2025-05-20 06:20:20 -04:00
|
|
|
.B \-C <unbound.conf>
|
|
|
|
|
Debug option to read \fB<unbound.conf>\fP into the resolver process
|
|
|
|
|
used.
|
|
|
|
|
.UNINDENT
|
|
|
|
|
.INDENT 0.0
|
2010-09-27 05:31:53 -04:00
|
|
|
.TP
|
2025-05-20 06:20:20 -04:00
|
|
|
.B \-P <port>
|
|
|
|
|
Set the port number to use for the https connection.
|
|
|
|
|
The default is 443.
|
|
|
|
|
.UNINDENT
|
|
|
|
|
.INDENT 0.0
|
2010-09-28 08:30:38 -04:00
|
|
|
.TP
|
2010-09-27 05:31:53 -04:00
|
|
|
.B \-F
|
2025-05-20 06:20:20 -04:00
|
|
|
Debug option to force update of the root anchor through downloading the
|
|
|
|
|
xml file and verifying it with the certificate.
|
|
|
|
|
By default it first tries to update by contacting the DNS, which uses
|
|
|
|
|
much less bandwidth, is much faster (200 msec not 2 sec), and is nicer
|
|
|
|
|
to the deployed infrastructure.
|
|
|
|
|
With this option, it still attempts to do so (and may verbosely tell
|
|
|
|
|
you), but then ignores the result and goes on to use the xml fallback
|
|
|
|
|
method.
|
|
|
|
|
.UNINDENT
|
|
|
|
|
.INDENT 0.0
|
2010-09-23 09:51:29 -04:00
|
|
|
.TP
|
|
|
|
|
.B \-h
|
|
|
|
|
Show the version and commandline option help.
|
2025-05-20 06:20:20 -04:00
|
|
|
.UNINDENT
|
|
|
|
|
.SH EXIT CODE
|
|
|
|
|
.sp
|
2010-09-27 05:50:10 -04:00
|
|
|
This tool exits with value 1 if the root anchor was updated using the
|
2025-05-20 06:20:20 -04:00
|
|
|
certificate or if the builtin root\-anchor was used.
|
|
|
|
|
It exits with code 0 if no update was necessary, if the update was possible
|
|
|
|
|
with \fI\%RFC 5011\fP tracking, or if an error occurred.
|
|
|
|
|
.sp
|
2010-10-01 07:47:53 -04:00
|
|
|
You can check the exit value in this manner:
|
2025-05-20 06:20:20 -04:00
|
|
|
.INDENT 0.0
|
|
|
|
|
.INDENT 3.5
|
|
|
|
|
.sp
|
2010-09-27 05:50:10 -04:00
|
|
|
.nf
|
2025-05-20 06:20:20 -04:00
|
|
|
.ft C
|
|
|
|
|
unbound\-anchor \-a \(dqroot.key\(dq || logger \(dqPlease check root.key\(dq
|
|
|
|
|
.ft P
|
2010-09-27 05:50:10 -04:00
|
|
|
.fi
|
2025-05-20 06:20:20 -04:00
|
|
|
.UNINDENT
|
|
|
|
|
.UNINDENT
|
|
|
|
|
.sp
|
2010-09-27 05:50:10 -04:00
|
|
|
Or something more suitable for your operational environment.
|
2025-05-20 06:20:20 -04:00
|
|
|
.SH TRUST
|
|
|
|
|
.sp
|
|
|
|
|
The root keys and update certificate included in this tool are provided for
|
|
|
|
|
convenience and under the terms of our license (see the LICENSE file in the
|
|
|
|
|
source distribution or \fI\%https://github.com/NLnetLabs/unbound/blob/master/LICENSE\fP
|
|
|
|
|
and might be stale or not suitable to your purpose.
|
|
|
|
|
.sp
|
|
|
|
|
By running \fI\%unbound\-anchor \-l\fP the keys and certificate that are
|
2010-10-01 07:47:53 -04:00
|
|
|
configured in the code are printed for your convenience.
|
2025-05-20 06:20:20 -04:00
|
|
|
.sp
|
|
|
|
|
The built\-in configuration can be overridden by providing a root\-cert file and
|
|
|
|
|
a rootkey file.
|
|
|
|
|
.SH FILES
|
|
|
|
|
.INDENT 0.0
|
2010-09-23 09:51:29 -04:00
|
|
|
.TP
|
2025-05-20 06:20:20 -04:00
|
|
|
.B @UNBOUND_ROOTKEY_FILE@
|
|
|
|
|
The root anchor file, updated with 5011 tracking, and read and written
|
|
|
|
|
to.
|
2010-09-28 06:27:49 -04:00
|
|
|
The file is created if it does not exist.
|
2010-09-23 09:51:29 -04:00
|
|
|
.TP
|
2025-05-20 06:20:20 -04:00
|
|
|
.B @UNBOUND_ROOTCERT_FILE@
|
|
|
|
|
The trusted self\-signed certificate that is used to verify the
|
|
|
|
|
downloaded DNSSEC root trust anchor.
|
|
|
|
|
You can update it by fetching it from
|
|
|
|
|
\fI\%https://data.iana.org/root\-anchors/icannbundle.pem\fP (and validate it).
|
2010-09-28 06:27:49 -04:00
|
|
|
If the file does not exist or is empty, a builtin version is used.
|
2010-09-27 05:31:53 -04:00
|
|
|
.TP
|
2025-05-20 06:20:20 -04:00
|
|
|
.B \fI\%https://data.iana.org/root\-anchors/root\-anchors.xml\fP
|
2010-09-27 05:31:53 -04:00
|
|
|
Source for the root key information.
|
|
|
|
|
.TP
|
2025-05-20 06:20:20 -04:00
|
|
|
.B \fI\%https://data.iana.org/root\-anchors/root\-anchors.p7s\fP
|
2010-09-27 05:31:53 -04:00
|
|
|
Signature on the root key information.
|
2025-05-20 06:20:20 -04:00
|
|
|
.UNINDENT
|
|
|
|
|
.SH SEE ALSO
|
|
|
|
|
.sp
|
|
|
|
|
\fI\%unbound.conf(5)\fP,
|
|
|
|
|
\fI\%unbound(8)\fP\&.
|
|
|
|
|
.SH AUTHOR
|
|
|
|
|
Unbound developers are mentioned in the CREDITS file in the distribution.
|
|
|
|
|
.SH COPYRIGHT
|
|
|
|
|
1999-2025, NLnet Labs
|
|
|
|
|
.\" Generated by docutils manpage writer.
|
|
|
|
|
.
|