IP Library Granted Patent US 11,323,414
Granted Patent B2
US 11,323,414 · App. 16/533,191 · Granted May 3, 2022

Managing domain name system (DNS) record cache across multiple DNS servers using multicast communication

Inventors: Marek Vavrusa (San Francisco, CA); Anbang Wen (San Francisco, CA)
Assignee: CLOUDFLARE, INC.
H04L61/2046H04L12/18H04L61/1511H04L61/1552H04L61/2069H04L67/1036H04L67/2842
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,323,414
App. No.
16/533,191
Granted
May 3, 2022
Kind
B2
Abstract

A Domain Name System (DNS) resolver node receives a first DNS query from a first client device. The resolver node determines that it cannot answer the query using its local cache so it performs a recursive query to obtain the answer. The answer is sent to the first client and stored in its local cache. The resolver node further transmits the answer to multiple other resolver nodes that are part of the same cluster so they can update their respective local cache with the information. Upon receiving a message from another resolver node that includes a set of resource record(s) not in its local cache, the resolver node stores that set of resource record(s) in its local cache so that it can locally answer subsequent requests for those resource record(s) locally.

Claims (68)

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

receiving, at the resolver node in a data center, a first multicast message on a multicast interface from one of a plurality of other resolver nodes, wherein the resolver node and each one of the plurality of other resolver nodes are part of a same multicast group, and wherein at least some of the plurality of other resolver nodes are in a different data center, the first multicast message including a first set of DNS resource records, the first set of DNS resource records including DNS resource records responsive to a query received by the one of the plurality of other resolver nodes and any other DNS resource records in a cache local to the one of the plurality of other resolver nodes;

determining that the first set of DNS resource records included in the first multicast message is not included in a cache local to the resolver node;

storing the first set of DNS resource records in the cache local to the resolver node;

receiving a first DNS query from a client device;

determining that the stored first set of DNS resource records in the cache local to the resolver node answers the first DNS query;

generating a first answer to the first DNS query using the stored first set of DNS resource records in the cache local to the resolver node; and

transmitting the generated first answer to the first DNS query to the client device.

2. The method of claim 1 , further comprising:

receiving a second DNS query from a second client device;

determining that an answer to the second DNS query cannot be currently generated using the cache local to the resolver node;

performing a recursive query with a set of one or more other authoritative nameservers to obtain a second answer to the second DNS query, wherein the second answer includes a second set of DNS resource records;

storing the second set of DNS resource records in the cache local to the resolver node;

transmitting the second answer to the second client device; and

transmitting a second multicast message to the multicast interface in which each one of the plurality of other resolver nodes are listening, the second multicast message including the second set of DNS resource records.

3. The method of claim 2 , further comprising:

wherein the second set of DNS resource records includes a signature record that corresponds with another resource record; and

responsive to determining that the second multicast message exceeds a maximum transmission unit (MTU) size, ensuring that the signature record and the corresponding resource record are sent in a same packet.

4. The method of claim 2 , wherein determining that the answer to the second DNS query cannot be currently generated using the cache local to the resolver node includes determining that a requested resource record is not in the cache or that a TTL value of the requested resource record has expired.

5. The method of claim 1 , wherein the resolver node and each one of the plurality of other resolver nodes are any casted to a same IP address.

6. The method of claim 1 , wherein the resolver node and each one of the plurality of other resolver nodes are part of a same data center.

7. The method of claim 1 , wherein the resolver node and each one of the plurality of other resolver nodes are part of different data centers.

8. A non-transitory machine-readable storage medium that stores instructions, that when executed by a processor of a Domain Name System (DNS) resolver node causes said processor to perform operations comprising:

receiving, at the resolver node in a data center, a first multicast message on a multicast interface from one of a plurality of other resolver nodes, wherein the resolver node and each one of the plurality of other resolver nodes are part of a same multicast group, and wherein at least some of the plurality of other resolver nodes are in a different data center, the first multicast message including a first set of DNS resource records, the first set of DNS resource records including DNS resource records responsive to a query received by the one of the plurality of other resolver nodes and any other DNS resource records in a cache local to the one of the plurality of other resolver nodes;

determining that the first set of DNS resource records included in the first multicast message is not included in a cache local to the resolver node;

storing the first set of DNS resource records in the cache local to the resolver node;

receiving a first DNS query from a client device;

determining that the stored first set of DNS resource records in the cache local to the resolver node answers the first DNS query;

generating a first answer to the first DNS query using the stored first set of DNS resource records in the cache local to the resolver node; and

transmitting the generated first answer to the first DNS query to the client device.

9. The non-transitory machine-readable storage medium of claim 8 , that further stores instructions that, when executed by the processor of the resolver node causes said processor to further perform the operations comprising:

receiving a second DNS query from a second client device;

determining that an answer to the second DNS query cannot be currently generated using the cache local to the resolver node;

performing a recursive query with a set of one or more other authoritative nameservers to obtain a second answer to the second DNS query, wherein the second answer includes a second set of DNS resource records;

storing the second set of DNS resource records in the cache local to the resolver node;

transmitting the second answer to the second client device; and

transmitting a second multicast message to the multicast interface in which each one of the plurality of other resolver nodes are listening, the second multicast message including the second set of DNS resource records.

10. The non-transitory machine-readable storage medium of claim 9 , that further stores instructions that, when executed by the processor of the resolver node causes said processor to further perform the operations comprising:

wherein the second set of DNS resource records includes a signature record that corresponds with another resource record; and

responsive to determining that the second multicast message exceeds a maximum transmission unit (MTU) size, ensuring that the signature record and the corresponding resource record are sent in a same packet.

11. The non-transitory machine-readable storage medium of claim 9 , wherein determining that the answer to the second DNS query cannot be currently generated using the cache local to the resolver node includes determining that a requested resource record is not in the cache or that a TTL value of the requested resource record has expired.

12. The non-transitory machine-readable storage medium of claim 8 , wherein the resolver node and each one of the plurality of other resolver nodes are any casted to a same IP address.

13. The non-transitory machine-readable storage medium of claim 8 , wherein the resolver node and each one of the plurality of other resolver nodes are part of a same data center.

14. The non-transitory machine-readable storage medium of claim 8 , wherein the resolver node and each one of the plurality of other resolver nodes are part of different data centers.

15. A Domain Name System (DNS) resolver node, comprising:

a processor; and

a non-transitory machine-readable storage medium that provides instructions that, when executed by the processor, causes the resolver node to perform operations comprising:

receive a first multicast message on a multicast interface from one of a plurality of other resolver nodes, wherein the resolver node and each one of the plurality of other resolver nodes are part of a same multicast group, wherein the resolver node is in a data center, and wherein at least some of the plurality of other resolver nodes are in a different data center, the first multicast message including a first set of DNS resource records, the first set of DNS resource records including DNS resource records responsive to a query received by the one of the plurality of other resolver nodes and any other DNS resource records in a cache local to the one of the plurality of other resolver nodes;

determine that the first set of DNS resource records included in the first multicast message is not included in a cache local to the resolver node;

store the first set of DNS resource records in the cache local to the resolver node;

receive a first DNS query from a client device;

determine that the stored first set of DNS resource records in the cache local to the resolver node answers the first DNS query;

generate a first answer to the first DNS query using the stored first set of DNS resource records in the cache local to the resolver node; and

transmit the generated first answer to the first DNS query to the client device.

16. The resolver node of claim 15 , that further stores instructions that, when executed by the processor of the resolver node causes said processor to further perform the operations comprising:

receiving a second DNS query from a second client device;

determining that an answer to the second DNS query cannot be currently generated using the cache local to the resolver node;

performing a recursive query with a set of one or more other authoritative nameservers to obtain a second answer to the second DNS query, wherein the second answer includes a second set of DNS resource records;

storing the second set of DNS resource records in the cache local to the resolver node;

transmitting the second answer to the second client device; and

transmitting a second multicast message to the multicast interface in which each one of the plurality of other resolver nodes are listening, the second multicast message including the second set of DNS resource records.

17. The resolver node of claim 16 , wherein the non-transitory machine-readable storage medium further stores instructions that, when executed by the processor of the resolver node causes said processor to further perform the operations comprising:

wherein the second set of DNS resource records is to include a signature record that corresponds with another resource record; and

responsive to a determination that the second multicast message exceeds a maximum transmission unit (MTU) size, ensure that the signature record and the corresponding resource record are sent in a same packet.

18. The resolver node of claim 16 , wherein determining that the answer to the second DNS query cannot be currently generated using the cache local to the resolver node includes determining that a requested resource record is not in the cache or that a TTL value of the requested resource record has expired.

19. The resolver node of claim 15 , wherein the resolver node and each one of the plurality of other resolver nodes are any casted to a same IP address.

20. The resolver node of claim 15 , wherein the resolver node and each one of the plurality of other resolver nodes are part of a same data center.

21. The resolver node of claim 15 , wherein the resolver node and each one of the plurality of other resolver nodes are part of different data centers.

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 Aug 6, 2019
From: VAVRUSA, MAREK; WEN, ANBANG
To: CLOUDFLARE, INC.
Reel/Frame 049980/0594 →
Continuity (3)
Continuation 16208438 · Dec 3, 2018
Provisional Application 62651713 · Apr 2, 2018
Related Publication 20190364012A1 · Nov 28, 2019
Cited By (2)
US 12,483,861 US 12,652,266