~~ What is Dynamic DNS.
Dynamic DNS is a way for allowing an domain name to be assigned to a dynamic IP address. This makes it possible to establish connections over the Internet to the machine without needing to track the IP address themselves. A common use is for running server software on a computer that has a dynamic IP address (e.g., a dialup connection where a new address is assigned at each connection, or a cable or DSL service where the address is changed by the internet service provider occasionally).
To use dynamic DNS it is necessary to set the maximum caching time of a domain to a very short period like a few minutes. This prevents other DNS servers from retaining the old address in their cache, so that they will typically contact the name server of the domain for each new connection.
Dynamic DNS service is provided on a large scale by various DNS hosting services, which retain the current addresses in a database and provide a means for the user to update it as required. You can install clients on your computer that operate in the background and check the IP address of the computer every few minutes. If it has changed, then it will send an update request to the service. Many routers and other networking components contain the ability to connect to a dynamic DNS host.
Dynamic DNS is an integral part of Active Directory, due in part to the fact that domain controllers register their SRV resource records in DNS so that other computers in the Domain (or Forest) can find them.
~~ More on DNS.
The most common and useful types of DNS records are A records, MX records, and CNAME records.
An "A" records specify Addresses and usually matches a single name to a single number. Basically domain.com = x.x.x.x
"MX" stands for Mail eXchanger and is used to specify other computers that handle mail for a given domain. If your primary mail server is unavailable, try these other servers. If a domain does not have a MX listed, the address from the A record will be used.
CNAME stands for Canonical Name. It specifies aliases which are other names that a computer answers to. You set up a number of CNAMEs for your one computer: www.domain.com, ftp.domain.com, irc.domain.com, etc. That one computer could run all those services at once.
There are other DNS records like WKS, PTR, HINFO, and even "in-addr.arpa" record. But they are beyond my scope. For a good DNS article, see the Linux DNS HOWTO at http://www.ibiblio.org/pub/Linux/docs/howto/DNS-HOWTO.
~~ How DNS works.
The domain name space is really a tree of domain names. Each node or what could be called a leaf in the tree is associated with resource records that hold the information associated with the domain name. The tree is divided into zones and these zones are a collection of connected nodes that are served by a DNS nameserver. Note that a single nameserver can host several zones.
The information associated within each node is looked up by a resolver. These resolvers know how to communicate with name servers by sending DNS requests and waiting for DNS responses. Resolving usually entails working your way up through several name servers to find the needed information.
Some resolvers are simple, and can only communicate with a single name server. These simple resolvers rely on a recursing name server to perform the work of finding information for it.
A domain name will usually have two or more parts (technically labels), separated by dots. For example homenetworkhelp.info.
The rightmost label conveys the top-level domain (info). After that, each label to the left specifies a subdivision or subdomain of the domain above it.
Note that a "subdomain" expresses relative dependence but not really an absolute dependence. This subdivision can go down to 127 levels deep, and each label can contain up to 63 characters, as long as the whole domain name does not exceed a total length of 255 characters. This is usually not seen though.
A hostname is a domain that has one or more associated IP addresses.
The DNS structure consists of a hierarchical set of DNS servers. Each domain and subdomain has one or more authoritative DNS servers. These DNS servers publish specific information about the domain or subdomain as well as any of the name servers and domains beneath it. The hierarchy of authoritative DNS servers matches the hierarchy of domains. At the top are the root servers which are the servers to query when looking up (resolving) a top-level domain name.
~~ An example of DNS lookup.
An example might be something like an application needs to find the IP address of www.homenetworkhelp.info. This application would query a local DNS server.
Before starting, the DNS recursor has to know where to find the root servers. These servers are manually entered into a file called the root hints which specify recently known IP addresses of these servers, from which the DNS server can obtain a current complete list. The recursor asks one of these root servers what is the IP address for the domain in question. The root server replies with a what is called a delegation. This basically means that it does not know the IP address but that it knows another DNS server higher up that has more information. The local DNS recursor then asks that DNS server the same question. It could get an IP but might also get told to move higher up the chain. Finally the request goes to this third DNS server, which replies with the required IP address.
~~ DNS in the real world.
DNS resolution is usually handled transparently via a client applications such as web browser, mail clients, and other internet applications. When a request is made which necessitates a DNS lookup, such programs send a resolution request to the local DNS resolver in the operating system which in turn handles the communications required.
The DNS resolver will almost always have a cache containing recent lookups. If the cache has the answer to the request, it will return the value to the program that made the request. If the cache does not contain the answer, the resolver will send the request to a designated DNS server. A home user usually uses the ISP DNS servers. But this can be different if you are using VPN to work with a single or split tunnel. Also at work you will have DNS servers there.
~~ Dynamic DNS Services.
DynDNS - http://www.dyndns.com/
~~ Dynamic DNS Clients.
ddclient (linux) - http://ddclient.sourceforge.net/
dyndns updater (PC) - http://www.kana.homeip.net/