読む前にこの記事のポイントを音声で確認できます。この音声は本記事をもとにAIツール(NotebookLM)で自動生成したもので、発音や言い回しが不自然な箇所や、内容の誤りが含まれる可能性があります。理解の補助としてご利用ください。
同じルーティングプロトコルで、同じ宛先のルートを複数の経路から受け取った場合、ルータはそのプロトコルのメトリック(OSPF ならコスト、RIP ならホップ数など)で最適な経路を選びます。
では、OSPF と RIP のように異なるルーティングプロトコルから同じ宛先のルートを受け取った場合は、どちらを使うのでしょうか。OSPF と RIP ではメトリックの意味が違うので、メトリック同士を比べることはできません。ここで使われるのが、アドミニストレーティブディスタンス(Administrative Distance:AD)です。この記事では、Cisco ルータで同じ宛先のルートを AD 値の大きいプロトコルから順に追加し、どのルートが使われるかを確認します。
- AD 値の役割と、主なルーティングプロトコルの AD 値
- iBGP(200)から eBGP(20)まで、AD 値の小さいルートが優先される動作
- EIGRP の集約ルートとスタティックルートの AD 値(5 と 1)
- AD 値で比べるのは同じプレフィックスのルートだけであること
Administrative Distance とは
AD は、ルート情報の信頼度を表す値です。ルーティングプロトコルごとに値が決まっていて、同じ宛先のルートが複数のプロトコルから届いたときは、AD 値の小さいルートがルーティングテーブルに入ります。メトリックで比べるのは、同じプロトコルの中で複数の経路があるときです。
主なルート情報の AD 値(Cisco ルータの既定値)は次のとおりです。
| ルート情報 | AD 値 |
|---|---|
| 直接接続(Connected) | 0 |
| スタティックルート | 1 |
| EIGRP 集約ルート | 5 |
| eBGP | 20 |
| EIGRP 内部 | 90 |
| OSPF | 110 |
| IS-IS | 115 |
| RIP | 120 |
| EIGRP 外部 | 170 |
| iBGP | 200 |
例えば、同じ宛先のルートを OSPF と RIP で受け取った場合、OSPF は 110、RIP は 120 なので、OSPF のルートがルーティングテーブルに入ります。直接接続のネットワークは AD 値 0 で、もっとも優先されます。ルータ自身のインターフェースがつながっているネットワークなので、ほかのどの情報よりも確かだからです。
検証構成
R5 に R2 と R3 をつなぎ、R2 と R3 のどちらにも Loopback23(23.23.23.23/32)を作ります。この 23.23.23.23/32 を、R2 と R3 からさまざまなプロトコルで R5 に広告し、R5 がどのルートを使うかを順に確認します。
最初に AD 値 200 の iBGP でルートを広告し、そこから AD 値の小さいルートを少しずつ追加していきます。
AD 値の小さいルートを順に追加する
iBGP(AD 200)
R3 と R5 を内部 BGP(iBGP、AS 35)でピアリングし、R3 の Loopback23(23.23.23.23/32)を R5 へ広告します。
R3
R3(config)#router bgp 35 R3(config-router)#neighbor 192.168.35.5 remote-as 35 R3(config-router)#network 23.23.23.23 mask 255.255.255.255
R5
R5(config)#router bgp 35 R5(config-router)#neighbor 192.168.35.3 remote-as 35
R5 のルーティングテーブルを見ると、23.23.23.23 を BGP のルートとして学習しています。行頭の B は BGP の意味で、出力上部の Codes でも確認できます。[200/0] の先頭の数字が AD 値で、iBGP なので 200 です。
R5
R5# show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
+ - replicated route, % - next hop override
Gateway of last resort is not set
23.0.0.0/32 is subnetted, 1 subnets
B 23.23.23.23 [200/0] via 192.168.35.3, 00:00:50
〜 以降省略
| 表示 | 意味 |
|---|---|
| B | BGP で学習したルート |
| [200/0] | [AD 値/メトリック]。iBGP の AD 値は 200 |
| via 192.168.35.3 | ネクストホップは R3 |
EIGRP 外部(AD 170)vs iBGP(AD 200)
R2 と R5 で EIGRP(AS 25)を有効にし、R2 の Loopback23 を EIGRP へ再配布します。再配布したルートは、EIGRP の外部ルートとして R5 へ広告されます。
R2
R2(config)# router eigrp 25
R2(config-router)# network 192.168.25.0
R2(config-router)# redistribute connected
R5
R5(config)# router eigrp 25 R5(config-router)# network 192.168.25.0
redistribute connected は、ルータに直接接続しているネットワーク(Connected)を、EIGRP などのルーティングプロトコルへ再配布するコマンドです。これで、R2 の Loopback23 のネットワークがほかのルータにも通知されます。
R5 のルーティングテーブルを見ると、23.23.23.23/32 を EIGRP 外部ルート(D EX)として学習しています。EIGRP 外部の AD 値は 170、iBGP の AD 値は 200 なので、同じ宛先(23.23.23.23/32)では EIGRP 外部のルートが優先され、iBGP のルートはルーティングテーブルから外れます。
R5
R5# show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
+ - replicated route, % - next hop override
Gateway of last resort is not set
23.0.0.0/32 is subnetted, 1 subnets
D EX 23.23.23.23
[170/156160] via 192.168.25.2, 00:02:04, FastEthernet0/0.25
〜 以降省略
RIP(AD 120)vs EIGRP 外部(AD 170)
R3 と R5 で RIP(バージョン2)を有効にし、R3 の Loopback23 を R5 へ広告します。
R3
R3(config)#router rip R3(config-router)# version 2 R3(config-router)# network 23.0.0.0 R3(config-router)# network 192.168.35.0 R3(config-router)# no auto-summary
R5
R5(config)#router rip R5(config-router)# version 2 R5(config-router)# network 192.168.35.0
R5 のルーティングテーブルを見ると、23.23.23.23/32 を RIP で学習しています。RIP の AD 値は 120 で、EIGRP 外部の 170 より小さいため、RIP のルートが優先されます。
R5
R5# show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
+ - replicated route, % - next hop override
Gateway of last resort is not set
23.0.0.0/32 is subnetted, 1 subnets
R 23.23.23.23 [120/1] via 192.168.35.3, 00:00:28, FastEthernet0/0.35
〜 以降省略
IS-IS(AD 115)vs RIP(AD 120)
R2 と R5 で IS-IS(レベル1)を有効にし、R2 の Loopback23 を R5 へ広告します。
R2
R2(config)# router isis R2(config-router)# net 49.0025.0000.0000.0002.00 R2(config-router)# is-type level-1 R2(config-router)# exit R2(config)# interface Loopback23 R2(config-if)# ip router isis R2(config-if)# exit R2(config)# interface FastEthernet0/0.25 R2(config-subif)# ip router isis
R5
R5(config)# router isis R5(config-router)# net 49.0025.0000.0000.0005.00 R5(config-router)# is-type level-1 R5(config-router)# exit R5(config)# interface FastEthernet0/0.25 R5(config-subif)# ip router isis
R5 のルーティングテーブルを見ると、23.23.23.23/32 を IS-IS(i L1)で学習しています。IS-IS の AD 値は 115 で、RIP の 120 より小さいため、IS-IS のルートが優先されます。
R5
R5# show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
+ - replicated route, % - next hop override
Gateway of last resort is not set
23.0.0.0/32 is subnetted, 1 subnets
i L1 23.23.23.23 [115/20] via 192.168.25.2, 00:11:52, FastEthernet0/0.25
〜 以降省略
OSPF(AD 110)vs IS-IS(AD 115)
R3 と R5 で OSPF を有効にし、R3 の Loopback23 を R5 へ広告します。
R3
R3(config)# router ospf 1 R3(config-router)# network 192.168.35.0 0.0.0.255 area 0 R3(config-router)# network 23.23.23.23 0.0.0.0 area 0
R5
R5(config)# router ospf 1 R5(config-router)# network 192.168.35.0 0.0.0.255 area 0
R5 のルーティングテーブルを見ると、23.23.23.23/32 を OSPF で学習しています。OSPF の AD 値は 110 で、IS-IS の 115 より小さいため、OSPF のルートが優先されます。
R5
R5# show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
+ - replicated route, % - next hop override
Gateway of last resort is not set
23.0.0.0/32 is subnetted, 1 subnets
O 23.23.23.23 [110/2] via 192.168.35.3, 00:00:30, FastEthernet0/0.35
〜 以降省略
EIGRP 内部(AD 90)vs OSPF(AD 110)
R2 の EIGRP の設定から再配布(redistribute connected)を削除し、network コマンドで Loopback23 のインターフェースでも EIGRP を動かします。これで 23.23.23.23/32 は、EIGRP の内部ルートとして R5 へ広告されます。
R2
R2(config)# router eigrp 25 R2(config-router)# no redistribute connected R2(config-router)# network 23.23.23.23
R5 のルーティングテーブルを見ると、23.23.23.23/32 を EIGRP(D)で学習しています。EIGRP 内部の AD 値は 90 で、OSPF の 110 より小さいため、EIGRP のルートが優先されます。
R5
R5# show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
+ - replicated route, % - next hop override
Gateway of last resort is not set
23.0.0.0/32 is subnetted, 1 subnets
D 23.23.23.23
[90/156160] via 192.168.25.2, 00:00:24, FastEthernet0/0.25
〜 以降省略
eBGP(AD 20)vs EIGRP 内部(AD 90)
R3 と R5 の iBGP の設定を削除し、外部 BGP(eBGP)の設定に入れ替えます。R3 を AS 3、R5 を AS 5 にしてピアリングし、R3 の Loopback23 を R5 へ広告します。
R3
R3(config)# no router bgp 35 R3(config)# router bgp 3 R3(config-router)# neighbor 192.168.35.5 remote-as 5 R3(config-router)# network 23.23.23.23 mask 255.255.255.255
R5
R5(config)# no router bgp 35 R5(config)# router bgp 5 R5(config-router)# neighbor 192.168.35.3 remote-as 3
R5 のルーティングテーブルを見ると、23.23.23.23/32 を BGP で学習しています。eBGP の AD 値は 20 で、EIGRP 内部の 90 より小さいため、eBGP のルートが優先されます。同じ B でも、iBGP(STEP 1)の 200 とは AD 値が違うことがわかります。
R5
R5# show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
+ - replicated route, % - next hop override
Gateway of last resort is not set
23.0.0.0/32 is subnetted, 1 subnets
B 23.23.23.23 [20/0] via 192.168.35.3, 00:00:15
〜 以降省略
集約ルートとスタティックルートの AD
EIGRP 集約(AD 5)
ここからは、ルータ間で AD を比べるのではなく、R5 だけで動作を確認します。R5 で、23.23.23.0/24 の EIGRP 集約ルートを作ります。
R5
R5(config)# interface FastEthernet0/0.25
R5(config-subif)# ip summary-address eigrp 25 23.23.23.0 255.255.255.0
R5 のルーティングテーブルを見ると、23.23.23.0/24 の EIGRP のルートが、宛先 Null0 で作られています。EIGRP で集約ルートを作ると、集約したルータ自身に、集約ルートと同じ宛先で Null0 を向くルートが自動で作られます。
R5
R5# show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
+ - replicated route, % - next hop override
Gateway of last resort is not set
23.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
D 23.23.23.0/24 is a summary, 00:02:24, Null0
B 23.23.23.23/32 [20/0] via 192.168.35.3, 00:01:22
〜 以降省略
この Null0 のルートの AD 値は、宛先を指定して show ip route を実行すると確認できます。
R5
R5# show ip route 23.23.23.0
Routing entry for 23.23.23.0/24
Known via "eigrp 25", distance 5, metric 156160, type internal
Redistributing via eigrp 25
Routing Descriptor Blocks:
* directly connected, via Null0
Route metric is 156160, traffic share count is 1
Total delay is 5100 microseconds, minimum bandwidth is 100000 Kbit
Reliability 255/255, minimum MTU 1500 bytes
Loading 1/255, Hops 0
スタティック(AD 1)vs EIGRP 集約(AD 5)
最後に、23.23.23.0/24 宛ての Null0 のルートをスタティックルートで設定します。
R5
R5(config)# ip route 23.23.23.0 255.255.255.0 null 0
R5 のルーティングテーブルを見ると、23.23.23.0/24 の Null0 のルートはスタティックルート(S)として登録されています。スタティックルートの AD 値は 1 で、EIGRP 集約の 5 より小さいため、スタティックルートが優先されます。
R5
R5# show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
+ - replicated route, % - next hop override
Gateway of last resort is not set
23.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
S 23.23.23.0/24 is directly connected, Null0
B 23.23.23.23/32 [20/0] via 192.168.35.3, 00:03:58
〜 以降省略
宛先を指定して確認すると、AD 値は 1 です。インターフェース(Null0)を指定したスタティックルートは directly connected と表示されますが、AD 値は直接接続の 0 ではなく、スタティックルートの 1 です。
R5
R5# show ip route 23.23.23.0
Routing entry for 23.23.23.0/24
Known via "static", distance 1, metric 0 (connected)
Routing Descriptor Blocks:
* directly connected, via Null0
Route metric is 0, traffic share count is 1
AD の比較で押さえておくこと
STEP 8・9 の出力では、23.23.23.0/24(EIGRP 集約やスタティックルート)と 23.23.23.23/32(eBGP)の両方がルーティングテーブルに入っています。AD 値で比べるのは、宛先とプレフィックス長がまったく同じルートどうしです。プレフィックス長が違えば別の宛先として扱われ、両方ともルーティングテーブルに入ります。パケットを転送するときは、AD 値に関係なく、宛先にもっとも長く一致するルート(ロンゲストマッチ)が使われます。
また、AD 値の比較で負けたルートも、OSPF や EIGRP、BGP などではプロトコル側にバックアップとして残ります。ルーティングテーブルに入っているルートが消えると、残っているルートの中から AD 値のもっとも小さいものがルーティングテーブルに入ります。この動作を使って、AD 値を大きくしたスタティックルートをバックアップにする設定がフローティングスタティックです。
フローティングスタティックの設定と動作は、【Cisco】フローティングスタティック で確認しています。
まとめ
| STEP | 比べたルート | R5 が使ったルート |
|---|---|---|
| 1 | iBGP(200)のみ | B [200/0] |
| 2 | EIGRP 外部(170)vs iBGP(200) | D EX [170/156160] |
| 3 | RIP(120)vs EIGRP 外部(170) | R [120/1] |
| 4 | IS-IS(115)vs RIP(120) | i L1 [115/20] |
| 5 | OSPF(110)vs IS-IS(115) | O [110/2] |
| 6 | EIGRP 内部(90)vs OSPF(110) | D [90/156160] |
| 7 | eBGP(20)vs EIGRP 内部(90) | B [20/0] |
| 8 | EIGRP 集約(5) | D 23.23.23.0/24 is a summary, Null0(distance 5) |
| 9 | スタティック(1)vs EIGRP 集約(5) | S 23.23.23.0/24 is directly connected, Null0(distance 1) |
同じ宛先のルートが複数のプロトコルから届いたときは AD 値の小さいものが、同じプロトコルの中ではメトリックの小さいものが使われます。どちらも、宛先とプレフィックス長が同じルートどうしの比較です。
コメント