IP Library Granted Patent US 8,935,428
Granted Patent B2
US 8,935,428 · App. 12/608,511 · Granted Jan 13, 2015

Fault tolerance approaches for DNS server failures

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 8,935,428
App. No.
12/608,511
Granted
Jan 13, 2015
Kind
B2
Abstract

Techniques are provided for handling failures of DNS (domain name system) servers to respond to DNS queries. A DNS resolver is configured to resolve domain names, and includes a time-to-live (TTL)-based cache, a negative cache, and a long term store cache. The TTL-based cache is configured to temporarily store domain names with resolved IP addresses. The negative cache is configured to store negative entries that include information indicating domain names that were failed to be resolved. The long term store cache is configured to store domain names with resolved IP address for an indefinite time period. The caches are accessed in a manner that enables fewer DNS query retries to be performed when a DNS server is non-responsive, to reduce delays and network traffic. Furthermore, the DNS resolver may reduce a number of DNS queries performed the longer the DNS server stays non-responsive.

Claims (66)

1. A method in a first communication client device, comprising:

receiving a request to resolve an address for a domain name corresponding to a second communication device;

accessing a time-to-live (TTL)-based cache of the first communication client device for the address;

accessing a negative cache of the first communication client device for a negative entry corresponding to the domain name if the address is not present in the TTL-based cache;

accessing a long term store cache of the first communication client device for the address if the negative entry is present in the negative cache, wherein the long term store cache is configured to store addresses corresponding to respective domain names for an indefinite time period; and

enabling a communication signal to be transmitted to the second communication device according to the address if the address is present in at least one of the TTL-based cache or the long term store cache.

2. The method of claim 1 , wherein if the address is not present in the TTL-based cache and the negative entry is not present in the negative cache, performing:

transmitting a DNS (domain name system) query to a DNS server to request the address;

storing the address in the TTL-based cache and in the long term store cache if the address is received from the DNS server in response to the DNS query;

enabling the communication signal to be transmitted to the second communication device according to the address if the address is received from the DNS server in response to the DNS query; and

storing a negative entry in the negative cache, accessing the long term store cache for the address, and enabling the communication signal to be transmitted to the second communication device using the address accessed in the long term store cache if the DNS server provides an error message in response to the DNS query.

3. The method of claim 2 , wherein if the DNS server does not respond to the transmitted DNS query, performing:

executing a back-off retry operation having a retry count value that defines a number of retry attempts for transmitting the DNS query to the DNS server;

determining that a DNS failure has occurred if the number of retry attempts corresponding to the retry count value is performed without receiving the requested address from the DNS server; and

entering a failure mode if a DNS failure is determined to have occurred.

4. The method of claim 3 , wherein said executing a back-off retry operation comprises:

waiting a length of time based on a predetermined time out value;

transmitting the DNS query to the DNS server after the length of time expires; and

waiting an increased length of time and retransmitting the DNS query to the DNS server after the increased length of time each time that the DNS server does not respond to the transmitted DNS query until the retry count value for the back-off retry operation is reached.

5. The method of claim 3 , wherein if the address is received from the DNS server in response to a DNS query during the back-off retry operation, performing:

storing the address in the TTL-based cache and in the long term store cache; and

enabling the communication signal to be transmitted to the second communication device.

6. The method of claim 3 , wherein if a DNS failure is determined to have occurred, performing;

decrementing the retry count value;

storing the negative entry in the negative cache;

accessing the long term store cache for the address; and

enabling the communication signal to be transmitted to the second communication device according to the address accessed in the long term store cache.

7. The method of claim 6 , further comprising:

receiving a second request to resolve the address for the domain name;

accessing the negative cache for the negative entry corresponding to the domain name;

transmitting a second DNS query to the DNS server to request the address if the negative entry is not present in the negative cache;

re-executing the back-off retry operation having a number of retry attempts indicated by the decremented retry count value if the DNS server does not respond to the transmitted second DNS query; and

decreasing the decremented retry count value, storing the negative entry in the negative cache, accessing the long term store cache for the address, and enabling a second communication signal to be transmitted to the second communication device according to the address accessed in the long term store cache if the DNS server does not respond to the transmitted second DNS query during the re-executed back-off retry operation.

8. The method of claim 7 , wherein if the address is received from the DNS server in response to the second DNS query during the re-executed back-off retry operation, performing:

resetting the decremented retry count value to a predetermined original retry count value;

storing the address in the TTL-based cache and in the long term store cache; and

enabling a second communication signal to be transmitted to the second communication device.

9. A first communication client device, comprising:

a DNS (domain name system) resolver configured to process a request to resolve an address for a domain name corresponding to a second communication device, the DNS resolver including

a time-to-live (TTL)-based cache of the first communication client device;

a negative cache of the first communication client device;

a long term store cache of the first communication client device; and

a cache access logic module configured to access the TTL-based cache for the address;

wherein the cache access logic module is configured to access the negative cache for a negative entry corresponding to the domain name if the address is not present in the TTL-based cache;

wherein the cache access logic module is configured to access the long term store cache for the address if the negative entry is present in the negative cache, wherein the long term store cache is configured to store addresses corresponding to respective domain names for an indefinite time period; and

wherein the cache access logic module is configured to enable the communication signal to be transmitted to the second communication device according to the address if the address is present in at least one of the TTL-based cache or the long term store cache.

10. The first communication client device of claim 9 , wherein if the address is not present in the TTL-based cache and the negative entry is not present in the negative cache, the cache access logic module is configured to transmit a DNS (domain name system) query to a DNS server to request the address, to store the address in the TTL-based cache and in the long term store cache if the address is received from the DNS server in response to the DNS query, and to enable the communication signal to be transmitted to the second communication device according to the address if the address is received from the DNS server in response to the DNS query; and

wherein the cache access logic module is configured to store a negative entry in the negative cache, to access the long term store cache for the address, and to enable the communication signal to be transmitted to the second communication device using the address accessed in the long term store cache if the DNS server provides an error message in response to the DNS query.

11. The first communication client device of claim 10 , wherein the cache access logic module includes a back-off retry module; and

wherein if the DNS server does not respond to the transmitted DNS query, the back-off retry module is configured to execute a back-off retry operation having a predetermined retry count value that defines a number of retry attempts for transmitting the DNS query to the DNS server, and the cache access logic module is configured to enter a failure mode if the number of retry attempts corresponding to the retry count value is performed without receiving the requested address from the DNS server.

12. The first communication client device of claim 11 , wherein in order to execute the back-off retry operation, the back-off retry module is configured to wait a length of time based on a predetermined time out value, to enable the DNS query to be transmitted to the DNS server after the length of time expires, and to wait an increased length of time and enable the DNS query to be retransmitted to the DNS server after the increased length of time each time that the DNS server does not respond to the transmitted DNS query until the retry count value for the back-off retry operation is reached.

13. The first communication client device of claim 11 , wherein if the address is received from the DNS server in response to a DNS query during the back-off retry operation, the cache access logic module is configured to store the address in the TTL-based cache and in the long term store cache and to enable the communication signal to be transmitted to the second communication device.

14. The first communication client device of claim 11 , wherein if the cache access logic module is in failure mode, the back-off retry is configured to decrement the retry count value, and the cache access logic module is configured to store the negative entry in the negative cache, to access the long term store cache for the address, and to enable the communication signal to be transmitted to the second communication device according to the address accessed in the long term store cache.

15. The first communication client device of claim 14 , wherein if a second request to resolve the address for the domain name is received:

the cache access logic module is configured to access the negative cache for the negative entry corresponding to the domain name, and to enable a second DNS query to be transmitted to the DNS server to request the address if the negative entry is not present in the negative cache;

the back-off retry module is configured to re-execute the back-off retry operation having a number of retry attempts indicated by the decremented retry count value if the DNS server does not respond to the transmitted second DNS query, and to decrease the decremented retry count value; and

the cache access logic module is configured to store the negative entry in the negative cache, to access the long term store cache for the address, and to enable a second communication signal to be transmitted to the second communication device according to the address accessed in the long term store cache if the DNS server does not respond to the transmitted second DNS query during the re-executed back-off retry operation.

16. The first communication client device of claim 15 , wherein if the address is received from the DNS server in response to the second DNS query during the re-executed back-off retry operation, the back-off retry module is configured to reset the decremented retry count value to a predetermined original retry count value, and the cache access logic module is configured to store the address in the TTL-based cache and in the long term store cache, and to enable a second communication signal to be transmitted to the second communication device.

17. The first communication client device of claim 10 , wherein the first communication device is coupled to the DNS server through a DOCSIS (data over cable service interface specification) network.

18. The first communication client device of claim 9 , wherein the first communication device is an internet protocol (IP) telephone.

19. The first communication client device of claim 9 , wherein the communication signal is an instant message.

20. A computer readable storage device having computer program logic embodied in said computer readable storage medium for enabling a processor to process a request to resolve an address for a domain name corresponding to a communication device, the computer program logic including program code executable to perform operations comprising:

accessing a time-to-live (TTL)-based cache of the first communication client device for the address;

accessing a negative cache of the first communication client device for a negative entry corresponding to the domain name if the address is not present in the TTL-based cache;

accessing a long term store cache of the first communication client device for the address if the negative entry is present in the negative cache, wherein the long term store cache is configured to store addresses corresponding to respective domain names for an indefinite time period; and

enabling a communication signal to be transmitted to the communication device according to the address if the address is present in at least one of the TTL-based cache or the long term store cache.

Assignments (7)
CORRECTIVE ASSIGNMENT TO CORRECT THE PATENT NUMBER 9,385,856 TO 9,385,756 PREVIOUSLY RECORDED AT REEL: 47349 FRAME: 001. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 22, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 051144/0648 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE PREVIOUSLY RECORDED ON REEL 047229 FRAME 0408. ASSIGNOR(S) HEREBY CONFIRMS THE THE EFFECTIVE DATE IS 09/05/2018. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047349/0001 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047229/0408 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2009
From: ANDERSON, SAM; DJUROVIC, DRAGAN; NECHAMKIN, EUGENE; SHOGHLI, JAMSHID
To: BROADCOM CORPORATION
Reel/Frame 023451/0043 →