メインコンテンツへスキップ
  1. ネットワーク 記事一覧/
  2. OSPF記事一覧/

OSPFのECMP(等コストマルチパス)

目次

OSPFのECMP(等コストマルチパス)

同じ宛先へのコストが並んだとき、OSPFは1本に絞りません。同じコストの経路をすべてルーティングテーブルに載せ、トラフィックを分散します。これがECMP(Equal-Cost Multi-Path)です。

この記事では、ECMPがRFC 2328でどう定められているか、何本まで載るか、どういう基準で振り分けられるかを、IOS XRの実機で確認します。コストの決まり方はOSPFのコスト(メトリック)で解説しています。

RFC 2328の規定

ECMPは実装が独自に足した拡張ではなく、仕様の一部です。

上記の説明は、宛先ごとに1本の経路だけを考えることで単純化してきた。実際には、同じコストの経路が複数あれば、そのすべてが見つけられ、使われる。これはアルゴリズムの概念的な変更を必要としない。 (RFC 2328 Section 2.4)

並ぶ経路の条件はSection 16.8にあります。

複数の経路のそれぞれは、同じタイプ(エリア内、エリア間、タイプ1外部、タイプ2外部)、同じコストであり、同じエリアに属する。ただし、経路ごとにネクストホップと広告ルータが異なってよい。 (RFC 2328 Section 16.8)

つまり、違ってよいのはネクストホップと広告ルータだけです。 タイプやコストが違うものは並びません。

何本まで保持するかは実装が決めます。

OSPFを動かすルータが、宛先へのすべての等コスト経路を把握している必要はない。実装は、任意の宛先について固定数の経路だけを保持することを選んでよい。これは本仕様のどのアルゴリズムにも影響しない。 (RFC 2328 Section 16.8)

機種ごとの上限は、この規定に基づく実装側の値です。

OSコマンド範囲
IOS XR(XRd 26.1.1)router ospf <プロセス>配下のmaximum paths1〜64(後半のヘルプで確認)
IOS XErouter ospf <プロセス>配下のmaximum-paths1〜32、既定4(Cisco IOS IP Routing: OSPF Command Reference

振り分けを決めるのは転送側

ルーティングテーブルに複数のネクストホップが載ったあと、どのパケットをどの経路へ流すかはOSPFではなく転送側(CEF)が決めます。既定は送信元・宛先のアドレスから計算するハッシュで、同じ組み合わせのパケットは必ず同じ経路を通ります(フロー単位の分散)。パケットごとに振り分けると到着順序が入れ替わるためです。

この性質から、1つの宛先へpingtracerouteを打っても1本しか見えません。複数の経路が使われていることは、宛先を変えるか、各経路のカウンタを見て確かめます。

実機での検証

検証環境

検証構成: R1からR5まで、P1〜P4を経由する等コストの4経路

Cisco IOS XR(XRd 26.1.1)6台です。R1からR5まで、P1〜P4を経由するコストの等しい経路が4本あります。全リンクをポイントツーポイント・コスト1・エリア0にしてあるので、R1から見るとどの経路もコスト3です。

R5には172.16.0.1/32172.16.0.8/32の8つのLoopbackを持たせています。宛先を変えたときに振り分けがどう変わるかを見るためです。

検証のSTEP

STEP操作確かめること
0初期状態4本すべてがRIBとFIBに載る。8つの宛先がどの経路を通るか
1R1にmaximum paths 22本に減る
2R1にmaximum paths 11本になる(ECMPをやめた状態)
3R1でno maximum paths既定に戻って4本
4R1 - P4間のコストを両端で5に等コストでなくなり3本
5コストを1に戻す(最終状態)4本

設定できる範囲(STEP 0の前)

router ospf配下でmaximum paths ?と打った結果です。

R1 maximum paths のヘルプ
RP/0/RP0/CPU0:R1(config)#router ospf 1

RP/0/RP0/CPU0:R1(config-ospf)#maximum ?

  interfaces              Limit number of interfaces
  paths                   Limit number of paths
  redistributed-prefixes  Limit number of redistributed prefixes
RP/0/RP0/CPU0:R1(config-ospf)#maximum 

% Incomplete command.
RP/0/RP0/CPU0:R1(config-ospf)#maximum paths ?

  <1-64>                   Maximum number of paths per route

IOS XRでは1〜64です。既定値はヘルプに出ないので、後半のSTEP 3でno maximum pathsに戻したときの本数で確認します。

等コストの4本が載る(STEP 0)

R1のルーティングテーブルです。

STEP 0 R1 show route 172.16.0.1/32
RP/0/RP0/CPU0:R1#show route 172.16.0.1/32
Wed Sep 23 04:46:42.077 UTC

Routing entry for 172.16.0.1/32
  Known via "ospf 1", distance 110, metric 3, type intra area
  Installed Sep 23 04:40:24.867 for 00:06:17
  Routing Descriptor Blocks
    10.0.11.2, from 6.6.6.6, via GigabitEthernet0/0/0/0
      Route metric is 3
    10.0.12.2, from 6.6.6.6, via GigabitEthernet0/0/0/1
      Route metric is 3
    10.0.13.2, from 6.6.6.6, via GigabitEthernet0/0/0/2
      Route metric is 3
    10.0.14.2, from 6.6.6.6, via GigabitEthernet0/0/0/3
      Route metric is 3
  No advertising protos. 

4つのネクストホップがすべて載っています。 メトリックはどれも3で、違うのはネクストホップと出ていくインタフェースだけです。RFC 2328のSection 16.8が「違ってよいのはネクストホップと広告ルータだけ」としているとおりです。

転送表(FIB)にも同じ4本が入っています。

STEP 0 R1 show cef 172.16.0.1/32 detail
RP/0/RP0/CPU0:R1#show cef 172.16.0.1/32 detail
Wed Sep 23 04:46:43.069 UTC
172.16.0.1/32, version 51, internal 0x1000001 0x10 (ptr 0x882972c0) [1], 0x400 (0x894f1f98), 0x0 (0x0)
 Updated Sep 23 04:40:24.911 
 local adjacency to GigabitEthernet0/0/0/0

 Prefix Len 32, traffic index 0, precedence n/a, priority 1
  gateway array (0x8938b848) reference count 9, flags 0x0, source rib (7), 0 backups
                [10 type 3 flags 0x8401 (0x8942e220) ext 0x0 (0x0)]
  LW-LDI[type=3, refc=1, ptr=0x894f1f98, sh-ldi=0x8942e220]
  gateway array update type-time 1 Sep 23 04:40:24.874
 LDI Update time Sep 23 04:40:24.911
 LW-LDI-TS Sep 23 04:40:24.911
   via 10.0.11.2/32, GigabitEthernet0/0/0/0, 7 dependencies, weight 0, class 0 [flags 0x0]
    path-idx 0 NHID 0x2 [0x8a75b500 0x0]
    next hop 10.0.11.2/32
    local adjacency
   via 10.0.12.2/32, GigabitEthernet0/0/0/1, 7 dependencies, weight 0, class 0 [flags 0x0]
    path-idx 1 NHID 0x3 [0x8a75b640 0x0]
    next hop 10.0.12.2/32
    local adjacency
   via 10.0.13.2/32, GigabitEthernet0/0/0/2, 7 dependencies, weight 0, class 0 [flags 0x0]
    path-idx 2 NHID 0x4 [0x8a75b780 0x0]
    next hop 10.0.13.2/32
    local adjacency
   via 10.0.14.2/32, GigabitEthernet0/0/0/3, 7 dependencies, weight 0, class 0 [flags 0x0]
    path-idx 3 NHID 0x5 [0x8a75b8c0 0x0]
    next hop 10.0.14.2/32
    local adjacency

    Load distribution: 0 1 2 3 (refcount 10)

    Hash  OK  Interface                 Address
    0     Y   GigabitEthernet0/0/0/0    10.0.11.2      
    1     Y   GigabitEthernet0/0/0/1    10.0.12.2      
    2     Y   GigabitEthernet0/0/0/2    10.0.13.2      
    3     Y   GigabitEthernet0/0/0/3    10.0.14.2      

path-idx 03が、ハッシュの結果を割り当てる4つの入れ物です。

宛先ごとに通る経路が変わる(STEP 0)

8つの宛先へtracerouteを打つと、1ホップ目が宛先ごとに変わります。

STEP 0 R1 traceroute 172.16.0.1
RP/0/RP0/CPU0:R1#traceroute 172.16.0.1 source 1.1.1.1 timeout 1 probe 3 maxttl 4
Wed Sep 23 04:46:06.381 UTC

Type escape sequence to abort.
Tracing the route to 172.16.0.1

 1  10.0.14.2 80 msec  5 msec  5 msec 
 2  10.0.24.5 74 msec  *  9 msec 
STEP 0 R1 traceroute 172.16.0.5
RP/0/RP0/CPU0:R1#traceroute 172.16.0.5 source 1.1.1.1 timeout 1 probe 3 maxttl 4
Wed Sep 23 04:46:14.858 UTC

Type escape sequence to abort.
Tracing the route to 172.16.0.5

 1  10.0.11.2 19 msec  4 msec  4 msec 
 2  10.0.21.5 8 msec  *  10 msec 
STEP 0 R1 traceroute 172.16.0.8
RP/0/RP0/CPU0:R1#traceroute 172.16.0.8 source 1.1.1.1 timeout 1 probe 3 maxttl 4
Wed Sep 23 04:46:20.723 UTC

Type escape sequence to abort.
Tracing the route to 172.16.0.8

 1  10.0.12.2 8 msec  6 msec  4 msec 
 2  10.0.22.5 37 msec  *  10 msec 

8つの宛先の1ホップ目をまとめると次のようになりました(採取ファイルの..._ping.txt)。

宛先1ホップ目経由
172.16.0.110.0.14.2P4
172.16.0.210.0.14.2P4
172.16.0.310.0.13.2P3
172.16.0.410.0.13.2P3
172.16.0.510.0.11.2P1
172.16.0.610.0.14.2P4
172.16.0.710.0.14.2P4
172.16.0.810.0.12.2P2

同じ宛先への3回のプローブはすべて同じ経路を通り、宛先が変わると経路も変わります。 ハッシュがフロー単位である、という前半の説明のとおりです。均等には割れません。 8つの宛先が4つの入れ物に散った結果で、この回はP4に4つ、P3に2つ、P1とP2に1つずつ当たりました。

各中継の入力カウンタにも同じ偏りが出ます。STEP 0では、8つの宛先へ50発ずつ(計400発)のpingとtracerouteを流す前にカウンタをクリアしています。

STEP 0 P1 show interface GigabitEthernet0/0/0/0(R1側)
GigabitEthernet0/0/0/0 is up, line protocol is up 
  Interface state transitions: 1
  Hardware is GigabitEthernet, address is 5254.00d4.4e7c (bia 5254.00d4.4e7c)
  Description: to R1
  Internet address is 10.0.11.2/24
  MTU 1514 bytes, BW 1000000 Kbit (Max: 1000000 Kbit)
     reliability 255/255, txload 0/255, rxload 0/255
  Encapsulation ARPA,
  Full-duplex, 1000Mb/s, unknown, link type is force-up
  output flow control is off, input flow control is off
  Carrier delay (up) is 10 msec
  loopback not set,
  Last link flapped 00:07:26
  ARP type ARPA, ARP timeout 04:00:00
  Last input 00:00:00, output 00:00:00
  Last clearing of "show interface" counters 00:01:42
  5 minute input rate 0 bits/sec, 0 packets/sec
  5 minute output rate 0 bits/sec, 1 packets/sec
     68 packets input, 7276 bytes, 0 total input drops
     0 drops for unrecognized upper-level protocol
     Received 0 broadcast packets, 12 multicast packets
              0 runts, 0 giants, 0 throttles, 0 parity
     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
     169 packets output, 19030 bytes, 0 total output drops
     Output 0 broadcast packets, 11 multicast packets
     0 output errors, 0 underruns, 0 applique, 0 resets
     0 output buffer failures, 0 output buffers swapped out
     0 carrier transitions
STEP 0 P2 show interface GigabitEthernet0/0/0/0(R1側)
GigabitEthernet0/0/0/0 is up, line protocol is up 
  Interface state transitions: 1
  Hardware is GigabitEthernet, address is 5254.00e5.b90a (bia 5254.00e5.b90a)
  Description: to R1
  Internet address is 10.0.12.2/24
  MTU 1514 bytes, BW 1000000 Kbit (Max: 1000000 Kbit)
     reliability 255/255, txload 0/255, rxload 0/255
  Encapsulation ARPA,
  Full-duplex, 1000Mb/s, unknown, link type is force-up
  output flow control is off, input flow control is off
  Carrier delay (up) is 10 msec
  loopback not set,
  Last link flapped 00:07:45
  ARP type ARPA, ARP timeout 04:00:00
  Last input 00:00:01, output 00:00:01
  Last clearing of "show interface" counters 00:02:09
  5 minute input rate 0 bits/sec, 0 packets/sec
  5 minute output rate 0 bits/sec, 1 packets/sec
     121 packets input, 13274 bytes, 0 total input drops
     0 drops for unrecognized upper-level protocol
     Received 0 broadcast packets, 15 multicast packets
              0 runts, 0 giants, 0 throttles, 0 parity
     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
     228 packets output, 25932 bytes, 0 total output drops
     Output 0 broadcast packets, 13 multicast packets
     0 output errors, 0 underruns, 0 applique, 0 resets
     0 output buffer failures, 0 output buffers swapped out
     0 carrier transitions
STEP 0 P3 show interface GigabitEthernet0/0/0/0(R1側)
GigabitEthernet0/0/0/0 is up, line protocol is up 
  Interface state transitions: 1
  Hardware is GigabitEthernet, address is 5254.00c4.9ab7 (bia 5254.00c4.9ab7)
  Description: to R1
  Internet address is 10.0.13.2/24
  MTU 1514 bytes, BW 1000000 Kbit (Max: 1000000 Kbit)
     reliability 255/255, txload 0/255, rxload 0/255
  Encapsulation ARPA,
  Full-duplex, 1000Mb/s, unknown, link type is force-up
  output flow control is off, input flow control is off
  Carrier delay (up) is 10 msec
  loopback not set,
  Last link flapped 00:08:15
  ARP type ARPA, ARP timeout 04:00:00
  Last input 00:00:00, output 00:00:00
  Last clearing of "show interface" counters 00:02:36
  5 minute input rate 0 bits/sec, 0 packets/sec
  5 minute output rate 0 bits/sec, 0 packets/sec
     130 packets input, 13912 bytes, 0 total input drops
     0 drops for unrecognized upper-level protocol
     Received 0 broadcast packets, 18 multicast packets
              0 runts, 0 giants, 0 throttles, 0 parity
     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
     25 packets output, 2818 bytes, 0 total output drops
     Output 0 broadcast packets, 17 multicast packets
     0 output errors, 0 underruns, 0 applique, 0 resets
     0 output buffer failures, 0 output buffers swapped out
     0 carrier transitions
STEP 0 P4 show interface GigabitEthernet0/0/0/0(R1側)
GigabitEthernet0/0/0/0 is up, line protocol is up 
  Interface state transitions: 1
  Hardware is GigabitEthernet, address is 5254.00ad.0eed (bia 5254.00ad.0eed)
  Description: to R1
  Internet address is 10.0.14.2/24
  MTU 1514 bytes, BW 1000000 Kbit (Max: 1000000 Kbit)
     reliability 255/255, txload 0/255, rxload 0/255
  Encapsulation ARPA,
  Full-duplex, 1000Mb/s, unknown, link type is force-up
  output flow control is off, input flow control is off
  Carrier delay (up) is 10 msec
  loopback not set,
  Last link flapped 00:08:37
  ARP type ARPA, ARP timeout 04:00:00
  Last input 00:00:01, output 00:00:01
  Last clearing of "show interface" counters 00:03:03
  5 minute input rate 0 bits/sec, 1 packets/sec
  5 minute output rate 0 bits/sec, 0 packets/sec
     247 packets input, 26334 bytes, 0 total input drops
     0 drops for unrecognized upper-level protocol
     Received 0 broadcast packets, 21 multicast packets
              0 runts, 0 giants, 0 throttles, 0 parity
     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
     131 packets output, 14886 bytes, 0 total output drops
     Output 0 broadcast packets, 19 multicast packets
     0 output errors, 0 underruns, 0 applique, 0 resets
     0 output buffer failures, 0 output buffers swapped out
     0 carrier transitions

P1が68、P2が121、P3が130、P4が247パケットでした(OSPFのHelloとLSAも含みます)。tracerouteの結果と同じ並びです。

保持する本数を変える(STEP 1〜3)

R1でmaximum pathsを2にしました。

STEP 1 R1 commitされた設定
RP/0/RP0/CPU0:R1#show configuration commit changes last 1
Wed Sep 23 04:49:44.445 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
router ospf 1
 maximum paths 2
!
end
STEP 1 R1 show route 172.16.0.1/32
RP/0/RP0/CPU0:R1#show route 172.16.0.1/32
Wed Sep 23 04:52:09.210 UTC

Routing entry for 172.16.0.1/32
  Known via "ospf 1", distance 110, metric 3, type intra area
  Installed Sep 23 04:49:43.669 for 00:02:25
  Routing Descriptor Blocks
    10.0.11.2, from 6.6.6.6, via GigabitEthernet0/0/0/0
      Route metric is 3
    10.0.14.2, from 6.6.6.6, via GigabitEthernet0/0/0/3
      Route metric is 3
  No advertising protos. 
STEP 2 R1 show route 172.16.0.1/32
RP/0/RP0/CPU0:R1#show route 172.16.0.1/32
Wed Sep 23 04:57:39.656 UTC

Routing entry for 172.16.0.1/32
  Known via "ospf 1", distance 110, metric 3, type intra area
  Installed Sep 23 04:55:12.909 for 00:02:26
  Routing Descriptor Blocks
    10.0.14.2, from 6.6.6.6, via GigabitEthernet0/0/0/3
      Route metric is 3
  No advertising protos. 
STEP 3 R1 show route 172.16.0.1/32
RP/0/RP0/CPU0:R1#show route 172.16.0.1/32
Wed Sep 23 05:03:08.953 UTC

Routing entry for 172.16.0.1/32
  Known via "ospf 1", distance 110, metric 3, type intra area
  Installed Sep 23 05:00:42.608 for 00:02:26
  Routing Descriptor Blocks
    10.0.11.2, from 6.6.6.6, via GigabitEthernet0/0/0/0
      Route metric is 3
    10.0.12.2, from 6.6.6.6, via GigabitEthernet0/0/0/1
      Route metric is 3
    10.0.13.2, from 6.6.6.6, via GigabitEthernet0/0/0/2
      Route metric is 3
    10.0.14.2, from 6.6.6.6, via GigabitEthernet0/0/0/3
      Route metric is 3
  No advertising protos. 

2本、1本と減り、no maximum pathsで4本に戻りました。既定のままで4本とも載るので、IOS XRの既定値は4以上です(このラボには等コストが4本しかないため、上限の実数はここでは決められません)。

maximum paths 1は、ECMPをやめて1本だけ使う設定です。この回に残ったのは10.0.14.2(P4)でした。コストが同じなら、どれが残るかは設定では決められません。 特定の経路を使わせたいならコストで差を付けます。

なお、ヘルプに出ているper-prefix-distributionは、複数の経路をプレフィックス単位で割り当てる設定です(この検証では使っていません)。

等コストでなくなると外れる(STEP 4)

R1 - P4間のコストを両端で5にしました。

STEP 4 R1 commitされた設定
RP/0/RP0/CPU0:R1#show configuration commit changes last 1
Wed Sep 23 05:06:12.638 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
router ospf 1
 area 0
  interface GigabitEthernet0/0/0/3
   cost 5
  !
 !
!
end
STEP 4 R1 show route 172.16.0.1/32
RP/0/RP0/CPU0:R1#show route 172.16.0.1/32
Wed Sep 23 05:09:13.079 UTC

Routing entry for 172.16.0.1/32
  Known via "ospf 1", distance 110, metric 3, type intra area
  Installed Sep 23 05:06:12.108 for 00:03:01
  Routing Descriptor Blocks
    10.0.11.2, from 6.6.6.6, via GigabitEthernet0/0/0/0
      Route metric is 3
    10.0.12.2, from 6.6.6.6, via GigabitEthernet0/0/0/1
      Route metric is 3
    10.0.13.2, from 6.6.6.6, via GigabitEthernet0/0/0/2
      Route metric is 3
  No advertising protos. 

P4経由だけが外れて3本になりました。 コストが7になり、他の3本(3)と並ばなくなったためです。ECMPは「コストが同じ」ことだけを条件にするので、わずかな差でも落ちます。

設計上の注意

  • 等コストにするかどうかは設計で決める。 帯域の違うリンクを等コストにすると、細いほうへも同じだけ流れる。コストはOSPFのコスト(メトリック)の参照帯域幅で調整する
  • 分散はフロー単位なので、1本あたりの流量は宛先の散り方しだい。 本数で均等に割れる前提で容量を見積もらない
  • maximum pathsを1にしてもどの経路が残るかは選べない。 特定の経路を使わせたいならコストで差を付ける

検証Configおよびshow結果

各STEPで6台すべてから、次のファイルをルータごとに分けて取得しています。検証Configはこの..._run.txtです(最終状態は最後のSTEPのもの)。

ファイル内容
..._show.txtshow version / show interface description / show interface / show route / show route ospfshow ospf系一式(interface / neighbor / database / database router / database network / statistics interface / routes)、show route 172.16.0.1/32 / show route 172.16.0.2/32 / show route 6.6.6.6/32 / show cef 172.16.0.1/32detailも) / show route summary / show configuration commit list
..._log.txtそのSTEPの範囲だけに絞ったshow logging
..._run.txtそのSTEP時点のshow running-config(=そのSTEPの検証Config)
..._trace.txtshow ospf trace spf | include Begin SPFshow ospf trace errors
..._ping.txtR1から172.16.0.1.8へのping(各50発)とtraceroute、R5から1.1.1.1へのpingtraceroute
..._clear.txtそのSTEPのpingの前にクリアしたカウンタ(インタフェース統計とOSPFの統計)
..._commit.cfgそのSTEPでcommitされた設定(show configuration commit changes last 1

設定を変えていないSTEPとルータにはcommit.cfgがありません。maximum pathsのヘルプはprecheckにあります。経路計算と転送の結果が主題なので、パケットキャプチャーは取っていません。

STEP 0:初期状態(等コスト4本)

ルータshow出力syslogrunning-configtracepingクリアcommit
R1showlogruntracepingclear
P1showlogruntraceclear
P2showlogruntraceclear
P3showlogruntraceclear
P4showlogruntraceclear
R5showlogruntracepingclear

STEP 1:R1にmaximum paths 2

ルータshow出力syslogrunning-configtracepingクリアcommit
R1showlogruntracepingclearcommit
P1showlogruntraceclear
P2showlogruntraceclear
P3showlogruntraceclear
P4showlogruntraceclear
R5showlogruntracepingclear

STEP 2:R1にmaximum paths 1

ルータshow出力syslogrunning-configtracepingクリアcommit
R1showlogruntracepingclearcommit
P1showlogruntraceclear
P2showlogruntraceclear
P3showlogruntraceclear
P4showlogruntraceclear
R5showlogruntracepingclear

STEP 3:R1でno maximum paths(既定に戻す)

ルータshow出力syslogrunning-configtracepingクリアcommit
R1showlogruntracepingclearcommit
P1showlogruntraceclear
P2showlogruntraceclear
P3showlogruntraceclear
P4showlogruntraceclear
R5showlogruntracepingclear

STEP 4:R1 - P4間のコストを両端で5に上げる

ルータshow出力syslogrunning-configtracepingクリアcommit
R1showlogruntracepingclearcommit
P1showlogruntraceclear
P2showlogruntraceclear
P3showlogruntraceclear
P4showlogruntraceclearcommit
R5showlogruntracepingclear

STEP 5:コストを1に戻す(最終状態)

ルータshow出力syslogrunning-configtracepingクリアcommit
R1showlogruntracepingclearcommit
P1showlogruntraceclear
P2showlogruntraceclear
P3showlogruntraceclear
P4showlogruntraceclearcommit
R5showlogruntracepingclear

参考

出典参照した箇所
RFC 2328 OSPF Version 2Section 2.4(等コストマルチパス)、Section 16.8(並ぶ経路の条件と保持数)
Cisco IOS IP Routing: OSPF Command ReferenceIOS XEのmaximum-paths(範囲1〜32、既定4)
実機Cisco IOS XR(XRd 26.1.1)6台。maximum pathsの範囲は設定モードのヘルプで確認

関連記事