administrative distanceとmetric

この2つは同じような概念なのでよく混同する。

ditanceは距離、metricは辞書的には「メートル法の」とか「測定基準」という意味で、これも距離のような概念である。

どちらも大きいほうが「遠い」経路であるから、同じ宛先の経路があった場合小さいほうが採用され、ルーティングテーブルに載るのは一つだけである。

等コスト(「コスト」もまた同じような概念だが...)バランスする場合は同じ経路が複数載る場合もあるが、それは例外とする。

以下はあるshow ip routeの結果の抜粋である。

      172.17.0.0/16 is variably subnetted, 2 subnets, 2 masks

D        172.17.0.0/16 [90/3072] via 172.18.1.1, 01:10:04, GigabitEthernet0/0

O        172.17.1.0/24 [110/2] via 172.18.1.1, 00:00:04, GigabitEthernet0/0

C        172.18.1.0/24 is directly connected, GigabitEthernet0/0

L        172.18.1.2/32 is directly connected, GigabitEthernet0/0

      172.19.0.0/16 is variably subnetted, 3 subnets, 3 masks

D        172.19.0.0/16 is a summary, 01:10:07, Null0

S     192.168.2.0/24 [1/0] via 172.17.1.1


[90/3072]のように書いてあるのが、[ad/metric]である。

90はEIGRPの内部経路のデフォルトのad値

110はOSPFの内部経路のデフォルトのad値

1はstaticのad値


show ip routeではconnected経路、EIGRPの集約経路などのad値は表示されないが、それぞれ0, 5である。

IPアドレスというものは、だれでも自由に採番できる。プライベートアドレスだけでなく、グローバルアドレスであっても、設定しようと思えば設定できる。よく、「1.1.1.1」などというIPアドレスをloopbackなどで使用することがあるが、これは有効なグローバルアドレスであり、実際にはdnsサーバであり、インターネット上に唯一(であるべき)なアドレスである。

ルーティングによってどんなアドレスが広報され、自身が学習するかわからない。自分が設定しているから他所では設定されていないと決めつけることはできない。また、自分自身が設定していないアドレスは、他所のどこか一か所に設定されているとは限らず、また、一か所であったとしても、その経路が必ず一つの装置から広報されるとも限らない。

だから、同じ宛先の経路が複数あったときにどれを採用するかの基準が必要となる。

administrative distanceは、異なるルーティングプロトコルから受信した経路の比較に使われ、メトリックは同じルーティングプロトコルで受信した経路の比較に使われる。

だから、優先度としてはadが先ということになる。まずadを比較して、adも同じだった場合にはメトリックを比較する。

そもそもメトリックというのはルーティングプロトコルごとに計算方法がことなるので、異なるルーティングプロトコルのメトリックを比較するのは意味がない。

ちなみに、adとmetricを比較する前に「ロンゲストマッチ」という基準があり、ある宛先が別の宛先を含む場合はどちらの宛先に送っても到達可能ということになるが、その場合はサブネットマスクがより長いほうを採用する。サブネットマスクが長いということはより限定された宛先、いわば「狭い」宛先範囲を意味する。そちらが優先される。


AD値は変更できるがデフォルトでは以下のようになっている。(これも抜粋。ciscoだけのデフォルトかは知らない...)


BGP外部 20

EIGRP内部 90

OSPF110

RIP 120

EIGRP外部 170

BGP内部 200


BGPは外部が「近く」、内部が「遠い」が、EIGRPは逆に内部が「近く」、外部が「遠い」

BGPというプロトコルはちょっと用途が異なるから違うのだろうけど、「どうしてBGPは外部の方を近いとするのか?」と聞かれたら説明できない.....


内部だけの比較だと EIGRP < OSPF < RIP となっている。

RIPが一番遠いのはわかるがEIGRPがOSPFより近いのがちょっと意外。EIGRPはCisco独自プロトコルだから近いのか。