2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-29 13:38:26 +00:00

Merge branch 'pspacek/arm-hyperlinks' into 'main'

ARM hyperlinking

See merge request isc-projects/bind9!6509
This commit is contained in:
Petr Špaček 2022-07-04 13:56:44 +00:00
commit 1994e2bc47
30 changed files with 1097 additions and 1078 deletions

View File

@ -256,7 +256,7 @@ The command formats and their meanings are as follows:
in ``krb5.conf``. If no realm is specified, the saved realm is in ``krb5.conf``. If no realm is specified, the saved realm is
cleared. cleared.
``check-names [yes_or_no]`` ``check-names [boolean]``
This command turns on or off check-names processing on records to be added. This command turns on or off check-names processing on records to be added.
Check-names has no effect on prerequisites or records to be deleted. Check-names has no effect on prerequisites or records to be deleted.
By default check-names processing is on. If check-names processing By default check-names processing is on. If check-names processing

View File

@ -21,7 +21,7 @@ rndc - name server control utility
Synopsis Synopsis
~~~~~~~~ ~~~~~~~~
:program:`rndc` [**-b** source-address] [**-c** config-file] [**-k** key-file] [**-s** server] [**-p** port] [**-q**] [**-r**] [**-V**] [**-y** key_id] [[**-4**] | [**-6**]] {command} :program:`rndc` [**-b** source-address] [**-c** config-file] [**-k** key-file] [**-s** server] [**-p** port] [**-q**] [**-r**] [**-V**] [**-y** server_key] [[**-4**] | [**-6**]] {command}
Description Description
~~~~~~~~~~~ ~~~~~~~~~~~
@ -38,7 +38,7 @@ algorithms are HMAC-MD5 (for compatibility), HMAC-SHA1, HMAC-SHA224,
HMAC-SHA256 (default), HMAC-SHA384, and HMAC-SHA512. They use a shared HMAC-SHA256 (default), HMAC-SHA384, and HMAC-SHA512. They use a shared
secret on each end of the connection, which provides TSIG-style secret on each end of the connection, which provides TSIG-style
authentication for the command request and the name server's response. authentication for the command request and the name server's response.
All commands sent over the channel must be signed by a key_id known to All commands sent over the channel must be signed by a server_key known to
the server. the server.
:program:`rndc` reads a configuration file to determine how to contact the name :program:`rndc` reads a configuration file to determine how to contact the name
@ -101,10 +101,10 @@ Options
This option enables verbose logging. This option enables verbose logging.
.. option:: -y key_id .. option:: -y server_key
This option indicates use of the key ``key_id`` from the configuration file. For control message validation to succeed, ``key_id`` must be known This option indicates use of the key ``server_key`` from the configuration file. For control message validation to succeed, ``server_key`` must be known
by :iscman:`named` with the same algorithm and secret string. If no ``key_id`` is specified, by :iscman:`named` with the same algorithm and secret string. If no ``server_key`` is specified,
:program:`rndc` first looks for a key clause in the server statement of :program:`rndc` first looks for a key clause in the server statement of
the server being used, or if no server statement is present for that the server being used, or if no server statement is present for that
host, then in the default-key clause of the options statement. Note that host, then in the default-key clause of the options statement. Note that
@ -650,7 +650,7 @@ would specify a zone called "-redirect".)
Limitations Limitations
~~~~~~~~~~~ ~~~~~~~~~~~
There is currently no way to provide the shared secret for a ``key_id`` There is currently no way to provide the shared secret for a ``server_key``
without using the configuration file. without using the configuration file.
Several error messages could be clearer. Several error messages could be clearer.

View File

@ -23,17 +23,17 @@ Dynamic update is a method for adding, replacing, or deleting records in
a primary server by sending it a special form of DNS messages. The format a primary server by sending it a special form of DNS messages. The format
and meaning of these messages is specified in :rfc:`2136`. and meaning of these messages is specified in :rfc:`2136`.
Dynamic update is enabled by including an ``allow-update`` or an Dynamic update is enabled by including an :any:`allow-update` or an
``update-policy`` clause in the ``zone`` statement. :any:`update-policy` clause in the :any:`zone` statement.
If the zone's ``update-policy`` is set to ``local``, updates to the zone If the zone's :any:`update-policy` is set to ``local``, updates to the zone
are permitted for the key ``local-ddns``, which is generated by are permitted for the key ``local-ddns``, which is generated by
:iscman:`named` at startup. See :ref:`dynamic_update_policies` for more details. :iscman:`named` at startup. See :ref:`dynamic_update_policies` for more details.
Dynamic updates using Kerberos-signed requests can be made using the Dynamic updates using Kerberos-signed requests can be made using the
TKEY/GSS protocol, either by setting the ``tkey-gssapi-keytab`` option TKEY/GSS protocol, either by setting the :any:`tkey-gssapi-keytab` option
or by setting both the ``tkey-gssapi-credential`` and or by setting both the :any:`tkey-gssapi-credential` and
``tkey-domain`` options. Once enabled, Kerberos-signed requests are :any:`tkey-domain` options. Once enabled, Kerberos-signed requests are
matched against the update policies for the zone, using the Kerberos matched against the update policies for the zone, using the Kerberos
principal as the signer for the request. principal as the signer for the request.
@ -121,12 +121,12 @@ necessary change history information is available. These include primary
zones maintained by dynamic update and secondary zones whose data was zones maintained by dynamic update and secondary zones whose data was
obtained by IXFR. For manually maintained primary zones, and for secondary obtained by IXFR. For manually maintained primary zones, and for secondary
zones obtained by performing a full zone transfer (AXFR), IXFR is zones obtained by performing a full zone transfer (AXFR), IXFR is
supported only if the option ``ixfr-from-differences`` is set to supported only if the option :any:`ixfr-from-differences` is set to
``yes``. ``yes``.
When acting as a secondary server, BIND 9 attempts to use IXFR unless it is When acting as a secondary server, BIND 9 attempts to use IXFR unless it is
explicitly disabled. For more information about disabling IXFR, see the explicitly disabled. For more information about disabling IXFR, see the
description of the ``request-ixfr`` clause of the ``server`` statement. description of the :any:`request-ixfr` clause of the :namedconf:ref:`server` statement.
When a secondary server receives a zone via AXFR, it creates a new copy of the When a secondary server receives a zone via AXFR, it creates a new copy of the
zone database and then swaps it into place; during the loading process, queries zone database and then swaps it into place; during the loading process, queries
@ -136,7 +136,7 @@ degrade query performance during the transfer. If a server receiving an IXFR
request determines that the response size would be similar in size to an AXFR request determines that the response size would be similar in size to an AXFR
response, it may wish to send AXFR instead. The threshold at which this response, it may wish to send AXFR instead. The threshold at which this
determination is made can be configured using the determination is made can be configured using the
``max-ixfr-ratio`` option. :any:`max-ixfr-ratio` option.
.. _split_dns: .. _split_dns:

View File

@ -47,10 +47,10 @@ removes, or reconfigures member zones based on the data received.
To use a catalog zone, it must first be set up as a normal zone on both the To use a catalog zone, it must first be set up as a normal zone on both the
primary and secondary servers that are configured to use it. It primary and secondary servers that are configured to use it. It
must also be added to a ``catalog-zones`` list in the ``options`` or must also be added to a :any:`catalog-zones` list in the :namedconf:ref:`options` or
``view`` statement in :iscman:`named.conf`. This is comparable to the way a :any:`view` statement in :iscman:`named.conf`. This is comparable to the way a
policy zone is configured as a normal zone and also listed in a policy zone is configured as a normal zone and also listed in a
``response-policy`` statement. :any:`response-policy` statement.
To use the catalog zone feature to serve a new member zone: To use the catalog zone feature to serve a new member zone:
@ -66,7 +66,7 @@ The change to the catalog zone is propagated from the primary to all
secondaries using the normal AXFR/IXFR mechanism. When the secondary receives the secondaries using the normal AXFR/IXFR mechanism. When the secondary receives the
update to the catalog zone, it detects the entry for the new member update to the catalog zone, it detects the entry for the new member
zone, creates an instance of that zone on the secondary server, and points zone, creates an instance of that zone on the secondary server, and points
that instance to the ``primaries`` specified in the catalog zone data. The that instance to the :any:`primaries` specified in the catalog zone data. The
newly created member zone is a normal secondary zone, so BIND newly created member zone is a normal secondary zone, so BIND
immediately initiates a transfer of zone contents from the primary. Once immediately initiates a transfer of zone contents from the primary. Once
complete, the secondary starts serving the member zone. complete, the secondary starts serving the member zone.
@ -85,8 +85,8 @@ Configuring Catalog Zones
~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~
.. namedconf:statement:: catalog-zones .. namedconf:statement:: catalog-zones
Catalog zones are configured with a ``catalog-zones`` statement in the Catalog zones are configured with a :any:`catalog-zones` statement in the
``options`` or ``view`` section of :iscman:`named.conf`. For example: :namedconf:ref:`options` or :any:`view` section of :iscman:`named.conf`. For example:
:: ::
@ -117,7 +117,7 @@ specified in any order.
``in-memory`` ``in-memory``
This option, if set to ``yes``, causes member zones to be This option, if set to ``yes``, causes member zones to be
stored only in memory. This is functionally equivalent to configuring a stored only in memory. This is functionally equivalent to configuring a
secondary zone without a ``file`` option. The default is ``no``; member secondary zone without a :any:`file` option. The default is ``no``; member
zones' content is stored locally in a file whose name is zones' content is stored locally in a file whose name is
automatically generated from the view name, catalog zone name, and automatically generated from the view name, catalog zone name, and
member zone name. member zone name.
@ -137,8 +137,8 @@ specified in any order.
interval has elapsed. The default is 5 seconds. interval has elapsed. The default is 5 seconds.
Catalog zones are defined on a per-view basis. Configuring a non-empty Catalog zones are defined on a per-view basis. Configuring a non-empty
``catalog-zones`` statement in a view automatically turns on :any:`catalog-zones` statement in a view automatically turns on
``allow-new-zones`` for that view. This means that :option:`rndc addzone` :any:`allow-new-zones` for that view. This means that :option:`rndc addzone`
and :option:`rndc delzone` also work in any view that supports catalog and :option:`rndc delzone` also work in any view that supports catalog
zones. zones.
@ -202,7 +202,7 @@ Global custom properties are set at the apex of the catalog zone, e.g.:
BIND currently supports the following custom properties: BIND currently supports the following custom properties:
- A simple ``primaries`` definition: - A simple :any:`primaries` definition:
:: ::
@ -213,9 +213,9 @@ BIND currently supports the following custom properties:
either an A or AAAA record. If multiple primaries are set, the order in either an A or AAAA record. If multiple primaries are set, the order in
which they are used is random. which they are used is random.
Note: ``masters`` can be used as a synonym for ``primaries``. Note: ``masters`` can be used as a synonym for :any:`primaries`.
- A ``primaries`` with a TSIG key defined: - A :any:`primaries` with a TSIG key defined:
:: ::
@ -227,9 +227,9 @@ BIND currently supports the following custom properties:
key set. The TSIG key must be configured in the configuration file. key set. The TSIG key must be configured in the configuration file.
``label`` can be any valid DNS label. ``label`` can be any valid DNS label.
Note: ``masters`` can be used as a synonym for ``primaries``. Note: ``masters`` can be used as a synonym for :any:`primaries`.
- ``allow-query`` and ``allow-transfer`` ACLs: - :any:`allow-query` and :any:`allow-transfer` ACLs:
:: ::
@ -237,8 +237,8 @@ BIND currently supports the following custom properties:
allow-transfer.ext.catalog.example. IN APL !1:10.0.0.1/32 1:10.0.0.0/24 allow-transfer.ext.catalog.example. IN APL !1:10.0.0.1/32 1:10.0.0.0/24
These custom properties are the equivalents of ``allow-query`` and These custom properties are the equivalents of :any:`allow-query` and
``allow-transfer`` options in a zone declaration in the :iscman:`named.conf` :any:`allow-transfer` options in a zone declaration in the :iscman:`named.conf`
configuration file. The ACL is processed in order; if there is no configuration file. The ACL is processed in order; if there is no
match to any rule, the default policy is to deny access. For the match to any rule, the default policy is to deny access. For the
syntax of the APL RR, see :rfc:`3123`. syntax of the APL RR, see :rfc:`3123`.
@ -256,12 +256,12 @@ custom properties, but in the member zone subdomain:
Custom properties defined for a specific zone override the Custom properties defined for a specific zone override the
global custom properties defined in the catalog zone. These in turn override the global custom properties defined in the catalog zone. These in turn override the
global options defined in the ``catalog-zones`` statement in the global options defined in the :any:`catalog-zones` statement in the
configuration file. configuration file.
Note that none of the global records for a custom property are inherited if any Note that none of the global records for a custom property are inherited if any
records are defined for that custom property for the specific zone. For example, records are defined for that custom property for the specific zone. For example,
if the zone had a ``primaries`` record of type A but not AAAA, it if the zone had a :any:`primaries` record of type A but not AAAA, it
would *not* inherit the type AAAA record from the global custom property would *not* inherit the type AAAA record from the global custom property
or from the global option in the configuration file. or from the global option in the configuration file.

View File

@ -39,8 +39,6 @@ may support any combination of primary and secondary zones.
For reasons of backward compatibility BIND 9 treats "primary" and "master" as For reasons of backward compatibility BIND 9 treats "primary" and "master" as
synonyms, as well as "secondary" and "slave." synonyms, as well as "secondary" and "slave."
.. _notify:
The following diagram shows the relationship between the primary and secondary The following diagram shows the relationship between the primary and secondary
name servers. The text below explains the process in detail. name servers. The text below explains the process in detail.
@ -168,10 +166,10 @@ the :iscman:`named.conf` file has been modified as shown:
The added statements and blocks are commented in the above file. The added statements and blocks are commented in the above file.
The :ref:`zone<zone_clause>` block, and :ref:`allow-query<allow-query>`, The :any:`zone` block, and :ref:`allow-query<allow-query>`,
:any:`allow-query-cache`, :any:`allow-query-cache`,
:ref:`allow-transfer<allow-transfer>`, :ref:`file<file>`, :ref:`allow-transfer<allow-transfer>`, :ref:`file<file>`,
:ref:`notify<notify_st>`, :ref:`recursion<recursion>`, and :ref:`type<type>` :ref:`notify<notify_st>`, :ref:`recursion<recursion>`, and :any:`type`
statements are described in detail in the appropriate sections. statements are described in detail in the appropriate sections.
.. _sample_secondary: .. _sample_secondary:
@ -250,11 +248,11 @@ The :ref:`named.conf<named_conf>` file has been modified as shown:
The statements and blocks added are all commented in the above file. The statements and blocks added are all commented in the above file.
The :ref:`zone<zone_clause>` block, and :ref:`allow-query<allow-query>`, The :any:`zone` block, and :ref:`allow-query<allow-query>`,
:any:`allow-query-cache`, :any:`allow-query-cache`,
:ref:`allow-transfer<allow-transfer>`, :ref:`file<file>`, :ref:`allow-transfer<allow-transfer>`, :ref:`file<file>`,
:ref:`notify<notify_st>`, :ref:`primaries<primaries>`, :ref:`notify<notify_st>`, :ref:`primaries<primaries>`,
:ref:`recursion<recursion>`, and :ref:`type<type>` statements are described in :ref:`recursion<recursion>`, and :any:`type` statements are described in
detail in the appropriate sections. detail in the appropriate sections.
If NOTIFY is not being used, no changes are required in this If NOTIFY is not being used, no changes are required in this

View File

@ -79,7 +79,7 @@ as required by the user.
}; };
The :ref:`logging<logging_grammar>` and :ref:`options<options_grammar>` blocks The :ref:`logging<logging_grammar>` and :ref:`options<options_grammar>` blocks
and :ref:`category<the_category_phrase>`, :ref:`channel<channel>`, and :ref:`category<the_category_phrase>`, :any:`channel`,
:ref:`directory<directory>`, :ref:`file<file>`, and :ref:`severity<severity>` :ref:`directory<directory>`, :ref:`file<file>`, and :ref:`severity<severity>`
statements are all described further in the appropriate sections of this ARM. statements are all described further in the appropriate sections of this ARM.

View File

@ -116,7 +116,7 @@ as the file ``named.root`` (normally found in /etc/namedb or
Consult the appropriate distribution documentation for the actual file name. Consult the appropriate distribution documentation for the actual file name.
The hint zone file is referenced using the :ref:`type hint;<type>` statement and The hint zone file is referenced using the :any:`type hint` statement and
a zone (domain) name of "." (the generally silent dot). a zone (domain) name of "." (the generally silent dot).
.. Note:: The root server IP addresses have been stable for a number of .. Note:: The root server IP addresses have been stable for a number of
@ -262,10 +262,10 @@ It is therefore a **closed** resolver and cannot be used in wider network attack
notify no; notify no;
}; };
The :ref:`zone<zone_clause>` and :ref:`acl<acl_grammar>` blocks, and the The :any:`zone` and :any:`acl` blocks, and the
:ref:`allow-query<allow-query>`, :ref:`empty-zones-enable<empty-zones-enable>`, :ref:`allow-query<allow-query>`, :ref:`empty-zones-enable<empty-zones-enable>`,
:ref:`file<file>`, :ref:`notify<notify_st>`, :ref:`recursion<recursion>`, and :ref:`file<file>`, :ref:`notify<notify_st>`, :ref:`recursion<recursion>`, and
:ref:`type<type>` statements are described in detail in the appropriate :any:`type` statements are described in detail in the appropriate
sections. sections.
As a reminder, the configuration of this resolver does **not** access the DNS As a reminder, the configuration of this resolver does **not** access the DNS
@ -279,7 +279,7 @@ hierarchy (does not use the public network) for any recursive query for which:
4. Is a reverse-map query for 192.168.254/24 (zone 254.168.192.in-addr.arpa). 4. Is a reverse-map query for 192.168.254/24 (zone 254.168.192.in-addr.arpa).
5. Is a reverse-map query for any local IP (``empty-zones-enable`` 5. Is a reverse-map query for any local IP (:any:`empty-zones-enable`
statement). statement).
All other recursive queries will result in access to the DNS hierarchy to All other recursive queries will result in access to the DNS hierarchy to
@ -380,10 +380,10 @@ provided<selective_forward_sample>`.
notify no; notify no;
}; };
The :ref:`zone<zone_clause>` and :ref:`acl<acl_grammar>` blocks, and the The :any:`zone` and :any:`acl` blocks, and the
:ref:`allow-query<allow-query>`, :ref:`empty-zones-enable<empty-zones-enable>`, :ref:`allow-query<allow-query>`, :ref:`empty-zones-enable<empty-zones-enable>`,
:ref:`file<file>`, :ref:`forward<forward>`, :ref:`forwarders<forwarders>`, :ref:`file<file>`, :ref:`forward<forward>`, :ref:`forwarders<forwarders>`,
:ref:`notify<notify_st>`, :ref:`recursion<recursion>`, and :ref:`type<type>` :ref:`notify<notify_st>`, :ref:`recursion<recursion>`, and :any:`type`
statements are described in detail in the appropriate sections. statements are described in detail in the appropriate sections.
As a reminder, the configuration of this forwarding resolver does **not** As a reminder, the configuration of this forwarding resolver does **not**
@ -397,7 +397,7 @@ forward any recursive query for which:
4. Is a reverse-map query for 192.168.254/24 (zone 254.168.192.in-addr.arpa). 4. Is a reverse-map query for 192.168.254/24 (zone 254.168.192.in-addr.arpa).
5. Is a reverse-map query for any local IP (``empty-zones-enable`` statement). 5. Is a reverse-map query for any local IP (:any:`empty-zones-enable` statement).
All other recursive queries will be forwarded to resolve the query. All other recursive queries will be forwarded to resolve the query.
@ -507,10 +507,10 @@ those IPs from which it will accept recursive queries.
}; };
The :ref:`zone<zone_clause>` and :ref:`acl<acl_grammar>` blocks, and the The :any:`zone` and :any:`acl` blocks, and the
:ref:`allow-query<allow-query>`, :ref:`empty-zones-enable<empty-zones-enable>`, :ref:`allow-query<allow-query>`, :ref:`empty-zones-enable<empty-zones-enable>`,
:ref:`file<file>`, :ref:`forward<forward>`, :ref:`forwarders<forwarders>`, :ref:`file<file>`, :ref:`forward<forward>`, :ref:`forwarders<forwarders>`,
:ref:`notify<notify_st>`, :ref:`recursion<recursion>`, and :ref:`type<type>` :ref:`notify<notify_st>`, :ref:`recursion<recursion>`, and :any:`type`
statements are described in detail in the appropriate sections. statements are described in detail in the appropriate sections.
As a reminder, the configuration of this resolver does **not** access the DNS As a reminder, the configuration of this resolver does **not** access the DNS

View File

@ -34,7 +34,7 @@ Configuring DLZ
~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~
.. namedconf:statement:: dlz .. namedconf:statement:: dlz
A DLZ database is configured with a ``dlz`` statement in :iscman:`named.conf`: A DLZ database is configured with a :any:`dlz` statement in :iscman:`named.conf`:
:: ::
@ -46,19 +46,19 @@ A DLZ database is configured with a ``dlz`` statement in :iscman:`named.conf`:
This specifies a DLZ module to search when answering queries; the module This specifies a DLZ module to search when answering queries; the module
is implemented in ``driver.so`` and is loaded at runtime by the dlopen is implemented in ``driver.so`` and is loaded at runtime by the dlopen
DLZ driver. Multiple ``dlz`` statements can be specified. DLZ driver. Multiple :any:`dlz` statements can be specified.
.. namedconf:statement:: search .. namedconf:statement:: search
When answering a query, all DLZ modules with ``search`` set to ``yes`` are When answering a query, all DLZ modules with :namedconf:ref:`search` set to ``yes`` are
queried to see whether they contain an answer for the query name. The best queried to see whether they contain an answer for the query name. The best
available answer is returned to the client. available answer is returned to the client.
The ``search`` option in the above example can be omitted, because The :namedconf:ref:`search` option in the above example can be omitted, because
``yes`` is the default value. ``yes`` is the default value.
If ``search`` is set to ``no``, this DLZ module is *not* searched If :namedconf:ref:`search` is set to ``no``, this DLZ module is *not* searched
for the best match when a query is received. Instead, zones in this DLZ for the best match when a query is received. Instead, zones in this DLZ
must be separately specified in a zone statement. This allows users to must be separately specified in a zone statement. This allows users to
configure a zone normally using standard zone-option semantics, but configure a zone normally using standard zone-option semantics, but
@ -86,7 +86,7 @@ For guidance in the implementation of DLZ modules, the directory
``contrib/dlz/example`` contains a basic dynamically linkable DLZ ``contrib/dlz/example`` contains a basic dynamically linkable DLZ
module - i.e., one which can be loaded at runtime by the "dlopen" DLZ module - i.e., one which can be loaded at runtime by the "dlopen" DLZ
driver. The example sets up a single zone, whose name is passed to the driver. The example sets up a single zone, whose name is passed to the
module as an argument in the ``dlz`` statement: module as an argument in the :any:`dlz` statement:
:: ::

View File

@ -110,51 +110,51 @@ server.
described in :ref:`controls_statement_definition_and_usage`. described in :ref:`controls_statement_definition_and_usage`.
The format of the configuration file is similar to that of The format of the configuration file is similar to that of
:iscman:`named.conf`, but is limited to only four statements: the ``options``, :iscman:`named.conf`, but is limited to only three blocks: the :rndcconf:ref:`options`,
``key``, ``server``, and ``include`` statements. These statements are :rndcconf:ref:`key`, :rndcconf:ref:`server`, and the :ref:`include_grammar`. These blocks are
what associate the secret keys to the servers with which they are what associate the secret keys to the servers with which they are
meant to be shared. The order of statements is not significant. meant to be shared. The order of blocks is not significant.
.. rndcconf:statement:: options .. rndcconf:statement:: options
.. rndcconf:statement:: default-server .. rndcconf:statement:: default-server
``default-server`` takes a :any:`default-server` takes a
host name or address argument and represents the server that is host name or address argument and represents the server that is
contacted if no :option:`-s <rndc -s>` option is provided on the command line. contacted if no :option:`-s <rndc -s>` option is provided on the command line.
.. rndcconf:statement:: default-key .. rndcconf:statement:: default-key
``default-key`` takes the name of a key as its argument, as defined :any:`default-key` takes the name of a key as its argument, as defined
by a ``key`` statement. by a :rndcconf:ref:`key` block.
.. rndcconf:statement:: default-port .. rndcconf:statement:: default-port
``default-port`` specifies the port to which :any:`default-port` specifies the port to which
:iscman:`rndc` should connect if no port is given on the command line or in :iscman:`rndc` should connect if no port is given on the command line or in
a ``server`` statement. a :rndcconf:ref:`server` block.
.. rndcconf:statement:: default-source-address .. rndcconf:statement:: default-source-address
.. rndcconf:statement:: default-source-address-v6 .. rndcconf:statement:: default-source-address-v6
``default-source-address`` and ``default-source-address-v6`` specify :any:`default-source-address` and :any:`default-source-address-v6` specify
the IPv4 and IPv6 source address used to communicate with the server the IPv4 and IPv6 source address used to communicate with the server
if no address is given on the command line or in a if no address is given on the command line or in a
:rndcconf:ref:`server` block. :rndcconf:ref:`server` block.
.. rndcconf:statement:: key .. rndcconf:statement:: key
The ``key`` statement defines a key to be used by :iscman:`rndc` when The :rndcconf:ref:`key` block defines a key to be used by :iscman:`rndc` when
authenticating with :iscman:`named`. Its syntax is identical to the ``key`` authenticating with :iscman:`named`. Its syntax is identical to the :namedconf:ref:`key`
statement in :iscman:`named.conf`. The keyword ``key`` is followed by a key statement in :iscman:`named.conf`. The keyword :rndcconf:ref:`key` is followed by a key
name, which must be a valid domain name, though it need not actually name, which must be a valid domain name, though it need not actually
be hierarchical; thus, a string like ``rndc_key`` is a valid name. be hierarchical; thus, a string like ``rndc_key`` is a valid name.
The ``key`` statement has two clauses: ``algorithm`` and ``secret``. The :rndcconf:ref:`key` block has two statements: :rndcconf:ref:`algorithm` and :rndcconf:ref:`secret`.
.. rndcconf:statement:: algorithm .. rndcconf:statement:: algorithm
While the configuration parser accepts any string as the argument While the configuration parser accepts any string as the argument
to ``algorithm``, currently only the strings ``hmac-md5``, to :rndcconf:ref:`algorithm`, currently only the strings ``hmac-md5``,
``hmac-sha1``, ``hmac-sha224``, ``hmac-sha256``, ``hmac-sha1``, ``hmac-sha224``, ``hmac-sha256``,
``hmac-sha384``, and ``hmac-sha512`` have any meaning. ``hmac-sha384``, and ``hmac-sha512`` have any meaning.
@ -165,7 +165,7 @@ server.
.. rndcconf:statement:: server .. rndcconf:statement:: server
The ``server`` statement specifies connection parameters for a given server. The :rndcconf:ref:`server` block specifies connection parameters for a given server.
The server can be specified as a host name or address. The server can be specified as a host name or address.
.. rndcconf:statement:: addresses .. rndcconf:statement:: addresses
@ -217,11 +217,11 @@ server.
allow { localhost; } keys { rndc_key; }; allow { localhost; } keys { rndc_key; };
}; };
and it has an identical key statement for ``rndc_key``. and it has an identical key block for ``rndc_key``.
Running the :iscman:`rndc-confgen` program conveniently creates an Running the :iscman:`rndc-confgen` program conveniently creates an
:iscman:`rndc.conf` file, and also displays the corresponding :iscman:`rndc.conf` file, and also displays the corresponding
``controls`` statement needed to add to :iscman:`named.conf`. :any:`controls` statement needed to add to :iscman:`named.conf`.
Alternatively, it is possible to run :option:`rndc-confgen -a` to set up an Alternatively, it is possible to run :option:`rndc-confgen -a` to set up an
``rndc.key`` file and not modify :iscman:`named.conf` at all. ``rndc.key`` file and not modify :iscman:`named.conf` at all.

View File

@ -107,7 +107,7 @@ care of any DNSSEC maintenance for this zone, including replacing signatures
that are about to expire and managing :ref:`key_rollovers`. that are about to expire and managing :ref:`key_rollovers`.
.. note:: .. note::
``dnssec-policy`` needs write access to the zone. Please see :any:`dnssec-policy` needs write access to the zone. Please see
:ref:`dnssec_policy` for more details about implications for zone storage. :ref:`dnssec_policy` for more details about implications for zone storage.
The default policy creates one key that is used to sign the complete zone, The default policy creates one key that is used to sign the complete zone,
@ -115,7 +115,7 @@ and uses ``NSEC`` to enable authenticated denial of existence (a secure way
to tell which records do not exist in a zone). This policy is recommended to tell which records do not exist in a zone). This policy is recommended
and typically does not need to be changed. and typically does not need to be changed.
If needed, a custom policy can be defined by adding a ``dnssec-policy`` statement If needed, a custom policy can be defined by adding a :any:`dnssec-policy` statement
into the configuration: into the configuration:
.. code-block:: none .. code-block:: none
@ -155,7 +155,7 @@ needs.
Key Rollover Key Rollover
============ ============
When using a ``dnssec-policy``, a key lifetime can be set to trigger When using a :any:`dnssec-policy`, a key lifetime can be set to trigger
key rollovers. ZSK rollovers are fully automatic, but for KSK and CSK rollovers key rollovers. ZSK rollovers are fully automatic, but for KSK and CSK rollovers
a DS record needs to be submitted to the parent. See a DS record needs to be submitted to the parent. See
:ref:`secure_delegation` for possible ways to do so. :ref:`secure_delegation` for possible ways to do so.
@ -222,7 +222,7 @@ adjusts the zone's DNSSEC keys on a schedule according to the key timing
metadata. However, keys still need to be generated separately, for metadata. However, keys still need to be generated separately, for
example with :iscman:`dnssec-keygen`. example with :iscman:`dnssec-keygen`.
Of course, dynamic zones can also use ``dnssec-policy`` to fully automate DNSSEC Of course, dynamic zones can also use :any:`dnssec-policy` to fully automate DNSSEC
maintenance. The next sections assume that more key maintenance. The next sections assume that more key
management control is needed, and describe how to use dynamic DNS update to perform management control is needed, and describe how to use dynamic DNS update to perform
various DNSSEC operations. various DNSSEC operations.
@ -235,7 +235,7 @@ As an alternative to fully automated zone signing using :ref:`dnssec-policy
<dnssec_kasp>`, a zone can be changed from insecure to secure using a dynamic <dnssec_kasp>`, a zone can be changed from insecure to secure using a dynamic
DNS update. :iscman:`named` must be configured so that it can see the ``K*`` DNS update. :iscman:`named` must be configured so that it can see the ``K*``
files which contain the public and private parts of the `zone keys`_ that are files which contain the public and private parts of the `zone keys`_ that are
used to sign the zone. Key files should be placed in the ``key-directory``, as used to sign the zone. Key files should be placed in the :any:`key-directory`, as
specified in :iscman:`named.conf`: specified in :iscman:`named.conf`:
:: ::
@ -273,7 +273,7 @@ To insert the keys via dynamic update:
> send > send
In order to sign with these keys, the corresponding key files should also be In order to sign with these keys, the corresponding key files should also be
placed in the ``key-directory``. placed in the :any:`key-directory`.
.. _dnssec_dynamic_zones_nsec3: .. _dnssec_dynamic_zones_nsec3:
@ -354,10 +354,10 @@ To convert a signed zone to unsigned using dynamic DNS, delete all the
``NSEC`` or ``NSEC3`` chains, and associated ``NSEC3PARAM`` records are removed ``NSEC`` or ``NSEC3`` chains, and associated ``NSEC3PARAM`` records are removed
automatically when the zone is supposed to be re-signed. automatically when the zone is supposed to be re-signed.
This requires the ``dnssec-secure-to-insecure`` option to be set to ``yes`` in This requires the :any:`dnssec-secure-to-insecure` option to be set to ``yes`` in
:iscman:`named.conf`. :iscman:`named.conf`.
In addition, if the ``auto-dnssec maintain`` or a ``dnssec-policy`` is used, it In addition, if the ``auto-dnssec maintain`` or a :any:`dnssec-policy` is used, it
should be removed or changed to ``allow`` instead; otherwise it will re-sign. should be removed or changed to ``allow`` instead; otherwise it will re-sign.
.. _dnssec_tools: .. _dnssec_tools:
@ -471,7 +471,7 @@ This trust anchor is provided as part of BIND and is kept up-to-date using
To validate answers, the resolver needs at least one trusted starting point, To validate answers, the resolver needs at least one trusted starting point,
a "trust anchor." Essentially, trust anchors are copies of ``DNSKEY`` RRs for a "trust anchor." Essentially, trust anchors are copies of ``DNSKEY`` RRs for
zones that are used to form the first link in the cryptographic chain of trust. zones that are used to form the first link in the cryptographic chain of trust.
Alternative trust anchors can be specified using :ref:`trust_anchors`, but Alternative trust anchors can be specified using :any:`trust-anchors`, but
this setup is very unusual and is recommended only for expert use. this setup is very unusual and is recommended only for expert use.
For more information, see :ref:`trust_anchors_description` in the For more information, see :ref:`trust_anchors_description` in the
:doc:`dnssec-guide`. :doc:`dnssec-guide`.

View File

@ -35,7 +35,7 @@ Configuring DynDB
~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~
.. namedconf:statement:: dyndb .. namedconf:statement:: dyndb
A DynDB database is configured with a ``dyndb`` statement in A DynDB database is configured with a :any:`dyndb` statement in
:iscman:`named.conf`: :iscman:`named.conf`:
:: ::
@ -46,7 +46,7 @@ A DynDB database is configured with a ``dyndb`` statement in
The file ``driver.so`` is a DynDB module which implements the full DNS The file ``driver.so`` is a DynDB module which implements the full DNS
database API. Multiple ``dyndb`` statements can be specified, to load database API. Multiple :any:`dyndb` statements can be specified, to load
different drivers or multiple instances of the same driver. Zones different drivers or multiple instances of the same driver. Zones
provided by a DynDB module are added to the view's zone table, and are provided by a DynDB module are added to the view's zone table, and are
treated as normal authoritative zones when BIND responds to treated as normal authoritative zones when BIND responds to
@ -62,7 +62,7 @@ Sample DynDB Module
For guidance in the implementation of DynDB modules, the directory For guidance in the implementation of DynDB modules, the directory
``bin/tests/system/dyndb/driver`` contains a basic DynDB module. The ``bin/tests/system/dyndb/driver`` contains a basic DynDB module. The
example sets up two zones, whose names are passed to the module as example sets up two zones, whose names are passed to the module as
arguments in the ``dyndb`` statement: arguments in the :any:`dyndb` statement:
:: ::

View File

@ -25,7 +25,7 @@
Logging options for those categories where no specific configuration has been defined. Logging options for those categories where no specific configuration has been defined.
``delegation-only`` ``delegation-only``
Queries that have been forced to NXDOMAIN as the result of a delegation-only zone or a ``delegation-only`` in a forward, hint, or stub zone declaration. Queries that have been forced to NXDOMAIN as the result of a delegation-only zone or a :any:`delegation-only` in a forward, hint, or stub zone declaration.
``dispatch`` ``dispatch``
Dispatching of incoming packets to the server modules where they are to be processed. Dispatching of incoming packets to the server modules where they are to be processed.
@ -34,7 +34,7 @@
DNSSEC and TSIG protocol processing. DNSSEC and TSIG protocol processing.
``dnstap`` ``dnstap``
The "dnstap" DNS traffic capture system. The :any:`dnstap` DNS traffic capture system.
``edns-disabled`` ``edns-disabled``
Log queries that have been forced to use plain DNS due to timeouts. This is often due to the remote servers not being :rfc:`1034`-compliant (not always returning FORMERR or similar to EDNS queries and other extensions to the DNS when they are not understood). In other words, this is targeted at servers that fail to respond to DNS queries that they don't understand. Log queries that have been forced to use plain DNS due to timeouts. This is often due to the remote servers not being :rfc:`1034`-compliant (not always returning FORMERR or similar to EDNS queries and other extensions to the DNS when they are not understood). In other words, this is targeted at servers that fail to respond to DNS queries that they don't understand.
@ -61,7 +61,7 @@
``queries`` ``queries``
A location where queries should be logged. A location where queries should be logged.
At startup, specifying the category ``queries`` also enables query logging unless the ``querylog`` option has been specified. At startup, specifying the category ``queries`` also enables query logging unless the :any:`querylog` option has been specified.
The query log entry first reports a client object identifier in @0x<hexadecimal-number> format. Next, it reports the client's IP address and port number, and the query name, class, and type. Next, it reports whether the Recursion Desired flag was set (+ if set, - if not set), whether the query was signed (S), whether EDNS was in use along with the EDNS version number (E(#)), whether TCP was used (T), whether DO (DNSSEC Ok) was set (D), whether CD (Checking Disabled) was set (C), whether a valid DNS Server COOKIE was received (V), and whether a DNS COOKIE option without a valid Server COOKIE was present (K). After this, the destination address the query was sent to is reported. Finally, if any CLIENT-SUBNET option was present in the client query, it is included in square brackets in the format [ECS address/source/scope]. The query log entry first reports a client object identifier in @0x<hexadecimal-number> format. Next, it reports the client's IP address and port number, and the query name, class, and type. Next, it reports whether the Recursion Desired flag was set (+ if set, - if not set), whether the query was signed (S), whether EDNS was in use along with the EDNS version number (E(#)), whether TCP was used (T), whether DO (DNSSEC Ok) was set (D), whether CD (Checking Disabled) was set (C), whether a valid DNS Server COOKIE was received (V), and whether a DNS COOKIE option without a valid Server COOKIE was present (K). After this, the destination address the query was sent to is reported. Finally, if any CLIENT-SUBNET option was present in the client query, it is included in square brackets in the format [ECS address/source/scope].
@ -102,10 +102,10 @@
TLS pre-master secrets (for debugging purposes). TLS pre-master secrets (for debugging purposes).
``trust-anchor-telemetry`` ``trust-anchor-telemetry``
Trust-anchor-telemetry requests received by :iscman:`named`. :any:`trust-anchor-telemetry` requests received by :iscman:`named`.
``unmatched`` ``unmatched``
Messages that :iscman:`named` was unable to determine the class of, or for which there was no matching ``view``. A one-line summary is also logged to the ``client`` category. This category is best sent to a file or stderr; by default it is sent to the ``null`` channel. Messages that :iscman:`named` was unable to determine the class of, or for which there was no matching :any:`view`. A one-line summary is also logged to the ``client`` category. This category is best sent to a file or stderr; by default it is sent to the :any:`null` channel.
``update`` ``update``
Dynamic updates. Dynamic updates.

View File

@ -23,9 +23,9 @@ Validating Resolver
^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^
To configure a validating resolver to use :rfc:`5011` to maintain a trust To configure a validating resolver to use :rfc:`5011` to maintain a trust
anchor, configure the trust anchor using a ``trust-anchors`` statement and anchor, configure the trust anchor using a :any:`trust-anchors` statement and
the ``initial-key`` keyword. Information about this can be found in the ``initial-key`` keyword. Information about this can be found in
:ref:`trust-anchors`. the :any:`trust-anchors` statement description.
Authoritative Server Authoritative Server
^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^

View File

@ -36,7 +36,7 @@ Configuring Plugins
~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~
.. namedconf:statement:: plugin .. namedconf:statement:: plugin
A plugin is configured with the ``plugin`` statement in :iscman:`named.conf`: A plugin is configured with the :any:`plugin` statement in :iscman:`named.conf`:
:: ::
@ -48,7 +48,7 @@ A plugin is configured with the ``plugin`` statement in :iscman:`named.conf`:
In this example, file ``library.so`` is the plugin library. ``query`` In this example, file ``library.so`` is the plugin library. ``query``
indicates that this is a query plugin. indicates that this is a query plugin.
Multiple ``plugin`` statements can be specified, to load different Multiple :any:`plugin` statements can be specified, to load different
plugins or multiple instances of the same plugin. plugins or multiple instances of the same plugin.
``parameters`` are passed as an opaque string to the plugin's initialization ``parameters`` are passed as an opaque string to the plugin's initialization

File diff suppressed because it is too large Load Diff

View File

@ -300,7 +300,7 @@ transfers possible.
Administrators who edit or periodically regenerate a DNS RPZ rule set and Administrators who edit or periodically regenerate a DNS RPZ rule set and
whose primary name server uses BIND can enable the whose primary name server uses BIND can enable the
``ixfr-from-differences`` option, which tells the primary name server to :any:`ixfr-from-differences` option, which tells the primary name server to
calculate the differences between each new zone and the preceding version, calculate the differences between each new zone and the preceding version,
and to make these differences available as a stream of deltas for use in and to make these differences available as a stream of deltas for use in
incremental zone transfers to the subscribing name servers. This will look incremental zone transfers to the subscribing name servers. This will look
@ -750,7 +750,7 @@ To accomplish this using RPZ:
}; };
3. Enable use of the Response Policy Zone for all incoming queries 3. Enable use of the Response Policy Zone for all incoming queries
by adding the ``response-policy`` directive into the ``options {}`` by adding the :any:`response-policy` directive into the ``options {}``
section: section:
.. code-block:: c .. code-block:: c

View File

@ -22,9 +22,9 @@ Access Control Lists
-------------------- --------------------
Access Control Lists (ACLs) are address match lists that can be set up Access Control Lists (ACLs) are address match lists that can be set up
and nicknamed for future use in ``allow-notify``, ``allow-query``, and nicknamed for future use in :any:`allow-notify`, :any:`allow-query`,
``allow-query-on``, ``allow-recursion``, ``blackhole``, :any:`allow-query-on`, :any:`allow-recursion`, :any:`blackhole`,
``allow-transfer``, ``match-clients``, etc. :any:`allow-transfer`, :any:`match-clients`, etc.
ACLs give users finer control over who can access the ACLs give users finer control over who can access the
name server, without cluttering up configuration files with huge lists of name server, without cluttering up configuration files with huge lists of
@ -97,12 +97,12 @@ it is interpreted as the full name of the country. Similarly, if
standard two-letter state or province abbreviation; otherwise, it is treated as the standard two-letter state or province abbreviation; otherwise, it is treated as the
full name of the state or province. full name of the state or province.
The ``database`` field indicates which GeoIP database to search for a match. In The :any:`database` field indicates which GeoIP database to search for a match. In
most cases this is unnecessary, because most search fields can only be found in most cases this is unnecessary, because most search fields can only be found in
a single database. However, searches for ``continent`` or ``country`` can be a single database. However, searches for ``continent`` or ``country`` can be
answered from either the ``city`` or ``country`` databases, so for these search answered from either the ``city`` or ``country`` databases, so for these search
types, specifying a ``database`` forces the query to be answered from that types, specifying a :any:`database` forces the query to be answered from that
database and no other. If a ``database`` is not specified, these queries database and no other. If a :any:`database` is not specified, these queries
are first answered from the ``city`` database if it is installed, and then from the ``country`` are first answered from the ``city`` database if it is installed, and then from the ``country``
database if it is installed. Valid database names are ``country``, database if it is installed. Valid database names are ``country``,
``city``, ``asnum``, ``isp``, and ``domain``. ``city``, ``asnum``, ``isp``, and ``domain``.
@ -176,7 +176,7 @@ For a ``chroot`` environment to work properly in a particular
directory (for example, ``/var/named``), the directory (for example, ``/var/named``), the
environment must include everything BIND needs to run. From BIND's environment must include everything BIND needs to run. From BIND's
point of view, ``/var/named`` is the root of the filesystem; point of view, ``/var/named`` is the root of the filesystem;
the values of options like ``directory`` and ``pid-file`` the values of options like :any:`directory` and :any:`pid-file`
must be adjusted to account for this. must be adjusted to account for this.
Unlike with earlier versions of BIND, Unlike with earlier versions of BIND,
@ -209,10 +209,10 @@ Dynamic Update Security
Access to the dynamic update facility should be strictly limited. In Access to the dynamic update facility should be strictly limited. In
earlier versions of BIND, the only way to do this was based on the IP earlier versions of BIND, the only way to do this was based on the IP
address of the host requesting the update, by listing an IP address or address of the host requesting the update, by listing an IP address or
network prefix in the ``allow-update`` zone option. This method is network prefix in the :any:`allow-update` zone option. This method is
insecure, since the source address of the update UDP packet is easily insecure, since the source address of the update UDP packet is easily
forged. Also note that if the IP addresses allowed by the forged. Also note that if the IP addresses allowed by the
``allow-update`` option include the address of a secondary server which :any:`allow-update` option include the address of a secondary server which
performs forwarding of dynamic updates, the primary can be trivially performs forwarding of dynamic updates, the primary can be trivially
attacked by sending the update to the secondary, which forwards it to attacked by sending the update to the secondary, which forwards it to
the primary with its own source IP address - causing the primary to approve the primary with its own source IP address - causing the primary to approve
@ -220,9 +220,9 @@ it without question.
For these reasons, we strongly recommend that updates be For these reasons, we strongly recommend that updates be
cryptographically authenticated by means of transaction signatures cryptographically authenticated by means of transaction signatures
(TSIG). That is, the ``allow-update`` option should list only TSIG key (TSIG). That is, the :any:`allow-update` option should list only TSIG key
names, not IP addresses or network prefixes. Alternatively, the names, not IP addresses or network prefixes. Alternatively, the
``update-policy`` option can be used. :any:`update-policy` option can be used.
Some sites choose to keep all dynamically updated DNS data in a Some sites choose to keep all dynamically updated DNS data in a
subdomain and delegate that subdomain to a separate zone. This way, the subdomain and delegate that subdomain to a separate zone. This way, the

View File

@ -47,10 +47,10 @@ was implemented in BIND as of release 9.14.0.
As a result, some domains may be non-resolvable without manual As a result, some domains may be non-resolvable without manual
intervention. In these cases, resolution can be restored by adding intervention. In these cases, resolution can be restored by adding
``server`` clauses for the offending servers, or by specifying ``edns no`` or :namedconf:ref:`server` clauses for the offending servers, or by specifying ``edns no`` or
``send-cookie no``, depending on the specific noncompliance. ``send-cookie no``, depending on the specific noncompliance.
To determine which ``server`` clause to use, run the following commands To determine which :namedconf:ref:`server` clause to use, run the following commands
to send queries to the authoritative servers for the broken domain: to send queries to the authoritative servers for the broken domain:
:: ::
@ -85,11 +85,11 @@ to make :iscman:`named` prepare such a file, set the ``SSLKEYLOGFILE``
environment variable to either: environment variable to either:
- the string ``config`` (``SSLKEYLOGFILE=config``); this requires - the string ``config`` (``SSLKEYLOGFILE=config``); this requires
defining a ``logging`` :ref:`channel <logging_grammar>` which will defining a :any:`logging` :ref:`channel <logging_grammar>` which will
handle messages belonging to the ``sslkeylog`` category, handle messages belonging to the ``sslkeylog`` category,
- the path to the key file to write (``SSLKEYLOGFILE=/path/to/file``); - the path to the key file to write (``SSLKEYLOGFILE=/path/to/file``);
this is equivalent to the following ``logging`` :ref:`stanza this is equivalent to the following :any:`logging` :ref:`stanza
<logging_grammar>`: <logging_grammar>`:
:: ::
@ -105,7 +105,7 @@ environment variable to either:
.. note:: .. note::
When using ``SSLKEYLOGFILE=config``, augmenting the log channel When using ``SSLKEYLOGFILE=config``, augmenting the log channel
output using options like ``print-time`` or ``print-severity`` is output using options like :any:`print-time` or :any:`print-severity` is
strongly discouraged as it will likely make the key log file strongly discouraged as it will likely make the key log file
unusable. unusable.

View File

@ -96,14 +96,14 @@ Instructing the Server to Use a Key
A server sending a request to another server must be told whether to use A server sending a request to another server must be told whether to use
a key, and if so, which key to use. a key, and if so, which key to use.
For example, a key may be specified for each server in the ``primaries`` For example, a key may be specified for each server in the :any:`primaries`
statement in the definition of a secondary zone; in this case, all SOA QUERY statement in the definition of a secondary zone; in this case, all SOA QUERY
messages, NOTIFY messages, and zone transfer requests (AXFR or IXFR) messages, NOTIFY messages, and zone transfer requests (AXFR or IXFR)
are signed using the specified key. Keys may also be specified in are signed using the specified key. Keys may also be specified in
the ``also-notify`` statement of a primary or secondary zone, causing NOTIFY the :any:`also-notify` statement of a primary or secondary zone, causing NOTIFY
messages to be signed using the specified key. messages to be signed using the specified key.
Keys can also be specified in a ``server`` directive. Adding the Keys can also be specified in a :namedconf:ref:`server` directive. Adding the
following on ``host1``, if the IP address of ``host2`` is 10.1.2.3, would following on ``host1``, if the IP address of ``host2`` is 10.1.2.3, would
cause *all* requests from ``host1`` to ``host2``, including normal DNS cause *all* requests from ``host1`` to ``host2``, including normal DNS
queries, to be signed using the ``host1-host2.`` key: queries, to be signed using the ``host1-host2.`` key:
@ -114,7 +114,7 @@ queries, to be signed using the ``host1-host2.`` key:
keys { host1-host2. ;}; keys { host1-host2. ;};
}; };
Multiple keys may be present in the ``keys`` statement, but only the Multiple keys may be present in the :any:`keys` statement, but only the
first one is used. As this directive does not contain secrets, it can be first one is used. As this directive does not contain secrets, it can be
used in a world-readable file. used in a world-readable file.
@ -129,10 +129,10 @@ TSIG-Based Access Control
~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~
TSIG keys may be specified in ACL definitions and ACL directives such as TSIG keys may be specified in ACL definitions and ACL directives such as
``allow-query``, ``allow-transfer``, and ``allow-update``. The above key :any:`allow-query`, :any:`allow-transfer`, and :any:`allow-update`. The above key
would be denoted in an ACL element as ``key host1-host2.`` would be denoted in an ACL element as ``key host1-host2.``
Here is an example of an ``allow-update`` directive using a TSIG key: Here is an example of an :any:`allow-update` directive using a TSIG key:
:: ::
@ -143,7 +143,7 @@ from an address in ``localnets``, *and* if it is signed using the
``host1-host2.`` key. ``host1-host2.`` key.
See :ref:`dynamic_update_policies` for a See :ref:`dynamic_update_policies` for a
discussion of the more flexible ``update-policy`` statement. discussion of the more flexible :any:`update-policy` statement.
Errors Errors
~~~~~~ ~~~~~~

View File

@ -38,7 +38,7 @@ The components of a Resource Record are:
owner name owner name
The domain name where the RR is found. The domain name where the RR is found.
type RR type
An encoded 16-bit value that specifies the type of the resource record. An encoded 16-bit value that specifies the type of the resource record.
For a list of *types* of valid RRs, including those that have been obsoleted, please refer to For a list of *types* of valid RRs, including those that have been obsoleted, please refer to
`https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-4`. `https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-4`.

View File

@ -342,7 +342,7 @@ In contrast, for a small zone the difference is operationally negligible
and the drawbacks outweigh the benefits. and the drawbacks outweigh the benefits.
If NSEC3 opt-out is truly essential for a zone, the following If NSEC3 opt-out is truly essential for a zone, the following
configuration can be added to ``dnssec-policy``; for example, to create an configuration can be added to :any:`dnssec-policy`; for example, to create an
NSEC3 chain using the SHA-1 hash algorithm, with the opt-out flag, NSEC3 chain using the SHA-1 hash algorithm, with the opt-out flag,
no additional iterations, and no extra salt, use: no additional iterations, and no extra salt, use:
@ -883,7 +883,7 @@ roll over DNSKEYs to a new algorithm, e.g., from RSASHA1 (algorithm 5 or
7) to RSASHA256 (algorithm 8). The algorithm rollover steps must be followed with 7) to RSASHA256 (algorithm 8). The algorithm rollover steps must be followed with
care to avoid breaking DNSSEC validation. care to avoid breaking DNSSEC validation.
If you are managing DNSSEC by using the ``dnssec-policy`` configuration, If you are managing DNSSEC by using the :any:`dnssec-policy` configuration,
:iscman:`named` handles the rollover for you. Simply change the algorithm :iscman:`named` handles the rollover for you. Simply change the algorithm
for the relevant keys, and :iscman:`named` uses the new algorithm when the for the relevant keys, and :iscman:`named` uses the new algorithm when the
key is next rolled. It performs a smooth transition to the new key is next rolled. It performs a smooth transition to the new
@ -900,9 +900,9 @@ In any case, the first step is to put DNSKEYs in place using the new algorithm.
You must generate the ``K*`` files for the new algorithm and put You must generate the ``K*`` files for the new algorithm and put
them in the zone's key directory, where :iscman:`named` can access them. Take them in the zone's key directory, where :iscman:`named` can access them. Take
care to set appropriate ownership and permissions on the keys. If the care to set appropriate ownership and permissions on the keys. If the
``auto-dnssec`` zone option is set to ``maintain``, :iscman:`named` :any:`auto-dnssec` zone option is set to ``maintain``, :iscman:`named`
automatically signs the zone with the new keys, based on their timing automatically signs the zone with the new keys, based on their timing
metadata when the ``dnssec-loadkeys-interval`` elapses or when you issue the metadata when the :any:`dnssec-loadkeys-interval` elapses or when you issue the
:option:`rndc loadkeys` command. Otherwise, for primary zones, you can use :option:`rndc loadkeys` command. Otherwise, for primary zones, you can use
:iscman:`nsupdate` to add the new DNSKEYs to the zone; this causes :iscman:`named` :iscman:`nsupdate` to add the new DNSKEYs to the zone; this causes :iscman:`named`
to use them to sign the zone. For secondary zones, e.g., on a to use them to sign the zone. For secondary zones, e.g., on a
@ -924,7 +924,7 @@ so that the old DS records disappear from all resolver caches.
The next step is to remove the DNSKEYs using the old algorithm from your The next step is to remove the DNSKEYs using the old algorithm from your
zone. Again this can be accomplished using :iscman:`nsupdate` to delete the zone. Again this can be accomplished using :iscman:`nsupdate` to delete the
old DNSKEYs (for primary zones only) or by automatic key rollover when old DNSKEYs (for primary zones only) or by automatic key rollover when
``auto-dnssec`` is set to ``maintain``. You can cause the automatic key :any:`auto-dnssec` is set to ``maintain``. You can cause the automatic key
rollover to take place immediately by using the :iscman:`dnssec-settime` rollover to take place immediately by using the :iscman:`dnssec-settime`
utility to set the *Delete* date on all keys to any time in the past. utility to set the *Delete* date on all keys to any time in the past.
(See the :option:`dnssec-settime -D date/offset <dnssec-settime -D>` option.) (See the :option:`dnssec-settime -D date/offset <dnssec-settime -D>` option.)

View File

@ -149,7 +149,7 @@ Can I use the same key for multiple zones?
logins. First, categorize your zones: high-value zones (or zones that have logins. First, categorize your zones: high-value zones (or zones that have
specific key rollover requirements) get their own key pairs, while other, specific key rollover requirements) get their own key pairs, while other,
more "generic" zones can use a single key pair for easier management. Note that more "generic" zones can use a single key pair for easier management. Note that
at present (mid-2020), fully automatic signing (using the ``dnssec-policy`` at present (mid-2020), fully automatic signing (using the :any:`dnssec-policy`
clause in your :iscman:`named` configuration file) does not support reuse of keys clause in your :iscman:`named` configuration file) does not support reuse of keys
except when the same zone appears in multiple views (see next question). except when the same zone appears in multiple views (see next question).
To use the same key for multiple zones, sign your To use the same key for multiple zones, sign your
@ -157,7 +157,7 @@ Can I use the same key for multiple zones?
should point to the same key directory. should point to the same key directory.
How do I sign the different instances of a zone that appears in multiple views? How do I sign the different instances of a zone that appears in multiple views?
Add a ``dnssec-policy`` statement to each ``zone`` definition in the Add a :any:`dnssec-policy` statement to each :any:`zone` definition in the
configuration file. To avoid problems when a single computer accesses configuration file. To avoid problems when a single computer accesses
different instances of the zone while information is still in its cache different instances of the zone while information is still in its cache
(e.g., a laptop moving from your office to a customer site), you (e.g., a laptop moving from your office to a customer site), you
@ -167,6 +167,6 @@ How do I sign the different instances of a zone that appears in multiple views?
Will there be any problems if I change the DNSSEC policy for a zone? Will there be any problems if I change the DNSSEC policy for a zone?
If you are using fully automatic signing, no. Just change the parameters in the If you are using fully automatic signing, no. Just change the parameters in the
``dnssec-policy`` statement and reload the configuration file. :iscman:`named` :any:`dnssec-policy` statement and reload the configuration file. :iscman:`named`
makes a smooth transition to the new policy, ensuring that your zone makes a smooth transition to the new policy, ensuring that your zone
remains valid at all times. remains valid at all times.

View File

@ -53,7 +53,7 @@ on them.
Using the method described in Using the method described in
:ref:`easy_start_guide_for_authoritative_servers`, we just need to :ref:`easy_start_guide_for_authoritative_servers`, we just need to
add a ``dnssec-policy`` statement to the relevant zone clause. This is add a :any:`dnssec-policy` statement to the relevant zone clause. This is
what the :iscman:`named.conf` zone statement looks like on the primary server, 192.168.1.1: what the :iscman:`named.conf` zone statement looks like on the primary server, 192.168.1.1:
:: ::
@ -167,7 +167,7 @@ like this:
Rollovers Rollovers
~~~~~~~~~ ~~~~~~~~~
If you are signing your zone using a ``dnssec-policy`` statement, this If you are signing your zone using a :any:`dnssec-policy` statement, this
section is not really relevant to you. In the policy statement, you set how long section is not really relevant to you. In the policy statement, you set how long
you want your keys to be valid for, the time you want your keys to be valid for, the time
taken for information to propagate through your zone, the time it takes taken for information to propagate through your zone, the time it takes
@ -246,7 +246,7 @@ Make sure the successor keys are readable by :iscman:`named`.
:iscman:`named`'s logging messages indicate when the next :iscman:`named`'s logging messages indicate when the next
key checking event is scheduled to occur, the frequency of which can be key checking event is scheduled to occur, the frequency of which can be
controlled by ``dnssec-loadkeys-interval``. The log message looks like controlled by :any:`dnssec-loadkeys-interval`. The log message looks like
this: this:
:: ::
@ -323,7 +323,7 @@ the new ZSK is in effect:
These are all the manual tasks you need to perform for a ZSK rollover. These are all the manual tasks you need to perform for a ZSK rollover.
If you have followed the configuration examples in this guide of using If you have followed the configuration examples in this guide of using
``inline-signing`` and ``auto-dnssec``, everything else is automated for :any:`inline-signing` and :any:`auto-dnssec`, everything else is automated for
you by BIND. you by BIND.
Day of ZSK Rollover Day of ZSK Rollover
@ -503,7 +503,7 @@ one to keep the output small and hopefully clearer.
Make sure the successor keys are readable by :iscman:`named`. Make sure the successor keys are readable by :iscman:`named`.
The ``syslog`` message indicates when the next key The :any:`syslog` message indicates when the next key
checking event is. The log message looks like this: checking event is. The log message looks like this:
:: ::
@ -793,7 +793,7 @@ according to the steps described in
NSEC3 will fall back to treating the zone as unsecured (rather than NSEC3 will fall back to treating the zone as unsecured (rather than
"bogus"), as described in Section 2 of :rfc:`5155`. "bogus"), as described in Section 2 of :rfc:`5155`.
To enable NSEC3, update your ``dnssec-policy`` and add the desired NSEC3 To enable NSEC3, update your :any:`dnssec-policy` and add the desired NSEC3
parameters. The example below enables NSEC3 for zones with the ``standard`` parameters. The example below enables NSEC3 for zones with the ``standard``
DNSSEC policy, using 0 additional iterations, no opt-out, and a zero-length salt: DNSSEC policy, using 0 additional iterations, no opt-out, and a zero-length salt:
@ -836,8 +836,8 @@ parameters, please see :ref:`advanced_discussions_nsec3param`.
Migrating from NSEC3 to NSEC Migrating from NSEC3 to NSEC
^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Migrating from NSEC3 back to NSEC is easy; just remove the ``nsec3param`` Migrating from NSEC3 back to NSEC is easy; just remove the :any:`nsec3param`
configuration option from your ``dnssec-policy`` and reconfigure the name configuration option from your :any:`dnssec-policy` and reconfigure the name
server. You can tell that it worked if you see these messages in the log: server. You can tell that it worked if you see these messages in the log:
:: ::
@ -997,7 +997,7 @@ Here is what :iscman:`named.conf` looks like when it is signed:
dnssec-policy "default"; dnssec-policy "default";
}; };
To indicate the reversion to unsigned, change the ``dnssec-policy`` line: To indicate the reversion to unsigned, change the :any:`dnssec-policy` line:
.. code-block:: none .. code-block:: none
:emphasize-lines: 4 :emphasize-lines: 4
@ -1075,6 +1075,6 @@ After a while, the zone is reverted back to the traditional, insecure DNS
format. This can be verified by checking that all DNSKEY and RRSIG records have been format. This can be verified by checking that all DNSKEY and RRSIG records have been
removed from the zone. removed from the zone.
The ``dnssec-policy`` line can then be removed from :iscman:`named.conf` and The :any:`dnssec-policy` line can then be removed from :iscman:`named.conf` and
the zone reloaded. The zone will no longer be subject to any DNSSEC the zone reloaded. The zone will no longer be subject to any DNSSEC
maintenance. maintenance.

View File

@ -53,7 +53,7 @@ Enabling Automated DNSSEC Zone Maintenance and Key Generation
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
To sign a zone, add the following statement to its To sign a zone, add the following statement to its
``zone`` clause in the BIND 9 configuration file: :any:`zone` clause in the BIND 9 configuration file:
:: ::
@ -69,7 +69,7 @@ To sign a zone, add the following statement to its
... ...
}; };
The ``dnssec-policy`` statement causes the zone to be signed and turns The :any:`dnssec-policy` statement causes the zone to be signed and turns
on automatic maintenance for the zone. This includes re-signing the zone on automatic maintenance for the zone. This includes re-signing the zone
as signatures expire and replacing keys on a periodic basis. The value as signatures expire and replacing keys on a periodic basis. The value
``default`` selects the default policy, which contains values suitable ``default`` selects the default policy, which contains values suitable
@ -86,13 +86,13 @@ reload the configuration file by running :option:`rndc reconfig`:
And that's it - BIND signs your zone. And that's it - BIND signs your zone.
At this point, before you go away and merrily add ``dnssec-policy`` At this point, before you go away and merrily add :any:`dnssec-policy`
statements to all your zones, we should mention that, like a number of statements to all your zones, we should mention that, like a number of
other BIND configuration options, its scope depends on where it is placed. In other BIND configuration options, its scope depends on where it is placed. In
the example above, we placed it in a ``zone`` clause, so it applied only the example above, we placed it in a :any:`zone` clause, so it applied only
to the zone in question. If we had placed it in a ``view`` clause, it to the zone in question. If we had placed it in a :any:`view` clause, it
would have applied to all zones in the view; and if we had placed it in would have applied to all zones in the view; and if we had placed it in
the ``options`` clause, it would have applied to all zones served by the :namedconf:ref:`options` clause, it would have applied to all zones served by
this instance of BIND. this instance of BIND.
.. _signing_verification: .. _signing_verification:
@ -143,8 +143,8 @@ simulate what a validating resolver will check, by telling
:iscman:`delv` to use a specific trust anchor. :iscman:`delv` to use a specific trust anchor.
First, we need to make a copy of the key created by BIND. This First, we need to make a copy of the key created by BIND. This
is in the directory you set with the ``directory`` statement in is in the directory you set with the :any:`directory` statement in
your configuration file's ``options`` clause, and is named something your configuration file's :namedconf:ref:`options` clause, and is named something
like ``Kexample.com.+013.10376.key``: like ``Kexample.com.+013.10376.key``:
:: ::
@ -161,7 +161,7 @@ and comments omitted):
... ...
example.com. 3600 IN DNSKEY 257 3 13 6saiq99qDB...dqp+o0dw== example.com. 3600 IN DNSKEY 257 3 13 6saiq99qDB...dqp+o0dw==
We want to edit the copy to be in the ``trust-anchors`` format, so that We want to edit the copy to be in the :any:`trust-anchors` format, so that
it looks like this: it looks like this:
:: ::
@ -637,7 +637,7 @@ That is quite complex, and it is all handled in BIND 9 with the single
setting up our own DNSSEC policy with customized parameters. However, in many setting up our own DNSSEC policy with customized parameters. However, in many
cases the defaults are adequate. cases the defaults are adequate.
At the time of this writing (mid-2020), ``dnssec-policy`` is still a At the time of this writing (mid-2020), :any:`dnssec-policy` is still a
relatively new feature in BIND. Although it is the preferred relatively new feature in BIND. Although it is the preferred
way to run DNSSEC in a zone, it is not yet able to automatically implement way to run DNSSEC in a zone, it is not yet able to automatically implement
all the features that are available all the features that are available
@ -729,7 +729,7 @@ you are not already familiar with DNSSEC, it may be worth reading that chapter
first. first.
Setting up your own DNSSEC policy means that you must include a Setting up your own DNSSEC policy means that you must include a
``dnssec-policy`` clause in the zone file. This sets values for the :any:`dnssec-policy` clause in the zone file. This sets values for the
various parameters that affect the signing of zones and the rolling of various parameters that affect the signing of zones and the rolling of
keys. The following is an example of such a clause: keys. The following is an example of such a clause:
@ -759,7 +759,7 @@ The policy has multiple parts:
done by giving each policy a name, such as ``standard`` in the above done by giving each policy a name, such as ``standard`` in the above
example. example.
- The ``keys`` clause lists all keys that should be in the zone, along - The :any:`keys` clause lists all keys that should be in the zone, along
with their associated parameters. In this example, we are using the with their associated parameters. In this example, we are using the
conventional KSK/ZSK split, with the KSK changed every year and the conventional KSK/ZSK split, with the KSK changed every year and the
ZSK changed every two months (the ``default`` DNSSEC policy sets a ZSK changed every two months (the ``default`` DNSSEC policy sets a
@ -787,15 +787,15 @@ The policy has multiple parts:
- The parameters ending in ``-safety`` are there to give - The parameters ending in ``-safety`` are there to give
you a bit of leeway in case a key roll doesn't go to plan. When you a bit of leeway in case a key roll doesn't go to plan. When
introduced into the zone, the ``publish-safety`` time is the amount introduced into the zone, the :any:`publish-safety` time is the amount
of additional time, over and above that calculated from the other of additional time, over and above that calculated from the other
parameters, during which the new key is in the zone but before BIND starts parameters, during which the new key is in the zone but before BIND starts
to sign records with it. Similarly, the ``retire-safety`` is the to sign records with it. Similarly, the :any:`retire-safety` is the
amount of additional time, over and above that calculated from the amount of additional time, over and above that calculated from the
other parameters, during which the old key is retained in the zone before other parameters, during which the old key is retained in the zone before
being removed. being removed.
- Finally, the ``purge-keys`` option allows you to clean up key files - Finally, the :any:`purge-keys` option allows you to clean up key files
automatically after a period of time. If a key has been removed from the automatically after a period of time. If a key has been removed from the
zone, this option will determine how long its key files will be retained zone, this option will determine how long its key files will be retained
on disk. on disk.
@ -813,10 +813,10 @@ during the process.
Having defined a new policy called "standard", we now need to tell Having defined a new policy called "standard", we now need to tell
:iscman:`named` to use it. We do this by adding a ``dnssec-policy standard;`` :iscman:`named` to use it. We do this by adding a ``dnssec-policy standard;``
statement to the configuration file. Like many other configuration statement to the configuration file. Like many other configuration
statements, it can be placed in the ``options`` statement (thus applying statements, it can be placed in the :namedconf:ref:`options` statement (thus applying
to all zones on the server), a ``view`` statement (applying to all zones to all zones on the server), a :any:`view` statement (applying to all zones
in the view), or a ``zone`` statement (applying only to that zone). In in the view), or a :any:`zone` statement (applying only to that zone). In
this example, we'll add it to the ``zone`` statement: this example, we'll add it to the :any:`zone` statement:
:: ::
@ -892,7 +892,7 @@ CDS and a CDNSKEY record for the key in question to the apex of the
zone. If your parent zone supports polling for CDS/CDNSKEY records, they zone. If your parent zone supports polling for CDS/CDNSKEY records, they
are uploaded and the DS record published in the parent - at least ideally. are uploaded and the DS record published in the parent - at least ideally.
If BIND is configured with ``parental-agents``, it will check for the DS If BIND is configured with :any:`parental-agents`, it will check for the DS
presence. Let's look at the following configuration excerpt: presence. Let's look at the following configuration excerpt:
:: ::
@ -943,10 +943,10 @@ to tell :iscman:`named` that the DS record has been published.
Alternate Ways of Signing a Zone Alternate Ways of Signing a Zone
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Although use of the automatic ``dnssec-policy`` is the preferred way to sign zones in Although use of the automatic :any:`dnssec-policy` is the preferred way to sign zones in
BIND, there are occasions where a more manual approach may be BIND, there are occasions where a more manual approach may be
needed, such as when external hardware is used to needed, such as when external hardware is used to
generate and sign the zone. ``dnssec-policy`` does not currently support generate and sign the zone. :any:`dnssec-policy` does not currently support
the use of external hardware, so if your security policy requires it, you the use of external hardware, so if your security policy requires it, you
need to use one of the methods described here. need to use one of the methods described here.
@ -987,15 +987,15 @@ Manual
Semi-Automatic Semi-Automatic
The first step in DNSSEC automation came with BIND 9.7, when the The first step in DNSSEC automation came with BIND 9.7, when the
``auto-dnssec`` option was added. This causes :iscman:`named` to :any:`auto-dnssec` option was added. This causes :iscman:`named` to
periodically search the directory holding the key files (see periodically search the directory holding the key files (see
:ref:`generate_keys` for a description) and to :ref:`generate_keys` for a description) and to
use the information in them to both add and remove keys and sign the use the information in them to both add and remove keys and sign the
zone. zone.
Use of ``auto-dnssec`` alone requires that the zone be dynamic, Use of :any:`auto-dnssec` alone requires that the zone be dynamic,
something not suitable for a number of situations, so BIND 9.9 added the something not suitable for a number of situations, so BIND 9.9 added the
``inline-signing`` option. With this, :iscman:`named` essentially keeps the :any:`inline-signing` option. With this, :iscman:`named` essentially keeps the
signed and unsigned copies of the zone separate. The signed zone is signed and unsigned copies of the zone separate. The signed zone is
created from the unsigned one using the key information; when the created from the unsigned one using the key information; when the
unsigned zone is updated and the zone reloaded, :iscman:`named` detects the unsigned zone is updated and the zone reloaded, :iscman:`named` detects the
@ -1026,11 +1026,11 @@ Fully Automatic with ``dnssec-keymgr``
determine when to add and remove keys, and when to sign with them. determine when to add and remove keys, and when to sign with them.
In BIND 9.17.0 and later, this method of handling DNSSEC In BIND 9.17.0 and later, this method of handling DNSSEC
policies has been replaced by the ``dnssec-policy`` statement in the policies has been replaced by the :any:`dnssec-policy` statement in the
configuration file. configuration file.
Fully Automatic with ``dnssec-policy`` Fully Automatic with :any:`dnssec-policy`
Introduced a BIND 9.16, ``dnssec-policy`` replaces ``dnssec-keymgr`` from BIND Introduced a BIND 9.16, :any:`dnssec-policy` replaces ``dnssec-keymgr`` from BIND
9.17 onwards and avoids the need to run a separate program. It also 9.17 onwards and avoids the need to run a separate program. It also
handles the creation of keys if a zone is added (``dnssec-keymgr`` handles the creation of keys if a zone is added (``dnssec-keymgr``
requires an initial key) and deletes old key files as they are requires an initial key) and deletes old key files as they are
@ -1040,7 +1040,7 @@ Fully Automatic with ``dnssec-policy``
We now look at some of these methods in more detail. We cover We now look at some of these methods in more detail. We cover
semi-automatic signing first, as that contains a lot of useful semi-automatic signing first, as that contains a lot of useful
information about keys and key timings. After that, we information about keys and key timings. After that, we
touch on fully automatic signing with ``dnssec-policy``. Since this has touch on fully automatic signing with :any:`dnssec-policy`. Since this has
already been described in already been described in
:ref:`easy_start_guide_for_authoritative_servers`, we will just :ref:`easy_start_guide_for_authoritative_servers`, we will just
mention a few additional points. Finally, we briefly describe manual signing. mention a few additional points. Finally, we briefly describe manual signing.
@ -1051,15 +1051,15 @@ Semi-Automatic Signing
^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^
As noted above, the term semi-automatic signing has been used in this As noted above, the term semi-automatic signing has been used in this
document to indicate the mode of signing enabled by the ``auto-dnssec`` document to indicate the mode of signing enabled by the :any:`auto-dnssec`
and ``inline-signing`` keywords. :iscman:`named` signs the zone without any and :any:`inline-signing` keywords. :iscman:`named` signs the zone without any
manual intervention, based purely on the timing information in the manual intervention, based purely on the timing information in the
DNSSEC key files. The files, however, must be created manually. DNSSEC key files. The files, however, must be created manually.
By appropriately setting the key parameters and the timing information By appropriately setting the key parameters and the timing information
in the key files, you can implement any DNSSEC policy you want for your in the key files, you can implement any DNSSEC policy you want for your
zones. But why manipulate the key information yourself rather than rely zones. But why manipulate the key information yourself rather than rely
on ``dnssec-policy`` to do it for you? The answer on :any:`dnssec-policy` to do it for you? The answer
is that semi-automatic signing allows you to do things that, at the time of this writing is that semi-automatic signing allows you to do things that, at the time of this writing
(mid-2020), are currently not possible with one of the key managers: for (mid-2020), are currently not possible with one of the key managers: for
example, the ability to use an HSM to store keys, or the ability to use example, the ability to use an HSM to store keys, or the ability to use
@ -1347,19 +1347,19 @@ before a rollover depends on your organization's security policy.
.. _advanced_discussions_automatic_dnssec-policy: .. _advanced_discussions_automatic_dnssec-policy:
Fully Automatic Signing With ``dnssec-policy`` Fully Automatic Signing With :any:`dnssec-policy`
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Since BIND 9.16, key management is fully integrated ingo :iscman:`named`. Since BIND 9.16, key management is fully integrated ingo :iscman:`named`.
Managing the signing process and rolling of these keys has been described in Managing the signing process and rolling of these keys has been described in
:ref:`easy_start_guide_for_authoritative_servers` and is not :ref:`easy_start_guide_for_authoritative_servers` and is not
repeated here. A few points are worth noting, though: repeated here. A few points are worth noting, though:
- The ``dnssec-policy`` statement in the :iscman:`named` configuration file - The :any:`dnssec-policy` statement in the :iscman:`named` configuration file
describes all aspects of the DNSSEC policy, including the signing. describes all aspects of the DNSSEC policy, including the signing.
- When using ``dnssec-policy``, there is no need to set the - When using :any:`dnssec-policy`, there is no need to set the
``auto-dnssec`` and ``inline-signing`` options for a zone. The zone's :any:`auto-dnssec` and :any:`inline-signing` options for a zone. The zone's
``policy`` statement implicitly does this. ``policy`` statement implicitly does this.
.. _advanced_discussions_manual_key_management_and_signing: .. _advanced_discussions_manual_key_management_and_signing:

View File

@ -148,7 +148,7 @@ DNSSEC errors.
Basic Logging Basic Logging
~~~~~~~~~~~~~ ~~~~~~~~~~~~~
DNSSEC validation error messages show up in ``syslog`` as a DNSSEC validation error messages show up in :any:`syslog` as a
query error by default. Here is an example of what it may look like: query error by default. Here is an example of what it may look like:
:: ::
@ -173,11 +173,11 @@ logging is thus not recommended for production servers.
With that said, sometimes it may become necessary to temporarily enable With that said, sometimes it may become necessary to temporarily enable
BIND debug logging to see more details of how and whether DNSSEC is BIND debug logging to see more details of how and whether DNSSEC is
validating. DNSSEC-related messages are not recorded in ``syslog`` by default, validating. DNSSEC-related messages are not recorded in :any:`syslog` by default,
even if query log is enabled; only DNSSEC errors show up in ``syslog``. even if query log is enabled; only DNSSEC errors show up in :any:`syslog`.
The example below shows how to enable debug level 3 (to see full DNSSEC The example below shows how to enable debug level 3 (to see full DNSSEC
validation messages) in BIND 9 and have it sent to ``syslog``: validation messages) in BIND 9 and have it sent to :any:`syslog`:
:: ::
@ -205,7 +205,7 @@ The example below shows how to log DNSSEC messages to their own file
After turning on debug logging and restarting BIND, a large After turning on debug logging and restarting BIND, a large
number of log messages appear in number of log messages appear in
``syslog``. The example below shows the log messages as a result of :any:`syslog`. The example below shows the log messages as a result of
successfully looking up and validating the domain name ``ftp.isc.org``. successfully looking up and validating the domain name ``ftp.isc.org``.
:: ::
@ -279,7 +279,7 @@ Below is an example attempting to resolve the A record for a test domain
name ``www.example.net``. From the user's perspective, as described in name ``www.example.net``. From the user's perspective, as described in
:ref:`how_do_i_know_validation_problem`, only a SERVFAIL :ref:`how_do_i_know_validation_problem`, only a SERVFAIL
message is returned. On the validating resolver, we see the message is returned. On the validating resolver, we see the
following messages in ``syslog``: following messages in :any:`syslog`:
:: ::
@ -404,7 +404,7 @@ Unable to Load Keys
^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^
This is a simple yet common issue. If the key files are present but This is a simple yet common issue. If the key files are present but
unreadable by :iscman:`named` for some reason, the ``syslog`` returns clear error unreadable by :iscman:`named` for some reason, the :any:`syslog` returns clear error
messages, as shown below: messages, as shown below:
:: ::
@ -415,7 +415,7 @@ messages, as shown below:
named[32447]: zone example.com/IN (signed): next key event: 27-Nov-2014 20:04:36.521 named[32447]: zone example.com/IN (signed): next key event: 27-Nov-2014 20:04:36.521
However, if no keys are found, the error is not as obvious. Below shows However, if no keys are found, the error is not as obvious. Below shows
the ``syslog`` messages after executing ``rndc the :any:`syslog` messages after executing ``rndc
reload`` with the key files missing from the key directory: reload`` with the key files missing from the key directory:
:: ::
@ -463,7 +463,7 @@ Invalid Trust Anchors
In most cases, you never need to explicitly configure trust In most cases, you never need to explicitly configure trust
anchors. :iscman:`named` supplies the current root trust anchor and, anchors. :iscman:`named` supplies the current root trust anchor and,
with the default setting of ``dnssec-validation``, updates it on the with the default setting of :any:`dnssec-validation`, updates it on the
infrequent occasions when it is changed. infrequent occasions when it is changed.
However, in some circumstances you may need to explicitly configure However, in some circumstances you may need to explicitly configure

View File

@ -40,7 +40,7 @@ described in :ref:`how_to_test_recursive_server`.
In earlier versions of BIND, including 9.11-ESV, DNSSEC In earlier versions of BIND, including 9.11-ESV, DNSSEC
validation must be explicitly enabled. To do this, you only need to validation must be explicitly enabled. To do this, you only need to
add one line to the ``options`` section of your configuration file: add one line to the :namedconf:ref:`options` section of your configuration file:
:: ::
@ -280,7 +280,7 @@ name fails:
;; MSG SIZE rcvd: 78 ;; MSG SIZE rcvd: 78
On the other hand, if DNSSEC validation is disabled (by adding the On the other hand, if DNSSEC validation is disabled (by adding the
statement ``dnssec-validation no;`` to the ``options`` clause in the statement ``dnssec-validation no;`` to the :namedconf:ref:`options` clause in the
configuration file), the lookup succeeds: configuration file), the lookup succeeds:
:: ::
@ -372,8 +372,8 @@ take a closer look at what DNSSEC validation actually does, and some other optio
.. _dnssec_validation_explained: .. _dnssec_validation_explained:
``dnssec-validation`` :any:`dnssec-validation`
^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^
:: ::
@ -382,9 +382,9 @@ take a closer look at what DNSSEC validation actually does, and some other optio
}; };
This “auto” line enables automatic DNSSEC trust anchor configuration This “auto” line enables automatic DNSSEC trust anchor configuration
using the ``managed-keys`` feature. In this case, no manual key using the :any:`managed-keys` feature. In this case, no manual key
configuration is needed. There are three possible choices for the configuration is needed. There are three possible choices for the
``dnssec-validation`` option: :any:`dnssec-validation` option:
- *yes*: DNSSEC validation is enabled, but a trust anchor must be - *yes*: DNSSEC validation is enabled, but a trust anchor must be
manually configured. No validation actually takes place until manually configured. No validation actually takes place until
@ -396,11 +396,11 @@ configuration is needed. There are three possible choices for the
- *auto*: DNSSEC validation is enabled, and a default trust anchor - *auto*: DNSSEC validation is enabled, and a default trust anchor
(included as part of BIND 9) for the DNS root zone is used. This is the (included as part of BIND 9) for the DNS root zone is used. This is the
default; BIND automatically does this if there is no default; BIND automatically does this if there is no
``dnssec-validation`` line in the configuration file. :any:`dnssec-validation` line in the configuration file.
Let's discuss the difference between *yes* and *auto*. If set to Let's discuss the difference between *yes* and *auto*. If set to
*yes*, the trust anchor must be manually defined and maintained *yes*, the trust anchor must be manually defined and maintained
using the ``trust-anchors`` statement (with either the ``static-key`` or using the :any:`trust-anchors` statement (with either the ``static-key`` or
``static-ds`` modifier) in the configuration file; if set to ``static-ds`` modifier) in the configuration file; if set to
*auto* (the default, and as shown in the example), then no further *auto* (the default, and as shown in the example), then no further
action should be required as BIND includes a copy [#]_ of the root key. action should be required as BIND includes a copy [#]_ of the root key.
@ -565,7 +565,7 @@ the client.
.. [#] .. [#]
BIND technically includes two copies of the root key: one is in BIND technically includes two copies of the root key: one is in
``bind.keys.h`` and is built into the executable, and one is in ``bind.keys.h`` and is built into the executable, and one is in
``bind.keys`` as a ``trust-anchors`` statement. The two copies of the ``bind.keys`` as a :any:`trust-anchors` statement. The two copies of the
key are identical. key are identical.
.. _trust_anchors_description: .. _trust_anchors_description:
@ -649,7 +649,7 @@ anchor) configured. How did it get here, and how do we maintain it?
If you followed the recommendation in If you followed the recommendation in
:ref:`easy_start_guide_for_recursive_servers`, by setting :ref:`easy_start_guide_for_recursive_servers`, by setting
``dnssec-validation`` to *auto*, there is nothing left to do. :any:`dnssec-validation` to *auto*, there is nothing left to do.
BIND already includes a copy of the root key (in the file BIND already includes a copy of the root key (in the file
``bind.keys``), and automatically updates it when the root key ``bind.keys``), and automatically updates it when the root key
changes. [#]_ It looks something like this: changes. [#]_ It looks something like this:
@ -668,7 +668,7 @@ changes. [#]_ It looks something like this:
}; };
You can, of course, decide to manage this key manually yourself. You can, of course, decide to manage this key manually yourself.
First, you need to make sure that ``dnssec-validation`` is set First, you need to make sure that :any:`dnssec-validation` is set
to *yes* rather than *auto*: to *yes* rather than *auto*:
:: ::
@ -679,7 +679,7 @@ to *yes* rather than *auto*:
Then, download the root key manually from a trustworthy source, such as Then, download the root key manually from a trustworthy source, such as
`<https://www.isc.org/bind-keys>`__. Finally, take the root key you `<https://www.isc.org/bind-keys>`__. Finally, take the root key you
manually downloaded and put it into a ``trust-anchors`` statement as manually downloaded and put it into a :any:`trust-anchors` statement as
shown below: shown below:
:: ::
@ -695,7 +695,7 @@ shown below:
R1AkUTV74bU="; R1AkUTV74bU=";
}; };
While this ``trust-anchors`` statement and the one in the ``bind.keys`` While this :any:`trust-anchors` statement and the one in the ``bind.keys``
file appear similar, the definition of the key in ``bind.keys`` has the file appear similar, the definition of the key in ``bind.keys`` has the
``initial-key`` modifier, whereas in the statement in the configuration ``initial-key`` modifier, whereas in the statement in the configuration
file, that is replaced by ``static-key``. There is an important file, that is replaced by ``static-key``. There is an important

View File

@ -284,7 +284,7 @@ When using GSS\-TSIG, this command specifies the use of \fBrealm_name\fP rather
in \fBkrb5.conf\fP\&. If no realm is specified, the saved realm is in \fBkrb5.conf\fP\&. If no realm is specified, the saved realm is
cleared. cleared.
.TP .TP
.B \fBcheck\-names [yes_or_no]\fP .B \fBcheck\-names [boolean]\fP
This command turns on or off check\-names processing on records to be added. This command turns on or off check\-names processing on records to be added.
Check\-names has no effect on prerequisites or records to be deleted. Check\-names has no effect on prerequisites or records to be deleted.
By default check\-names processing is on. If check\-names processing By default check\-names processing is on. If check\-names processing

View File

@ -32,7 +32,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
rndc \- name server control utility rndc \- name server control utility
.SH SYNOPSIS .SH SYNOPSIS
.sp .sp
\fBrndc\fP [\fB\-b\fP source\-address] [\fB\-c\fP config\-file] [\fB\-k\fP key\-file] [\fB\-s\fP server] [\fB\-p\fP port] [\fB\-q\fP] [\fB\-r\fP] [\fB\-V\fP] [\fB\-y\fP key_id] [[\fB\-4\fP] | [\fB\-6\fP]] {command} \fBrndc\fP [\fB\-b\fP source\-address] [\fB\-c\fP config\-file] [\fB\-k\fP key\-file] [\fB\-s\fP server] [\fB\-p\fP port] [\fB\-q\fP] [\fB\-r\fP] [\fB\-V\fP] [\fB\-y\fP server_key] [[\fB\-4\fP] | [\fB\-6\fP]] {command}
.SH DESCRIPTION .SH DESCRIPTION
.sp .sp
\fBrndc\fP controls the operation of a name server. If \fBrndc\fP is \fBrndc\fP controls the operation of a name server. If \fBrndc\fP is
@ -47,7 +47,7 @@ algorithms are HMAC\-MD5 (for compatibility), HMAC\-SHA1, HMAC\-SHA224,
HMAC\-SHA256 (default), HMAC\-SHA384, and HMAC\-SHA512. They use a shared HMAC\-SHA256 (default), HMAC\-SHA384, and HMAC\-SHA512. They use a shared
secret on each end of the connection, which provides TSIG\-style secret on each end of the connection, which provides TSIG\-style
authentication for the command request and the name server\(aqs response. authentication for the command request and the name server\(aqs response.
All commands sent over the channel must be signed by a key_id known to All commands sent over the channel must be signed by a server_key known to
the server. the server.
.sp .sp
\fBrndc\fP reads a configuration file to determine how to contact the name \fBrndc\fP reads a configuration file to determine how to contact the name
@ -119,9 +119,9 @@ This option enables verbose logging.
.UNINDENT .UNINDENT
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B \-y key_id .B \-y server_key
This option indicates use of the key \fBkey_id\fP from the configuration file. For control message validation to succeed, \fBkey_id\fP must be known This option indicates use of the key \fBserver_key\fP from the configuration file. For control message validation to succeed, \fBserver_key\fP must be known
by \fI\%named\fP with the same algorithm and secret string. If no \fBkey_id\fP is specified, by \fI\%named\fP with the same algorithm and secret string. If no \fBserver_key\fP is specified,
\fBrndc\fP first looks for a key clause in the server statement of \fBrndc\fP first looks for a key clause in the server statement of
the server being used, or if no server statement is present for that the server being used, or if no server statement is present for that
host, then in the default\-key clause of the options statement. Note that host, then in the default\-key clause of the options statement. Note that
@ -706,7 +706,7 @@ zone. To specify a redirect zone, use the special zone name
would specify a zone called "\-redirect".) would specify a zone called "\-redirect".)
.SH LIMITATIONS .SH LIMITATIONS
.sp .sp
There is currently no way to provide the shared secret for a \fBkey_id\fP There is currently no way to provide the shared secret for a \fBserver_key\fP
without using the configuration file. without using the configuration file.
.sp .sp
Several error messages could be clearer. Several error messages could be clearer.

View File

@ -29,11 +29,11 @@ New Features
- Catalog Zones schema version 2, as described in the - Catalog Zones schema version 2, as described in the
"DNS Catalog Zones" IETF draft version 5 document, is now supported by "DNS Catalog Zones" IETF draft version 5 document, is now supported by
:iscman:`named`. All of the previously supported BIND-specific catalog :iscman:`named`. All of the previously supported BIND-specific catalog
zone custom properties (``primaries``, ``allow-query``, and zone custom properties (:any:`primaries`, :any:`allow-query`, and
``allow-transfer``), as well as the new Change of Ownership (``coo``) :any:`allow-transfer`), as well as the new Change of Ownership (``coo``)
property, are now implemented. Schema version 1 is still supported, property, are now implemented. Schema version 1 is still supported,
with some additional validation rules applied from schema version 2: with some additional validation rules applied from schema version 2:
for example, the ``version`` property is mandatory, and a member zone for example, the :any:`version` property is mandatory, and a member zone
PTR RRset must not contain more than one record. In the event of a PTR RRset must not contain more than one record. In the event of a
validation error, a corresponding error message is logged to help with validation error, a corresponding error message is logged to help with
diagnosing the problem. :gl:`#3221` :gl:`#3222` :gl:`#3223` diagnosing the problem. :gl:`#3221` :gl:`#3222` :gl:`#3223`

View File

@ -15,14 +15,14 @@ Notes for BIND 9.19.2
Feature Changes Feature Changes
~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~
- New ``dnssec-policy`` configuration checks have been added to detect - New :any:`dnssec-policy` configuration checks have been added to detect
unusual policies, such as missing KSK and/or ZSK and too-short key unusual policies, such as missing KSK and/or ZSK and too-short key
lifetimes and re-sign periods. :gl:`#1611` lifetimes and re-sign periods. :gl:`#1611`
Bug Fixes Bug Fixes
~~~~~~~~~ ~~~~~~~~~
- The ``fetches-per-server`` quota is designed to adjust itself downward - The :any:`fetches-per-server` quota is designed to adjust itself downward
automatically when an authoritative server times out too frequently. automatically when an authoritative server times out too frequently.
Due to a coding error, that adjustment was applied incorrectly, so Due to a coding error, that adjustment was applied incorrectly, so
that the quota for a congested server was always set to 1. This has that the quota for a congested server was always set to 1. This has
@ -31,7 +31,7 @@ Bug Fixes
- DNSSEC-signed catalog zones were not being processed correctly. This - DNSSEC-signed catalog zones were not being processed correctly. This
has been fixed. :gl:`#3380` has been fixed. :gl:`#3380`
- Key files were updated every time the ``dnssec-policy`` key manager - Key files were updated every time the :any:`dnssec-policy` key manager
ran, whether the metadata had changed or not. :iscman:`named` now ran, whether the metadata had changed or not. :iscman:`named` now
checks whether changes were applied before writing out the key files. checks whether changes were applied before writing out the key files.
:gl:`#3302` :gl:`#3302`