IP Library Granted Patent US 9,215,205
Granted Patent B1
US 9,215,205 · App. 13/452,547 · Granted Dec 15, 2015

Hardware accelerator for a domain name server cache

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 9,215,205
App. No.
13/452,547
Granted
Dec 15, 2015
Kind
B1
Abstract

Techniques for a hardware accelerator for a domain name server (DNS) cache are disclosed. In some embodiments, a hardware accelerator for a DNS cache includes: executing a packet processing engine of a host device to identify a DNS request; and performing a DNS lookup in the DNS cache. In some embodiments, a hardware accelerator for a DNS cache includes: determining if a time to live (TTL) parameter associated with a first entry stored in the DNS cache is below a threshold value; and if the TTL parameter associated with the first entry stored in the DNS cache is below the threshold value, then performing a pre-fetch operation to update the first entry in the DNS cache, wherein the updated entry comprises an updated TTL value.

Claims (66)

1. A system for a hardware accelerator for a domain name server (DNS) lookup, comprising:

a domain name server (DNS) cache;

a processor configured to:

store a plurality of entries in the DNS cache, comprising:

receive a DNS reply including an entry to be stored;

determine whether a time to live (TTL) parameter of the received entry is less than a second threshold value, the second threshold value being greater than 0;

in the event that the TTL parameter of the received entry is less than the second threshold value, omit storing the received entry in the DNS cache;

determine whether the time to live (TTL) parameter of the received entry is greater than a third threshold value, the third threshold value being greater than or equal to each of a first threshold value and the second threshold value; and

in the event that the TTL parameter of the received entry is greater than the third threshold value:

reduce the TTL parameter of the received entry to correspond to the third threshold value; and

store the received entry with the reduced TTL parameter;

periodically perform a pre-fetch process on the plurality of entries stored in the DNS cache, wherein the performing of the pre-fetch process comprises:

for each of the plurality of entries, determine whether a TTL parameter associated with a corresponding entry stored in the DNS cache is below the first threshold value;

in the event that the TTL parameter associated with the corresponding entry stored in the DNS cache is below the first threshold value, mark the corresponding entry; and

for each marked entry, update the each marked entry in the DNS cache, wherein the updated entry comprises an updated TTL value and an updated Internet Protocol (IP) address;

execute a packet processing engine of a host device to identify a DNS request; and

perform a DNS lookup in the DNS cache, wherein the performing of the pre-fetch process is separate from the performing of the DNS lookup; and

perform cache management on the DNS cache, comprising to:

determine whether an entry in the DNS cache satisfies a least frequently used (LFU) algorithm; and

in the event that the entry satisfies the LFU algorithm, remove the entry from the DNS cache, wherein a TTL of each entry in the DNS cache is less than or equal to the third threshold value; and

a memory coupled to the processor and configured to provide the processor with instructions.

2. The system recited in claim 1 , wherein the system is implemented on a network interface card.

3. The system recited in claim 1 , wherein the processor is further configured to: apply a security filter to a DNS query.

4. The system recited in claim 1 , wherein the processor is further configured to: determine if a DNS query matches an access control list (ACL).

5. The system recited in claim 1 , wherein the processor is further configured to: determine if a DNS query matches a black list entry.

6. The system recited in claim 1 , wherein the processor is further configured to: perform cache management on the DNS cache.

7. The system recited in claim 1 , wherein the processor is further configured to: perform cache management on the DNS cache using a least recently used (replacement) algorithm.

8. A method for a hardware accelerator for a domain name server (DNS) cache, comprising:

storing a plurality of entries in the DNS cache, comprising:

receiving a DNS reply including an entry to be stored;

determining whether a time to live (TTL) parameter of the received entry is less than a second threshold value, the second threshold value being greater than 0;

in the event that the TTL parameter of the received entry is less than the second threshold value, omitting storing the received entry in the DNS cache;

determining whether the time to live (TTL) parameter of the received entry is greater than a third threshold value, the third threshold value being greater than or equal to each of a first threshold value and the second threshold value; and

in the event that the TTL parameter of the received entry is greater than the third threshold value:

reducing the TTL parameter of the received entry to correspond to the third threshold value; and

storing the received entry with the reduced TTL parameter;

periodically performing a pre-fetch process on the plurality of entries stored in the DNS cache, wherein the performing of the pre-fetch process comprises:

for each of the plurality of entries, determining whether a TTL parameter associated with a corresponding entry stored in the DNS cache is below the first threshold value;

in the event that the TTL parameter associated with the corresponding entry stored in the DNS cache is below the first threshold value, marking the corresponding entry; and

for each marked entry, updating the each marked entry in the DNS cache, wherein the updated entry comprises an updated TTL value and an updated Internet Protocol (IP) address;

executing a packet processing engine of a host device to identify a DNS request; and

performing a DNS lookup in the DNS cache, wherein the performing of the pre-fetch process is separate from the performing of the DNS lookup; and

performing cache management on the DNS cache, comprising:

determining whether an entry in the DNS cache satisfies a least frequently used (LFU) algorithm; and

in the event that the entry satisfies the LFU algorithm, removing the entry from the DNS cache, wherein a TTL of each entry in the DNS cache is less than or equal to the third threshold value.

9. The method of claim 8 , wherein the DNS cache is implemented on a network interface card.

10. The method of claim 8 , further comprising:

applying a security filter to a DNS query.

11. A computer program product for a hardware accelerator for a domain name server (DNS) cache, the computer program product being embodied in a tangible non-transitory computer readable storage medium and comprising computer instructions for:

storing a plurality of entries in the DNS cache, comprising:

receiving a DNS reply including an entry to be stored;

determining whether a time to live (TTL) parameter of the received entry is less than a second threshold value, the second threshold value being greater than 0;

in the event that the TTL parameter of the received entry is less than the second threshold value, omitting storing the received entry in the DNS cache;

determining whether the time to live (TTL) parameter of the received entry is greater than a third threshold value, the third threshold value being greater than or equal to each of a first threshold value and the second threshold value; and

in the event that the TTL parameter of the received entry is greater than the third threshold value:

reducing the TTL parameter of the received entry to correspond to the third threshold value; and

storing the received entry with the reduced TTL parameter;

periodically performing a pre-fetch process on the plurality of entries stored in the DNS cache, wherein the performing of the pre-fetch process comprises:

for each of the plurality of entries, determining whether a TTL parameter associated with a corresponding entry stored in the DNS cache is below the first threshold value;

in the event that the TTL parameter associated with the corresponding entry stored in the DNS cache is below the first threshold value, marking the corresponding entry; and

for each marked entry, updating the each marked entry in the DNS cache, wherein the updated entry comprises an updated TTL value and an updated Internet Protocol (IP) address;

executing a packet processing engine of a host device to identify a DNS request; and

performing a DNS lookup in the DNS cache, wherein the performing of the pre-fetch process is separate from the performing of the DNS lookup; and

performing cache management on the DNS cache, comprising:

determining whether an entry in the DNS cache satisfies a least frequently used (LFU) algorithm; and

in the event that the entry satisfies the LFU algorithm, removing the entry from the DNS cache, wherein a TTL of each entry in the DNS cache is less than or equal to the third threshold value.

Assignments (7)
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS (RELEASES RF 040575/0549) Recorded Dec 3, 2020
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: INFOBLOX INC.
Reel/Frame 054585/0914 →
FIRST LIEN SECURITY AGREEMENT Recorded Dec 2, 2020
From: INFOBLOX INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 054615/0317 →
SECOND LIEN SECURITY AGREEMENT Recorded Dec 2, 2020
From: INFOBLOX INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 054615/0331 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS (RELEASES RF 040579/0302) Recorded Oct 23, 2019
From: ROYAL BANK OF CANADA, AS COLLATERAL AGENT
To: INFOBLOX, INC.
Reel/Frame 050809/0980 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Nov 8, 2016
From: INFOBLOX INC.
To: ROYAL BANK OF CANADA, AS COLLATERAL AGENT
Reel/Frame 040579/0302 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Nov 7, 2016
From: INFOBLOX INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 040575/0549 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 6, 2012
From: SMITH, LES
To: INFOBLOX INC.
Reel/Frame 028504/0789 →