Commit graph

6634 commits

Author SHA1 Message Date
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
9b78663110
Add Ubuntu 22.04 LTS (Jammy Jellyfish)
(cherry picked from commit 4c2af3bdfa)
2022-06-22 11:38:53 +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
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
Michał Kępień
64fcf1e464 BIND 9.18.4
-----BEGIN PGP SIGNATURE-----
 
 iQJDBAABCgAtFiEENKwGS3ftSQfs1TU17QVz/8hFYQUFAmKZClMPHG1pY2hhbEBp
 c2Mub3JnAAoJEO0Fc//IRWEFNbsQAKCOxV9aJheb2HP01UUeB4MNEpepCpcFwG0k
 lc9wZe8PzFF6wZ9jpLMFB6M7iS3fRQvTSYXzX9tzODVHu5kKxCYTwr6Vg2Lzvymh
 MrnzXicjAHrLfP6iB/Xoxq84N9Z8j5TeDllw8I2WT09K+ZJxFZ3yWet6eCPuwxg0
 ldmJNBmbNPzGPTMr0n6khRNhRlmYDyzadAcs9LkDodZ18LfBmZu7D8q8V2FsDgad
 AMlyabaWCo0P3qR6XbBEClWRlMXp4Y/GRTRxVZGHHtkc9TbXm6/E9NbJTxK5/nXi
 0ut5ux/MvZo85hxSMwDsuaTJmRzyiqTihauAxFA00Epa9wtbCAyFipzLX1OnS/ya
 hUuaJYNw11AK2fxh4QNcV+4ufHSGqgrWP5dPiMSWLBNBDbxLS2/v3OWb+50RaouX
 DTX83D8ymaa4t48HA4XiaMMrYlniVDVhjao9d4qTb7q7BimJtg4IkbZH/0nnsahB
 Z+di+a4GgemSjIMUCsxa8SF++569viu5s8x3NfdxboDVES1QIgyUbacoV/8UULtO
 PrWILyVzeXM5CyvXcTf4dp4sCIyzKhGkRbZnCQiQ0HIcfSu89BZE98e8/D7+3CxQ
 An//YL0lXsz1AP7weaDzovqGcrwsGwDjFZNCMsoq0ABZh+8XLzgqBcTjFrTygTuj
 0a7f5wkk
 =Qd4z
 -----END PGP SIGNATURE-----

Merge tag 'v9_18_4' into v9_18

BIND 9.18.4
2022-06-15 15:58:14 +02:00
Petr Špaček
d1d5531c6a
Update FAQ in the DNSSEC Guide
Mention DoT/DoH, update stats, remove mentions of early stages of
deployment.

(cherry picked from commit fd3a2c7854)
2022-06-14 18:20:50 +02:00
Petr Špaček
a04d6200e0
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.

(cherry picked from commit 635885afe6)
2022-06-14 18:20:50 +02:00
Petr Špaček
08a5f5cea2
Update DNSSEC validation deployment stats in DNSSEC Guide
(cherry picked from commit 832c172985)
2022-06-14 18:20:50 +02:00
Petr Špaček
8961105b98
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.

(cherry picked from commit 6cf8066b9c)
2022-06-14 18:20:50 +02:00
Petr Špaček
a85d0286a9
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.

(cherry picked from commit 6e79877759)
2022-06-14 18:20:50 +02:00
Petr Špaček
782f3b6845
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.

(cherry picked from commit 0e1306374e)
2022-06-14 13:12:59 +02:00
Ondřej Surý
e644acbfae Add CHANGES and release note for [GL #3400]
(cherry picked from commit 646df5cbbc)
2022-06-14 11:54:11 +02:00
Petr Špaček
47c214644b
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
(cherry picked from commit d029d6374d)
2022-06-14 09:08:07 +02:00
Petr Špaček
4630d50f83
Clarify dnssec-keyfromlabel -a in man page
(cherry picked from commit 5f53003dae)
2022-06-10 07:55:12 +02:00
Petr Špaček
e949ac7bbc
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.

(cherry picked from commit 33931c97fa)
2022-06-09 14:56:21 +02:00
Petr Špaček
ed4634c5a4
Warn about duplicate .. statement:: definitions
(cherry picked from commit ff577462f9)
2022-06-09 14:56:21 +02:00
Petr Špaček
0078fa1058
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.

(cherry picked from commit 2f2aa1d21c)
2022-06-09 14:56:21 +02:00
Petr Špaček
851b513e45
Render optional statement metadata in the ARM
Optional values :short: and :tags: are now rendered right after the
statement heading.

(cherry picked from commit 475f7a9603)
2022-06-09 14:56:21 +02:00
Petr Špaček
90ced1c6a8
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.

(cherry picked from commit 976aef030a)
2022-06-09 14:56:21 +02:00
Petr Špaček
5919415e4a
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.

(cherry picked from commit b12606cebe)
2022-06-09 14:56:20 +02:00
Petr Špaček
29d78932ea
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.

(cherry picked from commit a23fa7edc9)
2022-06-09 14:56:15 +02:00
Aram Sargsyan
b870d52970 Add CHANGES and release note for [GL #2506]
(cherry picked from commit 3191eabbc7)
2022-06-09 10:51:45 +00:00
Tom Krizek
e4bb3c3637
Auto-format Python files with black
This patch is strictly the result of:
$ black $(git ls-files '*.py')

There have been no manual changes.

(cherry picked from commit c9cb8ae9eb)
2022-06-08 13:18:27 +02:00
Tom Krizek
1af7372fc0
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

(cherry picked from commit 5d2b7cab08)
2022-06-08 13:18:27 +02:00
Tom Krizek
d73ede61f6
Remove trailing whitespace
My editor doesn't like that!

(cherry picked from commit 5d64d05be9)
2022-06-08 13:18:27 +02:00
Michał Kępień
05a320b476 Set up release notes for BIND 9.18.5 2022-06-03 11:03:26 +02:00
Michał Kępień
9a36774aee Add release note for GL #3327 2022-06-02 20:43:07 +02:00
Michał Kępień
f353ea526b Reorder release notes 2022-06-02 20:43:07 +02:00
Michał Kępień
71d315a461 Tweak and reword release notes 2022-06-02 20:43:07 +02:00
Michał Kępień
16006e959f Prepare release notes for BIND 9.18.4 2022-06-02 20:43:07 +02:00
Petr Špaček
58a7e19c59
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.

(cherry picked from commit 833af31e7b)
2022-06-02 17:23:31 +02:00
Petr Špaček
15f1517727
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.

(cherry picked from commit a5dd98ac1b)
2022-06-02 17:23:27 +02:00
Aram Sargsyan
ee7d54164e Add CHANGES and release note for [GL #3380]
(cherry picked from commit b8073cbe72)
2022-06-02 10:21:35 +00:00
Matthijs Mekking
c18dce4c49 Add CHANGE and release note for #1611
Feature change.

(cherry picked from commit 92f98002e7)
2022-05-31 17:16:59 +02:00
Matthijs Mekking
2036a8b161 Update signatures-refresh documentation
Mention in the ARM the new restriction about signatures-refresh.

(cherry picked from commit 74d2e7704f)
2022-05-31 17:16:46 +02:00
Tony Finch
84113b237a Teach dnssec-settime to read unset times that it writes
When there is no time in a key file, `dnssec-settime` will print
"UNSET", but to unset a time the user must specify "none" or "never".
This change allows "unset" or "UNSET" as well as "none" or "never".
The "UNSET" output remains the same to avoid compatibility problems
with wrapper scripts.

I have also re-synchronized the "Timing Options" sections of the man
pages.

(cherry picked from commit 4c96efac5c)
2022-05-23 15:15:10 +02:00
Tony Finch
f84cd02b0c Teach dnssec-settime to read times that it writes
The dnssec-settime -p and -up options print times in asctime() and
UNIX time_t formats, respectively. The asctime() format can also be
found inside K*.key public key files. Key files also contain times in
the YYYYMMDDHHMMSS format that can be used in timing parameter
options.

The dnssec-settime -p and -up time formats are now acceptable in
timing parameter options to dnssec-settime and dnssec-keygen, so it is
no longer necessary to parse key files to retrieve times that are
acceptable in timing parameter options.

(cherry picked from commit c38a323082)
2022-05-23 13:44:50 +02:00
Michal Nowak
4dde80f655 BIND 9.18.3
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEIz+ZTe/bbr1Q+/5RJKPoRjruXlYFAmJ5PF8ACgkQJKPoRjru
 XlZqfg/+NRV6vVEJFKbL+GEUebt9Wfx+6Oqss78FutKqUjblHX18Ga8rEBHirnSr
 DsUB7LczqGUl/GJfgHkRyteBBrbEjpszkAtxXBCniJhz+mOuYRTrutB1xP43Wj/i
 2XeG3cWhjkBymVblL0xKBdBtl1ySblA+xWdp4G3vF3gRzOf/APVmdhKciA5km02s
 Kk4P2TeCjlNfSzPdwSByydnq/Ik/N1dGZDe+FKuIleULg5WZI6PMfzSy35rPDaYW
 e8NIaybjFiboTPv65L0kW/nEainNIiam4jeEOnQs0M/iKKHqILwZx/+j74E8f4qh
 P/Xdjy9voHkJpAeKSl/ZkOaBVGY9yNm5dXrNMB1926tKJ1FciH6qdfBI/s0AhZ0g
 QEVpBigM2L1rl6MobuHQ3WPkax8NcUpndDdCteZkdh5HcmRrGrw/JH1GvzSNq+75
 L3P2wciNoC9aZaXOo3FOSPRiOENUNGZjcLxntCLsJZ/B0n4Zv+vOFeNZGQTt4PC5
 Aly1LbsrOn/kbXKOiZcoEny4YQGPG55lEU+Yb6SLe5vahx24bGe2K3aP12WRy7x+
 2hcAbanoI97t+95Q1el8i3ekg9nYsE/tIbKAlHmnb/xChd4n4BSCHJBAZMgMA5Tk
 n0JbhxwTTWW3dewQzTr6jvCqi/2i5tQJCuGlhnerkgWZezk47Ko=
 =hIP4
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEIz+ZTe/bbr1Q+/5RJKPoRjruXlYFAmKGFw4ACgkQJKPoRjru
 XlZK2Q//fy+tcGiqwxMBwhVhrkMGL4L2CKrlMgs4/DZJKnTb01IHr3DwB+Ag4iVk
 LkK9e8plr/Hf/VZ5LaV2mkk5fCdImZdP24AgpIg9VSaf+tlm6PhdPadWL6ucXayI
 TndnxLV6TdXkySu4zzWcXxgwFxUy3mku4QlAQD3UNCsikqyiUGDOP3Z/BNi9OU10
 YidisnDiPWMNBCvOU9ThPAKcGIHCwvk5rkcno771d/izvLbBWrtQh/8iKqMP6gyT
 dsB8Oq4mlPJ5gh4yv0LLmyUiNFg4CSEVxfWd6PRmZlvXtwOQqA1tKR7srPXwrHxd
 bx+5bbZtQKqEi8l/UYdHhyqaPdPWnUaydzU1LzhUSHJK2f9pEDOfBlOj82Z0hMm2
 T6EaoyykIqyhngSFK9Ef+sCAZ3qrss96bRPSN8gOpn6I6sioH+Bp+E3cBDVTkyRA
 rVKTA0HLegRH2/QnPJjHAu7I6YPE36LZu7kZdEiw8ysqWcIEva8E/PFv2YBJxAv1
 SjEdhzfxVf9ncWndrgC1OjsoDucxYolg1sUCZ776e/E7MzAkOo1cqTXqhi6pcHT0
 OGMmJVitPXJ5bxiZpK1QZ46DqxwHLolk9gImnNvE01vJRxltWKqtdV1dH6Ca6MWo
 s6qMxFcIwmI4Zgq3V933CoD8HCmYW8W7UQ1tEXmDfPwEueqzoTs=
 =/ei9
 -----END PGP SIGNATURE-----

Merge tag 'v9_18_3' into v9_18

BIND 9.18.3
2022-05-19 12:07:45 +02:00
Evan Hunt
dfe196844c specify time format in the documentation for 'rdnc dnssec -checkds'
also clarified the writing in the surrounding paragraph.

(cherry picked from commit 83f9466d61)
2022-05-18 15:30:18 -07:00
Matthijs Mekking
7cfc5e51ed Add changes and release notes for #3302
Add a comment to make danger happy.

(cherry picked from commit 0f89f0b134)
2022-05-16 10:37:39 +02:00
Matthijs Mekking
4dbfa40e95 Remove confusing parental-source line
Remove the line "This address must appear in the secondary server’s
parental-agents zone clause". This line is a copy paste error from
notify-source.

Rewrap.

(cherry picked from commit 313f606692)
2022-05-11 15:02:58 +00:00
Petr Špaček
be7ee4137c
Remove ARM notes about Solaris 2.5.1
It was released in May 1996 and hopefully is not used to run BIND
anymore.

(cherry picked from commit 4388656f60)
2022-05-11 12:53:05 +02:00
Suzanne Goldlust
1369885c2b
Add RPZ section to the ARM
Closes: #1223

(cherry picked from commit 8a3c4cbcdd)
2022-05-11 11:08:18 +02:00
Ron Aitchison
3f816768cc
Rewrite Configurations and Zone Files section in the ARM
(cherry picked from commit 5d432d40a1)
2022-05-11 11:07:32 +02:00