Commit Graph
31792 Commits
Author SHA1 Message Date
Witold KręcickiandOndřej Surý 4a8d9250cf tests: fix isc/socket_test.c teardown
In case of a test failure we weren't tearing down sockets and tasks
properly, causing the test to hang instead of failing nicely.
2020-06-03 13:16:28 +02:00
Ondřej Surý 024337c6a4 Merge branch '1911-remove-runtime_check-res-0-for-so_incoming_cpu' into 'master'
Resolve "RUNTIME_CHECK(res == 0) in SO_REUSE and SO_INCOMING_CPU, commit 09ba47b0676"

Closes #1911

See merge request isc-projects/bind9!3629
2020-06-03 10:46:44 +00:00
Ondřej Surý 80a2ef8987 Add CHANGES for #1911 2020-06-03 12:44:44 +02:00
Ondřej Surý 4ec357da0a Don't check the result of setting SO_INCOMING_CPU
The SO_INCOMING_CPU is available since Linux 3.19 for getting the value,
but only since Linux 4.4 for setting the value (see below for a full
description).  BIND 9 should not fail when setting the option on the
socket fails, as this is only an optimization and not hard requirement
to run BIND 9.

    SO_INCOMING_CPU (gettable since Linux 3.19, settable since Linux 4.4)
        Sets or gets the CPU affinity of a socket.  Expects an integer flag.

            int cpu = 1;
            setsockopt(fd, SOL_SOCKET, SO_INCOMING_CPU, &cpu, sizeof(cpu));

        Because all of the packets for a single stream (i.e., all
	packets for the same 4-tuple) arrive on the single RX queue that
	is associated with a particular CPU, the typical use case is to
	employ one listening process per RX queue, with the incoming
	flow being handled by a listener on the same CPU that is
	handling the RX queue.  This provides optimal NUMA behavior and
	keeps CPU caches hot.
2020-06-03 12:44:44 +02:00
Ondřej Surý 0468454c0a Merge branch '1909-text-edits-in-history-rst' into 'master'
Resolve "Text edits in history.rst"

Closes #1909

See merge request isc-projects/bind9!3615
2020-06-03 10:20:17 +00:00
Suzanne GoldlustandOndřej Surý f6164e080f Content, clarity, and grammar edits to history.rst 2020-06-03 10:17:51 +00:00
Ondřej Surý 7aa8c6e09b Merge branch '1908-text-edits-in-troubleshooting-rst' into 'master'
Resolve "Text edits in troubleshooting.rst"

Closes #1908

See merge request isc-projects/bind9!3614
2020-06-03 10:15:28 +00:00
Suzanne GoldlustandOndřej Surý c6a064a6e9 Content, clarity, and grammar edits to troubleshooting.rst 2020-06-03 10:13:59 +00:00
Ondřej Surý 9ad03a0fa3 Merge branch '1906-more-bind-arm-text-edits' into 'master'
Resolve "More BIND ARM text edits"

Closes #1906

See merge request isc-projects/bind9!3613
2020-06-03 10:13:45 +00:00
Suzanne GoldlustandOndřej Surý 7c2136766b Content, grammar, and clarity updates to security.rst 2020-06-03 10:12:42 +00:00
Ondřej Surý 50ed136a04 Merge branch '1877-reduce-default-for-max-stale-ttl-to-something-more-reasonable-12-hours-or-similar-fix-release-note' into 'master'
Add GL issue number to release note

Closes #1877

See merge request isc-projects/bind9!3630
2020-06-03 09:26:08 +00:00
Ondřej Surý 3be37fd9ef Add GL issue number to release note 2020-06-03 11:25:13 +02:00
Ondřej Surý aa71df65e9 Merge branch '1877-reduce-default-for-max-stale-ttl-to-something-more-reasonable-12-hours-or-similar' into 'master'
Resolve "Reduce default for max-stale-ttl to something more reasonable - 12 hours or similar"

Closes #1877

See merge request isc-projects/bind9!3593
2020-06-03 08:18:37 +00:00
Ondřej Surý e81728289c Add CHANGES for #1877 2020-06-03 09:48:54 +02:00
Ondřej Surý fc4f3b92ab Add release notes for #1877 2020-06-03 09:48:54 +02:00
Ondřej Surý 13fd3ecfab Reduce the default value for max-stale-ttl from 1 week to 12 hours
Originally, the default value for max-stale-ttl was 1 week, which could
and in some scenarios lead to cache exhaustion on a busy resolvers.
Picking the default value will always be juggling between value that's
useful (e.g. keeping the already cached records after they have already
expired and the upstream name servers are down) and not bloating the
cache too much (e.g. keeping everything for a very long time).  The new
default reflects what we think is a reasonable to time to react on both
sides (upstream authoritative and downstream recursive).
2020-06-03 09:48:54 +02:00
Matthijs Mekking b1dc79b5d7 Merge branch '1845-1846-keyrollover-bugs' into 'master'
Fix dnssec-policy key rollover bugs

Closes #1846 and #1845

See merge request isc-projects/bind9!3619
2020-06-02 09:31:54 +00:00
Matthijs Mekking e71d60299f Retire predecessor when creating successor
When creating the successor, the current active key (predecessor)
should change its goal state to HIDDEN.

Also add two useful debug logs in the keymgr_key_rollover function.
2020-06-02 10:01:28 +02:00
Matthijs Mekking c08d0f7dd6 If prepub > retire, prepub now
Catch a case where if the prepublication time of the successor key
is later than the retire time of the predecessor. If that is the
case we should prepublish as soon as possible, a.k.a. now.
2020-06-02 10:00:53 +02:00
Matthijs Mekking bcf8192438 Put new key rollover logic in separate function
The `dns_keymgr_run()` function became quite long, put the logic
that looks if a new key needs to be created (start a key rollover)
in a separate function.
2020-06-02 10:00:53 +02:00
Matthijs Mekking 0d578097ef Fix bug in keymgr_key_has_successor
The logic in `keymgr_key_has_successor(key, keyring)` is flawed, it
returns true if there is any key in the keyring that has a successor,
while what we really want here is to make sure that the given key
has a successor in the given keyring.

Rather than relying on `keymgr_key_exists_with_state`, walk the
list of keys in the keyring and check if the key is a successor of
the given predecessor key.
2020-06-02 10:00:51 +02:00
Matthijs Mekking ab036232f0 Merge branch '1843-print-correct-keytiming-metadata' into 'master'
Resolve "kasp: Set correct keytimings"

Closes #1843

See merge request isc-projects/bind9!3534
2020-06-02 07:56:38 +00:00
Matthijs Mekking 5b3decaf48 Replace date -d with python script
The usage of 'date -d' in the kasp system test is not portable,
replace with a python script.  Also remove some leftover
"set_keytime 'yes'" calls.
2020-06-02 09:14:27 +02:00
Matthijs Mekking bcf3c9fecf Add change entry 2020-06-02 09:14:25 +02:00
Matthijs Mekking 61c1040ae5 Test keytimes on algorithm rollover
This improves keytime testing on algorithm rollover.  It now
tests for specific times, and also tests for SyncPublish and
Removed keytimes.
2020-06-02 09:14:24 +02:00
Matthijs Mekking da5e1e3a0f Test keytimes on policy changes
This improves keytime testing on reconfiguration of the
dnssec-policy.
2020-06-02 09:14:22 +02:00
Matthijs Mekking e233433772 Test keytimes on CSK rollover
This improves keytime testing on CSK rollover.  It now
tests for specific times, and also tests for SyncPublish and
Removed keytimes.

Since an "active key" for ZSK and KSK means something
different, this makes it tricky to decide when a CSK is
active. An "active key" intuitively means the key is signing
so we say a CSK is active when it is creating zone signatures.

This change means a lot of timings for the CSK rollover tests
need to be adjusted.

The keymgr code needs a slight change on calculating the
prepublication time: For a KSK we need to include the parent
registration delay, but for CSK we look at the zone signing
property and stick with the ZSK prepublication calculation.
2020-06-02 09:14:18 +02:00
Matthijs Mekking 649d0833ce Test keytimes on KSK rollover
This improves keytime testing on KSK rollover.  It now
tests for specific times, and also tests for SyncPublish and
Removed keytimes.
2020-06-02 09:14:16 +02:00
Matthijs Mekking 50bbbb76a8 kasp: registration delay adjustments
Registration delay is not part of the Iret retire interval, thus
removed from the calculation when setting the Delete time metadata.

Include the registration delay in prepublication time, because
we need to prepublish the key sooner than just the Ipub
publication interval.
2020-06-02 09:14:15 +02:00
Matthijs Mekking e01fcbbaf8 Test keytimes on ZSK rollover
This improves keytime testing on ZSK rollover.  It now
tests for specific times, and also tests for SyncPublish and
Removed keytimes.
2020-06-02 09:14:13 +02:00
Matthijs Mekking cf51c87fad Test keytimes on enable-dnssec case
This improves keytime testing for enabling DNSSEC.  It now
tests for specific times, and also tests for SyncPublish.
2020-06-02 09:14:11 +02:00
Matthijs Mekking 30cb5c97c2 Set SyncPublish on keys
Set the SyncPublish metadata on keys that don't have them yet.
2020-06-02 09:14:09 +02:00
Matthijs Mekking f8e34b57b4 Start testing keytiming metadata
This commit adds testing keytiming metadata.  In order to facilitate
this, the kasp system test undergoes a few changes:

1. When finding a key file, rather than only saving the key ID,
   also save the base filename and creation date with `key_save`.
   These can be used later to set expected key times.
2. Add a test function `set_addkeytime` that takes a key, which
   keytiming to update, a datetime in keytiming format, and a number
   (seconds) to add, and sets the new time in the given keytime
   parameter of the given key.  This is used to set the expected key
   times.
3. Split `check_keys` in `check_keys` and `check_keytimes`.  First we
   need to find the keyfile before we can check the keytimes.
   We need to retrieve the creation date (and sometimes other
   keytimes) to determine the other expected key times.
4. Add helper functions to set the expected key times per policy.
   This avoids lots of duplication.

Check for keytimes for the first test cases (all that do not cover
rollovers).
2020-06-02 09:13:02 +02:00
Matthijs Mekking 8483f71258 Stop keeping track of key parameter count
Stop tracking in the comments the number of key parameters in the
kasp system test, it adds nothing beneficial.
2020-06-02 09:13:00 +02:00
Matthijs Mekking 8204e31f0e Fix some more test output filenames
After removing dnssec-settime calls that set key rollover
relationship, we can adjust the counts in test output filenames.

Also fix a couple of more wrong counts in output filenames.
2020-06-02 09:12:58 +02:00
Matthijs Mekking 5a590c47a5 Set key rollover relationship without settime
Using dnssec-setttime after dnssec-keygen in the kasp system test
can lead to off by one second failures, so reduce the usage of
dnssec-settime in the setup scripts.  This commit deals with
setting the key rollover relationship (predecessor/successor).
2020-06-02 09:12:55 +02:00
Matthijs Mekking 637d5f9a68 Move setting keytimes from settime to keygen
In the kasp system test, we are going to set the keytimes on
dnssec-keygen so we can test them against the key creation time.
This prevents off by one second in the test, something that can
happen if you set those times with dnssec-settime after
dnssec-keygen.

Also fix some test output filenames.
2020-06-02 09:12:52 +02:00
Matthijs Mekking 18dc27afd3 Set keytimes appropriately when using kasp
While kasp relies on key states to determine when a key needs to
be published or be used for signing, the keytimes are used by
operators to get some expectation of key publication and usage.

Update the code such that these keytimes are set appropriately.
That means:
- Print "PublishCDS" and "DeleteCDS" times in the state files.
- The keymgr sets the "Removed" and "PublishCDS" times and derives
  those from the dnssec-policy.
- Tweak setting of the "Retired" time, when retiring keys, only
  update the time to now when the retire time is not yet set, or is
  in the future.

This also fixes a bug in "keymgr_transition_time" where we may wait
too long before zone signatrues become omnipresent or hidden. Not
only can we skip waiting the sign delay Dsgn if there is no
predecessor, we can also skip it if there is no successor.

Finally, this commit moves setting the lifetime, reducing two calls
to one.
2020-06-02 09:12:47 +02:00
Matthijs Mekking 1c21631730 keygen -k: allow to set times, not genonly
For testing purposes mainly, we want to allow set keytimings on
generated keys, such that we don't have to "keygen/settime" which
can result in one second off times.
2020-06-02 09:12:38 +02:00
Ondřej Surý 31fa72ec2e Merge branch '1164-add-danger-python-to-gitlab-ci' into 'master'
Add Danger Python to GitLab CI

Closes #1164

See merge request isc-projects/bind9!3583
2020-06-01 11:40:58 +00:00
Michał KępieńandOndřej Surý 36bb45a8b6 Add Danger Python to GitLab CI
Certain rules of the BIND development process are not codified anywhere
and/or are used inconsistently.  In an attempt to improve this
situation, add a GitLab CI job which uses Danger Python to add comments
to merge requests when certain expectations are not met.  Two categories
of feedback are used, only one of which - fail() - causes the GitLab CI
job to fail.  Exclude dangerfile.py from Python QA checks as the way the
contents of that file are evaluated triggers a lot of Flake8 and PyLint
warnings.
2020-06-01 11:13:31 +00:00
Ondřej Surý a8aa9d4ff8 Merge branch 'ondrej/fix-higlight-typo' into 'master'
Fix typo (higlight -> highlight) in documentation

See merge request isc-projects/bind9!3610
2020-06-01 07:45:39 +00:00
Ondřej Surý e6c867195d Fix typo (higlight -> highlight) in documentation 2020-06-01 09:41:58 +02:00
Ondřej Surý 3138bdf406 Merge branch 'sgoldlust-1826-various-text-edits-needed-in-bind-arm-patch-99571' into 'master'
Text edits in reference.rst

See merge request isc-projects/bind9!3569
2020-06-01 07:32:40 +00:00
Suzanne GoldlustandOndřej Surý 1e067c4d0b Grammar, clarity, and content fixes in reference.rst
Also converted logging-categories.rst from a table to text and adjusted
the util/check-categories.sh script.
2020-06-01 09:21:38 +02:00
Suzanne GoldlustandOndřej Surý c7264db658 Text, grammar, typo, and clarity edits in multiple ARM chapters
Files requirements.rst, configuration.rs, plugins.rst, and partially
reference.rst has been edited.
2020-06-01 09:09:34 +02:00
Ondřej Surý b3931bfaa3 Merge branch '1888-text-edits-in-catz-rst' into 'master'
Resolve "Text edits in catz.rst"

Closes #1888

See merge request isc-projects/bind9!3596
2020-06-01 07:02:44 +00:00
Suzanne GoldlustandOndřej Surý 19ff2e2a79 Content and grammar edits to catz.rst 2020-06-01 07:02:44 +00:00
Ondřej Surý 5337e2e1f7 Merge branch '1894-edits-to-contributing-md' into 'master'
Resolve "Edits to CONTRIBUTING.md"

Closes #1894

See merge request isc-projects/bind9!3603
2020-06-01 07:01:16 +00:00
Suzanne GoldlustandOndřej Surý 58c61b6e7b Content updates to CONTRIBUTING.md 2020-06-01 07:01:15 +00:00