IP Library Granted Patent US 12,199,944
Granted Patent B2
US 12,199,944 · App. 17/533,960 · Granted Jan 14, 2025

Transparently proxying connections based on hostnames

Inventors: Puran Chand (Bangalore, IN); Craig Farley Newell (Atlanta, GA); Amit Kumar Yadav (Bangalore, IN)
Assignee: Omnissa, LLC
H04L61/4511H04L12/4633H04L67/56
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 12,199,944
App. No.
17/533,960
Filed
Nov 23, 2021
Granted
Jan 14, 2025
Kind
B2
Art Unit
2446
USPC
709/223
Abstract

Disclosed are various embodiments for providing split-tunneled network connectivity on a per-application basis. A DNS query is received from a locally hosted DNS resolver. A first recursive DNS query is sent to an external DNS server and a second recursive DNS query is sent to an internal DNS server. A first recursive DNS response is then received from the external DNS server and a second recursive DNS response is received from the external DNS server. A response is then provided to the DNS query.

Claims (49)

1. A system, comprising:

at least one computing device comprising a processor and a memory;

machine-readable instructions stored in the memory that, when executed by the processor, cause the at least one computing device to perform operations comprising:

receiving a request for a transmission control protocol (TCP) connection from a network driver;

determining an endpoint Internet protocol (IP) address associated with the TCP connection;

identifying a routing policy for the TCP connection; and

causing the TCP connection to be routed based at least in part on the routing policy, wherein causing the TCP connection to be routed based at least in part on the routing policy comprises:

providing an indication that the TCP connection has been denied to the network driver based at least in part on the routing policy specifying that the TCP connection is to be blocked;

providing a response to the network driver redirecting the TCP connection to a relay service based at least in part on the routing policy specifying that the TCP connection is to be routed across a tunneled connection;

providing a response to the network driver redirecting the TCP connection to the endpoint IP address based at least in part on the routing policy specifying that the TCP connection is to be made directly with the endpoint IP address;

in an instance in which the endpoint IP address comprises an external IP address, providing an internal IP address associated with the external IP address to the network driver based at least in part on the routing policy specifying that the TCP connection is to be made using a tunneled connection, between the relay service and a tunnel server; or

in an instance in which the endpoint IP address comprises the internal IP address, providing the external IP address to the network driver based at least in part on the routing policy specifying that the TCP connection is to be made using a bypassed connection.

2. The system of claim 1 , wherein determining the endpoint IP address comprises parsing the request for the TCP connection to determine the endpoint IP address.

3. The system of claim 1 , wherein the endpoint IP address comprises an IP address of a remote host.

4. The system of claim 1 , wherein the operations further comprise querying a hostname lookup table for a hostname associated with the endpoint IP address, the routing policy being identified based at least in part on the hostname.

5. The system of claim 4 , wherein the endpoint IP address is mapped to the hostname in the hostname lookup table.

6. The system of claim 1 , wherein the routing policy is identified based at least in part on the endpoint IP address.

7. The system of claim 1 , wherein the routing policy is determined based at least in part on one or more of a type of connection, a type of application, or the endpoint IP address.

8. A method, comprising:

receiving a request for a transmission control protocol (TCP) connection from a network driver;

determining an endpoint Internet protocol (IP) address associated with the TCP connection;

identifying a routing policy for the TCP connection; and

causing the TCP connection to be routed based at least in part on the routing policy, wherein routing the TCP connection based at least in part on the routing policy comprises:

providing an indication that the TCP connection has been denied to the network driver based at least in part on the routing policy specifying that the TCP connection is to be blocked;

providing a response to the network driver redirecting the TCP connection to a relay service based at least in part on the routing policy specifying that the TCP connection is to be routed across a tunneled connection;

providing a response to the network driver redirecting the TCP connection to the endpoint IP address based at least in part on the routing policy specifying that the TCP connection is to be made directly with the endpoint IP address;

in an instance in which the endpoint IP address comprises an external IP address, providing an internal IP address associated with the external IP address to the network driver based at least in part on the routing policy specifying that the TCP connection is to be made using a tunneled connection, between the relay service and a tunnel server; or

in an instance in which the endpoint IP address comprises the internal IP address, providing the external IP address to the network driver based at least in part on the routing policy specifying that the TCP connection is to be made using a bypassed connection.

9. The method of claim 8 , wherein determining the endpoint IP address further comprises parsing the request for the TCP connection to determine the endpoint IP address.

10. The method of claim 8 , wherein the endpoint IP address comprises an IP address of a remote host.

11. The method of claim 8 , further comprising querying a hostname lookup table for a hostname associated with the endpoint IP address, the routing policy being identified based at least in part on the hostname.

12. The method of claim 11 , wherein the endpoint IP address is mapped to the hostname in the hostname lookup table.

13. The method of claim 8 , wherein the routing policy is identified based at least in part on the endpoint IP address.

14. The method of claim 8 , wherein the routing policy is determined based at least in part on one or more of a type of connection, a type of application, or the endpoint IP address.

15. A non-transitory computer-readable medium comprising machine readable instructions that, when executed by a processor of a computing device, cause the computing device to perform operations comprising:

receiving a request for a transmission control protocol (TCP) connection from a network driver;

determining an endpoint Internet protocol (IP) address associated with the TCP connection;

identifying a routing policy for the TCP connection; and

causing the TCP connection to be routed based at least in part on the routing policy; wherein routing the TCP connection based at least in part on the routing policy comprises:

providing an indication that the TCP connection has been denied to the network driver based at least in part on the routing policy specifying that the TCP connection is to be blocked;

providing a response to the network driver redirecting the TCP connection to a relay service based at least in part on the routing policy specifying that the TCP connection is to be routed across a tunneled connection;

providing a response to the network driver redirecting the TCP connection to the endpoint IP address based at least in part on the routing policy specifying that the TCP connection is to be made directly with the endpoint IP address;

in an instance in which the endpoint IP address comprises an external IP address, providing an internal IP address associated with the external IP address to the network driver based at least in part on the routing policy specifying that the TCP connection is to be made using a tunneled connection, between the relay service and a tunnel server; or

in an instance in which the endpoint IP address comprises the internal IP address, providing the external IP address to the network driver based at least in part on the routing policy specifying that the TCP connection is to be made using a bypassed connection.

16. The non-transitory computer-readable medium of claim 15 , wherein determining the endpoint IP address comprises parsing the request for the TCP connection to determine the endpoint IP address.

17. The non-transitory computer-readable medium of claim 15 , wherein the operations further comprise querying a hostname lookup table for a hostname associated with the endpoint IP address, the routing policy being identified based at least in part on the hostname.

18. The non-transitory computer-readable medium of claim 17 , wherein the endpoint IP address is mapped to the hostname in the hostname lookup table.

19. The non-transitory computer-readable medium of claim 15 , wherein the routing policy is identified based at least in part on the endpoint IP address.

20. The non-transitory computer-readable medium of claim 15 , wherein the routing policy is determined based at least in part on one or more of a type of connection, a type of application, or the endpoint IP address.