DD-WRT:DDNS - Alternate way to manage multiple DDNS accounts using updatedd - HOWTO

Introduction
I tried other HOWTO's on DDNS and found they are not working with ods.org. So, I started looking around and found updatedd and its working great with ods.org services. I decided to write down this alternate method of doing DDNS with DD-WRT. The instructions below is targeted mainly for ods.org DDNS updates, it should be similar for other service types.

Updatedd supports the following services: changeip.com dyndns.org eurodyndns.org ovh.com no-ip.org ods.org hn.org regfish.com tzo.com

Please visit Updatedd website for more information on updatedd: http://www.philipp-benner.de/updatedd/

Prerequisites
ipkg-opt install perl
 * This howto requires Optware installed
 * Updatedd's wrapper is written in Perl, so please install Perl if it is not already installed:

Installation
Install updatedd with: ipkg-opt install updatedd

You will need to modify the software to work with Optware running under /opt directory: vi /opt/bin/updatedd-wrapper

Change the first line to look like:
 * 1) !/opt/bin/perl -w

You will also need to change this file: (This file is mainly for ods.org service, please see below for others) vi /opt/share/updatedd/interface.pl

Also change the first line to:
 * 1) !/opt/bin/perl -w

For other services, please change the following file accordingly with the same first line change: vi /opt/share/updatedd/ipserv.pl Change the first line to:
 * 1) !/opt/bin/perl -w

Configuration
Updatedd configuration file is located here: /opt/etc/updatedd-wrapper.conf

Please edit with vi or your favorite editor:

vi /opt/etc/updatedd-wrapper.conf Under "login" section, please change the username/password for your services:

login { changeip_1     = "user:pass"; dyndns_1       = "user:pass"; eurodyndns_1   = "user:pass"; hn_1           = "user:pass"; noip_1         = "user:pass"; ods_1          = "MY_USERNAME:MY_PASSWORD"; ovh_1          = "user:pass"; regfish_1      = "TOKEN=token"; regfish_2      = "STD=user:pass"; tzo_1          = "user:pass"; };

Please scroll down and configure each of the services that you would like to do DDNS update with. Here is an example of ODS configuration:

ods(active) { login          = ods_1; hostnames      = "host1.ods.org host2.ods.org"; ip-addr        = ipv4:`/opt/share/updatedd/interface.pl ppp0`; use-syslog     = yes; }
 * 1)       force;

When you are done with the configuration file, please save and exit with ":wq" if you are using vi.

Execute and Cron
Test your configuration with: updatedd-wrapper

If you want to periodically updates DDNS, you will need to edit crontab: vi /opt/etc/crontab

Add the following lines: */2 * * * * root /opt/bin/updatedd-wrapper
 * 1) ods.org update - Every 2 minutes

The example setup above executes updatedd-wrapper for every 2 minutes.