Recursive domain name service (DNS) prefetching

US10587648B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10587648-B2
Application numberUS-201715487176-A
CountryUS
Kind codeB2
Filing dateApr 13, 2017
Priority dateApr 13, 2017
Publication dateMar 10, 2020
Grant dateMar 10, 2020

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A method, apparatus and program product utilize Domain Name Service (DNS) prefetching in a recursive DNS server, e.g., to mitigate Distributed Denial of Service (DDoS) attacks on a DNS service.

First claim

Opening claim text (preview).

What is claimed is: 1. An apparatus, comprising: at least one processor; and program code configured upon execution by the at least one processor to handle Domain Name Service (DNS) requests by: prefetching from an authoritative DNS server DNS entries for one or more domains to build a whitelist of DNS entries in a recursive DNS server, wherein the prefetched DNS entries map domain names to addresses; and in response to a DNS request received by the recursive DNS server: accessing the whitelist to attempt to locate a matching DNS entry for the received DNS request; and in response to locating a matching DNS entry for the received DNS request, returning the matching DNS entry as a response to the DNS request rather than forwarding the DNS request to a different DNS server; wherein the program code is further configured to monitor system load, and to access the whitelist selectively in response to the monitored system load, and wherein the program code is configured to access the whitelist selectively by: activating a mode in response to determining a high system load from the monitored system load, wherein the program code accesses the whitelist only when the mode is activated when the DNS request is received by the recursive DNS server; and after activating the mode, selectively deactivating the mode in response to determining a discontinuation of the high system load from the monitored system load. 2. The apparatus of claim 1 , wherein the whitelist is a semi-authoritative whitelist. 3. The apparatus of claim 1 , wherein the program code is configured to monitor system load by monitoring system load in the recursive DNS server. 4. The apparatus of claim 1 , wherein the program code is configured to monitor system load by monitoring response time for the authoritative DNS server. 5. The apparatus of claim 1 , wherein the program code is further configured to: cache failed DNS requests in a negative feedback cache; and in response to the DNS request received by the recursive DNS server, access the negative feedback cache and return an invalid DNS response in response to the DNS request received by the recursive DNS server matching a failed DNS request cached in the negative feedback cache. 6. The apparatus of claim 5 , wherein the program code is configured to access the whitelist in response to the DNS request received by the recursive DNS server not matching any failed DNS request cached in the negative feedback cache. 7. The apparatus of claim 5 , wherein the program code is further configured to remove stale failed DNS requests from the negative feedback cache. 8. The apparatus of claim 7 , wherein the program code is configured to cache the failed DNS requests by associating each failed DNS request with a timeout, and wherein the program code is configured to remove stale failed DNS requests by removing failed DNS requests for which the associated timeout has been triggered. 9. The apparatus of claim 5 , wherein the program code is further configured to: in response to not locating the matching DNS entry for the received DNS request, forward the DNS request received by the recursive DNS server to a different DNS server; and in response to receiving an invalid response to the forwarded DNS request from the different DNS server, cache the DNS request received by the recursive DNS server in the negative feedback cache as a failed DNS request. 10. The apparatus of claim 5 , wherein the program code is further configured to: activate a mode in response to determining a high system load, wherein the program code is configured to access the negative feedback cache only when the mode is activated when the DNS request is received by the recursive DNS server; and after activating the mode, selectively deactivate the mode in response to determining a discontinuation of the high system load from the monitored system load. 11. The apparatus of claim 5 , wherein the program code is further configured to apply a malicious query matching filter to the DNS request received by the recursive DNS server, and return an invalid DNS response to the DNS request received by the recursive DNS server in response to a match with the malicious query matching filter. 12. The apparatus of claim 11 , wherein the malicious query matching filter includes a bloom filter. 13. The apparatus of claim 1 , wherein the program code is configured to prefetch from the authoritative DNS server the DNS entries for the one or more domains by prefetching from the authoritative DNS server each sub-domain for the one or more domains. 14. The apparatus of claim 13 , wherein the program code is further configured to update the whitelist over time by repeating prefetching from the authoritative DNS server. 15. The apparatus of claim 1 , wherein the recursive DNS server is resident in a root DNS data processing system, an Internet Service Provider (ISP) data processing system, a network router data processing system or a client data processing system. 16. A program product, comprising: a non-transitory computer readable medium; and program code stored on the non-transitory computer readable medium and configured upon execution by at least one processor to handle Domain Name Service (DNS) requests by: prefetching from an authoritative DNS server DNS entries for one or more domains to build a whitelist of DNS entries in a recursive DNS server, wherein the prefetched DNS entries map domain names to addresses; and in response to a DNS request received by the recursive DNS server: accessing the whitelist to attempt to locate a matching DNS entry for the received DNS request; and in response to locating a matching DNS entry for the received DNS request, returning the matching DNS entry as a response to the DNS request rather than forwarding the DNS request to a different DNS server; wherein the program code is further configured to monitor system load, and to access the whitelist selectively in response to the monitored system load, and wherein the program code is configured to access the whitelist selectively by: activating a mode in response to determining a high system load from the monitored system load, wherein the program code accesses the whitelist only when the mode is activated when the DNS request is received by the recursive DNS server; and after activating the mode, selectively deactivating the mode in response to determining a discontinuation of the high system load from the monitored system load.

Assignees

Inventors

Classifications

  • Network utilisation, e.g. volume of load or congestion level · CPC title

  • Event detection, e.g. attack signature detection · CPC title

  • Denial of Service · CPC title

  • Electricity · mapped topic

  • Electricity · mapped topic

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10587648B2 cover?
A method, apparatus and program product utilize Domain Name Service (DNS) prefetching in a recursive DNS server, e.g., to mitigate Distributed Denial of Service (DDoS) attacks on a DNS service.
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification H04L63/1458. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Mar 10 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 7 related publications on this page (citations in our corpus or others sharing the same primary CPC).