Stateless load balancer in a multi-node system for transparent processing with packet preservation
AssigneeRadisys Corporation
InventorsMichael W. Hu, Andrew P. Alleman
Life of this patent
Estimating the term…
Loading patent…
AssigneeRadisys Corporation
InventorsMichael W. Hu, Andrew P. Alleman
Estimating the term…
Stateless load balancing of network packets within a system avoids detection by a network client or end user for deep packet inspection or other bump-in-the-wire applications. At least one header field of a received packet is used in generating a hash value. The hash value is used to identify a processing resource within the system for processing the received packet. Before being sent to the identified resource, the received packet is encapsulated with a new header that includes an indication of ingress port. The encapsulation does not modify the original packet. On a return path from the identified processing resource, the ingress port is determined from the encapsulated packet, the encapsulated packet is decapsulated to obtain a recovered packet that is identical to the received packet, and the recovered packet is forwarded to the network through an egress port as determined from the recovered ingress port.
A method for stateless load balancing of network packets within a system in communication with a network, the system including a switch in communication with a plurality of processing resources, and configured to avoid detection by a network client or end user, the method comprising:
A system comprising:
A non-transitory computer-readable medium comprising program code for causing a processor to perform a method for stateless load balancing of network packets within a system in communication with a network, the system including a switch in communication with a plurality of processing resources, the method comprising:
A system for load balancing network traffic, the system comprising:
Dependencies are inferred from the claim text.
From the US filing history. Foreign family members aren’t listed.
Drawings are temporarily unavailable. Open the PDF at USPTO
Miscellaneous aspects: involving tunnels, e.g. MPLS
Routing or path finding of packets in data switching networks: multipath
Routing or path finding of packets in data switching networks: routing based on the source address
Avoiding congestion; Recovering from congestion: by balancing the load, e.g. traffic engineering
About 5 years 5 months of term left · ends 11 Apr 2032 (estimated)
This disclosure relates generally to balancing workload distribution in a distributed computing environment. In particular, this disclosure relates to methods, systems, and computer readable media for stateless load balancing of network traffic flows in multi-node systems for deep packet inspection or other applications where network transparency or idempotency is desired.
A bump-in-the wire architecture may be used for deep packet inspection where it may be desired to perform processing on packets in a manner that is not detectable by other network elements or end users, and in a manner that does not affect the addressing or routing of packets through the network. For example, law enforcement agencies may be authorized to intercept real time data carrying multimedia applications, such as voice or video, transmitted over the Internet without being detected by the call participants. Other deep packet inspection or bump-in-the-wire applications include, for example, ensuring quality of service for certain packet types, meeting network traffic and bandwidth requirements, detecting malware, enforcing business conduct policies or enforcing network subscriber policy agreements on information exchanged inside and outside a company, monitoring, and filtering.
Such services may be implemented using a distributed architecture, wherein various processor and memory resources are distributed across multiple processing resources. Bladed systems may be used, for example, to scale deep packet inspection functions across multiple server blades. Load balancing is used in distributed architectures to determine which processing resources or server blades are assigned to handle packets corresponding to a particular traffic flow. Certain load balancers, however, are provided as expensive front end devices (e.g., external to the bladed system) or modify packet headers or other data in a way that may affect network addressing/routing or that may be detectable by other network elements or end users.
Non-limiting and non-exhaustive embodiments of the disclosure will now be described in more detail, by way of example only, with reference to the accompanying drawings, in which:
FIG. 1 is a block diagram of a bladed system connecting two systems or networks according to one embodiment;
FIG. 2 is a block diagram illustrating the bladed system shown in FIG. 1 according to one embodiment;
In certain embodiments disclosed herein, stateless load balancing is used to distribute network packets received by a distributed system across a set of processing resources within the system. As used herein, “stateless” is a broad term having its normal and customary meaning in the art and includes load balancing that considers each packet individually and independently, in a memoryless manner without considering previous decisions, yet is able to make consistent load balancing decisions to determine the processing resource for like packets. The load balancing is performed by the system's switching device, which reduces cost and complexity. In certain embodiments, the distributed system comprises a bladed system having, for example, an Ethernet backplane. The disclosed load distribution uses packet encapsulation to fully preserve the original packets for deep packet inspection or other bump-in-the-wire applications. Each original packet is encapsulated in another packet with a new header (or is otherwise tagged with data) that conveys information about the packet such as an identifier for the ingress port as well as forwarding and/or addressing information for internal use within the system. While the new (outer) heading may be modified by the system, the original packet is kept fully intact without any modification.
Although any type of distributed system, bladed system, or modular computer, may be used, certain example load balancing embodiments disclosed herein are incorporated into universal communication computing platforms based on architectures like the Advanced Telecommunications Computing Architecture (ATCA). In other words, certain examples disclosed herein are based on the ATCA architecture to provide the ability to improve overall system performance while at the same time reducing the system footprint and space requirements. The ATCA architecture includes a high-speed Ethernet network that can be extended through a rear transition module (RTM). With the use of a modern operating system (e.g. enterprise LINUX-CGE), ATCA provides a powerful processing platform with multiple processors. Skilled persons will recognize from the disclosure herein that a bladed system may also include any other chassis-based system with modular blades.
In certain embodiments, a load balancer is implemented in the Ethernet switch on a hub blade of an ATCA system, leveraging the switch's ability to perform a hashing function to statistically distribute packets across a set of processing resources. Encapsulation is used for packets sent from the load balancer across the backplane to node blades (or processing resources), which perform some type of application processing (e.g., deep packet inspection, policy enforcement, lawful intercept, or other packet process). Node blades send packets back to the load balancer using the same encapsulation scheme. The load balancer decapsulates the packet to recover the original, unmodified packet, and then transmits the packet back out to the network.