RIP はホップ数、OSPF はコストをメトリックに使います。EIGRP のメトリックは、帯域幅・遅延・負荷・信頼性を組み合わせた「複合メトリック」で、どの要素をどれだけ効かせるかを K 値という係数で決めます。この記事では、計算式と既定の K 値を確認し、3台のルータの構成で実際の値を計算して、show ip eigrp topology の表示と照らし合わせます。
- EIGRP の計算式と K 値の既定値(K1=1、K3=1、ほかは 0)
- 帯域幅(BW)と遅延(DLY)がメトリックにどう入るか
- R2 から見た R4 のループバックのメトリックを手で計算する方法
EIGRP のメトリックの計算式
EIGRP(クラシックモード)のメトリックは、次の式で計算します。K1〜K5 が K 値です。
| 計算式 | 256 × { K1×BW + (K2×BW)/(256−LOAD) + K3×DELAY } × { K5/(REL+K4) } |
| K5 が 0 のとき | 最後の { K5/(REL+K4) } は 1 として扱う(0 を掛けるわけではない) |
| 要素 | 中身 | show interfaces の表示 | 既定の K 値 |
|---|---|---|---|
| BW(帯域幅) | 107 ÷ 経路上の最小帯域幅(Kbit/sec) | BW | K1 = 1 |
| LOAD(負荷) | インタフェースの使用率(1〜255) | txload/rxload | K2 = 0 |
| DELAY(遅延) | 経路上の遅延の合計(usec)÷ 10 | DLY | K3 = 1 |
| REL(信頼性) | インタフェースの信頼性(1〜255) | reliability | K4 = 0、K5 = 0 |
既定の K 値を式に入れると、負荷と信頼性の項が消え、次の形になります。
メトリック = 256 × ( 107 ÷ 最小帯域幅 + 遅延の合計 ÷ 10 )
帯域幅は経路上で最も遅いリンクの値を1つだけ使い、遅延は経路上の値をすべて足します。
負荷と信頼性は、通信量や回線の状態でその時々に変わる値です。これをメトリックに入れると、トラフィックの増減でルートが入れ替わってしまうため、既定では使いません。
帯域幅と遅延
帯域幅と遅延は、どちらも show interfaces の BW と DLY で確認できます。
R2
R2# show interfaces fastEthernet 0/0.23 FastEthernet0/0.23 is up, line protocol is up Hardware is DEC21140, address is 0000.0000.2222 (bia ca02.06fb.0000) Internet address is 192.168.23.2/24 MTU 1500 bytes, BW 100000 Kbit/sec, DLY 100 usec,
| 表示 | 意味 |
|---|---|
| BW 100000 Kbit/sec | 帯域幅。100000 Kbit/sec は 100Mbps。bandwidth コマンド(単位は Kbit/sec)で変えられる |
| DLY 100 usec | 遅延。FastEthernet の既定値は 100 usec。delay コマンド(単位は 10 usec)で変えられる |
BW と DLY は実測値ではなく、インタフェースの種類ごとに決まった値です。bandwidth や delay で変えるとメトリックが変わるので、EIGRP の経路を調整するときに使います。
show interfaces の DLY は usec 単位ですが、delay コマンドは 10 usec 単位で指定します。たとえば delay 10 と設定すると DLY は 100 usec になります。
メトリックを計算してみる
次の構成で、R2 から見た R4 のループバック 4.4.4.4/32 のメトリックを計算します。
遅延を足すのは、宛先へ向かう方向の出力インタフェースです。R2 から 4.4.4.4 へ向かうと、R2 の Fa0/0.23、R3 の R4 側インタフェース、R4 の Loopback0 を通ります。ループバックの BW と DLY は次のとおりです。
R4
R4# show interfaces loopback 0 Loopback0 is up, line protocol is up Hardware is Loopback Internet address is 4.4.4.4/32 MTU 1514 bytes, BW 8000000 Kbit/sec, DLY 5000 usec, reliability 255/255, txload 1/255, rxload 1/255
帯域幅の項を計算する
経路上の最小帯域幅は、R2–R3 間と R3–R4 間の 100000 Kbit/sec です(ループバックの 8000000 Kbit/sec より小さい)。
10,000,000 ÷ 100,000 = 100
遅延の項を計算する
経路上の遅延は、R2 の Fa0/0.23 が 100 usec、R3 の R4 側が 100 usec、R4 の Loopback0 が 5000 usec で、合計 5200 usec です。
5200 ÷ 10 = 520
256 を掛けてメトリックにする
2つの項を足して 256 を掛けます。
(100 + 520) × 256 = 158720
show ip eigrp topology:計算した値の確認
R2 のトポロジテーブルを見ると、4.4.4.4/32 の FD(フィージブルディスタンス)が計算どおり 158720 になっています。
R2
R2# show ip eigrp topology
EIGRP-IPv4 Topology Table for AS(100)/ID(2.2.2.2)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
r - reply Status, s - sia Status
P 192.168.23.0/24, 1 successors, FD is 28160
via Connected, FastEthernet0/0.23
P 192.168.34.0/24, 1 successors, FD is 30720
via 192.168.23.3 (30720/28160), FastEthernet0/0.23
P 4.4.4.4/32, 1 successors, FD is 158720
via 192.168.23.3 (158720/156160), FastEthernet0/0.23
P 2.2.2.2/32, 1 successors, FD is 128256
via Connected, Loopback0
P 3.3.3.3/32, 1 successors, FD is 156160
via 192.168.23.3 (156160/128256), FastEthernet0/0.23
(158720/156160) の左が R2 から見たメトリック、右の 156160 は R3 が広告してきた R3 自身のメトリックです。R3 から見ると R2 の Fa0/0.23 を通らないので、遅延は 5100 usec になり、(100 + 510) × 256 = 156160 です。
ほかのルートも同じ式で確かめられます。
| 宛先 | 帯域幅の項 | 遅延の項 | メトリック |
|---|---|---|---|
| 192.168.23.0/24 | 107 ÷ 100000 = 100 | 100 ÷ 10 = 10 | (100+10)×256 = 28160 |
| 192.168.34.0/24 | 100 | (100+100) ÷ 10 = 20 | (100+20)×256 = 30720 |
| 3.3.3.3/32 | 100 | (100+5000) ÷ 10 = 510 | (100+510)×256 = 156160 |
| 2.2.2.2/32 | 107 ÷ 8000000 = 1 | 5000 ÷ 10 = 500 | (1+500)×256 = 128256 |
2.2.2.2/32 は R2 自身のループバックです。107 ÷ 8000000 は 1.25 ですが、計算は整数で行うので小数点以下が切り捨てられて 1 になり、表示の 128256 と一致します。3.3.3.3/32 の遅延 5000 usec は、R3 のループバックの値です。
FD と、R3 から広告された値(AD)の関係は FD と AD の記事で詳しく扱っています。
K 値を変えるとき
K 値は router eigrp の中で metric weights コマンドで変えられます。ただし、K 値はネイバー同士で一致している必要があります。K 値は Hello パケットに載せて交換され、値が違うとネイバーになれません。そのため、K 値を変える場合は、AS 内のすべてのルータで同じ値にそろえます。通常は既定値のまま使い、経路を調整したいときは bandwidth や delay を変えます。
ここで扱ったのはクラシックモードの計算です。名前付きモードでは、高速なリンクも区別できるように 64 ビットのワイドメトリックを使い、係数が変わります。そのため、同じ構成でも表示される値はクラシックモードと異なります。
まとめ
| 項目 | 内容 |
|---|---|
| 既定の K 値 | K1 = 1、K2 = 0、K3 = 1、K4 = 0、K5 = 0(帯域幅と遅延だけを使う) |
| 既定の計算式 | 256 × ( 107 ÷ 最小帯域幅 + 遅延の合計 ÷ 10 ) |
| 帯域幅 | 経路上で最も小さい値を1つ使う(Kbit/sec) |
| 遅延 | 宛先へ向かう方向の出力インタフェースの値をすべて足す(usec) |
| K 値の変更 | metric weights。ネイバー同士で一致していないとネイバーになれない |
コメント