Problem upgrading to 9.18 - important feature being removed
Al Whaley
awsiscorg at sunnyside.com
Mon Mar 4 16:15:36 UTC 2024
Matthij, Petr,
Thanks for responding.
I am trying to make the case that one can NOT do the same things with
'lifetime unlimited'. One can do some of the same positive things, but
only if conditions are just right, and one cannot block the negative
overriding key replacement. If I have it all wrong, and one can do the
same things, then I would like to understand that, but currently that
does not seem to be the case.
With 'auto-dnssec maintain' one tells bind to update the zone signing
with any RR changes and keep the signing up to date. As long as bind
finds suitable keys in the key directory, I'm done at that point. I
don't have to worry that there are conditions that will trigger bind to
replace my keys with some that it likes better, because that code
doesn't even exist in earlier versions.
Without that 'maintain' feature, but using 'lifetime unlimited' bind
will, if it feels like it, replace my keys with some it makes itself,
which of course takes my domain(s) offline as they no longer comply with
the consistency check with the DS record at the TLD / next level up.
This is viewed by some as simply a migration problem, and therefore
simply a 'one off' thing, and once one is past that point and settled
with 9.20, no problems exist. But this isn't true. If I change my
configs in some way that bind doesn't like, or I install a new update
that has slightly different criteria for key suitability testing in the
new code, that could cause bind to 'deprecate' my keys and make its
own. I don't want bind to be making that decision. I talked more about
this problem in an earlier email.
I would like two new features in the dnssec-policy statement.
1) please add 'key-gen no' to stop not only key generation but the
decision process about whether my keys are unsuitable so that bind
doesn't reject them any more than it would in 9.16. If future versions
of bind have additional criteria that would cause it to deprecate my
current keys, this would block them.
2) also please add 'algorithm any'. right now if I have a mix of
algorithms (e.g. 8 and 13) I can't have one single default policy. If I
don't specify an algorithm, bind defaults to 13, instead of
'unspecified'. My algorithm 8 keys will be deemed unsuitable,
deprecated, and will be replaced by algorithm 13 keys - a bad thing.
This is one of the sources of instability that I am trying to
communicate. If at some point 13 is not well regarded and everyone is
being shepherded to some other algorithm, let's just for the minute call
it '22', then when I update bind, all my keys would get regenerated to
algorithm 22 if my policy statement doesn't specify an algorithm; the
default would be changed. Then all my domains are broken. I know that
I can have my software generate bind configs with different
dnssec-policy statements with different algoritms given explicitly, by
rummaging around in the key directory, figuring out which algorithm the
keys are using for various domains, and make sure the appropriate policy
statements with the right algorithm number are generated for various
domains, but it would be so much cleaner if I could have the algorithm
unspecified. Also, just to communicate what I imagine this would mean
in all cases, if I had 'key-gen yes' (presumably the default) in a
policy statement and 'algorithm any', when bind regenerated a key, it
would use the same algorithm as the current keys. If there weren't any
current keys, then it could use the latest greatest algorithm (currently
13) though it might be best to be able to specify this, or one could
have it just not generate any and throw an error message (which I would
prefer). With large numbers of domains, there will always be a mix of
algorithms. Relations with other organizations can slow down
conversions from older algorithms to new ones.
My main point here is that I am not just trying to get bind to not 'time
out' my keys (with 'lifetime unlimited'), I am trying to prevent it from
deciding my keys don't meet 'current standards' and make new ones. As
far as I know, there's no way to do that.
regards
Al
On 3/4/2024 06:05, Matthijs Mekking wrote:
>
>
> On 3/1/24 12:23, G.W. Haywood wrote:
>> Hi there,
>>
>> On Fri, 1 Mar 2024, Ond?ej Sur? wrote:
>>> On 26. 2. 2024, at 22:41, Al Whaley wrote:
>>>
>>> > A lot of pain and suffering in this world comes from people being
>>> > sure they have a 'better idea' and everybody needs to do whatever.
>>> > This feels a bit like that. ...
>>>
>>> ... ultimately, the developers working on BIND 9 are just a few
>>> people and it's absolutely reasonable to remove rarely used features
>>> - especially if there's a replacement ...
>>>
>>> For every decision we make, be it adding a new feature or removing
>>> an old feature, we do carefully consider the implications ...
>>
>> And in this case I think it would be unfair to the developers not to
>> mention that more than two years ago, before actually implementing
>> this change, the developers did ask for comment and there was debate.
>> If the OP took a part in that debate I missed it.
>
> See here for the FYI:
> https://lists.isc.org/mailman/htdig/bind-users/2022-November/106948.html
>
> In short, we said we would go forward with the deprecation, despite
> key creation in HSM's was not yet supported (it will be in 9.20,
> already merged in our development release).
>
> There is functional parity, everything you do with auto-dnssec can
> also be done with dnssec-policy. If you don't want to do automatic key
> rollovers, use 'lifetime unlimited' on keys.
>
> There is a section on manual key rollover in our kb article:
> https://kb.isc.org/docs/dnssec-key-and-signing-policy
>
> - Matthijs
>
>
>
>>
>> 8<----------------------------------------------------------------------
>> Date: Tue, 10 Aug 2021 10:02:59 +0200
>> From: Matthijs Mekking <matthijs at isc.org>
>> To: bind-users at lists.isc.org
>> Subject: Deprecating auto-dnssec and inline-signing in 9.18+
>> Message-ID: <b69d059d-3657-0b68-cb69-766d87a1dec3 at isc.org>
>> Content-Type: text/plain; charset=utf-8; format=flowed
>>
>> Hi users,
>>
>> We are planning to deprecate the options 'auto-dnssec' and
>> 'inline-signing' in BIND 9.18. The reason for this is because
>> 'dnssec-policy' is the preferred way of maintaining your DNSSEC zone.
>>
>> Deprecating means that you can still use the options in 9.18, but a
>> warning will be logged and it is very likely that the options will be
>> removed in BIND 9.20.
>>
>> We would like to encourage you to change your configurations to
>> 'dnssec-policy'. See this KB article for migration help:
>>
>> https://kb.isc.org/docs/dnssec-key-and-signing-policy
>>
>> Do you have reasons for keeping 'inline-signing' or 'auto-dnssec'
>> configurations? Is there a use case that is not (yet) covered by
>> 'dnssec-policy'? Any other concerns? Please let us know.
>> 8<----------------------------------------------------------------------
>>
>> To try to make this more positive, Maybe the lesson here is that if
>> you're using BIND other than because it happened to come with your
>> distro, then it's probably a good idea to keep an eye on this list to
>> monitor the plans for development. If it says that in the ARM, which
>> IMO it probably should, I missed that too.
>>
More information about the bind-users
mailing list