EIGRP 不等コストロードバランシング(Unequal Cost Load Balancing)

EIGRPの不等コストロードバランシングについてまとめています。
等コストバランシングは聞きますが、不等コストはあまり聞かないし使わないですよね〜
とはいえ、EIGRPの特徴でもあるのでどのように動作をするか確認してみましょう。

EIGRP 等コストロードバランシング(Equal Cost Load Balancing)

不等コストロードバランシングの話に入る前に、等コストバランシングについて考えてみましょう。EIGRPでは同じコストのルートがあった場合、デフォルトで4つまでルーティングテーブルに登録することができます。それは、下記コマンドが設定されているからです。

maximum-pathsコマンド
(config-router)# maximum-paths 等コストルート数
では、4つより多いルートを受け取ったときはどのような動きをするのでしょうか?面白そうなので検証をしてみましょう。

EIGRP等コストロードバランシング検証環境

EIGRP等コストロードバランシングの検証構成を以下に示します。すべてのインタフェースでEIGRPが有効になっています。

EIGRP等コストロードバランシング検証環境

このときR2はR3,R4,R5,R6,R7の計5台から100.100.100.0/24のルート情報(すべて等コスト)を学習します。デフォルトではルーティングテーブルには4つまでしか等コストルートは格納されないので、このときのR2のルーティングテーブルはどうなっているのでしょうか?

R2ルーティングテーブルとトポロジーテーブル

確かにルーティングテーブルには4つのルートだけが格納されていますね。また、トポロジーテーブルには5つのルートがすべて格納されていることがわかります。トポロジーテーブルからルーティングテーブルにルートを登録するときに、maximum-pathsコマンドが効いて4つのルートに絞っています。
さて、ここでひとつ疑問が。ルーティングテーブルに登録されているルートですが、ネクストホップが小さいものから登録されているように見えませんでしょうか?では、ここでmaximum-pathsコマンドの値を2にして実験してみましょう。実験の結果、ネクストホップが192.168.23.3と192.168.24.4であれば、ネクストホップが小さい順にルーティングテーブルに登録しているのかもしれません。(予想)

maximum-pathsコマンド(最大ルート数:2)
(config-router)# maximum-paths 2

R2ルーティングテーブル(maximum-paths 2)

やはり予想通り、ネクストホップが192.168.23.3と192.168.24.4のルートが格納されましたね。やっぱり、小さい順に格納するのだろうか。。。RFCをよく読めば書いてあるのかもですが、あまり全部読みたくない。。。(そもそも書いてある??)

EIGRP不等コストロードバランシング検証環境

不等コストロードバランシングの検証に入る前に、等コストロードバランシングと不等コストロードバランシングをまとめておきます。

等コスト/不等コストロードバランシング
EIGRP等コストロードバランシング
→同一メトリックのルートをルーティングテーブルに登録し、トラフィックをロードバランスする。
EIGRP不等コストロードバランシング
→メトリックが異なるルートであってもルーティングテーブルに登録し、トラフィックをロードバランスする。
ここではメトリックが異なるルートを作るために、R2のインタフェースのDelay値をデフォルト10μsecから20μsecへ変更します。

R2(Gi2/0)のDLY変更

Delay値を変更することで、今までルーティングテーブルに格納されていた2つのルートが1つに変更されます。R4経由で受け取るルートはR3から受け取るルートに比べてメトリックが大きくなってしまうので、ルーティングテーブルには格納されなくなります。

R2ルーティングテーブルとトポロジーテーブル(Delay変更後)

では、メトリックが異なるルートをルーティングテーブルに格納するにはどのようにすれば良いのでしょうか?その設定は「varianceコマンド」を使用することで実現できます。

varianceコマンド(デフォルト:1)
(config-router)#variance <1-128>
最小のメトリックに対して、何倍のメトリックまでロードバランシング対象ルートとするかを決定します。例えば、最小メトリックが1000でvarianceコマンドがデフォルトの1の場合は、1000の1倍であるメトリック1000のルートのみがルーティングテーブルに格納されます(等コストロードバランシング)。最小メトリックが1000でvarianceコマンドが2の場合は1000の2倍であるメトリック2000までのルートがルーティングテーブルに格納されます。
今回の検証ではvarianceコマンドに2を指定してみましょう。
varianceコマンド(2倍へ変更)
(config-router)#variance 2
確認コマンドは「show ip protocols」コマンドを使います。
show ip protocolsコマンド(抜粋)
R2#show ip protocols
*** IP Routing is NSF aware ***
Routing Protocol is “eigrp 100”
Outgoing update filter list for all interfaces is not set
Incoming update filter list for all interfaces is not set
Default networks flagged in outgoing updates
Default networks accepted from incoming updates
EIGRP-IPv4 Protocol for AS(100)
Metric weight K1=1, K2=0, K3=1, K4=0, K5=0
NSF-aware route hold timer is 240
Router-ID: 192.168.27.2
Topology : 0 (base)
Active Timer: 3 min
Distance: internal 90 external 170
Maximum path: 2
Maximum hopcount 100
Maximum metric variance 2
R2#

R2ルーティングテーブルとトポロジーテーブル(Delay&variance変更後)

最小メトリックが3072なので、2倍の6144までのルートをルーティングテーブルに格納することができます。今回はメトリック3328のルートもルーティングテーブルに格納できていますね。

参考文献

CCO
Unequal Cost Load Balancing

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です