DNSSEC sign-zone results in fatal failure

I have a working DNS in a VM-env for testing and learning purposes. It's a complete server from root-domain and a couple of subdomains.

I've added

dnssec-enable yes;

into named.conf, and also created the ZSV- and KSK-keys and appended them to one of my subdomains.

I'm trying to take the easy path and only signing one domain. Let's say I have

home.garage.top

as my top- and subdomains, and I want to sign home, and only home. I use

dnssec-signzone -o home.db -N increment -k Khome.garage.top.+005+46921 home.db Khome.garage.top.+005+36051

This should produce a home.db.signed or home.signed but it does not. All I get is

dnssec-signzone: error: dns_master_load: home.db:10: home.garage.top: not at top of zone
dnssec-signzone: fatal: failed loading zone from 'home.db': not at top of zone

What am I doing wrong?


Solution 1:

You are specifying that the origin is home.db (using -o). Is that actually the name of the zone, it sounded like the name of the zone was rather home.garage.top?

That kind of mismatch would fit the kind error message you're getting.


As a general suggestion regarding DNSSEC and BIND, however, I would suggest making use of the built-in functionality for zone maintenance rather than calling dnssec-signzone manually (and scheduling that somehow).

See the auto-dnssec maintain and possibly inline-signing yes settings as well as this guide.