Commit graph

6644 commits

Author SHA1 Message Date
Petr Špaček
0dc9c33149 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.
2022-06-22 13:37:18 +02:00
Matthijs Mekking
93601d8325 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 -
2022-06-22 13:37:18 +02:00
Matthijs Mekking
024c15f03b Move "DNSSEC" chapter before "Advanced" and "Security"
DNSSEC is mainstream nowadays, so let's give it more attention.
2022-06-22 13:37:18 +02:00
Matthijs Mekking
7824c5c967 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).
2022-06-22 13:37:18 +02:00
Matthijs Mekking
be54c08d2b 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).
2022-06-22 13:37:18 +02:00
Matthijs Mekking
71490a5a2d 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.
2022-06-22 13:37:18 +02:00
Matthijs Mekking
34dea43f9c Rewrap a paragraph in DNSSEC Validation section
No textual changes, just rewrapping to 80 characters.
2022-06-22 13:37:18 +02:00
Matthijs Mekking
a1c95e8e7c 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.
2022-06-22 13:37:18 +02:00
Matthijs Mekking
fb24454c58 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.
2022-06-22 13:37:18 +02:00
Michal Nowak
4c2af3bdfa
Add Ubuntu 22.04 LTS (Jammy Jellyfish) 2022-06-22 10:56:50 +02:00
Matthijs Mekking
c47735b86b Document what is a too short key lifetime
To give a hint to users that get an error that the key lifetime is
shorter than the time it takes to do a rollover.
2022-06-21 16:18:49 +02:00
Matthijs Mekking
8860f6b4ff 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.
2022-06-20 11:18:46 +02:00
Petr Špaček
2ee3f4e6c8
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.
2022-06-15 17:53:33 +02:00
Michał Kępień
529a7c0c1a BIND 9.19.2
-----BEGIN PGP SIGNATURE-----
 
 iQJDBAABCgAtFiEENKwGS3ftSQfs1TU17QVz/8hFYQUFAmKY50MPHG1pY2hhbEBp
 c2Mub3JnAAoJEO0Fc//IRWEFWu0QAJ2gYn5ShpLt98L9yknezjUBVzeB/yiz8xLC
 gjXKs8OIdqvQV4N2lqdqdvaHUpLmK6tWQVFyiVfcQehKVu0z0PZfM1+iphBRn1ES
 laVL1ZyRvncAPxRZPztYngeESZnMDeEObcKw4bGaB+Fs7S8ZqvaEDBs6GShYMnYR
 AeBsdqeUVUZTMJC+D5AdCfvutd6LMiS4mB1uE4bWfjxZkeOCaLUJZB11JCMw8uMQ
 HUjpvIwq5eDUFVA4flKi0YwCfUeZdrkdgcn+YtGJHNQFY8quWMdE26IrfKM/oUF+
 NOuD5SZurh/ShETL68zsSiQoWxlnuIPjsfdjYArmUdMuBoBHtAqq9keHGU1sU02J
 joxRcDX2ltEzdD+sGeUgZ1BEXGC9n0wK+XKCRICZ6+axr08NJhvViuVplK+g1U08
 wbz9PWHowQ3yd/dDeTz9jda5oFMeTHHd7C8mUhdvf2aQqJ+u1dlJ9Rn7s/mtZGEq
 TEIGdIkXncmMFhs38562i2RncueFOHeM5ZY5g8o7mmNcr3RerxkaGQeg6xIY1PUN
 xIjTsoa8odvZP4pW1uKMmKhBfSIG+yYnZgBo1y/zJgjbeQ7EHZVqLAeKDTuAIxSB
 7tnvXvrHdQ9yo0Kn82e93Y+QYJ1GHL4UdHynH2B3T4JGgDYFqyrfbWSCTh6FpgWS
 VhLaoT4d
 =rNzV
 -----END PGP SIGNATURE-----

Merge tag 'v9_19_2'

BIND 9.19.2
2022-06-15 15:53:59 +02:00
Petr Špaček
fd3a2c7854
Update FAQ in the DNSSEC Guide
Mention DoT/DoH, update stats, remove mentions of early stages of
deployment.
2022-06-14 18:08:23 +02:00
Petr Špaček
635885afe6
Update Authoritative Server Hardware requirements in DNSSEC Guide
Based on measurements done on BIND v9_19_2 using bank. TLD and a
synthetitc fullly signed zone, using RSASHA256 and ECDSAP256SHA256
algorithms with NSEC and NSEC3 without opt-out.
2022-06-14 18:08:22 +02:00
Petr Špaček
832c172985
Update DNSSEC validation deployment stats in DNSSEC Guide 2022-06-14 18:08:22 +02:00
Petr Špaček
6cf8066b9c
Rewrite Recursive Server Hardware requirements in DNSSEC Guide
This section was completely out of date. Current measurements on dataset
Telco EU 2022-02 and BIND 9.19.1 indicate absolutely different results
than described in the old version of the text.
2022-06-14 18:08:22 +02:00
Petr Špaček
6e79877759
Remove outdated software requirements from DNSSEC Guide
Guide in this repo is tied to latest version anyway, so let's not even
mention ancient versions of BIND.

This also solves the OpenSSL question because it is now mandatory for
build, which subsequently removes the entropy problem - so let's not
mention it either.
2022-06-14 18:08:15 +02:00
Petr Špaček
0e1306374e
Remove description of dnssec-keygmr from DNSSEC Guide
dnssec-keymgr is not included in the distribution since BIND 9.17 so
there is no point in keeping usage instructions around.
2022-06-14 13:08:53 +02:00
Ondřej Surý
646df5cbbc Add CHANGES and release note for [GL #3400] 2022-06-14 11:33:02 +02:00
Petr Špaček
d029d6374d
Set default number of additional NSEC3 iterations to 0 in dnssec-signzone
We forgot to update dnssec-signzone while updating KASP defaults.

Closes: #3395
Related: #2956
2022-06-14 08:30:32 +02:00
Evan Hunt
15f08ca961 CHANGES and release note for [GL #3386] 2022-06-13 12:53:51 -07:00
Petr Špaček
5f53003dae
Clarify dnssec-keyfromlabel -a in man page 2022-06-09 15:00:08 +02:00
Petr Špaček
33931c97fa Add tag filter to .. statementlist:: RST directive
Introduce a new syntax:
.. namedconf:statementlist::
   :filter_tags: acl, resolver

The resulting table contains only items tagged as acl OR resolver.
2022-06-09 14:44:33 +02:00
Petr Špaček
ff577462f9 Warn about duplicate .. statement:: definitions 2022-06-09 14:44:33 +02:00
Petr Špaček
2f2aa1d21c Refactor and unite internal data structures for iscconf Sphinx extension
It turns out it is easier to regenerate Sphinx-mandated structure in
get_objects than to maintain two separate data structures. I should have
realized that before.
2022-06-09 14:44:33 +02:00
Petr Špaček
475f7a9603 Render optional statement metadata in the ARM
Optional values :short: and :tags: are now rendered right after the
statement heading.
2022-06-09 14:44:33 +02:00
Petr Špaček
976aef030a Add table generator into Sphinx config extension
New directive .. statementlist:: generates table of statements in a
the given domain (named.conf or rndc.conf). The table contains link to
definition, short description, and also list of tags.
Short description and tags have to be provided by user using optional
parameters. E.g.:

.. statement:: max-cache-size
   :tags: resolver, cache
   :short: Short description

.. statementlist:: is currently not parametrized.

This modification is based on Sphinx "tutorial" extension "TODO".
The main trick is to use placeholder node for .. statementlist:: and
replace it with table at later stage, when all source files were
processed and all cross-references can be resolved.

Beware, some details in Sphinx docs are not up-to-date, it's better
to read Sphinx and docutil sources.
2022-06-09 14:44:33 +02:00
Petr Špaček
b12606cebe Extend .. statement:: directive with optional values
New and currently unused values can be provided using this syntax:

.. statement:: max-cache-size
   :tags: resolver, cache
   :short: Short description

The domain stores them in its internal structures for further use.
2022-06-09 14:44:33 +02:00
Petr Špaček
a23fa7edc9 Add Sphinx extension to help with ARM maintenance and cross-linking
The extension provides a "Sphinx domain factory". Each new Sphinx domain
defines a namespace for configuration statements so named.conf and
rndc.conf do not clash. Currently the Sphinx domains are instantiated
twice and resuling domains are named "namedconf" and "rndcconf".

This commit adds a single new directive:

.. statement:: max-cache-size

It is namespaced like this:

.. namedconf:statement:: max-cache-size

This directive generates a new anchor for configuration statement and it
can be referenced like :any:`max-cache-size` (if the identifier is
unique), or more specific :namedconf:ref:`max-cache-size`.

It is based on Sphinx "tutorial" extension "recipe".
Beware, some details in Sphinx docs are not up-to-date, it's better
to read Sphinx and docutil sources.
2022-06-09 14:44:29 +02:00
Aram Sargsyan
3191eabbc7 Add CHANGES and release note for [GL #2506] 2022-06-09 10:46:35 +00:00
Tom Krizek
c9cb8ae9eb
Auto-format Python files with black
This patch is strictly the result of:
$ black $(git ls-files '*.py')

There have been no manual changes.
2022-06-08 10:28:08 +02:00
Tom Krizek
5d2b7cab08
Enforce Python codestyle with black
Black is an opinionated tool for auto-formatting Python code so we no
longer have to worry about the codestyle.

For the codestyle decisions and discussion, refer to the upstream
documentation [1].

[1] https://black.readthedocs.io/en/stable/the_black_code_style/current_style.html
2022-06-08 10:27:46 +02:00
Tom Krizek
5d64d05be9
Remove trailing whitespace
My editor doesn't like that!
2022-06-08 10:27:33 +02:00
Michał Kępień
a300392fcc Set up release notes for BIND 9.19.3 2022-06-03 11:01:13 +02:00
Michał Kępień
cd736a334e Add release note for GL #3327 2022-06-02 18:27:40 +02:00
Michał Kępień
f4cfcd3389 Reorder release notes 2022-06-02 18:27:40 +02:00
Michał Kępień
008dfecbd1 Tweak and reword release notes 2022-06-02 18:27:40 +02:00
Michał Kępień
3913e59508 Prepare release notes for BIND 9.19.2 2022-06-02 18:27:40 +02:00
Petr Špaček
833af31e7b
ARM style change: render literals in black color
After enormous amount of bikesheding about colors we decided to override
ReadTheDocs default style for literals (``literal`` in the RST markup).

Justification:
- The default RTD "light red literal on white background" is hard to
  read.  https://webaim.org/resources/contrastchecker/ reports that text
  colored as rgb(231, 76, 60) on white background has insufficient
  contrast.
- The ARM has enormous amount of literals all over the place and thus
  one sentence can contain several black/red/black color changes. This
  is distracting. As a consequence, the ARM looks like a Geronimo
  Stilton book.

What we experimented with as replacements for red:
- Green - way too distracting
- Blue - too similar to "usual clickable link"
- Violet - too Geronimo Stilton style
- Brown - better but still distracting

After all the bikesheding we settled on black, i.e. the same as all
"normal" text. I.e. the color is now the same and literals are denoted
by monospaced font and a box around the literal. This has best contrast
and is way less distracting than it used to be.

This lead to a new problem: Internal references to "term definitions"
defined using directives like .. option:: were rendered almost the same
as literals:
- References: monospaced + box + bold + clickable
- Literals: monospaced + box To distinguish these two we added black
  dotted underline to clickable references.

I hereby declare the bikeshed painted.
2022-06-02 17:13:19 +02:00
Petr Špaček
a5dd98ac1b
Allow wrapping for ARM table content
RTD style default never wraps <th> and <td> elements and that just does
not work for real sentences or any other long lines.

We can reconsider styling some tables separately, but at the moment we
do not have use for tables with long but unwrappable lines so it's
easier to allow wrapping globally.
2022-06-02 17:13:19 +02:00
Aram Sargsyan
b8073cbe72 Add CHANGES and release note for [GL #3380] 2022-06-02 09:30:38 +00:00
Tony Finch
1d807d84f1 Shrink decompression contexts
It's wasteful to use 20 bytes and a pointer indirection to represent
two bits of information, so turn the struct into an enum. And change
the names of the enumeration constants to make the intent more clear.

This change introduces some inline functions into another header,
which confuses `gcovr` when it is trying to collect code coverage
statistics. So, in the CI job, copy more header files into a directory
where `gcovr` looks for them.
2022-06-01 13:00:40 +01:00
Tony Finch
129a522d88 There can no longer be multiple compression methods
The aim is to get rid of the obsolete term "GLOBAL14" and instead just
refer to DNS name compression.

This is mostly mechanically renaming

from	dns_(de)compress_(get|set)methods()
to	dns_(de)compress_(get|set)permitted()

and replacing the related enum by a simple flag, because compression
is either on or off.
2022-06-01 13:00:40 +01:00
Tony Finch
e37b782c1a DNS name compression does not depend on the EDNS version
There was a proposal in the late 1990s that it might, but it turned
out to be unworkable. See RFC 6891, Extension Mechanisms for
DNS (EDNS(0)), section 5, Extended Label Types.

The remnants of the code that supported this in BIND are redundant.
2022-06-01 13:00:40 +01:00
Tony Finch
dded5a2612 Remove obsolete notes on name compression
These notes describe the initial compression design for BIND 9 in
1998/1999, when the IETF had some over-optimistic plans for using EDNS
to change the wire format of domain names. (Another example was
bitstring labels for IPv6 reverse DNS.) By the end of 2000 the EDNS
name compression schemes had been abandoned, and BIND 9's compression
code was rewritten to use a hash table.

There is nothing left of the implementation described here, and the
API functions are better described in `compress.h`, so these notes are
more misleading than helpful. Those who are interested in the past can
look at the version control history.
2022-06-01 13:00:40 +01:00
Matthijs Mekking
92f98002e7 Add CHANGE and release note for #1611
Feature change.
2022-05-31 15:45:14 +02:00
Matthijs Mekking
74d2e7704f Update signatures-refresh documentation
Mention in the ARM the new restriction about signatures-refresh.
2022-05-31 15:45:14 +02:00
Michal Nowak
c9aca34b1e BIND 9.19.1
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEIz+ZTe/bbr1Q+/5RJKPoRjruXlYFAmJ42nYACgkQJKPoRjru
 XlYtjA/8Dm/V5GSluMEoOiYXzqJ48qkdZk9sGpj+nlrnKSGY9UISZdB+9cc9JsvG
 D8c0a4JVYy4+Rcu6ivTc/iL7jrS7ypg5FFRFxOrWEugmCyOEJQ8tnhjvtQpzWyce
 m3PHtPn8s5HBojfmW4DJG5A+1CtbzStzGGdtZY6+uE9LcXynDyIjf0ebrYn7prVH
 E3UC+cYOMhq/v9AsOBvphc/3KpEWkTLeYLknPzD4el1MpCX7bTvEgnOPE8RgeVtm
 SGkXoEn2+EvfJf0UMJU6i4gqKJ4HFG2gwqk7H5XmEi61U3qerAExqgz81r9/pFzC
 PupeB7qjtHB0QO1QN3q++CW9sQJ4Xy0BrbcDWe0dgY7Kt8UgrM+CDV+qm4ueryem
 d6gqmT1WKFeS2NevHPnOoqoSJa2IhEWR07/DoZVUXF0ADtFeswANaRVDTv+fGy1j
 qKKPwoLndYePJROuQ296xntyK4A7E4lNkwdP76/x1I0vhqdRoMZNP2l2e7s1uznL
 O8FP6yBov2EopIoGRfmrSFVUdkGn4gPzx4M5DHYhgsI+S2TXpXVyJq0XcEvEE3S6
 bMYCHU3yR8EExvKdFxcshxJMhkezF8OvxRxKp3Vap5ClFagg+sAnI0wv5GsmxKgq
 RVzFKyuTtZisfV9a3rC5TxBtjmnMPcWuI9kj09VPlzqKh9xibhU=
 =Im1y
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEIz+ZTe/bbr1Q+/5RJKPoRjruXlYFAmKGBicACgkQJKPoRjru
 XlbjRxAAk+2JaH7/lffXyCgcCj1A75AUlS+KNnP0NwtNTMvcvDXfI5R3HYW0ZfXg
 ITlixiIyH1la029vUuyr7pYwLhM8H7ocqkmsMDh7JqhaM8DDVCUSEeBGU+dZJKbs
 IBsBgQ0I5vsD4UIiyW/1LuI05GfmFA0Ood8meIZMZ176le0M7NsWQnawZVSsY2f1
 u+r6Ca50XIPrF1J5tUk1Dmj0aPPIVSSMmcn3+ZChTyiilUegrBjv1jKKqkf6+Kgi
 vMIqZLMTtJluzPkxTUZ2kQDfCtzFM3kijAWPko1Zcybxq2OsKT5hSGFkoFo/afF4
 pmk8XzGdSII+DYfiBUU2ddt3NS7htbWgf6vfSa/oXUZXqvv8V0eYUn5A0wIw46w3
 gT6ut4BDLZ8Hl32rbuXJ0RgzVnD+0GFpkqpl9okwz9E5nbj18+CXWMRLdCUktxyK
 ZjnbiW0luuOmwSEyzA2jfNOcqbgElmCfmeJhUSWbSlt1u9k/bTms9NRjNM4MRy+r
 c7VjAEPwAzNugf4B3uZ+ObaGwAsUTBooOxXdwiHtpRAU8hSHhIVNBMRCtNzCz0dZ
 Wwd87eF7KqsKnikkm8qajvZUACty7DklDiODV8j+Ir/JXpZgGn0jqTyo5T/dueQq
 s6448xoLbVTBRtvtuAWZX95EmWDLdiizqn3HaDaHOxYXzQO5OhY=
 =Kjz0
 -----END PGP SIGNATURE-----

Merge tag 'v9_19_1'

BIND 9.19.1
2022-05-19 10:55:42 +02:00