Per-application split-tunneled UDP proxy
AssigneeVMware, Inc.
InventorsPuran Chand, Craig Farley Newell, Amit Kumar Yadav
Life of this patent
Estimating the term…
Abstract
Disclosed are various embodiments for providing split-tunneled network connectivity on a per-application basis. A request to make 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 UDP connection is routed based on the policy.
Claims19
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.
A method for transparently proxying connections based on host names, comprising:
- obtaining, by a network driver, a request to make a universal datagram protocol (UDP) connection from an application, the request to a remote host specified by a destination internet protocol (IP) address in the request;
- determining, by the network driver, an identifier for the application initiating the request;
- determining, by the network driver, 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, making, by the network driver, a connection to a tunnel client configured to execute a method, comprising:
- receiving 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 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;
- routing the UDP connection through the tunneled connection based on the policy;
- identifying a source IP address of a UDP response to the UDP connection;
- replacing the source IP address of the UDP response with the destination IP address specified in the UDP connection;
- and
- providing the UDP response to the network driver.
A non-transitory computer-readable medium comprising machine-readable instructions for transparently proxying connections based on host names that, when executed by a processor of a computing device, cause the computing device to at least:
- obtain, by a network driver, 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, by the network driver, an identifier for the application initiating the request;
- determine, by the network driver, 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, by the network driver, a connection to:
- a tunnel client that, when executed, cause the computing device to at least:
- receive a request to make a universal datagram protocol (UDP) connection to a remote host specified by a destination 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 destination IP address for the remote host, wherein the policy specifies that the UDP connection is to be routed through a tunneled connection;
- 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.
Dependencies are inferred from the claim text.