Scale up as you grow — whether you're running one virtual machine or ten thousand.

From GPU-powered inference and Kubernetes to managed databases and storage, get everything you need to build, scale, and deploy intelligent applications.

This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Great tutorial and works as it should on Ubuntu 12.04 LTS, but I have one little problem. When I go to godaddy Im not able to add ds records. WHen I click on Add DS records nothing happens. Godaddy is a strange registrar :(
Nice article. Just wanted to point out that there is a little typo in your DNS Poisoning link to Wikipedia. Should be http://en.wikipedia.org/wiki/DNS_cache_poisoning.
Nice write up! Only one concern from my perspective. Would it not be better to generate dnskey with RSASHA256 algorithm to be compatible with the ICANN root implementation of DNSSEC?
This comment has been deleted
Great tutorial! However for the step of creating the salt and everything instead of doing:
dnssec-signzone -A -3 $(head -c 1000 /dev/random | sha1sum | cut -b 1-16) -N INCREMENT -o example.com -t example.com.zone
Doing this I was getting an invalid variable error, so I changed it up a little and did this instead:
dnssec-signzone -A -3 `head -c 1000 /dev/urandom | sha1sum | cut -b 1-16` -N INCREMENT -o example.com -t example.com.zone
try this for simple signzone
dnssec-signzone -t -g -o example.com example.com.zone /etc/keys/Kexample.com*.private
Thank you for this great tutorial. I’ve used it on my Debian server for a .net and a .eu domain.
When entering DS-records for a .eu domain (also GoDaddy) one need to enter “flags”, “protocol”, “key data alg” and “public key”. This differs from your example were one is entering “key tag”, “algoritm”, “digest type” and “digest”.
I did find out the hard way that there is a need for resigning of the zones in order to prevent expired records after 30 days.
Also “dnsviz.net” finds problems that “dnssec-debugger.verisignlabs.com” don’t see.
The use of “-N increment” at the “dnssec-signzone” command line in zonesigner.sh seems superfluous, since you increment the serial within the zonefile with sed.
It is a good one for beginners!
I tried to run “/usr/sbin/zonesigner.sh example.com example.com.zone” in crontab, but it was not successful.
I could get salt changed by running the same command manually. In crontab, I asked the command to write stdout to a log file which has only part of the whole output I expect.
For example, if I run the following command manually, I get the first half of the output in cronrun log file. In such case, salt is successfully changed. /usr/sbin/zonesigner.sh home db.home >>/var/log/cronrun sed: -e expression #1, char 0: no previous regular expression Verifying the zone using the following algorithms: NSEC3RSASHA1. Zone fully signed: Algorithm: NSEC3RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked ZSKs: 1 active, 0 stand-by, 0 revoked
When crontab runs the same command, I only see the second half of the output in cronrun log, and the salt is not changed in such case. db.home.signed Signatures generated: 43 Signatures retained: 0 Signatures dropped: 0 Signatures successfully verified: 0 Signatures unsuccessfully verified: 0 Signing time in seconds: 3.673 Signatures per second: 11.706 Runtime in seconds: 3.916
If I just run the command without redirecting output to a log file, I get both the above outputs once. And salt is updated correctly.
Not sure why is that… Thank you!
Thank you for this tutorial i need help, i am stuck at the “dnssec-signzone” command, i am getting a ttl problem :
dnssec-signzone: warning: Kexample.com.+008+48907.key:5: no TTL specified; zone rejected dnssec-signzone: fatal: failed loading zone from ‘example.com.zone’: no ttl
is there any hint ? thanks a lot