I’ve had a network that uses ECMP to load balance traffic along multiple OSPF paths where the cumulative cost adds up to the same value.
As a simplified example, if we have the following 3 sites with MT routers all running ROS6, then traffic from A->C and C->A get load balanced as we desire over both paths:
Where A<->C is set up with a cost of 20
A<->B cost = 10
B<->C cost = 10
A-----C
\ /
\ /
B
But as of upgrading A (the head end in this example) to ROS7, A->C traffic instead refuses to ECMP by somehow adding a “tie-breaking” step of “number of hops”.
In this example, all A->C traffic takes the A->C route.
If A<->C cost increases to 21, then all A->C traffic flows through B.
If A<->C cost is kept at 20, and either A<->B OR B<->C cost is dropped by one to 9, then again all A->C traffic flows through B.
We have so far worked around this by creating a new VLAN through the A->B->C path so that that path looks like a single hop, and then ECMP begins to load balance again.
But we have a large network with dozens of site/routers and this quickly becomes a maintenance nightmare.
So what has changed in ROS6 → ROS7 that’s interfered with ECMP working in a rational way?