(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-26
(45)【発行日】2024-04-03
(54)【発明の名称】ネットワークコンピューティング環境におけるループ衝突回避
(51)【国際特許分類】
H04L 45/247 20220101AFI20240327BHJP
【FI】
H04L45/247
(21)【出願番号】P 2021533404
(86)(22)【出願日】2019-08-23
(86)【国際出願番号】 US2019047948
(87)【国際公開番号】W WO2020041729
(87)【国際公開日】2020-02-27
【審査請求日】2022-08-04
(32)【優先日】2018-08-23
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521076948
【氏名又は名称】アルカス インコーポレイテッド
(74)【代理人】
【識別番号】100067736
【氏名又は名称】小池 晃
(74)【代理人】
【識別番号】100192212
【氏名又は名称】河野 貴明
(74)【代理人】
【識別番号】100200001
【氏名又は名称】北原 明彦
(72)【発明者】
【氏名】マルホトラ,ニーラジ
(72)【発明者】
【氏名】パテル,ケユル
(72)【発明者】
【氏名】ヤン,デレク マン-キット
(72)【発明者】
【氏名】パイ,ナリナクシュ
(72)【発明者】
【氏名】ラジャラマン,カルヤニ
(72)【発明者】
【氏名】ラグクマール,ビクラム
【審査官】大石 博見
(56)【参考文献】
【文献】米国特許第09544185(US,B1)
【文献】米国特許出願公開第2015/0124590(US,A1)
【文献】特開2018-032894(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 45/247
(57)【特許請求の範囲】
【請求項1】
複数のスパインノード及び複数のリーフノードを有するネットワークトポロジを含むシステムであって、第1のスパインノード及び第1のリーフノードの間のリンクが非アクティブであり、
前記第1のスパインノードは、非一時的コンピュータ可読記憶媒体内に格納されている命令を実行するように構成可能な1以上のプロセッサを含み、
前記命令は、
前記第1のリーフノードに伝送されるパケットを受信し、
前記ネットワークトポロジ内の同じレベルの代替スパインノードを識別し、
パケットにトンネルラベルを貼り付けし、前記トンネルラベルは、前記パケットが前記代替スパインノードに伝送されるべきである旨を指示する、
ことを含
み、
前記命令はさらに、前記第1のリーフノードへのアクティブリンクを有する、前記ネットワークトポロジ内の同じレベルの1以上の代替スパインノードを含む冗長グループを追加することを含むことを特徴とするシステム。
【請求項2】
前記命令は、前記第1のスパインノード及び前記第1のリーフノードの間の前記リンクが非アクティブであることを識別することを含み、
前記ネットワークトポロジ内の前記第1のスパインノードと同じレベルの前記代替スパインノードを識別することは、前記第1のスパインノードの冗長グループを分析することを含むことを特徴とする請求項1に記載のシステム。
【請求項3】
前記命令はさらに、前記ネットワークトポロジ内の同じレベルの他のスパインノードへのローカルループバックルートをアドバタイズすることを含むことを特徴とする請求項1に記載のシステム。
【請求項4】
前記命令は、前記トンネルラベルが前記代替スパインノードに向けられたルートを含むことを特徴とする請求項1に記載のシステム。
【請求項5】
複数のスパインノード及び複数のリーフノードを有するネットワークトポロジを含むシステムであって、第1のスパインノード及び第1のリーフノードの間のリンクが非アクティブであり、
前記第1のスパインノードは、非一時的コンピュータ可読記憶媒体内に格納されている命令を実行するように構成可能な1以上のプロセッサを含み、
前記命令は、
前記第1のリーフノードに伝送されるパケットを受信し、
前記ネットワークトポロジ内の同じレベルの代替スパインノードを識別し、
パケットにトンネルラベルを貼り付けし、前記トンネルラベルは、前記パケットが前記代替スパインノードに伝送されるべきである旨を指示する、
ことを含み、
前記命令は、前記トンネルラベルが前記代替スパインノードに向けられたルートを含み、
前記命令は、前記トンネルラベルがさらに前記ルートが前記第1のリーフノードに到達する最適パスではない旨の指示情報を含むことを特徴とす
るシステム。
【請求項6】
前記命令はさらに、
前記第1のスパインノード及び前記第1のリーフノードの間の前記リンクがもう非アクティブではないことを識別し、
前記リンクがもう非アクティブではないことの識別に応答して、前記第1のリーフノードを宛先とする新しいパケットに前記トンネルラベルを貼り付けする代わりに、前記新しいパケットを前記第1のリーフノードへ直接伝送することを特徴とする請求項1に記載のシステム。
【請求項7】
前記ネットワークトポロジは、リーフ/スパインアーキテクチャを有するClosネットワークであることを特徴とする請求項1に記載のシステム。
【請求項8】
前記ネットワークトポロジは、それぞれがスパインノード及びリーフノードを有する複数のレイヤを含み、前記命令は、前記代替スパインノードを識別することが、前記第1のリーフノードへのアクティブなリンクを有する前記第1のスパインノードとして、前記ネットワークトポロジ内の同じレベルの
前記第1のスパインノード以外の前記複数のスパインノードの1以上の他のスパインノードを識別することを含むことを特徴とする請求項1に記載のシステム。
【請求項9】
前記命令はさらに、同じレベルの
前記第1のスパインノード以外の前記複数のスパインノードの前記他のスパインノードから受信したアドバタイズメントに基づいて、同じレベルの
前記第1のスパインノード以外の前記複数のスパインノードのどの他のスパインノードが前記第1のリーフノードへのアクティブなリンクを有するか識別することを特徴とする請求項
8に記載のシステム。
【請求項10】
非一時的コンピュータ可読記憶媒体に格納された命令を実行するように構成可能な1以上のプロセッサであって、
前記命令は、
ネットワークトポロジ内の第1のスパインノード及び第1のリーフノードの間のリンクが非アクティブであることを判定し、
前記第1のリーフノードへ伝送されるパケットを受信し、
前記ネットワークトポロジ内の同じレベルの代替スパインノードを識別し、
前記パケットにトンネルラベルを貼り付けし、前記トンネルラベルは、前記パケットが前記代替スパインノードへ伝送されるべきである旨を指示する、
ことを含
み、
前記命令はさらに、前記第1のリーフノードへのアクティブリンクを有する、前記ネットワークトポロジ内の同じレベルの1以上の代替スパインノードを含む冗長グループを追加することを含むことを特徴とする1以上のプロセッサ。
【請求項11】
前記命令は、同じレベルの前記代替スパインノードを識別することが、前記第1のスパインノードの冗長グループを分析することを含むことを特徴とする請求項
10に記載の1以上のプロセッサ。
【請求項12】
前記命令はさらに、前記ネットワークトポロジ内の同じレベルの他のスパインノードへのローカルループバックルートをアドバタイズすることを含むことを特徴とする請求項
10に記載の1以上のプロセッサ。
【請求項13】
非一時的コンピュータ可読記憶媒体に格納された命令を実行するように構成可能な1以上のプロセッサであって、
前記命令は、
ネットワークトポロジ内の第1のスパインノード及び第1のリーフノードの間のリンクが非アクティブであることを判定し、
前記第1のリーフノードへ伝送されるパケットを受信し、
前記ネットワークトポロジ内の同じレベルの代替スパインノードを識別し、
前記パケットにトンネルラベルを貼り付けし、前記トンネルラベルは、前記パケットが前記代替スパインノードへ伝送されるべきである旨を指示する、
ことを含み、
前記命令は、前記トンネルラベルが前記代替スパインノードに向けられたルートを含み、前記トンネルラベルがさらに前記ルートが前記第1のリーフノードに到達する最適パスではない旨の指示情報を含むことを特徴とす
る1以上のプロセッサ。
【請求項14】
ネットワークトポロジ内の第1のスパインノード及び第1のリーフノードの間のリンクが非アクティブであることを判定し、
前記第1のリーフノードへ伝送されるパケットを受信し、
前記ネットワークトポロジ内の同じレベルの代替スパインノードを識別し、
前記パケットにトンネルラベルを貼り付けし、前記トンネルラベルは、前記パケットが前記代替スパインノードに伝送されるべきである旨を指示
し、
前記第1のリーフノードへのアクティブリンクを有する、前記ネットワークトポロジ内の同じレベルの1以上の代替スパインノードを含む冗長グループを追加する、
ことを含むことを特徴とする方法。
【請求項15】
さらに、同じレベルの前記代替スパインノードを識別することは、前記第1のスパインノードの冗長グループを分析することを含むことを特徴とする請求項
14に記載の方法。
【請求項16】
さらに、前記ネットワークトポロジ内の同じレベルの他のスパインノードへのローカルループバックルートをアドバタイズすることを含むことを特徴とする請求項
14に記載の方法。
【請求項17】
ネットワークトポロジ内の第1のスパインノード及び第1のリーフノードの間のリンクが非アクティブであることを判定し、
前記第1のリーフノードへ伝送されるパケットを受信し、
前記ネットワークトポロジ内の同じレベルの代替スパインノードを識別し、
前記パケットにトンネルラベルを貼り付けし、前記トンネルラベルは、前記パケットが前記代替スパインノードに伝送されるべきである旨を指示する、
ことを含む方法であって、
前記トンネルラベルが前記代替スパインノードに向けられたルートを含み、前記トンネルラベルがさら
に前記ルートが前記第1のリーフノードに到達する最適パスではない旨の指示情報を含むことを特徴とす
る方法。
【請求項18】
ループ衝突回避の為のシステムであって、前記システムが、
複数のスパインノード及び複数のリーフノードを有するネットワークトポロジを含み、
第1のスパインノード及び第1のリーフノードの間のリンクが非アクティブであり、
前記第1のスパインノードは、非一時的コンピュータ可読記憶媒体内に格納されている命令を実行するように構成可能な1以上のプロセッサを含み、
前記命令は、
第2のリーフノードから前記第1のリーフノードに伝送されるパケットを受信し、前記パケットは前記第1のリーフノードに関連する第1のプレフィックスを含み、
前記ネットワークトポロジ内の前記第1のスパインノードと同じレベルの代替スパインノードを識別し、
パケットの為のトンネルラベルを生成し、前記トンネルラベルは、前記パケットが前記代替スパインノードに伝送されるべきである旨を指示し、さらに、代替スパインノードを通る代替ルートは前記第2のリーフノードから前記第1のリーフノードへの最適パスではない旨を指示し、
前記パケットに前記トンネルラベルを貼り付けし、
前記パケットを前記第2のリーフノードに戻し、前記第2のリーフノードが、前記第1のプレフィックスの検索を実行する代わりに、前記パケットを前記代替スパインノードに転送し、
前記ネットワークトポロジ内の同じレベルの前記第1のスパインノード以外の前記複数のスパインノードの他のスパインノードへのローカルループバックルートをアドバタイズする、
ことを含むことを特徴とするシステム。
【請求項19】
前記命令は、前記トンネルラベルが前記第1のリーフノードに到達する前記パケットの前記代替ルートを指示し、前記トンネルラベルは、前記第2のリーフノードが前記第1のリーフノードに関連する前記第1のプレフィックスの検索を実行する代わりに、第2のリーフノードにより読み込まれることを特徴とする請求項18に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願への相互参照
本出願は、2018年8月23日に出願された米国仮特許出願第62/722,003号「DATABASE SYSTEMS METHODS AND DEVICES」に対する優先権を主張するものであり、この文献は、次の例外を除き、これに限定されるものではないが、以下に具体的に記載される部分を含む全体が参照により本明細書に援用される。前記出願の何れかの部分が本出願と矛盾する場合、本出願の内容が前記出願に優先される。
【0002】
本開示は、コンピューティングネットワークに関し、特に、コンピュータネットワーク環境におけるネットワークトポロジ及びルーティングプロトコルに関する。
【背景技術】
【0003】
ネットワークコンピューティングとは、複数のコンピュータ又はノードが連携し、ネットワークを介して相互に通信するための手段である。これには、ワイドエリアネットワーク(wide area network:WAN)とローカルエリアネットワーク(local area network:LAN)とがある。ワイドエリアネットワークとローカルエリアネットワークは、何れも、コンピュータ間の相互接続を可能にする。ローカルエリアネットワークは、通常、家庭、ビジネス、学校等、より小規模でローカライズされたネットワークに使用される。ワイドエリアネットワークは、都市等の広域をカバーし、異なる国のコンピュータを接続することもできる。通常、ローカルエリアネットワークは、ワイドエリアネットワークよりも高速で安全であるが、ワイドエリアネットワークを使用すると広範囲の接続が可能になる。通常、ローカルエリアネットワークは、展開されている組織内で所有、制御、及び管理され、一方、ワイドエリアネットワークでは、通常、パブリックインターネット経由又は電気通信プロバイダによって確立されたプライベート接続を介して、構成要素である2以上のローカルエリアネットワークを接続する必要がある。
【0004】
ローカルエリアネットワークとワイドエリアネットワークによって、コンピュータを相互に接続し、データやその他の情報を転送できる。ローカルエリアネットワーク及びワイドエリアネットワークの何れにおいても、ある演算インスタンスから別の演算インスタンスにデータを渡すパスを判定する手段が必要である。これは、ルーティングとも呼ばれる。ルーティングとは、ネットワーク内で、複数のネットワーク間で、又は複数のネットワークに亘って、トラフィックのパスを選択するプロセスである。ルーティングプロセスは、通常、様々なネットワーク宛先へのルートの記録を保持するルーティングテーブルに基づいて、転送を指示する。ルーティングテーブルは、管理者が指定してもよく、ネットワークトラフィックを監視して学習してもよく、ルーティングプロトコルの支援を受けて構築してもよい。
【0005】
小規模ネットワークでは、手動で構成されたルーティングテーブルを使用して、あるコンピュータから別のコンピュータへの情報の転送方法を判定できる。ルーティングテーブルは、開始コンピュータと最終宛先コンピュータとの間の最も効率的又は最も望ましいパスを示す「最適パス」のリストを含むことができる。公衆インターネットに接続されたネットワークを含む大規模なネットワークは、複雑なトポロジに依存していることがあり、トポロジは、急速に変化する可能性があるため、ルーティングテーブルを手動で構築することは、不可能である。動的ルーティングは、ルーティングプロトコルによって伝送される情報に基づいてルーティングテーブルを自動的に構築することによって、この問題を解決しようとするものである。動的ルーティングにより、ネットワークは、略自律的に動作して、ネットワークの障害やブロックを回避できる。ネットワークデバイス間の最適パスを判定するための規則又は命令を提供する複数のルーティングプロトコルが存在する。動的ルーティングプロトコル及びアルゴリズムには、ルーティング情報プロトコル(Routing Information Protocol:RIP)、オープンショーテストパスファースト(Open Shortest Path First:OSPF)、エンハンスドインテリアゲートウェイルーティングプロトコル(Enhanced Interior Gateway routing Protocol:EIGRP)、及びボーダゲートウェイプロトコル(Border Gateway Protocol:BGP)等がある。
【0006】
幾つかの具体例では、パス選択は、複数のルートにルーティングメトリックを適用して、最適ルートを選択又は予測することを含む。殆どのルーティングアルゴリズムは、一度に1つのネットワークパスのみを使用する。マルチパスルーティング技術は、複数の代替パスの使用を可能にする。コンピュータネットワークでは、ルーティングアルゴリズムを使用して、2つの演算インスタンス間の最適パスを予測できる。ルーティングアルゴリズムは、帯域幅、ネットワーク遅延、ホップカウント、パスコスト、負荷、最大転送単位、信頼性、及び通信コスト等の複数の要因に基づくものであってもよい。ルーティングテーブルには、最適パスのリストが格納される。トポロジデータベースは、最適パスのリストを格納でき、更に追加情報を格納できる。
【0007】
一部のネットワークでは、最適パスの選択を担当するエンティティが単一のエンティティではないという事実のために、ルーティングが複雑になる。代わりに、複数のエンティティが最適パス又は単一パスのイベント部分の選択に関与する。インターネット上のコンピュータネットワーキングのコンテキストにおいて、インターネットは、インターネットサービスプロバイダ(ISP)のような自律システム(AS)に分割される。各自律システムは、そのネットワークを含むルートを制御する。各自律システムレベルのパスには、一連の自律システムが含まれており、この自律システムを経由して、ある演算インスタンスから別の演算インスタンスに情報パケットが送信される。各自律システムは、複数のパスを有することができ、この複数のパスから、隣接する自律システムによって提供される複数のパスを選択できる。
【発明の概要】
【発明が解決しようとする課題】
【0008】
多くのネットワークトポロジがあり、これらは、異なるコンピューティングアプリケーションに対して様々な利点及び欠点を有する。1つのネットワークトポロジは、複数のリーフノード(leaf node)と通信するスパインノード(spine node)を含むリーフ/スパインネットワークトポロジ(leaf-spine network topology)である。従来のリーフ/スパインネットワークトポロジのルーティングプロトコルには、多くの欠点があり、リーフノードが非アクティブになったときにデータループが非効率的になる可能性がある。そこで、リーフ/スパインネットワークトポロジのための改善されたラベリングプロトコル及びルーティングプロトコルが望まれている。
【課題を解決するための手段】
【0009】
以上を考慮して、ここでは、ネットワークコンピューティング環境におけるルーティング動作を改善するためのシステム、方法、及びデバイスを開示する。
【0010】
本開示の非限定的及び非包括的な実施形態は、以下の図を参照して説明され、これらの図において、同一の参照符号は、特段の指定がない限り、全ての図を通して同一の部分を指す。以下の説明及び添付の図面を参照することにより、本開示の利点がより明瞭に理解される。
【図面の簡単な説明】
【0011】
【
図1】インターネットを介して通信するネットワーク化されたデバイスのシステムの概略図である。
【
図2】プレフィックスP2からプレフィックスP1へのパケット伝送パス及びリーフ/スパインネットワークトポロジの概略図である。
【
図3A】スパインS2及びリーフL1間のリンク障害を原因として起こり得る一時ループ及びリーフ/スパインネットワークトポロジの概略図である。
【
図3B】スパインS2及びリーフL1間のリンク障害を原因として起こり得る一時ループ及びリーフ/スパインネットワークトポロジの概略図である。
【
図4】バックアップトンネル経由の異なるスパインノードへパケットをルーティングするループ回避プロトコル及びリーフ/スパインネットワークトポロジの概略図である。
【
図5】パケットを異なるスパインノードへリルートするプロセスフローの概略図である。
【
図6】ネットワーキングデバイスにより簡易化された通信の概略図である。
【
図7】ネットワーク環境においてデータパケットをルーティングする方法の概略的フローチャートである。
【
図8】例示的な演算デバイスの構成要素を示す概略図である。
【発明を実施するための形態】
【0012】
ここでは、ネットワークコンピューティング環境における改善されたネットワークトポロジ、ルーティングラベリング、及びルーティングプロトコルのためのシステム、方法、及びデバイスを開示する。本開示の一実施形態は、リーフ/スパインネットワークトポロジ内のスパインノード及びリーフノード間の非アクティブリンクを原因とする一時ループを回避するために展開される。本開示の一実施形態は、データパケットの最終宛先への伝送を失敗するマイクロループを回避するために異なるスパインにパケットをルーティングするバックアップトンネルを採用する。
【0013】
一実施形態では、リーフ/スパインネットワークトポロジは、複数のスパインノード及び複数のリーフノードを含む。複数のスパインノードのそれぞれは、スイッチ又はルータのようなネットワーキングデバイスとして動作することができる。複数のリーフノードのそれぞれは、民生用電子機器のようなネットワーキング「宛先」又は「ソース」として動作することができる。スパインノードは、ネットワークトポロジを通して適切なリーフノードへデータパケットをルーティングするように構成されることができる。スパインノード及びリーフノード間のリンクは切れている。リンクが切れているので、スパインノードを通って転送されているデータパケットは、一時ループに陥ることがあり、宛先であるリーフノードに伝送されないことがある。ここでは、異なるスパインノードにバックアップトンネルを生成することによりループを回避するシステム、方法、及びデバイスが開示されている。
【0014】
一実施形態では、リーフ/スパインネットワークトポロジ内のスパインノードが、特定のリーフノードへのリンクが切れていることをアドバタイズ(advertise)する。スパインノードが特定のリーフノードにデータパケットを伝送する必要がある場合、スパインノードがデータパケットにトンネルラベルを貼り付けする。トンネルラベルは、通常とは異なり、特定のリーフノードに結果的に到着するようにデータパケットを伝送する代替ルートを示す。トンネルラベルは、特定のリーフノードへのアクティブリンクとして、リーフ/スパインネットワークトポロジの同じレベル内の他のスパインノードを通る代替パスを提供する。トンネルラベルはさらに、ルートが特定のリーフノードへの最良のパスではない旨の指示情報を含む。トンネルラベルは、スパインノードの1つにリーフノードにより割り当てられたラベルであり、したがって、特定のリーフノードへのプレフィックスポインティングの検索を実行する代わりに、リーフノードが代替スパインノードにデータパケットを伝送するようにリーフノードにより読み込まれる。
【0015】
コンピュータネットワーク環境では、スイッチ又はルータ等のネットワーキングデバイスを使用して、1つの宛先から最終的な宛先に情報を送信できる。一実施形態では、データパッケージ及びメッセージは、個人の自宅内のコンピュータ等の第1の場所で生成してもよい。データパッケージ及びメッセージは、個人がウェブブラウザとインタラクトし、インターネットを介してアクセス可能なリモートサーバに情報を要求し又は情報を提供することによって生成できる。例えば、データパッケージ及びメッセージは、インターネットに接続されたウェブページ上でアクセス可能なフォームに個人が入力した情報であってもよい。データパッケージ及びメッセージは、個人のコンピュータから地理的に非常に離れた場所にあるリモートサーバに送信する必要がある場合がある。個人の自宅のルータとリモートサーバの間では、直接通信が行われていない可能性が高い。したがって、データパッケージ及びメッセージは、リモートサーバの最終的な宛先に到達するまでに、異なるネットワーキングデバイスを「ホッピング」して移動する必要がある。個人の自宅のルータは、インターネットに接続された複数の異なるデバイスを介してデータパッケージ及びメッセージを送信し、データパッケージ及びメッセージがリモートサーバの最終宛先に到達するまでのルートを判定する必要がある。
【0016】
第1の場所から最終的な宛先への最良のパスを判定し、データパッケージ及びメッセージを次の宛先に転送するプロセスは、スイッチ又はルータ等のネットワーキングデバイスによって実行される重要な機能である。ネットワーク内のネットワーキングデバイス間の接続は、ネットワークトポロジと呼ばれる。ネットワークトポロジは、通信ネットワーク内のリンクやノード等の要素の配置である。ネットワークトポロジは、有線リンク、無線リンク、又はネットワーク内のノード間の有線及び無線リンクの組み合わせを含むことができる。有線リンクの例としては、同軸ケーブル、電話線、電力線、リボンケーブル、光ファイバ等がある。無線リンクの例としては、衛星、セルラ信号、無線信号、自由空間光通信等がある。ネットワークトポロジは、ネットワーク内の全てのノード(コンピュータ、ルータ、スイッチ、その他のデバイス等)の指示情報と、ノード間のリンクの指示情報とを含む。ここでは、ネットワークルーティング及びネットワークトポロジを改善するためのシステム、方法、及びデバイスを開示する。
【0017】
本開示の理解を深めるために、多数のネットワーキング演算デバイス及びプロトコルの幾つかを説明する。
【0018】
BGPインスタンスは、ネットワーク内で情報をルーティングするためのデバイスである。BGPインスタンスは、ルートリフレクタ機器(route reflector appliance)の形式で実現してもよい。BGPインスタンスは、スイッチ、ルータ、又はスイッチ上のBGPスピーカで実行してもよい。高レベルでは、BGPインスタンスは、プレフィックスについて学習した全てのパスを最適パスコントローラ(best path controller)に送信する。最適パスコントローラは、これらのパスの中から最適パスのセットを応答する。最適パスコントローラは、任意のパスのネクストホップ及び属性を変更することが許可されている。最適パスを受信すると、BGPインスタンスは、ローカルルーティング情報ベース(Routing Information Base:RIB)を更新し、最適パスをネイバ(neighbors)にアドバタイズする。
【0019】
スイッチ(スイッチングハブ、ブリッジングハブ、又はMACブリッジとも呼ばれる。)は、ネットワークを作成する。殆どの内部ネットワークは、建物又はキャンパス内のコンピュータ、プリンタ、電話機、カメラ、照明、及びサーバを接続するためにスイッチを使用する。スイッチは、ネットワークに接続されたデバイスが相互に効率的に通信できるようにするコントローラとして機能する。スイッチは、パケットスイッチングを使用してコンピュータネットワーク上のデバイスを接続し、これによりデータが受信され、処理され、宛先デバイスに転送される。ネットワークスイッチは、ハードウェアアドレスを使用して、開放型システム間相互接続(Open Systems Interconnection:OSI)モデルのデータリンクレイヤ(レイヤ2)でデータを処理及び転送するマルチポートネットワークブリッジである。一部のスイッチは、ルーティング機能を追加で組み込むことにより、ネットワークレイヤ(レイヤ3)でデータを処理することもできる。このようなスイッチは、一般にレイヤ3スイッチ又はマルチレイヤスイッチと呼ばれている。
【0020】
ルータは、ネットワークを接続する。スイッチ及びルータは、類似する機能を実行するが、ネットワーク上で実行する機能はそれぞれ異なる。ルータは、コンピュータネットワーク間でデータパケットを転送するネットワークデバイスである。ルータは、インターネット上でトラフィックダイレクティング機能(traffic directing function)を実行する。ウェブページ、電子メール、又はその他の形式の情報等、インターネットを介して送信されるデータは、データパケットの形式で送信される。パケットは、通常、インターネットワーク(例えばインターネット)を構成するネットワークを介してあるルータから別のルータに転送されて、最終的に宛先ノードに到達する。ルータは、異なるネットワークからの複数のデータラインに接続されている。データパケットがラインの1つに到着すると、ルータは、パケット内のネットワークアドレス情報を読み取り、最終的な宛先を判定する。次に、ルータは、ルータのルーティングテーブル又はルーティングポリシの情報を使用して、行程上の次のネットワークにパケットを送信する。BGPスピーカは、ボーダゲートウェイプロトコル(Border Gateway Protocol:BGP)がイネーブルにされているルータである。
【0021】
顧客エッジルータ(customer edge router:CEルータ)は、顧客のLANとプロバイダのコアネットワークとの間のインタフェースを提供する、顧客の敷地内にあるルータである。CEルータ、プロバイダルータ、及びプロバイダエッジルータは、マルチプロトコルラベルスイッチングアーキテクチャのコンポーネントである。プロバイダルータは、プロバイダ又はキャリアのネットワークのコアに配置される。プロバイダエッジルータは、ネットワークのエッジに配置される。顧客エッジルータは、プロバイダエッジルータに接続し、プロバイダエッジルータは、プロバイダルータを介して他のプロバイダエッジルータに接続する。
【0022】
ルーティングテーブル又はルーティング情報ベース(RIB)は、ルータ又はネットワークコンピュータに格納されているデータテーブルであり、特定のネットワーク宛先へのルートをリストするものである。ルーティングテーブルには、距離、重み等のルートのメトリックが含まれる場合がある。ルーティングテーブルには、それが格納されているルータの直近のネットワークのトポロジに関する情報が含まれる。ルーティングテーブルの構築は、ルーティングプロトコルの主要な目的である。スタティックルートは、非自動手段によってルーティングテーブルに作成されるエントリであり、何らかのネットワークトポロジディスカバリ手順の結果ではなく、固定されている。ルーティングテーブルは、ネットワークID、メトリック、及びネクストホップのフィールドを含む、少なくとも3つの情報フィールドを含むことができる。ネットワークIDは、宛先サブネットである。メトリックは、パケットが送信されるパスのルーティングメトリックである。ルートは、メトリックが最小のゲートウェイの方向に進む。ネクストホップとは、パケットが最終宛先に送信されるまでの過程における次のステーションのアドレスである。ルーティングテーブルは、更に、ルートに関連付けられたサービス品質、ルートに関連付けられたフィルタリング基準リストへのリンク、イーサネットカードのインタフェース等を含むことができる。
【0023】
ルーティングテーブルの概念を説明する目的のために、ルーティングテーブルは、パッケージを送達するために使用される地図に見立てることができる。ルーティングテーブルは、パッケージを最終的な宛先に配信するために使用される地図に似ている。ノードがネットワーク上の別のノードにデータを送信する必要がある場合、ノードはまずデータの送信先を認識する必要がある。ノードが宛先ノードに直接接続できない場合、ノードは、宛先ノードへの適切なルートに沿って他のノードにデータを送信する必要がある。殆どのノードは、どのルートが機能するかを判断することを試みることはない。これに代えて、ノードは、LAN内のゲートウェイにIPパケットを送信し、ゲートウェイが、データを正しい宛先にどのようにルーティングするかを決定する。各ゲートウェイは、様々なデータパッケージを配信する方法を追跡する必要があり、そのためにルーティングテーブルを使用する。ルーティングテーブルは、地図のようにパスを追跡し、これらのパスを使用してトラフィックをどのように転送するかを判定するためのデータベースである。ゲートウェイは、情報を要求する他のノードとルーティングテーブルの内容を共有することもできる。
【0024】
ホップバイホップ(hop-by-hop)ルーティングの場合、各ルーティングテーブルには、全ての到達可能な宛先について、その宛先へのパスに沿った次のデバイスのアドレス、すなわち、ネクストホップがリストされる。ルーティングテーブルが一貫していると仮定すれば、パケットを宛先のネクストホップにリレーするアルゴリズムは、ネットワーク内の任意の場所にデータを配信するのに十分である。ホップバイホップは、IPインターネットワークレイヤ及び開放型システム間相互接続(OSI)モデルの特徴の一つである。
【0025】
開放型システム間相互接続(OSI)モデルは、基礎となる内部構造及び技術に関係なく、コンピューティングシステムの通信機能を特徴付け、標準化する概念モデルである。OSIモデルの目標は、多様な通信システムと標準通信プロトコルとの相互運用性である。OSIモデルは、通信システムを複数の抽象レイヤに分割する。レイヤは、上位のレイヤにサービスを提供し、下位のレイヤからサービスを提供される。例えば、ネットワークに亘って無エラー通信(error-free communication)を提供するレイヤは、上位のアプリケーションが必要とするパスを提供すると共に、次の下位レイヤを呼び出して、そのパスの内容を構成するパケットを送受信する。同じレイヤにある2つのインスタンスは、そのレイヤで水平接続によって接続されているものとして可視化される。通信プロトコルは、あるホストのエンティティが、別のホストの同じレイヤの対応するエンティティとインタラクションすることを可能にする。OSIモデルのようなサービス定義は、(N-1)レイヤによって(N)レイヤに提供される機能を抽象的に記述し、ここで、Nは、ローカルホストで動作するプロトコルレイヤの1つである。
【0026】
ルート制御は、インターネット接続性の向上、帯域幅コストの削減、及びネットワーク間の全体的な動作の削減を目的としたネットワーク管理の一種である。一部のルート制御サービスは、ハードウェアベース及びソフトウェアベースの一連の製品及びサービスを含み、これらは、連携して全体的なインターネットパフォーマンスを向上させ、利用可能なインターネット帯域幅を最小限のコストで微調整(finetune)する。ネットワーク又は自律システムが複数のプロバイダからインターネット帯域幅を調達するシナリオでは、ルート制御を成功させることができる。ルート制御は、データ伝送のための最適なルートの選択を援助できる。
【0027】
一部のネットワーク通信システムは、数千の処理ノードを有する大規模な企業レベルのネットワークである。数千もの処理ノードが複数のインターネットサービスプロバイダ(Internet Service Provider:ISP)からの帯域幅を共有し、大量のインターネットトラフィックを処理できる。このようなシステムは、非常に複雑になる可能性があり、許容できるインターネットパフォーマンスを得るために適切に構成する必要がある。システムが最適なデータ伝送のために適切に構成されていないと、インターネットアクセスの速度が低下し、システムの帯域幅消費及びトラフィックが増大する可能性がある。この問題に対し、一連のサービスを実装することによって、これらの懸念を排除又は軽減できる。この一連のサービスは、ルーティング制御とも呼ばれる。
【0028】
ルーティング制御メカニズムの一実施形態は、ハードウェアとソフトウェアとから構成される。ルーティング制御メカニズムは、インターネットサービスプロバイダ(ISP)との接続を介して全ての発信トラフィック(outgoing traffic)を監視する。ルーティング制御メカニズムは、データの効率的な伝送のための最適パスの選択を支援する。ルーティング制御メカニズムは、全てのISPの性能及び効率を計算し、適用可能な領域において最適に動作したISPのみを選択できる。ルート制御デバイスは、コスト、パフォーマンス、及び帯域幅に関する定義済みのパラメータに従って構成できる。
【0029】
データ伝送のための最適パスを判定するための公知のアルゴリズムは、ボーダゲートウェイプロトコル(Border Gateway Protocol:BGP)と呼ばれる。BGPは、インターネット上の自律システムのルーティング情報を提供するパスベクトル(path-vector)プロトコルである。BGPが正しく構成されていないと、サーバの利用可能性及び安全性に問題が発生する可能性がある。更に、攻撃者は、BGPルート情報を変更することにより、トラフィックの大規模なブロックをリダイレクトして、トラフィックが目的の宛先に到達する前に、トラフィックを特定のルータに到達させることができる。BGP最適パスアルゴリズムを実装することによって、トラフィック転送用のインターネットプロトコル(Internet Protocol:IP)ルーティングテーブルにインストールする最適パスを判定できる。BGPルータは、同じ宛先への複数のパスを受信するように構成できる。
【0030】
BGP最適パスアルゴリズムは、最初の有効なパスを現在の最適パスとして割り当てる。BGP最適パスアルゴリズムは、BGPが有効パスのリストの最後に到達するまで、リスト内の次のパスと最適パスを比較する。このリストは、最適パスを判定するために使用される規則を提供する。例えば、リストは、重みが最も高いパスの優先、ローカル優先度がないパスの優先、ネットワーク又はアグリゲーションBGPによってローカルに発生したパスの優先、最短パスの優先、最小のマルチエグジットディスクリミネータ(multi-exit discriminator)を有するパスの優先等の指示情報を含むことができる。BGP最適パス選択プロセスは、カスタマイズできる。
【0031】
BGPルーティングのコンテキストでは、各ルーティングドメインは、自律システム(autonomous system:AS)と呼ばれる。BGPは、2つのルーティングドメインを接続するためのインターネット経由のパスの選択を支援する。BGPは、通常、最短ASパスと呼ばれる、最小数の自律システムを通過するルートを選択する。一実施形態では、一旦BGPが有効にされると、ルータは、BGPネイバからインターネットルートのリストをプルし、ここで、BGPネイバは、ISPであってもよい。次に、BGPは、リストを精査して、最も短いASパスを有するルートを発見する。これらのルートは、ルータのルーティングテーブルに入力してもよい。通常、ルータは、ASへの最短パスを選択する。BGPは、パス属性を使用して、トラフィックを特定のネットワークにどのようにルーティングするかを判定する。
【0032】
等コストマルチパス(equal cost multipath:ECMP)ルーティングは、単一の宛先へのネクストホップパケット転送が複数の「最適パス」に亘って発生する可能性があるルーティング方式である。複数の最適パスは、ルーティングメトリックの計算に基づいて同等である。ルーティングは、単一のルータに限定されたホップ毎の判定であるため、マルチパスルーティングを多数のルーティングプロトコルと共に使用できる。マルチパスルーティングでは、複数のパスに亘ってトラフィックを負荷分散することにより、帯域幅を大幅に増やすことができる。しかしながら、ストラテジを実際に展開する際、ECMPルーティングには、多くの問題が知られている。ここでは、改善されたECMPルーティングのためのシステム、方法、及びデバイスを開示する。
【0033】
Closネットワークは、テレコミュニケーションにおいて展開できる。Closネットワークは、多段スイッチングシステムの理想化を表す多段回路スイッチングネットワークである。Closネットワークは、イングレス(ingress)ステージ、ミドル(middle)ステージ、エグレス(egress)ステージの3つのステージを含む。各ステージは、複数のクロスバースイッチで構成されている。各セルは、イングレスクロスバースイッチに入り、これは、使用可能なミドルステージクロスバースイッチの何れかを介して、関連するエグレスクロスバースイッチにルーティングできる。イングレススイッチをミドルステージスイッチに接続するリンクと、ミドルステージスイッチをエグレススイッチに接続するリンクとの両方が空いている場合、ミドルステージクロスバーを特定の新しいコールに使用できる。
【0034】
コンピュータネットワーク内のノードを接続するためにリーフ/スパインネットワークトポロジを展開できる。リーフ/スパイントポロジには、リーフレイヤとスパインレイヤの2つのレイヤがある。リーフレイヤは、サーバ、ファイアウォール、ロードバランサ、エッジルータ等のデバイスに接続するアクセススイッチで構成される。スパインレイヤは、ルーティングを実行するスイッチで構成され、全てのリーフスイッチが各スパインスイッチと相互接続されるネットワークのバックボーンを構成する。リーフ/スパイントポロジでは、全てのデバイスが同じリンク数だけ互いに離れて配置され、情報を送信するための遅延又はレイテンシの量が予測可能で一貫している。
【0035】
本開示に基づく原理の理解を深めるために、以下では、図示の実施形態を参照し、特定の表現を用いてこれを説明する。但し、これは、本開示の範囲を限定することを意図するものではない。ここに例示する本開示の特徴の任意の変更及び更なる修正、並びにここに例示する本開示の原理の任意の追加的な適用は、当業者が本開示に基づいて容易に想到できるものであり、特許請求の範囲に含まれる。
【0036】
ネットワークコンピューティング環境におけるオブジェクトのライフサイクルを追跡するための構造、システム、及び方法を開示及び説明する前に、本開示は、ここに開示される特定の構造、構成、プロセスステップ、及び材料に限定されず、そのような構造、構成、プロセスステップ、及び材料を変更してもよいことを明記する。また、本開示の範囲は、特許請求の範囲及びその均等物によってのみ制限されるものであるため、ここで使用される用語は、特定の実施形態を説明する目的でのみ使用され、限定を意図しないことは当然である。
【0037】
本開示の主題を記述し特許請求する際には、以下に記載する定義に従って、以下の用語を使用する。
【0038】
本明細書及び特許請求の範囲において使用する、単数形(冠詞「a」、「an」、及び「the」)は、コンテキストにおける特段の指定がない限り、複数の指示対象を含む。
【0039】
ここで使用する語句「備える」、「有する」、「含む」、「特徴とする」、及びこれらの文法的等価物は、記載されていない追加的な要素又は方法工程を除外しない非排他的又はオープンな用語である。
【0040】
ここで使用する語句「~からなる」及びその文法的等価物は、請求項に記載されていない任意の要素又は工程を除外する。
【0041】
ここで使用される語句「実質的に~からなる」及びその文法的等価物は、特許請求の範囲を、特定された材料又は工程、並びに特許請求された開示の基本的かつ新規な特性又は特徴に実質的に影響しない材料又は工程に限定する。
【0042】
以下の説明は、図面を参照し、
図1は、デバイスをインターネットに接続するためのシステム100の概略図である。システム100は、スイッチ106によって接続された複数のローカルエリアネットワーク110を含む。複数のローカルエリアネットワーク110のそれぞれは、ルータ112によって、公衆インターネットを介して互いに接続可能である。
図1に示す例示的なシステム100は、2つのローカルエリアネットワーク110を有する。但し、公衆インターネットを介して、より多くのローカルエリアネットワーク110を互いに接続してもよい。各ローカルエリアネットワーク110は、スイッチ106によって互いに接続された複数の演算デバイス108を含む。複数の演算デバイス108は、例えば、デスクトップコンピュータ、ラップトップ、プリンタ、サーバ等を含むことができる。ローカルエリアネットワーク110は、ルータ112によって、公衆インターネットを介して他のネットワークと通信できる。ルータ112は、複数のネットワークを互いに接続する。ルータ112は、インターネットサービスプロバイダ102に接続されている。インターネットサービスプロバイダ102は、1以上のネットワークサービスプロバイダ104に接続されている。ネットワークサービスプロバイダ104は、
図1に示すように、他のローカルネットワークサービスプロバイダ104と通信を行う。
【0043】
スイッチ106は、パケットスイッチング(packet switching)を使用してローカルエリアネットワーク110内のデバイスを接続し、これによりデータが受信され、処理され、宛先デバイスに転送される。スイッチ106は、例えば、プリンタを宛先として、コンピュータからデータを受信するように構成できる。スイッチ106は、データを受信し、データを処理し、データをプリンタに送信できる。スイッチ106は、レイヤ1スイッチ、レイヤ2スイッチ、レイヤ3スイッチ、レイヤ4スイッチ、レイヤ7スイッチ等であってもよい。レイヤ1ネットワークデバイスは、データを転送するが、デバイスを通過するトラフィックは管理しない。レイヤ1ネットワークデバイスの例は、イーサネットハブである。レイヤ2ネットワークデバイスは、ハードウェアアドレスを使用してデータリンクレイヤ(レイヤ2)でデータを処理及び転送するマルチポートデバイスである。レイヤ3スイッチは、通常ルータによって実行される機能の一部又は全てを実行できる。但し、一部のネットワークスイッチは、単一タイプの物理ネットワーク、通常は、イーサネットをサポートするように制限されており、一方、ルータは、異なるポート上の異なる種類の物理ネットワークをサポートする場合がある。
【0044】
ルータ112は、コンピュータネットワーク間でデータパケットを転送するネットワーキングデバイスである。
図1に示す例示的なシステム100において、ルータ112は、ローカルエリアネットワーク110間でデータパケットを転送する。但し、ルータ112は、必ずしもローカルエリアネットワーク110間のデータパケットの転送に適用される必要はなく、ワイドエリアネットワーク等の間のデータパケットの転送に使用してもよい。ルータ112は、インターネット上でトラフィックダイレクション機能(traffic direction function)を実行する。ルータ112は、銅ケーブル、光ファイバ、又は無線伝送等の異なるタイプの物理レイヤ接続のためのインタフェースを有してもよい。ルータ112は、異なるネットワークレイヤ伝送規格をサポートできる。各ネットワークインタフェースを使用することによって、データパケットをある伝送システムから別の伝送システムに転送できる。また、ルータ112は、それぞれが異なるネットワークプレフィックスを有する、サブネットと呼ばれるコンピュータデバイスの2以上の論理グループを接続するために使用してもよい。
図1に示すように、ルータ112は、企業内、企業とインターネットとの間、又はインターネットサービスプロバイダのネットワーク間の接続を提供できる。幾つかのルータ112は、様々なインターネットサービスプロバイダを相互接続するように構成してもよく、大規模な企業ネットワーク内で使用してもよい。より小さいルータ112は、一般に、ホームネットワーク及びオフィスネットワークのインターネットへの接続を提供する。
図1に示すルータ112は、エッジルータ、サブスクライバエッジルータ、プロバイダ間ボーダルータ、コアルータ、インターネットバックボーン、ポート転送、音声/データ/ファックス/ビデオ処理ルータ等のネットワーク伝送に適した任意のルータを表すことができる。
【0045】
インターネットサービスプロバイダ(ISP)102は、インターネットへのアクセス、利用、又は参加のためのサービスを提供する組織である。ISP102は、商用、コミュニティ所有、非営利、又は個人所有等の様々な形態で組織化できる。ISP102によって一般的に提供されるインターネットサービスは、インターネットアクセス、インターネット中継、ドメイン名登録、ウェブホスティング、ユースネットサービス、及びコロケーションを含む。
図1に示すISP102は、ホスティングISP、中継ISP、仮想ISP、無料ISP、無線ISP等の任意の適切なISPを表すことができる。
【0046】
ネットワークサービスプロバイダ(NSP)104は、インターネットサービスプロバイダへの直接のインターネットバックボーンアクセスを提供することによって、帯域幅又はネットワークアクセスを提供する組織である。ネットワークサービスプロバイダは、ネットワークアクセスポイント(network access point:NAP)へのアクセスを提供できる。ネットワークサービスプロバイダ104は、バックボーンプロバイダ又はインターネットプロバイダとも呼ばれる。ネットワークサービスプロバイダ104は、電気通信業者、データキャリア、無線通信プロバイダ、インターネットサービスプロバイダ、及び高速インターネットアクセスを提供するケーブルテレビ運営業者を含むことができる。また、ネットワークサービスプロバイダ104は、情報技術業者を含むこともできる。
【0047】
図1に示すシステム100は、単なる例示であり、ネットワークと演算デバイスとの間でデータを伝送するために多くの異なる構成及びシステムを構築できる。ネットワーク形成は、カスタマイズ可能性(customizability)が高いため、コンピュータ間又はネットワーク間でデータを伝送するための最良のルートを判定する際にも、カスタマイズ可能性をより高めることが望まれている。以上の観点から、ここでは、コンピュータ又は特定の企業の特定のグループ化に良好に適合する最適パスアルゴリズムを判定する際に、カスタマイズ可能性をより高めるために、最適パス計算を外部デバイスにオフロードするためのシステム、方法、及びデバイスを開示する。
【0048】
図2は、1つのネットワーキングプレフィックスから他のネットワーキングプレフィックスへの定常状態フローを示す例示的なトポロジ200の概略図である。トポロジ200は、リーフ/スパインアーキテクチャを有する。トポロジ200は、2つのスパインノードS1、S2を含み、更に、トポロジ200は、3つのリーフノードL1、L2、L3を含む。リーフ/スパイントポロジでは、全てのデバイスS1、S2、L1、L2、L3は、同じセグメント数だけ離れている。これが可能なのは、トポロジ200がスパインレイヤ及びリーフレイヤの2レイヤのみで構成されているためである。リーフレイヤL1、L2、L3は、サーバ、ファイアウォール、ロードバランサ、エッジルータ等のデバイスに接続するアクセススイッチで構成されている。スパインレイヤS1、S2は、ルーティングを行うスイッチで構成され、各リーフL1、L2、L3スイッチが各スパインS1、S2スイッチと相互接続されるネットワークのバックボーンとして機能する。
【0049】
トポロジ200において、プレフィックスP1はリーフL1にルーティングされ、プレフィックスP2はリーフL3にルーティングされる。
図2は、プレフィックスP2からプレフィックスP1への例示的定常状態フローを図示している。トポロジ200において、スパインS1及びS2のそれぞれは、プレフィックスP1を有するデータパケットをリーフL1にルーティングするように構成される。さらに、リーフノードL1、L2及びL3のそれぞれは、プレフィックスP1を有するデータパケットをスパインS1又はスパインS2にルーティングするように構成される。
図2に図示されている例において、データパケットはリーフL3から出て、その後、スパインS2にルーティングされ、その後、リーフL1にルーティングされる。
【0050】
図3A及び
図3Bは、リンク障害により起こり得る一時ループを図示している。
図3A及び
図3Bに図示されている例において、障害リンクはスパインS2及びリーフL1の間のリンクである。起こり得る一時ループのそれぞれにおいて、スパインS2はリンク障害に反応し、リーフノードL2及びL3経由の代替パスに収束する。リーフノードL2及びL3はそれぞれ、スパインS2経由の古いパスをまだ有しているので、これにより、マイクロループが引き起こされる。
【0051】
図3Aに図示されている例において、データパケットはリーフL3からスパインS2に伝送され、その後、スパインS2及びリーフL1の間のリンク障害により、リーフL2に伝送される。その後、データパケットは、スパインS2に戻され、これにより、マイクロループが引き起こされる。
【0052】
図3Bに図示されている例において、データパケットはリーフL3からスパインS2に伝送され、その後、スパインS2及びリーフL1の間のリンク障害により、リーフL3に戻される。その後、データパケットは、スパインS2に戻され、これにより、マイクロループが引き起こされる。
【0053】
制御計画駆動型のコンバージェンスは、被リーフから学習したプレフィックスを被スパインが取消することに依拠している。被リーフの後ろのプレフィックスへのトラフィックフローは、残りのスパイン経由で収束する。
図2、
図3A及び
図3Bに図示されている制御計画コンバージェンスに基づいて、マイクロループが起こり得る。リーフ/スパインアーキテクチャにおけるループ回避の1つの解決策が、
図4に図示されている。
【0054】
図4は、異なるスパインノードへのバックアップトンネル経由のループ回避の例が図示されている。この実装において、スパインS2は、リーフノード上のオーバーレイ検索を回避するために、異なるスパイン(この例においては、スパインS1)にトンネリングすることによるバックアップパスを使用する。バックアップパスは、プレフィックスP1を有するデータパケットにトンネルラベルを有するスパインS1にトンネリングするように命令する。トンネルラベルが、データパケットがリーフL3からスパインS2に戻るのではなく、スパインS1に伝送されることを引き起こす。リーフL3は、プレフィックスP1の検索を実行するのではなく、トンネルラベル上のデータパケットをスパインS1へ転送する。データパケットがスパインS1に到着すると、その後、データパケットは宛先であるリーフL1に伝送されることができる。
【0055】
スパインS2及びリーフL1を接続するリンクの障害等のリーフリンク障害が発生した場合、スパインノードは、冗長グループ内の他のスパインノードの1つへバックアップトンネルを通してリルートされることができる。例えば、スパインS2等のスパインノードは、各スパインレベルにおける冗長グループを発見又は構成することができる。各スパインレベルは、リーフ/スパインClosアーキテクチャ内の同じレベルにおける全ての他のスパインを含む。スパインノードは、スパインノードが与えられた冗長グループ又はレベルの一部である旨の信号を送る推移的属性として、「レベル/RG-ID」を有するローカルループバックルートをアドバタイズする。スパインノードは、ローカルループバックルートをリーフノードのそれぞれにアドバタイズする。さらに、リーフノードは、それぞれの受信したスパインループバックルートをCE毎のラベルに割当し、さらに他のスパインノードにアドバタイズする。各リーフのネクストホップのために、受信したラベルをトンネルラベルとして、トンネルを通したバックアップスパインへの再帰バックアップパスを予めプログラミングする。
【0056】
図5は、ループ衝突回避のためのプロセスフロー500の概略図である。プロセスフロー500は、2つのレベルのリーフ/スパインアーキテクチャに実装することができ、特に、Closデータセンターアーキテクチャに実装することができる。プロセスフロー500の理解をより容易にするために、プロセスフローは、
図4に図示されているものと同じスパインS1、スパインS2、及びリーフL3により実行される。
【0057】
プロセスフロー500において、スパインS2がプレフィックスP1を有するパケットを受信する。
図4に図示されているトポロジにおいて、プレフィックスP1はリーフL1の後ろに到達可能である。定常状態において、スパインS2は通常、プレフィックスP1とマッチするパケットをリーフL1に直接伝送する。
【0058】
504において、スパインS2は、スパインS1及びリーフL1の間のリンクが切れている旨の指示情報を受信する。506において、スパインS2は、リーフ/スパインネットワークトポロジの同じレベル内の異なるスパイン経由の次に最適で利用可能なパスである、事前にプログラミングされたバックアップパスをすぐに作動する。508において、スパインS2は、パケットにトンネルラベルを貼り付けする。トンネルラベルは、通常のラベルの代わりに貼り付けされる。508において、スパインS2は、リーフL3にパケットを送信する。510において、リーフL3は、トンネルラベルを有するパケットを受信する。512において、リーフL3は、トンネルラベルに基づいてパケットを異なるスパインに送信する。さらに、
図4に図示されている実装に加えて、514において、スパインS1は、パケットを受信する。516において、スパインS1は、プレフィックスに基づいて、リーフにパケットを送信し、この場合、スパインS1は、リーフL1にパケットを送信する。
【0059】
実施形態において、トンネルラベルの生成は、スパインノード自身のループバックをアドバタイズするスパインノードにより引き起こされる。スパインノード検索をアドバタイズするための特別な識別子であることができる。実施形態において、スパインノードは、リーフノードからプレフィックスを学習し、アドバタイズされたループバックに基づいてスパインノードを再度プログラミングすることができる。
【0060】
ここに開示されているシステム、方法、及びデバイスは、最適パス経由でプレフィックスに到達できない時、他のスパインノードを活用することができる。
図4に図示されている例において、スパインS2からプレフィックスP1に到達するための最適パスは、リーフL1に直接パケットを伝送することである。しかしながら、スパインS2及びリーフL1の間のリンクは切れている。したがって、スパインS2は、リーフL1の後ろでアクセス可能なプレフィックスP1にパケットを送信するために、同じレベル内の他のスパイン(この場合、スパインS1)を活用することができる。このパスはより長いパスであり、最適パスではない。しかしながら、このパスは、スパインS2及びリーフL1の間のリンクが切れている場合でも、ループが発生しない方法でパケットを送信する手段を提供する。
【0061】
図6は、ネットワーキングデバイス610により簡易化された通信の概略図である。ネットワーキングデバイス610は、
図2~
図5に図示されている例におけるルータ又はスイッチとして動作するスパインノードであることができる。実施形態において、ネットワーキングデバイス610のローカルのデータストア602が、システムの関連情報を保存する。データストア602は、1以上のルータ又はスイッチの最適パス情報を保存するデータベースであることができる。データストア602はさらに、CPU利用、温度、ファン速度、及びLED又は他のデバイス等の周辺機器の状態情報等のシステム状態情報を保存する。データストア602は、監視エージェントに有用な様々な情報を保存することができる。データストア602内の情報は、そのような情報を所望する他のコントローラ又はデバイスにストリーミングすることができる。データストア602は、データベースインデックスを含むことができ、そして、複数のホストを含むことができる。複数のホストのそれぞれは、プロセッサ及びキャッシュメモリを含むことができる。
図6に図示されている実施形態の例において、データストア602は、データベースホスト1、データベースホスト2、データベースホスト3、そしてデータベースホストNまでを含む。
【0062】
図7は、ネットワークトポロジ内でリンクが切れていることにより、ネットワークトポロジ内でパケットをリルートする方法700の概略的ブロック図である。方法700は、ここで説明されているClosアーキテクチャを有するリーフ/スパインネットワーク内に実装されることができる。方法700は、スイッチ又はルータ等のスパインノードにより、又は他の適切な演算デバイスにより、実装されることができる。
【0063】
方法700は、702において、演算デバイスが、ネットワークトポロジ内の第1のスパインノード及び第1のリーフノードの間のリンクが非アクティブであることを判定することにより始まる。方法700は続いて、704において、演算デバイスが、第1のリーフノードに伝送するパケットを受信する。方法700は続いて、706において、演算デバイスが、ネットワークトポロジ内の同じレベルの代替スパインノードを識別する。方法700は続いて、708において、演算デバイスが、パケットにトンネルラベルを貼り付けし、トンネルラベルは、パケットが代替スパインノードに伝送されるべきである旨を指示する。
【0064】
図8は、例示的な演算デバイス800のブロック図である。演算デバイス800を使用して、ここで説明するような様々な手順を実行できる。一実施形態では、演算デバイス800は、非同期オブジェクトマネージャの機能を実行するように機能でき、1以上のアプリケーションプログラムを実行できる。演算デバイス800は、デスクトップコンピュータ、インダッシュコンピュータ、車両制御システム、ノートブックコンピュータ、サーバコンピュータ、ハンドヘルドコンピュータ、タブレットコンピュータ等の多種多様な演算デバイスの何れであってもよい。
【0065】
演算デバイス800は、1以上のプロセッサ802と、1以上のメモリデバイス804と、1以上のインタフェース806と、1以上の大容量ストレージデバイス808と、1以上の入出力デバイス810と、表示デバイス830とを含み、これらは、全てバス812に接続されている。プロセッサ802は、メモリデバイス804及び/又は大容量ストレージデバイス808に格納された命令を実行する1以上のプロセッサ又はコントローラを含む。また、プロセッサ802は、キャッシュメモリ等の種々のタイプのコンピュータ可読媒体を含むことができる。
【0066】
メモリデバイス804は、揮発性メモリ(例えば、ランダムアクセスメモリ(random access memory:RAM)814)及び/又は不揮発性メモリ(例えば、読出専用メモリ(read-only memory:ROM)816)等の種々のコンピュータ可読媒体を含む。また、メモリデバイス804は、フラッシュメモリ等の書換可能ROMを含むことができる。
【0067】
大容量ストレージデバイス808は、磁気テープ、磁気ディスク、光ディスク、ソリッドステートメモリ(フラッシュメモリ等)等の種々のコンピュータ可読媒体を含む。
図7に示すように、具体的な大容量ストレージデバイスは、ハードディスクドライブ824である。大容量ストレージデバイス808には、種々のコンピュータ可読媒体からの読出及び/又は種々のコンピュータ可読媒体への書込を可能にするために、種々のドライブを含めることもできる。大容量ストレージデバイス808は、リムーバブルメディア726及び/又は非リムーバブルメディアを含む。
【0068】
入出力(I/O)デバイス810は、データ及び/又は他の情報を演算デバイスに入力し又は演算デバイス800から取り出すことを可能にする様々なデバイスを含む。I/Oデバイス810には、カーソル制御デバイス、キーボード、キーパッド、マイクロホン、モニタ又は他の表示デバイス、スピーカ、プリンタ、ネットワークインタフェースカード、モデム等が含まれる。
【0069】
表示デバイス830は、演算デバイス800の1人以上のユーザに情報を表示できる任意のタイプのデバイスを含む。表示デバイス830としては、例えば、モニタ、表示端末、映像投影デバイス等が挙げられる。
【0070】
インタフェース806は、演算デバイス800が他のシステム、デバイス、又はコンピューティング環境とインタラクションすることを可能にする様々なインタフェースを含む。インタフェース806は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、無線ネットワーク、及びインターネットへのインタフェースのような、任意の数の異なるネットワークインタフェース820を含むことができる。他のインタフェースは、ユーザインタフェース818及び周辺デバイスインタフェース822を含む。また、インタフェース806は、1以上のユーザインタフェース要素818を含むことができる。更に、インタフェース806は、プリンタ、ポインティングデバイス(マウス、トラックパッド、又は当業者に現在知られている任意の適切なユーザインタフェース、又は今後開発される任意の適切なユーザインタフェース)、キーボード等のためのインタフェース等、1以上の周辺インタフェースを含んでもよい。
【0071】
バス812は、プロセッサ802、メモリデバイス804、インタフェース806、大容量ストレージデバイス808、及びI/Oデバイス810が互いに、及びバス812に接続された他のデバイス又はコンポーネントと通信することを可能にする。バス812は、システムバス、PCIバス、IEEEバス、USBバス等の幾つかのタイプのバス構造のうちの1以上を表す。
【0072】
ここでは、説明のため、プログラム及び他の実行可能プログラム構成要素を個別のブロックとして示しているが、このようなプログラム及び構成要素は、演算デバイス800の異なる記憶構成要素内に様々な時点で存在してもよく、プロセッサ802によって実行される。これに代えて、ここに記載のシステム及び手順は、ハードウェアで実現してもよく、ハードウェア、ソフトウェア、及び/又はファームウェアの組み合わせで実現してもよい。例えば、ここに記載のシステム及び手順の1以上を実行するように1以上の特定用途向け集積回路(application specific integrated circuit:ASIC)をプログラムできる。
【0073】
上記の記述は、例示及び説明を目的としている。本開示は、ここに説明する詳細な形式に排他的に限定されない。上記の教示を参照することにより、多くの変更及び変形が可能である。更に、前述の変形例の何れか又は全ては、任意に組み合わせることができ、本開示の更なる組み合わせ例を形成できる。
【0074】
更に、本開示の具体的な実施例を説明及び図示しているが、本開示は、そのように説明及び図示された部分の具体的な形態又は配置に限定されるものではない。本開示の範囲は、本願の特許請求の範囲によって定義され、あるいは、将来に提出される特許請求の範囲、本願に基づく別出願、及びこれらの均等物があれば、これらによって定義される。
【実施例】
【0075】
以下の実施例は、更なる実施形態に関する。
【0076】
実施例1は、システムである。システムは、複数のスパインノード及び複数のリーフノードを有するネットワークトポロジを含み、第1のスパインノード及び第1のリーフノードの間のリンクが非アクティブである。第1のスパインノードは、非一時的コンピュータ可読記憶媒体内に格納されている命令を実行するように構成可能な1以上のプロセッサを含む。命令は、第1のリーフノードに伝送されるパケットを受信することを含む。命令は、ネットワークトポロジ内の同じレベルの代替スパインノードを識別することを含む。命令は、パケットにトンネルラベルを貼り付けすることを含み、トンネルラベルは、パケットが代替スパインノードに伝送されるべきである旨を指示する。
【0077】
実施例2は、命令は、第1のスパインノード及び第1のリーフノードの間のリンクが非アクティブであることを識別することを含み、同じレベルの代替スパインノードを識別することは、第1のスパインノードの冗長グループを分析することを含む、実施例1に記載のシステムである。
【0078】
実施例3は、命令はさらに、ネットワークトポロジ内の同じレベルの他のスパインノードへのローカルループバックルートをアドバタイズすることを含む、実施例1~2の何れかに記載のシステムである。
【0079】
実施例4は、命令はさらに、第1のリーフノードへのアクティブリンクを有する、ネットワークトポロジ内の同じレベルの1以上の代替スパインノードを含む冗長グループを追加する(populate)ことを含む、実施例1~3の何れかに記載のシステムである。
【0080】
実施例5は、命令は、トンネルラベルが代替スパインノードに向けられたルートを含む、実施例1~4の何れかに記載のシステムである。
【0081】
実施例6は、命令は、トンネルラベルがさらにルートが第1のリーフノードに到達する最適パスではない旨の指示情報を含む、実施例1~5の何れかに記載のシステムである。
【0082】
実施例7は、命令はさらに、第1のスパインノード及び第1のリーフノードの間のリンクがもう非アクティブではないことを識別し、リンクがもう非アクティブではないことの識別に応答して、第1のリーフノードを宛先とする新しいパケットにトンネルラベルを貼り付けする代わりに、新しいパケットを第1のリーフノードへ直接伝送する、実施例1~6の何れかに記載のシステムである。
【0083】
実施例8は、ネットワークトポロジは、リーフ/スパインアーキテクチャを有するClosネットワークである、実施例1~7の何れかに記載のシステムである。
【0084】
実施例9は、ネットワークトポロジは、それぞれがスパインノード及びリーフノードを有する複数のレイヤを含み、命令は、代替スパインノードを識別することが、第1のリーフノードへのアクティブなリンクを有する第1のスパインノードとして、ネットワークトポロジ内の同じレベルの1以上の他のスパインノードを識別することを含む、実施例1~8の何れかに記載のシステムである。
【0085】
実施例10は、命令はさらに、同じレベルの他のスパインノードから受信したアドバタイズメントに基づいて、同じレベルのどの他のスパインノードが第1のリーフノードへのアクティブなリンクを有するか識別することを含む、実施例1~9の何れかに記載のシステムである。
【0086】
実施例11は、非一時的コンピュータ可読記憶媒体に格納された命令を実行するように構成可能な1以上のプロセッサである。命令は、ネットワークトポロジ内の第1のスパインノード及び第1のリーフノードの間のリンクが非アクティブであることを判定することを含む。命令は、第1のリーフノードへ伝送されるパケットを受信することを含む。命令は、ネットワークトポロジ内の同じレベルの代替スパインノードを識別することを含む。命令は、パケットにトンネルラベルを貼り付けすることを含み、トンネルラベルは、パケットが代替スパインノードへ伝送されるべきである旨を指示する。
【0087】
実施例12は、命令は、同じレベルの代替スパインノードを識別することが、第1のスパインノードの冗長グループを分析することを含む、実施例11に記載の1以上のプロセッサである。
【0088】
実施例13は、命令はさらに、ネットワークトポロジ内の同じレベルの他のスパインノードへのローカルループバックルートをアドバタイズすることを含む、実施例11又は12に記載の1以上のプロセッサである。
【0089】
実施例14は、命令はさらに、第1のリーフノードへのアクティブリンクを有する、ネットワークトポロジ内の同じレベルの1以上の代替スパインノードを含む冗長グループを追加する(populate)ことを含む、実施例11~13の何れかに記載の1以上のプロセッサである。
【0090】
実施例15は、命令は、トンネルラベルが代替スパインノードに向けられたルートを含み、トンネルラベルがさらにルートが第1のリーフノードに到達する最適パスではない旨の指示情報を含む、実施例11~14の何れかに記載の1以上のプロセッサである。
【0091】
実施例16は、方法である。方法は、ネットワークトポロジ内の第1のスパインノード及び第1のリーフノードの間のリンクが非アクティブであることを判定することを含む。方法は、第1のリーフノードへ伝送されるパケットを受信することを含む。方法は、ネットワークトポロジ内の同じレベルの代替スパインノードを識別することを含む。方法は、パケットにトンネルラベルを貼り付けすることを含み、トンネルラベルは、パケットが代替スパインノードに伝送されるべきである旨を指示する。
【0092】
実施例17は、さらに、同じレベルの代替スパインノードを識別することは、第1のスパインノードの冗長グループを分析することを含む、実施例16に記載の方法である。
【0093】
実施例18は、さらに、ネットワークトポロジ内の同じレベルの他のスパインノードへのローカルループバックルートをアドバタイズすることを含む、実施例16又は17に記載の方法である。
【0094】
実施例19は、第1のリーフノードへのアクティブリンクを有する、ネットワークトポロジ内の同じレベルの1以上の代替スパインノードを含む冗長グループを追加する(populate)ことを含む、実施例16~18の何れかに記載の方法である。
【0095】
実施例20は、トンネルラベルが代替スパインノードに向けられたルートを含み、トンネルラベルがさらにルートが第1のリーフノードに到達する最適パスではない旨の指示情報を含む、実施例16~19の何れかに記載の方法である。
【0096】
実施例21は、実施例1~20の何れかに記載の命令又は方法を実行する手段である。
【0097】
なお、上述の構成、実施例、及び実施形態の任意の特徴は、ここに開示する構成、実施例、及び実施形態の何れかから得られる特徴の組み合わせを含む単一の実施形態において組み合わせることができる。
【0098】
ここに開示する種々の特徴は、当技術分野における重要な利点及び進歩を提供する。以下の特許請求の範囲は、これらの特徴の幾つかの例示である。
【0099】
本開示の前述の詳細な説明では、開示を合理化する目的で、開示の様々な特徴を1つの実施形態にまとめている。この開示方法は、特許請求された開示が各請求項において明示的に記載されている特徴よりも多くの特徴を必要とするという意図を反映していると解釈されるべきではない。すなわち、本発明の態様の特徴は、先に開示した単一の実施形態の全ての特徴よりも少ない。
【0100】
上記の構成は、本開示の原理の適用の単なる例示である。当業者は、本開示の思想及び範囲から逸脱することなく、多くの変更及び代替の構成を想到でき、特許請求の範囲は、このような修正及び構成を網羅することを意図している。
【0101】
したがって、本開示を図面に示し、上に詳細に説明しているが、ここに記載されている原理及び概念から逸脱することなく、サイズ、材料、形状、形態、機能、動作、組み立て、及び使用のバリエーションを含むと共に、これらに限定されない多数の変更を想到できることは、当業者にとって明らかである。
【0102】
更に、ここに記載される機能は、適切な場合、ハードウェア、ソフトウェア、ファームウェア、デジタルコンポーネント、又はアナログコンポーネントのうちの1以上において実行できる。例えば、1以上の特定用途向け集積回路(application specific integrated circuit:ASIC)又はフィールドプログラマブルゲートアレイ(field programmable gate array:FPGA)をプログラムして、ここに記載のシステム及び手順の1以上を実行できる。説明及び特許請求の範囲を通して、特定のシステム構成要素を指すために、特定の用語を使用している。構成要素は、異なる名称で呼ぶことができることは、当業者にとって明らかである。本文書は、名称が異なるが機能が同じコンポーネントを区別することを意図していない。
【0103】
上記の記述は、例示及び説明を目的としている。本開示は、ここに説明する詳細な形式に排他的に限定されない。上記の教示を参照することにより、多くの変更及び変形が可能である。更に、前述の変形例の何れか又は全ては、任意に組み合わせることができ、本開示の更なる組み合わせ例を形成できる。
【0104】
更に、本開示の具体的な実施例を説明及び図示しているが、本開示は、そのように説明及び図示された部分の具体的な形態又は配置に限定されるものではない。本開示の範囲は、本願の特許請求の範囲によって定義され、あるいは、将来に提出される特許請求の範囲、本願に基づく別出願、及びこれらの均等物があれば、これらによって定義される。