IS-ISへの再配布(connected / static)
IS-ISが広告するのは、IS-ISを動かしているインタフェースのプレフィックスだけです。IS-ISに入れていないインタフェースや、スタティックルートは、そのルータの経路表にはあってもドメインの他のルータには伝わりません。それらをIS-ISのLSPに載せる操作が再配布です。
この記事では、再配布した経路がLSPの中でどう表されるか、メトリックとメトリックの種類がどう効くか、connectedとstaticで何が違うかを、RFCの規定とIOS XRの実機で確認します。実機では、再配布した経路へ実際にpingが届くことも各STEPで確かめます。
外部経路の表し方
再配布した経路は、IS-ISの外から来た外部経路として広告されます。表し方はメトリックの形式(narrow / wide)で違います。
narrow:TLV 130とI/Eビット
RFC 1195は、外部経路のためにTLV 130(IP External Reachability Information)を用意しました。5.2節ではレベル2のLSPに載せるものとされ、RFC 5302の2.2節がレベル1にも載せてよいと緩めています。
メトリックの種類はdefault metricの1ビットで表します。5.3.5節はこう定めています。
このフィールドのBit 7は、4つのTOSメトリックすべてについてメトリックの種類(internalかexternalか)を示し、0にしてinternalメトリックを示すことも、1にしてexternalメトリックを示すこともできる。
TLV 130が実際にLSPへ現れる様子はIS-ISの主要TLVで解説しています。
wide:TLV 135とXフラグ
wideメトリックでは、内部経路も外部経路もRFC 5305のTLV 135に載ります。4節が定める制御バイトの中身はこれだけです。
| ビット | 中身 |
|---|---|
| 1ビット | up/down |
| 1ビット | サブTLVの有無 |
| 6ビット | プレフィックス長 |
I/Eビットがありません。同じRFCの3節は、narrowの1オクテットを「内部か外部かを示す1ビット」「後にRFC 5302がup/downビットとした1ビット」「値の6ビット」と説明しており、wideはこの内部/外部のビットを持ち越していません。
外部経路であることは、代わりにサブTLVで示します。RFC 7794の2.1節が定めるXフラグです。
X-Flag:External Prefix Flag(Bit 0)。プレフィックスが別のプロトコルから再配布された場合に立てる。
IOS XRのshow isis database detailはこのサブTLVを表示しません。show isis database verboseにすると、プレフィックスごとにPrefix Attribute Flags: X:1の形で出ます。
| 項目 | narrow | wide |
|---|---|---|
| 外部経路であることの印 | TLV 130に載る | TLV 135のXフラグ(RFC 7794) |
| メトリックの種類 | default metricのBit 7 | 表す場所が無い |
| メトリックの値 | 6ビット(0〜63) | 32ビット |
経路の種類とメトリックの種類は別物
「外部」には2つの意味があり、RFC 5302の2.1節が分けています。経路の種類(TLV 130に載るか)と、メトリックの種類(internal型かexternal型か)です。
経路の種類は、経路選択に影響しません。
ルータがIP経路を計算するとき、「IP Internal Reachability Information」TLVで広告されたIP経路と、「IP External Reachability Information」TLVで広告されたIP経路には、同じ優先度を与えなければならない。
影響するのはメトリックの種類のほうです。
しかし、external型のメトリックで広告された「IP External Reachability Information」のIP経路は、internal型のメトリックで広告された同じIP経路よりも、メトリックの値に関係なく低い優先度を与えなければならない。
narrowでは、external型にした経路はメトリックがいくら小さくてもinternal型に負けます。
IOS XRのredistributeにもmetric-typeがあり、取れる値は4つです。Cisco IOS XE 17のIS-ISの設定ガイドも同じ4つを挙げ、rib-metric-as-*は経路表のメトリックをそのまま使う指定だと説明しています。
RP/0/RP0/CPU0:R2(config-isis-af)#redistribute static metric-type ?
external Set IS-IS External metric type
internal Set IS-IS Internal metric type
rib-metric-as-external Set IS-IS External metric type and use RIB metric
rib-metric-as-internal Set IS-IS Internal metric type and use RIB metricところがwideのLSPには、この種類を書き込む場所がありません。IOS XRでwideを使っていると、metric-type externalを指定してもLSPの中身は変わらず、受け取ったルータはメトリックの値だけで比べます。external型だから負ける、という扱いは起きません。
メトリックの付き方
受け取ったルータは、再配布したルータまでの距離に、広告されたメトリックを足した値で比べます。RFC 1195の3.10.2節は、internal型の外部経路を内部経路と同一に扱い、最短経路で選ぶと定めています。同じ宛先を2台が再配布していれば近いほうの出口が選ばれ、片方の広告メトリックを大きくすれば遠いほうへ移ります。
IOS XRは、metricを省くと再配布した経路をメトリック0で広告します(connectedもstaticも同じ)。受け取ったルータから見た値は、再配布したルータまでの距離そのものになります。指定できる範囲は、wideでも0〜16777215です。
RP/0/RP0/CPU0:R2(config-isis-af)#redistribute static metric ?
<0-16777215> Default metric: <0-63> for narrow, <0-16777215> for wideconnectedとstaticの違い
redistribute connectedが拾うのは、IS-ISを動かしていないインタフェースのプレフィックスです。IS-ISを動かしているインタフェースはもともと内部経路として広告されているので、二重には載りません。後半の構成のR2なら、IS-ISを動かす10.1.2.0/24は内部プレフィックス(メトリック10、Xフラグなし)のまま、R5につながる10.2.5.0/24だけが外部経路(メトリック0、Xフラグあり)として加わります。
redistribute staticは、経路表に入っているスタティックルートを載せます。LSPに載ってからの扱い(Xフラグ、メトリックの足し方)はconnectedと同じです。
実機での検証
検証環境
R1〜R4を単一エリア49.0001のlevel-2-only(wide)にし、IS-ISを動かさないR5を外に置きました。R5のLo1192.168.5.1/24が、再配布する外部のLANです。R2とR3はR5へのスタティックルートを、R5はR2とR3へのデフォルトルートを持ちます。ソフトウェアはXRd 26.1.1です。
| ルータ | Lo0 | リンク |
|---|---|---|
| R1 | 1.1.1.1/32 | Gi0/0/0/0 10.1.2.1(R2へ、metric 10)/ Gi0/0/0/1 10.1.4.1(R4へ、metric 10) |
| R2 | 2.2.2.2/32 | Gi0/0/0/0 10.1.2.2 / Gi0/0/0/1 10.2.5.2(R5へ、IS-ISなし)。static 192.168.5.0/24 → 10.2.5.5 |
| R3 | 3.3.3.3/32 | Gi0/0/0/0 10.3.4.3(R4へ、metric 10)/ Gi0/0/0/1 10.3.5.3(R5へ、IS-ISなし)。static 192.168.5.0/24 → 10.3.5.5 |
| R4 | 4.4.4.4/32 | Gi0/0/0/0 10.1.4.4 / Gi0/0/0/1 10.3.4.4 |
| R5 | 5.5.5.5/32、Lo1 192.168.5.1/24 | Gi0/0/0/0 10.2.5.5 / Gi0/0/0/1 10.3.5.5。0.0.0.0/0 → 10.2.5.2 / 10.3.5.3。IS-ISなし |
R1から見た内部コストはR2まで10、R3まで20(R4経由)です。どちらの出口を使っているかは、R1からのtracerouteにR4(10.1.4.4)が現れるかで分かります。
検証のSTEP
| STEP | 操作 | 確かめること |
|---|---|---|
| 0 | 既定(再配布なし) | R1に192.168.5.0/24も10.2.5.0/24も無く、pingが通らない |
| 1 | R2でredistribute connected | R2のLSPに10.2.5.0/24がメトリック0・Xフラグ付きで載り、R1から10.2.5.5へpingが通る |
| 2 | R2でredistribute static | 192.168.5.0/24も載り、R1から192.168.5.1へR2経由で届く |
| 3 | R3でredistribute static | R3も広告するが、R1は近いR2の出口(10 < 20)を使い続ける |
| 4 | R2をredistribute static metric 100に | R2経由が110になり、R3経由(20)へ切り替わる。tracerouteにR4が現れる |
| 5 | R2をredistribute static metric-type externalに | LSPは変わらず、R1はメトリックの値でR2経由(10)に戻る |
| 6 | すべて元に戻す(最終状態) | STEP 0と一致 |
STEP 0:再配布なし
R1には外部のプレフィックスが無く、R5のLANへのpingは通りません。
RP/0/RP0/CPU0:R1#show route 192.168.5.0/24
Sun Sep 13 14:00:12.727 UTC
% Network not in tableRP/0/RP0/CPU0:R1#ping 192.168.5.1 source 1.1.1.1 count 50 timeout 1
Sun Sep 13 14:00:32.694 UTC
Type escape sequence to abort.
Sending 50, 100-byte ICMP Echos to 192.168.5.1 timeout is 1 seconds:
..................................................
Success rate is 0 percent (0/50)STEP 1:R2でredistribute connected
RP/0/RP0/CPU0:R2#show configuration commit changes last 1
Sun Sep 13 14:10:50.511 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
router isis 1
address-family ipv4 unicast
redistribute connected
!
!
endR1のデータベースでR2のLSPを見ると、10.2.5.0/24がメトリック0・X:1で加わっています。IS-ISを動かしている10.1.2.0/24はX:0のままです。
R2.00-00 0x00000007 0x5839 534 /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: 0 IP-Extended 2.2.2.2/32
Prefix Attribute Flags: X:0 R:0 N:1 E:0 A:0
Metric: 10 IP-Extended 10.1.2.0/24
Prefix Attribute Flags: X:0 R:0 N:0 E:0 A:0
Metric: 0 IP-Extended 10.2.5.0/24
Prefix Attribute Flags: X:1 R:0 N:0 E:0 A:0R1の経路表の値は、R2までの10に広告されたメトリック0を足した10です。R5の10.2.5.5へのpingも通ります。
RP/0/RP0/CPU0:R1#show route 10.2.5.0/24
Sun Sep 13 14:12:26.444 UTC
Routing entry for 10.2.5.0/24
Known via "isis 1", distance 115, metric 10, type level-2
Installed Sep 13 14:10:49.763 for 00:01:36
Routing Descriptor Blocks
10.1.2.2, from 2.2.2.2, via GigabitEthernet0/0/0/0
Route metric is 10
No advertising protos. RP/0/RP0/CPU0:R1#ping 10.2.5.5 source 1.1.1.1 count 50 timeout 1
Sun Sep 13 14:13:41.408 UTC
Type escape sequence to abort.
Sending 50, 100-byte ICMP Echos to 10.2.5.5 timeout is 1 seconds:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Success rate is 100 percent (50/50), round-trip min/avg/max = 6/9/27 msパケットで見る
STEP 1のキャプチャーのNo.3がR2のLSPです。10.2.5.0/24のPrefix Attribute FlagsはXビットが1、10.1.2.0/24は0です。
Ext. IP Reachability: 10.1.2.0/24
Metric: 10
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
Ext. IP Reachability: 10.2.5.0/24
Metric: 0
0... .... = Distribution: Up
.1.. .... = Sub-TLV: Yes
..01 1000 = Prefix Length: 24
IPv4 prefix: 10.2.5.0
SubCLV Length: 3
subTLV: Prefix Attribute Flags (c=4, l=1): Flags:X--
Code: Prefix Attribute Flags (4)
Length: 1
Flags: 0x80, External Prefix
1... .... = External Prefix: Set
.0.. .... = Re-advertisement: Not set
..0. .... = Node: Not setSTEP 2:R2でredistribute static
RP/0/RP0/CPU0:R2#show configuration commit changes last 1
Sun Sep 13 14:22:14.626 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
router isis 1
address-family ipv4 unicast
redistribute static
!
!
end192.168.5.0/24もメトリック0で広告され、R1はR2経由の10で学習しました。R5のLANへのpingが通り、tracerouteはR2(10.1.2.2)からR5(10.2.5.5)へ抜けます。
RP/0/RP0/CPU0:R1#show route 192.168.5.0/24
Sun Sep 13 14:23:50.227 UTC
Routing entry for 192.168.5.0/24
Known via "isis 1", distance 115, metric 10, type level-2
Installed Sep 13 14:22:14.063 for 00:01:36
Routing Descriptor Blocks
10.1.2.2, from 2.2.2.2, via GigabitEthernet0/0/0/0
Route metric is 10
No advertising protos. RP/0/RP0/CPU0:R1#ping 192.168.5.1 source 1.1.1.1 count 50 timeout 1
Sun Sep 13 14:24:10.840 UTC
Type escape sequence to abort.
Sending 50, 100-byte ICMP Echos to 192.168.5.1 timeout is 1 seconds:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Success rate is 100 percent (50/50), round-trip min/avg/max = 8/10/20 msRP/0/RP0/CPU0:R1#traceroute 192.168.5.1 source 1.1.1.1
Sun Sep 13 14:24:12.531 UTC
Type escape sequence to abort.
Tracing the route to 192.168.5.1
1 10.1.2.2 9 msec 5 msec 5 msec
2 10.2.5.5 48 msec * 12 msec STEP 3:R3でもredistribute static
R3のLSPにも192.168.5.0/24がメトリック0で載ります。
R3.00-00 0x00000008 0xfe9e 1101 /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 R4.00
Metric: 0 IP-Extended 3.3.3.3/32
Prefix Attribute Flags: X:0 R:0 N:1 E:0 A:0
Metric: 10 IP-Extended 10.3.4.0/24
Prefix Attribute Flags: X:0 R:0 N:0 E:0 A:0
Metric: 0 IP-Extended 192.168.5.0/24
Prefix Attribute Flags: X:1 R:0 N:0 E:0 A:0それでもR1は、近いR2の出口を使い続けます。R2経由は10、R3経由は20です。
RP/0/RP0/CPU0:R1#show isis route
Sun Sep 13 14:28:20.508 UTC
IS-IS 1 IPv4 Unicast routes
Codes: L1 - level 1, L2 - level 2, ia - interarea (leaked into level 1)
df - level 1 default (closest attached router), su - summary null
C - connected, S - static, R - RIP, B - BGP, O - OSPF
E - EIGRP, A - access/subscriber, M - mobile, a - application
i - IS-IS (redistributed from another instance)
Maximum parallel path count: 8
C 1.1.1.1/32
is directly connected, Loopback0
L2 2.2.2.2/32 [10/115]
via 10.1.2.2, GigabitEthernet0/0/0/0, R2, Weight: 0
L2 3.3.3.3/32 [20/115]
via 10.1.4.4, GigabitEthernet0/0/0/1, R4, Weight: 0
L2 4.4.4.4/32 [10/115]
via 10.1.4.4, GigabitEthernet0/0/0/1, R4, Weight: 0
C 10.1.2.0/24
is directly connected, GigabitEthernet0/0/0/0
C 10.1.4.0/24
is directly connected, GigabitEthernet0/0/0/1
L2 10.2.5.0/24 [10/115]
via 10.1.2.2, GigabitEthernet0/0/0/0, R2, Weight: 0
L2 10.3.4.0/24 [20/115]
via 10.1.4.4, GigabitEthernet0/0/0/1, R4, Weight: 0
L2 192.168.5.0/24 [10/115]
via 10.1.2.2, GigabitEthernet0/0/0/0, R2, Weight: 0RP/0/RP0/CPU0:R1#traceroute 192.168.5.1 source 1.1.1.1
Sun Sep 13 14:28:41.427 UTC
Type escape sequence to abort.
Tracing the route to 192.168.5.1
1 10.1.2.2 61 msec 5 msec 5 msec
2 10.2.5.5 9 msec * 11 msec STEP 4:R2のメトリックを100にする
RP/0/RP0/CPU0:R2#show configuration commit changes last 1
Sun Sep 13 14:31:19.435 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
router isis 1
address-family ipv4 unicast
redistribute static metric 100
!
!
endR2経由は10+100=110になり、R3経由の20が選ばれました。tracerouteにR4(10.1.4.4)とR3(10.3.4.3)が現れます。
RP/0/RP0/CPU0:R1#show route 192.168.5.0/24
Sun Sep 13 14:32:54.964 UTC
Routing entry for 192.168.5.0/24
Known via "isis 1", distance 115, metric 20, type level-2
Installed Sep 13 14:31:18.563 for 00:01:36
Routing Descriptor Blocks
10.1.4.4, from 3.3.3.3, via GigabitEthernet0/0/0/1
Route metric is 20
No advertising protos. RP/0/RP0/CPU0:R1#traceroute 192.168.5.1 source 1.1.1.1
Sun Sep 13 14:33:16.836 UTC
Type escape sequence to abort.
Tracing the route to 192.168.5.1
1 10.1.4.4 6 msec 5 msec 5 msec
2 10.3.4.3 9 msec 8 msec 8 msec
3 10.3.5.5 13 msec * 15 msec STEP 5:R2をmetric-type externalにする
metricを外し、種類だけexternalにしました。メトリックは既定の0に戻ります。
RP/0/RP0/CPU0:R2#show configuration commit changes last 1
Sun Sep 13 14:35:46.635 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
router isis 1
address-family ipv4 unicast
redistribute static metric-type external
!
!
endexternal型が値に関係なく負けるなら、R1はR3経由(20)のままのはずです。実際はR2経由の10に戻りました。
RP/0/RP0/CPU0:R1#show route 192.168.5.0/24
Sun Sep 13 14:37:21.938 UTC
Routing entry for 192.168.5.0/24
Known via "isis 1", distance 115, metric 10, type level-2
Installed Sep 13 14:35:46.063 for 00:01:36
Routing Descriptor Blocks
10.1.2.2, from 2.2.2.2, via GigabitEthernet0/0/0/0
Route metric is 10
No advertising protos. RP/0/RP0/CPU0:R1#traceroute 192.168.5.1 source 1.1.1.1
Sun Sep 13 14:37:43.524 UTC
Type escape sequence to abort.
Tracing the route to 192.168.5.1
1 10.1.2.2 5 msec 5 msec 5 msec
2 10.2.5.5 9 msec * 10 msec LSPも変わっていません。STEP 2でR2がmetric-typeなしで広告したLSP(STEP 2のNo.3)と、STEP 5のLSP(No.2)を並べると、192.168.5.0/24はどちらもメトリック0・Xビット1です。2つのLSPのTLVをバイト単位で比べても違いは無く、異なるのはLSPヘッダーのシーケンス番号とチェックサムだけでした。
Ext. IP Reachability: 192.168.5.0/24
Metric: 0
0... .... = Distribution: Up
.1.. .... = Sub-TLV: Yes
..01 1000 = Prefix Length: 24
IPv4 prefix: 192.168.5.0
SubCLV Length: 3
subTLV: Prefix Attribute Flags (c=4, l=1): Flags:X--
Code: Prefix Attribute Flags (4)
Length: 1
Flags: 0x80, External Prefix
1... .... = External Prefix: Set
.0.. .... = Re-advertisement: Not set
..0. .... = Node: Not set Ext. IP Reachability: 192.168.5.0/24
Metric: 0
0... .... = Distribution: Up
.1.. .... = Sub-TLV: Yes
..01 1000 = Prefix Length: 24
IPv4 prefix: 192.168.5.0
SubCLV Length: 3
subTLV: Prefix Attribute Flags (c=4, l=1): Flags:X--
Code: Prefix Attribute Flags (4)
Length: 1
Flags: 0x80, External Prefix
1... .... = External Prefix: Set
.0.. .... = Re-advertisement: Not set
..0. .... = Node: Not setSTEP 6:すべて元に戻す
R2とR3の再配布を外すと、R1から外部のプレフィックスが消え、pingは再び通らなくなります。
RP/0/RP0/CPU0:R1#ping 192.168.5.1 source 1.1.1.1 count 50 timeout 1
Sun Sep 13 14:42:23.150 UTC
Type escape sequence to abort.
Sending 50, 100-byte ICMP Echos to 192.168.5.1 timeout is 1 seconds:
..................................................
Success rate is 0 percent (0/50)検証Configおよびshow結果
各STEPで5台すべてから、次のファイルをルータごとに分けて取得しています。検証Configはこの..._run.txtです(最終状態は最後のSTEPのもの)。
| ファイル | 内容 |
|---|---|
..._show.txt | show version / show interface description / show route / show route 192.168.5.0/24 / show route 10.2.5.0/24と、show isis系一式(interface brief / neighbors / database / database detail / database verbose(STEP 2以降)/ topology / route / adjacency-log / spf-log / lsp-log / statistics)、show running-config router static |
..._log.txt | そのSTEPの範囲だけに絞ったshow logging。各STEPの開始時にlogmsgでマーカーを入れ、その時刻をshow logging startに指定して取得したもの |
..._run.txt | そのSTEP時点のshow running-config(=そのSTEPの検証Config) |
..._trace.txt | show isis trace all | include UPD_LSP_ACCEPTとshow isis trace all | include SPF |
..._ping.txt | R1は送信元1.1.1.1からping 192.168.5.1 / traceroute 192.168.5.1 / ping 10.2.5.5、R5は送信元192.168.5.1からping 1.1.1.1 / traceroute 1.1.1.1。R2〜R4には無い |
..._commit.cfg | そのSTEPでcommitされた設定(show configuration commit changes last 1)。設定を変えていないルータには無い |
STEP 0:既定(再配布なし)
| ルータ | show出力 | syslog | running-config | trace | ping | commit |
|---|---|---|---|---|---|---|
| R1 | show | log | run | trace | ping | - |
| R2 | show | log | run | trace | - | - |
| R3 | show | log | run | trace | - | - |
| R4 | show | log | run | trace | - | - |
| R5 | show | log | run | trace | ping | - |
STEP 1:R2でredistribute connected
| ルータ | show出力 | syslog | running-config | trace | ping | commit |
|---|---|---|---|---|---|---|
| R1 | show | log | run | trace | ping | - |
| R2 | show | log | run | trace | - | commit |
| R3 | show | log | run | trace | - | - |
| R4 | show | log | run | trace | - | - |
| R5 | show | log | run | trace | ping | - |
STEP 1のshow一式にはshow isis database verboseが入っていないため、STEP 2の設定を入れる前にR1で別に取得しています:verbose
STEP 2:R2でredistribute static
| ルータ | show出力 | syslog | running-config | trace | ping | commit |
|---|---|---|---|---|---|---|
| R1 | show | log | run | trace | ping | - |
| R2 | show | log | run | trace | - | commit |
| R3 | show | log | run | trace | - | - |
| R4 | show | log | run | trace | - | - |
| R5 | show | log | run | trace | ping | - |
STEP 3:R3でredistribute static
| ルータ | show出力 | syslog | running-config | trace | ping | commit |
|---|---|---|---|---|---|---|
| R1 | show | log | run | trace | ping | - |
| R2 | show | log | run | trace | - | - |
| R3 | show | log | run | trace | - | commit |
| R4 | show | log | run | trace | - | - |
| R5 | show | log | run | trace | ping | - |
STEP 4:R2をredistribute static metric 100に
| ルータ | show出力 | syslog | running-config | trace | ping | commit |
|---|---|---|---|---|---|---|
| R1 | show | log | run | trace | ping | - |
| R2 | show | log | run | trace | - | commit |
| R3 | show | log | run | trace | - | - |
| R4 | show | log | run | trace | - | - |
| R5 | show | log | run | trace | ping | - |
STEP 5:R2をredistribute static metric-type externalに
| ルータ | show出力 | syslog | running-config | trace | ping | commit |
|---|---|---|---|---|---|---|
| R1 | show | log | run | trace | ping | - |
| R2 | show | log | run | trace | - | commit |
| R3 | show | log | run | trace | - | - |
| R4 | show | log | run | trace | - | - |
| R5 | show | log | run | trace | ping | - |
STEP 6:すべて元に戻す(最終状態)
| ルータ | show出力 | syslog | running-config | trace | ping | commit |
|---|---|---|---|---|---|---|
| R1 | show | log | run | trace | ping | - |
| R2 | show | log | run | trace | - | commit |
| R3 | show | log | run | trace | - | commit |
| R4 | show | log | run | trace | - | - |
| R5 | show | log | run | trace | ping | - |
パケットキャプチャーはSTEPごとに、R1 — R2のリンクで取得しています。本文で引用したLSPは、STEP 1のNo.3、STEP 2のNo.3、STEP 5のNo.2です。
| STEP | R1 — R2間 |
|---|---|
| 0 | pcap |
| 1 | pcap |
| 2 | pcap |
| 3 | pcap |
| 4 | pcap |
| 5 | pcap |
| 6 | pcap |
事前に候補設定でredistributeのヘルプを採り、abortで捨てた記録(commitはしていない):precheck
参考
| 標準 | タイトル | 概要 |
|---|---|---|
| RFC 1195 | Use of OSI IS-IS for Routing in TCP/IP and Dual Environments | IPの経路をIS-ISで運ぶ拡張。3.1節でメトリックのinternal型とexternal型、3.10.2節でレベル2の経路選択の順序、5.2節でTLV 130をレベル2のLSPに載せること、5.3.5節でdefault metricのBit 7がメトリックの種類であることを定めている。 |
| RFC 5302 | Domain-Wide Prefix Distribution with Two-Level IS-IS | 2.1節で経路の種類とメトリックの種類を区別し、TLV 128とTLV 130の経路を同じ優先度で扱うこと、external型をメトリックの値に関係なく低い優先度にすることを定めている。2.2節でTLV 130をレベル1にも許した。 |
| RFC 5305 | IS-IS Extensions for Traffic Engineering | wideメトリック。4節のTLV 135の制御バイトはup/down・サブTLVの有無・プレフィックス長だけで、I/Eビットを持たない。 |
| RFC 7794 | IS-IS Prefix Attributes for Extended IPv4 and IPv6 Reachability | 2.1節でPrefix Attribute FlagsサブTLVのXフラグを定義。再配布したプレフィックスに立てる。 |
| ISO/IEC 10589:2002(第2版) | Intermediate System to Intermediate System intra-domain routeing information exchange protocol | IS-IS本体の仕様。IPプレフィックスを運ぶ仕組みを持たないため、IPの再配布も規定していない。 |
| Cisco IP Routing Configuration Guide, IOS XE 17.x | IPv6 Routing: Route Redistribution | IS-ISのredistributeのmetric-typeに取れる4つの値(external / internal / rib-metric-as-external / rib-metric-as-internal)を説明している。既定のメトリック値は書かれていない。 |
関連記事
- IS-ISとは
- IS-ISのNSAPアドレスとNET(System ID)
- IS-ISのレベル1とレベル2(階層構造)
- IS-ISパケットの種類とヘッダーフォーマット
- IS-ISの隣接関係の確立と状態遷移
- IS-ISのDISと疑似ノード(Pseudonode)
- IS-ISのネットワークタイプ(broadcast / point-to-point)
- IS-ISのメトリック(narrow / wide)
- IS-ISの認証(hello-password / lsp-password)
- IS-ISのLSPとリンクステートデータベース
- IS-ISの主要TLV
- IS-ISのフラッディングとLSDB同期
- IS-ISのSPF計算と経路選択
- IS-ISのATTビットとレベル1のデフォルトルート
- IS-ISのルートリークとup/downビット
- IS-ISの経路集約
- IS-ISのオーバーロードビット
- IS-ISの収束タイマー(SPF / LSP生成)
- IS-ISへの再配布(connected / static)
- IS-ISへのBGP経路の再配布