Robust Domain Name Resolution
First Claim
1. A computer-implemented method of processing domain name system (DNS) requests, comprising:
- receiving at a recursive nameserver a request from a client for domain name information associated with a domain name;
determining whether a local cache contains a domain name record corresponding to the domain name;
if the local cache contains the domain name record corresponding to the domain name, determining whether the domain name record is expired;
in response to determining that the domain name record is expired, issuing one or more requests for the domain name information to one or more authoritative name servers; and
if the domain name information is not received from the one or more name nameservers, transmitting a DNS response to the client that includes information from the expired domain name record.
3 Assignments
0 Petitions
Accused Products
Abstract
A recursive DNS nameserver system and related domain name resolution techniques are disclosed. The DNS nameservers utilize a local cache having previously retrieved domain name resolution to avoid recursive resolution processes and the attendant DNS requests. If a matching record is found with a valid (not expired) TTL field, the nameserver returns the cached domain name information to the client. If the TTL for the record in the cache has expired and the nameserver is unable to resolve the domain name information using DNS requests to authoritative servers, the recursive DNS nameserver returns to the cache and accesses the resource record having an expired TTL. The nameserver generates a DNS response to the client device that includes the domain name information from the cached resource record. In various embodiments, subscriber information is utilized to resolve the requested domain name information in accordance with user-defined preferences.
189 Citations
34 Claims
-
1. A computer-implemented method of processing domain name system (DNS) requests, comprising:
-
receiving at a recursive nameserver a request from a client for domain name information associated with a domain name; determining whether a local cache contains a domain name record corresponding to the domain name; if the local cache contains the domain name record corresponding to the domain name, determining whether the domain name record is expired; in response to determining that the domain name record is expired, issuing one or more requests for the domain name information to one or more authoritative name servers; and if the domain name information is not received from the one or more name nameservers, transmitting a DNS response to the client that includes information from the expired domain name record. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A system for processing domain name system requests, comprising:
-
a communications interface configured to exchange data with a communications network; a local cache configured to store domain name information for domain names; one or more processors in communication with the communications interface and the local cache, the one or more processors configured to process a request for domain name information associated with a domain name by determining whether the local cache contains the requested domain name information in a domain name record, generating and transmitting a DNS response to the client with information from the domain name record in the local cache if a TTL field of the domain name record has not expired, generating and transmitting one or more DNS requests for the domain name information from one or more authoritative servers if the TTL field of the domain name record has expired, and if the one or more authoritative servers do not respond with the domain name information, generating and transmitting a DNS response to the client with information from the domain name record in the local cache having the expired TTL field. - View Dependent Claims (15, 16)
-
-
17. One or more processor readable storage devices having processor readable code stored thereon, the processor readable code programs one or more processors to perform a method comprising:
-
receiving at a recursive nameserver a request from a client for domain name information associated with a domain name; determining whether a local cache contains a domain name record corresponding to the domain name; if the local cache contains the domain name record corresponding to the domain name, determining whether the domain name record includes an expired TTL value; in response to an expired TTL value, issuing one or more requests for the domain name information to one or more authoritative name servers; and if the domain name information is not received from the one or more name nameservers, transmitting a DNS response to the client that includes information from the domain name record having an expired TTL value. - View Dependent Claims (18, 19)
-
-
20. A computer program product embodied on a computer readable medium containing instructions executable by one or more processors, the executable instructions comprising:
-
code for determining whether a local cache contains requested domain name information in a domain name record; code for generating and transmitting a DNS response to the client with information from the domain name record in the local cache if the domain name record is not expired; code for generating and transmitting one or more DNS requests for the domain name information to one or more authoritative servers if the domain name record is expired; and code for generating and transmitting a DNS response to the client with information from the expired domain name record if the one or more authoritative servers do not respond with the domain name information.
-
-
21. One or more processor readable storage devices having processor readable code stored thereon, the processor readable code for programming one or more processors to perform a method comprising:
-
storing subscriber information for a first client and a second client; receiving a request from the first client for domain name information of a first domain name; determining that a domain name record for the first domain name is expired and that one or more authoritative nameservers for the first domain name are unavailable; transmitting a first response with the domain name record to the first client in accordance with the subscriber information for the first client; and transmitting a second response without the domain name record to the second client in accordance with the subscriber information for the second client. - View Dependent Claims (22, 23, 24)
-
-
25. A method of processing domain name system requests, comprising:
-
monitoring one or more authoritative nameservers for one or more anomalies, the one or more authoritative nameservers containing domain name information for a first domain name; storing at a recursive nameserver a domain name record including at least a portion of the domain name information for the first domain name, the domain name record including a TTL value; and in response to the one or more anomalies at the one or more authoritative nameservers, modifying the domain name record for the first domain name at the recursive nameserver. - View Dependent Claims (26, 27, 28, 29)
-
-
30. A computer-implemented method of processing domain name system requests, comprising:
-
storing at a recursive nameserver domain name information for a domain name; issuing a domain name system request to one or more authoritative nameservers for the domain name information after said storing; and modifying the domain name information at the recursive nameserver in response to a failure to receive a response to the DNS request from the one or more authoritative nameservers for the domain name. - View Dependent Claims (31, 32)
-
-
33. A computer-implemented method of processing domain name system requests, comprising:
-
storing at a recursive nameserver domain name information for a domain name using a first hashing parameter; issuing a domain name system request to one or more authoritative nameservers for the domain name after said storing; and storing the domain name information at the recursive nameserver using a second hashing parameter in response to a failure to receive a response from the one or more authoritative nameservers for the domain name information. - View Dependent Claims (34)
-
Specification