Dynamic DNS With ez-ipupdate
I recently setup dynamic DNS to allow me to SSH to my home network using a well known FQDN (Fully Qualified Domain Name). After reviewing the available dynamic DNS providers, I decided on dyndns.org since they offer several domains and an easy to use web interface. Once I picked a domain on the dyndns.org website, I decided to configure ez-ipupdate to periodically update the records on dyndns.org.
To setup ez-ipupdate, I grabbed the source from their main distribution website, and ran "configure" and "make":
$ wget http://ez-ipupdate.com/dist/ez-ipupdate-3.0.11b7.tar.gz $ tar xfvz ez-ipupdate-3.0.11b7.tar.gz && cd ez-ipupdate-3.0.11b $ ./configure && make && make install
Once the software was compiled, I decided to create an IP update user, and run the periodic updates from this account. To allow for a future chroot(8) friendly environment, I setup directories to store the logfiles, binaries, and configuration files:
$ cd /home/ipupdate $ mkdir -p apps/etc apps/log apps/bin apps/var
After the directories where created, I copied the "ez-ipupdate' utility to /home/ipupdate/apps/bin, and verified it worked by running ez-ipupdate with the "--help" option:
$ ez-ipupdate --help usage: ez-ipupdate [options]
Next I created an ez-update.conf configuration file in /home/ipupdate/apps/etc:
$ cat ez-ipupdate.conf service-type=dyndns user=me:password interface=hme1 host=yappy.dyndns.org
Once the configuration file was created, I setup the following cron job to run every 30-minutes, and notify dyndns.org if the IP address assigned to hme1 had changed:
0,30 * * * * echo >> /home/ipupdate/apps/log/ezipupdate.log && \ /bin/date >> /home/ipupdate/apps/log/ezipupdate.log && \ /home/ipupdate/apps/bin/ez-ipupdate \ -c /home/ipupdate/apps/etc/ez-ipupdate.conf \ -f -F /home/ipupdate/apps/var/ezrun \ --cache-file /home/ipupdate/apps/var/ipcache -q \ >> /home/ipupdate/apps/log/ezipupdate.log 2>&1
There are a plethora of options available to control the IP update process. These are documented in the output of "ez-ipupdate --help," the sample configuration files, and the C source code. If you have questions or comments on the article, please feel free to E-mail the author.