Stateful IPv4-IPv6 DNS application level gateway for handling topologies with coexisting IPv4-only, Ipv6-only and dual-stack devices
First Claim
1. A method for handling domain name system (DNS) packets, comprising:
- receiving a current DNS response corresponding to a first DNS query that was earlier received and sent by a DNS client or a second DNS query that is a translation of the first DNS query, the current DNS response having a first IPv4 or IPv6 protocol;
if the current DNS response does not require translation and does not have a null answer, forwarding the current DNS response to the DNS client;
if the current DNS response requires translation, forwarding a translation of the current DNS response to the DNS client only if a subsequent DNS response, which does not have a null answer and corresponds to the first DNS query, is not received before expiration of a predetermined time period; and
if a subsequent DNS response, which does not have a null answer and corresponds to the first DNS query, is received after receiving the current DNS response before expiration of the predetermined time period, forwarding the subsequent DNS response to the DNS client.
1 Assignment
0 Petitions
Accused Products
Abstract
Disclosed are methods and apparatus for efficiently and reliably handling DNS (domain name service) queries and responses. In general terms, mechanisms are provided for forwarding only one DNS response to a DNS client when two DNS responses having different protocols (IPv4 or IPv6) may be received, e.g., within a DNS handling device for a particular DNS query. The DNS handling device determines whether to forward or hold a first received DNS response based on a number of criteria. The DNS handling device also determines whether to forward a first or second received response to the DNS client when a first and second response for a particular query is received. In certain cases, a first received DNS response for a particular DNS query may be held until a second better response is received or a timer expires.
90 Citations
25 Claims
-
1. A method for handling domain name system (DNS) packets, comprising:
-
receiving a current DNS response corresponding to a first DNS query that was earlier received and sent by a DNS client or a second DNS query that is a translation of the first DNS query, the current DNS response having a first IPv4 or IPv6 protocol; if the current DNS response does not require translation and does not have a null answer, forwarding the current DNS response to the DNS client; if the current DNS response requires translation, forwarding a translation of the current DNS response to the DNS client only if a subsequent DNS response, which does not have a null answer and corresponds to the first DNS query, is not received before expiration of a predetermined time period; and if a subsequent DNS response, which does not have a null answer and corresponds to the first DNS query, is received after receiving the current DNS response before expiration of the predetermined time period, forwarding the subsequent DNS response to the DNS client. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer system operable to handle domain name system (DNS) packets, the computer system comprising:
-
one or more processors; one or more memory, wherein at least one of the processors and memory are configured for; receiving a current DNS response corresponding to a first DNS query that was earlier received and sent by a DNS client or a second DNS query that is a translation of the first DNS query, the current DNS response having a first IPv4 or IPv6 protocol; if the current DNS response does not require translation and does not have a null answer, forwarding the current DNS response to the DNS client; if the current DNS response requires translation, forwarding a translation of the current DNS response to the DNS client only if a subsequent DNS response, which does not have a null answer and corresponds to the first DNS query, is not received before expiration of a predetermined time period; and if a subsequent DNS response, which does not have a null answer and corresponds to the first DNS query, is received after receiving the current DNS response before expiration of the predetermined time period, forwarding the subsequent DNS response to the DNS client. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer program product for handling domain name system (DNS) packets, the computer program product comprising:
-
at least one computer readable medium; computer program instructions stored within the at least one computer readable product configured for; receiving a current DNS response corresponding to a first DNS query that was earlier received and sent by a DNS client or a second DNS query that is a translation of the first DNS query, the current DNS response having a first IPv4 or IPv6 protocol; if the current DNS response does not require translation and does not have a null answer, forwarding the current DNS response to the DNS client; if the current DNS response requires translation, forwarding a translation of the current DNS response to the DNS client only if a subsequent DNS response, which does not have a null answer and corresponds to the first DNS query, is not received before expiration of a predetermined time period; and if a subsequent DNS response, which does not have a null answer and corresponds to the first DNS query, is received after receiving the current DNS response before expiration of the predetermined time period, forwarding the subsequent DNS response to the DNS client. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
-
25. An apparatus for handling domain name system (DNS) packets, comprising:
-
means for receiving a current DNS response corresponding to a first DNS query that was earlier received and sent by a DNS client or a second DNS query that is a translation of the first DNS query, the current DNS response having a first IPv4 or IPv6 protocol; means for if the current DNS response does not require translation and does not have a null answer, forwarding the current DNS response to the DNS client; means for if the current DNS response requires translation, forwarding a translation of the current DNS response to the DNS client only if a subsequent DNS response, which does not have a null answer and corresponds to the first DNS query, is not received before expiration of a predetermined time period; and means for if a subsequent DNS response, which does not have a null answer and corresponds to the first DNS query, is received after receiving the current DNS response before expiration of the predetermined time period, forwarding the subsequent DNS response to the DNS client.
-
Specification