Load Balancing Using Link Aggregation
Load balancing can be implemented on a data flow or multiple data flows to relieve the pressure on a single physical link. A data flow is a group of data packets with one or more identical attributes. The attributes include the source/destination MAC address, source/destination IP address, and source/destination TCP/UDP port number.
When an Eth-Trunk is used to forward data frames, data frames of the same data flow may be transmitted over different physical links. This mode ensures optimal bandwidth utilization. However, data frames may arrive at the destination in a different order to which they were transmitted, resulting to mis-sequencing.
Flow-based load balancing is introduced to prevent this problem. Flow-based load balancing ensures that frames of the same data flow are forwarded on the same physical link and implements load balancing of flows. The system achieves this by using the hash algorithm to calculate the address in a data frame and generate a HASH-KEY value. Then the system searches for the outbound interface in the Eth-Trunk forwarding table based on the generated HASH-KEY value. Each MAC or IP address corresponds to a HASH-KEY value, so the system uses different outbound interfaces to forward data. Flow-based load balancing ensures the sequence of data transmission, but cannot ensure the bandwidth utilization.