]> git.ipfire.org Git - thirdparty/bind9.git/log
thirdparty/bind9.git
4 years agoUse isc_buffer_t to keep track of incoming POST data
Artem Boldariev [Wed, 21 Jul 2021 17:10:46 +0000 (20:10 +0300)] 
Use isc_buffer_t to keep track of incoming POST data

This commit replaces the ad-hoc 64K buffer for incoming POST data with
isc_buffer_t backed by dynamically allocated buffer sized accordingly
to the value in the "Content-Length" header.

4 years agoDoH: isc__buffer_usedregion->isc_buffer_usedregion in client_send()
Artem Boldariev [Wed, 21 Jul 2021 17:03:44 +0000 (20:03 +0300)] 
DoH: isc__buffer_usedregion->isc_buffer_usedregion in client_send()

This commit replaces wrong usage of  isc__buffer_usedregion() instead
of implied  isc_buffer_usedregion().

4 years agoReplace ad-hoc DNS message buffer in client code with isc_buffer_t
Artem Boldariev [Mon, 19 Jul 2021 17:55:12 +0000 (20:55 +0300)] 
Replace ad-hoc DNS message buffer in client code with isc_buffer_t

The commit replaces an ad-hoc incoming DNS-message buffer in the
client-side DoH code with isc_buffer_t.

The commit also fixes a timing issue in the unit tests revealed by the
change.

4 years agoReplace the HTTP/2 session's ad-hoc buffer with isc_buffer_t
Artem Boldariev [Mon, 19 Jul 2021 12:20:30 +0000 (15:20 +0300)] 
Replace the HTTP/2 session's ad-hoc buffer with isc_buffer_t

This commit replaces a static ad-hoc HTTP/2 session's temporary buffer
with a realloc-able isc_buffer_t object, which is being allocated on
as needed basis, lowering the memory consumption somewhat. The buffer
is needed in very rare cases, so allocating it prematurely is not
wise.

Also, it fixes a bug in http_readcb() where the ad-hoc buffer appeared
to be improperly used, leading to a situation when the processed data
from the receiving regions can be processed twice, while unprocessed
data will never be processed.

4 years agoMerge branch 'marka-remove-print0-run.sh' into 'main'
Mark Andrews [Thu, 12 Aug 2021 01:09:25 +0000 (01:09 +0000)] 
Merge branch 'marka-remove-print0-run.sh' into 'main'

Use 'find ... -exec ... {} +' run.sh

See merge request isc-projects/bind9!5315

4 years agoreplace '-print0 | xargs -0' with '-exec ... {} +'
Mark Andrews [Tue, 3 Aug 2021 01:03:05 +0000 (11:03 +1000)] 
replace '-print0 | xargs -0' with '-exec ... {} +'

4 years agoMerge branch '2844-rndc-freeze-command-always-fails-perhaps-due-to-in-view' into...
Mark Andrews [Thu, 12 Aug 2021 00:13:32 +0000 (00:13 +0000)] 
Merge branch '2844-rndc-freeze-command-always-fails-perhaps-due-to-in-view' into 'main'

Resolve "`rndc freeze` command always fails, perhaps due to `in-view`"

Closes #2844

See merge request isc-projects/bind9!5311

4 years agoAdd CHANGES not for [GL #2844]
Mark Andrews [Tue, 3 Aug 2021 06:36:45 +0000 (16:36 +1000)] 
Add CHANGES not for [GL #2844]

4 years agoDon't freeze / thaw non-explict in-view zones
Mark Andrews [Tue, 3 Aug 2021 05:40:47 +0000 (15:40 +1000)] 
Don't freeze / thaw non-explict in-view zones

4 years agoCheck 'rndc freeze' with in-view zones works
Mark Andrews [Tue, 3 Aug 2021 06:04:41 +0000 (16:04 +1000)] 
Check 'rndc freeze' with in-view zones works

4 years agoMerge branch '1551-dnssec-signzone-prepublish-zsk-support' into 'main'
Matthijs Mekking [Wed, 11 Aug 2021 13:35:44 +0000 (13:35 +0000)] 
Merge branch '1551-dnssec-signzone-prepublish-zsk-support' into 'main'

dnssec-signzone ZSK smooth rollover

Closes #1551

See merge request isc-projects/bind9!5285

4 years agoAdd release note and change entry for [#1551]
Matthijs Mekking [Tue, 20 Jul 2021 09:40:39 +0000 (11:40 +0200)] 
Add release note and change entry for [#1551]

4 years agoFix bug in dst_key_copymetadata
Matthijs Mekking [Tue, 20 Jul 2021 09:12:07 +0000 (11:12 +0200)] 
Fix bug in dst_key_copymetadata

When copying metadata from one dst_key to another, when the source
dst_key has a boolean metadata unset, the destination dst_key will
have a numeric metadata unset instead.

This means that if a key has KSK or ZSK unset, we may be clearing the
Predecessor or Successor metadata in the destination dst_key.

4 years agoAdd test for dnssec-signzone smooth ZSK roll
Matthijs Mekking [Tue, 20 Jul 2021 06:34:10 +0000 (08:34 +0200)] 
Add test for dnssec-signzone smooth ZSK roll

Add a test case to the dnssec system test to check that:
- a zone with a prepublished key is only signed with the active key.
- a zone with an inactive key but valid signatures retains those
  signatures and does not add signatures from successor key.
- signatures are swapped in a zone when signatures of predecessor
  inactive key are within the refresh interval.

4 years agodnssec-signzone ZSK smooth rollover
Matthijs Mekking [Tue, 20 Jul 2021 06:17:22 +0000 (08:17 +0200)] 
dnssec-signzone ZSK smooth rollover

When signing with a ZSK, check if it has a predecessor. If so, and if
the predecessor key is sane (same algorithm, key id matches predecessor
value, is zsk), check if the RRset is signed with this key. If so, skip
signing with this successor key. Otherwise, do sign with the successor
key.

This change means we also need to apply the interval to keys that are
not actively signing. In other words, 'expired' is always
'isc_serial_gt(now + cycle, rrsig.timeexpire)'.

Fix a print style issue ("removing signature by ..." was untabbed).

4 years agoMerge branch 'matthijs-iterations-typo-dnssec-guide' into 'main'
Matthijs Mekking [Wed, 11 Aug 2021 08:39:48 +0000 (08:39 +0000)] 
Merge branch 'matthijs-iterations-typo-dnssec-guide' into 'main'

Fix missing iterations value in dnssec-guide

See merge request isc-projects/bind9!5317

4 years agoFix missing iterations value in dnssec-guide
Matthijs Mekking [Fri, 6 Aug 2021 14:34:20 +0000 (16:34 +0200)] 
Fix missing iterations value in dnssec-guide

In the "Migrating from NSEC to NSEC3" section, it says:

    dnssec-policy "standard" {
        nsec3param iterations optout no salt-length 16;
    };

There should be an integer after "iterations". Based on the following
text, the number of iterations should be 10.

4 years agoMerge branch '2839-placeholder' into 'main'
Michał Kępień [Mon, 9 Aug 2021 19:45:31 +0000 (19:45 +0000)] 
Merge branch '2839-placeholder' into 'main'

Add placeholder for GL #2839

See merge request isc-projects/bind9!5318

4 years agoAdd placeholder for GL #2839
Michał Kępień [Mon, 9 Aug 2021 19:41:59 +0000 (21:41 +0200)] 
Add placeholder for GL #2839

4 years agoMerge branch 'artem/doh-no-rwlocks' into 'main'
Artem Boldariev [Wed, 4 Aug 2021 07:59:42 +0000 (07:59 +0000)] 
Merge branch 'artem/doh-no-rwlocks' into 'main'

Get rid of RW locks in the DoH code

See merge request isc-projects/bind9!5278

4 years agoGet rid of some HTTP/2 related types when NGHTTP2 is not available
Artem Boldariev [Fri, 16 Jul 2021 11:57:08 +0000 (14:57 +0300)] 
Get rid of some HTTP/2 related types when NGHTTP2 is not available

This commit removes definitions of some DoH-related types when
libnghttp2 is not available.

4 years agoGet rid of RW locks in the DoH code
Artem Boldariev [Tue, 13 Jul 2021 09:32:47 +0000 (12:32 +0300)] 
Get rid of RW locks in the DoH code

This commit gets rid of RW locks in a hot path of the DoH code. In the
original design, it was implied that we add new endpoints after the
HTTP listener was created. Such a design implies some locking. We do
not need such flexibility, though. Instead, we could build a set of
endpoints before the HTTP listener gets created. Such a design does
not need RW locks at all.

4 years agoMerge branch '2830-statistics-system-tests-needs-to-save-named-stats-files' into...
Mark Andrews [Tue, 3 Aug 2021 00:52:15 +0000 (00:52 +0000)] 
Merge branch '2830-statistics-system-tests-needs-to-save-named-stats-files' into 'main'

Resolve "statistics system tests needs to save named.stats files"

Closes #2830

See merge request isc-projects/bind9!5290

4 years agosave named.stats files
Mark Andrews [Wed, 21 Jul 2021 07:09:53 +0000 (17:09 +1000)] 
save named.stats files

4 years agoMerge branch '2836-parental-agents-documentation-missing-string-net' into 'main'
Matthijs Mekking [Tue, 27 Jul 2021 12:11:05 +0000 (12:11 +0000)] 
Merge branch '2836-parental-agents-documentation-missing-string-net' into 'main'

Fix parental-agents documentation

Closes #2836

See merge request isc-projects/bind9!5302

4 years agoFix parental-agents documentation
Matthijs Mekking [Fri, 23 Jul 2021 07:13:30 +0000 (09:13 +0200)] 
Fix parental-agents documentation

There is a missing string "net" in the ARM in the parental-agents
example.

4 years agoMerge branch '2809-doh-quota-systest-fix-on-fbsd11' into 'main'
Artem Boldariev [Tue, 27 Jul 2021 07:53:45 +0000 (07:53 +0000)] 
Merge branch '2809-doh-quota-systest-fix-on-fbsd11' into 'main'

Resolve "Fix the DoH quota stress test on FreeBSD 11"

Closes #2809

See merge request isc-projects/bind9!5304

4 years agoIncrease the initial TCP timeout for the DoH quota test
Artem Boldariev [Mon, 26 Jul 2021 14:02:16 +0000 (17:02 +0300)] 
Increase the initial TCP timeout for the DoH quota test

This commit increases the idle TCP timeout to let the DoH quota system
test pass on some platforms (namely FreeBSD 11). It turned out to run
slow enough on the CI under load for the idle TCP timeout to kick in.

4 years agoRefactor the DoH quota stress test to make it more reliable
Artem Boldariev [Fri, 23 Jul 2021 10:52:35 +0000 (13:52 +0300)] 
Refactor the DoH quota stress test to make it more reliable

This commit refactors the DoH quota system test to make it more
reliable.

The test tries to establish dummy TCP connections to stress the quota
one by one instead of in bulk until the BIND instance cannot answer
queries anymore. This design is better because the test itself does
not need to be aware of the actual quota size.

4 years agoMerge branch 'v9_17_16-release' into 'main'
Michal Nowak [Fri, 23 Jul 2021 07:28:30 +0000 (07:28 +0000)] 
Merge branch 'v9_17_16-release' into 'main'

Merge 9.17.16 release branch

See merge request isc-projects/bind9!5296

4 years agoSet up release notes for BIND 9.17.17
Michal Nowak [Thu, 22 Jul 2021 09:55:18 +0000 (11:55 +0200)] 
Set up release notes for BIND 9.17.17

4 years agoDrop Windows zips from release tarballs
Michał Kępień [Fri, 9 Jul 2021 06:39:52 +0000 (08:39 +0200)] 
Drop Windows zips from release tarballs

4 years agoUpdate BIND version to 9.17.16
Michał Kępień [Fri, 9 Jul 2021 06:39:52 +0000 (08:39 +0200)] 
Update BIND version to 9.17.16

4 years agoAdd a CHANGES marker
Michał Kępień [Fri, 9 Jul 2021 06:39:52 +0000 (08:39 +0200)] 
Add a CHANGES marker

4 years agoMerge branch 'mnowak/prepare-documentation-for-bind-9.17.16' into 'v9_17_16-release'
Michał Kępień [Fri, 9 Jul 2021 06:22:51 +0000 (06:22 +0000)] 
Merge branch 'mnowak/prepare-documentation-for-bind-9.17.16' into 'v9_17_16-release'

Prepare documentation for BIND 9.17.16

See merge request isc-private/bind9!307

4 years agoPrepare release notes for BIND 9.17.16
Michał Kępień [Thu, 8 Jul 2021 20:18:17 +0000 (22:18 +0200)] 
Prepare release notes for BIND 9.17.16

4 years agoAdd release note for GL #2758
Michał Kępień [Thu, 8 Jul 2021 20:18:17 +0000 (22:18 +0200)] 
Add release note for GL #2758

4 years agoAdd release note for GL #2686
Michał Kępień [Thu, 8 Jul 2021 20:18:17 +0000 (22:18 +0200)] 
Add release note for GL #2686

4 years agoReorder release notes
Michał Kępień [Thu, 8 Jul 2021 20:18:17 +0000 (22:18 +0200)] 
Reorder release notes

4 years agoTweak and reword release notes
Michal Nowak [Thu, 8 Jul 2021 20:18:17 +0000 (22:18 +0200)] 
Tweak and reword release notes

4 years agoTweak and reword recent CHANGES entries
Michal Nowak [Thu, 8 Jul 2021 20:18:17 +0000 (22:18 +0200)] 
Tweak and reword recent CHANGES entries

4 years agoRestore release note for GL #2780
Michał Kępień [Thu, 8 Jul 2021 20:18:17 +0000 (22:18 +0200)] 
Restore release note for GL #2780

4 years agoMerge branch '2735-bind-9-16-must-stop-named-delete-jnl-files-for-signed-zones-to...
Mark Andrews [Thu, 22 Jul 2021 22:26:54 +0000 (22:26 +0000)] 
Merge branch '2735-bind-9-16-must-stop-named-delete-jnl-files-for-signed-zones-to-be-updated' into 'main'

Order the diff from dns_db_diffx so that deletes proceed adds

Closes #2735

See merge request isc-projects/bind9!5284

4 years agoAdd CHANGES note for [GL #2735]
Mark Andrews [Tue, 20 Jul 2021 00:58:31 +0000 (10:58 +1000)] 
Add CHANGES note for [GL #2735]

4 years agoCheck that reload with deleted journal works
Mark Andrews [Wed, 21 Jul 2021 23:55:01 +0000 (09:55 +1000)] 
Check that reload with deleted journal works

4 years agoCheck that restart with zone changes and deleted journal works
Mark Andrews [Mon, 19 Jul 2021 22:48:48 +0000 (08:48 +1000)] 
Check that restart with zone changes and deleted journal works

4 years agoOrder the diff from dns_db_diffx so that deletes proceed adds
Mark Andrews [Mon, 19 Jul 2021 22:46:32 +0000 (08:46 +1000)] 
Order the diff from dns_db_diffx so that deletes proceed adds

for the same rdataset.  This allows the diff when passed to
dns_diff_apply to succeed.

4 years agoCheck reload of dnssec-policy zone works
Mark Andrews [Fri, 16 Jul 2021 05:15:09 +0000 (15:15 +1000)] 
Check reload of dnssec-policy zone works

4 years agoRemove spurious early exit
Mark Andrews [Tue, 20 Jul 2021 23:50:14 +0000 (09:50 +1000)] 
Remove spurious early exit

4 years agoMerge branch '2542-inline-loadtime-not-recorded' into 'main'
Mark Andrews [Thu, 22 Jul 2021 21:46:55 +0000 (21:46 +0000)] 
Merge branch '2542-inline-loadtime-not-recorded' into 'main'

Record load time of touched inline zones

Closes #2542

See merge request isc-projects/bind9!5289

4 years agoAdd CHANGES for [GL #2542]
Mark Andrews [Wed, 21 Jul 2021 05:08:56 +0000 (15:08 +1000)] 
Add CHANGES for [GL #2542]

4 years agoCheck that load time was recorded for unchanged inline zone
Mark Andrews [Wed, 21 Jul 2021 05:05:09 +0000 (15:05 +1000)] 
Check that load time was recorded for unchanged inline zone

subsequent reloads should not report 'ixfr-from-differences: unchanged'

4 years agoRecord load time when a inline zone file has been touched
Mark Andrews [Wed, 21 Jul 2021 05:03:14 +0000 (15:03 +1000)] 
Record load time when a inline zone file has been touched

4 years agoMerge branch '2473-run-respdiff-as-part-of-daily-runs' into 'main'
Michal Nowak [Thu, 22 Jul 2021 12:15:24 +0000 (12:15 +0000)] 
Merge branch '2473-run-respdiff-as-part-of-daily-runs' into 'main'

Run respdiff CI job for scheduled and web pipelines

Closes #2473

See merge request isc-projects/bind9!4710

4 years agoRun respdiff also for scheduled and web pipelines
Michal Nowak [Thu, 18 Feb 2021 15:28:31 +0000 (16:28 +0100)] 
Run respdiff also for scheduled and web pipelines

respdiff needs to be run regularly to identify problems with query
responses discrepancies sooner than after tagging a release.

MAX_DISAGREEMENTS_PERCENTAGE variable is set to 0.5 on the main branch
to make room for a greater number of response disagreements between a
relatively old baseline version and the Development Version.

4 years agoMerge branch '2831-use-static-storage-for-ctx-water' into 'main'
Ondřej Surý [Thu, 22 Jul 2021 10:19:50 +0000 (10:19 +0000)] 
Merge branch '2831-use-static-storage-for-ctx-water' into 'main'

Use static storage for isc_mem water_t

Closes #2831

See merge request isc-projects/bind9!5295

4 years agoUse static storage for isc_mem water_t
Ondřej Surý [Thu, 22 Jul 2021 04:14:32 +0000 (06:14 +0200)] 
Use static storage for isc_mem water_t

On the isc_mem water change the old water_t structure could be used
after free.  Instead of introducing reference counting on the hot-path
we are going to introduce additional constraints on the
isc_mem_setwater.  Once it's set for the first time, the additional
calls have to be made with the same water and water_arg arguments.

4 years agoMerge branch '2833-notify-delay-doc' into 'main'
Evan Hunt [Thu, 22 Jul 2021 02:57:36 +0000 (02:57 +0000)] 
Merge branch '2833-notify-delay-doc' into 'main'

clarify 'notify-delay' documentation

Closes #2833

See merge request isc-projects/bind9!5293

4 years agoclarify 'notify-delay' documentation
Evan Hunt [Wed, 21 Jul 2021 21:39:48 +0000 (14:39 -0700)] 
clarify 'notify-delay' documentation

- the explanation was unclear
- the reference to 'serial-query-rate' was outdated

4 years agoMerge branch 'ondrej/reduce-the-node-lock-count' into 'main' 5292/head
Ondřej Surý [Wed, 21 Jul 2021 15:36:27 +0000 (15:36 +0000)] 
Merge branch 'ondrej/reduce-the-node-lock-count' into 'main'

Reduce the nodelock count for both cache and regular rbtdb

Closes #2829

See merge request isc-projects/bind9!5282

4 years agoAdd CHANGES note for [GL #2829]
Ondřej Surý [Tue, 20 Jul 2021 07:56:10 +0000 (09:56 +0200)] 
Add CHANGES note for [GL #2829]

4 years agoReduce the nodelock count for both cache and regular rbtdb
Ondřej Surý [Mon, 19 Jul 2021 08:17:12 +0000 (10:17 +0200)] 
Reduce the nodelock count for both cache and regular rbtdb

Increasing the nodelock count had major impact on the memory footprint
in scenarios where multiple rbtdb structure would be created like
hosting many zones in a single server.

This reverts commit 03446843856a3efbaaec41409b5eea5542501118 and sets
the nodelock count to previously used values.

4 years agoMerge branch 'mnowak/support-cross-compilation-on-buster' into 'main'
Michal Nowak [Wed, 21 Jul 2021 09:26:00 +0000 (09:26 +0000)] 
Merge branch 'mnowak/support-cross-compilation-on-buster' into 'main'

Add 32-bit cross-compiled builds on Debian Buster

See merge request isc-projects/bind9!4516

4 years agoAdd 32-bit cross-compiled CI jobs on Debian Buster
Michal Nowak [Thu, 17 Dec 2020 10:31:05 +0000 (11:31 +0100)] 
Add 32-bit cross-compiled CI jobs on Debian Buster

Since the forced removal of gcc:sid:i386 in 0aacabc6, we lacked a 32-bit
environment to build and test BIND 9 in the CI. gcc:buster:amd64cross32
adds an environment to cross-compile BIND 9 to 32-bits on Debian Buster
amd64 image with 32-bit BIND 9 dependencies. Commit also adds sanity
checks to ensure that compiled objects are not of the build platform
triplet type.

4 years agoMerge branch '2762-check-opcode' into 'main'
Mark Andrews [Wed, 21 Jul 2021 02:38:13 +0000 (02:38 +0000)] 
Merge branch '2762-check-opcode' into 'main'

check returned opcodes

Closes #2762

See merge request isc-projects/bind9!5286

4 years agoadd release note for [GL #2762]
Mark Andrews [Fri, 11 Jun 2021 07:19:59 +0000 (17:19 +1000)] 
add release note for [GL #2762]

4 years agoAdd CHANGES for [GL #2762]
Mark Andrews [Fri, 11 Jun 2021 07:11:58 +0000 (17:11 +1000)] 
Add CHANGES for [GL #2762]

4 years agocheck nsupdate handles UPDATE response to QUERY
Mark Andrews [Wed, 14 Jul 2021 21:27:55 +0000 (07:27 +1000)] 
check nsupdate handles UPDATE response to QUERY

4 years agodns_rdata_tostruct() should reject rdata with DNS_RDATA_UPDATE set
Mark Andrews [Thu, 10 Jun 2021 00:14:17 +0000 (10:14 +1000)] 
dns_rdata_tostruct() should reject rdata with DNS_RDATA_UPDATE set

4 years agoCheck opcode of messages returned by dns_request_getresponse
Mark Andrews [Fri, 11 Jun 2021 06:58:15 +0000 (16:58 +1000)] 
Check opcode of messages returned by dns_request_getresponse

4 years agoMerge branch 'mnowak/process-core-dumps-when-named-fails-to-start' into 'main'
Michal Nowak [Fri, 16 Jul 2021 16:13:54 +0000 (16:13 +0000)] 
Merge branch 'mnowak/process-core-dumps-when-named-fails-to-start' into 'main'

Process core dump from named which failed to start

See merge request isc-projects/bind9!4987

4 years agoFix handling of restart option in run.sh
Michal Nowak [Tue, 11 May 2021 16:06:59 +0000 (18:06 +0200)] 
Fix handling of restart option in run.sh

The support for stat.pl's --restart option was incomplete in run.sh.
This change makes sure it's handled properly and that named.run file is
not being removed by clean.sh when the --restart option is used.

4 years agoProcess core dump from named which failed to start
Michal Nowak [Tue, 4 May 2021 10:58:23 +0000 (12:58 +0200)] 
Process core dump from named which failed to start

When named failed to start and produced core dump, the core file wasn't
processed by GDB because of run.sh script exiting immediately. This
remedies the limitation, simplifies the surrounding code, and makes the
script shellcheck clean.

4 years agoMerge branch 'mnowak/replace-literal-blocks-with-anchors' into 'main'
Michal Nowak [Fri, 16 Jul 2021 14:21:36 +0000 (14:21 +0000)] 
Merge branch 'mnowak/replace-literal-blocks-with-anchors' into 'main'

Use anchors instead of literal blocks in .gitlab-ci.yml

See merge request isc-projects/bind9!4742

4 years agoUse anchors instead of literal blocks in .gitlab-ci.yml
Michal Nowak [Wed, 24 Feb 2021 12:50:46 +0000 (13:50 +0100)] 
Use anchors instead of literal blocks in .gitlab-ci.yml

Anchor lets the user see the full command logged in GitLab CI:

    ${CONFIGURE} --disable-maintainer-mode --enable-developer ...

Instead of a folded multi-line when literal block is used:

    ${CONFIGURE} \ # collapsed multi-line command

4 years agoMerge branch 'artem/doh-quota-integration' into 'main'
Artem Boldariev [Fri, 16 Jul 2021 09:41:01 +0000 (09:41 +0000)] 
Merge branch 'artem/doh-quota-integration' into 'main'

Make DoH-quota separate and configurable, make it possible to limit the number of HTTP/2 streams per connection

See merge request isc-projects/bind9!5036

4 years agoAdd a missing break on error when adding a DoH endpoint
Artem Boldariev [Mon, 12 Jul 2021 15:25:25 +0000 (18:25 +0300)] 
Add a missing break on error when adding a DoH endpoint

The break on error when adding a DoH endpoint was implied but somehow
gotten missed. This commit fixes that.

4 years agoUpdate documentation to include the new HTTP configuration options
Artem Boldariev [Wed, 23 Jun 2021 11:37:33 +0000 (14:37 +0300)] 
Update documentation to include the new HTTP configuration options

Documentation for the new DoH options has been added.

4 years agoAdd a system test that tests connections quota for DoH
Artem Boldariev [Mon, 14 Jun 2021 13:40:27 +0000 (16:40 +0300)] 
Add a system test that tests connections quota for DoH

The system tests stress out the DoH quota by opening many TCP
connections and then running dig instances against the "overloaded"
server to perform some queries. The processes cannot make any
resolutions because the quota is exceeded. Then the opened connections
are getting closed in random order allowing the queries to proceed.

4 years agomodify CHANGES [GL #2809]
Artem Boldariev [Thu, 20 May 2021 15:17:26 +0000 (18:17 +0300)] 
modify CHANGES [GL #2809]

Document the new HTTP specific options in the CHANGES file.

4 years agoUpdate grammar reference documentation
Artem Boldariev [Thu, 20 May 2021 11:00:04 +0000 (14:00 +0300)] 
Update grammar reference documentation

This commit updates the named grammar reference according to the
latest changes.

4 years agoMake max number of HTTP/2 streams configurable
Artem Boldariev [Tue, 18 May 2021 09:03:58 +0000 (12:03 +0300)] 
Make max number of HTTP/2 streams configurable

This commit makes number of concurrent HTTP/2 streams per connection
configurable as a mean to fight DDoS attacks. As soon as the limit is
reached, BIND terminates the whole session.

The commit adds a global configuration
option (http-streams-per-connection) which can be overridden in an
http <name> {...} statement like follows:

http local-http-server {
    ...
    streams-per-connection 100;
    ...
};

For now the default value is 100, which should be enough (e.g. NGINX
uses 128, but it is a full-featured WEB-server). When using lower
numbers (e.g. ~70), it is possible to hit the limit with
e.g. flamethrower.

4 years agoAdd (http-)listener-clients option (DoH quota mechanism)
Artem Boldariev [Fri, 14 May 2021 11:18:57 +0000 (14:18 +0300)] 
Add (http-)listener-clients option (DoH quota mechanism)

This commit adds support for http-listener-clients global options as
well as ability to override the default in an HTTP server description,
like:

http local-http-server {
    ...
    listener-clients 100;
    ...
};

This way we have ability to specify per-listener active connections
quota globally and then override it when required. This is exactly
what AT&T requested us: they wanted a functionality to specify quota
globally and then override it for specific IPs. This change
functionality makes such a configuration possible.

It makes sense: for example, one could have different quotas for
internal and external clients. Or, for example, one could use BIND's
internal ability to serve encrypted DoH with some sane quota value for
internal clients, while having un-encrypted DoH listener without quota
to put BIND behind a load balancer doing TLS offloading for external
clients.

Moreover, the code no more shares the quota with TCP, which makes
little sense anyway (see tcp-clients option), because of the nature of
interaction of DoH clients: they tend to keep idle opened connections
for longer periods of time, preventing the TCP and TLS client from
being served. Thus, the need to have a separate, generally larger,
quota for them.

Also, the change makes any option within "http <name> { ... };"
statement optional, making it easier to override only required default
options.

By default, the DoH connections are limited to 300 per listener. I
hope that it is a good initial guesstimate.

4 years agoMerge branch 'artem/doh-http-path-validation' into 'main'
Artem Boldariev [Fri, 16 Jul 2021 07:51:43 +0000 (07:51 +0000)] 
Merge branch 'artem/doh-http-path-validation' into 'main'

Verify HTTP paths both in incoming requests and in config file

See merge request isc-projects/bind9!5231

4 years agoUpdate CHANGES
Artem Boldariev [Fri, 25 Jun 2021 09:09:22 +0000 (12:09 +0300)] 
Update CHANGES

The CHANGES file was updated to include information that configuration
checking code now verifies HTTP paths properly.

4 years agoVerify HTTP paths both in incoming requests and in config file
Artem Boldariev [Wed, 19 May 2021 15:03:11 +0000 (18:03 +0300)] 
Verify HTTP paths both in incoming requests and in config file

This commit adds the code (and some tests) which allows verifying
validity of HTTP paths both in incoming HTTP requests and in BIND's
configuration file.

4 years agoMerge branch '2759-extend-tests-for-signed-cname-sourced-delegations' into 'main'
Michał Kępień [Fri, 16 Jul 2021 05:23:15 +0000 (05:23 +0000)] 
Merge branch '2759-extend-tests-for-signed-cname-sourced-delegations' into 'main'

Extend tests for signed, CNAME-sourced delegations

Closes #2759

See merge request isc-projects/bind9!5272

4 years agoExtend tests for signed, CNAME-sourced delegations
Michał Kępień [Fri, 16 Jul 2021 05:20:15 +0000 (07:20 +0200)] 
Extend tests for signed, CNAME-sourced delegations

Extend the "chain" system test with AUTHORITY section checks for signed,
secure delegations.  This complements the checks for signed, insecure
delegations added by commit 26ec4b9a89720e6d5630ad8cf5da6fe357dee32a.

Extend the existing AUTHORITY section checks for signed, insecure
delegations to ensure nonexistence of DS RRsets in such responses.
Adjust comments accordingly.

Ensure dig failures cause the "chain" system test to fail.

4 years agoTweak query_addds() comments to avoid confusion
Michał Kępień [Fri, 16 Jul 2021 05:20:15 +0000 (07:20 +0200)] 
Tweak query_addds() comments to avoid confusion

It has been noticed that commit 7a87bf468b9e092bf65db55a8e9234853c7db63d
did not only fix NSEC record handling in signed, insecure delegations
prepared using both wildcard expansion and CNAME chaining - it also
inadvertently fixed DS record handling in signed, secure delegations
of that flavor.  This is because the 'rdataset' variable in the relevant
location in query_addds() can be either a DS RRset or an NSEC RRset.
Update a code comment in query_addds() to avoid confusion.

Update the comments describing the purpose of query_addds() so that they
also mention NSEC(3) records.

4 years agoMerge branch '2820-rndc-reconfig-does-not-act-on-change-to-zone-statistics' into...
Mark Andrews [Fri, 16 Jul 2021 04:09:53 +0000 (04:09 +0000)] 
Merge branch '2820-rndc-reconfig-does-not-act-on-change-to-zone-statistics' into 'main'

Resolve "rndc reconfig does not act on change to zone-statistics"

Closes #2820

See merge request isc-projects/bind9!5271

4 years agoAdd CHANGES for [GL #2820]
Mark Andrews [Wed, 14 Jul 2021 00:20:13 +0000 (10:20 +1000)] 
Add CHANGES for [GL #2820]

4 years agozone->requeststats_on was not being set at the correct point
Mark Andrews [Tue, 13 Jul 2021 23:59:47 +0000 (09:59 +1000)] 
zone->requeststats_on was not being set at the correct point

4 years agoTest that 'zone-statistics full;' is properly processed
Mark Andrews [Tue, 13 Jul 2021 23:58:50 +0000 (09:58 +1000)] 
Test that 'zone-statistics full;' is properly processed

4 years agoMerge branch '2710-multisigner-cds' into 'main'
Matthijs Mekking [Thu, 15 Jul 2021 07:24:09 +0000 (07:24 +0000)] 
Merge branch '2710-multisigner-cds' into 'main'

Allow update CDS/CDNSKEY records that do not match DNSKEY

Closes #2710

See merge request isc-projects/bind9!5270

4 years agoAdd change and release notes [#2710]
Matthijs Mekking [Tue, 13 Jul 2021 15:34:30 +0000 (17:34 +0200)] 
Add change and release notes [#2710]

4 years agoRelax zone_cdscheck function
Matthijs Mekking [Tue, 13 Jul 2021 09:05:35 +0000 (11:05 +0200)] 
Relax zone_cdscheck function

If we have a CDS or CDNSKEY we at least need to have a DNSKEY with the
same algorithm published and signing the CDS RRset. Same for CDNSKEY
of course.

This relaxes the zone_cdscheck function, because before the CDS or
CDNSKEY had to match a DNSKEY, now only the algorithm has to match.

This allows a provider in a multisigner model to update the CDS/CDNSKEY
RRset in the zone that is served by the other provider.

4 years agoAdd test for allowing update CDS/CDNSKEY
Matthijs Mekking [Tue, 13 Jul 2021 09:04:44 +0000 (11:04 +0200)] 
Add test for allowing update CDS/CDNSKEY

Add tests to the nsupdate system test to make sure that CDS and/or
CDNSKEY that match an algorithm in the DNSKEY RRset are allowed. Also
add tests that updates are rejected if the algorithm does not match.

Remove the now redundant test cases from the dnssec system test.

Update the checkzone system test: Change the algorithm of the CDS and
CDNSKEY records so that the zone is still rejected.

4 years agoMerge branch 'each-doc-trampoline' into 'main'
Evan Hunt [Wed, 14 Jul 2021 17:59:28 +0000 (17:59 +0000)] 
Merge branch 'each-doc-trampoline' into 'main'

document isc__trampoline

See merge request isc-projects/bind9!5116

4 years agodocument isc__trampoline
Evan Hunt [Fri, 28 May 2021 20:47:59 +0000 (13:47 -0700)] 
document isc__trampoline

Added some header file documentation to the isc__trampoline
implementation in trampoline_p.h.

4 years agoMerge branch 'artem/doh-empty-query-string-crash-fix' into 'main'
Artem Boldariev [Tue, 13 Jul 2021 13:55:30 +0000 (13:55 +0000)] 
Merge branch 'artem/doh-empty-query-string-crash-fix' into 'main'

Fix crash in DoH on empty query string in GET requests

See merge request isc-projects/bind9!5268