なぜ階層があるのか
リンクステート型のルーティングプロトコルは、すべてのルータが同一の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のエリアがぶら下がっています。
| ルータ | NET | is-type | 役割 |
|---|---|---|---|
| R1 | 49.0001.0010.0100.1001.00 | level-1 | エリア49.0001の内部ルータ |
| R2 | 49.0001.0020.0200.2002.00 | (既定=level-1-2) | エリア49.0001の境界 |
| R5 | 49.0005.0050.0500.5005.00 | level-2-only | バックボーン専用 |
| R3 | 49.0002.0030.0300.3003.00 | (既定=level-1-2) | エリア49.0002の境界 |
| R4 | 49.0002.0040.0400.4004.00 | level-1 | エリア49.0002の内部ルータ |
R5は自分だけのエリア49.0005に置いています。レベル2専用のルータは、Area IDが誰とも一致しなくてもレベル2の隣接を張れることをここで確認できます。
R2・R3のis-typeが表に「既定」とあるのは、level-1-2が既定値でshow running-configに行が現れないためです。
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の隣接 |
| 1 | R2をis-type level-2-onlyへ変更 | R1とのレベル1隣接が張れなくなる |
| 2 | R2を既定(level-1-2)へ戻す | 復旧 |
| 3 | R2のR5向けインタフェースにcircuit-type level-1を設定 | レベル2隣接が張れず、バックボーンが分断される |
| 4 | circuit-typeを戻す(最終状態) | 初期状態と同じ |
初期状態の隣接は次のとおりで、同じエリア同士はレベル1、エリアが異なる区間はレベル2になっています。
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: 2RP/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: 2R5はエリア49.0005で、R2(49.0001)ともR3(49.0002)ともArea IDが一致しませんが、レベル2の隣接なので問題なく成立しています。
LSDBはレベルごとに別々
レベル1とレベル2は、それぞれ独立したLSDBを持ちます。レベル1-2のルータは2つのLSDBを同時に保持します。
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-1 | R1、R2 | エリア49.0001に属する2台だけ。R3・R4・R5のLSPは入らない |
| Level-2 | R2、R3、R5 | バックボーンに参加する3台。R1・R4のLSPは入らない |
レベル2専用のR5は、そもそもレベル1のLSDBを持ちません。
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 LSP | 18 | 観測済み |
| レベル2 LSP | 20 | 観測済み |
| レベル1 CSNP / PSNP | 24 / 26 | PSNP(26)のみ観測 |
| レベル2 CSNP / PSNP | 25 / 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 databaseのATT/P/OL欄の1桁目に出ます(規格上はメトリック種別ごとに4ビットあり、showが表示するのはDefaultメトリック用の1ビットです。IS-ISとはを参照してください)。前掲のSTEP 0の出力で、R2のレベル1 LSPだけが1/0/0になっているのがそれです。R2は他エリアへの出口を持っているため、エリア49.0001の中に「自分が出口だ」と広告しています。
受け取ったR1の経路は次のようになります。
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/0i*L1 0.0.0.0/0がATTビットによって作られたデフォルトルートです。show routeで詳細を見ると、candidate default pathと明示されます。
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はエリア外のプレフィックスを個別には持っていません。
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まで到達できます。
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-typeとcircuit-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種類がそろいます。
ISIS HELLO
.... ..01 = Circuit type: Level 1 only (0x1)
0000 00.. = Reserved: 0x00
SystemID {Sender of PDU}: 0010.0100.1001ISIS HELLO
.... ..11 = Circuit type: Level 1 and 2 (0x3)
0000 00.. = Reserved: 0x00
SystemID {Sender of PDU}: 0020.0200.2002ISIS HELLO
.... ..10 = Circuit type: Level 2 only (0x2)
0000 00.. = Reserved: 0x00
SystemID {Sender of PDU}: 0050.0500.5005is-typeの設定がそのままIIHのビットになっていることが分かります。R2はR1向けにもR5向けにも同じ0x3を送っており、レベルを決めているのはルータ自身の設定であって相手ではない、という点も読み取れます。
is-typeでルータ全体のレベルを絞る(STEP 1)
R2をis-type level-2-onlyに変更すると、R1とのレベル1隣接が成立しなくなります。
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 isisのIS LevelsとManual area address(es)の両方を確認する必要があります。
隣接が減るだけでなく、レベル1のLSDB自体が無くなります。
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: 1STEP 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専用なので、共通するレベルが無くなり隣接が成立しなくなります。
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と見比べてください。
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 - -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を見ると明確です。
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が変わった瞬間が分かります。
ISIS HELLO
.... ..11 = Circuit type: Level 1 and 2 (0x3)
0000 00.. = Reserved: 0x00
SystemID {Sender of PDU}: 0020.0200.2002ISIS HELLO
.... ..01 = Circuit type: Level 1 only (0x1)
0000 00.. = Reserved: 0x00
SystemID {Sender of PDU}: 0020.0200.2002R5は一貫してLevel 2 only (0x2)を送り続けています。R2が0x3から0x1に変わった時点で共通するレベルが無くなり、隣接が成立しなくなりました。is-typeとcircuit-typeはどちらも、最終的には同じIIHの同じフィールドに現れます。
レベル2バックボーンは連続していなければならない
レベル2に参加するルータの集まりがバックボーンです。OSPFのエリア0に相当しますが、IS-ISのバックボーンは特定のエリア番号ではなく、レベル2の隣接でつながったルータの連なりとして存在します。
重要な制約は、このレベル2の連なりが途切れてはいけないことです。STEP 3でR2–R5間のレベル2隣接が失われた結果、バックボーンはR2側とR5–R3側に分断されました。
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のデフォルトルートが消えます。
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.txt | show 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出力 | syslog | running-config |
|---|---|---|---|
| R1 | show | log | run |
| R2 | show | log | run |
| R3 | show | log | run |
| R4 | show | log | run |
| R5 | show | log | run |
追加取得: R1 経路とtraceroute
STEP 1:R2をis-type level-2-onlyへ変更 — R1とのレベル1隣接が張れなくなる
| ルータ | show出力 | syslog | running-config |
|---|---|---|---|
| R1 | show | log | run |
| R2 | show | log | run |
| R3 | show | log | run |
| R4 | show | log | run |
| R5 | show | log | run |
追加取得: R1 経路とtraceroute
STEP 2:R2を既定(level-1-2)へ戻す — 復旧
| ルータ | show出力 | syslog | running-config |
|---|---|---|---|
| R1 | show | log | run |
| R2 | show | log | run |
| R3 | show | log | run |
| R4 | show | log | run |
| R5 | show | log | run |
追加取得: R1 経路とtraceroute
STEP 3:R2のGi0/0/0/1にcircuit-type level-1を設定 — レベル2隣接が張れず、バックボーンが分断される
| ルータ | show出力 | syslog | running-config |
|---|---|---|---|
| R1 | show | log | run |
| R2 | show | log | run |
| R3 | show | log | run |
| R4 | show | log | run |
| R5 | show | log | run |
追加取得: R1 経路とtraceroute
STEP 4:circuit-typeを削除(最終状態) — 初期状態と同じ
| ルータ | show出力 | syslog | running-config |
|---|---|---|---|
| R1 | show | log | run |
| R2 | show | log | run |
| R3 | show | log | run |
| R4 | show | log | run |
| R5 | show | log | run |
追加取得: 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 protocol | IS-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 1142 | OSI IS-IS Intra-domain Routing Protocol | ISO 10589のDraft Proposal(1990年)を再公開したもの。現在はHistoric。ISO/IEC 10589の代わりに参照してはいけません(RFC 7142)。 |
| RFC 7142 | Reclassification of RFC 1142 to Historic | RFC 1142をHistoricへ再分類した文書。Draft Proposalが最終版と大きく異なること、参照すべきはISO/IEC 10589:2002 第2版であることを述べている。 |
| RFC 1195 | Use of OSI IS-IS for Routing in TCP/IP and Dual Environments | IPの経路をレベル1/レベル2で交換するための拡張。 |