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, accessing subscriber information for the client;
if the subscriber information indicates a preference not to receive expired domain name information, transmitting a DNS response to the client indicating a failure to obtain information for the domain name; and
if the subscriber information indicates a preference to receive expired domain name information, 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.
-
Citations
20 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, accessing subscriber information for the client; if the subscriber information indicates a preference not to receive expired domain name information, transmitting a DNS response to the client indicating a failure to obtain information for the domain name; and if the subscriber information indicates a preference to receive expired domain name information, 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, accessing subscriber information for the client, generating and transmitting a DNS response to the client indicating a failure to obtain information for the domain name if the subscriber information indicates a preference not to receive expired domain name information, and 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 if the subscriber information indicates a preference to receive expired domain name information. - 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, accessing subscriber information for the client; if the subscriber information indicates a preference not to receive expired domain name information, transmitting a DNS response to the client indicating a failure to obtain information for the domain name; and if the subscriber information indicates a preference to receive expired domain name information, 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 non-transitory 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 a 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; code for accessing subscriber information for the client if the one or more authoritative servers do not respond with the domain name information; code for transmitting a DNS response to the client indicating a failure to obtain information for the domain name if the subscriber information indicates a preference not to receive expired domain name information; and code for generating and transmitting a DNS response to the client with information from the expired domain name record if the subscriber information indicates a preference to receive expired domain name information.
-
Specification