Commit graph

36205 commits

Author SHA1 Message Date
Matthijs Mekking
342baee607 Add a section about key rollover
Describe how to do key rollovers with dnssec-policy. Update the
revert to unsigned recipe in the DNSSEC guide.

(cherry picked from commit f721986589)
2022-06-22 15:58:45 +02:00
Petr Špaček
595eb27b7e Deduplicate Manual Signing between DNSSEC chapter and DNSSEC Guide
The two procedures were essentially the same, but each instance was
missing some details from the other. They are now combined into one text
in the DNSSEC Guide and linked from DNSSEC chapter.

(cherry picked from commit 7d25027898)
2022-06-22 15:58:39 +02:00
Petr Špaček
99ef4f254f Deduplicate key filename description in the DNSSEC Guide
Third time ...

(cherry picked from commit 7e96801841)
2022-06-22 15:58:31 +02:00
Petr Špaček
06b02f2b4a Use ECDSAP256SHA256 in DNSSEC signing examples
(cherry picked from commit 3eb6898a14)
2022-06-22 15:58:08 +02:00
Petr Špaček
eda822a1fc Use code-block directive for complete command lines
Minor rendering nit, not really important.

(cherry picked from commit 915237a28f)
2022-06-22 15:58:00 +02:00
Petr Špaček
f1d71dff5a Deduplicate key filename description in the DNSSEC chapter
(cherry picked from commit 1dcc34f076)
2022-06-22 15:57:53 +02:00
Petr Špaček
5b30bffaaa Move Private Type Records in DNSSEC chapter to higher level
Private Type Records are not specific to manually signing, so it is
better to move it to the end of the "Zone Signing" section shared by all
three methods.

(cherry picked from commit 5ba618fd28)
2022-06-22 15:57:45 +02:00
Petr Špaček
1d07cf4883 Rewrite DNSSEC Validation subchapter in the ARM
Mostly deduplicating and linking information across the ARM.
Generally people should not touch it unless they what they are doing, so
let's try to discourage them a bit.

(cherry picked from commit bffa3063f0)
2022-06-22 15:57:37 +02:00
Petr Špaček
c6a82e0ff1 Add hints about secure delegation to DNSSEC chapter of the ARM
Let's not duplicate texts from elsewhere, just point to different parts
of documentation.

(cherry picked from commit 29030fa5d7)
2022-06-22 15:57:29 +02:00
Petr Špaček
b51c7be326 Reorder chapters about Zone Signing in the DNSSEC chapter of ARM
Let's make more automated methods more prominent:
- KASP first
- dynamic updates second
- command-line tools only as last resort

(cherry picked from commit 28a533322b)
2022-06-22 15:57:21 +02:00
Petr Špaček
b288a7e48a Rewrite KASP section of DNSSEC chapter in the ARM
The goal is simplicity. Copy&paste to do the right thing, or read
referenced material and make up your mind if you need specialities.

NSEC discussion is already present in the DNSSEC guide so I merged
KASP examples with example for NSEC3 and removed NSEC text from the
DNSSEC chapter.

(cherry picked from commit 744763f8f2)
2022-06-22 15:57:14 +02:00
Petr Špaček
b502211060 Rewrite introduction for DNSSEC chapter of the ARM
I've attempted to drop most of DNSSEC-specific jargon from the intro
paragraph, and to convince readers to read on.

(cherry picked from commit 0dc9c33149)
2022-06-22 15:57:07 +02:00
Matthijs Mekking
72ad0ed7cf Use NSEC3 guidance values in nsec3 config examples
Use best practice values in examples that follow new guidance from
draft-ietf-dnsop-nsec3-guidance:

   ; SHA-1, no extra iterations, empty salt:
   ;
   bcp.example. IN NSEC3PARAM 1 0 0 -

(cherry picked from commit 93601d8325)
2022-06-22 15:57:00 +02:00
Matthijs Mekking
ef9dcad036 Move "DNSSEC" chapter before "Advanced" and "Security"
DNSSEC is mainstream nowadays, so let's give it more attention.

(cherry picked from commit 024c15f03b)
2022-06-22 15:56:49 +02:00
Matthijs Mekking
cd348f3d60 Move Dynamic Zones section up
Move this section up so that DNSSEC signing topics are grouped together
(and not split by the DNSSEC Validation chapter).

(cherry picked from commit 7824c5c967)
2022-06-22 15:56:40 +02:00
Matthijs Mekking
205805f5ca Rewrite Dynamic Zones section
Restructure the section about dynamic zones and automatic signing:
- Focus on dynamic zones with 'auto-dnssec allow;'.
- Add a section about multi-signer models.
- Move NSEC3 related topics into one section.
- Remove any text that does not concern dynamic zones (mostly duplicate
  text anyway).

(cherry picked from commit be54c08d2b)
2022-06-22 15:56:34 +02:00
Matthijs Mekking
966645c3a7 Add a section about Denial of Existence
Move bits from the "DNSSEC, Dynamic Zones, and Automatic Signing"
about denial of existence to a separate section below the "Key and
Signing Policy" section.

Add a brief introduction about denial of existence to this section.

(cherry picked from commit 71490a5a2d)
2022-06-22 15:56:27 +02:00
Matthijs Mekking
65498441b0 Rewrap a paragraph in DNSSEC Validation section
No textual changes, just rewrapping to 80 characters.

(cherry picked from commit 34dea43f9c)
2022-06-22 15:56:19 +02:00
Matthijs Mekking
63c0f70266 Rewrite DNSSEC chapter - signing
Restructure the first part of the DNSSEC chapter that deals with zone
signing. Put dnssec-policy first. Mention Key and Signing Policy.
Only then talk about the DNSSEC tools.

(cherry picked from commit a1c95e8e7c)
2022-06-22 15:56:12 +02:00
Matthijs Mekking
e0c12a4bd5 Nit changes in introduction of DNSSEC chapter
DNSSEC-bis is an uncommon term. Other servers are typically resolvers
and they usually are configured with the root key.

(cherry picked from commit fb24454c58)
2022-06-22 15:55:18 +02:00
Michal Nowak
a8502a0ad9 Merge branch 'mnowak/add-system_gcc_bullseye_unstable_amd64-ci-job-v9_18' into 'v9_18'
[v9_18] Add system:gcc:bullseye:unstable:amd64 CI job

See merge request isc-projects/bind9!6476
2022-06-22 13:27:55 +00:00
Michal Nowak
77f71e4ad4
Put default-triggering-rules anchor in alphabetical order
(cherry picked from commit db1a72d581)
2022-06-22 14:51:34 +02:00
Michal Nowak
2438566964
Rename schedules_tags_web_triggering_rules anchor
The schedules_tags_web_triggering_rules anchor name should match it's
content, hence api_schedules_tags_triggers_web_triggering_rules anchor
name.

(cherry picked from commit 0629f53431)
2022-06-22 14:51:30 +02:00
Michal Nowak
d67a62cb24
Extract API, schedules, triggers, and web triggering rules
(cherry picked from commit fbc1345dd7)
2022-06-22 14:51:24 +02:00
Michal Nowak
6984b1a61e
Add system:gcc:bullseye:unstable:amd64 CI job
Without this CI job long pytest jobs are not being run in the CI.

(cherry picked from commit d606f39022)
2022-06-22 14:51:19 +02:00
Michał Kępień
d1c94a70c8 Merge branch '3309-fix-destination-port-extraction-for-client-queries-v9_18' into 'v9_18'
[v9_18] Fix destination port extraction for client queries

See merge request isc-projects/bind9!6474
2022-06-22 11:59:17 +00:00
Michał Kępień
1cc7d243c6 Add CHANGES entry for GL #3309
(cherry picked from commit 58c3513fa6)
2022-06-22 13:46:42 +02:00
Mark Andrews
5b56aa68af Check that the UDP destination port is logged via dnstap
(cherry picked from commit 8d8396c3a7)
2022-06-22 13:46:42 +02:00
Michał Kępień
457b666c6f Fix destination port extraction for client queries
The current logic for determining the address of the socket to which a
client sent its query is:

 1. Get the address:port tuple from the netmgr handle using
    isc_nmhandle_localaddr().

 2. Convert the address:port tuple from step 1 into an isc_netaddr_t
    using isc_netaddr_fromsockaddr().

 3. Convert the address from step 2 back into a socket address with the
    port set to 0 using isc_sockaddr_fromnetaddr().

Note that the port number (readily available in the netmgr handle) is
needlessly lost in the process, preventing it from being recorded in
dnstap captures of client traffic produced by named.

Fix by first storing the address:port tuple returned by
isc_nmhandle_localaddr() in client->destsockaddr and then creating an
isc_netaddr_t from that structure.  This allows the port number to be
retained in client->destsockaddr, which is what subsequently gets passed
to dns_dt_send().

(cherry picked from commit 2f945703f2)
2022-06-22 13:46:42 +02:00
Michał Kępień
423516b812 Merge branch 'ondrej-fix-out-of-tree-artifacts-v9_18' into 'v9_18'
[v9_18] Move the out of tree directory into the project directory

See merge request isc-projects/bind9!6473
2022-06-22 11:04:32 +00:00
Michał Kępień
3777b4b6c0 Clean up convert-trs-to-junit.py invocations
- Use absolute paths when invoking the convert-trs-to-junit.py script
    so that it also works correctly for out-of-tree and tarball-based
    test jobs.

  - Quote the variables used in convert-trs-to-junit.py invocations to
    future-proof the code.

  - Use "&&" instead of ";" in shell pipelines invoking the
    convert-trs-to-junit.py script in order to prevent "source" errors
    from being silently ignored.

  - Ensure convert-trs-to-junit.py is invoked from the correct directory
    for out-of-tree and tarball-based unit test jobs by adding
    appropriate "cd" invocations.

  - Ensure the convert-trs-to-junit.py invocations are always the last
    step in each 'after_script', in order to run that script from the
    correct directory for out-of-tree and tarball-based system test jobs
    and to ensure that any potential errors in that script do not
    prevent more important steps in the 'after_script' from being
    executed.

(cherry picked from commit 2cd20ee370)
2022-06-22 13:01:42 +02:00
Michał Kępień
024d1980dd Move out-of-tree workspace back to $CI_PROJECT_DIR
Out-of-tree build & test jobs currently defined in GitLab CI use
/tmp/out_of_tree_workspace as the working directory.  This requires
juggling that directory around as it gets passed from the build job to
the test jobs and then again after the test jobs are finished, so that
artifacts can be collected for the purpose of investigating test
failures.  The original intention of doing this was to ensure that
bin/tests/system/run.sh does not rely on being executed from within a
Git working copy (which happens e.g. if the out-of-tree workspace is a
subdirectory of $CI_PROJECT_DIR, i.e. the path into which GitLab
Runner clones the project in each job).

However, even with these complications in place, not all possible
scenarios that should be handled properly by the system test framework
(e.g. invoking a given test one time after another from the same
out-of-tree build directory) are tested in GitLab CI anyway.  Meanwhile,
the requirement for moving the out-of-tree workspace into
$CI_PROJECT_DIR in the 'after_script' for each out-of-tree job makes
these jobs less robust than they could be; for example, if any step in
the 'after_script' returns a non-zero exit code, the job's artifacts
will not include the out-of-tree workspace, hindering troubleshooting.

Simplify job definitions in .gitlab-ci.yml by moving the workspace used
by out-of-tree build & test jobs back to a subdirectory of
$CI_PROJECT_DIR.  Whether the out-of-tree workspace exists within a Git
working copy or not does not matter for Autotools, so this is considered
to be a reasonable trade-off in terms of test coverage.

(cherry picked from commit e6aebf10cc)
2022-06-22 13:01:42 +02:00
Michal Nowak
81f02e27b6 Merge branch 'mnowak/ubuntu-22.04-jammy-jellyfish-v9_18' into 'v9_18'
[v9_18] Add Ubuntu 22.04 LTS (Jammy Jellyfish)

See merge request isc-projects/bind9!6470
2022-06-22 10:25:03 +00:00
Michal Nowak
4265c0e6d6
Do not run Ubuntu 18.04 jobs in MR-triggered pipelines
With the addition of Ubuntu 22.04 three more CI jobs were added. To
compensate for that, move Ubuntu 18.04 jobs out of MR-triggered
pipelines to schedule-triggered ones.

Also, move --disable-geoip ./configure options from Ubuntu 18.04 to
Ubuntu 20.04 jobs to keep these options in the more frequent
MR-triggered pipelines.

(cherry picked from commit 06c591667e)
2022-06-22 11:38:53 +02:00
Michal Nowak
9b78663110
Add Ubuntu 22.04 LTS (Jammy Jellyfish)
(cherry picked from commit 4c2af3bdfa)
2022-06-22 11:38:53 +02:00
Matthijs Mekking
15bf7deec1 Merge branch '3412-system-test-passthru-virtualenv-perl5lib-v9_18' into 'v9_18'
[v9_18] System tests pass through virtualenv and perlmods

See merge request isc-projects/bind9!6469
2022-06-22 09:28:02 +00:00
Matthijs Mekking
de5b25b386 System tests pass through virtualenv and perlmods
Have system tests use required Python (dnspython) and PERL modules
(Digest::HMAC and Net::DNS) from user directories, avoid using
privileges.

Note: The pythonenv must be setup to use the same version of python as
the test uses, for example /usr/bin/python.

Thanks to Stacey Marshall.

(cherry picked from commit 53eb127be1)
2022-06-22 10:24:03 +02:00
Matthijs Mekking
9d05898483 Merge branch '3397-document-interaction-dnssec-update-config-options-v9_18' into 'v9_18'
[v9_18] Document where updates and DNSSEC records are stored

See merge request isc-projects/bind9!6463
2022-06-20 14:20:57 +00:00
Matthijs Mekking
ea50826dca Add comment on DNSSEC signing zone configuration
I was slightly confused here, so IMO it can use a comment.

(cherry picked from commit c80531758c)
2022-06-20 15:29:05 +02:00
Matthijs Mekking
0ba0ef4e20 Document where updates and DNSSEC records are stored
Make clear that inline-signing stores DNSSEC records in a signed
version of the zone, using the zone's filename plus ".signed" extension.

Tell that dynamic zones store updates in the zone's filename.

DNSSEC records for dynamic zones also go in the zone's filename, unless
inline-signing is enabled.

Then, dnssec-policy assumes inline-signing, but only if the zone is
not dynamic.

(cherry picked from commit 8860f6b4ff)
2022-06-20 15:28:58 +02:00
Michal Nowak
d2b83e8b4a Merge branch 'mnowak/bump-clang-to-version-14-v9_18' into 'v9_18'
[v9_18] Update clang to version 14

See merge request isc-projects/bind9!6455
2022-06-17 06:35:09 +00:00
Michal Nowak
0819f7ecac
Extract Clang version to $CLANG_VERSION
Extracting Clang version helps with updating Clang version in one place
and not missing one of its instances.

(cherry picked from commit bd17dec045)
2022-06-16 18:09:33 +02:00
Michal Nowak
82268504c9
Fix external_symbolizer_path on Fedora
The external_symbolizer_path was wrong on Fedora since moving gcc:tsan
jobs from Debian to Fedora.

(cherry picked from commit e98b9c5009)
2022-06-16 18:09:33 +02:00
Michal Nowak
d3eb307e3c
Update clang to version 14
(cherry picked from commit 1c45a9885a)
2022-06-16 18:09:33 +02:00
Michal Nowak
b8134e4c78 Merge branch 'mnowak/checkds-pylint-implicit-str-concat-fixes-v9_18' into 'v9_18'
[v9_18] Fix implicit string concatenation in tests-checkds.py

See merge request isc-projects/bind9!6453
2022-06-16 11:47:29 +00:00
Michal Nowak
8b77533ac3
Fix implicit string concatenation in tests-checkds.py
pylint 2.14.2 reports the following warnings:

    bin/tests/system/checkds/tests-checkds.py:265:0: W1404: Implicit string concatenation found in call (implicit-str-concat)
    bin/tests/system/checkds/tests-checkds.py:273:0: W1404: Implicit string concatenation found in call (implicit-str-concat)

(cherry picked from commit 831ac8add1)
2022-06-16 13:41:06 +02:00
Tom Krizek
b7ff587512 Merge branch 'tkrizek/pytest-skipped-reason-v9_18' into 'v9_18'
Report reasons for skipped/xfailed system pytests [v9_18]

See merge request isc-projects/bind9!6451
2022-06-16 07:55:08 +00:00
Tom Krizek
1d847def2a
Report reasons for skipped/xfailed system pytests
If skip/xfail is used in pytest, it can have a reason string associated
with it. When evaluating these tests, it can be useful to be able to
differentiate the reason why the test was skipped/xfailed/xpassed,
because there might be multiple possible reasons for that.

The extra options passed to pytest ensure that the string with the
reason appears in the test summary and thus we're able to find the
string with the reason in the log output.

See https://docs.pytest.org/en/7.1.x/how-to/skipping.html for more info

(cherry picked from commit f6d368167a)
2022-06-16 09:19:50 +02:00
Petr Špaček
6d46fa4052 Merge branch 'pspacek/nsec3-doc-update-v9_18' into 'v9_18'
Update NSEC3 guidance to match draft-ietf-dnsop-nsec3-guidance-10 [v9_18]

See merge request isc-projects/bind9!6447
2022-06-15 16:11:24 +00:00
Petr Špaček
bd1ad27ff4
Update NSEC3 guidance to match draft-ietf-dnsop-nsec3-guidance-10
https://datatracker.ietf.org/doc/html/draft-ietf-dnsop-nsec3-guidance-10
is on it's way to become RFC, so let's update our recommendations in the
docs to be in line with it.

(cherry picked from commit 2ee3f4e6c8)
2022-06-15 17:57:40 +02:00