OSPF は、メトリックが同じ経路どうしでしかロードバランスできません。EIGRP は variance コマンドを使うと、メトリックが違う経路にもトラフィックを振り分けられます(不等コストロードバランシング)。この記事では、フィージブルサクセサ の記事と同じ構成と設定を使い、R2 から 4.4.4.4/32 への経路で動きを確かめます。
- 不等コストロードバランシングの対象になる経路の条件
- variance の値の決め方と設定
- ルーティングテーブルと traffic share count での確認
検証構成
R2 から R4 のループバック 4.4.4.4/32 へは、R3、R5、R6 を経由する3つの経路があります。図の数字は、各リンクのメトリックです。
R2 から見た各経路の距離と、隣のルータが広告してくる距離(AD)は次のとおりです。
| 経由 | R2 からの距離 | AD | 役割 |
|---|---|---|---|
| R3 | 768(256 + 512) | 512(256 + 256) | サクセサ(距離が最小。FD=768) |
| R5 | 2560(2048 + 512) | 512(256 + 256) | フィージブルサクセサ(AD 512 < FD 768) |
| R6 | 1280(512 + 768) | 768(512 + 256) | どちらでもない(AD 768 が FD 768 より小さくない) |
フィージブルサクセサの条件(AD がサクセサの FD より小さいこと)は、ループしない経路を見分けるためのものです。詳しくは フィージブルサクセサ と FD と AD の記事を参照してください。
既定の状態を確認する
既定では、R2 のルーティングテーブルには、サクセサである R3 経由の経路だけが入っています。
R2
R2# show ip route eigrp
4.0.0.0/32 is subnetted, 1 subnets
D 4.4.4.4 [90/768] via 192.168.23.3, 00:00:08, FastEthernet0/0.23
variance の考え方
variance には、サクセサの FD の何倍までの距離の経路をロードバランスに使うかを、整数(1〜128)で指定します。既定値は 1 で、同じメトリックの経路だけを使います。使われる経路は、次の2つを両方満たすものです。
- フィージブルサクセサである(サクセサ自身も含む)
- 距離が「サクセサの FD × variance」より小さい
R5 経由の距離 2560 を R3 経由の 768 で割ると約 3.33 です。variance は整数なので、切り上げて 4 にすると、768 × 4 = 3072 より小さい 2560 の経路も対象になります。variance を 3 にすると、768 × 3 = 2304 で、2560 は入りません。
R6 経由の経路(1280)は 3072 より小さいですが、フィージブルサクセサではないので使われません。variance をいくら大きくしても、ループのおそれがある経路は使わないしくみです。
variance を設定する
R2
R2(config)# router eigrp 100
R2(config-router)# variance 4
R2 のルーティングテーブルに、R3 経由に加えて、フィージブルサクセサの R5 経由の経路も入りました。
R2
R2# show ip route eigrp
4.0.0.0/32 is subnetted, 1 subnets
D 4.4.4.4 [90/2560] via 192.168.25.5, 00:00:33, FastEthernet0/0.25
[90/768] via 192.168.23.3, 00:00:33, FastEthernet0/0.23
振り分けの比率を確認する
メトリックが違う経路に同じ量を流すと、遅い経路に負担がかかります。EIGRP は既定でメトリックに応じた比率で振り分けます。show ip route 4.4.4.4 で経路の詳細を見ると、比率が traffic share count に表示されています。
R2
R2# show ip route 4.4.4.4
Routing entry for 4.4.4.4/32
Known via "eigrp 100", distance 90, metric 768, type internal
Redistributing via eigrp 100
Last update from 192.168.25.5 on FastEthernet0/0.25, 00:03:26 ago
Routing Descriptor Blocks:
192.168.25.5, from 192.168.25.5, 00:03:26 ago, via FastEthernet0/0.25
Route metric is 2560, traffic share count is 3
Total delay is 100 microseconds, minimum bandwidth is 10000 Kbit
Reliability 255/255, minimum MTU 1500 bytes
Loading 1/255, Hops 2
* 192.168.23.3, from 192.168.23.3, 00:03:26 ago, via FastEthernet0/0.23
Route metric is 768, traffic share count is 10
Total delay is 30 microseconds, minimum bandwidth is 10000 Kbit
Reliability 255/255, minimum MTU 1500 bytes
Loading 1/255, Hops 2
| 表示 | 意味 |
|---|---|
| traffic share count is 10 | R3 経由(メトリック 768)の配分 |
| traffic share count is 3 | R5 経由(メトリック 2560)の配分 |
| * | 次に使われる経路の印 |
R3 と R5 の配分は 10:3 で、メトリックの比(2560 ÷ 768 ≒ 3.33)の逆になっています。メトリックが小さい(よい)経路に、より多く流れます。
この構成では、メトリックが遅延だけで決まっています。R3 経由は Total delay is 30 microseconds で 3 × 256 = 768、R5 経由は 100 マイクロ秒で 10 × 256 = 2560 です(遅延は 10 マイクロ秒単位で計算します)。
- 使う経路の数の上限は
maximum-pathsで決まります。variance で対象になる経路が多いときは、この値も確認します。 - メトリックに応じて振り分ける動作は
traffic-share balanced(既定)によるものです。 - この検証を IOS 15.2(4)M2 で行った際、フィージブルサクセサではない R6 経由の経路もルーティングテーブルに入る動作が見られました。IOS の不具合(CSCuc99750)と考えられます。同じ動作になる場合は、IOS のバージョンを確認してください。
まとめ
| 項目 | 内容 |
|---|---|
| コマンド | variance <倍率>(router eigrp の中。既定値 1) |
| 対象になる経路 | フィージブルサクセサで、距離が「サクセサの FD × variance」より小さいもの |
| 値の決め方 | 使いたい経路の距離 ÷ サクセサの FD を切り上げた整数(今回は 2560 ÷ 768 ≒ 3.33 → 4) |
| 振り分けの比率 | メトリックに応じた比率(traffic share count で確認。今回は 10:3) |
コメント