]> git.ipfire.org Git - thirdparty/bind9.git/log
thirdparty/bind9.git
6 years agoUpdate zoneconf to use kasp config
Matthijs Mekking [Thu, 17 Oct 2019 09:38:56 +0000 (11:38 +0200)] 
Update zoneconf to use kasp config

If a zone has a dnssec-policy set, use signature validity,
dnskey signature validity, and signature refresh from
dnssec-policy.

Zones configured with 'dnssec-policy' will allow 'named' to create
DNSSEC keys (similar to dnssec-keymgr) if not available.

6 years agoIntroduce keymgr in named
Matthijs Mekking [Thu, 17 Oct 2019 09:19:35 +0000 (11:19 +0200)] 
Introduce keymgr in named

Add a key manager to named.  If a 'dnssec-policy' is set, 'named'
will run a key manager on the matching keys.  This will do a couple
of things:

1. Create keys when needed (in case of rollover for example)
   according to the set policy.

2. Retire keys that are in excess of the policy.

3. Maintain key states according to "Flexible and Robust Key
   Rollover" [1]. After key manager ran, key files will be saved to
   disk.

   [1] https://matthijsmekking.nl/static/pdf/satin2012-Schaeffer.pdf

KEY GENERATION

Create keys according to DNSSEC policy.  Zones configured with
'dnssec-policy' will allow 'named' to create DNSSEC keys (similar
to dnssec-keymgr) if not available.

KEY ROLLOVER

Rather than determining the desired state from timing metadata,
add a key state goal.  Any keys that are created or picked from the
key ring and selected to be a successor has its key state goal set
to OMNIPRESENT (this key wants to be signing!). At the same time,
a key that is being retired has its key state goal set to HIDDEN.

The keymgr state machine with the three rules will make sure no
introduction or withdrawal of DNSSEC records happens too soon.

KEY TIMINGS

All timings are based on RFC 7583.

The keymgr will return when the next action is happening so
that the zone can set the proper rekey event. Prior to this change
the rekey event will run every hour by default (configurable),
but with kasp we can determine exactly when we need to run again.

The prepublication time is derived from policy.

6 years agoUseful dst_key functions
Matthijs Mekking [Thu, 17 Oct 2019 08:21:12 +0000 (10:21 +0200)] 
Useful dst_key functions

Add a couple of dst_key functions for determining hints that
consider key states if they are available.
- dst_key_is_unused:
  A key has no timing metadata set other than Created.
- dst_key_is_published:
  A key has publish timing metadata <= now, DNSKEY state in
  RUMOURED or OMNIPRESENT.
- dst_key_is_active:
  A key has active timing metadata <= now, RRSIG state in
  RUMOURED or OMNIPRESENT.
- dst_key_is_signing:
  KSK is_signing and is_active means different things than
  for a ZSK. A ZSK is active means it is also signing, but
  a KSK always signs its DNSKEY RRset but is considered
  active if its DS is present (rumoured or omnipresent).
- dst_key_is_revoked:
  A key has revoke timing metadata <= now.
- dst_key_is_removed:
  A key has delete timing metadata <= now, DNSKEY state in
  UNRETENTIVE or HIDDEN.

6 years agokasp: Expose more key timings
Matthijs Mekking [Wed, 16 Oct 2019 16:36:38 +0000 (18:36 +0200)] 
kasp: Expose more key timings

When doing rollover in a timely manner we need to have access to the
relevant kasp configured durations.

Most of these are simple get functions, but 'dns_kasp_signdelay'
will calculate the maximum time that is needed with this policy to
resign the complete zone (taking into account the refresh interval
and signature validity).

Introduce parent-propagation-delay, parent-registration-delay,
parent-ds-ttl, zone-max-ttl, zone-propagation-delay.

6 years agokeygen/settime: Write out successor/predecessor
Matthijs Mekking [Wed, 16 Oct 2019 15:43:30 +0000 (17:43 +0200)] 
keygen/settime: Write out successor/predecessor

When creating a successor key, or calculating time for a successor
key, write out the successor and predecessor metadata to the
related files.

6 years agoarm: Update DNSSEC documentation
Matthijs Mekking [Tue, 1 Oct 2019 13:40:01 +0000 (15:40 +0200)] 
arm: Update DNSSEC documentation

6 years agoAllow DNSSEC records in kasp enabled zone
Matthijs Mekking [Tue, 1 Oct 2019 09:11:47 +0000 (11:11 +0200)] 
Allow DNSSEC records in kasp enabled zone

When signing a zone with dnssec-policy, we don't mind DNSSEC records.
This is useful for testing purposes, and perhaps it is better to
signal this behavior with a different configuration option.

6 years agodnssec-settime: Allow manipulating state files
Matthijs Mekking [Thu, 12 Sep 2019 09:57:55 +0000 (11:57 +0200)] 
dnssec-settime: Allow manipulating state files

Introduce a new option '-s' for dnssec-settime that when manipulating
timing metadata, it also updates the key state file.

For testing purposes, add options to dnssec-settime to set key
states and when they last changed.

The dst code adds ways to write and read the new key states and
timing metadata. It updates the parsing code for private key files
to not parse the newly introduced metadata (these are for state
files only).

Introduce key goal (the state the key wants to be in).

6 years agoAdd functionality to read key state from disk
Matthijs Mekking [Thu, 12 Sep 2019 09:45:10 +0000 (11:45 +0200)] 
Add functionality to read key state from disk

When reading a key from file, you can set the DST_TYPE_STATE option
to also read the key state.

This expects the Algorithm and Length fields go above the metadata,
so update the write functionality to do so accordingly.

Introduce new DST metadata types for KSK, ZSK, Lifetime and the
timing metadata used in state files.

6 years agoParse dnssec-policy config into kasp
Matthijs Mekking [Tue, 3 Sep 2019 09:42:10 +0000 (11:42 +0200)] 
Parse dnssec-policy config into kasp

Add code that actually stores the configuration into the kasp
structure and attach it to the appropriate zone.

6 years agodnssec-keygen can create keys given dnssec-policy
Matthijs Mekking [Wed, 11 Sep 2019 14:38:49 +0000 (16:38 +0200)] 
dnssec-keygen can create keys given dnssec-policy

This commit adds code for generating keys with dnssec-keygen given
a specific dnssec-policy.

The dnssec-policy can be set with a new option '-k'. The '-l'
option can be used to set a configuration file that contains a
specific dnssec-policy.

Because the dnssec-policy dictates how the keys should look like,
many of the existing dnssec-keygen options cannot be used together
with '-k'.

If the dnssec-policy lists multiple keys, dnssec-keygen has now the
possibility to generate multiple keys at one run.

Add two tests for creating keys with '-k': One with the default
policy, one with multiple keys from the configuration.

6 years agoAdd various get functions for kasp
Matthijs Mekking [Wed, 11 Sep 2019 14:32:58 +0000 (16:32 +0200)] 
Add various get functions for kasp

Write functions to access various elements of the kasp structure,
and the kasp keys. This in preparation of code in dnssec-keygen,
dnssec-settime, named...

6 years agoUpdate dst key code to maintain key state
Matthijs Mekking [Wed, 11 Sep 2019 14:29:33 +0000 (16:29 +0200)] 
Update dst key code to maintain key state

Add a number of metadata variables (lifetime, ksk and zsk role).

For the roles we add a new type of metadata (booleans).

Add a function to write the state of the key to a separate file.

Only write out known metadata to private file.  With the
introduction of the numeric metadata "Lifetime", adjust the write
private key file functionality to only write out metadata it knows
about.

6 years agoNit: fix typo in documentation dst_key_getnum
Matthijs Mekking [Wed, 11 Sep 2019 14:31:41 +0000 (16:31 +0200)] 
Nit: fix typo in documentation dst_key_getnum

6 years agoFix: nums type in dst_keys
Matthijs Mekking [Wed, 11 Sep 2019 11:46:02 +0000 (13:46 +0200)] 
Fix: nums type in dst_keys

This was isc_stdtime_t but should be uint32_t.

6 years agoNit: fix typo (dnsssec-signzone)
Matthijs Mekking [Wed, 11 Sep 2019 09:36:39 +0000 (11:36 +0200)] 
Nit: fix typo (dnsssec-signzone)

6 years agoAdd code for creating kasp from config
Matthijs Mekking [Wed, 11 Sep 2019 08:58:44 +0000 (10:58 +0200)] 
Add code for creating kasp from config

Add code for creating, configuring, and destroying KASP keys.  When
using the default policy, create one CSK, no rollover.

6 years agodnssec-keygen: Move keygen function above main
Matthijs Mekking [Wed, 11 Sep 2019 08:53:53 +0000 (10:53 +0200)] 
dnssec-keygen: Move keygen function above main

This is done in a separate commit to make diff easier.

6 years agodnssec-keygen: Move key gen code in own function
Matthijs Mekking [Wed, 11 Sep 2019 08:51:36 +0000 (10:51 +0200)] 
dnssec-keygen: Move key gen code in own function

In preparation for key generation with dnssec-policy, where multiple
keys may be created.

6 years agoSync options in dnssec-keygen
Matthijs Mekking [Thu, 5 Sep 2019 10:14:55 +0000 (12:14 +0200)] 
Sync options in dnssec-keygen

Code and documentation were not in line:
- Remove -z option from code
- Remove -k option from docbook
- Add -d option to docbook
- Add -T option to docbook

6 years agoIntroduce kasp structure
Matthijs Mekking [Tue, 3 Sep 2019 08:39:25 +0000 (10:39 +0200)] 
Introduce kasp structure

This stores the dnssec-policy configuration and adds methods to
create, destroy, and attach/detach, as well as find a policy with
the same name in a list.

Also, add structures and functions for creating and destroying
kasp keys.

6 years agoIntroduce dnssec-policy configuration
Matthijs Mekking [Mon, 2 Sep 2019 14:24:48 +0000 (16:24 +0200)] 
Introduce dnssec-policy configuration

This commit introduces the initial `dnssec-policy` configuration
statement. It has an initial set of options to deal with signature
and key maintenance.

Add some checks to ensure that dnssec-policy is configured at the
right locations, and that policies referenced to in zone statements
actually exist.

Add some checks that when a user adds the new `dnssec-policy`
configuration, it will no longer contain existing DNSSEC
configuration options.  Specifically: `inline-signing`,
`auto-dnssec`, `dnssec-dnskey-kskonly`, `dnssec-secure-to-insecure`,
`update-check-ksk`, `dnssec-update-mode`, `dnskey-sig-validity`,
and `sig-validity-interval`.

Test a good kasp configuration, and some bad configurations.

6 years agoDesign documentation 'dnssec-policy'
Matthijs Mekking [Mon, 2 Sep 2019 13:51:10 +0000 (15:51 +0200)] 
Design documentation 'dnssec-policy'

Initial design document.

6 years agoExtend ttlval to accept ISO 8601 durations
Matthijs Mekking [Mon, 2 Sep 2019 13:46:28 +0000 (15:46 +0200)] 
Extend ttlval to accept ISO 8601 durations

The ttlval configuration types are replaced by duration configuration
types. The duration is an ISO 8601 duration that is going to be used
for DNSSEC key timings such as key lifetimes, signature resign
intervals and refresh periods, etc. But it is also still allowed to
use the BIND ttlval ways of configuring intervals (number plus
optional unit).

A duration is stored as an array of 7 different time parts.
A duration can either be expressed in weeks, or in a combination of
the other datetime indicators.

Add several unit tests to ensure the correct value is parsed given
different string values.

6 years agoChange indentation in doc/arm/dnssec.xml
Matthijs Mekking [Mon, 2 Sep 2019 08:13:24 +0000 (10:13 +0200)] 
Change indentation in doc/arm/dnssec.xml

This commit does not change anything significant, it just makes
the file more readable in preparation for upcoming changes related
to the `dnssec-policy` configuration option.

6 years agoMerge branch '1206-fix-tcp-high-water-release-note' into 'master'
Michał Kępień [Wed, 6 Nov 2019 15:28:55 +0000 (15:28 +0000)] 
Merge branch '1206-fix-tcp-high-water-release-note' into 'master'

Fix TCP high-water release note

Closes #1206

See merge request isc-projects/bind9!2541

6 years agoFix TCP high-water release note
Michał Kępień [Wed, 6 Nov 2019 15:25:55 +0000 (16:25 +0100)] 
Fix TCP high-water release note

Add missing GitLab issue number to the TCP high-water release note.

6 years agoMerge branch '1298-do-not-use-sys-sysctl.h-on-linux' into 'master'
Michał Kępień [Wed, 6 Nov 2019 14:49:42 +0000 (14:49 +0000)] 
Merge branch '1298-do-not-use-sys-sysctl.h-on-linux' into 'master'

Do not use <sys/sysctl.h> on Linux

Closes #1298

See merge request isc-projects/bind9!2525

6 years agoDo not use <sys/sysctl.h> on Linux
Michał Kępień [Wed, 6 Nov 2019 14:31:47 +0000 (15:31 +0100)] 
Do not use <sys/sysctl.h> on Linux

glibc 2.30 deprecated the <sys/sysctl.h> header [1].  However, that
header is still used on other Unix-like systems, so only prevent it from
being used on Linux, in order to prevent compiler warnings from being
triggered.

[1] https://sourceware.org/ml/libc-alpha/2019-08/msg00029.html

6 years agoMerge branch '1206-add-assert_int_equal-shell-function' into 'master'
Michał Kępień [Wed, 6 Nov 2019 14:31:02 +0000 (14:31 +0000)] 
Merge branch '1206-add-assert_int_equal-shell-function' into 'master'

Add assert_int_equal() shell function

Closes #1206

See merge request isc-projects/bind9!2535

6 years agoAdd assert_int_equal() shell function
Michał Kępień [Wed, 6 Nov 2019 14:22:08 +0000 (15:22 +0100)] 
Add assert_int_equal() shell function

Add a shell function which is used in the "tcp" system test, but has
been accidentally omitted from !2425.  Make sure the function does not
change the value of "ret" itself, so that the caller can decide what to
do with the function's return value.

6 years agoMerge branch '1256-jitter-dynamically-updated-signatures' into 'master'
Ondřej Surý [Wed, 6 Nov 2019 14:01:19 +0000 (14:01 +0000)] 
Merge branch '1256-jitter-dynamically-updated-signatures' into 'master'

Resolve "Signature Expiration Jitter not working for dynamic NSEC3 zones"

Closes #1256

See merge request isc-projects/bind9!2451

6 years agoAdd CHANGES
Ondřej Surý [Tue, 5 Nov 2019 17:12:27 +0000 (18:12 +0100)] 
Add CHANGES

6 years agoTest jitter distribution
Matthijs Mekking [Wed, 9 Oct 2019 16:09:27 +0000 (18:09 +0200)] 
Test jitter distribution

Test jitter distribution in NSEC3 dynamic zone and for a zone that has old
signatures.  In both cases the generated signatures should be spread nicely.

6 years agoJitter signatures times when adding dynamic records.
Witold Kręcicki [Wed, 9 Oct 2019 15:38:44 +0000 (17:38 +0200)] 
Jitter signatures times when adding dynamic records.

When doing regular signing expiry time is jittered to make sure
that the re-signing times are not clumped together. This expands
this behaviour to expiry times of dynamically added records.

When incrementally re-signing a zone use the full jitter range if
the server appears to have been offline for greater than 5 minutes
otherwise use a small jitter range of 3600 seconds.  This will stop
the signatures becoming more clustered if the server has been off
line for a significant period of time (> 5 minutes).

6 years agoMerge branch '1206-tcp-high-water-stats-fix-type' into 'master'
Ondřej Surý [Wed, 6 Nov 2019 11:31:31 +0000 (11:31 +0000)] 
Merge branch '1206-tcp-high-water-stats-fix-type' into 'master'

Avoid an extra atomic_load call when doing atomic_compare_exchange_loop

See merge request isc-projects/bind9!2531

6 years agoAvoid an extra atomic_load() call
Ondřej Surý [Wed, 6 Nov 2019 09:49:28 +0000 (10:49 +0100)] 
Avoid an extra atomic_load() call

6 years agoMerge branch '1285-documentation-update-to-sortlist-feature-bugs-42615' into 'master'
Ondřej Surý [Wed, 6 Nov 2019 10:05:27 +0000 (10:05 +0000)] 
Merge branch '1285-documentation-update-to-sortlist-feature-bugs-42615' into 'master'

arm: Add a sentence about overlaping selectors in sortlist statement

Closes #1285

See merge request isc-projects/bind9!2517

6 years agoarm: Add a sentence about overlaping selectors in sortlist statement
Ondřej Surý [Fri, 1 Nov 2019 10:11:53 +0000 (05:11 -0500)] 
arm: Add a sentence about overlaping selectors in sortlist statement

6 years agoMerge branch '1206-tcp-high-water-stats' into 'master'
Ondřej Surý [Wed, 6 Nov 2019 08:47:19 +0000 (08:47 +0000)] 
Merge branch '1206-tcp-high-water-stats' into 'master'

Added tcp-high-water statistics variable.

Closes #1206

See merge request isc-projects/bind9!2425

6 years agoAdded TCP high-water entry to CHANGES
Diego Fronza [Tue, 29 Oct 2019 18:57:39 +0000 (15:57 -0300)] 
Added TCP high-water entry to CHANGES

6 years agoAdded TCP high-water entry to release notes
Diego Fronza [Tue, 29 Oct 2019 19:21:00 +0000 (16:21 -0300)] 
Added TCP high-water entry to release notes

6 years agoAdded TCP high-water system tests
Diego Fronza [Tue, 5 Nov 2019 21:08:01 +0000 (18:08 -0300)] 
Added TCP high-water system tests

Note: ans6/ans6.py is a helper script that allows tests.sh to open/close
TCP connections to some BIND instance.

6 years agoAdded TCP high-water statistics variable
Diego Fronza [Tue, 5 Nov 2019 20:48:47 +0000 (17:48 -0300)] 
Added TCP high-water statistics variable

This variable will report the maximum number of simultaneous tcp clients
that BIND has served while running.

It can be verified by running rndc status, then inspect "tcp high-water:
count", or by generating statistics file, rndc stats, then inspect the
line with "TCP connection high-water" text.

The tcp-highwater variable is atomically updated based on an existing
tcp-quota system handled in ns/client.c.

6 years agoAdd functions for collecting high-water counters
Diego Fronza [Tue, 5 Nov 2019 20:48:47 +0000 (17:48 -0300)] 
Add functions for collecting high-water counters

Add {isc,ns}_stats_{update_if_greater,get_counter}() functions that
are used to set and collect high-water type of statistics.

6 years agoChange the isc_stat_t type to isc__atomic_statcounter_t
Diego Fronza [Tue, 5 Nov 2019 20:48:47 +0000 (17:48 -0300)] 
Change the isc_stat_t type to isc__atomic_statcounter_t

The isc_stat_t type was too similar to isc_stats_t type, so the name was
changed to something more distinguishable.

6 years agoChange the isc_statscounter_t type from int to C99 int_fast64_t type
Diego Fronza [Tue, 5 Nov 2019 20:48:47 +0000 (17:48 -0300)] 
Change the isc_statscounter_t type from int to C99 int_fast64_t type

For TCP high-water work, we need to keep the used integer types widths
in sync.

Note: int_fast32_t is used on WIN32 platform

6 years agoMerge branch '1301-geoip2-default-data-path' into 'master'
Mark Andrews [Tue, 5 Nov 2019 23:50:12 +0000 (23:50 +0000)] 
Merge branch '1301-geoip2-default-data-path' into 'master'

Resolve "geoip2 default data path"

Closes #1301

See merge request isc-projects/bind9!2520

6 years agoAdd CHANGES note
Mark Andrews [Tue, 5 Nov 2019 23:23:06 +0000 (10:23 +1100)] 
Add CHANGES note

6 years agoRegenerate configure.
Mark Andrews [Tue, 5 Nov 2019 23:20:00 +0000 (10:20 +1100)] 
Regenerate configure.

6 years agoHave 'named -V' report geoip-directory
Mark Andrews [Tue, 5 Nov 2019 01:56:58 +0000 (12:56 +1100)] 
Have 'named -V' report geoip-directory

6 years agoThe default geoip-directory should be <MAXMINDDB_PREFIX>/share/GeoIP
Mark Andrews [Tue, 5 Nov 2019 01:56:18 +0000 (12:56 +1100)] 
The default geoip-directory should be <MAXMINDDB_PREFIX>/share/GeoIP

6 years agoMAXMINDDB_LIBS should end with '/lib' not '/libs'
Mark Andrews [Tue, 5 Nov 2019 01:54:35 +0000 (12:54 +1100)] 
MAXMINDDB_LIBS should end with '/lib' not '/libs'

6 years agoMerge branch '664-fetches-per-server-quota-docs' into 'master'
Ondřej Surý [Tue, 5 Nov 2019 08:50:01 +0000 (08:50 +0000)] 
Merge branch '664-fetches-per-server-quota-docs' into 'master'

Describe the polynomial backoff curve used in the quota adjustment

Closes #664

See merge request isc-projects/bind9!2519

6 years agoDescribe the polynomial backoff curve used in the quota adjustment
Ondřej Surý [Fri, 1 Nov 2019 17:22:56 +0000 (12:22 -0500)] 
Describe the polynomial backoff curve used in the quota adjustment

6 years agoMerge branch '45-integrate-llvm-scan-build-to-gitlab-ci-workflow' into 'master'
Ondřej Surý [Mon, 4 Nov 2019 16:00:56 +0000 (16:00 +0000)] 
Merge branch '45-integrate-llvm-scan-build-to-gitlab-ci-workflow' into 'master'

Add LLVM/Clang scan-build checks into the GitLab CI

Closes #45

See merge request isc-projects/bind9!2452

6 years agolibdns: add missing checks for return values in dnstap unit test
Ondřej Surý [Thu, 31 Oct 2019 11:50:58 +0000 (06:50 -0500)] 
libdns: add missing checks for return values in dnstap unit test

Related scan-build report:

dnstap_test.c:169:2: warning: Value stored to 'result' is never read
        result = dns_test_makeview("test", &view);
        ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dnstap_test.c:193:2: warning: Value stored to 'result' is never read
        result = dns_compress_init(&cctx, -1, dt_mctx);
        ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2 warnings generated.

6 years agonamed: remove named_g_defaultdnstap global variable
Ondřej Surý [Thu, 31 Oct 2019 11:46:32 +0000 (06:46 -0500)] 
named: remove named_g_defaultdnstap global variable

The named_g_defaultdnstap was never used as the dnstap requires
explicit configuration of the output file.

Related scan-build report:

./server.c:3476:14: warning: Value stored to 'dpath' during its initialization is never read
        const char *dpath = named_g_defaultdnstap;
                    ^~~~~   ~~~~~~~~~~~~~~~~~~~~~
1 warning generated.

6 years agolibdns: Change check_dnskey_sigs() return type to void to match the reality how the...
Ondřej Surý [Thu, 24 Oct 2019 11:55:56 +0000 (13:55 +0200)] 
libdns: Change check_dnskey_sigs() return type to void to match the reality how the function is used

6 years agotests: Resolve scan-build false positive by adding extra assertion
Ondřej Surý [Sun, 13 Oct 2019 05:02:34 +0000 (07:02 +0200)] 
tests: Resolve scan-build false positive by adding extra assertion

6 years agodnssec: don't qsort() empty hashlist
Ondřej Surý [Sun, 13 Oct 2019 04:53:06 +0000 (06:53 +0200)] 
dnssec: don't qsort() empty hashlist

6 years agonamed: Add INSIST() after bindkeysfile configuration load to silence scan-build FP
Ondřej Surý [Sun, 13 Oct 2019 04:47:26 +0000 (06:47 +0200)] 
named: Add INSIST() after bindkeysfile configuration load to silence scan-build FP

6 years agotests: Workaround scan-build false positive with FD_ZERO/FD_SET
Ondřej Surý [Sun, 13 Oct 2019 04:40:25 +0000 (06:40 +0200)] 
tests: Workaround scan-build false positive with FD_ZERO/FD_SET

6 years agolibdns: Remove useless checks for ISC_R_MEMORY, which cannot happen now
Ondřej Surý [Fri, 11 Oct 2019 22:15:51 +0000 (00:15 +0200)] 
libdns: Remove useless checks for ISC_R_MEMORY, which cannot happen now

6 years agoci: Add LLVM/Clang scan-build checks into the GitLab CI
Ondřej Surý [Fri, 11 Oct 2019 21:35:43 +0000 (23:35 +0200)] 
ci: Add LLVM/Clang scan-build checks into the GitLab CI

6 years agoMerge branch 'u/fanf2/rndc-validation-status-noflush' into 'master'
Ondřej Surý [Thu, 31 Oct 2019 19:19:57 +0000 (15:19 -0400)] 
Merge branch 'u/fanf2/rndc-validation-status-noflush' into 'master'

Do not flush the cache for `rndc validation status`

See merge request isc-projects/bind9!2462

6 years agoAdd CHANGES
Ondřej Surý [Thu, 31 Oct 2019 18:00:54 +0000 (13:00 -0500)] 
Add CHANGES

6 years agoDo not flush the cache for `rndc validation status`
Tony Finch [Tue, 15 Oct 2019 14:12:29 +0000 (15:12 +0100)] 
Do not flush the cache for `rndc validation status`

And add a note to the man page that `rndc validation` flushes the
cache when the validation state is changed. (It is necessary to flush
the cache when turning on validation, to avoid continuing to use
cryptographically invalid data. It is probably wise to flush the cache
when turning off validation to recover from lameness problems.)

6 years agoMerge branch 'u/fanf2/rndc-validation-status-views' into 'master'
Ondřej Surý [Thu, 31 Oct 2019 18:29:43 +0000 (14:29 -0400)] 
Merge branch 'u/fanf2/rndc-validation-status-views' into 'master'

Include all views in output of `rndc validation status`

See merge request isc-projects/bind9!2461

6 years agoAdd CHANGES
Tony Finch [Tue, 15 Oct 2019 14:06:01 +0000 (15:06 +0100)] 
Add CHANGES

6 years agoInclude all views in output of `rndc validation status`
Tony Finch [Tue, 15 Oct 2019 14:06:01 +0000 (15:06 +0100)] 
Include all views in output of `rndc validation status`

The implementation of `rndc validation status` iterates over all the
views to print their validation status. It takes care to print newlines
in between, but it also used put a nul byte at the end of the first view
which truncated the output.

After this change, the nul byte is added at the end so that it prints
the validation status in all views. The `_bind` view is skipped
because its validation status is irrelevant.

6 years agoMerge branch 'mnowak/1244-extra-quotes-around-TESTSOCK6/master' into 'master'
Michal Nowak [Thu, 31 Oct 2019 16:26:46 +0000 (12:26 -0400)] 
Merge branch 'mnowak/1244-extra-quotes-around-TESTSOCK6/master' into 'master'

digdelv: Extra quotes prevent IPv6 runs

See merge request isc-projects/bind9!2390

6 years agodigdelv: Extra quotes prevent IPv6 runs
Michal Nowak [Thu, 26 Sep 2019 07:56:51 +0000 (09:56 +0200)] 
digdelv: Extra quotes prevent IPv6 runs

Portion of the digdelv test are skipped on IPv6 due to extra quotes
around $TESTSOCK6: "I:digdelv:IPv6 unavailable; skipping".

Researched by @michal.

Regressed with 351efd8812560c97e1bc7f6142b80ac5798d6ded.

6 years agoMerge branch 'ondrej/update-git-replay-merge' into 'master'
Ondřej Surý [Thu, 31 Oct 2019 14:18:44 +0000 (10:18 -0400)] 
Merge branch 'ondrej/update-git-replay-merge' into 'master'

Update the git-replay-merge to use the latest GitLab -o options

See merge request isc-projects/bind9!2503

6 years agoUpdate the git-replay-merge to use the latest GitLab -o options
Ondřej Surý [Wed, 30 Oct 2019 15:30:46 +0000 (10:30 -0500)] 
Update the git-replay-merge to use the latest GitLab -o options

6 years agoMerge branch '876-documentation-feedback' into 'master'
Ondřej Surý [Thu, 31 Oct 2019 14:05:49 +0000 (10:05 -0400)] 
Merge branch '876-documentation-feedback' into 'master'

Minor documentation updates

Closes #876

See merge request isc-projects/bind9!2483

6 years agoarm: add more text describing interaction between automatic-interface-scan and interf...
Ondřej Surý [Wed, 30 Oct 2019 19:38:17 +0000 (14:38 -0500)] 
arm: add more text describing interaction between automatic-interface-scan and interface-interval

6 years agoarm: Fix the default for the lock-file command, it's 'none'
Ondřej Surý [Wed, 30 Oct 2019 19:22:41 +0000 (14:22 -0500)] 
arm: Fix the default for the lock-file command, it's 'none'

6 years agoarm: Add an explanation on the effect of 'require-server-cookie yes;'
Brian Conry [Wed, 30 Oct 2019 19:16:04 +0000 (14:16 -0500)] 
arm: Add an explanation on the effect of 'require-server-cookie yes;'

6 years agoarm: add why when to set 'require-server-cookie yes;'
Mark Andrews [Thu, 24 Oct 2019 23:06:56 +0000 (10:06 +1100)] 
arm: add why when to set 'require-server-cookie yes;'

6 years agoarm: document resolver-nonbackoff-tries and resolver-retry-interval
Mark Andrews [Thu, 24 Oct 2019 01:58:19 +0000 (12:58 +1100)] 
arm: document resolver-nonbackoff-tries and resolver-retry-interval

6 years agoarm: add default values for require-server-cookie and send-cookie options
Mark Andrews [Thu, 24 Oct 2019 01:41:28 +0000 (12:41 +1100)] 
arm: add default values for require-server-cookie and send-cookie options

6 years agoMerge branch '1059-prevent-tcp-failures-from-affecting-edns-stats' into 'master'
Michał Kępień [Thu, 31 Oct 2019 09:36:50 +0000 (05:36 -0400)] 
Merge branch '1059-prevent-tcp-failures-from-affecting-edns-stats' into 'master'

Prevent TCP failures from affecting EDNS stats

See merge request isc-projects/bind9!2501

6 years agoAdd CHANGES entry
Michał Kępień [Thu, 31 Oct 2019 07:48:35 +0000 (08:48 +0100)] 
Add CHANGES entry

5310. [bug] TCP failures were affecting EDNS statistics. [GL #1059]

6 years agoPrevent TCP failures from affecting EDNS stats
Michał Kępień [Thu, 31 Oct 2019 07:48:35 +0000 (08:48 +0100)] 
Prevent TCP failures from affecting EDNS stats

EDNS mechanisms only apply to DNS over UDP.  Thus, errors encountered
while sending DNS queries over TCP must not influence EDNS timeout
statistics.

6 years agoMerge branch '1059-prevent-query-loops-for-misbehaving-servers' into 'master'
Michał Kępień [Thu, 31 Oct 2019 08:45:50 +0000 (04:45 -0400)] 
Merge branch '1059-prevent-query-loops-for-misbehaving-servers' into 'master'

Prevent query loops for misbehaving servers

See merge request isc-projects/bind9!2500

6 years agoPrevent query loops for misbehaving servers
Michał Kępień [Thu, 31 Oct 2019 07:48:35 +0000 (08:48 +0100)] 
Prevent query loops for misbehaving servers

If a TCP connection fails while attempting to send a query to a server,
the fetch context will be restarted without marking the target server as
a bad one.  If this happens for a server which:

  - was already marked with the DNS_FETCHOPT_EDNS512 flag,
  - responds to EDNS queries with the UDP payload size set to 512 bytes,
  - does not send response packets larger than 512 bytes,

and the response for the query being sent is larger than 512 byes, then
named will pointlessly alternate between sending UDP queries with EDNS
UDP payload size set to 512 bytes (which are responded to with truncated
answers) and TCP connections until the fetch context retry limit is
reached.  Prevent such query loops by marking the server as bad for a
given fetch context if the advertised EDNS UDP payload size for that
server gets reduced to 512 bytes and it is impossible to reach it using
TCP.

6 years agoMerge branch 'michal/placeholder-2476' into 'master'
Michał Kępień [Wed, 30 Oct 2019 15:12:37 +0000 (11:12 -0400)] 
Merge branch 'michal/placeholder-2476' into 'master'

Add a CHANGES placeholder

See merge request isc-projects/bind9!2502

6 years agoAdd a CHANGES placeholder
Michał Kępień [Wed, 30 Oct 2019 15:10:09 +0000 (16:10 +0100)] 
Add a CHANGES placeholder

See [GL !2476].

6 years agoMerge branch '1288-log-dns_r_unchanged-from-sync_secure_journal-at-info-level-in...
Mark Andrews [Wed, 30 Oct 2019 00:58:44 +0000 (20:58 -0400)] 
Merge branch '1288-log-dns_r_unchanged-from-sync_secure_journal-at-info-level-in-receive_secure_serial' into 'master'

Resolve "Log DNS_R_UNCHANGED from sync_secure_journal at info level in receive_secure_serial."

Closes #1288

See merge request isc-projects/bind9!2490

6 years agoadd CHANGES
Mark Andrews [Wed, 30 Oct 2019 00:19:34 +0000 (11:19 +1100)] 
add CHANGES

6 years agoLog DNS_R_UNCHANGED from sync_secure_journal() at info level in receive_secure_serial()
Mark Andrews [Mon, 28 Oct 2019 02:44:50 +0000 (13:44 +1100)] 
Log DNS_R_UNCHANGED from sync_secure_journal() at info level in receive_secure_serial()

6 years agoMerge branch 'u/fanf2/compilezone-hang' into 'master'
Mark Andrews [Tue, 29 Oct 2019 23:42:08 +0000 (19:42 -0400)] 
Merge branch 'u/fanf2/compilezone-hang' into 'master'

Fix hang in `named-compilezone | head`

See merge request isc-projects/bind9!2481

6 years agoCHANGES
Tony Finch [Tue, 22 Oct 2019 14:58:23 +0000 (15:58 +0100)] 
CHANGES

6 years agoFix hang in `named-compilezone | head`
Tony Finch [Tue, 22 Oct 2019 14:37:38 +0000 (15:37 +0100)] 
Fix hang in `named-compilezone | head`

I was truncating zone files for experimental purposes when I found
that `named-compilezone | head` got stuck. The full command line that
exhibited the problem was:

dig axfr dotat.at |
named-compilezone -o /dev/stdout dotat.at /dev/stdin |
head

This requires a large enough zone to exhibit the problem, more than
about 70000 bytes of plain text output from named-compilezone.
I was running the command on Debian Stretch amd64.

This was puzzling since it looked like something was suppressing the
SIGPIPE. I used `strace` to examine what was happening at the hang.
The program was just calling write() a lot to print the zone file, and
the last write() hanged until I sent it a SIGINT.

During some discussion with friends, Ian Jackson guessed that opening
/dev/stdout O_RDRW might be the problem, and after some tests we found
that this does in fact suppress SIGPIPE.

Since `named-compilezone` only needs to write to its output file, the
fix is to omit the stdio "+" update flag.

6 years agoMerge branch 'placeholder-tcp-highwater' into 'master'
Ondřej Surý [Tue, 29 Oct 2019 14:34:01 +0000 (10:34 -0400)] 
Merge branch 'placeholder-tcp-highwater' into 'master'

placeholder.

See merge request isc-projects/bind9!2495

6 years agoplaceholder.
Diego Fronza [Tue, 29 Oct 2019 14:19:32 +0000 (11:19 -0300)] 
placeholder.

6 years agoMerge branch 'ondrej/update-list-of-supported-platforms-for-9.16' into 'master'
Ondřej Surý [Tue, 29 Oct 2019 12:28:30 +0000 (08:28 -0400)] 
Merge branch 'ondrej/update-list-of-supported-platforms-for-9.16' into 'master'

Update the list of supported and unsupported PLATFORMS for BIND 9.15

See merge request isc-projects/bind9!2486

6 years agoAdd 'Community Maintained' section to PLATFORMS.md
Ondřej Surý [Tue, 29 Oct 2019 10:51:14 +0000 (05:51 -0500)] 
Add 'Community Maintained' section to PLATFORMS.md

6 years agoUpdate the list of supported and unsupported PLATFORMS for BIND 9.15
Ondřej Surý [Thu, 24 Oct 2019 07:50:48 +0000 (09:50 +0200)] 
Update the list of supported and unsupported PLATFORMS for BIND 9.15