Commit Graph

6652 Commits

Author SHA1 Message Date
Petr Špaček
3eb6898a14 Use ECDSAP256SHA256 in DNSSEC signing examples 2022-06-22 13:37:18 +02:00
Petr Špaček
915237a28f Use code-block directive for complete command lines
Minor rendering nit, not really important.
2022-06-22 13:37:18 +02:00
Petr Špaček
1dcc34f076 Deduplicate key filename description in the DNSSEC chapter 2022-06-22 13:37:18 +02:00
Petr Špaček
5ba618fd28 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.
2022-06-22 13:37:18 +02:00
Petr Špaček
bffa3063f0 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.
2022-06-22 13:37:18 +02:00
Petr Špaček
29030fa5d7 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.
2022-06-22 13:37:18 +02:00
Petr Špaček
28a533322b 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
2022-06-22 13:37:18 +02:00
Petr Špaček
744763f8f2 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.
2022-06-22 13:37:18 +02:00
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 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