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の既定値と同じ」と述べています。
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 5000RP/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 detailのDelay(最初のトリガーから計算までの時間)と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_WAIT | QUIETでイベントを受け取った | SHORT_SPF_DELAY |
| LONG_WAIT | SHORT_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秒後に計算されます。
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.0001のlevel-2-only(wide)で、リンクのメトリックはすべて10です。ソフトウェアはXRd 26.1.1です。
| ルータ | Lo0 | 役割 |
|---|---|---|
| R1 | 1.1.1.1/32 | SPFの待ちを観測する。spf-intervalを変えるのはR1だけ |
| R2 | 2.2.2.2/32 | イベントを起こす。R3向けのGi0/0/0/1のメトリックを20と10に交互にcommitする。lsp-gen-intervalを変えるのはR2だけ |
| R3 | 3.3.3.3/32 | R2の先。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ミリ秒ほどで走る |
| 2 | R1の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秒以上で戻る |
| 5 | R1を既定に戻し、R2のlsp-gen-intervalを1000 / 2000 / 16000ミリ秒にしてイベントを続ける | R2のLSP生成の間隔が4・8・16秒と伸び、中身が戻った生成は流れない |
| 6 | R2を既定に戻し、R1をspf-interval ietfにしてイベントを続ける | SPFの待ちが2秒から16秒へ一段で切り替わる |
| 7 | spf-interval ietfのまま間隔を空けた単発のイベントを2回起こし、R1を既定に戻す(最終状態) | HOLDDOWNの後はQUIETに戻り、1秒で計算する。設定がSTEP 0と一致する |
STEP 0:既定
R1はR2経由でR3のLo0に届いています。
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ミリ秒に処理の時間が乗った値です。
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 0R1のSPFは2回ともDelayが約50ミリ秒です。2回目は前回の計算から約33秒空いており、上限5秒の2倍を過ぎているので、待ちは最初の値に戻っています。
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 0STEP 2:R1のspf-intervalを1000 / 2000 / 16000ミリ秒に
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
!
!
endSTEP 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ミリ秒を待っています。
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 0R2のLSP生成は既定の50 / 200 / 5000ミリ秒のままです。待ちがイベントの間隔より短いうちはイベントごとに作り、上限の5秒に達した05:15:38以降は5秒おきになります。最後の05:15:48.527はCountが2で、9回目と10回目の変更をまとめています。
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のままです。
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: 1200sRP/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: 1STEP 4:間隔を空けた単発のイベント(前回から約22秒・約46秒・約42秒)
2回目のSPFは前回の計算から22秒後で、上限16秒の2倍(32秒)に届かないため、Next Wait Intervalは4000ミリ秒に伸びています。46秒後と42秒後の3回目・4回目は2000ミリ秒に戻っています。Delayはどれもトリガーから1000ミリ秒です。
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 0STEP 5:R1を既定に戻し、R2のlsp-gen-intervalを1000 / 2000 / 16000ミリ秒にしてイベントを続ける
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
!
endR2のLSP生成は、1回目・2回目とも設定の反映から約1000ミリ秒後です。その後は前回の生成から4001・8002・16002・16002ミリ秒と伸び、16秒で止まっています。
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 0Countが2と4の生成は、メトリックを行って戻す変更をまとめたもので、中身は前のLSPと同じです。キャプチャーに流れたR2のLSPは、シーケンス番号0x15〜0x18の4本だけです(No.167はR3のLSPです)。
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 CONFIG15 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: 1200sSTEP 6:R2を既定に戻し、R1をspf-interval ietfにしてイベントを続ける
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
!
!
end1回目の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秒へ切り替わっています。
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 015 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: 1200sSTEP 7:spf-interval ietfのまま間隔を空けた単発のイベントを2回起こし、R1を既定に戻す(最終状態)
2回のイベントは、どちらも前のトリガーから20秒以上空いています。HOLDDOWNを過ぎてQUIETに戻っているので、DelayはINITIALの1000ミリ秒、Next Wait IntervalはSHORTの2000ミリ秒です。
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 0RP/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.txt | show 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 isis、show 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.txt | show isis trace all | include SPF_TRIGGER / include SPF_SPF_SUMMARY / include LSP_GEN |
..._ping.txt | R1からping 3.3.3.3 / traceroute 3.3.3.3(送信元1.1.1.1)。R2・R3には無い |
..._trigger.txt | R2でイベントを起こしたSSHセッションの記録(metricを20 / 10と交互にcommitしたもの)。イベントを起こしたSTEPだけにある |
..._commit.cfg | タイマーを変えたSTEPでcommitされた設定(show configuration commit changes last 1)。設定を変えていないルータには無い |
STEP 0:既定
| ルータ | show出力 | syslog | running-config | trace | ping | trigger | commit |
|---|---|---|---|---|---|---|---|
| R1 | show | log | run | trace | ping | - | - |
| R2 | show | log | run | trace | - | - | - |
| R3 | show | log | run | trace | - | - | - |
STEP 1:既定値のまま単発のイベント
| ルータ | show出力 | syslog | running-config | trace | ping | trigger | commit |
|---|---|---|---|---|---|---|---|
| R1 | show | log | run | trace | ping | - | - |
| R2 | show | log | run | trace | - | trigger | - |
| R3 | show | log | run | trace | - | - | - |
STEP 2:R1のspf-intervalを1000 / 2000 / 16000ミリ秒に
| ルータ | show出力 | syslog | running-config | trace | ping | trigger | commit |
|---|---|---|---|---|---|---|---|
| R1 | show | log | run | trace | ping | - | commit |
| R2 | show | log | run | trace | - | - | - |
| R3 | show | log | run | trace | - | - | - |
STEP 3:約3.5秒おきに10回のイベント
| ルータ | show出力 | syslog | running-config | trace | ping | trigger | commit |
|---|---|---|---|---|---|---|---|
| R1 | show | log | run | trace | ping | - | - |
| R2 | show | log | run | trace | - | trigger | - |
| R3 | show | log | run | trace | - | - | - |
STEP 4:間隔を空けた単発のイベント(前回から約22秒・約46秒・約42秒)
| ルータ | show出力 | syslog | running-config | trace | ping | trigger | commit |
|---|---|---|---|---|---|---|---|
| R1 | show | log | run | trace | ping | - | - |
| R2 | show | log | run | trace | - | trigger / trigger2 | - |
| R3 | show | log | run | trace | - | - | - |
STEP 5:R1を既定に戻し、R2のlsp-gen-intervalを1000 / 2000 / 16000ミリ秒にしてイベントを続ける
| ルータ | show出力 | syslog | running-config | trace | ping | trigger | commit |
|---|---|---|---|---|---|---|---|
| R1 | show | log | run | trace | ping | - | commit |
| R2 | show | log | run | trace | - | trigger | commit |
| R3 | show | log | run | trace | - | - | - |
STEP 6:R2を既定に戻し、R1をspf-interval ietfにしてイベントを続ける
| ルータ | show出力 | syslog | running-config | trace | ping | trigger | commit |
|---|---|---|---|---|---|---|---|
| R1 | show | log | run | trace | ping | - | commit |
| R2 | show | log | run | trace | - | trigger | commit |
| R3 | show | log | run | trace | - | - | - |
STEP 7:spf-interval ietfのまま間隔を空けた単発のイベントを2回起こし、R1を既定に戻す(最終状態)
| ルータ | show出力 | syslog | running-config | trace | ping | trigger | commit |
|---|---|---|---|---|---|---|---|
| R1 | show | log | run | trace | ping | - | commit |
| R2 | show | log | run | trace | - | trigger | - |
| R3 | show | log | run | trace | - | - | - |
パケットキャプチャーはSTEPごとに、R1 — R2のリンクで取得しています。R2がR1へ送ったLSPの時刻とシーケンス番号を確認できます。
| STEP | R1 — R2間 |
|---|---|
| 0 | pcap |
| 1 | pcap |
| 2 | pcap |
| 3 | pcap |
| 4 | pcap |
| 5 | pcap |
| 6 | pcap |
| 7 | pcap |
事前に候補設定でヘルプを採り、abortで捨てた記録(commitはしていない):R1 help / R2 trace・spf-log detail
参考
| 標準 | タイトル | 概要 |
|---|---|---|
| ISO/IEC 10589:2002(第2版) | Intermediate System to Intermediate System intra-domain routeing information exchange protocol | 7.3.6節でLSPの生成にホールドダウンタイマー(minimumLSPGenerationInterval)があること、7.3.21節でその定義と妥当な値(30秒)を定めている。SPFの待ちは定めていない。 |
| RFC 8405 | Shortest Path First (SPF) Back-Off Delay Algorithm for Link-State IGPs | 3節で5つのパラメータ、4節で時間を基準にする理由、5節でQUIET / SHORT_WAIT / LONG_WAITの状態機械、6節で推奨の既定値を定めている。 |
| Cisco IP Routing: ISIS Configuration Guide, IOS XE Gibraltar 16.12.x | Reducing Link Failure and Topology Change Notification Times in IS-IS Networks | SPF / PRC / LSP生成の待ちが倍々に伸びること、上限の2倍の時間イベントが無ければ初期の待ちに戻ることを説明している(IOS XE向け)。 |
| Cisco 8000 IS-IS Configuration Guide | IS-IS SPF interval delay | IOS XRのspf-interval ietfがRFC 8405に準拠していることを説明している。 |
| Cisco: Change of Default OSPF and IS-IS SPF and Flooding Timers | Document ID 211432 | IOSのIS-ISのspf-interval / prc-interval / lsp-gen-intervalの既定値を50 / 200 / 5000に変え、IOS XRの既定値と揃えたことを説明している。 |
関連記事
- IS-ISとは
- IS-ISのNSAPアドレスとNET(System ID)
- IS-ISのレベル1とレベル2(階層構造)
- IS-ISパケットの種類とヘッダーフォーマット
- IS-ISの隣接関係の確立と状態遷移
- IS-ISのDISと疑似ノード(Pseudonode)
- IS-ISのネットワークタイプ(broadcast / point-to-point)
- IS-ISのメトリック(narrow / wide)
- IS-ISの認証(hello-password / lsp-password)
- IS-ISのLSPとリンクステートデータベース
- IS-ISの主要TLV
- IS-ISのフラッディングとLSDB同期
- IS-ISのSPF計算と経路選択
- IS-ISのATTビットとレベル1のデフォルトルート
- IS-ISのルートリークとup/downビット
- IS-ISの経路集約
- IS-ISのオーバーロードビット
- IS-ISの収束タイマー(SPF / LSP生成)
- IS-ISへの再配布(connected / static)
- IS-ISへのBGP経路の再配布