(57)【要約】  インバンド及びアウトオブバンドのシグナリングの組合せを用いてネットワークの自己修復性を最適化するための方法及び装置が開示される。実施形態のアルゴリズムにおいて自己修復性を決定するために使用されるメトリックは、保護されるネイバの最大数である。よりコントローラに近いノードには、それらのネットワークへの接続が遮断されるとそれらのダウンストリームノードが影響を受け切断されてしまうことになるため、よりコントローラから離れたノードよりも高い重みが割当てられる。従って、コントローラへのパスを決定する際に、コントローラへの代替的なパスを伴うスイッチが優先される。おアウトオブバンドシグナリングを用いた専用接続が、未保護ノードを保護ノードへ変換するために割当てられ、それによりネットワークの自己修復性が改善される。【選択図】図５
2014526190.tif 000002
【特許請求の範囲】
【請求項１】
スプリットアーキテクチャのネットワークの内部での使用のためのコントローラルーティングツリーを決定するための、ネットワークトポロジー設計システムにより実装される方法であって、制御プレーンコンポーネントはコントローラにより実行され、データプレーンコンポーネントは複数のスイッチにより実行され、前記方法は、
各スイッチと前記コントローラとの間の制御トラフィックについて、インバンド接続を用いて、初期のコントローラルーティングツリーを計算するステップと、
インバンド接続のみを有する前記ネットワークの自己修復性を計算するステップと、
パラメータｍを設定するステップと、ｍの各々は、アウトオブバンド制御トラフィックのための、対応するスイッチと前記コントローラとの間の専用接続を表現することと、
最大の自己修復性のためにインバンド接続及びアウトオブバンド接続の構成を最適化するように、近似アルゴリズムを用いて、スイッチと前記コントローラとの間のｍ個の専用接続の各々の配置を決定するステップと、
を含む方法。
【請求項２】
最短パス第一アルゴリズムを用いてインバンドの前記コントローラルーティングツリーを計算するステップ、をさらに含む、請求項１の方法。
【請求項３】
インバンド接続のみを有する前記ネットワークの前記自己修復性を判定する際に、ダウンストリームスイッチの数に基づいて、各スイッチに重みを割当てること、をさらに含む、請求項２の方法。
【請求項４】
より多くのダウンストリームスイッチを有するスイッチにより高い重みを割当てるステップ、をさらに含む、請求項３の方法。
【請求項５】
最高の重みを有するスイッチから最低の重みを有するスイッチへ前記スイッチを並び替えるステップ、をさらに含む、請求項４の方法。
【請求項６】
並び替えられた前記スイッチを解析して、前記各スイッチが前記コントローラへの代替的なパスを有する度合いを判定するステップ、をさらに含む、請求項５の方法。
【請求項７】
最も強く保護されたスイッチを前記解析から除外することにより、ｍ個の最も弱く保護されたスイッチを決定すること、をさらに含む、請求項６の方法。
【請求項８】
アウトオブバンド接続を用いて、ｍ個の前記スイッチの各々を前記コントローラへ結合させるステップ、をさらに含む、請求項６の方法。
【請求項９】
パラメータｍの決定は、ネットワーク運用者によって行われる、請求項８の方法。
【請求項１０】
ネットワークの自己修復性を最大化する装置において、
非一時的なコンピュータ読取可能なメモリモジュールにバス上で結合されるマイクロプロセッサモジュールであって、
各スイッチとコントローラとの間の制御トラフィックについて、インバンド接続のみを用いて、初期のコントローラルーティングツリーを計算し、
インバンド接続のみを有する前記ネットワークの前記自己修復性を計算し、
各ｍがアウトオブバンド制御トラフィックのための対応するスイッチと前記コントローラとの間の専用接続を表現する、パラメータｍを受信し、
最大の自己修復性のためにインバンド接続及びアウトオブバンド接続の構成を最適化するように、近似アルゴリズムを用いて、対応する各スイッチと前記コントローラとの間のｍ個の専用接続の各々の配置を決定する、
ように構成されるルーティングツリーモジュールをさらに含む、前記マイクロプロセッサモジュール、
を備える装置。
【請求項１１】
前記ルーティングツリーモジュールは、初期の前記コントローラルーティングツリーを、最短パス第一アルゴリズムを用いて計算するようにさらに構成される、請求項１０の装置。
【請求項１２】
前記ルーティングツリーモジュールは、インバンド接続のみを有する前記ネットワークの前記自己修復性を判定する際に、ダウンストリームスイッチの数に基づいて、各スイッチに重みを割当てるように構成される、請求項１１の装置。
【請求項１３】
前記ルーティングツリーモジュールは、より多くのダウンストリームスイッチを有するスイッチにより高い重みを割当てるように構成される、請求項１２の装置。
【請求項１４】
前記ルーティングツリーモジュールは、最高の重みを有するスイッチから最低の重みを有するスイッチへ前記スイッチを並び替えるように構成される、請求項１３の装置。
【請求項１５】
前記ルーティングツリーモジュールは、並び替えられた前記スイッチを解析して、前記各スイッチが前記コントローラへの代替的なパスを有する度合いを判定するように構成される、請求項１４の装置。
【請求項１６】
前記ルーティングツリーモジュールは、最も強く保護されたスイッチを前記解析から除外することにより、ｍ個の最も弱く保護されたスイッチを判定するように構成される、請求項１５の装置。
【請求項１７】
コントローラと、
複数のスイッチと、
を含み、
前記複数のスイッチは、インバンド接続を介して前記コントローラに結合され、
前記複数のスイッチのうちのｍ個は、ｍ個のアウトオブバンド接続を介して前記コントローラに結合される、
ネットワーク。
【請求項１８】
対応する各スイッチと前記コントローラとの間のｍ個の専用接続の各々の配置によって、最大の自己修復性のために、インバンド接続及びアウトオブバンド接続の構成が最適化される、請求項１７のネットワーク。
【請求項１９】
パラメータｍの決定は、ネットワーク運用者によって行われる、請求項１８のネットワーク。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願への相互参照］
本出願は、２０１１年９月１９日に提出された正規の米国特許出願第１３／２３６，２９６号及び２０１１年１１月１１日に提出された正規の米国特許出願第１３／２９４，５５９号に関し、２０１１年７月２９日に提出された米国仮特許出願第６１／５１３，１４０号からの優先権を主張する。
【０００２】
［発明の分野］
本発明の実施形態は、ネットワークの運営及び設計に関する。具体的には、本発明の実施形態は、制御トラフィックのインバンド（in-band）及びアウトオブバンド（out  of  band）シグナリングを伴うネットワークを最適化するための方法及びシステムに関する。“エッジ”及び“リンク”との用語は、ここでは互換可能なように用いられ、ノードを相互接続するネットワークパスへ言及する。
【背景技術】
【０００３】
従来のネットワークアーキテクチャにおいて、転送プレーン及び制御プレーンの結合（coupling）が、制御パケット及びデータパケットの双方が同じリンク上で送信されるという点で存在し、よって、制御トラフィック及びデータトラフィックは障害発生時に同じように影響を受ける。簡潔に言えば、制御トラフィックは、ここでコントローラと呼ばれるネットワークエレメントとここでスイッチと呼ばれる転送エレメントとの間のトラフィックであり、コントローラは、データのフローがどのように処理され転送されるかを制御する。データトラフィックは、ネットワーク内の１つのノードから他のノードへの移送の対象となるデータペイロードである。本出願を通じて、転送エレメントは、スイッチとして言及される。しかしながら、スイッチとの用語の使用は、そうした転送エレメントをイーサネット又はレイヤ２スイッチに限定するものと解釈されるべきではない。
【０００４】
従来のネットワークアーキテクチャにおけるこの転送及び制御プレーンの結合は、通常、複雑すぎる制御プレーンと手間の掛かるネットワーク管理とをもたらす。欠点として、それは、新たなプロトコル及び技術を開発するにあたっての大きな負荷と高い障壁とを生み出すものとして知られている。多くの部分について、コントローラ及びスイッチは、ＯＳＰＦ（Open  Shortest  Path  First）などのルーティングプロトコルを用いて、ノード間の距離を最小化するタスクを課せられる。ＯＳＰＦ（ＩＥＴＦ  ＲＦＣ２３２８参照）はリンクステート型プロトコルであり、ルータは、自身のネイバのリンクステート情報をルーティングドメイン内の全てのノードへブロードキャストする。この情報を用いて、あらゆるルータが、ドメイン内のネットワーク全体のトポロジーマップを構築する。各ルータは、ネットワーク全体のトポロジーを反映したリンクステートデータベースを維持する。このトポロジーマップ及びリンクコストメトリックに基づいて、ルータは、ダイクストラのアルゴリズムを用いて他の全てのルータへの最短パスを判定する。そして、その情報は、ＩＰパケットの転送のために使用されるルーティングテーブルを生成するために使用される。
【０００５】
最短パスルーティングプロトコルを用いる主要な欠点は、ネットワークの自己修復性又は保護が考慮されないことである。数ミリ秒の障害は高速リンク上でテラバイト級のデータロスを容易にもたらし得ることから、ネットワーク設計を評価する際、ネットワークの自己修復性は重要なファクタである。ここで使用されるように、自己修復性とは、故障（fault）及び通常の運用への問題（challenges）に直面した場合に許容可能なサービスのレベルを提供し及び維持する能力である。より自己修復性の大きいネットワークエレメント又は転送エレメントは、より自己修復性の小さいネットワークエレメント又は転送エレメントよりも、故障及び通常の運用への問題から良好に保護される。ここで使用されるように、障害確率は、エンジニアリングされたシステム又はコンポーネントに障害が起こる頻度であり、時間単位の障害回数として表現され、又は長い時間において各ノードに障害が起こる確率である。
【０００６】
ラインスピード、ポート密度及びパフォーマンスにおける急速な改善に関わらず、ネットワークの制御プレーンの仕組みは、転送プレーンの仕組みよりも非常に遅いペースで発展してきた。その引用した欠点を克服するために、ＯｐｅｎＦｌｏｗというスプリットアーキテクチャのプロトコルが開発されている。
【０００７】
スプリットアーキテクチャのネットワーク設計は、ネットワークの制御コンポーネントと転送コンポーネントとの間の分離を取り入れる。そうしたアーキテクチャのユースケースには、キャリアグレードネットワーク、エンタープライズネットワーク、ＩＳＰ（Internet  service  provider）ネットワーク、モバイルバックホールネットワーク、クラウドコンピューティング、マルチレイヤ（L3  &  L2  &  L1,  OTN,  WDM）サポートネットワーク及びデータセンタ、のアクセス／アグリゲーションドメインがあり、その全てはネットワークアーキテクチャの主な構成要素（building  blocks）である。従って、それらネットワークの適切な設計、管理、及びパフォーマンス最適化は、非常に重要である。
【０００８】
同じネットワークエレメント内に転送プレーン及び制御プレーンの双方を集積する従来のネットワークアーキテクチャとは異なり、スプリットアーキテクチャのネットワークは、転送エレメント（例えば、スイッチ）とは異なる物理的なロケーションに存在するであろう制御エレメント（例えば、コントローラ）上で制御プレーンを実行する。スプリットアーキテクチャの使用は、転送プレーンのスイッチの実装の簡略化を可能とし、複数のスイッチを監督するある数のコントローラへネットワークの知能部（intelligence）をシフトさせる。スプリットアーキテクチャのネットワークにおいて、（例えば、フローエンティティ、パケット、フレーム、セグメント、プロトコルデータユニットとして送信される）制御トラフィックを、（例えば、パケット、フレーム、セグメント、プロトコルデータユニットとして送信される）データトラフィックとは異なるパス上で、又は別個のネットワーク上ですら送信することができる。従って、これらネットワークにおける制御プレーンの信頼性は、転送プレーンのそれとはもはや直接的にはリンクしない。しかしながら、スプリットアーキテクチャのネットワークにおける制御プレーンと転送プレーンとの間の切断は転送プレーンを停止させかねないものである。スイッチは、自身のコントローラから切断されると、新たなフローをどう転送すべきかについての指示を受信できず、実際的な全ての目的についてオフラインになってしまう。
【０００９】
スプリットアーキテクチャのネットワークにおいて、コントローラは、スイッチから情報を収集し、適切な転送決定を計算してスイッチへ配信する。コントローラ及びスイッチは、情報を通信し及び交換するためのプロトコルを使用する。そうしたプロトコルの一例はＯｐｅｎＦｌｏｗであり（www.openflow.org参照）、ＯｐｅｎＦｌｏｗは、スイッチとコントローラとの間のオープンかつ標準的な通信方法を提供し、学術界及び産業界の双方から多大な興味を集めてきた。
【００１０】
図１は、スイッチ１０９とコントローラ１０１との間のＯｐｅｎＦｌｏｗインタフェースの概略を示す図１００である。スイッチ１０９は、ネットワークエレメント１０５のコンポーネントである。コントローラ１０１は、ＯｐｅｎＦｌｏｗプロトコルを用いて、セキュアチャネル１０３上でスイッチ１０９と通信する。ＯｐｅｎＦｌｏｗスイッチ内のフローあるいは転送テーブル１０７は、コントローラ１０１からのエントリで形成されており、図２から理解されるように、パケットヘッダ内のフィールドについてのマッチングを定義するルール２０１、フローマッチ２０４に関連付けられるアクション２０３、及びフロー２０６上の統計コレクション２０５、からなる。
【００１１】
インカミングのパケットが特定のルールに適合する場合、関連付けられるアクションがそのパケットに対して実行される。図２から理解されるように、ルール２０１は、例えばイーサネットＭＡＣアドレス、ＩＰアドレス、ＩＰプロトコル、ＴＣＰ／ＵＤＰポート番号に加えてインカミングポート番号といった、プロトコルスタック内の複数のヘッダからのキーフィールド２０２を含む。フローを定義するために、利用可能な全てのマッチングフィールドが使用されてよい。但し、望まれないフィールドについてはワイルドカードを使用することで、利用可能なフィールドのサブセットにマッチングルールを制限することも可能である。
【００１２】
スプリットアーキテクチャの分断された（de-coupled）制御プラットフォームは、ネットワーク制御ロジックを修正するタスクを簡易化し、開発者が幅広い多様な新たなプロトコルと管理アプリケーションとを構築することのできる、プログラムのインタフェースを提供する。このモデルにおいて、データプレーン及び制御プレーンは、独立的に進化し及びスケーリングすることができ、一方でデータプレーンのエレメントのコストは低減される。
【００１３】
リンク及びスイッチの障害がネットワークパフォーマンスに悪影響を与え得ることはよく知られている。例えば、数ミリ秒の障害は、高速エッジ上でテラバイト級のデータロスを容易にもたらし得る。リンク障害は、制御トラフィック、データトラフィック又は双方を輸送するリンク上で生じ得るものであり、リンクを横断するトラフィックをもはや当該リンク上で移送することができないことを示す。障害は、２つのスイッチの間のリンクであるか、又は１つのコントローラとそこに接続されるスイッチとの間のリンクであり得る。多くの場合、それらリンクは独立的に障害を起こす。
【００１４】
スイッチ障害は、ネットワークエレメント又は転送エレメントがパケット又は他のプロトコルデータユニットを発信し、返送し又は転送することができないことを示す。スイッチ障害は、ソフトウェアバグ、ハードウェア障害、設定ミス及び同様の問題によって引き起こされ得る。多くの場合、これらスイッチは独立的に障害を起こす。
【００１５】
特殊な障害のケースは、スイッチとコントローラとの間の接続性喪失を含む。スイッチは、スイッチとコントローラとの間のパスに沿った中間的なリンク又はノード上の障害に起因して、自身のコントローラとの接続性を喪失し得る。スイッチが自身に割当てられたコントローラと通信できなくなる都度、スイッチは、転送プレーン上のパスが未だ有効であったとしても、コントローラによって管理される転送プレーン上の全てのパケットを破棄するであろう。他の状況において、割当てられたコントローラ又は他のコントローラとの接続が再確立されるまで、トラフィックのサブセットを転送プレーンによって転送することができ、又は、同様の限られた機能性を限られた時間量の間継続することができる。従って、これは、スイッチ障害の特殊ケースであると見なされることができる。
【００１６】
従来のスプリットアーキテクチャの設計は、転送プレーンと制御プレーンとの間での、完全なインバンドの又は完全なアウトオブバンドの接続性のいずれかの使用を前提としている。ここで使用されるように、インバンド接続とは、データ及び制御トラフィックが同じ物理的な接続を共用することを意味し、アウトオブバンド接続とは、データ及び制御トラフィックが異なる物理的な接続を使い分けることを意味する。従来のネットワークにおいて、制御パケット及びデータパケットの双方は同じリンク上で送信され、障害が起こると制御情報及びデータ情報は同等に影響を受ける。スプリットアーキテクチャにおいて使用されると、スイッチが新たなフローをどのように転送すべきかの指示を受信できないために、コントローラ及び転送プレーンの間の分断が転送プレーンを停止させる。
【００１７】
従来のスプリットアーキテクチャのネットワーク設計において、各スイッチは、コントローラへ到達するためのパスを伴って予めプログラミングされる。リンク又はノードの障害時に、スイッチは、そうした障害を検出し当該スイッチ用の新たなパスを再計算するにあたって、コントローラに依存する。スイッチ又はリンク内のいかなる障害のコントローラによる検出も、例えばＨｅｌｌｏメッセージがコントローラによってスイッチから受信されないことなど、何らかの暗黙的な仕組みに基づかなければならない。これは、障害の正確な場所を検出しコントローラ−スイッチ間の接続を再確立しなければならないために、ネットワーク内の大きな遅延をもたらす。あるスイッチについてバックアップパスを構成することができなければ、コントローラへのプライマリパスにおける障害の場合、コントローラへのスイッチの接続は遮断されることになる。
【００１８】
ネットワークの自己修復性（resilience）の研究は、歴史的にはインバンド（in-band）制御モデルを前提としており、それは制御プレーンとデータプレーンとが同じ自己修復特性を有することを意味する。既存のスプリットアーキテクチャにおける制御プレーンと転送プレーンとの間の接続性についての取り組みは、完全なインバンドの又は完全なアウトオブバンドの接続のいずれかを前提としている。完全なインバンドのシナリオでは、データ及び制御トラフィックの双方のために単一の基盤が使用される。完全なアウトオブバンドのシナリオでは、制御トラフィックはデータネットワークとは別個のネットワーク上で搬送される。後者のシナリオは制御トラフィックについてスイッチへのより信頼性の高い接続を提供する一方で、制御トラフィックについて全く別個のネットワークをセットアップすることは非常に高コストであり得る。スプリットアーキテクチャのネットワークはアウトオブバンド（out-of-band）モデルを用いるものの、スイッチとして動作する各ネットワークエレメントへリンクによって単一のコントローラが直接的に結合されるとすれば、リンク障害及びスイッチ障害は依然として関心事である。そうしたネットワークでは、コントローラとスイッチとの間のリンクが障害を起こすと、スイッチは、自身の転送テーブルを更新できず、最終的に障害に陥る。
【発明の概要】
【００１９】
アクセス／アグリゲーションネットワーク環境においてスプリットアーキテクチャを用いる際、アウトオブバンドで制御トラフィックを送信する利点は、必ずしも保持されなくてよい。第一に、ネットワークは地理的に分散され得る。よって、あらゆるスイッチごとのコントローラとの間の直接的なリンクは、距離の長いファイバと高コストな配備とを要するかも知れない。第二に、単一の地理的なロケーションにおいてさえ、ネットワークのサイズが大規模に拡大するにあたって、制御プレーンのために別個のアウトオブバンドの専用ネットワークを構築することは、高価であり得る。望まれるのは、インバンドモデル及びアウトオブバンドモデルの双方を取り入れることの可能な、コントローラとスイッチとの間の接続のためのハイブリッド設計である。
【図面の簡単な説明】
【００２０】
本発明は、添付図面の図において限定ではなく例示の手段で図示され、その中で類似する参照は同様のエレメントを示す。本開示における“一”又は“１つの”実施形態への様々な言及は必ずしも同じ実施形態についてのものではなく、そうした参照は少なくとも１つを意味することに留意すべきである。さらに、特定の特徴、構造又は特性が一実施形態との関連で説明される際、明示的に説明されているかに関わらず、そうした特徴、構造又は特性を他の実施形態との関連で作用させることは、当業者の知識の範囲内であると考える。
【００２１】
【図１】簡易なＯｐｅｎＦｌｏｗネットワークの図である。
【図２】フローテーブルエントリの内容の図である。
【図３】スイッチからコントローラへのインバンド接続に基づくルーティングツリーを伴うネットワークトポロジーを例示するグラフである。
【図４】コントローラへのアウトオブバンド接続をさらに含む、図３のルーティングツリーを伴うハイブリッドネットワークトポロジーを例示するグラフである。
【図５】本実施形態において用いられるルーティングアルゴリズムのフローチャートである。
【図６】本実施形態において用いられるルーティングアルゴリズムを実装するように構成される装置のブロック図である。
【発明を実施するための形態】
【００２２】
以下の説明において、多くの特定の詳細が呈示される。しかしながら、それら特定の詳細が無くとも実施形態は実践され得ることが理解される。他の例において、よく知られた回路、構造及び技法は、本説明の理解を曖昧にしないために、詳細には示されていない。しかしながら、そうした特定の詳細が無くとも本発明は実践され得ることが、当業者には理解されるであろう。過剰な実験をせずとも、包含した説明があれば、当業者は適切な機能性を実装することができるであろう。
【００２３】
図中に示す技法及び請求されるネットワークトポロジー設計システムは、１つ以上の電子デバイス（例えば、端局、ネットワークエレメント、サーバ又は同様の電子デバイス）上で記憶され及び実行されるコード、命令及びデータを用いて実装されることができる。そうした電子デバイスは、非一時的なマシン読取可能な又はコンピュータ読取可能な記憶媒体（例えば、磁気ディスク、光学ディスク、ランダムアクセスメモリ、リードオンリメモリ、フラッシュメモリデバイス及び相変化メモリ）などの、非一時的なマシン読取可能な又はコンピュータ読取可能な媒体を用いて、コード及びデータを記憶し及び（内部的に、及び／又はネットワーク上で他の電子デバイスとの間で）通信する。加えて、そうした電子デバイスは、典型的には、１つ以上の記憶デバイス、ユーザ入出力デバイス（例えば、キーボード、タッチスクリーン及び／又はディスプレイ）並びにネットワーク接続などの、１つ以上の他のコンポーネントと結合される、１つ以上のマイクロプロセッサのセットを含む。マイクロプロセッサのセットと他のコンポーネントとの間の結合は、典型的には、１つ以上のバス及びブリッジ（バスコントローラともいう）を通じてなされる。ネットワークトポロジー設計システム内の記憶デバイスは、１つ以上の非一時的なマシン読取可能な又はコンピュータ読取可能な記憶媒体及び非一時的なマシン読取可能な又はコンピュータ読取可能な通信媒体を表現する。よって、所与の電子デバイス又はネットワークトポロジー設計システムの非一時的なマシン読取可能な又はコンピュータ読取可能な記憶媒体は、典型的には、電子デバイスの１つ以上のプロセッサのセット上での実行のための、コード、命令及び／又はデータを記憶する。当然ながら、一実施形態の１つ以上の部分が、ソフトウェア、ファームウェア及び／又はハードウェアの異なる組合せを用いて実装されてもよい。
【００２４】
ここで使用されるように、ネットワークエレメント又は転送エレメント（例えば、ルータ、スイッチ、ブリッジ又は同様のネットワーキングデバイス）は、ネットワーク上の他の機器（例えば、他のネットワークエレメント、端局又は同様のネットワーキングデバイス）と通信可能に相互接続するハードウェア及びソフトウェアを含む１つのネットワーキング機器である。いくつかのネットワークエレメントは、マルチネットワーキング機能（例えば、ルーティング、ブリッジング、スイッチング、レイヤ２統合、セッションボーダ制御、マルチキャスティング、及び／若しくは加入者管理）についてのサポートを提供し、並びに／又は、マルチアプリケーションサービス（例えば、データ収集）についてのサポートを提供する、“マルチサービスネットワークエレメント”である。
【００２５】
本実施形態は、スプリットアーキテクチャのネットワークにおいて、制御トラフィックのために、ある数のアウトオブバンド接続を最適に選択するための方法及び装置を含む。本実施形態の出力は、制御トラフィックのためにのみ使用される専用の接続であるアウトオブバンド接続を通じてコントローラへ接続されるべき、ネットワーク内の選択されるスイッチのセットである。本実施形態は、ネットワークの自己修復性が最大化される手法で、許容されるアウトオブバンド接続の数を設定（establish）する。
【００２６】
可能な又は実用的なアウトオブバンド接続の数は、本実施形態のアルゴリズムへの入力であり、ネットワーク管理システム又は運用者によって決定される。アウトオブバンド接続の数が大きいほど、コントローラ及びスイッチ群の間の接続性はより信頼できるものとなる。
【００２７】
アウトオブバンド接続の所与の数があるとして、本実施形態は、最大の自己修復性をもたらすスイッチの最適なセットを決定する。言い換えれば、本実施形態は、自己修復性の観点で、転送プレーンと制御プレーンとの間のそれら余分なアウトオブバンド接続を最も良好に活用する。
【００２８】
本実施形態は、同時係属中の正規の米国特許出願第１３／２３６，２９６号における本出願人の発明を拡張するものであり、その発明は、スプリットアーキテクチャ領域のコントローラを、当該領域内のコントローラ及びスイッチ群の間の接続の自己修復性を最適化するように選択される位置に配置する。当該同時係属中の出願においてそうであるように、スプリットアーキテクチャ領域のパーティショニングがどのようになされるかについての前提は無い。パーティショニングは、もし行われるならば、地理的制約などのいかなる任意のメトリックに基づくこともできる。
【００２９】
出願人の同時係属中の正規の米国特許出願第１３／２３６，２９６号は、各スイッチにおけるバックアップパスの事前構成を開示しており、それにより、直上アップストリームノード（immediate  upstream  node）へのプライマリアウトゴーイングリンクが適切に作動しなければ、セカンダリアウトゴーイングリンクがバックアップパスとして使用され得る。そうした保護スキームによって、スイッチは、自身のアウトゴーイングリンク又は自身の直上アップストリームノードにおける障害を検出した場合に、自身のコントローラへのルートを即座に変更して、バックアップパス、即ち、スイッチ内に事前にプログラミングされたアウトゴーイングインタフェースを使用して、コントローラに再接続する。これは、コントローラの関与の必要性なく行われ、ネットワーク内のルートの残りへの及びコントローラへのダウンストリームノードの接続へのいかなる影響も無い。言い換えれば、影響のあるスイッチのアウトゴーイングインタフェースにおける局所的な変更のみがあることになる。ネットワーク内の他の全ての接続は、そのまま維持されるであろう。バックアップパスが存在しなければ、スイッチからコントローラへの間の接続は、コントローラへのプライマリパスにおける障害のケースで遮断されることになる。
【００３０】
スプリットアーキテクチャシステムにおいて、より自己修復性の高いネットワークは、バックアップパスを伴うスイッチをより多く有するであろう。最も自己修復性の高いネットワークは、あらゆるスイッチがコントローラへの事前構成されたバックアップパスを有するものとなる。よって、自己修復又は保護メトリックを、次のように記述することができる：
【００３１】
Ｖをネットワーク内のノードのセットとし、Ｅをノード間の双方向リンクのセットとして、グラフＧ＝（Ｖ，Ｅ）でネットワークを表記する。コストは、ネットワーク内の各リンクに関連付けられる。割当てられるリンクコストに基づいて、ネットワーク内の任意の２つのノード間で最短パスルートが計算される。各リンク上のコストは、当該リンクの双方の方向に適用されるものとする。この所与のトポロジーと共に、ノードの１つはコントローラであってノードの残りはスイッチであるものとする。また、スイッチ群及びコントローラの間で送信される制御トラフィックについて負荷分散は行われないものとする。従って、各ノードはコントローラへ到達するための１つのパスのみを有する。言い換えれば、制御トラフィックは、コントローラノードをルートとするツリー上で、コントローラとの間で送信される。これは、コントローラルーティングツリーと呼ばれる。このコントローラルーティングツリーは、ネットワーク内の全てのノードをカバーし、リンク群Ｅのサブセットである。さらに、コントローラ及びスイッチ群の間で、双方向での通信のために、同じルーティングツリーが使用されることになるものとする。
【００３２】
ネットワークの内部に所与の固定されたコントローラ位置があれば、様々なルーティングアルゴリズムを用いて様々なルーティングツリーを形成することができ、それによって、各ノードはコントローラへ制御トラフィックを送信する。コントローラルーティングツリーＴにおいて、ノードｖからノードｕへコントローラに向かうパスがＴ内にあるならば、ノードｕはノードｖのアップストリームノードである。ノードｕからノードｖへコントローラに向かうパスがＴ内にあるならば、ノードｕはノードｖのダウンストリームノードと呼ばれる。コントローラルーティングツリーにおいて、ノードの親とはその直上のアップストリームノードであり、ノードの子とはその直下のダウンストリームノードであり、アップストリーム及びダウンストリームは、初期のコントローラルーティングツリーが生成された後に判定される。
【００３３】
所与の固定されたコントローラ位置とコントローラルーティングツリーＴとがあるものとして、ノードａ及びその直上のアップストリームノードｂを考慮されたい。ｃ∈Ｖ｜｛ａ，ｂ｝であるノードｃ、つまりノードａ及びｂを除いたＶの要素であるノードｃが存在し、以下の条件が満たされる場合、ノードａはそのアウトゴーイングリンク（ａ，ｂ）の障害に対して保護される：
条件１：リンク（ａ，ｃ）がＧ内にある（即ち、ノードａ及びｃの間のリンクがネットワーク内に存在する）。
条件２：ノードｃはＴにおいてノードａのダウンストリームノードではない。
条件３：ノードｃはＴにおいてノードｂのダウンストリームノードではない。
第１及び第２の条件は、ノードａをノードｃに接続する結果としてループが生じないことを保証する。
第３の条件は、障害を起こしたと想定されるノードｂをノードｃのコントローラへ向かう制御トラフィックが通過しないことを保証する。あらためて言うと、ノードａは、ノードｂにおける障害を検出するや否や、自身のアウトゴーイングリンクを（ａ，ｂ）から（ａ，ｃ）へ切り替える。
【００３４】
上の条件が満たされる場合、リンク（ａ，ｃ）をリンク（ａ，ｂ）のためのバックアップリンクとして割当てることができ、このバックアップリンクをコントローラにおいて生成して通信し、ノードａにおいて事前構成することができる。ノードａは、リンク（ａ，ｂ）における障害を検出するや否や、プライマリアウトゴーイングリンク（ａ，ｂ）をセカンダリアウトゴーイングリンク（ａ，ｃ）へ変更することにより、コントローラへの自身のルートを即座に変更するであろう。ノードｃが上の第３の条件を充足する場合、ノードａは直上のアップストリームノードの障害に対しても保護される。バックアップリンクを有するノードは、ネットワークの自己修復性に貢献する。なお、インバンドシグナリングを用いてコントローラに直接的に接続されるスイッチについては、直上のアップストリームノードがコントローラであるために、アップストリームノードの保護は定義されない。
【００３５】
本実施形態では、ノードによって自身のダウンストリームノードへ障害を通知するための拡張されたシグナリングの仕組みは存在しないものとする。従って、コントローラからスイッチが切断され、スイッチ内にバックアップパスがプログラミングされていなければ、当該ダウンストリームノードがそれらのアウトゴーイングリンク又は直上のアップストリームノードにおける障害から局所的には保護されている場合であっても、切断されたスイッチの全てのダウンストリームノードもまた切断されるであろう。こうしたシナリオは、ネットワークの自己修復性がより低いことに寄与する。よって、ネットワークの自己修復性を評価するためのメトリックの割当てにおいて、より大きい重要度あるいは重みが、コントローラルーティングツリーのルートであるコントローラにより近いノードに割当てられるべきである。
【００３６】
上の議論に基づき、ノードの重みはそのダウンストリームノードの数を基礎とし、ルーティングツリーの重みは保護されていない全てのノードの重みの合計である。コントローラへのバックアップパスを伴うノードである保護されたノードはルーティングツリーの重みの決定に際してカウントされないため、ルーティングツリーの重みはネットワークの“非保護度（unprotectability）”を定量化するために使用される。所与のルーティングツリーＴについて、この重みはΓ（Ｔ）として言及される。ネットワークの自己修復性を最大化するために、Γ（Ｔ）は最小化されるべきである。あるノード群にアウトオブバンド接続を追加することにより、未保護ノード（unprotected  node）を保護ノードではないものとすることができ、それによりΓ（Ｔ）を減少させて、ネットワークの自己修復性が改善される。
【００３７】
本実施形態において使用されるアルゴリズムは、スイッチのサブセットとコントローラとの間のアウトオブバンド接続の最適な配置（placement）を、アウトオブバンド接続の所与の数ｍを用いて決定する。ｍ個の専用接続の各々に対応するのは、コントローラに直接的に接続されるスイッチである。それら専用接続は、制御トラフィックのためにのみ使用され、自己修復性を決定する目的のために依拠し得るものと仮定される。
【００３８】
（ｍ個の専用接続の各々の配置とは対照的に）パラメータｍは、本発明において使用されるアルゴリズムへの入力であり、ネットワーク管理システム又は運用者によって決定される。よりｍが大きければ、従前には未保護であったスイッチとコントローラとの間により多くの接続が存在するため、ネットワークの信頼性はより高まる。トレードオフは、よりｍが大きいことが、アウトオブバンド接続を確立するためのコストがより大きいことを意味することである。
【００３９】
所与のｍと共に、本実施形態は、スイッチとコントローラとの間の専用接続の最適な配置を決定し、その結果最大の自己修復性ゲインがもたらされる。言い換えれば、本アルゴリズムは、自己修復性の観点で、転送プレーンと制御プレーンとの間のそれらｍ個のアウトオブバンド接続を最も良好に活用することを追求する。
【００４０】
当初はコントローラルーティングツリーは最短パスツリーであるものとする。ネットワークのサイズが大きければ、ｍ個の専用接続のための最適な位置を見つけ出すための全てのスイッチにわたる網羅的な探索には、非常に手間がかかるであろう。本実施形態において使用されるアルゴリズムは、コントローラへ直接的にどのｍ個のスイッチが接続されるべきかを見つけ出すヒューリスティックで貪欲な（greedy）手法を提供する。
【００４１】
図３のトポロジー３００を参照すると、９個のスイッチ３０１〜３０９が、純粋なインバンド接続を用いて、インターネット２のトポロジー３００内の１つのコントローラ３１０へ、直接的に又は間接的に接続されている。ネットワーク内のリンクは破線で示されており、ルーティングツリーは実線で示されている。図３において、未保護のスイッチ３０１、３０９は、円で囲まれている。例えば、３０１は未保護であり、なぜなら、ノード３０９に障害が起きると、スイッチ３０９の障害により隣接スイッチ３０２もまた影響されるであろうと仮定すると、コントローラへ到達する代替的なパスが存在しないためである。図３において見られるように、インバンドモデルは単独では最大の自己修復性を達成するために十分でない。
【００４２】
一方で、図４のトポロジー４００において見られるように、スイッチ３０１からコントローラ３１０への１つのアウトオブバンドリンク４０１の追加は、ネットワークの全体的な自己修復性を改善する。よって、３０１とコントローラ３１０との間のリンクの追加は、全てのノード３０１〜３０９が障害から保護されるような形にルーティングツリーを変更する。この例において、単一のリンク４０１の追加によって、ネットワークの自己修復性を有意に改善することができる。本実施形態は、ネットワークの自己修復性を最適化するようにアウトオブバンドリンクの位置すべき場所を計算する、体系的なアプローチを提供する。
【００４３】
本実施形態は、ｍ個のスイッチとコントローラとの間のアウトオブバンドリンクを用いたｍ個の専用接続の最適な配置を、ネットワークについて最大の自己修復性を提供するように決定するための近似アルゴリズムを用いる。
【００４４】
本実施形態は、最も多くのダウンストリームネイバ（neighbors）を有する未保護ノードを選択し、アウトオブバンド接続を通じて、それら未保護であるはずだったノードをコントローラへ接続する。ここで注記されるように、自己修復性の最も高いルーティングツリーを決定するにあたって、本アルゴリズムは、まず、各ノードに、そのノードの子とも呼ばれるそのダウンストリームノードの全ての数に基づく重みを割当てる。そして、コントローラへの代替的なパスをどのノードが有しないかが判定され、それらノードは未保護ノードである。そして、未保護であるノードのみを計算に用いることで、本実施形態は、最も子の多い未保護ノードからのｍ個の専用接続を用いて、ルーティングツリー案（proposed  routing  tree）のセットを反復的に生成する。当該各ルーティングツリー案は、ｍ個のアウトオブバンド接続を用いて未保護であったはずのノードを保護ノードに変換し、それによりΓ（Ｔ）が低減される。言い換えれば、本実施形態は、各ルーティングツリー案について、ｍ個の専用接続の作成後の全ての未保護ノードの重みの合計である重みΓ（Ｔ）を計算する。保護ノード、即ちコントローラへのバックアップパスを伴うノードは、当該各ルーティングツリーの重みを決定する際にカウントされないため、最小の重みΓ（Ｔ）を有するルーティングツリーが、ネットワークのためのルーティングツリーとして選択される。
【００４５】
よりコントローラに近いノードはよりコントローラから離れたノードと比較してΓ（Ｔ）により多く寄与するため、ｍ個の専用接続の１つのために選択される可能性のより高い未保護ノードは、ツリーのルートであるコントローラにより近いノードである。
【００４６】
【表１】
2014526190.tif 000003
【００４７】
本発明の目的はコントローラルーティングツリーの自己修復性を最も良好に改善するようにｍ個の専用接続を割当てることであると理解される。第２行において見られるように、それは、コントローラへのアウトオブバンド接続についてｍ個のスイッチを見つけ出すためにｍ回の繰り返しを実行することにより行われる。注記されるように、ｍは、ユーザ又は運用者により決定されるパラメータである。
【００４８】
ノードｓの度数（degree）はＳ内のネイバノードの数であり、Ｄ（ｓ）で表記される。各繰り返しｉは、度数の降順で並び替えられたネットワークノードの順序付けリストから、初回ノード（first  node）であるノード（ｓ（１））をピックアップすることにより開始する。ｉ番目の繰り返しの最後に、選択ノード（ｉ）が選択される。この選択ノード（ｉ）は、保護されているネイバの数の最も多いノードである。ここで、Ｄ´（ｓ）はノードの保護されているネイバの数を表す。次の繰り返しが開始される前に、探索範囲であるスイッチのセットが第１４行で更新され、探索セットＳから当該選択ノードが除去される。なぜなら、保護されているネイバの最も多いノードは、ｍ個の専用接続について選択される可能性が最も低いからである。
【００４９】
第５〜１２行において見られる第２のループのｊ番目の繰り返しにおいて、第７行において見られるようにノードｓ（ｉ）の保護されているネイバの数がまず計算され、前回探索されたノードから−保護されているネイバの数の観点で−改善されるのであれば、選択ノードがノードｓ（ｊ）に更新される（第６〜９行）。
【００５０】
本アルゴリズムは、保護されているネイバの最大数が提供されるように、ｍ個のノードが見つけ出された場合に停止し、それらノードがコントローラへの直接接続を提供されるノードとして選択される。
【００５１】
図５は、本実施形態のアルゴリズムのステップ群を開示するフローチャート５００である。ステップ５０１において、ｍが設定される。ステップ５０２において、最短パス第一（shortest  path  first）アルゴリズムを用いて、インバンドのコントローラルーティングツリーが計算される。ステップ５０３において、インバンド接続のみを有するネットワークの自己修復性を決定する際に、ダウンストリームスイッチの数に基づいて、各スイッチに重みが割当てられる。ステップ５０４において、より多くのダウンストリームスイッチを有するスイッチにより高い重みが割当てられる。ステップ５０５において、最高の重みを有するスイッチから最低の重みを有するスイッチへ、スイッチが並び替えられる。ステップ５０６において、並び替えられたスイッチが解析され、各スイッチがコントローラへの代替的なパスを有する度合いが判定される。ステップ５０７において、ｍ個の最も強く保護されているスイッチが決定される。ステップ５０８において、ｍ個のスイッチの各々が、アウトオブバンド接続を用いてコントローラへ結合される。
【００５２】
図６は、図５の方法を実装するために使用される装置のブロック図６００である。図に見られるように、本実施形態のアルゴリズムは、マイクロプロセッサモジュール６０１のルーティングツリーモジュール６０４において実行され、マイクロプロセッサモジュール６０１に伴うアルゴリズムの結果は、メモリモジュール６０３の非一時的なコンピュータ読取可能な媒体に記憶される。そして、アルゴリズムの結果は、入出力（input/output）６０５を介して利用可能とされる。マイクロプロセッサモジュール６０１は、非一時的なコンピュータ読取可能なメモリのモジュール６０３に、バス６０２上で結合される。ルーティングツリーモジュール６０４は、本発明の方法に従って、各スイッチとコントローラとの間の制御トラフィックについて、インバンド接続のみを用いて初期のコントローラルーティングツリーを計算し、インバンド接続のみを有するネットワークの自己修復性を計算し、各ｍがアウトオブバンド制御トラフィックのための対応するスイッチとコントローラとの間の専用接続を表現するパラメータｍを受信し、最大の自己修復性のためにインバンド接続及びアウトオブバンド接続の構成を最適化するように、近似アルゴリズムを用いて、対応する各スイッチとコントローラとの間のｍ個の専用接続の各々の配置を決定する、ように構成される。
【００５３】
上述した説明は例示的であって限定的ではないものと意図されることが理解されるべきである。上述した説明を読んで理解すれば、当業者には、他の多くの実施形態が明らかとなる。本発明の範囲は、従って、添付の請求項を参照することで、それら請求項に与えられるものと均等な全ての範囲と共に決定される。
【図１】
2014526190.tif 000004
【図２】
2014526190.tif 000005
【図３】
2014526190.tif 000006
【図４】
2014526190.tif 000007
【図５】
2014526190.tif 000008
【図６】
2014526190.tif 000009
【国際調査報告】
2014526190.tif 000010
2014526190.tif 000011
2014526190.tif 000012