IP Library › Granted Patent US 10,530,738
Granted Patent B2
US 10,530,738 · App. 14/454,691 · Granted Jan 7, 2020

DNS resolution replay for bare domain names that map to “A” records

Inventor: Martin Kagan (Portland, OR)
Assignee: Citrix Systems, Inc.
H04L61/1511
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 10,530,738
App. No.
14/454,691
Granted
Jan 7, 2020
Kind
B2
Abstract

The technology disclosed relates to DNS resolution of bare domain names of the form “myexample.com”. A bare domain name is also called zone apex or naked domain. In particular, bare domains are resolved by look-up of “A” records, per the IETF standards for DNS resolution. Technology is disclosed that improves resolution of bare domains to edge servers or other devices of a content delivery network or cloud-based content provider (collectively referred to as CDNs).

Claims (63)

1. A method of resolving a first DNS request for a bare domain requested by a web client, the method comprising:

at an access history monitor:

maintaining an access history database;

collecting data reflecting subdomain IP addresses to which second qualified DNS requests for subdomains of the bare domain have been resolved; and

updating the access history database with the collected data;

at a registered authoritative DNS server:

receiving the first DNS request for the bare domain requested by the web client, wherein the bare domain is an apex zone that cannot have a canonical name (CNAME) DNS record;

determining a first target CDN for the first DNS request, wherein the collected data of the access history database includes data reflecting first subdomain IP addresses returned by the first target CDN for one or more of the subdomains of the bare domain;

obtaining, from the access history monitor, one or more of the first subdomain IP addresses; and

returning the one or more first subdomain IP addresses responsive to the first DNS request;

wherein the bare domain is resolved to subdomain IP addresses of the first target CDN, in a CDN-agnostic manner.

2. The method of claim 1 , wherein the determining a first target CDN is based at least partly on a location of the web client.

3. The method of claim 1 , wherein the determining a first target CDN is based at least partly on a request location that is an approximate physical location of the web client.

4. The method of claim 1 , wherein the determining a first target CDN is based at least partly on a request location that is a logical network location within a service provider's Autonomous System IP address block.

5. The method of claim 1 , further comprising:

determining a request location from which the first DNS request originated;

determining a plurality of candidate CDNs;

obtaining recent performance data of the plurality of candidate CDNs for the request location and the bare domain; and

selecting, from the plurality of candidate CDNs, the first target CDN based, at least in part, on the recent performance data of the first target CDN.

6. The method of claim 1 , further including qualifying the obtained one or more first subdomain IP addresses as being operational before returning them.

7. The method of claim 1 , wherein the first subdomain IP addresses returned by the first target CDN are IP addresses of edge servers.

8. The method of claim 1 , wherein the collected data is obtained from survey code running on one or more clients.

9. The method of claim 1 , further comprising permuting an order of the obtained one or more first subdomain IP addresses before returning them.

10. The method of claim 1 , wherein the obtained one or more first subdomain IP addresses are exactly one IP address.

11. The method of claim 1 , wherein the first target CDN comprises a cloud-based content source.

12. The method of claim 1 , wherein the collecting is performed for the second qualified DNS requests for selected subdomains of the bare domain, and the collecting is not performed for third qualified DNS requests for other subdomains of the bare domain.

13. The method of claim 1 , further comprising selecting the one or more first subdomain IP addresses from a plurality of available subdomain IP addresses returned by the first target CDN for the one or more subdomains of the bare domain, based on performance of the available subdomain IP addresses to an approximate physical location of the web client.

14. An authoritative DNS server device comprising:

a request processor, memory coupled to the request processor and at least one port coupled to the processor, the memory tangibly embodying instructions that cause the request processor to:

link with a recent resolution history database that comprises data collected from survey code running on one or more clients, the collected data comprising IP addresses to which second qualified DNS requests for subdomains of one or more bare domains have been resolved, wherein each of the one or more bare domains is an apex zone that cannot have a canonical name (CNAME) DNS record;

receive at the port, from a resolver client, a first bare domain DNS request for a first bare domain of the one or more bare domains;

determine at least one target CDN for the first bare domain DNS request, wherein the collected data of the recent resolution history database includes data reflecting first subdomain IP addresses returned by the at least one target CDN in response to one or more of the second qualified DNS requests;

retrieve, from the recent resolution history database, one or more of the first subdomain IP addresses;

resolve the first bare domain to the one or more first subdomain IP addresses; and

return the one or more first subdomain IP addresses, responsive to the first bare domain DNS request;

wherein the authoritative DNS server is configured to operate in an environment where a client can seek to access a bare domain hosted on a plurality of CDN infrastructures.

15. The device of claim 14 , further including instructions to determine a requestor being served by the resolver client, and wherein the determining at least one target CDN is based at least partly on a location of the requestor.

16. The device of claim 14 , wherein the determining at least one target CDN is based at least partly on a request location that is a logical network location within a service provider's Autonomous System IP address block.

17. The device of claim 14 , further including instructions to:

determine a request location from which the first bare domain DNS request is received;

determine a plurality of candidate CDNs;

look up recent performance data of the plurality of candidate CDNs for the request location and the first bare domain; and

select, from the plurality of candidate CDNs, the at least one target CDN based, at least in part, on the recent performance data of the at least one target CDN.

18. The device of claim 14 , wherein the first subdomain IP addresses are IP addresses of edge servers.

19. The authoritative DNS server device of claim 14 , wherein the determined at least one target CDN is exactly one CDN.

20. A non-transitory computer readable program product storing instructions that, when executed by at least one processor, cause the at least one processor to:

receive a bare domain DNS request for a first bare domain from a resolver client, wherein the first bare domain is an apex zone that does not have a canonical name (CNAME) DNS record;

determine a first target CDN for the first bare domain;

access a resolution history database that contains subdomain IP addresses previously returned by the first target CDN in response to qualified DNS requests for particular selected subdomains of the first bare domain, and that excludes subdomain IP addresses previously returned by the first target CDN in response to qualified DNS requests for other subdomains of the first bare domain;

resolve the first bare domain to one or more of the contained subdomain IP addresses; and

return the one or more subdomain IP addresses of the first target CDN responsive to the bare domain DNS request;

wherein the at least one processor is part of an authoritative DNS server.

21. The non-transitory computer readable program product of claim 20 , wherein the determining a first target CDN is based at least partly on a request location that is an approximate physical location associated with the bare domain DNS request.

22. The non-transitory computer readable program product of claim 20 , wherein the determining a first target CDN is based at least partly on a request location that is a logical network location within a service provider's Autonomous System IP address block.

23. The non-transitory computer readable program product of claim 20 , further including instructions causing the processor to qualify the first subdomain IP addresses as being operational before returning them.

24. The non-transitory computer readable program product of claim 20 , wherein entries in the recent resolution history database that lack corresponding entries within a last six hours are not returned by the processor.

25. The non-transitory computer readable program product of claim 20 , wherein the subdomain IP addresses previously returned by the target CDN are IP addresses of edge servers.

26. The non-transitory computer readable program product of claim 20 , wherein the resolution history database is maintained by a resolution history monitor that is coupled to and distinct from the authoritative DNS server.

27. The non-transitory computer readable program product of claim 20 , wherein the instructions for the determining a first target CDN, when executed, cause the processor to:

determine a request location associated with the bare domain DNS request;

determine a plurality of candidate CDNs;

obtain recent performance data of the plurality of candidate CDNs for the request location; and

select the first target CDN based, at least in part, on the recent performance data for the first target CDN.

Assignments (10)
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2018
From: CEDEXIS, INC.
To: CITRIX SYSTEMS, INC.
Reel/Frame 044894/0879 →
CORRECTION BY DECLARATION FOR REEL 34041/FRAME 872 Recorded Apr 25, 2017
From: CEDEXIS, INC.
To: CEDEXIS, INC.
Reel/Frame 042159/0579 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 27, 2014
From: RIBBLE, DAVID; HOWELL, CHARLES A.; WIGGERMANN, NEAL; HOOD, MICHAEL SCOTT; PELO, TRAVIS; AGDEPPA, ERIC D.; EMMONS, KIRSTEN M.
To: HILL-ROM SERVICES, INC.
Reel/Frame 034041/0872 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2014
From: KAGAN, MARTIN
To: CEDEXIS, INC.
Reel/Frame 033491/0624 →
Continuity (1)
Related Publication 20160043990A1 · Feb 11, 2016