Re: Problem upgrading to 9.18 - important feature being removed

2024-03-05 Thread Matthijs Mekking

Al,

On 3/4/24 17:15, Al Whaley wrote:

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.


You can do that with dnssec-policy, key lifetime unlimited. It is true 
it takes a migration effort, but that is not unique for dnssec-policy. 
Software is evolving and with major releases comes backwards 
incompatible changes.



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.


I am willing to consider an option 'keymgr auto/manual/off' option.

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. 


No, there are too many corner cases for this and goes against the DPPS 
(DNSSEC Policy Practice Statement) design. If you want two algorithms 
you can specify that with:


dnssec-policy {
keys {
ksk lifetime unlimited algorithm 8;
zsk lifetime unlimited algorithm 8;
ksk lifetime unlimited algorithm 13;
zsk lifetime unlimited algorithm 13;
};
};

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.


If you don't want that to happen, specify your own policy rather than 
using the default.


Also, your zone would not be broken because BIND will start an algorithm 
rollover and moves to the new state without going insecure.



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 

Re: Problem upgrading to 9.18 - important feature being removed

2024-03-04 Thread Al Whaley

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 

Re: Problem upgrading to 9.18 - important feature being removed

2024-03-04 Thread Matthijs Mekking



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 
To: bind-users@lists.isc.org
Subject: Deprecating auto-dnssec and inline-signing in 9.18+
Message-ID: 
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.


--
Visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from 
this list

ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information.


bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users


Re: Problem upgrading to 9.18 - important feature being removed

2024-03-01 Thread G.W. Haywood

Hi there,

On Fri, 1 Mar 2024, Petr ?pa?ek wrote:

On 01. 03. 24 12:23, G.W. Haywood wrote:


... 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.


ARM has warning like this:

https://bind9.readthedocs.io/en/v9.18.15/reference.html#namedconf-statement-auto-dnssec

If you have a proposal to improve it I'm all ears.


That warning is (a) specific to this issue and (b) in section 8.

I was thinking of something (a) more general and (b) in section 1 -
where people might see it before the attention span gives out. :)

Section 1.4.6 seems the obvious existing place to say something like

"The BIND users' mailing list is the place for users to get help with
BIND.  In addition the developers use it to gauge opinion on proposals
for changes to BIND's features.  If you use BIND more than casually,
it's a good idea to subscribe to the list.  You can do this by..."

--

73,
Ged.
--
Visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from 
this list

ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information.


bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users


Re: Problem upgrading to 9.18 - important feature being removed

2024-03-01 Thread Fred Morris

On Fri, 1 Mar 2024, Ondřej Surý wrote:
I wanted to address this comment. We (the developers) don't remove the 
features out of convenience or because we have 'better idea'.


It's a known problem with humans that the discipline to remove items is 
oftentimes lacking, and that humans will tend to solve problems or 
"improve" things by implementing additive rather than subtractive 
measures.


It's enough of a mental schism to consider adding and removing items as 
equivalent to different processes IMO.


A 
maintainable software can't look like Katamari[1].


With the former insight, this remark may look a little different than it 
otherwise would. ;-)



Removing unused things is an honorable and admirable objective: keep up 
the good work. You come onto this mailing list and tell us about it, 
typically well in advance. I'm generally in favor of removing unused 
features; emphasis is of course on "unused".


--

Fred Morris, internet plumber-- 
Visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from 
this list

ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information.


bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users


Re: Problem upgrading to 9.18 - important feature being removed

2024-03-01 Thread Petr Špaček

On 01. 03. 24 12:23, G.W. Haywood wrote:
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.


ARM has warning like this:

https://bind9.readthedocs.io/en/v9.18.15/reference.html#namedconf-statement-auto-dnssec

If you have a proposal to improve it I'm all ears.

--
Petr Špaček
Internet Systems Consortium
--
Visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from 
this list

ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information.


bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users


Re: Problem upgrading to 9.18 - important feature being removed

2024-03-01 Thread G.W. Haywood

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.

8<--
Date: Tue, 10 Aug 2021 10:02:59 +0200
From: Matthijs Mekking 
To: bind-users@lists.isc.org
Subject: Deprecating auto-dnssec and inline-signing in 9.18+
Message-ID: 
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.

--

73,
Ged.
--
Visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from 
this list

ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information.


bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users


Re: Problem upgrading to 9.18 - important feature being removed

2024-03-01 Thread Petr Špaček

On 01. 03. 24 8:01, 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.  A command that gives choice and real certainty would be great.


Hi,

I wanted to address this comment. We (the developers) don't remove the features 
out of convenience or because we have 'better idea'. A maintainable software 
can't look like Katamari[1]. Yes, sometimes we have better ideas (without the 
quotes) and we implement them, because they make things simpler, better, more 
stable, faster, ... add your own. Sometimes we even break things. But 
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 either in or out of BIND 9. Giving a choice is great, but then 
**who** will carry the costs of giving the choice? Maintaining all kind of 
knobs and options does come with burden and that burden might ultimately lead 
to a situation where all the time and resources are spent on maintaining those 
old features, and there's not enough left to add new improvements.

For every decision we make, be it adding a new feature or removing an old feature, we do 
carefully consider the implications it has on the users, on the developers, and on the 
world as a whole. And it is kind of hurtful to imply that we do things just because 
"we know better" (paraphrasing).


I want to add a math exercise.

Assume:
- BIND config has 300 statements
- none are context-dependent
- all statements have only yes/no options
- all bugs are caused ONLY by combination two options
- all bugs are 100 % reproducible and do not depend on data (cache, 
zones, RPZ rules etc.)


Under these very simplistic assumptions we get roughly
300!/(300-2)! = 89 700
subsets of 2 statements.

For these, we get 89 700 * 4 = 358 800 possibly problematic boolean 
combinations.


Mere 358 800 config combinations to test! Piece of QA cake, obviously.

--
Petr Špaček
Internet Systems Consortium

P.S. My combinatorics is really really rusty, but I think that even if I 
got it wrong by two orders of decimal magnitude you get the idea.

--
Visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from 
this list

ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information.


bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users


Re: Problem upgrading to 9.18 - important feature being removed

2024-02-29 Thread Ondřej Surý
> 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.  A command that gives choice and real certainty would be great.

Hi,

I wanted to address this comment. We (the developers) don't remove the features 
out of convenience or because we have 'better idea'. A maintainable software 
can't look like Katamari[1]. Yes, sometimes we have better ideas (without the 
quotes) and we implement them, because they make things simpler, better, more 
stable, faster, ... add your own. Sometimes we even break things. But 
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 either in or out of BIND 9. Giving a choice is great, but then 
**who** will carry the costs of giving the choice? Maintaining all kind of 
knobs and options does come with burden and that burden might ultimately lead 
to a situation where all the time and resources are spent on maintaining those 
old features, and there's not enough left to add new improvements.

For every decision we make, be it adding a new feature or removing an old 
feature, we do carefully consider the implications it has on the users, on the 
developers, and on the world as a whole. And it is kind of hurtful to imply 
that we do things just because "we know better" (paraphrasing).

1. https://en.wikipedia.org/wiki/Katamari_Damacy

Ondřej
--
Ondřej Surý (He/Him)
ond...@isc.org

My working hours and your working hours may be different. Please do not feel 
obligated to reply outside your normal working hours.

-- 
Visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from 
this list

ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information.


bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users


Re: Problem upgrading to 9.18 - important feature being removed

2024-02-28 Thread Matthijs Mekking




On 2/27/24 19:35, Michael Richardson wrote:


Matthijs Mekking  wrote:
 > As the main developer of dnssec-policy, I would like to confirm that
 > what has been said by Michael and Nick are correct.

Cool.

 > - When migrating to dnssec-policy, make sure the configuration matches
 > your existing keys.

Is there a way to validate the policy against what's in a specific 
zone/directory?
Effectively, "do your key management stuff --just-kidding --verbose"?


There is nothing like that today.


 > - Most issues that were shared on this list have to do with migrating
 > to dnssec-policy.

Agreed: and it bit me, and I am still a bit shell shocked.

 > - If you feel like the DS is stuck in 'rumoured' state you might need
 > to run 'rndc dnssec -checkds seen' on the key.

okay, good to know this.
. o O ( Umbrella Academy )

 > - It is not recommended to switch to dnssec-policy if you are currently
 > in a rollover.

 > I acknowledge that migration takes some care and I wish the process was
 > easier. We have some ideas to make it less error prone, but I haven't
 > found the time to work on that.

Are there open issues?


So far this were only ideas and not turned into gitlab issues, but 
things that I have been considering is a check to see if migration is 
complete (that would prevent any other policy changes), a 
named-checkconf option to see if the dnssec-policy configuration matches 
the existing key-directory.


Carsten created an issue for dry-running a migration:

https://gitlab.isc.org/isc-projects/bind9/-/issues/4606
--
Visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from 
this list

ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information.


bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users


AW: Problem upgrading to 9.18 - important feature being removed

2024-02-27 Thread Klaus Darilion via bind-users
> -Ursprüngliche Nachricht-
> Von: bind-users  Im Auftrag von Carsten
...
> It would be nice to have a "dry-run" mode in BIND 9, where BIND 9 would
> report steps it would do because of "dnssec-policy", but will not execute the
> changes.

If this Bind9 is only a hidden primary, disable all outgoing XFR for the 
respective zone, and make a copy of the Bind config and zone/journal files. 
That way you could test the new config and avoid leakage of broken/unwanted 
zones.

Regards
Klaus
-- 
Visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from 
this list

ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information.


bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users


Re: Problem upgrading to 9.18 - important feature being removed

2024-02-27 Thread Michael Richardson

Matthijs Mekking  wrote:
> As the main developer of dnssec-policy, I would like to confirm that
> what has been said by Michael and Nick are correct.

Cool.

> - When migrating to dnssec-policy, make sure the configuration matches
> your existing keys.

Is there a way to validate the policy against what's in a specific 
zone/directory?
Effectively, "do your key management stuff --just-kidding --verbose"?

> - Most issues that were shared on this list have to do with migrating
> to dnssec-policy.

Agreed: and it bit me, and I am still a bit shell shocked.

> - If you feel like the DS is stuck in 'rumoured' state you might need
> to run 'rndc dnssec -checkds seen' on the key.

okay, good to know this.
. o O ( Umbrella Academy )

> - It is not recommended to switch to dnssec-policy if you are currently
> in a rollover.

> I acknowledge that migration takes some care and I wish the process was
> easier. We have some ideas to make it less error prone, but I haven't
> found the time to work on that.

Are there open issues?



signature.asc
Description: PGP signature
-- 
Visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from 
this list

ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information.


bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users


Re: Problem upgrading to 9.18 - important feature being removed

2024-02-27 Thread Carsten Strotmann via bind-users
Hi Ondřej,

> On 27. Feb 2024, at 16:43, Ondřej Surý  wrote:
> 
> Carsten, could you please fill a feature request in the GitLab?


Done, #4606.

Greetings

Carsten

-- 
Visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from 
this list

ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information.


bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users


Re: Problem upgrading to 9.18 - important feature being removed

2024-02-27 Thread Carsten Strotmann via bind-users
Hi Jim,

> On 27. Feb 2024, at 16:39, Jim P. via bind-users  
> wrote:
> 
> There should also be an option to display the current configuration in
> specific detail to easily create a new KASP (side question: why does DNS
> need a new acronym?)

The term “KASP” for “Key-and-signing-policy” has been around in the DNS 
community for many years. I remember first hearing that term when .SE (Sweden) 
started signing their TLD in 2005. 

In the beginning of DNSSEC deployment, the KASP was a document that defines how 
DNSSEC is implemented for a given DNS zone (that is still a good practice, 
writing down DNSSEC algorithms used, key sizes and rollover intervals etc). 

In the last years, improvements in the DNS server software (OpenDNSSEC, Knot 
DNS, but also BIND 9) made it possible to define the KASP in the software, 
which makes it easier to match the KASP document with the KASP configuration on 
the server itself.

From my view, this is a good development.

Greetings

Carsten

-- 
Visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from 
this list

ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information.


bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users


Re: Problem upgrading to 9.18 - important feature being removed

2024-02-27 Thread Ondřej Surý
Carsten, could you please fill a feature request in the GitLab?

Thanks,
--
Ondřej Surý — ISC (He/Him)

My working hours and your working hours may be different. Please do not feel 
obligated to reply outside your normal working hours.

> On 27. 2. 2024, at 16:06, Carsten Strotmann via bind-users 
>  wrote:
> 
> Hi Matthijs,
> 
>> On 27 Feb 2024, at 15:54, Matthijs Mekking wrote:
>> 
>> - When migrating to dnssec-policy, make sure the configuration matches your 
>> existing keys.
> 
> the most problems I've seen so far have to do with this step: admins "think" 
> they have created a configuration that matches the current keys, but they 
> haven't (for one reason or other, it happens for me, despite working a lot 
> with DNSSEC and BIND 9).
> 
> It would be nice to have a "dry-run" mode in BIND 9, where BIND 9 would 
> report steps it would do because of "dnssec-policy", but will not execute the 
> changes.
> 
> That way, admins can create a configuration with "dry-run" mode enabled, 
> check the logfiles, and if the actions in the log-file match the 
> expectations, the "dry-run" mode can be removed and the new configuration 
> will become active.
> 
> Greetings
> 
> Carsten
> --
> Visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from 
> this list
> 
> ISC funds the development of this software with paid support subscriptions. 
> Contact us at https://www.isc.org/contact/ for more information.
> 
> 
> bind-users mailing list
> bind-users@lists.isc.org
> https://lists.isc.org/mailman/listinfo/bind-users

-- 
Visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from 
this list

ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information.


bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users


Re: Problem upgrading to 9.18 - important feature being removed

2024-02-27 Thread Jim P. via bind-users
On Tue, 2024-02-27 at 16:06 +0100, Carsten Strotmann via bind-users
wrote:
> It would be nice to have a "dry-run" mode in BIND 9, where BIND 9
> would report steps it would do because of "dnssec-policy", but will
> not execute the changes.

**This** ^^^

There should also be an option to display the current configuration in
specific detail to easily create a new KASP (side question: why does DNS
need a new acronym?)

I don't do DNS as a full time job, so I'm in the dark on a lot of the
reasoning and needs for all these changes, BUT simple testing that I
have done have shown me that dnssec-policy fails often enough that I'm
planning on waiting until the last possible hour in hopes that there is
better tooling and simpler documentation.  Not everyone running a DNS
server can afford the time to be an expert at bind9, and I doubt that
ISC only wants to have bind9 used by the 42 people who are experts of
bind9.

-Jim P.
-- 
Visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from 
this list

ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information.


bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users


Re: Problem upgrading to 9.18 - important feature being removed

2024-02-27 Thread Carsten Strotmann via bind-users
Hi Matthijs,

On 27 Feb 2024, at 15:54, Matthijs Mekking wrote:

> - When migrating to dnssec-policy, make sure the configuration matches your 
> existing keys.

the most problems I've seen so far have to do with this step: admins "think" 
they have created a configuration that matches the current keys, but they 
haven't (for one reason or other, it happens for me, despite working a lot with 
DNSSEC and BIND 9).

It would be nice to have a "dry-run" mode in BIND 9, where BIND 9 would report 
steps it would do because of "dnssec-policy", but will not execute the changes.

That way, admins can create a configuration with "dry-run" mode enabled, check 
the logfiles, and if the actions in the log-file match the expectations, the 
"dry-run" mode can be removed and the new configuration will become active.

Greetings

Carsten
-- 
Visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from 
this list

ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information.


bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users


Re: Problem upgrading to 9.18 - important feature being removed

2024-02-27 Thread Matthijs Mekking
As the main developer of dnssec-policy, I would like to confirm that 
what has been said by Michael and Nick are correct.


I will repeat the most important takeaways:

- Setting the lifetime to unlimited on keys and BIND will never roll 
your keys automatically.


- Most issues that were shared on this list have to do with migrating to 
dnssec-policy.


- When migrating to dnssec-policy, make sure the configuration matches 
your existing keys.


- Make sure the migration is complete by checking that all states are in 
'omnipresent' (with 'rndc dnssec -status ').


- If you feel like the DS is stuck in 'rumoured' state you might need to 
run 'rndc dnssec -checkds seen' on the key.


- It is not recommended to switch to dnssec-policy if you are currently 
in a rollover.


I acknowledge that migration takes some care and I wish the process was 
easier. We have some ideas to make it less error prone, but I haven't 
found the time to work on that.


On the more positive side, we haven't heard

Thanks to all for switching to dnssec-policy and reporting issues.

Best regards,

Matthijs


On 2/27/24 07:01, Nick Tait via bind-users wrote:

On 27/02/2024 13:22, Michael Sinatra wrote:

On 2/26/24 13:41, Al Whaley wrote:
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.


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. 


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.


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.


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.


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?


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?


Nick.


--
Visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from 
this list

ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information.


bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users


Re: Problem upgrading to 9.18 - important feature being removed

2024-02-27 Thread Darren Ankney
Hi,

Here is a (possibly) helpful guide that might be of use when migrating
from auto-dnssec to dnssec-policy:
https://kb.isc.org/docs/dnssec-key-and-signing-policy

Thank you,
Darren Ankney

On Tue, Feb 27, 2024 at 1:01 AM Nick Tait via bind-users
 wrote:
>
> On 27/02/2024 13:22, Michael Sinatra wrote:
>
> On 2/26/24 13:41, Al Whaley wrote:
>
> 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.
>
>
> 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.
>
> 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.
>
> 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.
>
> 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.
>
> 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?
>
> 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?
>
> Nick.
> --
> Visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from 
> this list
>
> ISC funds the development of this software with paid support subscriptions. 
> Contact us at https://www.isc.org/contact/ for more information.
>
>
> bind-users mailing list
> bind-users@lists.isc.org
> https://lists.isc.org/mailman/listinfo/bind-users
-- 
Visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from 
this list

ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information.


bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users


Re: Problem upgrading to 9.18 - important feature being removed

2024-02-26 Thread Nick Tait via bind-users

On 27/02/2024 13:22, Michael Sinatra wrote:

On 2/26/24 13:41, Al Whaley wrote:
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.


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. 


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.


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.


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.


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?


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?


Nick.-- 
Visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from 
this list

ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information.


bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users


Re: Problem upgrading to 9.18 - important feature being removed

2024-02-26 Thread Michael Sinatra



On 2/26/24 13:41, Al Whaley wrote:
As far as I have been able to determine through some fairly extensive 
reading, a feature I depend on has fallen out of favor with the BIND 
developers, and is being removed.
DNSSEC in 9.18 has two automatic actions where the original code had 
just one, and the second cannot be disabled.

I am referring to the deprecated feature:

|auto-dnssec maintain;|

||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.


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.


I am sure there are the usual people that will assure me I don't or 
shouldn't want to do what I am doing, but I am experienced and have good 
reasons.  Yes I know that I can have bind update the DS records, but for 
good reason I definitely do not want to do that.  I need some syntax 
that assures my use of existing KSK and ZSK keys and prevents bind from 
changing them.


Actually, I do exactly what you're doing in several circumstances.  I 
use the deprecated `dnssec-keymgr` on a few different systems, including 
a signing service that I run, in order to maintain keys.  (As is 
probably the case with you, there's already some tooling built around 
generating, rotating, backing up, etc. of keys that I have not yet 
integrated with the newer KASP regime.) I *do* plan to refactor these 
different services to use KASP, but I still need to do some more 
testing/QA/etc.  On my personal domains (including the ironically-named 
one I am sending this from), I have mostly switched to 100% KASP.  KSKs 
properly don't rotate, and ZSKs do only if I request.


I wonder if the bind developers are open to allowing a command in the 
new policy statement structure that blocks this 'feature' of 
automatically updating ZSK and KSK?  If there is such a thing already, I 
will be delighted to hear that I had missed seeing it.


I believe the following KASP will do what you want it to do:

dnssec-policy pkcs11 {
keys {
zsk lifetime unlimited algorithm 13;
ksk lifetime unlimited algorithm 13;
};
signatures-refresh P26D;
signatures-validity P30D;
signatures-validity-dnskey P30D;
};

This policy has been running for about 6 months and BIND has never seen 
fit to roll any keys, ZSK or KSK.  (You can safely ignore the sig 
validity/refresh stuff; I add that for other reasons.)



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.  A command that gives choice and real certainty 
would be great.


That's certainly true in a lot of cases.  We hear stories all of the 
time (and sometimes experience them) about how well-intentioned software 
developers try to reduce code complexity and end up inadvertently 
generating work for users and admins.  Some of that's inevitable as we 
keep up with evolving software and best-practices.  (It also provides 
some level of job security :-D.)


But in this case, I think the BIND developers did a good job ensuring 
there was a way to create policies that integrate well with 
key-management regimes external to BIND.


michael
--
Visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from 
this list

ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information.


bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users


Problem upgrading to 9.18 - important feature being removed

2024-02-26 Thread Al Whaley
As far as I have been able to determine through some fairly extensive 
reading, a feature I depend on has fallen out of favor with the BIND 
developers, and is being removed.
DNSSEC in 9.18 has two automatic actions where the original code had 
just one, and the second cannot be disabled.

I am referring to the deprecated feature:

|auto-dnssec maintain;|

||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.


I am sure there are the usual people that will assure me I don't or 
shouldn't want to do what I am doing, but I am experienced and have good 
reasons.  Yes I know that I can have bind update the DS records, but for 
good reason I definitely do not want to do that.  I need some syntax 
that assures my use of existing KSK and ZSK keys and prevents bind from 
changing them.


I wonder if the bind developers are open to allowing a command in the 
new policy statement structure that blocks this 'feature' of 
automatically updating ZSK and KSK?  If there is such a thing already, I 
will be delighted to hear that I had missed seeing it.


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.  A command that gives choice and real certainty 
would be great.
-- 
Visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from 
this list

ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information.


bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users