Compare commits
20 Commits
ondrej-dis
...
v9.18.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8db45afa1a | ||
|
|
cbf9916216 | ||
|
|
006923ec16 | ||
|
|
4b0ac74137 | ||
|
|
caa2be37b4 | ||
|
|
f8850e1188 | ||
|
|
7eb0428d1f | ||
|
|
164272ae77 | ||
|
|
6908b46011 | ||
|
|
0841a12742 | ||
|
|
e8a29b0b7f | ||
|
|
7ac8fb317d | ||
|
|
a8a1fbf421 | ||
|
|
2e7a13515f | ||
|
|
626affbbc2 | ||
|
|
d5b82c9877 | ||
|
|
627ac5a88a | ||
|
|
aebb209461 | ||
|
|
7dc14372f2 | ||
|
|
6d279ad49a |
2
CHANGES
2
CHANGES
@@ -1,3 +1,5 @@
|
||||
--- 9.18.0 released ---
|
||||
|
||||
5796. [bug] Ignore the invalid (<= 0) values returned
|
||||
by the sysconf() check for the L1 cache line
|
||||
size. [GL #3108]
|
||||
|
||||
119
PLATFORMS.md
119
PLATFORMS.md
@@ -1,119 +0,0 @@
|
||||
<!--
|
||||
Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
|
||||
SPDX-License-Identifier: MPL-2.0
|
||||
|
||||
This Source Code Form is subject to the terms of the Mozilla Public
|
||||
License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
|
||||
See the COPYRIGHT file distributed with this work for additional
|
||||
information regarding copyright ownership.
|
||||
-->
|
||||
## Supported platforms
|
||||
|
||||
In general, this version of BIND will build and run on any POSIX-compliant
|
||||
system with a C11-compliant C compiler, BSD-style sockets with RFC-compliant
|
||||
IPv6 support, and POSIX-compliant threads, plus the following mandatory
|
||||
libraries:
|
||||
|
||||
- `libuv` for asynchronous I/O operations and event loops
|
||||
- `libssl` and `libcrypto` from OpenSSL for cryptography
|
||||
|
||||
Use of the following libraries is optional:
|
||||
|
||||
- `libjemalloc` for improved memory allocation performance
|
||||
- `libnghttp2` for DNS-over-HTTPS (DoH) support
|
||||
|
||||
The following C11 features are used in BIND 9:
|
||||
|
||||
* Atomic operations support, either in the form of C11 atomics or
|
||||
`__atomic` builtin operations.
|
||||
|
||||
* Thread Local Storage support, either in the form of C11
|
||||
`_Thread_local`/`thread_local`, or the `__thread` GCC extension.
|
||||
|
||||
The C11 variants are preferred.
|
||||
|
||||
BIND 9.17 requires a fairly recent version of `libuv` (at least 1.x). For
|
||||
some of the older systems listed below, you will have to install an updated
|
||||
`libuv` package from sources such as EPEL, PPA, or other native sources for
|
||||
updated packages. The other option is to build and install `libuv` from
|
||||
source.
|
||||
|
||||
Certain optional BIND features have additional library dependencies.
|
||||
These include:
|
||||
|
||||
* `libfstrm` and `libprotobuf-c` for DNSTAP
|
||||
* `libidn2` for display of internationalized domain names in `dig`
|
||||
* `libjson-c` for JSON statistics
|
||||
* `libmaxminddb` for geolocation
|
||||
* `libnghttp2` for DNS over HTTPS
|
||||
* `libxml2` for XML statistics
|
||||
* `libz` for compression of the HTTP statistics channel
|
||||
* `readline` for line editing in `nsupdate` and `nslookup`
|
||||
|
||||
ISC regularly tests BIND on many operating systems and architectures, but
|
||||
lacks the resources to test all of them. Consequently, ISC is only able to
|
||||
offer support on a "best effort" basis for some.
|
||||
|
||||
### Regularly tested platforms
|
||||
|
||||
As of Dec 2021, BIND 9.17 is fully supported and regularly tested on the
|
||||
following systems:
|
||||
|
||||
* Debian 9, 10, 11
|
||||
* Ubuntu LTS 18.04, 20.04
|
||||
* Fedora 35
|
||||
* Red Hat Enterprise Linux / CentOS / Oracle Linux 7, 8
|
||||
* FreeBSD 12.3, 13.0
|
||||
* OpenBSD 7.0
|
||||
* Alpine Linux 3.15
|
||||
|
||||
The amd64, i386, armhf and arm64 CPU architectures are all fully supported.
|
||||
|
||||
### Best effort
|
||||
|
||||
The following are platforms on which BIND is known to build and run.
|
||||
ISC makes every effort to fix bugs on these platforms, but may be unable
|
||||
to do so quickly due to lack of hardware, less familiarity on the part
|
||||
of engineering staff, and other constraints. None of these are tested
|
||||
regularly by ISC.
|
||||
|
||||
* macOS 10.12+
|
||||
* Solaris 11
|
||||
* NetBSD
|
||||
* Other Linux distributions still supported by their vendors, such as:
|
||||
* Ubuntu 20.10+
|
||||
* Gentoo
|
||||
* Arch Linux
|
||||
* OpenWRT/LEDE 17.01+
|
||||
* Other CPU architectures (mips, mipsel, sparc, ...)
|
||||
|
||||
### Community maintained
|
||||
|
||||
These systems may not all have the required dependencies for building BIND
|
||||
easily available, although it will be possible in many cases to compile
|
||||
those directly from source. The community and interested parties may wish
|
||||
to help with maintenance, and we welcome patch contributions, although we
|
||||
cannot guarantee that we will accept them. All contributions will be
|
||||
assessed against the risk of adverse effect on officially supported
|
||||
platforms.
|
||||
|
||||
* Platforms past or close to their respective EOL dates, such as:
|
||||
* Ubuntu 14.04, 16.04 (Ubuntu ESM releases are not supported)
|
||||
* CentOS 6
|
||||
* Debian Jessie
|
||||
* FreeBSD 10.x, 11.x
|
||||
|
||||
## Unsupported platforms
|
||||
|
||||
These are platforms on which BIND 9.17 is known *not* to build or run:
|
||||
|
||||
* Platforms without at least OpenSSL 1.0.2
|
||||
* Windows
|
||||
* Solaris 10 and older
|
||||
* Platforms that don't support IPv6 Advanced Socket API (RFC 3542)
|
||||
* Platforms that don't support atomic operations (via compiler or library)
|
||||
* Linux without NPTL (Native POSIX Thread Library)
|
||||
* Platforms on which `libuv` cannot be compiled
|
||||
146
README.md
146
README.md
@@ -18,9 +18,6 @@ information regarding copyright ownership.
|
||||
1. [Reporting bugs and getting help](#help)
|
||||
1. [Contributing to BIND](#contrib)
|
||||
1. [Building BIND](#build)
|
||||
1. [macOS](#macos)
|
||||
1. [Dependencies](#dependencies)
|
||||
1. [Compile-time options](#opts)
|
||||
1. [Automated testing](#testing)
|
||||
1. [Documentation](#doc)
|
||||
1. [Change log](#changes)
|
||||
@@ -58,7 +55,9 @@ CHANGES file format.
|
||||
For up-to-date versions and release notes, see
|
||||
[https://www.isc.org/download/](https://www.isc.org/download/).
|
||||
|
||||
For information about supported platforms, see [PLATFORMS](PLATFORMS.md).
|
||||
For information about supported platforms, see the
|
||||
["Supported Platforms"](doc/arm/platforms.rst) section in the BIND 9
|
||||
Administrator Reference Manual.
|
||||
|
||||
### <a name="help"/> Reporting bugs and getting help
|
||||
|
||||
@@ -125,142 +124,9 @@ including your patch as an attachment, preferably generated by
|
||||
|
||||
### <a name="build"/> Building BIND 9
|
||||
|
||||
At a minimum, BIND requires a Unix or Linux system with an ANSI C compiler,
|
||||
basic POSIX support, and a 64-bit integer type. BIND also requires the
|
||||
`libuv` asynchronous I/O library, the `nghttp2` HTTP/2 library, the
|
||||
`jemalloc` memory allocation library, and the OpenSSL cryptography
|
||||
library. On Linux, BIND requires the `libcap` library to set process
|
||||
privileges, though this requirement can be overridden by disabling
|
||||
capability support at compile time. See [Compile-time options](#opts)
|
||||
below for details on other libraries that may be required to support
|
||||
optional features.
|
||||
|
||||
Successful builds have been observed on many versions of Linux and Unix,
|
||||
including RHEL/CentOS/Oracle Linux, Fedora, Debian, Ubuntu, SLES, openSUSE,
|
||||
Slackware, Alpine, FreeBSD, NetBSD, OpenBSD, macOS, Solaris, OpenIndiana,
|
||||
OmniOS CE, HP-UX, and OpenWRT.
|
||||
|
||||
To build on a Unix or Linux system, use:
|
||||
|
||||
$ autoreconf -fi (if you are building in the git repository)
|
||||
$ ./configure
|
||||
$ make
|
||||
|
||||
If you're using Emacs, you might find `make tags` helpful.
|
||||
|
||||
Several environment variables, which can be set before running `configure`,
|
||||
affect compilation. Significant ones are:
|
||||
|
||||
|Variable|Description |
|
||||
|--------------------|-----------------------------------------------|
|
||||
|`CC`|The C compiler to use. `configure` tries to figure out the right one for supported systems.|
|
||||
|`CFLAGS`|C compiler flags. Defaults to include -g and/or -O2 as supported by the compiler. Please include '-g' if you need to set `CFLAGS`. |
|
||||
|`LDFLAGS`|Linker flags. Defaults to empty string.|
|
||||
|
||||
Additional environment variables affecting the build are listed at the
|
||||
end of the `configure` help text, which can be obtained by running the
|
||||
command:
|
||||
|
||||
$ ./configure --help
|
||||
|
||||
#### <a name="macos"> macOS
|
||||
|
||||
Building on macOS assumes that the "Command Tools for Xcode" are installed.
|
||||
These can be downloaded from
|
||||
[https://developer.apple.com/download/more/](https://developer.apple.com/download/more/)
|
||||
or, if you have Xcode already installed, you can run `xcode-select --install`.
|
||||
(Note that an Apple ID may be required to access the download page.)
|
||||
|
||||
#### <a name="dependencies"> Dependencies
|
||||
|
||||
To build BIND you need to have the following packages installed:
|
||||
|
||||
libuv
|
||||
pkg-config / pkgconfig / pkgconf
|
||||
|
||||
To build BIND from the git repository, you need the following tools
|
||||
installed:
|
||||
|
||||
autoconf (includes autoreconf)
|
||||
automake
|
||||
libtool
|
||||
|
||||
#### <a name="opts"/> Compile-time options
|
||||
|
||||
To see a full list of configuration options, run `configure --help`.
|
||||
|
||||
For the server to support DNSSEC, you need to build it with crypto support.
|
||||
To use OpenSSL, you must have OpenSSL 1.0.2e or newer installed. If the
|
||||
OpenSSL library is installed in a nonstandard location, specify the prefix
|
||||
using `--with-openssl=<PREFIX>` on the configure command line. To use a
|
||||
PKCS#11 hardware service module for cryptographic operations, it will
|
||||
be necessary to compile and use engine_pkcs11 from the OpenSC project.
|
||||
|
||||
To support DNS over HTTPS, the server must be linked with `libnghttp2`.
|
||||
|
||||
To support the HTTP statistics channel, the server must be linked with at
|
||||
least one of the following libraries: `libxml2`
|
||||
[http://xmlsoft.org](http://xmlsoft.org) or `json-c`
|
||||
[https://github.com/json-c/json-c](https://github.com/json-c/json-c).
|
||||
If these are installed at a nonstandard location, then:
|
||||
|
||||
* for `libxml2`, specify the prefix using `--with-libxml2=/prefix`.
|
||||
* for `json-c`, adjust `PKG_CONFIG_PATH`.
|
||||
|
||||
To support compression on the HTTP statistics channel, the server must be
|
||||
linked against `libzlib`. If this is installed in a nonstandard location,
|
||||
specify the prefix using `--with-zlib=/prefix`.
|
||||
|
||||
To support storing configuration data for runtime-added zones in an LMDB
|
||||
database, the server must be linked with `liblmdb`. If this is installed in a
|
||||
nonstandard location, specify the prefix using `with-lmdb=/prefix`.
|
||||
|
||||
To support MaxMind GeoIP2 location-based ACLs, the server must be linked
|
||||
with `libmaxminddb`. This is turned on by default if the library is
|
||||
found; if the library is installed in a nonstandard location,
|
||||
specify the prefix using `--with-maxminddb=/prefix`. GeoIP2 support
|
||||
can be switched off with `--disable-geoip`.
|
||||
|
||||
For DNSTAP packet logging, you must have installed `libfstrm`
|
||||
[https://github.com/farsightsec/fstrm](https://github.com/farsightsec/fstrm)
|
||||
and `libprotobuf-c`
|
||||
[https://developers.google.com/protocol-buffers](https://developers.google.com/protocol-buffers),
|
||||
and BIND must be configured with `--enable-dnstap`.
|
||||
|
||||
Certain compiled-in constants and default settings can be decreased to
|
||||
values better suited to small machines, e.g. OpenWRT boxes, by specifying
|
||||
`--with-tuning=small` on the `configure` command line. This decreases
|
||||
memory usage by using smaller structures, but degrades performance.
|
||||
|
||||
On Linux, process capabilities are managed in user space using
|
||||
the `libcap` library, which can be installed on most Linux systems via
|
||||
the `libcap-dev` or `libcap-devel` package. Process capability support can
|
||||
also be disabled by configuring with `--disable-linux-caps`.
|
||||
|
||||
On some platforms it is necessary to explicitly request large file support
|
||||
to handle files bigger than 2GB. This can be done by using
|
||||
`--enable-largefile` on the `configure` command line.
|
||||
|
||||
Support for the "fixed" rrset-order option can be enabled or disabled by
|
||||
specifying `--enable-fixed-rrset` or `--disable-fixed-rrset` on the
|
||||
configure command line. By default, fixed rrset-order is disabled to
|
||||
reduce memory footprint.
|
||||
|
||||
The `--enable-querytrace` option causes `named` to log every step of
|
||||
processing every query. The `--enable-singletrace` option turns on the
|
||||
same verbose tracing, but allows an individual query to be separately
|
||||
traced by setting its query ID to 0. These options should only be enabled
|
||||
when debugging, because they have a significant negative impact on query
|
||||
performance.
|
||||
|
||||
`make install` installs `named` and the various BIND 9 libraries. By
|
||||
default, installation is into /usr/local, but this can be changed with the
|
||||
`--prefix` option when running `configure`.
|
||||
|
||||
You may specify the option `--sysconfdir` to set the directory where
|
||||
configuration files like `named.conf` go by default, and `--localstatedir`
|
||||
to set the default parent directory of `run/named.pid`. `--sysconfdir`
|
||||
defaults to `$prefix/etc` and `--localstatedir` defaults to `$prefix/var`.
|
||||
For information about building BIND 9, see the
|
||||
["Building BIND 9"](doc/arm/build.rst) section in the BIND 9
|
||||
Administrator Reference Manual.
|
||||
|
||||
### <a name="testing"/> Automated testing
|
||||
|
||||
|
||||
@@ -15,10 +15,10 @@
|
||||
# a shell variable in AC_INIT
|
||||
#
|
||||
m4_define([bind_VERSION_MAJOR], 9)dnl
|
||||
m4_define([bind_VERSION_MINOR], 17)dnl
|
||||
m4_define([bind_VERSION_PATCH], 22)dnl
|
||||
m4_define([bind_VERSION_MINOR], 18)dnl
|
||||
m4_define([bind_VERSION_PATCH], 0)dnl
|
||||
m4_define([bind_VERSION_EXTRA], )dnl
|
||||
m4_define([bind_DESCRIPTION], [(Development Release)])dnl
|
||||
m4_define([bind_DESCRIPTION], [(Stable Release)])dnl
|
||||
m4_define([bind_SRCID], [m4_esyscmd_s([git rev-parse --short HEAD | cut -b1-7])])dnl
|
||||
m4_define([bind_PKG_VERSION], [[bind_VERSION_MAJOR.bind_VERSION_MINOR.bind_VERSION_PATCH]bind_VERSION_EXTRA])dnl
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ EXTRA_DIST = \
|
||||
conf.py \
|
||||
isc-logo.pdf \
|
||||
advanced.rst \
|
||||
build.rst \
|
||||
catz.rst \
|
||||
configuration.rst \
|
||||
dlz.rst \
|
||||
@@ -20,6 +21,7 @@ EXTRA_DIST = \
|
||||
manpages.rst \
|
||||
notes.rst \
|
||||
pkcs11.rst \
|
||||
platforms.rst \
|
||||
plugins.rst \
|
||||
reference.rst \
|
||||
requirements.rst \
|
||||
|
||||
179
doc/arm/build.rst
Normal file
179
doc/arm/build.rst
Normal file
@@ -0,0 +1,179 @@
|
||||
.. Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
..
|
||||
.. SPDX-License-Identifier: MPL-2.0
|
||||
..
|
||||
.. This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.. License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
.. file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
..
|
||||
.. See the COPYRIGHT file distributed with this work for additional
|
||||
.. information regarding copyright ownership.
|
||||
|
||||
Building BIND 9
|
||||
---------------
|
||||
|
||||
To build on a Unix or Linux system, use:
|
||||
|
||||
::
|
||||
|
||||
$ autoreconf -fi ### (only if building from the git repository)
|
||||
$ ./configure
|
||||
$ make
|
||||
|
||||
Several environment variables affect compilation, and they can be set
|
||||
before running ``configure``. The most significant ones are:
|
||||
|
||||
+--------------------+-------------------------------------------------+
|
||||
| Variable | Description |
|
||||
+====================+=================================================+
|
||||
| ``CC`` | The C compiler to use. ``configure`` tries to |
|
||||
| | figure out the right one for supported systems. |
|
||||
+--------------------+-------------------------------------------------+
|
||||
| ``CFLAGS`` | The C compiler flags. Defaults to include -g |
|
||||
| | and/or -O2 as supported by the compiler. Please |
|
||||
| | include ``-g`` if ``CFLAGS`` needs to be set. |
|
||||
+--------------------+-------------------------------------------------+
|
||||
| ``LDFLAGS`` | The linker flags. Defaults to an empty string. |
|
||||
+--------------------+-------------------------------------------------+
|
||||
|
||||
Additional environment variables affecting the build are listed at the
|
||||
end of the ``configure`` help text, which can be obtained by running the
|
||||
command:
|
||||
|
||||
::
|
||||
|
||||
$ ./configure --help
|
||||
|
||||
If using Emacs, the ``make tags`` command may be helpful.
|
||||
|
||||
.. _build_dependencies:
|
||||
|
||||
Required Libraries
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
To build BIND 9, the following packages must be installed:
|
||||
|
||||
- ``libcrypto``, ``libssl``
|
||||
- ``libuv``
|
||||
- ``perl``
|
||||
- ``pkg-config`` / ``pkgconfig`` / ``pkgconf``
|
||||
|
||||
BIND 9.18 requires ``libuv`` 1.x or higher. On older systems, an updated
|
||||
``libuv`` package needs to be installed from sources such as EPEL, PPA,
|
||||
or other native sources. The other option is to build and install
|
||||
``libuv`` from source.
|
||||
|
||||
OpenSSL 1.0.2e or newer is required. If the OpenSSL library is installed
|
||||
in a nonstandard location, specify the prefix using
|
||||
``--with-openssl=<PREFIX>`` on the ``configure`` command line. To use a
|
||||
PKCS#11 hardware service module for cryptographic operations,
|
||||
``engine_pkcs11`` from the OpenSC project must be compiled and used.
|
||||
|
||||
To build BIND from the git repository, the following tools must also be
|
||||
installed:
|
||||
|
||||
- ``autoconf`` (includes ``autoreconf``)
|
||||
- ``automake``
|
||||
- ``libtool``
|
||||
|
||||
Optional Features
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
To see a full list of configuration options, run ``configure --help``.
|
||||
|
||||
To improve performance, use of the ``jemalloc`` library
|
||||
(http://jemalloc.net/) is strongly recommended.
|
||||
|
||||
To support :rfc:`DNS over HTTPS (DoH) <8484>`, the server must be linked
|
||||
with ``libnghttp2`` (https://nghttp2.org/). If the library is
|
||||
unavailable, ``--disable-doh`` can be used to disable DoH support.
|
||||
|
||||
To support the HTTP statistics channel, the server must be linked with
|
||||
at least one of the following libraries: ``libxml2``
|
||||
(http://xmlsoft.org) or ``json-c`` (https://github.com/json-c/json-c).
|
||||
If these are installed at a nonstandard location, then:
|
||||
|
||||
- for ``libxml2``, specify the prefix using ``--with-libxml2=/prefix``,
|
||||
- for ``json-c``, adjust ``PKG_CONFIG_PATH``.
|
||||
|
||||
To support compression on the HTTP statistics channel, the server must
|
||||
be linked against ``zlib`` (https://zlib.net/). If this is installed in
|
||||
a nonstandard location, specify the prefix using
|
||||
``--with-zlib=/prefix``.
|
||||
|
||||
To support storing configuration data for runtime-added zones in an LMDB
|
||||
database, the server must be linked with ``liblmdb``
|
||||
(https://github.com/LMDB/lmdb). If this is installed in a nonstandard
|
||||
location, specify the prefix using ``--with-lmdb=/prefix``.
|
||||
|
||||
To support MaxMind GeoIP2 location-based ACLs, the server must be linked
|
||||
with ``libmaxminddb`` (https://maxmind.github.io/libmaxminddb/). This is
|
||||
turned on by default if the library is found; if the library is
|
||||
installed in a nonstandard location, specify the prefix using
|
||||
``--with-maxminddb=/prefix``. GeoIP2 support can be switched off with
|
||||
``--disable-geoip``.
|
||||
|
||||
For DNSTAP packet logging, ``libfstrm``
|
||||
(https://github.com/farsightsec/fstrm) and ``libprotobuf-c``
|
||||
(https://developers.google.com/protocol-buffers) must be installed, and
|
||||
BIND must be configured with ``--enable-dnstap``.
|
||||
|
||||
To support internationalized domain names in ``dig``, ``libidn2``
|
||||
(https://www.gnu.org/software/libidn/#libidn2) must be installed. If the
|
||||
library is installed in a nonstandard location, specify the prefix using
|
||||
``--with-libidn2=/prefix`` or adjust ``PKG_CONFIG_PATH``.
|
||||
|
||||
For line editing in ``nsupdate`` and ``nslookup``, either the
|
||||
``readline`` (https://tiswww.case.edu/php/chet/readline/rltop.html) or
|
||||
the ``libedit`` library (https://www.thrysoee.dk/editline/) must be
|
||||
installed. If these are installed at a nonstandard location, adjust
|
||||
``PKG_CONFIG_PATH``. ``readline`` is used by default, and ``libedit``
|
||||
can be explicitly requested using ``--with-readline=libedit``.
|
||||
|
||||
Certain compiled-in constants and default settings can be decreased to
|
||||
values better suited to small machines, e.g. OpenWRT boxes, by
|
||||
specifying ``--with-tuning=small`` on the ``configure`` command line.
|
||||
This decreases memory usage by using smaller structures, but degrades
|
||||
performance.
|
||||
|
||||
On Linux, process capabilities are managed in user space using the
|
||||
``libcap`` library
|
||||
(https://git.kernel.org/pub/scm/libs/libcap/libcap.git/), which can be
|
||||
installed on most Linux systems via the ``libcap-dev`` or
|
||||
``libcap-devel`` package. Process capability support can also be
|
||||
disabled by configuring with ``--disable-linux-caps``.
|
||||
|
||||
On some platforms it is necessary to explicitly request large file
|
||||
support to handle files bigger than 2GB. This can be done by using
|
||||
``--enable-largefile`` on the ``configure`` command line.
|
||||
|
||||
Support for the “fixed” RRset-order option can be enabled or disabled by
|
||||
specifying ``--enable-fixed-rrset`` or ``--disable-fixed-rrset`` on the
|
||||
``configure`` command line. By default, fixed RRset-order is disabled to
|
||||
reduce memory footprint.
|
||||
|
||||
The ``--enable-querytrace`` option causes ``named`` to log every step
|
||||
while processing every query. The ``--enable-singletrace`` option turns
|
||||
on the same verbose tracing, but allows an individual query to be
|
||||
separately traced by setting its query ID to 0. These options should
|
||||
only be enabled when debugging, because they have a significant negative
|
||||
impact on query performance.
|
||||
|
||||
``make install`` installs ``named`` and the various BIND 9 libraries. By
|
||||
default, installation is into /usr/local, but this can be changed with
|
||||
the ``--prefix`` option when running ``configure``.
|
||||
|
||||
The option ``--sysconfdir`` can be specified to set the directory where
|
||||
configuration files such as ``named.conf`` go by default;
|
||||
``--localstatedir`` can be used to set the default parent directory of
|
||||
``run/named.pid``. ``--sysconfdir`` defaults to ``$prefix/etc`` and
|
||||
``--localstatedir`` defaults to ``$prefix/var``.
|
||||
|
||||
macOS
|
||||
~~~~~
|
||||
|
||||
Building on macOS assumes that the “Command Tools for Xcode” are
|
||||
installed. These can be downloaded from
|
||||
https://developer.apple.com/download/more/ or, if Xcode is already
|
||||
installed, simply run ``xcode-select --install``. (Note that an Apple ID
|
||||
may be required to access the download page.)
|
||||
@@ -143,6 +143,7 @@ exclude_patterns = [
|
||||
'.DS_Store',
|
||||
'*.grammar.rst',
|
||||
'*.zoneopts.rst',
|
||||
'build.rst',
|
||||
'catz.rst',
|
||||
'dlz.rst',
|
||||
'dnssec.rst',
|
||||
@@ -150,6 +151,7 @@ exclude_patterns = [
|
||||
'logging-cattegories.rst',
|
||||
'managed-keys.rst',
|
||||
'pkcs11.rst',
|
||||
'platforms.rst',
|
||||
'plugins.rst'
|
||||
]
|
||||
|
||||
|
||||
@@ -63,17 +63,27 @@ Bibliography (and Suggested Reading)
|
||||
Requests for Comment (RFCs)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Specification documents for the Internet protocol suite, including the
|
||||
DNS, are published as part of the `Request for Comments`_ (RFCs) series
|
||||
of technical notes. The standards themselves are defined by the
|
||||
`Internet Engineering Task Force`_ (IETF) and the `Internet Engineering
|
||||
Steering Group`_ (IESG). RFCs can be viewed online at:
|
||||
https://www.rfc-editor.org/.
|
||||
|
||||
While reading RFCs, please keep in mind that :rfc:`not all RFCs are
|
||||
standards <1796>`, and also that the validity of documents does change
|
||||
over time. Every RFC needs to be interpreted in the context of other
|
||||
documents.
|
||||
|
||||
BIND 9 strives for strict compliance with IETF standards. To the best
|
||||
of our knowledge, BIND 9 complies with the following RFCs, with
|
||||
the caveats and exceptions listed in the numbered notes below. Many
|
||||
of these RFCs were written by current or former ISC staff members.
|
||||
The list is non-exhaustive.
|
||||
|
||||
Specification documents for the Internet protocol suite, including the
|
||||
DNS, are published as part of the Request for Comments (RFCs) series of
|
||||
technical notes. The standards themselves are defined by the Internet
|
||||
Engineering Task Force (IETF) and the Internet Engineering Steering
|
||||
Group (IESG). RFCs can be viewed online at: https://datatracker.ietf.org/doc/ .
|
||||
.. _Internet Engineering Steering Group: https://www.ietf.org/about/groups/iesg/
|
||||
.. _Internet Engineering Task Force: https://www.ietf.org/about/
|
||||
.. _Request for Comments: https://www.ietf.org/standards/rfcs/
|
||||
|
||||
Some of these RFCs, though DNS-related, are not concerned with implementing
|
||||
software.
|
||||
@@ -160,7 +170,7 @@ DNS (GSS-TSIG).* October 2003.
|
||||
DNS.* March 2005.
|
||||
|
||||
:rfc:`4033` - R. Arends, R. Austein, M. Larson, D. Massey, and S. Rose. *DNS Security
|
||||
Introduction and Requirements.* March 2005. [4]
|
||||
Introduction and Requirements.* March 2005.
|
||||
|
||||
:rfc:`4034` - R. Arends, R. Austein, M. Larson, D. Massey, and S. Rose. *Resource Records for
|
||||
the DNS Security Extensions.* March 2005.
|
||||
@@ -217,10 +227,6 @@ Addressing of IPv4/IPv6 Translators.* October 2010.
|
||||
*DNS64: DNS Extensions for Network Address Translation from IPv6 Clients to
|
||||
IPv4 Servers.* April 2011. [8]
|
||||
|
||||
:rfc:`6594` - O. Sury. *Use of the SHA-256 Algorithm with RSA, Digital
|
||||
Signature Algorithm (DSA), and Elliptic Curve DSA (ECDSA) in SSHFP Resource
|
||||
Records.* April 2012.
|
||||
|
||||
:rfc:`6604` - D. Eastlake, 3rd. *xNAME RCODE and Status Bits Clarification.*
|
||||
April 2012.
|
||||
|
||||
@@ -240,8 +246,8 @@ Updates.* August 2012. [10]
|
||||
:rfc:`6840` - S. Weiler, Ed., and D. Blacka, Ed. *Clarifications and
|
||||
Implementation Notes for DNS Security (DNSSEC).* February 2013. [11]
|
||||
|
||||
:rfc:`7216` - M. Thomson and R. Bellis. *Location Information Server (LIS)
|
||||
Discovery Using IP Addresses and Reverse DNS.* April 2014.
|
||||
:rfc:`7050` - T. Savolainen, J. Korhonen, and D. Wing. *Discovery of the IPv6
|
||||
Prefix Used for IPv6 Address Synthesis.* November 2013. [21]
|
||||
|
||||
:rfc:`7344` - W. Kumari, O. Gudmundsson, and G. Barwood. *Automating DNSSEC
|
||||
Delegation Trust Maintenance.* September 2014. [12]
|
||||
@@ -257,14 +263,14 @@ Wessels. *DNS Transport over TCP - Implementation Requirements.* March 2016.
|
||||
|
||||
:rfc:`7830` - A. Mayrhofer. *The EDNS(0) Padding Option.* May 2016. [13]
|
||||
|
||||
:rfc:`8078` - O. Gudmundsson and P. Wouters. *Managing DS Records from the
|
||||
Parent via CDS/CDNSKEY.* March 2017. [22]
|
||||
|
||||
:rfc:`8080` - O. Sury and R. Edmonds. *Edwards-Curve Digital Security Algorithm
|
||||
(EdDSA) for DNSSEC.* February 2017.
|
||||
|
||||
:rfc:`8482` - J. Abley, O. Gudmundsson, M. Majkowski, and E. Hunt. *Providing
|
||||
Minimal-Sized Responses to DNS Queries That Have QTYPE=ANY.* January 2019.
|
||||
|
||||
:rfc:`8490` - R. Bellis, S. Cheshire, J. Dickinson, S. Dickinson, T. Lemon,
|
||||
and T. Pusateri. *DNS Stateful Operations.* March 2019.
|
||||
:rfc:`8880` - S. Cheshire and D. Schinazi. *Special Use Domain Name
|
||||
'ipv4only.arpa'.* August 2020.
|
||||
|
||||
:rfc:`8624` - P. Wouters and O. Sury. *Algorithm Implementation Requirements
|
||||
and Usage Guidance for DNSSEC.* June 2019.
|
||||
@@ -281,35 +287,14 @@ Deployed DNS Software.* October 1993.
|
||||
:rfc:`1536` - A. Kumar, J. Postel, C. Neuman, P. Danzig, and S. Miller. *Common DNS
|
||||
Implementation Errors and Suggested Fixes.* October 1993.
|
||||
|
||||
:rfc:`1591` - J. Postel. *Domain Name System Structure and Delegation.* March 1994.
|
||||
|
||||
:rfc:`1706` - B. Manning and R. Colella. *DNS NSAP Resource Records.* October 1994.
|
||||
|
||||
:rfc:`1713` - A. Romao. *Tools for DNS Debugging.* November 1994.
|
||||
|
||||
:rfc:`1794` - T. Brisco. *DNS Support for Load Balancing.* April 1995.
|
||||
|
||||
:rfc:`1912` - D. Barr. *Common DNS Operational and Configuration Errors.* February
|
||||
1996.
|
||||
|
||||
:rfc:`2230` - R. Atkinson. *Key Exchange Delegation Record for the DNS.* November
|
||||
1997.
|
||||
|
||||
:rfc:`2352` - O. Vaughan. *A Convention for Using Legal Names as Domain Names.* May
|
||||
1998.
|
||||
|
||||
:rfc:`2825` - IAB and L. Daigle. *A Tangled Web: Issues of I18N, Domain Names, and
|
||||
the Other Internet Protocols.* May 2000.
|
||||
|
||||
:rfc:`2826` - Internet Architecture Board. *IAB Technical Comment on the Unique
|
||||
DNS Root.* May 2000.
|
||||
|
||||
:rfc:`3071` - J. Klensin. *Reflections on the DNS, RFC 1591, and Categories of
|
||||
Domains.* February 2001.
|
||||
|
||||
:rfc:`3258` - T. Hardie. *Distributing Authoritative Name Servers via Shared
|
||||
Unicast Addresses.* April 2002.
|
||||
|
||||
:rfc:`3363` - R. Bush, A. Durand, B. Fink, O. Gudmundsson, and T. Hain.
|
||||
*Representing Internet Protocol Version 6 (IPv6) Addresses in the Domain Name
|
||||
System (DNS).* August 2002. [14]
|
||||
@@ -351,24 +336,18 @@ Experimental RFCs
|
||||
:rfc:`1183` - C. F. Everhart, L. A. Mamakos, R. Ullmann, P. Mockapetris. *New DNS RR
|
||||
Definitions.* October 1990.
|
||||
|
||||
:rfc:`1464` - R. Rosenbaum. *Using the Domain Name System to Store Arbitrary
|
||||
String Attributes.* May 1993.
|
||||
|
||||
:rfc:`1712` - C. Farrell, M. Schulze, S. Pleitner, and D. Baldoni. *DNS Encoding of
|
||||
Geographical Location.* November 1994.
|
||||
|
||||
:rfc:`1876` - C. Davis, P. Vixie, T. Goodwin, and I. Dickinson. *A Means for Expressing
|
||||
Location Information in the Domain Name System.* January 1996.
|
||||
|
||||
:rfc:`2345` - J. Klensin, T. Wolf, and G. Oglesby. *Domain Names and Company Name
|
||||
Retrieval.* May 1998.
|
||||
|
||||
:rfc:`2540` - D. Eastlake, 3rd. *Detached Domain Name System (DNS) Information.*
|
||||
March 1999.
|
||||
|
||||
:rfc:`3123` - P. Koch. *A DNS RR Type for Lists of Address Prefixes (APL RR).* June
|
||||
2001.
|
||||
|
||||
:rfc:`5205` - P. Nikander and J. Laganier. *Host Identity Protocol (HIP)
|
||||
Domain Name System (DNS) Extension.* April 2008.
|
||||
|
||||
:rfc:`6742` - RJ Atkinson, SN Bhatti, U. St. Andrews, and S. Rose. *DNS
|
||||
Resource Records for the Identifier-Locator Network Protocol (ILNP).*
|
||||
November 2012.
|
||||
@@ -416,43 +395,19 @@ Aggregation and Renumbering.* July 2000. [4]
|
||||
RFCs of Type "Unknown"
|
||||
----------------------
|
||||
|
||||
:rfc:`1033` - M. Lottor. *Domain Administrators Operations Guide.* November 1987.
|
||||
|
||||
:rfc:`1101` - P. Mockapetris. *DNS Encoding of Network Names and Other Types.*
|
||||
April 1989.
|
||||
|
||||
Obsoleted and Unimplemented Experimental RFCs
|
||||
---------------------------------------------
|
||||
|
||||
:rfc:`974` - C. Partridge. *Mail Routing and the Domain System.* January 1986.
|
||||
|
||||
:rfc:`1521` - N. Borenstein and N. Freed. *MIME (Multipurpose Internet Mail
|
||||
Extensions) Part One: Mechanisms for Specifying and Describing the Format of
|
||||
Internet Message Bodies.* September 1993 [16]
|
||||
|
||||
:rfc:`1537` - P. Beertema. *Common DNS Data File Configuration Errors.* October
|
||||
1993.
|
||||
|
||||
:rfc:`1750` - D. Eastlake, 3rd, S. Crocker, and J. Schiller. *Randomness
|
||||
Recommendations for Security.* December 1994.
|
||||
|
||||
:rfc:`2010` - B. Manning and P. Vixie. *Operational Criteria for Root Name Servers.*
|
||||
October 1996.
|
||||
|
||||
:rfc:`2052` - A. Gulbrandsen and P. Vixie. *A DNS RR for Specifying the Location of
|
||||
Services.* October 1996.
|
||||
|
||||
:rfc:`2065` - D. Eastlake, 3rd and C. Kaufman. *Domain Name System Security Extensions.*
|
||||
January 1997.
|
||||
|
||||
:rfc:`2137` - D. Eastlake, 3rd. *Secure Domain Name System Dynamic Update.* April
|
||||
1997.
|
||||
|
||||
:rfc:`2168` - R. Daniel and M. Mealling. *Resolution of Uniform Resource Identifiers
|
||||
Using the Domain Name System.* June 1997.
|
||||
|
||||
:rfc:`2240` - O. Vaughan. *A Legal Basis for Domain Name Allocation.* November 1997.
|
||||
|
||||
:rfc:`2535` - D. Eastlake, 3rd. *Domain Name System Security Extensions.*
|
||||
March 1999. [17] [18]
|
||||
|
||||
@@ -471,15 +426,9 @@ Name System (DNS).* March 1999.
|
||||
:rfc:`2915` - M. Mealling and R. Daniel. *The Naming Authority Pointer (NAPTR) DNS
|
||||
Resource Record.* September 2000.
|
||||
|
||||
:rfc:`2929` - D. Eastlake, 3rd, E. Brunner-Williams, and B. Manning. *Domain Name System
|
||||
(DNS) IANA Considerations.* September 2000.
|
||||
|
||||
:rfc:`3008` - B. Wellington. *Domain Name System Security (DNSSEC) Signing
|
||||
Authority.* November 2000.
|
||||
|
||||
:rfc:`3090` - E. Lewis. *DNS Security Extension Clarification on Zone Status.*
|
||||
March 2001.
|
||||
|
||||
:rfc:`3152` - R. Bush. *Delegation of IP6.ARPA.* August 2001.
|
||||
|
||||
:rfc:`3445` - D. Massey and S. Rose. *Limiting the Scope of the KEY Resource Record
|
||||
@@ -592,6 +541,10 @@ everywhere with or without ``--with-libidn2``.
|
||||
|
||||
[20] Section 5.1 - DNAME records are fully supported.
|
||||
|
||||
[21] RFC 7050 is updated by RFC 8880.
|
||||
|
||||
[22] Updating of parent zones is not yet implemented.
|
||||
|
||||
.. _internet_drafts:
|
||||
|
||||
Internet Drafts
|
||||
|
||||
@@ -17,33 +17,14 @@ Release Notes
|
||||
Introduction
|
||||
------------
|
||||
|
||||
BIND 9.17 is an unstable development release of BIND. This document
|
||||
summarizes new features and functional changes that have been introduced
|
||||
on this branch. With each development release leading up to the stable
|
||||
BIND 9.18 release, this document will be updated with additional
|
||||
features added and bugs fixed. Please see the CHANGES file for a more
|
||||
detailed list of changes and bug fixes.
|
||||
BIND 9.18 is a stable branch, suitable for production use. This
|
||||
document summarizes significant changes since the last production
|
||||
release on that branch.
|
||||
|
||||
Supported Platforms
|
||||
-------------------
|
||||
|
||||
To build on Unix-like systems, BIND requires support for POSIX.1c
|
||||
threads (IEEE Std 1003.1c-1995), the Advanced Sockets API for IPv6
|
||||
(:rfc:`3542`), and standard atomic operations provided by the C
|
||||
compiler.
|
||||
|
||||
The libuv asynchronous I/O library and the OpenSSL cryptography library
|
||||
must be available for the target platform. A PKCS#11 provider can be
|
||||
used instead of OpenSSL for Public Key cryptography (i.e., DNSSEC
|
||||
signing and validation), but OpenSSL is still required for general
|
||||
cryptography operations such as hashing and random number generation.
|
||||
|
||||
More information can be found in the ``PLATFORMS.md`` file that is
|
||||
included in the source distribution of BIND 9. If your compiler and
|
||||
system libraries provide the above features, BIND 9 should compile and
|
||||
run. If that is not the case, the BIND development team will generally
|
||||
accept patches that add support for systems that are still supported by
|
||||
their respective vendors.
|
||||
See the :ref:`supported_os` section in the :ref:`Requirements` chapter.
|
||||
|
||||
Download
|
||||
--------
|
||||
@@ -52,30 +33,7 @@ The latest versions of BIND 9 software can always be found at
|
||||
https://www.isc.org/download/. There you will find additional
|
||||
information about each release, and source code.
|
||||
|
||||
.. include:: ../notes/notes-current.rst
|
||||
.. include:: ../notes/notes-9.17.22.rst
|
||||
.. include:: ../notes/notes-9.17.21.rst
|
||||
.. include:: ../notes/notes-9.17.20.rst
|
||||
.. include:: ../notes/notes-9.17.19.rst
|
||||
.. include:: ../notes/notes-9.17.18.rst
|
||||
.. include:: ../notes/notes-9.17.17.rst
|
||||
.. include:: ../notes/notes-9.17.16.rst
|
||||
.. include:: ../notes/notes-9.17.15.rst
|
||||
.. include:: ../notes/notes-9.17.14.rst
|
||||
.. include:: ../notes/notes-9.17.13.rst
|
||||
.. include:: ../notes/notes-9.17.12.rst
|
||||
.. include:: ../notes/notes-9.17.11.rst
|
||||
.. include:: ../notes/notes-9.17.10.rst
|
||||
.. include:: ../notes/notes-9.17.9.rst
|
||||
.. include:: ../notes/notes-9.17.8.rst
|
||||
.. include:: ../notes/notes-9.17.7.rst
|
||||
.. include:: ../notes/notes-9.17.6.rst
|
||||
.. include:: ../notes/notes-9.17.5.rst
|
||||
.. include:: ../notes/notes-9.17.4.rst
|
||||
.. include:: ../notes/notes-9.17.3.rst
|
||||
.. include:: ../notes/notes-9.17.2.rst
|
||||
.. include:: ../notes/notes-9.17.1.rst
|
||||
.. include:: ../notes/notes-9.17.0.rst
|
||||
.. include:: ../notes/notes-9.18.0.rst
|
||||
|
||||
.. _relnotes_license:
|
||||
|
||||
@@ -91,13 +49,11 @@ https://www.isc.org/contact/.
|
||||
End of Life
|
||||
-----------
|
||||
|
||||
BIND 9.17 is an unstable development branch. When its development is
|
||||
complete, it will be renamed to BIND 9.18, which will be a stable
|
||||
branch. The end-of-life date for BIND 9.18 has not yet been determined.
|
||||
For those needing long-term stability, the current Extended Support
|
||||
Version (ESV) is BIND 9.11, which will be supported until at least
|
||||
December 2021. See https://kb.isc.org/docs/aa-00896 for details of
|
||||
ISC's software support policy.
|
||||
BIND 9.18 is a stable branch, suitable for production use. After it has been
|
||||
in production use for a while it will be designated as an Extended Support
|
||||
Version (ESV). Until then, the current ESV is BIND 9.16, which will be
|
||||
supported until at least December 2023. See https://kb.isc.org/docs/aa-00896
|
||||
for details of ISC's software support policy.
|
||||
|
||||
Thank You
|
||||
---------
|
||||
|
||||
110
doc/arm/platforms.rst
Normal file
110
doc/arm/platforms.rst
Normal file
@@ -0,0 +1,110 @@
|
||||
.. Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
..
|
||||
.. SPDX-License-Identifier: MPL-2.0
|
||||
..
|
||||
.. This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.. License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
.. file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
..
|
||||
.. See the COPYRIGHT file distributed with this work for additional
|
||||
.. information regarding copyright ownership.
|
||||
|
||||
.. _supported_os:
|
||||
|
||||
Supported Platforms
|
||||
-------------------
|
||||
|
||||
Current support status of various platforms and BIND 9 versions can be
|
||||
found in the ISC Knowledgebase:
|
||||
|
||||
https://kb.isc.org/docs/supported-platforms
|
||||
|
||||
In general, this version of BIND will build and run on any
|
||||
POSIX-compliant system with a C11-compliant C compiler, BSD-style
|
||||
sockets with RFC-compliant IPv6 support, POSIX-compliant threads, and
|
||||
the :ref:`required libraries <build_dependencies>`.
|
||||
|
||||
The following C11 features are used in BIND 9:
|
||||
|
||||
- Atomic operations support, either in the form of C11 atomics or
|
||||
``__atomic`` builtin operations.
|
||||
|
||||
- Thread Local Storage support, either in the form of C11
|
||||
``_Thread_local``/``thread_local``, or the ``__thread`` GCC
|
||||
extension.
|
||||
|
||||
The C11 variants are preferred.
|
||||
|
||||
ISC regularly tests BIND on many operating systems and architectures,
|
||||
but lacks the resources to test all of them. Consequently, ISC is only
|
||||
able to offer support on a “best effort” basis for some.
|
||||
|
||||
Regularly tested platforms
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
As of Jan 2022, BIND 9.18 is fully supported and regularly tested on the
|
||||
following systems:
|
||||
|
||||
- Debian 9, 10, 11
|
||||
- Ubuntu LTS 18.04, 20.04
|
||||
- Fedora 35
|
||||
- Red Hat Enterprise Linux / CentOS / Oracle Linux 7, 8
|
||||
- FreeBSD 12.3, 13.0
|
||||
- OpenBSD 7.0
|
||||
- Alpine Linux 3.15
|
||||
|
||||
The amd64, i386, armhf and arm64 CPU architectures are all fully
|
||||
supported.
|
||||
|
||||
Best effort
|
||||
~~~~~~~~~~~
|
||||
|
||||
The following are platforms on which BIND is known to build and run. ISC
|
||||
makes every effort to fix bugs on these platforms, but may be unable to
|
||||
do so quickly due to lack of hardware, less familiarity on the part of
|
||||
engineering staff, and other constraints. None of these are tested
|
||||
regularly by ISC.
|
||||
|
||||
- macOS 10.12+
|
||||
- Solaris 11
|
||||
- NetBSD
|
||||
- Other Linux distributions still supported by their vendors, such as:
|
||||
|
||||
- Ubuntu 20.10+
|
||||
- Gentoo
|
||||
- Arch Linux
|
||||
|
||||
- OpenWRT/LEDE 17.01+
|
||||
- Other CPU architectures (mips, mipsel, sparc, …)
|
||||
|
||||
Community maintained
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
These systems may not all have the required dependencies for building
|
||||
BIND easily available, although it will be possible in many cases to
|
||||
compile those directly from source. The community and interested parties
|
||||
may wish to help with maintenance, and we welcome patch contributions,
|
||||
although we cannot guarantee that we will accept them. All contributions
|
||||
will be assessed against the risk of adverse effect on officially
|
||||
supported platforms.
|
||||
|
||||
- Platforms past or close to their respective EOL dates, such as:
|
||||
|
||||
- Ubuntu 14.04, 16.04 (Ubuntu ESM releases are not supported)
|
||||
- CentOS 6
|
||||
- Debian Jessie
|
||||
- FreeBSD 10.x, 11.x
|
||||
|
||||
Unsupported Platforms
|
||||
---------------------
|
||||
|
||||
These are platforms on which BIND 9.18 is known *not* to build or run:
|
||||
|
||||
- Platforms without at least OpenSSL 1.0.2
|
||||
- Windows
|
||||
- Solaris 10 and older
|
||||
- Platforms that don’t support IPv6 Advanced Socket API (RFC 3542)
|
||||
- Platforms that don’t support atomic operations (via compiler or
|
||||
library)
|
||||
- Linux without NPTL (Native POSIX Thread Library)
|
||||
- Platforms on which ``libuv`` cannot be compiled
|
||||
@@ -886,6 +886,18 @@ used by multiple stub and secondary zones in their ``primaries`` or
|
||||
keyword ``masters``, which can still be used, but is no longer the
|
||||
preferred terminology.)
|
||||
|
||||
To force the zone transfer requests to be sent over TLS, use ``tls`` keyword,
|
||||
e.g. ``primaries { 192.0.2.1 tls tls-configuration-name; };``,
|
||||
where ``tls-configuration-name`` refers to a previously defined
|
||||
:ref:`tls statement <tls>`.
|
||||
|
||||
.. warning::
|
||||
|
||||
Please note that TLS connections to primaries are currently
|
||||
**not authenticated**. This mode provides protection from passive observers
|
||||
but does not protect from man-in-the-middle attacks on zone transfers.
|
||||
|
||||
|
||||
.. _options_grammar:
|
||||
|
||||
``options`` Statement Grammar
|
||||
@@ -2435,6 +2447,12 @@ for details on how to specify IP address lists.
|
||||
allows outgoing zone transfers to any host using the TLS transport
|
||||
over port 853.
|
||||
|
||||
.. warning::
|
||||
|
||||
Please note that incoming TLS connections are currently
|
||||
**not authenticated at the TLS level**.
|
||||
Please use :ref:`tsig` to authenticate requestors.
|
||||
|
||||
``blackhole``
|
||||
This specifies a list of addresses which the server does not accept queries
|
||||
from or use to resolve a query. Queries from these addresses are not
|
||||
@@ -4816,6 +4834,12 @@ The following options can be specified in a ``tls`` statement:
|
||||
or the TLS certificate and key pair is planned to be used across
|
||||
multiple BIND instances.
|
||||
|
||||
.. warning::
|
||||
|
||||
TLS configuration is subject to change and incompatible changes might
|
||||
be introduced in the future. Users of TLS are encouraged to carefully
|
||||
read release notes when upgrading.
|
||||
|
||||
The options described above are used to control different aspects of
|
||||
TLS functioning. Thus, most of them have no well-defined default
|
||||
values, as these depend on the cryptographic library version in use
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
.. See the COPYRIGHT file distributed with this work for additional
|
||||
.. information regarding copyright ownership.
|
||||
|
||||
.. Requirements:
|
||||
.. _Requirements:
|
||||
|
||||
BIND Resource Requirements
|
||||
==========================
|
||||
@@ -70,12 +70,5 @@ much memory or CPU power as in the first alternative, but this has the
|
||||
disadvantage of making many more external queries, as none of the name
|
||||
servers share their cached data.
|
||||
|
||||
.. _supported_os:
|
||||
|
||||
Supported Operating Systems
|
||||
---------------------------
|
||||
|
||||
ISC BIND 9 compiles and runs on many Unix-like operating
|
||||
systems and on Microsoft Windows Server 2012 R2, 2016, and Windows 10.
|
||||
For an up-to-date list of supported systems, see the PLATFORMS.md file
|
||||
in the top-level directory of the BIND 9 source distribution.
|
||||
.. include:: platforms.rst
|
||||
.. include:: build.rst
|
||||
|
||||
@@ -57,7 +57,7 @@ or Best Current Practice (BCP) documents. The list is non exhaustive.
|
||||
RFC3597
|
||||
RFC3645
|
||||
RFC4025
|
||||
RFC4033 [18]
|
||||
RFC4033
|
||||
RFC4034
|
||||
RFC4035
|
||||
RFC4074
|
||||
|
||||
@@ -1,75 +0,0 @@
|
||||
.. Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
..
|
||||
.. SPDX-License-Identifier: MPL-2.0
|
||||
..
|
||||
.. This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.. License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
.. file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
..
|
||||
.. See the COPYRIGHT file distributed with this work for additional
|
||||
.. information regarding copyright ownership.
|
||||
|
||||
Notes for BIND 9.17.0
|
||||
---------------------
|
||||
|
||||
Known Issues
|
||||
~~~~~~~~~~~~
|
||||
|
||||
- UDP network ports used for listening can no longer simultaneously be
|
||||
used for sending traffic. An example configuration which triggers
|
||||
this issue would be one which uses the same ``address:port`` pair for
|
||||
``listen-on(-v6)`` statements as for ``notify-source(-v6)`` or
|
||||
``transfer-source(-v6)``. While this issue affects all operating
|
||||
systems, it only triggers log messages (e.g. "unable to create
|
||||
dispatch for reserved port") on some of them. There are currently no
|
||||
plans to make such a combination of settings work again.
|
||||
|
||||
New Features
|
||||
~~~~~~~~~~~~
|
||||
|
||||
- When a secondary server receives a large incremental zone transfer
|
||||
(IXFR), it can have a negative impact on query performance while the
|
||||
incremental changes are applied to the zone. To address this,
|
||||
``named`` can now limit the size of IXFR responses it sends in
|
||||
response to zone transfer requests. If an IXFR response would be
|
||||
larger than an AXFR of the entire zone, it will send an AXFR response
|
||||
instead.
|
||||
|
||||
This behavior is controlled by the ``max-ixfr-ratio`` option - a
|
||||
percentage value representing the ratio of IXFR size to the size of a
|
||||
full zone transfer. The default is ``100%``. :gl:`#1515`
|
||||
|
||||
- A new RPZ option ``nsdname-wait-recurse`` controls whether
|
||||
RPZ-NSDNAME rules should always be applied even if the names of
|
||||
authoritative name servers for the query name need to be looked up
|
||||
recurively first. The default is ``yes``. Setting it to ``no`` speeds
|
||||
up initial responses by skipping RPZ-NSDNAME rules when name server
|
||||
domain names are not yet in the cache. The names will be looked up in
|
||||
the background and the rule will be applied for subsequent queries.
|
||||
:gl:`#1138`
|
||||
|
||||
Feature Changes
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
- The system-provided POSIX Threads read-write lock implementation is
|
||||
now used by default instead of the native BIND 9 implementation.
|
||||
Please be aware that glibc versions 2.26 through 2.29 had a bug_ that
|
||||
could cause BIND 9 to deadlock. A fix was released in glibc 2.30, and
|
||||
most current Linux distributions have patched or updated glibc, with
|
||||
the notable exception of Ubuntu 18.04 (Bionic) which is a work in
|
||||
progress. If you are running on an affected operating system, compile
|
||||
BIND 9 with ``--disable-pthread-rwlock`` until a fixed version of
|
||||
glibc is available. :gl:`!3125`
|
||||
|
||||
.. _bug: https://sourceware.org/bugzilla/show_bug.cgi?id=23844
|
||||
|
||||
- The ``rndc nta -dump`` and ``rndc secroots`` commands now both
|
||||
include ``validate-except`` entries when listing negative trust
|
||||
anchors. These are indicated by the keyword ``permanent`` in place of
|
||||
the expiry date. :gl:`#1532`
|
||||
|
||||
Bug Fixes
|
||||
~~~~~~~~~
|
||||
|
||||
- Fixed re-signing issues with inline zones which resulted in records
|
||||
being re-signed late or not at all.
|
||||
@@ -1,70 +0,0 @@
|
||||
.. Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
..
|
||||
.. SPDX-License-Identifier: MPL-2.0
|
||||
..
|
||||
.. This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.. License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
.. file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
..
|
||||
.. See the COPYRIGHT file distributed with this work for additional
|
||||
.. information regarding copyright ownership.
|
||||
|
||||
Notes for BIND 9.17.1
|
||||
---------------------
|
||||
|
||||
Security Fixes
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
- DNS rebinding protection was ineffective when BIND 9 is configured as
|
||||
a forwarding DNS server. Found and responsibly reported by Tobias
|
||||
Klein. :gl:`#1574`
|
||||
|
||||
Known Issues
|
||||
~~~~~~~~~~~~
|
||||
|
||||
- We have received reports that in some circumstances, receipt of an
|
||||
IXFR can cause the processing of queries to slow significantly. Some
|
||||
of these were related to RPZ processing, which has been fixed in this
|
||||
release (see below). Others appear to occur where there are
|
||||
NSEC3-related changes (such as an operator changing the NSEC3 salt
|
||||
used in the hash calculation). These are being investigated.
|
||||
:gl:`#1685`
|
||||
|
||||
New Features
|
||||
~~~~~~~~~~~~
|
||||
|
||||
- A new option, ``nsdname-wait-recurse``, has been added to the
|
||||
``response-policy`` clause in the configuration file. When set to
|
||||
``no``, RPZ NSDNAME rules are only applied if the authoritative
|
||||
nameservers for the query name have been looked up and are present in
|
||||
the cache. If this information is not present, the RPZ NSDNAME rules
|
||||
are ignored, but the information is looked up in the background and
|
||||
applied to subsequent queries. The default is ``yes``, meaning that
|
||||
RPZ NSDNAME rules should always be applied, even if the information
|
||||
needs to be looked up first. :gl:`#1138`
|
||||
|
||||
Feature Changes
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
- The previous DNSSEC sign statistics used lots of memory. The number
|
||||
of keys to track is reduced to four per zone, which should be enough
|
||||
for 99% of all signed zones. :gl:`#1179`
|
||||
|
||||
Bug Fixes
|
||||
~~~~~~~~~
|
||||
|
||||
- When an RPZ policy zone was updated via zone transfer and a large
|
||||
number of records was deleted, ``named`` could become nonresponsive
|
||||
for a short period while deleted names were removed from the RPZ
|
||||
summary database. This database cleanup is now done incrementally
|
||||
over a longer period of time, reducing such delays. :gl:`#1447`
|
||||
|
||||
- When trying to migrate an already-signed zone from ``auto-dnssec
|
||||
maintain`` to one based on ``dnssec-policy``, the existing keys were
|
||||
immediately deleted and replaced with new ones. As the key rollover
|
||||
timing constraints were not being followed, it was possible that some
|
||||
clients would not have been able to validate responses until all old
|
||||
DNSSEC information had timed out from caches. BIND now looks at the
|
||||
time metadata of the existing keys and incorporates it into its
|
||||
DNSSEC policy operation. :gl:`#1706`
|
||||
|
||||
@@ -1,119 +0,0 @@
|
||||
.. Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
..
|
||||
.. SPDX-License-Identifier: MPL-2.0
|
||||
..
|
||||
.. This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.. License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
.. file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
..
|
||||
.. See the COPYRIGHT file distributed with this work for additional
|
||||
.. information regarding copyright ownership.
|
||||
|
||||
Notes for BIND 9.17.10
|
||||
----------------------
|
||||
|
||||
New Features
|
||||
~~~~~~~~~~~~
|
||||
|
||||
- Support for DNS-over-HTTPS (DoH) was added to ``named``. Because of
|
||||
this, the ``nghttp2`` HTTP/2 library is now required for building the
|
||||
development branch of BIND 9. Both TLS-encrypted and unencrypted
|
||||
HTTP/2 connections are supported (the latter may be used to offload
|
||||
encryption to other software).
|
||||
|
||||
Note that there is no client-side support for HTTPS as yet; this will
|
||||
be added to ``dig`` in a future release. :gl:`#1144`
|
||||
|
||||
- ``named`` now supports XFR-over-TLS (XoT) for incoming as well as
|
||||
outgoing zone transfers. Addresses in a ``primaries`` list can now be
|
||||
accompanied by an optional ``tls`` keyword, followed by either the
|
||||
name of a previously configured ``tls`` statement or ``ephemeral``.
|
||||
:gl:`#2392`
|
||||
|
||||
- A new option, ``stale-answer-client-timeout``, has been added to
|
||||
improve ``named``'s behavior with respect to serving stale data. The
|
||||
option defines the amount of time ``named`` waits before attempting to
|
||||
answer the query with a stale RRset from cache. If a stale answer is
|
||||
found, ``named`` continues the ongoing fetches, attempting to refresh
|
||||
the RRset in cache until the ``resolver-query-timeout`` interval is
|
||||
reached.
|
||||
|
||||
The default value is ``1800`` (in milliseconds) and the maximum value
|
||||
is limited to ``resolver-query-timeout`` minus one second. A value of
|
||||
``0`` causes any available cached RRset to immediately be returned
|
||||
while still triggering a refresh of the data in cache.
|
||||
|
||||
This new behavior can be disabled by setting
|
||||
``stale-answer-client-timeout`` to ``off`` or ``disabled``. The new
|
||||
option has no effect if ``stale-answer-enable`` is disabled.
|
||||
:gl:`#2247`
|
||||
|
||||
Removed Features
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
- A number of non-working configuration options that had been marked as
|
||||
obsolete in previous releases have now been removed completely. Using
|
||||
any of the following options is now considered a configuration
|
||||
failure: ``acache-cleaning-interval``, ``acache-enable``,
|
||||
``additional-from-auth``, ``additional-from-cache``,
|
||||
``allow-v6-synthesis``, ``cleaning-interval``, ``dnssec-enable``,
|
||||
``dnssec-lookaside``, ``filter-aaaa``, ``filter-aaaa-on-v4``,
|
||||
``filter-aaaa-on-v6``, ``geoip-use-ecs``, ``lwres``,
|
||||
``max-acache-size``, ``nosit-udp-size``, ``queryport-pool-ports``,
|
||||
``queryport-pool-updateinterval``, ``request-sit``, ``sit-secret``,
|
||||
``support-ixfr``, ``use-queryport-pool``, ``use-ixfr``. :gl:`#1086`
|
||||
|
||||
Feature Changes
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
- When serve-stale is enabled and stale data is available, ``named`` now
|
||||
returns stale answers upon encountering any unexpected error in the
|
||||
query resolution process. This may happen, for example, if the
|
||||
``fetches-per-server`` or ``fetches-per-zone`` limits are reached. In
|
||||
this case, ``named`` attempts to answer DNS requests with stale data,
|
||||
but does not start the ``stale-refresh-time`` window. :gl:`#2434`
|
||||
|
||||
- The default value of ``max-stale-ttl`` has been changed from 12 hours
|
||||
to 1 day and the default value of ``stale-answer-ttl`` has been
|
||||
changed from 1 second to 30 seconds, following :rfc:`8767`
|
||||
recommendations. :gl:`#2248`
|
||||
|
||||
- The SONAMEs for BIND 9 libraries now include the current BIND 9
|
||||
version number, in an effort to tightly couple internal libraries with
|
||||
a specific release. This change makes the BIND 9 release process both
|
||||
simpler and more consistent while also unequivocally preventing BIND 9
|
||||
binaries from silently loading wrong versions of shared libraries (or
|
||||
multiple versions of the same shared library) at startup. :gl:`#2387`
|
||||
|
||||
- When ``check-names`` is in effect, A records below an ``_spf``,
|
||||
``_spf_rate``, or ``_spf_verify`` label (which are employed by the
|
||||
``exists`` SPF mechanism defined in :rfc:`7208` section 5.7/appendix
|
||||
D.1) are no longer reported as warnings/errors. :gl:`#2377`
|
||||
|
||||
Bug Fixes
|
||||
~~~~~~~~~
|
||||
|
||||
- ``named`` failed to start when its configuration included a zone with
|
||||
a non-builtin ``allow-update`` ACL attached. :gl:`#2413`
|
||||
|
||||
- Previously, ``dnssec-keyfromlabel`` crashed when operating on an ECDSA
|
||||
key. This has been fixed. :gl:`#2178`
|
||||
|
||||
- KASP incorrectly set signature validity to the value of the DNSKEY
|
||||
signature validity. This has been fixed. :gl:`#2383`
|
||||
|
||||
- When migrating to KASP, BIND 9 considered keys with the ``Inactive``
|
||||
and/or ``Delete`` timing metadata to be possible active keys. This has
|
||||
been fixed. :gl:`#2406`
|
||||
|
||||
- Fix the "three is a crowd" key rollover bug in KASP. When keys rolled
|
||||
faster than the time required to finish the rollover procedure, the
|
||||
successor relation equation failed because it assumed only two keys
|
||||
were taking part in a rollover. This could lead to premature removal
|
||||
of predecessor keys. BIND 9 now implements a recursive successor
|
||||
relation, as described in the paper "Flexible and Robust Key Rollover"
|
||||
(Equation (2)). :gl:`#2375`
|
||||
|
||||
- Performance of the DNSSEC verification code (used by
|
||||
``dnssec-signzone``, ``dnssec-verify``, and mirror zones) has been
|
||||
improved. :gl:`#2073`
|
||||
@@ -1,91 +0,0 @@
|
||||
.. Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
..
|
||||
.. SPDX-License-Identifier: MPL-2.0
|
||||
..
|
||||
.. This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.. License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
.. file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
..
|
||||
.. See the COPYRIGHT file distributed with this work for additional
|
||||
.. information regarding copyright ownership.
|
||||
|
||||
Notes for BIND 9.17.11
|
||||
----------------------
|
||||
|
||||
New Features
|
||||
~~~~~~~~~~~~
|
||||
|
||||
- ``dig`` has been extended to support DNS-over-HTTPS (DoH) queries,
|
||||
using ``dig +https`` and related options. :gl:`#1641`
|
||||
|
||||
- A new ``purge-keys`` option has been added to ``dnssec-policy``. It
|
||||
sets the period of time that key files are retained after becoming
|
||||
obsolete due to a key rollover; the default is 90 days. This feature
|
||||
can be disabled by setting ``purge-keys`` to 0. :gl:`#2408`
|
||||
|
||||
Feature Changes
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
- To prevent users from inadvertently configuring unencrypted
|
||||
DNS-over-HTTPS (DoH) in BIND 9, ``listen-on`` and ``listen-on-v6``
|
||||
statements using the ``http`` parameter must now also specify the
|
||||
``tls`` parameter. ``tls none`` can be used to explicitly allow
|
||||
unencrypted HTTP connections. :gl:`#2472`
|
||||
|
||||
- ``http default`` can now be specified in ``listen-on`` and
|
||||
``listen-on-v6`` statements to use the default HTTP endpoint of
|
||||
``/dns-query``. It is no longer necessary to include an ``http``
|
||||
statement in ``named.conf`` unless overriding this value. :gl:`#2472`
|
||||
|
||||
Bug Fixes
|
||||
~~~~~~~~~
|
||||
|
||||
- Zone journal (``.jnl``) files created by versions of ``named`` prior
|
||||
to 9.16.12 were no longer compatible; this could cause problems when
|
||||
upgrading if journal files were not synchronized first. This has been
|
||||
corrected: older journal files can now be read when starting up. When
|
||||
an old-style journal file is detected, it is updated to the new format
|
||||
immediately after loading.
|
||||
|
||||
Note that journals created by the current version of ``named`` are not
|
||||
usable by versions prior to 9.16.12. Before downgrading to a prior
|
||||
release, users are advised to ensure that all dynamic zones have been
|
||||
synchronized using ``rndc sync -clean``.
|
||||
|
||||
A journal file's format can be changed manually by running
|
||||
``named-journalprint -d`` (downgrade) or ``named-journalprint -u``
|
||||
(upgrade). Note that this *must not* be done while ``named`` is
|
||||
running. :gl:`#2505`
|
||||
|
||||
- ``named`` crashed when it was allowed to serve stale answers and
|
||||
``stale-answer-client-timeout`` was triggered without any (stale) data
|
||||
available in the cache to answer the query. :gl:`#2503`
|
||||
|
||||
- If an outgoing packet exceeded ``max-udp-size``, ``named`` dropped it
|
||||
instead of sending back a proper response. To prevent this problem,
|
||||
the ``IP_DONTFRAG`` option is no longer set on UDP sockets, which has
|
||||
been happening since BIND 9.17.6. :gl:`#2466`
|
||||
|
||||
- NSEC3 records were not immediately created when signing a dynamic zone
|
||||
using ``dnssec-policy`` with ``nsec3param``. This has been fixed.
|
||||
:gl:`#2498`
|
||||
|
||||
- A memory leak occurred when ``named`` was reconfigured after adding an
|
||||
inline-signed zone with ``auto-dnssec maintain`` enabled. This has
|
||||
been fixed. :gl:`#2041`
|
||||
|
||||
- An invalid direction field (not one of ``N``, ``S``, ``E``, ``W``) in
|
||||
a LOC record resulted in an INSIST failure when a zone file containing
|
||||
such a record was loaded. :gl:`#2499`
|
||||
|
||||
- If an invalid key name (e.g. ``a..b``) was specified in a
|
||||
``primaries`` list in ``named.conf``, the wrong size was passed to
|
||||
``isc_mem_put()``, which resulted in the returned memory being put on
|
||||
the wrong free list and prevented ``named`` from starting up. This has
|
||||
been fixed. :gl:`#2460`
|
||||
|
||||
- ``libtool`` was inadvertently introduced as a build-time requirement
|
||||
when the build system was revamped in BIND 9.17.2. This unnecessarily
|
||||
prevented hosts without that tool from building BIND 9 from source
|
||||
tarballs. A standalone ``libtool`` script no longer needs to be
|
||||
present in ``PATH`` to build BIND 9 from a source tarball. :gl:`#2504`
|
||||
@@ -1,87 +0,0 @@
|
||||
.. Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
..
|
||||
.. SPDX-License-Identifier: MPL-2.0
|
||||
..
|
||||
.. This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.. License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
.. file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
..
|
||||
.. See the COPYRIGHT file distributed with this work for additional
|
||||
.. information regarding copyright ownership.
|
||||
|
||||
Notes for BIND 9.17.12
|
||||
----------------------
|
||||
|
||||
Security Fixes
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
- A malformed incoming IXFR transfer could trigger an assertion failure
|
||||
in ``named``, causing it to quit abnormally. (CVE-2021-25214)
|
||||
|
||||
ISC would like to thank Greg Kuechle of SaskTel for bringing this
|
||||
vulnerability to our attention. :gl:`#2467`
|
||||
|
||||
- ``named`` crashed when a DNAME record placed in the ANSWER section
|
||||
during DNAME chasing turned out to be the final answer to a client
|
||||
query. (CVE-2021-25215)
|
||||
|
||||
ISC would like to thank `Siva Kakarla`_ for bringing this
|
||||
vulnerability to our attention. :gl:`#2540`
|
||||
|
||||
.. _Siva Kakarla: https://github.com/sivakesava1
|
||||
|
||||
Feature Changes
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
- The ISC implementation of SPNEGO was removed from BIND 9 source code.
|
||||
Instead, BIND 9 now always uses the SPNEGO implementation provided by
|
||||
the system GSSAPI library when it is built with GSSAPI support. All
|
||||
major contemporary Kerberos/GSSAPI libraries contain an implementation
|
||||
of the SPNEGO mechanism. This change was introduced in BIND 9.17.2,
|
||||
but it was not included in the release notes at the time. :gl:`#2607`
|
||||
|
||||
- The default value for the ``stale-answer-client-timeout`` option was
|
||||
changed from ``1800`` (ms) to ``off``. The default value may be
|
||||
changed again in future releases as this feature matures. :gl:`#2608`
|
||||
|
||||
Bug Fixes
|
||||
~~~~~~~~~
|
||||
|
||||
- TCP idle and initial timeouts were being incorrectly applied: only the
|
||||
``tcp-initial-timeout`` was applied on the whole connection, even if
|
||||
the connection were still active, which could prevent a large zone
|
||||
transfer from being sent back to the client. The default setting for
|
||||
``tcp-initial-timeout`` was 30 seconds, which meant that any TCP
|
||||
connection taking more than 30 seconds was abruptly terminated. This
|
||||
has been fixed. :gl:`#2583`
|
||||
|
||||
- When ``stale-answer-client-timeout`` was set to a positive value and
|
||||
recursion for a client query completed when ``named`` was about to
|
||||
look for a stale answer, an assertion could fail in
|
||||
``query_respond()``, resulting in a crash. This has been fixed.
|
||||
:gl:`#2594`
|
||||
|
||||
- After upgrading to the previous release, journal files for trust
|
||||
anchor databases (e.g. ``managed-keys.bind.jnl``) could be left in a
|
||||
corrupt state. (Other zone journal files were not affected.) This has
|
||||
been fixed. If a corrupt journal file is detected, ``named`` can now
|
||||
recover from it. :gl:`#2600`
|
||||
|
||||
- When sending queries over TCP, ``dig`` now properly handles ``+tries=1
|
||||
+retry=0`` by not retrying the connection when the remote server
|
||||
closes the connection prematurely. :gl:`#2490`
|
||||
|
||||
- CDS/CDNSKEY DELETE records are now removed when a zone transitions
|
||||
from a secure to an insecure state. ``named-checkzone`` also no longer
|
||||
reports an error when such records are found in an unsigned zone.
|
||||
:gl:`#2517`
|
||||
|
||||
- Zones using KASP could not be thawed after they were frozen using
|
||||
``rndc freeze``. This has been fixed. :gl:`#2523`
|
||||
|
||||
- After ``rndc checkds -checkds`` or ``rndc dnssec -rollover`` is used,
|
||||
``named`` now immediately attempts to reconfigure zone keys. This
|
||||
change prevents unnecessary key rollover delays. :gl:`#2488`
|
||||
|
||||
- ``named`` crashed after skipping a primary server while transferring a
|
||||
zone over TLS. This has been fixed. :gl:`#2562`
|
||||
@@ -1,84 +0,0 @@
|
||||
.. Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
..
|
||||
.. SPDX-License-Identifier: MPL-2.0
|
||||
..
|
||||
.. This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.. License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
.. file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
..
|
||||
.. See the COPYRIGHT file distributed with this work for additional
|
||||
.. information regarding copyright ownership.
|
||||
|
||||
Notes for BIND 9.17.13
|
||||
----------------------
|
||||
|
||||
Feature Changes
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
- DNSSEC responses containing NSEC3 records with iteration counts
|
||||
greater than 150 are now treated as insecure. :gl:`#2445`
|
||||
|
||||
- The maximum supported number of NSEC3 iterations that can be
|
||||
configured for a zone has been reduced to 150. :gl:`#2642`
|
||||
|
||||
- After the network manager was introduced to ``named`` to handle
|
||||
incoming traffic, it was discovered that recursive performance had
|
||||
degraded compared to previous BIND 9 versions. This has now been
|
||||
fixed by processing internal tasks inside network manager worker
|
||||
threads, preventing resource contention among two sets of threads.
|
||||
:gl:`#2638`
|
||||
|
||||
- Zones that want to transition from secure to insecure mode without
|
||||
becoming bogus in the process must now have their ``dnssec-policy``
|
||||
changed first to ``insecure``, rather than ``none``. After the DNSSEC
|
||||
records have been removed from the zone, the ``dnssec-policy`` can be
|
||||
set to ``none`` or removed from the configuration. Setting the
|
||||
``dnssec-policy`` to ``insecure`` causes CDS and CDNSKEY DELETE
|
||||
records to be published. :gl:`#2645`
|
||||
|
||||
- The implementation of the ZONEMD RR type has been updated to match
|
||||
:rfc:`8976`. :gl:`#2658`
|
||||
|
||||
- The ``draft-vandijk-dnsop-nsec-ttl`` IETF draft was implemented:
|
||||
NSEC(3) TTL values are now set to the minimum of the SOA MINIMUM value
|
||||
or the SOA TTL. :gl:`#2347`
|
||||
|
||||
Bug Fixes
|
||||
~~~~~~~~~
|
||||
|
||||
- If zone journal files written by BIND 9.16.11 or earlier were present
|
||||
when BIND was upgraded to BIND 9.17.11 or BIND 9.17.12, the zone file
|
||||
for that zone could have been inadvertently rewritten with the current
|
||||
zone contents. This caused the original zone file structure (e.g.
|
||||
comments, ``$INCLUDE`` directives) to be lost, although the zone data
|
||||
itself was preserved. :gl:`#2623`
|
||||
|
||||
- It was possible for corrupt journal files generated by an earlier
|
||||
version of ``named`` to cause problems after an upgrade. This has been
|
||||
fixed. :gl:`#2670`
|
||||
|
||||
- TTL values in cache dumps were reported incorrectly when
|
||||
``stale-cache-enable`` was set to ``yes``. This has been fixed.
|
||||
:gl:`#389` :gl:`#2289`
|
||||
|
||||
- A deadlock could occur when multiple ``rndc addzone``, ``rndc
|
||||
delzone``, and/or ``rndc modzone`` commands were invoked
|
||||
simultaneously for different zones. This has been fixed. :gl:`#2626`
|
||||
|
||||
- ``inline-signing`` was incorrectly described as being inherited from
|
||||
the ``options``/``view`` levels and was incorrectly accepted at those
|
||||
levels without effect. This has been fixed; ``named.conf`` files with
|
||||
``inline-signing`` at those levels no longer load. :gl:`#2536`
|
||||
|
||||
- ``named`` and ``named-checkconf`` did not report an error when
|
||||
multiple zones with the ``dnssec-policy`` option set were using the
|
||||
same zone file. This has been fixed. :gl:`#2603`
|
||||
|
||||
- If ``dnssec-policy`` was active and a private key file was temporarily
|
||||
offline during a rekey event, ``named`` could incorrectly introduce
|
||||
replacement keys and break a signed zone. This has been fixed.
|
||||
:gl:`#2596`
|
||||
|
||||
- When generating zone signing keys, KASP now also checks for key ID
|
||||
conflicts among newly created keys, rather than just between new and
|
||||
existing ones. :gl:`#2628`
|
||||
@@ -1,64 +0,0 @@
|
||||
.. Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
..
|
||||
.. SPDX-License-Identifier: MPL-2.0
|
||||
..
|
||||
.. This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.. License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
.. file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
..
|
||||
.. See the COPYRIGHT file distributed with this work for additional
|
||||
.. information regarding copyright ownership.
|
||||
|
||||
Notes for BIND 9.17.14
|
||||
----------------------
|
||||
|
||||
New Features
|
||||
~~~~~~~~~~~~
|
||||
|
||||
- New configuration options, ``tcp-receive-buffer``,
|
||||
``tcp-send-buffer``, ``udp-receive-buffer``, and ``udp-send-buffer``,
|
||||
have been added. These options allow the operator to fine-tune the
|
||||
receiving and sending buffers in the operating system. On busy
|
||||
servers, increasing the size of the receive buffers can prevent the
|
||||
server from dropping packets during short traffic spikes, and
|
||||
decreasing it can prevent the server from becoming clogged with
|
||||
queries that are too old and have already timed out. :gl:`#2313`
|
||||
|
||||
Feature Changes
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
- Zone dumping tasks are now run on separate asynchronous thread pools.
|
||||
This change prevents zone dumping from blocking network I/O.
|
||||
:gl:`#2732`
|
||||
|
||||
- The interface handling code has been refactored to use fewer
|
||||
resources, which should lead to less memory fragmentation and better
|
||||
startup performance. :gl:`#2433`
|
||||
|
||||
Bug Fixes
|
||||
~~~~~~~~~
|
||||
|
||||
- The calculation of the estimated IXFR transaction size in
|
||||
``dns_journal_iter_init()`` was invalid. This resulted in excessive
|
||||
AXFR-style IXFR responses. :gl:`#2685`
|
||||
|
||||
- Fixed an assertion failure that could occur if stale data was used to
|
||||
answer a query, and then a prefetch was triggered after the query was
|
||||
restarted (for example, to follow a CNAME). :gl:`#2733`
|
||||
|
||||
- If a query was answered with stale data on a server with DNS64
|
||||
enabled, an assertion could occur if a non-stale answer arrived
|
||||
afterward. This has been fixed. :gl:`#2731`
|
||||
|
||||
- Fixed an error which caused the ``IP_DONTFRAG`` socket option to be
|
||||
enabled instead of disabled, leading to errors when sending oversized
|
||||
UDP packets. :gl:`#2746`
|
||||
|
||||
- Zones which are configured in multiple views, with different values
|
||||
set for ``dnssec-policy`` and with identical values set for
|
||||
``key-directory``, are now detected and treated as a configuration
|
||||
error. :gl:`#2463`
|
||||
|
||||
- A race condition could occur when reading and writing key files for
|
||||
zones using KASP and configured in multiple views. This has been
|
||||
fixed. :gl:`#1875`
|
||||
@@ -1,26 +0,0 @@
|
||||
.. Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
..
|
||||
.. SPDX-License-Identifier: MPL-2.0
|
||||
..
|
||||
.. This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.. License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
.. file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
..
|
||||
.. See the COPYRIGHT file distributed with this work for additional
|
||||
.. information regarding copyright ownership.
|
||||
|
||||
Notes for BIND 9.17.15
|
||||
----------------------
|
||||
|
||||
Bug Fixes
|
||||
~~~~~~~~~
|
||||
|
||||
- When preparing DNS responses, ``named`` could replace the letters
|
||||
``W`` (uppercase) and ``w`` (lowercase) with ``\000``. This has been
|
||||
fixed. :gl:`#2779`
|
||||
|
||||
- The configuration-checking code failed to account for the inheritance
|
||||
rules of the ``key-directory`` option. As a side effect of this flaw,
|
||||
the code detecting ``key-directory`` conflicts for zones using KASP
|
||||
incorrectly reported unique key directories as being reused. This has
|
||||
been fixed. :gl:`#2778`
|
||||
@@ -1,79 +0,0 @@
|
||||
.. Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
..
|
||||
.. SPDX-License-Identifier: MPL-2.0
|
||||
..
|
||||
.. This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.. License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
.. file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
..
|
||||
.. See the COPYRIGHT file distributed with this work for additional
|
||||
.. information regarding copyright ownership.
|
||||
|
||||
Notes for BIND 9.17.16
|
||||
----------------------
|
||||
|
||||
Security Fixes
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
- Sending DNS messages with the OPCODE field set to anything other than
|
||||
QUERY (0) via DNS-over-TLS (DoT) or DNS-over-HTTPS (DoH) channels
|
||||
triggered an assertion failure in ``named``. This has been fixed.
|
||||
|
||||
ISC would like to thank Ville Heikkila of Synopsys Cybersecurity
|
||||
Research Center for bringing this vulnerability to our attention.
|
||||
:gl:`#2787`
|
||||
|
||||
New Features
|
||||
~~~~~~~~~~~~
|
||||
|
||||
- Using a new configuration option, ``parental-agents``, each zone can
|
||||
now be associated with a list of servers that can be used to check the
|
||||
DS RRset in the parent zone. This enables automatic KSK rollovers.
|
||||
:gl:`#1126`
|
||||
|
||||
Removed Features
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
- Support for compiling and running BIND 9 natively on Windows has been
|
||||
completely removed. The last stable release branch that has working
|
||||
Windows support is BIND 9.16. :gl:`#2690`
|
||||
|
||||
Feature Changes
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
- IP fragmentation has been disabled for outgoing UDP sockets. Errors
|
||||
triggered by sending DNS messages larger than the specified path MTU
|
||||
are properly handled by sending empty DNS replies with the ``TC``
|
||||
(TrunCated) bit set, which forces DNS clients to fall back to TCP.
|
||||
:gl:`#2790`
|
||||
|
||||
Bug Fixes
|
||||
~~~~~~~~~
|
||||
|
||||
- The code managing :rfc:`5011` trust anchors created an invalid
|
||||
placeholder keydata record upon a refresh failure, which prevented the
|
||||
database of managed keys from subsequently being read back. This has
|
||||
been fixed. :gl:`#2686`
|
||||
|
||||
- Signed, insecure delegation responses prepared by ``named`` either
|
||||
lacked the necessary NSEC records or contained duplicate NSEC records
|
||||
when both wildcard expansion and CNAME chaining were required to
|
||||
prepare the response. This has been fixed. :gl:`#2759`
|
||||
|
||||
- If ``nsupdate`` sends an SOA request and receives a REFUSED response,
|
||||
it now fails over to the next available server. :gl:`#2758`
|
||||
|
||||
- A bug that caused the NSEC3 salt to be changed on every restart for
|
||||
zones using KASP has been fixed. :gl:`#2725`
|
||||
|
||||
- The configuration-checking code failed to account for the inheritance
|
||||
rules of the ``dnssec-policy`` option. This has been fixed.
|
||||
:gl:`#2780`
|
||||
|
||||
- The fix for :gl:`#1875` inadvertently introduced a deadlock: when
|
||||
locking key files for reading and writing, the ``in-view`` logic was
|
||||
not considered. This has been fixed. :gl:`#2783`
|
||||
|
||||
- A race condition could occur where two threads were competing for the
|
||||
same set of key file locks, leading to a deadlock. This has been
|
||||
fixed. :gl:`#2786`
|
||||
@@ -1,79 +0,0 @@
|
||||
.. Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
..
|
||||
.. SPDX-License-Identifier: MPL-2.0
|
||||
..
|
||||
.. This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.. License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
.. file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
..
|
||||
.. See the COPYRIGHT file distributed with this work for additional
|
||||
.. information regarding copyright ownership.
|
||||
|
||||
Notes for BIND 9.17.17
|
||||
----------------------
|
||||
|
||||
Security Fixes
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
- Fixed an assertion failure that occurred in ``named`` when it
|
||||
attempted to send a UDP packet that exceeded the MTU size, if
|
||||
Response Rate Limiting (RRL) was enabled. (CVE-2021-25218) :gl:`#2856`
|
||||
|
||||
- ``named`` failed to check the opcode of responses when performing zone
|
||||
refreshes, stub zone updates, and UPDATE forwarding. This could lead
|
||||
to an assertion failure under certain conditions and has been
|
||||
addressed by rejecting responses whose opcode does not match the
|
||||
expected value. :gl:`#2762`
|
||||
|
||||
New Features
|
||||
~~~~~~~~~~~~
|
||||
|
||||
- DNS-over-HTTPS (DoH) support can now be disabled at compile time using
|
||||
a new build-time option, ``--disable-doh``. This allows BIND 9 to be
|
||||
built without the libnghttp2 library. :gl:`#2478`
|
||||
|
||||
- It is now possible to set a hard quota on both the number of
|
||||
concurrent DNS-over-HTTPS (DoH) connections and the number of active
|
||||
HTTP/2 streams per connection, by using the ``http-listener-clients``
|
||||
and ``http-streams-per-connection`` options, or the
|
||||
``listener-clients`` and ``streams-per-connection`` parameters in an
|
||||
``http`` statement. The defaults are 300 and 100, respectively.
|
||||
:gl:`#2809`
|
||||
|
||||
Feature Changes
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
- Previously, ``named`` accepted FORMERR responses both with and without
|
||||
an OPT record, as an indication that a given server did not support
|
||||
EDNS. To implement full compliance with :rfc:`6891`, only FORMERR
|
||||
responses without an OPT record are now accepted. This intentionally
|
||||
breaks communication with servers that do not support EDNS and that
|
||||
incorrectly echo back the query message with the RCODE field set to
|
||||
FORMERR and the QR bit set to 1. :gl:`#2249`
|
||||
|
||||
- Memory allocation has been substantially refactored; it is now based
|
||||
on the memory allocation API provided by the jemalloc library, on
|
||||
platforms where it is available. Use of this library is now
|
||||
recommended when building BIND 9; although it is optional, it is
|
||||
enabled by default. :gl:`#2433`
|
||||
|
||||
- Testing revealed that setting the thread affinity for various types of
|
||||
``named`` threads led to inconsistent recursive performance, as
|
||||
sometimes multiple sets of threads competed over a single resource.
|
||||
|
||||
Due to the above, ``named`` no longer sets thread affinity. This
|
||||
causes a slight dip of around 5% in authoritative performance, but
|
||||
recursive performance is now consistently improved. :gl:`#2822`
|
||||
|
||||
- CDS and CDNSKEY records can now be published in a zone without the
|
||||
requirement that they exactly match an existing DNSKEY record, as long
|
||||
as the zone is signed with an algorithm represented in the CDS or
|
||||
CDNSKEY record. This allows a clean rollover from one DNS provider to
|
||||
another when using a multiple-signer DNSSEC configuration. :gl:`#2710`
|
||||
|
||||
Bug Fixes
|
||||
~~~~~~~~~
|
||||
|
||||
- Authentication of ``rndc`` messages could fail if a ``controls``
|
||||
statement was configured with multiple key algorithms for the same
|
||||
listener. This has been fixed. :gl:`#2756`
|
||||
@@ -1,68 +0,0 @@
|
||||
.. Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
..
|
||||
.. SPDX-License-Identifier: MPL-2.0
|
||||
..
|
||||
.. This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.. License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
.. file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
..
|
||||
.. See the COPYRIGHT file distributed with this work for additional
|
||||
.. information regarding copyright ownership.
|
||||
|
||||
Notes for BIND 9.17.18
|
||||
----------------------
|
||||
|
||||
New Features
|
||||
~~~~~~~~~~~~
|
||||
|
||||
- Support for HTTPS and SVCB record types has been added. :gl:`#1132`
|
||||
|
||||
Feature Changes
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
- When ``dnssec-signzone`` signs a zone using a successor key whose
|
||||
predecessor is still published, it now only refreshes signatures for
|
||||
RRsets which have an invalid signature, an expired signature, or a
|
||||
signature which expires within the provided cycle interval. This
|
||||
allows ``dnssec-signzone`` to gradually replace signatures in a zone
|
||||
whose ZSK is being rolled over (similarly to what ``auto-dnssec
|
||||
maintain;`` does). :gl:`#1551`
|
||||
|
||||
- ``dnssec-cds`` now only generates SHA-2 DS records by default and
|
||||
avoids copying deprecated SHA-1 records from a child zone to its
|
||||
delegation in the parent. If the child zone does not publish SHA-2 CDS
|
||||
records, ``dnssec-cds`` will generate them from the CDNSKEY records.
|
||||
The ``-a algorithm`` option now affects the process of generating DS
|
||||
digest records from both CDS and CDNSKEY records. Thanks to Tony
|
||||
Finch. :gl:`#2871`
|
||||
|
||||
- When reporting zone types in the statistics channel, the terms
|
||||
``primary`` and ``secondary`` are now used instead of ``master`` and
|
||||
``slave``, respectively. :gl:`#1944`
|
||||
|
||||
Bug Fixes
|
||||
~~~~~~~~~
|
||||
|
||||
- A recent change to the internal memory structure of zone databases
|
||||
inadvertently neglected to update the MAPAPI value for zone files in
|
||||
``map`` format. This caused version 9.17.17 of ``named`` to attempt to
|
||||
load files into memory that were no longer compatible, triggering an
|
||||
assertion failure on startup. The MAPAPI value has now been updated,
|
||||
so ``named`` rejects outdated files when encountering them.
|
||||
:gl:`#2872`
|
||||
|
||||
- Zone files in ``map`` format whose size exceeded 2 GB failed to load.
|
||||
This has been fixed. :gl:`#2878`
|
||||
|
||||
- Stale data in the cache could cause ``named`` to send non-minimized
|
||||
queries despite QNAME minimization being enabled. This has been fixed.
|
||||
:gl:`#2665`
|
||||
|
||||
- When a DNSSEC-signed zone which only has a single signing key
|
||||
available is migrated to ``dnssec-policy``, that key is now treated as
|
||||
a Combined Signing Key (CSK). :gl:`#2857`
|
||||
|
||||
- When a dynamic zone was made available in another view using the
|
||||
``in-view`` statement, running ``rndc freeze`` always reported an
|
||||
``already frozen`` error even though the zone was successfully
|
||||
frozen. This has been fixed. :gl:`#2844`
|
||||
@@ -1,117 +0,0 @@
|
||||
.. Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
..
|
||||
.. SPDX-License-Identifier: MPL-2.0
|
||||
..
|
||||
.. This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.. License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
.. file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
..
|
||||
.. See the COPYRIGHT file distributed with this work for additional
|
||||
.. information regarding copyright ownership.
|
||||
|
||||
Notes for BIND 9.17.19
|
||||
----------------------
|
||||
|
||||
Security Fixes
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
- The ``lame-ttl`` option controls how long ``named`` caches certain
|
||||
types of broken responses from authoritative servers (see the
|
||||
`security advisory <https://kb.isc.org/docs/cve-2021-25219>`_ for
|
||||
details). This caching mechanism could be abused by an attacker to
|
||||
significantly degrade resolver performance. The vulnerability has been
|
||||
mitigated by changing the default value of ``lame-ttl`` to ``0`` and
|
||||
overriding any explicitly set value with ``0``, effectively disabling
|
||||
this mechanism altogether. ISC's testing has determined that doing
|
||||
that has a negligible impact on resolver performance while also
|
||||
preventing abuse. Administrators may observe more traffic towards
|
||||
servers issuing certain types of broken responses than in previous
|
||||
BIND 9 releases, depending on client query patterns. (CVE-2021-25219)
|
||||
|
||||
ISC would like to thank Kishore Kumar Kothapalli of Infoblox for
|
||||
bringing this vulnerability to our attention. :gl:`#2899`
|
||||
|
||||
New Features
|
||||
~~~~~~~~~~~~
|
||||
|
||||
- It is now possible to specify the TLS protocol versions to support for
|
||||
each ``tls`` configuration clause (e.g. ``protocols { TLSv1.2;
|
||||
TLSv1.3; };``). :gl:`#2795`
|
||||
|
||||
- New options for ``tls`` configuration clauses were implemented,
|
||||
namely:
|
||||
|
||||
- ``dhparam-file "<path_to_file>";`` for specifying Diffie-Hellman
|
||||
parameters,
|
||||
|
||||
- ``ciphers "<cipher_list>";`` for specifying OpenSSL ciphers to use,
|
||||
|
||||
- ``prefer-server-ciphers <yes|no>;`` for specifying whether server
|
||||
ciphers or client ciphers should be preferred (this controls
|
||||
OpenSSL's ``SSL_OP_CIPHER_SERVER_PREFERENCE`` option),
|
||||
|
||||
- ``session-tickets <yes|no>;`` for enabling/disabling stateless TLS
|
||||
session tickets (see :rfc:`5077`).
|
||||
|
||||
These options allow finer control over TLS protocol configuration and
|
||||
make achieving perfect forward secrecy (PFS) possible for DNS-over-TLS
|
||||
(DoT) and DNS-over-HTTPS (DoH). :gl:`#2796`
|
||||
|
||||
Removed Features
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
- Native PKCS#11 support has been removed; BIND 9 now :ref:`uses
|
||||
engine_pkcs11 for PKCS#11<pkcs11>`. engine_pkcs11 is an OpenSSL engine
|
||||
which is part of the `OpenSC`_ project. :gl:`#2691`
|
||||
|
||||
- Old-style Dynamically Loadable Zones (DLZ) drivers that had to be
|
||||
enabled in ``named`` at build time have been removed. New-style DLZ
|
||||
modules should be used as a replacement. :gl:`#2814`
|
||||
|
||||
- Support for the ``map`` zone file format (``masterfile-format map;``)
|
||||
has been removed. Users relying on the ``map`` format are advised to
|
||||
convert their zones to the ``raw`` format with ``named-compilezone``
|
||||
and change the configuration appropriately prior to upgrading BIND 9.
|
||||
:gl:`#2882`
|
||||
|
||||
.. _OpenSC: https://github.com/OpenSC/libp11
|
||||
|
||||
Feature Changes
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
- The network manager API is now used for sending all outgoing DNS
|
||||
queries and requests from ``named`` and related tools, including
|
||||
``delv``, ``mdig``, and ``nsupdate``. :gl:`#2401`
|
||||
|
||||
- ``named`` and ``named-checkconf`` now exit with an error when a single
|
||||
port configured for ``query-source``, ``transfer-source``,
|
||||
``notify-source``, ``parental-source``, and/or their respective IPv6
|
||||
counterparts clashes with a global listening port. This configuration
|
||||
has not been supported since BIND 9.16.0, but no error was reported
|
||||
until now (even though sending UDP messages such as NOTIFY failed).
|
||||
:gl:`#2888`
|
||||
|
||||
- ``named`` and ``named-checkconf`` now issue a warning when there is a
|
||||
single port configured for ``query-source``, ``transfer-source``,
|
||||
``notify-source``, ``parental-source``, and/or for their respective
|
||||
IPv6 counterparts. :gl:`#2888`
|
||||
|
||||
- Zone transfers over TLS (XoT) now need the ``dot`` Application-Layer
|
||||
Protocol Negotiation (ALPN) token to be selected in the TLS handshake,
|
||||
as required by :rfc:`9103` section 7.1. :gl:`#2794`
|
||||
|
||||
Bug Fixes
|
||||
~~~~~~~~~
|
||||
|
||||
- A recent change introduced in BIND 9.17.18 inadvertently broke
|
||||
backward compatibility for the ``check-names master ...`` and
|
||||
``check-names slave ...`` options, causing them to be silently
|
||||
ignored. This has been fixed and these options now work properly
|
||||
again. :gl:`#2911`
|
||||
|
||||
- When new IP addresses were set up by the operating system during
|
||||
``named`` startup, it could fail to listen for TCP connections on the
|
||||
newly added interfaces. :gl:`#2852`
|
||||
|
||||
- Under specific circumstances, zone transfers over TCP and TLS could be
|
||||
interrupted prematurely. This has been fixed. :gl:`#2917`
|
||||
@@ -1,216 +0,0 @@
|
||||
.. Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
..
|
||||
.. SPDX-License-Identifier: MPL-2.0
|
||||
..
|
||||
.. This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.. License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
.. file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
..
|
||||
.. See the COPYRIGHT file distributed with this work for additional
|
||||
.. information regarding copyright ownership.
|
||||
|
||||
Notes for BIND 9.17.2
|
||||
---------------------
|
||||
|
||||
Security Fixes
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
- To prevent exhaustion of server resources by a maliciously configured
|
||||
domain, the number of recursive queries that can be triggered by a
|
||||
request before aborting recursion has been further limited. Root and
|
||||
top-level domain servers are no longer exempt from the
|
||||
``max-recursion-queries`` limit. Fetches for missing name server
|
||||
address records are limited to 4 for any domain. This issue was
|
||||
disclosed in CVE-2020-8616. :gl:`#1388`
|
||||
|
||||
- Replaying a TSIG BADTIME response as a request could trigger an
|
||||
assertion failure. This was disclosed in CVE-2020-8617. :gl:`#1703`
|
||||
|
||||
- It was possible to trigger an assertion when attempting to fill an
|
||||
oversized TCP buffer. This was disclosed in CVE-2020-8618.
|
||||
:gl:`#1850`
|
||||
|
||||
- It was possible to trigger an INSIST failure when a zone with an
|
||||
interior wildcard label was queried in a certain pattern. This was
|
||||
disclosed in CVE-2020-8619. :gl:`#1111` :gl:`#1718`
|
||||
|
||||
Known Issues
|
||||
~~~~~~~~~~~~
|
||||
|
||||
- In this release, the build system has been significantly changed (see
|
||||
below) and there are several unresolved issues to be aware of when
|
||||
using a development release. Please refer to :gl:`GitLab issue #4
|
||||
<#4>` for a list of not-yet-resolved issues that will be fixed in
|
||||
future releases. :gl:`#4`
|
||||
|
||||
- BIND crashes on startup when linked against libuv 1.36. This issue
|
||||
is related to ``recvmmsg()`` support in libuv, which was first
|
||||
included in libuv 1.35. The problem was addressed in libuv 1.37, but
|
||||
the relevant libuv code change requires a special flag to be set
|
||||
during library initialization in order for ``recvmmsg()`` support to
|
||||
be enabled. This BIND release sets that special flag when required,
|
||||
so ``recvmmsg()`` support is now enabled when BIND is compiled
|
||||
against either libuv 1.35 or libuv 1.37+; libuv 1.36 is still not
|
||||
usable with BIND. :gl:`#1761` :gl:`#1797`
|
||||
|
||||
New Features
|
||||
~~~~~~~~~~~~
|
||||
|
||||
- The BIND 9 build system has been changed to use a typical
|
||||
autoconf+automake+libtool stack. This should not make any difference
|
||||
for people building BIND 9 from release tarballs, but when building
|
||||
BIND 9 from the Git repository, ``autoreconf -fi`` needs to be run
|
||||
first. Extra attention is also needed when using non-standard
|
||||
``./configure`` options. :gl:`#4`
|
||||
|
||||
- Documentation was converted from DocBook to reStructuredText. The
|
||||
BIND 9 ARM is now generated using Sphinx and published on `Read the
|
||||
Docs`_. Release notes are no longer available as a separate document
|
||||
accompanying a release. :gl:`#83`
|
||||
|
||||
- ``named`` and ``named-checkzone`` now reject master zones that have a
|
||||
DS RRset at the zone apex. Attempts to add DS records at the zone
|
||||
apex via UPDATE will be logged but otherwise ignored. DS records
|
||||
belong in the parent zone, not at the zone apex. :gl:`#1798`
|
||||
|
||||
- Per-type record count limits can now be specified in
|
||||
``update-policy`` statements, to limit the number of records of a
|
||||
particular type that can be added to a domain name via dynamic
|
||||
update. :gl:`#1657`
|
||||
|
||||
- ``dig`` and other tools can now print the Extended DNS Error (EDE)
|
||||
option when it appears in a request or a response. :gl:`#1835`
|
||||
|
||||
- ``dig +qid=<num>`` allows the user to specify a particular query ID
|
||||
for testing purposes. :gl:`#1851`
|
||||
|
||||
- A new logging category, ``rpz-passthru``, was added, which allows RPZ
|
||||
passthru actions to be logged into a separate channel. :gl:`#54`
|
||||
|
||||
- Zone timers are now exported via statistics channel. For primary
|
||||
zones, only the load time is exported. For secondary zones, exported
|
||||
timers also include expire and refresh times. Contributed by Paul
|
||||
Frieden, Verizon Media. :gl:`#1232`
|
||||
|
||||
Feature Changes
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
- The default value of ``max-stale-ttl`` has changed from 1 week to 12
|
||||
hours. This option controls how long ``named`` retains expired RRsets
|
||||
in cache as a potential mitigation mechanism, should there be a
|
||||
problem with one or more domains. Note that cache content retention
|
||||
is independent of whether stale answers are used in response to
|
||||
client queries (``stale-answer-enable yes|no`` and ``rndc serve-stale
|
||||
on|off``). Serving of stale answers when the authoritative servers
|
||||
are not responding must be explicitly enabled, whereas the retention
|
||||
of expired cache content takes place automatically on all versions of
|
||||
BIND 9 that have this feature available. :gl:`#1877`
|
||||
|
||||
.. warning::
|
||||
This change may be significant for administrators who expect that
|
||||
stale cache content will be automatically retained for up to 1
|
||||
week. Add option ``max-stale-ttl 1w;`` to ``named.conf`` to keep
|
||||
the previous behavior of ``named``.
|
||||
|
||||
- BIND 9 no longer sets receive/send buffer sizes for UDP sockets,
|
||||
relying on system defaults instead. :gl:`#1713`
|
||||
|
||||
- The default rwlock implementation has been changed back to the native
|
||||
BIND 9 rwlock implementation. :gl:`#1753`
|
||||
|
||||
- BIND 9 binaries which are neither daemons nor administrative programs
|
||||
were moved to ``$bindir``. Only ``ddns-confgen``, ``named``,
|
||||
``rndc``, ``rndc-confgen``, and ``tsig-confgen`` were left in
|
||||
``$sbindir``. :gl:`#1724`
|
||||
|
||||
- ``listen-on-v6 { any; }`` creates a separate socket for each
|
||||
interface. Previously, just one socket was created on systems
|
||||
conforming to :rfc:`3493` and :rfc:`3542`. This change was introduced
|
||||
in BIND 9.16.0, but it was accidentally omitted from documentation.
|
||||
:gl:`#1782`
|
||||
|
||||
- The native PKCS#11 EdDSA implementation has been updated to PKCS#11
|
||||
v3.0 and thus made operational again. Contributed by Aaron Thompson.
|
||||
:gl:`!3326`
|
||||
|
||||
- The OpenSSL ECDSA implementation has been updated to support PKCS#11
|
||||
via OpenSSL engine (see engine_pkcs11 from libp11 project).
|
||||
:gl:`#1534`
|
||||
|
||||
- The OpenSSL EdDSA implementation has been updated to support PKCS#11
|
||||
via OpenSSL engine. Please note that an EdDSA-capable OpenSSL engine
|
||||
is required and thus this code is only a proof-of-concept for the
|
||||
time being. Contributed by Aaron Thompson. :gl:`#1763`
|
||||
|
||||
- Message IDs in inbound AXFR transfers are now checked for
|
||||
consistency. Log messages are emitted for streams with inconsistent
|
||||
message IDs. :gl:`#1674`
|
||||
|
||||
- The question section is now checked when processing AXFR, IXFR,
|
||||
and SOA replies while transferring a zone in. :gl:`#1683`
|
||||
|
||||
Bug Fixes
|
||||
~~~~~~~~~
|
||||
|
||||
- When fully updating the NSEC3 chain for a large zone via IXFR, a
|
||||
temporary loss of performance could be experienced on the secondary
|
||||
server when answering queries for nonexistent data that required
|
||||
DNSSEC proof of non-existence (in other words, queries that required
|
||||
the server to find and to return NSEC3 data). The unnecessary
|
||||
processing step that was causing this delay has now been removed.
|
||||
:gl:`#1834`
|
||||
|
||||
- ``named`` could crash with an assertion failure if the name of a
|
||||
database node was looked up while the database was being modified.
|
||||
:gl:`#1857`
|
||||
|
||||
- When running on a system with support for Linux capabilities,
|
||||
``named`` drops root privileges very soon after system startup. This
|
||||
was causing a spurious log message, ``unable to set effective uid to
|
||||
0: Operation not permitted``, which has now been silenced.
|
||||
:gl:`#1042` :gl:`#1090`
|
||||
|
||||
- A possible deadlock in ``lib/isc/unix/socket.c`` was fixed.
|
||||
:gl:`#1859`
|
||||
|
||||
- Previously, ``named`` did not destroy some mutexes and conditional
|
||||
variables in netmgr code, which caused a memory leak on FreeBSD. This
|
||||
has been fixed. :gl:`#1893`
|
||||
|
||||
- A data race in ``lib/dns/resolver.c:log_formerr()`` that could lead
|
||||
to an assertion failure was fixed. :gl:`#1808`
|
||||
|
||||
- Previously, ``provide-ixfr no;`` failed to return up-to-date
|
||||
responses when the serial number was greater than or equal to the
|
||||
current serial number. :gl:`#1714`
|
||||
|
||||
- A bug in dnstap initialization could prevent some dnstap data from
|
||||
being logged, especially on recursive resolvers. :gl:`#1795`
|
||||
|
||||
- A bug in dnssec-policy keymgr was fixed, where the check for the
|
||||
existence of a given key's successor would incorrectly return
|
||||
``true`` if any other key in the keyring had a successor. :gl:`#1845`
|
||||
|
||||
- With dnssec-policy, when creating a successor key, the "goal" state
|
||||
of the current active key (the predecessor) was not changed and thus
|
||||
never removed from the zone. :gl:`#1846`
|
||||
|
||||
- When ``named-checkconf -z`` was run, it would sometimes incorrectly
|
||||
set its exit code. It reflected the status of the last view found; if
|
||||
zone-loading errors were found in earlier configured views but not in
|
||||
the last one, the exit code indicated success. Thanks to Graham
|
||||
Clinch. :gl:`#1807`
|
||||
|
||||
- ``named-checkconf -p`` could include spurious text in
|
||||
``server-addresses`` statements due to an uninitialized DSCP value.
|
||||
This has been fixed. :gl:`#1812`
|
||||
|
||||
- When built without LMDB support, ``named`` failed to restart after a
|
||||
zone with a double quote (") in its name was added with ``rndc
|
||||
addzone``. Thanks to Alberto Fernández. :gl:`#1695`
|
||||
|
||||
- The ARM has been updated to indicate that the TSIG session key is
|
||||
generated when named starts, regardless of whether it is needed.
|
||||
:gl:`#1842`
|
||||
|
||||
.. _Read the Docs: https://bind9.readthedocs.io/
|
||||
@@ -1,84 +0,0 @@
|
||||
.. Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
..
|
||||
.. SPDX-License-Identifier: MPL-2.0
|
||||
..
|
||||
.. This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.. License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
.. file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
..
|
||||
.. See the COPYRIGHT file distributed with this work for additional
|
||||
.. information regarding copyright ownership.
|
||||
|
||||
Notes for BIND 9.17.20
|
||||
----------------------
|
||||
|
||||
New Features
|
||||
~~~~~~~~~~~~
|
||||
|
||||
- New finer-grained ``update-policy`` rule types,
|
||||
``krb5-subdomain-self-rhs`` and ``ms-subdomain-self-rhs``, were added.
|
||||
These rule types restrict updates to SRV and PTR records so that their
|
||||
content can only match the machine name embedded in the Kerberos
|
||||
principal making the change. :gl:`#481`
|
||||
|
||||
- Support for OpenSSL 3.0.0 APIs was added. :gl:`#2843`
|
||||
|
||||
Removed Features
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
- OpenSSL 3.0.0 deprecated support for so-called "engines." Since BIND 9
|
||||
currently uses engine_pkcs11 for PKCS#11, compiling BIND 9 against an
|
||||
OpenSSL 3.0.0 build which does not retain support for deprecated APIs
|
||||
makes it impossible to use PKCS#11 in BIND 9. A replacement for
|
||||
engine_pkcs11 which employs the new "provider" approach introduced in
|
||||
OpenSSL 3.0.0 is in the making. :gl:`#2843`
|
||||
|
||||
- Since the old socket manager API has been removed, "socketmgr"
|
||||
statistics are no longer reported by the :ref:`statistics channel
|
||||
<statschannels>`. :gl:`#2926`
|
||||
|
||||
Feature Changes
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
- The default for ``dnssec-dnskey-kskonly`` was changed to ``yes``. This
|
||||
means that DNSKEY, CDNSKEY, and CDS RRsets are now only signed with
|
||||
the KSK by default. The additional signatures prepared using the ZSK
|
||||
when the option is set to ``no`` add to the DNS response payload
|
||||
without offering added value. :gl:`#1316`
|
||||
|
||||
- The default NSEC3 parameters for ``dnssec-policy`` were updated to no
|
||||
extra SHA-1 iterations and no salt (``NSEC3PARAM 1 0 0 -``).
|
||||
:gl:`#2956`
|
||||
|
||||
- Internal data structures maintained for each cache database are now
|
||||
grown incrementally when they need to be expanded. This helps maintain
|
||||
a steady response rate on a loaded resolver while these internal data
|
||||
structures are resized. :gl:`#2941`
|
||||
|
||||
- The output of ``rndc serve-stale status`` has been clarified. It now
|
||||
explicitly reports whether retention of stale data in the cache is
|
||||
enabled (``stale-cache-enable``), and whether returning such data in
|
||||
responses is enabled (``stale-answer-enable``). :gl:`#2742`
|
||||
|
||||
- The `UseSTD3ASCIIRules`_ flag is now set for libidn2 function calls.
|
||||
This enables additional validation rules for IDN domains and hostnames
|
||||
in ``dig``. :gl:`#1610`
|
||||
|
||||
.. _UseSTD3ASCIIRules: http://www.unicode.org/reports/tr46/#UseSTD3ASCIIRules
|
||||
|
||||
Bug Fixes
|
||||
~~~~~~~~~
|
||||
|
||||
- Reloading a catalog zone which referenced a missing/deleted member
|
||||
zone triggered a runtime check failure, causing ``named`` to exit
|
||||
prematurely. This has been fixed. :gl:`#2308`
|
||||
|
||||
- Some lame delegations could trigger a dependency loop, in which a
|
||||
resolver fetch waited for a name server address lookup which was
|
||||
waiting for the same resolver fetch. This could cause a recursive
|
||||
lookup to hang until timing out. This situation is now detected and
|
||||
prevented. :gl:`#2927`
|
||||
|
||||
- Log files using ``timestamp``-style suffixes were not always correctly
|
||||
removed when the number of files exceeded the limit set by
|
||||
``versions``. This has been fixed. :gl:`#828`
|
||||
@@ -1,69 +0,0 @@
|
||||
.. Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
..
|
||||
.. SPDX-License-Identifier: MPL-2.0
|
||||
..
|
||||
.. This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.. License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
.. file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
..
|
||||
.. See the COPYRIGHT file distributed with this work for additional
|
||||
.. information regarding copyright ownership.
|
||||
|
||||
Notes for BIND 9.17.21
|
||||
----------------------
|
||||
|
||||
New Features
|
||||
~~~~~~~~~~~~
|
||||
|
||||
- The ``allow-transfer`` option was extended to accept additional
|
||||
``port`` and ``transport`` parameters, to further restrict zone
|
||||
transfers to a particular port and/or DNS transport protocol.
|
||||
:gl:`#2776`
|
||||
|
||||
- Extended DNS Error Code 18 - Prohibited (see :rfc:`8194` section
|
||||
4.19) is now set if query access is denied to the specific client.
|
||||
:gl:`#1836`
|
||||
|
||||
Feature Changes
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
- Aggressive Use of DNSSEC-Validated Cache (``synth-from-dnssec``, see
|
||||
:rfc:`8198`) is now enabled by default again, after having been
|
||||
disabled in BIND 9.14.8. The implementation of this feature was
|
||||
reworked to achieve better efficiency and tuned to ignore certain
|
||||
types of broken NSEC records. Negative answer synthesis is currently
|
||||
only supported for zones using NSEC. :gl:`#1265`
|
||||
|
||||
- The `UseSTD3ASCIIRules`_ flag is now disabled again for libidn2
|
||||
function calls. Applying additional validation rules for domain names
|
||||
in ``dig`` (a change introduced in the previous BIND 9 release) caused
|
||||
characters which are disallowed in hostnames (e.g. underscore ``_``,
|
||||
wildcard ``*``) to be silently stripped. That change was reverted.
|
||||
:gl:`#1610`
|
||||
|
||||
- Previously, when an incoming TCP connection could not be accepted
|
||||
because the client closed the connection early, an error message of
|
||||
``TCP connection failed: socket is not connected`` was logged. This
|
||||
message has been changed to ``Accepting TCP connection failed: socket
|
||||
is not connected``. The severity level at which this type of message
|
||||
is logged has also been changed from ``error`` to ``info`` for the
|
||||
following triggering events: ``socket is not connected``, ``quota
|
||||
reached``, and ``soft quota reached``. :gl:`#2700`
|
||||
|
||||
- ``dnssec-dsfromkey`` no longer generates DS records from revoked keys.
|
||||
:gl:`#853`
|
||||
|
||||
.. _UseSTD3ASCIIRules: http://www.unicode.org/reports/tr46/#UseSTD3ASCIIRules
|
||||
|
||||
Bug Fixes
|
||||
~~~~~~~~~
|
||||
|
||||
- Removing a configured ``catalog-zone`` clause from the configuration,
|
||||
running ``rndc reconfig``, then bringing back the removed
|
||||
``catalog-zone`` clause and running ``rndc reconfig`` again caused
|
||||
``named`` to crash. This has been fixed. :gl:`#1608`
|
||||
|
||||
- The resolver could hang on shutdown due to dispatch resources not
|
||||
being cleaned up when a TCP connection was reset, or due to dependency
|
||||
loops in the ADB or the DNSSEC validator. This has been fixed.
|
||||
:gl:`#3026` :gl:`#3040`
|
||||
@@ -1,49 +0,0 @@
|
||||
.. Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
..
|
||||
.. SPDX-License-Identifier: MPL-2.0
|
||||
..
|
||||
.. This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.. License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
.. file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
..
|
||||
.. See the COPYRIGHT file distributed with this work for additional
|
||||
.. information regarding copyright ownership.
|
||||
|
||||
Notes for BIND 9.17.22
|
||||
----------------------
|
||||
|
||||
New Features
|
||||
~~~~~~~~~~~~
|
||||
|
||||
- ``named`` now logs TLS pre-master secrets for debugging purposes when
|
||||
the ``SSLKEYLOGFILE`` environment variable is set. This enables
|
||||
troubleshooting issues with encrypted DNS traffic. :gl:`#2723`
|
||||
|
||||
Feature Changes
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
- Overall memory use by ``named`` has been optimized and reduced,
|
||||
especially on systems with many CPU cores. :gl:`#2398` :gl:`#3048`
|
||||
|
||||
- ``named`` formerly generated an ephemeral key and certificate for the
|
||||
``tls ephemeral`` configuration using the RSA algorithm with 4096-bit
|
||||
keys. This has been changed to the ECDSA P-256 algorithm. :gl:`#2264`
|
||||
|
||||
Bug Fixes
|
||||
~~~~~~~~~
|
||||
|
||||
- On FreeBSD, TCP connections leaked a small amount of heap memory,
|
||||
leading to an eventual out-of-memory problem. This has been fixed.
|
||||
:gl:`#3051`
|
||||
|
||||
- If signatures created by the ZSK were expired and the ZSK private key
|
||||
was offline, the signatures were not replaced. This behavior has been
|
||||
amended to replace the expired signatures with new signatures created
|
||||
using the KSK. :gl:`#3049`
|
||||
|
||||
- Under certain circumstances, the signed version of an inline-signed
|
||||
zone could be dumped to disk without the serial number of the unsigned
|
||||
version of the zone. This prevented resynchronization of the zone
|
||||
contents after ``named`` restarted, if the unsigned zone file was
|
||||
modified while ``named`` was not running. This has been fixed.
|
||||
:gl:`#3071`
|
||||
@@ -1,81 +0,0 @@
|
||||
.. Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
..
|
||||
.. SPDX-License-Identifier: MPL-2.0
|
||||
..
|
||||
.. This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.. License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
.. file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
..
|
||||
.. See the COPYRIGHT file distributed with this work for additional
|
||||
.. information regarding copyright ownership.
|
||||
|
||||
Notes for BIND 9.17.3
|
||||
---------------------
|
||||
|
||||
New Features
|
||||
~~~~~~~~~~~~
|
||||
|
||||
- New ``rndc`` command ``rndc dnssec -status`` shows the current DNSSEC
|
||||
policy and keys in use, the key states, and rollover status.
|
||||
:gl:`#1612`
|
||||
|
||||
- Added support in the network manager for initiating outgoing TCP
|
||||
connections. :gl:`#1958`
|
||||
|
||||
Feature Changes
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
- Disable and disallow static linking of BIND 9 binaries and libraries
|
||||
as BIND 9 modules require ``dlopen()`` support and static linking also
|
||||
prevents using security features like read-only relocations (RELRO) or
|
||||
address space layout randomization (ASLR) which are important for
|
||||
programs that interact with the network and process arbitrary user
|
||||
input. :gl:`#1933`
|
||||
|
||||
- As part of an ongoing effort to use :rfc:`8499` terminology,
|
||||
``primaries`` can now be used as a synonym for ``masters`` in
|
||||
``named.conf``. Similarly, ``notify primary-only`` can now be used as
|
||||
a synonym for ``notify master-only``. The output of ``rndc
|
||||
zonestatus`` now uses ``primary`` and ``secondary`` terminology.
|
||||
:gl:`#1948`
|
||||
|
||||
Bug Fixes
|
||||
~~~~~~~~~
|
||||
|
||||
- A race condition could occur if a TCP socket connection was closed
|
||||
while ``named`` was waiting for a recursive response. The attempt to
|
||||
send a response over the closing connection triggered an assertion
|
||||
failure in the function ``isc__nm_tcpdns_send()``. :gl:`#1937`
|
||||
|
||||
- A race condition could occur when ``named`` attempted to use a UDP
|
||||
interface that was shutting down. This triggered an assertion failure
|
||||
in ``uv__udp_finish_close()``. :gl:`#1938`
|
||||
|
||||
- Fix assertion failure when server was under load and root zone had not
|
||||
yet been loaded. :gl:`#1862`
|
||||
|
||||
- ``named`` could crash when cleaning dead nodes in ``lib/dns/rbtdb.c``
|
||||
that were being reused. :gl:`#1968`
|
||||
|
||||
- ``named`` crashed on shutdown when a new ``rndc`` connection was
|
||||
received during shutdown. This has been fixed. :gl:`#1747`
|
||||
|
||||
- The DS RRset returned by ``dns_keynode_dsset()`` was used in a
|
||||
non-thread-safe manner. This could result in an INSIST being
|
||||
triggered. :gl:`#1926`
|
||||
|
||||
- The ``primary`` and ``secondary`` keywords, when used as parameters
|
||||
for ``check-names``, were not processed correctly and were being
|
||||
ignored. :gl:`#1949`
|
||||
|
||||
- ``rndc dnstap -roll <value>`` did not limit the number of saved files
|
||||
to ``<value>``. :gl:`!3728`
|
||||
|
||||
- The validator could fail to accept a properly signed RRset if an
|
||||
unsupported algorithm appeared earlier in the DNSKEY RRset than a
|
||||
supported algorithm. It could also stop if it detected a malformed
|
||||
public key. :gl:`#1689`
|
||||
|
||||
- The ``blackhole`` ACL was inadvertently disabled for client queries.
|
||||
Blocked IP addresses were not used for upstream queries but queries
|
||||
from those addresses could still be answered. :gl:`#1936`
|
||||
@@ -1,129 +0,0 @@
|
||||
.. Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
..
|
||||
.. SPDX-License-Identifier: MPL-2.0
|
||||
..
|
||||
.. This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.. License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
.. file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
..
|
||||
.. See the COPYRIGHT file distributed with this work for additional
|
||||
.. information regarding copyright ownership.
|
||||
|
||||
Notes for BIND 9.17.4
|
||||
---------------------
|
||||
|
||||
Security Fixes
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
- It was possible to trigger an assertion failure by sending a specially
|
||||
crafted large TCP DNS message. This was disclosed in CVE-2020-8620.
|
||||
|
||||
ISC would like to thank Emanuel Almeida of Cisco Systems, Inc. for
|
||||
bringing this vulnerability to our attention. :gl:`#1996`
|
||||
|
||||
- ``named`` could crash after failing an assertion check in certain
|
||||
query resolution scenarios where QNAME minimization and forwarding
|
||||
were both enabled. To prevent such crashes, QNAME minimization is now
|
||||
always disabled for a given query resolution process, if forwarders
|
||||
are used at any point. This was disclosed in CVE-2020-8621.
|
||||
|
||||
ISC would like to thank Joseph Gullo for bringing this vulnerability
|
||||
to our attention. :gl:`#1997`
|
||||
|
||||
- It was possible to trigger an assertion failure when verifying the
|
||||
response to a TSIG-signed request. This was disclosed in
|
||||
CVE-2020-8622.
|
||||
|
||||
ISC would like to thank Dave Feldman, Jeff Warren, and Joel Cunningham
|
||||
of Oracle for bringing this vulnerability to our attention.
|
||||
:gl:`#2028`
|
||||
|
||||
- When BIND 9 was compiled with native PKCS#11 support, it was possible
|
||||
to trigger an assertion failure in code determining the number of bits
|
||||
in the PKCS#11 RSA public key with a specially crafted packet. This
|
||||
was disclosed in CVE-2020-8623.
|
||||
|
||||
ISC would like to thank Lyu Chiy for bringing this vulnerability to
|
||||
our attention. :gl:`#2037`
|
||||
|
||||
- ``update-policy`` rules of type ``subdomain`` were incorrectly treated
|
||||
as ``zonesub`` rules, which allowed keys used in ``subdomain`` rules
|
||||
to update names outside of the specified subdomains. The problem was
|
||||
fixed by making sure ``subdomain`` rules are again processed as
|
||||
described in the ARM. This was disclosed in CVE-2020-8624.
|
||||
|
||||
ISC would like to thank Joop Boonen of credativ GmbH for bringing this
|
||||
vulnerability to our attention. :gl:`#2055`
|
||||
|
||||
New Features
|
||||
~~~~~~~~~~~~
|
||||
|
||||
- A new configuration option ``stale-cache-enable`` has been introduced
|
||||
to enable or disable keeping stale answers in cache. :gl:`#1712`
|
||||
|
||||
- ``rndc`` has been updated to use the new BIND network manager API.
|
||||
This change had the side effect of altering the TCP timeout for RNDC
|
||||
connections from 60 seconds to the ``tcp-idle-timeout`` value, which
|
||||
defaults to 30 seconds. Also, because the network manager currently
|
||||
has no support for UNIX-domain sockets, those cannot now be used
|
||||
with ``rndc``. This will be addressed in a future release, either by
|
||||
restoring UNIX-domain socket support or by formally declaring them
|
||||
to be obsolete in the control channel. :gl:`#1759`
|
||||
|
||||
- Statistics channels have also been updated to use the new BIND network
|
||||
manager API. :gl:`#2022`
|
||||
|
||||
Feature Changes
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
- BIND's cache database implementation has been updated to use a faster
|
||||
hash function with better distribution. In addition, the effective
|
||||
``max-cache-size`` (configured explicitly, defaulting to a value based
|
||||
on system memory or set to ``unlimited``) now pre-allocates fixed-size
|
||||
hash tables. This prevents interruption to query resolution when the
|
||||
hash table sizes need to be increased. :gl:`#1775`
|
||||
|
||||
- Keeping stale answers in cache has been disabled by default.
|
||||
:gl:`#1712`
|
||||
|
||||
- Resource records received with 0 TTL are no longer kept in the cache
|
||||
to be used for stale answers. :gl:`#1829`
|
||||
|
||||
Bug Fixes
|
||||
~~~~~~~~~
|
||||
|
||||
- Wildcard RPZ passthru rules could incorrectly be overridden by other
|
||||
rules that were loaded from RPZ zones which appeared later in the
|
||||
``response-policy`` statement. This has been fixed. :gl:`#1619`
|
||||
|
||||
- The IPv6 Duplicate Address Detection (DAD) mechanism could
|
||||
inadvertently prevent ``named`` from binding to new IPv6 interfaces,
|
||||
by causing multiple route socket messages to be sent for each IPv6
|
||||
address. ``named`` monitors for new interfaces to ``bind()`` to when
|
||||
it is configured to listen on ``any`` or on a specific range of
|
||||
addresses. New IPv6 interfaces can be in a "tentative" state before
|
||||
they are fully available for use. When DAD is in use, two messages are
|
||||
emitted by the route socket: one when the interface first appears and
|
||||
then a second one when it is fully "up." An attempt by ``named`` to
|
||||
``bind()`` to the new interface prematurely would fail, causing it
|
||||
thereafter to ignore that address/interface. The problem was worked
|
||||
around by setting the ``IP_FREEBIND`` option on the socket and trying
|
||||
to ``bind()`` to each IPv6 address again if the first ``bind()`` call
|
||||
for that address failed with ``EADDRNOTAVAIL``. :gl:`#2038`
|
||||
|
||||
- Addressed an error in recursive clients stats reporting which could
|
||||
cause underflow, and even negative statistics. There were occasions
|
||||
when an incoming query could trigger a prefetch for some eligible
|
||||
RRset, and if the prefetch code were executed before recursion, no
|
||||
increment in recursive clients stats would take place. Conversely,
|
||||
when processing the answers, if the recursion code were executed
|
||||
before the prefetch, the same counter would be decremented without a
|
||||
matching increment. :gl:`#1719`
|
||||
|
||||
- The introduction of KASP support inadvertently caused the second field
|
||||
of ``sig-validity-interval`` to always be calculated in hours, even in
|
||||
cases when it should have been calculated in days. This has been
|
||||
fixed. (Thanks to Tony Finch.) :gl:`!3735`
|
||||
|
||||
- LMDB locking code was revised to make ``rndc reconfig`` work properly
|
||||
on FreeBSD and with LMDB >= 0.9.26. :gl:`#1976`
|
||||
@@ -1,78 +0,0 @@
|
||||
.. Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
..
|
||||
.. SPDX-License-Identifier: MPL-2.0
|
||||
..
|
||||
.. This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.. License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
.. file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
..
|
||||
.. See the COPYRIGHT file distributed with this work for additional
|
||||
.. information regarding copyright ownership.
|
||||
|
||||
Notes for BIND 9.17.5
|
||||
---------------------
|
||||
|
||||
New Features
|
||||
~~~~~~~~~~~~
|
||||
|
||||
- Add a new ``rndc`` command, ``rndc dnssec -checkds``, which signals to
|
||||
``named`` that a DS record for a given zone or key has been published
|
||||
or withdrawn from the parent. This command replaces the time-based
|
||||
``parent-registration-delay`` configuration option. :gl:`#1613`
|
||||
|
||||
- Log when ``named`` adds a CDS/CDNSKEY to the zone. :gl:`#1748`
|
||||
|
||||
Removed Features
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
- The ``--with-gperftools-profiler`` ``configure`` option was removed.
|
||||
To use the gperftools profiler, the ``HAVE_GPERFTOOLS_PROFILER`` macro
|
||||
now needs to be manually set in ``CFLAGS`` and ``-lprofiler`` needs to
|
||||
be present in ``LDFLAGS``. :gl:`!4045`
|
||||
|
||||
- The ``glue-cache`` *option* has been marked as deprecated. The glue
|
||||
cache *feature* still works and will be permanently *enabled* in a
|
||||
future release. :gl:`#2146`
|
||||
|
||||
Feature Changes
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
- Previously, using ``dig +bufsize=0`` had the side effect of disabling
|
||||
EDNS, and there was no way to test the remote server's behavior when
|
||||
it had received a packet with EDNS0 buffer size set to 0. This is no
|
||||
longer the case; ``dig +bufsize=0`` now sends a DNS message with EDNS
|
||||
version 0 and buffer size set to 0. To disable EDNS, use ``dig
|
||||
+noedns``. :gl:`#2054`
|
||||
|
||||
Bug Fixes
|
||||
~~~~~~~~~
|
||||
|
||||
- In rare circumstances, ``named`` would exit with an assertion failure
|
||||
when the number of nodes stored in the red-black tree exceeded the
|
||||
maximum allowed size of the internal hash table. :gl:`#2104`
|
||||
|
||||
- Silence spurious system log messages for an EPROTO(71) error code that
|
||||
was seen on older operating systems, where unhandled ICMPv6 errors
|
||||
resulted in a generic protocol error being returned instead of a more
|
||||
specific error code. :gl:`#1928`
|
||||
|
||||
- With query name minimization enabled, ``named`` failed to resolve
|
||||
``ip6.arpa.`` names that had extra labels to the left of the IPv6
|
||||
part. For example, when ``named`` attempted query name minimization on
|
||||
a name like ``A.B.1.2.3.4.(...).ip6.arpa.``, it stopped at the
|
||||
leftmost IPv6 label, i.e. ``1.2.3.4.(...).ip6.arpa.``, without
|
||||
considering the extra labels (``A.B``). That caused a query loop when
|
||||
resolving the name: if ``named`` received NXDOMAIN answers, then the
|
||||
same query was repeatedly sent until the number of queries sent
|
||||
reached the value of the ``max-recursion-queries`` configuration
|
||||
option. :gl:`#1847`
|
||||
|
||||
- Parsing of LOC records was made more strict by rejecting a sole period
|
||||
(``.``) and/or ``m`` as a value. These changes prevent zone files
|
||||
using such values from being loaded. Handling of negative altitudes
|
||||
which are not integers was also corrected. :gl:`#2074`
|
||||
|
||||
- Several problems found by `OSS-Fuzz`_ were fixed. (None of these are
|
||||
security issues.) :gl:`!3953` :gl:`!3975`
|
||||
|
||||
.. _OSS-Fuzz: https://github.com/google/oss-fuzz
|
||||
@@ -1,65 +0,0 @@
|
||||
.. Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
..
|
||||
.. SPDX-License-Identifier: MPL-2.0
|
||||
..
|
||||
.. This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.. License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
.. file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
..
|
||||
.. See the COPYRIGHT file distributed with this work for additional
|
||||
.. information regarding copyright ownership.
|
||||
|
||||
Notes for BIND 9.17.6
|
||||
---------------------
|
||||
|
||||
New Features
|
||||
~~~~~~~~~~~~
|
||||
|
||||
- Add a new ``rndc`` command, ``rndc dnssec -rollover``, which triggers
|
||||
a manual rollover for a specific key. :gl:`#1749`
|
||||
|
||||
- Add a new ``rndc`` command, ``rndc dumpdb -expired``, which dumps the
|
||||
cache database, including expired RRsets that are awaiting cleanup, to
|
||||
the ``dump-file`` for diagnostic purposes. :gl:`#1870`
|
||||
|
||||
Removed Features
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
- The ``glue-cache`` *option* has been marked as deprecated. The glue
|
||||
cache *feature* still works and will be permanently *enabled* in a
|
||||
future release. :gl:`#2146`
|
||||
|
||||
Feature Changes
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
- DNS Flag Day 2020: The default EDNS buffer size has been changed from
|
||||
4096 to 1232 bytes, the EDNS buffer size probing has been removed, and
|
||||
``named`` now sets the DF (Don't Fragment) flag on outgoing UDP
|
||||
packets. According to measurements done by multiple parties, this
|
||||
should not cause any operational problems as most of the Internet
|
||||
"core" is able to cope with IP message sizes between 1400-1500 bytes;
|
||||
the 1232 size was picked as a conservative minimal number that could
|
||||
be changed by the DNS operator to an estimated path MTU minus the
|
||||
estimated header space. In practice, the smallest MTU witnessed in the
|
||||
operational DNS community is 1500 octets, the maximum Ethernet payload
|
||||
size, so a useful default for maximum DNS/UDP payload size on reliable
|
||||
networks would be 1432 bytes. :gl:`#2183`
|
||||
|
||||
Bug Fixes
|
||||
~~~~~~~~~
|
||||
|
||||
- ``named`` reported an invalid memory size when running in an
|
||||
environment that did not properly report the number of available
|
||||
memory pages and/or the size of each memory page. :gl:`#2166`
|
||||
|
||||
- With multiple forwarders configured, ``named`` could fail the
|
||||
``REQUIRE(msg->state == (-1))`` assertion in ``lib/dns/message.c``,
|
||||
causing it to crash. This has been fixed. :gl:`#2124`
|
||||
|
||||
- ``named`` erroneously performed continuous key rollovers for KASP
|
||||
policies that used algorithm Ed25519 or Ed448 due to a mismatch
|
||||
between created key size and expected key size. :gl:`#2171`
|
||||
|
||||
- Updating contents of an RPZ zone which contained names spelled using
|
||||
varying letter case could cause some processing rules in that RPZ zone
|
||||
to be erroneously ignored. :gl:`#2169`
|
||||
@@ -1,65 +0,0 @@
|
||||
.. Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
..
|
||||
.. SPDX-License-Identifier: MPL-2.0
|
||||
..
|
||||
.. This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.. License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
.. file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
..
|
||||
.. See the COPYRIGHT file distributed with this work for additional
|
||||
.. information regarding copyright ownership.
|
||||
|
||||
Notes for BIND 9.17.7
|
||||
---------------------
|
||||
|
||||
New Features
|
||||
~~~~~~~~~~~~
|
||||
|
||||
- Support for DNS over TLS (DoT) has been added: the ``dig`` tool is now
|
||||
able to send DoT queries (``+tls`` option) and ``named`` can handle
|
||||
DoT queries (``listen-on tls ...`` option). ``named`` can use either a
|
||||
certificate provided by the user or an ephemeral certificate generated
|
||||
automatically upon startup. :gl:`#1840`
|
||||
|
||||
- A new configuration option, ``stale-refresh-time``, has been
|
||||
introduced. It allows a stale RRset to be served directly from cache
|
||||
for a period of time after a failed lookup, before a new attempt to
|
||||
refresh it is made. :gl:`#2066`
|
||||
|
||||
Feature Changes
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
- The ``dig``, ``host``, and ``nslookup`` tools have been converted to
|
||||
use the new network manager API rather than the older ISC socket API.
|
||||
|
||||
As a side effect of this change, the ``dig +unexpected`` option no
|
||||
longer works. This could previously be used to diagnose broken servers
|
||||
or network configurations by listening for replies from servers other
|
||||
than the one that was queried. With the new API, such answers are
|
||||
filtered before they ever reach ``dig``, so the option has been
|
||||
removed. :gl:`#2140`
|
||||
|
||||
- The network manager API is now used by ``named`` to send zone transfer
|
||||
requests. :gl:`#2016`
|
||||
|
||||
Bug Fixes
|
||||
~~~~~~~~~
|
||||
|
||||
- ``named`` could crash with an assertion failure if a TCP connection
|
||||
were closed while a request was still being processed. :gl:`#2227`
|
||||
|
||||
- ``named`` acting as a resolver could incorrectly treat signed zones
|
||||
with no DS record at the parent as bogus. Such zones should be treated
|
||||
as insecure. This has been fixed. :gl:`#2236`
|
||||
|
||||
- After a Negative Trust Anchor (NTA) is added, BIND performs periodic
|
||||
checks to see if it is still necessary. If BIND encountered a failure
|
||||
while creating a query to perform such a check, it attempted to
|
||||
dereference a ``NULL`` pointer, resulting in a crash. :gl:`#2244`
|
||||
|
||||
- A problem obtaining glue records could prevent a stub zone from
|
||||
functioning properly, if the authoritative server for the zone were
|
||||
configured for minimal responses. :gl:`#1736`
|
||||
|
||||
- ``UV_EOF`` is no longer treated as a ``TCP4RecvErr`` or a
|
||||
``TCP6RecvErr``. :gl:`#2208`
|
||||
@@ -1,73 +0,0 @@
|
||||
.. Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
..
|
||||
.. SPDX-License-Identifier: MPL-2.0
|
||||
..
|
||||
.. This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.. License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
.. file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
..
|
||||
.. See the COPYRIGHT file distributed with this work for additional
|
||||
.. information regarding copyright ownership.
|
||||
|
||||
Notes for BIND 9.17.8
|
||||
---------------------
|
||||
|
||||
New Features
|
||||
~~~~~~~~~~~~
|
||||
|
||||
- NSEC3 support was added to KASP. A new option for ``dnssec-policy``,
|
||||
``nsec3param``, can be used to set the desired NSEC3 parameters.
|
||||
NSEC3 salt collisions are automatically prevented during resalting.
|
||||
:gl:`#1620`
|
||||
|
||||
- ``dig`` output now includes the transport protocol used (UDP, TCP, or
|
||||
TLS). :gl:`#1816`
|
||||
|
||||
- ``dig`` can now report the DNS64 prefixes in use (``+dns64prefix``).
|
||||
This is useful when the host on which ``dig`` is run is behind an
|
||||
IPv6-only link, using DNS64/NAT64 or 464XLAT for IPv4aaS (IPv4 as a
|
||||
Service). :gl:`#1154`
|
||||
|
||||
Feature Changes
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
- The new networking code introduced in BIND 9.16 (netmgr) was
|
||||
overhauled in order to make it more stable, testable, and
|
||||
maintainable. :gl:`#2321`
|
||||
|
||||
- Earlier releases of BIND versions 9.16 and newer required the
|
||||
operating system to support load-balanced sockets in order for
|
||||
``named`` to be able to achieve high performance (by distributing
|
||||
incoming queries among multiple threads). However, the only operating
|
||||
systems currently known to support load-balanced sockets are Linux and
|
||||
FreeBSD 12, which means both UDP and TCP performance were limited to a
|
||||
single thread on other systems. As of BIND 9.17.8, ``named`` attempts
|
||||
to distribute incoming queries among multiple threads on systems which
|
||||
lack support for load-balanced sockets (except Windows). :gl:`#2137`
|
||||
|
||||
- The default value of ``max-recursion-queries`` was increased from 75
|
||||
to 100. Since the queries sent towards root and TLD servers are now
|
||||
included in the count (as a result of the fix for CVE-2020-8616),
|
||||
``max-recursion-queries`` has a higher chance of being exceeded by
|
||||
non-attack queries, which is the main reason for increasing its
|
||||
default value. :gl:`#2305`
|
||||
|
||||
- The default value of ``nocookie-udp-size`` was restored back to 4096
|
||||
bytes. Since ``max-udp-size`` is the upper bound for
|
||||
``nocookie-udp-size``, this change relieves the operator from having
|
||||
to change ``nocookie-udp-size`` together with ``max-udp-size`` in
|
||||
order to increase the default EDNS buffer size limit.
|
||||
``nocookie-udp-size`` can still be set to a value lower than
|
||||
``max-udp-size``, if desired. :gl:`#2250`
|
||||
|
||||
Bug Fixes
|
||||
~~~~~~~~~
|
||||
|
||||
- Handling of missing DNS COOKIE responses over UDP was tightened by
|
||||
falling back to TCP. :gl:`#2275`
|
||||
|
||||
- The CNAME synthesized from a DNAME was incorrectly followed when the
|
||||
QTYPE was CNAME or ANY. :gl:`#2280`
|
||||
|
||||
- Building with native PKCS#11 support for AEP Keyper has been broken
|
||||
since BIND 9.17.4. This has been fixed. :gl:`#2315`
|
||||
@@ -1,57 +0,0 @@
|
||||
.. Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
..
|
||||
.. SPDX-License-Identifier: MPL-2.0
|
||||
..
|
||||
.. This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.. License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
.. file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
..
|
||||
.. See the COPYRIGHT file distributed with this work for additional
|
||||
.. information regarding copyright ownership.
|
||||
|
||||
Notes for BIND 9.17.9
|
||||
---------------------
|
||||
|
||||
New Features
|
||||
~~~~~~~~~~~~
|
||||
|
||||
- ``ipv4only.arpa`` is now served when DNS64 is configured. :gl:`#385`
|
||||
|
||||
Feature Changes
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
- It is now possible to transition a zone from secure to insecure mode
|
||||
without making it bogus in the process; changing to ``dnssec-policy
|
||||
none;`` also causes CDS and CDNSKEY DELETE records to be published, to
|
||||
signal that the entire DS RRset at the parent must be removed, as
|
||||
described in :rfc:`8078`. :gl:`#1750`
|
||||
|
||||
- When using the ``unixtime`` or ``date`` method to update the SOA
|
||||
serial number, ``named`` and ``dnssec-signzone`` silently fell back to
|
||||
the ``increment`` method to prevent the new serial number from being
|
||||
smaller than the old serial number (using serial number arithmetics).
|
||||
``dnssec-signzone`` now prints a warning message, and ``named`` logs a
|
||||
warning, when such a fallback happens. :gl:`#2058`
|
||||
|
||||
Bug Fixes
|
||||
~~~~~~~~~
|
||||
|
||||
- Multiple threads could attempt to destroy a single RBTDB instance at
|
||||
the same time, resulting in an unpredictable but low-probability
|
||||
assertion failure in ``free_rbtdb()``. This has been fixed. :gl:`#2317`
|
||||
|
||||
- ``named`` no longer attempts to assign threads to CPUs outside the CPU
|
||||
affinity set. Thanks to Ole Bjørn Hessen. :gl:`#2245`
|
||||
|
||||
- When reconfiguring ``named``, removing ``auto-dnssec`` did not turn
|
||||
off DNSSEC maintenance. This has been fixed. :gl:`#2341`
|
||||
|
||||
- The report of intermittent BIND assertion failures triggered in
|
||||
``lib/dns/resolver.c:dns_name_issubdomain()`` has now been closed
|
||||
without further action. Our initial response to this was to add
|
||||
diagnostic logging instead of terminating ``named``, anticipating that
|
||||
we would receive further useful troubleshooting input. This workaround
|
||||
first appeared in BIND releases 9.17.5 and 9.16.7. However, since
|
||||
those releases were published, there have been no new reports of
|
||||
assertion failures matching this issue, but also no further diagnostic
|
||||
input, so we have closed the issue. :gl:`#2091`
|
||||
332
doc/notes/notes-9.18.0.rst
Normal file
332
doc/notes/notes-9.18.0.rst
Normal file
@@ -0,0 +1,332 @@
|
||||
.. Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
..
|
||||
.. SPDX-License-Identifier: MPL-2.0
|
||||
..
|
||||
.. This Source Code Form is subject to the terms of the Mozilla Public
|
||||
.. License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
.. file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
..
|
||||
.. See the COPYRIGHT file distributed with this work for additional
|
||||
.. information regarding copyright ownership.
|
||||
|
||||
Notes for BIND 9.18.0
|
||||
---------------------
|
||||
|
||||
.. note:: This section only lists changes since BIND 9.16.25, the most
|
||||
recent release on the previous stable branch of BIND before
|
||||
the publication of BIND 9.18.0.
|
||||
|
||||
Known Issues
|
||||
~~~~~~~~~~~~
|
||||
|
||||
- ``rndc`` has been updated to use the new BIND network manager API. As
|
||||
the network manager currently has no support for UNIX-domain sockets,
|
||||
those cannot now be used with ``rndc``. This will be addressed in a
|
||||
future release, either by restoring UNIX-domain socket support or by
|
||||
formally declaring them to be obsolete in the control channel.
|
||||
:gl:`#1759`
|
||||
|
||||
New Features
|
||||
~~~~~~~~~~~~
|
||||
|
||||
- ``named`` now supports securing DNS traffic using Transport Layer
|
||||
Security (TLS). TLS is used by both DNS over TLS (DoT) and
|
||||
DNS over HTTPS (DoH).
|
||||
|
||||
``named`` can use either a certificate provided by the user or an
|
||||
ephemeral certificate generated automatically upon startup. The
|
||||
:ref:`tls statement <tls>` allows fine-grained control over TLS
|
||||
parameters. :gl:`#1840` :gl:`#2795` :gl:`#2796`
|
||||
|
||||
For debugging purposes, ``named`` logs TLS pre-master secrets when the
|
||||
``SSLKEYLOGFILE`` environment variable is set. This enables
|
||||
troubleshooting of issues with encrypted traffic. :gl:`#2723`
|
||||
|
||||
- Support for DNS over TLS (DoT) has been added to ``named``. Network
|
||||
interfaces for DoT are configured using the existing
|
||||
:ref:`listen-on <interfaces>` directive, while TLS parameters are
|
||||
configured using the new :ref:`tls statement <tls>`. :gl:`#1840`
|
||||
|
||||
``named`` supports :rfc:`zone transfers over TLS <9103>`
|
||||
(XFR-over-TLS, XoT) for both incoming and outgoing zone transfers.
|
||||
|
||||
Incoming zone transfers over TLS are enabled by adding the ``tls``
|
||||
keyword, followed by either the name of a previously configured
|
||||
:ref:`tls statement <tls>` or the string ``ephemeral``, to the
|
||||
addresses included in :ref:`primaries <primaries_grammar>` lists.
|
||||
:gl:`#2392`
|
||||
|
||||
Similarly, the :ref:`allow-transfer <allow-transfer-access>` option
|
||||
was extended to accept additional ``port`` and ``transport``
|
||||
parameters, to further restrict outgoing zone transfers to a
|
||||
particular port and/or DNS transport protocol. :gl:`#2776`
|
||||
|
||||
Note that zone transfers over TLS (XoT) require the ``dot``
|
||||
Application-Layer Protocol Negotiation (ALPN) token to be selected in
|
||||
the TLS handshake, as required by :rfc:`9103` section 7.1. This might
|
||||
cause issues with non-compliant XoT servers. :gl:`#2794`
|
||||
|
||||
The ``dig`` tool is now able to send DoT queries (``+tls`` option).
|
||||
:gl:`#1840`
|
||||
|
||||
There is currently no support for forwarding DNS queries via DoT.
|
||||
|
||||
- Support for DNS over HTTPS (DoH) has been added to ``named``. Both
|
||||
TLS-encrypted and unencrypted connections are supported (the latter
|
||||
may be used to offload encryption to other software). Network
|
||||
interfaces for DoH are configured using the existing
|
||||
:ref:`listen-on <interfaces>` directive, while TLS parameters are
|
||||
configured using the new :ref:`tls statement <tls>` and HTTP
|
||||
parameters are configured using the new :ref:`http statement <http>`.
|
||||
:gl:`#1144` :gl:`#2472`
|
||||
|
||||
Server-side quotas on both the number of concurrent DoH connections
|
||||
and the number of active HTTP/2 streams per connection can be
|
||||
configured using the global ``http-listener-clients`` and
|
||||
``http-streams-per-connection`` options, or the ``listener-clients``
|
||||
and ``streams-per-connection`` parameters in an
|
||||
:ref:`http statement <http>`. :gl:`#2809`
|
||||
|
||||
The ``dig`` tool is now able to send DoH queries (``+https`` option).
|
||||
:gl:`#1641`
|
||||
|
||||
There is currently no support for forwarding DNS queries via DoH.
|
||||
|
||||
DoH support can be disabled at compile time using a new build-time
|
||||
option, ``--disable-doh``. This allows BIND 9 to be built without the
|
||||
`libnghttp2`_ library. :gl:`#2478`
|
||||
|
||||
- A new logging category, ``rpz-passthru``, was added, which allows RPZ
|
||||
passthru actions to be logged into a separate channel. :gl:`#54`
|
||||
|
||||
- A new option, ``nsdname-wait-recurse``, has been added to the
|
||||
``response-policy`` clause in the configuration file. When set to
|
||||
``no``, RPZ NSDNAME rules are only applied if the authoritative
|
||||
nameservers for the query name have been looked up and are present in
|
||||
the cache. If this information is not present, the RPZ NSDNAME rules
|
||||
are ignored, but the information is looked up in the background and
|
||||
applied to subsequent queries. The default is ``yes``, meaning that
|
||||
RPZ NSDNAME rules should always be applied, even if the information
|
||||
needs to be looked up first. :gl:`#1138`
|
||||
|
||||
- Support for HTTPS and SVCB record types now also includes ADDITIONAL
|
||||
section processing for these record types. :gl:`#1132`
|
||||
|
||||
- New configuration options, ``tcp-receive-buffer``,
|
||||
``tcp-send-buffer``, ``udp-receive-buffer``, and ``udp-send-buffer``,
|
||||
have been added. These options allow the operator to fine-tune the
|
||||
receiving and sending buffers in the operating system. On busy
|
||||
servers, increasing the size of the receive buffers can prevent the
|
||||
server from dropping packets during short traffic spikes, and
|
||||
decreasing it can prevent the server from becoming clogged with
|
||||
queries that are too old and have already timed out. :gl:`#2313`
|
||||
|
||||
- New finer-grained ``update-policy`` rule types,
|
||||
``krb5-subdomain-self-rhs`` and ``ms-subdomain-self-rhs``, were added.
|
||||
These rule types restrict updates to SRV and PTR records so that their
|
||||
content can only match the machine name embedded in the Kerberos
|
||||
principal making the change. :gl:`#481`
|
||||
|
||||
- Per-type record count limits can now be specified in ``update-policy``
|
||||
statements, to limit the number of records of a particular type that
|
||||
can be added to a domain name via dynamic update. :gl:`#1657`
|
||||
|
||||
- Support for OpenSSL 3.0 APIs was added. :gl:`#2843` :gl:`#3057`
|
||||
|
||||
- Extended DNS Error Code 18 - Prohibited (see :rfc:`8914` section
|
||||
4.19) is now set if query access is denied to the specific client.
|
||||
:gl:`#1836`
|
||||
|
||||
- ``ipv4only.arpa`` is now served when DNS64 is configured. :gl:`#385`
|
||||
|
||||
- ``dig`` can now report the DNS64 prefixes in use (``+dns64prefix``).
|
||||
This is useful when the host on which ``dig`` is run is behind an
|
||||
IPv6-only link, using DNS64/NAT64 or 464XLAT for IPv4aaS (IPv4 as a
|
||||
Service). :gl:`#1154`
|
||||
|
||||
- ``dig`` output now includes the transport protocol used (UDP, TCP,
|
||||
TLS, HTTPS). :gl:`#1144` :gl:`#1816`
|
||||
|
||||
- ``dig +qid=<num>`` allows the user to specify a particular query ID
|
||||
for testing purposes. :gl:`#1851`
|
||||
|
||||
.. _libnghttp2: https://nghttp2.org/
|
||||
|
||||
Removed Features
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
- Support for the ``map`` zone file format (``masterfile-format map;``)
|
||||
has been removed. Users relying on the ``map`` format are advised to
|
||||
convert their zones to the ``raw`` format with ``named-compilezone``
|
||||
and change the configuration appropriately prior to upgrading BIND 9.
|
||||
:gl:`#2882`
|
||||
|
||||
- Old-style Dynamically Loadable Zones (DLZ) drivers that had to be
|
||||
enabled in ``named`` at build time have been removed. New-style DLZ
|
||||
modules should be used as a replacement. :gl:`#2814`
|
||||
|
||||
- Support for compiling and running BIND 9 natively on Windows has been
|
||||
completely removed. The last stable release branch that has working
|
||||
Windows support is BIND 9.16. :gl:`#2690`
|
||||
|
||||
- Native PKCS#11 support has been removed. :gl:`#2691`
|
||||
|
||||
When built against OpenSSL 1.x, BIND 9 now
|
||||
:ref:`uses engine_pkcs11 for PKCS#11 <pkcs11>`. engine_pkcs11 is an
|
||||
OpenSSL engine which is part of the `OpenSC`_ project.
|
||||
|
||||
As support for so-called "engines" was deprecated in OpenSSL 3.x,
|
||||
compiling BIND 9 against an OpenSSL 3.x build which does not retain
|
||||
support for deprecated APIs makes it impossible to use PKCS#11 in BIND
|
||||
9. A replacement for engine_pkcs11 which employs the new "provider"
|
||||
approach introduced in OpenSSL 3.x is in the making. :gl:`#2843`
|
||||
|
||||
- Since the old socket manager API has been removed, "socketmgr"
|
||||
statistics are no longer reported by the
|
||||
:ref:`statistics channel <statschannels>`. :gl:`#2926`
|
||||
|
||||
- The ``glue-cache`` *option* has been marked as deprecated. The glue
|
||||
cache *feature* still works and will be permanently *enabled* in a
|
||||
future release. :gl:`#2146`
|
||||
|
||||
- A number of non-working configuration options that had been marked as
|
||||
obsolete in previous releases have now been removed completely. Using
|
||||
any of the following options is now considered a configuration
|
||||
failure: ``acache-cleaning-interval``, ``acache-enable``,
|
||||
``additional-from-auth``, ``additional-from-cache``,
|
||||
``allow-v6-synthesis``, ``cleaning-interval``, ``dnssec-enable``,
|
||||
``dnssec-lookaside``, ``filter-aaaa``, ``filter-aaaa-on-v4``,
|
||||
``filter-aaaa-on-v6``, ``geoip-use-ecs``, ``lwres``,
|
||||
``max-acache-size``, ``nosit-udp-size``, ``queryport-pool-ports``,
|
||||
``queryport-pool-updateinterval``, ``request-sit``, ``sit-secret``,
|
||||
``support-ixfr``, ``use-queryport-pool``, ``use-ixfr``. :gl:`#1086`
|
||||
|
||||
- The ``dig`` option ``+unexpected`` has been removed. :gl:`#2140`
|
||||
|
||||
- IPv6 sockets are now explicitly restricted to sending and receiving
|
||||
IPv6 packets only. As this breaks the ``+mapped`` option for ``dig``,
|
||||
the option has been removed. :gl:`#3093`
|
||||
|
||||
- Disable and disallow static linking of BIND 9 binaries and libraries
|
||||
as BIND 9 modules require ``dlopen()`` support and static linking also
|
||||
prevents using security features like read-only relocations (RELRO) or
|
||||
address space layout randomization (ASLR) which are important for
|
||||
programs that interact with the network and process arbitrary user
|
||||
input. :gl:`#1933`
|
||||
|
||||
- The ``--with-gperftools-profiler`` ``configure`` option was removed.
|
||||
To use the gperftools profiler, the ``HAVE_GPERFTOOLS_PROFILER`` macro
|
||||
now needs to be manually set in ``CFLAGS`` and ``-lprofiler`` needs to
|
||||
be present in ``LDFLAGS``. :gl:`!4045`
|
||||
|
||||
.. _OpenSC: https://github.com/OpenSC/libp11
|
||||
|
||||
Feature Changes
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
- Aggressive Use of DNSSEC-Validated Cache (``synth-from-dnssec``, see
|
||||
:rfc:`8198`) is now enabled by default again, after having been
|
||||
disabled in BIND 9.14.8. The implementation of this feature was
|
||||
reworked to achieve better efficiency and tuned to ignore certain
|
||||
types of broken NSEC records. Negative answer synthesis is currently
|
||||
only supported for zones using NSEC. :gl:`#1265`
|
||||
|
||||
- The default NSEC3 parameters for ``dnssec-policy`` were updated to no
|
||||
extra SHA-1 iterations and no salt (``NSEC3PARAM 1 0 0 -``). This
|
||||
change is in line with the `latest NSEC3 recommendations`_.
|
||||
:gl:`#2956`
|
||||
|
||||
- The default for ``dnssec-dnskey-kskonly`` was changed to ``yes``. This
|
||||
means that DNSKEY, CDNSKEY, and CDS RRsets are now only signed with
|
||||
the KSK by default. The additional signatures prepared using the ZSK
|
||||
when the option is set to ``no`` add to the DNS response payload
|
||||
without offering added value. :gl:`#1316`
|
||||
|
||||
- ``dnssec-cds`` now only generates SHA-2 DS records by default and
|
||||
avoids copying deprecated SHA-1 records from a child zone to its
|
||||
delegation in the parent. If the child zone does not publish SHA-2 CDS
|
||||
records, ``dnssec-cds`` will generate them from the CDNSKEY records.
|
||||
The ``-a algorithm`` option now affects the process of generating DS
|
||||
digest records from both CDS and CDNSKEY records. Thanks to Tony
|
||||
Finch. :gl:`#2871`
|
||||
|
||||
- Previously, ``named`` accepted FORMERR responses both with and without
|
||||
an OPT record, as an indication that a given server did not support
|
||||
EDNS. To implement full compliance with :rfc:`6891`, only FORMERR
|
||||
responses without an OPT record are now accepted. This intentionally
|
||||
breaks communication with servers that do not support EDNS and that
|
||||
incorrectly echo back the query message with the RCODE field set to
|
||||
FORMERR and the QR bit set to 1. :gl:`#2249`
|
||||
|
||||
- The question section is now checked when processing AXFR, IXFR, and
|
||||
SOA replies while transferring a zone in. :gl:`#1683`
|
||||
|
||||
- DNS Flag Day 2020: the EDNS buffer size probing code, which made the
|
||||
resolver adjust the EDNS buffer size used for outgoing queries based
|
||||
on the successful query responses and timeouts observed, was removed.
|
||||
The resolver now always uses the EDNS buffer size set in
|
||||
``edns-udp-size`` for all outgoing queries. :gl:`#2183`
|
||||
|
||||
- Keeping stale answers in cache (``stale-cache-enable``) has been
|
||||
disabled by default. :gl:`#1712`
|
||||
|
||||
- Overall memory use by ``named`` has been optimized and significantly
|
||||
reduced, especially for resolver workloads. :gl:`#2398` :gl:`#3048`
|
||||
|
||||
- Memory allocation is now based on the memory allocation API provided
|
||||
by the `jemalloc`_ library, on platforms where it is available. Use of
|
||||
this library is now recommended when building BIND 9; although it is
|
||||
optional, it is enabled by default. :gl:`#2433`
|
||||
|
||||
- Internal data structures maintained for each cache database are now
|
||||
grown incrementally when they need to be expanded. This helps maintain
|
||||
a steady response rate on a loaded resolver while these internal data
|
||||
structures are resized. :gl:`#2941`
|
||||
|
||||
- The interface handling code has been refactored to use fewer
|
||||
resources, which should lead to less memory fragmentation and better
|
||||
startup performance. :gl:`#2433`
|
||||
|
||||
- When reporting zone types in the statistics channel, the terms
|
||||
``primary`` and ``secondary`` are now used instead of ``master`` and
|
||||
``slave``, respectively. :gl:`#1944`
|
||||
|
||||
- The ``rndc nta -dump`` and ``rndc secroots`` commands now both include
|
||||
``validate-except`` entries when listing negative trust anchors. These
|
||||
are indicated by the keyword ``permanent`` in place of the expiry
|
||||
date. :gl:`#1532`
|
||||
|
||||
- The output of ``rndc serve-stale status`` has been clarified. It now
|
||||
explicitly reports whether retention of stale data in the cache is
|
||||
enabled (``stale-cache-enable``), and whether returning such data in
|
||||
responses is enabled (``stale-answer-enable``). :gl:`#2742`
|
||||
|
||||
- Previously, using ``dig +bufsize=0`` had the side effect of disabling
|
||||
EDNS, and there was no way to test the remote server's behavior when
|
||||
it had received a packet with EDNS0 buffer size set to 0. This is no
|
||||
longer the case; ``dig +bufsize=0`` now sends a DNS message with EDNS
|
||||
version 0 and buffer size set to 0. To disable EDNS, use ``dig
|
||||
+noedns``. :gl:`#2054`
|
||||
|
||||
- BIND 9 binaries which are neither daemons nor administrative programs
|
||||
were moved to ``$bindir``. Only ``ddns-confgen``, ``named``, ``rndc``,
|
||||
``rndc-confgen``, and ``tsig-confgen`` were left in ``$sbindir``.
|
||||
:gl:`#1724`
|
||||
|
||||
- The BIND 9 build system has been changed to use a typical
|
||||
autoconf+automake+libtool stack. This should not make any difference
|
||||
for people building BIND 9 from release tarballs, but when building
|
||||
BIND 9 from the Git repository, ``autoreconf -fi`` needs to be run
|
||||
first. Extra attention is also needed when using non-standard
|
||||
``configure`` options. :gl:`#4`
|
||||
|
||||
.. _latest NSEC3 recommendations: https://datatracker.ietf.org/doc/html/draft-ietf-dnsop-nsec3-guidance-02
|
||||
|
||||
.. _jemalloc: http://jemalloc.net/
|
||||
|
||||
Bug Fixes
|
||||
~~~~~~~~~
|
||||
|
||||
- Log files using ``timestamp``-style suffixes were not always correctly
|
||||
removed when the number of files exceeded the limit set by
|
||||
``versions``. This has been fixed. :gl:`#828`
|
||||
Reference in New Issue
Block a user