IS-ISのメトリック(narrow / wide)
IS-ISはリンクごとのメトリックを足し合わせ、合計が最小の経路を選びます。値をどこまで大きくできるかはmetric-styleが決めます。既定のnarrowでは1リンク63までで、64以上を設定してもコマンドは通り、広告される値だけが63に丸められます。
規格の定めるメトリックの構造を確認し、narrowとwideでLSPがどう変わるかをIOS XRとキャプチャーで確かめます。
規格が定めるメトリックは4種類
ISO/IEC 10589:2002の7.2.2は、ISO 8473のQoS Maintenanceフィールドに対応する4つのメトリックを定義しています。
| メトリック | 測るもの | 必須か |
|---|---|---|
| default | 回線が扱えるトラフィック量(スループット)。値が大きいほど容量が小さい | 必須 |
| delay | 回線の転送遅延。値が大きいほど遅い | 任意 |
| expense | 回線を使う金銭的コスト。値が大きいほど高い | 任意 |
| error | 回線の残留誤り率。値が大きいほど誤りが多い | 任意 |
同項は「defaultメトリックは必須、ほかは任意」と定め、サポートしないメトリックはLSPに載せてはならないとしています。実装がdefaultだけを扱うのはこのためで、metricコマンドが設定するのもdefaultです。
NOTE 13は「決定プロセスはメトリックを単純な加算で合成する」と述べています。
narrowのメトリックは6ビットしかない
9.8 / 9.9が定めるTLV 2(Intermediate System Neighbours)は、隣接ごとに1オクテットのメトリックを4つ並べます。
- bit 8: defaultメトリックでは予約(0)。delay / expense / errorではSビットで、1ならそのメトリックは未サポート
- bit 7: I/Eビット。内部メトリックか外部メトリックかを示し、TLV 2では常に0(内部)
- bit 6 〜 bit 1: メトリックの値
値に使えるのは6ビットだけです。表2はMaxLinkMetric=63、MaxPathMetric=1023を定め、1リンク63まで、経路全体1023までです。
IPプレフィックスを運ぶTLV 128(RFC 1195)も並べ方は同じです。defaultメトリックのbit 8はRFC 5302がup/downビットとして再定義しています。
この形式を「narrow」と呼ぶのは後からの呼び名で、規格の本文にnarrowという語は出てきません。
LSPそのものの構造やTLVの並び方は、IS-ISパケットの種類とヘッダーフォーマットで解説しています。
wideメトリックはRFC 5305が追加したTLV
RFC 5305「IS-IS Extensions for Traffic Engineering」は、メトリックの幅を広げた新しいTLVを2つ定義しました。
| TLV | 名称 | メトリックの幅 |
|---|---|---|
| 22 | Extended IS Reachability | 24ビット(0 〜 16777215) |
| 135 | Extended IP Reachability | 32ビット |
経路全体にはMAX_PATH_METRIC=0xFE000000という上限があり(加算のあふれを防ぐため)、これを超えるプレフィックスは通常のSPF計算で使ってはいけません。
最大リンクメトリック(2^24−1 = 16777215)で広告されたリンクも、通常のSPF計算で使ってはいけません。上限値が「このリンクは使わせない」の意思表示です。
wideとnarrowは別のTLVなので、受け取る側が同じ形式を解釈できなければそのリンクは見えません。
TLV 22にはトラフィックエンジニアリング向けのサブTLVも同じRFCで定義されています。
IOS XRでの設定
形式の選択はrouter isisのアドレスファミリ配下、リンクごとの値はインタフェースのアドレスファミリ配下に書きます。
router isis 1
address-family ipv4 unicast
metric-style wide
!
interface GigabitEthernet0/0/0/0
address-family ipv4 unicast
metric 1000000metric-styleには3つの値があります。
| 値 | 生成するTLV | 受理するTLV |
|---|---|---|
narrow | TLV 2 / TLV 128 | TLV 2 / TLV 128 |
wide | TLV 22 / TLV 135 | TLV 22 / TLV 135 |
transition | 両方 | 両方 |
transitionは移行期間用で、両形式を同時に広告し両方を受理します。既定はnarrowです。
metricはレベルを指定でき、省略すると両レベルに効きます。ルータ全体の既定値(10)はrouter isisのアドレスファミリ配下のmetricで変えられます。
narrowのまま64以上を設定するとどうなるか
CLIのレンジはmetric-styleによらず<1-16777214>なので、narrowでもmetric 64はコミットできます。広告される値だけが63に丸められます。
RP/0/RP0/CPU0:R1(config)#router isis 1
RP/0/RP0/CPU0:R1(config-isis)# interface GigabitEthernet0/0/0/0
RP/0/RP0/CPU0:R1(config-isis-if)# address-family ipv4 unicast
RP/0/RP0/CPU0:R1(config-isis-if-af)# metric ?
<1-16777214> Default metric: <1-63> for narrow, <1-16777214> for wide
fallback Increase the link metric when an event occurs
maximum Maximum wide metric. All routers will exclude this link from their SPF
RP/0/RP0/CPU0:R1(config-isis-if-af)# metric
% Incomplete command.
RP/0/RP0/CPU0:R1(config-isis-if-af)#commit
Wed Sep 9 09:48:14.636 UTC
RP/0/RP0/CPU0:R1(config-isis-if-af)#end入力できる範囲と広告できる範囲は別です。上限が16777214で止まるのは、16777215がSPFから外す値としてmaximumに割り当てられているためです。
メトリックは方向ごとに効く
メトリックは自分から出ていく回線に割り当て、自分のLSPで広告します。R1がR1→R2に大きな値を入れても、R2が広告するR2→R1は変わりません。片方向だけ上げると経路が非対称になります。
実機での検証
検証環境
R1 — R2 — R3を直列にし、全台をエリア49.0001のlevel-2-only、全リンクをpoint-to-pointにします。加算と方向ごとの効き方を同時に見るためです。
| ルータ | NET | Lo0 | リンク |
|---|---|---|---|
| R1 | 49.0001.0010.0100.1001.00 | 1.1.1.1/32 | Gi0/0/0/0 10.1.2.1 |
| R2 | 49.0001.0020.0200.2002.00 | 2.2.2.2/32 | Gi0/0/0/0 10.1.2.2 / Gi0/0/0/1 10.2.3.2 |
| R3 | 49.0001.0030.0300.3003.00 | 3.3.3.3/32 | Gi0/0/0/0 10.2.3.3 |
検証のSTEP
| STEP | 操作 | 狙い |
|---|---|---|
| 0 | 既定のまま(narrow、メトリック10) | narrowで何が広告されるかの基準を取る |
| 1 | narrowのままR1のGi0/0/0/0にmetric 64 | 上限を超えた値がどう広告されるか |
| 2 | 全台をmetric-style wideに | TLVの入れ替わりと、同じ64がそのまま通ること |
| 3 | wideのままR1にmetric 1000000 | 大きな値の広告と、方向ごとに効くこと |
| 4 | metricとmetric-styleを削除(最終状態) | 初期状態と同じ |
既定はnarrow、メトリックは10(STEP 0)
何も設定しなければmetric-styleはnarrow、リンクのメトリックは10です。
Topologies supported by IS-IS:
IPv4 Unicast
Rib connected
Level-2
Metric style (generate/accept): Narrow/Narrow
Metric: 10
No protocols redistributed
Distance: 115
Advertise Passive Interface Prefixes Only: Nogenerate(自分が生成する形式)とaccept(受け取って解釈する形式)が別々に表示されます。どちらもNarrowです。
このときのリンクステートデータベースは次のようになります。
RP/0/RP0/CPU0:R1#show isis database detail
Wed Sep 9 09:29:26.745 UTC
IS-IS 1 (Level-2) Link State Database
LSPID LSP Seq Num LSP Checksum LSP Holdtime/Rcvd ATT/P/OL
R1.00-00 * 0x00000005 0x2fea 1047 /* 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 0x00000007 0xdd8d 1054 /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 0x00000006 0x8739 1053 /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: 1ISがリンク(TLV 2)、IPがプレフィックス(TLV 128)です。LoopbackがMetric: 0なのは自身のアドレスだからです。
経路表には、通る各リンクのメトリックを足した値が出ます。
RP/0/RP0/CPU0:R1#show route isis
Wed Sep 9 09:29:25.319 UTC
i L2 2.2.2.2/32 [115/10] via 10.1.2.2, 00:02:28, GigabitEthernet0/0/0/0
i L2 3.3.3.3/32 [115/20] via 10.1.2.2, 00:02:23, GigabitEthernet0/0/0/0
i L2 10.2.3.0/24 [115/20] via 10.1.2.2, 00:02:28, GigabitEthernet0/0/0/03.3.3.3/32の[115/20]は10 + 10で、115はアドミニストレーティブディスタンスです。
パケットの中身も見ておきます。R1—R2間のキャプチャーのNo.5が、このときR1が送ったLSPです。
$ tshark -r isis-metric-narrow.pcap -n -V -Y "frame.number == 5"
ISO 10589 ISIS Link State Protocol Data Unit
PDU length: 90
Remaining lifetime: 1200
LSP-ID: 0010.0100.1001.00-00
Sequence number: 0x00000009
Checksum: 0x27ee [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)
Area address(es) (t=1, l=4)
Type: 1
Length: 4
Area address (3): 49.0001
Originating neighbor buffer size (t=14, l=2)
Type: 14
Length: 2
Neighbor originating buffer size: 1492
Protocols supported (t=129, l=1)
Type: 129
Length: 1
NLPID: IP (0xcc)
NLPID: 0xcc
IP Interface address(es) (t=132, l=4)
Type: 132
Length: 4
IPv4 interface address: 1.1.1.1
Hostname (t=137, l=2)
Type: 137
Length: 2
Hostname: R1
IP Internal reachability (t=128, l=24)
Type: 128
Length: 24
IPv4 prefix: 1.1.1.1/32
..00 0000 = Default Metric: 0
.0.. .... = Default Metric IE: Internal
0... .... = Distribution: Up
..00 0000 = Delay Metric: 0
1... .... = Delay Metric: Not Supported
.0.. .... = Delay Metric: Internal
..00 0000 = Expense Metric: 0
1... .... = Expense Metric: Not Supported
.0.. .... = Expense Metric: Internal
..00 0000 = Error Metric: 0
1... .... = Error Metric: Not Supported
.0.. .... = Error Metric: Internal
IPv4 prefix: 10.1.2.0/24
..00 1010 = Default Metric: 10
.0.. .... = Default Metric IE: Internal
0... .... = Distribution: Up
..00 0000 = Delay Metric: 0
1... .... = Delay Metric: Not Supported
.0.. .... = Delay Metric: Internal
..00 0000 = Expense Metric: 0
1... .... = Expense Metric: Not Supported
.0.. .... = Expense Metric: Internal
..00 0000 = Error Metric: 0
1... .... = Error Metric: Not Supported
.0.. .... = Error Metric: Internal
IS Reachability (t=2, l=12)
Type: 2
Length: 12
Reserved: 0x00
IS Neighbor: 0020.0200.2002.00
..00 1010 = Default Metric: 10
.0.. .... = Default Metric: Internal
..00 1010 = Delay Metric: 10
0... .... = Delay Metric: Supported
.0.. .... = Delay Metric: Internal
..00 1010 = Expense Metric: 10
0... .... = Expense Metric: Supported
.0.. .... = Expense Metric: Internal
..00 1010 = Error Metric: 10
0... .... = Error Metric: Supported
.0.. .... = Error Metric: Internal
IS Neighbor: 0020.0200.2002.00TLV 128のDefault Metricが..00 1010と6ビット幅で展開されているのがnarrowの証拠です。delay / expense / errorはNot Supported(Sビットが1)です。
TLV 2側のdelay / expense / errorがSupportedと展開されていますが、生バイト列は0a 80 80 80でSビットが1です(tshark 4.6.8の展開がdefaultの値を繰り返しています)。
narrowのまま63を超える値を設定する(STEP 1)
R1のGi0/0/0/0にmetric 64を入れます。metric-styleはnarrowのままで、コマンドは通ります。
interface GigabitEthernet0/0/0/0
point-to-point
address-family ipv4 unicast
metric 64
!
!ところが実際に使われる値は63です。
IPv4 Unicast Topology: Enabled
Adjacency Formation: Running
Prefix Advertisement: Running
Policy (L1/L2): -/-
Metric (L1/L2): 63/63
Metric fallback:
Bandwidth (L1/L2): Inactive/Inactive
Anomaly (L1/L2): Inactive/Inactive
Weight (L1/L2): 0/0
MPLS Max Label Stack: 1/3/7/7 (PRI/BKP/SRTE/SRAT)
MPLS LDP Sync (L1/L2): Disabled/DisabledLSPに載る値も63です。設定した64はどこにも現れません。
RP/0/RP0/CPU0:R1#show isis database detail
Wed Sep 9 09:33:56.253 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 0x812d 1043 /* 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: 63 IP 10.1.2.0/24
Metric: 63 IS R2.00
R2.00-00 0x00000007 0xdd8d 784 /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 0x00000006 0x8739 783 /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経路表も63を基準に計算されます。
RP/0/RP0/CPU0:R1#show route isis
Wed Sep 9 09:33:54.620 UTC
i L2 2.2.2.2/32 [115/63] via 10.1.2.2, 00:02:35, GigabitEthernet0/0/0/0
i L2 3.3.3.3/32 [115/73] via 10.1.2.2, 00:02:35, GigabitEthernet0/0/0/0
i L2 10.2.3.0/24 [115/73] via 10.1.2.2, 00:02:35, GigabitEthernet0/0/0/0設定値とLSPの値が食い違うので、show isis databaseで広告している値を確認します。
metric-style wide に切り替える(STEP 2)
3台すべてをmetric-style wideにします。設定値は64のままです。
Topologies supported by IS-IS:
IPv4 Unicast
Rib connected
Level-2
Metric style (generate/accept): Wide/Wide
Metric: 10
No protocols redistributed
Distance: 115
Advertise Passive Interface Prefixes Only: No生成・受理ともにWideになりました。データベースの表示も変わります。
RP/0/RP0/CPU0:R1#show isis database detail
Wed Sep 9 09:37:28.888 UTC
IS-IS 1 (Level-2) Link State Database
LSPID LSP Seq Num LSP Checksum LSP Holdtime/Rcvd ATT/P/OL
R1.00-00 * 0x00000007 0x39f2 1085 /* 0/0/0
Area Address: 49.0001
LSP MTU: 1492
NLPID: 0xcc
IP Address: 1.1.1.1
Hostname: R1
Metric: 64 IS-Extended R2.00
Metric: 0 IP-Extended 1.1.1.1/32
Metric: 64 IP-Extended 10.1.2.0/24
R2.00-00 0x00000008 0x7617 1085 /1200 0/0/0
Area Address: 49.0001
LSP MTU: 1492
NLPID: 0xcc
IP Address: 2.2.2.2
Hostname: R2
Metric: 10 IS-Extended R1.00
Metric: 10 IS-Extended R3.00
Metric: 0 IP-Extended 2.2.2.2/32
Metric: 10 IP-Extended 10.1.2.0/24
Metric: 10 IP-Extended 10.2.3.0/24
R3.00-00 0x00000007 0xa699 1085 /1200 0/0/0
Area Address: 49.0001
LSP MTU: 1492
NLPID: 0xcc
IP Address: 3.3.3.3
Hostname: R3
Metric: 10 IS-Extended R2.00
Metric: 0 IP-Extended 3.3.3.3/32
Metric: 10 IP-Extended 10.2.3.0/24
Total Level-2 LSP count: 3 Local Level-2 LSP count: 1IS-Extended(TLV 22)とIP-Extended(TLV 135)に置き換わり、同じ設定値64が64のまま広告されています。
RP/0/RP0/CPU0:R1#show route isis
Wed Sep 9 09:37:27.729 UTC
i L2 2.2.2.2/32 [115/64] via 10.1.2.2, 00:01:52, GigabitEthernet0/0/0/0
i L2 3.3.3.3/32 [115/74] via 10.1.2.2, 00:01:52, GigabitEthernet0/0/0/0
i L2 10.2.3.0/24 [115/74] via 10.1.2.2, 00:01:52, GigabitEthernet0/0/0/0キャプチャーのNo.9が、wideに切り替えた直後にR1が送ったLSPです。
$ tshark -r isis-metric-wide.pcap -n -V -Y "frame.number == 9"
ISO 10589 ISIS Link State Protocol Data Unit
PDU length: 90
Remaining lifetime: 1200
LSP-ID: 0010.0100.1001.00-00
Sequence number: 0x00000007
Checksum: 0x39f2 [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)
Area address(es) (t=1, l=4)
Type: 1
Length: 4
Area address (3): 49.0001
Originating neighbor buffer size (t=14, l=2)
Type: 14
Length: 2
Neighbor originating buffer size: 1492
Protocols supported (t=129, l=1)
Type: 129
Length: 1
NLPID: IP (0xcc)
NLPID: 0xcc
IP Interface address(es) (t=132, l=4)
Type: 132
Length: 4
IPv4 interface address: 1.1.1.1
Hostname (t=137, l=2)
Type: 137
Length: 2
Hostname: R1
Extended IS reachability (t=22, l=11)
Type: 22
Length: 11
IS Neighbor: 0020.0200.2002.00
IS neighbor ID: 0020.0200.2002.00
Metric: 64
SubCLV Length: 0 (no sub-TLVs present)
Extended IP Reachability (t=135, l=25)
Type: 135
Length: 25
Ext. IP Reachability: 1.1.1.1/32
Metric: 0
0... .... = Distribution: Up
.1.. .... = Sub-TLV: Yes
..10 0000 = Prefix Length: 32
IPv4 prefix: 1.1.1.1
SubCLV Length: 3
subTLV: Prefix Attribute Flags (c=4, l=1): Flags:--N
Code: Prefix Attribute Flags (4)
Length: 1
Flags: 0x20, Node
0... .... = External Prefix: Not set
.0.. .... = Re-advertisement: Not set
..1. .... = Node: Set
Ext. IP Reachability: 10.1.2.0/24
Metric: 64
0... .... = Distribution: Up
.1.. .... = Sub-TLV: Yes
..01 1000 = Prefix Length: 24
IPv4 prefix: 10.1.2.0
SubCLV Length: 3
subTLV: Prefix Attribute Flags (c=4, l=1): Flags:---
Code: Prefix Attribute Flags (4)
Length: 1
Flags: 0x00
0... .... = External Prefix: Not set
.0.. .... = Re-advertisement: Not set
..0. .... = Node: Not setTLV 2とTLV 128は消え、TLV 22とTLV 135だけです。メトリックはMetric: 64という1つの数値で、4種類の構造はありません。
metric-styleの変更はLSPの作り直しを伴いますが、隣接には影響しません。
RP/0/RP0/CPU0:R1#show isis adjacency-log
Wed Sep 9 09:37:29.342 UTC
IS-IS 1 Level 2 Adjacency Log Capacity: 100, Size: 2
When System Interface State Details
--- Wed Sep 9 2026 ---
09:26:50.626 R2 Gi0/0/0/0 d -> i
09:26:51.234 R2 Gi0/0/0/0 i -> u New adjacency
IPv4 Unicast Up起動時の2行だけで、遷移はありません。メトリックはLSPで運ぶ情報で、IIHで突き合わせる項目ではないからです。
wideで大きな値を入れる(STEP 3)
R1のGi0/0/0/0をmetric 1000000にします。narrowでは表現できない値です。
RP/0/RP0/CPU0:R1#show isis database detail
Wed Sep 9 09:40:17.373 UTC
IS-IS 1 (Level-2) Link State Database
LSPID LSP Seq Num LSP Checksum LSP Holdtime/Rcvd ATT/P/OL
R1.00-00 * 0x00000008 0xafd8 1089 /* 0/0/0
Area Address: 49.0001
LSP MTU: 1492
NLPID: 0xcc
IP Address: 1.1.1.1
Hostname: R1
Metric: 1000000 IS-Extended R2.00
Metric: 0 IP-Extended 1.1.1.1/32
Metric: 1000000 IP-Extended 10.1.2.0/24
R2.00-00 0x00000008 0x7617 917 /1200 0/0/0
Area Address: 49.0001
LSP MTU: 1492
NLPID: 0xcc
IP Address: 2.2.2.2
Hostname: R2
Metric: 10 IS-Extended R1.00
Metric: 10 IS-Extended R3.00
Metric: 0 IP-Extended 2.2.2.2/32
Metric: 10 IP-Extended 10.1.2.0/24
Metric: 10 IP-Extended 10.2.3.0/24
R3.00-00 0x00000007 0xa699 916 /1200 0/0/0
Area Address: 49.0001
LSP MTU: 1492
NLPID: 0xcc
IP Address: 3.3.3.3
Hostname: R3
Metric: 10 IS-Extended R2.00
Metric: 0 IP-Extended 3.3.3.3/32
Metric: 10 IP-Extended 10.2.3.0/24
Total Level-2 LSP count: 3 Local Level-2 LSP count: 1丸められることなく1000000がそのまま載りました。R1から見た経路も、この値を足したコストになります。
RP/0/RP0/CPU0:R1#show route isis
Wed Sep 9 09:40:15.963 UTC
i L2 2.2.2.2/32 [115/1000000] via 10.1.2.2, 00:01:48, GigabitEthernet0/0/0/0
i L2 3.3.3.3/32 [115/1000010] via 10.1.2.2, 00:01:48, GigabitEthernet0/0/0/0
i L2 10.2.3.0/24 [115/1000010] via 10.1.2.2, 00:01:48, GigabitEthernet0/0/0/0一方、R3から見た経路は何も変わっていません。
RP/0/RP0/CPU0:R3#show route isis
Wed Sep 9 09:40:48.623 UTC
i L2 1.1.1.1/32 [115/20] via 10.2.3.2, 00:05:13, GigabitEthernet0/0/0/0
i L2 2.2.2.2/32 [115/10] via 10.2.3.2, 00:05:13, GigabitEthernet0/0/0/0
i L2 10.1.2.0/24 [115/20] via 10.2.3.2, 00:05:13, GigabitEthernet0/0/0/0R3から1.1.1.1/32はR3→R2の10とR2→R1の10で、R1の1000000は入りません。メトリックは方向ごとの値です。
元に戻す(STEP 4)
metricとmetric-styleを削除すると初期状態に戻ります(STEP 0と4の..._run.txtが一致)。
narrowとwideのどちらを使うか
新規ならwideです。63も1023も狭すぎ、トラフィックエンジニアリングの拡張もwideが前提です。
移行時は同じレベルの全ルータで形式をそろえます。片側だけ切り替えると切り替えていないルータからはそのリンクが読めません。一斉に変えられない場合はtransitionを使います。
本記事のラボではnarrowとwideだけを検証しており、transitionとmetric maximumは動作を確認していません。
検証Configおよびshow結果
各STEPで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-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.txt | STEP 4のR1のみ。metric ?で表示したCLIヘルプ |
STEP 0:既定(narrow、メトリック10)
| ルータ | show出力 | syslog | running-config |
|---|---|---|---|
| R1 | show | log | run |
| R2 | show | log | run |
| R3 | show | log | run |
STEP 1:narrowのままR1にmetric 64
| ルータ | show出力 | syslog | running-config |
|---|---|---|---|
| R1 | show | log | run |
| R2 | show | log | run |
| R3 | show | log | run |
STEP 2:全台をmetric-style wideに
| ルータ | show出力 | syslog | running-config |
|---|---|---|---|
| R1 | show | log | run |
| R2 | show | log | run |
| R3 | show | log | run |
STEP 3:wideのままR1にmetric 1000000
| ルータ | show出力 | syslog | running-config |
|---|---|---|---|
| R1 | show | log | run |
| R2 | show | log | run |
| R3 | show | log | run |
STEP 4:metricとmetric-styleを削除(最終状態)
| ルータ | show出力 | syslog | running-config |
|---|---|---|---|
| R1 | show | log | run |
| R2 | show | log | run |
| R3 | show | log | run |
STEP 4のR1にはCLIヘルプを取得したdebugもあります。
キャプチャーファイルは次の2本です。
narrowに戻したとき(STEP 4)のキャプチャー(isis-metric-narrow.pcap) をダウンロード
wideに切り替えたとき(STEP 2〜3)のキャプチャー(isis-metric-wide.pcap) をダウンロード
参考
| 標準 | タイトル | 概要 |
|---|---|---|
| ISO/IEC 10589:2002(第2版) | Intermediate System to Intermediate System intra-domain routeing information exchange protocol | IS-IS本体の仕様。本記事が参照したのは、4種類のメトリックを定義する7.2.2、アーキテクチャ定数MaxLinkMetric=63とMaxPathMetric=1023を定める表2、TLV 2のメトリックフィールドの内訳を定める9.8 / 9.9。 |
| RFC 1195 | Use of OSI IS-IS for Routing in TCP/IP and Dual Environments | IPの経路を運ぶTLV 128(IP Internal Reachability)などを定義。 |
| RFC 5302 | Domain-Wide Prefix Distribution with Two-Level IS-IS | TLV 128 / 130のdefaultメトリックのbit 8をup/downビットとして再定義した(RFC 2966を廃止)。 |
| RFC 5305 | IS-IS Extensions for Traffic Engineering | wideメトリックのTLV 22(24ビット)とTLV 135(32ビット)、MAX_PATH_METRIC=0xFE000000を定義(RFC 3784を廃止)。 |
| 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 | 参照すべきはISO/IEC 10589:2002 第2版であることを述べている。 |