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

レベル1とレベル2(IS-ISの階層)

目次

なぜ階層があるのか

リンクステート型のルーティングプロトコルは、すべてのルータが同一のLSDB(トポロジマップ)を持ち、そこからSPFを計算するという仕組みで動きます(IS-IS全体の流れはIS-ISとはで解説しています)。この方式は経路の正しさという点では優れていますが、ネットワークが大きくなると次の問題が出ます。

  • LSDBのサイズがネットワーク全体の規模に比例して大きくなる
  • どこか1か所でリンクが変化するたびに、全ルータがLSPを受け取ってSPFを計算し直す
  • SPFの計算量はノード数とリンク数に応じて増える

そこでIS-ISは、ネットワークをエリアに分割し、レベル1(エリア内)とレベル2(エリア間)の2階層でルーティングを行います。エリアを分ければLSDBもエリアごとに分かれ、あるエリア内の変化が他のエリアのSPF計算を引き起こすこともなくなります。

OSPFがエリア0を頂点とした階層を持つのと同じ発想ですが、階層の切り方がまったく異なります。その違いがこの記事の中心です。

レベル1・レベル2・レベル1-2

IS-ISのルータは、どのレベルのルーティングに参加するかで3種類に分かれます。

種類役割OSPFで近いもの
レベル1(level-1)エリア内のルーティングのみ。同じエリアのルータとだけ隣接を張る。エリア外の経路は個別に持たない内部ルータ(スタブエリア内)
レベル2(level-2-only)エリア間のルーティングのみ。バックボーンを構成する。エリアが違う相手とも隣接を張れるバックボーン専用ルータ
レベル1-2(level-1-2)両方に参加する。自エリアと他エリアの境界になるABR(ただし後述のとおり性質は異なる)

Cisco実装の既定はレベル1-2で、両方に参加します。片方だけにするにはis-typeで明示的に指定します。既定のままだとレベル1とレベル2の両方のLSDBを持ち、隣接も両方張ろうとするため、規模の大きなネットワークでは必要なレベルだけに絞るのが一般的です。

エリア境界はリンクの上にある

IS-ISとOSPFで最も混同しやすいのがエリア境界の位置です。

OSPFのABR(Area Border Router)は、1台のルータが複数のエリアに同時に属します。インタフェースごとに所属エリアを設定するため、境界はルータの内部を通ります。

IS-ISのルータは、NETのArea IDによって所属エリアが決まり、1台は1つのエリアにしか属しません(NETの構造はNSAPアドレスとNETで解説しています)(複数のNETを設定した場合はそれらのエリアが統合されるため、やはり所属は1つです。ISO/IEC 10589:2002の6.3も「各システムはちょうど1つのエリアに属する」と述べています)。エリアが違うルータ同士はレベル2の隣接で結ばれるので、境界はルータではなくリンクの上を通ります

この違いは設計にそのまま影響します。OSPFでは「このルータをABRにする」と考えますが、IS-ISでは「このリンクをエリアの境界にする」と考えることになります。

検証環境

Cisco IOS XR(XRd 26.1.1)のルータ5台で、3種類のルータがすべて登場する構成を作りました。R2–R5–R3がレベル2のバックボーンで、その両端にレベル1のエリアがぶら下がっています。

ルータNETis-type役割
R149.0001.0010.0100.1001.00level-1エリア49.0001の内部ルータ
R249.0001.0020.0200.2002.00(既定=level-1-2)エリア49.0001の境界
R549.0005.0050.0500.5005.00level-2-onlyバックボーン専用
R349.0002.0030.0300.3003.00(既定=level-1-2)エリア49.0002の境界
R449.0002.0040.0400.4004.00level-1エリア49.0002の内部ルータ

R5は自分だけのエリア49.0005に置いています。レベル2専用のルータは、Area IDが誰とも一致しなくてもレベル2の隣接を張れることをここで確認できます。

R2・R3のis-typeが表に「既定」とあるのは、level-1-2が既定値でshow running-configに行が現れないためです。

R2のIS-IS設定(STEP 0)
router isis 1
 net 49.0001.0020.0200.2002.00
 log adjacency changes
 address-family ipv4 unicast

検証は次の5段階(STEP 0〜4)で進めます。各STEPで5台すべてから取得したshow出力・syslog・running-configは、記事末尾の検証Configおよびshow結果にまとめました。

STEP操作状態
0初期状態R1–R2とR3–R4がレベル1、R2–R5とR5–R3がレベル2の隣接
1R2をis-type level-2-onlyへ変更R1とのレベル1隣接が張れなくなる
2R2を既定(level-1-2)へ戻す復旧
3R2のR5向けインタフェースにcircuit-type level-1を設定レベル2隣接が張れず、バックボーンが分断される
4circuit-typeを戻す(最終状態)初期状態と同じ

初期状態の隣接は次のとおりで、同じエリア同士はレベル1、エリアが異なる区間はレベル2になっています。

STEP 0:R2の show isis neighbors
RP/0/RP0/CPU0:R2#show isis neighbors
Tue Sep  8 05:37:45.086 UTC

IS-IS 1 neighbors:
System Id      Interface        SNPA           State Holdtime Type IETF-NSF
R1             Gi0/0/0/0        *PtoP*         Up    22       L1   Capable 
R5             Gi0/0/0/1        *PtoP*         Up    27       L2   Capable 

Total neighbor count: 2
STEP 0:R5の show isis neighbors
RP/0/RP0/CPU0:R5#show isis neighbors
Tue Sep  8 05:38:39.541 UTC

IS-IS 1 neighbors:
System Id      Interface        SNPA           State Holdtime Type IETF-NSF
R2             Gi0/0/0/0        *PtoP*         Up    29       L2   Capable 
R3             Gi0/0/0/1        *PtoP*         Up    22       L2   Capable 

Total neighbor count: 2

R5はエリア49.0005で、R2(49.0001)ともR3(49.0002)ともArea IDが一致しませんが、レベル2の隣接なので問題なく成立しています

LSDBはレベルごとに別々

レベル1とレベル2は、それぞれ独立したLSDBを持ちます。レベル1-2のルータは2つのLSDBを同時に保持します。

show isis databaseを実行すると、レベルごとに表が分かれて出力されます。

STEP 0:R2の show isis database
RP/0/RP0/CPU0:R2#show isis database
Tue Sep  8 05:37:45.886 UTC

IS-IS 1 (Level-1) Link State Database
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime/Rcvd  ATT/P/OL
R1.00-00              0x00000005   0x2dee        636  /1200         0/0/0
R2.00-00            * 0x00000007   0x2d31        637  /*            1/0/0

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

IS-IS 1 (Level-2) Link State Database
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime/Rcvd  ATT/P/OL
R2.00-00            * 0x00000008   0x70d0        638  /*            0/0/0
R3.00-00              0x00000008   0x7f84        650  /1200         0/0/0
R5.00-00              0x00000006   0x8835        649  /1200         0/0/0

 Total Level-2 LSP count: 3     Local Level-2 LSP count: 1
データベース入っているLSP意味
Level-1R1、R2エリア49.0001に属する2台だけ。R3・R4・R5のLSPは入らない
Level-2R2、R3、R5バックボーンに参加する3台。R1・R4のLSPは入らない

レベル2専用のR5は、そもそもレベル1のLSDBを持ちません。

STEP 0:R5の show isis database
RP/0/RP0/CPU0:R5#show isis database
Tue Sep  8 05:38:39.903 UTC

IS-IS 1 (Level-2) Link State Database
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime/Rcvd  ATT/P/OL
R2.00-00              0x00000008   0x70d0        584  /1200         0/0/0
R3.00-00              0x00000008   0x7f84        596  /1200         0/0/0
R5.00-00            * 0x00000006   0x8835        595  /*            0/0/0

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

エリアを分けた効果はここに現れます。エリア49.0002の中で何かが変わっても、そのレベル1のLSPはエリア49.0001には流れず、R1がSPFを計算し直すこともありません。

LSPもレベルごとに別のPDUタイプで運ばれます。

PDUタイプ番号本記事のキャプチャでの観測
レベル1 LSP18観測済み
レベル2 LSP20観測済み
レベル1 CSNP / PSNP24 / 26PSNP(26)のみ観測
レベル2 CSNP / PSNP25 / 27どちらも観測済み

観測済みと書いたものは、添付のpcapをtshark -Vで開くとPDU Type: L1 LSP (18)のように番号付きで確認できます。レベル1のCSNP(24)は、本記事の構成では流れる場面がなかったため観測していません(ブロードキャストリンクを含む構成で観測したものがIS-ISパケットの種類とヘッダーフォーマットにあります)。

レベル1ルータはどうやってエリア外へ出るか

レベル1のルータは、自エリアのトポロジしか知りません。では他エリアの宛先へはどう転送するのでしょうか。

答えはデフォルトルートです。レベル1-2のルータは、自分が他エリアへの出口を持っていることをATT(Attached)ビットとしてレベル1のLSPに立てます。これを受け取ったレベル1のルータは、そのルータ宛てのデフォルトルートを自動的に作ります

この動作はISO/IEC 10589:2002に由来します。同規格の6.3は「他エリア宛てのパケットを、レベル1のISは宛先エリアがどこであろうと自エリア内でもっとも近いレベル2のISへ送る」と述べ、7.2.9.1でレベル1のISが「attachedなレベル2のISのうちコストが最小のもの」を計算するよう定めています。ATTビットを立てる条件は7.2.9.2にあり、レベル2のISが「少なくとも1つの他エリアに到達できる」か「有効な到達可能アドレスプレフィックスを1つ以上持つ」場合に自分をattachedとみなし、LSP番号0のレベル1 LSPを作り直してATTを載せます。IPの世界ではこの「もっとも近いレベル2のISへ送る」が、そのままデフォルトルートとして実装されているわけです。

ATTビットはshow isis databaseATT/P/OL欄の1桁目に出ます(規格上はメトリック種別ごとに4ビットあり、showが表示するのはDefaultメトリック用の1ビットです。IS-ISとはを参照してください)。前掲のSTEP 0の出力で、R2のレベル1 LSPだけ1/0/0になっているのがそれです。R2は他エリアへの出口を持っているため、エリア49.0001の中に「自分が出口だ」と広告しています。

受け取ったR1の経路は次のようになります。

STEP 0:R1の show route isis
RP/0/RP0/CPU0:R1#show route isis
Tue Sep  8 05:38:54.278 UTC

i*L1 0.0.0.0/0 [115/10] via 10.1.2.2, 00:10:28, GigabitEthernet0/0/0/0
i L1 2.2.2.2/32 [115/10] via 10.1.2.2, 00:10:28, GigabitEthernet0/0/0/0
i L1 10.2.5.0/24 [115/20] via 10.1.2.2, 00:10:28, GigabitEthernet0/0/0/0

i*L1 0.0.0.0/0がATTビットによって作られたデフォルトルートです。show routeで詳細を見ると、candidate default path明示されます

STEP 0:R1の show route 0.0.0.0/0
RP/0/RP0/CPU0:R1#show route 0.0.0.0/0
Tue Sep  8 05:38:54.567 UTC

Routing entry for 0.0.0.0/0
  Known via "isis 1", distance 115, metric 10, candidate default path, type level-1
  Installed Sep  8 05:28:26.105 for 00:10:28
  Routing Descriptor Blocks
    10.1.2.2, from 2.2.2.2, via GigabitEthernet0/0/0/0
      Route metric is 10
  No advertising protos. 

R1はエリア外のプレフィックスを個別には持っていません

STEP 0:R1の show route 4.4.4.4/32
RP/0/RP0/CPU0:R1#show route 4.4.4.4/32
Tue Sep  8 05:38:54.731 UTC

% Network not in table

それでもデフォルトルート経由でR4まで到達できます。

STEP 0:R1からR4へのtraceroute
RP/0/RP0/CPU0:R1#traceroute 4.4.4.4 source 1.1.1.1
Tue Sep  8 05:38:55.053 UTC

Type escape sequence to abort.
Tracing the route to 4.4.4.4

 1  10.1.2.2 13 msec  5 msec  8 msec 
 2  10.2.5.5 10 msec  8 msec  9 msec 
 3  10.3.5.3 20 msec  11 msec  14 msec 
 4  10.3.4.4 26 msec  *  16 msec 

2ホップ目の10.2.5.5がレベル2専用のR5です。レベル1のR1は経路の詳細を知らないまま、バックボーンを経由して別エリアのR4へ届いています。

この仕組みは、OSPFのトータリースタブエリア(エリア内の経路とデフォルトルートだけを持つ)に近い動作です。IS-ISではこれが標準の動作であり、特別な設定は要りません。ATTビットが立つ条件や、意図的に立てない設定については、ATTビットとレベル1のデフォルトルートで解説します。

is-typecircuit-type

レベルの指定には2つの粒度があります。

コマンド粒度意味
is-typeルータ全体このルータがどのレベルのルーティングに参加するか。既定はlevel-1-2
circuit-typeインタフェース単位そのインタフェースでどのレベルの隣接を張るか。既定はis-typeに従う

IIHのCircuit typeで相手に伝わる

どのレベルで隣接を張ろうとしているかは、IIHのCircuit typeフィールドに入って相手に伝わります。

意味
0x1レベル1のみ
0x2レベル2のみ
0x3レベル1とレベル2の両方

初期状態でR1–R2リンクとR2–R5リンクを同時にキャプチャすると、3種類がそろいます。

R1 → R2 のIIH(tshark -V、抜粋)
ISIS HELLO
    .... ..01 = Circuit type: Level 1 only (0x1)
    0000 00.. = Reserved: 0x00
    SystemID {Sender of PDU}: 0010.0100.1001
上のtshark出力のパケット(R1のIIH)のpcapをダウンロード
R2 → R1 のIIH(tshark -V、抜粋)
ISIS HELLO
    .... ..11 = Circuit type: Level 1 and 2 (0x3)
    0000 00.. = Reserved: 0x00
    SystemID {Sender of PDU}: 0020.0200.2002
上のtshark出力のパケット(R2のIIH)のpcapをダウンロード
R5 → R2 のIIH(tshark -V、抜粋)
ISIS HELLO
    .... ..10 = Circuit type: Level 2 only (0x2)
    0000 00.. = Reserved: 0x00
    SystemID {Sender of PDU}: 0050.0500.5005
上のtshark出力のパケット(R5のIIH)のpcapをダウンロード

is-typeの設定がそのままIIHのビットになっていることが分かります。R2はR1向けにもR5向けにも同じ0x3を送っており、レベルを決めているのはルータ自身の設定であって相手ではない、という点も読み取れます。

is-typeでルータ全体のレベルを絞る(STEP 1)

R2をis-type level-2-onlyに変更すると、R1とのレベル1隣接が成立しなくなります。

STEP 1:R1のsyslog
RP/0/RP0/CPU0:Sep  8 05:44:39.514 UTC: isis[1003]: %ROUTING-ISIS-5-ADJCHANGE : ISIS (1): Adjacency to 49.0001.0020.0200.2002 (GigabitEthernet0/0/0/0) (L1) Down, Area addr/level differ 

ここで注意したいのは、メッセージがArea addr/level differ(エリアアドレスかレベルが違う)となっていることです。NSAPアドレスとNETでArea IDを変えたときとまったく同じ文面が出ます。今回はエリアは49.0001のまま一致しており、原因はレベルのほうです。ログだけでは原因を特定できないので、show isisIS LevelsManual area address(es)の両方を確認する必要があります。

隣接が減るだけでなく、レベル1のLSDB自体が無くなります

STEP 1:R2の show isis database
RP/0/RP0/CPU0:R2#show isis database
Tue Sep  8 05:46:36.843 UTC

IS-IS 1 (Level-2) Link State Database
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime/Rcvd  ATT/P/OL
R2.00-00            * 0x0000000a   0xd109        1078 /*            0/0/0
R3.00-00              0x00000009   0x7d85        906  /1200         0/0/0
R5.00-00              0x00000007   0x8636        932  /1200         0/0/0

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

STEP 0で2つあった表のうち、Level-1の表が消えています。不要なレベルを無効にするとLSDBも隣接も減るという効果がそのまま現れています。

このときR1はIS-ISの経路をすべて失います。エリア49.0001に他のレベル1-2ルータがいないため、デフォルトルートも消えます(show route isis% No matching routes foundになります)。STEP 2でno is-typeを投入すると、設定行が消えて既定のレベル1-2に戻り、隣接も経路も復旧しました。

circuit-typeでインタフェース単位に絞る(STEP 3)

R2のR5向けインタフェース(Gi0/0/0/1)にだけcircuit-type level-1を入れます。R5はレベル2専用なので、共通するレベルが無くなり隣接が成立しなくなります。

STEP 3:R2のIS-IS設定(抜粋)
router isis 1
 net 49.0001.0020.0200.2002.00
 log adjacency changes
 address-family ipv4 unicast
 !
 interface GigabitEthernet0/0/0/1
  circuit-type level-1

効果はshow isis interface briefにはっきり出ます。STEP 0と見比べてください。

STEP 0:R2の show isis interface brief
RP/0/RP0/CPU0:R2#show isis interface brief
Tue Sep  8 05:37:45.347 UTC

IS-IS 1 Interfaces
    Interface      All     Adjs    Adj Topos  Adv Topos  CLNS   MTU    Prio  
                   OK    L1   L2    Run/Cfg    Run/Cfg                L1   L2
-----------------  ---  ---------  ---------  ---------  ----  ----  --------
Lo0                Yes    -    -      0/0        1/1     No       -    -    -
Gi0/0/0/0          Yes    1    0      1/1        1/1     Up    1497    -    -
Gi0/0/0/1          Yes    0    1      1/1        1/1     Up    1497    -    -
STEP 3:R2の show isis interface brief
RP/0/RP0/CPU0:R2#show isis interface brief
Tue Sep  8 05:53:34.269 UTC

IS-IS 1 Interfaces
    Interface      All     Adjs    Adj Topos  Adv Topos  CLNS   MTU    Prio  
                   OK    L1   L2    Run/Cfg    Run/Cfg                L1   L2
-----------------  ---  ---------  ---------  ---------  ----  ----  --------
Lo0                Yes    -    -      0/0        1/1     No       -    -    -
Gi0/0/0/0          Yes    1    0      1/1        1/1     Up    1497    -    -
Gi0/0/0/1          Yes    0    -      1/1        1/1     Up    1497    -    -

Adjs欄はL1とL2に分かれており、Gi0/0/0/1のL2が1から-に変わりました。-は「そのレベルが有効でない」、0は「有効だが隣接が0本」という区別で、circuit-typeがインタフェース単位で効いていることが読み取れます。

is-typeとの違いは、LSDBを見ると明確です。

STEP 3:R2の show isis database
RP/0/RP0/CPU0:R2#show isis database
Tue Sep  8 05:53:34.782 UTC

IS-IS 1 (Level-1) Link State Database
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime/Rcvd  ATT/P/OL
R1.00-00              0x00000008   0x27f1        863  /1199         0/0/0
R2.00-00            * 0x00000003   0x2d3d        1069 /*            0/0/0

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

IS-IS 1 (Level-2) Link State Database
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime/Rcvd  ATT/P/OL
R2.00-00            * 0x0000000e   0x532c        1069 /*            0/0/0
R3.00-00              0x00000009   0x7d85        488  /1200         0/0/0
R5.00-00              0x00000007   0x8636        514  /1200         0/0/0

 Total Level-2 LSP count: 3     Local Level-2 LSP count: 1
操作R2のLSDB
STEP 1(is-type level-2-onlyレベル1の表が消える。ルータ全体でレベル1をやめたため
STEP 3(circuit-type level-1両方の表が残る。ルータとしては両レベルで動いており、絞ったのは1インタフェースだけ

なお、STEP 3のレベル2の表にはR3・R5のLSPがまだ残っています。隣接が切れてもLSPはすぐには消えず、LSP Holdtime(この時点で488秒・514秒)が0になるまで保持されるためです。

キャプチャを見ると、同じリンク上でR2のCircuit typeが変わった瞬間が分かります。

変更前のR2のIIH(No.3)
ISIS HELLO
    .... ..11 = Circuit type: Level 1 and 2 (0x3)
    0000 00.. = Reserved: 0x00
    SystemID {Sender of PDU}: 0020.0200.2002
上のtshark出力のパケット(No.3 変更前のIIH)のpcapをダウンロード
変更後のR2のIIH(No.5)
ISIS HELLO
    .... ..01 = Circuit type: Level 1 only (0x1)
    0000 00.. = Reserved: 0x00
    SystemID {Sender of PDU}: 0020.0200.2002
上のtshark出力のパケット(No.5 変更後のIIH)のpcapをダウンロード

R5は一貫してLevel 2 only (0x2)を送り続けています。R2が0x3から0x1に変わった時点で共通するレベルが無くなり、隣接が成立しなくなりました。is-typecircuit-typeはどちらも、最終的には同じIIHの同じフィールドに現れます。

レベル2バックボーンは連続していなければならない

レベル2に参加するルータの集まりがバックボーンです。OSPFのエリア0に相当しますが、IS-ISのバックボーンは特定のエリア番号ではなく、レベル2の隣接でつながったルータの連なりとして存在します。

重要な制約は、このレベル2の連なりが途切れてはいけないことです。STEP 3でR2–R5間のレベル2隣接が失われた結果、バックボーンはR2側とR5–R3側に分断されました。

STEP 3:R2のsyslog
RP/0/RP0/CPU0:Sep  8 05:51:24.667 UTC: isis[1003]: %ROUTING-ISIS-5-ADJCHANGE : ISIS (1): Adjacency to R5 (GigabitEthernet0/0/0/1) (L2) Down, Interface state down 

影響はエリアの中にも及びます。R2はレベル2の隣接を失ってATTビットを下ろすため、R1のデフォルトルートが消えます

STEP 3:R1の show route isisとtraceroute
RP/0/RP0/CPU0:R1#show route isis
Tue Sep  8 05:54:31.352 UTC

i L1 2.2.2.2/32 [115/10] via 10.1.2.2, 00:06:33, GigabitEthernet0/0/0/0
i L1 10.2.5.0/24 [115/20] via 10.1.2.2, 00:06:33, GigabitEthernet0/0/0/0
RP/0/RP0/CPU0:R1#show route 0.0.0.0/0
Tue Sep  8 05:54:31.544 UTC

% Network not in table

RP/0/RP0/CPU0:R1#traceroute 4.4.4.4 source 1.1.1.1
Tue Sep  8 05:54:31.816 UTC

Type escape sequence to abort.
Tracing the route to 4.4.4.4

 1  1.1.1.1 !N  *  !N 

STEP 0にあったi*L1 0.0.0.0/0の行が消え、R1からR4への通信が!N(ネットワーク到達不能)になりました。インタフェース1本のレベルを絞っただけで、エリアをまたぐ疎通が丸ごと止まります。

STEP 4でcircuit-typeを削除すると、隣接・デフォルトルート・R4への疎通(4ホップ)がすべて初期状態に戻りました。

なお、Cisco実装を含む多くの実装はパーティション修復(partition repair)に対応していないため、レベル1のエリアについても同様に連続している必要があります。

レベルごとのメトリックと経路の優先順位

メトリックはレベルごとに独立して計算されます。同じ宛先をレベル1とレベル2の両方で学習した場合、レベル1の経路が優先されます。自エリア内の経路のほうが、エリア外を経由する経路より確実だからです。

本記事の構成では同じプレフィックスが両レベルに現れる場面がないため、この優先順位は実機では確認していません。メトリックの値そのものの扱い(narrow / wide)については、メトリックで解説します。

設計の指針

エリアをどう切るかは、次の点を踏まえて決めます。

  • バックボーン(レベル2)は連続させる。 分断されるとエリア間の疎通が失われる(STEP 3で確認したとおりです)
  • エリアの境界はリンクの上に来る。 「どのルータを境界にするか」ではなく「どのリンクを境界にするか」で考える
  • レベル1のルータはエリア外の詳細を持たない。 経路の細かい制御が必要な場所をレベル1に閉じ込めない
  • 不要なレベルは無効にする。 既定のレベル1-2のままだとLSDBも隣接も倍になる

検証Configおよびshow結果

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

ファイル内容
..._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 detail / 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)

これに加えて、各STEPでR1からshow route isis / show route 0.0.0.0/0 / show route 4.4.4.4/32 / traceroute 4.4.4.4 source 1.1.1.1..._trace.txtとして取得しています。

STEP 0:初期状態

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

追加取得: R1 経路とtraceroute

STEP 1:R2をis-type level-2-onlyへ変更 — R1とのレベル1隣接が張れなくなる

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

追加取得: R1 経路とtraceroute

STEP 2:R2を既定(level-1-2)へ戻す — 復旧

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

追加取得: R1 経路とtraceroute

STEP 3:R2のGi0/0/0/1にcircuit-type level-1を設定 — レベル2隣接が張れず、バックボーンが分断される

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

追加取得: R1 経路とtraceroute

STEP 4:circuit-typeを削除(最終状態) — 初期状態と同じ

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

追加取得: R1 経路とtraceroute

キャプチャーファイルは次の3本です。

R1–R2リンク(レベル1隣接)のキャプチャー(isis-level-l1.pcap) をダウンロード

R2–R5リンク(レベル2隣接)のキャプチャー(isis-level-l2.pcap) をダウンロード

circuit-type変更時(STEP 3)のキャプチャー(isis-level-circuit-type.pcap) をダウンロード

参考

標準タイトル概要
ISO/IEC 10589:2002(第2版)Intermediate System to Intermediate System intra-domain routeing information exchange protocolIS-IS本体の仕様。本記事が参照したのは、レベル1/レベル2の階層と「各システムは1つのエリアに属する」ことを述べる6.3、レベル1のISがもっとも近いレベル2のISを求める7.2.9.1、ATTフラグを立てる条件を定める7.2.9.2、IIHのCircuit Typeを定義する9.5 / 9.7
RFC 1142OSI IS-IS Intra-domain Routing ProtocolISO 10589のDraft Proposal(1990年)を再公開したもの。現在はHistoric。ISO/IEC 10589の代わりに参照してはいけません(RFC 7142)。
RFC 7142Reclassification of RFC 1142 to HistoricRFC 1142をHistoricへ再分類した文書。Draft Proposalが最終版と大きく異なること、参照すべきはISO/IEC 10589:2002 第2版であることを述べている。
RFC 1195Use of OSI IS-IS for Routing in TCP/IP and Dual EnvironmentsIPの経路をレベル1/レベル2で交換するための拡張。

関連記事