next up previous contents
Next: Heartbeat Up: Technologies Previous: Layer 4 Switching   Contents

DNS Methods

One of the simplest ways to effect fail-over is to manually modify the DNS records for a host. If a server fails then a DNS lookup for the host can return the IP address of another machine. DNS can also be used to implement scalability by assigning multiple IP addresses to a single hostname in DNS. Modern DNS servers such as BIND14 8.x will deterministically issue the different IP addresses assigned to in a round-robin fashion[5]. Unfortunately this has a number of fundamental problems [1], [11].

  1. The time to live (TTL) on the zone files needs to be turned down severely to to reduce the time for which results are cached. The longer the TTL, the less control there is over which IP addresses that end-users are accessing. The shorter that TTL, the greater the potential for congestion on the DNS server.

  2. Users may access servers using an IP address rather than a host name.

  3. Users may use non-DNS methods such as an /etc/hosts file to map server host names to IP addresses.

  4. An additional problem with round-robin DNS is that the DNS daemon cannot differentiate between a request for a one-off hit, and a request that will result in many hits. That is, it is hard to control the granularity of scheduling.

  5. When using round-robin DNS there is no way to assign weights to servers, all servers will theoretically receive the same number of requests, regardless of their resources and current load.

Problems 2 and 3 are more likely to be a problem when dealing with a site with a very large number of end users, such as a large corporate network or an Internet Services Provider (ISP) - users tend to make more assumptions about the static nature of a network that they are connected to than other networks. In particular, these are unlikely to be problems on large internet sites that are not provided primarily for the users of a particular ISP.

Problems 1 and 4 are inherent problems with a DNS based solution. While there is no good way to get around the granularity problem, both this and the TTL problem are generally helped by lowering the TTL. Provided that there are well linked, powerful DNS servers to handle the higher than otherwise required number of DNS requests.

Problem 5 can be aided by a more intelligent DNS server that takes into account feedback from servers about their load, availability and other metrics. This enables load to be distributed to servers compatible with their ability to serve customers.

Despite all of these problems an intelligent DNS server arguably one of the most robust, easy to implement and transparent to end users method of distributing traffic to multiple servers. This is particularly true when the servers are geographically distributed, remembering that each geographically separated server could be a point of contact to a web farm using a technology such as layer 4 switching to manage traffic within a point of presence.

next up previous contents
Next: Heartbeat Up: Technologies Previous: Layer 4 Switching   Contents
Horms 2001-11-23