Description

Equal-cost multipath (ECMP) is used to load-balance traffic by using equal cost routes. However, enabling this feature does not result in load balancing if the next-hops are reachable via different nodes in a cluster.

This article clarifies that this behavior is as per design and that load balancing will work only if all the outgoing interfaces are active on the same node.

 

Symptoms

By default in an Active/Active chassis cluster with two ISP links connected to different nodes, enabling ECMP will not cause traffic to load balance between the two ISP links, even if equal cost routes are configured.

 

Solution

Routing lookup is done when a session is created, and determines the outgoing interface that will be used. In the case of ECMP, if equal cost routes are configured, outgoing interfaces are selected as shown below:

Case 1: If all outgoing interfaces are active on the same node where the incoming interface is, then load balancing will work.

alt

Case 2: If the outgoing interfaces are active on different nodes, the remote outgoing interface is never used. Therefore, load balancing will not work.

alt

Case 3: If the incoming interface is on one node and all outgoing interfaces are active on another node, then load balancing will work.

alt

 

As per the current implementation (Junos OS versions before 15.1X49-D210, 18.4R3, 19.1R3, 19.2R2, 19.3R3, and 19.4R2) , load balancing will work only if all outgoing interfaces are active on the same node as mentioned in Case 1 and Case 3 (shown above). This is as per design to avoid any performance-related issues that may occur while forwarding traffic across the fabric link.

Starting from Junos OS release 15.1X49-D210, 18.4R3, 19.1R3, 19.2R2, 19.3R3, and 19.4R2, the following command has been introduced to allow route selection on both nodes. After applying this command, load balancing will work even in the topology described in Case 2.

set security flow no-local-favor-ecmp

 

Modification History

2020-02-12: Added firmware version on which load balancing will not work.

2020-01-09: Added new feature command introduced to support ECMP in case outgoing interfaces are active on different nodes.