概要
このドキュメントでは、ロードバランシングがルータソフトウェアおよびプラットフォームの機能でどのように機能するかについて説明します。
前提条件
要件
このドキュメントに特有の要件はありません。
使用するコンポーネント
このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
表記法
ドキュメントの表記法の詳細は、「シスコ テクニカル ティップスの表記法」を参照してください。
背景説明
ロードバランシングは、Cisco IOS®ルータソフトウェアの標準機能であり、すべてのルータプラットフォームで使用できます。これはルータでの転送プロセス固有の機能で、ルーティング テーブルに宛先への複数のパスがある場合に自動的に起動されます。これは Routing Information Protocol(RIP)、RIPv2、Enhanced Interior Gateway Routing Protocol(EIGRP)、Open Shortest Path First(OSPF)、Interior Gateway Routing Protocol(IGRP)などの標準のルーティング プロトコルに基づくか、あるいは、固定的に設定されたルートとパケット転送方式で起動されます。これにより、ルータではパケットを転送する際に宛先への複数のルートを使用できます。
ロード バランシング
ルータでは、複数のルーティング プロセス(あるいは RIP、RIPv2、IGRP、EIGRP、OSPF などのルーティング プロトコル)経由での特定のネットワークへの複数のルートのラーニングが行われると、ルーティング テーブル内でのアドミニストレーティブ ディスタンスが最短のルートがインストールされます。詳細については、『Cisco ルータにおけるルートの選択』を参照してください。
ルータは、管理距離が同じで、同じルーティング プロセスを経由してラーニングされた多数の経路の中から、1 つの経路を選択しなければならない場合があります。この場合、ルータはその宛先へのコスト(またはメトリック)が最も低いパスを選択します。各ルーティングプロセスは異なる方法でコストを計算し、ロードバランシングを実現するためにコストを操作する必要がある場合があります。
ルータが宛先までのアドミニストレーティブディスタンスとコストが同じ複数のパスを受信してインストールすると、ロードバランシングが発生する可能性があります。使用されるパスの数は、ルーティング プロトコルによりルーティング テーブルに置かれたエントリの数により制限されます。ほとんどのIPルーティングプロトコルでは、Border Gateway Protocol(BGP;ボーダーゲートウェイプロトコル)を除き、Cisco IOSでは4つのエントリがデフォルトです。1つのエントリがデフォルトです。6 つの異なるパスの設定が最大数になります。
IGRPおよびEIGRPルーティングプロセスも、不等コストロードバランシングをサポートしています。IGRPおよびEIGRPでvarianceコマンドを使用すると、不等コストロードバランシングを実現できます。プロトコルに対して設定された値に基づいてインストール可能なルートの数を判別するには、maximum-paths コマンドを発行します。ルーティング テーブルを 1 エントリに設定すると、ロード バランシングはディセーブルになります。バリアンスについての詳細は、『IGRPおよびEIGRPにおける不等コストパスのロードバランシング(バリアンス)の機能』を参照してください。
等コスト ルートを見つけるには、通常、show ip route コマンドを使用できます。次の例は、複数のルートを持つ特定のサブネットに対するshow ip routeコマンドの出力です。ルーティング記述子ブロックが 2 つあることに注目してください。各ブロックが、1 つの経路を示します。横にアスタリスク(*)がついたブロック エントリがありますが、これは新しいトラフィックに使用されるアクティブなルートを表しています。「新しいトラフィック」という用語は、設定されたスイッチングのタイプに基づいて、宛先への単一のパケットまたはフロー全体に対応します。
アスタリスク(*)の位置は、パケット/フローが提供されるたびに等コストパス間で回転し続けます。
M2515-B#show ip route 10.0.0.0
Routing entry for 10.0.0.0/8
Known via "rip", distance 120, metric 1
Redistributing via rip
Advertised by rip (self originated)
Last update from 192.168.75.7 on Serial1, 00:00:00 ago
Routing Descriptor Blocks:
* 192.168.57.7, from 192.168.57.7, 00:00:18 ago, via Serial0
Route metric is 1, traffic share count is 1
192.168.75.7, from 192.168.75.7, 00:00:00 ago, via Serial1
Route metric is 1, traffic share count is 1
宛先別ロード バランシングとパケット別ロード バランシング
ロードバランシングは、宛先単位またはパケット単位で動作するように設定できます。宛先単位のロードバランシングとは、ルータが宛先アドレスに基づいてパケットを分散することを意味します。同じネットワークへのパスが 2 つあるとすると、このネットワークの宛先 1 へ宛てたすべてのパケットは 1 番めのパスを通り、このネットワークの宛先 2 に宛てたすべてのパケットは 2 番めのパスを通るというように配信が行われます。この場合、パケットの順序は確保されますが、リンクの使用率が不均等になる可能性があります。あるホストがトラフィックの大多数を受信する場合、すべてのパケットが 1 つのリンクを使用するため、他のリンクの帯域幅は未使用のままになります。宛先アドレスの数が増えるほど、リンクの使用率が均等になります。より均等に使用されるリンクを実現するには、Cisco IOSソフトウェアを使用して、1つのパスしか存在しない場合のように、すべての宛先ネットワークではなく、すべての宛先アドレスに対してルートキャッシュエントリを構築します。したがって、同じ宛先ネットワーク上の異なるホストのトラフィックが異なるパスを使用する可能性があります。このアプローチの欠点は、何千もの宛先ホスト、メモリ、および処理要件のトラフィックを伝送するコアバックボーンルータがキャッシュを維持することが課題になることです。
パケット単位のロードバランシングとは、ルータがdestination1に対して1つのパケットを最初のパス経由で送信し、(同じ)destination1に対して2番目のパケットを2番目のパス経由で送信し、以下同様に送信することを意味します。パケット単位のロード バランシングでは、すべてのリンクにわたるロード バランシングが確実に行われます。ただし、ネットワーク内に遅延差が存在する可能性があるため、パケットが宛先に順不同で到着する可能性があります。Cisco IOS ソフトウェアでは、リリース 11.1CC を除き、ルート キャッシュ情報に発信インターフェイスが含まれるため、パケット別ロード バランシングではルート キャッシュによる転送アクセラレーションがディセーブルにされます。パケット単位のロードバランシングでは、転送プロセスがルートテーブルを検索し、最も使用率の低いインターフェイスを選択するときに、各パケットの発信インターフェイスを決定します。これにより、リンクの均等な使用率が保証されますが、プロセッサの負荷が高いタスクであり、全体的な転送パフォーマンスに影響を与えます。この形式のパケット別ロード バランシングは、比較的高速なインターフェイスには不適切です。
宛先単位またはパケット単位のロードバランシングは、IPパケットに使用されるスイッチング方式のタイプによって異なります。ほとんどのシスコ ルータでは、デフォルトとして、ファースト スイッチングがインターフェイスに対してイネーブルされています。これは、宛先単位のロードバランシングを行うデマンドキャッシング方式です。パケット別ロード バランシングを設定するには、プロセス スイッチングをイネーブル(あるいはファースト スイッチングをディセーブル)にして、次のコマンドを使用します。
Router#configure terminal
Router(config)#interface Ethernet 0
Router(config-if)#no ip route-cache
Router(config-if)#^Z
これで、ルータの CPU が個々のパケットを調べて、その宛先のためのルーティング テーブル内のルートの数でロード バランシングを行います。この時 CPU がすべての処理を行うため、これによりローエンドのルータはクラッシュする可能性があります。ファースト スイッチングを再びイネーブルにするには、次のコマンドを使用します。
Router#configure terminal
Router(config)#interface Ethernet 0
Router(config-if)#ip route-cache
Router(config-if)#^Z
Cisco Express Forwarding(CEF)のような新しいスイッチング方式では、パケット別と宛先別のロード バランシングがさらに高速で実行できます。ただし、CEFエントリと隣接関係を維持するための追加のリソースがあることを意味します。
CEFを使用する場合は、ロードバランシング、CEF、または使用されるルーティングプロトコルは誰か、と尋ねることができます。CEF の動作方式では、CEF は EIGRP のようなルーティング プロトコルが作成しているルーティング テーブルを基にしてパケットのスイッチングを行っています。つまり、ルーティング プロトコル テーブルが計算されていれば、CEF によりロード バランシングが行われるということになります。
CEF のロード バランシングについての詳細は、『Cisco Express Forwarding(CEF)を使用したパラレル リンクでのロード バランシングに関するトラブルシューティング』および『CEF によるロード バランシング』を参照してください。
次のドキュメントでは、さまざまなプロトコルが最適なパスを選択し、特定の宛先へのコストを計算し、適用時にロードバランシングを実行する方法について詳しく説明します。
関連情報