DNS Name Server Load Balancing
The Address (A) resource record is the most fundamental one in DNS, since it records an actual mapping between a domain name and an IP address. Let's consider for a moment one of the words in that sentence in more detail. No, not address or resource record or mapping. The word an. J The Address record only mentions a single address for each domain name. This means that, as we have described DNS so far, each domain name maps to only a single physical hardware device.
When the number of requests that a particular server or other device needs to handle is relatively small, this is not a problemthe function can usually be implemented using a single physical hardware device. If the server gets busier, the usual solution is to throw more hardware at the problemget a bigger machine. However, some hosts on a large internetwork, especially the Internet, feature servers that must handle tremendous amounts of traffic from many clients. There simply is no single hardware device that can readily handle the traffic of a site like www.cnn.com or www.microsoft.com for example, without becoming unwieldy.
Sites like CNNs must use a technique called load balancing to spread requests across multiple hardware servers. One simple way to do this would be to have multiple machine names; for example, CNN could create several different Web sites called www1.cnn.com, www2.cnn.com and so on, each of which points to a different hardware device. DNS certainly supports this type of solution. The problem with this solution is that it is cumbersome; it requires users to remember multiple server names.
It would be better if we could balance the load automatically. DNS supports this by providing a simple way to implement load balancing. Instead of specifying a single Address resource record for a name, we can create several such records, thereby associating more than one IP address with a particular DNS name. When we do this, each time the authoritative name server for the zone in which that name exists resolves that name, it sends all the addresses on the list back to the requester. The server changes the order of the addresses supplied in the response, choosing the order randomly or in a sequential round robin fashion. The client will usually use the first address in the list returned by the server, so by changing the list, the server ensures that requests for that device's name are resolved to multiple hardware units.
As Internet traffic increases, load balancing is becoming more popular. In early 2003 I saw a survey that indicated approximately 10% of Internet names at that time used load balancinga fairly significant number. Most employed either two or three addresses, but some used as many as 60! Incidentally, at last check, www.cnn.com was associated with eight different IP addresses. (Incidentally, you can check the number of addresses associated with a name using the host command.)
DNS load balancing also has a completely different meaning from what I described above. In my discussion of DNS server roles, I talked about how each zone should have at least one secondary DNS server in addition to the primary. The usually-stated main reason for this is redundancy, in case something happens to cause the master server to fail. However, having a slave server can also allow the load of DNS resolution requests to be balanced between multiple servers. In fact, some busy domains have more than two servers specifically for this reason.
Thus, DNS load balancing can refer to either using DNS to spread the load of requests (such as Web page requests) to a device that is named using DNS, or to spreading the load of DNS requests themselves.
Home - Table Of Contents - Contact Us
The TCP/IP Guide (http://www.TCPIPGuide.com)
Version 3.0 - Version Date: September 20, 2005
© Copyright 2001-2005 Charles M. Kozierok. All Rights Reserved.
Not responsible for any loss resulting from the use of this site.