今回は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.0R2は論理ポリシー通りになっており、追加の設定は必要なさそうですね。
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.0R6も論理ポリシー通りになりました。
という訳で全てのルーターが論理ポリシー通りの状態になりました!!
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