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

IS-ISの収束タイマー(SPF / LSP生成)

目次

IS-ISの収束タイマー(SPF / LSP生成)

リンクが落ちたりメトリックが変わったりすると、IS-ISはLSPを作り直し、それを受け取ったルータがSPFで経路を計算し直します。変化が1回なら、すぐに作り直してすぐに計算するほど早く収束します。しかしリンクが断続的に切れるような状況では、変化のたびに作り直しと計算を繰り返すとCPUが追いつかず、かえって全体が落ち着きません。

そこでIS-ISの実装は、LSPの作り直しとSPFの実行をわざと少し遅らせ、変化が続くほど遅らせる時間を伸ばします。この記事では、その遅らせ方を規格・RFC・Ciscoの説明で整理し、IOS XRの実機でミリ秒単位の時刻から確かめます。

LSPの周期的な作り直し(lsp-refresh-interval)と寿命(max-lsp-lifetime)はIS-ISのLSP、完全SPFと部分計算の違いとshow isis spf-logの読み方はIS-ISのSPF計算と経路選択で解説しています。

規格が決めているのはLSP生成のホールドダウンだけ

ISO/IEC 10589:2002(第2版)は、LSPを作り直す間隔に下限を設けています。7.3.6節の末尾はこうです。

個々のLSPの生成には、ホールドダウンタイマー(minimumLSPGenerationInterval)がある。

7.3.21節の定義では、minimumLSPGenerationIntervalは「発信元のISが自分のLSPを作り直すまでに少なくとも待たなければならない時間」で、妥当な値は30秒とされています(附属書の既定値も30秒)。規格の段階では、変化の回数によらない固定のホールドダウンです。

作り直すのは、中身が変わるときです。同じ7.3.6節の冒頭は次のとおりです。

情報の中身が変わるような出来事が起きたとき、ISはLSPを生成しなければならない。(中略)そのような出来事が起きたとき、ISは変わったLSPを新しいシーケンス番号で作り直す。

つまり新しいシーケンス番号を付けるのは中身が変わったLSPだけです。待っている間に変化が行って戻り、前に送ったLSPと中身が同じになった場合、新しいLSPは送られず、受け取る側のSPFも走りません。

一方、SPF(規格の言葉では決定プロセス)をいつ走らせるかについて、規格はタイマーを定めていません。LSPデータベースが変わったら決定プロセスに知らせる、とだけ書かれています。SPFの遅らせ方は、実装とRFCの領域です。

Ciscoの指数バックオフ

IOS XRのspf-interval(SPF)とlsp-gen-interval(LSP生成)は、3つの値で遅らせ方を決めます。

意味
initial-wait最初のイベントから、SPF / LSP生成を始めるまでの待ち
secondary-wait続くイベントでの待ちの基準。回を追うごとに倍になる
maximum-wait待ちの上限

CiscoのIOS XEのIS-IS設定ガイドは、倍になる様子と、元に戻る条件をこう説明しています。

この増分の値は、上限に達するまで、イベントの間で指数的に増える。たとえば、1つ目と2つ目のイベントの間は増分値の1倍、2つ目と3つ目の間は2倍、3つ目と4つ目の間は4倍、4つ目と5つ目の間は8倍となり、設定した上限に達するまで続く。

設定した上限の待ちの2倍の時間、新しいトリガーを受け取らなければ、ネットワークは安定したとみなされ、初期の待ちに戻る。

既定値はSPF・LSP生成とも50 / 200 / 5000ミリ秒です。Ciscoの既定値変更の案内は、IOSの既定値をこの値に揃えたうえで「IOS XRの既定値と同じ」と述べています。

R1:spf-interval ?
RP/0/RP0/CPU0:R1(config-isis-af)#spf-interval ?

  ietf            Use RFC 8405 backoff algorithm
  initial-wait    Initial delay before running a route calculation in milliseconds, default is 50
  secondary-wait  Secondary delay before running a route calculation in milliseconds, default is 200
  maximum-wait    Maximum delay before running a route calculation in milliseconds, default is 5000
R1:lsp-gen-interval ?
RP/0/RP0/CPU0:R1(config-isis)#lsp-gen-interval ?

  initial-wait    Initial delay before generating an LSP in milliseconds, default is 50
  secondary-wait  Secondary delay before generating an LSP in milliseconds, default is 200
  maximum-wait    Maximum delay before generating an LSP in milliseconds, default is 5000

たとえばinitial-wait 1000 secondary-wait 2000 maximum-wait 16000なら、イベントが続く限り待ちは1秒、2秒、4秒、8秒、16秒と伸びて16秒で止まり、32秒静かになると1秒に戻ります。待っている間に届いたイベントは、次の1回のSPF / LSP生成にまとめて反映されます。

IOS XRは、待ちを前回の計算(生成)の終わりから数えます。そのうえで、トリガーから少なくともinitial-waitは待ちます。SPFごとの待ちはshow isis spf-log detailDelay(最初のトリガーから計算までの時間)とNext Wait Interval(次に使う待ち)で確認できます。

RFC 8405の遅らせ方

RFC 8405は、SPFの遅らせ方をリンクステートIGPで共通にするためのアルゴリズムです。回数ではなく最初のイベントからの時間で待ちを切り替える点が、Ciscoの指数バックオフと違います。4節はその理由をこう書いています。

ネットワーク全体での一貫性を高めるため、このアルゴリズムは、実行したSPF計算の回数ではなく、最初のIGPイベントからの時間(TIME_TO_LEARN_INTERVAL)を使う。ルータごとにIGPイベントを受け取るタイミングが違うので、すべてのルータが同じ回数のSPF計算を行うとは限らないからだ。

5節の状態機械は3つの状態を持ちます。

状態入る条件この状態でのSPFの待ち
QUIET起動時。HOLDDOWN_INTERVALの間イベントが無かったINITIAL_SPF_DELAY
SHORT_WAITQUIETでイベントを受け取ったSHORT_SPF_DELAY
LONG_WAITSHORT_WAITに入ってからTIME_TO_LEARN_INTERVALが経ったLONG_SPF_DELAY

6節は、既定で有効にする実装はINITIAL 50ミリ秒、SHORT 200ミリ秒、LONG 5000ミリ秒、TIME_TO_LEARN 500ミリ秒、HOLDDOWN 10000ミリ秒を実装すべき(SHOULD)としています。IOS XRではspf-interval ietfで、この方式に切り替えます。

たとえばINITIAL 1秒・SHORT 2秒・LONG 16秒・TIME_TO_LEARN 6秒・HOLDDOWN 20秒なら、最初のイベントから6秒間はSPFの待ちが2秒、それを過ぎると16秒に一段で切り替わります。Ciscoの方式のように4秒・8秒と段階的には伸びません。20秒間イベントが無ければQUIETに戻り、次のイベントは再び1秒後に計算されます。

R1:spf-interval ietf ?
RP/0/RP0/CPU0:R1(config-isis-af)#spf-interval ietf ?

  initial-wait       Initial delay before running a route calculation in milliseconds, default is 50
  short-wait         Short delay before running a route calculation in milliseconds, default is 200
  long-wait          Long delay before running a route calculation in milliseconds, default is 5000
  learn-interval     Time To Learn interval for running a route calculation in milliseconds, default is 500
  holddown-interval  Holddown interval for running a route calculation in milliseconds, default is 10000
  level              Set SPF interval for one level only
  <cr>               

2つの方式を並べると、次のとおりです。

項目Ciscoの指数バックオフRFC 8405(spf-interval ietf
待ちを伸ばすきっかけ前回からのイベントの回数最初のイベントからの時間
待ちの段階初回、以後は倍々で上限までINITIAL → SHORT → LONG の3段
元に戻る条件上限の2倍の時間イベントが無いHOLDDOWN_INTERVALの間イベントが無い
LSP生成への適用lsp-gen-intervalも同じ方式SPFだけを定める

実機での検証

検証環境

R1〜R3は単一エリア49.0001level-2-only(wide)で、リンクのメトリックはすべて10です。ソフトウェアはXRd 26.1.1です。

ルータLo0役割
R11.1.1.1/32SPFの待ちを観測する。spf-intervalを変えるのはR1だけ
R22.2.2.2/32イベントを起こす。R3向けのGi0/0/0/1のメトリックを20と10に交互にcommitする。lsp-gen-intervalを変えるのはR2だけ
R33.3.3.3/32R2の先。R1から見た3.3.3.3/32のメトリックがイベントのたびに30と20に変わる

1回のイベントは、R2にSSHで入ってメトリックを変え、commitするまでです。続けて起こすとcommitの処理時間が乗るため、間隔は約3.5秒になりました。LSP生成の時刻はR2のshow isis lsp-logとtrace、SPFの時刻と待ちはR1のshow isis spf-log detail、実際に流れたLSPはR1 — R2間のキャプチャーで見ます。

検証のSTEP

STEP操作確かめること
0既定R1からR3へ届く
1既定値のまま単発のイベントR2のLSP生成とR1のSPFが、どちらも50ミリ秒ほどで走る
2R1のspf-intervalを1000 / 2000 / 16000ミリ秒に設定だけではSPFは走らない
3約3.5秒おきに10回のイベントR1のSPFの待ちが2・4・8・16秒と伸びて止まり、待ちの間のLSPは1回のSPFにまとまる
4間隔を空けた単発のイベント(前回から約22秒・約46秒・約42秒)32秒未満では待ちが伸びたまま、32秒以上で戻る
5R1を既定に戻し、R2のlsp-gen-intervalを1000 / 2000 / 16000ミリ秒にしてイベントを続けるR2のLSP生成の間隔が4・8・16秒と伸び、中身が戻った生成は流れない
6R2を既定に戻し、R1をspf-interval ietfにしてイベントを続けるSPFの待ちが2秒から16秒へ一段で切り替わる
7spf-interval ietfのまま間隔を空けた単発のイベントを2回起こし、R1を既定に戻す(最終状態)HOLDDOWNの後はQUIETに戻り、1秒で計算する。設定がSTEP 0と一致する

STEP 0:既定

R1はR2経由でR3のLo0に届いています。

STEP 0 R1:traceroute 3.3.3.3
RP/0/RP0/CPU0:R1#traceroute 3.3.3.3 source 1.1.1.1
Tue Sep 15 05:06:36.395 UTC

Type escape sequence to abort.
Tracing the route to 3.3.3.3

 1  10.1.2.2 7 msec  5 msec  5 msec 
 2  10.2.3.3 18 msec  *  10 msec 

STEP 1:既定値のまま単発のイベント

R2は設定の反映(CFG_APPLY_AREA_EOB_LSP_GEN)から74ミリ秒と68ミリ秒でLSPを作っています。initial-waitの50ミリ秒に処理の時間が乗った値です。

STEP 1 R2:show isis trace all | include LSP_GEN(抜粋)
Sep 15 05:07:56.746 isis/1/cfg 0/RP0/CPU0 t4386  isis_cfg_if_area_end_of_batch:6869                       CFG_APPLY_AREA_EOB_LSP_GEN
Sep 15 05:07:56.820 isis/1/lsp 0/RP0/CPU0 t4486  isis_upd_lsp_build_system_lsp:5452                       LOCAL_SYSTEM_LBD_LSP_GEN L2 Node Num: 0 0
Sep 15 05:08:29.453 isis/1/cfg 0/RP0/CPU0 t4386  isis_cfg_if_area_end_of_batch:6869                       CFG_APPLY_AREA_EOB_LSP_GEN
Sep 15 05:08:29.521 isis/1/lsp 0/RP0/CPU0 t4486  isis_upd_lsp_build_system_lsp:5452                       LOCAL_SYSTEM_LBD_LSP_GEN L2 Node Num: 0 0

R1のSPFは2回ともDelayが約50ミリ秒です。2回目は前回の計算から約33秒空いており、上限5秒の2倍を過ぎているので、待ちは最初の値に戻っています。

STEP 1 R1:show isis spf-log detail(抜粋)
05:07:56.876  FSPF     2     3     2             R2.00-00 LINKBAD PREFIXBAD
  Delay:                 50ms (since first trigger)
                         343637ms (since end of last calculation)
  Trigger Link:          R3.00
  Trigger Prefix:        10.2.3.0/24
  Trigger LSPs:          1
  New LSP Arrivals:      0
  SR uloop:              No
  Next Wait Interval:    200ms
  RIB Batches:           2 (0 critical, 0 high, 1 medium, 1 low)
  Timings (ms):          +--Total--+
                          Real   CPU
    SPT Calculation:         0     0
    Route Update:            2     0
                         ----- -----
    Full Calculation:        2     0
05:08:29.577  FSPF     2     3     2             R2.00-00 LINKGOOD PREFIXGOOD
  Delay:                 51ms (since first trigger)
                         32699ms (since end of last calculation)
  Trigger Link:          R3.00
  Trigger Prefix:        10.2.3.0/24
  Trigger LSPs:          1
  New LSP Arrivals:      0
  SR uloop:              No
  Next Wait Interval:    200ms
  RIB Batches:           2 (0 critical, 0 high, 1 medium, 1 low)
  Timings (ms):          +--Total--+
                          Real   CPU
    SPT Calculation:         0     0
    Route Update:            2     0
                         ----- -----
    Full Calculation:        2     0

STEP 2:R1のspf-intervalを1000 / 2000 / 16000ミリ秒に

STEP 2 R1:show configuration commit changes last 1
RP/0/RP0/CPU0:R1#show configuration commit changes last 1
Tue Sep 15 05:12:48.974 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
router isis 1
 address-family ipv4 unicast
  spf-interval initial-wait 1000 secondary-wait 2000 maximum-wait 16000
 !
!
end

STEP 3:約3.5秒おきに10回のイベント

R1のSPFは5回です。Next Wait Intervalは2000・4000・8000・16000・16000ミリ秒と伸び、16秒で止まっています。4回目と5回目はTrigger LSPsが2と3で、待っている間に届いたLSPをまとめて計算しています。2回目は前回の計算から3.5秒空いて2秒の待ちを過ぎていますが、トリガーからはinitial-waitの1000ミリ秒を待っています。

STEP 3 R1:show isis spf-log detail(抜粋)
05:15:16.526  FSPF     9     3     2             R2.00-00 LINKBAD PREFIXBAD
  Delay:                 1001ms (since first trigger)
                         406947ms (since end of last calculation)
  Trigger Link:          R3.00
  Trigger Prefix:        10.2.3.0/24
  Trigger LSPs:          1
  New LSP Arrivals:      0
  SR uloop:              No
  Next Wait Interval:    2000ms
  RIB Batches:           2 (0 critical, 0 high, 1 medium, 1 low)
  Timings (ms):          +--Total--+
                          Real   CPU
    SPT Calculation:         0     0
    Route Update:            9     0
                         ----- -----
    Full Calculation:        9     0
05:15:20.038  FSPF     2     3     2             R2.00-00 LINKGOOD PREFIXGOOD
  Delay:                 1000ms (since first trigger)
                         3503ms (since end of last calculation)
  Trigger Link:          R3.00
  Trigger Prefix:        10.2.3.0/24
  Trigger LSPs:          1
  New LSP Arrivals:      0
  SR uloop:              No
  Next Wait Interval:    4000ms
  RIB Batches:           2 (0 critical, 0 high, 1 medium, 1 low)
  Timings (ms):          +--Total--+
                          Real   CPU
    SPT Calculation:         0     0
    Route Update:            2     0
                         ----- -----
    Full Calculation:        2     0
05:15:24.041  FSPF     2     3     2             R2.00-00 LINKBAD PREFIXBAD
  Delay:                 1514ms (since first trigger)
                         4001ms (since end of last calculation)
  Trigger Link:          R3.00
  Trigger Prefix:        10.2.3.0/24
  Trigger LSPs:          1
  New LSP Arrivals:      0
  SR uloop:              No
  Next Wait Interval:    8000ms
  RIB Batches:           2 (0 critical, 0 high, 1 medium, 1 low)
  Timings (ms):          +--Total--+
                          Real   CPU
    SPT Calculation:         0     0
    Route Update:            2     0
                         ----- -----
    Full Calculation:        2     0
05:15:32.044  FSPF     1     3     4             R2.00-00 LINKGOOD LINKBAD PREFIXGOOD PREFIXBAD
  Delay:                 5818ms (since first trigger)
                         8001ms (since end of last calculation)
  Trigger Link:          R3.00
  Trigger Prefix:        10.2.3.0/24
  Trigger LSPs:          2
  New LSP Arrivals:      0
  SR uloop:              No
  Next Wait Interval:    16000ms
  RIB Batches:           1 (0 critical, 0 high, 0 medium, 1 low)
  Timings (ms):          +--Total--+
                          Real   CPU
    SPT Calculation:         0     0
    Route Update:            1     0
                         ----- -----
    Full Calculation:        1     0
05:15:48.047  FSPF     2     3     6             R2.00-00 LINKGOOD LINKBAD PREFIXGOOD PREFIXBAD
  Delay:                 14522ms (since first trigger)
                         16002ms (since end of last calculation)
  Trigger Link:          R3.00
  Trigger Prefix:        10.2.3.0/24
  Trigger LSPs:          3
  New LSP Arrivals:      0
  SR uloop:              No
  Next Wait Interval:    16000ms
  RIB Batches:           2 (0 critical, 0 high, 1 medium, 1 low)
  Timings (ms):          +--Total--+
                          Real   CPU
    SPT Calculation:         0     0
    Route Update:            2     0
                         ----- -----
    Full Calculation:        2     0

R2のLSP生成は既定の50 / 200 / 5000ミリ秒のままです。待ちがイベントの間隔より短いうちはイベントごとに作り、上限の5秒に達した05:15:38以降は5秒おきになります。最後の05:15:48.527はCountが2で、9回目と10回目の変更をまとめています。

STEP 3 R2:show isis lsp-log
RP/0/RP0/CPU0:R2#show isis lsp-log
Tue Sep 15 05:17:23.341 UTC

  IS-IS 1  Level 2  LSP Generation Log             Capacity: 50, Size: 17

When          Count  Interface          Triggers
--- Tue Sep 15 2026 ---
05:01:47.926      1                     CONFIG
05:01:57.121      1  Lo0                IPUP
05:02:00.833      1                     LSPDBOL
05:02:02.821      1  Gi0/0/0/0          IPUP
05:02:06.829      1  Gi0/0/0/0          SABIT
05:02:12.158      1  Gi0/0/0/1          SABIT
05:07:56.821      1                     CONFIG
05:08:29.521      1                     CONFIG
05:15:15.496      1                     CONFIG
05:15:19.002      1                     CONFIG
05:15:22.522      1                     CONFIG
05:15:26.222      1                     CONFIG
05:15:30.123      1                     CONFIG
05:15:33.518      1                     CONFIG
05:15:38.521      1                     CONFIG
05:15:43.524      1                     CONFIG
05:15:48.527      2                     CONFIG

この2つの変更でメトリックは20から10に戻り、中身は05:15:43に作ったLSP(シーケンス番号0x10)と同じです。そのため新しいLSPは流れておらず、キャプチャーのR2のLSPは0x10で終わります(No.9はR1自身のLSPです)。R1のデータベースも0x10のままです。

STEP 3 R1 — R2間のLSP(tshark、時刻はUTC)
2	2026-09-15 05:15:15.523138Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x00000009, Lifetime:  1200s
5	2026-09-15 05:15:19.004251Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x0000000a, Lifetime:  1200s
7	2026-09-15 05:15:22.524528Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x0000000b, Lifetime:  1200s
9	2026-09-15 05:15:22.729221Z	L2 LSP, LSP-ID: 0010.0100.1001.00-00, Sequence: 0x00000006, Lifetime:  1200s
12	2026-09-15 05:15:26.224333Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x0000000c, Lifetime:  1200s
15	2026-09-15 05:15:30.125755Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x0000000d, Lifetime:  1200s
18	2026-09-15 05:15:33.522999Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x0000000e, Lifetime:  1200s
22	2026-09-15 05:15:38.523254Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x0000000f, Lifetime:  1200s
25	2026-09-15 05:15:43.527054Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x00000010, Lifetime:  1200s
STEP 3 R1:show isis database
RP/0/RP0/CPU0:R1#show isis database
Tue Sep 15 05:16:52.474 UTC

IS-IS 1 (Level-2) Link State Database
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime/Rcvd  ATT/P/OL
R1.00-00            * 0x00000006   0xbfd9        1110 /*            0/0/0
R2.00-00              0x00000010   0x661f        1130 /1200         0/0/0
R3.00-00              0x00000005   0xaa97        1046 /1200         0/0/0

 Total Level-2 LSP count: 3     Local Level-2 LSP count: 1

STEP 4:間隔を空けた単発のイベント(前回から約22秒・約46秒・約42秒)

2回目のSPFは前回の計算から22秒後で、上限16秒の2倍(32秒)に届かないため、Next Wait Intervalは4000ミリ秒に伸びています。46秒後と42秒後の3回目・4回目は2000ミリ秒に戻っています。Delayはどれもトリガーから1000ミリ秒です。

STEP 4 R1:show isis spf-log detail(抜粋)
05:19:08.125  FSPF     2     3     2             R2.00-00 LINKBAD PREFIXBAD
  Delay:                 1000ms (since first trigger)
                         200076ms (since end of last calculation)
  Trigger Link:          R3.00
  Trigger Prefix:        10.2.3.0/24
  Trigger LSPs:          1
  New LSP Arrivals:      0
  SR uloop:              No
  Next Wait Interval:    2000ms
  RIB Batches:           2 (0 critical, 0 high, 1 medium, 1 low)
  Timings (ms):          +--Total--+
                          Real   CPU
    SPT Calculation:         0     0
    Route Update:            2     0
                         ----- -----
    Full Calculation:        2     0
05:19:30.490  FSPF     2     3     2             R2.00-00 LINKGOOD PREFIXGOOD
  Delay:                 1001ms (since first trigger)
                         22363ms (since end of last calculation)
  Trigger Link:          R3.00
  Trigger Prefix:        10.2.3.0/24
  Trigger LSPs:          1
  New LSP Arrivals:      0
  SR uloop:              No
  Next Wait Interval:    4000ms
  RIB Batches:           2 (0 critical, 0 high, 1 medium, 1 low)
  Timings (ms):          +--Total--+
                          Real   CPU
    SPT Calculation:         0     0
    Route Update:            2     0
                         ----- -----
    Full Calculation:        2     0
05:20:16.925  FSPF     2     3     2             R2.00-00 LINKBAD PREFIXBAD
  Delay:                 1000ms (since first trigger)
                         46433ms (since end of last calculation)
  Trigger Link:          R3.00
  Trigger Prefix:        10.2.3.0/24
  Trigger LSPs:          1
  New LSP Arrivals:      0
  SR uloop:              No
  Next Wait Interval:    2000ms
  RIB Batches:           2 (0 critical, 0 high, 1 medium, 1 low)
  Timings (ms):          +--Total--+
                          Real   CPU
    SPT Calculation:         0     0
    Route Update:            2     0
                         ----- -----
    Full Calculation:        2     0
05:20:59.234  FSPF     2     3     2             R2.00-00 LINKGOOD PREFIXGOOD
  Delay:                 1000ms (since first trigger)
                         42307ms (since end of last calculation)
  Trigger Link:          R3.00
  Trigger Prefix:        10.2.3.0/24
  Trigger LSPs:          1
  New LSP Arrivals:      0
  SR uloop:              No
  Next Wait Interval:    2000ms
  RIB Batches:           2 (0 critical, 0 high, 1 medium, 1 low)
  Timings (ms):          +--Total--+
                          Real   CPU
    SPT Calculation:         0     0
    Route Update:            2     0
                         ----- -----
    Full Calculation:        2     0

STEP 5:R1を既定に戻し、R2のlsp-gen-intervalを1000 / 2000 / 16000ミリ秒にしてイベントを続ける

STEP 5 R2:show configuration commit changes last 1
RP/0/RP0/CPU0:R2#show configuration commit changes last 1
Tue Sep 15 05:23:36.633 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
router isis 1
 lsp-gen-interval initial-wait 1000 secondary-wait 2000 maximum-wait 16000
!
end

R2のLSP生成は、1回目・2回目とも設定の反映から約1000ミリ秒後です。その後は前回の生成から4001・8002・16002・16002ミリ秒と伸び、16秒で止まっています。

STEP 5 R2:show isis trace all | include LSP_GEN(抜粋)
Sep 15 05:23:35.861 isis/1/cfg 0/RP0/CPU0 t4386  isis_cfg_lsp_gen_interval_verify:3791                    CFG_LEVEL_VERIFY_LSP_GEN_INTERVAL NONE
Sep 15 05:23:35.866 isis/1/cfg 0/RP0/CPU0 t4386  isis_cfg_lsp_gen_interval_apply:3862                     CFG_LEVEL_APPLY_LSP_GEN_INTERVAL L1
Sep 15 05:23:35.866 isis/1/cfg 0/RP0/CPU0 t4386  isis_cfg_lsp_gen_interval_apply:3862                     CFG_LEVEL_APPLY_LSP_GEN_INTERVAL L2
Sep 15 05:24:22.541 isis/1/cfg 0/RP0/CPU0 t4386  isis_cfg_if_area_end_of_batch:6869                       CFG_APPLY_AREA_EOB_LSP_GEN
Sep 15 05:24:23.553 isis/1/lsp 0/RP0/CPU0 t4486  isis_upd_lsp_build_system_lsp:5452                       LOCAL_SYSTEM_LBD_LSP_GEN L2 Node Num: 0 0
Sep 15 05:24:26.238 isis/1/cfg 0/RP0/CPU0 t4386  isis_cfg_if_area_end_of_batch:6869                       CFG_APPLY_AREA_EOB_LSP_GEN
Sep 15 05:24:27.249 isis/1/lsp 0/RP0/CPU0 t4486  isis_upd_lsp_build_system_lsp:5452                       LOCAL_SYSTEM_LBD_LSP_GEN L2 Node Num: 0 0
Sep 15 05:24:29.624 isis/1/cfg 0/RP0/CPU0 t4386  isis_cfg_if_area_end_of_batch:6869                       CFG_APPLY_AREA_EOB_LSP_GEN
Sep 15 05:24:31.250 isis/1/lsp 0/RP0/CPU0 t4486  isis_upd_lsp_build_system_lsp:5452                       LOCAL_SYSTEM_LBD_LSP_GEN L2 Node Num: 0 0
Sep 15 05:24:33.653 isis/1/cfg 0/RP0/CPU0 t4386  isis_cfg_if_area_end_of_batch:6869                       CFG_APPLY_AREA_EOB_LSP_GEN
Sep 15 05:24:37.335 isis/1/cfg 0/RP0/CPU0 t4386  isis_cfg_if_area_end_of_batch:6869                       CFG_APPLY_AREA_EOB_LSP_GEN
Sep 15 05:24:39.252 isis/1/lsp 0/RP0/CPU0 t4486  isis_upd_lsp_build_system_lsp:5452                       LOCAL_SYSTEM_LBD_LSP_GEN L2 Node Num: 0 0
Sep 15 05:24:41.633 isis/1/cfg 0/RP0/CPU0 t4386  isis_cfg_if_area_end_of_batch:6869                       CFG_APPLY_AREA_EOB_LSP_GEN
Sep 15 05:24:45.327 isis/1/cfg 0/RP0/CPU0 t4386  isis_cfg_if_area_end_of_batch:6869                       CFG_APPLY_AREA_EOB_LSP_GEN
Sep 15 05:24:48.729 isis/1/cfg 0/RP0/CPU0 t4386  isis_cfg_if_area_end_of_batch:6869                       CFG_APPLY_AREA_EOB_LSP_GEN
Sep 15 05:24:52.030 isis/1/cfg 0/RP0/CPU0 t4386  isis_cfg_if_area_end_of_batch:6869                       CFG_APPLY_AREA_EOB_LSP_GEN
Sep 15 05:24:55.252 isis/1/lsp 0/RP0/CPU0 t4486  isis_upd_lsp_build_system_lsp:5452                       LOCAL_SYSTEM_LBD_LSP_GEN L2 Node Num: 0 0
Sep 15 05:24:55.340 isis/1/cfg 0/RP0/CPU0 t4386  isis_cfg_if_area_end_of_batch:6869                       CFG_APPLY_AREA_EOB_LSP_GEN
Sep 15 05:25:11.254 isis/1/lsp 0/RP0/CPU0 t4486  isis_upd_lsp_build_system_lsp:5452                       LOCAL_SYSTEM_LBD_LSP_GEN L2 Node Num: 0 0

Countが2と4の生成は、メトリックを行って戻す変更をまとめたもので、中身は前のLSPと同じです。キャプチャーに流れたR2のLSPは、シーケンス番号0x15〜0x18の4本だけです(No.167はR3のLSPです)。

STEP 5 R2:show isis lsp-log
RP/0/RP0/CPU0:R2#show isis lsp-log
Tue Sep 15 05:26:32.650 UTC

  IS-IS 1  Level 2  LSP Generation Log             Capacity: 50, Size: 27

When          Count  Interface          Triggers
--- Tue Sep 15 2026 ---
05:01:47.926      1                     CONFIG
05:01:57.121      1  Lo0                IPUP
05:02:00.833      1                     LSPDBOL
05:02:02.821      1  Gi0/0/0/0          IPUP
05:02:06.829      1  Gi0/0/0/0          SABIT
05:02:12.158      1  Gi0/0/0/1          SABIT
05:07:56.821      1                     CONFIG
05:08:29.521      1                     CONFIG
05:15:15.496      1                     CONFIG
05:15:19.002      1                     CONFIG
05:15:22.522      1                     CONFIG
05:15:26.222      1                     CONFIG
05:15:30.123      1                     CONFIG
05:15:33.518      1                     CONFIG
05:15:38.521      1                     CONFIG
05:15:43.524      1                     CONFIG
05:15:48.527      2                     CONFIG
05:19:07.100      1                     CONFIG
05:19:29.484      1                     CONFIG
05:20:15.891      1                     CONFIG
05:20:58.228      1                     CONFIG
05:24:23.554      1                     CONFIG
05:24:27.250      1                     CONFIG
05:24:31.251      1                     CONFIG
05:24:39.252      2                     CONFIG
05:24:55.253      4                     CONFIG
05:25:11.254      1                     CONFIG
STEP 5 R1 — R2間のLSP(tshark、時刻はUTC)
15	2026-09-15 05:24:23.556089Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x00000015, Lifetime:  1200s
17	2026-09-15 05:24:27.252478Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x00000016, Lifetime:  1200s
20	2026-09-15 05:24:31.253716Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x00000017, Lifetime:  1200s
31	2026-09-15 05:25:11.257388Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x00000018, Lifetime:  1200s
167	2026-09-15 05:26:50.729423Z	L2 LSP, LSP-ID: 0030.0300.3003.00-00, Sequence: 0x00000006, Lifetime:  1200s

STEP 6:R2を既定に戻し、R1をspf-interval ietfにしてイベントを続ける

STEP 6 R1:show configuration commit changes last 1
RP/0/RP0/CPU0:R1#show configuration commit changes last 1
Tue Sep 15 05:28:17.736 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
router isis 1
 address-family ipv4 unicast
  spf-interval ietf initial-wait 1000 short-wait 2000 long-wait 16000 learn-interval 6000 holddown-interval 20000
 !
!
end

1回目のSPFはQUIETからのINITIALで1001ミリ秒、2回目はSHORT_WAITの2001ミリ秒です。最初のLSP(05:29:04)から6秒を過ぎて届いた3本目(05:29:10.8)からLONG_WAITになり、3回目と4回目は16000ミリ秒待っています。待ちは4秒・8秒を経ずに、2秒から16秒へ切り替わっています。

STEP 6 R1:show isis spf-log detail(抜粋)
05:29:05.027  FSPF     2     3     2             R2.00-00 LINKBAD PREFIXBAD
  Delay:                 1001ms (since first trigger)
                         233716ms (since end of last calculation)
  Trigger Link:          R3.00
  Trigger Prefix:        10.2.3.0/24
  Trigger LSPs:          1
  New LSP Arrivals:      0
  SR uloop:              No
  Next Wait Interval:    2000ms
  RIB Batches:           2 (0 critical, 0 high, 1 medium, 1 low)
  Timings (ms):          +--Total--+
                          Real   CPU
    SPT Calculation:         0     0
    Route Update:            2     0
                         ----- -----
    Full Calculation:        2     0
05:29:09.294  FSPF     2     3     2             R2.00-00 LINKGOOD PREFIXGOOD
  Delay:                 2001ms (since first trigger)
                         4265ms (since end of last calculation)
  Trigger Link:          R3.00
  Trigger Prefix:        10.2.3.0/24
  Trigger LSPs:          1
  New LSP Arrivals:      0
  SR uloop:              No
  Next Wait Interval:    2000ms
  RIB Batches:           2 (0 critical, 0 high, 1 medium, 1 low)
  Timings (ms):          +--Total--+
                          Real   CPU
    SPT Calculation:         0     0
    Route Update:            2     0
                         ----- -----
    Full Calculation:        2     0
05:29:26.826  FSPF     2     3    10             R2.00-00 LINKGOOD LINKBAD PREFIXGOOD PREFIXBAD
  Delay:                 16000ms (since first trigger)
                         17530ms (since end of last calculation)
  Trigger Link:          R3.00
  Trigger Prefix:        10.2.3.0/24
  Trigger LSPs:          5
  New LSP Arrivals:      0
  SR uloop:              No
  Next Wait Interval:    16000ms
  RIB Batches:           2 (0 critical, 0 high, 1 medium, 1 low)
  Timings (ms):          +--Total--+
                          Real   CPU
    SPT Calculation:         0     0
    Route Update:            2     0
                         ----- -----
    Full Calculation:        2     0
05:29:47.225  FSPF     2     3     2             R2.00-00 LINKGOOD PREFIXGOOD
  Delay:                 16000ms (since first trigger)
                         20397ms (since end of last calculation)
  Trigger Link:          R3.00
  Trigger Prefix:        10.2.3.0/24
  Trigger LSPs:          1
  New LSP Arrivals:      0
  SR uloop:              No
  Next Wait Interval:    16000ms
  RIB Batches:           2 (0 critical, 0 high, 1 medium, 1 low)
  Timings (ms):          +--Total--+
                          Real   CPU
    SPT Calculation:         0     0
    Route Update:            2     0
                         ----- -----
    Full Calculation:        2     0
STEP 6 R1 — R2間のLSP(tshark、時刻はUTC)
15	2026-09-15 05:29:04.023577Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x00000019, Lifetime:  1200s
18	2026-09-15 05:29:07.291026Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x0000001a, Lifetime:  1200s
21	2026-09-15 05:29:10.823651Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x0000001b, Lifetime:  1200s
24	2026-09-15 05:29:14.423362Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x0000001c, Lifetime:  1200s
27	2026-09-15 05:29:17.700179Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x0000001d, Lifetime:  1200s
29	2026-09-15 05:29:21.224082Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x0000001e, Lifetime:  1200s
33	2026-09-15 05:29:26.192004Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x0000001f, Lifetime:  1200s
35	2026-09-15 05:29:31.222896Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x00000020, Lifetime:  1200s
41	2026-09-15 05:29:47.365423Z	L2 LSP, LSP-ID: 0010.0100.1001.00-00, Sequence: 0x00000007, Lifetime:  1200s

STEP 7:spf-interval ietfのまま間隔を空けた単発のイベントを2回起こし、R1を既定に戻す(最終状態)

2回のイベントは、どちらも前のトリガーから20秒以上空いています。HOLDDOWNを過ぎてQUIETに戻っているので、DelayはINITIALの1000ミリ秒、Next Wait IntervalはSHORTの2000ミリ秒です。

STEP 7 R1:show isis spf-log detail(抜粋)
05:33:42.626  FSPF     2     3     2             R2.00-00 LINKBAD PREFIXBAD
  Delay:                 1000ms (since first trigger)
                         235399ms (since end of last calculation)
  Trigger Link:          R3.00
  Trigger Prefix:        10.2.3.0/24
  Trigger LSPs:          1
  New LSP Arrivals:      0
  SR uloop:              No
  Next Wait Interval:    2000ms
  RIB Batches:           2 (0 critical, 0 high, 1 medium, 1 low)
  Timings (ms):          +--Total--+
                          Real   CPU
    SPT Calculation:         0     0
    Route Update:            2     0
                         ----- -----
    Full Calculation:        2     0
05:34:14.805  FSPF     2     3     2             R2.00-00 LINKGOOD PREFIXGOOD
  Delay:                 1000ms (since first trigger)
                         32177ms (since end of last calculation)
  Trigger Link:          R3.00
  Trigger Prefix:        10.2.3.0/24
  Trigger LSPs:          1
  New LSP Arrivals:      0
  SR uloop:              No
  Next Wait Interval:    2000ms
  RIB Batches:           2 (0 critical, 0 high, 1 medium, 1 low)
  Timings (ms):          +--Total--+
                          Real   CPU
    SPT Calculation:         0     0
    Route Update:            2     0
                         ----- -----
    Full Calculation:        2     0
STEP 7 R1:show configuration commit changes last 1
RP/0/RP0/CPU0:R1#show configuration commit changes last 1
Tue Sep 15 05:34:50.548 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
router isis 1
 address-family ipv4 unicast
  no spf-interval ietf initial-wait 1000 short-wait 2000 long-wait 16000 learn-interval 6000 holddown-interval 20000
 !
!
end

最終状態の設定は、3台ともSTEP 0と同じです。

検証Configおよびshow結果

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

ファイル内容
..._show.txtshow version / show interface description / show route / show route isis / show route 3.3.3.3/32と、show isis系一式(neighbors / database / database detail / spf-log / spf-log detail / lsp-log / route / adjacency-log / statistics)、show running-config router isisshow configuration commit list
..._log.txtそのSTEPの範囲だけに絞ったshow logging。各STEPの開始時にlogmsgでマーカーを入れ、その時刻をshow logging startに指定して取得したもの。R2のcommitの時刻(%MGBL-CONFIG-6-DB_COMMIT)もここに残る
..._run.txtそのSTEP時点のshow running-config(=そのSTEPの検証Config)
..._trace.txtshow isis trace all | include SPF_TRIGGER / include SPF_SPF_SUMMARY / include LSP_GEN
..._ping.txtR1からping 3.3.3.3 / traceroute 3.3.3.3(送信元1.1.1.1)。R2・R3には無い
..._trigger.txtR2でイベントを起こしたSSHセッションの記録(metricを20 / 10と交互にcommitしたもの)。イベントを起こしたSTEPだけにある
..._commit.cfgタイマーを変えたSTEPでcommitされた設定(show configuration commit changes last 1)。設定を変えていないルータには無い

STEP 0:既定

ルータshow出力syslogrunning-configtracepingtriggercommit
R1showlogruntraceping--
R2showlogruntrace---
R3showlogruntrace---

STEP 1:既定値のまま単発のイベント

ルータshow出力syslogrunning-configtracepingtriggercommit
R1showlogruntraceping--
R2showlogruntrace-trigger-
R3showlogruntrace---

STEP 2:R1のspf-intervalを1000 / 2000 / 16000ミリ秒に

ルータshow出力syslogrunning-configtracepingtriggercommit
R1showlogruntraceping-commit
R2showlogruntrace---
R3showlogruntrace---

STEP 3:約3.5秒おきに10回のイベント

ルータshow出力syslogrunning-configtracepingtriggercommit
R1showlogruntraceping--
R2showlogruntrace-trigger-
R3showlogruntrace---

STEP 4:間隔を空けた単発のイベント(前回から約22秒・約46秒・約42秒)

ルータshow出力syslogrunning-configtracepingtriggercommit
R1showlogruntraceping--
R2showlogruntrace-trigger / trigger2-
R3showlogruntrace---

STEP 5:R1を既定に戻し、R2のlsp-gen-intervalを1000 / 2000 / 16000ミリ秒にしてイベントを続ける

ルータshow出力syslogrunning-configtracepingtriggercommit
R1showlogruntraceping-commit
R2showlogruntrace-triggercommit
R3showlogruntrace---

STEP 6:R2を既定に戻し、R1をspf-interval ietfにしてイベントを続ける

ルータshow出力syslogrunning-configtracepingtriggercommit
R1showlogruntraceping-commit
R2showlogruntrace-triggercommit
R3showlogruntrace---

STEP 7:spf-interval ietfのまま間隔を空けた単発のイベントを2回起こし、R1を既定に戻す(最終状態)

ルータshow出力syslogrunning-configtracepingtriggercommit
R1showlogruntraceping-commit
R2showlogruntrace-trigger-
R3showlogruntrace---

パケットキャプチャーはSTEPごとに、R1 — R2のリンクで取得しています。R2がR1へ送ったLSPの時刻とシーケンス番号を確認できます。

STEPR1 — R2間
0pcap
1pcap
2pcap
3pcap
4pcap
5pcap
6pcap
7pcap

事前に候補設定でヘルプを採り、abortで捨てた記録(commitはしていない):R1 help / R2 trace・spf-log detail

参考

標準タイトル概要
ISO/IEC 10589:2002(第2版)Intermediate System to Intermediate System intra-domain routeing information exchange protocol7.3.6節でLSPの生成にホールドダウンタイマー(minimumLSPGenerationInterval)があること、7.3.21節でその定義と妥当な値(30秒)を定めている。SPFの待ちは定めていない。
RFC 8405Shortest Path First (SPF) Back-Off Delay Algorithm for Link-State IGPs3節で5つのパラメータ、4節で時間を基準にする理由、5節でQUIET / SHORT_WAIT / LONG_WAITの状態機械、6節で推奨の既定値を定めている。
Cisco IP Routing: ISIS Configuration Guide, IOS XE Gibraltar 16.12.xReducing Link Failure and Topology Change Notification Times in IS-IS NetworksSPF / PRC / LSP生成の待ちが倍々に伸びること、上限の2倍の時間イベントが無ければ初期の待ちに戻ることを説明している(IOS XE向け)。
Cisco 8000 IS-IS Configuration GuideIS-IS SPF interval delayIOS XRのspf-interval ietfがRFC 8405に準拠していることを説明している。
Cisco: Change of Default OSPF and IS-IS SPF and Flooding TimersDocument ID 211432IOSのIS-ISのspf-interval / prc-interval / lsp-gen-intervalの既定値を50 / 200 / 5000に変え、IOS XRの既定値と揃えたことを説明している。

関連記事