IP Library Granted Patent US 10,541,925
Granted Patent B2
US 10,541,925 · App. 15/851,120 · Granted Jan 21, 2020

Non-DSR distributed load balancer with virtualized VIPS and source proxy on load balanced connection

Inventors: Vikrant Arora (Redmond, WA); Dinesh Kumar Govindasamy (Redmond, WA); Madhan Raj Mookkandy (Redmond, WA); Sandeep Bansal (Redmond, WA); Nicholas D. Wood (Woodinville, WA); George Kudrayvtsev (Redmond, WA)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
H04L47/125H04L45/72H04L47/283H04L61/2528H04L61/6013H04L47/20
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,541,925
App. No.
15/851,120
Granted
Jan 21, 2020
Kind
B2
Abstract

Methods and devices for load balancing of connections may include receiving, at a management component on a container host on a computer device, at least one data packet based on a destination IP address of the data packet that corresponds to a plurality of container hosts. The methods and devices may include selecting a destination container from at least one container host on the computer device and other computer devices in communication with the computer device over a virtual network to balance a data load and translating the source IP address of the at least one data packet to a local IP address of the container host. The methods and devices may include changing the destination IP address of the at least one data packet to a virtual IP address of the selected destination container so that the at least one data packet is transformed to a proxy data packet.

Claims (38)

1. A computer device, comprising:

a memory to store data and instructions;

a processor in communication with the memory;

a management component associated with a virtual switch of the computer device in communication with the memory and the processor, wherein the management component is operable to:

receive at least one data packet at a container host on the computer device based on a destination IP address of the at least one data packet, wherein the destination IP address corresponds to a plurality of container hosts;

select, at a data link layer of the container host, a destination container from one or more container hosts on the computer device and other computer devices in communication with the computer device over a virtual network to balance a data load;

translate, at the data link layer, a source IP address of the at least one data packet to a local IP address of the container host; and

change, at the data link layer, the destination IP address of the at least one data packet to a virtual IP address of the destination container so that the at least one data packet is transformed to a proxy data packet having a destination address of the virtual IP address of the destination container and a source address of the local IP address of the container host.

2. The computer device of claim 1 , wherein the destination address of the at least one data packet corresponds to a physical network address of a source container host or a virtual IP address of the source container host.

3. The computer device of claim 1 , wherein local IP address is a virtualized addressed.

4. The computer device of claim 3 , wherein the local IP address is contained within the data link layer.

5. The computer device of claim 1 , wherein the management component is further operable to:

receive, from the selected destination container, a proxy data response packet corresponding to the at least one data packet;

identify a client that originally transmitted the at least one data packet based on the destination address of the proxy data response packet; and

transform the proxy data response packet to a data response packet that identifies a source address of the client as the destination address of the data response packet.

6. The computer device of claim 5 , wherein the management component is further operable to transform the proxy data response packet by applying one or more rules to reverse changes to a destination address of the proxy data response packet.

7. The computer device of claim 1 , wherein the management component is further operable to select the destination container by applying one or more load balancing rules.

8. The computer device of claim 7 , wherein the one or more load balancing rules comprise one or more of load balancing relative to a threshold, load balancing relative to an average usage, source hash load balancing, round robin load balancing, and a least number of connections load balancing.

9. A method for load balancing of connections, comprising:

receiving, at a management component on a container host on a computer device, at least one data packet based on a destination IP address of the at least one data packet, wherein the destination IP address corresponds to a plurality of container hosts;

selecting, at a data link layer of the container host, a destination container from one or more container hosts on the computer device and other computer devices in communication with the computer device over a virtual network to balance a data load;

translating, at the data link layer, a source IP address of the at least one data packet to a local IP address of the container host; and

changing, at the data link layer, the destination IP address of the at least one data packet to a virtual IP address of the destination container so that the at least one data packet is transformed to a proxy data packet having a destination address of the virtual IP address of the destination container and a source address of the local IP address of the container host.

10. The method of claim 9 , wherein the destination address of the at least one data packet corresponds to a physical network address of a source container host or a virtual IP address of the source container host.

11. The method of claim 9 , wherein local IP address is a virtualized addressed.

12. The method of claim 11 , wherein the local IP address is contained within the data link layer.

13. The method of claim 9 , further comprising:

receiving, from the selected destination container, a proxy data response packet corresponding to the at least one data packet;

identifying a client that originally transmitted the at least one data packet based on the destination address of the proxy data response packet; and

transforming the proxy data response packet to a data response packet that identifies a source address of the client as the destination address of the data response packet.

14. The method of claim 13 , wherein transforming the proxy data response packet further comprises applying one or more rules to reverse changes to a destination address of the proxy data response packet.

15. The method of claim 9 , wherein selecting the destination container further comprises applying one or more load balancing rules.

16. The method of claim 15 , wherein the one or more load balancing rules comprise one or more of load balancing relative to a threshold, load balancing relative to an average usage, source hash load balancing, round robin load balancing, and a least number of connections load balancing.

17. A non-transitory computer-readable medium storing instructions executable by a computer device, comprising:

at least one instruction for causing the computer device to receive at least one data packet at a container host on the computer device based on a destination IP address of the at least one data packet, wherein the destination IP address corresponds to a plurality of container hosts;

at least one instruction for causing the computer device to select, at a data link layer of the container host, a destination container from one or more container hosts on the computer device and other computer devices in communication with the computer device over a virtual network to balance a data load;

at least one instruction for causing the computer device to translate, at the data link layer, a source IP address of the at least one data packet to a local IP address of the container host; and

at least one instruction for causing the computer device to change, at the data link layer, the destination IP address of the at least one data packet to a virtual IP address of the destination container so that the at least one data packet is transformed to a proxy data packet having a destination address of the virtual IP address of the destination container and a source address of the local IP address of the container host.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2017
From: ARORA, VIKRANT; GOVINDASAMY, DINESH KUMAR; MOOKKANDY, MADHAN RAJ; BANSAL, SANDEEP; WOOD, NICHOLAS D.; KUDRAYVTSEV, GEORGE
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 044466/0226 →
Continuity (2)
Provisional Application 62552806 · Aug 31, 2017
Related Publication 20190068505A1 · Feb 28, 2019
Cited By (2)
US 12,316,599 US 12,432,183