(57)【要約】  ネットワークコンピューティング環境における改善されたルーティング動作のためのシステム、方法、及びデバイスを提供する。システムは、複数のスパインノード及び複数のリーフノードを有するネットワークトポロジを含み、第１のスパインノード及び第１のリーフノードの間のリンクが非アクティブである。第１のスパインノードは、非一時的コンピュータ可読記憶媒体内に格納されている命令を実行するように構成された１以上のプロセッサを含む。命令は、第１のリーフノードに伝送されるパケットを受信することを含む。命令は、ネットワークトポロジ内の同じレベルの代替スパインノードを識別することを含む。命令は、パケットにトンネルラベルを貼り付けすることを含み、トンネルラベルは、パケットが代替スパインノードに伝送されるべきである旨を指示する。【選択図】  図４
2021535697.tif 000002
【特許請求の範囲】
【請求項１】
複数のスパインノード及び複数のリーフノードを有するネットワークトポロジを含むシステムであって、第１のスパインノード及び第１のリーフノードの間のリンクが非アクティブであり、
前記第１のスパインノードは、非一時的コンピュータ可読記憶媒体内に格納されている命令を実行するように構成可能な１以上のプロセッサを含み、
前記命令は、
前記第１のリーフノードに伝送されるパケットを受信し、
前記ネットワークトポロジ内の同じレベルの代替スパインノードを識別し、
パケットにトンネルラベルを貼り付けし、前記トンネルラベルは、前記パケットが前記代替スパインノードに伝送されるべきである旨を指示する、
ことを含むことを特徴とするシステム。
【請求項２】
前記命令は、前記第１のスパインノード及び前記第１のリーフノードの間の前記リンクが非アクティブであることを識別することを含み、同じレベルの前記代替スパインノードを識別することは、前記第１のスパインノードの冗長グループを分析することを含むことを特徴とする請求項１に記載のシステム。
【請求項３】
前記命令はさらに、前記ネットワークトポロジ内の同じレベルの他のスパインノードへのローカルループバックルートをアドバタイズすることを含むことを特徴とする請求項１に記載のシステム。
【請求項４】
前記命令はさらに、前記第１のリーフノードへのアクティブリンクを有する、前記ネットワークトポロジ内の同じレベルの１以上の代替スパインノードを含む冗長グループを追加することを含むことを特徴とする請求項１に記載のシステム。
【請求項５】
前記命令は、前記トンネルラベルが前記代替スパインノードに向けられたルートを含むことを特徴とする請求項１に記載のシステム。
【請求項６】
前記命令は、前記トンネルラベルがさらに前記ルートが前記第１のリーフノードに到達する最適パスではない旨の指示情報を含むことを特徴とする請求項５に記載のシステム。
【請求項７】
前記命令はさらに、
前記第１のスパインノード及び前記第１のリーフノードの間の前記リンクがもう非アクティブではないことを識別し、
前記リンクがもう非アクティブではないことの識別に応答して、前記第１のリーフノードを宛先とする新しいパケットに前記トンネルラベルを貼り付けする代わりに、前記新しいパケットを前記第１のリーフノードへ直接伝送することを特徴とする請求項１に記載のシステム。
【請求項８】
前記ネットワークトポロジは、リーフ／スパインアーキテクチャを有するＣｌｏｓネットワークであることを特徴とする請求項１に記載のシステム。
【請求項９】
前記ネットワークトポロジは、それぞれがスパインノード及びリーフノードを有する複数のレイヤを含み、前記命令は、前記代替スパインノードを識別することが、前記第１のリーフノードへのアクティブなリンクを有する前記第１のスパインノードとして、前記ネットワークトポロジ内の同じレベルの１以上の他のスパインノードを識別することを含むことを特徴とする請求項１に記載のシステム。
【請求項１０】
前記命令はさらに、同じレベルの前記他のスパインノードから受信したアドバタイズメントに基づいて、同じレベルのどの他のスパインノードが前記第１のリーフノードへのアクティブなリンクを有するか識別することを特徴とする請求項９に記載のシステム。
【請求項１１】
非一時的コンピュータ可読記憶媒体に格納された命令を実行するように構成可能な１以上のプロセッサであって、
前記命令は、
ネットワークトポロジ内の第１のスパインノード及び第１のリーフノードの間のリンクが非アクティブであることを判定し、
前記第１のリーフノードへ伝送されるパケットを受信し、
前記ネットワークトポロジ内の同じレベルの代替スパインノードを識別し、
前記パケットにトンネルラベルを貼り付けし、前記トンネルラベルは、前記パケットが前記代替スパインノードへ伝送されるべきである旨を指示する、
ことを含むことを特徴とする１以上のプロセッサ。
【請求項１２】
前記命令は、同じレベルの前記代替スパインノードを識別することが、前記第１のスパインノードの冗長グループを分析することを含むことを特徴とする請求項１１に記載の１以上のプロセッサ。
【請求項１３】
前記命令はさらに、前記ネットワークトポロジ内の同じレベルの他のスパインノードへのローカルループバックルートをアドバタイズすることを含むことを特徴とする請求項１１に記載の１以上のプロセッサ。
【請求項１４】
前記命令はさらに、前記第１のリーフノードへのアクティブリンクを有する、前記ネットワークトポロジ内の同じレベルの１以上の代替スパインノードを含む冗長グループを追加することを含むことを特徴とする請求項１１に記載の１以上のプロセッサ。
【請求項１５】
前記命令は、前記トンネルラベルが前記代替スパインノードに向けられたルートを含み、前記トンネルラベルがさらに前記ルートが前記第１のリーフノードに到達する最適パスではない旨の指示情報を含むことを特徴とする請求項１１に記載の１以上のプロセッサ。
【請求項１６】
ネットワークトポロジ内の第１のスパインノード及び第１のリーフノードの間のリンクが非アクティブであることを判定し、
前記第１のリーフノードへ伝送されるパケットを受信し、
前記ネットワークトポロジ内の同じレベルの代替スパインノードを識別し、
前記パケットにトンネルラベルを貼り付けし、前記トンネルラベルは、前記パケットが前記代替スパインノードに伝送されるべきである旨を指示する、
ことを含むことを特徴とする方法。
【請求項１７】
さらに、同じレベルの前記代替スパインノードを識別することは、前記第１のスパインノードの冗長グループを分析することを含むことを特徴とする請求項１６に記載の方法。
【請求項１８】
さらに、前記ネットワークトポロジ内の同じレベルの他のスパインノードへのローカルループバックルートをアドバタイズすることを含むことを特徴とする請求項１６に記載の方法。
【請求項１９】
前記第１のリーフノードへのアクティブリンクを有する、前記ネットワークトポロジ内の同じレベルの１以上の代替スパインノードを含む冗長グループを追加することを含むことを特徴とする請求項１６に記載の方法。
【請求項２０】
前記トンネルラベルが前記代替スパインノードに向けられたルートを含み、前記トンネルラベルがさら前記にルートが前記第１のリーフノードに到達する最適パスではない旨の指示情報を含むことを特徴とする請求項１６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願への相互参照
本出願は、２０１８年８月２３日に出願された米国仮特許出願第６２／７２２，００３号「DATABASE SYSTEMS METHODS AND DEVICES」に対する優先権を主張するものであり、この文献は、次の例外を除き、これに限定されるものではないが、以下に具体的に記載される部分を含む全体が参照により本明細書に援用される。前記出願の何れかの部分が本出願と矛盾する場合、本出願の内容が前記出願に優先される。
【０００２】
本開示は、コンピューティングネットワークに関し、特に、コンピュータネットワーク環境におけるネットワークトポロジ及びルーティングプロトコルに関する。
【背景技術】
【０００３】
ネットワークコンピューティングとは、複数のコンピュータ又はノードが連携し、ネットワークを介して相互に通信するための手段である。これには、ワイドエリアネットワーク（wide area network：ＷＡＮ）とローカルエリアネットワーク（local area network：ＬＡＮ）とがある。ワイドエリアネットワークとローカルエリアネットワークは、何れも、コンピュータ間の相互接続を可能にする。ローカルエリアネットワークは、通常、家庭、ビジネス、学校等、より小規模でローカライズされたネットワークに使用される。ワイドエリアネットワークは、都市等の広域をカバーし、異なる国のコンピュータを接続することもできる。通常、ローカルエリアネットワークは、ワイドエリアネットワークよりも高速で安全であるが、ワイドエリアネットワークを使用すると広範囲の接続が可能になる。通常、ローカルエリアネットワークは、展開されている組織内で所有、制御、及び管理され、一方、ワイドエリアネットワークでは、通常、パブリックインターネット経由又は電気通信プロバイダによって確立されたプライベート接続を介して、構成要素である２以上のローカルエリアネットワークを接続する必要がある。
【０００４】
ローカルエリアネットワークとワイドエリアネットワークによって、コンピュータを相互に接続し、データやその他の情報を転送できる。ローカルエリアネットワーク及びワイドエリアネットワークの何れにおいても、ある演算インスタンスから別の演算インスタンスにデータを渡すパスを判定する手段が必要である。これは、ルーティングとも呼ばれる。ルーティングとは、ネットワーク内で、複数のネットワーク間で、又は複数のネットワークに亘って、トラフィックのパスを選択するプロセスである。ルーティングプロセスは、通常、様々なネットワーク宛先へのルートの記録を保持するルーティングテーブルに基づいて、転送を指示する。ルーティングテーブルは、管理者が指定してもよく、ネットワークトラフィックを監視して学習してもよく、ルーティングプロトコルの支援を受けて構築してもよい。
【０００５】
小規模ネットワークでは、手動で構成されたルーティングテーブルを使用して、あるコンピュータから別のコンピュータへの情報の転送方法を判定できる。ルーティングテーブルは、開始コンピュータと最終宛先コンピュータとの間の最も効率的又は最も望ましいパスを示す「最適パス」のリストを含むことができる。公衆インターネットに接続されたネットワークを含む大規模なネットワークは、複雑なトポロジに依存していることがあり、トポロジは、急速に変化する可能性があるため、ルーティングテーブルを手動で構築することは、不可能である。動的ルーティングは、ルーティングプロトコルによって伝送される情報に基づいてルーティングテーブルを自動的に構築することによって、この問題を解決しようとするものである。動的ルーティングにより、ネットワークは、略自律的に動作して、ネットワークの障害やブロックを回避できる。ネットワークデバイス間の最適パスを判定するための規則又は命令を提供する複数のルーティングプロトコルが存在する。動的ルーティングプロトコル及びアルゴリズムには、ルーティング情報プロトコル（Routing Information Protocol：ＲＩＰ）、オープンショーテストパスファースト（Open Shortest Path First：ＯＳＰＦ）、エンハンスドインテリアゲートウェイルーティングプロトコル（Enhanced Interior Gateway routing Protocol：ＥＩＧＲＰ）、及びボーダゲートウェイプロトコル（Border Gateway Protocol：ＢＧＰ）等がある。
【０００６】
幾つかの具体例では、パス選択は、複数のルートにルーティングメトリックを適用して、最適ルートを選択又は予測することを含む。殆どのルーティングアルゴリズムは、一度に１つのネットワークパスのみを使用する。マルチパスルーティング技術は、複数の代替パスの使用を可能にする。コンピュータネットワークでは、ルーティングアルゴリズムを使用して、２つの演算インスタンス間の最適パスを予測できる。ルーティングアルゴリズムは、帯域幅、ネットワーク遅延、ホップカウント、パスコスト、負荷、最大転送単位、信頼性、及び通信コスト等の複数の要因に基づくものであってもよい。ルーティングテーブルには、最適パスのリストが格納される。トポロジデータベースは、最適パスのリストを格納でき、更に追加情報を格納できる。
【０００７】
一部のネットワークでは、最適パスの選択を担当するエンティティが単一のエンティティではないという事実のために、ルーティングが複雑になる。代わりに、複数のエンティティが最適パス又は単一パスのイベント部分の選択に関与する。インターネット上のコンピュータネットワーキングのコンテキストにおいて、インターネットは、インターネットサービスプロバイダ（ＩＳＰ）のような自律システム（ＡＳ）に分割される。各自律システムは、そのネットワークを含むルートを制御する。各自律システムレベルのパスには、一連の自律システムが含まれており、この自律システムを経由して、ある演算インスタンスから別の演算インスタンスに情報パケットが送信される。各自律システムは、複数のパスを有することができ、この複数のパスから、隣接する自律システムによって提供される複数のパスを選択できる。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
多くのネットワークトポロジがあり、これらは、異なるコンピューティングアプリケーションに対して様々な利点及び欠点を有する。１つのネットワークトポロジは、複数のリーフノード（leaf node）と通信するスパインノード（spine node）を含むリーフ／スパインネットワークトポロジ（leaf-spine network topology）である。従来のリーフ／スパインネットワークトポロジのルーティングプロトコルには、多くの欠点があり、リーフノードが非アクティブになったときにデータループが非効率的になる可能性がある。そこで、リーフ／スパインネットワークトポロジのための改善されたラベリングプロトコル及びルーティングプロトコルが望まれている。
【課題を解決するための手段】
【０００９】
以上を考慮して、ここでは、ネットワークコンピューティング環境におけるルーティング動作を改善するためのシステム、方法、及びデバイスを開示する。
【００１０】
本開示の非限定的及び非包括的な実施形態は、以下の図を参照して説明され、これらの図において、同一の参照符号は、特段の指定がない限り、全ての図を通して同一の部分を指す。以下の説明及び添付の図面を参照することにより、本開示の利点がより明瞭に理解される。
【図面の簡単な説明】
【００１１】
【図１】インターネットを介して通信するネットワーク化されたデバイスのシステムの概略図である。
【図２】プレフィックスＰ２からプレフィックスＰ１へのパケット伝送パス及びリーフ／スパインネットワークトポロジの概略図である。
【図３Ａ】スパインＳ２及びリーフＬ１間のリンク障害を原因として起こり得る一時ループ及びリーフ／スパインネットワークトポロジの概略図である。
【図３Ｂ】スパインＳ２及びリーフＬ１間のリンク障害を原因として起こり得る一時ループ及びリーフ／スパインネットワークトポロジの概略図である。
【図４】バックアップトンネル経由の異なるスパインノードへパケットをルーティングするループ回避プロトコル及びリーフ／スパインネットワークトポロジの概略図である。
【図５】パケットを異なるスパインノードへリルートするプロセスフローの概略図である。
【図６】ネットワーキングデバイスにより簡易化された通信の概略図である。
【図７】ネットワーク環境においてデータパケットをルーティングする方法の概略的フローチャートである。
【図８】例示的な演算デバイスの構成要素を示す概略図である。
【発明を実施するための形態】
【００１２】
ここでは、ネットワークコンピューティング環境における改善されたネットワークトポロジ、ルーティングラベリング、及びルーティングプロトコルのためのシステム、方法、及びデバイスを開示する。本開示の一実施形態は、リーフ／スパインネットワークトポロジ内のスパインノード及びリーフノード間の非アクティブリンクを原因とする一時ループを回避するために展開される。本開示の一実施形態は、データパケットの最終宛先への伝送を失敗するマイクロループを回避するために異なるスパインにパケットをルーティングするバックアップトンネルを採用する。
【００１３】
一実施形態では、リーフ／スパインネットワークトポロジは、複数のスパインノード及び複数のリーフノードを含む。複数のスパインノードのそれぞれは、スイッチ又はルータのようなネットワーキングデバイスとして動作することができる。複数のリーフノードのそれぞれは、民生用電子機器のようなネットワーキング「宛先」又は「ソース」として動作することができる。スパインノードは、ネットワークトポロジを通して適切なリーフノードへデータパケットをルーティングするように構成されることができる。スパインノード及びリーフノード間のリンクは切れている。リンクが切れているので、スパインノードを通って転送されているデータパケットは、一時ループに陥ることがあり、宛先であるリーフノードに伝送されないことがある。ここでは、異なるスパインノードにバックアップトンネルを生成することによりループを回避するシステム、方法、及びデバイスが開示されている。
【００１４】
一実施形態では、リーフ／スパインネットワークトポロジ内のスパインノードが、特定のリーフノードへのリンクが切れていることをアドバタイズ（advertise）する。スパインノードが特定のリーフノードにデータパケットを伝送する必要がある場合、スパインノードがデータパケットにトンネルラベルを貼り付けする。トンネルラベルは、通常とは異なり、特定のリーフノードに結果的に到着するようにデータパケットを伝送する代替ルートを示す。トンネルラベルは、特定のリーフノードへのアクティブリンクとして、リーフ／スパインネットワークトポロジの同じレベル内の他のスパインノードを通る代替パスを提供する。トンネルラベルはさらに、ルートが特定のリーフノードへの最良のパスではない旨の指示情報を含む。トンネルラベルは、スパインノードの１つにリーフノードにより割り当てられたラベルであり、したがって、特定のリーフノードへのプレフィックスポインティングの検索を実行する代わりに、リーフノードが代替スパインノードにデータパケットを伝送するようにリーフノードにより読み込まれる。
【００１５】
コンピュータネットワーク環境では、スイッチ又はルータ等のネットワーキングデバイスを使用して、１つの宛先から最終的な宛先に情報を送信できる。一実施形態では、データパッケージ及びメッセージは、個人の自宅内のコンピュータ等の第１の場所で生成してもよい。データパッケージ及びメッセージは、個人がウェブブラウザとインタラクトし、インターネットを介してアクセス可能なリモートサーバに情報を要求し又は情報を提供することによって生成できる。例えば、データパッケージ及びメッセージは、インターネットに接続されたウェブページ上でアクセス可能なフォームに個人が入力した情報であってもよい。データパッケージ及びメッセージは、個人のコンピュータから地理的に非常に離れた場所にあるリモートサーバに送信する必要がある場合がある。個人の自宅のルータとリモートサーバの間では、直接通信が行われていない可能性が高い。したがって、データパッケージ及びメッセージは、リモートサーバの最終的な宛先に到達するまでに、異なるネットワーキングデバイスを「ホッピング」して移動する必要がある。個人の自宅のルータは、インターネットに接続された複数の異なるデバイスを介してデータパッケージ及びメッセージを送信し、データパッケージ及びメッセージがリモートサーバの最終宛先に到達するまでのルートを判定する必要がある。
【００１６】
第１の場所から最終的な宛先への最良のパスを判定し、データパッケージ及びメッセージを次の宛先に転送するプロセスは、スイッチ又はルータ等のネットワーキングデバイスによって実行される重要な機能である。ネットワーク内のネットワーキングデバイス間の接続は、ネットワークトポロジと呼ばれる。ネットワークトポロジは、通信ネットワーク内のリンクやノード等の要素の配置である。ネットワークトポロジは、有線リンク、無線リンク、又はネットワーク内のノード間の有線及び無線リンクの組み合わせを含むことができる。有線リンクの例としては、同軸ケーブル、電話線、電力線、リボンケーブル、光ファイバ等がある。無線リンクの例としては、衛星、セルラ信号、無線信号、自由空間光通信等がある。ネットワークトポロジは、ネットワーク内の全てのノード（コンピュータ、ルータ、スイッチ、その他のデバイス等）の指示情報と、ノード間のリンクの指示情報とを含む。ここでは、ネットワークルーティング及びネットワークトポロジを改善するためのシステム、方法、及びデバイスを開示する。
【００１７】
本開示の理解を深めるために、多数のネットワーキング演算デバイス及びプロトコルの幾つかを説明する。
【００１８】
ＢＧＰインスタンスは、ネットワーク内で情報をルーティングするためのデバイスである。ＢＧＰインスタンスは、ルートリフレクタ機器（route reflector appliance）の形式で実現してもよい。ＢＧＰインスタンスは、スイッチ、ルータ、又はスイッチ上のＢＧＰスピーカで実行してもよい。高レベルでは、ＢＧＰインスタンスは、プレフィックスについて学習した全てのパスを最適パスコントローラ（best path controller）に送信する。最適パスコントローラは、これらのパスの中から最適パスのセットを応答する。最適パスコントローラは、任意のパスのネクストホップ及び属性を変更することが許可されている。最適パスを受信すると、ＢＧＰインスタンスは、ローカルルーティング情報ベース（Routing Information Base：ＲＩＢ）を更新し、最適パスをネイバ（neighbors）にアドバタイズする。
【００１９】
スイッチ（スイッチングハブ、ブリッジングハブ、又はＭＡＣブリッジとも呼ばれる。）は、ネットワークを作成する。殆どの内部ネットワークは、建物又はキャンパス内のコンピュータ、プリンタ、電話機、カメラ、照明、及びサーバを接続するためにスイッチを使用する。スイッチは、ネットワークに接続されたデバイスが相互に効率的に通信できるようにするコントローラとして機能する。スイッチは、パケットスイッチングを使用してコンピュータネットワーク上のデバイスを接続し、これによりデータが受信され、処理され、宛先デバイスに転送される。ネットワークスイッチは、ハードウェアアドレスを使用して、開放型システム間相互接続（Open Systems Interconnection：ＯＳＩ）モデルのデータリンクレイヤ（レイヤ２）でデータを処理及び転送するマルチポートネットワークブリッジである。一部のスイッチは、ルーティング機能を追加で組み込むことにより、ネットワークレイヤ（レイヤ３）でデータを処理することもできる。このようなスイッチは、一般にレイヤ３スイッチ又はマルチレイヤスイッチと呼ばれている。
【００２０】
ルータは、ネットワークを接続する。スイッチ及びルータは、類似する機能を実行するが、ネットワーク上で実行する機能はそれぞれ異なる。ルータは、コンピュータネットワーク間でデータパケットを転送するネットワークデバイスである。ルータは、インターネット上でトラフィックダイレクティング機能（traffic directing function）を実行する。ウェブページ、電子メール、又はその他の形式の情報等、インターネットを介して送信されるデータは、データパケットの形式で送信される。パケットは、通常、インターネットワーク（例えばインターネット）を構成するネットワークを介してあるルータから別のルータに転送されて、最終的に宛先ノードに到達する。ルータは、異なるネットワークからの複数のデータラインに接続されている。データパケットがラインの１つに到着すると、ルータは、パケット内のネットワークアドレス情報を読み取り、最終的な宛先を判定する。次に、ルータは、ルータのルーティングテーブル又はルーティングポリシの情報を使用して、行程上の次のネットワークにパケットを送信する。ＢＧＰスピーカは、ボーダゲートウェイプロトコル（Border Gateway Protocol：ＢＧＰ）がイネーブルにされているルータである。
【００２１】
顧客エッジルータ（customer edge router：ＣＥルータ）は、顧客のＬＡＮとプロバイダのコアネットワークとの間のインタフェースを提供する、顧客の敷地内にあるルータである。ＣＥルータ、プロバイダルータ、及びプロバイダエッジルータは、マルチプロトコルラベルスイッチングアーキテクチャのコンポーネントである。プロバイダルータは、プロバイダ又はキャリアのネットワークのコアに配置される。プロバイダエッジルータは、ネットワークのエッジに配置される。顧客エッジルータは、プロバイダエッジルータに接続し、プロバイダエッジルータは、プロバイダルータを介して他のプロバイダエッジルータに接続する。
【００２２】
ルーティングテーブル又はルーティング情報ベース（ＲＩＢ）は、ルータ又はネットワークコンピュータに格納されているデータテーブルであり、特定のネットワーク宛先へのルートをリストするものである。ルーティングテーブルには、距離、重み等のルートのメトリックが含まれる場合がある。ルーティングテーブルには、それが格納されているルータの直近のネットワークのトポロジに関する情報が含まれる。ルーティングテーブルの構築は、ルーティングプロトコルの主要な目的である。スタティックルートは、非自動手段によってルーティングテーブルに作成されるエントリであり、何らかのネットワークトポロジディスカバリ手順の結果ではなく、固定されている。ルーティングテーブルは、ネットワークＩＤ、メトリック、及びネクストホップのフィールドを含む、少なくとも３つの情報フィールドを含むことができる。ネットワークＩＤは、宛先サブネットである。メトリックは、パケットが送信されるパスのルーティングメトリックである。ルートは、メトリックが最小のゲートウェイの方向に進む。ネクストホップとは、パケットが最終宛先に送信されるまでの過程における次のステーションのアドレスである。ルーティングテーブルは、更に、ルートに関連付けられたサービス品質、ルートに関連付けられたフィルタリング基準リストへのリンク、イーサネットカードのインタフェース等を含むことができる。
【００２３】
ルーティングテーブルの概念を説明する目的のために、ルーティングテーブルは、パッケージを送達するために使用される地図に見立てることができる。ルーティングテーブルは、パッケージを最終的な宛先に配信するために使用される地図に似ている。ノードがネットワーク上の別のノードにデータを送信する必要がある場合、ノードはまずデータの送信先を認識する必要がある。ノードが宛先ノードに直接接続できない場合、ノードは、宛先ノードへの適切なルートに沿って他のノードにデータを送信する必要がある。殆どのノードは、どのルートが機能するかを判断することを試みることはない。これに代えて、ノードは、ＬＡＮ内のゲートウェイにＩＰパケットを送信し、ゲートウェイが、データを正しい宛先にどのようにルーティングするかを決定する。各ゲートウェイは、様々なデータパッケージを配信する方法を追跡する必要があり、そのためにルーティングテーブルを使用する。ルーティングテーブルは、地図のようにパスを追跡し、これらのパスを使用してトラフィックをどのように転送するかを判定するためのデータベースである。ゲートウェイは、情報を要求する他のノードとルーティングテーブルの内容を共有することもできる。
【００２４】
ホップバイホップ（hop-by-hop）ルーティングの場合、各ルーティングテーブルには、全ての到達可能な宛先について、その宛先へのパスに沿った次のデバイスのアドレス、すなわち、ネクストホップがリストされる。ルーティングテーブルが一貫していると仮定すれば、パケットを宛先のネクストホップにリレーするアルゴリズムは、ネットワーク内の任意の場所にデータを配信するのに十分である。ホップバイホップは、ＩＰインターネットワークレイヤ及び開放型システム間相互接続（ＯＳＩ）モデルの特徴の一つである。
【００２５】
開放型システム間相互接続（ＯＳＩ）モデルは、基礎となる内部構造及び技術に関係なく、コンピューティングシステムの通信機能を特徴付け、標準化する概念モデルである。ＯＳＩモデルの目標は、多様な通信システムと標準通信プロトコルとの相互運用性である。ＯＳＩモデルは、通信システムを複数の抽象レイヤに分割する。レイヤは、上位のレイヤにサービスを提供し、下位のレイヤからサービスを提供される。例えば、ネットワークに亘って無エラー通信（error-free communication）を提供するレイヤは、上位のアプリケーションが必要とするパスを提供すると共に、次の下位レイヤを呼び出して、そのパスの内容を構成するパケットを送受信する。同じレイヤにある２つのインスタンスは、そのレイヤで水平接続によって接続されているものとして可視化される。通信プロトコルは、あるホストのエンティティが、別のホストの同じレイヤの対応するエンティティとインタラクションすることを可能にする。ＯＳＩモデルのようなサービス定義は、（Ｎ−１）レイヤによって（Ｎ）レイヤに提供される機能を抽象的に記述し、ここで、Ｎは、ローカルホストで動作するプロトコルレイヤの１つである。
【００２６】
ルート制御は、インターネット接続性の向上、帯域幅コストの削減、及びネットワーク間の全体的な動作の削減を目的としたネットワーク管理の一種である。一部のルート制御サービスは、ハードウェアベース及びソフトウェアベースの一連の製品及びサービスを含み、これらは、連携して全体的なインターネットパフォーマンスを向上させ、利用可能なインターネット帯域幅を最小限のコストで微調整（finetune）する。ネットワーク又は自律システムが複数のプロバイダからインターネット帯域幅を調達するシナリオでは、ルート制御を成功させることができる。ルート制御は、データ伝送のための最適なルートの選択を援助できる。
【００２７】
一部のネットワーク通信システムは、数千の処理ノードを有する大規模な企業レベルのネットワークである。数千もの処理ノードが複数のインターネットサービスプロバイダ（Internet Service Provider：ＩＳＰ）からの帯域幅を共有し、大量のインターネットトラフィックを処理できる。このようなシステムは、非常に複雑になる可能性があり、許容できるインターネットパフォーマンスを得るために適切に構成する必要がある。システムが最適なデータ伝送のために適切に構成されていないと、インターネットアクセスの速度が低下し、システムの帯域幅消費及びトラフィックが増大する可能性がある。この問題に対し、一連のサービスを実装することによって、これらの懸念を排除又は軽減できる。この一連のサービスは、ルーティング制御とも呼ばれる。
【００２８】
ルーティング制御メカニズムの一実施形態は、ハードウェアとソフトウェアとから構成される。ルーティング制御メカニズムは、インターネットサービスプロバイダ（ＩＳＰ）との接続を介して全ての発信トラフィック（outgoing traffic）を監視する。ルーティング制御メカニズムは、データの効率的な伝送のための最適パスの選択を支援する。ルーティング制御メカニズムは、全てのＩＳＰの性能及び効率を計算し、適用可能な領域において最適に動作したＩＳＰのみを選択できる。ルート制御デバイスは、コスト、パフォーマンス、及び帯域幅に関する定義済みのパラメータに従って構成できる。
【００２９】
データ伝送のための最適パスを判定するための公知のアルゴリズムは、ボーダゲートウェイプロトコル（Border Gateway Protocol：ＢＧＰ）と呼ばれる。ＢＧＰは、インターネット上の自律システムのルーティング情報を提供するパスベクトル（path-vector）プロトコルである。ＢＧＰが正しく構成されていないと、サーバの利用可能性及び安全性に問題が発生する可能性がある。更に、攻撃者は、ＢＧＰルート情報を変更することにより、トラフィックの大規模なブロックをリダイレクトして、トラフィックが目的の宛先に到達する前に、トラフィックを特定のルータに到達させることができる。ＢＧＰ最適パスアルゴリズムを実装することによって、トラフィック転送用のインターネットプロトコル（Internet Protocol：ＩＰ）ルーティングテーブルにインストールする最適パスを判定できる。ＢＧＰルータは、同じ宛先への複数のパスを受信するように構成できる。
【００３０】
ＢＧＰ最適パスアルゴリズムは、最初の有効なパスを現在の最適パスとして割り当てる。ＢＧＰ最適パスアルゴリズムは、ＢＧＰが有効パスのリストの最後に到達するまで、リスト内の次のパスと最適パスを比較する。このリストは、最適パスを判定するために使用される規則を提供する。例えば、リストは、重みが最も高いパスの優先、ローカル優先度がないパスの優先、ネットワーク又はアグリゲーションＢＧＰによってローカルに発生したパスの優先、最短パスの優先、最小のマルチエグジットディスクリミネータ（multi-exit discriminator）を有するパスの優先等の指示情報を含むことができる。ＢＧＰ最適パス選択プロセスは、カスタマイズできる。
【００３１】
ＢＧＰルーティングのコンテキストでは、各ルーティングドメインは、自律システム（autonomous system：ＡＳ）と呼ばれる。ＢＧＰは、２つのルーティングドメインを接続するためのインターネット経由のパスの選択を支援する。ＢＧＰは、通常、最短ＡＳパスと呼ばれる、最小数の自律システムを通過するルートを選択する。一実施形態では、一旦ＢＧＰが有効にされると、ルータは、ＢＧＰネイバからインターネットルートのリストをプルし、ここで、ＢＧＰネイバは、ＩＳＰであってもよい。次に、ＢＧＰは、リストを精査して、最も短いＡＳパスを有するルートを発見する。これらのルートは、ルータのルーティングテーブルに入力してもよい。通常、ルータは、ＡＳへの最短パスを選択する。ＢＧＰは、パス属性を使用して、トラフィックを特定のネットワークにどのようにルーティングするかを判定する。
【００３２】
等コストマルチパス（equal cost multipath：ＥＣＭＰ）ルーティングは、単一の宛先へのネクストホップパケット転送が複数の「最適パス」に亘って発生する可能性があるルーティング方式である。複数の最適パスは、ルーティングメトリックの計算に基づいて同等である。ルーティングは、単一のルータに限定されたホップ毎の判定であるため、マルチパスルーティングを多数のルーティングプロトコルと共に使用できる。マルチパスルーティングでは、複数のパスに亘ってトラフィックを負荷分散することにより、帯域幅を大幅に増やすことができる。しかしながら、ストラテジを実際に展開する際、ＥＣＭＰルーティングには、多くの問題が知られている。ここでは、改善されたＥＣＭＰルーティングのためのシステム、方法、及びデバイスを開示する。
【００３３】
Ｃｌｏｓネットワークは、テレコミュニケーションにおいて展開できる。Ｃｌｏｓネットワークは、多段スイッチングシステムの理想化を表す多段回路スイッチングネットワークである。Ｃｌｏｓネットワークは、イングレス（ingress）ステージ、ミドル（middle）ステージ、エグレス（egress）ステージの３つのステージを含む。各ステージは、複数のクロスバースイッチで構成されている。各セルは、イングレスクロスバースイッチに入り、これは、使用可能なミドルステージクロスバースイッチの何れかを介して、関連するエグレスクロスバースイッチにルーティングできる。イングレススイッチをミドルステージスイッチに接続するリンクと、ミドルステージスイッチをエグレススイッチに接続するリンクとの両方が空いている場合、ミドルステージクロスバーを特定の新しいコールに使用できる。
【００３４】
コンピュータネットワーク内のノードを接続するためにリーフ／スパインネットワークトポロジを展開できる。リーフ／スパイントポロジには、リーフレイヤとスパインレイヤの２つのレイヤがある。リーフレイヤは、サーバ、ファイアウォール、ロードバランサ、エッジルータ等のデバイスに接続するアクセススイッチで構成される。スパインレイヤは、ルーティングを実行するスイッチで構成され、全てのリーフスイッチが各スパインスイッチと相互接続されるネットワークのバックボーンを構成する。リーフ／スパイントポロジでは、全てのデバイスが同じリンク数だけ互いに離れて配置され、情報を送信するための遅延又はレイテンシの量が予測可能で一貫している。
【００３５】
本開示に基づく原理の理解を深めるために、以下では、図示の実施形態を参照し、特定の表現を用いてこれを説明する。但し、これは、本開示の範囲を限定することを意図するものではない。ここに例示する本開示の特徴の任意の変更及び更なる修正、並びにここに例示する本開示の原理の任意の追加的な適用は、当業者が本開示に基づいて容易に想到できるものであり、特許請求の範囲に含まれる。
【００３６】
ネットワークコンピューティング環境におけるオブジェクトのライフサイクルを追跡するための構造、システム、及び方法を開示及び説明する前に、本開示は、ここに開示される特定の構造、構成、プロセスステップ、及び材料に限定されず、そのような構造、構成、プロセスステップ、及び材料を変更してもよいことを明記する。また、本開示の範囲は、特許請求の範囲及びその均等物によってのみ制限されるものであるため、ここで使用される用語は、特定の実施形態を説明する目的でのみ使用され、限定を意図しないことは当然である。
【００３７】
本開示の主題を記述し特許請求する際には、以下に記載する定義に従って、以下の用語を使用する。
【００３８】
本明細書及び特許請求の範囲において使用する、単数形（冠詞「ａ」、「ａｎ」、及び「ｔｈｅ」）は、コンテキストにおける特段の指定がない限り、複数の指示対象を含む。
【００３９】
ここで使用する語句「備える」、「有する」、「含む」、「特徴とする」、及びこれらの文法的等価物は、記載されていない追加的な要素又は方法工程を除外しない非排他的又はオープンな用語である。
【００４０】
ここで使用する語句「〜からなる」及びその文法的等価物は、請求項に記載されていない任意の要素又は工程を除外する。
【００４１】
ここで使用される語句「実質的に〜からなる」及びその文法的等価物は、特許請求の範囲を、特定された材料又は工程、並びに特許請求された開示の基本的かつ新規な特性又は特徴に実質的に影響しない材料又は工程に限定する。
【００４２】
以下の説明は、図面を参照し、図１は、デバイスをインターネットに接続するためのシステム１００の概略図である。システム１００は、スイッチ１０６によって接続された複数のローカルエリアネットワーク１１０を含む。複数のローカルエリアネットワーク１１０のそれぞれは、ルータ１１２によって、公衆インターネットを介して互いに接続可能である。図１に示す例示的なシステム１００は、２つのローカルエリアネットワーク１１０を有する。但し、公衆インターネットを介して、より多くのローカルエリアネットワーク１１０を互いに接続してもよい。各ローカルエリアネットワーク１１０は、スイッチ１０６によって互いに接続された複数の演算デバイス１０８を含む。複数の演算デバイス１０８は、例えば、デスクトップコンピュータ、ラップトップ、プリンタ、サーバ等を含むことができる。ローカルエリアネットワーク１１０は、ルータ１１２によって、公衆インターネットを介して他のネットワークと通信できる。ルータ１１２は、複数のネットワークを互いに接続する。ルータ１１２は、インターネットサービスプロバイダ１０２に接続されている。インターネットサービスプロバイダ１０２は、１以上のネットワークサービスプロバイダ１０４に接続されている。ネットワークサービスプロバイダ１０４は、図１に示すように、他のローカルネットワークサービスプロバイダ１０４と通信を行う。
【００４３】
スイッチ１０６は、パケットスイッチング（packet switching）を使用してローカルエリアネットワーク１１０内のデバイスを接続し、これによりデータが受信され、処理され、宛先デバイスに転送される。スイッチ１０６は、例えば、プリンタを宛先として、コンピュータからデータを受信するように構成できる。スイッチ１０６は、データを受信し、データを処理し、データをプリンタに送信できる。スイッチ１０６は、レイヤ１スイッチ、レイヤ２スイッチ、レイヤ３スイッチ、レイヤ４スイッチ、レイヤ７スイッチ等であってもよい。レイヤ１ネットワークデバイスは、データを転送するが、デバイスを通過するトラフィックは管理しない。レイヤ１ネットワークデバイスの例は、イーサネットハブである。レイヤ２ネットワークデバイスは、ハードウェアアドレスを使用してデータリンクレイヤ（レイヤ２）でデータを処理及び転送するマルチポートデバイスである。レイヤ３スイッチは、通常ルータによって実行される機能の一部又は全てを実行できる。但し、一部のネットワークスイッチは、単一タイプの物理ネットワーク、通常は、イーサネットをサポートするように制限されており、一方、ルータは、異なるポート上の異なる種類の物理ネットワークをサポートする場合がある。
【００４４】
ルータ１１２は、コンピュータネットワーク間でデータパケットを転送するネットワーキングデバイスである。図１に示す例示的なシステム１００において、ルータ１１２は、ローカルエリアネットワーク１１０間でデータパケットを転送する。但し、ルータ１１２は、必ずしもローカルエリアネットワーク１１０間のデータパケットの転送に適用される必要はなく、ワイドエリアネットワーク等の間のデータパケットの転送に使用してもよい。ルータ１１２は、インターネット上でトラフィックダイレクション機能（traffic direction function）を実行する。ルータ１１２は、銅ケーブル、光ファイバ、又は無線伝送等の異なるタイプの物理レイヤ接続のためのインタフェースを有してもよい。ルータ１１２は、異なるネットワークレイヤ伝送規格をサポートできる。各ネットワークインタフェースを使用することによって、データパケットをある伝送システムから別の伝送システムに転送できる。また、ルータ１１２は、それぞれが異なるネットワークプレフィックスを有する、サブネットと呼ばれるコンピュータデバイスの２以上の論理グループを接続するために使用してもよい。図１に示すように、ルータ１１２は、企業内、企業とインターネットとの間、又はインターネットサービスプロバイダのネットワーク間の接続を提供できる。幾つかのルータ１１２は、様々なインターネットサービスプロバイダを相互接続するように構成してもよく、大規模な企業ネットワーク内で使用してもよい。より小さいルータ１１２は、一般に、ホームネットワーク及びオフィスネットワークのインターネットへの接続を提供する。図１に示すルータ１１２は、エッジルータ、サブスクライバエッジルータ、プロバイダ間ボーダルータ、コアルータ、インターネットバックボーン、ポート転送、音声／データ／ファックス／ビデオ処理ルータ等のネットワーク伝送に適した任意のルータを表すことができる。
【００４５】
インターネットサービスプロバイダ（ＩＳＰ）１０２は、インターネットへのアクセス、利用、又は参加のためのサービスを提供する組織である。ＩＳＰ１０２は、商用、コミュニティ所有、非営利、又は個人所有等の様々な形態で組織化できる。ＩＳＰ１０２によって一般的に提供されるインターネットサービスは、インターネットアクセス、インターネット中継、ドメイン名登録、ウェブホスティング、ユースネットサービス、及びコロケーションを含む。図１に示すＩＳＰ１０２は、ホスティングＩＳＰ、中継ＩＳＰ、仮想ＩＳＰ、無料ＩＳＰ、無線ＩＳＰ等の任意の適切なＩＳＰを表すことができる。
【００４６】
ネットワークサービスプロバイダ（ＮＳＰ）１０４は、インターネットサービスプロバイダへの直接のインターネットバックボーンアクセスを提供することによって、帯域幅又はネットワークアクセスを提供する組織である。ネットワークサービスプロバイダは、ネットワークアクセスポイント（network access point：ＮＡＰ）へのアクセスを提供できる。ネットワークサービスプロバイダ１０４は、バックボーンプロバイダ又はインターネットプロバイダとも呼ばれる。ネットワークサービスプロバイダ１０４は、電気通信業者、データキャリア、無線通信プロバイダ、インターネットサービスプロバイダ、及び高速インターネットアクセスを提供するケーブルテレビ運営業者を含むことができる。また、ネットワークサービスプロバイダ１０４は、情報技術業者を含むこともできる。
【００４７】
図１に示すシステム１００は、単なる例示であり、ネットワークと演算デバイスとの間でデータを伝送するために多くの異なる構成及びシステムを構築できる。ネットワーク形成は、カスタマイズ可能性（customizability）が高いため、コンピュータ間又はネットワーク間でデータを伝送するための最良のルートを判定する際にも、カスタマイズ可能性をより高めることが望まれている。以上の観点から、ここでは、コンピュータ又は特定の企業の特定のグループ化に良好に適合する最適パスアルゴリズムを判定する際に、カスタマイズ可能性をより高めるために、最適パス計算を外部デバイスにオフロードするためのシステム、方法、及びデバイスを開示する。
【００４８】
図２は、１つのネットワーキングプレフィックスから他のネットワーキングプレフィックスへの定常状態フローを示す例示的なトポロジ２００の概略図である。トポロジ２００は、リーフ／スパインアーキテクチャを有する。トポロジ２００は、２つのスパインノードＳ１、Ｓ２を含み、更に、トポロジ２００は、３つのリーフノードＬ１、Ｌ２、Ｌ３を含む。リーフ／スパイントポロジでは、全てのデバイスＳ１、Ｓ２、Ｌ１、Ｌ２、Ｌ３は、同じセグメント数だけ離れている。これが可能なのは、トポロジ２００がスパインレイヤ及びリーフレイヤの２レイヤのみで構成されているためである。リーフレイヤＬ１、Ｌ２、Ｌ３は、サーバ、ファイアウォール、ロードバランサ、エッジルータ等のデバイスに接続するアクセススイッチで構成されている。スパインレイヤＳ１、Ｓ２は、ルーティングを行うスイッチで構成され、各リーフＬ１、Ｌ２、Ｌ３スイッチが各スパインＳ１、Ｓ２スイッチと相互接続されるネットワークのバックボーンとして機能する。
【００４９】
トポロジ２００において、プレフィックスＰ１はリーフＬ１にルーティングされ、プレフィックスＰ２はリーフＬ３にルーティングされる。図２は、プレフィックスＰ２からプレフィックスＰ１への例示的定常状態フローを図示している。トポロジ２００において、スパインＳ１及びＳ２のそれぞれは、プレフィックスＰ１を有するデータパケットをリーフＬ１にルーティングするように構成される。さらに、リーフノードＬ１、Ｌ２及びＬ３のそれぞれは、プレフィックスＰ１を有するデータパケットをスパインＳ１又はスパインＳ２にルーティングするように構成される。図２に図示されている例において、データパケットはリーフＬ３から出て、その後、スパインＳ２にルーティングされ、その後、リーフＬ１にルーティングされる。
【００５０】
図３Ａ及び図３Ｂは、リンク障害により起こり得る一時ループを図示している。図３Ａ及び図３Ｂに図示されている例において、障害リンクはスパインＳ２及びリーフＬ１の間のリンクである。起こり得る一時ループのそれぞれにおいて、スパインＳ２はリンク障害に反応し、リーフノードＬ２及びＬ３経由の代替パスに収束する。リーフノードＬ２及びＬ３はそれぞれ、スパインＳ２経由の古いパスをまだ有しているので、これにより、マイクロループが引き起こされる。
【００５１】
図３Ａに図示されている例において、データパケットはリーフＬ３からスパインＳ２に伝送され、その後、スパインＳ２及びリーフＬ１の間のリンク障害により、リーフＬ２に伝送される。その後、データパケットは、スパインＳ２に戻され、これにより、マイクロループが引き起こされる。
【００５２】
図３Ｂに図示されている例において、データパケットはリーフＬ３からスパインＳ２に伝送され、その後、スパインＳ２及びリーフＬ１の間のリンク障害により、リーフＬ３に戻される。その後、データパケットは、スパインＳ２に戻され、これにより、マイクロループが引き起こされる。
【００５３】
制御計画駆動型のコンバージェンスは、被リーフから学習したプレフィックスを被スパインが取消することに依拠している。被リーフの後ろのプレフィックスへのトラフィックフローは、残りのスパイン経由で収束する。図２、図３Ａ及び図３Ｂに図示されている制御計画コンバージェンスに基づいて、マイクロループが起こり得る。リーフ／スパインアーキテクチャにおけるループ回避の１つの解決策が、図４に図示されている。
【００５４】
図４は、異なるスパインノードへのバックアップトンネル経由のループ回避の例が図示されている。この実装において、スパインＳ２は、リーフノード上のオーバーレイ検索を回避するために、異なるスパイン（この例においては、スパインＳ１）にトンネリングすることによるバックアップパスを使用する。バックアップパスは、プレフィックスＰ１を有するデータパケットにトンネルラベルを有するスパインＳ１にトンネリングするように命令する。トンネルラベルが、データパケットがリーフＬ３からスパインＳ２に戻るのではなく、スパインＳ１に伝送されることを引き起こす。リーフＬ３は、プレフィックスＰ１の検索を実行するのではなく、トンネルラベル上のデータパケットをスパインＳ１へ転送する。データパケットがスパインＳ１に到着すると、その後、データパケットは宛先であるリーフＬ１に伝送されることができる。
【００５５】
スパインＳ２及びリーフＬ１を接続するリンクの障害等のリーフリンク障害が発生した場合、スパインノードは、冗長グループ内の他のスパインノードの１つへバックアップトンネルを通してリルートされることができる。例えば、スパインＳ２等のスパインノードは、各スパインレベルにおける冗長グループを発見又は構成することができる。各スパインレベルは、リーフ／スパインＣｌｏｓアーキテクチャ内の同じレベルにおける全ての他のスパインを含む。スパインノードは、スパインノードが与えられた冗長グループ又はレベルの一部である旨の信号を送る推移的属性として、「レベル／ＲＧ−ＩＤ」を有するローカルループバックルートをアドバタイズする。スパインノードは、ローカルループバックルートをリーフノードのそれぞれにアドバタイズする。さらに、リーフノードは、それぞれの受信したスパインループバックルートをＣＥ毎のラベルに割当し、さらに他のスパインノードにアドバタイズする。各リーフのネクストホップのために、受信したラベルをトンネルラベルとして、トンネルを通したバックアップスパインへの再帰バックアップパスを予めプログラミングする。
【００５６】
図５は、ループ衝突回避のためのプロセスフロー５００の概略図である。プロセスフロー５００は、２つのレベルのリーフ／スパインアーキテクチャに実装することができ、特に、Ｃｌｏｓデータセンターアーキテクチャに実装することができる。プロセスフロー５００の理解をより容易にするために、プロセスフローは、図４に図示されているものと同じスパインＳ１、スパインＳ２、及びリーフＬ３により実行される。
【００５７】
プロセスフロー５００において、スパインＳ２がプレフィックスＰ１を有するパケットを受信する。図４に図示されているトポロジにおいて、プレフィックスＰ１はリーフＬ１の後ろに到達可能である。定常状態において、スパインＳ２は通常、プレフィックスＰ１とマッチするパケットをリーフＬ１に直接伝送する。
【００５８】
５０４において、スパインＳ２は、スパインＳ１及びリーフＬ１の間のリンクが切れている旨の指示情報を受信する。５０６において、スパインＳ２は、リーフ／スパインネットワークトポロジの同じレベル内の異なるスパイン経由の次に最適で利用可能なパスである、事前にプログラミングされたバックアップパスをすぐに作動する。５０８において、スパインＳ２は、パケットにトンネルラベルを貼り付けする。トンネルラベルは、通常のラベルの代わりに貼り付けされる。５０８において、スパインＳ２は、リーフＬ３にパケットを送信する。５１０において、リーフＬ３は、トンネルラベルを有するパケットを受信する。５１２において、リーフＬ３は、トンネルラベルに基づいてパケットを異なるスパインに送信する。さらに、図４に図示されている実装に加えて、５１４において、スパインＳ１は、パケットを受信する。５１６において、スパインＳ１は、プレフィックスに基づいて、リーフにパケットを送信し、この場合、スパインＳ１は、リーフＬ１にパケットを送信する。
【００５９】
実施形態において、トンネルラベルの生成は、スパインノード自身のループバックをアドバタイズするスパインノードにより引き起こされる。スパインノード検索をアドバタイズするための特別な識別子であることができる。実施形態において、スパインノードは、リーフノードからプレフィックスを学習し、アドバタイズされたループバックに基づいてスパインノードを再度プログラミングすることができる。
【００６０】
ここに開示されているシステム、方法、及びデバイスは、最適パス経由でプレフィックスに到達できない時、他のスパインノードを活用することができる。図４に図示されている例において、スパインＳ２からプレフィックスＰ１に到達するための最適パスは、リーフＬ１に直接パケットを伝送することである。しかしながら、スパインＳ２及びリーフＬ１の間のリンクは切れている。したがって、スパインＳ２は、リーフＬ１の後ろでアクセス可能なプレフィックスＰ１にパケットを送信するために、同じレベル内の他のスパイン（この場合、スパインＳ１）を活用することができる。このパスはより長いパスであり、最適パスではない。しかしながら、このパスは、スパインＳ２及びリーフＬ１の間のリンクが切れている場合でも、ループが発生しない方法でパケットを送信する手段を提供する。
【００６１】
図６は、ネットワーキングデバイス６１０により簡易化された通信の概略図である。ネットワーキングデバイス６１０は、図２〜図５に図示されている例におけるルータ又はスイッチとして動作するスパインノードであることができる。実施形態において、ネットワーキングデバイス６１０のローカルのデータストア６０２が、システムの関連情報を保存する。データストア６０２は、１以上のルータ又はスイッチの最適パス情報を保存するデータベースであることができる。データストア６０２はさらに、ＣＰＵ利用、温度、ファン速度、及びＬＥＤ又は他のデバイス等の周辺機器の状態情報等のシステム状態情報を保存する。データストア６０２は、監視エージェントに有用な様々な情報を保存することができる。データストア６０２内の情報は、そのような情報を所望する他のコントローラ又はデバイスにストリーミングすることができる。データストア６０２は、データベースインデックスを含むことができ、そして、複数のホストを含むことができる。複数のホストのそれぞれは、プロセッサ及びキャッシュメモリを含むことができる。図６に図示されている実施形態の例において、データストア６０２は、データベースホスト１、データベースホスト２、データベースホスト３、そしてデータベースホストＮまでを含む。
【００６２】
図７は、ネットワークトポロジ内でリンクが切れていることにより、ネットワークトポロジ内でパケットをリルートする方法７００の概略的ブロック図である。方法７００は、ここで説明されているＣｌｏｓアーキテクチャを有するリーフ／スパインネットワーク内に実装されることができる。方法７００は、スイッチ又はルータ等のスパインノードにより、又は他の適切な演算デバイスにより、実装されることができる。
【００６３】
方法７００は、７０２において、演算デバイスが、ネットワークトポロジ内の第１のスパインノード及び第１のリーフノードの間のリンクが非アクティブであることを判定することにより始まる。方法７００は続いて、７０４において、演算デバイスが、第１のリーフノードに伝送するパケットを受信する。方法７００は続いて、７０６において、演算デバイスが、ネットワークトポロジ内の同じレベルの代替スパインノードを識別する。方法７００は続いて、７０８において、演算デバイスが、パケットにトンネルラベルを貼り付けし、トンネルラベルは、パケットが代替スパインノードに伝送されるべきである旨を指示する。
【００６４】
図８は、例示的な演算デバイス８００のブロック図である。演算デバイス８００を使用して、ここで説明するような様々な手順を実行できる。一実施形態では、演算デバイス８００は、非同期オブジェクトマネージャの機能を実行するように機能でき、１以上のアプリケーションプログラムを実行できる。演算デバイス８００は、デスクトップコンピュータ、インダッシュコンピュータ、車両制御システム、ノートブックコンピュータ、サーバコンピュータ、ハンドヘルドコンピュータ、タブレットコンピュータ等の多種多様な演算デバイスの何れであってもよい。
【００６５】
演算デバイス８００は、１以上のプロセッサ８０２と、１以上のメモリデバイス８０４と、１以上のインタフェース８０６と、１以上の大容量ストレージデバイス８０８と、１以上の入出力デバイス８１０と、表示デバイス８３０とを含み、これらは、全てバス８１２に接続されている。プロセッサ８０２は、メモリデバイス８０４及び／又は大容量ストレージデバイス８０８に格納された命令を実行する１以上のプロセッサ又はコントローラを含む。また、プロセッサ８０２は、キャッシュメモリ等の種々のタイプのコンピュータ可読媒体を含むことができる。
【００６６】
メモリデバイス８０４は、揮発性メモリ（例えば、ランダムアクセスメモリ（random access memory：ＲＡＭ）８１４）及び／又は不揮発性メモリ（例えば、読出専用メモリ（read-only memory：ＲＯＭ）８１６）等の種々のコンピュータ可読媒体を含む。また、メモリデバイス８０４は、フラッシュメモリ等の書換可能ＲＯＭを含むことができる。
【００６７】
大容量ストレージデバイス８０８は、磁気テープ、磁気ディスク、光ディスク、ソリッドステートメモリ（フラッシュメモリ等）等の種々のコンピュータ可読媒体を含む。図７に示すように、具体的な大容量ストレージデバイスは、ハードディスクドライブ８２４である。大容量ストレージデバイス８０８には、種々のコンピュータ可読媒体からの読出及び／又は種々のコンピュータ可読媒体への書込を可能にするために、種々のドライブを含めることもできる。大容量ストレージデバイス８０８は、リムーバブルメディア７２６及び／又は非リムーバブルメディアを含む。
【００６８】
入出力（Ｉ／Ｏ）デバイス８１０は、データ及び／又は他の情報を演算デバイスに入力し又は演算デバイス８００から取り出すことを可能にする様々なデバイスを含む。Ｉ／Ｏデバイス８１０には、カーソル制御デバイス、キーボード、キーパッド、マイクロホン、モニタ又は他の表示デバイス、スピーカ、プリンタ、ネットワークインタフェースカード、モデム等が含まれる。
【００６９】
表示デバイス８３０は、演算デバイス８００の１人以上のユーザに情報を表示できる任意のタイプのデバイスを含む。表示デバイス８３０としては、例えば、モニタ、表示端末、映像投影デバイス等が挙げられる。
【００７０】
インタフェース８０６は、演算デバイス８００が他のシステム、デバイス、又はコンピューティング環境とインタラクションすることを可能にする様々なインタフェースを含む。インタフェース８０６は、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、無線ネットワーク、及びインターネットへのインタフェースのような、任意の数の異なるネットワークインタフェース８２０を含むことができる。他のインタフェースは、ユーザインタフェース８１８及び周辺デバイスインタフェース８２２を含む。また、インタフェース８０６は、１以上のユーザインタフェース要素８１８を含むことができる。更に、インタフェース８０６は、プリンタ、ポインティングデバイス（マウス、トラックパッド、又は当業者に現在知られている任意の適切なユーザインタフェース、又は今後開発される任意の適切なユーザインタフェース）、キーボード等のためのインタフェース等、１以上の周辺インタフェースを含んでもよい。
【００７１】
バス８１２は、プロセッサ８０２、メモリデバイス８０４、インタフェース８０６、大容量ストレージデバイス８０８、及びＩ／Ｏデバイス８１０が互いに、及びバス８１２に接続された他のデバイス又はコンポーネントと通信することを可能にする。バス８１２は、システムバス、ＰＣＩバス、ＩＥＥＥバス、ＵＳＢバス等の幾つかのタイプのバス構造のうちの１以上を表す。
【００７２】
ここでは、説明のため、プログラム及び他の実行可能プログラム構成要素を個別のブロックとして示しているが、このようなプログラム及び構成要素は、演算デバイス８００の異なる記憶構成要素内に様々な時点で存在してもよく、プロセッサ８０２によって実行される。これに代えて、ここに記載のシステム及び手順は、ハードウェアで実現してもよく、ハードウェア、ソフトウェア、及び／又はファームウェアの組み合わせで実現してもよい。例えば、ここに記載のシステム及び手順の１以上を実行するように１以上の特定用途向け集積回路（application specific integrated circuit：ＡＳＩＣ）をプログラムできる。
【００７３】
上記の記述は、例示及び説明を目的としている。本開示は、ここに説明する詳細な形式に排他的に限定されない。上記の教示を参照することにより、多くの変更及び変形が可能である。更に、前述の変形例の何れか又は全ては、任意に組み合わせることができ、本開示の更なる組み合わせ例を形成できる。
【００７４】
更に、本開示の具体的な実施例を説明及び図示しているが、本開示は、そのように説明及び図示された部分の具体的な形態又は配置に限定されるものではない。本開示の範囲は、本願の特許請求の範囲によって定義され、あるいは、将来に提出される特許請求の範囲、本願に基づく別出願、及びこれらの均等物があれば、これらによって定義される。
【実施例】
【００７５】
以下の実施例は、更なる実施形態に関する。
【００７６】
実施例１は、システムである。システムは、複数のスパインノード及び複数のリーフノードを有するネットワークトポロジを含み、第１のスパインノード及び第１のリーフノードの間のリンクが非アクティブである。第１のスパインノードは、非一時的コンピュータ可読記憶媒体内に格納されている命令を実行するように構成可能な１以上のプロセッサを含む。命令は、第１のリーフノードに伝送されるパケットを受信することを含む。命令は、ネットワークトポロジ内の同じレベルの代替スパインノードを識別することを含む。命令は、パケットにトンネルラベルを貼り付けすることを含み、トンネルラベルは、パケットが代替スパインノードに伝送されるべきである旨を指示する。
【００７７】
実施例２は、命令は、第１のスパインノード及び第１のリーフノードの間のリンクが非アクティブであることを識別することを含み、同じレベルの代替スパインノードを識別することは、第１のスパインノードの冗長グループを分析することを含む、実施例１に記載のシステムである。
【００７８】
実施例３は、命令はさらに、ネットワークトポロジ内の同じレベルの他のスパインノードへのローカルループバックルートをアドバタイズすることを含む、実施例１〜２の何れかに記載のシステムである。
【００７９】
実施例４は、命令はさらに、第１のリーフノードへのアクティブリンクを有する、ネットワークトポロジ内の同じレベルの１以上の代替スパインノードを含む冗長グループを追加する(populate)ことを含む、実施例１〜３の何れかに記載のシステムである。
【００８０】
実施例５は、命令は、トンネルラベルが代替スパインノードに向けられたルートを含む、実施例１〜４の何れかに記載のシステムである。
【００８１】
実施例６は、命令は、トンネルラベルがさらにルートが第１のリーフノードに到達する最適パスではない旨の指示情報を含む、実施例１〜５の何れかに記載のシステムである。
【００８２】
実施例７は、命令はさらに、第１のスパインノード及び第１のリーフノードの間のリンクがもう非アクティブではないことを識別し、リンクがもう非アクティブではないことの識別に応答して、第１のリーフノードを宛先とする新しいパケットにトンネルラベルを貼り付けする代わりに、新しいパケットを第１のリーフノードへ直接伝送する、実施例１〜６の何れかに記載のシステムである。
【００８３】
実施例８は、ネットワークトポロジは、リーフ／スパインアーキテクチャを有するＣｌｏｓネットワークである、実施例１〜７の何れかに記載のシステムである。
【００８４】
実施例９は、ネットワークトポロジは、それぞれがスパインノード及びリーフノードを有する複数のレイヤを含み、命令は、代替スパインノードを識別することが、第１のリーフノードへのアクティブなリンクを有する第１のスパインノードとして、ネットワークトポロジ内の同じレベルの１以上の他のスパインノードを識別することを含む、実施例１〜８の何れかに記載のシステムである。
【００８５】
実施例１０は、命令はさらに、同じレベルの他のスパインノードから受信したアドバタイズメントに基づいて、同じレベルのどの他のスパインノードが第１のリーフノードへのアクティブなリンクを有するか識別することを含む、実施例１〜９の何れかに記載のシステムである。
【００８６】
実施例１１は、非一時的コンピュータ可読記憶媒体に格納された命令を実行するように構成可能な１以上のプロセッサである。命令は、ネットワークトポロジ内の第１のスパインノード及び第１のリーフノードの間のリンクが非アクティブであることを判定することを含む。命令は、第１のリーフノードへ伝送されるパケットを受信することを含む。命令は、ネットワークトポロジ内の同じレベルの代替スパインノードを識別することを含む。命令は、パケットにトンネルラベルを貼り付けすることを含み、トンネルラベルは、パケットが代替スパインノードへ伝送されるべきである旨を指示する。
【００８７】
実施例１２は、命令は、同じレベルの代替スパインノードを識別することが、第１のスパインノードの冗長グループを分析することを含む、実施例１１に記載の１以上のプロセッサである。
【００８８】
実施例１３は、命令はさらに、ネットワークトポロジ内の同じレベルの他のスパインノードへのローカルループバックルートをアドバタイズすることを含む、実施例１１又は１２に記載の１以上のプロセッサである。
【００８９】
実施例１４は、命令はさらに、第１のリーフノードへのアクティブリンクを有する、ネットワークトポロジ内の同じレベルの１以上の代替スパインノードを含む冗長グループを追加する(populate)ことを含む、実施例１１〜１３の何れかに記載の１以上のプロセッサである。
【００９０】
実施例１５は、命令は、トンネルラベルが代替スパインノードに向けられたルートを含み、トンネルラベルがさらにルートが第１のリーフノードに到達する最適パスではない旨の指示情報を含む、実施例１１〜１４の何れかに記載の１以上のプロセッサである。
【００９１】
実施例１６は、方法である。方法は、ネットワークトポロジ内の第１のスパインノード及び第１のリーフノードの間のリンクが非アクティブであることを判定することを含む。方法は、第１のリーフノードへ伝送されるパケットを受信することを含む。方法は、ネットワークトポロジ内の同じレベルの代替スパインノードを識別することを含む。方法は、パケットにトンネルラベルを貼り付けすることを含み、トンネルラベルは、パケットが代替スパインノードに伝送されるべきである旨を指示する。
【００９２】
実施例１７は、さらに、同じレベルの代替スパインノードを識別することは、第１のスパインノードの冗長グループを分析することを含む、実施例１６に記載の方法である。
【００９３】
実施例１８は、さらに、ネットワークトポロジ内の同じレベルの他のスパインノードへのローカルループバックルートをアドバタイズすることを含む、実施例１６又は１７に記載の方法である。
【００９４】
実施例１９は、第１のリーフノードへのアクティブリンクを有する、ネットワークトポロジ内の同じレベルの１以上の代替スパインノードを含む冗長グループを追加する(populate)ことを含む、実施例１６〜１８の何れかに記載の方法である。
【００９５】
実施例２０は、トンネルラベルが代替スパインノードに向けられたルートを含み、トンネルラベルがさらにルートが第１のリーフノードに到達する最適パスではない旨の指示情報を含む、実施例１６〜１９の何れかに記載の方法である。
【００９６】
実施例２１は、実施例１〜２０の何れかに記載の命令又は方法を実行する手段である。
【００９７】
なお、上述の構成、実施例、及び実施形態の任意の特徴は、ここに開示する構成、実施例、及び実施形態の何れかから得られる特徴の組み合わせを含む単一の実施形態において組み合わせることができる。
【００９８】
ここに開示する種々の特徴は、当技術分野における重要な利点及び進歩を提供する。以下の特許請求の範囲は、これらの特徴の幾つかの例示である。
【００９９】
本開示の前述の詳細な説明では、開示を合理化する目的で、開示の様々な特徴を１つの実施形態にまとめている。この開示方法は、特許請求された開示が各請求項において明示的に記載されている特徴よりも多くの特徴を必要とするという意図を反映していると解釈されるべきではない。すなわち、本発明の態様の特徴は、先に開示した単一の実施形態の全ての特徴よりも少ない。
【０１００】
上記の構成は、本開示の原理の適用の単なる例示である。当業者は、本開示の思想及び範囲から逸脱することなく、多くの変更及び代替の構成を想到でき、特許請求の範囲は、このような修正及び構成を網羅することを意図している。
【０１０１】
したがって、本開示を図面に示し、上に詳細に説明しているが、ここに記載されている原理及び概念から逸脱することなく、サイズ、材料、形状、形態、機能、動作、組み立て、及び使用のバリエーションを含むと共に、これらに限定されない多数の変更を想到できることは、当業者にとって明らかである。
【０１０２】
更に、ここに記載される機能は、適切な場合、ハードウェア、ソフトウェア、ファームウェア、デジタルコンポーネント、又はアナログコンポーネントのうちの１以上において実行できる。例えば、１以上の特定用途向け集積回路（application specific integrated circuit：ＡＳＩＣ）又はフィールドプログラマブルゲートアレイ（field programmable gate array：ＦＰＧＡ）をプログラムして、ここに記載のシステム及び手順の１以上を実行できる。説明及び特許請求の範囲を通して、特定のシステム構成要素を指すために、特定の用語を使用している。構成要素は、異なる名称で呼ぶことができることは、当業者にとって明らかである。本文書は、名称が異なるが機能が同じコンポーネントを区別することを意図していない。
【０１０３】
上記の記述は、例示及び説明を目的としている。本開示は、ここに説明する詳細な形式に排他的に限定されない。上記の教示を参照することにより、多くの変更及び変形が可能である。更に、前述の変形例の何れか又は全ては、任意に組み合わせることができ、本開示の更なる組み合わせ例を形成できる。
【０１０４】
更に、本開示の具体的な実施例を説明及び図示しているが、本開示は、そのように説明及び図示された部分の具体的な形態又は配置に限定されるものではない。本開示の範囲は、本願の特許請求の範囲によって定義され、あるいは、将来に提出される特許請求の範囲、本願に基づく別出願、及びこれらの均等物があれば、これらによって定義される。
【図１】
2021535697.tif 000003
【図２】
2021535697.tif 000004
【図３Ａ】
2021535697.tif 000005
【図３Ｂ】
2021535697.tif 000006
【図４】
2021535697.tif 000007
【図５】
2021535697.tif 000008
【図６】
2021535697.tif 000009
【図７】
2021535697.tif 000010
【図８】
2021535697.tif 000011
【国際調査報告】
2021535697.tif 000012