This article explains how to spread the layer 3 VPN traffic across the multiple valid paths between PE devices.
There is only one next-hop addresses to be installed in the forwarding table in ingress PE when there are multiple equal-cost paths to the same destination for the active route.
[edit]
root@R1_re0# run show route forwarding-table vpn global-vrf destination 10.0.0.8
Routing table: global-vrf.inet
Internet:
Destination Type RtRef Next hop Type Index NhRef Netif
10.0.0.8/32 user 0 indr 1048575 7
10.1.13.3 Push 16, Push 10405(top) 631 2 xe-0/2/0.0 <<<< only one next-hop address is installed
root@R1_re0# run show route 10.0.0.8 table global-vrf.inet.0
global-vrf.inet.0: 17 destinations, 28 routes (17 active, 0 holddown, 0 hidden)
@ = Routing Use Only, # = Forwarding Use Only
+ = Active Route, - = Last Active, * = Both
10.0.0.8/32 *[BGP/170] 1w3d 22:41:28, MED 1, localpref 100, from 10.0.0.3
AS path: I, validation-state: unverified
> to 10.1.13.3 via xe-0/2/0.0, Push 16, Push 10405(top)
[BGP/170] 1w4d 20:51:29, MED 1, localpref 100, from 10.0.0.3
> to 10.1.13.3 via xe-0/2/0.0, Push 16, Push 10406(top)
If want to install next-hop addresses for a destination in the forwarding table for the active route, you need to config multipath statement in a routing instance as below:
set routing-instances global-vrf routing-options multipath
Here is the topology in this example:
R7(CE1)---R1(PE1)---R3(P)-----R5(PE2)----R8(CE2)
| |
|---------R6(PE3)-----|
R1 lo0:10.0.0.1
R3 as RR: lo0:10.0.0.3
R5 lo0:10.0.0.5
R6 lo0:10.0.0.6
R8 lo0:10.0.0.8
There are two active route from R1 to R8: one is R1--R3--R5--R8, the other is R1--R3--R6--R8, but only one next-hop in the forwarding table by default:
10.1.13.3 Push 16, Push 10405(top) 631 2 xe-0/2/0.0
After applying multipath in the routing instance, then you will see these two next-hop addresses are both installed in the forwarding table:
root@R1_re0# set routing-instances global-vrf routing-options multipath
root@R1_re0# show | compare
[edit routing-instances global-vrf routing-options]
+ multipath;
root@R1_re0# commit
commit complete
global-vrf.inet.0: 17 destinations, 33 routes (17 active, 0 holddown, 0 hidden)
10.0.0.8/32 @[BGP/170] 1w3d 22:55:00, MED 1, localpref 100, from 10.0.0.3
[BGP/170] 1w4d 21:05:01, MED 1, localpref 100, from 10.0.0.3
#[Multipath/255] 00:00:10, metric 1, metric2 20
to 10.1.13.3 via xe-0/2/0.0, Push 16, Push 10406(top)
root@R1_re0#
10.0.0.8/32 user 0 ulst 1048576 6
indr 1048575 3
indr 1048574 3
10.1.13.3 Push 16, Push 10406(top) 629 2 xe-0/2/0.0