【EIGRP】メトリック計算(K値)

RIP はホップ数、OSPF はコストをメトリックに使います。EIGRP のメトリックは、帯域幅・遅延・負荷・信頼性を組み合わせた「複合メトリック」で、どの要素をどれだけ効かせるかを K 値という係数で決めます。この記事では、計算式と既定の K 値を確認し、3台のルータの構成で実際の値を計算して、show ip eigrp topology の表示と照らし合わせます。

この記事でわかること
  1. EIGRP の計算式と K 値の既定値(K1=1、K3=1、ほかは 0)
  2. 帯域幅(BW)と遅延(DLY)がメトリックにどう入るか
  3. 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)BWK1 = 1
LOAD(負荷)インタフェースの使用率(1〜255)txload/rxloadK2 = 0
DELAY(遅延)経路上の遅延の合計(usec)÷ 10DLYK3 = 1
REL(信頼性)インタフェースの信頼性(1〜255)reliabilityK4 = 0、K5 = 0

既定の K 値を式に入れると、負荷と信頼性の項が消え、次の形になります。

既定の 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 の経路を調整するときに使います。

delay コマンドの単位

show interfaces の DLY は usec 単位ですが、delay コマンドは 10 usec 単位で指定します。たとえば delay 10 と設定すると DLY は 100 usec になります。

メトリックを計算してみる

次の構成で、R2 から見た R4 のループバック 4.4.4.4/32 のメトリックを計算します。

Lo0 4.4.4.4/32 R2R3R4 .2.3 .3.4 192.168.23.0/24 192.168.34.0/24 BW 100000 Kbit/secDLY 100 usec BW 100000 Kbit/secDLY 100 usec BW 8000000 Kbit/secDLY 5000 usec R2 Fa0/0.23 R3 の R4 側 R4 Loopback0 R2 から 4.4.4.4 へ向かう方向
図1 検証構成と、R2 から 4.4.4.4 へ向かう方向の出力インタフェースの BW・DLY

遅延を足すのは、宛先へ向かう方向の出力インタフェースです。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

帯域幅の項最小帯域幅 100000 Kbit/sec10,000,000 ÷ 100,000 = 100 遅延の項100 + 100 + 5000 = 5200 usec5200 ÷ 10 = 520 + (100 + 520) × 256= 158720R2 から見た 4.4.4.4/32 の FD
図2 R2 から見た 4.4.4.4/32 のメトリックの計算

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/24107 ÷ 100000 = 100100 ÷ 10 = 10(100+10)×256 = 28160
192.168.34.0/24100(100+100) ÷ 10 = 20(100+20)×256 = 30720
3.3.3.3/32100(100+5000) ÷ 10 = 510(100+510)×256 = 156160
2.2.2.2/32107 ÷ 8000000 = 15000 ÷ 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。ネイバー同士で一致していないとネイバーになれない

コメント