This is an old revision of the document!
Table of Contents
DNSSEC
When in doubt, set ZSK to 1 month lifespan, KSK to 1 year lifespan, Algorithm to RSA-SHA-256
- 256 = ZSK
- 257 = KSK
Root cert “.” - RSA/SHA-256 (8). You want KSK (type 257). In NIOS, DON'T FORGET TO SET THE ALGORITHM CORRECTLY.
AwEAAaz/tAm8yTn4Mfeh5eyI96WSVexTBAvkMgJzkKTOiW1vkIbzxeF3+/4RgWOq7HrxRixHlFlExOLAJr5emLvN7SWXgnLh4+B5xQlNVz8Og8kvArMtNROxVQuCaSnIDdD5LKyWbRd2n9WGe2R8PzgCmr3EgVLrjyBxWezF0jLHwVN8efS3rCj/EWgvIWgb9tarpVUDK/b58Da+sqqls3eNbuv7pr+eoZG+SrDK6nWeL3c6H5Apxz7LjVc1uTIdsIXxuOLYA4/ilBmSVIzuDWfdRUfhHdY6+cn8HFRm+2hM8AnXGXws9555KrUB5qihylGa8subX2Nn6UwNR1AkUTV74bU=
Test DNS Resolver
You can test a DNS resolver to see if it is enforcing DNSSEC validation.
From this site.
The following query will only return an IP if DNSSEC validation is turned off. If DNSSEC validation is turned on, the resolver will realise that teh record did not pass validation.
dig @192.168.12.222 +short sigfail.ippacket.stream
The following record should work regardless of wether or not DNSSEC validation is enabled because it is correctly DNSSEC signed.
dig @192.168.12.222 +short sigok.ippacket.stream
Get DNSSEC Keys
dig +nocomments +nostats +nocmd +noquestion -t dnskey .
You will get something like this but you will find some whitespace added to the keys that you have to remove (example below has it shown)
. 62739 IN DNSKEY 257 3 8 AwEAAaz/tAm8yTn4Mfeh5eyI96WSVexTBAvkMgJzkKTOiW1vkIbzxeF3 +/4RgWOq7HrxRixHlFlExOLAJr5emLvN7SWXgnLh4+B5xQlNVz8Og8kv ArMtNROxVQuCaSnIDdD5LKyWbRd2n9WGe2R8PzgCmr3EgVLrjyBxWezF 0jLHwVN8efS3rCj/EWgvIWgb9tarpVUDK/b58Da+sqqls3eNbuv7pr+e oZG+SrDK6nWeL3c6H5Apxz7LjVc1uTIdsIXxuOLYA4/ilBmSVIzuDWfd RUfhHdY6+cn8HFRm+2hM8AnXGXws9555KrUB5qihylGa8subX2Nn6UwN R1AkUTV74bU= . 62739 IN DNSKEY 256 3 8 AwEAAbF1LAxEQPtClEQno48k6u7JjCOfVfwdENOxQUrX0JbpN5DnKGMA KIfdiWa5oDeKQ3OoQ58yCC8vjtaaGFDgpJxoLwqzhBYHPGFgins5HIER cCQPGAJKWu/ku4XLh+Fu7UyBubDCelxKTbnj26EwbochltRqGIE8hbwS XEzRNo4g+NXkaRMq2FFbaBtEE82yTmZUgFRYAFUvfGTPWblyZGtkepVu HyNb0w/u24dpsz+uyCZZR04cHfRrWOKvqD3lDOwC4+sqd6f7F841R0N2 tqSh/WDUZzWdvPBaBOz0FWFLb9porIeZ3Jm08tAMHa+3SGRXfK4RAmxV CmIQQypGabE= . 62739 IN DNSKEY 256 3 8 AwEAAcVnO2jZFx4756Rb/yAhJnsl72eemsObU43nclmXwqdJlp+kC5WQ jGYkqLT5xkaUCPhkr4NKLLrIBZXeSGazc6gx/yrrMtUpXcQvax6kfDJP Tu974OmeEbtjyyP7ZG5tUfSwNWt/4EuxDNmZTESG8jU0ZLjYIB11pK0g SXQbMVPyIyGtFGHMPx6UxWn6zUzpECWRFbqEvkA6Y13zeJ1jG2Rki/zs 7a/o13FTl/kI9013Eh6l6Kc2zxbc14GS8fpM0/xQIrZZyeiXj/2C4Rcs PeqWuNj9m0qSQrbrCZtLHb20U8x1uue4iwSX9y7LpwZd6vjYd1d6dgBa 1Xxgc/TC+m8=
Remember,
- 256 or 257: Flags that mean the DNSKEY is a ZSK (256) or a KSK (257)
- 3: The protocol that must be equal to 3
- 8: Algorithm. 8 = RSA/SHA-256
- AwEAAd7…; Public key
Disabling DNSSEC
Remove the DS records at the parent (via registrar)
Then wait until DS is no longer being published by parent nameserver. Wait, wait, wait. Maybe a week. Take TTL into account.
Once all TTL have expired, no one should try to validate the zone any more.
Only at that moment it is safe for you to stop unsigning it, which means stop publishing DNSKEY, RRSIG and NSEC/NSEC3 records.
Internal DNSSEC
Internal domains should not be DNSSEC signed. If they are truly internal domains, connecting into the chain of trust would be challenging if not impossible. However, there is another concern if the internal domains are receiving DDNS updates, then they will constantly need to re-sign the domain, which could end up being a major performance impact. DNSSEC validation is done by DNS servers, not clients, so if the clients are going to be querying servers that have the authoritative data, there is absolutely nothing to validate.
DNSSEC for internal authoritative domains. Generally avoid it, it can be more hassle than it’s worth. The internal domain either needs to be a real fully resolvable from root domain or you have to make sure that any internal resolvers doing validation have a copy of the KSK. And if you are doing any DDNS then definitely avoid as it will need to constantly churn the signatures and NSEC records.
Also, to do it properly, you’ll have to split off internal recursive and internal authoritative into two servers. Most people combine internal recursive and internal authoritative on the same server(s) for practical reasons. But in DNSSEC, you cannot vouch for yourself. So the internal authoritative cannot return its own AD flag.
Even if they only sign the external copy, if they enabled validation (depending on how many caching/recursive layers) they may end up with servfail’s on the internal names even if the auth data is on the caching appliance the client is querying.
