IP Library Granted Patent US 10,021,065
Granted Patent B2
US 10,021,065 · App. 14/606,566 · Granted Jul 10, 2018

System and method for suppressing DNS requests

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,021,065
App. No.
14/606,566
Granted
Jul 10, 2018
Kind
B2
Abstract

A virtual private router (VPR) intercepts DNS requests and returns a pseudo IP address to the requesting application and the pseudo IP address is mapped to a domain name in the request. Requests for content including the pseudo IP address are modified to include the corresponding domain name and transmitted to an intermediary server, which resolves the domain name to a real IP address and forwards the content request. The content is received by the intermediary server, which returns it to the requesting application, such as by way of the VPR. Real IP addresses may be returned by the intermediary server such that subsequent content requests to the domain name may bypass the intermediary server. Requests for certain domains, ports, and/or protocols may bypass the intermediary server such that the VPR resolves the domain names to real IP addresses.

Claims (71)

1. A method for domain resolution suppression, the method comprising:

intercepting from an application executing on a computing device by a module executing on the same computing device, a domain resolution request including a domain name, the domain resolution request addressed to a first external server;

suppressing, by the module, transmission of the domain resolution request to the external server;

returning, by the module to the application, a pseudo internet protocol (IP) address as a response to the domain resolution request; and

storing, by the module, an entry mapping the pseudo IP address to the domain name of the domain resolution request;

wherein the application is a first application, the domain resolution request is a first domain resolution request, the domain name is a first domain name, and the pseudo IP address is a first pseudo IP address, the method further comprising:

intercepting from one of the first application and a second application executing on the computing device by the module, a second domain resolution request including a second domain name;

determining, by the module, according to a domain name rule applied to the second domain name that the second domain name request should not be suppressed;

in response to determining according to the domain name rule applied to the second domain name that the second domain name request should not be suppressed;

returning, by the module, a second pseudo IP address to the one of the first application and the second application; and

storing, by the module, an entry mapping the second pseudo IP address to the second domain name in a storage location;

intercepting from the one of the first application and the second application by the module, a content request including the second pseudo IP address;

obtaining from the storage location the second domain name corresponding to the second pseudo IP address;

transmitting, by the module, a request to resolve the second domain name from the computing device to one of the first external server and a second external server;

receiving, by the module, a response to the request to resolve the second domain name, the response including a real IP address corresponding to the second domain name; and

mapping, by the module, the real IP address to the second pseudo IP address;

generating a modified content request including the real IP address; and

transmitting the modified content request to one of the first external server and a different external server.

2. The method of claim 1 , further comprising:

intercepting from the application by the module, a content request including the pseudo IP address;

in response to intercepting from the application by the module the content request including the pseudo IP address, generating a modified content request including the domain name mapped to the pseudo IP address in the entry;

transmitting the modified content request to one of the first external server and a different external server.

3. The method of claim 2 , further comprising performing by the one of the first external server and the different external server:

receiving the modified content request;

obtaining a real IP address corresponding to the domain name;

requesting content according to the modified content request from the real IP address;

receiving the content according to the modified content request;

transmitting the content according to the modified content request to the computing device.

4. The method of claim 3 , wherein returning, by the module to the application, the pseudo internet protocol (IP) address as a response to the domain resolution request comprises returning the pseudo IP address having a time to live (TTL) attribute set to a value larger than a TTL value used for the real IP address.

5. The method of claim 1 , wherein the application is a first application, the domain resolution request is a first domain resolution request, and the domain name is a first domain name, the method further comprising:

intercepting from one of the first application and a second application executing on the computing device by the module, a second domain resolution request including a second domain name;

determining, by the module, according to a domain name rule applied to the second domain name that the second domain name request should not be suppressed;

transmitting, by the computing device, a request to resolve the second domain name from the computing device to one of the first external server and a second external server;

receiving, by the computing device, a response to the request to resolve the second domain name; and

returning, by the computing device, the response to the request to resolve the second domain name to the application.

6. The method of claim 1 , wherein the entry mapping the pseudo IP address to the domain name includes a smaller number of bits than a real IP address.

7. The method of claim 1 , wherein the domain resolution request is a hypertext transfer protocol (HTTP) request, the method further comprising extracting the domain name from a HOST header of the HTTP request.

8. The method of claim 1 , wherein the domain resolution request is transmission control protocol (TCP) request, the method further comprising extracting the domain name from a CONNECT header of the TCP request.

9. A system comprising:

one or more processing devices and one or more memory devices operably coupled to the one or more processors, the one or more memory devices storing executable and operational data effective to cause the one or more processing devices to:

intercept from an application executed by the system a domain resolution request including a domain name, the domain resolution request addressed to a first external server;

suppress transmission of the domain resolution request to the external server;

return, to the application, a pseudo internet protocol (IP) address as a response to the domain resolution request; and

store an entry mapping the pseudo IP address to the domain name of the domain resolution request;

wherein the application is a first application, the domain resolution request is a first domain resolution request, the domain name is a first domain name, and the pseudo IP address is a first pseudo IP address and wherein the executable and operational data are further effective to cause the one or more processing devices to:

intercept from one of the first application and a second application executing on the system a second domain resolution request including a second domain name;

determine according to a domain name rule applied to the second domain name that the second domain name request should not be suppressed;

in response to determining according to the domain name rule applied to the second domain name that the second domain name request should not be suppressed:

return a second pseudo IP address to the one of the first application and the second application;

store an entry mapping the second pseudo IP address to the second domain name in a storage location;

intercept from the one of the first application and the second application a content request including the second pseudo IP address;

obtain, from the storage location, the second domain name corresponding to the second pseudo IP address;

transmit a request to resolve the second domain name from the system to one of the first external server and a second external server;

receive a response to the request to resolve the second domain name, the response including a real IP address corresponding to the second domain name; and

map the real IP address to the second pseudo IP address; and

in response to intercepting from the one of the first application and the second application the content request including the second pseudo IP address, generate a modified content request including the real IP address mapped to the second pseudo IP address; and

transmit the modified content request to one of the first external server and a different external server.

10. The system of claim 9 , wherein the executable and operational data are further effective to cause the one or more processing devices to:

intercept from the application a content request including the pseudo IP address;

in response to intercepting from the application the content request including the pseudo IP address, generate a modified content request including the domain name mapped to the pseudo IP address in the entry;

transmit the modified content request to one of the first external server and a different external server.

11. The system of claim 10 , further comprising one of the first external server and the different external server, the one of the first external server and the different external server programmed to:

receive the modified content request;

obtain a real IP address corresponding to the domain name;

request content according to the modified content request from the real IP address;

receive the content according to the modified content request;

transmit the content according to the modified content request to the computing device.

12. The system of claim 11 , wherein the executable and operational data are further effective to cause the one or more processing devices to return to the application the pseudo internet protocol (IP) address as a response to the domain resolution request comprises returning the pseudo IP address having a time to live (TTL) attribute set to a value larger than a TTL value used for the real IP address.

13. The system of claim 12 , wherein the entry mapping the pseudo IP address to the domain name includes smaller number of bits than the real IP address.

14. The system of claim 11 , wherein the domain resolution request is a hypertext transfer protocol (HTTP) request and wherein the executable and operational data are further effective to cause the one or more processors to extract the domain name from a HOST header of the HTTP request.

15. The system of claim 9 , wherein the domain resolution request is transmission control protocol (TCP) request, and wherein the executable and operational data are further effective to cause the one or more processors to extract the domain name from a CONNECT header of the TCP request.

Assignments (8)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE SERIAL N. 15/597,036 PREVIOUSLY RECORDED AT REEL: 053245 FRAME: 0874. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 10, 2023
From: PANGO INC.
To: TWINGATE HOLDINGS INC.
Reel/Frame 063027/0894 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE SERIAL NO. 15/597,036 PREVIOUSLY RECORDED AT REEL: 053257 FRAME: 0637. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 10, 2023
From: TWINGATE HOLDINGS INC.
To: TWINGATE INC.
Reel/Frame 063141/0210 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2020
From: TWINGATE HOLDINGS INC.
To: TWINGATE INC.
Reel/Frame 053257/0637 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 17, 2020
From: PANGO INC.
To: TWINGATE HOLDINGS INC.
Reel/Frame 053245/0874 →
RELEASE OF SECURITY INTEREST Recorded Jul 1, 2020
From: PACIFIC WESTERN BANK
To: PANGO INC. (FORMERLY KNOWN AS ANCHORFREE INC.)
Reel/Frame 053116/0489 →
SECURITY INTEREST Recorded Jun 25, 2020
From: PANGO INC.
To: PACIFIC WESTERN BANK
Reel/Frame 053039/0417 →
CHANGE OF NAME Recorded Jan 10, 2020
From: ANCHORFREE INC.
To: PANGO INC.
Reel/Frame 051566/0680 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2015
From: LAPIDOUS, EUGENE; KUZMENKO, ROMAN; MOLCHANOV, MAXIM; PANISSET, EDUARDO MOURA
To: ANCHORFREE INC.
Reel/Frame 034822/0398 →