DDNS: How to manage a device with a dynamic public IP

The DDNS aka Dynamic DNS is an old feature that several routers (non only Cisco devices) have implemented and, in some circumstances, it is very useful.

DDNS is a method of automatically updating a name server in the Domain Name System (DNS), often in real time, with the active DDNS configuration of its configured hostnames, addresses or other information. It provides two mechanisms to generate or perform DDNS: the IETF standard as defined by RFC 2136 and a generic HTTP using various DNS services.

In a nutshell, when this feature can simplify our lifes? When we haven’t a static IP public address (ADSL or other technologies…)!

Suppose that we would manage our router around the world but we have only a dynamic public ip address; how can we do that? The answer is DDNS :)

It is very simple implement this feature in Cisco devices:

1. Register to a DDNS services; there are several alternatives. In this article I use the no-ip services (it is free!).

2. Configure Cisco devices.

2a. Configure the DDNS credentials:

ip ddns update method myupdate
 HTTP
   add http://username:password@dynupdate.no-ip.com/nic/update?hostname=<h>&myip=<a>
   remove http://username:password@dynupdate.no-ip.com/nic/update?hostname=<h>&myip=<a>
   interval maximum 0 0 5 0

Where username and password are our credentials and the “interval maximum 0 0 5 0” defines how often update the dns entry.

Remember: The question mark “?” is a special character, so you need to escape it! To do it press “CTRL + V”, then “?”.
Note: As you can see, the https link has two special tag: <h> and <a>. These variables are dynamically substituted with the hostname and the ip address of the interface, during the HTTP query!

2b. Apply the DDNS template to the interface (in this case the Dialer1):

Interface Dialer1
   ip ddns update hostname ciscozine.ddns.net
   ip ddns update myupdate

The first entry defines the hostname, while the second entry link the template defined in the point “2a” to the interface.

To better understand how the DDNS works, below the log messages after enabling the “debug ip ddns“.

Nov 23 21:05:21.688: DYNDNSUPD: Adding DNS mapping for ciscozine.ddns.net <=> 199.95.19.255
Nov 23 21:05:21.688: HTTPDNS: Update add called for ciscozine.ddns.net <=> 199.95.19.255
Nov 23 21:05:21.688: HTTPDNSUPD: Session ID = 0x4C
Nov 23 21:05:21.688: HTTPDNSUPD: URL = 'http://ciscozine:ciscozinepwd@dynupdate.no-ip.com/nic/update?hostname=ciscozine.ddns.net&myip=199.95.19.255'
Nov 23 21:05:21.688: HTTPDNSUPD: Sending request
Nov 23 21:05:22.444: HTTPDNSUPD: Response for update ciscozine.ddns.net <=> 199.95.19.255

Nov 23 21:05:22.444: HTTPDNSUPD: DATA START
nochg 151.65.149.255

Nov 23 21:05:22.448: HTTPDNSUPD: DATA END, Status is Response data recieved, successfully
Nov 23 21:05:22.448: HTTPDNSUPD: Call returned SUCCESS, update of ciscozine.ddns.net <=> 199.95.19.255 succeeded
Nov 23 21:05:22.448: DYNDNSUPD: Another update completed (outstanding=0, total=0)
Nov 23 21:05:22.448: HTTPDNSUPD: Clearing all session 76 info

Now it is enough remember the hostname “ciscozine.ddns.net” to log in the router (via SSH, HTTPS, …).

References: http://www.cisco.com/…/dns-dyn-dns-supp-ios.html

1 COMMENT

LEAVE A REPLY

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.