IP Library Granted Patent US 11,159,479
Granted Patent B2
US 11,159,479 · App. 16/505,433 · Granted Oct 26, 2021

Domain name system CNAME record management

Inventors: Lee Hahn Holloway (Santa Cruz, CA); Ray Raymond Bejjani (San Francisco, CA); Dane Orion Knecht (San Francisco, CA); Matthew Browning Prince (San Francisco, CA); John Graham-Cumming (London, GB)
Assignee: CLOUDFLARE, INC.
H04L61/1511H04L61/1552
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 11,159,479
App. No.
16/505,433
Granted
Oct 26, 2021
Kind
B2
Abstract

A DNS name server manages CNAME records. The server receives a query for a first Address record for a fully qualified domain name from a requester. The server determines that the fully qualified domain name has a CNAME record, where the fully qualified domain name is a root domain. The server traverses a chain according to the CNAME record to locate a second Address record that includes an IP address. The server generates a response to the query that includes a third Address record for the fully qualified domain name that includes at least the IP address of the located second Address record. The server transmits the generated response to the requester.

Claims (44)

1. A method in a Domain Name System (DNS) name server for managing Canonical Name (CNAME) records, comprising:

receiving a query for a first Address record for a fully qualified domain name from a requester;

determining that the fully qualified domain name has a CNAME record, wherein the fully qualified domain name is a root domain;

traversing a CNAME chain according to the CNAME record to locate a second Address record at the end of the CNAME chain that includes an IP address;

generating a third Address record for the fully qualified domain name, the third Address record including at least the IP address of the located second Address record at the end of the CNAME chain;

generating a response to the query for the first Address record for the fully qualified domain name that includes the generated third Address record for the fully qualified domain name instead of the CNAME record; and

transmitting the generated response to the requester.

2. The method of claim 1 , wherein the generated response further includes a first Time to Live (TTL) value that is equivalent to a second TTL value of the located second Address record.

3. The method of claim 1 , wherein the generated response further includes a Time to Live (TTL) value that is equivalent to a longest TTL value in the CNAME chain.

4. The method of claim 1 , wherein the generated response further includes a Time to Live (TTL) value that is smaller than each other TTL value in the CNAME chain.

5. The method of claim 1 , further comprising, caching the generated response.

6. The method of claim 1 , wherein the DNS name server is an authoritative name server for the fully qualified domain name.

7. The method of claim 1 , wherein receiving the query for the first Address record for the fully qualified domain name from the requester comprises:

receiving the query from the requester, wherein the query is received from a different DNS name server.

8. An apparatus, comprising:

a Domain Name System (DNS) name server including a set of one or more processors and a set of one or more non-transitory computer-readable storage mediums storing instructions that, when executed by the set of processors, cause the set of processors to perform the following operations:

receive a query for a first Address record for a fully qualified domain name from a requester;

determine that the fully qualified domain name has a Canonical Name (CNAME) record, wherein the fully qualified domain name is a root domain;

traverse a CNAME chain according to the CNAME record to locate a second Address record at the end of the CNAME chain that includes an IP address;

generate a third Address record for the fully qualified domain name, the third Address record including at least the IP address of the located second Address record at the end of the CNAME chain;

generate a response to the query for the first Address record for the fully qualified domain name that includes the generated third Address record for the fully qualified domain name instead of the CNAME record; and

transmit the generated response to the requester.

9. The apparatus of claim 8 , wherein the generated response is further to include a first Time to Live (TTL) value that is equivalent to a second TTL value of the located second Address record.

10. The apparatus of claim 8 , wherein the generated response is further to include a Time to Live (TTL) value that is equivalent to a longest TTL value in the CNAME chain.

11. The apparatus of claim 8 , wherein the generated response is further to include a Time to Live (TTL) value that is smaller than each other TTL value in the CNAME chain.

12. The apparatus of claim 8 , wherein the set of one or more non-transitory computer-readable storage mediums further stores instructions that, when executed by the set of processors, cause the set of processors to cache the generated response.

13. The apparatus of claim 8 , wherein the DNS name server is an authoritative name server for the fully qualified domain name.

14. The apparatus of claim 8 , wherein receiving the query for the first Address record for the fully qualified domain name from the requester comprises:

receiving the query from the requester, wherein the query is received from a different DNS name server.

15. A non-transitory machine-readable storage medium that provides instructions that, when executed by a processor of a Domain Name System (DNS) name server, cause the processor to perform operations comprising:

receiving a query for a first Address record for a fully qualified domain name from a requester;

determining that the fully qualified domain name has a Canonical Name (CNAME) record, wherein the fully qualified domain name is a root domain;

traversing a CNAME chain according to the CNAME record to locate a second Address record at the end of the CNAME chain that includes an IP address;

generating a third Address record for the fully qualified domain name, the third Address record including at least the IP address of the located second Address record at the end of the CNAME chain;

generating a response to the query for the first Address record for the fully qualified domain name that includes the generated third Address record for the fully qualified domain name instead of the CNAME record; and

transmitting the generated response to the requester.

16. The non-transitory machine-readable storage medium of claim 15 , wherein the generated response further is to include a first Time to Live (TTL) value that is equivalent to a second TTL value of the located second Address record.

17. The non-transitory machine-readable storage medium of claim 15 , wherein the generated response further is to include a Time to Live (TTL) value that is equivalent to a longest TTL value in the CNAME chain.

18. The non-transitory machine-readable storage medium of claim 15 , wherein the generated response further is to include a Time to Live (TTL) value that is smaller than each other TTL value in the CNAME chain.

19. The non-transitory machine-readable storage medium of claim 15 , further storing instructions that, when executed by the processor, cause the processor to perform the following operation:

caching the generated response.

20. The non-transitory machine-readable storage medium of claim 15 , wherein the DNS name server is an authoritative name server for the fully qualified domain name.

21. The non-transitory machine-readable storage medium of claim 15 , wherein receiving the query for the first Address record for the fully qualified domain name from the requester comprises:

receiving the query from the requester, wherein the query is received from a different DNS name server.

Assignments (2)
SECURITY INTEREST Recorded May 20, 2024
From: CLOUDFLARE, INC.
To: CITIBANK, N.A.
Reel/Frame 067472/0246 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 8, 2019
From: HOLLOWAY, LEE HAHN; BEJJANI, RAY RAYMOND; KNECHT, DANE ORION; PRINCE, MATTHEW BROWNING; GRAHAM-CUMMING, JOHN
To: CLOUDFLARE, INC.
Reel/Frame 049692/0418 →
Continuity (4)
Continuation 16121320 · Sep 4, 2018
Continuation 14676631 · Apr 1, 2015
Provisional Application 61973811 · Apr 1, 2014
Related Publication 20190334855A1 · Oct 31, 2019
Cited By (1)
US 12,659,291