Description

This article explains how to spread the layer 3 VPN traffic across the multiple valid paths between PE devices.

Symptoms

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

           AS path: I, validation-state: unverified

          > to 10.1.13.3 via xe-0/2/0.0, Push 16, Push 10406(top)

Solution

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:

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

           AS path: I, validation-state: unverified

          > to 10.1.13.3 via xe-0/2/0.0, Push 16, Push 10406(top)

[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

 

After applying multipath in the routing instance, then you will see these two next-hop addresses are both installed in the forwarding table:

[edit]

root@R1_re0# set routing-instances global-vrf routing-options multipath   

 

[edit]

root@R1_re0# show | compare                         

[edit routing-instances global-vrf routing-options]

+   multipath;

 

[edit]

root@R1_re0# commit 

commit complete

 

[edit]

root@R1_re0# run show route 10.0.0.8 table global-vrf.inet.0             

 

global-vrf.inet.0: 17 destinations, 33 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:55:00, 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 21:05:01, 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 10406(top)

          #[Multipath/255] 00:00:10, metric 1, metric2 20

          > to 10.1.13.3 via xe-0/2/0.0, Push 16, Push 10405(top)

            to 10.1.13.3 via xe-0/2/0.0, Push 16, Push 10406(top)

 

[edit]

root@R1_re0# 

[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          ulst 1048576   6

                         indr 1048575   3

               10.1.13.3     Push 16, Push 10405(top)   631   2 xe-0/2/0.0

                         indr 1048574   3

               10.1.13.3     Push 16, Push 10406(top)   629   2 xe-0/2/0.0

 

[edit]

root@R1_re0# 

Modification History

2024-08-27 : Article Created