<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<div class="moz-cite-prefix">On 27/02/2024 13:22, Michael Sinatra
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:62742549-6a2e-4f87-8974-2a3fbbfb9197@brokendns.net">On
2/26/24 13:41, Al Whaley wrote:
<br>
<blockquote type="cite" style="color: #007cff;">Originally (under
the above command) RR records for DNSSEC were maintained by
bind, but the ZSK and KSK keys were maintained by me. This
command is being discarded. I understand that bind "sort of"
supports this feature in 9.18 by allowing the DNSSEC policy
statement to declare unlimited lifetime, but after careful
reading of the documentation and reading a number of complaints,
it turns out that bind may under various circumstances decide
that it is appropriate not to use existing keys and decide that
it knows best, and then it makes new ones. This potential
instability of course would be disastrous, and completely
unnecessary.
<br>
</blockquote>
<br>
I have never experienced this, in either BIND 9.16 or BIND 9.18
(including the latter with KASP set to not rotate any keys). Can
you elaborate as to where in the documentation and/or what
complaints you have seen where correctly configured KASPs in
9.18.24+ decide to roll keys? I'd certainly like to know if
that's the case, for reasons described below.
</blockquote>
<p>The only example that I can recall (from this list) where this
type of thing happened was where someone specified a different
algorithm when transitioning to dnssec-policy. The advice for this
type of situation is to transition to dnssec-policy with the same
algorithm first, and make sure everything in your state files is
"omnipresent", and only then update the dnssec-policy to use a
different algorithm.</p>
<p>My (somewhat uneducated) advice would also be to avoid
implementing dnssec-policy if you were in the middle of a key
roll-over. Not because I think it would necessarily create a
problem, but more to reduce risk and make it easier to verify that
nothing untoward has happened.<br>
</p>
<p>In other words, if you aren't in the middle of a roll-over, and
your current keys don't have any expiration set, then you can
reconfigure your zone to use a dnssec-policy that specifies the
same algorithm as what you previously had, and BIND should be
happy to carry on using the existing keys -- indefinitely if
you've specified an unlimited lifetime. The only difference you
should notice is that after implementing dnssec-policy there are
additional *.state files in your keys directory.</p>
<p>The only other thing I'd add is that if (after transitioning
to dnssec-policy) you do initiate a manual roll-over, keep an eye
on your state files to verify that the new key becomes
"omnipresent". This can take much longer than you might expect!
For ZSK roll-overs don't be surprised if it takes 9-10 days. Also
FYI for KSK (and CSK) roll-overs, you may need to run rndc
commands to tell BIND when DS records are added/removed -- but
that is possibly what you already do with auto-dnssec?<br>
</p>
<p>Of course in life there are no absolute guarantees, so you should
back up your configuration and make a plan to mitigate the impacts
in the event that everything turns pear-shaped?<br>
</p>
Nick.
</body>
</html>