Understanding Aggregated Ethernet Load Balancing
The link aggregation feature is used to bundle several physical aggregated Ethernet interfaces to form one logical interface. One or more links are aggregated to form a virtual link or link aggregation group (LAG). The MAC client treats this virtual link as if it were a single link. Link aggregation increases bandwidth, provides graceful degradation as failure occurs, and increases availability.
In addition to these benefits, an aggregated Ethernet bundle is enhanced to provide load-balancing capabilities that ensure that the link utilization among the member links of the aggregated Ethernet bundle are fully and efficiently utilized.
The load-balancing feature allows a device to divide incoming and outgoing traffic along multiple paths or interfaces in order to reduce congestion in the network. Load balancing improves the utilization of various network paths and provides more effective network bandwidth.
Typically, the applications that use load balancing include:
Aggregated Interfaces (Layer 2)
Aggregated Interfaces (also called AE for aggregated Ethernet, and AS for aggregated SONET) are a Layer 2 mechanism for load-balancing across multiple interfaces between two devices. Because this is a Layer 2 load-balancing mechanism, all of the individual component links must be between the same two devices on each end. Junos OS supports a non-signaled (static) configuration for Ethernet and SONET, as well as the 802.3ad standardized LACP protocol for negotiation over Ethernet links.
Equal-Cost Multipath (ECMP) (Layer 3)
By default, when there are multiple equal-cost paths to the same destination for the active route, Junos OS uses a hash algorithm to choose one of the next-hop addresses to install in the forwarding table. Whenever the set of next hops for a destination changes in any way, the next-hop address is rechosen using the hash algorithm. There is also an option that allows multiple next-hop addresses to be installed in the forwarding table, known as per-packet load balancing.
ECMP load balancing can be:
Across BGP paths (BGP multipath)
Within a BGP path, across multiple LSPs
In complex Ethernet topologies, traffic imbalances occur due to increased traffic flow, and load balancing becomes challenging for some of the following reasons:
Incorrect load balancing by aggregate next hops
Incorrect packet hash computation
Insufficient variance in the packet flow
Incorrect pattern selection
As a result of traffic imbalance, the load is not well distributed causing congestion in certain links, whereas some other links are not efficiently utilized.
To overcome these challenges, Junos OS provides the following solutions for resolving the genuine traffic imbalance on aggregated Ethernet bundles (IEEE 802.3ad).
Adaptive Load Balancing
Adaptive load balancing uses a feedback mechanism to correct a genuine traffic imbalance. To correct the imbalance weights, the bandwidth and packet stream of links are adapted to achieve efficient traffic distribution across the links in an AE bundle.
To configure adaptive load balancing, include the adaptive statement at the [edit interfaces aex aggregated-ether-options load-balance] hierarchy level.
Adaptive load balancing is not supported if the VLAN ID is configured on the aggregated Ethernet interface. This limitation affects the PTX Series Packet Transport Routers and QFX10000 switches only.
To configure the tolerance value as a percentage, include the tolerance optional keyword at the [edit interfaces aex aggregated-ether-options load-balance adaptive] hierarchy level.
To configure adaptive load balancing based on packets per second (instead of the default bits per second setting), include the pps optional keyword at the [edit interfaces aex aggregated-ether-options load-balance adaptive] hierarchy level.
To configure the scan interval for the hash value based on the sample rate for the last two seconds, include the scan-interval optional keyword at the [edit interfaces aex aggregated-ether-options load-balance adaptive] hierarchy level.
The pps and scan-interval optional keywords are supported on PTX Series Packet Transport Routers only.
Per-Packet Random Spray Load Balancing
When the adaptive load-balancing option fails, per-packet random spray load balancing serves as a last resort. It ensures that the members of an AE bundle are equally loaded without taking bandwidth into consideration. Per packet causes packet reordering and hence is recommended only if the applications absorb reordering. Per-packet random spray eliminates traffic imbalance that occurs as a result of software errors, except for packet hash.
To configure per-packet random spray load balancing, include the per-packet statement at the [edit interfaces aex aggregated-ether-options load-balance] hierarchy level.
The Per-Packet option for load balancing is not supported on PTX Series Packet Transport Routers.
The aggregated Ethernet load-balancing solutions are mutually exclusive. When more than one of the load-balancing solutions is configured, the solution that is configured last overrides the previously configured one. You can verify the load-balancing solution being used by issuing the show interfaces aex aggregated-ether-options load-balance command.