Category: DNS
Created: 2025-04-09
LiveConfig supports DNSSEC since version 1.8.2 (see article Using DNSSEC). With the LiveConfig update to Version 2.18 or Version 3.0, a technically necessary migration of the DNSSEC configuration takes place, which we describe in more detail in this document.
auto-dnssec
to dnssec-policy
Until now, LiveConfig used the BIND option auto-dnssec: maintain
for DNSSEC. However, this is now deprecated and has been replaced by the dnssec-policy
method. As of BIND 9.20 at the latest, auto-dnssec
is no longer supported - the changeover is therefore mandatory.
The new method (dnssec-policy
) is very powerful and simplifies the use of DNSSEC considerably. The improved key management requires BIND to have write access to the keys. However, BIND with AppArmor does not have write access to the /etc/bind/keys/
directory used up to now, so we have to move the keys to /var/lib/bind/keys/
. In addition, some metadata must be added to the keys (e.g. time of publication in the DNS) so that BIND can calculate the validity periods and automatically trigger a rotation.
With the update of LiveConfig to version 2.18 or 3.0, the following changes are therefore made to the BIND/DNSSEC configuration:
/etc/bind/named.conf.options
gets dnssec-policy
entries, in which the supported algorithms and rotation periods are managed/etc/bind/keys/
to /var/lib/bind/keys/
and their file permissions are adjusted/etc/bind/zones.liveconfig
, auto-dnssec maintain;
is replaced by dnssec-policy <policy>;
, the option dnssec-secure-to-insecure yes;
is removed and the key-directory
statement is adjustedDSPublish
date (so that BIND assumes that they are already published in the DNS)SyncPublish
date and automatically creates corresponding CDS
and CDNSKEY
records.Basically, only DNS zones with activated DNSSEC are affected, and these are only migrated on the primary DNS server. Secondary servers are not affected by any of this.
It is best to wait about five minutes after the update before checking whether everything is working correctly.
DNSSEC keys that are still in /etc/bind/keys/
after the update to 2.18 or 3.0 were either added there manually at some point (i.e. are not managed by LiveConfig), or are obsolete/unused and can be deleted.
For multi-server installations of LiveConfig, it does not matter in which order you update the servers. DNSSEC migration is only triggered for zones if both the client (with BIND as primary DNS) and the LiveConfig server are running at least version 2.18.
after the LiveConfig update, check whether there are any anomalies in the BIND log (either /var/log/named/messages
, /var/log/messages
or via journalctl -S today -u named.service
)
With rndc dnssec -status <zone>
the DNSSEC status of a zone and its keys can be checked - it looks like this, for example:
# rndc dnssec -status example.org
dnssec-policy: lc-nsec3rsasha1-2048
current time: Wed Apr 9 12:43:45 2025
key: 13968 (NSEC3RSASHA1), KSK
published: yes - since Tue Apr 8 09:40:00 2025
key signing: yes - since Tue Apr 8 09:40:00 2025
No rollover scheduled
- goal: omnipresent
- dnskey: omnipresent
- ds: omnipresent
- key rrsig: omnipresent
key: 42374 (NSEC3RSASHA1), ZSK
published: yes - since Tue Apr 8 09:40:01 2025
zone signing: yes - since Tue Apr 8 09:40:01 2025
Next rollover scheduled on Sat Jun 7 08:35:01 2025
- goal: omnipresent
- dnskey: omnipresent
- zone rrsig: omnipresent
It is important here that omnipresent
is written everywhere in the key states. Documentation of the key states can be found at https://kb.isc.org/docs/dnssec-key-states.
The website https://dnsviz.net/ enables a detailed external check of whether DNSSEC is working correctly
In the long term, an automated deployment of DNSSEC is also planned with dnssec-policy
- thanks to CDS
and CDNSKEY
records. The procedure is described in RFC8078, among others - but hardly any registrars support it yet. But we are keeping an eye on it. :-)