DNSSEC algo rollover fails to delete old keys

Arnold DECHAMPS arnold at adechamps.net
Wed Oct 16 00:54:04 UTC 2024


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