(54)【発明の名称】タイブレーキング機構へのフィードバックとしてのリンク利用によるマルチプロトコルラベルスイッチング(MPLS)のための自動化トラフィックエンジニアリング
(58)【調査した分野】(Int.Cl.,DB名)
改良された負荷分散のためのマルチプロトコルラベルスイッチング(MPLS)ネットワークのノードにおいて実施される方法であって、前記ノードが前記MPLSネットワークにおける複数のノードの1つであり、その各々が共通アルゴリズムタイブレーキングプロセスを実施して最小コスト最短経路ツリーを生成し、前記ノードが前記MPLSネットワークのトポロジーを記憶するためのトポロジーデータベースを含み、前記MPLSネットワークの前記トポロジーが複数のノード及び前記ノード間のリンクを含み、前記方法が、
前記トポロジーデータベースに記憶された前記MPLSネットワークの前記トポロジーに最短経路検索アルゴリズムを実行することによって前記MPLSネットワークにおける各MPLSノード対間で第1の1つ以上の最短経路のセットを決定するステップと、
前記共通アルゴリズムタイブレーキングプロセスを適用することによって、各MPLSノード対について前記第1の1つ以上の最短経路セットから少なくとも第1の最短経路を選択するステップと、
各リンクを通過する選択された最短経路の総数に基づいて前記MPLSネットワークの各リンクについてリンク利用値を計算するステップと、
各最短経路に対応するリンク利用値に基づいて第2の1つ以上の最短経路のセットにおける各最短経路について経路利用値を発生するステップと、
前記経路利用値に基づいて、前記トポロジーデータベースに記憶された前記MPLSネットワークの前記トポロジーに前記最短経路検索アルゴリズムを実行することによって前記MPLSネットワークにおける各MPLSノード対間で前記第2の1つ以上の最短経路のセットを決定するステップと、
前記経路利用値に基づいて前記第2の1つ以上の最短経路のセットから第2の最短経路を選択するステップであって、前記第2の1つ以上の最短経路のセットにおいて等しい経路利用値を有する多数の最短経路が存在する場合に前記選択が前記共通アルゴリズムタイブレーキングプロセスを利用する、ステップと、
各MPLSノード対について少なくとも前記第1の最短経路及び前記第2の最短経路をラベル情報データベースに記憶するステップであって、前記ラベル情報データベースが、前記MPLSノードに入来するトラフィックをどこに転送するかを指示する、ステップと、
を含み、これによって、経路利用を考慮した前記第2の最短経路の前記選択が、前記MPLSネットワーク全体の負荷分散の標準偏差を最小に抑える、方法。
マルチプロトコルラベルスイッチング(MPLS)ネットワークにおける改良された負荷分散のためのネットワーク要素であって、前記MPLSネットワークが前記ネットワーク要素を含み、前記ネットワーク要素が前記MPLSネットワークにおける複数のノードの1つであり、前記MPLSネットワークのトポロジーが複数のノード及び前記ノード間のリンクを含み、前記ネットワーク要素が、
前記MPLSネットワークにおける各リンクについてリンク情報を記憶するためのトポロジーデータベースと、
前記ネットワーク要素の各ポートについてラベル情報を記憶するためのラベル情報データベースであって、前記ネットワーク要素に入来する各転送等価クラス(FEC)をどこに転送するかを指示する、ラベル情報データベースと、
前記トポロジーデータベース及び前記ラベル情報データベースに結合された制御プロセッサであって、前記制御プロセッサがデータトラフィックを処理するように構成され、前記制御プロセッサが、
ラベルスイッチ経路(LSP)を介してデータトラフィックを転送するように構成されたMPLS管理モジュールと、
前記MPLSネットワークにおいてLSPを確立するように構成されたラベル配布プロトコル(LDP)モジュールと、
前記トポロジーデータベースに最短経路検索アルゴリズムを実行することによって前記MPLSネットワークにおける各MPLSノード対間で少なくとも1つの最短経路を決定するように構成された最短経路検索モジュールであって、複数の等コスト最短経路を有する前記MPLSノード対の各々について、前記等コスト最短経路を負荷分散モジュールに送信するように構成された、最短経路検索モジュールと、
前記複数の等コスト最短経路における各対に関連付けられたリンク利用値から導出された経路利用値に基づいて前記複数の等コスト最短経路の各々をランク付けするように構成されたソートモジュールと、
受信した前記複数の等コスト最短経路から、前記MPLSノード対間でデータトラフィック負荷を共有するために用いるそのMPLSノード対についての前記複数の等コスト最短経路の第1のサブセットを選択するように、更に、前記経路利用値に基づいて、そのMPLSノード対についての前記第1のサブセットとデータトラフィック負荷を共有するために用いるそのMPLSノード対についての前記複数の等コスト最短経路から第2のサブセットを選択するように構成された前記負荷分散モジュールと、
を含む制御プロセッサと、を含み、
これによって、前記経路利用値を考慮した前記第2のサブセットの前記選択が、前記MPLSネットワーク全体の負荷分散の標準偏差を最小に抑える、ネットワーク要素。
前記ソートモジュールが、前記リンク利用値を辞書編集方式でソートして前記複数の等コスト最短経路のランク付けを生成するように更に構成されている、請求項9に記載のネットワーク要素。
前記最短経路検索モジュールが、前記トポロジーにおける各リンクについて前記リンク利用値を計算するように更に構成されている、請求項9に記載のネットワーク要素。
前記制御プロセッサが、前記MPLSネットワーク内のノード対間で各選択された最短経路を実施するためにラベルスイッチ経路(LSP)を発生するように更に構成されている、請求項9に記載のネットワーク要素。
前記負荷分散モジュールが、最低負荷を有する前記等コスト最短経路に共通アルゴリズムタイブレーキングプロセスを適用することによって最高及び最低のアイテムを選択することで、前記複数の等コスト最短経路の各々から前記第2のサブセットを選択するように更に構成されている、請求項9に記載のネットワーク要素。
前記ソートモジュール及び前記負荷分散モジュールが、前記第1のサブセット及び第2のサブセットと負荷分散を共有するために追加のサブセットを繰り返し選択するように更に構成されている、請求項9に記載のネットワーク要素。
前記LDPモジュールが、FEC及びトポロジーインデックスの各組み合わせについてラベルマッピングメッセージを各LDPピアに送信するように更に構成されている、請求項17に記載のネットワーク要素。
【発明を実施するための形態】
【0013】
以下の記載において、多数の具体的な詳細を明記する。しかしながら、本発明の実施形態はこれらの具体的な詳細がなくても実施可能であることは理解されよう。他の例において、周知の回路、構造、及び技法は、本記載の理解を曖昧にしないために詳細には示さない。しかしながら、本発明はかかる具体的な詳細がなくても実施可能であることは当業者には認められよう。当業者は、ここに包含される記載によって、必要以上の実験作業を行うことなく適切な機能性を実施することができる。
【0014】
実施形態は、プロセスが常に単一経路に分解するプロパティを含む特定のプロパティを用いた基本的なタイブレーキングプロセスを含み、演算の順序又は方向には依存せず、考慮した経路のいずれの部分についてのタイも経路全体を考慮する必要なく分解可能であるようなローカリティプロパティを有する。
【0015】
図2の例示的な実施形態を参照して、フロー図の動作を説明する。しかしながら、フロー図の動作は
図2を参照して考察するもの以外の本発明の実施形態によって実行可能であり、
図2を参照して考察する実施形態は
図3及び
図4のフロー図を参照して考察するものとは異なる動作を実行可能であることは理解されよう。
図1及び
図5〜7は、
図2、
図3、及び
図4の原理及び構造の実施を例示する一例としてのトポロジー及び状況を与える。
【0016】
図に示す技法は、1つ以上の電子デバイス(例えばエンドステーション、ネットワーク要素等)に記憶され実行されるコード及びデータを用いて実施可能である。かかる電子デバイスは、一時的でない(non-transitory)機械読み取り可能又はコンピュータ読み取り可能記憶媒体(例えば磁気ディスク、光ディスク、ランダムアクセスメモリ、読み出し専用メモリ、フラッシュメモリデバイス、及び相変化メモリ)等の一時的でない機械読み取り可能又はコンピュータ読み取り可能媒体を用いて、コード及びデータを(内部で及び/又はネットワークを介して他の電子デバイスによって)記憶し伝達する。更に、かかる電子デバイスは典型的に、1つ以上の記憶デバイス、ユーザ入/出力デバイス(例えばキーボード、タッチスクリーン、及び/又はディスプレイ)、及びネットワーク接続等の1つ以上の他のコンポーネントに結合された1つ以上のプロセッサセットを含む。プロセッサセット及び他のコンポーネントの結合は典型的に1つ以上のバス及びブリッジ(バスコントローラとも称する)を介して行う。記憶デバイスは、1つ以上の一時的でない機械読み取り可能又はコンピュータ読み取り可能記憶媒体及び一時的でない機械読み取り可能又はコンピュータ読み取り可能通信媒体を表す。このため、所与の電子デバイスの記憶デバイスは典型的に、その電子デバイスの1つ以上のプロセッサセット上で実行するためのコード及び/又はデータを記憶する。むろん、本発明の一実施形態の1つ以上の部分は、ソフトウェア、ファームウェア、及び/又はハードウェアの異なる組み合わせを用いても実施可能である。
【0017】
本明細書において用いる場合、ネットワーク要素(例えばルータ、スイッチ、ブリッジ等)とは、ハードウェア及びソフトウェアを含む1台のネットワーキング機器であり、ネットワーク上の他の機器(例えば他のネットワーク要素、エンドステーション等)と通信的に相互接続する。いくつかのネットワーク要素は「多数サービスネットワーク要素」であり、多数のネットワーキング機能(例えばルーティング、ブリッジング、スイッチング、レイヤ2アグリゲーション、セッションボーダー制御、マルチキャスティング、及び/又は加入者管理)のためのサポートを提供し、及び/又は多数のアプリケーションサービス(例えばデータ、音声、及び映像)のためのサポートを提供する。加入者エンドステーション(例えばサーバ、ワークステーション、ラップトップ、パームトップ、携帯電話、スマートフォン、マルチメディア電話、VOIP(Voice Over Internet Protocol)電話、携帯型メディアプレーヤ、GPSユニット、ゲームシステム、セットトップボックス(STB)等)は、インターネット上で提供されるコンテンツ/サービス及び/又はインターネットにオーバーレイされた仮想プライベートネットワーク(VPN)上で提供されるコンテンツ/サービスにアクセスする。コンテンツ及び/又はサービスは典型的に、サービス又はコンテンツプロバイダーに属する1つ以上のエンドステーション(例えばサーバエンドステーション)、又はピアツーピアサービスに参加するエンドステーションによって提供され、パブリックウェブページ(フリーコンテンツ、商店、検索サービス等)、プライベートウェブページ(例えば電子メールサービスを提供するユーザネーム/パスワードアクセスウェブページ等)、VPN、IPTV等を介した企業ネットワークを含むことができる。典型的に、加入者エンドステーションは、他のエンドステーション(例えばサーバエンドステーション)に(例えば他のエッジネットワーク要素に対する1つ以上のコアネットワーク要素を介して)結合されたエッジネットワーク要素に対するアクセスネットワークに(有線で又は無線で)(例えばカスタマ構内機器を介して)結合されている。
【0018】
本発明の実施形態は、従来技術の欠点を回避するためのシステム、ネットワーク、及び方法を提供する。従来技術の欠点は、非対称トポロジーにおける低い性能、保守運用管理(OAM)プロトコルに対するサポート不足、パケットごとの調査のための高リソース要件、合理的なネットワーク利用を達成するための高レベルの拡張、多数のメトリックセット発生及び保守、並びに状態の小さい変更を行うために必要な著しいリソースを含む。
【0019】
本発明の実施形態は、これらの欠点を克服するために、ネットワークのためのトポロジーデータベースの横断数を最小限に抑えながら動的トラフィックエンジニアリングを可能とする。負荷分散方法は、動的トラフィックエンジニアリングを組み込み、転送プレーンにおいて多数の等コスト経路セットのインスタンス化を利用し、これは等コストツリーセットに集約することができ、これによって、次ホップセット発生のためのタイブレーキングへの経路発生プロセス因子の全ての以前の繰り返しから、経路の各リンクを通過する最短経路の累積数が得られる。いったんノードがタイブレーキングプロセスを用いて初期経路選択を行い、トポロジーデータベースにおける全ノード対を処理すると、各リンクを通過する最短経路数が決定され、これをリンク利用値と称する。更に別の経路セットを発生するためのデータベースのそれ以降の各パスでは、考慮対象の各経路における各リンクについて辞書編集方式でソートしたリンク利用値のリストにランク付けすることによって、いずれかの2つのノード対間の最短経路セットを絞り込む。ラインク付けしたリストが一意の最低利用経路を有する場合、その経路を選択する。ランク付けしたリストが一意の最低利用経路を有しない場合、最低リンク利用の候補の最短経路サブセットに基本的なタイブレーキングプロセスを適用する。
【0020】
負荷分散方法及びシステムにおいては、ネットワークでのリンクの負荷を均一にするために、以前の繰り返しのタイブレーキングを考慮に入れて、経路発生の各繰り返しにおいてネットワーク負荷のモデルを計算する。改良したアルゴリズムでは、第1の繰り返しの後の各繰り返しにおいて負荷の少ないリンクの選択を本質的に優先する。
【0021】
負荷分散プロセスは、明白な特性を有するタイブレーキングプロセスを利用し、いずれかの2点間の経路について、経路のいずれのサブセットのコンピューティングの方向、コンピューティング又は検査の順序とは無関係に、単一の対称的な経路に分解する。このプロパティを、「最短経路のいずれの部分も最短経路である」と記載する。又は、換言すると、最短経路のいずれかの部分に沿ってタイが発生すると、それらのノードは同一の選択の経路のサブセットについてタイを分解し、その結果として最小コストの最短経路ツリーが得られる。本明細書ではこれを「共通アルゴリズムタイブレーキング」プロセスと称する。
【0022】
負荷分散プロセスにおいては、共通アルゴリズムタイブレーキングプロセスを用いたトポロジーデータベースの初期パスの結果、第1のツリーセットが発生する。これは、いずれのリンク上でも負荷が記録されていないためであり、従って、802.1aqにおける等コストの定義が最低メトリックであり最小ホップ数である場合に全ての等コスト経路は利用の候補である。初期ステップでは、ネットワークにおける各MPLSノード対間の最短経路を決定する必要があり、いずれかの2つのMPLSノード間で2つ以上の最短経路が発見されると、ネットワークにおける各MPLSノード対間で一意の経路選択を発生するため、及び1つ以上の等コスト転送ツリーセットを発生するため、共通アルゴリズムタイブレーキングプロセスをタイブレーキングに用いる。これをIEEE規格802.1aqにおいては「ECTセット」と称する。
【0023】
負荷分散プロセスは、等コスト経路にランクを付け、ランクの低い及び高い経路又は「ブックエンド」経路を決定することができ、双方の経路は必須のプロパティセットを呈する。このため、この負荷分散プロセスは、データベースの単一の「全対」パスから2つ以上の経路を選択することができる。また、負荷分散プロセスは、以前のタイブレーキング手順によって実際に選択された経路に基づいて、各リンクを横断する最短経路数を計算する。この値は「リンク利用」値と称され、以降の計算において用いることができる。リンク利用値は、最短経路がリンクを通過するMPLSノード対の総数である。他の実施形態では、トポロジーデータベースにおける追加情報を考慮してリンク利用の代わりに用いられる更に洗練された可能性が存在する。
【0024】
データベースを介して更に経路又はツリーセットを発生するための以降のパスでは、各経路について辞書編集方式でソートしたリンク利用値又は単に経路における各リンクの利用の和を含むことができる経路利用値を発生し、次いで経路利用値に基づいて結果として得られた経路にランクを付けることによって、いずれかの2つのMPLSノード間の最短経路セットを最初にランク付けする。また、2つ以上のランク付け方式も用いることができる。これは、等コスト経路又はツリーセットを発生している際に2つ以上の経路を選択した場合、同一の経路を選択する回数を最小限に抑えることが有利であるからである。多様性を実証する多数のリンクのランク付けを用いることで、多数の経路を選択するために必要な繰り返し数を最小限に抑えることができる。ランク付けプロセスによって単一の最低利用経路が発生すると、更に処理を行うことなくこれを選択することができる。2つ以上のランク付け(例えば最低ランク付け及び最高ランク付け)を考慮する場合、最低及び最高のランク付け経路の双方として最低利用経路を選択する。2つ以上の等しい最低利用経路が存在する場合、共通アルゴリズムタイブレーキングプロセスを最低利用経路セットに適用して選択を行う。一実施形態では、このステップから2つ以上のランク付けを選択することも可能である。2つ以上の負荷ランク付け機構を利用する場合(例えばランク付けとして負荷の和及び辞書編集方式ソート)、タイが発生した場合に各々から多数のランク付けを抽出することができる。
【0025】
トポロジーデータベースを介した追加のパス又は繰り返しを実行することができ、各繰り返しにおいて、経路の各リンクに割り当てたリンク利用値は、トポロジーデータベースを介した全ての以前のパスの間に選択されたリンクを通過する最短経路の累積測定値又は指示である。
【0026】
図1は、例示的なネットワークトポロジーの一実施形態の図である。例示的なネットワークトポロジーは6つのノードを含み、これらは対応するノード識別子1〜6を有する。ネットワークトポロジーに経路対は決定されていない。代表的な共通アルゴリズムタイブレーキングプロセスを利用し、ノード識別子を用いて辞書編集方式で経路をランク付けする。ノード1とノード4との間で等コストの経路セットを調べると、以下のようなランク付けされた経路識別子セットが発生する(経路識別子は辞書編集方式でソートされており、ノード識別子が経過リストとして現れないようになっていることに注意すること)。
【0027】
1−2−3−4
1−2−4−6
1−3−4−5
1−4−5−6
【0028】
このタイブレーキングプロセスの最初の適用では、これらのノード間の低いランク付け及び高いランク付け経路として1−2−3−4及び1−4−5−6が選択される。この例では簡略化のため、全ての6つのノードからの最短経路ツリーではなくネットワークのための経路総数を決定する際にノード対1及び4のみを考慮する。この例では次いで、選択したリンク経路におけるリンクの各々に経路対総数1を割り当てる。トポロジーデータベースを介した次のパスでは、負荷分散プロセスは、経路IDの各々と関連付けて以下の辞書編集方式のリンク負荷印加のソートを行う。
【0029】
経路1−2−4−6について負荷0、1、1
経路1−3−4−5について負荷0、1、1
経路1−2−3−4について負荷1、1、1
経路1−4−5−6について負荷1、1、1
【0030】
辞書編集方式のリンク負荷ソートの結果として、経路1−2−4−6及び1−3−4−5の各々は0−1−1であり、これらについてタイが生じる。同様に、リンク負荷の和は以下の通りである。
【0031】
経路1−2−4−6について負荷2
経路1−3−4−5について負荷2
経路1−2−3−4について負荷3
経路1−4−5−6について負荷3
【0032】
双方のランク付けスタイルの結果、辞書編集方式でソートした経路IDの二次的タイブレーカーが用いられる。双方の場合、この二次的タイブレーカーから、低経路(1−2−4−6)が選択される。同様に、最低負荷経路セットの高ランク付け経路IDとして1−3−4−5を選択することができる。一実施形態においては、低−高選択を用いる場合、2つの経路を選択する。これらの経路は同一であるか、又は著しい重複を有する可能性がある。例えば、経路1−3−4−5が上のランク付けリストに存在しない場合、経路1−2−4−6が最低コストの低及び高ランク付け経路の双方としての資格を得る。他の実施形態では、低経路選択に対する最初の入力は、辞書編集方式の負荷ソートに基づいたランク付けから行うことができ、高経路選択に対する主要入力は、負荷の和に基づいたランク付けから行うことができる。
【0033】
この例は1つの経路対を調べることからリンク利用を考慮するだけであるのに対し、データベースの単一のパスの後、潜在的なトラフィック分散の包括的なビューが存在し、以降のパスのタイブレーキングによって本質的に最大が回避され、従って負荷はネットワーク全体で更に均等に分散されることは当業者に理解されよう。負荷分散の変化の程度は、効果が累積的と見なされる新しい各経路セットごとに比例して低減する。
【0034】
プロセスの繰り返しごとに選択される経路数及びネットワークを利用するため構成される累積経路数は、アプリオリの転送状態対必要な演算パワー分析の関数とすることができる。最低コストの最低及び最高ランク付け経路の双方を選択すると、リンク利用の標準偏差における所与の向上に必要なコンピューティングパワー量が最小限に抑えられるが、結果として更に転送状態が必要である。これは、繰り返しごとに2つの等コストツリーセットが発生されるからである。各繰り返しから単一経路順列を選択するには更にコンピューティングパワーが必要であるが、利用の標準偏差において所与の低減に必要な転送データベース状態量が低減する。これは、単一の最低利用候補から2つの経路を選択しなければならない回数が最小限に抑えられるからである。発生した全経路数は、ネットワーク効率に対して均衡化したネットワーク要素状態及び演算パワー考慮点の双方の組み合わせに基づいて決定される。経路負荷にランク付けするために多数の方式を利用することで、データベースの所与のパスからもっと多くの経路を選択することができる。これは、所与の数の経路選択について同一の経路を2回以上選択する確率を下げるからである。上述の例では、ネットワーク全体に適用される一貫した結果を生じる2つの経路負荷ランク付け方法について記載した。他の実施形態では、追加の又は代替的なランク付け方法を利用することも可能である。例えば、ローカリティプロパティ(共通アルゴリズムタイブレーキングプロセスと組み合わせた場合に最低負荷経路のいずれかの部分が最低負荷経路でもある)及びかかるランク付けの組み合わせも有する他の負荷ランク付け機構を利用することができる。
【0035】
更に、上述の例では、リンクを通過した最短経路総数によってリンク利用を表す。リンク利用を表すために、もっと詳細かつ高精度で多数の変形を利用することができる。ラベル情報及びトポロジーデータベース内には充分な情報があるので、ネットワーク内の各ノードが、特定の最短経路を用いるサービスインスタンス数を決定することができる。リンク利用値はこの利用に基づいて決定されて、対応するリンクを適切に重み付けすることができる。ラベル情報又はトポロジーデータベースによって記憶されたデータを増大させることで、負荷分散計算に用いるためにサービスごとの追加の帯域幅プロファイリング情報が利用可能である。別の実施形態では、ノード対間で提供可能である最大負荷を表すものとして、経路におけるリンクセットの最小リンクメトリックのみを用いる。他の実施形態では、同様のメトリック又は更に詳細なメトリックを用いることができる。
【0036】
一実施形態において、トポロジーデータベースの最終パスを除いた全てのものが、ネットワーク内の全ノート対間の最短経路の「全対」計算を伴う。これは複雑さのために演算の面で高価である場合がある。しかしながら、負荷分散プロセスは、測定可能な利益を生むためにトポロジーデータベース内で著しい数のパスを必要とせず、その結果、負荷分散プロセスはネットワークリソース割り当てにおいて有益な全体的な向上を達成し、これらの「全対」計算を妥当なものとする。
【0037】
ランダムなグラフ発生を利用する実験例において、初期ECTセットを確立した後のデータベース内の単一パスでは、結果として、ネットワークの各リンクを通過する最短経路総数として測定されたリンク負荷印加の変動係数が約平均45%低減した。トポロジーデータベース内で更に3つのパスにおいて変動係数が低下し続け、平均75%の低減まで至ったが、利点の大部分はベースラインを確立した後に第1のパスから得られた。このため、負荷分散における利点の大部分はデータベースの最初の2つのパスで得られる。第1のセットの負荷印加を回避するために第2のセットが明示的に配置されると、ネットワーク内の経路数は2倍になった。しかしながら、変動係数の向上率は、累積経路総数によって表面的に提示される1/2、1/3、1/4率よりもはるかに迅速にパスごとに低下する。このため、演算及び転送状態の双方において負荷分散プロセスを追跡可能に維持しながら、有意の結果を達成可能である。
【0038】
この方法は効果的に接続指向であり、最小負荷印加リンクを求めるので、失敗によって生じたトラフィックマトリックスの乱れは分離され、性質上ローカルである傾向がある。いったんネットワークの狭窄(constriction)が迂回されたら、負荷分散プロセスはデータトラフィックを最初の分散へと向ける傾向がある。また、この方法は新しく現れたMPLS−TP技術ベースにより動作して、保守運用管理(OAM:operation, administration and management)プロトコルを未変更で利用することができ、MPLSネットワークのアーキテクチャ及びサービス保証を維持するようにする。
【0039】
また、負荷均衡化プロセス及びシステムによって、管理者は負荷因子でリンクを「予めバイアス」することができ、これは特定のリンクから何らかの負荷をシフトする効果を有する。これによって、マルチトポロジールーティングよりもはるかに単純な管理である単純なメトリック変更よりもルーティング挙動操作のための更に微妙なグラデーションが可能となり、従来の負荷均衡化システムで行われたメッシュ密度を人工的に上昇させるためのリンク仮想化(RFC 4206に従ったMPLS「転送隣接(forwarding adjacencies)」等)の必要がなくなる。2段階ソートでは、リンクバイアスを適用するタイミングが重要である。これは典型的には第2及びそれ以降の繰り返しについてのみ考慮される。第1の繰り返しにおける実施においては、全ての等コスト経路は利用の候補であり(ゼロ)、すぐにバイアス因子を適用すると、第1の繰り返しの結果としてバイアスを有するそのリンクから他の経路へと全ての負荷がシフトされる傾向がある。
【0040】
図2は、タイブレーキング機構へのフィードバックとしてリンク利用を組み込んだ負荷分散方法を実施するネットワーク要素の一実施形態の図である。ネットワーク要素200は、ラベル情報データベース219、トポロジーデータベース221、入口モジュール203、出口モジュール205、及び制御プロセッサ207を含むことができる。入口モジュール203は、物理リンク及びデータリンクレベルでネットワーク要素200が受信しているデータパケットの処理を扱うことができる。出口モジュール205は、物理リンク及びデータリンクレベルでネットワーク要素200が送信しているデータパケットの処理を扱う。制御プロセッサ207は、ルーティング、データトラフィックの転送及び高レベル処理を扱う。制御プロセッサ207は、最短経路検索モジュール209、負荷分散モジュール215、ラベル配布プロトコル(LDP)モジュール213、MPLS管理モジュール217、及びソートモジュール211を実行するか又は含むことができる。
【0041】
ラベル情報データベース219は、データパケットを転送する方法を定義するラベル転送エントリを有するテーブルを含む。ラベル転送エントリは、ネットワーク要素200のネットワークインタフェースに、ラベル及び基礎にあるFEC及び仮想トポロジーを関連付ける。この情報は制御プロセッサ207によって用いられて、どのようにデータパケットを処理するか、すなわちどのネットワークインタフェースにデータパケットを転送するかを決定する。負荷分散方法及びシステムは、本明細書において以下に記載するような負荷分散を実施するラベル配布プロトコル(LDP)によるラベル転送エントリを生成する。
【0042】
トポロジーデータベース221は、ネットワーク要素200が接続されているネットワークのトポロジーのネットワークモデル又は同様の表現を記憶する。一実施形態において、ネットワーク内のノードは各々ラベルスイッチルータ(LSR)であり、LSR間のリンクは多数の基礎にあるプロトコル及び技術を利用することができる。ノードはノードループバックアドレス等の一意のノード識別子によって、リンクはノード−識別子対によって識別することができる。このネットワークモデル表現は一例として与えられており、この負荷分散方法及びシステムによって他のネットワークトポロジー表現も利用可能であることは当業者には理解されよう。
【0043】
最短経路検索モジュール209は、制御プロセッサ207のコンポーネント又は制御プロセッサ207によって実行されるモジュールである。最短経路検索モジュール209は、トポロジーデータベースを横切って、ネットワークトポロジー内のいずれかの2つのノード間の最短経路を決定する。2つのノード間においてネットワーク内で等しい距離又はコストを有する多数の経路が存在し、これらの多数の経路が全て最短経路である場合には、これらの多数の等コスト経路をソートモジュール211及び負荷分散モジュール215に提供して、どれを利用するかを決定することができる。最短経路検索モジュール209は、ネットワークトポロジー内の全ノード間の最短経路を決定することができ、これを本明細書においては「全対」計算と称する。
【0044】
最短経路検索モジュール209は、各ノード対について最短経路セットを与え、負荷分散モジュール215は、最短経路のサブセットを選択し、ラベル情報データベースを更新して、ネットワーク要素200を横切る各最短経路のサブセットを実施するエントリを含む。
【0045】
第1のパスの後、最短経路検索モジュール209は、トポロジーデータベースを介した第1のパスの結果として得られたネットワークトポロジー内の各リンクのリンク利用値を計算する。リンク利用値は、所与のリンクを横切る選択された最短経路の総数である。各リンクについて別個のリンク利用値を計算し記録する。これらのリンク利用値を用いて経路利用値を発生し、次いでこれを用いてトポロジーデータベースを介した以降のパスについて経路のランク付けをバイアスさせる。この場合、初期タイブレーカーは、辞書編集方式でソートしたリンク利用値のランク付けしたリスト又はリンク利用値の和(すなわち経路利用値の形態)のいずれかであり、この結果としてタイが生じた場合、共通アルゴリズムタイブレーキングプロセスが以降のタイブレーカーとして用いられる。
【0046】
ソートモジュール211は、制御プロセッサ207のコンポーネント又は制御プロセッサ207によって実行されるモジュールである。ソートモジュール211は、第2のパス及び以降のパスにおいて経路利用値に基づいて負荷印加した等コストツリーセットの初期ランク付けを実行することによって、負荷分散モジュール215を支援する。
【0047】
多数の等コスト経路を有する各ノード対について、ソートモジュール211は経路利用値に基づいてこれらの等コスト経路の各々のランク付けを発生し、負荷分散モジュール215はこのランク付けから少なくとも1つの経路を選択する。他の実施形態においては、最高及び最低ランク付けの経路を選択して、対応するノード対間で負荷を分割することができる。負荷分散モジュール215は、制御プロセッサ207のコンポーネント又は制御プロセッサ207によって実行されるモジュールである。
【0048】
このプロセスは、いかなるパス又は繰り返し数でも繰り返すことができ、この場合リンク利用値は通過する最短経路セットの累積指示値まで更新される。また、経路利用値も、リンク利用値に対する変更に従って更新される。経路における変数の標準偏差は典型的に各繰り返しと共に低減するが、経路セット数が増えると、各追加セットの全体的な影響は比例して低減し、これは2つ又は3つ以上のパス又は繰り返しを用いることが生成のための演算労力又はインスタンス化のための転送状態のいずれにも値しないことを示す。経路又は繰り返しの数は、管理者によって指定され、ネットワーク全体にわたって構成される。
【0049】
MPLS管理モジュール217は、制御プロセッサ207のコンポーネント又は制御プロセッサ207によって実行されるモジュールである。MPLS管理モジュール217は、入来パケットを調べ、関連付けられたラベルを判定し、ラベル情報データベース219においてパケットのルックアップを実行してパケットを転送するネットワークインタフェースを決定する。また、MPLS管理モジュール217は、各データパケットについてLSPの適正な横断に影響を与えるために、いずれかの必要なラベルスワッピング、ラベル追加、又はラベル除去を実行する。
【0050】
LDPモジュール213は、制御プロセッサ207のコンポーネント又は制御プロセッサ207によって実行されるモジュールである。LDPモジュール213は、ネットワークの負荷を分散させるために利用するLSPの生成に必要なネットワーク内のラベルバインディングに対して、転送等価クラス(FEC)及び仮想トポロジーを確立するために必要なメッセージを発生する。LDPモジュール213は、FECタイプ−長−値(TLV)フィールド、ラベルTLCフィールド、及び仮想トポロジーTLVフィールドを含むラベルマッピングメッセージを発生する。トポロジーTLVフィールドは、負荷分散プロセスのどの繰り返しにそのラベルおよびFECが関連付けられているかを示すトポロジーインデックスを含む。また、LDPモジュール213は、ラベル配布を実施するための他の従来の機能も実行する。
【0051】
図3は、等コスト経路のためのタイブレーキング機構へのフィードバックとしてリンク利用を用いること基づいたマルチプロトコルラベルスイッチングの自動化トラフィックエンジニアリングをサポートする負荷分散のプロセスの一実施形態のフローチャートである。一実施形態では、このプロセスは、リンクスイッチルータ等のネットワーク要素の開始時に、既定の間隔又は同様のイベントもしくは時点において、そのルータに接続されたネットワークに対するトポロジーの変化が通知されると実行することができる。トポロジーデータベースは、負荷分散プロセスとは別個のプロセスとしてネットワーク内の各ネットワーク要素において維持され、ネットワークの真のトポロジーの現在の表現であると想定される。
【0052】
一実施形態において、負荷分散プロセスは、ネットワーク内のネットワーク要素又はMPLSノード(例えばLS)とネットワーク内の別のネットワーク要素又はMPLSノードとの間の最短経路セットを決定することによって開始する(ブロック301)。最短経路セットは、個々の経路として又は各ツリーのルートとして各ネットワーク要素を有するツリーセットとして考えることができる。多数の最短経路があるか否か、すなわちMPLSノード間に最短経路のためのタイがあるか否かを判定するためにチェックを行う(ブロック303)。MPLSノード対がそれらの間に単一の最短経路を有する場合、ラベル情報データベースを更新して最短経路を反映させる(ブロック306)。一実施形態では、ラベル情報データベースを更新して、これを維持するネットワーク要素を横断する経路の各々を反映させる。ネットワーク内の各ネットワーク要素がこの同一の計算を実行する。負荷分散プロセスは決定論的であり、このため各ネットワーク要素は同一の結果を生成する。トポロジーに変化がない限り、単一の最短経路を有するMPLSノード対にこれ以上の処理は必要ない。
【0053】
MPLSノード対が、典型的に最低ホップ数及び最低コストとして測定される一意の最短経路を有しない場合、共通アルゴリズムタイブレーキングプロセスを用いて、一意の最短経路又は最短経路セットを選択することができる(ブロック305)。一実施形態では、第1及び最後のランク付け経路を選択することができる。経路を選択した後、それらをラベル情報データベースに記憶するか、又はそれらを用いてラベル情報データベースを更新して、全てのMPLSノード対でそれらの間に少なくとも1つの経路が選択されているようにする。
【0054】
最短経路を選択した後、MPLSノード対の全てで経路が選択されているか否かを判定するためにチェックを行う(ブロック307)。更に別のMPLSノード対で1つの経路又は経路セットが選択されていない場合、プロセスは続いて処理する次のMPLSノード対を選択する(ブロック309)。MPLSノード対の全てで最短経路が選択された場合、プロセスは続いて第2のパス又は繰り返しに移る。
【0055】
全てのMPLSノード対が完了したので、転送データベースの更新結果として、又は転送データベースの更新後に、各リンクについてリンク利用値を計算する(ブロック310)。リンク利用値は、ネットワークのトポロジーにおける各対応リンクを横断する経路の総数である。リンク利用値はネットワークにおける各リンクについて計算される。リンク利用値は、使用レベル及び、追加経路を形成する場合に回避しなければならないネットワークにおける潜在的なボトルネックの指示を与える。
【0056】
これ以降の最短経路の発生では、経路利用値を発生することによってタイブレーキングを最初に実行する。経路利用値は、これがリンク利用値を含む場合は辞書編集方式でソートしたリストとして、又はリンク利用値の和としてのいずれかで発生する。全てのノードプロセスは、あるMPLSノード対を選択し、このMPLSノード対間で最短経路セットを決定することによって再び開始する(ブロック311)。このプロセスは、各経路に対応するリンク利用値に基づいた経路利用値を含む(ブロック313)。経路利用値は、リンク利用値の和等の各経路の全体的な負荷を表すことができ、又は、各経路における最大もしくは最小負荷印加リンクを強調するリンク利用値の辞書編集方式でソートした配置もしくは同様の配置及び表現とすることができる。最短経路は、それらの経路利用値によってランク付けされる(ブロック315)。等しい経路利用値を有する所与のMPLSノード対について2つ以上の最短経路があるか否かを判定するためにチェックを行う(ブロック317)。
【0057】
一意の最低負荷印加経路が存在する場合、全経路ランク付け(例えば最低及び最高)のためにこれ以上の処理を行うことなくこれを選択することができる。同一の負荷印加の2つ以上の最短経路が存在する場合(すなわち同一の経路利用値)、共通アルゴリズムタイブレーキングプロセスを用いて、最短経路の最低負荷印加セットのこのサブセットにおいて経路選択を実行する(ブロック321)。ランク付けはリンク利用値を考慮に入れて、最低又は最小使用リンクの経路が最も選択される可能性が高いようになっており、これは結果としてネットワーク内の次のホップだけでなくネットワークの全体的な負荷を考慮するので、ネットワーク全体のルーティングはいっそう均衡化される。次いでラベル情報データベースを更新して、選択した経路を反映させる(ブロック318)。
【0058】
次いで、MPLSノード対の全てが選択された最短経路又は最短経路セットを有するか否かを判定するためにチェックを行う(ブロック319)。そうでない場合、プロセスは続いて処理する次のMPLSノード対を選択する(ブロック323)。MPLSノード対の全てが計算された場合は、追加の経路が必要であるか否かを判定するためにチェックを行う(ブロック325)。追加の経路が必要ない場合(これはネットワーク管理者によって設定されるか又は同様の方法で決定されるパラメータである)、負荷分散プロセスは終了する。追加の経路が必要である場合、プロセスは続いて第2のものと同様の第3のパス又は繰り返しに移るが、これは以前の繰り返しで決定されたリンク利用に基づいている。このプロセスはいかなる数の繰り返しを有することも可能である。
【0059】
図4は、ラベル配布プロトコルの一部としてラベルマッピングメッセージを発生するためのプロセスの一実施形態のフローチャートである。一実施形態において、このプロセスは、トポロジーの変化又はネットワークのためのラベル情報データベースの変更に応答して開始される。別の実施形態では、このプロセスは、MPLSネットワークの状態を維持するために定期的に開始される。このプロセスは、各ノードがそのピアの1つに送信するラベルマッピングメッセージを発生することによって開始する(ブロック410)。
【0060】
ラベルマッピングメッセージは、多数のタイプ−長−値(TLV)フィールドを含む。ホストノードのラベル情報ベースに表されるように、ネットワークのトポロジーにおける各転送等価クラス(FEC)及び各トポロジー経路又はツリーについて別個のラベルマッピングメッセージを発生する。各ラベルマッピングメッセージについて、対応するフィールド等価クラスをラベルマッピングメッセージのFEC TLVフィールドにおいて規定する(ブロック403)。
【0061】
また、経路におけるインタフェースの各々についてLSPに割り当てたラベルに従って、各ラベルマッピングメッセージのラベルTLVも規定する(ブロック405)。ラベルマッピングメッセージにおいて、トポロジーインデックスも規定する(ブロック407)。トポロジーインデックスは、ラベルマッピングメッセージが規定したLSPの選択プロセスの繰り返しを示す。例えば、ラベルマッピングメッセージが第1の選択されたツリー又は経路に対応する場合、ゼロ又は1のトポロジーインデックスを選択し、ラベルマッピングメッセージに挿入すれば良い。同様に、第2の経路又はツリーがメッセージに対応する場合、1又は2を値として指定すれば良い。いったんラベルマッピングメッセージの各々を規定し、その値の各々を指定すると、ラベルマッピングメッセージをラベル配布プロトコルピアの各々に送信することができる(ブロック409)。一実施形態では、トポロジーインデックスはラベルマッピングメッセージの既存のTLVに含まれる。別の実施形態では、ラベルマッピングメッセージのためにトポロジーTLVを規定する。
【0062】
図5は、ラベルスイッチルータ(LSR)セット1〜18を含むマルチポイント−マルチポイントネットワークの一実施形態の図である。この図は、所与の例について先に規定したプロセスの第1の繰り返しによって規定された経路又はツリーのセットを示す。この図は、このネットワークへの入口がノード1〜4及び同様に13〜18上で分散可能であることを想定する。換言すると、これらのLSRはネットワークのエッジにあるが同一の外部インタフェースを有する。この例では、第1のパスにおいて、このプロセスは、この一意の経路セットから全てのノード対について辞書編集方式でソートした一意の経路1〜13から4〜18のセット(例えば1−5、5−9、9−13、及び4−8、8−12、12−18)を発生し、この例は、これらの一意の経路識別子のランク付けから、ツリー501及び503に相当する低い及び高い経路が選択されると想定する。
【0063】
図6は、本明細書において上述した負荷分散方法の第2の繰り返しにおいて選択された経路又はツリーを示す。この例では、負荷分散方法は、各経路に関連付けたリンク負荷の辞書編集方式の順序付けが2つの経路間にタイを生成する2つの経路を見出し、経路識別子としてのノードIDの代表的な辞書編集方式の順序付けを呼び出してタイを権威的に分解する。第2の繰り返しからの最低ランク付けツリー605及び最高ランク607は、ノード1〜4及びノード13〜18間でトラフィックを更に分散させ、
図5に示した第1の繰り返しから最低ランク付けツリー601及び最高ランク付けツリー603を補足する。辞書編集方式のソートにリンク使用値を組み込むことによって、第2の繰り返しは最低利用リンクを有する等コスト経路を選択し、これによって帯域幅の利用を増し、選択した「全対」経路のトポロジーの多様性を増す。
【0064】
図7は、MPLSネットワークにおける保守運用管理(OAM)をサポートするために基礎パケットスイッチネットワークに疑似ワイヤセットをマッピングする一実施形態の図である。疑似ワイヤと等価なエンドポイント間にピアツーピアLSPの完全メッシュを重ねることによって、トラフィックエンジニアリングシステムを用いて性能監視を維持しコンパチビリティを維持することができる。従って、パケットスイッチネットワークはオーダー(N)でスケーリングし、従って障害管理はスケーリングすることができるが、オーバーレイは性能監視に必要なピアツーピアプロパティを有する。疑似ワイヤのFECを変更して、疑似ワイヤFECをPSN仮想トポロジーインデックスにバインドする。PSNトポロジーは疑似エンドポイント間で論理的にピアツーピアであるので、疑似ワイヤラベルはOAMカウンタのためにソース一義化の手段を与える。
【0065】
このように、リンク使用を考慮したMPLSにおける負荷分散のための方法、システム、及び装置を記載した。上述の記載は例示を意図しており、限定ではないことは理解されよう。上述の記載を読み理解すれば、当業者には多くの他の実施形態が明らかであろう。従って、本発明の範囲は、添付の特許請求の範囲に権利が付与される均等物の全範囲と共に、特許請求の範囲を参照して決定される。