IP Library Granted Patent US 11,647,008
Granted Patent B2
US 11,647,008 · App. 15/961,632 · Granted May 9, 2023

Generating a negative answer to a domain name system query that indicates resource records as existing for the domain name regardless of whether those resource records actually exist

Inventors: Daniel Morsing (London, GB); Marek Majkowski (London, GB); Nicholas Thomas Sullivan (San Francisco, CA); Olafur Gudmundsson (Chevy Chase, MD); Filippo Valsorda (Tortona, IT)
Assignee: CLOUDFLARE, INC.
H04L63/08H04L61/4511H04L63/12H04L67/01H04L67/10H04L67/1036
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,647,008
App. No.
15/961,632
Granted
May 9, 2023
Kind
B2
Abstract

A DNS server receives, from a client device, a DNS query for a resource record type at a domain name. The DNS server determines that the resource record type does not exist at the domain name and generates an answer that indicates that the queried resource record type does not exist at the domain name and also indicates that a plurality of other resource record types exist at the domain name regardless of whether those plurality of other resource record types actually exist at the domain name. The DNS server transmits the generated answer to the client device.

Claims (59)

1. A method in a Domain Name System (DNS) server, comprising:

receiving, from a client device, a first DNS query for a first resource record type at a first domain name;

determining that the first domain name exists but the queried first resource record type does not exist at the first domain name;

in response to determining that the first domain name exists but the queried first resource record type does not exist at the first domain name:

generating a first answer that indicates that the queried first resource record type does not exist at the first domain name, wherein the first answer also indicates that a plurality of other resource record types, with an exception of the queried first resource record type, do exist at the first domain name regardless of whether the plurality of other resource record types actually exist at the first domain name, and wherein the plurality of other resource record types is a predefined set of resource record types, and

transmitting the generated first answer to the client device;

receiving, from the client device, a second DNS query for a second resource record type at a second domain name;

determining that the second domain name does not exist; and

in response to determining that the second domain name does not exist:

transmitting, to the client device, a second answer that indicates that the second domain name does not exist.

2. The method of claim 1 , wherein generating the first answer includes generating a NextSECure (NSEC) record that indicates that the queried first resource record type does not exist at the first domain name and also indicates that the plurality of other resource record types, with the exception of the queried first resource record type, do exist at the first domain name regardless of whether those plurality of other resource record types actually exist at the first domain name.

3. The method of claim 2 , wherein the NSEC record includes a type bit maps field, and wherein generating the NSEC record includes setting a bit in the type bit maps field for each of the plurality of other resource record types and not for the queried first resource record type.

4. The method of claim 1 , wherein determining that the first domain name exists but the queried first resource record type does not exist at the first domain name includes:

transmitting a third DNS query for the first resource record type at the first domain name, and

receiving a NODATA response to the third DNS query.

5. The method of claim 1 , wherein the DNS server is a proxy DNS server, wherein the DNS server receives the first DNS query as a result of a first name server of first origin DNS server for the first domain name being changed to point to the proxy DNS server, and wherein the DNS server receives the second DNS query as a result of a second name server of a second origin DNS server for the second domain name being changed to point to the proxy DNS server.

6. The method of claim 1 , wherein determining that the second domain name does not exist includes:

transmitting a third DNS query for the second resource record type at the second domain name, and

receiving a response to the third DNS query that includes a NXDOMAIN record.

7. The method of claim 1 , wherein the predefined set of resource record types includes all resource record types with the exception of the queried first resource record type.

8. An apparatus comprising:

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

receive, from a client device, a first DNS query for a first resource record type at a first domain name;

in response to determining that the first domain name exists but the queried first resource record type does not exist at the first domain name:

generate a first answer that indicates that the queried first resource record type does not exist at the first domain name, wherein the first answer also indicates that a plurality of other resource record types, with an exception of the queried first resource record type, do exist at the first domain name regardless of whether the plurality of other resource record types actually exist at the first domain name, and wherein the plurality of other resource record types is a predefined set of resource record types, and

transmit the generated first answer to the client device;

receive, from the client device, a second DNS query for a second resource record type at a second domain name;

determine that the second domain name does not exist; and

in response to determining that the second domain name does not exist:

transmit, to the client device, a second answer that indicates that the second domain name does not exist.

9. The apparatus of claim 8 , wherein generation of the first answer includes the set of processors to generate a NextSECure (NSEC) record that indicates that the queried first resource record type does not exist at the first domain name and also indicates that the plurality of other resource record types, with the exception of the queried first resource record type, do exist at the first domain name regardless of whether those plurality of other resource record types actually exist at the first domain name.

10. The apparatus of claim 9 , wherein the NSEC record includes a type bit maps field, and wherein generation of the NSEC record includes the set of processors to set a bit in the type bit maps field for each of the plurality of other resource record types and not for the queried first resource record type.

11. The apparatus of claim 8 , wherein determining that the first domain name exists but the queried first resource record type does not exist at the first domain name further causes the set of processors to:

transmit a third DNS query for the first resource record type at the first domain name; and

receive a NODATA response to the third DNS query.

12. The apparatus of claim 8 , wherein the DNS server is a proxy DNS server, wherein the DNS server receives the first DNS query as a result of a first name server of first origin DNS server for the first domain name being changed to point to the proxy DNS server, and wherein the DNS server receives the second DNS query as a result of a second name server of a second origin DNS server for the second domain name being changed to point to the proxy DNS server.

13. The apparatus of claim 8 , wherein determining that the second domain name does not exist includes:

transmitting a third DNS query for the second resource record type at the second domain name, and

receiving a response to the third DNS query that includes a NXDOMAIN record.

14. The apparatus of claim 8 , wherein the predefined set of resource record types includes all resource record types with the exception of the queried first resource record type.

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

receiving, from a client device, a first DNS query for a first resource record type at a first domain name;

in response to determining that the first domain name exists but the queried first resource record type does not exist at the first domain name:

generating a first answer that indicates that the queried first resource record type does not exist at the first domain name, wherein the first answer also indicates that a plurality of other resource record types, with an exception of the queried first resource record type, do exist at the first domain name regardless of whether the plurality of other resource record types actually exist at the first domain name, and wherein the plurality of other resource record types is a predefined set of resource record types, and

transmitting the generated first answer to the client device;

receiving, from the client device, a second DNS query for a second resource record type at a second domain name;

determining that the second domain name does not exist; and

in response to determining that the second domain name does not exist:

transmitting, to the client device, a second answer that indicates that the second domain name does not exist.

16. The non-transitory machine-readable storage medium of claim 15 , wherein generating the first answer includes generating a NextSECure (NSEC) record that indicates that the queried first resource record type does not exist at the first domain name and also indicates that the plurality of other resource record types, with the exception of the queried first resource record type, do exist at the first domain name regardless of whether those plurality of other resource record types actually exist at the first domain name.

17. The non-transitory machine-readable storage medium of claim 16 , wherein the NSEC record includes a type bit maps field, and wherein generating the NSEC record includes setting a bit in the type bit maps field for each of the plurality of other resource record types and not for the queried first resource record type.

18. The non-transitory machine-readable storage medium of claim 15 , wherein determining that the first domain name exists but the queried first resource record type does not exist at the first domain name includes:

transmitting a third DNS query for the first resource record type at the first domain name; and

receiving a NODATA response to the third DNS query.

19. The non-transitory machine-readable storage medium of claim 15 , wherein the DNS server is a proxy DNS server, wherein the DNS server receives the first DNS query as a result of a first name server of first origin DNS server for the first domain name being changed to point to the proxy DNS server, and wherein the DNS server receives the second DNS query as a result of a second name server of a second origin DNS server for the second domain name being changed to point to the proxy DNS server.

20. The non-transitory machine-readable storage medium of claim 15 , wherein determining that the second domain name does not exist includes:

transmitting a third DNS query for the second resource record type at the second domain name, and

receiving a response to the third DNS query that includes a NXDOMAIN record.

21. The transitory machine-readable storage medium of claim 15 , wherein the predefined set of resource record types includes all resource record types with the exception of the queried first resource record type.

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 Mar 31, 2023
From: MORSING, DANIEL; MAJKOWSKI, MAREK; SULLIVAN, NICHOLAS THOMAS; GUDMUNDSSON, OLAFUR; VALSORDA, FILIPPO
To: CLOUDFLARE, INC.
Reel/Frame 063195/0293 →
Continuity (3)
Continuation 15148856 · May 6, 2016
Provisional Application 62159211 · May 8, 2015
Related Publication 20180241733A1 · Aug 23, 2018