WO2002010912A1 - Resolving hierarchical addresses using servers load balancer - Google Patents

Resolving hierarchical addresses using servers load balancer Download PDF

Info

Publication number
WO2002010912A1
WO2002010912A1 PCT/US2001/041472 US0141472W WO0210912A1 WO 2002010912 A1 WO2002010912 A1 WO 2002010912A1 US 0141472 W US0141472 W US 0141472W WO 0210912 A1 WO0210912 A1 WO 0210912A1
Authority
WO
WIPO (PCT)
Prior art keywords
name server
server processes
name
address
load balancer
Prior art date
Application number
PCT/US2001/041472
Other languages
French (fr)
Inventor
David Edwin Blacka
Mark A. Kosters
William J. Sylvester
Original Assignee
Verisign, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Verisign, Inc. filed Critical Verisign, Inc.
Priority to AU2001281367A priority Critical patent/AU2001281367A1/en
Publication of WO2002010912A1 publication Critical patent/WO2002010912A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1036Load balancing of requests to servers for services different from user content provisioning, e.g. load balancing across domain name servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4552Lookup mechanisms between a plurality of directories; Synchronisation of directories, e.g. metadirectories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1017Server selection for load balancing based on a round robin mechanism

Definitions

  • name server processes and a load balancer.
  • This naming scheme uses words and phrases to create easy to remember hierarchical addresses, which may then be translated into IP addresses by using a DNS (Domain Name System). For example, with the use of DNS (Domain Name System).
  • network 600 may be the Internet; and each of the name servers may be a name
  • the top-level name server 400 has authority over the "com” zone and the second-level name servers 510 and 520 have authority over many zones, including “example.com.”
  • a customer wants to access resources on an organization's web site, whose hierarchical address is "www.example.com.”
  • the user connects to the network 600, such as the Internet, and sends a name resolution request to the local server 200 by typing the address, "www.example.com” using a browser, such as NETSCAPE NAVIGATOR or INTERNET EXPLORER, on the client 100.
  • a browser such as NETSCAPE NAVIGATOR or INTERNET EXPLORER
  • the reply may list the
  • the local server 200 may look in the local cache and may find the IP address. The local name server 200 then may transmit the address to the computer 100 without having to access any other name servers.
  • the local name server 200 may cache all the information that it receives for an amount of time that is referred to as the TTL (Time to Live).
  • the name server administrator for the zone that contains the data decides on the TTL for the data.
  • server processes has a corresponding process in the first set of plurality of name server
  • Network 600 may be a single or a combination of any type of computer network, such as the Internet, an Intranet, an Extranet, a Local Area Network (LAN),
  • LAN Local Area Network
  • the load balancer 700 may be F5 Networks, hic.'s BIG-IP product, or a
  • a similar computing device with a storage medium, such as a tape drive or a hard drive.
  • the top-level name server may be setup to return the IP addresses in a random order.

Abstract

The present invention provides a system, method, and article of manufacture for resolving a hierarchical address into an IP address. The system includes a first set of plurality of name server processes for resolving the hierarchical address and a second set of plurality of name server processes for resolving the hierarchical address, wherein each of the name server processes in the second set of plurality of name server processes has a corresponding process in the first set of plurality of name server processes. The system also includes a load balancer for receiving a name resolution request that includes the hierarchical address and for sending the request to either one of the first set of plurality of name server processes or to the corresponding process in the second set of plurality of name server processes to resolve the hierarchical address into an IP address.

Description

RESOLVING HIERARCHICAL ADDRESSES USING SERVERS LOAD BALANCER
BACKGROUND OF THE INVENTION
A. Field of the Invention
The present invention relates to resolving a hierarchical address, for example, an address that includes a domain name, and more particularly, to a system and
method for resolving a hierarchical address quickly and efficiently using a plurality of
name server processes and a load balancer.
B. Description of the Related Art
In recent years, online networks, such as the Internet, have experienced
explosive growth and success due to their ability of providing a vast array of
resources, such as information, quickly and efficiently. For example, many
organizations have made some or all of their resources available to their customers via
web sites, which may be accessed using the Internet. h the online networks, the resources may be located on one or more
computers, each of which may have a unique IP (Internet Protocol) address.
Moreover, to access a computer in the online networks, one needs the IP address
associated with that computer. Remembering IP addresses, however, is difficult
because IP addresses are 32-bit numbers that are expressed as four 8-bit values
separated by periods, such as " 193.193.193.1. " To solve this difficulty, a hierarchical
naming scheme may be used. This naming scheme uses words and phrases to create easy to remember hierarchical addresses, which may then be translated into IP addresses by using a DNS (Domain Name System). For example, with the use of
DNS, one may need to only remember the hierarchical address
"server.dev.example.com" to go to the computer with the IP address of "193.193.193.100."
The hierarchical address may include a host name and a domain name. If the
hierarchical address includes a host name and a domain name, it is commonly referred
to as a fully qualified domain name. The host name, for example, may be the name of
the computer that includes the resources and the domain name may be a sequence of domains separated by periods. Domains include the root-level domain and
subdomains, such as top-level domains and second-level domains, as shown in FIG.
1. The root-level domain is at the top of the hierarchy. Generally, the root-level
domain uses a null label. If desired, it may, however, be expressed by a period. Every
domain name also has a top-level domain, such as "uk" for countries, "com" for commercial organizations, "edu" for educational institutes, "net" for network
organizations, and "mil" for military. Domain names may also include second-level
domains, such as "netsol.com," "example.com," "nsi.com," "duke.edu," and
"intemic.net." Although not shown in FIG. 1, other subdomains may include third-
level domains, such as "dev.example.com." For example, in the address "server.dev.example.com," the root level domain is present and is using a null label,
"com" is the top-level domain, "example.com" is the second-level domain, "dev.example.com" is the third-level domain, and "server" is the host name.
As mentioned in the foregoing description, DNS translates the hierarchical
address into the IP address. DNS is a distributed system and primarily uses UDP (User Datagram Protocol) and sometimes uses TCP (Transmission Control Protocol) as the underlying protocols. DNS includes clients and name servers. The name servers may be processes, such as BIND (Berkeley Internet Name Daemon) and Microsoft's DNS service. In DNS, a client may send a name resolution request or query to the name server asking the name server for translation of a hierarchical address into an IP address, hi response, the name server translates this request into the IP address. The process of translating is also known as resolving.
In recent years, domain names have become an important part of an organization. Moreover, in online networks, such as the Internet, an organization must register a domain name with a registrar, such as Network Solutions, Inc., before the organization can use the domain name. To register a domain name, the organization may need to provide various contact and technical information to the registrar. Technical information may include the IP address of at least two name servers in case one name server is not available. These name servers may be owned and operated by the organizations themselves or by third parties, such as an Internet Service Provider (ISP) or a registrar. The registrar will keep records of the contact information and submit the technical information to a central directory known as the registry. This registry provides other computers in the online network, such as the Internet, information about the organization's domain. This information may include name server information, so that others can access the organization's resources, such as a web site or send e-mail to the users within the organization.
Each name server in DNS may be responsible or have authority over one or more portions of the hierarchical address. This portion is known as a zone. The name server may store all address mappings for a zone and answer client name resolution requests for the names within the zone. For example, in "server.dev.example.com,"
"example.com" may be a zone and "dev.example.com" may be another zone, and
either same or different name servers may have authority over these two zones.
Moreover, to resolve "server.dev.example.com," one may first need to query the
"example.com" zone, which may in response provide the IP address for
"dev.example.com," and then, query "dev.example.com" zone, which may in turn
provide the IP address for "server.dev.example.com."
FIG. 2 shows an exemplary block diagram of a traditional DNS. As shown in
FIG. 2, a traditional DNS may include a client 100, a local name server 200, a root-level name server 300, a top-level name server 400, second-level domain servers
510 and 520, all of which are interconnected by a network 600. While the
components of FIG. 2 are shown as logical devices, one skilled in the art would
readily understand that each is associated with respective physical devices. For
example, the client 100 may be a physical device, such as a personal computer or a
laptop; network 600 may be the Internet; and each of the name servers may be a name
server process, such as BIND Version 8.1.2, that is running on a respective server
computer, such as a Sun Ultra 5 running the Sun Solaris operating system. Moreover,
although not shown in FIG. 2, it is known to one skilled in the art that other
components may exist in a traditional DNS. For example, normally, each name server has a corresponding name server for failover. Thus, in FIG. 2, although only a
corresponding second-level name server 520 is shown for the second-level name
server 510, the root-level name server 300 and top-level name server 400 also may have corresponding name servers for failover.
The local name server 200 may be responsible for resolving a hierarchical address included in a name resolution request into an IP address, and for sending the request to another name server if the local name server does not have the IP address associated with the hierarchical address. For example, an organization may have a local server for caching the IP address of any hierarchical address that it resolves so that the local server does not have to send this request to another name server every time a client requests resolution of a particular hierarchical address. Alternatively, the organization's Internet Service Provider (ISP) may host the local name server 200 to quickly resolve hierarchical addresses for its customers, such as an organization. The other name servers, such as the root-level name server 300, top-level name server 500, and second-level domain servers 510 and 520 may be responsible for particular zones and assist in resolving hierarchical addresses. For example, the root-level name server may contain information about the root-level domain.
The process of accessing resources using a traditional DNS will be described now by referring to FIG. 2. For example, assume that in FIG. 2, the top-level name server 400 has authority over the "com" zone and the second-level name servers 510 and 520 have authority over many zones, including "example.com." Furthermore, assume that a customer wants to access resources on an organization's web site, whose hierarchical address is "www.example.com." In order to access this web site, the user connects to the network 600, such as the Internet, and sends a name resolution request to the local server 200 by typing the address, "www.example.com" using a browser, such as NETSCAPE NAVIGATOR or INTERNET EXPLORER, on the client 100. To resolve this name resolution request, the local name server 200 may look in its local cache for any zones that correspond to the requested hierarchical address. If the current request is for an IP address that matches a previous request, the local server 200 may respond to the request immediately using the information stored in the local cache.
If the local server 200 does not find a zone corresponding to the requested
address, however, the local server 200 may relay the request to the root-level server
300. The root-level server 300 may have authority for the root-level domain and may reply with the IP address of a name server for a top-level domain, such as "com" and
"edu," to the local name server 200. In the present example, the root-level name
server may supply the IP address of the "com" top-level name server 400 because it
has authority over the "com" zone.
Next, the local name server 200 may send the name resolution request to the
top-level name server 400. The top-level name server may reply with the LP addresses
of both the second-level name servers 510 and 520 because they have authority over
"example.com." As described in the foregoing description, the root-level name server
300 and top-level name server 400 also may have corresponding name servers for failover. Therefore, in case the root-level name server 300 or the top-level name
server 400 is not available in the foregoing process, the name resolution requests may
be sent to the corresponding root-level name server or the top-level name server,
respectively.
Once the local name server 200 receives a reply with the LP addresses of the second-level name servers, the local name server 200 may send the name resolution request to the first name server listed in the reply and if that name server does not
respond, then, to the next name server listed in the reply. The reply may list the
addresses in the order determined by the top-level server. For example, some name
servers may return IP addresses in a random manner. In the present example, if the reply listed server 510 and then, server 520, the local name server 200 may send the name resolution request to the server 510. If the server 510 does not respond, the local name server 200 may send the request to the server 520. In the present example, the server 510 or 520 will look into the zone file for "example.com" and return the IP address for "www.example.com" to the local name server 200, which in turn sends the IP address to the client 100. The client 100 may use the IP address to visit the web site.
Subsequently, if the client 100 repeats the same name resolution request, the local server 200 may look in the local cache and may find the IP address. The local name server 200 then may transmit the address to the computer 100 without having to access any other name servers. The local name server 200 may cache all the information that it receives for an amount of time that is referred to as the TTL (Time to Live). The name server administrator for the zone that contains the data decides on the TTL for the data.
As described in the foregoing description, name servers make it easy for one to remember hierarchical addresses and are an important part of DNS. Thus, the name servers must be reliable as well as be able to quickly and efficiently resolve client name resolution requests. Currently available name servers, however, have many limitations, which may lead to unreliability as well as slow and inefficient name resolution.
One problem with the current name servers is that they provide limited failover and load balancing ability, which may result in a poor quality of service. For example, as described in the foregoing description, if one of the second-level name servers in FIG. 2 is not available, the local server 200 may send the name resolution request to the other one. Since DNS is normally queried over UDP, which is a connectionless protocol, the local name server 200 must wait for a few seconds before
the request may be sent to the other name server. Moreover, the organization hosting
the name servers to which the request is being sent has no control of automatically
switching to the second name server when the first one is not working or is not
available. In FIG. 2, if server 510 is not working or is not available, the organization
that operates servers 510 and 520 may not automatically redirect these requests to the
server 520. Thus, for failover, the order in which the local name server queries the
second-level name server is important, but as mentioned in the foregoing description,
this order may be determined by the top-level name servers. Similarly, for load
balancing, the organization that hosts the two second-level name servers may not have
any control over load balancing and the load balancing may depend on the order
determined by the top-level name servers.
Another problem with the current name servers is that they may have a zone limit of 65,536 zones. As a result, organizations, such as Network Solutions, Inc., which have authority over domains that have thousands of zones, such as second-level
domains, may have to add more name servers to serve the needs of their customers.
Adding more name servers, however, creates security problems because of the
problem of securing additional server computers. When additional name servers are
added, one may need to add an equivalent number of physical server computers for
running these name servers and securing these additional servers may be difficult. In
addition, adding more- physical server computers may require physical space, which may be expensive.
Still another problem with the current name servers is that these servers may not be highly available. For example, if the second-level name servers 510 and 520
each have 30,000 zones and if the administrator of the name servers makes a change to one or more of the 30,000 zones, the administrator may need to reload the zone, which may take a substantial amount of time and the server that is being reloaded may
not be available. As a result, usually, the administrator will reload the zone on the
two servers at different times so that at least one of the servers is available for name
resolution requests. For example, the administrator may reload server 510 first and
then, reload server 520. The local name server 200 may be trying to request a name
resolution from the server that is being reloaded and thus, may have to wait and then,
send a request to the other server.
Accordingly, there is presently a need for a system and method that resolves a
hierarchical address quickly and efficiently.
SUMMARY OF THE INVENTION
The present invention provides a system, a method, and an article of
manufacture for resolving a hierarchical address into an IP address. The system
includes a first set of plurality of name server processes for resolving the hierarchical
address and a second set of plurality of name server processes for resolving the
hierarchical address, wherein each of the name server processes in the second set of
plurality of name server processes has a corresponding process in the first set of
plurality of name server processes. The system also includes a load balancer for
receiving a name resolution request that includes the hierarchical address and for
sending the request to either one of the first set of plurality of name server processes or to the corresponding process in the second set of plurality of name server processes to resolve the hierarchical address into an IP address.
hi addition, the present invention provides a method for resolving a hierarchical address into an IP address. The method includes running a first set of
plurality of name server processes for resolving the hierarchical address and running a
second set of plurality of name server processes for resolving the hierarchical address,
wherein each of the name server processes in the second set of plurality of name
server processes has a corresponding process in the first set of plurality of name server
processes. The method also includes receiving, at a load balancer, a name resolution
request that includes the hierarchical address and sending the request to either one of
the first set of plurality of name server processes or to the corresponding process in the second set of plurality of name server processes to resolve the hierarchical address
into an IP address.
Moreover, the present invention provides a computer-readable medium
containing instructions for causing a computer to perform a method for resolving a
hierarchical address into an IP address. The method includes running a first set of plurality of name server processes for resolving the hierarchical address and running a
second set of plurality of name server processes for resolving the hierarchical address,
wherein each of the name server processes in the second set of plurality of name
server processes has a corresponding process in the first set of plurality of name server
processes. The method also includes receiving, at a load balancer, a name resolution
request that includes the hierarchical address and sending the request to either one of
the first set of plurality of name server processes or to the corresponding process in the second set of plurality of name server processes to resolve the hierarchical address into an IP address. Furthermore, the present invention provides a system that includes a first
computer running a plurality of name server processes and a second computer running a plurality of name server processes. The system also includes a load balancer
interfacing the first computer and the second computer such that the load balancer
sends a request to either the first computer or the second computer to resolve a first
network address into a second network address.
The present invention also provides a method for resolving one or more
network addresses. The method includes running a plurality of name server processes
on a first computer and running a plurality of name server processes on a second
computer. The method also includes receiving a request that includes a first network
address and sending the request to either the first computer or the second computer to
resolve the first network address into a second network address such that respective
loads on the first computer and the second computer are maintained below respective predetermined levels.
BRIEF DESCRIPTION OF THE DRAWINGS
The accompanying drawings are incorporated in and constitute a part of this
specification and, together with the description, explain the advantages and principles of the invention, hi the drawings,
FIG. 1 is an exemplary diagram illustrating the hierarchy of domains in a network;
FIG. 2 is an exemplary block diagram illustrating components of a traditional Domain Name System (DNS);
FIG. 3 is an exemplary system diagram illustrating an embodiment of the present invention;
FIG. 4 is an exemplary block diagram illustrating the components a client;
FIG. 5 is a portion of an exemplary data structure in a load balancer;
FIG. 6 is an exemplary flowchart illustrating the steps performed by a load
balancer for name resolution;
FIG. 7 is an exemplary system diagram illustrating another embodiment of the
present invention; and
FIG. 8 is an exemplary system diagram illustrating another embodiment of the
present invention.
DETAILED DESCRIPTION
The following detailed description of the invention refers to the accompanying
drawings. While the description includes exemplary embodiments, other embodiments are possible, and changes may be made to the embodiments described
without departing from the spirit and scope of the invention. The following detailed
description does not limit the invention. Instead, the scope of the invention is defined
by the appended claims and their equivalents.
The present invention provides a system and method to resolve a hierarchical
address, such as one that includes a domain name, quickly and efficiently by using a
plurality of name server processes and a load balancer. For example, with the use of
the present invention, an organization may run multiple name server processes on
server computers and may use a load balancer to balance the name resolution requests
for resolving hierarchical addresses between corresponding name server processes running on each of the server computers. The IP addresses associated with the plurality of name servers may be assigned to the load balancer, which may listen on a standard port, such as port 53, for any name resolution requests sent to the name
servers. Then, the load balancer may forward the name resolution requests for
resolution of the hierarchical addresses into IP addresses to the appropriate name
server processes, which may be listening on non-standard ports. The load balancer
may also provide quick and automatic failover ability between corresponding name
server processes on each of the server computers. Furthermore, the present invention
may provide the ability to have more than 65,536 zones on a single computer and may
reduce the number of physical machines that need to be secured.
The foregoing example is intended to be illustrative of the features of the
present invention as opposed to limiting it in any manner. Moreover, the system and
method of the present invention are not limited to any particular organization, user, or
resource. An organization may include, but is not limited to, an individual, a business, a government entity, and a non-profit organization. A user may include, but
is not limited to, an employee and a customer. A resource may include, but is not
limited to, data, applications, and documents.
The above-noted features, other aspects, and principles of the present
invention may be implemented in various system or network configurations to provide
automated and computational tools for quick and efficient name resolution. Such
configurations and applications may be specially constructed for performing the
various processes and operations of the invention or they may include a general purpose computer or computing platform selectively activated or reconfigured by program code to provide the necessary functionality. The processes disclosed herein
are not inherently related to any particular computer or other apparatus, and may be implemented by a suitable combination of hardware, software, and/or firmware. For
example, various general purpose machines may be used with programs written in
accordance with teachings of the invention, or it maybe more convenient to construct
a specialized apparatus or system to perform the required methods and techniques.
The present invention also relates to computer readable media that include
program instruction or program code for performing various computer-implemented
operations based on the methods and processes of the invention. The media and
program instructions may be those specially designed and constructed for the purposes
of the invention, or they may be of the kind well-known and available to those having
skill in the computer software arts. The media may take many forms including, but
not limited to, non- volatile media, volatile media, and transmission media. Non¬
volatile media includes, for example, optical or magnetic disks. Volatile media includes, for example, dynamic memory. Transmission media includes, for example, coaxial cables, copper wire, and fiber optics. Transmission media can also take the
form of acoustic or light waves, such as those generated during radio-wave and infra¬
red data communications. Examples of program instructions include both machine
code, such as produced by compiler, and files containing a high level code that can be
executed by the computer using an interpreter.
FIG. 3 is an exemplary system diagram illustrating an embodiment of the
present invention, i this embodiment, the system includes a client 100, a load
balancer 700, and server computers 810 and 820, all of which are interconnected by
network 600. Network 600 may be a single or a combination of any type of computer network, such as the Internet, an Intranet, an Extranet, a Local Area Network (LAN),
or a Wide Area Network (WAN), for example. These as well as other network configurations are known to those skilled in the art and are also within the scope of the present invention.
The server computers 810 and 820 may run a plurality of name server
processes and the load balancer 700 may balance the requests for resolving
hierarchical addresses between corresponding name server processes on each of the
server computers. These server computers may be used to run name server processes
for local, root-level, top-level, second-level, and even other subdomains, such as third-
level domains. Moreover, although not shown, other name servers, such as local
name servers, root-level name servers, top-level name servers, and second-level name
servers may be connected to the network 600. Furthermore, two server computers are
illustrated for exemplary purposes only, but more or less than two server computers
maybe used for load balancing and failover depending on the requirements of a
particular organization.
Each of the components shown in FIG. 3 will be described in detail now.
Client 100 of FIG. 3 may include, but is not limited to, a personal computer, a
handheld computer, or any similar device known to those skilled in the art. As shown
in FIG. 4, the client 100 may include a browser 110, such as a world wide web
browser like NETSCAPE NAVIGATOR and/or INTERNET EXPLORER; other
software and data storage 120; at least one input device 130, such as a keyboard or a
mouse; at least one communications device 140, such as a modem or a network
interface card (NIC); at least one processor 160; memory 150; and at least one output device 170, such as a monitor, all of which may communicate with each other, for
example via a communication bus 180. The memory 150 maybe random access memory (RAM), read only memory, or both. Other clients and their components are known to those skilled in the art and are also within the scope of the present invention.
The server computers 810 and 820 maybe any computer, for example, that
manages resources. These server computers 810 and 820 may include storage
devices, such as a tape drive or hard drive, for storing, for example, program
instructions or program code. For example, the sever computers 810 and 820 may be
Sun E4500 computers running the Sun Solaris operating system. Each of the server
computers may run a plurality of name server processes. For example, each of the
server computers may run multiple instances of BIND version 8.1.2, which is a name
server process.
To run multiple processes, a unique port or an IP address may be needed.
With the server computers 810 and 820, a unique port may be used for each instance of the name server process. For example, if BIND version 8.1.2 is being used, the "namedxonf ' file maybe modified to reflect the unique port for each process on each
server computer. Specifically, the directive "listen-on port XXXX {YYYY;};" may
be used in the "named. conf ' file to assign a unique port number to each of the name
server processes, h this option, "XXXX" would define the port number, and
"YYYY" would define the IP address. If "any" was used for the IP address, the name
server process would be responsible for handling requests regardless of which IP
address the requests were directed to. Furthermore, the port number may be a
standard or non-standard port. For example, name servers normally listen on the
standard port 53, but in the present invention, the name servers may be configured to listen on non-standard ports, such as port 6001.
Moreover, each name server process on the server computer 810 may have a
corresponding name server process on the server computer 820 for failover and load balancing. The name server processes corresponding to each other are referred to as a
name server pair. For example, if server 810 has name server processes A and B, and server 820 has name server processes C and D, A may correspond to C and may be
classified as a name server pair, and C may correspond to D and may be classified as
another name server pair. The processes in each of the pairs may have identical zone
data and may be used for failover and load balancing.
The load balancer 700 may provide load balancing and failover capability. For
example, the load balancer 700 may be F5 Networks, hic.'s BIG-IP product, or a
similar computing device with a storage medium, such as a tape drive or a hard drive.
The load balancer 700 may be configured to listen to a plurality of IP addresses. Moreover, since a name server process normally listens on the standard port 53 of a
computer, the load balancer 700 may be configured to listen on port 53 for any name server requests. Furthermore, the total number of IP addresses may be equivalent to
the total number of name server processes running on the server computers 810 and 820. Moreover, upon receiving a name resolution request for resolving a hierarchical
address, the load balancer 700 may send the request to the appropriate name server
process on the server computer 810 and/or 820.
For example, if BIG-IP is being used as the load balancer 700, BIG-IP may be
configured to listen on port 53 for any name resolution requests that are directed to the
IP addresses of the above-mentioned name servers, A, B, C, and D, and then, be configured to forward the requests to the appropriate process. Specifically, the
"bigip.conf ' file maybe modified to configure BIG-IP.
FIG. 5 shows a portion of an exemplary "bigip.conf file. As shown in FIG. 5, assuming the IP address of A is "193.193.193.1," B is "193.193.193.2," C is "193.193.193.3," D is "193.193.193.4," server 810 is "207.32.193.10," and server 820
is "207.32.193.20," and the port numbers for A, B, C, and D are 6001, 6002, 6001,
and 6002, respectively, BIG-IP may be configured to first listen to the IP addresses
corresponding to A, B, C, and D, and then, forward the request to the appropriate
process running on server computers 810 or 820 using the IP address of the server
computer and the port number associated with the name server process, hi FIG. 5, the
lines that start with'Vip" direct BIG-IP to listen for any requests, which are directed to
the IP addresses that follows "vip," on port 53. Then, the lines that start with "define"
direct BIG-IP to forward the received requests to the port numbers on the respective
IP addresses that follow "define." The load balancer 700 considers the name server processes on each of the name server pairs to be equivalent and thus, may balance
requests between each of the corresponding processes.
FIG. 6 and an example will be used to explain the operation of the load
balancer 700 in more detail, hi this example, assume that the "example.com" zone is
located on the name servers A and C, and that "nsi.com" zone is located in B and D,
and a user wants to access "www.example.com" and "www.nsi.com." To access
"www.example.com," the user may ask a local name server, such as the local name
server 200, for the resolution of this address to IP addresses. If the local name server
does not have the information for this address in the cache, the local name server may
send a query to a top-level domain server and then, a second-level domain server, as
explained with the description of FIG. 2. Eventually, the local name server will obtain
the IP addresses corresponding to A and C. As described in the foregoing description, the order of the IP addresses for A and C will depend entirely on the top-level name
server. For example, the top-level name server may be setup to return the IP addresses in a random order.
Depending on the order of the IP addresses, the local name server may send a
request to A or C for resolution ofwww.example.com." If the address of A is listed
first, the local name server will send the request to 193.193.193.1 on port 53. The
load balancer 700, such as BIG-IP, receives the request, as shown in a step 610 in
FIG. 6. Then, the load balancer 700 determines which of name server processes
should receive the request, for example, by referring to the "bigip.conf file, as shown in a step 620. Then, depending on the load and availability of the servers 810 and
820, the load balancer 700 will send the request to the appropriate process on these
servers, as shown in a step 630. hi the present example, using the "bigip.conf file
shown in FIG. 5, the load balancer 700 may send the request to port 6001 on 207.32.193.10 (or server 810) or port 6001 on 207.32.193.20 (or server 820)
depending on the load of each of the servers.
h one embodiment, the load balancer 700 may load balance between the
processes running on these two different servers in a round robin manner. For
example, the load balancer 700 may send the first received request to port 6001 on
207.32.193.10 and then, send the next received request to port 6001 on 207.32.193.20,
and continue in this round robin manner for any succeeding requests. In other
embodiments, other load balancing techniques also may be used depending on the
abilities of the load balancer. For example, the load balancer may provide an
improved quality of service by maintaining the loads on a particular process or a server computer below a predetermined level.
hi response to the name server request received from the load balancer 700, the name server process looks in its zone file and provides the load balancer 700 with the IP address associated with the address in the name resolution request. Finally, in a
step 640, the load balancer sends the IP address received from the name server process to the local server.
On the other hand, if the address of C is listed first in the response from the
top-level domain server, the local name server will send the request to 193.193.193.3
on port 53. Then, the load balancer 700 may again forward this request to port 6001
on 207.32.193.10 (or server 810) or port 6001 on 207.32.193.20 (or server 820)
depending on the load of each of the servers.
Similarly, if name resolution for "www.nsi.com" was requested instead of
"www.example.com," the load balancer 700 would balance between the corresponding name server processes, B and D.
In addition to load balancing, the present invention provides many advantages
over the traditional methods of name resolution. One advantage is that if the load
balancer 700 determines that either a name server process or the server computer running the name server process is not available, the load balancer 700 automatically
sends the request to the other corresponding process running on the second server
computer. For example, if in step 630, the load balancer 700 determines that the
process listening on port 6001 on 207.32.193.10 is not working, it may automatically send the request to port 6001 on 207.32.193.20 without having to wait for a
substantial amount of time. In addition, the requesting local name server may not
need to send a request to a different name server because the load balancer 700 automatically redirects the request.
Another advantage of the present invention is that the name server processes
are available even when the zones are being loaded. For example, if a zone is being reloaded on a particular server computer, the load balancer automatically sends the
request to the corresponding name server process on the other server computer. A
related advantage is that the administrator only needs to modify one set of zone files
because the name server processes use the same set of zone files.
Still another advantage of the present invention is that an organization may run
multiple name server processes on one server computer, thus overcoming the zone limit of 65,536 and reducing the number of machines that need to be secured.
Another advantage may be the added security provided by a load balancer 700. For
example, the load balancer 700 may be setup to only receive name server requests and
disregard any other requests.
The present invention is not limited to any particular name server process or
load balancer, histead, the present invention may be used with any name server
process that can listen on a non-standard port. For example, the name server
processes may include DENTS or TINYDNS. addition, the load balancer is not limited to BIG-IP, it may be, for example, a load balance made by Cisco Systems,
ie, Radware, Inc., HydraWeb Technologies, Inc., Resonate, Inc., or Foundry Networks, hie.
Moreover, it will be apparent to those skilled in the art that various
modifications and variations can be made in the system and method of the present
invention and in construction of this invention without departing from the scope or
spirit of the invention. For example, as shown in FIG. 7, in an alternative
embodiment, the present invention maybe modified to include two load balancers,
700 and 710, in case one load balancer becomes unavailable. FIG. 8 illustrates another exemplary embodiment of the present invention. This embodiment is similar to the one shown in FIG. 3 with the exception of the server computers 810, and 820. In this embodiment, the system includes only one server computer, 810, which may run a plurality of name server processes. Moreover, each of the name server processes may have a corresponding name server process, and the load balancer 700 may balance the name resolution requests between the corresponding name server processes running on the server computer 810 depending on the availability of the name server processes. For example, the server 810 may run four name server processes E, F, G, and H. E may correspond to G and may be classified as a name server pair, and F may correspond to H and may be classified as another name server pair. As a result, the load balancer 700 may balance the name resolution requests between the processes E and G, and F and H.
As mentioned in the forgoing description, the difference between the embodiment shown in FIG. 8 and FIG. 3 is that FIG. 3 includes an additional server 820, which may be used for redundancy purposes. Furthermore, in other embodiments, additional server computers may be added depending on the needs of a particular organization.
Although the present invention was described for use with name servers, the present invention may be used with a wide range of applications. For example, the present invention may be used to load balance traffic directed to web servers. Specifically, the IP addressees for a plurality of web servers maybe assigned to the load balancer, which may listen on the standard port 80, for any requests directed to the plurality of web servers. Upon receiving a request, the load balancer may forward the request to the appropriate web server, which may be listening on a non-standard port and may be running on a server computer. The load balancer may, for example,
balance the load between corresponding web servers running on one or more server
computers.
Moreover, other embodiments of the invention will be apparent to those skilled in the art from consideration of the specification and practice of the invention
disclosed herein. It is intended that the specification and examples be considered as
exemplary only, with a true scope and spirit of the invention being indicated by the
following claims.

Claims

WHAT IS CLAIMED IS:
1. A system for resolving a hierarchical address into an IP address, comprising:
a first set of plurality of name server processes for resolving the hierarchical
address;
a second set of plurality of name server processes for resolving the hierarchical
address, wherein each of the name server processes in the second set of plurality of
name server processes has a corresponding process in the first set of plurality of name
server processes; and
a load balancer for receiving a name resolution request that includes the
hierarchical address and for sending the request to either one of the first set of plurality of name server processes or to the corresponding process in the second set of
plurality of name server processes to resolve the hierarchical address into an IP
address.
2. The system according to claim 1, wherein each of the first set of
plurality of name server processes and the second set of plurality. of name server
processes listens on a different port.
3. The system according to claim 2, wherein the load balancer has a
plurality of IP addresses corresponding to the total number of name server processes.
4. The system according to claim 3, wherein if one of the first set of plurality of name server processes is unavailable, the load balancer seiids the request to the corresponding name server process in the second set of plurality of name server processes.
5. The system according to claim 1, wherein the load balancer listens for name resolution requests on port 53.
6. The system according to claim 1, wherein the load balancer balances
name resolution requests between the corresponding processes in the first set of
plurality of name server processes and the second set of plurality of name server
processes.
7. The system according to claim 6, wherein the load balancer balances
the name resolution requests between the corresponding processes in the first set of plurality of name server processes and the second set of plurality of name server
processes in a round robin manner.
8. The system according to claim 1, wherein each of the first set of plurality of name server processes and the second set of name server processes is a
BIND process.
9. The system according to claim 1, wherein the load balancer includes a
BIG-IP.
10. The system according to claim 1, wherein the first set of plurality of name server processes and the second set of plurality of name server processes run on a computer.
11. The system according to claim 1 , wherein the first set of plurality of
name server processes and the second set of plurality of name server processes run on
different computers.
12. A method for resolving a hierarchical address into an IP address,
comprising the steps of:
running a first set of plurality of name server processes for resolving the
hierarchical address;
running a second set of plurality of name server processes for resolving the hierarchical address, wherein each of the name server processes in the second set of
plurality of name server processes has a corresponding process in the first set of plurality of name server processes;
receiving, at a load balancer, a name resolution request that includes the hierarchical address; and
sending the request to either one of the first set of plurality of name server
processes or to the corresponding process in the second set of plurality of name server
processes to resolve the hierarchical address into an IP address.
13. The method according to claim 12, further comprising the step of
configuring each of first set of plurality of processes and the second set of plurality of
processes to listen on a different port.
14. The method according to claim 13, further comprising the step of
assigning to the load balancer a plurality of IP addresses corresponding to the total
number of name server processes.
15. The method according to claim 14, wherein the step of sending the
request to either one of the first set of plurality of name server processes or one of the
second set of plurality of name server processes includes the step of sending the
request to one of the first set of plurality of name server processes, and if one of the
first set of processes is unavailable, then sending the request to the corresponding
name server process in the second set of plurality of name server processes.
16. The method according to claim 12, wherein the step of receiving the
name resolution request by the load balancer includes listening on port 53 for the
request.
17. The method according to claim 12, further comprising the step of
balancing, at the load balancer, name resolution requests between the corresponding
processes in the first set of plurality of name server processes and the second set of
plurality of name server processes.
18. The method according to claim 17, wherein the step of balancing the
name resolution requests by the load balancer is performed in a round robin manner.
19. The method according to claim 12, wherein each of the first set of plurality of name server processes and the second set of plurality of name server
processes is a BIND process.
20. The method according to claim 12, wherein the load balancer includes
a BIG-IP.
21. The method according to claim 12, wherein the step of running the first
set of plurality of name server processes and the step of running the second set of
plurality of name server processes are performed on a computer.
22. The method according to claim 12, wherein the step of running the first
set of plurality of name server processes and the step of running the second set of
plurality of name server processes are performed on different computers.
23. A computer-readable medium containing instructions for causing a
computer to perform a method for resolving a hierarchical address into an IP address,
comprising the steps of: running a first set of plurality of name server processes for resolving the
hierarchical address;
running a second set of plurality of name server processes for resolving the
hierarchical address, wherein each of the name server processes in the second set of
plurality of name server processes has a corresponding process in the first set of plurality of name server processes;
receiving, at a load balancer, a name resolution request that includes the hierarchical address; and
sending the request to either one of the first set of plurality of name server processes or to the corresponding process in second set of plurality of name server
processes to resolve the hierarchical address into an IP address.
24. A system, comprising:
a first computer running a plurality of name server processes;
a second computer running a plurality of name server processes; and
a load balancer interfacing the first computer and the second computer such
that the load balancer sends a request to either the first computer or the second
computer to resolve a first network address into a second network address.
25. A method for resolving one or more network addresses, comprising the
steps of: running a plurality of name server processes on a first computer;
running a plurality of name server processes on a second computer;
receiving a request that includes a first network address;
sending the request to either the first computer or the second computer to
resolve the first network address into a second network address such that respective
loads on the first computer and the second computer are maintained below respective predetermined levels.
PCT/US2001/041472 2000-08-01 2001-07-31 Resolving hierarchical addresses using servers load balancer WO2002010912A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2001281367A AU2001281367A1 (en) 2000-08-01 2001-07-31 Resolving hierarchical addresses using servers load balancer

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US62987800A 2000-08-01 2000-08-01
US09/629,878 2000-08-01

Publications (1)

Publication Number Publication Date
WO2002010912A1 true WO2002010912A1 (en) 2002-02-07

Family

ID=24524866

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/041472 WO2002010912A1 (en) 2000-08-01 2001-07-31 Resolving hierarchical addresses using servers load balancer

Country Status (2)

Country Link
AU (1) AU2001281367A1 (en)
WO (1) WO2002010912A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007145552A1 (en) * 2006-06-15 2007-12-21 Telefonaktiebolaget Lm Ericsson (Publ) Name-address management in communication networks
US7320073B2 (en) 2003-04-07 2008-01-15 Aol Llc Secure method for roaming keys and certificates
EP1938203A2 (en) * 2005-02-26 2008-07-02 Coco Communications Corp. Naming system layer
CN100422938C (en) * 2003-07-28 2008-10-01 Sap股份公司 Application start protocol

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000014938A2 (en) * 1998-09-09 2000-03-16 Sun Microsystems, Inc. Method and apparatus for transparently processing dns traffic
US6108703A (en) * 1998-07-14 2000-08-22 Massachusetts Institute Of Technology Global hosting system
US6119143A (en) * 1997-05-22 2000-09-12 International Business Machines Corporation Computer system and method for load balancing with selective control

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6119143A (en) * 1997-05-22 2000-09-12 International Business Machines Corporation Computer system and method for load balancing with selective control
US6108703A (en) * 1998-07-14 2000-08-22 Massachusetts Institute Of Technology Global hosting system
WO2000014938A2 (en) * 1998-09-09 2000-03-16 Sun Microsystems, Inc. Method and apparatus for transparently processing dns traffic

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7320073B2 (en) 2003-04-07 2008-01-15 Aol Llc Secure method for roaming keys and certificates
CN100422938C (en) * 2003-07-28 2008-10-01 Sap股份公司 Application start protocol
EP1938203A2 (en) * 2005-02-26 2008-07-02 Coco Communications Corp. Naming system layer
EP1938203A4 (en) * 2005-02-26 2008-12-17 Coco Communications Corp Naming system layer
US8683020B2 (en) 2005-02-26 2014-03-25 Coco Communications Corp. Naming system layer
US8996679B2 (en) 2005-02-26 2015-03-31 Coco Communications Corp Naming system layer
US9374277B2 (en) 2005-02-26 2016-06-21 Coco Communications Corp. Naming system layer
WO2007145552A1 (en) * 2006-06-15 2007-12-21 Telefonaktiebolaget Lm Ericsson (Publ) Name-address management in communication networks
US7984134B2 (en) 2006-06-15 2011-07-19 Telefonaktiebolaget Lm Ericsson (Publ) Name-address management in communication networks

Also Published As

Publication number Publication date
AU2001281367A1 (en) 2002-02-13

Similar Documents

Publication Publication Date Title
US11632353B2 (en) Delegating DNS records to additional providers
US9659070B2 (en) Methods, systems, products, and devices for processing DNS friendly identifiers
EP3427465B1 (en) Methods and apparatus for intelligent domain name system forwarding
US8589474B2 (en) Systems and methods for software and file access via a domain name
US6014660A (en) Method and apparatus for client-sensitive name resolution using DNS
US7624179B2 (en) Locator and tracking service for peer-to-peer resources
EP1338133B1 (en) Cache coherent peer-to-peer computing architecture
US9002985B2 (en) Branded and comarketed domain-based thick client system
US7536465B2 (en) Universal naming scheme for peer-to-peer resources
US20090313363A1 (en) Hosting a remote computer in a hosting data center
US20080235383A1 (en) Methods, Systems, Products, And Devices For Generating And Processing DNS Friendly Identifiers
US20090313364A1 (en) Direct domain software and file access computer system
US20040054793A1 (en) System and method for high performance shared web hosting
US20060218289A1 (en) Systems and methods of registering and utilizing domain names
JP2017515206A (en) Implementation of services to coordinate container placement and execution
MX2008015235A (en) Name challenge enabled zones.
WO2004092884A2 (en) Method of executing and edge-enabled application in a content delivery network (cdn)
KR101497167B1 (en) Management of external hardware appliances in a distributed operating system
EP1470692B1 (en) Method and system for workload balancing in a network of computer systems
Aitchison Pro DNS and Bind
WO2002010912A1 (en) Resolving hierarchical addresses using servers load balancer
US11303606B1 (en) Hashing name resolution requests according to an identified routing policy
EP1784947A1 (en) Systems and methods of registering and utilizing domain names
JPH11296456A (en) Proxy server for server integration
US20040243667A1 (en) Generalized proximity service

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP