Skip to main content
  1. Network Articles/
  2. BGP Articles/

BGP Multipath (maximum-paths)

Table of Contents

What BGP multipath is

Even when several routes exist for the same prefix, BGP selects exactly one best path and installs it in the routing table. Section 9.1.2.2 of RFC 4271 states how equally preferred routes are handled:

The local speaker can select only one of these routes for inclusion in the associated Loc-RIB.

Multipath relaxes that restriction on the implementation side and installs several routes in the routing table at once so traffic is load-balanced. On IOS XR it is enabled with maximum-paths.

Multipath is not standardized in any RFC. The BGP specification says nothing about using more than one route for forwarding; it is an extension each vendor provides on its own. As a result the details (which routes qualify, the upper limit, the command names) differ between vendors.

The important point is that multipath changes only the contents of the forwarding table.

ItemChanged by multipath?
Result of best path selectionNo. There is still exactly one best path
Routes advertised to peersNo. Only the best path is advertised
Routing table (forwarding)Yes. Routes equivalent to the best path are installed together and traffic is load-balanced

Three kinds of multipath

Multipath is divided into three kinds by which routes are bundled. On IOS XR the kind is chosen with a maximum-paths keyword.

KindCommandWhat is bundled
eBGP multipathmaximum-paths ebgp <n>Routes learned over eBGP
iBGP multipathmaximum-paths ibgp <n>Routes learned over iBGP
eiBGP multipathmaximum-paths eibgp <n>eBGP and iBGP routes may be mixed

What qualifies as a candidate

A route joins the multipath set when every one of the following attributes matches the best path. Put another way, the candidates are the routes that stayed tied all the way through best path selection.

ConditionDetail
WEIGHTSame as the best path
LOCAL_PREFSame as the best path
AS_PATH lengthSame as the best path
ORIGINSame as the best path
MULTI_EXIT_DISCSame as the best path
AS_PATH contentsExactly identical to the best path (the same sequence of AS numbers)

Each kind adds its own condition.

KindAdditional condition
eBGPLearned from an external (or confederation-external) peer, and the IGP metric to the NEXT_HOP equals that of the best path
iBGPLearned from an internal peer, and the IGP metric to the NEXT_HOP equals that of the best path

multipath-relax: ignoring the contents of AS_PATH

Of the conditions above, requiring the contents of AS_PATH to match is the one that gets in the way in production. When the same destination is received from two upstream ISPs, the AS_PATH lengths are equal but the transit ASes differ, so by default the routes are not bundled.

Enabling multipath-relax loosens that condition to the lengths being equal.

SettingRequirement on AS_PATH
DefaultContents identical (only 65001 65004 and 65001 65004 are bundled)
With multipath-relaxLengths equal (65001 65004 and 65003 65004 are bundled too)

Difference from ADD-PATH (RFC 7911)

ADD-PATH in RFC 7911 is another mechanism that deals with several routes, but the two operate at different layers. ADD-PATH is about how many routes are advertised to a peer; multipath is about how many are installed in the local forwarding table.

ItemMultipathADD-PATH (RFC 7911)
StandardizedNo (a per-implementation extension)RFC 7911
What it changesNumber of routes in the forwarding tableNumber of routes advertised to a peer
Difference seen by the peerNone (only the best path is advertised)Several routes for the same prefix arrive
MechanismLocal configuration onlyRequires capability exchange and a Path Identifier

ADD-PATH is covered in a separate article.

Configuration on IOS XR

eBGP multipath and multipath-relax
router bgp 65002
 bgp bestpath as-path multipath-relax
 address-family ipv4 unicast
  maximum-paths ebgp 3
iBGP multipath
router bgp 65001
 address-family ipv4 unicast
  maximum-paths ibgp 2
ItemDetail
maximum-paths ebgp <n>eBGP multipath, configured per address family. The accepted range is 2 to 1024 (XRd 26.1.1). Without it the value is 1 (no multipath)
maximum-paths ibgp <n> / eibgp <n>iBGP routes only / a mix of eBGP and iBGP
bgp bestpath as-path multipath-relaxLoosens the AS_PATH condition to length only
show bgp <prefix>Routes in the multipath set are marked multipath
show route <prefix>Several next hops are listed. This is where forwarding actually changes

Verification on real devices

Verified on six routers running XRd 26.1.1.

Verification topology for BGP multipath
  • In AS 65001, R1 and R2 are the borders and R3 is internal (iBGP full mesh, next-hop-self, OSPF area 0). AS 65002 is R4, AS 65003 is R5, AS 65004 is R6
  • Each of the three kinds is checked on a different router. The observation point changes with the STEP
Observation pointPrefixRoutes receivedKind checked
R4192.168.6.0/24Via R1 and via R2 (both AS_PATH 65001 65004, identical), and via R5 (65003 65004, only the length matches)eBGP multipath and multipath-relax
R3192.168.4.0/24Two iBGP routes, via R1 and via R2 (same IGP metric)iBGP multipath
R1192.168.4.0/24eBGP from R4 and iBGP from R2eiBGP multipath

Overview of the STEPs

STEPOperationWhat is checkedResultMain evidence
0No multipathInitial stateThree routes but one best path. A single next hop in the RIBR4 show bgp / show route
1maximum-paths ebgp 2 on R4Whether the two identical routes are bundled, and whether advertisements changeVia R1 and via R2 are marked multipath and both are in the RIB. The advertisement stays at one routeR4 show bgp / show route / advertised-routes
2multipath-relax plus ebgp 3 on R4Whether a route with different AS_PATH contents joinsVia R5 (65003 65004) joins, making threeR4 show bgp / show route
3LOCAL_PREF 90 for the route via R5, inbound on R4How a route with a differing attribute is treatedIt drops out of the set, back to two. The best path is unchangedR4 show bgp / show route
4maximum-paths ibgp 2 on R3Bundling iBGP routesR1’s Lo0 and R2’s Lo0 are both installedR3 show bgp / show route
5maximum-paths eibgp 2 on R1Mixing eBGP and iBGPThey are bundled. The iBGP route doubles as the backupR1 show bgp / show route
6Remove the configuration from STEP 1 to 5 (final state)RestorationThe multipath marks disappear and the RIB is back to one next hopR4 and R3 show bgp / show route

STEP 0: no multipath

R4 receives 192.168.6.0/24 over three paths. Via R1 and via R2 have exactly the same AS_PATH of 65001 65004, while via R5 is 65003 65004, matching only in length. Only the route via R1 is marked best, and nothing is marked multipath.

R4 show bgp 192.168.6.0/24 (STEP 0)
RP/0/RP0/CPU0:R4#show bgp 192.168.6.0/24
Thu Sep 10 08:43:44.630 UTC
<snip>
Paths: (3 available, best #1)
  Advertised IPv4 Unicast paths to peers (in unique update groups):
    10.4.5.5        
  Path #1: Received by speaker 0
  Advertised IPv4 Unicast paths to peers (in unique update groups):
    10.4.5.5        
  65001 65004, (received & used)
    10.1.4.1 from 10.1.4.1 (10.0.0.1)
      Origin IGP, localpref 100, valid, external, best, group-best
      Received Path ID 0, Local Path ID 1, version 13
      Origin-AS validity: (disabled)
  Path #2: Received by speaker 0
  Not advertised to any peer
  65001 65004, (received & used)
    10.2.4.2 from 10.2.4.2 (10.0.0.2)
      Origin IGP, localpref 100, valid, external
      Received Path ID 0, Local Path ID 0, version 0
      Origin-AS validity: (disabled)
  Path #3: Received by speaker 0
  Not advertised to any peer
  65003 65004, (received & used)
    10.4.5.5 from 10.4.5.5 (10.0.0.5)
      Origin IGP, localpref 100, valid, external, group-best
      Received Path ID 0, Local Path ID 0, version 0
      Origin-AS validity: (disabled)

The forwarding table has a single next hop as well.

R4 show route 192.168.6.0/24 (STEP 0)
RP/0/RP0/CPU0:R4#show route 192.168.6.0/24
Thu Sep 10 08:43:44.904 UTC

Routing entry for 192.168.6.0/24
  Known via "bgp 65002", distance 20, metric 0
  Tag 65001, type external
  Installed Sep 10 08:38:32.671 for 00:05:12
  Routing Descriptor Blocks
    10.1.4.1, from 10.1.4.1, BGP external
      Route metric is 0, Wt is 1
  No advertising protos. 

STEP 1: eBGP multipath (identical AS_PATH)

eBGP multipath is enabled on R4 for up to two routes.

R4
router bgp 65002
 address-family ipv4 unicast
  maximum-paths ebgp 2

Via R1 and via R2, whose AS_PATH is identical, are now marked multipath. Via R5 (65003 65004) is not, because its contents differ even though the length matches.

R4 show bgp 192.168.6.0/24 (STEP 1)
RP/0/RP0/CPU0:R4#show bgp 192.168.6.0/24
Thu Sep 10 08:51:16.528 UTC
<snip>
Paths: (3 available, best #1)
  Advertised IPv4 Unicast paths to peers (in unique update groups):
    10.4.5.5        
  Path #1: Received by speaker 0
  Advertised IPv4 Unicast paths to peers (in unique update groups):
    10.4.5.5        
  65001 65004, (received & used)
    10.1.4.1 from 10.1.4.1 (10.0.0.1)
      Origin IGP, localpref 100, valid, external, best, group-best, multipath
      Received Path ID 0, Local Path ID 1, version 17
      Origin-AS validity: (disabled)
  Path #2: Received by speaker 0
  Not advertised to any peer
  65001 65004, (received & used)
    10.2.4.2 from 10.2.4.2 (10.0.0.2)
      Origin IGP, localpref 100, valid, external, multipath
      Received Path ID 0, Local Path ID 0, version 0
      Origin-AS validity: (disabled)
  Path #3: Received by speaker 0
  Not advertised to any peer
  65003 65004, (received & used)
    10.4.5.5 from 10.4.5.5 (10.0.0.5)
      Origin IGP, localpref 100, valid, external, group-best
      Received Path ID 0, Local Path ID 0, version 0
      Origin-AS validity: (disabled)

The forwarding table now lists two next hops, marked BGP multi path. This is where load balancing actually happens.

R4 show route 192.168.6.0/24 (STEP 1)
RP/0/RP0/CPU0:R4#show route 192.168.6.0/24
Thu Sep 10 08:51:16.854 UTC

Routing entry for 192.168.6.0/24
  Known via "bgp 65002", distance 20, metric 0
  Tag 65001, type external
  Installed Sep 10 08:46:54.405 for 00:04:22
  Routing Descriptor Blocks
    10.1.4.1, from 10.1.4.1, BGP external, BGP multi path
      Route metric is 0
    10.2.4.2, from 10.2.4.2, BGP external, BGP multi path
      Route metric is 0
  No advertising protos. 

The advertisement toward R5, meanwhile, is still a single 192.168.6.0/24. Multipath or not, only the best path is advertised to a peer.

R4 show bgp neighbors 10.4.5.5 advertised-routes (STEP 1)
RP/0/RP0/CPU0:R4#show bgp neighbors 10.4.5.5 advertised-routes
Thu Sep 10 08:51:18.885 UTC
Network            Next Hop        From            AS Path
192.168.1.0/24     10.4.5.4        10.1.4.1        65002 65001i
192.168.2.0/24     10.4.5.4        10.1.4.1        65002 65001i
192.168.3.0/24     10.4.5.4        10.1.4.1        65002 65001i
192.168.4.0/24     10.4.5.4        Local           65002i
192.168.6.0/24     10.4.5.4        10.1.4.1        65002 65001 65004i

Processed 5 prefixes, 5 paths

STEP 2: multipath-relax ignores the contents of AS_PATH

The AS_PATH condition is loosened to length only, and the limit is raised to three.

R4
router bgp 65002
 bgp bestpath as-path multipath-relax
 address-family ipv4 unicast
  maximum-paths ebgp 3

Via R5 is now marked multipath as well, making three.

R4 show bgp 192.168.6.0/24 (STEP 2)
RP/0/RP0/CPU0:R4#show bgp 192.168.6.0/24
Thu Sep 10 09:01:35.709 UTC
<snip>
Paths: (3 available, best #1)
  Advertised IPv4 Unicast paths to peers (in unique update groups):
    10.4.5.5        
  Path #1: Received by speaker 0
  Advertised IPv4 Unicast paths to peers (in unique update groups):
    10.4.5.5        
  65001 65004, (received & used)
    10.1.4.1 from 10.1.4.1 (10.0.0.1)
      Origin IGP, localpref 100, valid, external, best, group-best, multipath
      Received Path ID 0, Local Path ID 1, version 22
      Origin-AS validity: (disabled)
  Path #2: Received by speaker 0
  Not advertised to any peer
  65001 65004, (received & used)
    10.2.4.2 from 10.2.4.2 (10.0.0.2)
      Origin IGP, localpref 100, valid, external, multipath
      Received Path ID 0, Local Path ID 0, version 0
      Origin-AS validity: (disabled)
  Path #3: Received by speaker 0
  Not advertised to any peer
  65003 65004, (received & used)
    10.4.5.5 from 10.4.5.5 (10.0.0.5)
      Origin IGP, localpref 100, valid, external, multipath
      Received Path ID 0, Local Path ID 0, version 0
      Origin-AS validity: (disabled)
R4 show route 192.168.6.0/24 (STEP 2)
RP/0/RP0/CPU0:R4#show route 192.168.6.0/24
Thu Sep 10 09:01:36.226 UTC

Routing entry for 192.168.6.0/24
  Known via "bgp 65002", distance 20, metric 0
  Tag 65001, type external
  Installed Sep 10 08:53:49.501 for 00:07:46
  Routing Descriptor Blocks
    10.1.4.1, from 10.1.4.1, BGP external, BGP multi path
      Route metric is 0
    10.2.4.2, from 10.2.4.2, BGP external, BGP multi path
      Route metric is 0
    10.4.5.5, from 10.4.5.5, BGP external, BGP multi path
      Route metric is 0
  No advertising protos. 

STEP 3: a differing attribute drops the route from the set

An inbound policy on R4 lowers the LOCAL_PREF of the routes received from R5 to 90, leaving the others at 100.

R4
route-policy FROM-R5
  set local-preference 90
  pass
end-policy
R4 show rpl route-policy FROM-R5 (STEP 3)
RP/0/RP0/CPU0:R4#show rpl route-policy FROM-R5
Thu Sep 10 09:17:03.317 UTC
route-policy FROM-R5
  set local-preference 90
  pass
end-policy
!

With a different LOCAL_PREF, the route via R5 drops out and only two routes are marked multipath again. The best path is still the one via R1. The (received-only) entry shows the value (100) before the inbound policy was applied.

R4 show bgp 192.168.6.0/24 (STEP 3)
RP/0/RP0/CPU0:R4#show bgp 192.168.6.0/24
Thu Sep 10 09:16:56.807 UTC
<snip>
Paths: (4 available, best #1)
  Advertised IPv4 Unicast paths to peers (in unique update groups):
    10.4.5.5        
  Path #1: Received by speaker 0
  Advertised IPv4 Unicast paths to peers (in unique update groups):
    10.4.5.5        
  65001 65004, (received & used)
    10.1.4.1 from 10.1.4.1 (10.0.0.1)
      Origin IGP, localpref 100, valid, external, best, group-best, multipath
      Received Path ID 0, Local Path ID 1, version 22
      Origin-AS validity: (disabled)
  Path #2: Received by speaker 0
  Not advertised to any peer
  65001 65004, (received & used)
    10.2.4.2 from 10.2.4.2 (10.0.0.2)
      Origin IGP, localpref 100, valid, external, multipath
      Received Path ID 0, Local Path ID 0, version 0
      Origin-AS validity: (disabled)
  Path #3: Received by speaker 0
  Not advertised to any peer
  65003 65004
    10.4.5.5 from 10.4.5.5 (10.0.0.5)
      Origin IGP, localpref 90, valid, external
      Received Path ID 0, Local Path ID 0, version 0
      Origin-AS validity: (disabled)
  Path #4: Received by speaker 0
  Not advertised to any peer
  65003 65004, (received-only)
    10.4.5.5 from 10.4.5.5 (10.0.0.5)
      Origin IGP, localpref 100, valid, external
      Received Path ID 0, Local Path ID 0, version 0
      Origin-AS validity: (disabled)
R4 show route 192.168.6.0/24 (STEP 3)
RP/0/RP0/CPU0:R4#show route 192.168.6.0/24
Thu Sep 10 09:16:57.124 UTC

Routing entry for 192.168.6.0/24
  Known via "bgp 65002", distance 20, metric 0
  Tag 65001, type external
  Installed Sep 10 09:06:59.186 for 00:09:58
  Routing Descriptor Blocks
    10.1.4.1, from 10.1.4.1, BGP external, BGP multi path
      Route metric is 0
    10.2.4.2, from 10.2.4.2, BGP external, BGP multi path
      Route metric is 0
  No advertising protos. 

STEP 4: iBGP multipath

The observation point moves to R3 inside AS 65001. R3 receives 192.168.4.0/24 over iBGP from both R1 and R2, with AS_PATH 65002 in both cases and an IGP metric of 2 to either NEXT_HOP.

R3
router bgp 65001
 address-family ipv4 unicast
  maximum-paths ibgp 2

Both routes become multipath.

R3 show bgp 192.168.4.0/24 (STEP 4)
RP/0/RP0/CPU0:R3#show bgp 192.168.4.0/24
Thu Sep 10 09:25:53.759 UTC
<snip>
Paths: (2 available, best #1)
  Not advertised to any peer
  Path #1: Received by speaker 0
  Not advertised to any peer
  65002, (received & used)
    10.0.0.1 (metric 2) from 10.0.0.1 (10.0.0.1)
      Origin IGP, metric 0, localpref 100, valid, internal, best, group-best, multipath
      Received Path ID 0, Local Path ID 1, version 16
  Path #2: Received by speaker 0
  Not advertised to any peer
  65002, (received & used)
    10.0.0.2 (metric 2) from 10.0.0.2 (10.0.0.2)
      Origin IGP, metric 0, localpref 100, valid, internal, multipath
      Received Path ID 0, Local Path ID 0, version 0

The next hops in the forwarding table are R1’s Loopback0 and R2’s Loopback0.

R3 show route 192.168.4.0/24 (STEP 4)
RP/0/RP0/CPU0:R3#show route 192.168.4.0/24
Thu Sep 10 09:25:54.366 UTC

Routing entry for 192.168.4.0/24
  Known via "bgp 65001", distance 200, metric 0
  Tag 65002, type internal
  Installed Sep 10 09:20:05.651 for 00:05:48
  Routing Descriptor Blocks
    10.0.0.1, from 10.0.0.1, BGP multi path
      Route metric is 0
    10.0.0.2, from 10.0.0.2, BGP multi path
      Route metric is 0
  No advertising protos. 

STEP 5: eiBGP multipath

R1 receives 192.168.4.0/24 from R4 over eBGP and from R2 over iBGP. Best path selection prefers the eBGP route, but maximum-paths eibgp bundles both.

R1
router bgp 65001
 address-family ipv4 unicast
  maximum-paths eibgp 2

Both are marked multipath. The iBGP route also carries backup and add-path. The help text for maximum-paths says “limit includes backup path”, so on XR a backup route counts toward the limit.

R1 show bgp 192.168.4.0/24 (STEP 5)
RP/0/RP0/CPU0:R1#show bgp 192.168.4.0/24
Thu Sep 10 09:34:10.977 UTC
<snip>
Paths: (2 available, best #2)
  Advertised IPv4 Unicast paths to update-groups (with more than one peer):
    0.4 
  Advertised IPv4 Unicast paths to peers (in unique update groups):
    10.1.6.6        
  Path #1: Received by speaker 0
  Not advertised to any peer
  65002, (received & used)
    10.0.0.2 (metric 3) from 10.0.0.2 (10.0.0.2)
      Origin IGP, metric 0, localpref 100, valid, internal, multipath, backup, add-path
      Received Path ID 0, Local Path ID 2, version 10
  Path #2: Received by speaker 0
  Advertised IPv4 Unicast paths to update-groups (with more than one peer):
    0.4 
  Advertised IPv4 Unicast paths to peers (in unique update groups):
    10.1.6.6        
  65002, (received & used)
    10.1.4.4 from 10.1.4.4 (10.0.0.4)
      Origin IGP, metric 0, localpref 100, valid, external, best, group-best, multipath
      Received Path ID 0, Local Path ID 1, version 10
      Origin-AS validity: (disabled)

In the forwarding table the iBGP route is shown as BGP backup path.

R1 show route 192.168.4.0/24 (STEP 5)
RP/0/RP0/CPU0:R1#show route 192.168.4.0/24
Thu Sep 10 09:34:11.563 UTC

Routing entry for 192.168.4.0/24
  Known via "bgp 65001", distance 20, metric 0
  Tag 65002
  Number of pic paths 1 , type internal and external
  Installed Sep 10 09:32:29.973 for 00:01:41
  Routing Descriptor Blocks
    10.0.0.2, from 10.0.0.2, BGP backup path, BGP multi path
      Route metric is 0
    10.1.4.4, from 10.1.4.4, BGP external, BGP multi path
      Route metric is 0
  No advertising protos. 

STEP 6: removing the configuration (final state)

maximum-paths and multipath-relax on R4, the LOCAL_PREF in FROM-R5, and maximum-paths on R3 and R1 are all removed. On R4 the multipath marks are gone and there is a single next hop again.

R4 show bgp 192.168.6.0/24 (final state)
RP/0/RP0/CPU0:R4#show bgp 192.168.6.0/24
Thu Sep 10 10:27:37.694 UTC
<snip>
Paths: (3 available, best #1)
  Advertised IPv4 Unicast paths to peers (in unique update groups):
    10.4.5.5        
  Path #1: Received by speaker 0
  Advertised IPv4 Unicast paths to peers (in unique update groups):
    10.4.5.5        
  65001 65004, (received & used)
    10.1.4.1 from 10.1.4.1 (10.0.0.1)
      Origin IGP, localpref 100, valid, external, best, group-best
      Received Path ID 0, Local Path ID 1, version 7
      Origin-AS validity: (disabled)
  Path #2: Received by speaker 0
  Not advertised to any peer
  65001 65004, (received & used)
    10.2.4.2 from 10.2.4.2 (10.0.0.2)
      Origin IGP, localpref 100, valid, external
      Received Path ID 0, Local Path ID 0, version 0
      Origin-AS validity: (disabled)
  Path #3: Received by speaker 0
  Not advertised to any peer
  65003 65004, (received & used)
    10.4.5.5 from 10.4.5.5 (10.0.0.5)
      Origin IGP, localpref 100, valid, external, group-best
      Received Path ID 0, Local Path ID 0, version 0
      Origin-AS validity: (disabled)
R4 show route 192.168.6.0/24 (final state)
RP/0/RP0/CPU0:R4#show route 192.168.6.0/24
Thu Sep 10 10:27:38.218 UTC

Routing entry for 192.168.6.0/24
  Known via "bgp 65002", distance 20, metric 0
  Tag 65001, type external
  Installed Sep 10 10:20:30.342 for 00:07:07
  Routing Descriptor Blocks
    10.1.4.1, from 10.1.4.1, BGP external
      Route metric is 0, Wt is 1
  No advertising protos. 

R3 is back to a single next hop as well.

R3 show route 192.168.4.0/24 (final state)
RP/0/RP0/CPU0:R3#show route 192.168.4.0/24
Thu Sep 10 10:26:16.879 UTC

Routing entry for 192.168.4.0/24
  Known via "bgp 65001", distance 200, metric 0
  Tag 65002, type internal
  Installed Sep 10 10:19:28.730 for 00:06:48
  Routing Descriptor Blocks
    10.0.0.1, from 10.0.0.1
      Route metric is 0, Wt is 1
  No advertising protos. 

Summary of the verification

  • There is always exactly one best path and advertised-routes does not change. Multipath changes only the forwarding table (STEP 1)
  • By default only routes whose AS_PATH contents match are bundled; multipath-relax reduces this to the length (STEP 1 and 2)
  • A route whose attribute differs from the best path, such as LOCAL_PREF, drops out of the set (STEP 3)
  • iBGP routes (STEP 4) and a mix of eBGP and iBGP (STEP 5) can be bundled as well
  • With eiBGP on XR, the iBGP route is marked backup at the same time as multipath (STEP 5)

Verification configs and show output

At every STEP the following three kinds of output were collected from all six routers, kept in separate files per router. The verification config is the ..._run.txt file (the final state is the STEP 6 one).

FileContents
..._show.txtshow version / show interface description / show route / show ospf neighbor / show bgp summary / show bgp / show bgp <prefix> (six prefixes) / show route 192.168.4.0/24 and 192.168.6.0/24 / show cef / show bgp neighbors / advertised-routes, routes and received routes per peer / show bgp update-group / show rpl route-policy
..._log.txtshow logging limited to that STEP. A marker was written with logmsg at the start of each STEP and its timestamp passed to show logging start
..._run.txtshow running-config at that STEP (that is, the verification config for the STEP)

STEP 0: no multipath

Routershow outputsyslogrunning-config
R1showlogrun
R2showlogrun
R3showlogrun
R4showlogrun
R5showlogrun
R6showlogrun

STEP 1: maximum-paths ebgp 2 on R4

Routershow outputsyslogrunning-config
R1showlogrun
R2showlogrun
R3showlogrun
R4showlogrun
R5showlogrun
R6showlogrun

STEP 2: multipath-relax and maximum-paths ebgp 3 on R4

Routershow outputsyslogrunning-config
R1showlogrun
R2showlogrun
R3showlogrun
R4showlogrun
R5showlogrun
R6showlogrun

STEP 3: LOCAL_PREF 90 for the route via R5, inbound on R4

Routershow outputsyslogrunning-config
R1showlogrun
R2showlogrun
R3showlogrun
R4showlogrun
R5showlogrun
R6showlogrun

STEP 4: maximum-paths ibgp 2 on R3

Routershow outputsyslogrunning-config
R1showlogrun
R2showlogrun
R3showlogrun
R4showlogrun
R5showlogrun
R6showlogrun

STEP 5: maximum-paths eibgp 2 on R1

Routershow outputsyslogrunning-config
R1showlogrun
R2showlogrun
R3showlogrun
R4showlogrun
R5showlogrun
R6showlogrun

STEP 6: removing the configuration (final state)

Routershow outputsyslogrunning-config
R1showlogrun
R2showlogrun
R3showlogrun
R4showlogrun
R5showlogrun
R6showlogrun

References

DocumentTitleSummary
RFC 4271A Border Gateway Protocol 4 (BGP-4)Section 9.1.2.2 limits the Loc-RIB to one route (it says nothing about multipath)
RFC 7911Advertisement of Multiple Paths in BGPADD-PATH, an extension for advertising several routes to a peer, at a different layer from multipath

Related articles