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

IS-ISのLSPとリンクステートデータベース

目次

IS-ISのLSPとリンクステートデータベース

IS-ISの各ルータは、自分の隣接とプレフィックスをLSP(Link State PDU)にまとめてドメイン全体に配ります。全ルータのLSPを集めたものがリンクステートデータベース(LSDB)で、経路計算はこれだけを材料に行われます。

この記事では、LSPの一生(生成・周期更新・分割・新旧判定・失効・パージ)をISO/IEC 10589:2002の規定で確認し、IOS XRの実機とキャプチャーで裏づけます。LSPヘッダーの各フィールドはIS-ISパケットの種類とヘッダーフォーマットで解説しています。

LSP IDの3つの要素

LSP IDは8バイトで、show isis databaseではSystem IDがホスト名に置き換わってR2.00-00のように表示されます。

要素意味
System ID(6バイト)発信元のルータ。NETの0020.0200.2002の部分
Pseudonode ID(1バイト)00ならルータ自身のLSP。01以上はDISが疑似ノードのために作るLSP(DISと疑似ノード
LSP Number(1バイト)1つに収まらないときの分割番号。00から始まる

1つに収まらないときはLSP Numberを変えて分割する

LSP 1つの上限は、受信側が表2のReceiveLSPBufferSize=1492バイト、生成側が管理パラメータoriginatingL1LSPBufferSize / originatingL2LSPBufferSize(7.3.4.2)です。IOS XRではこれがlsp-mtu(既定1492)です。

収まらないときは、同じSystem IDでLSP Numberだけを変えた複数のLSPに分けます(7.3.4.1)。各LSPは別々に配られ、別々に寿命を持ち、決定プロセスだけが同じ発信元のものとしてまとめて読みます。

ただしLSP Number 0だけは特別です。7.3.4.3は次の4つを「LSP Number 0に載っているときだけ意味がある」と定め、エリアアドレスは0番以外に置いてはならないとしています。

  • LSP Database Overloadビット(OL)
  • IS Typeフィールド
  • エリアアドレス
  • Attachedフラグ(ATT)

隣接やプレフィックスはどの番号に載ってもかまいません。

自分のlsp-mtuはTLV 14(LSP Buffer Size、9.8)で相手に伝えます。IOS XRのshow isis database detailLSP MTU:がこの値で、隣接と一致しないと%ROUTING-ISIS-4-LSP_MTU_MISMATCHを記録します。7.3.4.2のNOTE 24は「一貫して設定しなければ一部の隣接が初期化に失敗する」と述べており、本来はそろえる値です。

LSPの一生

生成と再生成

起動時に自分のLSPをシーケンス番号1から作り(7.3.16.1)、隣接のUp/Downなど内容が変わるたびに番号を1つ進めて作り直します(7.3.6)。生成時のRemaining Lifetime(残り寿命)はMaxAge=1200秒です(7.3.16.3、表2)。

内容が変わらなくても、maximumLSPGenerationInterval(既定900秒)ごとに作り直します。このときも番号は進みます(7.3.5)。IOS XRではlsp-refresh-interval(900秒)とmax-lsp-lifetime(1200秒)が対応します。7.3.21は「MaxAgemaximumLSPGenerationIntervalより大きくなければならない」と定めており、残り寿命が0になる前に必ず新版が届く関係になっています。実際の周期は10.1のジッタ(25%)で短くなります。

受け取った側は新旧をどう判定するか

同じLSP IDのLSPを受け取ったときの規則です(7.3.16)。

  1. シーケンス番号が大きいほうが新しい(7.3.16.1)
  2. 番号が同じで片方の残り寿命が0なら、0のほう(パージ)が新しい(7.3.16.3)
  3. 番号が同じでチェックサムが違う(LSP confusion)なら、受信側は失効したものとして扱い、発信元は番号を進めて出し直す(7.3.16.2)

再起動したルータは番号1から始めますが、ドメインには再起動前の自分のLSP(もっと大きい番号)が残っています。7.3.16.1は「自分より大きい番号の自分のLSPを受け取ったら、その番号の次の値で作り直す」と定めており、これで古いコピーが置き換わります。

失効とパージ

残り寿命は保持している各ルータが減らし続け(7.3.16.3)、発信元が消えると0になります。0になったLSPの扱いは7.3.16.4のとおりです。

  • a) 全回線にSRMフラグを立てる(=寿命0のLSPをフラッディングする
  • b) ヘッダーだけを残す
  • c) ZeroAgeLifetime(60秒、表2)が経ったらヘッダーも消す

これがパージで、送るのは発信元ではなく寿命0を検出したルータです。RFC 6232は、パージ元のSystem IDを載せるTLV 13(Purge Originator Identification)を定義しています。

届いたことをどう確認するか

ポイントツーポイント回線では、受け取った側がPSNPで応答します(7.3.17)。応答が来るまで、送った側はminimumLSPTransmissionInterval(5秒)ごとに同じLSPを送り直します(7.3.15.5)。

CSNPはデータベース全体の目次で、受け取った側は相手に無いLSPや相手より新しいLSPを送ります(7.3.15.2)。IOS XRは隣接がUpになったときにポイントツーポイント回線でもCSNPを送るので、再起動直後の同期はこれで進みます。

IOS XRでの設定

R1:LSP関連コマンドのヘルプ(config-isis)
RP/0/RP0/CPU0:R1(config-isis)# max-lsp-lifetime ?
  <1-65535>  Maximum LSP lifetime in seconds, default is 1200
RP/0/RP0/CPU0:R1(config-isis)# lsp-refresh-interval ?
  <1-65535>  LSP refresh time in seconds, default is 900
RP/0/RP0/CPU0:R1(config-isis)# lsp-mtu ?
  <128-8979>  Max LSP size in bytes, default is 1492
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
コマンド規格上の対応既定
max-lsp-lifetimeMaxAge(生成時の残り寿命)1200秒
lsp-refresh-intervalmaximumLSPGenerationInterval(周期再生成)900秒
lsp-mtuoriginatingL1LSPBufferSize / originatingL2LSPBufferSize1492バイト
lsp-gen-intervalminimumLSPGenerationInterval(再生成のホールドダウン)50 / 200 / 5000ミリ秒

実機での検証

検証環境

R1 — R2 — R3を直列にし、全台をエリア49.0001level-2-only、全リンクをpoint-to-pointにします。キャプチャーはR1 — R2間で取ります。

ルータNETLo0リンク
R149.0001.0010.0100.1001.001.1.1.1/32Gi0/0/0/0 10.1.2.1
R249.0001.0020.0200.2002.002.2.2.2/32Gi0/0/0/0 10.1.2.2 / Gi0/0/0/1 10.2.3.2
R349.0001.0030.0300.3003.003.3.3.3/32Gi0/0/0/0 10.2.3.3

検証のSTEP

STEP操作狙い
0既定のままLSP ID・シーケンス番号・残り寿命の基準
1全台をmax-lsp-lifetime 120 / lsp-refresh-interval 60周期再生成を短時間で観測する
2全台をlsp-mtu 300にし、R2にLoopbackを40個追加分割と、0番にしか載らない情報
3R2のIS-ISプロセスを再起動再起動後のシーケンス番号の付け直し
4R3のリンクをshutdown失効とパージ
5すべて元に戻す(最終状態)STEP 0と同じ

STEP 1〜4のあいだ、寿命と周期は120秒 / 60秒に短縮したままです。

既定の状態(STEP 0)

STEP 0:R1の show isis database detail
RP/0/RP0/CPU0:R1#show isis database detail
Thu Sep 10 00:19:12.100 UTC

IS-IS 1 (Level-2) Link State Database
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime/Rcvd  ATT/P/OL
R1.00-00            * 0x00000009   0x27ee        1102 /*            0/0/0
  Area Address:   49.0001
  LSP MTU:        1492
  NLPID:          0xcc
  IP Address:     1.1.1.1
  Hostname:       R1
  Metric: 0          IP 1.1.1.1/32
  Metric: 10         IP 10.1.2.0/24
  Metric: 10         IS R2.00
R2.00-00              0x00000008   0xdb8e        1136 /1200         0/0/0
  Area Address:   49.0001
  LSP MTU:        1492
  NLPID:          0xcc
  IP Address:     2.2.2.2
  Hostname:       R2
  Metric: 0          IP 2.2.2.2/32
  Metric: 10         IP 10.1.2.0/24
  Metric: 10         IP 10.2.3.0/24
  Metric: 10         IS R1.00
  Metric: 10         IS R3.00
R3.00-00              0x00000008   0x833b        1130 /1200         0/0/0
  Area Address:   49.0001
  LSP MTU:        1492
  NLPID:          0xcc
  IP Address:     3.3.3.3
  Hostname:       R3
  Metric: 0          IP 3.3.3.3/32
  Metric: 10         IP 10.2.3.0/24
  Metric: 10         IS R2.00

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

LSP Holdtime/Rcvdは「残り寿命 / 受け取ったときの残り寿命」で、他ルータのLSPは1200から減っています。LSP MTU: 1492がTLV 14の値で、エリアアドレス・ホスト名・プレフィックス・隣接はすべてLSP Number 0に載っています。

周期再生成を短くして観測する(STEP 1)

全台に次を入れます。

STEP 1:R1の running-config(router isis)
router isis 1
 is-type level-2-only
 net 49.0001.0010.0100.1001.00
 log adjacency changes
 lsp-refresh-interval 60
 max-lsp-lifetime 120
 address-family ipv4 unicast
 !
 interface Loopback0
  passive
  address-family ipv4 unicast
  !
 !
 interface GigabitEthernet0/0/0/0
  point-to-point
  address-family ipv4 unicast
  !
 !
!
STEP 1:R1の show isis database
RP/0/RP0/CPU0:R1#show isis database
Thu Sep 10 00:26:02.022 UTC

IS-IS 1 (Level-2) Link State Database
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime/Rcvd  ATT/P/OL
R1.00-00            * 0x00000010   0x19f5        84   /*            0/0/0
R2.00-00              0x0000000f   0xcd95        111  /120          0/0/0
R3.00-00              0x0000000f   0x7542        101  /120          0/0/0

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

Rcvd120になりました。周期再生成はキャプチャーで見ます。

STEP 1:LSPだけを抜き出したキャプチャー(tshark、先頭60パケット分)
5	12.763427000	52:54:00:04:48:22	L2 LSP, LSP-ID: 0010.0100.1001.00-00, Sequence: 0x0000000a, Lifetime:   120s
9	24.906175000	52:54:00:37:ed:c9	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x00000009, Lifetime:   120s
15	36.921958000	52:54:00:37:ed:c9	L2 LSP, LSP-ID: 0030.0300.3003.00-00, Sequence: 0x00000009, Lifetime:   120s
24	64.707754000	52:54:00:04:48:22	L2 LSP, LSP-ID: 0010.0100.1001.00-00, Sequence: 0x0000000b, Lifetime:   120s
30	82.683185000	52:54:00:37:ed:c9	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x0000000a, Lifetime:   120s
32	85.780073000	52:54:00:37:ed:c9	L2 LSP, LSP-ID: 0030.0300.3003.00-00, Sequence: 0x0000000a, Lifetime:   120s
41	114.783032000	52:54:00:04:48:22	L2 LSP, LSP-ID: 0010.0100.1001.00-00, Sequence: 0x0000000c, Lifetime:   120s
48	134.674146000	52:54:00:37:ed:c9	L2 LSP, LSP-ID: 0030.0300.3003.00-00, Sequence: 0x0000000b, Lifetime:   120s
51	138.134809000	52:54:00:37:ed:c9	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x0000000b, Lifetime:   120s
59	166.219193000	52:54:00:04:48:22	L2 LSP, LSP-ID: 0010.0100.1001.00-00, Sequence: 0x0000000d, Lifetime:   120s

R1のLSP(0010.0100.1001.00-00)はNo.5、24、41、59と約50〜52秒ごとに流れ、そのたびにシーケンス番号が0x0aから1つずつ進み、残り寿命は120に戻っています。lsp-refresh-interval 60にジッタが掛かった間隔です。

No.24 LSP(R1 → R2)tshark -V(ヘッダー部分)
ISO 10589 ISIS Link State Protocol Data Unit
    PDU length: 90
    Remaining lifetime: 120
    LSP-ID: 0010.0100.1001.00-00
    Sequence number: 0x0000000b
    Checksum: 0x23f0 [correct]
    [Checksum Status: Good]
    Type block(0x03): Partition Repair:0, Attached bits:0, Overload bit:0, IS type:3
        0... .... = Partition Repair: Not supported
        .000 0... = Attachment: 0
            .0.. .... = Error metric: Not set
            ..0. .... = Expense metric: Not set
            ...0 .... = Delay metric: Not set
            0... .... = Default metric: Not set
        .... .0.. = Overload bit: Not set
        .... ..11 = Type of Intermediate System: Level 2 (3)
上のtshark出力のパケット(No.24 LSP)のpcapをダウンロード

R2はこれをPSNPで応答します。

No.25 PSNP(R2 → R1)tshark -V
ISO 10589 ISIS Partial Sequence Numbers Protocol Data Unit
    PDU length: 35
    Source-ID: 0020.0200.2002
    Source-ID-Circuit: 00
    LSP entries (t=9, l=16)
        Type: 9
        Length: 16
        LSP Entry
            LSP Sequence Number: 0x0000000b
            Remaining Lifetime: 119
            LSP checksum: 0x23f0
        LSP-ID: 0010.0100.1001.00-00

受け取ったLSPのシーケンス番号・残り寿命・チェックサムが入っています(7.3.17)。このキャプチャーではすべてのLSPが0.5秒以内に応答されており、7.3.15.5の再送は起きていません。

LSPを分割させる(STEP 2)

3台すべてをlsp-mtu 300にし、R2に172.16.1.1/32172.16.40.1/32のLoopbackを40個追加してIS-ISに入れます。

STEP 2:R1の show isis database detail(R2の3つ)
R2.00-00              0x00000013   0x7815        119  /120          0/0/0
  Area Address:   49.0001
  LSP MTU:        300
  NLPID:          0xcc
  IP Address:     2.2.2.2
  Hostname:       R2
  Metric: 0          IP 2.2.2.2/32
  Metric: 10         IP 10.1.2.0/24
  Metric: 10         IP 10.2.3.0/24
  Metric: 0          IP 172.16.1.1/32
  Metric: 0          IP 172.16.2.1/32
  Metric: 0          IP 172.16.3.1/32
  Metric: 0          IP 172.16.4.1/32
  Metric: 0          IP 172.16.5.1/32
  Metric: 0          IP 172.16.6.1/32
  Metric: 0          IP 172.16.7.1/32
  Metric: 0          IP 172.16.8.1/32
  Metric: 0          IP 172.16.9.1/32
  Metric: 0          IP 172.16.10.1/32
  Metric: 0          IP 172.16.11.1/32
  Metric: 10         IS R1.00
  Metric: 10         IS R3.00
R2.00-01              0x00000004   0x51e4        119  /120          0/0/0
  Metric: 0          IP 172.16.12.1/32
  Metric: 0          IP 172.16.13.1/32
  Metric: 0          IP 172.16.14.1/32
  Metric: 0          IP 172.16.15.1/32
  Metric: 0          IP 172.16.16.1/32
  Metric: 0          IP 172.16.17.1/32
  Metric: 0          IP 172.16.18.1/32
  Metric: 0          IP 172.16.19.1/32
  Metric: 0          IP 172.16.20.1/32
  Metric: 0          IP 172.16.21.1/32
  Metric: 0          IP 172.16.22.1/32
  Metric: 0          IP 172.16.23.1/32
  Metric: 0          IP 172.16.24.1/32
  Metric: 0          IP 172.16.25.1/32
  Metric: 0          IP 172.16.26.1/32
  Metric: 0          IP 172.16.27.1/32
  Metric: 0          IP 172.16.28.1/32
  Metric: 0          IP 172.16.29.1/32
  Metric: 0          IP 172.16.30.1/32
  Metric: 0          IP 172.16.31.1/32
  Metric: 0          IP 172.16.32.1/32
R2.00-02              0x00000002   0x258f        73   /120          0/0/0
  Metric: 0          IP 172.16.33.1/32
  Metric: 0          IP 172.16.34.1/32
  Metric: 0          IP 172.16.35.1/32
  Metric: 0          IP 172.16.36.1/32
  Metric: 0          IP 172.16.37.1/32
  Metric: 0          IP 172.16.38.1/32
  Metric: 0          IP 172.16.39.1/32
  Metric: 0          IP 172.16.40.1/32

R2のLSPがR2.00-00R2.00-01R2.00-02の3つになりました。新しく作られた0102は番号1から始まるため(7.3.6)、00より番号が小さくなっています。エリアアドレス・LSP MTU・NLPID・ホスト名はR2.00-00にしかなく、プレフィックスと隣接は3つに分かれています。ホスト名のTLV 137はRFC 5301上どのLSPに載せてもよいものですが、IOS XRは0番に置いています。

3台に順番に入れたため、全台に入り終わるまでの十数秒だけlsp-mtuの不一致がログに残っています。そろった後は出ていません。

STEP 2:R2の show logging(抜粋)
RP/0/RP0/CPU0:Sep 10 00:27:00.330 UTC: isis[1003]: %ROUTING-ISIS-4-LSP_MTU_MISMATCH : ISIS (1): The Level-2 LSP MTU on R1 (300) does not match ours (1492) 
RP/0/RP0/CPU0:Sep 10 00:27:11.515 UTC: isis[1003]: %ROUTING-ISIS-4-LSP_MTU_MISMATCH : ISIS (1): The Level-2 LSP MTU on R3 (300) does not match ours (1492) 

IS-ISプロセスを再起動する(STEP 3)

R2でprocess restart isisを実行します。キャプチャーはR1 — R2間とR2 — R3間の両方で取ります。

STEP 3:R2の show logging(抜粋)
RP/0/RP0/CPU0:Sep 10 00:31:01.841 UTC: sysmgr_control[68720]: %OS-SYSMGR-4-PROC_RESTART_NAME : User cisco (con0_RP0_CPU0) requested a restart of process isis at 0/RP0/CPU0 
RP/0/RP0/CPU0:Sep 10 00:31:03.105 UTC: isis[1003]: %ROUTING-ISIS-5-PM_HA_ROLE_CHG : ISIS (1): ISIS HA role change: Active 
RP/0/RP0/CPU0:Sep 10 00:31:03.106 UTC: isis[1003]: %ROUTING-ISIS-5-PM_ISSU_ROLE_CHG : ISIS (1): ISIS ISSU role change: Primary 
RP/0/RP0/CPU0:Sep 10 00:31:04.508 UTC: isis[1003]: %ROUTING-ISIS-6-INFO_STARTUP_START : ISIS (1): Cold controlled start beginning 
RP/0/RP0/CPU0:Sep 10 00:31:14.284 UTC: isis[1003]: %ROUTING-ISIS-5-ADJCHANGE : ISIS (1): Adjacency to 49.0001.0010.0100.1001 (GigabitEthernet0/0/0/0) (L2) Up, New adjacency 
RP/0/RP0/CPU0:Sep 10 00:31:14.939 UTC: isis[1003]: %ROUTING-ISIS-5-ADJCHANGE : ISIS (1): Adjacency to R3 (GigabitEthernet0/0/0/1) (L2) Up, New adjacency 
RP/0/RP0/CPU0:Sep 10 00:31:16.897 UTC: isis[1003]: %ROUTING-ISIS-6-INFO_STARTUP_FINISH : ISIS (1): Cold controlled start completed 
STEP 3:再起動直後のやり取り(R1 — R2間、tshark)
20	44.051592000	52:54:00:37:ed:c9	L2 CSNP, Source-ID: 0020.0200.2002.00, Start LSP-ID: 0000.0000.0000.00-00, End LSP-ID: ffff.ffff.ffff.ff-ff
21	44.054704000	52:54:00:04:48:22	L2 LSP, LSP-ID: 0010.0100.1001.00-00, Sequence: 0x00000017, Lifetime:   119s
22	44.054937000	52:54:00:04:48:22	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x00000014, Lifetime:    65s
23	44.055037000	52:54:00:04:48:22	L2 LSP, LSP-ID: 0020.0200.2002.00-01, Sequence: 0x00000005, Lifetime:    60s
24	44.055138000	52:54:00:04:48:22	L2 LSP, LSP-ID: 0020.0200.2002.00-02, Sequence: 0x00000004, Lifetime:    79s
25	44.055228000	52:54:00:04:48:22	L2 LSP, LSP-ID: 0030.0300.3003.00-00, Sequence: 0x00000015, Lifetime:   102s
26	44.558208000	52:54:00:37:ed:c9	L2 PSNP, Source-ID: 0020.0200.2002.00
27	45.051568000	52:54:00:37:ed:c9	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x00000015, Lifetime:   120s
28	45.051825000	52:54:00:37:ed:c9	L2 LSP, LSP-ID: 0020.0200.2002.00-01, Sequence: 0x00000006, Lifetime:   120s
29	45.051973000	52:54:00:37:ed:c9	L2 LSP, LSP-ID: 0020.0200.2002.00-02, Sequence: 0x00000006, Lifetime:   120s
30	45.052076000	52:54:00:37:ed:c9	L2 LSP, LSP-ID: 0030.0300.3003.00-00, Sequence: 0x00000016, Lifetime:   120s
No.送信内容
20R2 → R1再起動したR2がCSNPを送る
21〜25R1 → R2R1がCSNPに無いLSPを送る。この中に再起動前のR2自身のLSPR2.00-000x14010x05020x04)が含まれる
26R2 → R1R2がPSNPで応答
27〜29R2 → R1R2が自分のLSPを 0x150x060x06 で出し直す

R2は再起動後に番号1から始めましたが、R1から届いた古い自分のLSPの番号(0x14)の次の0x15で作り直しています(7.3.16.1)。付け直したLSPはR2 — R3間にも同時に流れています(isis-lsp-restart-r2r3.pcapのNo.17〜20)。

No.22 LSP(R1 → R2、再起動前のR2のLSP)tshark -V(ヘッダー部分)
ISO 10589 ISIS Link State Protocol Data Unit
    PDU length: 245
    Remaining lifetime: 65
    LSP-ID: 0020.0200.2002.00-00
    Sequence number: 0x00000014
    Checksum: 0x7616 [correct]
    [Checksum Status: Good]
    Type block(0x03): Partition Repair:0, Attached bits:0, Overload bit:0, IS type:3
上のtshark出力のパケット(No.22 LSP)のpcapをダウンロード
No.27 LSP(R2 → R1、番号を付け直したLSP)tshark -V(ヘッダー部分)
ISO 10589 ISIS Link State Protocol Data Unit
    PDU length: 244
    Remaining lifetime: 120
    LSP-ID: 0020.0200.2002.00-00
    Sequence number: 0x00000015
    Checksum: 0x127e [correct]
    [Checksum Status: Good]
    Type block(0x07): Partition Repair:0, Attached bits:0, Overload bit:1, IS type:3
        0... .... = Partition Repair: Not supported
        .000 0... = Attachment: 0
            .0.. .... = Error metric: Not set
            ..0. .... = Expense metric: Not set
            ...0 .... = Delay metric: Not set
            0... .... = Default metric: Not set
        .... .1.. = Overload bit: Set
        .... ..11 = Type of Intermediate System: Level 2 (3)
上のtshark出力のパケット(No.27 LSP)のpcapをダウンロード

No.27ではOverloadビットが1です。IOS XRは再起動直後の自分のLSPにOLビットを立て、収束後に下ろします。OLビットは別記事で解説します。

STEP 3:R1の show isis database detail(R2の3つ、抜粋)
R2.00-00              0x00000018   0x0889        85   /120          0/0/0
  Area Address:   49.0001
  LSP MTU:        300
  NLPID:          0xcc
  IP Address:     2.2.2.2
  Hostname:       R2
  Metric: 0          IP 2.2.2.2/32
  Metric: 10         IP 10.1.2.0/24
  Metric: 10         IP 10.2.3.0/24
  Metric: 0          IP 172.16.1.1/32
  Metric: 0          IP 172.16.2.1/32
  Metric: 0          IP 172.16.3.1/32
  Metric: 0          IP 172.16.4.1/32
  Metric: 0          IP 172.16.5.1/32
  Metric: 0          IP 172.16.6.1/32
  Metric: 0          IP 172.16.7.1/32
  Metric: 0          IP 172.16.8.1/32
  Metric: 0          IP 172.16.9.1/32
  Metric: 0          IP 172.16.10.1/32
  Metric: 0          IP 172.16.11.1/32
  Metric: 0          IP 172.16.12.1/32
  Metric: 0          IP 172.16.13.1/32
R2.00-01              0x00000008   0xb255        96   /120          0/0/0
  Metric: 0          IP 172.16.14.1/32
  Metric: 0          IP 172.16.15.1/32
  Metric: 0          IP 172.16.16.1/32
  Metric: 0          IP 172.16.17.1/32
  Metric: 0          IP 172.16.18.1/32
  Metric: 0          IP 172.16.19.1/32
  Metric: 0          IP 172.16.20.1/32
  Metric: 0          IP 172.16.21.1/32
  Metric: 0          IP 172.16.22.1/32
  Metric: 0          IP 172.16.23.1/32
  Metric: 0          IP 172.16.24.1/32
  Metric: 0          IP 172.16.25.1/32
  Metric: 0          IP 172.16.26.1/32
  Metric: 0          IP 172.16.27.1/32
  Metric: 0          IP 172.16.28.1/32
  Metric: 0          IP 172.16.29.1/32
  Metric: 0          IP 172.16.30.1/32
  Metric: 0          IP 172.16.31.1/32
  Metric: 0          IP 172.16.32.1/32
  Metric: 0          IP 172.16.33.1/32
  Metric: 0          IP 172.16.34.1/32
R2.00-02              0x00000008   0x824d        87   /120          0/0/0
  Metric: 0          IP 172.16.35.1/32
  Metric: 0          IP 172.16.36.1/32
  Metric: 0          IP 172.16.37.1/32
  Metric: 0          IP 172.16.38.1/32
  Metric: 0          IP 172.16.39.1/32
  Metric: 0          IP 172.16.40.1/32
  Metric: 10         IS R1.00
  Metric: 10         IS R3.00

再起動前はR2.00-00にあった隣接(IS R1.00 / IS R3.00)がR2.00-02に移っています。0番に固定されるのは7.3.4.3の4項目だけで、隣接をどの番号に載せるかは実装しだいです。

LSPを失効させる(STEP 4)

R3のGi0/0/0/0をshutdownします。R3のLSPを更新できるルータが居なくなるので、R1とR2が持つR3のLSPは残り寿命が0まで減ります。

STEP 4:R2の show isis spf-log
RP/0/RP0/CPU0:R2#show isis spf-log
Thu Sep 10 00:38:59.882 UTC

  IS-IS 1  Level 2  IPv4 Unicast  Route Calculation Log
                                                   Capacity: 210, Size: 5
                    Time Total Trig.
Timestamp    Type   (ms) Nodes Count First Trigger LSP    Triggers
------------ ----- ----- ----- ----- -------------------- ----------------------
--- Thu Sep 10 2026 ---
00:31:16.812  FSPF     0     3    22             R1.00-00 CONFIG NEWNODE NEWLSP OVLSET LINKGOOD PREFIXGOOD AREAADDR IPADDR
00:31:17.799  FSPF     1     3     2             R1.00-00 LINKGOOD
00:31:18.960  FSPF     0     3     1             R2.00-00 OVLCLR
00:37:22.534  FSPF     1     3     2             R2.00-02 DELADJ LINKBAD
00:38:37.166  FSPF     0     3     6 0030.0300.3003.00-00 DELNODE LSPEXPIRY LINKBAD PREFIXBAD AREAADDR IPADDR

R2は00:37:22に隣接のホールドタイム切れ(DELADJ)を検出し、75秒後の00:38:37にR3のLSPが失効(LSPEXPIRY)しています。隣接が落ちてもR3のLSPはすぐには消えず、残り寿命が尽きるまでデータベースに残ります

STEP 4:R3のLSPの最後の更新(No.15)とパージ(No.66)(tshark)
15	41.415615000	52:54:00:37:ed:c9	L2 LSP, LSP-ID: 0030.0300.3003.00-00, Sequence: 0x0000001d, Lifetime:   120s
16	41.993613000	52:54:00:04:48:22	L2 PSNP, Source-ID: 0010.0100.1001.00
66	161.408694000	52:54:00:37:ed:c9	L2 LSP, LSP-ID: 0030.0300.3003.00-00, Sequence: 0x0000001d, Lifetime:     0s
67	161.912900000	52:54:00:04:48:22	L2 PSNP, Source-ID: 0010.0100.1001.00

No.15はR2がR3のLSP(残り寿命120)をR1へ転送したもので、No.66(残り寿命0)まではちょうど120秒です。R2の手元で寿命が0になった瞬間に、寿命0のLSPを送り出しています(7.3.16.4 a)。

No.66 LSP(R2 → R1、パージ)tshark -V
ISO 10589 ISIS Link State Protocol Data Unit
    PDU length: 40
    Remaining lifetime: 0
    LSP-ID: 0030.0300.3003.00-00
    Sequence number: 0x0000001d
    [Checksum: [missing]]
    [Checksum Status: Not present]
    Type block(0x03): Partition Repair:0, Attached bits:0, Overload bit:0, IS type:3
        0... .... = Partition Repair: Not supported
        .000 0... = Attachment: 0
            .0.. .... = Error metric: Not set
            ..0. .... = Expense metric: Not set
            ...0 .... = Delay metric: Not set
            0... .... = Default metric: Not set
        .... .0.. = Overload bit: Not set
        .... ..11 = Type of Intermediate System: Level 2 (3)
    Purge Originator ID (t=13, l=7)
        Type: 13
        Length: 7
        Number of System IDs: 1
        System ID: 0020.0200.2002
    Hostname (t=137, l=2)
        Type: 137
        Length: 2
        Hostname: R2
上のtshark出力のパケット(No.66 LSP)のpcapをダウンロード

PDU length: 40しかなく、R3の隣接やプレフィックスは載っていません(7.3.16.4 b)。シーケンス番号は0x1dのまま、Remaining lifetime: 0です。チェックサムは元のLSP(No.15の0xf164)と別の値ですが、7.3.16.4のNOTE 36のとおり寿命0のLSPでは検証されません(tsharkも[missing]と表示します)。残っているTLVは、パージ元R2を示すTLV 13とそのホスト名(TLV 137)です。

STEP 4:R1の show isis database
RP/0/RP0/CPU0:R1#show isis database
Thu Sep 10 00:38:43.619 UTC

IS-IS 1 (Level-2) Link State Database
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime/Rcvd  ATT/P/OL
R1.00-00            * 0x00000020   0x911a        108  /*            0/0/0
R2.00-00              0x0000001e   0xfb8f        95   /120          0/0/0
R2.00-01              0x0000000e   0xa65b        94   /120          0/0/0
R2.00-02              0x0000000f   0x7055        89   /120          0/0/0
0030.0300.3003.00-00  0x0000001d   0xc04f        0 (53)/*           0/0/0

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

R3のLSPは0 (53)/*で、括弧内の53秒が過ぎるとヘッダーも消えます(7.3.16.4 c、ZeroAgeLifetime=60秒)。R3.00-00ではなく0030.0300.3003.00-00と表示されるのは、ホスト名のTLV 137が本体と一緒に捨てられたためです。

STEP 4:R1の show isis database detail(R3のLSP)
0030.0300.3003.00-00  0x0000001d   0xc04f        0 (53)/*           0/0/0
  Purge Originator: 0020.0200.2002 R2
  Hostname:       R2

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

Purge OriginatorHostnameはパージ元R2のもので、R3の情報は残っていません。経路表からもR3の3.3.3.3/32が消えています(2.2.2.2/3210.2.3.0/24のあいだにあった行)。

STEP 4:R1の show route isis(先頭部分)
RP/0/RP0/CPU0:R1#show route isis
Thu Sep 10 00:38:42.537 UTC

i L2 2.2.2.2/32 [115/10] via 10.1.2.2, 00:07:24, GigabitEthernet0/0/0/0
i L2 10.2.3.0/24 [115/20] via 10.1.2.2, 00:07:24, GigabitEthernet0/0/0/0
i L2 172.16.1.1/32 [115/10] via 10.1.2.2, 00:07:24, GigabitEthernet0/0/0/0

元に戻す(STEP 5)

R3のリンクを戻し、STEP 1〜2の設定(タイマー・lsp-mtu・Loopback)を削除すると初期状態に戻ります(STEP 0と5の..._run.txtが一致)。

STEP 5:R1の show isis database
RP/0/RP0/CPU0:R1#show isis database
Thu Sep 10 00:42:42.685 UTC

IS-IS 1 (Level-2) Link State Database
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime/Rcvd  ATT/P/OL
R1.00-00            * 0x00000022   0xf408        1046 /*            0/0/0
R2.00-00              0x00000022   0xa7a8        1067 /1200         0/0/0
R3.00-00              0x00000023   0x4d56        1033 /1199         0/0/0

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

検証Configおよびshow結果

各STEPで3台から次の種類を取得しています。検証Configはこの..._run.txtです(最終状態はSTEP 5)。

ファイル内容
..._show.txtshow version / show interface description / show route / show route isis / show isis / show isis hostname / show isis interface / show isis interface brief / show isis neighbors / show isis neighbors detail / show isis database / show isis database detail / show isis topology / show isis adjacency / show isis adjacency-log / show isis spf-log / show isis lsp-log / show isis statistics / show cef
..._log.txtそのSTEPの範囲だけに絞ったshow logging(STEP 0のみ起動時からの全履歴)
..._run.txtそのSTEP時点のshow running-config(=そのSTEPの検証Config)
..._debug.txtSTEP 0のR1のみ。LSP関連コマンドのCLIヘルプ

STEP 0:既定の状態

ルータshow出力syslogrunning-config
R1showlogrun
R2showlogrun
R3showlogrun

STEP 0のR1にはCLIヘルプを取得したdebugもあります。

STEP 1:全台をmax-lsp-lifetime 120 / lsp-refresh-interval 60

ルータshow出力syslogrunning-config
R1showlogrun
R2showlogrun
R3showlogrun

STEP 2:全台をlsp-mtu 300にしR2にLoopbackを40個追加

ルータshow出力syslogrunning-config
R1showlogrun
R2showlogrun
R3showlogrun

STEP 3:R2のIS-ISプロセスを再起動

ルータshow出力syslogrunning-config
R1showlogrun
R2showlogrun
R3showlogrun

STEP 4:R3のリンクをshutdown

ルータshow出力syslogrunning-config
R1showlogrun
R2showlogrun
R3showlogrun

STEP 5:すべて元に戻す(最終状態)

ルータshow出力syslogrunning-config
R1showlogrun
R2showlogrun
R3showlogrun

キャプチャーファイルは次の4本です。isis-lsp-restart-r2r3.pcap以外はR1 — R2間です。

周期再生成(STEP 1)のキャプチャー(isis-lsp-refresh.pcap) をダウンロード

プロセス再起動(STEP 3、R1 — R2間)のキャプチャー(isis-lsp-restart.pcap) をダウンロード

プロセス再起動(STEP 3、R2 — R3間)のキャプチャー(isis-lsp-restart-r2r3.pcap) をダウンロード

失効とパージ(STEP 4)のキャプチャー(isis-lsp-purge.pcap) をダウンロード

参考

標準タイトル概要
ISO/IEC 10589:2002(第2版)Intermediate System to Intermediate System intra-domain routeing information exchange protocolIS-IS本体の仕様。本記事が参照したのは、分割を定める7.3.4、周期再生成の7.3.5、イベント駆動の再生成の7.3.6、再送間隔の7.3.15.5、CSNP受信時の動作の7.3.15.2、新旧判定・寿命・失効の7.3.16、PSNPによる確認応答の7.3.17MaxAgeZeroAgeLifetimeを説明する7.3.21、TLV 14を定める9.8、ジッタの10.1、アーキテクチャ定数の表2
RFC 6232Purge Originator Identification TLV for IS-ISパージしたルータのSystem IDを載せるTLV 13を定義。
RFC 5301Dynamic Hostname Exchange Mechanism for IS-ISホスト名を載せるTLV 137を定義。非疑似ノードLSPのどのフラグメントに載せてもよい。
RFC 1195Use of OSI IS-IS for Routing in TCP/IP and Dual EnvironmentsIPの経路を運ぶTLV 128などを定義。
RFC 1142OSI IS-IS Intra-domain Routing ProtocolISO 10589のDraft Proposal(1990年)を再公開したもの。現在はHistoric。ISO/IEC 10589の代わりに参照してはいけません(RFC 7142)。
RFC 7142Reclassification of RFC 1142 to Historic参照すべきはISO/IEC 10589:2002 第2版であることを述べている。

関連記事