IP Library Granted Patent US 10,992,579
Granted Patent B2
US 10,992,579 · App. 16/574,088 · Granted Apr 27, 2021

Per-application split-tunneled proxy

Inventors: Puran Chand (Bangalore, IN); Craig Farley Newell (Atlanta, GA); Amit Kumar Yadav (Bangalore, IN)
Assignee: VMWARE, INC.
H04L45/745H04L12/4633H04L45/021H04L61/1511H04L61/6063H04L69/164
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,992,579
App. No.
16/574,088
Granted
Apr 27, 2021
Kind
B2
Abstract

Disclosed are various embodiments for providing split-tunneled network connectivity on a per-application basis. A request to make a connection, such as a transmission control protocol (TCP) or a universal datagram protocol (UDP) connection, to a remote host specified by an internet protocol (IP) address in the request is received from a network driver. A hostname lookup table is queried to determine a hostname associated with the IP address for the remote host. A policy is identified based on the hostname associated with the IP address for the remote host. Then, the connection is routed based on the policy.

Claims (50)

1. A system for transparently proxying connections based on hostnames, comprising:

a computing device comprising a processor and a memory;

a network driver configured to provide network access to applications installed on the computing device; and

a tunnel client stored in the memory that, when executed by the processor, causes the processor to at least:

receive from the network driver a request to make a connection to a remote host specified by an internet protocol (IP) address in the request;

query a hostname lookup table to determine a hostname associated with the IP address for the remote host;

identify a policy based on the hostname associated with the IP address for the remote host; and

route the connection based on the policy.

2. The system of claim 1 , wherein the network driver is further configured to cause the computing device to at least:

obtain the request to make the connection from an application executing on the computing device;

determine that the application executing on the computing device is identified in a list of managed applications; and

forward the request to make the connection to the tunnel client based on a determination that the application is identified in the list of managed applications.

3. The system of claim 1 , wherein the tunnel client further causes the computing device to utilize the tunnel client as a domain name service (DNS) server for resolving DNS queries of applications executing on the computing device.

4. The system of claim 1 , wherein the tunnel client, when executed to route the connection based on the policy, further causes the processor to send a response to the request from the network driver, the response comprising a command to the network driver for how to establish the connection with a remote host.

5. The system of claim 1 , wherein the policy specifies that the connection is to be routed through bypassed connection.

6. The system of claim 1 , wherein the policy specifies that the connection is to be blocked.

7. The system of claim 1 , wherein the policy specifies that the connection is to be routed through a tunneled connection maintained by the tunnel client.

8. A method for transparently proxying connections based on hostnames, comprising:

receiving a request to make a connection to a remote host specified by an internet protocol (IP) address in the request;

querying a hostname lookup table to determine a hostname associated with the IP address for the remote host;

identifying a policy based on the hostname associated with the IP address for the remote host; and

routing the connection based on the policy.

9. The method of claim 8 , further comprising

identifying an application initiating the request to make the connection;

determining that the application is identified in a list of managed applications; and

wherein querying the locally stored hostname lookup table occurs in response to determining that the application is identified in the list of managed applications.

10. The method of claim 8 , further comprising:

receiving a domain name service (DNS) query from an application initiating the request to make the connection;

resolving the DNS query; and

providing a DNS response to the application initiating the request to make the connection.

11. The method of claim 8 , wherein routing the connection based on the policy further comprises sending a response to the request from the network driver, the response comprising a command to the network driver for how to establish the connection with a remote host.

12. The method of claim 8 , wherein the policy specifies that the connection is to be routed through a bypassed connection.

13. The method of claim 8 , wherein the policy specifies that the connection is to be blocked.

14. The method of claim 8 , wherein the policy specifies that the connection is to be routed through a tunneled connection maintained by the tunnel client.

15. A non-transitory computer-readable medium comprising machine-readable instructions for transparently proxying connections based on hostnames that, when executed by a process of a computing device, cause the computing device to at least:

receive a request to make a connection to a remote host specified by an internet protocol (IP) address in the request;

query a hostname lookup table to determine a hostname associated with the IP address for the remote host;

identify a policy based on the hostname associated with the IP address for the remote host; and

route the connection based on the policy.

16. The non-transitory computer-readable medium of 15 , wherein the machine-readable instructions, when executed, further cause the computing device to at least:

identify an application initiating the request to make the connection;

determine that the application is identified in a list of managed applications; and

wherein the query of the locally stored hostname lookup table occurs in response to determining that the application is identified in the list of managed applications.

17. The non-transitory computer-readable medium of 15 , wherein the machine-readable instructions, when executed, further cause the computing device to at least:

receive a domain name service (DNS) query from an application initiating the request to make the connection;

resolve the DNS query; and

provide a DNS response to the application initiating the request to make the connection.

18. The non-transitory computer-readable medium of 15 , wherein the policy specifies that the connection is to be routed through a bypassed connection.

19. The non-transitory computer-readable medium of 15 , wherein the policy specifies that the connection is to be routed through a tunneled connection.

20. The non-transitory computer-readable medium of 15 , wherein the policy specifies that the connection is to be blocked.

Assignments (4)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: VMWARE LLC
To: OMNISSA, LLC
Reel/Frame 068327/0365 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 18, 2019
From: CHAND, PURAN; NEWELL, CRAIG FARLEY; YADAV, AMIT KUMAR
To: VMWARE, INC.
Reel/Frame 050408/0733 →