ロード バランシングとは一般に、宛先アドレスから等距離にあるすべてのルータ ネットワーク ポートにトラフィックを分散させるルータの機能を指します。ロード バランシングでは、ネットワーク セグメントの利用効率を高めることにより、実質的なネットワーク帯域幅が増加されます。ロード バランシングには次の 2 種類があります。
等コスト パス:宛先のネットワークへの複数のパスが同じルーティング メトリック値を報告する場合に適用されます。maximum-paths コマンドにより、ルーティング プロトコルで使用できるルートの最大数が決まります。
不等コスト パス:宛先のネットワークへの複数のパスが異なるルーティング メトリック値を報告する場合に適用されます。variance コマンドにより、これらのルートのどのルートがルータによって使用されるのかが決まります。
このドキュメントでは、不等コスト パスのロード バランシングが Enhanced Interior Gateway Routing Protocol(EIGRP)でどのように機能するかについて説明します。
このドキュメントの内容は、IP ルーティング プロトコルおよび EIGRP ルーティング プロトコルについての基本的な理解を前提としています。IP ルーティング プロトコルと EIGRP についての詳細は、次のドキュメントを参照してください。
EIGRP は Cisco IOS® ソフトウェア リリース 9.21 以降でサポートされています。
すべてのルータ(Cisco 2500 シリーズや Cisco 2600 シリーズなど)と、すべてのレイヤ 3 スイッチで EIGRP を設定できます。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。対象のネットワークが実稼働中である場合には、どのようなコマンドについても、その潜在的な影響について確実に理解しておく必要があります。
ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。
どのルーティング プロトコルも、等コスト パスの負荷バランシングをサポートします。さらに、Interior Gateway Routing Protocol(IGRP)と EIGRP では不等コスト パスのロード バランシングもサポートされています。そのメトリックが、宛先までの最短メトリック ルートの n 倍未満であるルートを含めるようにルータに指示するには、variance n コマンドを使用します。変数nは1から128までの値を取ることができます。デフォルトは1です。つまり、等コストロードバランシングです。さらに、トラフィックはメトリックに基づいて、不等コストに比例してリンク間に分散されます。
注:パスがフィージブルサクセサでない場合、パスはロードバランシングに使用されません。詳細は、『Enhanced IGRP』の「到達可能距離、報告距離、およびフィージブル サクセサ」セクションを参照してください。
このセクションでは例を紹介しています。このネットワーク ダイアグラムでは、ネットワーク X に到達する方法が 3 つあります。
E-B-A(メトリック 30)
E-C-A(メトリック 20)
E-D-A(メトリック 45)
ルータEは、メトリックが20のパスE-C-Aを選択します。これは、20が30および45よりも優れているためです。EIGRPにパスE-B-Aを選択するように指示するには、バリアンスを2の乗数で設定します。
router eigrp 1
network x.x.x.x
variance 2
この設定により、最小のメトリックが 40(2×20 = 40)に増加します。EIGRP には、メトリックが 40 以下の、到達可能条件を満たすすべてのルートが含められます。このセクションの設定では、EIGRPは2つのパスを使用してネットワークX、E-C-A、およびE-B-Aに到達します。これは、両方のパスのメトリックが40未満であるためです。EIGRPはパスE-D-Aを使用しません..さらに、隣接ルータ D までの距離が 25 と報告されており、到達可能距離(FD; feasible distance)の 20 を超えています。これは、ルータ D はフィージブル サクセサではないため、たとえバリアンスが 3 に設定されていたとしても E-D-A パスはロード バランシングに選ばれないことを意味します。
注: バリアンスの詳細については、「EIGRP バリアンス コマンドのトラブルシューティング」を参照してください。
EIGRP では、不等コスト パスのロード バランシングだけでなく、トラフィック共有などのインテリジェントなロード バランシングも提供されています。同じ宛先ネットワークに到達するための、コストが異なる複数のルートが存在するときに、トラフィックがルート間でどのように分散されるかを制御するには、traffic-share balanced コマンドを使用します。キーワード balanced を付けると、ルータではそれぞれのルートに関連付けられたメトリックの比率に比例してトラフィックが分散されます。次にデフォルトの設定を示します。
router eigrp 1
network x.x.x.x
variance 2
traffic-share balanced
この例でのトラフィック共有数は次のようになります。
パス E-C-A の場合:30/20 = 3/2 = 1
パス E-B-A の場合:30/30 = 1
比率は整数でないので、端数を切り捨てて一番近い整数にします。この例では、EIGRP は、E-C-A と E-B-A にそれぞれ 1 つずつパケットを送信します。
ここで、E-B間のメトリックが25で、B-A間のメトリックが15であると仮定します。この場合、E-B-Aメトリックは40です。ただし、このパスのコストは(20 * 2)以上で、20は分散です..このパスもロード シェアリングに含めるためには、バリアンスを 3 に変更する必要があります。この場合、トラフィック共有数の比率は次のようになります。
パス E-C-A の場合:40/20 = 2
パス E-B-A の場合:40/40 = 1
この場合、EIGRP は 2 つのパケットを E-C-A に送り、1 つのパケットを E-B-A に送ります。このようにして、EIGRP では不等コスト パスのロード バランシングと、インテリジェントなロード バランシングの両方が提供されます。不等コスト リンク間で EIGRP がトラフィックのロード バランシングを実行する仕組みの詳細は、『Enhanced IGRP』の「ロード バランシング」セクションを参照してください。
同様に、キーワード min を指定して traffic-share コマンドを使用すると、ルーティング テーブルに複数のパスが存在するときでもトラフィックは最小コストのパスのみを通って送信されます。
router eigrp 1
network x.x.x.x
variance 3
traffic-share min across-interfaces
この状況では、EIGRP により、宛先ネットワークへの最適なパスである E-C-A のみを通してパケットが送信されます。これは variance コマンドを使用しない場合のフォワーディング動作と同じです。ただし、traffic-share min コマンドおよび variance コマンドを使用する場合、トラフィックは最小コストのパスのみを通って送信されるにもかかわらず、すべての到達可能なルートがルーティング テーブルにインストールされるので、コンバージェンス時間が短縮されます。
ここまでは、EIGRP で不等コスト パスのロード バランシングを設定する方法について説明しました。IGRP でも、到達可能条件を除いては同じことができます。この条件は IGRP には適用されません。
Cisco Express Forwarding(CEF; シスコ エクスプレス フォワーディング)は、ルータでのロード バランシングに使用できる高度なレイヤ 3 スイッチング テクノロジーです。デフォルトでは、CEF は宛先単位のロード バランシングを使用します。インターフェイスに対して宛先単位のロードバランシングを有効にすると、宛先に到達するためのパスに基づいてパケットが転送されます。1 つの宛先に対して複数のパラレル パスが存在する場合、CEF では同じパス(単一のパス)が選択され、パラレル パスは回避されます。これは、CEF のデフォルト動作の結果です。シリアルやトンネルなどの物理タイプが異なるインターフェイス上でロード シェアリングが同時に行われる場合、CEF では単一のパスが選択されます。選択されるパスはハッシュ アルゴリズムによって決定されます。シリアルやトンネルなどの異なる物理インターフェイスがある場合、CEF ですべてのパラレル パスを利用したトラフィックのロード バランシングを行うためには、パケット単位のロード バランシングを有効にする必要があります。したがって、設定とトポロジ(シリアルまたはトンネル)によっては、デフォルトの CEF ロード バランシング モードではロード シェアリングが正しく機能しない可能性があります。
パケット単位のロード シェアリングには、次のコマンドを有効にします。
configure terminal interface serial 0 ip load-sharing per-packet