]> git.ipfire.org Git - thirdparty/bind9.git/log
thirdparty/bind9.git
19 months agonew: usr: Implement RFC 9567: EDNS Report-Channel option
Evan Hunt [Wed, 23 Oct 2024 21:29:55 +0000 (21:29 +0000)] 
new: usr: Implement RFC 9567: EDNS Report-Channel option

Add new `send-report-channel` and `log-report-channel` options. `send-report-channel` specifies an agent domain, to which error reports can be sent by querying a specially constructed name within the agent domain. EDNS Report-Channel options will be added to outgoing authoritative responses, to inform clients where to send such queries in the event of a problem.

If a zone is configured which matches the agent domain and has `log-report-channel` set to `yes`, error-reporting queries will be logged at level `info` to the `dns-reporting-agent` logging channel.

Closes #3659

Merge branch '3659-implement-draft-ietf-dnsop-dns-error-reporting' into 'main'

See merge request isc-projects/bind9!7036

19 months agosuppress report-channel for zones above the agent-domain
Evan Hunt [Tue, 22 Oct 2024 20:48:58 +0000 (13:48 -0700)] 
suppress report-channel for zones above the agent-domain

RFC 9567 section 8.1 specifies that the agent domain cannot
be a subdomain of the domain it is reporting on. therefore,
in addition to making it illegal to configure that at the
zone level, we also need to disable send-report-channel for
any zone for which the global send-report-channel value is
a subdomain.

we also now warn if send-report-channel is configured
globally to a zone that we host, but that zone doesn't
have log-report-channel set.

19 months agoexpand validity checks for send-report-channel
Evan Hunt [Mon, 21 Oct 2024 05:36:17 +0000 (22:36 -0700)] 
expand validity checks for send-report-channel

when configured at the zone level, send-report-channel cannot be
a subdomain of the zone name.

19 months agoenforce '*._er' requirement for error-reporting zones
Evan Hunt [Sun, 20 Oct 2024 08:04:06 +0000 (01:04 -0700)] 
enforce '*._er' requirement for error-reporting zones

if "log-report-channel" is set to "yes", then the zone must
contain a wildcard name matching '*._er' with a TXT record.

19 months agoset up logging functionality using log-report-channel
Evan Hunt [Sun, 20 Oct 2024 01:16:35 +0000 (18:16 -0700)] 
set up logging functionality using log-report-channel

the logging of error-report queries is no longer activated by
the view's "send-report-channel" option; that now only configures
the agent-domain value that is to be sent in authoritative
responses. the warning that was logged when "send-agent-domain"
was set to a value that is not a locally configured zone has
been removed.

error-report logging is now activated by the presence of an
authoritative zone with the "log-report-channel" option set to
"yes".  this is not permitted in the root zone.

NOTE: a zone with "log-report-channel yes;" should contain a
"*._er" wildcard, but that requirement is not yet enforced.

19 months agoadd log-report-channel zone option
Evan Hunt [Sat, 19 Oct 2024 20:26:38 +0000 (13:26 -0700)] 
add log-report-channel zone option

add a boolean "log-report-channel" option for primary and
secondary zones, which sets the DNS_ZONEOPT_LOGREPORTS zone
flag. this option is not yet functional.

19 months agoAllow send-report-channel to be set at the zone level
Mark Andrews [Wed, 15 May 2024 04:10:43 +0000 (14:10 +1000)] 
Allow send-report-channel to be set at the zone level

If send-report-channel is set at the zone level, it will
be stored in the zone object and used instead of the
view-level agent-domain when constructing the EDNS
Report-Channel option.

19 months agoAdd send-report-channel option
Mark Andrews [Sun, 6 Nov 2022 14:18:44 +0000 (14:18 +0000)] 
Add send-report-channel option

This commit adds support for the EDNS Report-Channel option,
which is returned in authoritative responses when EDNS is in use.

"send-report-channel" sets the Agent-Domain value that will be
included in EDNS Report-Channel options.  This is configurable at
the options/view level; the value is a DNS name. Setting the
Agent-Domain to the root zone (".") disables the option.

When this value has been set, incoming queries matchng the form
_er.<qtype>.<qname>.<extended-error-code>._er.<agent-domain>/TXT
will be logged to the dns-reporting-agent channel at INFO level.

(Note: error reporting queries will only be accepted if sent via
TCP or with a good server cookie.  If neither is present, named
returns BADCOOKIE to complete the DNS COOKIE handshake, or TC=1
to switch the client to TCP.)

19 months agonew: usr: Add detailed debugging of update-policy rule matching
Mark Andrews [Wed, 23 Oct 2024 20:29:11 +0000 (20:29 +0000)] 
new: usr: Add detailed debugging of update-policy rule matching

This logs how named determines if an update request is granted or denied when using update-policy.

Closes #4751

Merge branch '4751-provide-debug-level-logging-of-update-policy' into 'main'

See merge request isc-projects/bind9!9074

19 months agoCheck update-policy logs
Mark Andrews [Thu, 30 May 2024 03:52:55 +0000 (13:52 +1000)] 
Check update-policy logs

19 months agoAdd per rule logging of dns_ssutable_checkrules processing
Mark Andrews [Wed, 29 May 2024 05:04:37 +0000 (15:04 +1000)] 
Add per rule logging of dns_ssutable_checkrules processing

These are logged to the update category at debug level 99 and
have the following form.

    update-policy: using: signer=ddns-key.example.nil, name=updated.example.nil, addr=10.53.0.1, tcp=0, type=A, target=
    update-policy: trying: grant zonesub-key.example.nil zonesub TXT
    update-policy: next rule: signer does not match identity
    update-policy: trying: grant ddns-key.example.nil zonesub ANY
    update-policy: matched: grant ddns-key.example.nil zonesub ANY

or

    update-policy: using: signer=restricted.example.nil, name=example.nil, addr=10.53.0.1, tcp=0, type=TXT, target=
    update-policy: trying: grant zonesub-key.example.nil zonesub TXT
    update-policy: next rule: signer does not match identity
    update-policy: trying: grant ddns-key.example.nil zonesub ANY
    update-policy: next rule: signer does not match identity
    update-policy: trying: grant restricted.example.nil zonesub ANY
    update-policy: next rule: name/subdomain mismatch
    update-policy: no match found

where 'using:' is the calling parameters of dns_ssutable_checkrules,
'trying:' in the rule bing evaluated, "next rule:" is the reason
the rule does not match, "matched:" repeats the matched rule, and
no match found is reported when te set of rules is exhausted.

19 months agoAdd log category update-policy
Mark Andrews [Wed, 28 Aug 2024 04:12:05 +0000 (14:12 +1000)] 
Add log category update-policy

19 months agofix: test: Use UTC timezone when handling keys in kasp test library
Nicki Křížek [Tue, 22 Oct 2024 08:20:25 +0000 (08:20 +0000)] 
fix: test: Use UTC timezone when handling keys in kasp test library

When working with key timestamps, ensure we correctly set the UTC
timezone in order for the tests to work consistently regardless of the
local time setting.

Closes #4999

Merge branch '4999-pytest-kasp-use-utc-timezone' into 'main'

See merge request isc-projects/bind9!9673

19 months agoSet TZ to Australia/Sydney for bookworm CI job
Nicki Křížek [Mon, 21 Oct 2024 10:18:43 +0000 (12:18 +0200)] 
Set TZ to Australia/Sydney for bookworm CI job

Use a different timezone via the TZ variable in at least one of the
system test jobs in order to detect possible issues with timezone
handling in python.

19 months agoUse UTC timezone when handling keys in kasp test library
Nicki Křížek [Mon, 21 Oct 2024 10:08:52 +0000 (12:08 +0200)] 
Use UTC timezone when handling keys in kasp test library

When working with key timestamps, ensure we correctly set the UTC
timezone in order for the tests to work consistently regardless of the
local time setting.

19 months agofix: usr: Parsing of hostnames in rndc.conf was broken
Mark Andrews [Tue, 22 Oct 2024 00:11:39 +0000 (00:11 +0000)] 
fix: usr:  Parsing of hostnames in rndc.conf was broken

When DSCP support was removed, parsing of hostnames in rndc.conf was accidentally broken, resulting in an assertion failure.  This has been fixed.

Closes #4991

Merge branch '4991-rndc-fix-parsing-hostnames' into 'main'

See merge request isc-projects/bind9!9669

19 months agoAdd regression test for [GL #4991]
Mark Andrews [Mon, 21 Oct 2024 00:43:29 +0000 (11:43 +1100)] 
Add regression test for [GL #4991]

19 months agoFix parsing of hostnames in rndc.conf
Mark Andrews [Mon, 21 Oct 2024 00:34:32 +0000 (11:34 +1100)] 
Fix parsing of hostnames in rndc.conf

When DSCP was removed the parsing of hostnames was accidentally
broken resulting in an assertion failure.  Call cfg_parse_tuple
rather than using custom code in parse_sockaddrnameport.

19 months agochg: test: Rewrite verify system test to pytest
Michal Nowak [Mon, 21 Oct 2024 11:59:00 +0000 (11:59 +0000)] 
chg: test: Rewrite verify system test to pytest

Merge branch 'mnowak/pytest_rewrite_verify' into 'main'

See merge request isc-projects/bind9!9249

19 months agoRewrite verify system test to pytest
Michal Nowak [Thu, 1 Aug 2024 19:35:29 +0000 (21:35 +0200)] 
Rewrite verify system test to pytest

19 months agochg: doc: Review BIND ARM (9.20 updates)
Nicki Křížek [Mon, 21 Oct 2024 11:50:39 +0000 (11:50 +0000)] 
chg: doc: Review BIND ARM (9.20 updates)

Forward-port of !9508

Closes #4945

Merge branch '4945-bind-arm-review-9.20-updates' into 'main'

See merge request isc-projects/bind9!9668

19 months agoReview and update ARM documentation
Suzanne Goldlust [Tue, 17 Sep 2024 21:23:08 +0000 (21:23 +0000)] 
Review and update ARM documentation

Minor edits and fixes for the documentation added from 9.18.28 through
9.20.0.

(cherry picked from commit 998c61c1cfdbe89a91a56acc8132c5b05bc2acec)

19 months agochg: test: xfail upforwd system test if DNSTAP is enabled
Michal Nowak [Mon, 21 Oct 2024 10:52:26 +0000 (10:52 +0000)] 
chg: test: xfail upforwd system test if DNSTAP is enabled

See isc-projects/bind9#4996

Merge branch 'mnowak/mark-upforwd-xfail' into 'main'

See merge request isc-projects/bind9!9662

19 months agoxfail upforwd system test if DNSTAP is enabled
Michal Nowak [Thu, 17 Oct 2024 12:26:57 +0000 (14:26 +0200)] 
xfail upforwd system test if DNSTAP is enabled

19 months agoAdd with_dnstap mark
Michal Nowak [Thu, 17 Oct 2024 12:26:32 +0000 (14:26 +0200)] 
Add with_dnstap mark

19 months agofix: doc: All footnotes need to have unique name and be referenced
Michal Nowak [Mon, 21 Oct 2024 07:23:10 +0000 (07:23 +0000)] 
fix: doc: All footnotes need to have unique name and be referenced

With Sphinx 8.1.0, footnotes can't stand on their own and have to be
referenced from somewhere, otherwise build fails, e.g.:

    doc/dnssec-guide/signing.rst:1470: WARNING: Footnote [#] is not referenced. [ref.footnote]

Merge branch 'mnowak/fix-dnssec-guide-footnote' into 'main'

See merge request isc-projects/bind9!9663

19 months agoAll footnotes need to have unique name and be referenced
Michal Nowak [Thu, 17 Oct 2024 17:49:17 +0000 (19:49 +0200)] 
All footnotes need to have unique name and be referenced

With Sphinx 8.1.0, footnotes can't stand on their own and have to be
referenced from somewhere, otherwise build fails, e.g.:

    doc/dnssec-guide/signing.rst:1470: WARNING: Footnote [#] is not referenced. [ref.footnote]

19 months agofix: nil: corrected code style errors
Evan Hunt [Fri, 18 Oct 2024 19:31:40 +0000 (19:31 +0000)] 
fix: nil: corrected code style errors

- add missing brackets around one-line statements
- add paretheses around return values

Merge branch 'each-style-corrections' into 'main'

See merge request isc-projects/bind9!9664

19 months agocorrected code style errors
Evan Hunt [Thu, 17 Oct 2024 20:22:48 +0000 (13:22 -0700)] 
corrected code style errors

- add missing brackets around one-line statements
- add paretheses around return values

19 months agofix: usr: Restore values when dig prints command line
Mark Andrews [Fri, 18 Oct 2024 02:09:38 +0000 (02:09 +0000)] 
fix: usr:  Restore values when dig prints command line

Options of the form `[+-]option=<value>` failed to display the value on the printed command line. This has been fixed.

Closes #4993

Merge branch '4993-dig-restore-command-line-values' into 'main'

See merge request isc-projects/bind9!9653

19 months agoCorrectly get final token
Mark Andrews [Thu, 17 Oct 2024 01:31:25 +0000 (12:31 +1100)] 
Correctly get final token

19 months agoRestore seperator values
Mark Andrews [Thu, 17 Oct 2024 01:03:22 +0000 (12:03 +1100)] 
Restore seperator values

strtok_r is destructive.  Restore the seperators so that the command
line can be properly displayed.

19 months agofix: import missing definitions for fips builds
Aydın Mercan [Thu, 17 Oct 2024 14:54:52 +0000 (14:54 +0000)] 
fix: import missing definitions for fips builds

FIPS build of libisc failed from some missing definitions.

Closes #4994

Merge branch '4994-crypto-c-174-7-error-implicit-declaration-of-function-isc_fips_mode' into 'main'

See merge request isc-projects/bind9!9655

19 months agoinclude missing definitions for fips builds
Aydın Mercan [Thu, 17 Oct 2024 05:35:06 +0000 (08:35 +0300)] 
include missing definitions for fips builds

19 months agochg: doc: Read the Docs should always source requirements.txt from "main"
Michal Nowak [Thu, 17 Oct 2024 10:47:11 +0000 (10:47 +0000)] 
chg: doc: Read the Docs should always source requirements.txt from "main"

HTTP URI of doc/arm/requirements.txt on the "main" branch is the source
of PyPI packages in CI base image. To make it consistent in all
maintained CI branches on RTD, use the HTTP URI as well.

This change is non-material on the "main" branch, but ensures the right
packages on stable branches where for RTD we currently leverage outdated
packages because we failed to update doc/arm/requirements.txt there.

Merge branch 'mnowak/rtd-always-resource-requirements-txt-from-main' into 'main'

See merge request isc-projects/bind9!9630

19 months agoRead the Docs should always source requirements.txt from "main"
Michal Nowak [Mon, 14 Oct 2024 18:17:28 +0000 (20:17 +0200)] 
Read the Docs should always source requirements.txt from "main"

HTTP URI of doc/arm/requirements.txt on the "main" branch is the source
of PyPI packages in CI base image. To make it consistent in all
maintained CI branches on RTD, use the HTTP URI as well.

This change is non-material on the "main" branch, but ensures the right
packages on stable branches where for RTD we currently leverage outdated
packages because we failed to update doc/arm/requirements.txt there.

19 months agochg: doc: Update Sphinx, docutils, and sphinx_rtd_theme packages
Michal Nowak [Thu, 17 Oct 2024 10:08:55 +0000 (10:08 +0000)] 
chg: doc: Update Sphinx, docutils, and sphinx_rtd_theme packages

Merge branch 'mnowak/doc-tools-october-2024-updates' into 'main'

See merge request isc-projects/bind9!9652

19 months agoAdd RFCs referenced by footnotes
Michal Nowak [Wed, 16 Oct 2024 18:04:55 +0000 (20:04 +0200)] 
Add RFCs referenced by footnotes

With Sphinx 8.1.0, footnotes can't stand on their own and have
referenced from somewhere:

    /builds/isc-projects/bind9/doc/arm/general.rst:439: WARNING: Footnote [#] is not referenced. [ref.footnote]
    /builds/isc-projects/bind9/doc/arm/general.rst:441: WARNING: Footnote [#] is not referenced. [ref.footnote]
    /builds/isc-projects/bind9/doc/arm/general.rst:445: WARNING: Footnote [#] is not referenced. [ref.footnote]
    /builds/isc-projects/bind9/doc/arm/general.rst:457: WARNING: Footnote [#] is not referenced. [ref.footnote]

19 months agoUpdate Sphinx, docutils, and sphinx_rtd_theme packages
Michal Nowak [Wed, 16 Oct 2024 16:12:04 +0000 (18:12 +0200)] 
Update Sphinx, docutils, and sphinx_rtd_theme packages

19 months agochg: test: Disable too-many/too-few pylint checks
Nicki Křížek [Thu, 17 Oct 2024 09:11:26 +0000 (09:11 +0000)] 
chg: test: Disable too-many/too-few pylint checks

Merge branch 'nicki/pylint-disable-too-few-too-many-checks' into 'main'

See merge request isc-projects/bind9!9626

19 months agoDisable too-many/too-few pylint checks
Nicki Křížek [Mon, 14 Oct 2024 12:44:06 +0000 (14:44 +0200)] 
Disable too-many/too-few pylint checks

Enforcing pylint standards and default for our test code seems
counter-productive. Since most of the newly added code are tests or is
test-related, encountering these checks rarely make us refactor the code
in other ways and we just disable these checks individually. Code that
is too complex or convoluted will be pointed out in reviews anyways.

19 months agofix: usr: 'Recursive-clients 0;' triggers an assertion
Mark Andrews [Thu, 17 Oct 2024 06:43:25 +0000 (06:43 +0000)] 
fix: usr: 'Recursive-clients 0;' triggers an assertion

BIND 9.20.0 broke `recursive-clients 0;`.  This has now been fixed.

Closes #4987

Merge branch '4987-fix-recursive-clients-0' into 'main'

See merge request isc-projects/bind9!9621

19 months agoAdd regression test for [GL #4987]
Mark Andrews [Mon, 14 Oct 2024 03:15:27 +0000 (14:15 +1100)] 
Add regression test for [GL #4987]

19 months agoFix recursive-clients 0
Mark Andrews [Mon, 14 Oct 2024 03:09:03 +0000 (14:09 +1100)] 
Fix recursive-clients 0

Setting recursive-clients 0 triggered an assertion in isc_quota_soft.
This has now been fixed.

19 months agoMerge tag 'v9.21.2'
Michal Nowak [Wed, 16 Oct 2024 15:49:36 +0000 (17:49 +0200)] 
Merge tag 'v9.21.2'

19 months agochg: test: Rewrite ksr system test to pytest
Matthijs Mekking [Wed, 16 Oct 2024 15:45:18 +0000 (15:45 +0000)] 
chg: test: Rewrite ksr system test to pytest

Merge branch 'matthijs-pytest-rewrite-ksr' into 'main'

See merge request isc-projects/bind9!9445

19 months agoRetry dnssec-verify in kasp test code
Matthijs Mekking [Tue, 15 Oct 2024 08:43:41 +0000 (10:43 +0200)] 
Retry dnssec-verify in kasp test code

It is possible that the zone is not yet fully signed because it is
signed in batches. Retry the AXFR and verify command a couple of times.

19 months agoAddress pylint issues
Nicki Křížek [Mon, 14 Oct 2024 12:49:38 +0000 (14:49 +0200)] 
Address pylint issues

19 months agoUse difflib rather than diff cmd
Nicki Křížek [Tue, 8 Oct 2024 13:02:37 +0000 (15:02 +0200)] 
Use difflib rather than diff cmd

19 months agoMove algorithm defaults to check_keys()
Nicki Křížek [Tue, 8 Oct 2024 12:33:37 +0000 (14:33 +0200)] 
Move algorithm defaults to check_keys()

19 months agoUse f-strings
Nicki Křížek [Tue, 8 Oct 2024 12:12:10 +0000 (14:12 +0200)] 
Use f-strings

19 months agoSimplify command invocation
Nicki Křížek [Tue, 8 Oct 2024 12:11:56 +0000 (14:11 +0200)] 
Simplify command invocation

19 months agoRemove unused isctest/kasp code
Nicki Křížek [Tue, 8 Oct 2024 12:10:50 +0000 (14:10 +0200)] 
Remove unused isctest/kasp code

19 months agoRename kasp function to check_*
Nicki Křížek [Tue, 8 Oct 2024 12:09:05 +0000 (14:09 +0200)] 
Rename kasp function to check_*

If a function is expected to assert / raise on failure (rather than
return boolean), its name should start with "check_".

19 months agoUse convenience wrappers for kasp key operations
Nicki Křížek [Mon, 7 Oct 2024 16:08:02 +0000 (18:08 +0200)] 
Use convenience wrappers for kasp key operations

19 months agoConvert ksr system test to pytest
Matthijs Mekking [Mon, 2 Sep 2024 15:36:47 +0000 (17:36 +0200)] 
Convert ksr system test to pytest

Move all test cases from tests.sh to tests_ksr.py. The only test that
is not moved is the check that key id's match expected keys. The
shell-based system test checks two earlier set environment variables
against each other that has become redundant in the pytest variant,
because we now check the signed key response against a list of keys
and for each key we take into account the timing metadata. So we
already ensure that each published key is in the correct key bundle.

19 months agoIntroduce pytest kasp library
Matthijs Mekking [Mon, 2 Sep 2024 15:51:32 +0000 (17:51 +0200)] 
Introduce pytest kasp library

Write initial pytest kasp library. This contains everything that is
required for testing Offline KSK functionality with pytest.

This includes:
- addtime: adding a value to a timing metadata
- get_timing_metdata: retrieve timing metadata from keyfile
- get_metadata/get_keystate: retrieve metadata from statefile
- get_keytag: retrieve keytag from base keyfile string
- get_keyrole: get key role from statefile
- dnskey_equals: compare DNSKEY record from file against a string
- cds_equals: compare CDS derived from file against a string
- zone_is_signed: wait until a zone is completely signed
- dnssec_verify: verify a DNSSEC signed zone with dnssec-verify
- check_dnssecstatus: check rndc dnssec -status output
- check_signatures: check that signatures for a given RRset are correct
- check_dnskeys: check that the published DNSKEY RRset is correct
- check_cds: check that the published CDS RRset is correct
- check_apex: check SOA, DNSKEY, CDNSKEY, and CDS RRset
- check_subdomain: check an RRset below the apex

19 months agoChange dnssec-ksr key sorting
Matthijs Mekking [Mon, 2 Sep 2024 15:48:22 +0000 (17:48 +0200)] 
Change dnssec-ksr key sorting

Sort keys on algorithm, then keytag. This is more convenient for
testing.

19 months agochg: dev: unify explicit fetching and libcrypto handling
Aydın Mercan [Wed, 16 Oct 2024 12:53:31 +0000 (12:53 +0000)] 
chg: dev: unify explicit fetching and libcrypto handling

Unify libcrypto initialization and explicit digest fetching in a single place.

It will remove the remaining implicit fetching and deduplicate explicit
fetching inside the codebase. Initialization has been moved in to ensure
OpenSSL cleanup is done only after fetched contextes are destroyed.

Merge branch 'aydin/libdns-explicit-fetch' into 'main'

See merge request isc-projects/bind9!9288

19 months agounify libcrypto and evp_md handling
Aydın Mercan [Thu, 8 Aug 2024 10:16:50 +0000 (13:16 +0300)] 
unify libcrypto and evp_md handling

Unify libcrypto initialization and explicit digest fetching in a single
place and move relevant code to the isc__crypto namespace instead of
isc__tls.

It will remove the remaining implicit fetching and deduplicate explicit
fetching inside the codebase.

19 months agorem: dev: Remove unused <openssl/hmac.h> headers from OpenSSL shims
Mark Andrews [Wed, 16 Oct 2024 04:54:09 +0000 (04:54 +0000)] 
rem: dev: Remove unused <openssl/hmac.h> headers from OpenSSL shims

The <openssl/hmac.h> header was unused and including the
header might cause build failure when OpenSSL doesn't have
Engines support enabled.

See https://fedoraproject.org/wiki/Changes/OpensslDeprecateEngine

Removes unused hmac includes after Remove OpenSSL Engine support
(commit ef7aba70) removed engine support.

Merge branch 'main-openssl-engine' into 'main'

See merge request isc-projects/bind9!9228

19 months agoRemove unused <openssl/hmac.h> headers from OpenSSL shims
Petr Menšík [Fri, 2 Aug 2024 23:28:36 +0000 (01:28 +0200)] 
Remove unused <openssl/hmac.h> headers from OpenSSL shims

The <openssl/hmac.h> header was unused and including the
header might cause build failure when OpenSSL doesn't have
Engines support enabled.

See https://fedoraproject.org/wiki/Changes/OpensslDeprecateEngine

Removes unused hmac includes after Remove OpenSSL Engine support
(commit ef7aba70726cff9afaaa8c7054098f84087ccf84) removed engine
support.

19 months agochg: test: Remove unused sbytes, stime, n, response, and rtime variables
Michal Nowak [Tue, 15 Oct 2024 17:53:46 +0000 (17:53 +0000)] 
chg: test: Remove unused sbytes, stime, n, response, and rtime variables

Merge branch 'mnowak/drop-unused-variables' into 'main'

See merge request isc-projects/bind9!9617

19 months agoAdd vulture
Michal Nowak [Wed, 2 Oct 2024 08:13:26 +0000 (10:13 +0200)] 
Add vulture

19 months agoRemove unused sbytes, stime, n, response, and rtime variables
Michal Nowak [Tue, 1 Oct 2024 14:07:14 +0000 (16:07 +0200)] 
Remove unused sbytes, stime, n, response, and rtime variables

19 months agochg: test: Rewrite tools system test to pytest
Michal Nowak [Tue, 15 Oct 2024 17:19:09 +0000 (17:19 +0000)] 
chg: test: Rewrite tools system test to pytest

Merge branch 'mnowak/pytest_rewrite_tools' into 'main'

See merge request isc-projects/bind9!9208

19 months agoRewrite tools system test to pytest
Michal Nowak [Wed, 31 Jul 2024 16:40:32 +0000 (18:40 +0200)] 
Rewrite tools system test to pytest

19 months agochg: ci: Allow re-try of unit tests on FreeBSD 14
Nicki Křížek [Tue, 15 Oct 2024 11:14:02 +0000 (11:14 +0000)] 
chg: ci: Allow re-try of unit tests on FreeBSD 14

The unit test doh_test tends do fail quite often due to exceeding run
time limit in the unit:clang:freebsd14:amd64 job. Use a retry on gitlab
level to alleviate the issue until a better fix is available.

Related #4924

Merge branch '4924-retry-doh_test-freebsd14' into 'main'

See merge request isc-projects/bind9!9578

19 months agoAllow re-try of unit tests on FreeBSD 14
Nicki Křížek [Tue, 1 Oct 2024 15:10:23 +0000 (17:10 +0200)] 
Allow re-try of unit tests on FreeBSD 14

The unit test doh_test tends do fail quite often due to exceeding run
time limit in the unit:clang:freebsd14:amd64 job. Use a retry on gitlab
level to alleviate the issue until a better fix is available.

19 months agochg: test: Support dnspython 2.7.0
Nicki Křížek [Tue, 15 Oct 2024 10:27:08 +0000 (10:27 +0000)] 
chg: test: Support dnspython 2.7.0

Closes #4988

Merge branch '4988-dnspython-2.7.0-support' into 'main'

See merge request isc-projects/bind9!9634

19 months agoSupport dnspython 2.7.0
Nicki Křížek [Tue, 15 Oct 2024 08:03:25 +0000 (10:03 +0200)] 
Support dnspython 2.7.0

CookieOption with new .server/.client attributes (rather than .data) was
added to dnspython. Adjust the code to use the new attributes if
available and fall back to the old code for dnspython<2.7.0
compatibility.

19 months agofix: usr: Fix NSEC3 closest encloser lookup for names with empty non-terminals
Mark Andrews [Mon, 14 Oct 2024 23:54:27 +0000 (23:54 +0000)] 
fix: usr: Fix NSEC3 closest encloser lookup for names with empty non-terminals

The performance improvement for finding the NSEC3 closest encloser when generating authoritative responses could cause servers to return incorrect NSEC3 records in some cases. This has been fixed.

Closes #4950

Merge branch '4950-bind-logs-expected-covering-nsec3-got-an-exact-match' into 'main'

See merge request isc-projects/bind9!9610

19 months agoTest that the correct NSEC3 closest encloser is returned
Mark Andrews [Thu, 10 Oct 2024 07:29:02 +0000 (18:29 +1100)] 
Test that the correct NSEC3 closest encloser is returned

19 months agoUse a binary search to find the NSEC3 closest encloser
Mark Andrews [Thu, 10 Oct 2024 05:39:10 +0000 (16:39 +1100)] 
Use a binary search to find the NSEC3 closest encloser

maxlabels is the suffix length that corresponds to the latest
NXDOMAIN response.  minlabels is the suffix length that corresponds
to longest found existing name.

19 months agofix: usr: Report client transport in 'rndc recursing'
Evan Hunt [Mon, 14 Oct 2024 21:16:27 +0000 (21:16 +0000)] 
fix: usr: Report client transport in 'rndc recursing'

When `rndc recursing` is used to dump the list of recursing clients, it now indicates whether a query was sent via UDP, TCP, TLS, or HTTP.

Closes #4971

Merge branch '4971-recursing-show-client-transport' into 'main'

See merge request isc-projects/bind9!9590

19 months agoadd a unit test for dns_transport_totext()
Evan Hunt [Sat, 12 Oct 2024 03:16:24 +0000 (20:16 -0700)] 
add a unit test for dns_transport_totext()

confirm that the text returned by the dns_transport_totext()
function matches the transport type when it was created.

19 months agocheck 'rndc recursing'
Evan Hunt [Sat, 12 Oct 2024 03:19:02 +0000 (20:19 -0700)] 
check 'rndc recursing'

there was no system test that exercised 'rndc recursing'; a
simple one has now been added; it confirms that the number of
recursing clients reported by 'rndc stats' is in agreement with
the list returned by 'rndc recursing'.

19 months agoreport client transport in 'rndc recursing'
Evan Hunt [Fri, 4 Oct 2024 02:51:20 +0000 (19:51 -0700)] 
report client transport in 'rndc recursing'

when dumping the list of recursing clients, indicate whether
a given query was sent over UDP, TCP, TLS, or HTTP.

19 months agofix: test: Always use requirements.txt from main
Michal Nowak [Mon, 14 Oct 2024 18:07:32 +0000 (18:07 +0000)] 
fix: test: Always use requirements.txt from main

Merge branch 'mnowak/update-util-release-tarball-comparison-sh' into 'main'

See merge request isc-projects/bind9!9603

19 months agoAdd libjson-c-dev before #4960 is addressed
Michal Nowak [Wed, 9 Oct 2024 10:53:50 +0000 (12:53 +0200)] 
Add libjson-c-dev before #4960 is addressed

Otherwise the "statistics-channels" option in doc/misc/options and
doc/man/named.conf.5in is marked as "not configured" (contrary to what
we have in release tarballs as they were build on a different image that
has libjson-c and libxml2 in it).

Caused by #4895 that made the option dependant on libjson-c or libxml2
presence in the build image.

19 months agoAlways use requirements.txt from main
Michal Nowak [Wed, 9 Oct 2024 10:26:28 +0000 (12:26 +0200)] 
Always use requirements.txt from main

Instances of the requirements.txt file may be outdated in other
branches.

19 months agoDrop BIND 9.16 support
Michal Nowak [Wed, 9 Oct 2024 09:29:58 +0000 (11:29 +0200)] 
Drop BIND 9.16 support

19 months agochg: ci: Increase shotgun pipeline timeout
Nicki Křížek [Mon, 14 Oct 2024 11:02:06 +0000 (11:02 +0000)] 
chg: ci: Increase shotgun pipeline timeout

When running shotgun tests on tagged releases, the increased number of
jobs may cause the shotgun pipeline to take longer than 50 minutes to
finish.

Merge branch 'nicki/increase-shotgun-pipeline-timeout' into 'main'

See merge request isc-projects/bind9!9599

19 months agoIncrease shotgun pipeline timeout
Nicki Křížek [Tue, 8 Oct 2024 14:22:19 +0000 (16:22 +0200)] 
Increase shotgun pipeline timeout

When running shotgun tests on tagged releases, the increased number of
jobs may cause the shotgun pipeline to take longer than 50 minutes to
finish.

19 months agochg: usr: Harden key management when key files have become unavailabe
Matthijs Mekking [Mon, 14 Oct 2024 07:15:41 +0000 (07:15 +0000)] 
chg: usr: Harden key management when key files have become unavailabe

Prior to doing key management, BIND 9 will check if the key files on disk match the expected keys. If key files for previously observed keys have become unavailable, this will prevent the internal key manager from running.

Merge branch '4763-do-not-roll-if-key-files-are-missing' into 'main'

See merge request isc-projects/bind9!9337

19 months agoAdd new behavior to the ARM
Matthijs Mekking [Fri, 11 Oct 2024 12:38:55 +0000 (14:38 +0200)] 
Add new behavior to the ARM

Add text to the ARM that describes what we do in case key files have
become unavailable.

19 months agoTest removing DNSKEYs from other providers
Matthijs Mekking [Tue, 20 Aug 2024 12:38:24 +0000 (14:38 +0200)] 
Test removing DNSKEYs from other providers

In a multi-signer setup, removing DNSKEY records from the zone should
not be treated as a key that previously exists in the keyring, thus
blocking the keymgr. Add a test case to make sure.

19 months agoSmall keymgr improvement
Matthijs Mekking [Mon, 19 Aug 2024 07:49:21 +0000 (09:49 +0200)] 
Small keymgr improvement

When a key is to be purged, don't run the key state machinery for it.

19 months agoAdd additional test case with purged key
Matthijs Mekking [Mon, 19 Aug 2024 07:46:56 +0000 (09:46 +0200)] 
Add additional test case with purged key

Test that if a key to be purged is in the keyring, it does not
prevent the keymgr from running. Normally a key that is in the keyring
should be available again on the next run, but that is not true for
a key that can be purged.

In addition, fix some wait_for_log calls, by adding the missing
'|| ret=1' parts.

19 months agoFix some system test cases
Matthijs Mekking [Wed, 14 Aug 2024 12:38:22 +0000 (14:38 +0200)] 
Fix some system test cases

Some test cases were working but for the wrong reasons. These started
to fail when I implemented the first approach for #4763, where the
existence of a DNSKEY together with an empty keyring is suspicious and
would prevent the keymgr from running.

These are:

1. kasp: The multisigner-model2.kasp zone has ZSKs from other providers
   in the zone, but not yet its own keys. Pregenerate signing keys and
   add them to the unsigned zone as well.

2. kasp: The dynamic-signed-inline-signing.kasp zone has a key generated
   and added in the raw version of the zone. But the key file is stored
   outside the key-directory for the given zone. Add '-K keys' to the
   dnssec-keygen command.

19 months agoVerify new key files before running keymgr
Matthijs Mekking [Thu, 15 Aug 2024 08:36:15 +0000 (10:36 +0200)] 
Verify new key files before running keymgr

Prior to running the keymgr, first make sure that existing keys
are present in the new keylist. If not, treat this as an operational
error where the keys are made offline (temporarily), possibly unwanted.

19 months agoAdd test for missing key files, don't roll
Matthijs Mekking [Wed, 3 Jul 2024 09:32:11 +0000 (11:32 +0200)] 
Add test for missing key files, don't roll

In this specific case the key files are temporary unavailable, for
example because of an operator error, or a mount failure). In such
cases, BIND should not try to roll over these keys.

19 months agofix: dig - always set the default port when doing a UDP query
Artem Boldariev [Thu, 10 Oct 2024 19:05:54 +0000 (19:05 +0000)] 
fix: dig - always set the default port when doing a UDP query

This commit ensures that the port is set before attempting a UDP
query. Before that a situation could appear when previous query have
completed over a different transport (that uses a dedicated port) and
then a UDP query will be attempted over the port of the previous
transport.

Closes: #4984.
Merge branch 'artem-debian-bug-1059582' into 'main'

See merge request isc-projects/bind9!9618

19 months agodig: always set the default port when doing a UDP query
Artem Boldariev [Thu, 10 Oct 2024 10:18:05 +0000 (13:18 +0300)] 
dig: always set the default port when doing a UDP query

This commit ensures that the port is set before attempting a UDP
query. Before that a situation could appear when previous query have
completed over a different transport (that uses a dedicated port) and
then a UDP query will be attempted over the port of the previous
transport.

19 months agochg: doc: Add release note for #4460
Matthijs Mekking [Thu, 10 Oct 2024 10:22:57 +0000 (10:22 +0000)] 
chg: doc: Add release note for #4460

This release note was missing due to a malformed Merge Request title.

The text is not copied verbatim, but changed to something more release
note-like.

Merge branch '4460-add-missing-release-note' into 'main'

See merge request isc-projects/bind9!9598

19 months agoAdd release note for #4460
Matthijs Mekking [Tue, 8 Oct 2024 12:42:37 +0000 (14:42 +0200)] 
Add release note for #4460

This release note was missing due to a malformed Merge Request title.

The text is not copied verbatim, but changed to something more release
note-like.

19 months agofix: dev: Revert "Improve performance when looking for the closest encloser"
Matthijs Mekking [Thu, 10 Oct 2024 09:27:29 +0000 (09:27 +0000)] 
fix: dev: Revert "Improve performance when looking for the closest encloser"

Revert "fix: chg: Improve performance when looking for the closest encloser when returning NSEC3 proofs"

This reverts merge request !9436

Closes #4950

Merge branch 'revert-78d48f7a' into 'main'

See merge request isc-projects/bind9!9611

19 months agoRevert "fix: chg: Improve performance when looking for the closest encloser when...
Matthijs Mekking [Thu, 10 Oct 2024 06:59:28 +0000 (06:59 +0000)] 
Revert "fix: chg: Improve performance when looking for the closest encloser when returning NSEC3 proofs"

This reverts merge request !9436

19 months agofix: dev: Fix error path bugs in the manager's "recursing-clients" list management
Arаm Sаrgsyаn [Wed, 9 Oct 2024 11:38:35 +0000 (11:38 +0000)] 
fix: dev: Fix error path bugs in the manager's "recursing-clients" list management

In two places, after linking the client to the manager's
"recursing-clients" list using the check_recursionquota()
function, the query.c module fails to unlink it on error
paths. Fix the bugs by unlinking the client from the list.

Merge branch 'aram/unlink-recursing-clients-on-error-paths' into 'main'

See merge request isc-projects/bind9!9586

19 months agoRefactor the way check_recursionquota() is used
Aram Sargsyan [Wed, 2 Oct 2024 16:39:13 +0000 (16:39 +0000)] 
Refactor the way check_recursionquota() is used

Rename check_recursionquota() to acquire_recursionquota(), and
implement a new function called release_recursionquota() to
reverse the action. It helps with decreasing code duplication.