IP Library Granted Patent US 7,447,798
Granted Patent B2
US 7,447,798 · App. 10/774,445 · Granted Nov 4, 2008

Methods and systems for providing dynamic domain name system for inbound route control

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,447,798
App. No.
10/774,445
Granted
Nov 4, 2008
Kind
B2
Abstract

The present invention relates to methods and systems for providing dynamic domain name system (DNS) for inbound route control. For instance, the present invention provides a method that considers load data for each of the network locations that provide an application, such online content or a web site available at multiple geographically distinct data centers, as well as performance data for paths through the various network service providers that serve the locations where the application is available. The IP address that is delivered by the DNS is dynamically controlled to select which IP address, i.e., provider, provides the best path.

Claims (40)

1. A method for dynamically selecting a route in a data network to an application, wherein the application is available at a plurality of distinct network locations, each of the network locations served by at least one network service provider and a first one of the network locations served by a plurality of service providers, comprising:

receiving an access request for the application;

determining a virtual IP address for the application that is associated with one of the network service providers based upon load data for each of the network locations;

if the virtual IP address corresponds to the first network location, then analyzing performance data for a path through each of the network service providers serving the first network location; and

based on the performance data, selecting a path through a selected one of the network service providers serving the first network location;

if the virtual IP address is associated with the selected network service provider, then providing the virtual IP address in response to the access request; and

if the virtual IP address is not associated with the selected service provider, then providing an IP address that is associated with the selected service provider in response to the access request.

2. The method of claim 1 , wherein analyzing performance data for a path through each of the network service providers serving the first network location comprises:

analyzing performance data for paths associated with a local name server that sent the access request.

3. The method of claim 1 , wherein analyzing performance data for a path through each of the network service providers serving the at least one network location comprises:

analyzing performance data for paths associated with an address prefix associated with a client that originated the access request.

4. The method of claim 1 , wherein the performance data includes load data.

5. The method of claim 1 , further comprising:

if the virtual IP address corresponds to another one of the network locations, then selecting the network service provider associated with the virtual IP as the selected network service provider.

6. The method of claim 1 , wherein another one of the network locations is served by a plurality of service providers, further comprising:

if the virtual IP address corresponds to the other network location, then analyzing performance data for a path through each of the network service providers serving the other network location; and

based on the performance data, selecting a path through a selected one of the network service providers serving the other network location.

7. A computer-readable storage medium, having computer-executable instructions stored therein for carrying out the following steps:

receiving an access request for an application wherein the application is available at a plurality of distinct network locations, each of the network locations served by at least one network service provider and a first one of the network locations served by a plurality of service providers;

determining a virtual IP address for the application that is associated with one of the network service providers based upon load data for each of the network locations;

if the virtual IP address corresponds to the first network location, then

analyzing performance data for a path through each of the network service providers serving the first network location;

based on the performance data, selecting a path through a selected one of the network service providers serving the first network location; and

providing an IP address that is associated with the selected service provider in response to the access request; and

if the virtual IP address corresponds to another one of the network locations, then providing the virtual IP address in response to the access request.

8. The computer-readable storage medium of claim 7 , wherein analyzing performance data for a path through each of the network service providers serving the first network location comprises:

analyzing performance data for paths associated with a local name server that sent the access request.

9. The computer-readable storage medium of claim 7 , wherein analyzing performance data for a path through each of the network service providers serving the at least one network location comprises:

analyzing performance data for paths associated with an address prefix associated with a client that originated the access request.

10. The computer-readable storage medium of claim 7 , wherein the performance data includes load data.

11. A system for dynamically selecting a route in a data network to an application, comprising:

a plurality of distinct network locations, wherein the application is available at each of the network locations;

a plurality of network service providers, wherein a first network location is served by a first set of network service providers;

a plurality of load balancers, each load balancer associated with one of the network locations, wherein each load balancer monitors a load of its associated network location and communicates load information to the other load balancers and wherein a first load balancer is associated with the first network location;

a plurality of name server forwarders, each name server forwarder associated with a load balancer, wherein each name server forwarder requests address information from its associated load balancer and communicates with the other name server forwarders and wherein a first name server forwarder is associated with the first load balancer; and

a plurality of flow control platforms (FCPs), each FCP associated with a name server forwarder, wherein each FCP collects performance data for paths through the network service providers serving its associated network location and communicates the performance data to its associated name server forwarder and wherein a first FCP is associated with the first name server forwarder;

wherein the first name server forwarder responds to an access request for the application by requesting address information from the first load balancer, determines whether the address information provided by the load balancer identifies a network service provider in the first set of the network service providers and if so, analyzes performance data from the first FCP, and provides an address that identifies a selected one of the network service providers in the first set of network service providers based on the performance data received from the FCP.

12. The system of claim 11 , wherein at least one of the FCP uses active probing techniques to collect performance data for paths through the network service providers serving its associated network location.

13. The system of claim 11 , further comprising a plurality of local name servers in communication with the first name server.

14. The system of claim 13 , wherein the first name server includes a zone loop up table that associates a local name server with a zone file.

Assignments (11)
RELEASE OF SECURITY INTEREST Recorded May 10, 2022
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: INTERNAP HOLDING LLC
Reel/Frame 059884/0443 →
SECURITY INTEREST Recorded Sep 27, 2021
From: INTERNAP HOLDING LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 057615/0812 →
CHANGE OF NAME Recorded Dec 29, 2020
From: INTERNAP CORPORATION
To: INTERNAP HOLDING LLC
Reel/Frame 054868/0048 →
RELEASE OF SECURITY INTEREST Recorded May 11, 2020
From: JEFFERIES FINANCE LLC
To: INTERNAP CORPORATION
Reel/Frame 052628/0018 →
RELEASE OF PATENT SECURITY AGREEMENT RECORDED AT REEL 044547/FRAME 0029 Recorded May 8, 2020
From: JEFFERIES FINANCE LLC
To: INTERNAP CORPORATION
Reel/Frame 052617/0103 →
SECURITY INTEREST Recorded May 8, 2020
From: INTERNAP HOLDING LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 052616/0515 →
SECURITY INTEREST Recorded Jan 5, 2018
From: INTERNAP CORPORATION
To: JEFFERIES FINANCE LLC
Reel/Frame 044547/0029 →
RELEASE OF SECURITY INTEREST Recorded Apr 7, 2017
From: JEFFERIES FINANCE LLC
To: INTERNAP CORPORATION
Reel/Frame 041929/0328 →
CHANGE OF NAME Recorded Feb 16, 2015
From: INTERNAP NETWORK SERVICES CORPORATION
To: INTERNAP CORPORATION
Reel/Frame 035000/0349 →
SECURITY AGREEMENT Recorded Dec 5, 2013
From: INTERNAP NETWORK SERVICES CORPORATION
To: JEFFERIES FINANCE LLC (AS COLLATERAL AGENT)
Reel/Frame 031765/0527 →
RELEASE OF SECURITY INTEREST Recorded Dec 4, 2013
From: WELLS FARGO CAPITAL FINANCE, LLC (AS AGENT)
To: INTERNAP NETWORK SERVICES CORPORATION
Reel/Frame 031710/0635 →