IP Library › Granted Patent US 10,673,815
Granted Patent B2
US 10,673,815 · App. 15/894,830 · Granted Jun 2, 2020

DNS-enabled communication between heterogeneous devices

Inventors: William A Kish (Millerton, NY); Sergey Katsev (Pleasant Valley, NY)
Assignee: Fortinet, Inc.
H04L61/6013H04L61/1511H04L61/6059H04L61/6086
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 10,673,815
App. No.
15/894,830
Filed
Feb 12, 2018
Granted
Jun 2, 2020
Kind
B2
Art Unit
2441
USPC
709/203
Abstract

Methods and systems for an IPv4-IPv6 proxy mode for DNS servers are provided. According to one embodiment, a DNS query is received by a network device from a dual-stack client. A determination is made the network device whether a first record type containing an Internet Protocol (IP) address for a server associated with the query exists within a DNS database of the network device. If the first record type exists for the server, then communication is enabled between the client and the server based on the first record type; otherwise it is automatically determined whether a second record type usable by the client exists for the server. Responsive to a determination that the second record type exists, data associated with the second record type is shared with the client by the network device to enable communication between the client and the server.

Claims (40)

1. A method for realizing communication between a single-stack client device and a server device, comprising:

receiving, by a network device, a Domain Name System (DNS) query from the single-stack client device requesting an IP address of the server device, wherein the single-stack client device is compliant with a first version of Internet Protocol (IP);

determining, by the network device, the IP address of the server device;

evaluating, by the network device, whether the IP address is usable by the single-stack client device or whether the IP address is compliant with a second version of IP, wherein the first version of IP and the second version of IP are selected from IP version 4 (IPv4) and IP version 6 (IPv6) and wherein said evaluating whether the IP address is usable by the single-stack client device or whether the IP address is compliant with a second version of IP is based on whether the client device implements IPv4 or IPv6;

when the IP address is determined to be usable by the single-stack client device, then enabling direct communications between the single-stack client device and the server device based on the IP address by responding to the DNS query with a DNS response containing the IP address;

when the IP address is determined to be compliant with the second version of IP:

selecting, by the network device, a first proxy IP address compliant with the first version of IP;

selecting, by the network device, a second proxy IP address compliant with the second version of IP; and

enabling communications between the single-stack client device and the server device based on communications between the single-stack client device and the network device through the first proxy IP address and using the first version of IP by responding to the DNS query with a DNS response containing the first proxy IP address, and enabling communications between the network device and the server device through the second proxy IP address and using the second version of IP by sending a packet to the server device from the second proxy IP address.

2. The method of claim 1 , further comprising:

receiving, by the network device, a packet from the single-stack client device intended for the server device, wherein a destination IP address field of the packet contains the first proxy IP address;

transforming, by the network device, the packet into a transformed packet compliant with the second version of IP, wherein a source IP address field of the transformed packet contains the second proxy IP address and the destination IP address field of the transformed packet contains the server device IP address compliant with the second version of IP, and wherein the transformed packet comprises the packet sent to the server device from the second proxy IP address to enable communications between the network device and the server device;

sending, by the network device, the transformed packet to the server device;

receiving, by the network device, responsive to the transformed packet, a reply packet from the server device, wherein a destination IP address field of the reply packet contains the second proxy IP address;

transforming, by the network device, the reply packet into a transformed reply packet compliant with the first version of IP, wherein a source IP address field of the transformed reply packet contains the first proxy IP address and the destination IP address field of the transformed reply packet contains the client device IP address; and

sending, by the network device, the transformed reply packet to the single-stack client device.

3. The method of claim 1 , wherein the first proxy IP address is selected by the network device from a pool of available IP addresses that are compliant with the first version of IP.

4. The method of claim 1 , wherein the second proxy IP address is selected by the network device from a pool of available IP addresses that are compliant with the second version of IP.

5. The method of claim 1 , wherein the network device is selected from a DNS server, a gateway device, a Unified Threat Management (UTM) device, a firewall device, a proxy server, a router, a load balancer, a local caching device, and a wireless gateway device.

6. A network device for facilitating communication between a single-stack client device and a server device, comprising:

a non-transitory storage device having embodied therein instructions representing a Domain Name System (DNS) application; and

one or more processors coupled to the non-transitory storage device and operable to execute the Domain Name System (DNS) application to perform a method comprising:

receiving a Domain Name System (DNS) query from a single-stack client device requesting an IP address of a server device, wherein the single-stack client device is compliant with a first version of Internet Protocol (IP);

determining the IP address of the server device;

evaluating whether the IP address is usable by the single-stack client device or whether the IP address is compliant with a second version of IP, wherein the first version of IP and the second version of IP are selected from IP version 4 (IPv4) and IP version 6 (IPv6) and wherein said evaluating whether the IP address is usable by the single-stack client device or whether the IP address is compliant with a second version of IP is based on whether the client device implements IPv4 or IPv6;

when the IP address is determined to be usable by the single-stack client device, then enabling direct communications between the single-stack client device and the server device based on the IP address by responding to the DNS query with a DNS response containing the IP address;

when the IP address is determined to be compliant with the second version of IP:

selecting a first proxy IP address compliant with the first version of IP;

selecting a second proxy IP address compliant with the second version of IP; and

enabling communications between the single-stack client device and the server device based on communications between the single-stack client device and the network device through the first proxy IP address and using the first version of IP by responding to the DNS query with a DNS response containing the first proxy IP address, and enabling communications between the network device and the server device through the second proxy IP address and using the second version of IP by sending a packet to the server device from the second proxy IP address.

7. The network device of claim 6 , wherein the method further comprises:

receiving a packet from the single-stack client device intended for the server device, wherein a destination IP address field of the packet contains the first proxy IP address;

transforming the packet into a transformed packet compliant with the second version of IP, wherein a source IP address field of the transformed packet contains the second proxy IP address and the destination IP address field of the transformed packet contains the server device IP address compliant with the second version of IP, and wherein the transformed packet comprises the packet sent to the server device from the second proxy IP address to enable communications between the network device and the server device;

sending the transformed packet to the server device;

receiving responsive to the transformed packet, a reply packet from the server device, wherein a destination IP address field of the reply packet contains the second proxy IP address;

transforming the reply packet into a transformed reply packet compliant with the first version of IP, wherein a source IP address field of the transformed reply packet contains the first proxy IP address and the destination IP address field of the transformed reply packet contains the client device IP address; and

sending the transformed reply packet to the single-stack client device.

8. The network device of claim 6 , wherein the first proxy IP address is selected from a pool of available IP addresses that are compliant with the first version of IP.

9. The network device of claim 6 , wherein the second proxy IP address is selected from a pool of available IP addresses that are compliant with the second version of IP.

10. The network device of claim 6 , wherein the network device comprises a DNS server, a gateway device, a Unified Threat Management (UTM) device, a firewall device, a proxy server, a router, a load balancer, a local caching device or a wireless gateway device.

Continuity (2)
Continuation 14451106 · Aug 4, 2014
Related Publication 20180167359A1 · Jun 14, 2018