US20020087722A1 - Domain name resolution making IP address selections in response to connection status when multiple connections are present - Google Patents

Domain name resolution making IP address selections in response to connection status when multiple connections are present Download PDF

Info

Publication number
US20020087722A1
US20020087722A1 US10/034,190 US3419001A US2002087722A1 US 20020087722 A1 US20020087722 A1 US 20020087722A1 US 3419001 A US3419001 A US 3419001A US 2002087722 A1 US2002087722 A1 US 2002087722A1
Authority
US
United States
Prior art keywords
server
domain name
address
connection
path
Prior art date
Legal status (The legal status 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 status listed.)
Abandoned
Application number
US10/034,190
Inventor
Sanchaita Datta
Ragula Bhaskar
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
FatPipe Networks India Ltd
Original Assignee
Ragula Systems
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 Ragula Systems filed Critical Ragula Systems
Priority to US10/034,190 priority Critical patent/US20020087722A1/en
Assigned to RAGULA SYSTEMS (FATPIPE NETWORKS) reassignment RAGULA SYSTEMS (FATPIPE NETWORKS) ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BHASKAR, RAGULA, DATTA, SANCHAITA
Publication of US20020087722A1 publication Critical patent/US20020087722A1/en
Priority to US12/410,531 priority patent/US7877510B2/en
Assigned to FATPIPE NETWORKS INDIA LIMITED reassignment FATPIPE NETWORKS INDIA LIMITED ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BHASKAR, RAGULA, DATTA, SANCHAITA, RAGULA SYSTEMS (D/B/A/ FATPIPE NETWORKS)
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/30Managing network names, e.g. use of aliases or nicknames
    • 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
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/604Address structures or formats

Definitions

  • the present invention relates to the translation of domain names to IP addresses in a computer network, and more particularly relates to tools and techniques for distributing domain name resolution results among multiple connections, to provide benefits such as dynamic load-balancing across network connections and greater reliability.
  • All computers on the Internet use a TCP/IP protocol for communication.
  • An IP address or a name, or both identify the web sites/computers connected to the Internet both servers and clients.
  • the Ragula Systems web site can be identified by its domain name www.fatpipeinc.com or by its IP address 206.71.77.143 (FATPIPE is a mark of Ragula Systems, which does business as FatPipe Networks).
  • Computers on virtual private networks, on other wide area networks, on intranets, and on other networks also use TCP/IP.
  • the name of the web site on any of these networks tends to remain constant while the IP address associated with it can change based on the IP address(es) of the server(s) on which the site is hosted.
  • IP IP address
  • DNS Domain Name Service
  • An Internet Service Provider may provide the IP address of a DNS server to its customers.
  • This DNS IP address is input in the configuration of the TCP/IP stack on the computer connecting to the Internet and may be input to a Dynamic Host Configuration Protocol (DHCP) server so that it can provide TCP/IP auto-configuring information to other computers.
  • DHCP Dynamic Host Configuration Protocol
  • Requests from customers for access to a web site are directed to the DNS server, which resolves the domain name in the request to obtain a corresponding IP address that can be used by routers to forward the web site access request to a server for the web site.
  • U.S. Pat. No. 6,154,777 discusses a context-dependent name resolution system.
  • a domain name is bound to a list of IP addresses, and policies involving requester information, destination information, or request content are used to bind a particular IP address to the domain name in response to a particular request.
  • Examples of resolution based on requester information comprise resolution based on the domain name of the sender, the actual geographic region of the sender, the quality of service desired by the requester, or the requester's time of day or time zone.
  • Examples of resolution based on destination information comprise resolution based on the load at the receiving server, or the actual geographic region of the receiver.
  • Examples of resolution based on request content comprise selecting an IP address based on the type of service requested or the specific information requested. This patent also states that resolution may be based on random selection of the destination from a qualified list, and other independently developed information.
  • connection-sensitive domain name resolution devices that comprises a data component identifying IP addresses for at least two paths to a server which has a domain name; and a code component which receives a domain name resolution request specifying the domain name, selects an IP address from the data component based on information about the status of a path to the server, and supplies the selected IP address in response to the domain name resolution request.
  • the IP addresses may identify routers, firewalls, bridges, and/or other path components.
  • the information about path status may include device status, link status, link bandwidth, latency, and/or other path statistics or characteristics.
  • a particular connection-sensitive domain name resolution device may, for instance, avoid selecting the IP address of a router that is on a path to the server but is not available. It may select the IP address in a round-robin manner by selecting the next IP address in a list of IP addresses of routers that are on paths to the server and are available when the selection is made. It may select the IP address of an under-loaded path, thereby tending to balance the loads on the paths to the server.
  • the connection-sensitive domain name resolution device may be placed between the server and a router for the server, or not. It may have multiple connections to the server or to the Internet, or it may not. It may assist dynamic load-balancing over server paths and also perform load-balancing over multiple servers, or not.
  • a method of the invention for distributing domain name resolution results over multiple paths comprises the steps of: receiving a domain name resolution request which requests an IP address corresponding to a specified domain name; determining that at least one candidate connection component is operating reliably and thus is a reliable connection component, the reliable connection component being in a path to a server having the domain name, the reliable connection component having an IP address; and supplying the IP address of the reliable connection component in a response to the resolution request, thereby directing traffic to the server over a path through the reliable connection component.
  • Another method further comprises the steps of determining the load on at least one candidate connection component and selecting a connection component which is not over-loaded, the selected connection component having an IP address and being in a path to the server having the domain name, wherein the supplying step comprises sending the IP address of the selected connection component in a response to the resolution request, thereby directing traffic to the server over a path through the connection component that is both reliable and not over-loaded.
  • Some methods comprise adjusting the time-to-live to be associated with a DNS record for an IP address in a path to the server. Some methods ping a router or other connection component on a path to the server to determine if it is a reliable connection component. Some methods perform a router status inquiry to determine the router's load.
  • a computer-readable storage medium of the invention has a configuration that will cause performance of a method for connection-sensitive domain name resolution when multiple connections to a web server are potentially available.
  • the method comprises: receiving a DNS resolution request; selecting an IP address based on connection component status; and supplying the selected IP address in response to the request.
  • the selecting step comprises determining whether a connection responds to pings, selecting an IP address of the next available path in a round-robin manner, and/or determining whether a router or other connection component is under-loaded.
  • FIG. 1 is a diagram illustrating a system according to the invention, comprising a web server having multiple IP addresses, which is made accessible to a personal computer for Internet browsing by way of multiple routers and an inventive connection-sensitive DNS resolver that selects IP addresses for access to the server using connection status as a dispositive criterion.
  • FIG. 2 is a diagram illustrating an alternative system according to the present invention, in which the connection-sensitive DNS resolver has several assigned IP addresses.
  • FIG. 3 is a diagram illustrating an alternative system according to the present invention, in which a single router is used but that router has multiple connections to the Internet.
  • FIG. 4 is a diagram illustrating an alternative system according to the present invention, in which a proxy server having several assigned IP addresses is positioned between the web server and the connection-sensitive DNS resolver.
  • FIG. 5 is a diagram illustrating an alternative system according to the present invention, in which the connection-sensitive DNS resolver resolves IP addresses for a switch, which in turn selects between multiple web servers for the hosted web site.
  • FIG. 6 is a diagram illustrating an alternative system according to the present invention, in which the connection-sensitive DNS resolver is not positioned between the web server and its router(s); this feature distinguishes FIG. 6 and other inventive systems from the systems shown in previous Figures, because systems like those in FIGS. 1 - 5 have the DNS resolver positioned between the web server(s) and router(s).
  • FIG. 7 is a flowchart illustrating methods of the present invention for resolving domain names into IP addresses in a manner that reflects the condition of routers and network links, as opposed to DNS resolution based on the condition of web servers.
  • the present invention relates to methods, systems, and configured storage media for providing redundancy and load-balancing in systems that have multiple (two or more) connection paths to a domain-named server.
  • Existing approaches balance loads and track availability based on server status.
  • the present invention balances loads and tracks availability based on connection component (links, routers, switches, bridges, firewalls, packet shapers, etc.) status.
  • connection component links, routers, switches, bridges, firewalls, packet shapers, etc.
  • Those prior approaches are not a substitute for the present invention, or vice versa. Rather, the invention's path-sensitive approach and prior server-sensitive approaches complement one other, since they may provide more flexibility, efficiency, and reliability when used together than either would provide alone.
  • FIG. 1 illustrates a system 100 according to the present invention.
  • a client PC 102 seeks access to a web server 104 which is identified by the client 102 using a domain name.
  • Other types of servers 104 such as FTP servers, list servers, and the like, may be likewise utilized in systems according to the invention.
  • the client 102 seeks access to the server 104 over the Internet 106 .
  • “Internet” as used herein includes variations such as a private Internet, a secure Internet, a value-added network, a virtual private network, or an intranet.
  • the computers connected in the system 100 may be clients 102 , servers 104 , peers, or a combination thereof.
  • Suitable network clients 102 include, without limitation, personal computers, laptops, workstations, and dumb terminals.
  • PC 102 may be, for instance, a personal computer browsing the Internet 106 with a browser such as a Netscape or Microsoft browser, or a personal computer using an intranet connection or a thin client application.
  • the servers 104 and their clients 102 are generally capable of using floppy drives, tape drives, optical drives and/or other means to read a storage medium.
  • a suitable storage medium includes a magnetic, optical, or other computer-readable storage device having a specific physical substrate configuration. Suitable storage devices include floppy disks, hard disks, tape, CD-ROMs, DVDs, PROMs, ROM, RAM, flash memory and other computer system storage devices, both volatile and non-volatile.
  • the substrate configuration represents data and/or instructions which cause the computer to operate in a specific and predefined manner as described herein.
  • the medium tangibly embodies a program, functions, data, and/or instructions that direct a computer to perform or provide improved DNS path-sensitive name resolution techniques and tools according to the present invention.
  • the system 100 includes multiple connection paths between the server 104 and the Internet 106 .
  • One connection path goes over a first router (“router A”) 108 and network links 110
  • another path goes over another router (“router B”) 108 and other links 110 .
  • the signal lines used in the links 110 may include twisted pair, coaxial, or optical fiber cables, telephone lines, satellites, microwave relays, modulated AC power lines, and other data transmission “wires” known to those of skill in the art, including wireless links. Signals according to the invention may be embodied in such “wires” and/or in addressable storage media.
  • a connection-sensitive DNS resolver 112 is positioned between the routers 108 and the server 104 .
  • the connection-sensitive DNS resolver 112 operates generally like a conventional (server-sensitive) DNS resolver in that both types of DNS resolver provide redundancy and both preferably perform some load-balancing. But a conventional DNS resolver selects IP addresses to provide based on the server's status, whereas the inventive DNS resolver 112 selects IP addresses based on connection/router status. This may lead to different outcomes, depending on the situation. For instance, when two paths to a server are available, a conventional DNS resolver may over-load one of the paths without necessarily over-loading the server. Likewise, when two paths are available to each of two servers, a connection-sensitive DNS resolver might over-load one of the servers even though it has distributed the load between the two paths.
  • the illustrated DNS resolver 112 comprises a data component 114 and a code 116 component.
  • the data component 114 contains information identifying the connection components, e.g., routers 108 , links 110 , and—at least implicitly—their network topology (which links connect to which routers, etc.). In some embodiments, additional detail is stored, such as the bandwidth and/or latency of a link 110 , the processing speed and/or buffer size of a router 108 , and other performance characteristics.
  • the data component 114 may also contain status information, such as whether a router 108 answered a ping, when the router 108 was last pinged, whether the carrier signal is present for a link 110 , whether packets sent to a given link 100 or router 108 have apparently been dropped (no ack received before timeout), the time it took to receive a reply to a request sent on a link, and so on.
  • the data component 114 contains IP addresses for the paths, with an implicit or express indication of which IP addresses correspond to which routers 108 . Note that in some embodiments and/or situations, more than one IP address can be handled by a given router 108 .
  • Particular embodiments of the data component 114 may contain various data elements, organized into lists, tables, and/or other data structures. But in general, the data component 114 contains at some point enough data for the DNS resolver 112 to select an IP address based on at least data about the apparent availability of different paths, and preferably based on data about the relative loads on different paths.
  • the code component 116 receives the domain name resolution request, accesses and/or obtains the data 114 to make an IP address selection, and provides the selected IP address in response to the domain name resolution request.
  • the IP address is selected based on the status of path elements, such as routers 108 and possibly also links 110 , where the path element status is defined in terms of path characteristics such as the speed of the link, the load on a link, the hop count between the requester and the resolver, and/or fixed load distribution. Additional criteria may also be considered, such as a predefined criterion based on geographic location of the requester. The selection should be made, at a minimum, by selecting an IP address for a path that is apparently (based on the data 114 ) currently available to carry packets.
  • the selection of an IP address is preferably made in a way that balances loads between two or more available paths, based on criteria such as the relative load on different routers 108 and/or the bandwidth of different links 110 .
  • the code component 116 may thus include code for pinging routers or making other status inquiries of path elements.
  • the code 116 includes procedures to aid administration (preferably including remote management through SNMP or the like), such as code for maintaining logs, sending alerts to system administrators, authentication and security code, and code to set parameters such as the time-to-live of DNS resolution responses. The time-to-live is provided with the IP address in the DNS resolver's response.
  • code here reflects the fact that implementing code component 116 functionality in software, firmware, microcode, or other programmable code configuring general-purpose hardware is often preferred, because it makes upgrades and other changes easier, but the code component 116 may also be implemented partially or entirely in special-purpose hardware.
  • FIG. 2 illustrates a system 200 , in which the connection-sensitive DNS resolver 112 has several assigned IP addresses. That is, one IP address leads to the resolver 112 and hence to the web server 104 by way of router A, three IP addresses lead to the resolver 112 and thence to the server 104 through router B, and one IP address leads to the resolver 112 and server 104 through router C. Depending on the circumstances, it may be preferable to have multiple addresses at the server, multiple addresses at the resolver 112 , neither, or both. For instance, the resolver 112 may be added to an existing configuration in which a server 104 is up and running well. Suppose the server has a single IP address.
  • Adding another address to the server for multi-homing would require changing server settings, which increases risk that the server will stop functioning as desired. Therefore, it may be preferable to leave the server with a single address and add an IP address at the resolver 112 for multi-homing—the resolver 112 then maps its multiple addresses to the single server address. Alternately, suppose the server is already multi-homed and already running well when the resolver 112 is to be added. It may then be preferable to give the resolver 112 a single IP address and let the server continue with its multiple addresses, which the resolver can map traffic to.
  • FIG. 1 shows two routers 108 , each with its own link 110 to the resolver 112 and its own link to the Internet 106 .
  • FIG. 2 shows more routers 108 (three, this time), again with each router 108 having its own link 110 to the resolver and its own link 110 to the Internet 106 .
  • FIG. 3 shows a system 300 in which a single router 108 has one link 110 to the resolver 112 but has three links 110 to the Internet 106 .
  • Other combinations of routers and links are also possible in some systems according to the invention.
  • An embodiment of the inventive DNS resolver 112 may be used if multiple paths to a server 104 are possible, regardless of how those paths are formed from links 110 and routers 108 .
  • the DNS resolver 112 need not connect directly to a server 104 .
  • the DNS resolver 112 may connect instead to a proxy server 402 , as shown in FIG. 4, to a LAN, or to a server multiplexer 502 , as shown in FIG. 5, for instance.
  • the servers A and B may be multi-homed.
  • some connection-sensitive DNS resolvers 112 may not be positioned between the web server 104 and its router(s) 108 at all. Like some conventional DNS resolvers, these resolvers 112 may instead be positioned elsewhere, so long as they connect to the Internet 106 .
  • the resolver 112 can be used to do multiplexing, packet shaping, Quality of Service tasks such as favoring voice-over-IP traffic, and other direct traffic management functions, which would not be possible if the resolver 112 was positioned elsewhere.
  • the resolver does not reside between the server and router then the resolver does not get involved in direct traffic management but still resolves names into IP addresses.
  • the resolver maintains tables or other data structures with information such as IP addresses to reply to, the status of load and router connections, and other information discussed herein.
  • the resolver 112 may also use route test algorithms, and may maintain information on link characteristics such as latency and/or line speed. Based on statistics, the resolver 112 redirects the requests to appropriate servers.
  • connection-sensitive DNS resolvers 112 is located between one or more web servers 104 and one or more routers 108 . Since the routers' addresses are known, in these configurations the DNS resolver 112 may be combined in one device with a multiplexer/demultiplexer for using multiple lines or connections to provide greater throughput.
  • suitable mux/demux devices and techniques may include without limitation those available from Ragula Systems Development company and/or those described in U.S. Pat. Nos. 6,295,276, 6,253,247, or U.S. patent application Ser. No. 09/751,590, which are incorporated herein.
  • the DNS resolver 112 is not located between the web server 104 and its closest routers 108 but is instead accessible through the Internet 106 . Accordingly, the mux/demux functionality may be located in a different device than the DNS resolver functionality. In short, a smart DNS resolver module 112 of the present invention may be combined with a mux/demux device, but need not be so combined.
  • FIG. 7 is a flowchart illustrating methods of the present invention for resolving domain names into IP addresses in a manner that reflects the condition of routers and network links, as opposed to performing conventional DNS resolution based on the condition of web servers. Unless it is otherwise indicated, the description herein of systems of the present invention extends to corresponding methods, and vice versa. Likewise, the description of methods informs article embodiments which comprise storage media configured to perform methods of the invention.
  • the present invention operates in conjunction with one or more DNS servers.
  • the present device can work as an independent DNS resolver in a contained environment such as a private network, or a frame relay network.
  • DNS servers In case the internet, there are sometimes several geographically distributed DNS servers; they may be arranged in a tree hierarchy. These DNS servers query each other periodically to get the latest list of names and addresses. When a server does not have information about a name, it forwards the request to the next server above it in the tree till the name is resolved or, at the top of the tree, an error message is generated.
  • Embodiments of the invention effectively include at least one DNS server, so the module 112 itself can operates as an inbound DNS server. Use of an additional DNS server may be preferred, however, to prevent conventional DNS activity from interfering with use of the module 112 for path-sensitive load-balancing and reliability increases as described herein.
  • an inventive DNS interface module such as a resolver 112 receives a 702 domain name resolution request, selects 704 at least one IP address from a group of addresses corresponding to that domain name, and responds 706 to the request with an IP address.
  • the “smart” DNS module 112 is configured with multiple IP addresses associated with each server, to reflect the potentially available paths to the server.
  • the module 112 preferably checks periodically the actual availability of the paths, through pings, timeouts without acknowledgment, or other familiar means.
  • the module keeps track of the current status of the path components; for purposes of the present invention, a server 104 is not considered a component in the path to that server. With the status information available to the DNS server, it can resolve the names of the servers intelligently by supplying IP addresses that use functioning paths, and preferably also by balancing the load on different paths.
  • the inventive DNS interface module selects 704 an IP address from its database 114 for response.
  • the selection is made between two or more candidate IP addresses by using one or both of the following selection criteria: (a) is the router 108 responding on the selected IP address or is the router “up”, that is, is it operating? (b) is the router associated with the IP address under-loaded 712 , that is, does it have less data traffic than another server router? Similar questions may be asked about other path components, such as links 110 .
  • (a) is a candidate server connection “down”, e.g., not responding to pings 710 , or known to be unavailable 708 for normal operation because it is scheduled for routine maintenance or upgrade work?
  • (b) is a candidate server data connection overloaded 712 , e.g., it has more currently active data connections to the servers than some (or all) other candidates. Some connections may be active even though no traffic is presently flowing over them, if an active life was specified and has not yet elapsed. Activity characteristics such as whether a file transfer was interrupted before completion, and/or the number of packets sent/received may be considered.
  • the (a) criteria ask whether the router(s) 108 and the rest of the network connection in a given path are operating reliably (“reliability criterion”), while the (b) criteria ask whether the path for a given IP connection is operating at full capacity (“capacity criterion”).
  • an inventive DNS interface module 112 may operate by receiving 702 a domain name resolution request, determining 714 in a round-robin manner which of two or more candidate IP addresses is reliable, and forwarding 706 the resolved IP address to have the client 102 use a reliable path to the server. That is, the module 112 resolves 714 the resolution request to the reliable (path available) IP address associated with the server 104 which appears next in a list of IP addresses after the IP address sent when the previous resolution request was resolved by the module.
  • the module 112 may receive 702 a resolution request, determine which candidate IP connection paths are reliable, determine 712 which of those network connections is least heavily loaded, and then resolve the request by selecting 704 the least heavily loaded IP connection to the server 104 .
  • the least heavily loaded IP address may be chosen according to a path dynamic load-balancing criterion involving data 114 such as average number of requests received, available router 108 memory, or average turnaround time for packets sent over paths selected using previous domain name resolution results.
  • the inventive module may also resolve domain name resolution requests in order to spread traffic among paths by using reliability as the distribution criterion without any particular attention to load-balancing as a distribution criterion. For instance, the module may resolve the request to whichever router IP address is closest, or next in line, or otherwise the easiest choice, if that router IP address is up and regardless of that router's load.
  • the present invention preferably provides smaller failure rates by having the inventive module 112 keep track of which paths are reliable, or at least having the module check for connection reliability by pinging over the path just before resolving a name request.
  • resolution requests should not be routinely resolved to non-working IP connections.
  • a round robin approach may be used by module 112 , but unlike prior approaches the inventive round robin approach will not provide a response that would otherwise be next in the round robin cycle, if providing that response would send traffic over a connection or path component that is apparently down.
  • the module 112 sets the time-to-live (TTL) in the DNS record it will supply 706 .
  • DNS records are often cached on Internet DNS servers after an IP address for a given domain name is supplied.
  • the TTL influences the amount of time a given DNS record should remain in the cache of a DNS server after the IP address specified in the DNS record is first supplied. If the TTL is too short, time and bandwidth will be spent with unnecessary DNS resolutions, but if the TTL is too long, an IP address for a given path may continue being given to clients 102 long after that path becomes unavailable or over-loaded.
  • the TTL is preferably adjustable (through an automatic trial-and-error process and/or manually by an administrator) in at least some embodiments of the module 112 .
  • At least some aspects of the invention described here are apparently embodied in a commercial product sold by Ragula Systems (dba FatPipe) under the mark WARP.
  • WARP Wideband Resolution Protocol
  • To set up DNS on a WARP product one needs a registered domain name, and the registered DNS server names need to have IP addresses that reside on the WARP box. For greater redundancy, it is preferable that the IP addresses be provided by different Internet Service Providers (ISPs).
  • ISPs Internet Service Providers
  • Systems according to the invention may be used with multiple WARP boxes, with multiple ISPs, with reverse port mapping to conserve public IP addresses by mapping a given public IP address and port number on the Internet side of the WARP unit to a private IP address on the LAN side of the WARP unit, with firewall load management by placing a firewall between the WARP unit and router (servers 104 being located on the opposite side of the WARP unit), with DHCP, with internal LAN routers, with proxy ARP, and/or with other computer networking components or configurations.
  • steps illustrated and discussed in this document may be performed in various orders, including concurrently, except in those cases in which the results of one step are required as input to another step. Likewise, steps may be omitted unless required by the claims, regardless of whether they are expressly described as optional in this Detailed Description. Steps may also be repeated, or combined, or named differently.

Abstract

Methods, configured storage media, and systems are provided for resolving domain names into IP addresses in a path-sensitive manner, namely, a manner that may consider information about a link to a server and/or information about routers and other path components. The IP addresses given in response to domain name resolution requests are selected to provide increased reliability and/or dynamic load-balancing over paths.

Description

    RELATED APPLICATIONS
  • This application claims priority to commonly owned copending U.S. provisional patent applications serial No. 60/258,946 filed Dec. 29, 2000, serial No. 60/273,598 filed Mar. 6, 2001, and serial No. 60/339,182 filed Dec. 10, 2001, each of which is also incorporated herein by reference.[0001]
  • FIELD OF THE INVENTION
  • The present invention relates to the translation of domain names to IP addresses in a computer network, and more particularly relates to tools and techniques for distributing domain name resolution results among multiple connections, to provide benefits such as dynamic load-balancing across network connections and greater reliability. [0002]
  • TECHNICAL BACKGROUND OF THE INVENTION
  • All computers on the Internet use a TCP/IP protocol for communication. An IP address or a name, or both, identify the web sites/computers connected to the Internet both servers and clients. For example, the Ragula Systems web site can be identified by its domain name www.fatpipeinc.com or by its IP address 206.71.77.143 (FATPIPE is a mark of Ragula Systems, which does business as FatPipe Networks). Computers on virtual private networks, on other wide area networks, on intranets, and on other networks also use TCP/IP. As a general rule the name of the web site on any of these networks tends to remain constant while the IP address associated with it can change based on the IP address(es) of the server(s) on which the site is hosted. [0003]
  • Communication between the computers uses TCP/IP protocol to access the web site data. Therefore, it is necessary to convert the domain name of the web site to the IP address of a server of the web site. Domain Name Service (DNS) servers connected to the web/Internet perform the conversion of name to IP address using a DNS protocol; this conversion is call “domain name resolution”. A domain name resolution request is a request for an IP address that corresponds to a given domain name; more than one IP address may correspond to a given domain name if the web site named is heavily used. An Internet Service Provider (ISP) may provide the IP address of a DNS server to its customers. This DNS IP address is input in the configuration of the TCP/IP stack on the computer connecting to the Internet and may be input to a Dynamic Host Configuration Protocol (DHCP) server so that it can provide TCP/IP auto-configuring information to other computers. Requests from customers for access to a web site are directed to the DNS server, which resolves the domain name in the request to obtain a corresponding IP address that can be used by routers to forward the web site access request to a server for the web site. [0004]
  • U.S. Pat. No. 6,154,777 discusses a context-dependent name resolution system. In one example, a domain name is bound to a list of IP addresses, and policies involving requester information, destination information, or request content are used to bind a particular IP address to the domain name in response to a particular request. Examples of resolution based on requester information comprise resolution based on the domain name of the sender, the actual geographic region of the sender, the quality of service desired by the requester, or the requester's time of day or time zone. Examples of resolution based on destination information comprise resolution based on the load at the receiving server, or the actual geographic region of the receiver. Examples of resolution based on request content comprise selecting an IP address based on the type of service requested or the specific information requested. This patent also states that resolution may be based on random selection of the destination from a qualified list, and other independently developed information. [0005]
  • In particular, the '777 patent discusses domain name resolution based on destination server loads. But there is apparently no discussion of basing domain name resolution results on the load or availability of routers or connections to destination servers, as opposed to using the status of the servers themselves. U.S. Pat. No. 6,205,489 similarly focuses on web servers rather than the routers and other connection components in paths to the servers. The same holds true of other previous efforts. [0006]
  • Accordingly, it would be an advancement to provide domain name resolution tools and techniques that provide IP addresses based on criteria such as router loads and connection availability. Such tools and techniques are discussed and claimed below. [0007]
  • BRIEF SUMMARY OF THE INVENTION
  • The present invention provides connection-sensitive domain name resolution tools and techniques. One embodiment provides a connection-sensitive domain name resolution device that comprises a data component identifying IP addresses for at least two paths to a server which has a domain name; and a code component which receives a domain name resolution request specifying the domain name, selects an IP address from the data component based on information about the status of a path to the server, and supplies the selected IP address in response to the domain name resolution request. In particular embodiments and/or situations, the IP addresses may identify routers, firewalls, bridges, and/or other path components. The information about path status may include device status, link status, link bandwidth, latency, and/or other path statistics or characteristics. Thus, in a particular situation a particular connection-sensitive domain name resolution device may, for instance, avoid selecting the IP address of a router that is on a path to the server but is not available. It may select the IP address in a round-robin manner by selecting the next IP address in a list of IP addresses of routers that are on paths to the server and are available when the selection is made. It may select the IP address of an under-loaded path, thereby tending to balance the loads on the paths to the server. Various other configuration changes are also contemplated. The connection-sensitive domain name resolution device may be placed between the server and a router for the server, or not. It may have multiple connections to the server or to the Internet, or it may not. It may assist dynamic load-balancing over server paths and also perform load-balancing over multiple servers, or not. [0008]
  • A method of the invention for distributing domain name resolution results over multiple paths comprises the steps of: receiving a domain name resolution request which requests an IP address corresponding to a specified domain name; determining that at least one candidate connection component is operating reliably and thus is a reliable connection component, the reliable connection component being in a path to a server having the domain name, the reliable connection component having an IP address; and supplying the IP address of the reliable connection component in a response to the resolution request, thereby directing traffic to the server over a path through the reliable connection component. Another method further comprises the steps of determining the load on at least one candidate connection component and selecting a connection component which is not over-loaded, the selected connection component having an IP address and being in a path to the server having the domain name, wherein the supplying step comprises sending the IP address of the selected connection component in a response to the resolution request, thereby directing traffic to the server over a path through the connection component that is both reliable and not over-loaded. Some methods comprise adjusting the time-to-live to be associated with a DNS record for an IP address in a path to the server. Some methods ping a router or other connection component on a path to the server to determine if it is a reliable connection component. Some methods perform a router status inquiry to determine the router's load. [0009]
  • A computer-readable storage medium of the invention has a configuration that will cause performance of a method for connection-sensitive domain name resolution when multiple connections to a web server are potentially available. The method comprises: receiving a DNS resolution request; selecting an IP address based on connection component status; and supplying the selected IP address in response to the request. In some embodiments, wherein the selecting step comprises determining whether a connection responds to pings, selecting an IP address of the next available path in a round-robin manner, and/or determining whether a router or other connection component is under-loaded. Other features and advantages of the invention will become more fully apparent through the following description. [0010]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • To illustrate the manner in which the advantages and features of the invention are obtained, a more particular description of the invention will be given with reference to the attached drawings. These drawings only illustrate selected aspects of the invention and its context. In the drawings: [0011]
  • FIG. 1 is a diagram illustrating a system according to the invention, comprising a web server having multiple IP addresses, which is made accessible to a personal computer for Internet browsing by way of multiple routers and an inventive connection-sensitive DNS resolver that selects IP addresses for access to the server using connection status as a dispositive criterion. [0012]
  • FIG. 2 is a diagram illustrating an alternative system according to the present invention, in which the connection-sensitive DNS resolver has several assigned IP addresses. [0013]
  • FIG. 3 is a diagram illustrating an alternative system according to the present invention, in which a single router is used but that router has multiple connections to the Internet. [0014]
  • FIG. 4 is a diagram illustrating an alternative system according to the present invention, in which a proxy server having several assigned IP addresses is positioned between the web server and the connection-sensitive DNS resolver. [0015]
  • FIG. 5 is a diagram illustrating an alternative system according to the present invention, in which the connection-sensitive DNS resolver resolves IP addresses for a switch, which in turn selects between multiple web servers for the hosted web site. [0016]
  • FIG. 6 is a diagram illustrating an alternative system according to the present invention, in which the connection-sensitive DNS resolver is not positioned between the web server and its router(s); this feature distinguishes FIG. 6 and other inventive systems from the systems shown in previous Figures, because systems like those in FIGS. [0017] 1-5 have the DNS resolver positioned between the web server(s) and router(s).
  • FIG. 7 is a flowchart illustrating methods of the present invention for resolving domain names into IP addresses in a manner that reflects the condition of routers and network links, as opposed to DNS resolution based on the condition of web servers.[0018]
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
  • The present invention relates to methods, systems, and configured storage media for providing redundancy and load-balancing in systems that have multiple (two or more) connection paths to a domain-named server. Existing approaches balance loads and track availability based on server status. By contrast, the present invention balances loads and tracks availability based on connection component (links, routers, switches, bridges, firewalls, packet shapers, etc.) status. Those prior approaches are not a substitute for the present invention, or vice versa. Rather, the invention's path-sensitive approach and prior server-sensitive approaches complement one other, since they may provide more flexibility, efficiency, and reliability when used together than either would provide alone. [0019]
  • FIG. 1 illustrates a [0020] system 100 according to the present invention. A client PC 102 seeks access to a web server 104 which is identified by the client 102 using a domain name. Other types of servers 104, such as FTP servers, list servers, and the like, may be likewise utilized in systems according to the invention. The client 102 seeks access to the server 104 over the Internet 106. “Internet” as used herein includes variations such as a private Internet, a secure Internet, a value-added network, a virtual private network, or an intranet. The computers connected in the system 100 may be clients 102, servers 104, peers, or a combination thereof. Suitable network clients 102 include, without limitation, personal computers, laptops, workstations, and dumb terminals. PC 102 may be, for instance, a personal computer browsing the Internet 106 with a browser such as a Netscape or Microsoft browser, or a personal computer using an intranet connection or a thin client application.
  • The [0021] servers 104 and their clients 102 are generally capable of using floppy drives, tape drives, optical drives and/or other means to read a storage medium. A suitable storage medium includes a magnetic, optical, or other computer-readable storage device having a specific physical substrate configuration. Suitable storage devices include floppy disks, hard disks, tape, CD-ROMs, DVDs, PROMs, ROM, RAM, flash memory and other computer system storage devices, both volatile and non-volatile. The substrate configuration represents data and/or instructions which cause the computer to operate in a specific and predefined manner as described herein. Thus, the medium tangibly embodies a program, functions, data, and/or instructions that direct a computer to perform or provide improved DNS path-sensitive name resolution techniques and tools according to the present invention.
  • To permit redundancy and load-balancing, the [0022] system 100 includes multiple connection paths between the server 104 and the Internet 106. One connection path goes over a first router (“router A”) 108 and network links 110, while another path goes over another router (“router B”) 108 and other links 110. The signal lines used in the links 110 may include twisted pair, coaxial, or optical fiber cables, telephone lines, satellites, microwave relays, modulated AC power lines, and other data transmission “wires” known to those of skill in the art, including wireless links. Signals according to the invention may be embodied in such “wires” and/or in addressable storage media.
  • A connection-[0023] sensitive DNS resolver 112 is positioned between the routers 108 and the server 104. The connection-sensitive DNS resolver 112 operates generally like a conventional (server-sensitive) DNS resolver in that both types of DNS resolver provide redundancy and both preferably perform some load-balancing. But a conventional DNS resolver selects IP addresses to provide based on the server's status, whereas the inventive DNS resolver 112 selects IP addresses based on connection/router status. This may lead to different outcomes, depending on the situation. For instance, when two paths to a server are available, a conventional DNS resolver may over-load one of the paths without necessarily over-loading the server. Likewise, when two paths are available to each of two servers, a connection-sensitive DNS resolver might over-load one of the servers even though it has distributed the load between the two paths.
  • The illustrated [0024] DNS resolver 112 comprises a data component 114 and a code 116 component. The data component 114 contains information identifying the connection components, e.g., routers 108, links 110, and—at least implicitly—their network topology (which links connect to which routers, etc.). In some embodiments, additional detail is stored, such as the bandwidth and/or latency of a link 110, the processing speed and/or buffer size of a router 108, and other performance characteristics. The data component 114 may also contain status information, such as whether a router 108 answered a ping, when the router 108 was last pinged, whether the carrier signal is present for a link 110, whether packets sent to a given link 100 or router 108 have apparently been dropped (no ack received before timeout), the time it took to receive a reply to a request sent on a link, and so on. Finally, the data component 114 contains IP addresses for the paths, with an implicit or express indication of which IP addresses correspond to which routers 108. Note that in some embodiments and/or situations, more than one IP address can be handled by a given router 108. Particular embodiments of the data component 114 may contain various data elements, organized into lists, tables, and/or other data structures. But in general, the data component 114 contains at some point enough data for the DNS resolver 112 to select an IP address based on at least data about the apparent availability of different paths, and preferably based on data about the relative loads on different paths.
  • The code component [0025] 116 receives the domain name resolution request, accesses and/or obtains the data 114 to make an IP address selection, and provides the selected IP address in response to the domain name resolution request. The IP address is selected based on the status of path elements, such as routers 108 and possibly also links 110, where the path element status is defined in terms of path characteristics such as the speed of the link, the load on a link, the hop count between the requester and the resolver, and/or fixed load distribution. Additional criteria may also be considered, such as a predefined criterion based on geographic location of the requester. The selection should be made, at a minimum, by selecting an IP address for a path that is apparently (based on the data 114) currently available to carry packets. The selection of an IP address is preferably made in a way that balances loads between two or more available paths, based on criteria such as the relative load on different routers 108 and/or the bandwidth of different links 110. The code component 116 may thus include code for pinging routers or making other status inquiries of path elements. In some embodiments, the code 116 includes procedures to aid administration (preferably including remote management through SNMP or the like), such as code for maintaining logs, sending alerts to system administrators, authentication and security code, and code to set parameters such as the time-to-live of DNS resolution responses. The time-to-live is provided with the IP address in the DNS resolver's response. Use of the term “code” here reflects the fact that implementing code component 116 functionality in software, firmware, microcode, or other programmable code configuring general-purpose hardware is often preferred, because it makes upgrades and other changes easier, but the code component 116 may also be implemented partially or entirely in special-purpose hardware.
  • FIG. 2 illustrates a [0026] system 200, in which the connection-sensitive DNS resolver 112 has several assigned IP addresses. That is, one IP address leads to the resolver 112 and hence to the web server 104 by way of router A, three IP addresses lead to the resolver 112 and thence to the server 104 through router B, and one IP address leads to the resolver 112 and server 104 through router C. Depending on the circumstances, it may be preferable to have multiple addresses at the server, multiple addresses at the resolver 112, neither, or both. For instance, the resolver 112 may be added to an existing configuration in which a server 104 is up and running well. Suppose the server has a single IP address. Adding another address to the server for multi-homing would require changing server settings, which increases risk that the server will stop functioning as desired. Therefore, it may be preferable to leave the server with a single address and add an IP address at the resolver 112 for multi-homing—the resolver 112 then maps its multiple addresses to the single server address. Alternately, suppose the server is already multi-homed and already running well when the resolver 112 is to be added. It may then be preferable to give the resolver 112 a single IP address and let the server continue with its multiple addresses, which the resolver can map traffic to.
  • Note that multiple paths can be present in various ways. FIG. 1 shows two [0027] routers 108, each with its own link 110 to the resolver 112 and its own link to the Internet 106. FIG. 2 shows more routers 108 (three, this time), again with each router 108 having its own link 110 to the resolver and its own link 110 to the Internet 106. FIG. 3 shows a system 300 in which a single router 108 has one link 110 to the resolver 112 but has three links 110 to the Internet 106. Other combinations of routers and links are also possible in some systems according to the invention. An embodiment of the inventive DNS resolver 112 may be used if multiple paths to a server 104 are possible, regardless of how those paths are formed from links 110 and routers 108.
  • It will also be appreciated that the [0028] DNS resolver 112 need not connect directly to a server 104. The DNS resolver 112 may connect instead to a proxy server 402, as shown in FIG. 4, to a LAN, or to a server multiplexer 502, as shown in FIG. 5, for instance. In FIG. 5, the servers A and B may be multi-homed. As shown in FIG. 6, some connection-sensitive DNS resolvers 112 may not be positioned between the web server 104 and its router(s) 108 at all. Like some conventional DNS resolvers, these resolvers 112 may instead be positioned elsewhere, so long as they connect to the Internet 106. There are some advantages to placing the resolver 112 between the server(s) and the router(s): since the traffic to the server(s) goes through the resolver 112, the resolver 112 can be used to do multiplexing, packet shaping, Quality of Service tasks such as favoring voice-over-IP traffic, and other direct traffic management functions, which would not be possible if the resolver 112 was positioned elsewhere. By contrast, if the resolver does not reside between the server and router then the resolver does not get involved in direct traffic management but still resolves names into IP addresses. When the resolver 112 is not located between the server(s) and the router(s), the resolver maintains tables or other data structures with information such as IP addresses to reply to, the status of load and router connections, and other information discussed herein. The resolver 112 may also use route test algorithms, and may maintain information on link characteristics such as latency and/or line speed. Based on statistics, the resolver 112 redirects the requests to appropriate servers.
  • In the configurations shown in FIGS. [0029] 1-5, the connection-sensitive DNS resolvers 112 is located between one or more web servers 104 and one or more routers 108. Since the routers' addresses are known, in these configurations the DNS resolver 112 may be combined in one device with a multiplexer/demultiplexer for using multiple lines or connections to provide greater throughput. In a given situation, suitable mux/demux devices and techniques may include without limitation those available from Ragula Systems Development company and/or those described in U.S. Pat. Nos. 6,295,276, 6,253,247, or U.S. patent application Ser. No. 09/751,590, which are incorporated herein.
  • By contrast, in the configuration of FIG. 6, the [0030] DNS resolver 112 is not located between the web server 104 and its closest routers 108 but is instead accessible through the Internet 106. Accordingly, the mux/demux functionality may be located in a different device than the DNS resolver functionality. In short, a smart DNS resolver module 112 of the present invention may be combined with a mux/demux device, but need not be so combined.
  • FIG. 7 is a flowchart illustrating methods of the present invention for resolving domain names into IP addresses in a manner that reflects the condition of routers and network links, as opposed to performing conventional DNS resolution based on the condition of web servers. Unless it is otherwise indicated, the description herein of systems of the present invention extends to corresponding methods, and vice versa. Likewise, the description of methods informs article embodiments which comprise storage media configured to perform methods of the invention. [0031]
  • The present invention operates in conjunction with one or more DNS servers. The present device can work as an independent DNS resolver in a contained environment such as a private network, or a frame relay network. In case the internet, there are sometimes several geographically distributed DNS servers; they may be arranged in a tree hierarchy. These DNS servers query each other periodically to get the latest list of names and addresses. When a server does not have information about a name, it forwards the request to the next server above it in the tree till the name is resolved or, at the top of the tree, an error message is generated. Embodiments of the invention effectively include at least one DNS server, so the [0032] module 112 itself can operates as an inbound DNS server. Use of an additional DNS server may be preferred, however, to prevent conventional DNS activity from interfering with use of the module 112 for path-sensitive load-balancing and reliability increases as described herein.
  • According to the invention, an inventive DNS interface module such as a [0033] resolver 112 receives a 702 domain name resolution request, selects 704 at least one IP address from a group of addresses corresponding to that domain name, and responds 706 to the request with an IP address. The “smart” DNS module 112 is configured with multiple IP addresses associated with each server, to reflect the potentially available paths to the server. The module 112 preferably checks periodically the actual availability of the paths, through pings, timeouts without acknowledgment, or other familiar means. The module keeps track of the current status of the path components; for purposes of the present invention, a server 104 is not considered a component in the path to that server. With the status information available to the DNS server, it can resolve the names of the servers intelligently by supplying IP addresses that use functioning paths, and preferably also by balancing the load on different paths.
  • When a request to resolve a domain name into an IP address is received [0034] 702 at the inventive DNS interface module, that module selects 704 an IP address from its database 114 for response. With respect to routers, for example, the selection is made between two or more candidate IP addresses by using one or both of the following selection criteria: (a) is the router 108 responding on the selected IP address or is the router “up”, that is, is it operating? (b) is the router associated with the IP address under-loaded 712, that is, does it have less data traffic than another server router? Similar questions may be asked about other path components, such as links 110. In some cases equivalent criteria are used, such as (a) is a candidate server connection “down”, e.g., not responding to pings 710, or known to be unavailable 708 for normal operation because it is scheduled for routine maintenance or upgrade work? (b) is a candidate server data connection overloaded 712, e.g., it has more currently active data connections to the servers than some (or all) other candidates. Some connections may be active even though no traffic is presently flowing over them, if an active life was specified and has not yet elapsed. Activity characteristics such as whether a file transfer was interrupted before completion, and/or the number of packets sent/received may be considered. The (a) criteria ask whether the router(s) 108 and the rest of the network connection in a given path are operating reliably (“reliability criterion”), while the (b) criteria ask whether the path for a given IP connection is operating at full capacity (“capacity criterion”).
  • For instance, an inventive [0035] DNS interface module 112 may operate by receiving 702 a domain name resolution request, determining 714 in a round-robin manner which of two or more candidate IP addresses is reliable, and forwarding 706 the resolved IP address to have the client 102 use a reliable path to the server. That is, the module 112 resolves 714 the resolution request to the reliable (path available) IP address associated with the server 104 which appears next in a list of IP addresses after the IP address sent when the previous resolution request was resolved by the module.
  • Alternately, the [0036] module 112 may receive 702 a resolution request, determine which candidate IP connection paths are reliable, determine 712 which of those network connections is least heavily loaded, and then resolve the request by selecting 704 the least heavily loaded IP connection to the server 104. The least heavily loaded IP address may be chosen according to a path dynamic load-balancing criterion involving data 114 such as average number of requests received, available router 108 memory, or average turnaround time for packets sent over paths selected using previous domain name resolution results.
  • The inventive module may also resolve domain name resolution requests in order to spread traffic among paths by using reliability as the distribution criterion without any particular attention to load-balancing as a distribution criterion. For instance, the module may resolve the request to whichever router IP address is closest, or next in line, or otherwise the easiest choice, if that router IP address is up and regardless of that router's load. [0037]
  • Some prior approaches, such as those used in UNIX round robin DNS servers, resolve domain name resolution requests in a round robin manner regardless of whether the path is operating reliably. This simplifies the task of the component that resolves the requests, but also makes resolution failures more likely. The failure rate with such previous approaches can be dramatic. For instance, if there are three server path IP addresses but one of the paths is down, then using a round robin distribution method without regard to path reliability will result in a failure rate of about 33%; if there are only two server path IP addresses and one is down, the failure rate for [0038] client 102 access attempts will be about 50%. The present invention preferably provides smaller failure rates by having the inventive module 112 keep track of which paths are reliable, or at least having the module check for connection reliability by pinging over the path just before resolving a name request. With the invention, resolution requests should not be routinely resolved to non-working IP connections. A round robin approach may be used by module 112, but unlike prior approaches the inventive round robin approach will not provide a response that would otherwise be next in the round robin cycle, if providing that response would send traffic over a connection or path component that is apparently down.
  • During a [0039] step 716, the module 112 sets the time-to-live (TTL) in the DNS record it will supply 706. DNS records are often cached on Internet DNS servers after an IP address for a given domain name is supplied. The TTL influences the amount of time a given DNS record should remain in the cache of a DNS server after the IP address specified in the DNS record is first supplied. If the TTL is too short, time and bandwidth will be spent with unnecessary DNS resolutions, but if the TTL is too long, an IP address for a given path may continue being given to clients 102 long after that path becomes unavailable or over-loaded. The TTL is preferably adjustable (through an automatic trial-and-error process and/or manually by an administrator) in at least some embodiments of the module 112.
  • At least some aspects of the invention described here are apparently embodied in a commercial product sold by Ragula Systems (dba FatPipe) under the mark WARP. To set up DNS on a WARP product, one needs a registered domain name, and the registered DNS server names need to have IP addresses that reside on the WARP box. For greater redundancy, it is preferable that the IP addresses be provided by different Internet Service Providers (ISPs). Systems according to the invention may be used with multiple WARP boxes, with multiple ISPs, with reverse port mapping to conserve public IP addresses by mapping a given public IP address and port number on the Internet side of the WARP unit to a private IP address on the LAN side of the WARP unit, with firewall load management by placing a firewall between the WARP unit and router ([0040] servers 104 being located on the opposite side of the WARP unit), with DHCP, with internal LAN routers, with proxy ARP, and/or with other computer networking components or configurations.
  • The steps illustrated and discussed in this document may be performed in various orders, including concurrently, except in those cases in which the results of one step are required as input to another step. Likewise, steps may be omitted unless required by the claims, regardless of whether they are expressly described as optional in this Detailed Description. Steps may also be repeated, or combined, or named differently. [0041]
  • The invention may be embodied in other specific forms without departing from its essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. Headings are for convenience only. The scope of the invention is indicated by the appended claims. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.[0042]

Claims (17)

What is claimed and desired to be secured by patent is:
1. A connection-sensitive domain name resolution device, comprising:
a data component identifying IP addresses for at least two paths to a server which has a domain name; and
a code component which receives a domain name resolution request specifying the domain name, selects an IP address from the data component based on information about the status of a path to the server, and supplies the selected IP address in response to the domain name resolution request.
2. The connection-sensitive domain name resolution device of claim 1, wherein IP addresses in the data component identify routers on paths to the server, and the code component avoids selecting the IP address of a router that is on a path to the server but is not available.
3. The connection-sensitive domain name resolution device of claim 1, wherein IP addresses in the data component identify routers on paths to the server, and the code component selects the IP address in a round-robin manner by selecting the next IP address in a list of IP addresses of routers that are on paths to the server and are available when the selection is made.
4. The connection-sensitive domain name resolution device of claim 1, wherein the code component selects the IP address of an under-loaded path, thereby tending to balance the loads on the paths to the server.
5. The connection-sensitive domain name resolution device of claim 1, wherein the device is placed between the server and a router for the server.
6. The connection-sensitive domain name resolution device of claim 1, in combination with a router for the server, the router having multiple connections to the Internet.
7. The connection-sensitive domain name resolution device of claim 1, in combination with a server-sensitive domain name resolver, wherein the combination performs load-balancing over server paths and also performs load-balancing over multiple servers.
8. A method for distributing domain name resolution results over multiple paths, the method comprising the steps of:
receiving a domain name resolution request which requests an IP address corresponding to a specified domain name;
determining that at least one candidate connection component is operating reliably and thus is a reliable connection component, the reliable connection component being in a path to a server having the domain name, the reliable connection component having an IP address; and
supplying the IP address of the reliable connection component in a response to the resolution request, thereby directing traffic to the server over a path through the reliable connection component.
9. The method of claim 8, further comprising the steps of determining the load on at least one candidate connection component and selecting a connection component which is not over-loaded, the selected connection component having an IP address and being in a path to the server having the domain name, wherein the supplying step comprises sending the IP address of the selected connection component in a response to the resolution request, thereby directing traffic to the server over a path through the connection component that is both reliable and not over-loaded.
10. The method of claim 8, further comprising the step of adjusting the time-to-live to be associated with a DNS record for an IP address in a path to the server.
11. The method of claim 8, further comprising the step of pinging a router on a path to the server to determine if the router is a reliable connection component.
12. The method of claim 8, further comprising the step of performing a router status inquiry to determine the router's load.
13. A computer-readable storage medium having a configuration that will cause performance of a method for connection-sensitive domain name resolution when multiple connections to a web server are potentially available, the method comprising:
receiving a DNS resolution request;
selecting an IP address based on connection component status; and
supplying the selected IP address in response to the request.
14. The configured medium of claim 13, wherein the selecting step comprises determining whether a connection responds to pings.
15. The configured medium of claim 13, wherein the selecting step comprises selecting an IP address of the next available path in a round-robin manner.
16. The configured medium of claim 13, wherein the selecting step comprises determining whether a router is under-loaded.
17. The configured medium of claim 13, further comprising the step of setting a DNS record time-to-live.
US10/034,190 2000-12-29 2001-12-28 Domain name resolution making IP address selections in response to connection status when multiple connections are present Abandoned US20020087722A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US10/034,190 US20020087722A1 (en) 2000-12-29 2001-12-28 Domain name resolution making IP address selections in response to connection status when multiple connections are present
US12/410,531 US7877510B2 (en) 2000-12-29 2009-03-25 Domain name resolution making IP address selections in response to connection status when multiple connections are present

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US25894600P 2000-12-29 2000-12-29
US27359801P 2001-03-06 2001-03-06
US33918201P 2001-12-13 2001-12-13
US10/034,190 US20020087722A1 (en) 2000-12-29 2001-12-28 Domain name resolution making IP address selections in response to connection status when multiple connections are present

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12/410,531 Continuation US7877510B2 (en) 2000-12-29 2009-03-25 Domain name resolution making IP address selections in response to connection status when multiple connections are present

Publications (1)

Publication Number Publication Date
US20020087722A1 true US20020087722A1 (en) 2002-07-04

Family

ID=27488192

Family Applications (2)

Application Number Title Priority Date Filing Date
US10/034,190 Abandoned US20020087722A1 (en) 2000-12-29 2001-12-28 Domain name resolution making IP address selections in response to connection status when multiple connections are present
US12/410,531 Active 2029-07-09 US7877510B2 (en) 2000-12-29 2009-03-25 Domain name resolution making IP address selections in response to connection status when multiple connections are present

Family Applications After (1)

Application Number Title Priority Date Filing Date
US12/410,531 Active 2029-07-09 US7877510B2 (en) 2000-12-29 2009-03-25 Domain name resolution making IP address selections in response to connection status when multiple connections are present

Country Status (1)

Country Link
US (2) US20020087722A1 (en)

Cited By (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020087623A1 (en) * 2000-12-30 2002-07-04 Eatough David A. Method and apparatus for determining network topology and/or managing network related tasks
US20020143946A1 (en) * 2001-03-28 2002-10-03 Daniel Crosson Software based internet protocol address selection method and system
US20020198998A1 (en) * 2001-06-20 2002-12-26 Unice Warren K. Domain encapsulation
US20030028671A1 (en) * 2001-06-08 2003-02-06 4Th Pass Inc. Method and system for two-way initiated data communication with wireless devices
US20030195984A1 (en) * 1998-07-15 2003-10-16 Radware Ltd. Load balancing
US20040133675A1 (en) * 2002-09-30 2004-07-08 Masahiro Ishiyama Name resolution device and name resolution method with automatic node information updating function
EP1473907A2 (en) * 2003-04-30 2004-11-03 Avaya Technology Corp. Dynamic load balancing for enterprise IP traffic
US20050086385A1 (en) * 2003-10-20 2005-04-21 Gordon Rouleau Passive connection backup
EP1589411A2 (en) * 2004-04-20 2005-10-26 Hitachi, Ltd. Managing method for storing subsystem
US20060053424A1 (en) * 2002-06-28 2006-03-09 Tommi Koistinen Load balancing devices and method therefor
US20060239257A1 (en) * 2005-04-22 2006-10-26 At&T Corp. Controlling media server resources in a VoIP network
US7171457B1 (en) * 2001-09-25 2007-01-30 Juniper Networks, Inc. Processing numeric addresses in a network router
US20080232336A1 (en) * 2007-03-22 2008-09-25 Amr Elkady Systems, Methods, and Computer-Readable Media for Communicating Via a Mobile Wireless Communication Device
US20080294732A1 (en) * 2006-11-11 2008-11-27 International Business Machines Corporation Determining the status of a device through use of a publisher/subscriber interface
US20080304501A1 (en) * 2004-02-05 2008-12-11 Samsung Electronics Co., Ltd Tunneling service method and system
US20090089438A1 (en) * 2007-09-27 2009-04-02 Microsoft Corporation Intelligent network address lookup service
US20090150577A1 (en) * 2007-12-10 2009-06-11 Sakshi Chaitanya Veni Data Processing Method And System
US7574508B1 (en) 2002-08-07 2009-08-11 Foundry Networks, Inc. Canonical name (CNAME) handling for global server load balancing
US7584301B1 (en) 2004-05-06 2009-09-01 Foundry Networks, Inc. Host-level policies for global server load balancing
US20090254664A1 (en) * 2008-04-04 2009-10-08 Canon Kabushiki Kaisha Session management system and method of controlling the same
US7657629B1 (en) 2000-09-26 2010-02-02 Foundry Networks, Inc. Global server load balancing
US7676576B1 (en) * 2002-08-01 2010-03-09 Foundry Networks, Inc. Method and system to clear counters used for statistical tracking for global server load balancing
US20100061236A1 (en) * 2004-08-23 2010-03-11 Foundry Networks, Inc. Smoothing algorithm for round trip time (rtt) measurements
US20100082787A1 (en) * 2000-09-26 2010-04-01 Foundry Networks, Inc. Global server load balancing
US20100115133A1 (en) * 2004-05-06 2010-05-06 Foundry Networks, Inc. Configurable geographic prefixes for global server load balancing
US20110047291A1 (en) * 2009-01-26 2011-02-24 Tomoki Ishii Relay device, control method, and program
US7965673B2 (en) 2003-09-09 2011-06-21 Sony Corporation System and method for multi-link communication in home network
US20120005319A1 (en) * 2010-07-01 2012-01-05 Raytheon Company Dynamic Modification of the Address of a Proxy
US20120297197A1 (en) * 2011-05-16 2012-11-22 Norman Yale Dynamic Domain Name Server Console for Disaster Recovery Server Management
JP2013118663A (en) * 2008-04-04 2013-06-13 Canon Inc Information processing apparatus, control method therefor and program
US20130159497A1 (en) * 2011-12-16 2013-06-20 Microsoft Corporation Heuristic-Based Rejection of Computing Resource Requests
US8494515B1 (en) 2007-03-22 2013-07-23 At&T Intellectual Property I, L.P. Systems, methods, and computer-readable media for managing mobile wireless devices
US8549148B2 (en) 2010-10-15 2013-10-01 Brocade Communications Systems, Inc. Domain name system security extensions (DNSSEC) for global server load balancing
US8886750B1 (en) * 2011-09-28 2014-11-11 Amazon Technologies, Inc. Alias resource record sets
US20140355482A1 (en) * 2004-03-18 2014-12-04 Tekelec Global, Inc. Methods, systems, and computer program products for organizing, managing, and selectively distributing routing information in a signaling message routing node
US8949850B2 (en) 2002-08-01 2015-02-03 Brocade Communications Systems, Inc. Statistical tracking for global server load balancing
US20150095516A1 (en) * 2013-09-27 2015-04-02 Fastly, Inc. Content node network address selection for content delivery
US20150188881A1 (en) * 2013-12-26 2015-07-02 Fastly, Inc. Content node selection based on classless prefix
WO2015112206A1 (en) * 2014-01-21 2015-07-30 Telecommunication Systems, Inc. Intelligent ip resolver
US9130954B2 (en) 2000-09-26 2015-09-08 Brocade Communications Systems, Inc. Distributed health check for global server load balancing
US20160112500A1 (en) * 2014-10-21 2016-04-21 Samsung Sds Co., Ltd. Global server load balancer apparatus and method for dynamically controlling time-to-live
CN106210159A (en) * 2015-05-07 2016-12-07 阿里巴巴集团控股有限公司 A kind of domain name analytic method and equipment
US9584360B2 (en) 2003-09-29 2017-02-28 Foundry Networks, Llc Global server load balancing support for private VIP addresses
CN107231446A (en) * 2016-03-23 2017-10-03 北京京东尚科信息技术有限公司 Synchronous IP collocation methods and device
KR20170137829A (en) * 2015-05-12 2017-12-13 지티이 코포레이션 METHOD, APPARATUS, PROGRAM, AND COMPUTER-READABLE RECORDING MEDIUM
US20180270111A1 (en) * 2015-01-29 2018-09-20 Nec Corporation Data file registration management system, method, management apparatus, and recording medium
EP3416356A1 (en) * 2017-06-16 2018-12-19 Samsung Electronics Co., Ltd. Apparatus and method for controlling connection using dns in communication system
US20190020620A1 (en) * 2017-07-13 2019-01-17 T-Mobile Usa, Inc. Optimizing routing of access to network domains via a wireless communication network
CN109246227A (en) * 2018-09-26 2019-01-18 北京达佳互联信息技术有限公司 A kind of data request method, device, terminal device and storage medium
US10320837B2 (en) * 2012-11-07 2019-06-11 International Business Machines Corporation Defense against DNS DoS attack
US10362044B2 (en) * 2017-08-08 2019-07-23 International Business Machines Corporation Identifying command and control endpoint used by domain generation algorithm (DGA) malware
US10700969B2 (en) * 2014-02-04 2020-06-30 Fastly, Inc. Communication path selection for content delivery
CN114285822A (en) * 2021-12-15 2022-04-05 中国银联股份有限公司 Domain name resolution server switching method and device
CN114553828A (en) * 2022-02-24 2022-05-27 中国人民解放军国防科技大学 DNS operation and maintenance management method, device, equipment and medium
US20230421471A1 (en) * 2022-06-28 2023-12-28 Citrix Systems, Inc. Optimizing selection of zero trust network access cloud edge nodes for internal application delivery

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9015263B2 (en) 2004-10-29 2015-04-21 Go Daddy Operating Company, LLC Domain name searching with reputation rating
JP2006262417A (en) * 2005-03-18 2006-09-28 Fujitsu Ltd Communication speed control method and apparatus therefor
US9450908B2 (en) * 2005-06-23 2016-09-20 Go Daddy Operating Company, LLC Routing DNS system and method for shared domain name
US20050289242A1 (en) * 2005-06-24 2005-12-29 The Go Daddy Group, Inc. Resolving access to content associated with shared domain name using routing website
US20050289241A1 (en) * 2005-06-24 2005-12-29 The Go Daddy Group, Inc. Resolving access to content associated with shared domain name using toggling content server
US8706816B2 (en) * 2005-06-24 2014-04-22 Go Daddy Operating Company, LLC System and method for email delivery for shared domain name
US20080062997A1 (en) * 2006-09-07 2008-03-13 Go2Call.Com, Inc. Intelligent call routing through distributed VoIP networks
CN102130820A (en) * 2010-01-14 2011-07-20 深圳市深信服电子科技有限公司 Network service access method and access gateway equipment
US20110280247A1 (en) * 2010-05-17 2011-11-17 Google Inc. System and method for reducing latency via multiple network connections
US9002926B2 (en) 2011-04-22 2015-04-07 Go Daddy Operating Company, LLC Methods for suggesting domain names from a geographic location data
US10270755B2 (en) 2011-10-03 2019-04-23 Verisign, Inc. Authenticated name resolution
US8990356B2 (en) 2011-10-03 2015-03-24 Verisign, Inc. Adaptive name resolution
US9444779B2 (en) * 2012-06-04 2016-09-13 Microsoft Technology Lincensing, LLC Dynamic and intelligent DNS routing with subzones
US9438659B2 (en) 2012-06-21 2016-09-06 Go Daddy Operating Company, LLC Systems for serving website content according to user status
US9715694B2 (en) 2013-10-10 2017-07-25 Go Daddy Operating Company, LLC System and method for website personalization from survey data
US9684918B2 (en) 2013-10-10 2017-06-20 Go Daddy Operating Company, LLC System and method for candidate domain name generation
US9900281B2 (en) 2014-04-14 2018-02-20 Verisign, Inc. Computer-implemented method, apparatus, and computer-readable medium for processing named entity queries using a cached functionality in a domain name system
US9953105B1 (en) 2014-10-01 2018-04-24 Go Daddy Operating Company, LLC System and method for creating subdomains or directories for a domain name
US9779125B2 (en) 2014-11-14 2017-10-03 Go Daddy Operating Company, LLC Ensuring accurate domain name contact information
US9785663B2 (en) 2014-11-14 2017-10-10 Go Daddy Operating Company, LLC Verifying a correspondence address for a registrant
US10965649B2 (en) 2015-10-30 2021-03-30 Fatpipe, Inc. Persistent data communication sessions across WAN
US10374830B1 (en) 2016-07-17 2019-08-06 Fatpipe, Inc. WAN-span LAN (WSL) networking technology
US10999240B1 (en) 2016-08-31 2021-05-04 Verisign, Inc. Client controlled domain name service (DNS) resolution
US10505894B2 (en) * 2016-10-13 2019-12-10 Microsoft Technology Licensing, Llc Active and passive method to perform IP to name resolution in organizational environments
US11032127B2 (en) 2017-06-26 2021-06-08 Verisign, Inc. Resilient domain name service (DNS) resolution when an authoritative name server is unavailable
CN109327392B (en) * 2017-07-24 2022-04-22 网宿科技股份有限公司 Path selection method and device in multi-path transmission
CN109889499B (en) * 2019-01-17 2021-01-12 Oppo广东移动通信有限公司 Message sending method and related device
US10812442B1 (en) * 2019-09-23 2020-10-20 Citrix Systems, Inc. Intelligent redirector based on resolver transparency

Citations (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5473599A (en) * 1994-04-22 1995-12-05 Cisco Systems, Incorporated Standby router protocol
US5617540A (en) * 1995-07-31 1997-04-01 At&T System for binding host name of servers and address of available server in cache within client and for clearing cache prior to client establishes connection
US5774660A (en) * 1996-08-05 1998-06-30 Resonate, Inc. World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network
US5777989A (en) * 1995-12-19 1998-07-07 International Business Machines Corporation TCP/IP host name resolution for machines on several domains
US5963540A (en) * 1997-12-19 1999-10-05 Holontech Corporation Router pooling in a network flowswitch
US6006264A (en) * 1997-08-01 1999-12-21 Arrowpoint Communications, Inc. Method and system for directing a flow between a client and a server
US6070191A (en) * 1997-10-17 2000-05-30 Lucent Technologies Inc. Data distribution techniques for load-balanced fault-tolerant web access
US6078943A (en) * 1997-02-07 2000-06-20 International Business Machines Corporation Method and apparatus for dynamic interval-based load balancing
US6098108A (en) * 1997-07-02 2000-08-01 Sitara Networks, Inc. Distributed directory for enhanced network communication
US6112248A (en) * 1997-02-05 2000-08-29 Hitachi, Ltd. Method and system for dynamically balancing network traffic using address resolution protocol
US6119143A (en) * 1997-05-22 2000-09-12 International Business Machines Corporation Computer system and method for load balancing with selective control
US6128279A (en) * 1997-10-06 2000-10-03 Web Balance, Inc. System for balancing loads among network servers
US6154777A (en) * 1996-07-01 2000-11-28 Sun Microsystems, Inc. System for context-dependent name resolution
US6185619B1 (en) * 1996-12-09 2001-02-06 Genuity Inc. Method and apparatus for balancing the process load on network servers according to network and serve based policies
US6205489B1 (en) * 1999-01-05 2001-03-20 Whowhere, Inc. Method for providing an internet protocol address with a domain name server
US6249820B1 (en) * 1995-07-12 2001-06-19 Cabletron Systems, Inc. Internet protocol (IP) work group routing
US6249801B1 (en) * 1998-07-15 2001-06-19 Radware Ltd. Load balancing
US6253247B1 (en) * 1996-11-21 2001-06-26 Ragula Systems System and method for transmitting a user's data packets concurrently over different telephone lines between two computer networks
US6262987B1 (en) * 1998-03-26 2001-07-17 Compaq Computer Corp System and method for reducing latencies while translating internet host name-address bindings
US6266335B1 (en) * 1997-12-19 2001-07-24 Cyberiq Systems Cross-platform server clustering using a network flow switch
US6295276B1 (en) * 1999-12-31 2001-09-25 Ragula Systems Combining routers to increase concurrency and redundancy in external network access
US6298063B1 (en) * 1995-11-03 2001-10-02 Cisco Technology, Inc. System and method for providing backup machines for implementing multiple IP addresses on multiple ports
US6304913B1 (en) * 1998-11-09 2001-10-16 Telefonaktiebolaget L M Ericsson (Publ) Internet system and method for selecting a closest server from a plurality of alternative servers
US20010049741A1 (en) * 1999-06-18 2001-12-06 Bryan D. Skene Method and system for balancing load distribution on a wide area network
US20020038339A1 (en) * 2000-09-08 2002-03-28 Wei Xu Systems and methods for packet distribution
US6502131B1 (en) * 1997-05-27 2002-12-31 Novell, Inc. Directory enabled policy management tool for intelligent traffic management
US6505254B1 (en) * 1999-04-19 2003-01-07 Cisco Technology, Inc. Methods and apparatus for routing requests in a network
US6665702B1 (en) * 1998-07-15 2003-12-16 Radware Ltd. Load balancing
US6725253B1 (en) * 1999-10-14 2004-04-20 Fujitsu Limited Load balancing system
US6779039B1 (en) * 2000-03-31 2004-08-17 Avaya Technology Corp. System and method for routing message traffic using a cluster of routers sharing a single logical IP address distinct from unique IP addresses of the routers

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6389462B1 (en) * 1998-12-16 2002-05-14 Lucent Technologies Inc. Method and apparatus for transparently directing requests for web objects to proxy caches

Patent Citations (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5473599A (en) * 1994-04-22 1995-12-05 Cisco Systems, Incorporated Standby router protocol
US6249820B1 (en) * 1995-07-12 2001-06-19 Cabletron Systems, Inc. Internet protocol (IP) work group routing
US5617540A (en) * 1995-07-31 1997-04-01 At&T System for binding host name of servers and address of available server in cache within client and for clearing cache prior to client establishes connection
US6298063B1 (en) * 1995-11-03 2001-10-02 Cisco Technology, Inc. System and method for providing backup machines for implementing multiple IP addresses on multiple ports
US5777989A (en) * 1995-12-19 1998-07-07 International Business Machines Corporation TCP/IP host name resolution for machines on several domains
US6154777A (en) * 1996-07-01 2000-11-28 Sun Microsystems, Inc. System for context-dependent name resolution
US5774660A (en) * 1996-08-05 1998-06-30 Resonate, Inc. World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network
US6253247B1 (en) * 1996-11-21 2001-06-26 Ragula Systems System and method for transmitting a user's data packets concurrently over different telephone lines between two computer networks
US6185619B1 (en) * 1996-12-09 2001-02-06 Genuity Inc. Method and apparatus for balancing the process load on network servers according to network and serve based policies
US6112248A (en) * 1997-02-05 2000-08-29 Hitachi, Ltd. Method and system for dynamically balancing network traffic using address resolution protocol
US6078943A (en) * 1997-02-07 2000-06-20 International Business Machines Corporation Method and apparatus for dynamic interval-based load balancing
US6119143A (en) * 1997-05-22 2000-09-12 International Business Machines Corporation Computer system and method for load balancing with selective control
US6502131B1 (en) * 1997-05-27 2002-12-31 Novell, Inc. Directory enabled policy management tool for intelligent traffic management
US6098108A (en) * 1997-07-02 2000-08-01 Sitara Networks, Inc. Distributed directory for enhanced network communication
US6006264A (en) * 1997-08-01 1999-12-21 Arrowpoint Communications, Inc. Method and system for directing a flow between a client and a server
US6128279A (en) * 1997-10-06 2000-10-03 Web Balance, Inc. System for balancing loads among network servers
US6070191A (en) * 1997-10-17 2000-05-30 Lucent Technologies Inc. Data distribution techniques for load-balanced fault-tolerant web access
US6266335B1 (en) * 1997-12-19 2001-07-24 Cyberiq Systems Cross-platform server clustering using a network flow switch
US5963540A (en) * 1997-12-19 1999-10-05 Holontech Corporation Router pooling in a network flowswitch
US6262987B1 (en) * 1998-03-26 2001-07-17 Compaq Computer Corp System and method for reducing latencies while translating internet host name-address bindings
US6249801B1 (en) * 1998-07-15 2001-06-19 Radware Ltd. Load balancing
US6665702B1 (en) * 1998-07-15 2003-12-16 Radware Ltd. Load balancing
US6304913B1 (en) * 1998-11-09 2001-10-16 Telefonaktiebolaget L M Ericsson (Publ) Internet system and method for selecting a closest server from a plurality of alternative servers
US6205489B1 (en) * 1999-01-05 2001-03-20 Whowhere, Inc. Method for providing an internet protocol address with a domain name server
US6505254B1 (en) * 1999-04-19 2003-01-07 Cisco Technology, Inc. Methods and apparatus for routing requests in a network
US20010049741A1 (en) * 1999-06-18 2001-12-06 Bryan D. Skene Method and system for balancing load distribution on a wide area network
US6725253B1 (en) * 1999-10-14 2004-04-20 Fujitsu Limited Load balancing system
US6295276B1 (en) * 1999-12-31 2001-09-25 Ragula Systems Combining routers to increase concurrency and redundancy in external network access
US6779039B1 (en) * 2000-03-31 2004-08-17 Avaya Technology Corp. System and method for routing message traffic using a cluster of routers sharing a single logical IP address distinct from unique IP addresses of the routers
US20020038339A1 (en) * 2000-09-08 2002-03-28 Wei Xu Systems and methods for packet distribution

Cited By (122)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9231853B2 (en) 1998-07-15 2016-01-05 Radware, Ltd. Load balancing
US8266319B2 (en) * 1998-07-15 2012-09-11 Radware, Ltd. Load balancing
US8484374B2 (en) 1998-07-15 2013-07-09 Radware, Ltd. Load balancing
US10819619B2 (en) 1998-07-15 2020-10-27 Radware, Ltd. Load balancing
US20030195984A1 (en) * 1998-07-15 2003-10-16 Radware Ltd. Load balancing
US20100153558A1 (en) * 2000-09-26 2010-06-17 Foundry Networks, Inc. Global server load balancing
US9225775B2 (en) 2000-09-26 2015-12-29 Brocade Communications Systems, Inc. Global server load balancing
US20100082787A1 (en) * 2000-09-26 2010-04-01 Foundry Networks, Inc. Global server load balancing
US9479574B2 (en) 2000-09-26 2016-10-25 Brocade Communications Systems, Inc. Global server load balancing
US7657629B1 (en) 2000-09-26 2010-02-02 Foundry Networks, Inc. Global server load balancing
US8504721B2 (en) 2000-09-26 2013-08-06 Brocade Communications Systems, Inc. Global server load balancing
US9015323B2 (en) 2000-09-26 2015-04-21 Brocade Communications Systems, Inc. Global server load balancing
US8024441B2 (en) 2000-09-26 2011-09-20 Brocade Communications Systems, Inc. Global server load balancing
US9130954B2 (en) 2000-09-26 2015-09-08 Brocade Communications Systems, Inc. Distributed health check for global server load balancing
US20020087623A1 (en) * 2000-12-30 2002-07-04 Eatough David A. Method and apparatus for determining network topology and/or managing network related tasks
US20020143946A1 (en) * 2001-03-28 2002-10-03 Daniel Crosson Software based internet protocol address selection method and system
US20030028671A1 (en) * 2001-06-08 2003-02-06 4Th Pass Inc. Method and system for two-way initiated data communication with wireless devices
US20020198998A1 (en) * 2001-06-20 2002-12-26 Unice Warren K. Domain encapsulation
US6839764B2 (en) * 2001-06-20 2005-01-04 Intel Corporation Domain encapsulation
US20070118621A1 (en) * 2001-09-25 2007-05-24 Juniper Networks, Inc. Processing numeric addresses in a network router
US7779087B2 (en) 2001-09-25 2010-08-17 Juniper Networks, Inc. Processing numeric addresses in a network router
US7171457B1 (en) * 2001-09-25 2007-01-30 Juniper Networks, Inc. Processing numeric addresses in a network router
US20060053424A1 (en) * 2002-06-28 2006-03-09 Tommi Koistinen Load balancing devices and method therefor
US7676576B1 (en) * 2002-08-01 2010-03-09 Foundry Networks, Inc. Method and system to clear counters used for statistical tracking for global server load balancing
US8949850B2 (en) 2002-08-01 2015-02-03 Brocade Communications Systems, Inc. Statistical tracking for global server load balancing
US10193852B2 (en) 2002-08-07 2019-01-29 Avago Technologies International Sales Pte. Limited Canonical name (CNAME) handling for global server load balancing
US11095603B2 (en) 2002-08-07 2021-08-17 Avago Technologies International Sales Pte. Limited Canonical name (CNAME) handling for global server load balancing
US7574508B1 (en) 2002-08-07 2009-08-11 Foundry Networks, Inc. Canonical name (CNAME) handling for global server load balancing
US7908356B2 (en) * 2002-09-30 2011-03-15 Kabushiki Kaisha Toshiba Name resolution device and name resolution method with automatic node information updating function
US20040133675A1 (en) * 2002-09-30 2004-07-08 Masahiro Ishiyama Name resolution device and name resolution method with automatic node information updating function
EP1473907A2 (en) * 2003-04-30 2004-11-03 Avaya Technology Corp. Dynamic load balancing for enterprise IP traffic
EP1473907A3 (en) * 2003-04-30 2004-11-24 Avaya Technology Corp. Dynamic load balancing for enterprise IP traffic
US20040221061A1 (en) * 2003-04-30 2004-11-04 Chavez David L. Dynamic load balancing for enterprise IP traffic
US7308499B2 (en) * 2003-04-30 2007-12-11 Avaya Technology Corp. Dynamic load balancing for enterprise IP traffic
US7965673B2 (en) 2003-09-09 2011-06-21 Sony Corporation System and method for multi-link communication in home network
US9584360B2 (en) 2003-09-29 2017-02-28 Foundry Networks, Llc Global server load balancing support for private VIP addresses
US20050086385A1 (en) * 2003-10-20 2005-04-21 Gordon Rouleau Passive connection backup
US20080304501A1 (en) * 2004-02-05 2008-12-11 Samsung Electronics Co., Ltd Tunneling service method and system
US9379965B2 (en) * 2004-03-18 2016-06-28 Tekelec Global, Inc. Organizing, managing, and selectively distributing routing information in a signaling message routing node
US20140355482A1 (en) * 2004-03-18 2014-12-04 Tekelec Global, Inc. Methods, systems, and computer program products for organizing, managing, and selectively distributing routing information in a signaling message routing node
EP1589411A3 (en) * 2004-04-20 2008-11-05 Hitachi, Ltd. Managing method for storing subsystem
EP1589411A2 (en) * 2004-04-20 2005-10-26 Hitachi, Ltd. Managing method for storing subsystem
US20100010991A1 (en) * 2004-05-06 2010-01-14 Foundry Networks, Inc. Host-level policies for global server load balancing
US8280998B2 (en) 2004-05-06 2012-10-02 Brocade Communications Systems, Inc. Configurable geographic prefixes for global server load balancing
US7584301B1 (en) 2004-05-06 2009-09-01 Foundry Networks, Inc. Host-level policies for global server load balancing
US20100299427A1 (en) * 2004-05-06 2010-11-25 Foundry Networks, Inc. Configurable geographic prefixes for global server load balancing
US7840678B2 (en) 2004-05-06 2010-11-23 Brocade Communication Systems, Inc. Host-level policies for global server load balancing
US7949757B2 (en) 2004-05-06 2011-05-24 Brocade Communications Systems, Inc. Host-level policies for global server load balancing
US7756965B2 (en) 2004-05-06 2010-07-13 Foundry Networks, Inc. Configurable geographic prefixes for global server load balancing
US8510428B2 (en) 2004-05-06 2013-08-13 Brocade Communications Systems, Inc. Configurable geographic prefixes for global server load balancing
US20100115133A1 (en) * 2004-05-06 2010-05-06 Foundry Networks, Inc. Configurable geographic prefixes for global server load balancing
US8862740B2 (en) 2004-05-06 2014-10-14 Brocade Communications Systems, Inc. Host-level policies for global server load balancing
US7899899B2 (en) 2004-05-06 2011-03-01 Foundry Networks, Llc Configurable geographic prefixes for global server load balancing
US20100061236A1 (en) * 2004-08-23 2010-03-11 Foundry Networks, Inc. Smoothing algorithm for round trip time (rtt) measurements
US8755279B2 (en) 2004-08-23 2014-06-17 Brocade Communications Systems, Inc. Smoothing algorithm for round trip time (RTT) measurements
US7885188B2 (en) 2004-08-23 2011-02-08 Brocade Communications Systems, Inc. Smoothing algorithm for round trip time (RTT) measurements
US7656866B2 (en) * 2005-04-22 2010-02-02 At&T Corp. Controlling media server resources in a VoIP network
US20060239257A1 (en) * 2005-04-22 2006-10-26 At&T Corp. Controlling media server resources in a VoIP network
US9294573B2 (en) * 2006-11-11 2016-03-22 International Business Machines Corporation Determining the status of a device through use of a publisher/subscriber interface
US10666531B2 (en) 2006-11-11 2020-05-26 International Business Machines Corporation Determining the status of a device through use of a publisher/subscriber interface
US20080294732A1 (en) * 2006-11-11 2008-11-27 International Business Machines Corporation Determining the status of a device through use of a publisher/subscriber interface
US9584449B2 (en) 2006-11-11 2017-02-28 International Business Machines Corporation Determining the status of a device through use of a publisher/subscriber interface
US20080232336A1 (en) * 2007-03-22 2008-09-25 Amr Elkady Systems, Methods, and Computer-Readable Media for Communicating Via a Mobile Wireless Communication Device
US8874085B2 (en) 2007-03-22 2014-10-28 At&T Intellectual Property I, L.P. Systems, methods, and computer-readable media for managing mobile wireless devices
US8494515B1 (en) 2007-03-22 2013-07-23 At&T Intellectual Property I, L.P. Systems, methods, and computer-readable media for managing mobile wireless devices
US8165139B2 (en) * 2007-03-22 2012-04-24 At&T Intellectual Property I, L.P. Systems, methods, and computer-readable media for communicating via a mobile wireless communication device
US8626949B2 (en) * 2007-09-27 2014-01-07 Microsoft Corporation Intelligent network address lookup service
US20090089438A1 (en) * 2007-09-27 2009-04-02 Microsoft Corporation Intelligent network address lookup service
US9110597B2 (en) * 2007-12-10 2015-08-18 Hewlett-Packard Development Company, L.P. Data processing method and system
US20090150577A1 (en) * 2007-12-10 2009-06-11 Sakshi Chaitanya Veni Data Processing Method And System
US8510451B2 (en) * 2008-04-04 2013-08-13 Canon Kabushiki Kaisha Session management system and method of controlling the same
JP2009266202A (en) * 2008-04-04 2009-11-12 Canon Inc Session management system, method of controlling the same, and client terminal
US20090254664A1 (en) * 2008-04-04 2009-10-08 Canon Kabushiki Kaisha Session management system and method of controlling the same
JP2013118663A (en) * 2008-04-04 2013-06-13 Canon Inc Information processing apparatus, control method therefor and program
US20110047291A1 (en) * 2009-01-26 2011-02-24 Tomoki Ishii Relay device, control method, and program
US8392607B2 (en) * 2009-01-26 2013-03-05 Panasonic Corporation Relay device, control method, and program
US20120005319A1 (en) * 2010-07-01 2012-01-05 Raytheon Company Dynamic Modification of the Address of a Proxy
US8407324B2 (en) * 2010-07-01 2013-03-26 Raytheon Company Dynamic modification of the address of a proxy
US8549148B2 (en) 2010-10-15 2013-10-01 Brocade Communications Systems, Inc. Domain name system security extensions (DNSSEC) for global server load balancing
US9338182B2 (en) 2010-10-15 2016-05-10 Brocade Communications Systems, Inc. Domain name system security extensions (DNSSEC) for global server load balancing
US20120297197A1 (en) * 2011-05-16 2012-11-22 Norman Yale Dynamic Domain Name Server Console for Disaster Recovery Server Management
US9060038B2 (en) * 2011-05-16 2015-06-16 At&T Intellectual Property I, L.P. Dynamic domain name server console for disaster recovery server management
US9264358B2 (en) * 2011-09-28 2016-02-16 Amazon Technologies, Inc. Alias resource record sets
US8886750B1 (en) * 2011-09-28 2014-11-11 Amazon Technologies, Inc. Alias resource record sets
US20150134848A1 (en) * 2011-09-28 2015-05-14 Amazon Technologies, Inc. Alias resource record sets
US20130159497A1 (en) * 2011-12-16 2013-06-20 Microsoft Corporation Heuristic-Based Rejection of Computing Resource Requests
US10320837B2 (en) * 2012-11-07 2019-06-11 International Business Machines Corporation Defense against DNS DoS attack
US10715480B2 (en) 2013-09-27 2020-07-14 Fastly, Inc. Content node network address selection for content delivery
US20150095516A1 (en) * 2013-09-27 2015-04-02 Fastly, Inc. Content node network address selection for content delivery
US10097503B2 (en) * 2013-09-27 2018-10-09 Fastly, Inc. Content node network address selection for content delivery
US11336614B2 (en) * 2013-09-27 2022-05-17 Fastly, Inc. Content node network address selection for content delivery
US10637823B2 (en) 2013-12-26 2020-04-28 Fastly, Inc. Content node selection based on classless prefix
EP3087703A4 (en) * 2013-12-26 2017-07-05 Fastly, Inc. Content node selection based on classless prefix
US20150188881A1 (en) * 2013-12-26 2015-07-02 Fastly, Inc. Content node selection based on classless prefix
US9912631B2 (en) * 2013-12-26 2018-03-06 Fastly, Inc. Content node selection based on classless prefix
US11349805B2 (en) 2013-12-26 2022-05-31 Fastly, Inc. Content node selection based on classless prefix
WO2015112206A1 (en) * 2014-01-21 2015-07-30 Telecommunication Systems, Inc. Intelligent ip resolver
US10700969B2 (en) * 2014-02-04 2020-06-30 Fastly, Inc. Communication path selection for content delivery
US20160112500A1 (en) * 2014-10-21 2016-04-21 Samsung Sds Co., Ltd. Global server load balancer apparatus and method for dynamically controlling time-to-live
US9954941B2 (en) * 2014-10-21 2018-04-24 Samsung Sds Co., Ltd. Global server load balancer apparatus and method for dynamically controlling time-to-live
US20180270111A1 (en) * 2015-01-29 2018-09-20 Nec Corporation Data file registration management system, method, management apparatus, and recording medium
US10469313B2 (en) * 2015-01-29 2019-11-05 Nec Corporation Data file registration management system, method, management apparatus, and recording medium
CN106210159A (en) * 2015-05-07 2016-12-07 阿里巴巴集团控股有限公司 A kind of domain name analytic method and equipment
KR20170137829A (en) * 2015-05-12 2017-12-13 지티이 코포레이션 METHOD, APPARATUS, PROGRAM, AND COMPUTER-READABLE RECORDING MEDIUM
KR102090013B1 (en) * 2015-05-12 2020-03-18 지티이 코포레이션 Domain name system DNS resolution processing methods, devices, programs and computer readable media
CN107231446A (en) * 2016-03-23 2017-10-03 北京京东尚科信息技术有限公司 Synchronous IP collocation methods and device
KR102333144B1 (en) * 2017-06-16 2021-11-30 삼성전자주식회사 Apparatus and method for controlling of connection in communication system
KR20180137254A (en) * 2017-06-16 2018-12-27 삼성전자주식회사 Apparatus and method for controlling of connection in communication system
EP3416356A1 (en) * 2017-06-16 2018-12-19 Samsung Electronics Co., Ltd. Apparatus and method for controlling connection using dns in communication system
US20180367619A1 (en) * 2017-06-16 2018-12-20 Samsung Electronics Co., Ltd Apparatus and method for controlling connection in communication system
US10778780B2 (en) 2017-06-16 2020-09-15 Samsung Electronics Co., Ltd. Apparatus and method for controlling connection in communication system
CN109150953A (en) * 2017-06-16 2019-01-04 三星电子株式会社 The device and method for controlling the connection in communication system
US10666603B2 (en) * 2017-07-13 2020-05-26 T-Mobile Usa, Inc. Optimizing routing of access to network domains via a wireless communication network
US20190020620A1 (en) * 2017-07-13 2019-01-17 T-Mobile Usa, Inc. Optimizing routing of access to network domains via a wireless communication network
US10841320B2 (en) * 2017-08-08 2020-11-17 International Business Machines Corporation Identifying command and control endpoint used by domain generation algorithm (DGA) malware
US20190364059A1 (en) * 2017-08-08 2019-11-28 International Business Machines Corporation Identifying command and control endpoint used by domain generation algorithm (DGA) malware
US10362044B2 (en) * 2017-08-08 2019-07-23 International Business Machines Corporation Identifying command and control endpoint used by domain generation algorithm (DGA) malware
CN109246227A (en) * 2018-09-26 2019-01-18 北京达佳互联信息技术有限公司 A kind of data request method, device, terminal device and storage medium
CN114285822A (en) * 2021-12-15 2022-04-05 中国银联股份有限公司 Domain name resolution server switching method and device
CN114553828A (en) * 2022-02-24 2022-05-27 中国人民解放军国防科技大学 DNS operation and maintenance management method, device, equipment and medium
US20230421471A1 (en) * 2022-06-28 2023-12-28 Citrix Systems, Inc. Optimizing selection of zero trust network access cloud edge nodes for internal application delivery
US11924081B2 (en) * 2022-06-28 2024-03-05 Citrix Systems, Inc. Optimizing selection of zero trust network access cloud edge nodes for internal application delivery

Also Published As

Publication number Publication date
US20090182884A1 (en) 2009-07-16
US7877510B2 (en) 2011-01-25

Similar Documents

Publication Publication Date Title
US7877510B2 (en) Domain name resolution making IP address selections in response to connection status when multiple connections are present
US9231853B2 (en) Load balancing
EP3643051B1 (en) Dns resolution using link-level capacity of destination systems
US6718359B2 (en) Load balancing
US9130954B2 (en) Distributed health check for global server load balancing
US7284055B1 (en) Method and system for network redirecting
US10979387B2 (en) Systems and methods for utilization of anycast techniques in a DNS architecture
EP1430651B1 (en) Adaptive node selection
JP4160506B2 (en) Configurable adaptive wide area traffic control and management
US6304913B1 (en) Internet system and method for selecting a closest server from a plurality of alternative servers
EP2652924B1 (en) Synchronizing state among load balancer components
US8423672B2 (en) Domain name resolution using a distributed DNS network
US7441045B2 (en) Method and system for balancing load distribution on a wide area network
US9225775B2 (en) Global server load balancing
US6397260B1 (en) Automatic load sharing for network routers
US6578066B1 (en) Distributed load-balancing internet servers
US7269143B2 (en) Combining routers to increase concurrency and redundancy in external network access
US20100011120A1 (en) Canonical name (cname) handling for global server load balancing
JP2005537687A5 (en)
Tomic et al. Implementation and efficiency analysis of composite DNS-metric for dynamic server selection
WO2024065424A1 (en) Link optimization method and system

Legal Events

Date Code Title Description
AS Assignment

Owner name: RAGULA SYSTEMS (FATPIPE NETWORKS), UTAH

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:DATTA, SANCHAITA;BHASKAR, RAGULA;REEL/FRAME:012347/0443

Effective date: 20020124

STCB Information on status: application discontinuation

Free format text: ABANDONED -- AFTER EXAMINER'S ANSWER OR BOARD OF APPEALS DECISION

AS Assignment

Owner name: FATPIPE NETWORKS INDIA LIMITED, INDIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:DATTA, SANCHAITA;BHASKAR, RAGULA;RAGULA SYSTEMS (D/B/A/ FATPIPE NETWORKS);REEL/FRAME:022835/0994

Effective date: 20090618