This document explains how to set up a DDNS zone and explains how to let a client update its dynamic IP address using the nsupdate utility. For this to work, you need at least Bind v9 on both server and client. So Red Hat 7 would be ok ;-)
First you need to create TSIG keys to ensure the communication between the client and the DNS server is secure. You can do: The TSIG key is redundantly stored in two separate files. This is a consequence of nsupdate using the DST library for its cryptographic operations, and may change in future releases. (eg Bind >= 9.2 uses .key-file) A security-bug in older Bind version causes one of the files to be world-readable. You should change the permissions by doing: Both files will hold a shared secret that you need to configure in your /etc/named.conf If this is defined, you can start using this shared secret (between the server and the client) in the definition of your zone-files. Once this is defined, you can have everything in the zone-file being updated by the client. We define something like this in /var/named/master/db.ddns.test.be. The next step is to make sure the client updates the zone-file everytime its IP address changes. I have a configuration for pump and ppp or ADSL.

ntpdate from Bind < 9.2 uses Kkey-test.+157+02315.private, newer versions use Kkey-test.+157+02315.key. So be careful which file you supply.
Since Red Hat is deprecating the use of pump, I suggest to use this script: with contents: For pump, I use the following configuration. Add this before any device configuration blocks: And add the following script as /etc/pump.script: For a ppp or adsl-connection, you could use /etc/ppp/ip-up.local much the same way. Here is a modified script: