US 11,057,340 B2
Per-application split-tunneled UDP proxy
Puran Chand, Bangalore (IN); Craig Farley Newell, Atlanta, GA (US); and Amit Kumar Yadav, Bangalore (IN)
Assigned to VMWARE, INC., Palo Alto, CA (US)
Filed by VMWARE, INC., Palo Alto, CA (US)
Filed on Sep. 18, 2019, as Appl. No. 16/574,116.
Claims priority of application No. 201941029115 (IN), filed on Jul. 19, 2019.
Prior Publication US 2021/0021564 A1, Jan. 21, 2021
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 15/16 (2006.01); H04L 29/12 (2006.01); H04L 29/06 (2006.01)
CPC H04L 61/1511 (2013.01) [H04L 61/2592 (2013.01); H04L 63/166 (2013.01); H04L 69/164 (2013.01)] 19 Claims
OG exemplary drawing
 
1. A system for transparently proxying connections based on host names, 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, wherein the network driver is further configured to cause the computing device to at least:
obtain a request to make a universal datagram protocol (UDP) connection from an application executing on the computing device, the request to a remote host specified by a destination internet protocol (IP) address in the request;
determine an identifier for the application initiating the request;
determine whether the identifier is present in a list of managed applications;
in an instance in which the identifier is present in the list of managed applications, make a connection to:
a tunnel client stored in the memory that, when executed by the processor, causes the processor to at least:
receive from the network driver 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 destination IP address for the remote host, wherein the policy specifies that the UDP connection is to be routed through a tunneled connection maintained by the tunnel client;
route the UDP connection through the tunneled connection based on the policy;
identify a source IP address of a UDP response to the UDP connection;
replace the source IP address of the UDP response with the destination IP address specified in the UDP connection; and
provide the UDP response to the network driver.