1. Field of the Invention
The present application is related generally to a data processing system and in particular to a method and apparatus for a domain name server. More particularly, the present application is directed to a computer implemented method, apparatus, system, and computer usable program code for updating a domain name server (DNS) to return IP addresses for server interfaces that are reachable.
2. Description of the Related Art
Every computer on the Internet has a unique identifying number called an Internet Protocol (IP) address. An IP address is generally expressed as a decimal number, such as 216.27.62.139. Thus, every computer on the Internet can be identified and contacted using the unique IP address for the computer. However, it would be very difficult for human users to remember an IP address for every web site that a user wants to access. Therefore, humans use domain names.
A domain name is a human-readable host name to stand in for an IP address identifying a particular machine on the Internet. In other words, a domain name is an alphanumeric representation of a particular IP address. For example, “IBM.com” and “wikipedia.org” are domain names. The domain name “IBM.com” is easier for a human to remember than an IP address for one of the servers for International Business Machines, Inc. Moreover, an IP address for a particular machine might change quite frequently, while the domain name generally remains the same regardless of changes in the IP address.
A domain name server (DNS) is an Internet service that translates human readable domain names into IP addresses. When a client wants to access a web page on a server, the client contacts a domain name server to request an IP address corresponding to a given domain name. The domain name server generally responds by providing the IP address for the domain name or providing an IP address for another domain name server that might know the correct IP address.
The domain name server makes it possible to attach easy-to-remember domain names, such as “IBM.com” and “wikipedia.org”, to hard-to-remember IP addresses, (such as 207.142.131.206). Moreover, in any given Internet session, a user will typically require domain name server services dozens or even hundreds of times to obtain needed IP addresses. These domain name server queries take place transparently in client applications such as web browsers, mail clients, and other Internet applications.
A content server is a server providing content or services to a user. To access a content server, a client needs an IP address to access a network interface on the content server. A network interface is any hardware and/or software components providing a point of interconnection between a user or client terminal and another computer on a network, such as the Internet. Content servers are often multi-homed to improve reliability and availability of the content and services provided by the content server. A multi-homed server is a server that has multiple network interfaces, each with a different IP address associated with the interface. When a client wishes to access the content server using the content server's domain name, the domain name server is queried. This query is called a lookup. The domain name server then provides all the IP addresses for the content server to the client.
Typically, the client uses the first IP address that is provided by the domain name server to access the content server. The client expects that the first IP address is a reachable IP address. If the client cannot connect with the content server using the first IP address, the client does not attempt to connect using any other IP address for the content server. In other words, the client assumes the IP address provided by the domain name server can be used to reach a functional network interface on the content server. However, if the network interface corresponding to the IP address provided by the domain name server has failed for any reason, the IP address provided by the domain name server will not enable the client to access the content server.
Currently, domain name servers provide IP addresses for a given content server in random order, with the order varying with each lookup, in order to improve the probability that a reachable IP address will be provided to a client. However, this method can still result in the provision of unreachable IP addresses to clients in response to lookup queries.