(57)【要約】  多数のハードウェアネットワーク要素を単一のルーティング又はスイッチングエンティティとして動作させることを可能にするネットワーククラウドソフトウェアが提供される。独立型のネットワーク装置として機能し、単一のエンティティとして外部ユーザに現れる何十ものハードウェア要素のクラスタにスケーリングする単一のホワイトボックスにより開始することができるネットワーククラウドクラスタを生成することを可能にするために、ネットワーククラウドソフトウェアは分散型にて使用され、同期及び管理の層を提供する。外部のユーザには同じ機能及び同じネットワーク動作を有する装置として理解されるが、ネットワーククラウドソフトウェアは、多くの異なるハードウェアタイプで実行することが可能な同じネットワーククラウドソフトウェアにより複数のベンダーのハードウェアタイプの使用を可能とする中間層（ＨＡＬ）を実装してもよい。【選択図】  図１
2021535681.tif 000002
【特許請求の範囲】
【請求項１】
複数の物理的ネットワーク要素を単一の仮想ルーティングエンティティとして動作させる方法であって、前記単一の仮想ルーティングエンティティは、
（ａ）前記複数の物理的ネットワーク要素のそれぞれの動作は、前記複数の物理的ネットワーク要素の少なくとも他の１つの動作と同期し、
（ｉ）前記複数の物理的ネットワーク要素の制御及び／又は管理及び／又はデータプレーンが単一の仮想ネットワーク要素の一部として、前記複数の物理的ネットワーク要素の動作のために設定された要件を満たし、
（ｉｉ）前記複数の物理的ネットワーク要素がルーティング情報及び転送情報の為の同じテーブルを利用することを保証し、
（ｂ）前記複数の物理的ネットワーク要素が、
（ｉ）１以上の転送情報ベーステーブル（ＦＩＢ）
（ｉｉ）１以上のルーティング情報ベーステーブル（ＲＩＢ）
（ｉｉｉ）１以上のサービス品質（ＱｏＳ）キュー
（ｉｖ）１以上の構成エンジン
（ｖ）１以上の統計エンジン
（ｖｉ）１以上の故障検出エンジン
から構成されるグループの少なくとも１つのメンバーを共有することを特徴とする方法。
【請求項２】
前記単一の仮想ルーティングエンティティは、前記単一の仮想ルーティングエンティティに属する前記複数の物理的ネットワーク要素を相互接続し、前記複数の物理的ネットワーク要素のそれぞれの動作を管理するように構成された管理エンティティを更に含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記複数の物理的ネットワーク要素のそれぞれは、ソフトウェア駆動処理を実行するように構成され、前記ソフトウェア駆動処理は前記複数の物理的ネットワーク要素のそれぞれと関連付けられたソフトウェアコンテナで実行され、前記方法が、更に前記ソフトウェア駆動処理を同期することを含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記複数の物理的ネットワーク要素のそれぞれに関連づけられたリソースは、ルーティング又はスイッチングサービスのための共有のリソースとして割り当てられることを特徴とする請求項２に記載の方法。
【請求項５】
前記仮想ルーティングエンティティは、前記複数の物理的ネットワーク要素の１以上の共有のパケットプロセッサ上の、及び／又は前記複数の物理的ネットワーク要素の１以上のファブリック上の専用の転送プレーンを維持するように構成されていることを特徴とする請求項４に記載の方法。
【請求項６】
前記仮想ルーティングエンティティは、全ての共有のパケットプロセッサ及び／又は全てのＣＰＵのための専用の管理プレーンを維持するように構成されていることを特徴とする請求項４に記載の方法。
【請求項７】
前記単一の仮想ルーティングエンティティは、関連するソフトウェアに基づいて前記複数の物理的ネットワーク要素のそれぞれを構成することにより、そして、ルーティングデータの同期を維持し、データをスイッチングすることにより、前記複数の物理的ネットワーク要素を管理するネットワーククラウドコントローラ（ＮＣＣ）により管理されるように構成されていることを特徴とする請求項２に記載の方法。
【請求項８】
前記ネットワーククラウドコントローラ（ＮＣＣ）は、インタフェースの状態を、前記単一の仮想ルーティングエンティティに含まれないエンティティに提示するように構成されていることを特徴とする請求項７に記載の方法。
【請求項９】
既に前記単一の仮想ルーティングエンティティに関連付けられた複数のハードウェアネットワーク要素へ／から、１以上のハードウェアネットワーク要素の動的な追加又は除去を可能にすることを特徴とする請求項２に記載の方法。
【請求項１０】
前記単一の仮想ルーティングエンティティは、少なくとも２つの異なるタイプのハードウェア装置を前記単一の仮想ルーティングエンティティとともに使用することを可能にするためのハードウェア抽象化層（ＨＡＬ）を更に含むことを特徴とする請求項２に記載の方法。
【請求項１１】
１以上のコンピュータプロセッサにより実行される命令のセットを行うコンピュータプログラムを格納した非一時的コンピュータ可読記憶媒体であって、
前記コンピュータプログラムは、複数の物理的ネットワーク要素を単一の仮想ルーティングエンティティとして動作させる方法を実行するのに適しており、
前記単一の仮想ルーティングエンティティは、
（ａ）前記複数の物理的ネットワーク要素のそれぞれの動作は、前記複数の物理的ネットワーク要素の少なくとも他の１つの動作と同期し、
（ｉ）前記複数の物理的ネットワーク要素の制御及び／又は管理及び／又はデータプレーンが単一の仮想ネットワーク要素の一部として、前記複数の物理的ネットワーク要素の動作の為に設定された要件を満たし、
（ｉｉ）前記複数の物理的ネットワーク要素が、ルーティング情報及び転送情報の為の同じテーブルを利用することを保証し、
（ｂ）前記複数の物理的ネットワーク要素が、
（ｉ）１以上の転送情報ベーステーブル（ＦＩＢ）
（ｉｉ）１以上のルーティング情報ベーステーブル（ＲＩＢ）
（ｉｉｉ）１以上のサービス品質（ＱｏＳ）キュー
（ｉｖ）１以上の構成エンジン
（ｖ）１以上の統計エンジン
（ｖｉ）１以上の故障検出エンジン
から構成されるグループの少なくとも１つのメンバーを共有するように構成されていることを特徴とする非一時的コンピュータ可読記憶媒体。
【請求項１２】
前記方法は、前記仮想ルーティングエンティティに属する前記複数の物理的ネットワーク要素を相互接続し、これらのそれぞれの動作を管理するように構成された管理エンティティを生成することを更に含むことを特徴とする請求項１１に記載の非一時的コンピュータ可読記憶媒体。
【請求項１３】
前記方法は、前記複数の物理的ネットワーク要素から得られた共有のリソースを、ネットワーク要求に応じてルーティング又はスイッチングサービスに割り当てるステップを更に含むことを特徴とする請求項１２に記載の非一時的コンピュータ可読記憶媒体。
【請求項１４】
前記方法は、前記複数の物理的ネットワーク要素の１以上の共有のパケットプロセッサ及び／又は前記複数の物理的ネットワーク要素の１以上のファブリックにおける専用の転送プレーンを生成することを更に含むことを特徴とする請求項１３に記載の非一時的コンピュータ可読記憶媒体。
【請求項１５】
前記方法は、
全ての共有のパケットプロセッサ及び／又は、前記複数の物理的ネットワーク要素に関連付けられた全てのＣＰＵにおける専用の管理プレーンを生成することを更に含むことを特徴とする請求項１３に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、包括的には、ネットワーキングの分野に関する。詳しくは、「ＮＯＳ」と呼ばれるネットワークオペレーティングシステムとして機能するネットワーキングソフトウェアに関する。
【０００２】
ＡＣＬ：アクセスコントロールリスト（Access Control List）
ＢＧＰ：ボーダー・ゲートウェイ・プロトコル（Border Gateway Protocol）
ＢＯＭ：部品表（Bill of Materials）
ＣＬＩ：コマンドラインインタフェース（Command Line Interface）
ＣＰＵ：中央処理装置（Central Processing Unit）
ＤＲＡＭ：ダイナミック・ランダム・アクセス・メモリ（Dynamic Random-Access Memory）
ＦＩＢ：転送情報ベース（Forwarding Information Base）テーブル
ＧＵＩ：グラフィカルユーザインタフェース（Graphical User Interface）
L２ＶＰＮ：レイヤ２仮想プライベートネットワーク（Layer 2 Virtual Private Network）
L３ＶＰＮ：レイヤ３仮想プライベートネットワーク（Layer 3 Virtual Private Network）
ＬＩＦ：論理インタフェース-（Logical Interface）
ＮＣＣ：ネットワーククラウドコントローラ（Network Cloud Controller）
ＮＣＦ：ネットワーククラウドファブリック（Network Cloud Fabric）
ＮＣＭ：ネットワーククラウド管理（Network Cloud Management）
ＮＣＰ：ネットワーククラウドパケットフォワーダ（Network Cloud Packet Forwarder）
ＮＯＳ：ネットワークオペレーティングシステム（Network Operating System）
ＯＤＭ：相手先ブランド名製造（Original Design Manufacturer）
ＲＩＢ：ルーティング情報ベース（Routing Information Base）テーブル
ＲＵ：ラックユニット（Rack Unit）
ＳＤＫ：ソフトウェア開発キット（Software Development Kit）
ＳＲＡＭ：スタティックランダムアクセスメモリ（Static Random-Access Memory）
ＴＣＡＭ：３値連想メモリ（Ternary Content-Addressable Memory）
ＶＬＡＮ：仮想ローカルアクセスネットワーク（Virtual Local Access Network）
ＶＲＦ：仮想ルーティング及び転送（Virtual Routing and Forwarding）
【背景技術】
【０００３】
今日、加入者毎の所得はほぼ横ばいか、あるいは減少しているにもかかわらず装置当たりのネットワーク要素の価格が比較的高いため、その結果「ポート毎」基準の価格が高騰し、ネットワークオペレータは金銭的な危機に陥っている。この事情は、明らかにネットワーク所有者の収益性に影響を与えており、彼らにコスト削減のための解決策を実装するための方法を模索するよう促している。
【０００４】
ホワイトボックスが相手先ブランド名製造（ＯＤＭ）によりシリコンマーチャント（商品チップセット）から製造されたハードウェア要素である場合、多くのネットワークオペレータ及びウェブスケール所有者のような大規模ネットワーク所有者は、ホワイトボックスを実装するアプローチを選択する。このアプローチにより、ネットワーク所有者は合意された差益込みの部品表（ＢＯＭ）コストのモデルまでハードウェアの価格を減少させることができた。しかし、ハードウェア及びソフトウェアが組合された一体構造の装置としてネットワーク要素が購入される従来のアプローチとは、このアプローチは異なっている。上述の通り、この問題のハードウェア部分（即ち、ネットワーク要素のハードウェア部分）は、ホワイトボックスアプローチを採用することにより解決されるが、このアプローチを採用することでこの問題のソフトウェア部分において新たな課題が生み出される。
【０００５】
ネットワークオペレーティングシステム（ＮＯＳ）の数が増加するにつれて各ＮＯＳにより多くの専門家が必要とされ、ＮＯＳの数が多くなればなるほど、管理の複雑性がより高くなるため、ネットワーク所有者は、ネットワークにおいて事業費を下げるために可能な限りＮＯＳの使用を控える。しかし、当業者であれば理解できるように、ホワイトボックスアプローチでは、ネットワーク内に複数の異なるハードウェアタイプが据え付けられる可能性があり、その場合、ソフトウェアは、ＮＯＳに関する限り、ハードウェアと人間のオペレータとの間を仲介する必要がある。
【０００６】
各シリコンベンダーは、チップレベルで異なるネットワークの特徴を実装し、これらの特徴を独自のソフトウェア開発キット（ＳＤＫ）経由で公開する。他の課題は、コマンドラインインタフェース（ＣＬＩ）又はグラフィカルユーザインタフェース（ＧＵＩ）という同じユーザインタフェースを維持しながら、異なるハードウェアタイプ上で同じネットワークの特徴を実装する必要があることである。
【０００７】
ほとんどのホワイトボックスは、単一のラックユニット（ＲＵ）からいくつかのユニットへと変化する、比較的小さなフォーム因子であり、単一のユニットとして設計される。ホワイトボックスは通常要素当たり数十のポートを提供するものの、１Ｋを超えるポートを有するネットワーク要素を要求するほとんどのネットワークオペレータやデータセンターのネットワーク所有者には、高いポート密度及びスケール変更の問題を発生させることにつながる。本件の主な課題は、内部管理における複雑性を解消しつつ、ポート密度を増加させるためにいくつかのハードウェア要素をまとめるソフトウェアを提供することである。本発明は、これらの課題に対処しようとするものである。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本開示は、添付の特許請求の範囲を参照することによって要約することができる。
【０００９】
本開示の目的は、様々な種類の装置をレイヤ２又はレイヤ３のネットワーク機能を有する単一の装置として動作させることができるシステム及びソフトウェアアプリケーションを提供することである。ここでの「レイヤ２」、「レイヤ３」とは、開放型システム間相互接続モデル（Open Systems Interconnection model：ＯＳＩモデル）のことをいう。
【００１０】
本開示の他の目的は、単一のネットワーク要素であるかのように装置のクラスタを動作させ管理するためのシステム及びソフトウェアアプリケーションを提供することである。
【００１１】
また、本開示の他の目的は、複数の分散型ネットワーククラウドパケットフォワーダ（ＮＣＰ）要素がルーティングエンティティのルーティングプレーンに設けられるシステムを提供することである。これらＮＣＰは、ネットワークレベルにおいて単一の要素、例えば単一のＢＧＰ（あるいは他のルーティング／管理プロトコル）セッションに関連する単一の要素として提示される。
【００１２】
本開示の他の目的は、以下の説明から明らかになる。
【課題を解決するための手段】
【００１３】
本発明の第１の実施形態によれば、複数の物理的（即ち、非一時的）ネットワーク要素を単一の仮想ルーティングエンティティとして動作させる方法であって、単一の仮想ルーティングエンティティは、（ａ）複数の物理的ネットワーク要素のそれぞれの動作は、複数の物理的ネットワーク要素の少なくとも他の１つの動作と同期し、（ｉ）複数の物理的ネットワーク要素の制御及び／又は管理及び／又はデータプレーンが単一の仮想ネットワーク要素の一部として、前記複数の物理的ネットワーク要素の動作のために設定された要件を満たし、（ｉｉ）複数の物理的ネットワーク要素（即ち、これらの少なくとも２つの物理的ネットワーク要素）が、ルーティング情報及び転送情報を取り出す為の同じ（共有）テーブルを利用することを保証し、（ｂ）複数の物理的ネットワーク要素（即ち、これらの少なくとも２つの物理的ネットワーク要素）が、（ｉ）１以上の転送情報ベーステーブル（ＦＩＢ）、（ｉｉ）１以上のルーティング情報ベーステーブル（ＲＩＢ）、（ｉｉｉ）１以上のサービス品質（ＱｏＳ）キュー（ｉｖ）１以上の構成エンジン（ｖ）１以上の統計エンジン、（ｖｉ）１以上の故障検出エンジン、から構成されるグループの少なくとも１つのメンバーを共有することを特徴とする方法が提供される。
【００１４】
本明細書及び特許請求の範囲で使用する「ルーティングエンティティ」という用語は、ルーティング機能又はスイッチング機能を実装している際に、コンピュータ／通信ネットワーク内／間でデータパケットを転送するネットワーキングエンティティを指す。ルーティングエンティティとして作用する際、データパケットがそれぞれの最終宛先に到達するまで、あるルーティングエンティティから他のルーティングエンティティへとインターネットにおけるデータパケットのトラフィックダイレクティング機能（traffic directing function）を実施する。スイッチングエンティティとして作用する際、特定のハードウェア宛先に向けてデータを送信することにより機能する。
【００１５】
「物理的ネットワーク要素」、「物理的ネットワークノード」、「ハードウェアネットワーク要素」は、本明細書及び特許請求の範囲では同様の意味で使用され、パケットプロセッサ、ＣＰＵ、メモリ手段、ネットワークインタフェース等の物理的エンティティを指す。これらは、仮想ルーティングエンティティの一部として動作し、仮想ルーティングエンティティのルーティング機能をサポートすると共に、単一のエンティティ又は複数のエンティティとして作用する。
【００１６】
他の実施形態では、単一の仮想ルーティングエンティティは、単一の仮想ルーティングエンティティに関連付けられた複数の物理的ネットワーク要素を相互接続し、複数の物理的ネットワーク要素のそれぞれの動作を管理し、それにより単一の仮想ルーティングエンティティにルーティング機能を提供するように構成された管理エンティティを含む。
【００１７】
他の実施形態では、複数の物理的ネットワーク要素のそれぞれは、ソフトウェア駆動処理を実行するように構成され、ソフトウェア駆動処理は複数の物理的ネットワーク要素のそれぞれと関連付けられたソフトウェアコンテナで実行され、方法が、更に複数の物理的ネットワーク要素により実行されるソフトウェア駆動処理を同期することを含む。
【００１８】
仮想ルーティングエンティティがＮＣＰ（ネットワーククラウドパケットフォワーダ）又はＮＣＦ（ネットワーククラウドファブリック）として動作する際、各ソフトウェアコンテナは、仮想ルーティングエンティティに属する他の物理的ネットワーク要素に関連付けられたソフトウェア処理を実行するために使用される他のソフトウェアコンテナから分離される。
【００１９】
本明細書及び特許請求の範囲で使用される「ソフトウェアコンテナ」という用語は、開発、配送、展開のため標準化されたユニットにパッケージ化されたソフトウェアを指す。コンテナは、軽量であり、独立型であり、コード、実行時間、システムツール、システムライブラリ、設定等のソフトウェアを実行するために要求されるいかなるものも含む実行可能なソフトウェアのパッケージである。
【００２０】
更に、他の実施形態では、単一の仮想ルーティングエンティティに含まれる物理的ネットワーク要素は、共有のルーティングプラットフォームを介して接続される（例えば、“分界ＬＩＦ”、換言すれば、ネットワークインタフェース同士を物理的に接続する必要がない状態で、分界点として使用される役割やホームポート等として物理的ネットワーク要素を特性化する特徴と関連付けられたＩＰアドレスを有することによる）。接続は、必ずしもそうである必要はないが、ネットワークインタフェースを介して達成される接続をイミテートする“分界ＬＩＦ”により論理的に実装されてもよく、接続はその間のどんな物理的ケーブルも必要としない。
【００２１】
他の実施形態では、複数の物理的ネットワーク要素のそれぞれに関連づけられたリソースは、ルーティング又はスイッチングサービスのための共有のリソースとして割り当てられる。言い換えれば、単一の仮想ルーティングエンティティにより実行する必要があるルーティング及び／又はスイッチングサービスのためのリソースを割り当てるために、任意に事前構成された閾値に従って、物理的ネットワーク要素のリソース（即ち、ＴＣＡＭエントリ、カウンタ、シェイパー、メーター、ＤＲＡＭ／ＳＲＡＭ等）が共有される。
【００２２】
従って、単一のルーティング又はスイッチングエンティティプラットフォームとして動作する複数の物理的ネットワーク要素のリソースを共有することにより、柔軟なインナーリソースの管理及び結果的には既存のハードウェアのより良い活用が可能となる。リソースのテンプレートは、Ｌ３ＶＰＮ，Ｌ２ＶＰＮ，ＱｏＳキュー及びＶＬＡＮ割り当てのような各ルーティング又はスイッチングサービス毎に専用のリソースを定義するために使用されてもよい。
【００２３】
更に他の実施形態では、仮想ルーティングエンティティは、複数の物理的ネットワーク要素の１以上の共有のパケットプロセッサ上の（ＮＣＰとして動作する場合）及び／又は複数の物理的ネットワーク要素の１以上のファブリック上の（ＮＣＦとして動作する場合）専用の転送プレーンを維持する。
【００２４】
この実施例を実装するために、転送プレーンの分離はハードウェア抽象化層（以下「ＨＡＬ」と呼ぶ）の実装により実行されてもよい。換言すれば、ルーティング又はスイッチングエンティティは、各物理的ネットワーク要素においていずれも同じである転送テーブル及び／又はスイッチングテーブル、又は各物理的ネットワーク要素の転送テーブル及び／又はスイッチングテーブルの関連するサブセットを維持してもよい。
【００２５】
他の実施形態では、仮想ルーティング（又はスイッチング）エンティティは、全ての共有のパケットプロセッサ（ＮＣＰ）及び／又は全てのＣＰＵのための専用の管理プレーンを維持する。管理プレーンは、構成トランザクション、統計レポート及び故障レポートに関連付けられており、分離した専用のハードウェアネットワーク要素上で実行するように構成され、以下、ＮＣＭ（ネットワーククラウド管理）と呼ばれる。このＮＣＭ要素は、クラスタトランスポートプレーンに関して内部エンティティとして機能し、仮想ルーティングエンティティに含まれる要素のクラスタの外側のいずれのエンティティにも公開されていないメッセージプレーンを生成することにより、各ＮＣＰ（ネットワーククラウドパケットフォワーダ）、各ＮＣＦ（ネットワーククラウドファブリック）、各ＮＣＣ（ネットワーククラウドコントローラ）に接続され、管理は、ネットワーククラウドクラスタ要素、ＮＣＰ、ＮＣＦ及びＮＣＣ間のみの影響を受ける。
【００２６】
更に他の実施形態では、単一の仮想ルーティングエンティティは、関連するソフトウェアに基づいて複数の物理的ネットワーク要素のそれぞれを構成することにより、そして、ルーティングデータの同期を維持し、データをスイッチングすることにより、複数の物理的ネットワーク要素を管理するネットワーククラウドコントローラ（ＮＣＣ）により管理される。好ましくは、ネットワーククラウドコントローラ（ＮＣＣ）は更に、インタフェースの状態を、単一の仮想ルーティングエンティティに含まれないエンティティ（即ち、単一の仮想ルーティングエンティティの外部エンティティ）に提示するように構成される。
【００２７】
更に本開示の他の実施形態によれば、既に単一の仮想ルーティングエンティティに関連付けられた複数のハードウェアネットワーク要素へ／から、１以上のハードウェアネットワーク要素の動的な追加又は除去を可能にする方法が提供される。
【００２８】
これらの変更は、好ましくは、ＮＣＰ及びＮＣＦソフトウェアモジュールに含まれるルーティング又はスイッチングエンティティを管理するように構成された管理アプリケーションを使用することにより、ＮＣＣに実装される仮想ルーティング（又はスイッチング）エンティティにおいて反映される。好ましくは、ハードウェアネットワーク要素の動的な追加や除去が実行されると、それぞれのリソースはそれぞれ追加／除去され、その後ＮＣＣに実装される仮想ルーティング又はスイッチングエンティティにより関連するクラスタに接続された全てのＮＣＰ及びＮＣＦの同期が行われる。
【００２９】
本開示の他の側面によれば、１以上のコンピュータプロセッサにより実行される命令のセットを行うコンピュータプログラムを格納した非一時的コンピュータ可読記憶媒体であって、コンピュータプログラムは、複数の物理的ネットワーク要素を単一の仮想ルーティングエンティティとして動作させる方法を実行するのに適しており、単一の仮想ルーティングエンティティは、（ａ）複数の物理的ネットワーク要素のそれぞれの動作は、複数の物理的ネットワーク要素の少なくとも他の１つの動作と同期し、（ｉ）複数の物理的ネットワーク要素の制御及び／又は管理及び／又はデータプレーンが単一の仮想ネットワーク要素の一部として、複数の物理的ネットワーク要素の動作の為に設定された要件を満たし、（ｉｉ）複数の物理的ネットワーク要素（少なくとも２つの物理的ネットワーク要素）が、ルーティング情報及び転送情報の為の同じテーブルを利用することを保証し、（ｂ）複数の物理的ネットワーク要素が、（ｉ）１以上の転送情報ベーステーブル（ＦＩＢ）、（ｉｉ）１以上のルーティング情報ベーステーブル（ＲＩＢ）、（ｉｉｉ）１以上のサービス品質（ＱｏＳ）キュー、（ｉｖ）１以上の構成エンジン、（ｖ）１以上の統計エンジン、（ｖｉ）１以上の故障検出エンジンから構成されるグループの少なくとも１つのメンバーを共有することを特徴とする、非一時的コンピュータ可読記憶媒体が提供される。
【００３０】
更に本開示の他の側面では、方法は、仮想ルーティングエンティティに属する複数の物理的ネットワーク要素を相互接続し、これらのそれぞれの動作を管理するように構成された管理エンティティを生成することを更に含む。
【００３１】
更に本開示の他の側面の実施形態によれば、方法は、ルーティング又はスイッチングサービスを実行するために、複数の物理的ネットワーク要素から得られた共有のリソースを割り当てるステップを更に含む。
【００３２】
更に本開示の他の側面の実施形態によれば、方法は、複数の物理的ネットワーク要素の１以上の共有のパケットプロセッサ及び／又は複数の物理的ネットワーク要素の１以上のファブリックにおける専用の転送プレーンを生成するステップを含む。
【００３３】
更に本開示の他の側面の実施形態によれば、方法は、全ての共有のパケットプロセッサ及び／又は、複数の物理的ネットワーク要素に関連付けられた全てのＣＰＵにおける専用の管理プレーンを生成するステップを含む。
【００３４】
本明細書に組み込まれ、本明細書の一部を構成する添付の図面は、本開示のいくつかの実施形態を示し、以下の説明と共に、本明細書に開示されるこれらの実施形態の原理を説明するために使用される。
【図面の簡単な説明】
【００３５】
【図１】本発明の実施形態に従って解釈される、仮想ネットワークルーティングエンティティを構成する、物理的ネットワーク要素（ハードウェア）とソフトウェアコンポーネントとの間の物理的接続及び論理的接続を示す図である。
【図２】本発明の実施形態に従って解釈される、ＮＣＰ−ネットワーククラウドパケットフォワーダソフトウェアを示す図である。
【図３】本発明の他の実施形態に従って解釈される、ＮＣＦ−ネットワーククラウドファブリックソフトウェアを示す図である。
【図４】本発明の更に他の実施形態に従って解釈される、ネットワーククラウドコントローラソフトウェアの概略ブロック図である。
【発明を実施するための形態】
【００３６】
以下の詳細な説明における特定の詳細及び値の一部は、本開示の特定の例を示している。但し、この説明は、例示的なものであり、本発明の範囲を限定することを意図するものではない。特許請求される方法及び装置は、当該技術分野で公知の他の手法によって実現できることは、当業者にとって明らかである。更に、ここに記述した実施形態は、異なるステップを含むが、その全てが本発明の全ての実施形態において必要とされるわけではない。本発明の範囲は、添付の特許請求の範囲を参照することによって要約できる。
【００３７】
本開示のいくつかの実施形態は、２つの異なるソフトウェアモジュールを含むソフトウェアアーキテクチャに関する。２つの異なるソフトウェアモジュールとは、ネットワーククラウドパケットフォワーダ（ＮＣＰ）と、ネットワーククラウドファブリック（ＮＣＦ）である。各モジュールは、特定の機能のセットを処理するように構成されている。ＮＣＰは、特定の使用されるハードウェアと各ベンダーのＳＤＫとの間の媒介層を作成するエージェントによりデータパスの従来の機能を実装するように構成されており、高レベル（外部に）のための様々なハードウェアネットワーク要素の表現は、実際に使用されるハードウェアに拘わらず、同じである。ＮＣＰ機能は、とりわけ、ＦＩＢ（転送情報ベーステーブル）プログラミング、ＡＣＬ（アクセスリスト）プログラミング、ＱｏＳ（サービス品質）判定、ＲＰＦ（ＵＲＰＦ）のようなデータパスセキュリティ、ＬＬＤＰ（リンク層検出プロトコル）、ＬＡＣＰ（リンクアグリゲーション制御プロトコル）を含む。これらは、ネットワーククラウドシステムを作成し、ＮＣＰを他のＮＣＰ及びＮＣＦと接続するように構成されるクラスタ（仮想エンティティ）管理エージェントの一部として実装されてもよい。他の機能のうち、クラスタ管理エージェントは、ＦＩＢからＲＩＢへの分散、所与のプロトコル（ＣＬＩ，ＳＳＨ，ＮＥＴＣＯＮＦ，ＲＥＳＴＣＯＮＦ等）を利用することによりエンドユーザから受信されたトランザクション、ルーティング及び管理要素の統計の集合及び報告、ルーティング及び管理要素の故障及び統計の報告、クロック同期セキュリティ及び許可の実施のような内部システム同期を実行するように構成される。
【００３８】
一方、ＮＣＦは、ファブリックチップセットに基づくハードウェア上に通常実装されるソフトウェアモジュールである。このモジュールはリソースの割り当て、マルチキャストパケットの複製、ルーティング及び管理モジュールへのファブリックの現在状態に関する状態情報及び故障の報告、そして、分散されたパケット転送要素から、単一の仮想ルーティングエンティティを生成するためにいくつかのＮＣＰを接続する機能を担い、本開示により提供される解決が採用されない限り、他のネットワーク要素又はネットワーク装置では実現されそうもない非常に高いスケール及びポート密度を生成する。高いスケール及びポート密度を有する他のネットワーク要素又はネットワーク装置は、従来技術の解決及び手法を特徴づける電力、熱解放、冷却のような問題を経験するためである。
【００３９】
１以上のルーティング及び／又はスイッチングプロセッサ（冗長性のために）を含む典型的なルーティング（又はスイッチング）プラットフォームは、ＮＣＣ（ネットワーククラウドコントローラ）と呼ばれる。転送装置（ルーティング又はスイッチングプラットフォームに存在するネットワークインタフェースの数に応じて）ＮＣＰ（ネットワーククラウドパケットフォワーダ）と呼ばれ、仮想ルーティングエンティティの一部であるポートの数をサポートするために必要なファブリック装置は、ネットワーククラウドクラスタと呼ばれる。
【００４０】
ルーティング及びスイッチングプロセッサは、制御プレーンプロトコル（例えば、ルーティングプロトコル、ＯＳＩモデルプロトコルのレイヤ２及びスイッチング）及びルーティングエンジン又はＮＣＣ（ネットワーククラウドコントローラ）と呼ばれる管理プレーンプロトコルを実行するコンピューティングに使用される要素である。ルーティングプロトコルはルーティング情報ベーステーブル（ＲＩＢ）を追加し、レイヤ２プロトコルはスイッチングテーブル及びマックヘッダテーブルを追加する。最終的には、ＲＩＢテーブルはネットワーク内の全ての到達可能な宛先へのルートを含み、スイッチングテーブルは、学習された全てのレイヤ２アドレスを含む。
【００４１】
転送装置、ＮＣＰは、通常、データプレーンＡＳＩＣ又はＦＰＧＡであってもよいパケットプロセッサに基づく。パケットプロセッサは、多数のネットワークインタフェースを有する。各ネットワークインタフェースは、更に複数の論理インタフェース（ＬＩＦ）に分離されてもよい。ＬＩＦは、ネットワークインタフェースで、ＶＬＡＮ、ＭＰＬＳ  ＬＳＰ、Ｌ３トンネル等として示されてもよい。パケットプロセッサは、パケットをあるＬＩＦから他のＬＩＦへと転送するように構成されている。転送の決定は、転送情報ベース（ＦＩＢ）テーブル及び／又はスイッチングテーブルに応じてパケットプロセッサによりなされる。ＦＩＢテーブルは、ＲＩＢテーブルで利用できるルータにより到達できる宛先の最適ルートが追加され、レイヤ２トラフィックは、プロトコル情報を交換することにより、又は特定のＬＩＦにおいて受信されたトラフィックを待機することにより得られたレイヤ２アドレスに基づいて、正しいＬＩＦに転送される。ＦＩＢテーブル及びスイッチングテーブルに加え、パケットプロセッサＮＣＰは、アクセス制御リスト（ＡＣＬ）、カウンタ、トラフィックメータ、シェイパー等の他のリソースを維持し、これらのリソースは、受信されたデータパケットをどのように転送するかを決定する際に適用されてもよい。パケットプロセッサに加え、転送装置は、転送エンジンアプリケーションを実行するＣＰＵを含んでもよい。このような転送エンジンアプリケーションは、ルーティングエンジン（即ち、ＮＣＣ指令）により、ＦＩＢ、ＡＣＬ及び他のパケットプロセッサリソースを維持する責任を負う。ＮＣＰと呼ばれる転送エンジンアプリケーションは、転送装置の状態（ネットワークインタフェース状態、カウンタ等）をルーティングエンジン、ＮＣＣに報告し、パケットプロセッサにより受信されたレイヤ２プロトコルパケットと同様にルーティングプロトコルパケットをルーティングエンジン及び／又はスイッチングエンジンに伝える。
【００４２】
ファブリック装置は、通常データプレーンＡＳＩＣ又はＦＰＧＡチップであるファブリック要素に基づく。一の転送装置にあるＬＩＦから他の転送装置にあるＬＩＦへとパケットを転送することを可能にするために、ファブリック要素は、転送装置同士を接続するために使用される。ファブリック要素に加え、ファブリック装置は、通常ＮＣＦ（ネットワーククラウドファブリック）と呼ばれるファブリックエンジンアプリケーションを実行するＣＰＵを有する。ファブリックエンジンアプリケーション、即ちＮＣＦは、ファブリック要素の状態（ファブリックインタフェース状態、カウンタ等）をルーティングエンジン及びスイッチングエンジンに報告する責任を負う。マルチキャストやポートミラーリングのように、パケットの複製が必要な状況下でもまた、ＮＣＦはそのような機能を担う。
【００４３】
プラットフォーム管理エンティティ、ＮＣＣ（ネットワーククラウドコントローラ）は、ルーティングプラットフォーム（仮想ルーティングエンティティ）に含まれる全てのルーティングプロセッサ、転送装置、ファブリックを相互に接続する。ＮＣＣは、ＲＩＢ−ＦＩＢ同期フロー、データプレーンとコントロールプレーン（スローパスと呼ばれる）間のルーティングプロトコルパケットフロー、レイヤ２プロトコルパケットを転送し、プラットフォームの性能、故障、構成を管理すると同様に、パケットフローを維持する。
【００４４】
図１は、本開示に従って解釈される実施形態、ネットワーククラウドクラスタとして考えられる仮想ルーティングエンティティ１００の一例を示す。仮想ルーティングエンティティ１００は、多数のハードウェアパケット処理要素１３０と、ハードウェアファブリック要素１４０を含む。ソフトウェアアプリケーション１３０’は、全てのハードウェアパケット処理要素１３０を実行し管理するために使用され、ソフトウェアアプリケーション１４０’は、全てのハードウェアファブリック要素１４０を実行し管理するために使用される。ネットワーククラウドマネージャ１５０及びこれに関連するソフトウェアアプリケーションは、ＮＣＰ１３０及びＮＣＦ１４０のソフトウェアモジュールを動作させ管理するように構成される。この例におけるルーティングエンジンは、独自のＲＩＢテーブルと同様に独自のルーティングプロトコルを維持し、分離したソフトウェアコンテナ内の各ソフトウェアを実行するように構成される。ルーティングプラットフォームにおける転送装置は、転送エンジン、ＮＣＰ１３０を実行する。転送装置上のハードウェア抽象化層（ＨＡＬ）（不図示）により、マルチハードウェアパケットプロセッサタイプ（例えば異なるＯＤＭから及び／又は異なるチップセットベンダから購入した場合）のためのサポートの提供が可能になる。ネットワーククラウドクラスタ内のファブリック装置は、ファブリックエンジン、ＮＣＦを実行する。ＮＣＰ１３０及びＮＣＦ１４０の統計収集及びレポート、故障レポート及び汎用の内部通信のための指令を含むネットワーククラウドクラスタの内部制御は、分離されたｘ８６サーバ上に展開されるネットワーククラウドコントローラであるＮＣＣ１６０にクラスタに属する全ての要素を接続するために使用される、ＮＣＭ１５０、ネットワーククラウド管理スイッチ、及び関連するソフトウェアアプリケーション１５０’を介して、この目的専用のパスを介して伝送される。当業者にとって明らかであるが、この例のＮＣＣ１６０は、任意のハードウェアネットワーク要素の任意のＸ８６で実行してもよいため、Ｘ８６サーバはこの図では一例としてのみ説明される。
【００４５】
全てのルーティング及びスイッチングプロトコルを実行するネットワーククラウドコントローラ（ＮＣＣ）１６０は、トランザクションベースの構成エンジンとともに、管理プランを実行する。ＮＣＣ１６０は、統計マネージャ及びコレクタ、ＳＢＩ−ＮＣＰ及びＮＣＦへのサウスバンド通信、他のシステム及びＳＳＨ、ＮＥＴＣＯＮＦ、ＡＡＡのようなエンドユーザへのノースバンドインタフェースとして機能する。
【００４６】
図２は、単一のルーティング（及びスイッチング）エンティティ２００に属する物理的ネットワーク要素２１０内のデータパスＨＷリソースの共有をサポートするメカニズムを示す。各ネットワーククラウドパケット（ＮＣＰ）２２０の転送は、処理ハードウェアで実行される。ＨＡＬ２３０は、ＲＩＢをローカルＦＩＢへマッピングするマッピングテーブルを維持し、対応する特定のＳＤＫを利用することにより、特定ベンダーのチップセット２４０をプログラムする。全てのサポートされたハードウェア２６０ＳＤＫは、ＮＣＰ２２０のソフトウェアモジュールに実装されるため、ソフトウェアモジュールにより関連するハードウェアタイプが特定され認定された後に、適切なハードウェアが使用される。ＮＣＰ２２０は、特定の機能を有するエージェント、ＬＬＤＰ  エージェント，  ＢＦＤ  エージェント，  ＬＡＣＰ  エージェント，  ｕＲＰＦ  エージェント，  ＡＣＬ  エージェント，  ＮＥＴＦＬＯＷ  エージェント  、ＱｏＳ  エージェントによりデータパス機能２５０を実装する。ハードウェアキューの実装に応じて、ＮＣＣから届く指令が実装されるように、ＮＣＰはキューリソースの割り当てを管理してもよい。全てのエージェントはＮＣＣと接続され、特定の機能に関連付けられたＳＤＫ、及び関連するチップセットに対して、指示されたデータパスを構成する指令を受信する。ＮＣＰ２２０は、ＬＥＤ、ファン、電源供給のようなハードウェアネットワーク要素及びＢＳＰを介しホワイトボックスに存在する他のハードウェア要素のホワイトボックス周辺機器を制御するインフラストラクチャエージェントを有してもよい。ＮＣＰは、物理的ネットワークポート、物理的ファブリックポート（パケット転送のためにＮＣＰとＮＣＦを接続するために使用されるポート）、ＣＰＵ、ＲＡＭ、ファン電源供給等の全ての関連するハードウェアネットワーク要素から故障及び統計を収集する。
【００４７】
図３は、単一のルーティング（及びスイッチング）エンティティ３００に属する物理的ネットワーク要素３１０内のファブリック要素のリソースの共有をサポートするメカニズムを示す。ここでは、各ネットワーククラウドパケットファブリック（ＮＣＦ）は各ファブリックハードウェア上に実装される。ＨＡＬ３２０は、使用されるべき特定のＳＤＫを判定するためにチップセットタイプを識別した後、チップセットに対応する特定のＳＤＫ３４０を利用することにより、各特定ベンダーのチップセット３３０のためのリソースを（主に、但しキュー及びプログラムに限定されることなく）マッピングするためのマッピングテーブルを維持する。ＮＣＦマネージャ３５０はまた、特定のエージェントによるポートミラーリング及びマルチキャストのためのマルチキャストエージェント３６０により主に使用されるパケット複製機能を実装する。図３に示す例では、マルチキャストエージェントと呼ばれる。
【００４８】
ハードウェアキューの実装に応じて、ＮＣＣから届く指令が実装されるように、ＮＣＦはキューリソースの割り当てを管理してもよい。全てのエージェントはＮＣＣと接続され、特定の機能に関連付けられたＳＤＫ、及び関連するチップセットに対して、指示されたファブリックを構成する指令を受信する。ＮＣＦは、ＬＥＤ、ファン、電源供給のようなハードウェアネットワーク要素及びＢＳＰを介しホワイトボックスに存在する他のハードウェア要素のホワイトボックス周辺機器を制御するインフラストラクチャエージェントを有してもよい。ＮＣＰは、物理的ファブリックポート（パケット転送のためにＮＣＰとＮＣＦを接続するために使用されるポート）、ＣＰＵ、ＲＡＭ、ファン電源供給等の全ての関連するハードウェアネットワーク要素から故障及び統計を収集する。
【００４９】
図４は、単一の仮想ルーティングエンティティ（即ち、単一のネットワーククラウドクラスタ）をともに形成する複数のハードウェア要素の管理、監視及び構成をサポートするメカニズムを例示するブロック図である。ＮＣＣ（ネットワーククラウドコントローラ）は、幾つかのサブモジュールを有する。各サブモジュールは、単一の仮想ルーティングエンティティに関連付けられた特定の機能を担う役割を果たす。集中型構成管理は、エンドユーザ及び／又は外部システムからの指令を関連するＮＣＰ及びＮＣＦへ送信する機能を担う。クラスタの特性上、指令のトランザクションは、１以上のハードウェア及びソフトウェア要素の使用を必要としてもよい。集中型構成管理は、ロールバック及びディファレンシィエーション対比とともに実行構成と候補構成を実装することにより、エンドユーザ及び／又は外部システムのためにトランザクションベースの構成の使用を可能にする。このモジュールの他のタスクを開始する前は、全ての要素は最新の指令との同期を維持することが望ましい。例えば、１以上の要素が構成されなかった場合、戻りあるいは再試行が必要であり、これはこのモジュールにより自動的に実装される。データパスマネージャは、ＮＣＰに存在する異なるエージェントから必要とされる機能の高レベル及びより集中型の管理を実装する。例えば、特徴が１より多くのＮＣＰを伴う場合、ＬＡＣＰポートは分離したＮＣＰに配置される。
【００５０】
ルーティングエンジンは、関連するコメントの要求（“ＲＦＣ”）において定義されるように、ＢＧＰ，ＬＤＰ，ＩＳＩＳ，ＯＳＰＦ，ＰＩＭ，ＲＳＶＰ等の全ての適用可能なルーティング及びスイッチングプロトコルを実装し、プロトコル指令に基づくＦＩＢテーブルの統合及び構築も実行する。ステータスマネージャから要求された機能は、全てのＮＣＰ、ＮＣＦ、ＮＣＭ統計に関するデータを集め、外部システム及び／又はエンドユーザ（ネットワークオペレータ）に対する統一した表現を提示することである。
【００５１】
論理インタフェースは、多数のＮＣＰとＮＦＣの間に広がっているので、ＮＣＰ又はＮＣＦの何れかの各要素により収集されたデータは、論理インタフェースをエンドユーザ又は外部システムへ提示する前に、統合されるべきである、と想定する。システムマネージャは、ＮＣＰ、ＮＣＦ、ＮＣＭに関連する全てのインフラストラクチャエージェントに使用される統合モジュールとして使用される。このモジュールは、任意のハードウェア又はソフトウェアにおいて生じた任意の故障を提示する機能を有し、利用可能な任意のＮＢＩにより、外部システム又はエンドユーザに対してフィードバックする。その上、このモジュールは、例えばファブリックポートが故障した際、故障レポートを関連付けて広げてもよい。例えば特定の論理インタフェースのような、クラスタにより行われる必要がある多くのサービスにおけるこのような故障に対する特定の示唆があった場合、システムマネージャは、ＮＣＰファブリックポートをＮＣＦファブリックポート及び達成される論理インタフェースと関連付けてもよく、統一した故障理由を報告してもよい。
【００５２】
構成エンジンは、冗長性及び高い利用目的のための他のＮＣＣ要素の構成と同期させるために使用されてもよい。このモジュール機能は周期的に実行されてもよく、構成変更のイベントに基づき、リモートＮＣＣと構成同期トランザクションを生じさせてもよい。このコンテキストにおける構成は、エンドユーザから及び／又は外部システムから取得される構成に関する。しかしながら、ルーティングプロトコルにおけるソースの変更がリモートＮＣＣのために複製されると、メンテナンスが計画されていたり故障が発生した場合、ＮＣＣのペアのメンバー間での迅速なスイッチングを行うことができる。ノースバンドインタフェースモジュールは、外部システム及び／又はエンドユーザへの全ての関連する構成を提示するが、ＳＳＨ，ＮＥＴＣＯＮＦのような全ての転送プロトコルは、好ましくは、読み取りのみのモードで提示される。例えば、ｇＲＰＣ  ＳＮＭＰプロトコルが単一の管理されたオブジェクトを介して同じデータモデルに関連している場合、全てのＮＢＩは同じデータを読み取り構成することを意味し、これら全てが同期された状態を維持することを可能にする。異なるＮＢＩ間の書き込み優先は、設定可能であってもよい。
【００５３】
明細書の検討及びここに開示した本発明の実施から、当業者は、本発明の他の実施形態を想到することができる。明細書及び実施の形態は例示的なものにすぎず、本発明の真の範囲は、以下の特許請求の範囲によって画定される。
【図１】
2021535681.tif 000003
【図２】
2021535681.tif 000004
【図３】
2021535681.tif 000005
【図４】
2021535681.tif 000006
【国際調査報告】
2021535681.tif 000007
2021535681.tif 000008
2021535681.tif 000009
2021535681.tif 000010
2021535681.tif 000011
2021535681.tif 000012
2021535681.tif 000013
2021535681.tif 000014