(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-26
(45)【発行日】2024-02-05
(54)【発明の名称】ネットワークコンピューティング環境におけるルーティング最適化
(51)【国際特許分類】
H04L 45/74 20220101AFI20240129BHJP
H04L 45/24 20220101ALI20240129BHJP
H04L 45/50 20220101ALI20240129BHJP
【FI】
H04L45/74
H04L45/24
H04L45/50
(21)【出願番号】P 2021533401
(86)(22)【出願日】2019-08-23
(86)【国際出願番号】 US2019047902
(87)【国際公開番号】W WO2020041699
(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)【参考文献】
【文献】米国特許出願公開第2018/0205634(US,A1)
【文献】米国特許出願公開第2016/0352619(US,A1)
【文献】米国特許出願公開第2017/0032011(US,A1)
【文献】特表2017-505016(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L12/00-12/66,13/00,41/00-49/9057,61/00-65/80,69/00-69/40
(57)【特許請求の範囲】
【請求項1】
スパインノードと複数のリーフノードとを含むネットワークトポロジを備えるシステムであって、前記複数のリーフノードのうちの少なくとも1つは、1以上のネットワーキングプレフィックスに関連付けられ、
前記スパインノードは、プレフィックステーブルを保存し、
前記プレフィックステーブルは、
前記ネットワークトポロジ内のネットワーキングプレフィックスのリストと、
前記ネットワークトポロジ内の前記ネットワーキングプレフィックスのそれぞれに関連付けられた少なくとも1つの等コストマルチパスルーティング(ECMP)グループの指示情報と、
前記ネットワークトポロジ内のネットワーキングプレフィックスのそれぞれに関連付けられた前記複数のリーフノードのうちの少なくとも1つのリーフノードの指示情報と、
を含むことを特徴とするシステム。
【請求項2】
前記スパインノードは、更に、前記スパインノードに関連付けられた少なくとも1つのECMPグループを示すと共に、前記複数のリーフノードのうちのどれが前記少なくとも1つのECMPグループに関連付けられているかを更に示すラベルテーブルを備えることを特徴とする請求項1に記載のシステム。
【請求項3】
前記複数のリーフノードのそれぞれは、プレフィックステーブルを備え、前記プレフィックステーブルは、
前記ネットワークトポロジ内のネットワーキングプレフィックスのリストと、
前記ネットワークトポロジ内の前記ネットワーキングプレフィックスのそれぞれに関連付けられたECMPグループの指示情報と、
を含むことを特徴とする請求項1に記載のシステム。
【請求項4】
前記複数のリーフノードのそれぞれは、少なくとも1つのECMPグループに関連付けられることを特徴とする請求項1に記載のシステム。
【請求項5】
前記スパインノード上に1以上のECMPグループがあることを特徴とする請求項1に記載のシステム。
【請求項6】
前記スパインノード上に単一のECMPグループがあり、前記単一のECMPグループが前記複数のリーフノードの2以上のリーフノードを指すことを特徴とする請求項1に記載のシステム。
【請求項7】
前記ネットワーキングプレフィックスは、インターネットプロトコル(IP)アドレスプレフィックスであることを特徴とする請求項1に記載のシステム。
【請求項8】
前記スパインノードは、ルータであり、前記複数のリーフノードの少なくとも1つは、民生用電子機器であることを特徴とする請求項1に記載のシステム。
【請求項9】
前記ネットワークトポロジは、複数のスパインノードを含み、前記複数のスパインノードのそれぞれは、前記複数のリーフノードのそれぞれと通信することを特徴とする請求項1に記載のシステム。
【請求項10】
前記スパインノードは、適用可能なECMPグループ内でパケット毎の負荷分散を行うことを含むルーティングポリシを実装するように構成されていることを特徴とする請求項1に記載のシステム。
【請求項11】
非一時的コンピュータ可読記憶媒体に格納された命令を実行するように構成可能な1以上のプロセッサであって、前記命令は、
ネットワーキングプレフィックスを含むラベルを含むデータパケットを受信することと、
前記ネットワーキングプレフィックスを識別することと、
プレフィックステーブルに基づいて、前記ネットワーキングプレフィックスに関連付けられた割当済の等コストマルチパス(ECMP)グループを識別することと、
前記割当済のECMPグループ内のリーフノードにデータパケットを転送することと、を含
み、
前記命令は、更に、前記割当済のECMPグループの負荷分散を行い、前記割当済のECMPグループ内のアクティブなリーフノードを識別することを含むことを特徴とする1以上のプロセッサ。
【請求項12】
前記命令は、更に、リーフ/スパインネットワークトポロジ内のスパインノードに関連する1以上のECMPグループの指示情報を含むラベルテーブルを保存することを含むことを特徴とする請求項11に記載の1以上のプロセッサ。
【請求項13】
前記命令は、更に、前記プレフィックステーブルを保存することを含み、
前記プレフィックステーブルは、
リーフ/スパインネットワークトポロジにおける複数のリーフノードの指示情報と、
前記複数のリーフノードのそれぞれに関連する1以上のネットワーキングプレフィックスの指示情報と、
前記複数のリーフノードのそれぞれに関連する1以上のECMPグループの指示情報と、を含むことを特徴とする請求項11に記載の1以上のプロセッサ。
【請求項14】
前記命令は、複数のリーフノードを含む2レイヤリーフ/スパインネットワークトポロジ内のスパインノードによって実装され、前記スパインノードは、前記複数のリーフノードのそれぞれと通信することを特徴とする請求項11に記載の1以上のプロセッサ。
【請求項15】
ネットワーキングプレフィックスを含むラベルを含むデータパケットを受信することと、
前記ネットワーキングプレフィックスを識別することと、
プレフィックステーブルに基づいて、前記ネットワーキングプレフィックスに関連付けられた割当済の等コストマルチパス(ECMP)グループを識別することと、
前記割当済のECMPグループ内のリーフノードにデータパケットを転送することと、
前記割当済のECMPグループの負荷分散を行い、前記割当済のECMPグループ内のアクティブなリーフノードを識別することと、
を含むことを特徴とする方法。
【請求項16】
更に、リーフ/スパインネットワークトポロジ内のスパインノードに関連する1以上のECMPグループの指示情報を含むラベルテーブルを保存することを含むことを特徴とする請求項
15に記載の方法。
【請求項17】
更に、前記プレフィックステーブルを保存することを含み、
前記プレフィックステーブルは、
リーフ/スパインネットワークトポロジにおける複数のリーフノードの指示情報と、
前記複数のリーフノードのそれぞれに関連する1以上のネットワーキングプレフィックスの指示情報と、
前記複数のリーフノードのそれぞれに関連する1以上のECMPグループの指示情報と、を含むことを特徴とする請求項
15に記載の方法。
【請求項18】
前記方法は、複数のリーフノードを含む2レイヤリーフ/スパインネットワークトポロジ内のスパインノードによって実装され、前記スパインノードは、前記複数のリーフノードのそれぞれと通信することを特徴とする請求項
15に記載の方法。
【請求項19】
ルーティング最適化の為のシステムであって、前記システムは、
スパインノードと複数のリーフノードとを含むネットワークトポロジを備え、
前記複数のリーフノードのうちの少なくとも1つは、1以上のネットワーキングプレフィックスに関連付けられ、
前記スパインノードは、スパインプレフィックステーブルを保存し、
前記スパインプレフィックステーブルは、
前記ネットワークトポロジ内のネットワーキングプレフィックスのリストと、
複数の等コストマルチパスルーティング(ECMP)グループのECMPグループであって、前記ネットワークトポロジ内の複数のネットワーキングプレフィックスに関連付けられた前記ECMPグループの指示情報と、
前記ネットワークトポロジ内の前記ネットワーキングプレフィックスのそれぞれに関連付けられた前記複数のリーフノードのうちの少なくとも1つのリーフノードの指示情報と、
を含み、
前記スパインノードはさらに、
1以上のダウンストリームリーフノードから前記ネットワーキングプレフィックスを受信し、
前記ECMPグループにローカルラベルを割当し、そして、
前記複数のリーフノードが前記複数のネットワーキングプレフィックスの全ての為のローカルラベルを使用してラベル書換を実行するように、前記複数のネットワーキングプレフィックスの為のローカルラベルをアドバタイズする、
ように構成されることを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【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】スパイン上のプレフィックス毎のラベル割当を有するリーフ/スパインネットワークトポロジ及びルーティングプロトコルの概略図である。
【
図3】マルチホームのプレフィックス及びスパイン上のプレフィックス毎のラベル割当を有するリーフ/スパインネットワークトポロジ及びルーティングプロトコルの概略図である。
【
図4】スパイン上のパスリスト毎ラベル割当を有するリーフ/スパインネットワークトポロジ及びルーティングプロトコルの概略図である。
【
図5】マルチホームのプレフィックス及びスパイン上のパスリスト毎ラベル割当を有するリーフ/スパインネットワークトポロジ及びルーティングプロトコルの概略図である。
【
図6】ネットワーク環境においてデータパケットをルーティングする方法の概略的フローチャートである。
【
図7】例示的な演算デバイスの構成要素を示す概略図である。
【発明を実施するための形態】
【0012】
ここでは、ネットワークコンピューティング環境における改善されたネットワークトポロジ、ルーティングラベリング、及びルーティングプロトコルのためのシステム、方法、及びデバイスを開示する。本開示の一実施形態は、ネットワークルーティングラベルのプレフィックスの前に付加されるプレフィックス毎のラベルを使用する。プレフィックス毎のラベルは、等コストマルチパス(equal-cost multipath:ECMP)パスを有するマルチホームプレフィックスに付加してもよい。プレフィックス毎のラベルとECMPパスを組み合わせることにより、ECMPパス毎に異なるプレフィックス毎ラベルカプセル化によってECMPグループを爆発的に増加させることができる。
【0013】
一実施形態では、ルーティングラベルは、複数のプレフィックスに亘る複数のECMPグループのそれぞれに割り当てられる。単一のECMPグループが、データパケットを宛先プレフィックスに送信するための最適パスを複数個提供することがある。リーフ/スパインネットワークトポロジでは、宛先プレフィックスが複数のリーフノードに関連付けられることがあり、複数のリーフノードのそれぞれが各スパインノードと通信することがある。
【0014】
一実施形態では、システムは、スパインノード及び複数のリーフノードを含むネットワークトポロジを含む。このシステムでは、複数のリーフノードのうちの少なくとも1つが、1以上のネットワーキングプレフィックスに関連付けられている。スパインノードには、プレフィックステーブルが保存される。プレフィックステーブルは、ネットワークトポロジ内のネットワーキングプレフィックスのリストを含む。プレフィックステーブルは、ネットワークトポロジ内のネットワーキングプレフィックスのそれぞれに関連付けられた少なくとも1つのECMPグループの指示情報を含む。プレフィックステーブルは、ネットワークトポロジ内のネットワーキングプレフィックスのそれぞれに関連付けられた複数のリーフノードのうちの少なくとも1つのリーフノードの指示情報を含む。
【0015】
本開示の一実施形態は、リーフ/スパインClosネットワークトポロジ(leaf-spine Clos network topology)において展開される。プレフィックス毎のラベル割当により、アップストリームのリーフルータで使用できるECMPグループの数が増加する。一実施形態では、プレフィックス毎のラベルがスパインルータ上で割り当てられ、スパインルータからアドバタイズされる。これにより、アドバタイズ側スパインネクストホップルータに向けて、プレフィックス毎に、一意的ラベル書換がアップストリームのリーフルータにインストールされる。プレフィックス毎のラベルは、各ネクストホップルータから受信したラベルをパスキーの一部とみなす。Closトポロジでは、プレフィックス毎のラベルスキームは、ダウンストリームのルータで使用されるラベル割当スキームの明示的な知識を用いることなく、レイヤ「n」のスパイン上で割り当てられ、そこからアドバタイズされるラベルの数を最小数に最適化する。したがって、Closトポロジでは、プレフィックス毎のラベルは、各レベルでルータによって使用されるラベル割当スキームを分離し、各レイヤでラベル書換とECMPリソースの最適な共有を自動的に提供する。
【0016】
コンピュータネットワーク環境では、スイッチ又はルータ等のネットワーキングデバイスを使用して、1つの宛先から最終的な宛先に情報を送信できる。一実施形態では、データパッケージ及びメッセージは、個人の自宅内のコンピュータ等の第1の場所で生成してもよい。データパッケージ及びメッセージは、個人がウェブブラウザとインタラクトし、インターネットを介してアクセス可能なリモートサーバに情報を要求し又は情報を提供することによって生成できる。例えば、データパッケージ及びメッセージは、インターネットに接続されたウェブページ上でアクセス可能なフォームに個人が入力した情報であってもよい。データパッケージ及びメッセージは、個人のコンピュータから地理的に非常に離れた場所にあるリモートサーバに送信する必要がある場合がある。個人の自宅のルータとリモートサーバの間では、直接通信が行われていない可能性が高い。したがって、データパッケージ及びメッセージは、リモートサーバの最終的な宛先に到達するまでに、異なるネットワーキングデバイスを「ホッピング」して移動する必要がある。個人の自宅のルータは、インターネットに接続された複数の異なるデバイスを介してデータパッケージ及びメッセージを送信し、データパッケージ及びメッセージがリモートサーバの最終宛先に到達するまでのルートを判定する必要がある。
【0017】
第1の場所から最終的な宛先への最良のパスを判定し、データパッケージ及びメッセージを次の宛先に転送するプロセスは、スイッチ又はルータ等のネットワーキングデバイスによって実行される重要な機能である。ネットワーク内のネットワーキングデバイス間の接続は、ネットワークトポロジと呼ばれる。ネットワークトポロジは、通信ネットワーク内のリンクやノード等の要素の配置である。ネットワークトポロジは、有線リンク、無線リンク、又はネットワーク内のノード間の有線及び無線リンクの組み合わせを含むことができる。有線リンクの例としては、同軸ケーブル、電話線、電力線、リボンケーブル、光ファイバ等がある。無線リンクの例としては、衛星、セルラ信号、無線信号、自由空間光通信等がある。ネットワークトポロジは、ネットワーク内の全てのノード(コンピュータ、ルータ、スイッチ、その他のデバイス等)の指示情報と、ノード間のリンクの指示情報とを含む。ここでは、ネットワークトポロジを改善するためのシステム、方法、及びデバイスを開示する。
【0018】
本開示の理解を深めるために、多数のネットワーキング演算デバイス及びプロトコルの幾つかを説明する。
【0019】
BGPインスタンスは、ネットワーク内で情報をルーティングするためのデバイスである。BGPインスタンスは、ルートリフレクタ機器(route reflector appliance)の形式で実現してもよい。BGPインスタンスは、スイッチ、ルータ、又はスイッチ上のBGPスピーカで実行してもよい。高レベルでは、BGPインスタンスは、プレフィックスについて学習した全てのパスを最適パスコントローラ(best path controller)に送信する。最適パスコントローラは、これらのパスの中から最適パスのセットを応答する。最適パスコントローラは、任意のパスのネクストホップ及び属性を変更することが許可されている。最適パスを受信すると、BGPインスタンスは、ローカルルーティング情報ベース(Routing Information Base:RIB)を更新し、最適パスをネイバ(neighbors)にアドバタイズ(advertise)する。
【0020】
スイッチ(スイッチングハブ、ブリッジングハブ、又はMACブリッジとも呼ばれる。)は、ネットワークを作成する。殆どの内部ネットワークは、建物又はキャンパス内のコンピュータ、プリンタ、電話機、カメラ、照明、及びサーバを接続するためにスイッチを使用する。スイッチは、ネットワークに接続されたデバイスが相互に効率的に通信できるようにするコントローラとして機能する。スイッチは、パケットスイッチングを使用してコンピュータネットワーク上のデバイスを接続し、これによりデータが受信され、処理され、宛先デバイスに転送される。ネットワークスイッチは、ハードウェアアドレスを使用して、開放型システム間相互接続(Open Systems Interconnection:OSI)モデルのデータリンクレイヤ(レイヤ2)でデータを処理及び転送するマルチポートネットワークブリッジである。一部のスイッチは、ルーティング機能を追加で組み込むことにより、ネットワークレイヤ(レイヤ3)でデータを処理することもできる。このようなスイッチは、一般にレイヤ3スイッチ又はマルチレイヤスイッチと呼ばれている。
【0021】
ルータは、ネットワークを接続する。スイッチ及びルータは、類似する機能を実行するが、ネットワーク上で実行する機能はそれぞれ異なる。ルータは、コンピュータネットワーク間でデータパケットを転送するネットワークデバイスである。ルータは、インターネット上でトラフィックダイレクティング機能(traffic directing function)を実行する。ウェブページ、電子メール、又はその他の形式の情報等、インターネットを介して送信されるデータは、データパケットの形式で送信される。パケットは、通常、インターネットワーク(例えばインターネット)を構成するネットワークを介してあるルータから別のルータに転送されて、最終的に宛先ノードに到達する。ルータは、異なるネットワークからの複数のデータラインに接続されている。データパケットがラインの1つに到着すると、ルータは、パケット内のネットワークアドレス情報を読み取り、最終的な宛先を判定する。次に、ルータは、ルータのルーティングテーブル又はルーティングポリシの情報を使用して、行程上の次のネットワークにパケットを送信する。BGPスピーカは、ボーダゲートウェイプロトコル(Border Gateway Protocol:BGP)がイネーブルにされているルータである。
【0022】
顧客エッジルータ(customer edge router:CEルータ)は、顧客のLANとプロバイダのコアネットワークとの間のインタフェースを提供する、顧客の敷地内にあるルータである。CEルータ、プロバイダルータ、及びプロバイダエッジルータは、マルチプロトコルラベルスイッチングアーキテクチャのコンポーネントである。プロバイダルータは、プロバイダ又はキャリアのネットワークのコアに配置される。プロバイダエッジルータは、ネットワークのエッジに配置される。顧客エッジルータは、プロバイダエッジルータに接続し、プロバイダエッジルータは、プロバイダルータを介して他のプロバイダエッジルータに接続する。
【0023】
ルーティングテーブル又はルーティング情報ベース(RIB)は、ルータ又はネットワークコンピュータに格納されているデータテーブルであり、特定のネットワーク宛先へのルートをリストするものである。ルーティングテーブルには、距離、重み等のルートのメトリックが含まれる場合がある。ルーティングテーブルには、それが格納されているルータの直近のネットワークのトポロジに関する情報が含まれる。ルーティングテーブルの構築は、ルーティングプロトコルの主要な目的である。スタティックルートは、非自動手段によってルーティングテーブルに作成されるエントリであり、何らかのネットワークトポロジディスカバリ手順の結果ではなく、固定されている。ルーティングテーブルは、ネットワークID、メトリック、及びネクストホップのフィールドを含む、少なくとも3つの情報フィールドを含むことができる。ネットワークIDは、宛先サブネットである。メトリックは、パケットが送信されるパスのルーティングメトリックである。ルートは、メトリックが最小のゲートウェイの方向に進む。ネクストホップとは、パケットが最終宛先に送信されるまでの過程における次のステーションのアドレスである。ルーティングテーブルは、更に、ルートに関連付けられたサービス品質、ルートに関連付けられたフィルタリング基準リストへのリンク、イーサネットカードのインタフェース等を含むことができる。
【0024】
ルーティングテーブルの概念を説明する目的のために、ルーティングテーブルは、パッケージを送達するために使用される地図に見立てることができる。ルーティングテーブルは、パッケージを最終的な宛先に配信するために使用される地図に似ている。ノードがネットワーク上の別のノードにデータを送信する必要がある場合、ノードはまずデータの送信先を認識する必要がある。ノードが宛先ノードに直接接続できない場合、ノードは、宛先ノードへの適切なルートに沿って他のノードにデータを送信する必要がある。殆どのノードは、どのルートが機能するかを判断することを試みることはない。これに代えて、ノードは、LAN内のゲートウェイにIPパケットを送信し、ゲートウェイが、データを正しい宛先にどのようにルーティングするかを決定する。各ゲートウェイは、様々なデータパッケージを配信する方法を追跡する必要があり、そのためにルーティングテーブルを使用する。ルーティングテーブルは、地図のようにパスを追跡し、これらのパスを使用してトラフィックをどのように転送するかを判定するためのデータベースである。ゲートウェイは、情報を要求する他のノードとルーティングテーブルの内容を共有することもできる。
【0025】
ホップバイホップ(hop-by-hop)ルーティングの場合、各ルーティングテーブルには、全ての到達可能な宛先について、その宛先へのパスに沿った次のデバイスのアドレス、すなわち、ネクストホップがリストされる。ルーティングテーブルが一貫していると仮定すれば、パケットを宛先のネクストホップにリレーするアルゴリズムは、ネットワーク内の任意の場所にデータを配信するのに十分である。ホップバイホップは、IPインターネットワークレイヤ及び開放型システム間相互接続(OSI)モデルの特徴の一つである。
【0026】
開放型システム間相互接続(OSI)モデルは、基礎となる内部構造及び技術に関係なく、コンピューティングシステムの通信機能を特徴付け、標準化する概念モデルである。OSIモデルの目標は、多様な通信システムと標準通信プロトコルとの相互運用性である。OSIモデルは、通信システムを複数の抽象レイヤに分割する。レイヤは、上位のレイヤにサービスを提供し、下位のレイヤからサービスを提供される。例えば、ネットワークに亘って無エラー通信(error-free communication)を提供するレイヤは、上位のアプリケーションが必要とするパスを提供すると共に、次の下位レイヤを呼び出して、そのパスの内容を構成するパケットを送受信する。同じレイヤにある2つのインスタンスは、そのレイヤで水平接続によって接続されているものとして可視化される。通信プロトコルは、あるホストのエンティティが、別のホストの同じレイヤの対応するエンティティとインタラクションすることを可能にする。OSIモデルのようなサービス定義は、(N-1)レイヤによって(N)レイヤに提供される機能を抽象的に記述し、ここで、Nは、ローカルホストで動作するプロトコルレイヤの1つである。
【0027】
ルート制御は、インターネット接続性の向上、帯域幅コストの削減、及びネットワーク間の全体的な動作の削減を目的としたネットワーク管理の一種である。一部のルート制御サービスは、ハードウェアベース及びソフトウェアベースの一連の製品及びサービスを含み、これらは、連携して全体的なインターネットパフォーマンスを向上させ、利用可能なインターネット帯域幅を最小限のコストで微調整(finetune)する。ネットワーク又は自律システムが複数のプロバイダからインターネット帯域幅を調達するシナリオでは、ルート制御を成功させることができる。ルート制御は、データ伝送のための最適なルートの選択を援助できる。
【0028】
一部のネットワーク通信システムは、数千の処理ノードを有する大規模な企業レベルのネットワークである。数千もの処理ノードが複数のインターネットサービスプロバイダ(Internet Service Provider:ISP)からの帯域幅を共有し、大量のインターネットトラフィックを処理できる。このようなシステムは、非常に複雑になる可能性があり、許容できるインターネットパフォーマンスを得るために適切に構成する必要がある。システムが最適なデータ伝送のために適切に構成されていないと、インターネットアクセスの速度が低下し、システムの帯域幅消費及びトラフィックが増大する可能性がある。この問題に対し、一連のサービスを実装することによって、これらの懸念を排除又は軽減できる。この一連のサービスは、ルーティング制御とも呼ばれる。
【0029】
ルーティング制御メカニズムの一実施形態は、ハードウェアとソフトウェアとから構成される。ルーティング制御メカニズムは、インターネットサービスプロバイダ(ISP)との接続を介して全ての発信トラフィック(outgoing traffic)を監視する。ルーティング制御メカニズムは、データの効率的な伝送のための最適パスの選択を支援する。ルーティング制御メカニズムは、全てのISPの性能及び効率を計算し、適用可能な領域において最適に動作したISPのみを選択できる。ルート制御デバイスは、コスト、パフォーマンス、及び帯域幅に関する定義済みのパラメータに従って構成できる。
【0030】
データ伝送のための最適パスを判定するための公知のアルゴリズムは、ボーダゲートウェイプロトコル(Border Gateway Protocol:BGP)と呼ばれる。BGPは、インターネット上の自律システムのルーティング情報を提供するパスベクトル(path-vector)プロトコルである。BGPが正しく構成されていないと、サーバの利用可能性及び安全性に問題が発生する可能性がある。更に、攻撃者は、BGPルート情報を変更することにより、トラフィックの大規模なブロックをリダイレクトして、トラフィックが目的の宛先に到達する前に、トラフィックを特定のルータに到達させることができる。BGP最適パスアルゴリズムを実装することによって、トラフィック転送用のインターネットプロトコル(Internet Protocol:IP)ルーティングテーブルにインストールする最適パスを判定できる。BGPルータは、同じ宛先への複数のパスを受信するように構成できる。
【0031】
BGP最適パスアルゴリズムは、最初の有効なパスを現在の最適パスとして割り当てる。BGP最適パスアルゴリズムは、BGPが有効パスのリストの最後に到達するまで、リスト内の次のパスと最適パスを比較する。このリストは、最適パスを判定するために使用される規則を提供する。例えば、リストは、重みが最も高いパスの優先、ローカル優先度がないパスの優先、ネットワーク又はアグリゲーションBGPによってローカルに発生したパスの優先、最短パスの優先、最小のマルチエグジットディスクリミネータ(multi-exit discriminator)を有するパスの優先等の指示情報を含むことができる。BGP最適パス選択プロセスは、カスタマイズできる。
【0032】
BGPルーティングのコンテキストでは、各ルーティングドメインは、自律システム(autonomous system:AS)と呼ばれる。BGPは、2つのルーティングドメインを接続するためのインターネット経由のパスの選択を支援する。BGPは、通常、最短ASパスと呼ばれる、最小数の自律システムを通過するルートを選択する。一実施形態では、一旦BGPが有効にされると、ルータは、BGPネイバからインターネットルートのリストをプルし、ここで、BGPネイバは、ISPであってもよい。次に、BGPは、リストを精査して、最も短いASパスを有するルートを発見する。これらのルートは、ルータのルーティングテーブルに入力してもよい。通常、ルータは、ASへの最短パスを選択する。BGPは、パス属性を使用して、トラフィックを特定のネットワークにどのようにルーティングするかを判定する。
【0033】
等コストマルチパス(equal cost multipath:ECMP)ルーティングは、単一の宛先へのネクストホップパケット転送が複数の「最適パス」に亘って発生する可能性があるルーティング方式である。複数の最適パスは、ルーティングメトリックの計算に基づいて同等である。ルーティングは、単一のルータに限定されたホップ毎の判定であるため、マルチパスルーティングを多数のルーティングプロトコルと共に使用できる。マルチパスルーティングでは、複数のパスに亘ってトラフィックを負荷分散することにより、帯域幅を大幅に増やすことができる。しかしながら、ストラテジを実際に展開する際、ECMPルーティングには、多くの問題が知られている。ここでは、改善されたECMPルーティングのためのシステム、方法、及びデバイスを開示する。
【0034】
Closネットワークは、テレコミュニケーションにおいて展開できる。Closネットワークは、多段スイッチングシステムの理想化を表す多段回路スイッチングネットワークである。Closネットワークは、イングレス(ingress)ステージ、ミドル(middle)ステージ、エグレス(egress)ステージの3つのステージを含む。各ステージは、複数のクロスバースイッチで構成されている。各セルは、イングレスクロスバースイッチに入り、これは、使用可能なミドルステージクロスバースイッチの何れかを介して、関連するエグレスクロスバースイッチにルーティングできる。イングレススイッチをミドルステージスイッチに接続するリンクと、ミドルステージスイッチをエグレススイッチに接続するリンクとの両方が空いている場合、ミドルステージクロスバーを特定の新しいコールに使用できる。
【0035】
コンピュータネットワーク内のノードを接続するためにリーフ/スパインネットワークトポロジを展開できる。リーフ/スパイントポロジには、リーフレイヤとスパインレイヤの2つのレイヤがある。リーフレイヤは、サーバ、ファイアウォール、ロードバランサ、エッジルータ等のデバイスに接続するアクセススイッチで構成される。スパインレイヤは、ルーティングを実行するスイッチで構成され、全てのリーフスイッチが各スパインスイッチと相互接続されるネットワークのバックボーンを構成する。リーフ/スパイントポロジでは、全てのデバイスが同じリンク数だけ互いに離れて配置され、情報を送信するための遅延又はレイテンシの量が予測可能で一貫している。
【0036】
本開示に基づく原理の理解を深めるために、以下では、図示の実施形態を参照し、特定の表現を用いてこれを説明する。但し、これは、本開示の範囲を限定することを意図するものではない。ここに例示する本開示の特徴の任意の変更及び更なる修正、並びにここに例示する本開示の原理の任意の追加的な適用は、当業者が本開示に基づいて容易に想到できるものであり、特許請求の範囲に含まれる。
【0037】
ネットワークコンピューティング環境におけるオブジェクトのライフサイクルを追跡するための構造、システム、及び方法を開示及び説明する前に、本開示は、ここに開示される特定の構造、構成、プロセスステップ、及び材料に限定されず、そのような構造、構成、プロセスステップ、及び材料を変更してもよいことを明記する。また、本開示の範囲は、特許請求の範囲及びその均等物によってのみ制限されるものであるため、ここで使用される用語は、特定の実施形態を説明する目的でのみ使用され、限定を意図しないことは当然である。
【0038】
本開示の主題を記述し特許請求する際には、以下に記載する定義に従って、以下の用語を使用する。
【0039】
本明細書及び特許請求の範囲において使用する、単数形(冠詞「a」、「an」、及び「the」)は、コンテキストにおける特段の指定がない限り、複数の指示対象を含む。
【0040】
ここで使用する語句「備える」、「有する」、「含む」、「特徴とする」、及びこれらの文法的等価物は、記載されていない追加的な要素又は方法工程を除外しない非排他的又はオープンな用語である。
【0041】
ここで使用する語句「~からなる」及びその文法的等価物は、請求項に記載されていない任意の要素又は工程を除外する。
【0042】
ここで使用される語句「実質的に~からなる」及びその文法的等価物は、特許請求の範囲を、特定された材料又は工程、並びに特許請求された開示の基本的かつ新規な特性又は特徴に実質的に影響しない材料又は工程に限定する。
【0043】
以下の説明は、図面を参照し、
図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と通信を行う。
【0044】
スイッチ106は、パケットスイッチング(packet switching)を使用してローカルエリアネットワーク110内のデバイスを接続し、これによりデータが受信され、処理され、宛先デバイスに転送される。スイッチ106は、例えば、プリンタを宛先として、コンピュータからデータを受信するように構成できる。スイッチ106は、データを受信し、データを処理し、データをプリンタに送信できる。スイッチ106は、レイヤ1スイッチ、レイヤ2スイッチ、レイヤ3スイッチ、レイヤ4スイッチ、レイヤ7スイッチ等であってもよい。レイヤ1ネットワークデバイスは、データを転送するが、デバイスを通過するトラフィックは管理しない。レイヤ1ネットワークデバイスの例は、イーサネットハブである。レイヤ2ネットワークデバイスは、ハードウェアアドレスを使用してデータリンクレイヤ(レイヤ2)でデータを処理及び転送するマルチポートデバイスである。レイヤ3スイッチは、通常ルータによって実行される機能の一部又は全てを実行できる。但し、一部のネットワークスイッチは、単一タイプの物理ネットワーク、通常は、イーサネットをサポートするように制限されており、一方、ルータは、異なるポート上の異なる種類の物理ネットワークをサポートする場合がある。
【0045】
ルータ112は、コンピュータネットワーク間でデータパケットを転送するネットワーキングデバイスである。
図1に示す例示的なシステム100において、ルータ112は、ローカルエリアネットワーク110間でデータパケットを転送する。但し、ルータ112は、必ずしもローカルエリアネットワーク110間のデータパケットの転送に適用される必要はなく、ワイドエリアネットワーク等の間のデータパケットの転送に使用してもよい。ルータ112は、インターネット上でトラフィックダイレクション機能(traffic direction function)を実行する。ルータ112は、銅ケーブル、光ファイバ、又は無線伝送等の異なるタイプの物理レイヤ接続のためのインタフェースを有してもよい。ルータ112は、異なるネットワークレイヤ伝送規格をサポートできる。各ネットワークインタフェースを使用することによって、データパケットをある伝送システムから別の伝送システムに転送できる。また、ルータ112は、それぞれが異なるネットワークプレフィックスを有する、サブネットと呼ばれるコンピュータデバイスの2以上の論理グループを接続するために使用してもよい。
図1に示すように、ルータ112は、企業内、企業とインターネットとの間、又はインターネットサービスプロバイダのネットワーク間の接続を提供できる。幾つかのルータ112は、様々なインターネットサービスプロバイダを相互接続するように構成してもよく、大規模な企業ネットワーク内で使用してもよい。より小さいルータ112は、一般に、ホームネットワーク及びオフィスネットワークのインターネットへの接続を提供する。
図1に示すルータ112は、エッジルータ、サブスクライバエッジルータ、プロバイダ間ボーダルータ、コアルータ、インターネットバックボーン、ポート転送、音声/データ/ファックス/ビデオ処理ルータ等のネットワーク伝送に適した任意のルータを表すことができる。
【0046】
インターネットサービスプロバイダ(ISP)102は、インターネットへのアクセス、利用、又は参加のためのサービスを提供する組織である。ISP102は、商用、コミュニティ所有、非営利、又は個人所有等の様々な形態で組織化できる。ISP102によって一般的に提供されるインターネットサービスは、インターネットアクセス、インターネット中継、ドメイン名登録、ウェブホスティング、ユースネットサービス、及びコロケーションを含む。
図1に示すISP102は、ホスティングISP、中継ISP、仮想ISP、無料ISP、無線ISP等の任意の適切なISPを表すことができる。
【0047】
ネットワークサービスプロバイダ(NSP)104は、インターネットサービスプロバイダへの直接のインターネットバックボーンアクセスを提供することによって、帯域幅又はネットワークアクセスを提供する組織である。ネットワークサービスプロバイダは、ネットワークアクセスポイント(network access point:NAP)へのアクセスを提供できる。ネットワークサービスプロバイダ104は、バックボーンプロバイダ又はインターネットプロバイダとも呼ばれる。ネットワークサービスプロバイダ104は、電気通信業者、データキャリア、無線通信プロバイダ、インターネットサービスプロバイダ、及び高速インターネットアクセスを提供するケーブルテレビ運営業者を含むことができる。また、ネットワークサービスプロバイダ104は、情報技術業者を含むこともできる。
【0048】
図1に示すシステム100は、単なる例示であり、ネットワークと演算デバイスとの間でデータを伝送するために多くの異なる構成及びシステムを構築できる。ネットワーク形成は、カスタマイズ可能性(customizability)が高いため、コンピュータ間又はネットワーク間でデータを伝送するための最良のルートを判定する際にも、カスタマイズ可能性をより高めることが望まれている。以上の観点から、ここでは、コンピュータ又は特定の企業の特定のグループ化に良好に適合する最適パスアルゴリズムを判定する際に、カスタマイズ可能性をより高めるために、最適パス計算を外部デバイスにオフロードするためのシステム、方法、及びデバイスを開示する。
【0049】
図2は、リーフ/スパインアーキテクチャを有する例示的なトポロジ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スイッチと相互接続されるネットワークのバックボーンとして機能する。
【0050】
2レイヤトポロジ200内のデバイス間の距離を予測可能にするために、動的レイヤ3ルーティング(dynamic Layer3 routing)を使用してレイヤを相互接続できる。動的ルーティングを使用すると、ネットワーク変更への応答に基づいて最適パスを判定及び調整できる。このタイプのトポロジ200は、水平ネットワークトラフィック(East-West network traffic)に焦点を当てたデータセンタアーキテクチャに使用できる。
【0051】
トポロジ200を展開するネットワークは、レイヤ3ルーティングを使用できる。全てのルートは、等コストマルチパス(equal cost multipathing:ECMP)を使用してアクティブ状態に設定される。これにより、全ての接続を同時に使用しながら、安定した状態を維持し、ネットワーク内のループを回避できる。3層ネットワーク上のスパニングツリー(Spanning Tree)等の従来のレイヤ2スイッチングプロトコルでは、全てのデバイスでトポロジを正しく構成する必要があり、スパニングツリープロトコル(STP)が依存する前提条件を全て考慮する必要がある。レイヤ3ルーティングの代わりにアクセスレイヤとアグリゲーションレイヤの間のSTPを削除すると、環境がより安定する。
【0052】
トポロジ200の更なる利点は、追加のハードウェア及び容量を容易に追加できることである。リンクのオーバーサブスクリプション(一度にアクティブリンクにアグリゲーションできるトラフィックよりも多くのトラフィックが生成されること)が発生した場合でも、容量を容易に拡張できる。すなわち、追加のスパインスイッチを追加し、アップリンクを各リーフスイッチに拡張すればよい。これにより、レイヤ間帯域幅が追加され、オーバーサブスクリプションが低減される。デバイスポートの容量が問題になる場合は、全てのスパインに新しいリーフスイッチを接続し、新しいリーフスイッチにネットワーク構成を追加することによって、新しいリーフスイッチを追加できる。
【0053】
再び
図2を参照すると、トポロジ200は、ラベル付きIP到達可能性(labeled IP reachability)のための制御プレーンとしてBGPを使用できる。ここで説明するプレフィックス毎のラベル割当により、アップストリームのリーフルータL1、L2、L3上のECMPグループが爆発的に増加する。
図2に示すように、各スパインS1、S2は、プレフィックステーブルとラベルテーブルとを含む。ラベルテーブルには、スパインルータ上で割り当てられ、スパインルータからアップストリームのリーフルータにアドバタイズされるプレフィックス毎のラベルが含まれる。プレフィックス毎のラベルを使用することにより、アドバタイズ側スパインネクストホップルータに向けて、プレフィックス毎に、一意的ラベル書換がアップストリームのリーフルータにインストールされる。
【0054】
図2に示す具体例では、リーフL2は、プレフィックスP1、P3に関連付けられる。リーフL3は、プレフィックスP2、P4に関連付けられる。プレフィックスP1、P2、P3、P4についての異なるラベル書換に起因して、4つの異なるECMPパスリストがプログラムされる。包括的に言えば、ECMPパスリストの数は、プレフィックスの数と同じである。
図2~
図5におけるL(x,y)の表記は、spine-xによってprefix-y用に割り当てられたプレフィックス毎のラベルを示す。したがって、L(x,y)表記の最初の数字は、スパイン番号であり、L(x,y)表記の2番目の数字は、プレフィックス番号である。
【0055】
スパインS1、S2上のプレフィックステーブルは、プレフィックスP2がリーフL3上にあり、プレフィックスP4がリーフL3上にあり、プレフィックスP1がリーフL2上にあり、プレフィックスP3がリーフL2上にあることを示す。プレフィックステーブルは、トポロジ200に示される2つのスパインS1、S2について同じである。
【0056】
S1のラベルテーブルは、スパインS1が、プレフィックスP2に関連付けられたラベルL(1,2)のパケットを受信すると、パケットがリーフL3に送信されることを示す。同様に、スパインS1がプレフィックスP4を有するデータを受信すると、データは、リーフL3に送信される。更に、スパインS1がプレフィックスP1を有するデータを受信すると、そのデータは、リーフL2に送信される。そして、スパインS1がプレフィックスP3を有するデータを受信すると、そのデータは、リーフL2に送信される。
【0057】
S2のラベルテーブルは、スパインS2がプレフィックスP2に関連付けられたラベルL(2,2)のパケットを受信すると、パケットがリーフL3に送信されることを示す。更に、スパインS2がプレフィックスP1を有するデータを受信すると、そのデータは、リーフL2に送信される。そして、スパインS2がプレフィックスP3を有するデータを受信すると、そのデータは、リーフL2に送信される。
【0058】
図2に示すように、スパインS1によってプレフィックスP1に割り当てられたプレフィックス毎のラベルL(1,1)は、プレフィックスP1に固有のリーフL1上のECMPパスリストとなる。アップストリームのリーフL1のプレフィックステーブルは、リーフL1のパスリストを示している。
【0059】
Closネットワーク内のスパインネクストホップの集合に亘って、これは、プレフィックス毎に一意のアップストリームリーフ上のECMPグループになる。その結果、転送ASICで使用できる限られたECMPリソースは、プレフィックス間に亘って共有できず、プレフィックススケールのボトルネックになる。
【0060】
図3は、リーフ/スパインアーキテクチャを有する例示的なトポロジ300の概略図である。トポロジ300は、2つのスパインノードS1、S2を含む。更に、トポロジ300は、3つのリーフノードL1、L2、L3を含む。リーフ/スパイントポロジでは、全てのデバイスS1、S2、L1、L2、L3は、同じセグメント数だけ離れている。これが可能なのは、トポロジ300がスパインレイヤ及びリーフレイヤの2レイヤのみで構成されているためである。リーフレイヤL1、L2、L3は、サーバ、ファイアウォール、ロードバランサ、エッジルータ等のデバイスに接続するアクセススイッチで構成されている。スパインレイヤS1、S2は、ルーティングを行うスイッチで構成され、各リーフL1、L2、L3スイッチが各スパインS1、S2スイッチと相互接続されるネットワークのバックボーンとして機能する。
【0061】
図3に示すトポロジ300は、スパイン上で割り当てられたマルチホームプレフィックス(multi-homed prefixes)を含むプレフィックス毎のラベルであるラベルの実施形態を示している。これにより、リーフノードがCEデバイスとして扱われることになる。スパインノードがローカルラベルをダウンストリームネクストホップリーフルータ毎(CE毎:per-CE)、又はネクストホップリーフルータのグループ毎(レジリエントCE毎:resilient per-CE)に割り当てることにより、ダウンストリームリーフ又はダウンストリームリーフのグループから学習した全てのプレフィックスに対して、スパインが同じラベルをアドバタイズすることになる。これにより、アップストリームのリーフルータは、所与のスパインネクストホップに向けて、一組のリーフを起源とする全てのプレフィックスに対して、共通のラベル書換を使用できる。これにより、アップストリームのリーフルータがこれらのプレフィックスに亘ってECMPリソースを共有できるようになる。
【0062】
但し、場合によっては、CE毎又はレジリエントCE毎スキームが制限されることがある。すなわち、この方式は、リーフノードが、常に、ローカルに付加されたプレフィックスについてIMP-NULL又はDEAGラベルをアドバタイズすることを前提としているため、制限される可能性がある。スパインは、共有IMP-NULL又はDEAGラベル書換により、リーフの背後にある全てのプレフィックスへの転送に使用されるレジリエントCE毎のローカルラベルをプログラムできる。更に、この方式は、単一レベルリーフ/スパインClosトポロジを仮定している。複数レイヤClosトポロジでは、レイヤ(n-1)におけるスパインがレイヤ(n-2)における複数のCEに対応付けされることにより、レイヤ(n)におけるスパインがレイヤ(n-1)における各スパインから複数のラベルを受信する結果となり、従って、CE毎転送セマンティックに違反が生じる。受信されるラベルは、ローカルに割り当てられたCEラベルのキーの一部ではないため、CE単位の転送セマンティックに違反が生じる。例えば、S1上では、異なるダウンストリームのリーフによってプレフィックスP1及びP2が学習されるため、スパインは、ラベルL1を有するダウンストリームのスパインS1からプレフィックスP1を学習し、ラベルL2を有する同じスパインS1からプレフィックスP2を学習することがある。これにより、次層のアップストリームスパインは、スパインS1に割り当てられたCE単位ラベルと同じプレフィックスP1、P2をアドバタイズできなくなる。この問題は、
図4に示すトポロジ400及び
図5に示すトポロジ500によって解決される。
【0063】
図4は、リーフ/スパインアーキテクチャを有する例示的なトポロジ400の概略図である。トポロジ400は、2つのスパインノードS1、S2を含む。更に、トポロジ400は、3つのリーフノードL1、L2、L3を含む。リーフ/スパイントポロジでは、全てのデバイスS1、S2、L1、L2、L3は、同じセグメント数だけ離れている。これが可能なのは、トポロジ400がスパインレイヤ及びリーフレイヤの2レイヤのみで構成されているためである。リーフレイヤL1、L2、L3は、サーバ、ファイアウォール、ロードバランサ、エッジルータ等のデバイスに接続するアクセススイッチで構成されている。スパインレイヤS1、S2は、ルーティングを行うスイッチで構成され、各リーフL1、L2、L3スイッチが各スパインS1、S2スイッチと相互接続されるネットワークのバックボーンとして機能する。
【0064】
図4に示すラベリング方式では、各スパインS1、S2は、ECMPグループと、ラベルテーブルと、プレフィックステーブルとを含む。ここでは、これをパスリスト毎ラベル割当(per-path list label allocation)と呼ぶ。スパインS1上のECMPグループには、リーフL3を指すECMP1及びリーフL2を指すECMP2が含まれる。スパインS1上のラベルテーブルは、スパインS1によってECMPグループECMP1に割り当てられたラベル(L(1,1)と表記する。)を含む。スパインS1上のラベルテーブルは、更に、スパインS1によってECMPグループECMP2に割り当てられたラベル(L(1,2)と表記する。)を含む。スパインS1上のプレフィックステーブルは、プレフィックスP2がECMP1を指し、更にリーフL3を指すことを示す。スパインS1上のプレフィックステーブルは、プレフィックスP4がECMP1を指し、更にリーフL3を指すことを示す。スパインS1上のプレフィックステーブルは、プレフィックスP1がECMP2を指し、更にリーフL2を指すことを示す。スパインS1上のプレフィックステーブルは、プレフィックスP3がECMP2を指し、更にリーフL2を指すことを示す。
【0065】
スパインS2上のECMPグループには、リーフL3を指すECMP1及びリーフL2を指すECMP2が含まれる。スパインS2上のラベルテーブルは、ECMPグループECMP1におけるスパインS2のラベル(L(2,1)と表記する。)を含み、これは、ECMP1を指し、更にリーフL3を指す。スパインS2上のラベルテーブルは、更に、ECMPグループECMP2におけるスパインS2のラベル(L(2,2)と表記する。)を含み、これは、ECMP2を指し、更にリーフL2を指す。スパインS2上のプレフィックステーブルは、プレフィックスP2がECMP1を指し、更にリーフL3を指すことを示す。スパインS2上のプレフィックステーブルは、プレフィックスP4がECMP1を指し、更にリーフL3を指すことを示す。スパインS2上のプレフィックステーブルは、プレフィックスP1がECMP2を指し、更にリーフL2を指すことを示す。スパインS2上のプレフィックステーブルは、プレフィックスP3がECMP2を指し、更にリーフL2を指すことを示す。
【0066】
リーフL1上のプレフィックステーブルは、プレフィックスP2がECMP1を指し、プレフィックスP4がECMP1を指し、プレフィックスP1がECMP2を指し、プレフィックスP3がECMP2を指すことを示す。リーフL1上のECMPグループは、スパインS1、L(1,1)及びL(1,2)を指し、更にスパインS2、L(2,1)及びL(2,2)を指すECMP1を含む。
図4に示すように、リーフL2は、プレフィックスP1に関連付けられ、リーフL3は、プレフィックスP2及びP4に関連付けられる。
【0067】
図5は、リーフ/スパインアーキテクチャを有する例示的なトポロジ500の概略図である。トポロジ500は、2つのスパインノードS1、S2を含む。トポロジ500は、更に、3つのリーフノードL1、L2、L3を含む。リーフ/スパイントポロジでは、全てのデバイスS1、S2、L1、L2、L3は、同じセグメント数だけ離れている。これが可能なのは、トポロジ500がスパインレイヤ及びリーフレイヤの2レイヤのみで構成されているためである。リーフレイヤL1、L2、L3は、サーバ、ファイアウォール、ロードバランサ、エッジルータ等のデバイスに接続するアクセススイッチで構成されている。スパインレイヤS1、S2は、ルーティングを行うスイッチで構成され、各リーフL1、L2、L3スイッチが各スパインS1、S2スイッチと相互接続されるネットワークのバックボーンとして機能する。
【0068】
スパインS1、S2上のECMPグループには、L3、L2を指すECMP1が含まれる。スパインS1上のラベルテーブルには、スパインS1がECMP1を指すことを示す表記L(1,1)が含まれている。スパインS2上のラベルテーブルには、スパインS2がECMP1を指すことを示す表記L(2,1)が含まれている。スパインS1、S2上のプレフィックステーブルは、プレフィックスP1、P2、P3、P4が全てECMP1を指すことを示す。リーフL1のプレフィックステーブルは、プレフィックスP1、P2、P3、P4が全てECMP1を指すことを示す。リーフL1上のECMPグループは、ECMP1がスパインS1、S2を指すことを示す。
図5に示すように、リーフL2、L3は、プレフィックスP1、P2、P3、P4を含む。
【0069】
図4及び
図5に示すラベル構造は、
図3に関して説明した前述の問題を解決する。トポロジ400では、新しいBGPローカルラベル割当スキームが、ネクストホップCE及び受信ラベルパスのセット毎にローカルラベルを割り当てる。トポロジ400、500に示されるこのパスリスト毎ラベル割当は、各ネクストホップルータから受信したラベルをパスキーの一部とみなし、パスリスト毎ローカルラベルを割り当てるために使用されるパスリストコンテキストを考慮する。Closトポロジでは、このラベル割当スキームは、レイヤnのスパイン上で割り当てられ、そこからアドバタイズされるラベルの数を自動的に最小数に最適化する。これは、レイヤn-1のダウンストリーム及びネクストホップルータからアドバタイズされるラベルの数の関数である。これは、ダウンストリームのルータで使用されるラベル割当スキームの明示的な知識を用いることなく実行される。一実施形態では、Closトポロジにおいて、このスキームは、各レイヤでルータによって使用されるラベル割当を分離しながら、各レイヤでラベル書換及びECMPリソースの最適な共有を自動的に提供する。
【0070】
一例として、リーフノードがIMP-NULL又はDEAGラベルをアドバタイズする2レイヤリーフ/スパインClosトポロジにおいて、
図4及び
図5に示すスキームは、レジリエントCE毎ラベル割当スキーム(resilient per-CE label allocation scheme)と同等のパスリスト共有最適化を提供する。リーフノードからアドバタイズされたCE毎ラベルの場合、スパイン上のダウンストリームリーフ毎に同じ数のラベルが割り当てられる。これにより、プレフィックス毎のラベル割当よりもスケールが向上する。
【0071】
図6は、ネットワーキングデバイスで送信されるデータを非同期的に受信し、並べ替える方法600の概略的ブロック図である。方法600は、ルータ又はスイッチ等のネットワーキングデバイスによって実行できる。一実施形態では、方法600は、ここで説明するように、スパインノードS1、S2及び/又はリーフノードL1、L2、L3によって実行される。方法600は、ネットワークトポロジ内のノード又は任意の他の適切な演算デバイスによって実行できる。
【0072】
方法600が開始されると、演算デバイスは、602において、ラベルを含むデータパケットを受信する。ラベルは、ネットワーキングプレフィックスを含む。続いて、方法600の604において、演算デバイスは、ラベル内のネットワーキングプレフィックスを識別する。続いて、方法600の606において、演算デバイスは、プレフィックステーブルに基づいて、ネットワーキングプレフィックスに関連付けられた割当済の等コストマルチパス(ECMP)グループを識別する。続いて、方法600の608において、演算デバイスは、割当済のECMPグループの負荷分散を行い、割当済のECMPグループ内のアクティブなリーフノードを識別する。続いて、方法600の608において、演算デバイスは、割当済のECMPグループ内のアクティブなリーフノードにデータパケットを転送する。
【0073】
図7は、例示的な演算デバイス700のブロック図である。演算デバイス700を使用して、ここで説明するような様々な手順を実行できる。一実施形態では、演算デバイス700は、非同期オブジェクトマネージャの機能を実行するように機能でき、1以上のアプリケーションプログラムを実行できる。演算デバイス700は、デスクトップコンピュータ、インダッシュコンピュータ、車両制御システム、ノートブックコンピュータ、サーバコンピュータ、ハンドヘルドコンピュータ、タブレットコンピュータ等の多種多様な演算デバイスの何れであってもよい。
【0074】
演算デバイス700は、1以上のプロセッサ702と、1以上のメモリデバイス704と、1以上のインタフェース706と、1以上の大容量ストレージデバイス708と、1以上の入出力デバイス710と、表示デバイス730とを含み、これらは、全てバス712に接続されている。プロセッサ702は、メモリデバイス704及び/又は大容量ストレージデバイス708に格納された命令を実行する1以上のプロセッサ又はコントローラを含む。また、プロセッサ702は、キャッシュメモリ等の種々のタイプのコンピュータ可読媒体を含むことができる。
【0075】
メモリデバイス704は、揮発性メモリ(例えば、ランダムアクセスメモリ(random access memory:RAM)714)及び/又は不揮発性メモリ(例えば、読出専用メモリ(read-only memory:ROM)716)等の種々のコンピュータ可読媒体を含む。また、メモリデバイス704は、フラッシュメモリ等の書換可能ROMを含むことができる。
【0076】
大容量ストレージデバイス708は、磁気テープ、磁気ディスク、光ディスク、ソリッドステートメモリ(フラッシュメモリ等)等の種々のコンピュータ可読媒体を含む。
図7に示すように、具体的な大容量ストレージデバイスは、ハードディスクドライブ724である。大容量ストレージデバイス708には、種々のコンピュータ可読媒体からの読出及び/又は種々のコンピュータ可読媒体への書込を可能にするために、種々のドライブを含めることもできる。大容量ストレージデバイス708は、リムーバブルメディア726及び/又は非リムーバブルメディアを含む。
【0077】
入出力(I/O)デバイス710は、データ及び/又は他の情報を演算デバイスに入力し又は演算デバイス700から取り出すことを可能にする様々なデバイスを含む。I/Oデバイス710には、カーソル制御デバイス、キーボード、キーパッド、マイクロホン、モニタ又は他の表示デバイス、スピーカ、プリンタ、ネットワークインタフェースカード、モデム等が含まれる。
【0078】
表示デバイス730は、演算デバイス700の1人以上のユーザに情報を表示できる任意のタイプのデバイスを含む。表示デバイス730としては、例えば、モニタ、表示端末、映像投影デバイス等が挙げられる。
【0079】
インタフェース706は、演算デバイス700が他のシステム、デバイス、又はコンピューティング環境とインタラクションすることを可能にする様々なインタフェースを含む。インタフェース706は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、無線ネットワーク、及びインターネットへのインタフェースのような、任意の数の異なるネットワークインタフェース720を含むことができる。他のインタフェースは、ユーザインタフェース718及び周辺デバイスインタフェース722を含む。また、インタフェース706は、1以上のユーザインタフェース要素718を含むことができる。更に、インタフェース706は、プリンタ、ポインティングデバイス(マウス、トラックパッド、又は当業者に現在知られている任意の適切なユーザインタフェース、又は今後開発される任意の適切なユーザインタフェース)、キーボード等のためのインタフェース等、1以上の周辺インタフェースを含んでもよい。
【0080】
バス712は、プロセッサ702、メモリデバイス704、インタフェース706、大容量ストレージデバイス708、及びI/Oデバイス710が互いに、及びバス712に接続された他のデバイス又はコンポーネントと通信することを可能にする。バス712は、システムバス、PCIバス、IEEEバス、USBバス等の幾つかのタイプのバス構造のうちの1以上を表す。
【0081】
ここでは、説明のため、プログラム及び他の実行可能プログラム構成要素を個別のブロックとして示しているが、このようなプログラム及び構成要素は、演算デバイス700の異なる記憶構成要素内に様々な時点で存在してもよく、プロセッサ702によって実行される。これに代えて、ここに記載のシステム及び手順は、ハードウェアで実現してもよく、ハードウェア、ソフトウェア、及び/又はファームウェアの組み合わせで実現してもよい。例えば、ここに記載のシステム及び手順の1以上を実行するように1以上の特定用途向け集積回路(application specific integrated circuit:ASIC)をプログラムできる。
【0082】
上記の記述は、例示及び説明を目的としている。本開示は、ここに説明する詳細な形式に排他的に限定されない。上記の教示を参照することにより、多くの変更及び変形が可能である。更に、前述の変形例の何れか又は全ては、任意に組み合わせることができ、本開示の更なる組み合わせ例を形成できる。
【0083】
更に、本開示の具体的な実施例を説明及び図示しているが、本開示は、そのように説明及び図示された部分の具体的な形態又は配置に限定されるものではない。本開示の範囲は、本願の特許請求の範囲によって定義され、あるいは、将来に提出される特許請求の範囲、本願に基づく別出願、及びこれらの均等物があれば、これらによって定義される。
【実施例】
【0084】
以下の実施例は、更なる実施形態に関する。
【0085】
実施例1は、システムである。システムは、スパインノード及び複数のリーフノードを含むネットワークトポロジを含む。システムは、複数のリーフノードのうちの少なくとも1つが1以上のネットワーキングプレフィックスに関連付けられるようになっている。スパインノードには、プレフィックステーブルが格納される。プレフィックステーブルには、ネットワークトポロジ内のネットワーキングプレフィックスのリストが含まれる。プレフィックステーブルは、ネットワークトポロジ内のネットワーキングプレフィックスのそれぞれに関連付けられた少なくとも1つの等コストマルチパスルーティング(ECMP)グループの指示情報を含む。プレフィックステーブルは、ネットワークトポロジ内のネットワーキングプレフィックスのそれぞれに関連付けられた複数のリーフノードのうちの少なくとも1つのリーフノードの指示情報を含む。
【0086】
実施例2は、スパインノードは、更に、スパインノードに関連付けられた少なくとも1つのECMPグループを示すと共に、複数のリーフノードのうちのどれが少なくとも1つのECMPグループに関連付けられているかを更に示すラベルテーブルを備える、実施例1に記載のシステムである。
【0087】
実施例3は、複数のリーフノードのそれぞれは、プレフィックステーブルを備え、プレフィックステーブルは、ネットワークトポロジ内のネットワーキングプレフィックスのリストと、ネットワークトポロジ内のネットワーキングプレフィックスのそれぞれに関連付けられたECMPグループの指示情報とを含む、実施例1~2の何れかに記載のシステムである。
【0088】
実施例4は、複数のリーフノードのそれぞれは、少なくとも1つのECMPグループに関連付けられる、実施例1~3の何れかに記載のシステムである。
【0089】
実施例5は、スパインノード上に1以上のECMPグループがある、実施例1~4の何れかに記載のシステムである。
【0090】
実施例6は、スパインノード上に単一のECMPグループがあり、単一のECMPグループが複数のリーフノードの2以上のリーフノードを指す、実施例1~5の何れかに記載のシステムである。
【0091】
実施例7は、ネットワーキングプレフィックスは、インターネットプロトコル(IP)アドレスプレフィックスである、実施例1~6の何れかに記載のシステムである。
【0092】
実施例8は、スパインノードは、ルータであり、複数のリーフノードの少なくとも1つは、民生用電子機器である、実施例1~7の何れかに記載のシステムである。
【0093】
実施例9は、ネットワークトポロジは、複数のスパインノードを含み、複数のスパインノードのそれぞれは、複数のリーフノードのそれぞれと通信する、実施例1~8の何れかに記載のシステムである。
【0094】
実施例10は、スパインノードは、適用可能なECMPグループ内でパケット毎の負荷分散を行うことを含むルーティングポリシを実装するように構成されている、実施例1~9の何れかに記載のシステムである。
【0095】
実施例11は、非一時的コンピュータ可読記憶媒体に格納された命令を実行するように構成可能な1以上のプロセッサであり、命令は、ネットワーキングプレフィックスを含むラベルを含むデータパケットを受信することと、ネットワーキングプレフィックスを識別することと、プレフィックステーブルに基づいて、ネットワーキングプレフィックスに関連付けられた割当済の等コストマルチパス(ECMP)グループを識別することと、割当済のECMPグループ内のリーフノードにパケットを転送することとを含む。
【0096】
実施例12は、命令は、更に、割当済のECMPグループの負荷分散を行い、割当済のECMPグループ内のアクティブなリーフノードを識別することを含む、実施例11に記載の1以上のプロセッサである。
【0097】
実施例13は、命令は、更に、リーフ/スパインネットワークトポロジ内のスパインノードに関連する1以上のECMPグループの指示情報を含むラベルテーブルを保存することを含む、実施例11又は12に記載の1以上のプロセッサである。
【0098】
実施例14は、命令は、更に、プレフィックステーブルを保存することを含み、プレフィックステーブルは、リーフ/スパインネットワークトポロジにおける複数のリーフノードの指示情報と、複数のリーフノードのそれぞれに関連する1以上のネットワーキングプレフィックスの指示情報と、複数のリーフノードのそれぞれに関連する1以上のECMPグループの指示情報とを含む、実施例11~13の何れかに記載の1以上のプロセッサである。
【0099】
実施例15は、命令は、複数のリーフノードを含む2レイヤリーフ/スパインネットワークトポロジ内のスパインノードによって実装され、スパインノードは、複数のリーフノードのそれぞれと通信する、実施例11~14の何れかに記載の1以上のプロセッサである。
【0100】
実施例16は、方法である。方法は、ネットワーキングプレフィックスを含むラベルを含むデータパケットを受信することを含む。方法は、ネットワーキングプレフィックスを識別することを含む。方法は、プレフィックステーブルに基づいて、ネットワーキングプレフィックスに関連付けられた割当済の等コストマルチパス(ECMP)グループを識別することを含む。方法は、割当済のECMPグループ内のリーフノードにパケットを転送することを含む。
【0101】
実施例17は、更に、ECMPグループの負荷分散を行い、ECMPグループ内のアクティブなリーフノードを識別することを含む、実施例16に記載の方法である。
【0102】
実施例18は、更に、リーフ/スパインネットワークトポロジ内のスパインノードに関連する1以上のECMPグループの指示情報を含むラベルテーブルを保存することを含む、実施例16又は17に記載の方法である。
【0103】
実施例19は、更に、プレフィックステーブルを保存することを含み、プレフィックステーブルは、リーフ/スパインネットワークトポロジにおける複数のリーフノードの指示情報と、複数のリーフノードのそれぞれに関連する1以上のネットワーキングプレフィックスの指示情報と、複数のリーフノードのそれぞれに関連する1以上のECMPグループの指示情報とを含む、実施例16~18の何れかに記載の方法である。
【0104】
実施例20は、方法は、複数のリーフノードを含む2レイヤリーフ/スパインネットワークトポロジ内のスパインノードによって実装され、スパインノードは、複数のリーフノードのそれぞれと通信する、実施例16~19の何れかに記載の方法である。
【0105】
なお、上述の構成、実施例、及び実施形態の任意の特徴は、ここに開示する構成、実施例、及び実施形態の何れかから得られる特徴の組み合わせを含む単一の実施形態において組み合わせることができる。
【0106】
ここに開示する種々の特徴は、当技術分野における重要な利点及び進歩を提供する。以下の特許請求の範囲は、これらの特徴の幾つかの例示である。
【0107】
本開示の前述の詳細な説明では、開示を合理化する目的で、開示の様々な特徴を1つの実施形態にまとめている。この開示方法は、特許請求された開示が各請求項において明示的に記載されている特徴よりも多くの特徴を必要とするという意図を反映していると解釈されるべきではない。すなわち、本発明の態様の特徴は、先に開示した単一の実施形態の全ての特徴よりも少ない。
【0108】
上記の構成は、本開示の原理の適用の単なる例示である。当業者は、本開示の思想及び範囲から逸脱することなく、多くの変更及び代替の構成を想到でき、特許請求の範囲は、このような修正及び構成を網羅することを意図している。
【0109】
したがって、本開示を図面に示し、上に詳細に説明しているが、ここに記載されている原理及び概念から逸脱することなく、サイズ、材料、形状、形態、機能、動作、組み立て、及び使用のバリエーションを含むと共に、これらに限定されない多数の変更を想到できることは、当業者にとって明らかである。
【0110】
更に、ここに記載される機能は、適切な場合、ハードウェア、ソフトウェア、ファームウェア、デジタルコンポーネント、又はアナログコンポーネントのうちの1以上において実行できる。例えば、1以上の特定用途向け集積回路(application specific integrated circuit:ASIC)又はフィールドプログラマブルゲートアレイ(field programmable gate array:FPGA)をプログラムして、ここに記載のシステム及び手順の1以上を実行できる。説明及び特許請求の範囲を通して、特定のシステム構成要素を指すために、特定の用語を使用している。構成要素は、異なる名称で呼ぶことができることは、当業者にとって明らかである。本文書は、名称が異なるが機能が同じコンポーネントを区別することを意図していない。
【0111】
上記の記述は、例示及び説明を目的としている。本開示は、ここに説明する詳細な形式に排他的に限定されない。上記の教示を参照することにより、多くの変更及び変形が可能である。更に、前述の変形例の何れか又は全ては、任意に組み合わせることができ、本開示の更なる組み合わせ例を形成できる。
【0112】
更に、本開示の具体的な実施例を説明及び図示しているが、本開示は、そのように説明及び図示された部分の具体的な形態又は配置に限定されるものではない。本開示の範囲は、本願の特許請求の範囲によって定義され、あるいは、将来に提出される特許請求の範囲、本願に基づく別出願、及びこれらの均等物があれば、これらによって定義される。