Modify the files in order to apply to your case! These files will not work out of the box.
See the main guide for explanation and (e.g. key generating) commands.
Our setup consists of a main zone example.org, a manually mantained subzone user1.example.org, and a dynamic DNS zone dyn.example.org.
Users user1 and user2 can dynamically modify records inside the dynamic zone, each under their subdomain user[1/2].dyn.example.com.
Useruser1 set up ddclient to update an A record home.user1.dyn.example.com to their home IP address, which is also CNAMEd to home.user1.example.com.
Everything is DNSSEC-enabled.
We disabled ipv6.
BIND config
BIND config file
Our main config file looks something like this
Zonefiles
The domain registrar has to be set up to point ns1.example.com end ns2.example.com to the server’s IP address (NS+A records, see their docs), and it should contain a DS record containing the public key corresponding to the main zone KSK (use dnssec-dsfromkey).
Our local zonefiles will instead look something like the following.
Main zone:
For user1:
For user2:
For dynamic zone (this is only the initial zonefile, it will be overwritten by the server when dynamic changes are performed - commenting is useless for this reason):
ddclient config
User user1 copies their TSIG key “user1key” in /etc/ddclient/user1key.key, then they modify /etc/ddclient/ddclient.conf to match the following:
Other files
Besides the mentioned files, we also have
private keys, readable by user named and in directories writable by user named, in /var/named/keys/, /srv/named/user1/keys/, /srv/named/user2/keys/ and in user1’s home server in /etc/ddclient/user1key.key (the last one has nothing to do with named).
public keys which could technically be deleted but it’s best to keep for reference
accurate directory permissions for /var/named (only named for read and write), /srv/named/user1/ (named for read and user1 for read and write) and the same for /srv/named/user2/, /etc/ddclient/ on user1’s home machine (only root has read and write, especially to user1key.key)