以下の内容はhttps://yokohama539.hatenablog.com/entry/2025/08/24/030746より取得しました。


vJunosでIS-ISを(改めて)動かしてみた。

今回はvJunos-routerを使って、あまり日本語で検証されていないIS-ISの動作検証をしてみたいと思います。

似ていると言われているOSPFと比べて、経路広報の点がかなり異なるので、詳しく検証したいと思います。
IS-ISよくわからん!な方はココのIS-ISの章とかココを読めば、概要が掴めるかと思います。

1. IS-IS 構成

構成は以下の様にしました。
Level 1ルーター、Level 2ルーター、Level 1/2ルーターが混在し、かつ、R5はR6からExternalな(BGPで)経路情報を受信している構成とします。

今回、論理ポリシーは以下の様に決めます。

・R1~R6はそれぞれ全てのLo0.0の経路情報のエントリーがあること。
・R1~R6はそれぞれExternalな経路情報(66.1.x.0)のエントリーがあること。
・R4はR3へExternalな経路情報を広報する際、集約経路(66.1.0.0/22)のみを広報すること。
・R1~R6にてDefault Routeが存在しないこと。

2. IS-IS 設定

それでは設定をしていきます。
ルーターのLo0.0とge-0/0/x.0のIPアドレスの設定は終えていることとします。

まず前段として、R5にてR6のLo0.0を含んだExternalな経路情報を受信するため、R5とR6間でeBGP Peeringの設定を行います。

//R5
set routing-options autonomous-system 65005
set protocols bgp group EBGP type external
set protocols bgp group EBGP neighbor 56.56.56.6 peer-as 65006
//R6
set routing-options rib inet.0 static route 66.1.0.0/24 discard
set routing-options rib inet.0 static route 66.1.1.0/24 discard
set routing-options rib inet.0 static route 66.1.2.0/24 discard
set routing-options rib inet.0 static route 66.1.3.0/24 discard
set routing-options autonomous-system 65006
set policy-options policy-statement BGP_R5_EXPORT term 0011 from protocol static
set policy-options policy-statement BGP_R5_EXPORT term 0011 then accept
set policy-options policy-statement BGP_R5_EXPORT term 0021 from protocol direct
set policy-options policy-statement BGP_R5_EXPORT term 0021 from route-filter 6.6.6.6/32 exact
set policy-options policy-statement BGP_R5_EXPORT term 0021 then accept
set policy-options policy-statement BGP_R5_EXPORT term 9991 then reject
set protocols bgp group EBGP type external
set protocols bgp group EBGP neighbor 56.56.56.5 export BGP_R5_EXPORT
set protocols bgp group EBGP neighbor 56.56.56.5 peer-as 65005
//R5
lab@R5# run show route protocol bgp

inet.0: 12 destinations, 12 routes (12 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

6.6.6.6/32         *[BGP/170] 12:15:55, localpref 100
                      AS path: 65006 I, validation-state: unverified
                    >  to 56.56.56.6 via ge-0/0/1.0
66.1.0.0/24        *[BGP/170] 12:15:55, localpref 100
                      AS path: 65006 I, validation-state: unverified
                    >  to 56.56.56.6 via ge-0/0/1.0
66.1.1.0/24        *[BGP/170] 12:15:55, localpref 100
                      AS path: 65006 I, validation-state: unverified
                    >  to 56.56.56.6 via ge-0/0/1.0
66.1.2.0/24        *[BGP/170] 12:15:55, localpref 100
                      AS path: 65006 I, validation-state: unverified
                    >  to 56.56.56.6 via ge-0/0/1.0
66.1.3.0/24        *[BGP/170] 12:15:55, localpref 100
                      AS path: 65006 I, validation-state: unverified
                    >  to 56.56.56.6 via ge-0/0/1.0


R1~R5にてIS-ISを動かします。
NSAPアドレスのsystem IDは自身のLo0.0ライクな値とします。

//R1
set interfaces ge-0/0/0 unit 0 family iso
set interfaces lo0 unit 0 family iso address 49.0001.0010.0100.1001.00
set protocols isis interface ge-0/0/0.0 level 2 disable
set protocols isis interface lo0.0 passive
//R2
set interfaces ge-0/0/0 unit 0 family iso
set interfaces ge-0/0/1 unit 0 family iso
set interfaces lo0 unit 0 family iso address 49.0001.0020.0200.2002.00
set protocols isis interface ge-0/0/0.0 level 2 disable
set protocols isis interface ge-0/0/1.0 level 1 disable
set protocols isis interface lo0.0 passive
//R3
set interfaces ge-0/0/0 unit 0 family iso
set interfaces ge-0/0/1 unit 0 family iso
set interfaces lo0 unit 0 family iso address 49.0002.0030.0300.3003.00
set protocols isis interface ge-0/0/0.0 level 1 disable
set protocols isis interface ge-0/0/1.0 level 1 disable
set protocols isis interface lo0.0 passive
//R4
set interfaces ge-0/0/0 unit 0 family iso
set interfaces ge-0/0/1 unit 0 family iso
set interfaces lo0 unit 0 family iso address 49.0003.0040.0400.4004.00
set protocols isis interface ge-0/0/0.0 level 1 disable
set protocols isis interface ge-0/0/1.0 level 2 disable
set protocols isis interface lo0.0 passive
//R5
set interfaces ge-0/0/0 unit 0 family iso
set interfaces lo0 unit 0 family iso address 49.0003.0050.0500.5005.00
set protocols isis interface ge-0/0/0.0 level 2 disable
set protocols isis interface lo0.0 passive


R1~R5にてIS-ISのアジャセンシー状態を確認します。

//R1
lab@R1# run show isis adjacency 
Interface             System         L State         Hold (secs) SNPA
ge-0/0/0.0            R2             1  Up                     8  50:1:0:2:0:1
//R2
lab@R2# run show isis adjacency    
Interface             System         L State         Hold (secs) SNPA
ge-0/0/0.0            R1             1  Up                    19  50:1:0:1:0:1
ge-0/0/1.0            R3             2  Up                     8  50:1:0:3:0:1
//R3
lab@R3# run show isis adjacency 
Interface             System         L State         Hold (secs) SNPA
ge-0/0/0.0            R2             2  Up                    21  50:1:0:2:0:2
ge-0/0/1.0            R4             2  Up                     7  50:1:0:4:0:1
//R4
lab@R4# run show isis adjacency 
Interface             System         L State         Hold (secs) SNPA
ge-0/0/0.0            R3             2  Up                    19  50:1:0:3:0:2
ge-0/0/1.0            R5             1  Up                     8  50:1:0:5:0:1
//R5
lab@R5# run show isis adjacency 
Interface             System         L State         Hold (secs) SNPA
ge-0/0/0.0            R4             1  Up                    21  50:1:0:4:0:2

全てUpしており、かつ構成図通りにLevel 1or2にてアジャセンシーを確立してます。

ではここから各ルーターのルーティングテーブルを見て、論理ポリシー通りになっているか確認していきます。
論理ポリシー通りになっていなければ、設定を修正していきます。
効率を考えてR5→R4→R3→R2→R1→R6の順で確認していきます。

R5のルーティングテーブルの確認

まず、R5のルーティングテーブルを確認します。

//R5
lab@R5# run show route protocol isis 

inet.0: 14 destinations, 14 routes (14 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

0.0.0.0/0          *[IS-IS/15] 00:03:01, metric 10
                    >  to 45.45.45.4 via ge-0/0/0.0
4.4.4.4/32         *[IS-IS/15] 00:03:01, metric 10
                    >  to 45.45.45.4 via ge-0/0/0.0
<snip>

論理ポリシー通りになっていませんね。
具体的には以下の点がNGです。
・R1、R2、R3のLo0.0の経路情報がない。
・Default Routeを生成されている。
※R6のLo0.0を含んだExternalな経路情報はBGPで学習しているためOK。

R5のIS-IS Link-Sate Databaseを見ていきます。

//R5
lab@R5# run show isis database level 1 detail
IS-IS level 1 link-state database:

R4.00-00 Sequence: 0x7, Checksum: 0xdeee, Lifetime: 1154 secs
   IS neighbor: R5.02                         Metric:       10
   IP prefix: 4.4.4.4/32                      Metric:        0 Internal Up
   IP prefix: 45.45.45.0/24                   Metric:       10 Internal Up

R4からR1、R2、R3のLo0.0の経路情報が広報されていないようです。
これはDefaultで「Level 1/2ルーターは、Level 2で受信した経路情報をLevel 1ルーターに広報しない」という動作が起因しています。
(Level 1ルーターはLevel 1/2ルーター向けのDefault Routeを生成してルーティングするようにします)
そのため、R4にてLevel 1ルーター(R5)向けにRoute Leakを行う必要があります。

//R4
set policy-options policy-statement ISIS_TO_L1 term 0011 from protocol isis
set policy-options policy-statement ISIS_TO_L1 term 0011 to level 1
set policy-options policy-statement ISIS_TO_L1 term 0011 then accept
set protocols isis export ISIS_TO_L1


R5にてIS-IS Link-Sate Databaseを確認します。

//R5
lab@R5# run show isis database level 1 detail
IS-IS level 1 link-state database:
<snip>
R4.00-00 Sequence: 0x8, Checksum: 0xaa7c, Lifetime: 1195 secs
   IS neighbor: R5.02                         Metric:       10
   IP prefix: 1.1.1.1/32                      Metric:       30 Internal Down
   IP prefix: 2.2.2.2/32                      Metric:       20 Internal Down
   IP prefix: 3.3.3.3/32                      Metric:       10 Internal Down
   IP prefix: 4.4.4.4/32                      Metric:        0 Internal Up
   IP prefix: 12.12.12.0/24                   Metric:       30 Internal Down
   IP prefix: 23.23.23.0/24                   Metric:       20 Internal Down
   IP prefix: 45.45.45.0/24                   Metric:       10 Internal Up
<snip>

R1、R2、R3のLo0.0の経路情報がありますね。

また、R5においてDefault Routeを生成しないようにします。

//R5
set protocols isis ignore-attached-bit


R5のルーティングテーブルを確認します。

//R5
lab@R5# run show route protocol isis

inet.0: 18 destinations, 18 routes (18 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

1.1.1.1/32         *[IS-IS/18] 00:50:29, metric 40
                    >  to 45.45.45.4 via ge-0/0/0.0
2.2.2.2/32         *[IS-IS/18] 00:50:29, metric 30
                    >  to 45.45.45.4 via ge-0/0/0.0
3.3.3.3/32         *[IS-IS/18] 00:50:29, metric 20
                    >  to 45.45.45.4 via ge-0/0/0.0
4.4.4.4/32         *[IS-IS/15] 00:58:10, metric 10
                    >  to 45.45.45.4 via ge-0/0/0.0
12.12.12.0/24      *[IS-IS/18] 00:50:29, metric 40
                    >  to 45.45.45.4 via ge-0/0/0.0
23.23.23.0/24      *[IS-IS/18] 00:50:29, metric 30
                    >  to 45.45.45.4 via ge-0/0/0.0
<snip>

これでR5は論理ポリシー通りになりました。

R4のルーティングテーブルの確認

続いてR4のルーティングテーブルを確認します。

//R4
lab@R4# run show route protocol isis 

inet.0: 13 destinations, 13 routes (13 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

1.1.1.1/32         *[IS-IS/18] 00:06:26, metric 30
                    >  to 34.34.34.3 via ge-0/0/0.0
2.2.2.2/32         *[IS-IS/18] 00:06:26, metric 20
                    >  to 34.34.34.3 via ge-0/0/0.0
3.3.3.3/32         *[IS-IS/18] 00:06:36, metric 10
                    >  to 34.34.34.3 via ge-0/0/0.0
5.5.5.5/32         *[IS-IS/15] 00:06:31, metric 10
                    >  to 45.45.45.5 via ge-0/0/1.0
12.12.12.0/24      *[IS-IS/18] 00:06:26, metric 30
                    >  to 34.34.34.3 via ge-0/0/0.0
23.23.23.0/24      *[IS-IS/18] 00:06:36, metric 20
                    >  to 34.34.34.3 via ge-0/0/0.0
<snip>

こちらも論理ポリシー通りになっていません。
具体的には以下の点がNGになっています。
・R6のLo0.0の経路情報がない
・Externalな集約経路情報がない

R4でIS-IS Link-Sate Databaseを確認します。

//R4
lab@R4# run show isis database detail
IS-IS level 1 link-state database:
<snip>
R5.00-00 Sequence: 0x5, Checksum: 0xb7e8, Lifetime: 1134 secs
   IS neighbor: R5.02                         Metric:       10
   IP prefix: 5.5.5.5/32                      Metric:        0 Internal Up
   IP prefix: 45.45.45.0/24                   Metric:       10 Internal Up
<snip>

理由は単にR5にてBGPの経路情報をIS-ISへExport(再配布)してないからですね。
なので、R5にてBGPの経路情報をIS-ISへExportします。

//R5
set policy-options policy-statement BGP_TO_ISIS_EXPORT term 0011 from protocol bgp
set policy-options policy-statement BGP_TO_ISIS_EXPORT term 0011 then accept
set protocols isis export BGP_TO_ISIS_EXPORT


R4でIS-IS Link-Sate Databaseを確認します。

//R4
lab@R4# run show isis database detail
IS-IS level 1 link-state database:
<snip>
R5.00-00 Sequence: 0x6, Checksum: 0x6607, Lifetime: 1193 secs
   IS neighbor: R5.02                         Metric:       10
   IP prefix: 5.5.5.5/32                      Metric:        0 Internal Up
   IP prefix: 6.6.6.6/32                      Metric:       10 External Up
   IP prefix: 45.45.45.0/24                   Metric:       10 Internal Up
   IP prefix: 66.1.0.0/24                     Metric:       10 External Up
   IP prefix: 66.1.1.0/24                     Metric:       10 External Up
   IP prefix: 66.1.2.0/24                     Metric:       10 External Up
   IP prefix: 66.1.3.0/24                     Metric:       10 External Up
<snip>

R5よりBGPの経路情報が広報されてきました。
R4のルーティングテーブルを確認します。

//R4
lab@R4# run show route protocol isis

inet.0: 19 destinations, 19 routes (19 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

1.1.1.1/32         *[IS-IS/18] 00:59:23, metric 30
                    >  to 34.34.34.3 via ge-0/0/0.0
2.2.2.2/32         *[IS-IS/18] 00:59:23, metric 20
                    >  to 34.34.34.3 via ge-0/0/0.0
3.3.3.3/32         *[IS-IS/18] 00:59:48, metric 10
                    >  to 34.34.34.3 via ge-0/0/0.0
5.5.5.5/32         *[IS-IS/15] 00:59:50, metric 10
                    >  to 45.45.45.5 via ge-0/0/1.0
6.6.6.6/32         *[IS-IS/160] 00:46:25, metric 20
                    >  to 45.45.45.5 via ge-0/0/1.0
12.12.12.0/24      *[IS-IS/18] 00:59:23, metric 30
                    >  to 34.34.34.3 via ge-0/0/0.0
23.23.23.0/24      *[IS-IS/18] 00:59:48, metric 20
                    >  to 34.34.34.3 via ge-0/0/0.0
66.1.0.0/24        *[IS-IS/160] 00:46:25, metric 20
                    >  to 45.45.45.5 via ge-0/0/1.0
66.1.1.0/24        *[IS-IS/160] 00:46:25, metric 20
                    >  to 45.45.45.5 via ge-0/0/1.0
66.1.2.0/24        *[IS-IS/160] 00:46:25, metric 20
                    >  to 45.45.45.5 via ge-0/0/1.0
66.1.3.0/24        *[IS-IS/160] 00:46:25, metric 20
                    >  to 45.45.45.5 via ge-0/0/1.0
<snip>

これでR4も論理ポリシー通りになりました。

R3のルーティングテーブルの確認

続いて、R3のルーティングテーブルを確認します。

//R3
lab@R3# run show route protocol isis 

inet.0: 13 destinations, 13 routes (13 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

1.1.1.1/32         *[IS-IS/18] 00:11:05, metric 20
                    >  to 23.23.23.2 via ge-0/0/0.0
2.2.2.2/32         *[IS-IS/18] 00:11:05, metric 10
                    >  to 23.23.23.2 via ge-0/0/0.0
4.4.4.4/32         *[IS-IS/18] 00:09:59, metric 10
                    >  to 34.34.34.4 via ge-0/0/1.0
5.5.5.5/32         *[IS-IS/18] 00:09:54, metric 20
                    >  to 34.34.34.4 via ge-0/0/1.0
12.12.12.0/24      *[IS-IS/18] 00:11:05, metric 20
                    >  to 23.23.23.2 via ge-0/0/0.0
45.45.45.0/24      *[IS-IS/18] 00:09:59, metric 20
                    >  to 34.34.34.4 via ge-0/0/1.0
<snip>

こちらも論理ポリシー通りになっていません。
具体的には以下の点がNGになっています。
・R6のLo0.0の経路情報がない
・Externalな集約経路情報がない

R3のIS-IS Link-Sate Databaseを確認します。

//R3
lab@R3# run show isis database level 2 detail
IS-IS level 2 link-state database:
<snip>
R4.00-00 Sequence: 0x9, Checksum: 0x1f99, Lifetime: 1181 secs
   IS neighbor: R4.02                         Metric:       10
   IP prefix: 4.4.4.4/32                      Metric:        0 Internal Up
   IP prefix: 5.5.5.5/32                      Metric:       10 Internal Up
   IP prefix: 34.34.34.0/24                   Metric:       10 Internal Up
   IP prefix: 45.45.45.0/24                   Metric:       10 Internal Up
<snip>

R4からExternalな経路情報が広報されていないようです。
これはDefaultで「Level 1/2ルーターは 他Areaの(Level 2)ルーターにExternalな経路情報を広報しない」という動作が起因しています。
そのため、R4にてLevel 2ルーター(R3)向けにRoute Leakを行う必要があります。
さらに、R3において66.1.x.0/24の経路情報は66.1.0.0/22の集約経路を受信する必要があるため、同じくR4にて集約経路を広報するような設定を行います。

//R4
set routing-options aggregate route 66.1.0.0/22 discard
set policy-options policy-statement ISIS_TO_L2 term 0011 from protocol aggregate
set policy-options policy-statement ISIS_TO_L2 term 0011 from route-filter 66.1.0.0/22 exact
set policy-options policy-statement ISIS_TO_L2 term 0011 to level 2
set policy-options policy-statement ISIS_TO_L2 term 0011 then accept
set policy-options policy-statement ISIS_TO_L2 term 0021 from protocol isis
set policy-options policy-statement ISIS_TO_L2 term 0021 from route-filter 5.5.5.5/32 exact
set policy-options policy-statement ISIS_TO_L2 term 0021 from route-filter 6.6.6.6/32 exact
set policy-options policy-statement ISIS_TO_L2 term 0021 to level 2
set policy-options policy-statement ISIS_TO_L2 term 0021 then accept
set protocols isis export ISIS_TO_L2

設定のポイントとしてはOSPFのような(集約経路を広報する)area-range設定はないため、 aggregate routeを定義してExportするような設定となる点です。
また、R6とR5のLo0.0を広報する設定を明示的に入れないといけない点でしょうか。
(もっとスマートな方法があるかも…)

R3のIS-IS Link-Sate Databaseを確認します。

lab@R3# run show isis database level 2 detail
IS-IS level 2 link-state database:
<snip>
R4.00-00 Sequence: 0xa, Checksum: 0xcf8b, Lifetime: 1193 secs
   IS neighbor: R4.02                         Metric:       10
   IP prefix: 4.4.4.4/32                      Metric:        0 Internal Up
   IP prefix: 5.5.5.5/32                      Metric:       10 Internal Up
   IP prefix: 6.6.6.6/32                      Metric:       20 External Up
   IP prefix: 34.34.34.0/24                   Metric:       10 Internal Up
   IP prefix: 45.45.45.0/24                   Metric:       10 Internal Up
   IP prefix: 66.1.0.0/22                     Metric:       10 External Up
<snip>

R4において、R5とR6のLo0.0と(Externalな経路の)集約経路(66.1.0.0/22)の情報が載っていますね。
R4にて論理ポリシー通りに広報できてそうです。

R3のルーティングテーブルを確認します。

//R3
lab@R3# run show route protocol isis

inet.0: 15 destinations, 15 routes (15 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

1.1.1.1/32         *[IS-IS/18] 01:00:24, metric 20
                    >  to 23.23.23.2 via ge-0/0/0.0
2.2.2.2/32         *[IS-IS/18] 01:00:24, metric 10
                    >  to 23.23.23.2 via ge-0/0/0.0
4.4.4.4/32         *[IS-IS/18] 01:00:49, metric 10
                    >  to 34.34.34.4 via ge-0/0/1.0
5.5.5.5/32         *[IS-IS/18] 01:00:49, metric 20
                    >  to 34.34.34.4 via ge-0/0/1.0
6.6.6.6/32         *[IS-IS/165] 00:22:37, metric 30
                    >  to 34.34.34.4 via ge-0/0/1.0
12.12.12.0/24      *[IS-IS/18] 01:00:24, metric 20
                    >  to 23.23.23.2 via ge-0/0/0.0
45.45.45.0/24      *[IS-IS/18] 01:00:49, metric 20
                    >  to 34.34.34.4 via ge-0/0/1.0
66.1.0.0/22        *[IS-IS/165] 00:22:37, metric 20
                    >  to 34.34.34.4 via ge-0/0/1.0
<snip>

これでR3も論理ポリシー通りになりました。

R2のルーティングテーブルの確認

続いて、R2のルーティングテーブルを確認します。

//R2
lab@R2# run show route protocol isis

inet.0: 15 destinations, 15 routes (15 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

1.1.1.1/32         *[IS-IS/15] 00:42:42, metric 10
                    >  to 12.12.12.1 via ge-0/0/0.0
3.3.3.3/32         *[IS-IS/18] 00:41:54, metric 10
                    >  to 23.23.23.3 via ge-0/0/1.0
4.4.4.4/32         *[IS-IS/18] 00:41:45, metric 20
                    >  to 23.23.23.3 via ge-0/0/1.0
5.5.5.5/32         *[IS-IS/18] 00:41:45, metric 30
                    >  to 23.23.23.3 via ge-0/0/1.0
6.6.6.6/32         *[IS-IS/165] 00:04:07, metric 40
                    >  to 23.23.23.3 via ge-0/0/1.0
34.34.34.0/24      *[IS-IS/18] 00:41:54, metric 20
                    >  to 23.23.23.3 via ge-0/0/1.0
45.45.45.0/24      *[IS-IS/18] 00:41:45, metric 30
                    >  to 23.23.23.3 via ge-0/0/1.0
66.1.0.0/22        *[IS-IS/165] 00:04:07, metric 30
                    >  to 23.23.23.3 via ge-0/0/1.0

R2は論理ポリシー通りになっており、追加の設定は必要なさそうですね。
R3にて他Area(R4)からExternalな経路を受信した場合、他Area(R2)へそのまま広報する動作となっているようです。

ちなみにJunosにおけるIS-ISのプリファレンス値は以下のように定義されています。

経路情報の種類 プリファレンス値
Level 1 internal route 15
Level 2 internal route 18
Level 1 external route 160
Level 2 external route 165
R1のルーティングテーブルの確認

続いて、R1のルーティングテーブルを確認します。

//R1
lab@R1# run show route protocol isis

inet.0: 7 destinations, 7 routes (7 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

0.0.0.0/0          *[IS-IS/15] 00:46:08, metric 10
                    >  to 12.12.12.2 via ge-0/0/0.0
2.2.2.2/32         *[IS-IS/15] 00:46:56, metric 10
                    >  to 12.12.12.2 via ge-0/0/0.0

論理ポリシー通りになっていません。
具体的には以下の点がNGになっています。
・R3、R4、R5、R6のLo0.0の経路情報とExternalな集約経路情報がない。
・R2向けのDefault Routeを生成している。

併せてR1のIS-IS Link-Sate Databaseを確認します。

//R1
lab@R1# run show isis database detail
IS-IS level 1 link-state database:
<snip>
R2.00-00 Sequence: 0x6, Checksum: 0xb484, Lifetime: 925 secs
   IS neighbor: R2.02                         Metric:       10
   IP prefix: 2.2.2.2/32                      Metric:        0 Internal Up
   IP prefix: 12.12.12.0/24                   Metric:       10 Internal Up
<snip>

R5の時と一緒ですね。R2とR1に同様の設定を入れていきます。
まず、R2にてLevel 1ルーター(R1)向けにRoute Leakの設定を入れます。

//R2
set policy-options policy-statement ISIS_TO_L1 term 0011 from protocol isis
set policy-options policy-statement ISIS_TO_L1 term 0011 to level 1
set policy-options policy-statement ISIS_TO_L1 term 0011 then accept
set protocols isis export ISIS_TO_L1

また、R1においてDefault Routeを生成しないようにします。

//R1
set protocols isis ignore-attached-bit


R1のIS-IS Link-Sate Databaseとルーティングテーブルを確認します。

lab@R1# run show isis database detail
IS-IS level 1 link-state database:
<snip>
R2.00-00 Sequence: 0x7, Checksum: 0xb1f8, Lifetime: 1150 secs
   IS neighbor: R2.02                         Metric:       10
   IP prefix: 2.2.2.2/32                      Metric:        0 Internal Up
   IP prefix: 3.3.3.3/32                      Metric:       10 Internal Down
   IP prefix: 4.4.4.4/32                      Metric:       20 Internal Down
   IP prefix: 5.5.5.5/32                      Metric:       30 Internal Down
   IP prefix: 6.6.6.6/32                      Metric:       40 External Down
   IP prefix: 12.12.12.0/24                   Metric:       10 Internal Up
   IP prefix: 34.34.34.0/24                   Metric:       20 Internal Down
   IP prefix: 45.45.45.0/24                   Metric:       30 Internal Down
   IP prefix: 66.1.0.0/22                     Metric:       30 External Down
<snip>
//R1
lab@R1# run show route protocol isis

inet.0: 13 destinations, 13 routes (13 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

2.2.2.2/32         *[IS-IS/15] 00:51:35, metric 10
                    >  to 12.12.12.2 via ge-0/0/0.0
3.3.3.3/32         *[IS-IS/18] 00:02:03, metric 20
                    >  to 12.12.12.2 via ge-0/0/0.0
4.4.4.4/32         *[IS-IS/18] 00:02:03, metric 30
                    >  to 12.12.12.2 via ge-0/0/0.0
5.5.5.5/32         *[IS-IS/18] 00:02:03, metric 40
                    >  to 12.12.12.2 via ge-0/0/0.0
6.6.6.6/32         *[IS-IS/165] 00:02:03, metric 50
                    >  to 12.12.12.2 via ge-0/0/0.0
34.34.34.0/24      *[IS-IS/18] 00:02:03, metric 30
                    >  to 12.12.12.2 via ge-0/0/0.0
45.45.45.0/24      *[IS-IS/18] 00:02:03, metric 40
                    >  to 12.12.12.2 via ge-0/0/0.0
66.1.0.0/22        *[IS-IS/165] 00:02:03, metric 40
                    >  to 12.12.12.2 via ge-0/0/0.0
<snip>

これでR1も論理ポリシー通りになりました。

R6のルーティングテーブルの確認

最後にR6のルーティングテーブルを確認します。

lab@R6# run show route protocol bgp

inet.0: 9 destinations, 9 routes (9 active, 0 holddown, 0 hidden)

論理ポリシー通りになっていませんね。
具体的には以下の点がNGになっています。
・R1~R5のLo0.0の経路情報がない。

R6にてBGPで受け取っている経路情報を確認します。

//R6
lab@R6# run show route receive-protocol bgp 56.56.56.5    

inet.0: 9 destinations, 9 routes (9 active, 0 holddown, 0 hidden)

R5より経路情報を広報してないので、当然ながら経路情報は何も表示されません。

なので、R5にてIS-ISの経路情報をBGPへExportします。

//R5
set policy-options policy-statement BGP_R6_EXPORT term 0011 from protocol isis
set policy-options policy-statement BGP_R6_EXPORT term 0011 then accept
set policy-options policy-statement BGP_R6_EXPORT term 0021 from protocol direct
set policy-options policy-statement BGP_R6_EXPORT term 0021 from route-filter 5.5.5.5/32 exact
set policy-options policy-statement BGP_R6_EXPORT term 0021 then accept
set policy-options policy-statement BGP_R6_EXPORT term 9991 then reject
set protocols bgp group EBGP neighbor 56.56.56.6 export BGP_R6_EXPORT

ポイントとしては、自身のLo0.0(5.5.5.5/32)は直接接続なので別途termを作成する必要がある点でしょうか。

R6のBGPで受け取っている経路情報を確認します。

//R6
lab@R6# run show route receive-protocol bgp 56.56.56.5

inet.0: 16 destinations, 16 routes (16 active, 0 holddown, 0 hidden)
  Prefix                  Nexthop              MED     Lclpref    AS path
* 1.1.1.1/32              56.56.56.5           40                 65005 I
* 2.2.2.2/32              56.56.56.5           30                 65005 I
* 3.3.3.3/32              56.56.56.5           20                 65005 I
* 4.4.4.4/32              56.56.56.5           10                 65005 I
* 5.5.5.5/32              56.56.56.5                              65005 I
* 12.12.12.0/24           56.56.56.5           40                 65005 I
* 23.23.23.0/24           56.56.56.5           30                 65005 I

R5から経路情報が来てますね。

R6のルーティングテーブルを確認します。

lab@R6# run show route protocol bgp

inet.0: 16 destinations, 16 routes (16 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

1.1.1.1/32         *[BGP/170] 00:00:56, MED 40, localpref 100
                      AS path: 65005 I, validation-state: unverified
                    >  to 56.56.56.5 via ge-0/0/0.0
2.2.2.2/32         *[BGP/170] 00:00:56, MED 30, localpref 100
                      AS path: 65005 I, validation-state: unverified
                    >  to 56.56.56.5 via ge-0/0/0.0
3.3.3.3/32         *[BGP/170] 00:00:56, MED 20, localpref 100
                      AS path: 65005 I, validation-state: unverified
                    >  to 56.56.56.5 via ge-0/0/0.0
4.4.4.4/32         *[BGP/170] 00:00:56, MED 10, localpref 100
                      AS path: 65005 I, validation-state: unverified
                    >  to 56.56.56.5 via ge-0/0/0.0
5.5.5.5/32         *[BGP/170] 00:00:56, localpref 100
                      AS path: 65005 I, validation-state: unverified
                    >  to 56.56.56.5 via ge-0/0/0.0
12.12.12.0/24      *[BGP/170] 00:00:56, MED 40, localpref 100
                      AS path: 65005 I, validation-state: unverified
                    >  to 56.56.56.5 via ge-0/0/0.0
23.23.23.0/24      *[BGP/170] 00:00:56, MED 30, localpref 100
                      AS path: 65005 I, validation-state: unverified
                    >  to 56.56.56.5 via ge-0/0/0.0

R6も論理ポリシー通りになりました。
という訳で全てのルーターが論理ポリシー通りの状態になりました!!

IS-ISはAreaを跨ぐ場合、経路情報の広報にクセがありますね。
日本ではあまり使わていませんが、覚えておいて損はないかも??

今回は以上です。
ここまでお読みくださり、ありがとうございました!!!!

3. 参考資料

Juniper Documentation - IS-IS User Guidewww.juniper.net
Junos: IS-IS Study Notes, Part 4 – Levels, Areas, The Attached Bit, and Default Routeswww.networkfuntimes.com




以上の内容はhttps://yokohama539.hatenablog.com/entry/2025/08/24/030746より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14