DNSSEC algo rollover fails to delete old keys

Matthijs Mekking matthijs at isc.org
Wed Oct 16 08:03:18 UTC 2024


If you provide the output of `rndc dnssec -status` it might give a hint 
why the keys are still published.

I suspect that BIND needs to be told that the DS has been withdrawn for 
the parent zone (assuming you don't have parental-agents set up).

For future algorithm rollovers: You can just change from "algo8" to 
"algo13", no need to have an intermittent "algo8-13" policy.

Best regards,

Matthijs

On 10/16/24 02:54, Arnold DECHAMPS wrote:
> Hello everyone,
> 
> I made a algo rollover in DNSSEC from algo 8 to algo 13.
> 
> Software version : 9.18.28-1~deb12u2-Debian
> 
> My zone configuration refers to policies :
> 
> ==========================================================================
> 
> dnssec-policy "algo8" {
>      keys {
>          ksk lifetime unlimited algorithm rsasha256;
>          zsk lifetime 30d algorithm rsasha256;
>      };
>      max-zone-ttl 1d;
>      signatures-validity 14d;
>      signatures-refresh 7d;
> };
> 
> dnssec-policy "algo13" {
>      keys {
>          ksk lifetime unlimited algorithm 13;
>          zsk lifetime 30d algorithm 13;
>      };
>      max-zone-ttl 1d;
>      signatures-validity 14d;
>      signatures-refresh 7d;
> };
> 
> dnssec-policy "algo8-13" {
>      keys {
>          ksk lifetime unlimited algorithm rsasha256;    // Old Algo
>          zsk lifetime 30d algorithm rsasha256;        // Old Algo
>      ksk lifetime unlimited algorithm 13;        // New Algo
>          zsk lifetime 30d algorithm 13;            // New Algo
>      };
>      max-zone-ttl 1d;
>      signatures-validity 14d;
>      signatures-refresh 7d;
> };
> 
> ==========================================================================
> 
> The zone config looks like :
> 
> ==========================================================================
> 
> zone "somedomain.com"{
>      ...
>      inline-signing yes;
>          dnssec-policy "algo13";
>          key-directory "/etc/bind/keys";
> };
> 
> ==========================================================================
> 
> 
> The initial idea was to switch the config of the domains that had to be 
> rolled over to algo8-13 and temporarily have both keys in the zone 
> waiting for the TTL of the DS records to expire. This was successful and 
> algo 13 is now in use. I then switched to the algo13 policy and deleted 
> the algo 8 keys of my keys directory.
> 
> At this point, Bind sees that all the algo 8 keys are expired. It also 
> see's that it can't find the files anymore (which prevents me from using 
> dnssec-settime as far as I know).
> 
> ==========================================================================
> dns_dnssec_keylistfromrdataset: error reading 
> /etc/bind/keys/Ksomedomain.com.+008+16000.private: file not found
> dns_dnssec_findzonekeys2: error reading 
> /etc/bind/keys/Ksomedomain.com.+008+16000.private: file not found
> ==========================================================================
> 
> It stills publishes the DNSKEY in the signed zone. I would like to 
> ideally correct this by forcing bind to discard the old keys. Is this 
> possible to do? And if yes, how?
> 
> Regards,
> 
> Arnold


More information about the bind-users mailing list