I have scenario that can utilise BGP multipath to load balance traffic for certain prefix. network diagram attached.
The BGP multipath setup installed both routes into the routing table and the same was exported to forwading table, checking the destination on the forwading table, it has both next-hops. for some reasons, traffic is not load balanced. the usage graph shows one link used. traceroutes to individual IPs in the prefix take one path only. traceroutes from the internet also keep taking one link.
under forwading options hash-key, nothing is specified at the moment. we just relying on default hashing algorithms. changing default hash-keys needs FPC reboot. if it gets to that we will plan downtime and reboot but i wanted to know if there is anything else i can test or check as why actual load balance is not happening.
the two next-hops are on two logical interfaces under the same LAG ae0. could this be an issue ?
Model: mx960Junos: 15.1R6.7
Have You configured forwarding-table export policy? Example JUNOS CLI code below:
set policy-options policy-statement PL-LB term 1 then load-balance per-packet
set routing-options forwarding-table export PL-LB
If yes and it still does not load-balance then You might have insufficient enthropy in the packets destined to this prefix, such as single fat GRE/IPSEC tunnel, or another kind of "elephant flow".
@lish wrote:Your second point is interesting. Shouldn't trace routes from my router to IP destinations in this prefix be load balanced? I believe this will not be part of tunnel pipe.
Traces/pings/TCP sessions/etc (anything that is locally-originated) from the router that does LB for transit traffic are NOT load-balanced, this is by design - if that's Your question.
JUNOS picks only 1 outgoing nexthop for locally-originated traffic - the algorithm varies by JUNOS version.