JP2015533049A - ネットワークにおけるトポロジ及びパス検証のための方法及び装置 - Google Patents
ネットワークにおけるトポロジ及びパス検証のための方法及び装置 Download PDFInfo
- Publication number
- JP2015533049A JP2015533049A JP2015533087A JP2015533087A JP2015533049A JP 2015533049 A JP2015533049 A JP 2015533049A JP 2015533087 A JP2015533087 A JP 2015533087A JP 2015533087 A JP2015533087 A JP 2015533087A JP 2015533049 A JP2015533049 A JP 2015533049A
- Authority
- JP
- Japan
- Prior art keywords
- forwarding
- network
- controller
- control
- topology
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0811—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/42—Loop networks
- H04L12/437—Ring fault isolation or reconfiguration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0677—Localisation of faults
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/34—Signalling channels for network management communication
- H04L41/342—Signalling channels for network management communication between virtual entities, e.g. orchestrators, SDN or NFV entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/40—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/20—Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/122—Shortest path evaluation by minimising distances, e.g. by selecting a route with minimum of number of hops
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/64—Routing or path finding of packets in data switching networks using an overlay routing layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/20—Traffic policing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/42—Centralised routing
Abstract
一実施形態において、通信ネットワークについてのネットワークフローの所定のサブセットと共に使用するための方法が開示され、ネットワークは、制御プレーン、転送プレーン、及び1つ又は複数のコントローラを含む。本方法は、ネットワーク情報の識別のために転送ルールを転送要素にインストールするステップであって、転送ルールが1つ又は複数の別の制御フローにグループ化され、1つ又は複数の制御フローの各々が、前記各制御フローの転送ルールに従って、ネットワークの少なくとも一部を通じて閉ループウォークを作成する、インストールするステップと、1つ又は複数の制御フローについてのトラフィックを転送プレーンに投入するステップと、トラフィックの投入の結果に基づいて、ネットワーク情報を識別するステップとを含む。【選択図】図1A
Description
[0001]本特許出願は、2012年9月20日に出願され、「A Method and Apparatus for Topology and Path Vetification in Partitioned Openflow Networks」と題された、対応する特許仮出願第61/703,704号、及び2013年3月27日に出願され、「A Method and Apparatus for Verifying Forwarding Plane Connectivity in Split Architectures」と題された特許仮出願第61/805,896号の優先権を主張し、これらを参照によって組み込む。
[0002]本発明の実施形態は、ネットワークトポロジの分野に関し、より詳細には、本発明の実施形態は、ネットワーク(例えば、オープンフローネットワーク(OpenFlow networks)、ソフトウェア定義ネットワーク(Software Defined Networks)等)におけるトポロジ及びパスを検証することに関する。
[0003]ソフトウェア定義ネットワークは、次世代のコアネットワーク、エッジネットワーク、及びデータセンタネットワークを定義する上で勢いを増している。キャリアグレードの運用(例えば、高い可用性、高速接続性、拡張性)のためには、広域ネットワークにおいて多数のコントローラをサポートすることが重要である。近年の地震において観測された停電を踏まえると、スマートフォンがネットワークの完全に接続された物理的に機能する一部としてネットワークに導入された後には、制御プレーンにおける障害及びエラーに対して細心の注意が払われるべきである。
[0004]様々な従来技術のネットワーキングシナリオ(例えば、フェイルオーバー、負荷分散、仮想化、複数権限)では、転送プレーンを動作させるために多数のコントローラが必要である。転送プレーンは、種々のドメインに分割され、種々のドメインの各々には、別個のコントローラが割り当てられる。転送プレーンの一貫したグローバルビューを維持するために、コントローラ間通信が必要とされる。このコントローラ間通信が中断されるか、又は遅い場合、各コントローラは、トポロジ接続性を検証し、コントローラ間通信に依存せずに、代わりに転送プレーンのプレインストールされた規則に依存してルーティングすることを望むことがある。
[0005]他の従来技術のネットワーキングシナリオでは、単一のコントローラが転送プレーン全体を管理し得るが、障害(例えば、構成エラー、過負荷状態のインタフェース、バグの多い実装、ハードウェア障害)に起因して、単一のコントローラがこの転送プレーンの一部を制御できなくなり得る。そのような状況において、コントローラは、転送プレーンのプレインストールされた規則に依存することがある。
[0006]既存の解決策の1つのセットは、おそらくはインストールされているがネットワークポリシーに準拠していない転送ルールに起因して、又は、おそらくは転送ルールを正確に実行していないことに起因して、完全に機能してはいるが振る舞いがおかしい転送要素を対象とする。これらのワークは、いまだに到達可能であり、(再)プログラム可能である物理的に正常なノード/インタフェースを備えるネットワークにおけるポリシー違反を発見又は防止するために、静的チェッカー、プログラミング言語、状態検証ツール等を提供する。したがって、これらは、主に、直交的な問題を解決する。既存のワークのうちの1つは、機能不全な転送要素(例えば、スイッチ又はインタフェース)を検出するが、転送プレーンを入力ポート及び出力ポートを備えるブラックボックスとして扱うエンドホスト間で検証メッセージが生成されることを必要とする。そのため、スイッチには検証ルールがプログラムされないので、これは、損失のある構成要素を検出するためのメカニズムをコントローラに提供しない。
[0007]既存のワークの別のセットは、デフォルトの転送ルールを事前にインストールして、制御ネットワーク及びコントローラサーバの過負荷を防止する。これらの事前対応のルールは、例えば、全ての送信トラフィックをデフォルトゲートウェイに向かわせ、未知若しくは不正なロケーションに由来するパケット及び/又は未知若しくは不正なロケーションを宛先等とするパケットを廃棄し得る。デフォルトの転送パスを有することは、パスがいまだ使用可能であるか否かを検証するためのコントローラについてのメカニズムが存在することを意味しないことに留意されたい。
[0008]別の関連するワークは、トポロジ発見に関する。ネットワークコントローラは、全てのスイッチポートにわたってフラッディングされるブロードキャストパケットを各スイッチに投入する。次のホップスイッチがこれらのパケットをネットワークコントローラに渡すと、コントローラは、スイッチ間の全てのリンクを推定する。制御ネットワークがパーティション化される場合、コントローラは、コントローラと同じパーティション内に存在しないスイッチからのパケットを投入又は受信することができない。したがって、それらのスイッチ間のリンクの正常性は、そのような力づくのアプローチによって検証されることができない。
[0009]関連するワークのさらに別のセットは、障害診断(又は障害検出)が監査証跡(m−trails(monitoring trails))を使用することによって行われる全光ネットワークにおいて現れる。m−trailとは、予め構成される光パスである。監視光信号は、m−trailの開始ノードから送出され、モニタは、終了ノードに取り付けられる。モニタが監視信号を受信し損なう場合、モニタは、その証跡に沿った何らかの(1つ又は複数の)リンクが障害を起こしたことを検出する。目的は、一定レベルまでの全てのリンク障害が一意に識別されることができるように、m−trailのセットを最小限のコストで設計することである。モニタのロケーションは、先験的には知られておらず、リンク障害を識別することは、モニタがどこに位置するかに依存する。全光ネットワークにおいては、そのリンクを横断する全てのm−trailの合計帯域幅使用量によって測定されるリンク毎のコストが存在することにも留意されたい。
[0010]全光ネットワークにおける障害診断に非常に類似し、同じ基本的な違いを共有するグラフ制約グループ試験に関するワークも存在する。
[0011]ネットワークにおけるトポロジ及び/又はパスの検証のための方法及び装置が本明細書において開示される。一実施形態において、通信ネットワークについてのネットワークフローの所定のサブセットと共に使用するための方法が開示され、ネットワークは、制御プレーン、転送プレーン、及び1つ又は複数のコントローラを含む。本方法は、ネットワーク情報の識別のために転送ルールを転送要素にインストールすることであって、転送ルールが1つ又は複数の別の制御フローにグループ化され、1つ又は複数の制御フローの各々が、前記各制御フローの前記転送ルールに従って、ネットワークの少なくとも一部を通じて閉ループウォークを作成する、インストールすることと、1つ又は複数の制御フローについてのトラフィックを転送プレーンに投入することと、トラフィックを投入することの結果に基づいて、ネットワーク情報を識別することとを含む。
[0012]本発明は、以下に与えられる詳細な説明、及び本発明の様々な実施形態の添付の図面から、より完全に理解されるであろう。但し、添付の図面は、本発明を特定の実施形態に限定するものとみなされるべきではなく、説明及び理解のためのものであるにすぎない。
[0013]本発明の実施形態は、ソフトウェア定義ネットワーク(SDN)におけるパーティション及びフォールトトレランスを提供する。転送要素及びネットワークトポロジの部分的な可視性及び制御性のみを有するネットワークコントローラは、パーティション及び障害の前の種々の転送要素(例えば、スイッチ、ルータ等)において転送ルールとしてインストールされる少数の検証ルールを使用することによって、どのエッジ、ノード又はパスがもはや使用可能ではないのかを推定することができる。
[0014]本発明の実施形態は、例えば、機能不全なハードウェア、ソフトウェアのバグ、構成エラー、及び一連の不測の事象等の様々な要素に起因するが、これらに限定されない、任意の大規模な分散システムにおいて発生する障害及び停電を克服する。ネットワークの転送の振る舞い及び動的ルーティング決定が外部のネットワークコントローラによって指令されるソフトウェア定義ネットワークにおいて、転送要素とコントローラとの間のそのような停電は、転送プレーンの入口ポイントと出口ポイントとの間に実際に機能している物理的接続性が存在しても、データプレーンにおける(例えば、インストールされた転送パスに沿ったスイッチ又はリンクの故障に起因する)瞬間的な接続性の喪失、又は(例えば、転送ルールがタイムアウトし、又は削除される)最終的な接続性の喪失をもたらす。本発明の実施形態によって識別及び/又は解決される、可用性を阻む問題は、(i)コントローラによる転送プレーンにおけるエラーの可視性の欠如、及び(ii)障害が起きた転送要素についての制御の欠如を含むが、これらに限定されない。本発明の実施形態によれば、最小限の数の検証を適当にセットアップすることによって、ルールは、障害事象について可視性をもたらし、機能するパスを発見することを可能にする。
[0015]本発明の実施形態は、転送プレーン全体の接続性を検証するために、所与の転送プレーンに対する部分的な制御性を有するネットワークコントローラのためのメカニズムを含む。この手法により、コントローラは、転送プレーン全体の重大な接続性情報を検証するために他のコントローラと通信する必要がなく、コントローラ自体の検証に基づいて、ルーティング又はトラフィックエンジニアリングを決定することができる。
[0016]以下の説明において、本発明のより完全な説明を提供するために、多くの詳細が述べられる。しかしながら、当業者には、本発明がこれらの特定の詳細なしに実施され得ることが明らかであろう。他の場合において、本発明を曖昧にすることを回避するために、周知の構造及びデバイスは、詳細に示されるよりもむしろ、ブロック図の形式で示される。
[0017]以下に続く詳細な説明のうちの幾つかの部分は、コンピュータメモリ内のデータビットに対する動作のアルゴリズム及び記号表現の観点から提示される。これらのアルゴリズム的記述及び表現は、データプロセス分野における当業者によって、この当業者の作業の内容を他の当業者へ最も効果的に伝達するために使用される手段である。アルゴリズムは、ここでは、一般的には、所望の結果につながる自己無撞着な一連のステップであると考えられる。ステップは、物理量の物理的操作を必要とするものである。必須というわけではないが、通常、これらの量は、記憶され、移動させられ、組み合わされ、比較され、さもなければ操作されることが可能な電気信号又は磁気信号の形式を取る。主に一般的な使用の理由から、これらの信号をビット、値、要素、シンボル、文字、項、数字などとして言及することは、しばしば都合が良いことが分かっている。
[0018]しかしながら、これらの全て及び同様の用語は、適当な物理量に関連付けられるべきであり、これらの量に適用される都合の良いラベルにすぎないことが念頭に置かれるべきである。具体的に別段の記載がない限り、以下の説明から明らかなように、本説明全体にわたって、「処理(processing)」又は「算出(computing)」又は「計算(calculating)」又は「判定(determining)」又は「表示(displaying)」などといった用語を利用する説明は、コンピュータシステムのレジスタ及びメモリ内の物理(電子)量として表されるデータを操作し、コンピュータシステムのメモリ若しくはレジスタ又は他のそのような情報ストレージ、送信装置又は表示装置内の物理量として同様に表される他のデータに変換するコンピュータシステム又は同様の電子コンピューティングデバイスのアクション及びプロセスに言及することが認識されるであろう。
[0019]本発明は、本明細書における動作を実行するための装置にも関連する。この装置は、必要とされる目的のために特別に構築されてもよく、又は、汎用コンピュータに記憶されるコンピュータプログラムによって選択的に起動又は再構成される汎用コンピュータを含んでもよい。そのようなコンピュータプログラムは、フロッピーディスク、光ディスク、CD−ROM、及び磁気光ディスクを含む任意のタイプのディスク、読み出し専用メモリ(ROM:read−only memories)、ランダムアクセスメモリ(RAM:random access memories)、EPROM、EEPROM、磁気カード若しくは光カード、又は電子命令を記憶するのに適した任意のタイプの媒体などのコンピュータ読取可能な記憶媒体に記憶されることができるが、これらに限定されず、また、各々が、コンピュータシステムバスに結合される。
[0020]本明細書において提示されるアルゴリズム及びディスプレイは、任意の特定のコンピュータ又は他の装置に本質的には関連しない。様々な汎用システムが、本明細書における教示に従って、プログラムと共に使用されることができ、又は、必要とされる方法ステップを実行するために、より専門化された装置を構築することが都合が良いと分かるであろう。多種多様なこれらのシステムについて必要とされる構造は、以下の説明から示される。また、本発明は、任意の特定のプログラミング言語に関して説明されない。本明細書において説明されるような本発明の教示を実装するために多種多様なプログラミング言語が使用され得ることが認識されるであろう。
[0021]機械読取可能な媒体は、機械(例えば、コンピュータ)によって読取可能な形式で情報を記憶又は送信するための任意のメカニズムを含む。例えば、機械読取可能な媒体は、読み出し専用メモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス等を含む。
[概説]
[0022]本発明の実施形態は、データプレーンの各スイッチ(例えば、ユーザトラフィック/ペイロードを搬送するネットワーク要素)についての転送テーブル/状態及びフロー毎のアクションを制御する多数のネットワークコントローラに関する。これらのスイッチは、本明細書においてオープンフロースイッチと称されるが、本発明の実施形態は、フロー毎に遠隔でプログラムされることができる転送要素に適用される。ネットワークコントローラとこれらが制御するスイッチとは、制御ネットワークを通じて相互接続される。コントローラは、この制御ネットワークにアクセスすることによって、互いに、且つオープンフロースイッチと通信する。
[0022]本発明の実施形態は、データプレーンの各スイッチ(例えば、ユーザトラフィック/ペイロードを搬送するネットワーク要素)についての転送テーブル/状態及びフロー毎のアクションを制御する多数のネットワークコントローラに関する。これらのスイッチは、本明細書においてオープンフロースイッチと称されるが、本発明の実施形態は、フロー毎に遠隔でプログラムされることができる転送要素に適用される。ネットワークコントローラとこれらが制御するスイッチとは、制御ネットワークを通じて相互接続される。コントローラは、この制御ネットワークにアクセスすることによって、互いに、且つオープンフロースイッチと通信する。
[0023]一実施形態において、制御ネットワークは、コントローラ及びオープンフロースイッチの専用ポート、制御(シグナリングとも称される)トラフィックのみを搬送する専用の制御ネットワークスイッチ、並びに前述された専用ポートとスイッチとを相互接続する専用のケーブルなどの、専用の物理ポート及びノードを含む。このセットアップは、帯域外制御ネットワークと称される。一実施形態において、制御ネットワークは、オープンフロースイッチが制御ネットワークの一部及びデータプレーンの双方について同じポート及びリンクを使用するデータプレーンノードと物理リソースも共有する。そのようなセットアップは、帯域内制御ネットワークと称される。
[0024]制御ネットワークが、帯域外、帯域内、又はこれらの混合に従うか否かに関わらず、制御ネットワークは、別のインタフェース、ネットワークスタック、及びソフトウェア部品から成る。したがって、物理ハードウェア障害及びソフトウェア障害の双方が制御ネットワークノード及びリンクを故障させることがあり得、制御プレーンにおけるパーティショニングの可能性につながる。そのようなパーティションが発生する場合、各コントローラは、そのコントローラが算出し、そのコントローラの制御下にあるスイッチにプッシュ配信するパスがいまだに実行可能か否かについての正確な知識を有せず、データプレーン(転送プレーンと同等)トポロジ全体の部分ビューしか有しないことがあり得る。
[0025]本発明の実施形態は、転送プレーンがいまだに無損傷である(即ち、全てのリンクが使用可能である)か否か、デフォルトの転送ルール及びトンネルがいまだに使用可能であるか否か、並びに転送プレーンのどの部分がもはや使用可能ではない(即ち、停電中)かを、コントローラが確認することを可能にする。一実施形態において、これは、コントローラによって投入され得る制御パケットの限定された数に拘束される(おそらくは、他のコントローラの支援を得る)個別のスイッチに、検証ルールのセットをプッシュ配信することによって行われる。これらの検証ルールは、有効期限を有せず、厳格な優先順位を有する(即ち、これらの検証ルールは、明示的に削除又は上書きされるまで、オープンフロースイッチに存在する)。コントローラが、そのスイッチ及び/又は他のコントローラのうちの幾つかに到達することができないことを検出する場合、コントローラは、検証段階に進み、これらの十分に特定される制御パケットを投入する(即ち、これらのヘッダフィールドは、スイッチにプッシュ配信された検証ルールに従って、先験的に決定される)。コントローラは、これらの制御パケットへの応答及び応答の欠如に基づいて、どのパス、トンネル、及び転送トポロジの部分がいまだに使用可能であるかを判定することができる。
[0026]SDNは、将来のIT、ISP、及び電気通信会社のインフラストラクチャの主要な構成要素として浮上しつつある。SDNは、ネットワークを、独立した自律的なコンピュータの集合から、よく管理された柔軟なマルチテナント型のトランスポート組織に変化させることを約束する。中核原理として、SDNは、(i)転送プレーン及び制御プレーンを分離し、(ii)明確に定義された転送抽象概念(例えば、フローテーブルのパイプライン)を提供し、(iii)これらの抽象概念に標準的なプログラマチックインタフェース(例えば、オープンフロー)を提示し、(iv)高水準な抽象概念(例えば、VLAN、トポロジグラフ等)及びインタフェースをこれらのサービス層の抽象概念(例えば、アクセス制御、パス制御等)に公開する。
[0027]所与の転送プレーンを管理するネットワークコントローラは、(ii)を知らなければならず、それに応じて、項目(iii)及び(iv)を実装しなければならない。
[0028]ネットワークをよく管理された組織に変換するその約束を実現するために、おそらくは、論理的に集中化されたネットワークコントローラが、転送プレーンの転送要素及びそれらの相互接続(即ち、転送トポロジのノード及びリンク)のグローバルな監視と共に、転送プレーン全体を端から端まで管理する。しかしながら、これは必ずしも当てはまるとは限らない。例えば、コントローラと転送要素の厳格なサブセットとの間の通信を分断する障害(ソフトウェア/ハードウェア障害、バグの多いコード、構成ミス、管理プレーンの過負荷等)が起こることがある。別の興味深い場合において、転送プレーンは、別個のコントローラを見越して、多数の管理ドメインから成ることがある。所与のドメインのコントローラが、応答しない場合、又は監視及び報告をほとんどしない場合、その他のコントローラは、ネットワークトポロジ全体の古いビューを有することがあり、次善のルーティング決定又は実行不可能なルーティング決定につながる。
[0029]コントローラが転送プレーンの大部分の制御性を有しない(有したことがない又は失った)場合であっても、コントローラが少なくとも1つのスイッチを接続及び制御できる限り、コントローラは、パケットを転送プレーンに投入することができる。したがって、あるトポロジが与えられると、静的転送ルールのセットは、ポリシー又は接続性の質問に回答するために、転送プレーンにインストールされることができる。プローブパケットが投入される場合、プローブパケットは、これらの予めインストールされたルールに従って転送プレーンを横断し、送信元のコントローラへ戻るか又は廃棄される。いずれの場合においても、そのプローブに対する応答及び応答の欠如に基づいて、コントローラは、ポリシー又はトポロジ接続性が違反される場合に、ポリシー又はトポロジ接続性がいまだに有効か否かを検証し、それに応じて動作することができる。一実施形態において、コントローラは、コントローラの制御下にある転送プレーンの部分について新たな転送ルールを動的にインストールする。それ故に、静的ルールは、転送プレーン全体に関する様々なポリシー又は接続性の質問に回答するために、動的ルールと組み合わされることができる。
[0030]本発明の実施形態は、制御フロールールの転送プレーンへのインストール又はプログラミングに関し、これにより、コントローラが転送プレーンの一部を観測することができない場合に、ルーティング可能なネットワークフロー及びルーティング不可能なネットワークフローだけでなく、転送プレーンの接続された部分及び切断された部分も発見するために、コントローラがこれらの制御フローを利用して診断することができる。最適な手法でトポロジ接続性を検証し、単一リンクの障害を検出するための静的転送テーブルルールを算出するための技法が開示される。多数のリンク障害検出のための技法も開示される。
[0031]本発明の実施形態は、(1)転送プレーン全体のトポロジ接続性が、最小限の数の転送ルール及び制御メッセージを使用することによって検証されることができ、(2)単一リンクの障害が、転送要素毎に(少ない)一定の数の転送ルールを使用することによって位置を突き止められることができるように、静的ルールを算出するための技法を含む。これらの方法を使用することによって、少なくとも1つの転送要素へのアクセス権を有する任意のネットワークコントローラは、1つ又は複数の動的ルールをインストールし、開示される方法によって算出される静的ルールに従って処理される制御パケットを投入することができ、これらの制御パケットは、次いで、コントローラによってインストールされた(1つ又は複数の)動的ルールを使用して、そのコントローラにループバックされる(パスに沿ったあらゆるスイッチ及びリンクが正確に機能する場合)。
[0032]図1Aは、転送パスがネットワークコントローラのセットによって判定及びプログラムされる一方で、転送アクションが転送要素(例えば、スイッチ、ルータ等)のセットによって実行される通信ネットワークインフラストラクチャの一実施形態のブロック図である。一実施形態において、転送要素は、オープンフロー対応スイッチ301〜307を含む。転送プレーンは、全ての転送要素301〜307、及びこれらの転送要素301〜307間のリンク501〜509を構成する。転送要素301〜307の各々は、受信ポートにおいてパケットを受信すると、1つ又は複数の転送テーブルを利用して、そのパケットが何らかの手法で変更されなければならないのか否か、何らかの内部状態(例えば、パケットカウンタ)が変更されなければならないのか否か、及びパケットが送信ポートに転送されなければならないのか否かを判定する。一実施形態において、転送要素は、受信パケットをそれらのL1(物理層)からL4(トランスポート層)までの情報又はL7(アプリケーション層)までの情報さえ使用して検査し、その転送要素のプログラム可能な(ハードウェア又はソフトウェア)転送テーブルにインストールされた転送ルールにマッチするものを検索し、必要なアクションを行う(例えば、パケットヘッダ又はペイロードさえも書き換える、ラベルをプッシュ配信/ポップする、パケットにタグを付ける、パケットを廃棄する、パケットを送信論理/物理ポートへ転送する等)。一実施形態において、マッチするルール及びマッチするルール毎に行われるべきアクションは、ネットワークコントローラ101〜103と呼ばれる外部エンティティによってプログラムされる。
[0033]ネットワークコントローラ101〜103と転送要素301〜307とは、制御インタフェース及びリンク411、412、421、422、423、441、442を通じて互いに通信する。これらのリンクは、例えば、転送要素とコントローラとの間に制御ネットワーク上で確立されるTCP接続又はSSH接続であり得る。ネットワークコントローラ101〜103と転送要素301〜307とは、ハードウェア/ソフトウェアスイッチ(図1Aにおける201〜204)を通じても互いに通信する。
[0034]一実施形態において、制御プレーンのこれらのインタフェース、リンク、及びスイッチは、同じ物理的な機械の転送プレーン要素と併置される。別の実施形態において、これらは、物理的に別の要素に対応する。さらに別の実施形態において、これは混合されることもできる。即ち、幾つかの制御プレーン要素と転送プレーン要素とは物理的に併置される一方で、他の要素は物理的に併置されない。1つのネットワークの実施形態におけるネットワークコントローラは、制御ネットワーク及びデータネットワーク(即ち、転送プレーン)と物理的に別である。しかし、本発明の実施形態によって解決される問題は、ネットワークコントローラの一部又は全部が制御プレーンノード又は転送プレーンノード(例えば、スイッチ及びルータ)にホストされる場合であっても適用可能である。
[0035]1つのネットワークの実施形態において、各転送要素301〜307は、マスタコントローラによって制御され、転送要素は、いかなる所与の時間も2つ以上のマスタを有することはできない。一実施形態において、マスタのみが、転送テーブルルール及びアクションをその要素にインストールすることが許される。ネットワークコントローラ101〜103は、自律的に又はオフバンドの構成を使用して、どのコントローラがどの転送要素についてのマスタであるのかを決定する。マスタの役割は、転送プレーン及び制御プレーンへの負荷変動、障害、メンテナンス等に起因して、時間と共に変化し得る。
[0036]図1Bは、転送要素がオープンフロー対応スイッチ(301〜307)であると仮定される、図1Aのネットワークの別の図を示す。図1Aに関して上記に説明されたように、ネットワークコントローラ101〜103と転送要素301〜307とは、制御インタフェース及びリンク(411、412、421、422、423、441、442)を通じて互いに通信するが、ネットワークコントローラ101〜103は、別の制御インタフェース(図1Bにおける512、513、523)を通じて互いに通信することもできる。コントローラ間のこれらの制御インタフェースは、コントローラ間の状態同期のために、転送プレーンから正しいコントローラへの間接的な要求に対して、他のコントローラの制御下の転送ルールのインストール又は他のコントローラで利用可能な任意の他のサービスを要求するために、使用されることができる。本明細書において説明される技法は、制御ネットワークが物理スイッチ及びワイヤの異なるセットにホストされ、又は転送プレーンと部分的に/完全に併置されるが、リソースの分離部と共に若しくはリソースの分離部なしに論理的な分離部を有するセットアップに同様に適用される。
[0037]異なるシナリオにおいて、転送プレーンの制御は、コントローラ間で分割されることができる。この一例は、図1Bにおいて図示され、転送要素(FE:forwarding elements)301、302、305はコントローラ101に属し、FE303及び306はコントローラ102に属し、FE304及び307はコントローラ103に属する。本明細書における目的のために、所与のコントローラxの制御ドメインは、Dxと称され、xの制御ドメインの外部における任意の転送要素は、
と称される。即ち、図1Bによれば、D103は、{304、307}から成り、
は、{301、302、303、305、306}から成る。
と称される。即ち、図1Bによれば、D103は、{304、307}から成り、
は、{301、302、303、305、306}から成る。
[0038]一実施形態において、各コントローラは、そのコントローラの自律ドメインを管理し、自律ドメインでは、ドメイン内ルーティングは各ドメインのコントローラによって指令される一方で、ドメイン間ルーティングはコントローラ間の調整及び通信によって支配される。この場合において、スイッチは、スイッチ自体の(1つ又は複数の)ドメインコントローラしか認識していない。コントローラは、コントローラのローカルトポロジを互いに共有して、グローバルトポロジを構築し、端から端までのルート算出を調整する。(ハードウェア/ソフトウェア障害、インタフェースの輻輳、処理の過負荷等に起因して)コントローラ間の通信及び状態同期が損なわれる場合、1つのコントローラのドメインにおけるトポロジ変化(例えば、リンク障害)は、他のコントローラに時間通りに通信されないことがある。これは、その他のコントローラによって行われるルーティング及びポリシーの決定に悪影響を与えることがある。したがって、コントローラがその他のコントローラのみに依存せずに、転送プレーンの属性を検証することができる解決策を提供することが不可欠である。
[0039]別の実施形態において、負荷分散の目的のために、転送要素の別個のサブセットは、別個のコントローラと通信されることができる。負荷分散ポリシーは、別の管理プレーン(本発明を曖昧にすることを回避するために図示せず)によって決定及び指令され得る。この場合において、各コントローラは、そのコントローラ自体の転送要素のセットを監視及びプログラムするのみであり、したがって、多数のコントローラ間でネットワークを監視及びプログラムすることの負荷を共有する。負荷分散ポリシーに応じて、スイッチが種々のコントローラにマッピングされる手法は、時間と共に変わり得る。例えば、図1B及び図1Cにおいて図示される転送プレーンの場合、コントローラ103は、あるエポックにおいてはD103={304、307}を、別のエポックにおいてはD103={303、304、306、307}を有する。この決定は、種々の転送要素によって生成される制御トラフィックに従って行われ得る。この負荷分散シナリオにおいても、コントローラは、一貫して維持されるトポロジのグローバルビューの共有を望む。例えば、コントローラによってコントローラ自体の制御ドメインにおいて検出されるリンク障害は、他のコントローラにコントローラ対コントローラインタフェース(図1Bにおける512、513、523)上でメッセージを渡すことによって、又は全てのコントローラによってアクセスされ得るデータベースを更新することによって、グローバルトポロジビューを更新しなければならない。多数の自律ドメインの場合と同様に、任意の機能障害又はコントローラによる報告の障害は、転送プレーンについての(おそらくは一貫しているが)古い状態につながるであろう。したがって、この場合においても、コントローラに、コントローラ間の状態同期に依存せずに、高速且つ低オーバーヘッドな手法で転送プレーンを検証させることが重要である。
[0040]また別の実施形態において、実際には、ホットスタンバイとしての機能を果たす他のコントローラと共にドメイン全体を管理する単一のコントローラが存在し得る。単一のコントローラが管理する場合、そのコントローラは、図1Dにおいて図示されるように、転送要素のサブセットに対する制御インタフェースのうちの幾つかを失う可能性がある。コントローラ101は、D101={301、302、305}を有し、それ故に、
における転送要素と直接やり取り/を直接監視することはできない。この実施形態におけるコントローラ101は、
についてのコントローラ101のビューを更新するために依存すべき他のコントローラを有せず、したがって、制御プローブを転送プレーンに送信し、応答をリッスンする。
における転送要素と直接やり取り/を直接監視することはできない。この実施形態におけるコントローラ101は、
についてのコントローラ101のビューを更新するために依存すべき他のコントローラを有せず、したがって、制御プローブを転送プレーンに送信し、応答をリッスンする。
[ネットワークについての診断法及び情報の取得]
[0041]制御ネットワークのソフトウェア/ハードウェアのバグ、過負荷、物理的な障害、構成ミス等に由来し得る任意の機能不全は、同じパーティション内の要素のみが互いに通信することができるパーティションを作成し得る。図2は、制御プレーンの単一のインタフェースの機能不全413が2つのパーティションの原因となる場合を示す。第1のパーティションは、{101、102、201、202、204、301、302、303、305、306}であり、第2のパーティションは、{103、203、304、307}である。この例において、コントローラ101及び102は、互いに通信し、転送要素301、302、303、305、及び306へ命令を送信することはできるが、103、304、及び307と通信することはできない。同様に、コントローラ103は、転送ノード304及び307に到達することしかできず、その他のコントローラ及びスイッチに到達することはできない。そのようなシナリオにおいて、コントローラ103は、部分的なトポロジ可視性のみを有し、残りのトポロジが無損傷であるか、又は以前にセットアップされたルーティングパスがいまだに使用可能か否かを確信することはできない。一実施形態において、殆どのルーティングパスは有効期限付きで確立されるため、転送トポロジが無損傷である場合でも、転送ルールがもはや有効ではないことがある。コントローラ103は、第1のパーティション内の要素には到達することができないため、転送要素301、302、303、305、及び306に関するルーティングルールを(マスタコントローラとして)直接、又は(マスタである他のコントローラとの交渉を通じて)間接的に再インストール又はリフレッシュすることはできない。しかしながら、転送プレーンが完全に又は部分的に機能している場合、コントローラ103は、コントローラ103が到達することができる転送要素を通じて制御フローを転送プレーンに投入し、これらの制御フローに対して生成される応答を待つことができる。こうすることによって、コントローラ103は、転送プレーンが接続されたトポロジであるか否か、デフォルトパス/トンネルがいまだに使用可能であるか否か、及び、リンク障害が存在する場合には、どのリンクが障害を起こしたかを学習することができる。
[0041]制御ネットワークのソフトウェア/ハードウェアのバグ、過負荷、物理的な障害、構成ミス等に由来し得る任意の機能不全は、同じパーティション内の要素のみが互いに通信することができるパーティションを作成し得る。図2は、制御プレーンの単一のインタフェースの機能不全413が2つのパーティションの原因となる場合を示す。第1のパーティションは、{101、102、201、202、204、301、302、303、305、306}であり、第2のパーティションは、{103、203、304、307}である。この例において、コントローラ101及び102は、互いに通信し、転送要素301、302、303、305、及び306へ命令を送信することはできるが、103、304、及び307と通信することはできない。同様に、コントローラ103は、転送ノード304及び307に到達することしかできず、その他のコントローラ及びスイッチに到達することはできない。そのようなシナリオにおいて、コントローラ103は、部分的なトポロジ可視性のみを有し、残りのトポロジが無損傷であるか、又は以前にセットアップされたルーティングパスがいまだに使用可能か否かを確信することはできない。一実施形態において、殆どのルーティングパスは有効期限付きで確立されるため、転送トポロジが無損傷である場合でも、転送ルールがもはや有効ではないことがある。コントローラ103は、第1のパーティション内の要素には到達することができないため、転送要素301、302、303、305、及び306に関するルーティングルールを(マスタコントローラとして)直接、又は(マスタである他のコントローラとの交渉を通じて)間接的に再インストール又はリフレッシュすることはできない。しかしながら、転送プレーンが完全に又は部分的に機能している場合、コントローラ103は、コントローラ103が到達することができる転送要素を通じて制御フローを転送プレーンに投入し、これらの制御フローに対して生成される応答を待つことができる。こうすることによって、コントローラ103は、転送プレーンが接続されたトポロジであるか否か、デフォルトパス/トンネルがいまだに使用可能であるか否か、及び、リンク障害が存在する場合には、どのリンクが障害を起こしたかを学習することができる。
[0042]したがって、本発明の一実施形態において、ルーティング可能なネットワークフロー及びルーティング不可能なネットワークフローだけでなく、転送プレーンの接続された部分及び切断された部分を発見するために、制御フローのルールは、転送プレーンの一部を観測することができないコントローラがこれらの制御フローを利用して診断を行うことができるように、転送プレーンにインストール及びプログラムされる。
[0043]図3は、制御プレーンにおけるパーティションに加えて、転送プレーンにリンク障害が存在するシナリオを例示する。図3を参照すると、コントローラ103は、障害を起こしたリンク504及び506の如何なるエンドポイントにも到達することができない。それ故に、コントローラ103は、スイッチ303、302、又は306がこれらのリンク障害を検出することが可能であったとしても、これらのリンク障害を報告するための如何なる信号もスイッチ303、302、又は306から受信しない。転送プレーンが全てのスイッチにおいて自律的に運転するトポロジ発見の解決策を有し、スイッチがトポロジ変化(例えば、リンク/ノードの追加、障害、除去)を他のスイッチに配信しない限り、スイッチ304及び307は、リンク障害504及び506に直接接続されていないため、リンク障害504及び506を検出することができない。それ故に、コントローラ103は、これらの障害についての如何なる通知も、(スイッチ304及び307を含む)コントローラ103自体のパーティション内のスイッチから受信することができない。
[0044]図4は、図3において特定される障害シナリオに直面する際に、ネットワークフローがいまだにルーティングされ得るか否かを一実施形態のコントローラが検証する状況を図示する。ネットワークフローは、本明細書における目的のために、0、1のビットマスクとして広く理解されるべきであり、あるパケットにおけるヘッダフィールドの何らかの連結に適用される値は気にしない。ビットマスクに定義されるような0及び1と完全にマッチする全てのパケットは、同じフローに属し、まさに同じようにルーティングされる(即ち、フローベースのルーティング)。ヘッダは、MPLSラベル、VLANタグ、送信元及び宛先MACアドレス、送信元及び宛先IPアドレス、プロトコル名、TCP/UDPポート、GTPトンネル識別子等を含むことができるが、これらに限定されない。一実施形態において、デフォルトフローのセットが定義され、これらについてのルーティングルールは、非常に長い有効期限と共に、又は有効期限すらなしで、事前にプッシュ配信される(即ち、ルーティングルールは、明示的に除去又は上書きされるまで使用される)。図4において、f1及びf2とラベル付けされる2つのフローは、そのようなデフォルトフローの例である。レガシーのセットアップにおいて、これらのフローは、これらのフローラベルに従ってルーティングされるMPLSフローに対応する。フローf1は、その入口転送要素を304として有し、出口転送要素301において最終的にネットワークを出る前に、スイッチ303及び302を通じてルーティングされる。同様に、フローf2は、その入口転送要素を307として有し、出口転送要素301においてネットワークを最終的に出る前に、スイッチ306及び305を通じてルーティングされる。一実施形態において、制御フローのペアは、1つが転送方向において、1つが反対方向(逆方向)において、監視されるべきフロー毎にセットアップされる。図4において、fC1,f及びfC1,rは、f1についての制御フローのペアであるのに対して、fC2,f及びfC2,rは、f2についての制御フローのペアである。ルーティングのために使用される、制御フローのこれらのペアのビットマスクが同じである場合、制御フローのこれらのペアを単一のフローとして見ることも可能であることに留意されたい。例示の目的のために、制御フローは、転送方向(監視されるフローと同じ方向)、及び反対方向(コントローラへ向かうフィードバック方向)において、別のものとしてラベル付けされ、代わりにこれらをペアにする。転送方向の制御フロー(例えば、fC1,f)は、監視されるフロー(例えば、f1)と同じ一連の転送要素によってルーティング/処理されなければならない。一実施形態において、転送方向の制御フローは、監視されるフローに従う。具体的には、監視されるフローが異なるパス(即ち、一連の転送要素)上に再ルーティングされる場合、転送方向のその制御フローも、新たなパスに再ルーティングされる。監視されるフローの有効期限が切れる場合、転送方向の制御フローの有効期限も切れる。この実施形態における、監視されるフローと制御フローとの間の1つの相違点は、監視されるフローが、そのパス上にコントローラを有せずに、転送プレーンにおいて厳格に転送され、監視されるフローについてのトラフィックが、実際のネットワークユーザによって生成されることである。他方では、制御フローは、専らコントローラによって使用され、パスは、コントローラにおいて開始及び/又は終了し、制御ネットワークを通じた部分において渡される。
[0045]監視されるフローについてのパスの正常性を監視するために、コントローラは、その監視されるフローの制御フローについてのトラフィックを投入する。オープンフローネットワークの場合におけるトラフィック投入は、OFPT_PACKET_OUTメッセージをオープンフロースイッチに向けて生成すること、及びそのOFPT_PACKET_OUTメッセージにカプセル化される制御フローパケットについてのそのスイッチ(又はリンクと同等に)上の受信ポートを特定することを意味する。監視されるフローとその制御フローとの間の1つの相違点は、監視されるフローの「気にしない(don’t care)」フィールドに対応する、制御フローのビットマスクに設定される少数の付加的なビットであろう。例えば、監視されるフローがそのMPLSラベルによって特定される場合、制御フローは、MPLSラベルに加えて、MACアドレスフィールドを使用していることがある。転送テーブルの項目の観点から、転送制御フローは、出口ルータまで、新たな転送ルール/アクションを挿入しない。換言すれば、監視されるフローについて設定される転送ルールは、転送制御フローをマッチ及びルーティングさせるために使用されるであろう。そのような実装は、再ルーティング及び有効期限満了の事象に対処する。その理由は、監視されるフローについての転送ルールが変更され次第、転送ルールは、転送制御フローに即座に影響を及ぼすからである。
[0046]図4において、制御フローfC1,fは、同じフローテーブルルールを使用し、スイッチ304、303、及び302のf1と同じパイプラインにおいて処理される。制御フローfC1,fがスイッチ301に到達すると、制御フローfC1,fはネットワークを出てしまうため、フローf1と同じフローテーブルルールを使用することができない。その代わりに、スイッチ301に、制御フローfC1,fのビットマスクに完全にマッチする、より具体的な転送ルールがインストールされる。このビットマスクについてのアクションは、フローの方向を反転させる。実際に、制御フローfC1,rは、制御フローfC1,fの反対向きのパスに完全に従ってルーティングされる。反対向きのパスに沿った各スイッチは、制御フローfC1,fのビットマスクに完全にマッチするマッチングルールに加えて、反対向きのパスに沿った受信スイッチポートを有する。制御フローパケットがスイッチ304に到達すると、制御フローパケットは、制御メッセージをコントローラ103へプッシュ配信する転送アクションを有することになる。オープンフローネットワークの場合において、スイッチ304は、コントローラ103へ送信されるべきOFPT_PACKET_INメッセージを生成する。このようにして、ループは閉じられ、監視されるフローのパスに沿った全てのスイッチ及びリンクが正常であり、監視されるフローについての転送ルール/ルートがいまだに有効で機能している場合に、且つ、その場合に限り、コントローラ103は、コントローラ103が特定の制御フローについて投入して戻ってきたトラフィックを受信する。それ故に、コントローラ103が、投入して戻ってきたパケットを受信しない場合、デフォルトパスについての障害が潜在的に発生している。
[0047]別の実施形態において、コントローラは、最小限のリンク及びスイッチと共に、又は同じリンク及びスイッチを全く共有せずに、多くのデフォルトパスをセットアップする。各デフォルトパスは、そのデフォルトパスの制御フローを伴う。コントローラは、いまだに機能しているデフォルトパスのアクティブリストを維持する。パーティション事象がコントローラによって検出される場合、コントローラは、別個のデフォルトパスのこれらの制御フローについてのトラフィックを投入する。制御フローのサブセットについてのパケットが戻ってきて受信されない場合、対応するデフォルトパスは、アクティブリストから除去され、機能停止リストに載せられる。そのパケットがコントローラによって受信される制御フローについては、対応するデフォルトパスがアクティブリストに残り、コントローラは、アクティブリストのデフォルトパスのみを使用するように入口スイッチに命令する。一実施形態において、例えば、デフォルトパスがトンネル、ラベルスイッチドパス、又は回路に対応する場合、入口ルータにおけるフローテーブルアクションは、受信フローがアクティブリスト内のトンネル、ラベル、又は回路にのみマッピングされるように、書き換えられることができる。図4において、コントローラ103は、フローf1がもはやルーティングされない(リンク504及び506の障害に起因する。但し、これらの障害自体は、コントローラに知られていない)一方で、f2がいまだにルーティング可能であることを検出する。したがって、入口スイッチとしての転送304に到達するあらゆるフローについて、コントローラ103は、ルーティングアクションの前の処理パイプラインにおける最初のアクションとして、これらのフローのビットマスクをフローf2と交換するように304に命令する。
[0048]図5は、制御フローについての転送ルールをインストールするために発生する一連のシグナリングの一実施形態を例示する。一実施形態において、コントローラ101は、転送要素301、302、及び305についてのマスタコントローラであり、コントローラ102は、303及び306についてのマスタであり、コントローラ103は、304及び307についてのマスタである。fC1,rについてのマッチングルール及びアクションルールをインストールするために、コントローラ103は、コントローラ101と通信して、転送要素301及び302にルールをインストールし、コントローラ102と通信して、転送要素303にルールをインストールし、転送要素304と直接通信して、制御プレーンパケットを生成する。
[0049]特定のフローの正常性を確認することに加えて、全体的なトポロジ接続性を識別し、単一のリンクの障害を検出するための技法が本明細書において説明される。そのような診断のために、コントローラは、転送プレーンにも制御フローをインストールし、これらのフローについての制御パケットを投入し、その応答(又は、応答の欠如)に基づいて、結論を導く。
[0050]一実施形態において、コントローラは、転送プレーンの全てのリンクを対象とする一連のウォークを作成する制御フローをインストールすることによって、トポロジ接続性(即ち、任意のリンク障害では、スイッチ自体が障害を起こす場合、リンク障害になることに留意されたい)を検証することができる。本発明の実施形態は、ウォークを算出し、そのウォークを転送プレーンのスイッチにインストールされる転送ルールに変換するための特定の方法を含む。図8(A)及び図8(B)は、このプロセスの一実施形態を図示するフロー図である。図6及び図7並びに表1は、図1Aに示されるネットワークトポロジを使用することによる異なる動作の例示的な例である。
[0051]図8(A)を参照すると、本プロセスは、ハードウェア(回路、専用ロジック等)、(汎用コンピュータシステム又は専用機械で実行されるもの等の)ソフトウェア、ファームウェア、又はこれら3つの組合せを含み得る処理ロジックによって実行される。本プロセスは、トポロジ発見を実行することによって始まる(処理ブロック10)。一実施形態において、トポロジ発見は、全ての転送要素及びそれらの相互接続をネットワークコントローラによって識別することを意味する。この動作を実行するための周知の解決策が存在する。例えば、オープンフローネットワークにおいて、スイッチがネットワークに加わるときはいつでも、スイッチは、予め構成されるネットワークコントローラに、スイッチ自体をスイッチポート情報と共に通知する。コントローラは、ICMPパケットを投入し、全てのスイッチの全ての送信インタフェースをフラッディングさせることができ、ICMPパケットは、次いで、デフォルトポリシーとして次のホップスイッチによってコントローラへ送信される。これを含む任意の特定の方法は、トポロジ発見動作を実現するために使用されることができる。
[0052]次に、処理ロジックは、リンク隣接グラフを、ネットワークトポロジ内の各リンクをこのグラフにおける頂点として示すことによって、構築する(処理ブロック11)。この場合、一実施形態において、対応する2つのリンクが連続して(即ち、1スイッチ分離れて)横断され得る場合に、且つ、その場合に限り、このグラフ上の2つの頂点の間に弧が存在する。本例は双方向リンクについてのものであるが、各方向を別のリンクとして単純に数えることによって、本方法を指向性リンクに拡張することは自明であることに留意されたい。図6は、転送プレーントポロジについての隣接グラフを描いている。図6において、例えば、リンク503は、隣接グラフのノード603にマッピングされる。
[0053]リンク隣接グラフを構築した後、処理ロジックは、隣接グラフの頂点の任意のペア間の最短パスを算出し、表1に示されるような距離情報を記憶するテーブルを作成する(処理ブロック12)。これは、リンク隣接グラフ全体にわたる頂点の全てのペア間の最小距離を算出するために最短パス問題を解決する。一実施形態において、最短パスは、ダイクストラのアルゴリズムを適用することによって算出される。一実施形態において、距離とは、ここでは、あるリンクから別のリンクに到達するために横断される必要がある最小数のスイッチをいう。各スイッチは、そのような到達可能性のために丁度1つの転送ルールをインストールするため、これは、転送プレーンにインストールされる必要がある最小数の転送ルールになる。
[0054]次に、処理ロジックは、リンク隣接グラフと同じ頂点を使用して、但し、重みを用いて弧を描くことによって、完全無向グラフを形成する(処理ブロック13)。弧の重みは、接続される2つの頂点間の最小距離に等しい。例えば、頂点604と頂点609との間の弧は、表1において分かるように、重み2を有する。つまり、処理ロジックは、リンク隣接グラフと同じ値を使用し、弧の重みを上記で算出された頂点のペア間の距離として設定して、重み付けされた、無向且つ完全なグラフを構築する。
[0055]次いで、処理ロジックは、処理ブロック13において構築された完全無向グラフ上で最短のハミルトンン周期を算出する。ハミルトン周期は、グラフ上の全ての頂点を丁度1回横断し、開始点に戻る。以前の段階において例示された例示的なトポロジについてのそのような周期の例は、図7に示される。この周期の総コストは、7個のスイッチへの11個の一意なビジットに達する。換言すれば、総計11個の転送ルールが転送プレーンに存在する必要があり、1つのスイッチは多数回ビジットされることができ、それによって、多数の転送ルールがインストールされることを必要とする。一実施形態において、目的は、転送ルールの数を最小限にすることであり、したがって、最小コストのハミルトン周期を算出することが必要となる。任意のグラフで最小のハミルトン周期を探索することは、NP完全な問題である。ある方法は、任意の周知のヒューリスティック解を使用する。別の実施形態において、任意のハミルトン周期は、総コストの上限が合理的である限り、容認可能である。一実施形態において、スイッチ毎のオーバーヘッドが、スイッチ毎のサポート可能なハードウェア転送ルールの総数の3%未満である場合、総コストの上限は合理的である。この場合における自明な上限は、リンク数とリンクのペア間の最大距離との積によって与えられるであろう。図1Aに描かれている転送プレーン例について構築される表1によれば、この上限は、9×3=27になる。欲張りヒューリスティックは、ここでは、例示的な目的のために提供される。空のリストから開始して、任意の頂点を追加することができる。リストに追加される次の要素は、リストに存在せず、リストの最後の要素に最も近い頂点である。多数の候補が同じ距離を有する場合、任意の1つが選択される。全ての頂点がリストに追加されると、リスト中の最初の頂点は、同じリストの最後に追加される。これは、完全グラフのハミルトン周期の単純なヒューリスティックを構築する。種々の頂点候補が多数のリストを作成するために追加され、より低い総(又は平均)コストを有するリストが、より高い総(又は平均)コストを有するリストの前に調査される、分岐限定ヒューリスティックを行うこともできる。
[0056]最後に、処理ロジックは、算出されたハミルトン周期に従って、転送ルールを生成する。ネットワークコントローラが制御フロートラフィックを任意の転送要素に投入することができるように、ルールを設計することができる。一実施形態において、コントローラは、トポロジ接続性を確認するために一意の制御フローを定義し、例えば、フィールド{送信元MACアドレス、トランスポート層ポート番号}にマッチするように、一意のトランスポート層ポート番号(例えば、UDPポート)及びコントローラのMACアドレスを使用する。ルールは、受信スイッチポート(即ち、リンク/インタフェース)及びこの一意の制御フローにマッチするあらゆるスイッチにインストールされることができる。本アクションは、制御フローパケットが送信される送信スイッチポート(即ち、リンク/インタフェース)を特定する。算出されたハミルトン周期が、同じ受信インタフェースの同じスイッチを2回以上横断しない場合、そのようなマッチングは十分である。しかしながら、これは常に当てはまるとは限らない。これを明らかにするために、図7のハミルトン周期を検討し、横断が頂点604から開始されると仮定する。したがって、頂点は、リンク隣接グラフ上で、以下の順序604、607、608、609、605、602、606、603、601、604でビジットされる。これは、リンクを以下の順序504、507、508、509、505、502、506、503、501、504でビジットすることと同等である。502〜506は直接到達されることができないため、スイッチ302、リンク504、及びスイッチ303が横断される必要がある。同様に、506〜503は直接到達されることができないため、スイッチ306、リンク505、及びスイッチ305が横断される必要がある。その結果、一連のリンク及びスイッチとしての全体的なウォークは、504、303、507、304、508、307、509、306、505、305、502、302、504、303、506、306、505、305、503、301、501及び302となる。コントローラは、スイッチ302に対して、制御パケットをリンク504に投入するように要求することができる。スイッチ302が同じパケットをリンク501から受信する場合、スイッチ302は、そのパケットをパッケージ化し、発信元のコントローラへ送信することができる。ウォークから容易に分かるように、スイッチ303は、同じ受信ポート(リンク504のエンドポイント)から制御フローパケットを2回受信する。初回において、スイッチ303は、制御パケットをリンク507に向けて転送しなければならず、2回目において、制御フローパケットをリンク506に向けて転送しなければならない。同様の現象は、スイッチ305にも発生し、スイッチ305は、同じリンク(505)から受信される同じ制御パケットを処理しなければならない。送信元MACアドレス及びトランスポート層ポート番号を使用することによってのみ転送ルールを設定することは、これらの場合に対処するためには十分ではない。一実施形態において、そのような場合を対象とするために、コントローラは、各パスに一意に注釈を付けることができる別のフィールドを設定することによって、同じ制御フローについての多数のマッチするルールをインストールすることができる。例えば、スイッチ305は、リンク505〜502(ハミルトン周期では605〜602)から到達するために1回、506〜503(ハミルトン周期では606〜603)から到達するために1回、横断される。
[0057]ハミルトン周期における各ジャンプが、開始リンク及び終了リンクと共に一意に識別される場合、各パスは、一意に注釈を付けられることができる。コントローラ101が、ハミルトン周期における各弧に注釈を付けるために別個のVLAN idを使用し、制御フローがトポロジ接続性を確認するためのものであることを一意に識別するために、コントローラによって使用される制御フローフィールドに加えて、これらの別個のVLAN idについてのマッチするルールをインストールすると仮定する(例えば、{送信元MACアドレス、トランスポート層ポート番号}={mac101、udp1})。一実施形態において、この制御フローパケットについての以下のマッチングルール及びアクションルールは、転送プレーンにおいて如何なるリンク障害又はスイッチ障害も存在しないという条件で、ハミルトン周期を横断するために使用される。
[0058]コントローラ101が、{送信元MACアドレス、トランスポート層ポート番号、VLAN id}={mac101、udp1、v4}の制御フローパケットを生成し、その制御フローパケットをスイッチ302を通じてリンク504に投入する場合、以下の一連の事象が発生する。スイッチ303は、制御フローパケットを受信し、マッチするものを見つけ、それを、VLAN idをv7に設定することによってリンク507に転送する。スイッチ304は、パケットを受信し、マッチするものを見つけ、VLAN idをv8に設定し、リンク508に送信する。スイッチ307は、受信し、マッチするものを見つけ、VLAN idをv9に設定し、リンク509に送信する。スイッチ306は、受信し、マッチするものを見つけ、VLAN idをv5に設定し、リンク505に送信する。スイッチ305は、受信し、マッチするものを見つけ、VLAN idをv2に設定し、リンク502に送信する。スイッチ302は、受信し、マッチするものを見つけ、VLAN idをv6に設定し、リンク504に送信する。スイッチ303は、受信し、マッチするものを見つけ、VLAN idを変更せず、リンク506に送信する。スイッチ306は、受信し、マッチするものを見つけ、VLAN idをv3に設定し、リンク505に送信する。スイッチ305は、受信し、マッチするものを見つけ、VLAN idを同じままに維持し、リンク503に送信する。スイッチ301は、受信し、マッチするものを見つけ、VLAN idをv1に設定し、リンク501に送信する。スイッチ302は、受信し、デフォルトのルールがパケットをそのマスタコントローラ101へ送信するため、マッチするものを見つけない。
[0059]マッチするフローがない場合のデフォルトのルールがパケットを廃棄することである場合があり得る。そのような場合、一実施形態において、より上位の他の優先ルールが特定されない場合、各スイッチは、それらのマスタコントローラによって、コントローラによって発信されたパケットを(例えば、本例では、送信元macアドレスを確認することによって)そのコントローラに送り返すようにプログラムされる。一実施形態において、コントローラ101は、正しいVLAN idを特定することによって、パケットを任意のリンクに投入することができることに留意されたい。したがって、パーティションが検出される場合、各コントローラは、まず、同じパーティション内のスイッチを識別し、次いで、制御フローパケットを投入するためにスイッチの送信リンクのうちのいずれかを使用することができる。一実施形態において、マッチするものがない場合のデフォルトのルールが、マスタコントローラへ転送することである場合、コントローラについての送信元アドレス(本例では、送信元MACアドレス)をワイルドカード検索することができる(例えば、送信元アドレスは「気にしない」フィールドとなる)ことにも留意されたい。そのような場合、コントローラ毎に別のルールを作成する必要はない。フローミスについてのデフォルトアクションがパケットを廃棄することである場合については、コントローラのアドレスは、制御パケットにおいて特定され、転送ルールは、各スイッチにおいてその制御パケットのマスタコントローラの送信元アドレスを使用してインストールされる。一連のパケット転送事象の期間中に、任意のリンク又はスイッチが障害を起こす場合、コントローラは、そのパケットを受信しないであろう。
[0060]図8(A)及び図8(B)は、リンク障害を検出するためのプロセスも開示する。図8(A)及び図8(B)におけるプロセスは、ハードウェア(回路、専用ロジック等)、(汎用コンピュータシステム又は専用機械で実行されるもの等の)ソフトウェア、ファームウェア、又はこれら3つの組合せを含み得る処理ロジックによって実行される。
[0061]図8(B)を参照すると、処理ブロック20において、コントローラの処理ロジックは、制御プレーンにおいてパーティションを検出する。図2によって与えられる例において、コントローラ103は、ハートビートメッセージ又はコントローラ103の要求に対する応答を他のコントローラから受信しない場合、パーティションを検出することができる。コントローラの処理ロジックは、どのスイッチがコントローラと同じパーティション内に存在するのかを判定し、スイッチのうちの1つを制御フロー投入点として選択する(処理ブロック21)。図2の例において、コントローラ103は、コントローラ103がスイッチ304及び307からの通信をいまだに受け取ることができることを識別し、これはスイッチ304及び307が実際に同じパーティション内に存在することを示す。したがって、図7に示されるハミルトン周期に従って算出されたスイッチ301〜307についての予めインストールされる転送ルール(即ち、ルールは上記と同じであり、macアドレス103が送信元MACアドレスにマッチし、即ち、送信元MACアドレス=mac103である)を使用することによって、コントローラ103内の処理ロジックは、そのパーティションから到達可能な任意のリンク(例えば、507、508、509)にパケットを投入し、そのリンクの対応するVLAN idを有するパケットを投入する。したがって、処理ブロック22において、コントローラの処理ロジックは、一意のトランスポートポート番号を有する、トポロジ接続性を確認するそのモジュールから、処理ブロック21において選択されたスイッチの送信ポートのうちの1つに、パケットを投入する。
[0062]次いで、コントローラの処理ロジックは、制御フローパケットが戻ってくるのを待ち、処理ロジックが応答を受信したか否かを確認する(処理ブロック23)。待機時間は、リンクの総遅延に依存するが、最も典型的な実装においては、数百ミリ秒又は数秒程度となるであろう)。応答が受信される場合、コントローラの処理ロジックは、リンク障害がまだ発生していないと結論を下し、ルーチンは終了する(処理ブロック24)。待機時間中に応答が受信されない場合、コントローラの処理ロジックは、コントローラによって直接観測可能ではないリンク障害及びいくつかのスイッチ間の接続性の欠如が存在すると仮定する(処理ブロック25)。明らかに、図2において、転送プレーンは、無損傷であり、コントローラ103は、投入されて戻ってきた制御パケットを受信する。他方では、図3において、リンク障害に起因して、リンクの横断が失敗し、ループバックパケットの欠如が、リンク障害が存在することをコントローラ103に示すであろう。同じ制御フローについての多数のパケットを別々の時間に投入し、累積的な応答を見て、トポロジ接続性についての決定を行うことは、自明な事柄であることに留意されたい。
[0063]別の実施形態において、リンク障害が存在することを検出した後、コントローラは、これらの障害が発生した位置を突き止めるために、他の制御フロー及びそれらの予めインストールされた転送ルールを転送要素で使用することを開始する。図9(A)及び図9(B)は、障害の位置を突き止める(即ち、検出段階)だけでなく、どの転送ルールがどのスイッチにインストールされるべきかを判定する(即ち、セットアップ段階)プロセスの一実施形態を図示するフロー図である。本プロセスは、ハードウェア(回路、専用ロジック等)、(汎用コンピュータシステム又は専用機械で実行されるもの等の)ソフトウェア、ファームウェア、又はこれら3つの組合せを含み得る処理ロジックによって実行される。
[0064]図9(A)を参照すると、本プロセスは、所与のコントローラの処理ロジックによって、ピボットスイッチのセットを選択し、ピボットスイッチに直接アタッチされる正常なリンクを観測可能としてラベル付けすることから始まる(処理ロジック30)。パーティション事象が発生する場合、コントローラは、ピボットスイッチにアタッチされたリンクを使用して制御フロートラフィックを投入するため、ピボットスイッチの選択は重要である。したがって、これらのピボットスイッチ及びコントローラは、制御プレーン障害後に同じパーティション内に存在しなければならず、そうでない場合、インストールされた転送ルールは、使用不可能になる。
[0065]一実施形態において、処理ブロック30〜34は、唯一のピボットスイッチとしての転送要素毎に繰り返される。これは、各スイッチが多数の転送ルールを有し、多数の転送ルールの各々が、ピボットスイッチの別個の選択に対応する状況に潜在的につながる。別の実施形態において、入口スイッチ及び/又は出口スイッチのみが、ピボットスイッチとして使用される。その理由は、入口スイッチ及び/又は出口スイッチは、トラフィックエンジニアリングのための重要なポイントであるためである。図1Aに図示されるネットワークを仮定する図10において、コントローラ103は、スイッチ304をピボットスイッチとして使用し、したがって、パケットをリンク507及び508に投入することができる。
[0066]図9(A)を再び参照すると、コントローラの処理ロジックは、観測可能とラベル付けされたリンクを除いた全てのリンクを、昇順でソートされたリストに載せる(処理ロジック31)。一実施形態において、これらのリンクには重みが割り当てられ、所与のリンクについて、その重みは、観測可能なリンクからこの所与のリンクまでの最小距離(例えば、横断される必要がある転送要素の最小数)に等しい。一実施形態において、リストのソートは、これらのリンク重みに関して行われる。同じ重みを有するリンクは、それらの間で任意に順序付けされ得る。図10において、このソートされたリストは、{504、506、509、501、502、505、503}として算出される。
[0067]ソートされたリストを作成した後、コントローラの処理ロジックは、ソートされたリストを中央で再帰的に分割して、2つのサブリスト、即ち、左側のリスト及び右側のリストを作成することによって、二分木を形成する(処理ブロック32)。一実施形態において、左側のリストにおけるリンクは、右側のリストにおける全てのリンクよりも真に小さい重みを有する。図10は、各サブリストが701〜712として一意にラベル付けされる、そのような再帰的分割の結果を提供する。
[0068]その後、コントローラの処理ロジックは、ルートノードを除いて、処理ブロック32において構築された二分木におけるノード毎にトポロジグラフを構築する(処理ブロック33)。一実施形態において、トポロジグラフは、全ての観測可能なリンク、二分木内の現在のノードのサブリストに含まれる全てのリンク、及び現在のノードのサブリスト内のリンクよりも観測可能なリンクに近い全てのリンクを含む。さらに、これらのリンクのエンドポイントである全てのスイッチも、トポロジに含まれる。図10において、一例がノード701について与えられる。ノード701は、サブリスト{504、506、509}を有する。観測可能なリンク{507、508}により近い他のリンクは存在しない。したがって、トポロジは、リンク{504、506、507、508、509}を含む。これらのリンクのエンドポイントは{302、303、304、306、307}であるため、これらのスイッチも、トポロジの一部である。
[0069]最後に、処理ロジックは、図8(A)において開示される処理ブロック11〜15を繰り返す。その理由は、これらが同一であるためである。リンク障害の位置を突き止めるために、本方法は、二分木内のノード毎に別の走査ルールを予めインストールする。
[0070]別の実施形態において、各観測可能なリンクをトポロジ構築において別個のリンクとして含む代わりに、観測可能なリンクは、単一の仮想リンクとして一括されることができる。これにより、ハミルトン周期がより効率的に算出されるであろう。その理由は、この周期における最後のリンクが、観測可能なリンクのセットにおける最も近いリンクにジャンプすることができるためである。
[0071]コントローラが(1つ又は複数の)ピボットスイッチに最も近いリンク障害を検出することを望む場合、図9(B)の処理ブロック40〜48を実行することにより、そのリンク障害を識別する。リンク障害の位置を突き止めるために、本プロセスは、処理ロジックによってトポロジの接続性を検証することから始まる(処理ブロック40)。一実施形態において、これは、図8(A)及び図8(B)のプロセスを使用して実行される。但し、他の技法が使用されてもよい。トポロジ接続性が検証された場合、トポロジは接続されており、本プロセスは終了する(処理ブロック41)。そうでない場合、コントローラの処理ロジックは、処理ブロック32において構築された二分木のウォークを開始する。コントローラの処理ロジックは、まず、現在のルートノードの左の子についての制御フローパケットを投入し(処理ブロック43)、次いで、パケットが戻ってきて受信されたか否かを判定することによって障害が検出されたか否かをテストする(処理ブロック44)。パケットが戻ってきて受信された場合、処理ロジックは、障害が存在しないと判定し、処理ブロック45へ進む。パケットが戻ってきて受信されない場合、処理ロジックは、子ノードのサブリスト内の1つ又は複数のリンクにおける障害が発生したと判定し、処理ブロック46へ進む。
[0072]左の子が正常であると判定された場合、処理ロジックは、右の子を新たなルートとして設定することによって検索を継続し、この新たなルートの左の子についてインストールされた制御フローを使用して、処理ブロック43及び44を繰り返す。任意の左の子のノードについて障害が検出された場合、処理ロジックは、処理ブロック46において、リストが1つのリンクのみを有するのか、又は2つ以上のリンクを有するのかを確認する。リストが1つのリンクのみを有する場合、そのリンクは故障しており、プロセスは終了する(処理ブロック48)。2つ以上のリンクがサブリストに存在する場合、処理ロジックは、現在のルートを現在のノードに設定し、その左の子を走査することによって検索を継続する(処理ブロック47及び43)。一実施形態において、制御パケットの投入は、トポロジ接続性を確認する際と同じ手法で実行されるが、コントローラは、観測可能なリンクから、制御パケットを投入し始める。
[0073]一実施形態において、同じスイッチが二分木の種々の子ノードについて投入された多数の制御パケットを処理しなければならない場合、これらの制御パケットを区別するために、一意のビットマスクが使用される。選択は、コントローラ自体に委ねられ、送信元ポート、VLANタグ、MPLSラベル等を含む任意のフィールドは、この目的のために使用されることができる。一実施形態において、スイッチが種々の制御フローについて完全に同じ転送を行う場合、共通のプレフィックスを判定し、残りのビットを制御フロー識別子のビットマスクにおいて気にしないと設定することによって、制御フローは、単一の転送ルールに統合される。
[0074]処理ブロック40〜48は、最も近いリンク障害の位置を判定するために使用されるが、サブツリーの各ノードを確認するために、インストールされた制御フローを使用し、どのサブリストが障害が発生したリンクを含むかを判定することができる。このようにして、コントローラは、トポロジの切断された部分を識別することができる。例えば、図10によれば、コントローラ103は、ノード701〜712について12個の制御フローのセットアップを使用し、制御フローパケットを観測可能なリンクに投入する。図3において与えられる障害例では、コントローラ103は、二分木ノードを走査することによって以下を識別する。
{504、506、509}は(1つ又は複数の)故障リンクを有する
{504}は故障している
{506、509}は(1つ又は複数の)故障リンクを有する
{506}は故障している
{509}は故障していない
{504、506、509}は(1つ又は複数の)故障リンクを有する
{504}は故障している
{506、509}は(1つ又は複数の)故障リンクを有する
{506}は故障している
{509}は故障していない
[0075]したがって、コントローラは、リンク504及び506が故障していることを曖昧さなしに識別することができる。しかしながら、これらが唯一のエラーであると曖昧さなしに提示することは不可能である。その理由は、処理ブロック33においてノード702、705、706、709、710、711、及び712について構築されたトポロジが、これらの故障リンクを含むためである。
[0076]二分木の所与のノードにおいてリンクに到達するためのより少ない代替パスを有する小さなトポロジインスタンスでは、現在のツリーノードのリンク、観測可能なリンクのリンク、及びこの代替パスのリンクのみがトポロジに含まれる、代替パス毎に異なるトポロジを処理ブロック33において構築することができる。そのような配置において、代替パス毎に、コントローラの処理ロジックは、別の制御フローを算出する。例えば、ノード702について、1つのトポロジでは、リンク{501、502、503、505、507、508、509}が含まれ、第2のトポロジでは、リンク{501、502、503、504、505、507、508}が含まれ、第3のトポロジでは、リンク{501、502、503、505、506、507、508}が含まれる。これらのリンクの走査は、第1のトポロジのみが接続される一方で、第2及び第3のトポロジは接続されないことを識別するであろう。したがって、各リンク障害は、別々に識別され得る。
[付加的な実施形態]
[0077]転送プレーンにおけるインタフェースの接続性を検証するための技法の別の実施形態が存在する。これらは、2つの異なるシナリオ、即ち、対称的な障害の場合と非対称的な障害の場合とについて行われ得る。
[0077]転送プレーンにおけるインタフェースの接続性を検証するための技法の別の実施形態が存在する。これらは、2つの異なるシナリオ、即ち、対称的な障害の場合と非対称的な障害の場合とについて行われ得る。
[0078]対称的な障害の場合において、インタフェースの一方の方向が故障する場合、他方の方向も故障する。例えば、図1Bにおける転送要素301と転送要素302との間のインタフェース312は、通常の条件下では双方向である。したがって、インタフェース312は、パケットを302から301へ、且つ301から302へ送信することができる。302から301へのインタフェース312の障害は、301から302へのインタフェースの障害も暗示し、逆もまた同様であるため、コントローラは、各インタフェースを少なくとも1つの方向で確認することができれば満足である。これらの条件下で、一実施形態において、転送プレーンは、無向トポロジグラフG(V,E)によって表される。但し、Vは、転送要素に対応する頂点のセットであり、Eは、転送要素間のインタフェースに対応するエッジのセットである。図11は、図1B〜図1Dに示される転送プレーンについての無向グラフ表現の例を示す。それらの図1B〜図1Dを参照すると、転送要素301〜307は、このグラフの頂点を構成し、頂点間のインタフェースは、単位重量の無向エッジである。図12は、図11に示されるようなグラフを開始点として使用して仮想リングトポロジを構築するためのプロセスのフロー図である。一実施形態において、算出されたリングトポロジは、転送プレーンにおける各インタフェースを少なくとも1回ビジットする周期(ルーティングループ)を作成するために、インストールされるべき静的転送ルールを判定するために使用される。さらに、図12に述べられる動作は、リングサイズが減少され、潜在的には最小化されることを確保する。即ち、あらゆるインタフェースを少なくとも1回ビジットするものは、取り得る最短のルーティングループである。
[0079]図12における処理は、ハードウェア(回路、専用ロジック等)、(汎用コンピュータシステム又は専用機械で実行されるもの等の)ソフトウェア、ファームウェア、又はこれら3つの組合せを含み得る処理ロジックによって実行される。図12を参照すると、処理ロジックは、転送プレーントポロジから無向グラフG(V,E)を構築する(処理ブロック1200)。一実施形態において、エッジは単位重量を有すると仮定される。本プロセスの目標は、あらゆるエッジを少なくとも1回ビジットするものが最短周期となるように、このグラフ上で周期を見つけることである。あるグラフにおけるオイラー周期は、そのグラフ上の全てのインタフェースを丁度1回ビジットすることを試みる。したがって、オイラー周期が存在する場合、そのオイラー周期が、取り得る最短周期である。
[0080]無向グラフG(V,E)を構築した後、処理ロジックは、そのグラフ上の全ての頂点が偶数個のエッジ(即ち、偶数次)を有するか否かを判定する(処理ブロック1201)。回答が肯定的である場合、無向グラフG(V,E)は、オイラー周期を有し、本プロセスは、処理ロジックがオイラー周期を算出する処理ブロック1202に進む。回答が否定的である場合、無向グラフG(V,E)は、オイラー周期を有しない。中間ステップとして、処理ロジックは、新たなグラフ上であらゆる頂点が偶数次を有するように、頂点間に仮想エッジの最小コストのサブセットを追加することによって新たなグラフを構築する(処理ブロック1203)。一実施形態において、サブセットのコストは、そのサブセット内の各エッジの重みの合計である。仮想エッジの重みは、元のグラフG(V,E)上でその仮想エッジの一方の端部から他方の端部に到達するために必要な最小数のホップである。一実施形態において、この重みは、例えば、ダイクストラのアルゴリズムなどの最短パスアルゴリズムをG(V,E)に実行することによって算出される。頂点間の仮想エッジの最小コストのサブセットを見つけることは、文献において十分に確立されている。例えば、Edmondsら著、“Matching,Euler Tours and the Chinese Postman”、Mathematical Programming 5 (1973年)を参照されたい。
[0081]一旦そのような仮想エッジセットE’が算出されると、グラフは、G(V,E∪E’)に拡張される。処理ロジックは、この新たなグラフ上でオイラー周期を算出する(処理ブロック1202)。オイラー周期の算出も、本分野において周知であり、任意のそのような周知のアルゴリズムは、処理ブロック1202の一部として使用され得る。
[0082]最後に、処理ロジックは、算出されたオイラー周期を使用して論理リングトポロジを構築する(処理ブロック1204)。論理リングトポロジを使用することによって、コントローラが制御フローについてのパケットを任意の転送要素に投入する場合、そのパケットが論理リングトポロジに従ってループするように、静的転送ルールのセット及びこれらの転送ルールにマッチする制御フローが判定される。
[0083]図1Bの転送トポロジは、奇数個のエッジを備える頂点を含むグラフを有する。一実施形態において、転送トポロジは、全ての頂点が偶数次を有するグラフに拡張される。図12の処理ブロック1202及び1203に続いて、新たな最小限のグラフが、図13に示されるように構築される。図13を参照すると、仮想エッジ3251及び3361が結果として追加される。この新たなグラフ上で、オイラー周期は、11ホップの総コストを有して存在する。1つの取り得るオイラー周期及び論理リングトポロジは、図14に示される。静的転送ルールは、マッチするフローが論理リングを1つの(例えば、時計回りの)方向でループするようにインストールされる。周期が所与の転送インタフェースに同じ方向で1回だけ関与する場合、対応する転送要素における受信インタフェースにマッチする単純なルールは、ある周期を作成するのに十分であろう。図14において、インタフェース325は、周期上で2回発生するが、異なる方向で横断される(即ち、異なる転送要素における出来事)。したがって、各発生は、対応する転送ルールを対応する転送要素にインストールすることによって、容易に解決されることができる。所与の転送インタフェースが同じ方向で2回以上横断される場合、各インスタンス化は、多数の転送ルールを使用して、互いに区別される。図14の周期において、インタフェース336は、2回発生し、双方の発生において、同じ転送要素(306)での出来事である。したがって、転送要素は、2つの別個の転送ルールを有し、各発生は、一方にはマッチするが、他方にはマッチしない。これを達成する1つの手法は、複数の発生を区別するために、ヘッダフィールドの一部を予約することである。例えば、一実施形態において、転送要素がこのヘッダをサポートする場合、VLAN IDフィールドは、この目的のために使用される。当然ながら、転送ルールがVLAN ID及び/又は受信インタフェースに関して設定される場合、多くのフローは、これらのルールに誤ってマッチされ、ルーピングを開始する。一実施形態において、予め特定される制御フローのみが、そのようにルーティングされることを許される。制御フローを設定する1つの手法は、予約された送信元又は宛先トランスポートポート(例えば、UDP若しくはTCP)を使用すること、又は全てのコントローラに共通する送信元又は宛先IPアドレスプレフィックスを使用することである。コントローラに一意であるこれらのヘッダ値にマッチしないフローは、マッチするものを有せず、制御フローについてインストールされた静的ルールに従ってルーティングされないであろう。
[0084]上記のガイドラインに従うことによって、図14の論理リングトポロジについての静的転送ルールを容易に算出することができる。これらのルールは、リングが時計回りの方向で横断されるように設定される。
[0085]一旦制御フローについてのこれらの静的ルールが上記例におけるUDPポート番号を用いて識別されると、任意のコントローラは、トポロジ検証のためにこの制御フローに便乗することができる。図15は、トポロジ検証のためのプロセスの一実施形態のフロー図である。図15におけるプロセスは、ハードウェア(回路、専用ロジック等)、(汎用コンピュータシステム又は専用機械で実行されるもの等の)ソフトウェア、ファームウェア、又はこれら3つの組合せを含み得る処理ロジックによって実行される。
[0086]図15を参照すると、本プロセスは、コントローラの処理ロジックが、その現在の制御ドメインを判定し、その制御ドメイン内の任意のノードを投入及びループバックポイントとして選択することから始まる(処理ブロック1530)。この任意のノードは、そのコントローラから制御インタフェースを介してトポロジ検証のための制御メッセージを受信し、制御メッセージを転送プレーンに置き、メッセージが論理リングトポロジを通じてループしてその任意のノードに戻る場合に、メッセージをコントローラにループバックするべきである。この最後のループバック機能性を実現するために、コントローラは、トポロジ検証メッセージを投入する前に、新たな(動的)ルールをインストールする。そうでない場合、メッセージは、論理リングトポロジを通じて無限にループする。一実施形態において、動的ルールは、論理リングトポロジにおける次のホップを指し示す静的ルールを、その静的ルールが今やコントローラを指し示すように更新することによってインストールされる。これは可能ではあるが、他のコントローラのメッセージと干渉し得るため、好適ではない。別の実施形態において、静的ルールにおいて使用されるフィールドに加えて、コントローラ固有のヘッダフィールド(例えば、制御メッセージを投入するコントローラのIPアドレス又はMACアドレス)を特定することによって、新たな転送ルールが挿入される。したがって、投入及びループバックポイントとして使用されるこの転送要素において、2つのルール(1つは静的、1つは動的)は、同じコントローラによって投入される制御メッセージとマッチする。しかし、異なるコントローラによって送信される制御メッセージは、静的ルールにのみマッチし、別のコントローラによってインストールされる動的ルールにはマッチしないであろう。転送要素の一実施形態において、デフォルト設定により、最長のマッチが、より高い優先度を有する。別の実施形態では、最後にインストールされるルールが、より高い優先度を有する。また別の実施形態では、コントローラは、種々のマッチングルールの優先度を明示的に設定することができる。
[0087]次いで、処理ロジックは、投入ポイントを使用して、パケットを転送プレーンに投入する(処理ブロック1531)。一実施形態において、コントローラは、制御パケットについての送信インタフェース/ポートを明示的に特定する。この場合において、転送要素は、制御メッセージの一部分として送信インタフェースを特定し、同じメッセージの別の部分として転送プレーンを横断すべきパケットを特定する制御メッセージを受信している。転送要素は、そのような制御メッセージについて如何なる転送テーブルルックアップも適用しない。
[0088]別の実施形態において、コントローラは、転送プレーンを横断すべきパケットを制御メッセージの一部として特定する制御メッセージを送信するが、送信ポートを特定する代わりに、転送プレーンにおける受信ポートを制御メッセージの別の部分として特定する。そのような場合において、制御プレーンに転送されるべきパケットは、特定された受信ポートから受信されるかのように扱われ、したがって、転送テーブルルックアップ及び処理パイプラインを通常のペイロードとして経る。表2における静的ルールを提示する際に仮定される使用は、前者である。即ち、コントローラは、送信ポートを特定し、転送テーブルを迂回する。後者が使用される場合、同じ方向における同じインタフェースの多数の横断を区別することが、最初の投入と最後のループバックとの間に必要である。一実施形態において、これは、パケットヘッダ内のVLAN idフィールド又は任意の他の一意にアドレス指定可能なフィールドを使用して、又は新たなパケットヘッダフィールド(例えば、MPLSラベル)についてのプッシュ/ポップアクションを特定することによって行われる。表2に提示される例示的な静的ルールは、それに応じて修正される。
[0089]次に、コントローラの処理ロジックは、この処理ロジックが転送プレーンに投入したペイロードを受信するのを待つ(処理ブロック1532)。処理ロジックが、戻ってきたメッセージを受信する場合(処理ブロック1533)、トポロジ接続性は検証され、障害は検出されない。応答がない場合(処理ブロック1534)、トポロジは検証されず、転送プレーンに潜在的な障害が存在する。一実施形態において、コントローラは、いずれの結論においても、トポロジ接続性を(再)検証するために制御パケットを再投入する。制御フローは、ボトルネック帯域幅及び遅延拡散も見つけるために、ストリームとして又はバースト内で送信されてもよいことに留意されたい。
[0090]一例として、コントローラ101がD101={301、302、305}を有する、図1Dの場合を考慮されたい。したがって、コントローラ101は、D101内の任意の転送要素を、投入及びループバックポイントとして選択することができる。コントローラ101が転送要素302をこの役割において選択すると仮定する。その結果、コントローラ101は、まず、表2の静的ルールに伴うように新たな(動的)ルール(ループバックルールとも称される)を以下の形式でインストールすることができる。
[0091]{宛先UDP、受信インタフェース、送信元IP}={udp1、312、IP101}である場合、制御インタフェースを介してコントローラ101へ送信する。
[0092]次いで、コントローラ101は、その一部が送信インタフェース(例えば、325)を特定し、その一部が、送信元及び宛先UDPポートがudp1として特定されるIPペイロードであり、送信元IPアドレスがIP101によって満たされる、制御メッセージを整理することができる。コントローラ101は、このメッセージを転送要素302へ送信し、転送要素302は、制御メッセージをアンパックし、IPペイロードを制御メッセージにおいて特定される送信インタフェースへ転送すべきであることを知る。次いで、転送要素302は、IPペイロードを、特定されるインタフェース(即ち、325)へ転送する。IPペイロードが次の転送要素に達すると、その転送要素は、表1において特定される転送ルールのマッチングを開始し、単一のループを完成させるために、ルート305−302−303−306−307−304−303−306−305−301−302を取る。転送要素302が、送信元IPフィールドがIP101と設定され、送信元UDPポートがudp1と設定されたIPペイロードを受信インタフェース312から受信する場合、このペイロードは、コントローラ101によって設定されるループバックルールにマッチする。したがって、転送要素302は、制御インタフェース412を使用して、IPパケットをコントローラ101へ送信する(即ち、ループバックする)。
[0093]多数のコントローラが、トポロジを検証するために静的転送ルールの同じセットを共有するが、各々が、そのコントローラ自体の一意のループバックルールを論理リングトポロジにインストールしなければならない。そうすることによって、多数のコントローラは、互いに干渉することなく、制御パケットを同時に投入することができる。各制御パケットは、コントローラに渡される前に、単一のループを作る(即ち、投入ポイントに戻る)。図16は、コントローラ101、102、及び103が、(図1Bにおける例に従って)それらの対応する制御ドメインにおける転送要素を使用して、制御パケットを論理リングトポロジに投入する場合を示す。図16における論理リング及び投入ポイントの選択に従って、表3は、ループバックルールとしてインストールされ得る動的ルールを要約している。
[0094]
[0095]上記の別の実施形態は、各インタフェースの1つの方向のみが検証される場合に所与のコントローラが満足する対称的な場合に関与する。インタフェースの一方の方向における障害が他方の方向における障害を暗示しない非対称的な場合を拡張して、コントローラは、各方向を別々に検証することを望むであろう。一実施形態において、これは、転送プレーンを有向グラフG(V,A)として扱うことによって行われる。但し、Vは、以前と同様に、転送要素のセットに対応する頂点のセットであり、Aは、インタフェースの各方向を別の無向インタフェースとして数えることによる全てのインタフェースのセットに対応する弧(即ち、有向エッジ)のセットである。図17は、図1Bに示される転送プレーンについてのそのようなグラフの例である。
[0096]有向グラフを有することの主な相違点は、各インタフェースが双方向性であると仮定するため、結果として得られる有向グラフが対称的であり、効率的に算出され得るオイラー周期を有することが保証され、このグラフをさらに拡張する必要がないことである。したがって、図12に挙げられる動作は、図18に簡略化される。図18のプロセスは、ハードウェア(回路、専用ロジック等)、(汎用コンピュータシステム又は専用機械で実行されるもの等の)ソフトウェア、ファームウェア、又はこれら3つの組合せを含み得る処理ロジックによって実行される。
[0097]図18を参照すると、本プロセスは、グローバル転送プレーントポロジを有向グラフにマッピングすること(処理ブロック1820)によって始め、オイラー周期を直接算出することに進む(処理ブロック1821)。本プロセスは、処理ロジックがこの特定のオイラー周期に従って論理リングトポロジRを構築し、静的転送ルールを算出することで終了する(処理ブロック1822)。以前と同様に、静的転送ルールの総数は、オイラー周期の長さに等しく、この場合においては、丁度|A|=2|E|である。但し、|x|は、セットxの濃度(サイズ)である。静的及び動的転送ルール(例えば、ループバックルール)が算出及びインストールされる手法、並びにコントローラがトポロジ全体を検証する方法は、対称的な障害の場合と同じである。一実施形態において、唯一の相違点は、構築される論理リングトポロジであり、これは異なるルールのセットを必要とする。
[0098]本発明の実施形態は、あるトポロジが本来あるべきように接続されているか否かを検証するだけでなく、少なくとも1つの障害の位置を突き止める効率的な方法も開示する。図19は、任意のリンク障害の位置を突き止めるために使用される静的転送ルールのセットを算出するためのプロセスのフロー図である。本プロセスは、ハードウェア(回路、専用ロジック等)、(汎用コンピュータシステム又は専用機械で実行されるもの等の)ソフトウェア、ファームウェア、又はこれら3つの組合せを含み得る処理ロジックによって実行される。
[0099]図19を参照すると、本プロセスは、各インタフェースを少なくとも1回横断するリングトポロジRを処理ロジックが構築することから始まる(処理ブロック1900)。リングトポロジRを見つけるプロセスは、対称的なリンク障害の場合及び非対称的なリンク障害の場合について、それぞれ図12及び図18において既に説明されている。次に、処理ロジックは、時計回りのウォークWを定義し(処理ブロック1901)、このウォークWを反転させることによって、反時計回りのウォークW’を定義する(処理ブロック1902)。処理ロジックは、静的転送ルールをインストールすることによって、これらのウォークをルーティングループとして実現する(処理ブロック1903)。最後に、処理ブロック1904は、特定の実施形態に依存する。一実施形態において、処理ロジックは、ウォークW’を論理リングの任意のポイントにおいて反転させて、Wにおけるウォークを継続するために、ホップ毎に1つのバウンスバック(bounce back)ルールをインストールする。別の実施形態において、処理ロジックは、ウォークWを論理リングの任意のポイントにおいて反転させて、W’におけるウォークを継続するために、ホップ毎に1つのバウンスバックルールをインストールする。また別の実施形態において、処理ロジックは、論理リングの各ノードにおいて、2つのバウンスバックルール、即ち、ウォークW’をWに反転させるためもの、及びウォークWをW’に反転させるためのものをインストールする。
[00100]図20は、図11の無向グラフを仮定する図1B〜図1Dにおいて与えられるトポロジについての例を示す。この例では、反時計回りのウォークW’及び時計回りのウォークWがインストールされる。一実施形態において、表2に提示される静的ルールは、時計回りのルーティングループWを実現するために、対応する転送要素にインストールされる。一実施形態において、表2の静的ルールは、反時計回りのウォークW’を実現するために、各行において、受信インタフェースの値を送信インタフェースの値に置換することによって変更される。同じインタフェースが同じ方向において多数回横断される場合、これらの異なる発生は、適当なパケットのタグ付けを用いてカウントされる。タグ付けを実行するノード、及びルーティングのためにタグ情報を使用するノードは、WとW’との間で変化する。例えば、Wにおいて、インタフェース336は、転送要素303から転送要素306へ行く際に2回横断される。この横断に先立つ転送要素は、タグ付けを実行し(即ち、Wについての転送要素304及び302)、出口転送要素306は、このタグ付けを使用して、正しい方向(305又は307)を辿る。反対のウォークW’において、336は2回横断されるが、反対方向(306から303)においてである。したがって、W’において306に先立つ転送要素は、今回は、タグ付けを実行し(転送要素305及び307)、出口転送要素303は、このタグ付けを使用して、正しい方向(302又は304)を辿る。さらに、時計回りのウォークを反時計回りのウォークと区別するためには、パケットヘッダ内に一意の値、例えば、一意の宛先トランスポートポート番号を設定する必要がある。この差別化は、同じインタフェースがウォークWの一部としてそれぞれの反対方向において横断される場合にのみ必要とされる。図20の例示的なトポロジリングの場合、インタフェース325は、双方の方向において横断される。したがって、転送要素305は、一意のヘッダフィールドを確認することによって、パケットがどのウォークを辿るのかを知らなければならない。
[00101]図19の処理ブロック1904に従って、別個のバウンスバックルールは、任意の頂点においてW’からWへ切り替えることができるように、各頂点にインストールされる。各バウンスバックルールは、一意の制御パケットidに固有である。この目的のため、サポートされるヘッダフィールドについての任意の予約された範囲が使用され得る。例えば、R上の各頂点kに一意の仮想IPアドレスvipk(物理インタフェースに属しないという意味で仮想であるが、単に論理リングの頂点を列挙するために使用される)を割り当てることができる。転送要素は、多数の頂点にマッピングされることができ、頂点は、別々にカウントされる。例えば、図20において、転送要素302、303、305、306は、R上の2つの別個の頂点にマッピングされ、頂点毎に、別個のIPアドレスを割り当てられる。例えば、転送要素302はv2及びv4にマッピングされ、したがって、vip2及びvip4について設定されるバウンスバックルールは、転送要素302にインストールされる。図20についてのバウンスバックルールは、表4において報告される。
[00102]図21は、バウンスバックルールが時計回りのウォーク及び反時計回りのウォークの双方について使用される場合を図示する。正しいVLAN IDフィールドを設定するだけでなく、表5において、udp1をudp2と置換し、udp2をudp1と置換することによって、トポロジリングの各ノードにおいてウォークWをW’に切り替えるための静的バウンスバックルールが取得される。そのような2つのバウンスバックルールを有することは、任意のコントローラがトポロジリングを双方の方向において検査することを可能にし、より多くの障害及びより短いルートの検出を可能にする。
[00103]任意のリンク障害の位置を実際に突き止めるために、コントローラは、論理リングトポロジRに従うインストールされた静的ルールに従ってルーティングされるパケットを転送プレーンに投入する。コントローラは、その制御ドメイン内の転送要素を、投入及びループバックポイントとして選択する。トポロジ検証の場合のように、ループバック転送ルールは、任意のパケットが投入される前に、投入ポイントにインストールされる。表3のループバックルールは、例えば、図20に図示されるリングトポロジ上の種々のコントローラによって使用され得る。一実施形態において、コントローラは、論理リングトポロジに対応する1つのバウンスバックルールのみがインストールされるセットアップを使用する。図22は、そのようなバウンスバックルールが反時計回りのウォークW’から時計回りのウォークWに切り替えるためにインストールされると仮定する、任意のリンク障害を検出するためのプロセスの一実施形態のフロー図である。本プロセスは、ハードウェア(回路、専用ロジック等)、(汎用コンピュータシステム又は専用機械で実行されるもの等の)ソフトウェア、ファームウェア、又はこれら3つの組合せを含み得る処理ロジックによって実行される。
[00104]図22を参照すると、コントローラの処理ロジックは、1つ又は複数のトポロジ検証メッセージを、その投入ポイントに送信する(処理ブロック2200)。メッセージが戻ってきて受信される場合、全てのインタフェースは正常であり、本手続きは終了する(処理ブロック2201)。本手続きは、処理ブロック2200を開始することから始まる周期的又は非周期的なトリガに基づいて、常に繰り返され得ることに留意されたい。いずれのトポロジ検証メッセージも戻ってきて受信されない場合、潜在的に障害が発生したインタフェースが存在し、本手続きは、障害検出フェーズを実行することを開始する(処理ブロック2202において開始する)。
[00105]コントローラの処理ロジックは、投入ポイントに0°を割り当て、ノード間で360°を均等に分割することによって、論理リング上のノードに角度を割り当てる(処理ブロック2202)。論理リングにN個の頂点が存在する場合、各頂点は、360°/Nによって均等に(又は、360°/Nが整数ではない場合、除算を最も近い整数に四捨五入することによって、ほぼ均等に)分離されると仮定され、投入ポイントから反時計回りの方向におけるi番目の頂点は、i×360°/Nの角度を割り当てられる。図20の例示的なリングにおいて、論理リングには11個のノード(即ち、頂点)が存在し、したがって、各頂点は、360°/11≒33°だけ分離されると仮定される。
[00106]次に、コントローラの処理ロジックは、検索角度θをリングの半分、即ち、θ=180°に初期化する(処理ブロック2202)。対称的な障害の場合において、インタフェース障害の候補セット(即ち、検索セット)は、対応する無向グラフG(V,E)のEにおける全てのエッジを含む。非対称的な場合において、インタフェース障害の候補セットは、対応する有向グラフG(V,A)のAにおける全ての弧を含む。検索セットは最初は、論理リングトポロジの全てのエッジを含むため、リング上の最小検索角度(即ち、
)は、0°に初期化され、リング上の最大検索角度(即ち、
)は、360°に初期化される。コントローラは、バウンスバックノードの角度が検索角度を超えずに最大の角度となるように、論理リングの頂点kを見つけることによって、バウンスバックノードを選ぶ。
)は、0°に初期化され、リング上の最大検索角度(即ち、
)は、360°に初期化される。コントローラは、バウンスバックノードの角度が検索角度を超えずに最大の角度となるように、論理リングの頂点kを見つけることによって、バウンスバックノードを選ぶ。
[00107]コントローラの処理ロジックは、制御メッセージのペイロードにおいて頂点kをバウンスバックノードとして識別することによって、その制御メッセージをW’に投入する(処理ブロック2204)。メッセージが受信されない場合、論理リングRの
とθとの間に存在するインタフェースは、障害を起こしている(処理ブロック2205)。したがって、検索は、閉区間
に絞り込まれ(処理ブロック2206)、検索セットは、
に存在するインタフェースに更新される。他方で、メッセージが受信される場合、閉区間[0,θ]のインタフェースは、成功裡にビジットされ、検索セットから除去されることができる。一実施形態において、検索角度は、論理リングトポロジの未検索領域の半分を追加することによって拡大される(処理ブロック2207)。次に、処理ロジックは、検索セットに1つのインタフェース候補のみが残っているか否かを確認する(処理ブロック2208)。そうである場合、この残りのインタフェースは、故障していると宣言される(処理ブロック2209)。そうでない場合、検索は、新たなバウンスバックノードを目標とする制御パケットを投入することによって、論理リングRの次のセグメントで継続される。論理リングがN個の頂点を有する場合、検索全体で、約log2(N)個の検索ステップを必要とする(即ち、これだけ多くの制御メッセージが連続して投入される)。
とθとの間に存在するインタフェースは、障害を起こしている(処理ブロック2205)。したがって、検索は、閉区間
に絞り込まれ(処理ブロック2206)、検索セットは、
に存在するインタフェースに更新される。他方で、メッセージが受信される場合、閉区間[0,θ]のインタフェースは、成功裡にビジットされ、検索セットから除去されることができる。一実施形態において、検索角度は、論理リングトポロジの未検索領域の半分を追加することによって拡大される(処理ブロック2207)。次に、処理ロジックは、検索セットに1つのインタフェース候補のみが残っているか否かを確認する(処理ブロック2208)。そうである場合、この残りのインタフェースは、故障していると宣言される(処理ブロック2209)。そうでない場合、検索は、新たなバウンスバックノードを目標とする制御パケットを投入することによって、論理リングRの次のセグメントで継続される。論理リングがN個の頂点を有する場合、検索全体で、約log2(N)個の検索ステップを必要とする(即ち、これだけ多くの制御メッセージが連続して投入される)。
[00108]図23、図24、及び図25は、これまでに使用されたリングトポロジ例上での、図22に概説される二分検索メカニズムの三度の繰返しを示す。ステップ1(図23)において、リングの半分が、投入ポイントから開始して反時計回りの方向で検索され、このセグメントに障害は存在しないと結論を下す。ステップ2において、検索は、論理リングのおおよそ3/4に拡大され、ここでも、この部分に障害は存在しないという結論である。この例の最後のステップにおいて、制御パケットに対する応答の欠如は、インタフェース356が故障しているはずであることを暗示する。
[00109]リングの一方向のみにおける検索は、(多数の障害が発生し得た場合であっても)リンク障害検出を単一のリンクに限定する。さらに、検索がリングの半分を越えて拡大される場合、制御パケットは、正常であると知られているリングの半分を不必要に横断する(例えば、図24及び図25における動作2及び動作3)。論理リングがN個のノードを有する場合、付加的なN個の静的ルールをインストールすることは、図21を説明する際に強調されたように、リングの双方の方向を随意に横断し、且つWからW’へ又はその逆へ切り替えることができるように、ルーティングルールを生成するであろう。これは、リングの周りにより短いウォークを作成し、最大で2つのリンク障害の位置を突き止めることを可能にする。
[00110]図26は、更新された二分検索を実行するためのプロセスの一実施形態のフロー図である。本プロセスは、ハードウェア(回路、専用ロジック等)、(汎用コンピュータシステム又は専用機械で実行されるもの等の)ソフトウェア、ファームウェア、又はこれら3つの組合せを含み得る処理ロジックによって実行される。
[00111]図26を参照すると、本プロセスは、処理ロジックがトポロジ接続性を検証することから始まる(処理ブロック2600)。トポロジが接続されている場合、処理ロジックは、障害が存在しないことを宣言する(処理ブロック2601)。そうでない場合、処理ロジックは、論理リングトポロジに反時計回りの方向で頂点を均等に配置することによって、リングの各頂点に角度を割り当てる(処理ブロック2602)。一般性を失うことなく、処理ロジックは、まず、反時計回りの方向におけるリングの半分に検索を初期化する(処理ブロック2603)。次いで、処理ブロック2604は、処理ロジックが検索角度を確認するため、図22において概説された手続きとは異なる。検索角度が180°よりも大きい場合、処理ロジックは、Wを使用して時計回りの方向でウォークを作成する。検索角度が180°以下の場合、処理ロジックは、反時計回りのウォークW’を継続し、残りの反復は、図22の残りの反復と同等となるであろう。制御メッセージの受信又は受信の欠如(処理ブロック2605)は、検索角度に応じて異なる事柄を暗示する。メッセージが受信され(処理ブロック2605)、検索角度が180°を上回った(処理ブロック2606)場合、最大検索角度
は、減少される(処理ブロック2609)。メッセージが受信され(処理ブロック2605)、検索角度が180°以下だった(処理ブロック2606)場合、最小検索角度
は、代わりに増加される(2608)。対照的に、メッセージが戻ってきて受信されず(処理ブロック2605)、検索角度が180°を上回った(処理ブロック2606)場合、
最小検索角度
は、増加される(処理ブロック2608)。また、メッセージが戻ってきて受信されず(2605)、検索角度が180°以下だった(処理ブロック2606)場合、最大検索角度
は、減少される(処理ブロック2609)。検索セットが1つのインタフェースのみを残す場合(処理ブロック2610)、処理ロジックは、残りのインタフェースが故障していることを宣言する(処理ブロック2611)。検索セットに2つ以上のインタフェースが存在する場合、反復は継続する(処理ブロック2604)。この手続き全体も、任意のリンク障害の位置を突き止めるために、約log2(N)個の制御メッセージを必要とする。
は、減少される(処理ブロック2609)。メッセージが受信され(処理ブロック2605)、検索角度が180°以下だった(処理ブロック2606)場合、最小検索角度
は、代わりに増加される(2608)。対照的に、メッセージが戻ってきて受信されず(処理ブロック2605)、検索角度が180°を上回った(処理ブロック2606)場合、
最小検索角度
は、増加される(処理ブロック2608)。また、メッセージが戻ってきて受信されず(2605)、検索角度が180°以下だった(処理ブロック2606)場合、最大検索角度
は、減少される(処理ブロック2609)。検索セットが1つのインタフェースのみを残す場合(処理ブロック2610)、処理ロジックは、残りのインタフェースが故障していることを宣言する(処理ブロック2611)。検索セットに2つ以上のインタフェースが存在する場合、反復は継続する(処理ブロック2604)。この手続き全体も、任意のリンク障害の位置を突き止めるために、約log2(N)個の制御メッセージを必要とする。
[00112]図26における検索が発生する手法は、図27、図28、及び図29において、以前と同じ障害シナリオで例証される。第1のステップでも、リングの半分を反時計回りの方向で検索する(図27)。このリングの半分には障害がないと分かるため、障害は、投入ノードから開始する時計回りの半分に存在するはずである。したがって、第2のステップにおいて、検索は、時計回りの方向で行われる。図24におけるステップ2とは異なり、今回は、障害が図25において第2のステップで検出される。最大検索角度を減少させることよりもむしろ、第3のステップにおいて、最大検索角度は増加され、異なるバウンスバックノードが選択される(図21における先のラベル付けに従うと、v10)。障害が起きたリンクは、このステップにおいて成功裡に識別される。
[00113]別の実施形態において、連続的な二分検索を論理リングに対して実行することよりもむしろ、1つ又は双方の方向において制御パケットを並行して送信することができる。より多くの制御メッセージを使用することを代償にして、検出遅延は増加されることができ、より多くのリンク障害の位置が突き止められることができる。具体的には、投入ポイントに最も近い2つのリンク障害が、1つは時計回りの方向において、もう1つは反時計回りの方向において識別されることができる。コントローラが2つ以上の投入ポイントに到達することができる場合、潜在的により多くのリンク障害が識別されることができる。
[00114]一実施形態において、リングの双方の方向でウォークすること及び2つ以上の投入ポイントを使用することは、多数の動的ループバックルールがインストールされることを必要とする。一例として、インタフェース334、336、347が障害を起こしたと仮定する。コントローラ101は、図21と同様に構築された論理リングと共に転送要素301、302、305を使用して、367がいまだに正常であることを検証しつつ、障害336及び347の位置を突き止めることができる。したがって、他のコントローラと連絡を取ることができない場合であっても、コントローラ101は、検出された障害を迂回し、トポロジの検証済みの部分を使用することによって、有用な情報を抽出することができる。
[システムの一例]
[00115]図30は、上述されたプロセスのうちの1つ又は複数を実行するために使用され得るシステムのブロック図を図示する。図30を参照すると、システム310は、プロセッサ3014、システムメモリ3017(例えば、RAM、ROM等)、入力/出力コントローラ3018、ディスプレイアダプタ3026を介したディスプレイ画面3024等の外部デバイス、シリアルポート3028及び3030、(キーボードコントローラ3033に接続される)キーボード3032、記憶インタフェース3034、フロッピーディスク3038を受け取るように動作可能なフロッピーディスクドライブ3037、ファイバチャネルネットワーク3090に接続するように動作可能なホストバスアダプタ(HBA:host bus adapter)インタフェースカード3035A、SCSIバス3039に接続するように動作可能なホストバスアダプタ(HBA)インタフェースカード3035B、及び光ディスクドライブ3040等の、システム3010のサブシステムを相互接続するためのバス3012を含む。マウス3046(又は、シリアルポート3028を介してバス3012に結合される、他のポイントアンドクリックデバイス)、(シリアルポート3030を介してバス3012に結合される)モデム3047、及び(バス3012に直接結合される)ネットワークインタフェース3048も含まれる。
[00115]図30は、上述されたプロセスのうちの1つ又は複数を実行するために使用され得るシステムのブロック図を図示する。図30を参照すると、システム310は、プロセッサ3014、システムメモリ3017(例えば、RAM、ROM等)、入力/出力コントローラ3018、ディスプレイアダプタ3026を介したディスプレイ画面3024等の外部デバイス、シリアルポート3028及び3030、(キーボードコントローラ3033に接続される)キーボード3032、記憶インタフェース3034、フロッピーディスク3038を受け取るように動作可能なフロッピーディスクドライブ3037、ファイバチャネルネットワーク3090に接続するように動作可能なホストバスアダプタ(HBA:host bus adapter)インタフェースカード3035A、SCSIバス3039に接続するように動作可能なホストバスアダプタ(HBA)インタフェースカード3035B、及び光ディスクドライブ3040等の、システム3010のサブシステムを相互接続するためのバス3012を含む。マウス3046(又は、シリアルポート3028を介してバス3012に結合される、他のポイントアンドクリックデバイス)、(シリアルポート3030を介してバス3012に結合される)モデム3047、及び(バス3012に直接結合される)ネットワークインタフェース3048も含まれる。
[00116]バス3012は、中央プロセッサ3014とシステムメモリ3017との間のデータ通信を可能にする。システムメモリ3017(例えば、RAM)は、一般的には、オペレーティングシステム及びアプリケーションプログラムがロードされるメインメモリであり得る。ROM又はフラッシュメモリは、数あるコードの中でも、周辺部品との相互作用などの基本的なハードウェア動作を制御する基本入出力システム(BIOS:Basic Input−Output system)を含み得る。コンピュータシステム3010に常駐するアプリケーションは、一般的には、ハードディスクドライブ(例えば、固定ディスク3044)、光ドライブ(例えば、光ドライブ3040)、フロッピーディスクユニット3037、又は他の記憶媒体等のコンピュータ読取可能な媒体に記憶され、コンピュータ読取可能な媒体を介してアクセスされる。
[00117]記憶インタフェース3034は、コンピュータシステム3010の他の記憶インタフェースと同様に、固定ディスクドライブ3044等の、情報の記憶及び/又は検索のための標準的なコンピュータ読取可能な媒体に接続することができる。固定ディスクドライブ3044は、コンピュータシステム3010の一部であってもよく、又は、コンピュータシステム3010とは別であって、他のインタフェースシステムを通じてアクセスされてもよい。
[00118]モデム3047は、電話リンクを介して遠隔サーバへの、又はインターネットサービスプロバイダ(ISP:internet service provider)を介してインターネットへの直接接続を提供し得る。ネットワークインタフェース3048は、遠隔サーバへの直接接続を提供し得る。ネットワークインタフェース3048は、POP(point of presence:存在点)を介したインターネットへの直接的なネットワークリンクを介して遠隔サーバへの直接接続を提供し得る。ネットワークインタフェース3048は、そのような接続を、デジタルセルラ電話接続、パケット接続、デジタル衛星データ接続等を含む無線技法を使用して提供し得る。
[00119]多くの他のデバイス又はサブシステム(図示せず)が、同様の手法で接続されることができる(例えば、文書スキャナ、デジタルカメラ等)。反対に、図30に示される全てのデバイスは、本明細書において説明される技法を実施するために存在する必要はない。デバイス及びサブシステムは、図30に示されるものとは異なる手法で相互接続されてもよい。図30に示されるもの等のコンピュータシステムの動作は、本分野において容易に知られ、本願では詳細に説明されない。
[00120]本明細書において説明されるプロセスを実装するためのコードは、システムメモリ3017、固定ディスク3044、光ディスク3042、又はフロッピーディスク3038のうちの1つ又は複数等の、コンピュータ読取可能な記憶媒体に記憶されることができる。
[00121]本発明の多くの変形及び変更は、おそらく前述の説明の読後には当業者に明らかとなる一方で、例示として示され、説明された任意の特定の実施形態は、限定するものと考えられることを全く意図されないことが理解されるべきである。それ故に、様々な実施形態の詳細への言及は、特許請求の範囲を限定することを意図されず、特許請求の範囲は、本質的に、本発明に必須と考えられる特徴のみを記載する。
Claims (25)
- 通信ネットワークについてのネットワークフローの所定のサブセットと共に使用するための方法であって、前記ネットワークが、制御プレーン、転送プレーン、及び1つ又は複数のコントローラを含む、前記方法が、
ネットワーク情報の識別のために転送ルールを前記転送要素にインストールするステップであって、前記転送ルールが1つ又は複数の別の制御フローにグループ化され、前記1つ又は複数の制御フローの各々が、前記各制御フローの前記転送ルールに従って、前記ネットワークの少なくとも一部を通じて閉ループウォークを作成する、インストールするステップと、
1つ又は複数の制御フローについてのトラフィックを前記転送プレーンに投入するステップと、
前記トラフィックの投入の結果に基づいて、前記ネットワーク情報を識別するステップと、
を含む、方法。 - 前記ネットワーク情報が、リンク障害、トポロジ接続性、及びネットワークフローの所定のサブセットのルーティング可能性から成る群のうちの1つ又は複数を含む、請求項1に記載の方法。
- 前記転送ルールが、任意のネットワークトポロジグラフの接続性を検証するためのものである、請求項1に記載の方法。
- 前記転送ルールが、前記トポロジグラフによって表されるネットワークトポロジにおいて転送プレーンの各リンクを横断する制御フローを構築することによって、前記任意のネットワークトポロジグラフの接続性を検証する、請求項3に記載の方法。
- オイラー周期が前記転送プレーンの前記トポロジグラフに存在する場合、オイラー周期を算出するステップと、
最小長の周期を算出するステップと、
静的ルールをインストールして、算出された前記最小長の周期に従って1つ又は複数の制御パケットをルーティングするステップと、
前記ルーティングループの任意のポイントにおいて動的ループバックルールをインストールして、前記コントローラによって投入される前記制御フローパケットを、各パケットが1つの完全な周期を完了した後に前記コントローラに返送するステップと、
をさらに含む、請求項3に記載の方法。 - 前記最小長の周期を算出するステップが、中国人郵便配達問題を解決するステップを含む、請求項5に記載の方法。
- 前記転送ルールが、前記転送プレーンの各リンクを横断する制御フローを構築することによって、任意のネットワークトポロジグラフの接続性を検証するためのものである、請求項1に記載の方法。
- 前記転送プレーンの各リンクを横断する制御フローを構築することが、
リンク隣接グラフを作成することと、
重み付けされた完全なトポロジグラフを作成することと、
前記重み付けされた完全なトポロジグラフでハミルトン周期を算出することと、
前記ハミルトン周期に基づいて、前記制御フローについての転送ルールを導くことと、
を含む、請求項7に記載の方法。 - 前記転送ルールが、リンク障害を検出するために使用される、請求項1に記載の方法。
- リンク障害を検出することが、
論理リングトポロジを算出することと、
制御フローを構築するためのルーティングルールをインストールして、前記論理リングトポロジを第1の方向でループすることであって、前記第1の方向が、時計回りの方向又は反時計回りの方向である、ループすることと、
制御フローを構築するためのルーティングルールをインストールして、前記論理リングトポロジを前記第1の方向と反対の第2の方向でループすることと、
バウンスバック(bounce back)ルールをインストールして、制御フローのルーティングを前記第1の方向と反対の第2の方向に切り替えることと、
を含む、請求項9に記載の方法。 - 前記転送ルールが、ネットワークフローのルーティング可能性を検証するために使用される、請求項1に記載の方法。
- 前記転送ルールが、ネットワークフローの実行パイプラインを通過する転送制御フローと、前記転送制御フローの反対向きのパスに従うと共に、前記転送制御フローが開始するネットワークコントローラにおいて終了する前記ネットワークフローの出口スイッチによって反射される反対向きの制御フローとに対応する、請求項11に記載の方法。
- 制御プレーン、転送要素を備える転送プレーン、及び1つ又は複数のコントローラを含む複数のノードのネットワークトポロジと、
1つ又は複数の制御フローについてのトラフィックを前記転送プレーンに投入し、前記トラフィックの投入の結果に基づいて、ネットワーク情報を識別するように動作可能な前記コントローラのうちの少なくとも1つと、
を備え、
前記転送要素が、前記ネットワーク情報の識別のための転送ルールを有し、前記転送ルールが1つ又は複数の別の制御フローにグループ化され、前記1つ又は複数の制御フローの各々が、前記各制御フローの前記転送ルールに従って、前記ネットワークの少なくとも一部を通じて閉ループウォークを作成する、
通信ネットワーク。 - 前記ネットワーク情報が、リンク障害、トポロジ接続性、及びネットワークフローの所定のサブセットのルーティング可能性から成る群のうちの1つ又は複数を含む、請求項13に記載の通信ネットワーク。
- 前記転送ルールが、任意のネットワークトポロジグラフの接続性を検証するためのものである、請求項13に記載の通信ネットワーク。
- 前記少なくとも1つのコントローラが、
オイラー周期が前記転送プレーンの前記トポロジグラフに存在する場合、オイラー周期を算出し、
最小長の周期を算出し、
静的ルールをインストールして、算出された前記最小長の周期に従って1つ又は複数の制御パケットをルーティングし、
前記ルーティングループの任意のポイントにおいて動的ループバックルールをインストールして、前記コントローラによって投入される前記制御フローパケットを、各パケットが1つの完全な周期を完了した後に前記コントローラに返送する
ことによって、前記ネットワークトポロジの接続性を検証する、請求項15に記載の通信ネットワーク。 - 前記最小長の周期を算出することが、中国人郵便配達問題を解決することを含む、請求項16に記載の通信ネットワーク。
- 前記転送ルールが、前記ネットワークトポロジグラフの接続性を検証するために使用される、請求項13に記載の通信ネットワーク。
- 前記少なくとも1つのコントローラが、
リンク隣接グラフを作成し、
重み付けされた完全なトポロジグラフを作成し、
前記重み付けされた完全なトポロジグラフでハミルトン周期を算出し、
前記ハミルトン周期に基づいて、前記制御フローについての転送ルールを導く
ことによって、前記転送プレーンの各リンクを横断する制御フローを構築する、請求項18に記載の通信ネットワーク。 - 前記転送ルールが、リンク障害を検出するために使用される、請求項13に記載の通信ネットワーク。
- 前記少なくとも1つのコントローラが、
論理リングトポロジを算出し、
制御フローを構築するためのルーティングルールをインストールして、前記論理リングトポロジを第1の方向でループし、前記第1の方向が、時計回りの方向又は反時計回りの方向であり、
制御フローを構築するためのルーティングルールをインストールして、前記論理リングトポロジを前記第1の方向と反対の第2の方向でループし、
バウンスバック(bounce back)ルールをインストールして、制御フローのルーティングを前記第1の方向と反対の第2の方向に切り替える
ことによって、リンク障害を検出する、請求項20に記載の通信ネットワーク。 - 前記転送ルールが、ネットワークフローのルーティング可能性を検証するために使用される、請求項13に記載の通信ネットワーク。
- 前記転送ルールが、ネットワークフローの実行パイプラインを通過する転送制御フローと、前記転送制御フローの反対向きのパスに従うと共に、前記転送制御フローが開始するネットワークコントローラにおいて終了する前記ネットワークフローの出口スイッチによって反射される反対向きの制御フローとに対応する、請求項22に記載の通信ネットワーク。
- ネットワークトポロジにおけるリンク障害を突き止めるための方法であって、前記方法が、
論理リングトポロジのノードにループバックルールをインストールするステップと、
前記論理リングトポロジに対して二分検索を実行するステップであって、
前記論理リングのノードを選択し、
制御パケットを前記リングを通じて第1の方向で送信し、
前記制御パケットを、選択された前記ノードにおいて前記リングを通じて、前記第1の方向の反対向きである第2の方向にバウンスバック(bounce back)し、
前記制御パケットを送信することに先立ってインストールされるループバックルールを介して前記コントローラにおいて前記制御パケットを受信する
ことによって、前記二分検索を実行するステップと、
を含む、方法。 - 複数のノードを有するネットワークトポロジにおけるリンク障害を突き止める方法であって、前記方法が、
複数の制御パケットの各々について前記ネットワークにおけるバウンスバック(bounce back)ポイントを特定するステップと、
前記ネットワークを表す構築された論理リングの1つ又は複数のポイントから前記複数の制御パケットを送信するステップと、
前記複数の制御パケットの受信が成功したか否かに基づいて、リンク障害検出決定を行うステップと、
を含む、方法。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261703704P | 2012-09-20 | 2012-09-20 | |
US61/703,704 | 2012-09-20 | ||
US201361805896P | 2013-03-27 | 2013-03-27 | |
US61/805,896 | 2013-03-27 | ||
PCT/US2013/058096 WO2014046875A1 (en) | 2012-09-20 | 2013-09-04 | A method and apparatus for topology and path verification in networks |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015533049A true JP2015533049A (ja) | 2015-11-16 |
Family
ID=49230845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015533087A Withdrawn JP2015533049A (ja) | 2012-09-20 | 2013-09-04 | ネットワークにおけるトポロジ及びパス検証のための方法及び装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20150249587A1 (ja) |
JP (1) | JP2015533049A (ja) |
WO (1) | WO2014046875A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017215933A (ja) * | 2016-05-26 | 2017-12-07 | 富士通株式会社 | 情報処理装置、及び、負荷分散制御方法 |
Families Citing this family (81)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2973981B1 (fr) * | 2011-04-08 | 2013-09-27 | Thales Sa | Procede pour optimiser les capacites d"un reseau de telecommunication de type ad-hoc |
US9049233B2 (en) | 2012-10-05 | 2015-06-02 | Cisco Technology, Inc. | MPLS segment-routing |
US9608877B2 (en) * | 2012-12-17 | 2017-03-28 | Marvell World Trade Ltd. | Network discovery apparatus |
US9537718B2 (en) | 2013-03-15 | 2017-01-03 | Cisco Technology, Inc. | Segment routing over label distribution protocol |
CN105210329B (zh) * | 2013-03-15 | 2019-06-04 | 慧与发展有限责任合伙企业 | 无环路混合网络 |
US9667530B2 (en) | 2013-05-06 | 2017-05-30 | International Business Machines Corporation | Privacy preserving query method and system for use in federated coalition networks |
US20150043911A1 (en) * | 2013-08-07 | 2015-02-12 | Nec Laboratories America, Inc. | Network Depth Limited Network Followed by Compute Load Balancing Procedure for Embedding Cloud Services in Software-Defined Flexible-Grid Optical Transport Networks |
US9736041B2 (en) * | 2013-08-13 | 2017-08-15 | Nec Corporation | Transparent software-defined network management |
US9853822B2 (en) | 2013-09-17 | 2017-12-26 | Cisco Technology, Inc. | Bit indexed explicit replication |
US11451474B2 (en) | 2013-09-17 | 2022-09-20 | Cisco Technology, Inc. | Equal cost multi-path with bit indexed explicit replication |
US10218524B2 (en) | 2013-09-17 | 2019-02-26 | Cisco Technology, Inc. | Bit indexed explicit replication for layer 2 networking |
US10003494B2 (en) | 2013-09-17 | 2018-06-19 | Cisco Technology, Inc. | Per-prefix LFA FRR with bit indexed explicit replication |
US9806897B2 (en) | 2013-09-17 | 2017-10-31 | Cisco Technology, Inc. | Bit indexed explicit replication forwarding optimization |
US10461946B2 (en) | 2013-09-17 | 2019-10-29 | Cisco Technology, Inc. | Overlay signaling for bit indexed explicit replication |
GB2519119A (en) * | 2013-10-10 | 2015-04-15 | Ibm | Linear network coding in a dynamic distributed federated database |
WO2015061353A1 (en) * | 2013-10-21 | 2015-04-30 | Nyansa, Inc. | A system and method for observing and controlling a programmable network using a remote network manager |
US8989199B1 (en) * | 2014-02-24 | 2015-03-24 | Level 3 Communications, Llc | Control device discovery in networks having separate control and forwarding devices |
US9762488B2 (en) | 2014-03-06 | 2017-09-12 | Cisco Technology, Inc. | Segment routing extension headers |
US10003474B2 (en) | 2014-05-01 | 2018-06-19 | Metaswitch Networks Ltd | Flow synchronization |
US9369360B1 (en) * | 2014-05-12 | 2016-06-14 | Google Inc. | Systems and methods for fault detection in large scale networks |
US9887878B2 (en) | 2014-06-06 | 2018-02-06 | Microsoft Technology Licensing, Llc | Dynamic scheduling of network updates |
US9602351B2 (en) * | 2014-06-06 | 2017-03-21 | Microsoft Technology Licensing, Llc | Proactive handling of network faults |
US9491054B2 (en) | 2014-06-06 | 2016-11-08 | Microsoft Technology Licensing, Llc | Network-state management service |
WO2015191052A1 (en) | 2014-06-10 | 2015-12-17 | Hewlett-Packard Development Company, L.P. | Network security |
US10263809B2 (en) | 2014-06-25 | 2019-04-16 | Hewlett Packard Enterprise Development Lp | Selecting an optimal network device for reporting flow table misses upon expiry of a flow in a software defined network |
EP3111603B1 (en) | 2014-07-15 | 2020-03-11 | NEC Corporation | Method and network device for handling packets in a network by means of forwarding tables |
US9807001B2 (en) | 2014-07-17 | 2017-10-31 | Cisco Technology, Inc. | Segment routing using a remote forwarding adjacency identifier |
JP6417799B2 (ja) * | 2014-09-03 | 2018-11-07 | 富士通株式会社 | ネットワークコントローラ、ネットワーク制御方法、およびプログラム |
US20170250869A1 (en) * | 2014-09-12 | 2017-08-31 | Andreas Richard Voellmy | Managing network forwarding configurations using algorithmic policies |
TWI542172B (zh) * | 2014-09-22 | 2016-07-11 | 財團法人工業技術研究院 | 路徑更換方法與系統及其控制器 |
US20160105534A1 (en) * | 2014-10-13 | 2016-04-14 | Futurewei Technologies, Inc. | Physical switch initialization using representational state transfer services |
US10298458B2 (en) * | 2014-10-31 | 2019-05-21 | Hewlett Packard Enterprise Development Lp | Distributed system partition |
CN105871674B (zh) * | 2015-01-23 | 2019-10-22 | 华为技术有限公司 | 环保护链路故障保护方法、设备及系统 |
US9906378B2 (en) | 2015-01-27 | 2018-02-27 | Cisco Technology, Inc. | Capability aware routing |
US9674071B2 (en) | 2015-02-20 | 2017-06-06 | Telefonaktiebolaget Lm Ericsson (Publ) | High-precision packet train generation |
US10341221B2 (en) * | 2015-02-26 | 2019-07-02 | Cisco Technology, Inc. | Traffic engineering for bit indexed explicit replication |
US9521071B2 (en) * | 2015-03-22 | 2016-12-13 | Freescale Semiconductor, Inc. | Federation of controllers management using packet context |
US10356227B2 (en) * | 2015-03-31 | 2019-07-16 | Telefonaktiebolaget Lm Ericsson (Publ) | Method of packet marking for flow analytics |
US9806997B2 (en) | 2015-06-16 | 2017-10-31 | At&T Intellectual Property I, L.P. | Service specific route selection in communication networks |
US9847914B2 (en) * | 2015-07-10 | 2017-12-19 | Huawei Technologies Co., Ltd. | Method and system for site interconnection over a transport network |
US9699064B2 (en) * | 2015-07-20 | 2017-07-04 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and an apparatus for network state re-construction in software defined networking |
US9948518B2 (en) | 2015-07-22 | 2018-04-17 | International Business Machines Corporation | Low latency flow cleanup of openflow configuration changes |
US9692690B2 (en) * | 2015-08-03 | 2017-06-27 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and system for path monitoring in a software-defined networking (SDN) system |
JP6573717B2 (ja) * | 2015-09-30 | 2019-09-11 | 華為技術有限公司Huawei Technologies Co.,Ltd. | サービスフロー処理ポリシーのための処理方法、装置、およびシステム |
US10230609B2 (en) | 2016-04-18 | 2019-03-12 | Nyansa, Inc. | System and method for using real-time packet data to detect and manage network issues |
US10193741B2 (en) | 2016-04-18 | 2019-01-29 | Nyansa, Inc. | System and method for network incident identification and analysis |
US10200267B2 (en) | 2016-04-18 | 2019-02-05 | Nyansa, Inc. | System and method for client network congestion detection, analysis, and management |
US10263881B2 (en) | 2016-05-26 | 2019-04-16 | Cisco Technology, Inc. | Enforcing strict shortest path forwarding using strict segment identifiers |
CN107819594B (zh) * | 2016-09-12 | 2022-08-02 | 中兴通讯股份有限公司 | 网络故障定位方法及装置 |
US11032197B2 (en) | 2016-09-15 | 2021-06-08 | Cisco Technology, Inc. | Reroute detection in segment routing data plane |
US10630743B2 (en) | 2016-09-23 | 2020-04-21 | Cisco Technology, Inc. | Unicast media replication fabric using bit indexed explicit replication |
US10616347B1 (en) * | 2016-10-20 | 2020-04-07 | R&D Industries, Inc. | Devices, systems and methods for internet and failover connectivity and monitoring |
US10911317B2 (en) * | 2016-10-21 | 2021-02-02 | Forward Networks, Inc. | Systems and methods for scalable network modeling |
US10637675B2 (en) | 2016-11-09 | 2020-04-28 | Cisco Technology, Inc. | Area-specific broadcasting using bit indexed explicit replication |
US10382301B2 (en) * | 2016-11-14 | 2019-08-13 | Alcatel Lucent | Efficiently calculating per service impact of ethernet ring status changes |
US20180176129A1 (en) * | 2016-12-15 | 2018-06-21 | Fujitsu Limited | Communication method, control device, and system |
US10491513B2 (en) | 2017-01-20 | 2019-11-26 | Hewlett Packard Enterprise Development Lp | Verifying packet tags in software defined networks |
EP3586482B1 (en) * | 2017-02-21 | 2020-11-25 | Telefonaktiebolaget LM Ericsson (Publ) | Mechanism to detect data plane loops in an openflow network |
US10447496B2 (en) | 2017-03-30 | 2019-10-15 | Cisco Technology, Inc. | Multicast traffic steering using tree identity in bit indexed explicit replication (BIER) |
US20180287858A1 (en) * | 2017-03-31 | 2018-10-04 | Intel Corporation | Technologies for efficiently managing link faults between switches |
US10362631B2 (en) * | 2017-04-03 | 2019-07-23 | Level 3 Communications, Llc | Last resource disaster routing in a telecommunications network |
US10164794B2 (en) | 2017-04-28 | 2018-12-25 | Cisco Technology, Inc. | Bridging of non-capable subnetworks in bit indexed explicit replication |
US10411996B2 (en) * | 2017-06-19 | 2019-09-10 | Cisco Technology, Inc. | Validation of routing information in a network fabric |
US10666494B2 (en) | 2017-11-10 | 2020-05-26 | Nyansa, Inc. | System and method for network incident remediation recommendations |
DE102018103097B3 (de) | 2018-02-12 | 2019-04-18 | Kathrein Se | Verfahren zur Topologiebestimmung in einer Mobilfunk-Site, ein Computerprogramm, ein Computerprogramm-Produkt und eine entsprechende Mobilfunk-Site |
CN108566341B (zh) * | 2018-04-08 | 2021-01-15 | 西安交通大学 | 一种sd-wan环境中流量控制方法 |
US10785107B2 (en) * | 2018-05-16 | 2020-09-22 | Microsoft Technology Licensing, Llc | Method and apparatus for optimizing legacy network infrastructure |
US11005777B2 (en) | 2018-07-10 | 2021-05-11 | At&T Intellectual Property I, L.P. | Software defined prober |
CN109347741B (zh) * | 2018-08-01 | 2021-02-26 | 北京邮电大学 | 基于带内网络遥测技术的全网路径最优化遍历方法及装置 |
JP6985611B2 (ja) * | 2018-10-11 | 2021-12-22 | 日本電信電話株式会社 | 故障箇所推定方法及び故障箇所推定装置 |
JP7107158B2 (ja) * | 2018-10-18 | 2022-07-27 | 日本電信電話株式会社 | ネットワーク管理装置、方法およびプログラム |
CN109587010B (zh) * | 2018-12-28 | 2020-07-07 | 迈普通信技术股份有限公司 | 一种连通性检测方法及流转发设备 |
US11082337B2 (en) | 2019-02-15 | 2021-08-03 | Juniper Networks, Inc. | Support for multiple virtual networks over an underlay network topology |
CN109889396B (zh) * | 2019-03-22 | 2021-09-03 | 哈尔滨工业大学 | 一种自治域级互联网拓扑可视化方法 |
CN111953553B (zh) * | 2019-05-16 | 2023-07-18 | 华为技术有限公司 | 一种报文的检测方法、设备及系统 |
US11140074B2 (en) | 2019-09-24 | 2021-10-05 | Cisco Technology, Inc. | Communicating packets across multi-domain networks using compact forwarding instructions |
US11005746B1 (en) * | 2019-12-16 | 2021-05-11 | Dell Products L.P. | Stack group merging system |
US11838186B2 (en) * | 2019-12-20 | 2023-12-05 | Nippon Telegraph And Telephone Corporation | Topology design apparatus, topology design method and program |
US20210367883A1 (en) * | 2020-05-22 | 2021-11-25 | Juniper Networks, Inc. | Bitmask route target in targeted distribution of information using a routing protocol |
CN113259167B (zh) * | 2021-05-28 | 2023-07-18 | 贵州电网有限责任公司 | 一种基于事件触发机制的配电终端数据传输方法 |
CN113934341B (zh) * | 2021-10-20 | 2024-04-09 | 迈普通信技术股份有限公司 | 网络策略拓扑的显示方法、装置、电子设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6415396B1 (en) * | 1999-03-26 | 2002-07-02 | Lucent Technologies Inc. | Automatic generation and maintenance of regression test cases from requirements |
RU2323520C2 (ru) * | 2006-03-21 | 2008-04-27 | Самсунг Электроникс Ко., Лтд. | Способ передачи голосовых данных в системе цифровой радиосвязи и способ перемежения последовательности кодовых символов (варианты) |
US8085675B2 (en) * | 2006-04-20 | 2011-12-27 | Cisco Technology, Inc. | Method and apparatus to test a data path in a network |
US8711678B2 (en) * | 2008-12-02 | 2014-04-29 | Nec Corporation | Communication network management system, method and program, and management computer |
WO2011144495A1 (en) * | 2010-05-19 | 2011-11-24 | Telefonaktiebolaget L M Ericsson (Publ) | Methods and apparatus for use in an openflow network |
US8559314B2 (en) * | 2011-08-11 | 2013-10-15 | Telefonaktiebolaget L M Ericsson (Publ) | Implementing OSPF in split-architecture networks |
-
2013
- 2013-09-04 WO PCT/US2013/058096 patent/WO2014046875A1/en active Application Filing
- 2013-09-04 JP JP2015533087A patent/JP2015533049A/ja not_active Withdrawn
- 2013-09-04 US US14/429,707 patent/US20150249587A1/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017215933A (ja) * | 2016-05-26 | 2017-12-07 | 富士通株式会社 | 情報処理装置、及び、負荷分散制御方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2014046875A1 (en) | 2014-03-27 |
US20150249587A1 (en) | 2015-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2015533049A (ja) | ネットワークにおけるトポロジ及びパス検証のための方法及び装置 | |
US10200279B1 (en) | Tracer of traffic trajectories in data center networks | |
US10505804B2 (en) | System and method of discovering paths in a network | |
US9014201B2 (en) | System and method for providing deadlock free routing between switches in a fat-tree topology | |
JP7108674B2 (ja) | 故障根本原因決定方法及び装置並びにコンピュータ記憶媒体 | |
US8850015B2 (en) | Network-network interface | |
US8611232B2 (en) | Method of simple and efficient failure resilient load balancing | |
EP2891286B1 (en) | System and method for supporting discovery and routing degraded fat-trees in a middleware machine environment | |
US20120311182A1 (en) | System and method for supporting controlled re-routing in an infiniband (ib) network | |
Liang et al. | On diagnosis of forwarding plane via static forwarding rules in software defined networks | |
US10778505B2 (en) | System and method of evaluating network asserts | |
EP3624401B1 (en) | Systems and methods for non-intrusive network performance monitoring | |
Kozat et al. | On optimal topology verification and failure localization for software defined networks | |
US10764214B1 (en) | Error source identification in cut-through networks | |
Lopez-Pajares et al. | Amaru: Plug&play resilient in-band control for SDN | |
CN114598626A (zh) | 报文处理的方法和网关设备 | |
CN108400922B (zh) | 虚拟局域网络配置系统与方法及其计算机可读存储介质 | |
Bermudez et al. | On the infiniband subnet discovery process | |
EP2858302A1 (en) | Connectivity check method of service stream link, related apparatus and system | |
Park et al. | A fast recovery scheme based on detour planning for in-band OpenFlow networks | |
US11438237B1 (en) | Systems and methods for determining physical links between network devices | |
Aljaedi et al. | PathSeer: A centralized tracer of packet trajectories in software-defined datacenter networks | |
Haggag | Benchmarking and Performance Analysis of Software Defined Networking Controllers in Normal and Failsafe Operations using Multiple Redundant Controllers | |
WO2023207048A1 (zh) | 一种网络意图挖掘方法、装置及相关设备 | |
Raspall | Building Nemo, a system to monitor IP routing and traffic paths in real time |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160901 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20161219 |