IP Library Granted Patent US 10,212,071
Granted Patent B2
US 10,212,071 · App. 15/387,572 · Granted Feb 19, 2019

Bypassing a load balancer in a return path of network traffic

Inventors: Mani Kancherla (Cupertino, CA); Jayant Jain (Cupertino, CA); Anirban Sengupta (Saratoga, CA)
Assignee: NICIRA, INC.
H04L45/22H04L45/34H04L45/38H04L47/2483H04L67/1038H04L69/22
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,212,071
App. No.
15/387,572
Granted
Feb 19, 2019
Kind
B2
Abstract

Some embodiments provide a method that allows a first data compute node (DCN) to forward outgoing traffic to a second DCN directly in spite of receiving the incoming traffic from the second DCN through a load balancer. That is, the return traffic's network path from the first DCN to the second DCN bypasses the load balancer, even though a request that initiated the return traffic is received through the load balancer. The method receives a first data message from a load balancer to be sent to a DCN. After identifying a particular address embedded in the data message by the load balancer, the method generates a table entry, based on source and destination addresses of the data message and the identified address. This entry is used for modifying a source address of a subsequent data message received from the DCN in response to the data message.

Claims (30)

1. A method for forwarding load balanced network traffic, the method comprising:

at a host computer executing a data compute node (DCN),

receiving, from a load balancer, a first data message that has (i) a first address associated with the DCN as a destination address and (ii) a source address identifying a source of the first data message;

identifying a second address embedded in the first data message by the load balancer, the second address originally specified as the destination address in a header of the first data message before being replaced with the first address in a load balancing operation of the load balancer;

based on (i) the source address and the first address of the first data message and (ii) the second address embedded in the first data message, generating a table entry to use subsequently to replace, with the second address, the first address that is specified as a source address of a subsequent data message sent by the DCN to the source of the first data message; and

forwarding the first data message towards the DCN.

2. The method of claim 1 further comprising storing the generated table entry with the second address in a local data storage of the host computer.

3. The method of claim 2 further comprising, prior to generating the table entry, determining that no table entry associated with the first data message exists in the local data storage.

4. The method of claim 1 , wherein

the DCN is one particular DCN in a group of DCNs that all perform a common operation, and

the first address is an internet protocol (IP) address of the DCN and the second address is a virtual IP address of the group of DCNs.

5. The method of claim 1 , wherein the source of the first data message is a client requesting data from a DCN in the group of DCNs.

6. The method of claim 5 further comprising forwarding the second data message towards the client via a path that bypasses the load balancer.

7. The method of claim 1 , wherein the table entry identifies a data flow based on the source and destination addresses of the first data message, by assigning the second address of the first data message as a source address of a reverse flow and assigning the source address of the first data message as a destination address of the reverse flow.

8. The method of claim 7 further comprising generating a second table entry for the data flow of the first data message using the source and destination addresses of the first data message.

9. The method of claim 1 , wherein identifying the second address comprises retrieving a set of values embedded in a particular header field of the first data message and matching the set of retrieved values to an entry in a mapping table, the entry further mapping the set of retrieved values to the second address.

10. The method of claim 1 , wherein the DCN comprises a virtual server of a set of virtual servers that implements a distributed application, wherein the first data message is for requesting data from the distributed application.

11. A non-transitory machine readable medium storing a program which when executed by at a set of processing units of a host computer forwards load balanced network traffic, the processing units of the host computer further executing a data compute node (DCN), the program comprising sets of instructions for:

receiving, from a load balancer, a first data message that has (i) a first address associated with the DCN as a destination address and (ii) a source address identifying a source of the first data message;

identifying a second address embedded in the first data message by the load balancer, the second address originally specified as the destination address in a header of the first data message before being replaced with the first address in a load balancing operation of the load balancer;

based on (i) the source address and the first address of the first data message and (ii) the second address embedded in the first data message, generating a table entry to use subsequently to replace with the second address, the first address that is specified as a source address of a subsequent data message sent by the DCN to the source of the first data message; and

forwarding the first data message towards the DCN.

12. The non-transitory machine readable medium of claim 11 , wherein

the DCN is one particular DCN in a group of DCNs that all perform a common operation, and

the first address is an internet protocol (IP) address of the DCN and the second address is a virtual IP address of the group of DCNs.

13. The non-transitory machine readable medium of claim 11 , wherein the source of the first data message is a client requesting data from a DCN in the group of DCNs.

14. The non-transitory machine readable medium of claim 13 , wherein the program further comprises a set of instructions for forwarding the second data message towards the client via a path that bypasses the load balancer.

15. The non-transitory machine readable medium of claim 11 , wherein the DCN is a particular virtual server in a set of virtual servers that implement a distributed application and the first address is a network address of the particular virtual server.

16. The non-transitory machine readable medium of claim 15 , wherein the second address is a virtual internet protocol (VIP) address associated with the distributed application.

17. The non-transitory machine readable medium of claim 16 , wherein the load balancer selects the particular virtual server over other virtual servers in the set based on a load balancing algorithm.

Assignments (2)
MERGER Recorded Jan 27, 2025
From: NICIRA, INC.
To: VMWARE LLC
Reel/Frame 070187/0487 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 5, 2017
From: KANCHERLA, MANI; JAIN, JAYANT; SENGUPTA, ANIRBAN
To: NICIRA, INC.
Reel/Frame 042912/0050 →
Continuity (1)
Related Publication 20180176124A1 · Jun 21, 2018
Cited By (4)
US 12,231,252 US 12,250,194 US 12,254,340 US 12,341,680