1
0
Fork 0
bind9/doc/notes/notes-9.20.8.rst
Daniel Baumann f66ff7eae6
Adding upstream version 1:9.20.9.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-21 13:32:37 +02:00

140 lines
5.7 KiB
ReStructuredText

.. 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.20.8
---------------------
New Features
~~~~~~~~~~~~
- Add support for EDE 20 (Not Authoritative)
Support was added for EDE codes 20 (Not Authoritative) when the client
requests recursion (RD) but the server has recursion disabled.
:rfc:`8914` indicates that EDE 20 should also be returned if the
client does not have the RD bit set (and recursion is needed), but it
does not apply for BIND; BIND would try to resolve from the "deepest"
referral in the AUTHORITY section. For example, if the client asks for
``www.isc.org/A`` but the server only knows the root domain, it will
return NOERROR but no answer for ``www.isc.org/A``, just the list of
other servers to ask. :gl:`#1836`
- Add support for EDE 7 and EDE 8.
Support was added for EDE codes 7 (Signature Expired) and 8 (Signature
Not Yet Valid), which might occur during DNSSEC validation.
:gl:`#2715`
- :iscman:`dig` can now display the received BADVERS message during
negotiation.
:option:`dig +showbadvers` now displays the received BADVERS message
and continues the EDNS version negotiation. Previously, to see the
BADVERS message :option:`dig +noednsnegotiation` had to be specified,
which terminated the EDNS negotiation. Additionally, the specified
EDNS value (``+edns=value``) is now used when making all the initial
queries with :option:`dig +trace`, i.e. EDNS version negotiation is
performed with each server when performing the trace. :gl:`#5234`
- Add an :iscman:`rndc` command to reset some statistics counters.
The new :option:`rndc reset-stats` command allows some statistics
counters to be reset during runtime. At the moment only two
"high-water" counters are supported, so the ability to reset them
after the initial peaks during the server's "warm-up" phase may be
useful for some operators. :gl:`#5251`
Bug Fixes
~~~~~~~~~
- Restore NSEC3 closest-encloser lookup improvements.
A performance improvement for finding the closest encloser when
generating authoritative responses from NSEC3 zones was previously
reverted after a bug was found that could trigger an assertion
failure. (:gl:`#4460`, :gl:`#4950`, and :gl:`#5108`) The bug has now
been fixed, and the performance improvement has been restored.
:gl:`#5204`
- Stop caching lack of EDNS support.
:iscman:`named` could falsely learn that a server did not support EDNS
when a spoofed response was received; that subsequently prevented
DNSSEC lookups from being made. This has been fixed. :gl:`#3949`
:gl:`#5066`
- Fix resolver statistics counters for timed-out responses.
When query responses timed out, the resolver could incorrectly
increase the regular response counters, even if no response was
received. This has been fixed. :gl:`#5193`
- Nested DNS validation could cause an assertion failure.
When multiple nested DNS validations were destroyed out of order, the
EDE context could be freed before all EDE codes were copied, which
could cause an assertion failure. This has been fixed. :gl:`#5213`
- Wait for memory reclamation to finish in :iscman:`named-checkconf`.
Previously, when :iscman:`named-checkzone` loaded the zone to the QP
database, the delayed memory reclamation could cause an assertion
check on exit. This has been fixed. :gl:`#5220`
- Ensure :any:`max-clients-per-query` is at least
:any:`clients-per-query`.
If the :any:`max-clients-per-query` option is set to a lower value
than :any:`clients-per-query`, the value is adjusted to match
:any:`clients-per-query`. :gl:`#5224`
- Fix write after free in validator code.
Raw integer pointers were being used for the validator's nvalidations
and nfails values, but the memory holding them could be freed while
they were still being used. Reference counted counters are now used
instead. :gl:`#5239`
- Don't enforce NOAUTH/NOCONF flags in DNSKEYs.
All DNSKEY keys are able to authenticate. The ``DNS_KEYTYPE_NOAUTH``
(and ``DNS_KEYTYPE_NOCONF``) flags were defined for the KEY rdata
type, and are not applicable to DNSKEY. Previously, however, because
the DNSKEY implementation was built on top of KEY, the ``_NOAUTH``
flag prevented authentication in DNSKEYs as well. This has been
corrected. :gl:`#5240`
- Fix several small DNSSEC timing issues.
The following small issues related to :any:`dnssec-policy` have been
fixed:
- In some cases the key manager inside BIND 9 would run every hour,
while in other cases it would run less often.
- While ``CDS`` and ``CDNSKEY`` records will be removed correctly from
the zone when the corresponding ``DS`` record needs to be updated,
the expected timing metadata for when this should happen was never
set.
- There were a couple of cases where the safety intervals were added
inappropriately, delaying key rollovers longer than necessary.
- Identical keys in a :any:`dnssec-policy` may have been
retired inappropriately. Note that having `keys` with identical
properties is discouraged in all cases.
:gl:`#5242`
- Fix inconsistency in CNAME/DNAME handling during resolution.
Previously, in some cases, the resolver could return rdatasets of type
CNAME or DNAME without the result code being set to ``DNS_R_CNAME`` or
``DNS_R_DNAME``. This could trigger an assertion failure. This has
been fixed. :gl:`#5201`