What is Dynamic DNS?

Introduction

 

What is Dynamic DNS? The short technical answer is:

“Dynamic DNS (DDNS) is an addition to the DNS standard. Dynamic DNS defines a protocol for dynamically updating a DNS server with new or changed values. Prior to DDNS, administrators needed to manually configure the records stored by DNS servers. DDNS allows this to happen automatically for continually changing IP addresses, without the need for human intervention.” (What is Dynamic DNS, 2007)

For those who already have a good understanding of the Domain Name Service (DNS) or Dynamic DNS (DDNS) itself, this short answer ought to sum it up pretty well; however, for those to whom the short answer is insufficient or simply wish to really understand how DDNS works under-the-hood, the remainder of this site has been organized into three lesson parts which provide both the background information necessary to understand DDNS and how it can be utilized by the home user.

The following lesson parts will start by laying the foundation upon which an understanding of DDNS can be built by covering the topic of IP address, hostnames, and how they are associated in DNS systems, and finally an in-depth look at DDNS.

The Fundamentals

 

Let’s start with the basics: In any TCP/IP based network, such as the Internet, every computer on it is assigned a unique four-part numeric address called an Internet Protocol (IP) address. The exception of this, of course, are networks running IPv6, but that distinction is unimportant at this time. In any regard, these IP addresses, much like the mailing addresses of homes and businesses, are responsible for providing the locations between which network traffic is routed.

For instance:

The IP address of this site is: 131.171.11.22 Whereas the IP address of your computer is: 11.111.11.11

Although readable by humans, IP addresses are not necessarily easy to remember and can be difficult to use in practice. To make things easier, domain names (technically hostnames) were created (e.g. POLARIS.UMUC.EDU) so that they could be mapped to IP addresses, which allow people to refer to them instead of the computer’s actual IP address.

For example, in order to browse this site by URL if it did not have a registered domain name, one would have had to point their browser to: https://131.171.11.22/\~ekarch/ITEC620

This would have worked, but using the registered domain in the URL (i.e. https://polaris.umuc.edu/\~ekarch) is more intuitive and easy to remember.

One thing that is important to understand about domain names, so that an understanding of DNS and DDNS can be gained, is that domain names are hierarchical (Mockapetris, 1987). The notation reads right-to-left, with its parts delineated by periods. Let’s briefly examine the domain of this site.

The domain name, more specifically the hostname, of this site (i.e. POLARIS.UMUC.edu) consists of three domains parts: POLARIS, UMUC, and edu. The edu component is referred to as the top-level domain TPL, as it is the highest level of grouping to which this name space belongs. The next level of grouping is UMUC, followed by POLARIS which is the lowest level of membership.

Note the use of the aforementioned term “registered hostname.” It implies that in order to associate a hostname with an IP address, the association it must be registered (i.e. stored) is a system that will facilitate its resolution. That system is called the Domain Name System (DNS). The subsequent lesson part will detail how DNS accomplishes this task.

How DNS Works

 

The topic of how DNS works is fairly broad, as there are several components which comprise the system; however, the focus of this lesson will be to provide just the necessary background information on how DNS works so that an understanding of how Dynamic DNS works can be gained.

To review, the Domain Name Service (DNS) is a system that both facilitates the mapping of domain names with IP addresses and provides a mechanism for their resolution. Conceptually speaking, DNS serves as a phone book for a network (e.g. the Internet) by which people can look-up (i.e. resolve) the phone number (i.e. the IP address) of someone based upon their name (i.e. the domain name).

Before illustrating how DNS resolves hostnames, there are two concepts that need to be understood:

First, the DNS system does not consist of one master table of all the world’s registered host names. Instead, each hostname has an authoritative name server associated with it which is where the final authority of it is IP address mapping is stored and maintained. The DNS system is actually a distributed system of name servers which provide a recursive mechanism of finding a hostname’s authoritative, by stepping down through its domain membership from most general to specific.

Second, DNS maintains the hostname-to-IP address mapping in records called resource records. For each host name it resolves, a DNS server will generally save that resource record in its cache for a period of time known as its time-to-life (TTL). When a DNS server is asked to resolve a domain name, it will first check its own cache first to see if it already has an unexpired resource record associated with that domain name. If that resource record has expired, or simply does not exist in a DNS server, it will reach out of the DNS system, using its recursive queiry meachnism, to find the authoritative name severs of that hostname. Once retrieved, it will then cache that resource record for re-use until it expires.

The diagram below illustrates how the DNS system resolves addresses:

 

DNS Address Resolution Walk-Through:

  1. The user logs into his computer, points his browser to POLARIS.UMUC.EDU, and hits enter which forwards the request for the webpage to his ISP.
  2. The ISP queries their internal DNS server to resolve the host name. The DNS server examines its own cache, and for sake of illustration, determines that the hostname-to-ip address mapping, stored in what is known as a resource record, for this requested host name has expired, so it attempts to refresh its value by starting with a root name server.
  3. A DNS root name server is contains the IP addresses of the TLD name servers. The root server responses to the ISP’s DNS query with the IP address of the EDU name server.
  4. The ISP’s DNS server queries the EDU name server and is returned the IP address of the UMUC.EDU name server.
  5. The ISP DNS server then queries the UMUC.EDU name server and is finally returned the IP address of the web server associated with the POLARIS.UMUC.EDUhostname. With the resource record refreshed, the DNS server returns the resolved IP address to the router.
  6. With the host name resolved, the router then passes the user’s request to the IP address associated with the POLARIS.UMUC.EDU and is returned his desired webpage.  

With an understanding of IP addresses, how hostname are mapped to them, and how DNS facilitates their resolution, we can now explore how the world of Dynamic DNS. 

How DDNS Works

 

To review, the IP address mapping of a hostname is maintained in a resource record on the hostname’s authoritative name server. Whenever that record needs to be updated, say because it is desired to point the host name to a different IP address, an administrator with rights to that authoritative name server need to make that change manually.

A computer’s external IP addresses is assign to it by the network to which it is connected. The network, such a home user’s ISP, assigns either a static or a dynamic IP.

When the IP address assigned to a computer is static; it means that it does not change. When mapping a static IP to a hostname, updates to its resource record stored in the hostname’s authoritative name server is rarely necessary, outside of a perhaps the circumstance of wishing to point that hostname to a different IP address.

However, when IP address of a computer is dynamic; it means that it changes frequently. This can severely complicate efforts to make sure that the mapping of a hostname to an IP is accurate when the IP can change monthly, weekly, or even daily, particularly when the process of updating it in the host name’s authoritative name server is a manual one.

Perhaps now, the definition of DDNS offered earlier now makes a little more sense:

“Dynamic DNS (DDNS) is an addition to the DNS standard. Dynamic DNS defines a protocol for dynamically updating a DNS server with new or changed values. Prior to DDNS, administrators needed to manually configure the records stored by DNS servers. DDNS allows this to happen automatically for continually changing IP addresses, without the need for human intervention.” (What is Dynamic DNS, 2007)

In essence, DDNS accomplishes this by continuously polling the computer whose IP address has been associated with a host name and then programmatically updating its resource record stored in its authoritative name server whenever it change .

References:

 

Ellison, C. (2005, May 24). Dealing with Dynamic IP Addresses. PC Magazine , 24 (9), pp. 63-63. Mockapetris, P. (1987). RFC 1034: - Domain Names - Concepts and Facilities. Network Working Group . What is Dynamic DNS (DDNS), and how do I set it up at UI? (2007, December 17). Retrieved April 26, 2008, from University Information Technology Services: https://kb.iu.edu/data/akir.html