Data sharing method for recursive DNS servers
First Claim
Patent Images
1. A method for responding to a client DNS query comprising:
- receiving a DNS query from a client at a first DNS server system;
obtaining a DNS answer to the DNS query;
storing the DNS answer in a first local cache of the first DNS server system;
selecting a subset of DNS answers on the first local cache to be shared with a second DNS server system, wherein the subset includes at least the DNS answer to the DNS query, wherein the selecting is based on one or more of the following;
a TTL value of the DNS answer, a popularity of the DNS query, an amount of time or processing resources used to process the DNS query;
sharing the subset of DNS answers with the second DNS server system;
storing the subset of DNS answers on a second local cache of the second DNS server system; and
returning the DNS answer to the client.
3 Assignments
0 Petitions
Accused Products
Abstract
This disclosure describes systems, methods, and apparatus for sharing DNS answers between DNS server systems within a DNS cluster, between proxy servers, and/or between DNS server systems of different DNS clusters. When a DNS answer is obtained by a DNS server system, the answer can be shared with peer DNS server systems within a same DNS cluster or with DNS server systems having a logical relation to the first DNS server system (e.g., geographic relationship), but being in different DNS clusters. Proxy servers may also mediate communication between a client and the DNS clusters. These proxies can also include the ability to share DNS answers between each other.
-
Citations
25 Claims
-
1. A method for responding to a client DNS query comprising:
-
receiving a DNS query from a client at a first DNS server system; obtaining a DNS answer to the DNS query; storing the DNS answer in a first local cache of the first DNS server system; selecting a subset of DNS answers on the first local cache to be shared with a second DNS server system, wherein the subset includes at least the DNS answer to the DNS query, wherein the selecting is based on one or more of the following;
a TTL value of the DNS answer, a popularity of the DNS query, an amount of time or processing resources used to process the DNS query;sharing the subset of DNS answers with the second DNS server system; storing the subset of DNS answers on a second local cache of the second DNS server system; and returning the DNS answer to the client. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A DNS server cluster comprising:
-
a first peer DNS server system having a first local cache; a second peer DNS server system that; receives a DNS query from a client; checks a second local cache of the second peer DNS server system for a DNS answer to the DNS query; and
not finding the DNS answer,passes the DNS query to at least one remote DNS server system; receives the DNS answer from the remote DNS server system; passes the DNS answer to the client in response to the DNS query; stores the DNS answer in the second local cache of the second peer DNS server system; selects a subset of DNS answers in the second local cache of the second peer DNS server system to be shared with the first peer DNS server system, wherein the subset includes at least the DNS answer, and wherein the selecting is based on one or more of the following;
a TTL value of the DNS answer, a popularity of the DNS query, an amount of time or processing resources used to process the DNS query; andshares the subset of DNS answers with the first peer DNS server system, wherein the subset is stored on the first local cache of the first peer DNS server system. - View Dependent Claims (9, 10)
-
-
11. A sharing module of a first DNS server system comprising:
-
a query processing module that; receives a first DNS query for a first DNS answer from a first client; passes the first DNS query to a remote DNS server system; receives the first DNS answer from the remote DNS server system; returns the first DNS answer to the first client in response to the first DNS query; stores the first DNS answer in a first local cache of the first DNS server system; and a transmission module that shares the first DNS answer with at least a second DNS server system as long as the first DNS answer matches one or more of the following;
a TTL value of the DNS answer, a popularity of the DNS query, an amount of time or processing resources used to process the DNS query; anda receiving module that; receives a second DNS answer from a third DNS server system; and stores the second DNS answer in the first local cache of the first DNS server system. - View Dependent Claims (12, 13, 14, 15, 16)
-
-
17. A sharing module of a first proxy server comprising:
-
a query processing module that; receives a first DNS query for a first DNS answer from a first client; directs the first DNS query to a first of a plurality of DNS server systems in a DNS cluster; receives the first DNS answer from the first of the plurality of DNS server systems; stores the first DNS answer in a first local cache of the first proxy server; selects a subset of DNS answers on the first local cache to be shared with a second proxy server, wherein the subset includes at least the first DNS answer, wherein the selecting is based on one or more of the following;
a TTL value of the DNS answer, a popularity of the DNS query, an amount of time or processing resources used to process the DNS query; andreturns the first DNS answer to the first client in response to the first DNS query; and a transmission module that shares the subset of DNS answers with at least the second proxy server. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25)
-
Specification