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

IS-ISのメトリック(narrow / wide)

目次

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 5302up/downビットとして再定義しています。

この形式を「narrow」と呼ぶのは後からの呼び名で、規格の本文にnarrowという語は出てきません。

LSPそのものの構造やTLVの並び方は、IS-ISパケットの種類とヘッダーフォーマットで解説しています。

wideメトリックはRFC 5305が追加したTLV

RFC 5305「IS-IS Extensions for Traffic Engineering」は、メトリックの幅を広げた新しいTLVを2つ定義しました。

TLV名称メトリックの幅
22Extended IS Reachability24ビット(0 〜 16777215)
135Extended IP Reachability32ビット

経路全体にはMAX_PATH_METRIC=0xFE000000という上限があり(加算のあふれを防ぐため)、これを超えるプレフィックスは通常のSPF計算で使ってはいけません

最大リンクメトリック(2^24−1 = 16777215)で広告されたリンクも、通常のSPF計算で使ってはいけません。上限値が「このリンクは使わせない」の意思表示です。

wideとnarrowは別のTLVなので、受け取る側が同じ形式を解釈できなければそのリンクは見えません

TLV 22にはトラフィックエンジニアリング向けのサブTLVも同じRFCで定義されています。

IOS XRでの設定

形式の選択はrouter isisのアドレスファミリ配下、リンクごとの値はインタフェースのアドレスファミリ配下に書きます。

metric-styleとmetricの設定
router isis 1
 address-family ipv4 unicast
  metric-style wide
 !
 interface GigabitEthernet0/0/0/0
  address-family ipv4 unicast
   metric 1000000

metric-styleには3つの値があります。

生成するTLV受理するTLV
narrowTLV 2 / TLV 128TLV 2 / TLV 128
wideTLV 22 / TLV 135TLV 22 / TLV 135
transition両方両方

transitionは移行期間用で、両形式を同時に広告し両方を受理します。既定はnarrowです。

metricはレベルを指定でき、省略すると両レベルに効きます。ルータ全体の既定値(10)はrouter isisのアドレスファミリ配下のmetricで変えられます。

narrowのまま64以上を設定するとどうなるか

CLIのレンジはmetric-styleによらず<1-16777214>なので、narrowでもmetric 64はコミットできます。広告される値だけが63に丸められます

metricのCLIヘルプ(IOS XR 26.1.1)
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.0001level-2-only、全リンクをpoint-to-pointにします。加算方向ごとの効き方を同時に見るためです。

ルータ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既定のまま(narrow、メトリック10)narrowで何が広告されるかの基準を取る
1narrowのままR1のGi0/0/0/0にmetric 64上限を超えた値がどう広告されるか
2全台をmetric-style wideTLVの入れ替わりと、同じ64がそのまま通ること
3wideのままR1にmetric 1000000大きな値の広告と、方向ごとに効くこと
4metricmetric-styleを削除(最終状態)初期状態と同じ

既定はnarrow、メトリックは10(STEP 0)

何も設定しなければmetric-stylenarrow、リンクのメトリックは10です。

STEP 0:R1の show isis(抜粋)
  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: No

generate(自分が生成する形式)とaccept(受け取って解釈する形式)が別々に表示されます。どちらもNarrowです。

このときのリンクステートデータベースは次のようになります。

STEP 0:R1の show isis database detail
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: 1

ISがリンク(TLV 2)、IPがプレフィックス(TLV 128)です。LoopbackがMetric: 0なのは自身のアドレスだからです。

経路表には、通る各リンクのメトリックを足した値が出ます。

STEP 0:R1の show route isis
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/0

3.3.3.3/32[115/20]は10 + 10で、115はアドミニストレーティブディスタンスです。

パケットの中身も見ておきます。R1—R2間のキャプチャーのNo.5が、このときR1が送ったLSPです。

STEP 0の状態でR1が送ったLSP(No.5)
$ 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.00
上のtshark出力のパケット(No.5 LSP)のpcapをダウンロード

TLV 128のDefault Metric..00 10106ビット幅で展開されているのが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-stylenarrowのままで、コマンドは通ります。

STEP 1:R1の show running-config(該当部分)
 interface GigabitEthernet0/0/0/0
  point-to-point
  address-family ipv4 unicast
   metric 64
  !
 !

ところが実際に使われる値は63です。

STEP 1:R1の show isis interface(Gi0/0/0/0のIPv4 Unicast Topology部分)
  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/Disabled

LSPに載る値も63です。設定した64はどこにも現れません。

STEP 1:R1の show isis database detail
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を基準に計算されます。

STEP 1:R1の show route isis
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のままです。

STEP 2:R1の show isis(抜粋)
  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になりました。データベースの表示も変わります。

STEP 2:R1の show isis database detail
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: 1

IS-Extended(TLV 22)とIP-Extended(TLV 135)に置き換わり、同じ設定値64が64のまま広告されています

STEP 2:R1の show route isis
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です。

STEP 2の状態でR1が送ったLSP(No.9)
$ 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 set
上のtshark出力のパケット(No.9 LSP)のpcapをダウンロード

TLV 2とTLV 128は消え、TLV 22とTLV 135だけです。メトリックはMetric: 64という1つの数値で、4種類の構造はありません。

metric-styleの変更はLSPの作り直しを伴いますが、隣接には影響しません。

STEP 2:R1の show isis adjacency-log
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では表現できない値です。

STEP 3:R1の show isis database detail
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から見た経路も、この値を足したコストになります。

STEP 3:R1の show route isis
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から見た経路は何も変わっていません。

STEP 3:R3の show route isis
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/0

R3から1.1.1.1/32はR3→R2の10とR2→R1の10で、R1の1000000は入りません。メトリックは方向ごとの値です。

元に戻す(STEP 4)

metricmetric-styleを削除すると初期状態に戻ります(STEP 0と4の..._run.txtが一致)。

narrowとwideのどちらを使うか

新規ならwideです。63も1023も狭すぎ、トラフィックエンジニアリングの拡張もwideが前提です。

移行時は同じレベルの全ルータで形式をそろえます。片側だけ切り替えると切り替えていないルータからはそのリンクが読めません。一斉に変えられない場合はtransitionを使います。

本記事のラボではnarrowwideだけを検証しており、transitionmetric maximumは動作を確認していません。

検証Configおよびshow結果

各STEPで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-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 4のR1のみ。metric ?で表示したCLIヘルプ

STEP 0:既定(narrow、メトリック10)

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

STEP 1:narrowのままR1にmetric 64

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

STEP 2:全台をmetric-style wide

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

STEP 3:wideのままR1にmetric 1000000

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

STEP 4:metricmetric-styleを削除(最終状態)

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

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 protocolIS-IS本体の仕様。本記事が参照したのは、4種類のメトリックを定義する7.2.2、アーキテクチャ定数MaxLinkMetric=63とMaxPathMetric=1023を定める表2、TLV 2のメトリックフィールドの内訳を定める9.8 / 9.9
RFC 1195Use of OSI IS-IS for Routing in TCP/IP and Dual EnvironmentsIPの経路を運ぶTLV 128(IP Internal Reachability)などを定義。
RFC 5302Domain-Wide Prefix Distribution with Two-Level IS-ISTLV 128 / 130のdefaultメトリックのbit 8をup/downビットとして再定義した(RFC 2966を廃止)。
RFC 5305IS-IS Extensions for Traffic EngineeringwideメトリックのTLV 22(24ビット)とTLV 135(32ビット)、MAX_PATH_METRIC=0xFE000000を定義(RFC 3784を廃止)。
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版であることを述べている。

関連記事