TechInfoDepot:DD-WRT/No-IP.com Client

There are a few DDNS services already integrated into the web interface for DD-WRT, but my favorite, NO-IP isn't one of them. (update: every version > DD-WRT v23 SP2 has it onboard by default.) While I could easily run No-IP.com's Dynamic Update Client to keep my domain name in sync with my WAN IP address one of my desktop machines, I'd much rather have it running on the router. This wiki will show you how to set it up to automatically run on startup.

No-IP has also published a guide on their site on how to configure ddns and dd-wrt.

=Prerequisites= You should already have: -a Linksys WRT54G product -DD-WRT installed as the firmware -SCP or some other way to copy files to and from your desktop setup -a NO-IP.com account you'd like to synchronise -some knowledge of using ipkg to install packages -jffs already configured if you don't want to install to ram If you're running Windows on your desktop: -TextPad or Win32Pad (or other *nix friendly text editor. DO NOT USE NOTEPAD)

=Installation=

Install the NOIP ipkg Package
-Find the noip package in the OpenWRT Package Tracker. You will need the URI of package to install it. -telnet or ssh shell into the router -run the command ipkg install -d    should be root to install to /jffs  should be ram to install to /tmp *Remember, /tmp is deleted on router reboot* Ex: ipkg install -d ram http://www.ramereth.net/openwrt/ipkg/noip_1.6.0_mipsel.ipk

Editing the noip.config file
-Using your method of choice, copy the file //etc/no-ip.conf to your desktop machine -Using a *nix friendly text editor, edit no-ip.conf to with your [NO-IP.com] account information -fill in your username, and password (note: use url encoding for special chars ie. '+' = '%2B') -fill in the hostname you would like it to update. -fill in the domain for that host name. -Alternatively, fill in the group name to update if you have multiple hosts grouped together -If you are not using one of the fields DOMAIN, HOSTNAME, or GROUP set it equal to nothing''. Do not comment fields. ex1: I want my router to update example.no-ip.com every 30 minutes LOGIN   = login_name@address.ext
 * 1) this is a sample configuration file for noip_updater
 * 2) 	it should be changed to contain your values and
 * 3) 	placed in /usr/local/lib/no-ip.conf or /usr/local/etc/no-ip.conf
 * 4) 	The meaning of each line is desctribed in the README file
 * 1) 	The meaning of each line is desctribed in the README file

PASSWORD = myP4ssw0rd

HOSTNAME = example

DOMAIN  = no-ip.com

GROUP	 =

DEVICE  = YourInternetConnectionDevice

PROXY   = N

NAT     = Y

DAEMON  = Y

INTERVAL = 30

ex2: I have a group of hosts setup on my no-ip.com account and would like to update them all at once. The groupname I setup is "examplegroup" LOGIN   = login_name@address.ext
 * 1) this is a sample configuration file for noip_updater
 * 2) 	it should be changed to contain your values and
 * 3) 	placed in /usr/local/lib/no-ip.conf or /usr/local/etc/no-ip.conf
 * 4) 	The meaning of each line is desctribed in the README file
 * 1) 	The meaning of each line is desctribed in the README file

PASSWORD = myP4ssw0rd

HOSTNAME =

DOMAIN  =

GROUP	 = examplegroup

DEVICE  = YourInternetConnectionDevice

PROXY   = N

NAT     = Y

DAEMON  = Y

INTERVAL = 30

Launching the Client
-cd to the install folder (//usr/bin) -run ./noip -c ./../../etc/no-ip.conf General Usage noip takes the following flags: -c config_file  use alternate config file -h              display help -i   override ip detection. Use  -l              log output to stderr -d              increase debug verbosity

Troubleshooting
-cd to the install folder (//usr/bin) -run ./noip -l -d -c ./../../etc/no-ip.conf -Based on the screen output, determine why noip is ending prematurely.

Load on router startup
-Using a *nix friendly text editor, create noip.startup as: killall -q noip /jffs/usr/bin/noip -c /jffs/etc/no-ip.conf
 * 1) !/bin/sh

-Follow the instructions in Startup Scripts#Shell Script Method to make your script load on startup.

Alternatively, if this is the only thing you want to load on startup, pass the line /jffs/usr/bin/noip -c /jffs/etc/no-ip.conf to either of the other methods on the Startup Scripts page.