(58)【調査した分野】(Int.Cl.,DB名)
前記ルータは、前記ルータによって接続されたサブネットを異なるネットワークトポロジーで構成することを可能にするように動作する、請求項2〜5のいずれか1項に記載のシステム。
【発明を実施するための形態】
【0008】
詳細な説明
発明は、限定の目的ではなく一例として添付の図面の図に図示され、図中同じ参照番号は同様の要素を示す。この開示での「ある」または「1つの」または「いくつかの」実施形態の参照は必ずしも同じ実施形態に対するものではなく、そのような参照は少なくとも1つを意味することに留意すべきである。
【0009】
以下のような発明の説明は、InfiniBand(IB)ネットワークを高性能ネットワークの例として用いる。当業者には、他の種類の高性能ネットワークを限定なく用いることができることが明らかであろう。また、以下のような発明の説明は、ファットツリーをネットワークトポロジーモデルの例として用いる。当業者には、他の種類のネットワークトポロジーモデルを限定なく用いることができることが明らかであろう。
【0010】
別個のネットワーク間でのトラフィックのルーティングをサポートすることができるシステムおよび方法をここに説明する。
【0011】
InfiniBand(IB)アーキテクチャ
IBアーキテクチャは、直列の二地点間全二重技術である。IBクラスタのサイズおよび複雑性が増大するにつれて、サブネットと称することができる扱いやすいセクションにネットワークをセグメント化することができる。IBサブネットは、スイッチおよび二地点間リンクを用いて相互接続された1組のホストを含むことができる。IBサブネットは、少なくとも1つのサブネットマネージャ(SM)を含むこともでき、サブネットマネージャは、サブネットにおけるすべてのスイッチ、ルータおよびホストチャネルアダプタ(HCA)の構成を含む、ネットワークの初期化および立上げを担う。
【0012】
IBは、リモートダイレクトメモリアクセス(RDMA)および従来の送信/受信セマンティクスの両方を提供するために、多数の伝送サービスの組をサポートする。使用される伝送サービスとは別個に、IB HCAはキューペア(QP)を用いて通信する。QPは通信セットアップ中に作成され、提供されるQP番号、HCAポート、デスティネーションLID、キューサイズ、および伝送サービスなどの1組の初期属性を有することができる。HCAは多くのQPを処理することができ、各QPは、送信キュー(SQ)および受信キュー(RQ)などの1組のキューで構成され、通信に参加する各エンドノードにおいて、1つのそのようなペアが存在する。送信キューは、リモートノードに転送される作業要求を保持し、一方受信キューは、リモートノードから受信したデータで何を行うべきかについての情報を保持する。QPに加えて、各HCAは1組の送信キューおよび受信キューと関連付けられた1つ以上の完了キュー(CQ)を有する。CQは、送信および受信キューに書込まれた作業要求についての完了通知を保持する。通信の複雑性がユーザーに非公開であっても、QP状態情報がHCAに保持される。
【0013】
別個のInfiniBand(IB)サブネット間のトラフィックのルーティング
図1は、発明の実施形態に従う、ネットワーク環境において別個のInfiniBand(IB)サブネット間のトラフィックをルーティングする実例を示す。
図1に示されるように、ネットワーク環境100は、InfiniBandアーキテクチャ(IBA)に基づくことができ、2層トポロジー分割をサポートする。
【0014】
IBネットワークの下位レイヤ、すなわちIBファブリック100は、サブネット、たとえばサブネット101−104と称することができ、サブネットの各々は、スイッチおよび二地点間リンクを用いて相互接続された1組のホストを含む。より高いレベルでは、IBファブリック100中の1つ以上のサブネット101−104をルータ、たとえばルータ105−106を用いて相互接続することができる。さらに、各サブネット101−104は、ポートのみを構成するそれ自身のサブネットマネージャ(SM)をローカルサブネット上で実行することができ、ルータ105−106は、サブネットマネージャ(SM)に対して不透明である。
【0015】
サブネット101−104の各々中のホストおよびスイッチは、指定されたローカル識別子(LID)を用いてアドレス指定することができる。大きな設備のサイズは、利用可能なローカル識別子(LID)の数によって限定され得る。たとえば、一つのサブネットは49151のユニキャストLIDに限定され得る。IBアドレス空間を拡張する1つの手法は、LIDアドレス指定空間を32ビットに拡張することであり、この手法がより古いハードウェアとの後方互換性がない場合があるため、その有用性は限定される可能性がある。
【0016】
発明の実施形態によれば、IBルータ105−106は、IBファブリック100中のアドレス空間スケーラビリティを提供することができる。
図1に示されるように、より多くのエンドポートが望ましい場合、1つ以上のIBルータ105−106を用いて複数のサブネット101−104を互いに組合せることができる。サブネット101−104の各々は、ローカル識別子(LID)アドレス空間111−114を使用することができる。LIDアドレスは各LIDアドレス空間111−114内にローカルな可視性を有することから、ルータ105−106によって接続されている異なるサブネット101−104においてLIDアドレスを再使用することができる。したがって、アドレス空間スケーラビリティをIBファブリック100に提供することができ、この手法は、無限のアドレス指定空間を理論的にもたらすことができる。
【0017】
さらに、大きく複雑なネットワーク100を複数のサブネット101−104にセグメント化することにより、システムはファブリック管理コンテナを提供することができる。ファブリック管理コンテナは、1)フォールト分離、2)より高いセキュリティ、および3)サブネット内ルーティングフレキシビリティを提供する際に有益となり得る。
【0018】
まず、大きなネットワーク100をいくつかのより小さなサブネット101−104に分割することにより、フォールトまたはトポロジーの変化を一つのサブネットに含めることができ、サブネットリコンフィギュレーションは、ルータ105−106を介して他のサブネットに通過しない場合がある。これにより、リコンフィギュレーション時間が短くなり、フォールトのインパクトが限定される。
【0019】
第2に、セキュリティの観点から、ルータ105−106を用いて大きなファブリック100をサブネット101−104にセグメント化することにより、大部分の攻撃の範囲を攻撃されたサブネットに限定する。
【0020】
第3に、ルーティングの観点から、ファブリック管理格納は、よりフレキシブルなルーティングスキームをサポートする際に有益となることができ、2つ以上の規則的なトポロジーを含むハイブリッドファブリックの場合には特に有利となることができる。
【0021】
たとえば、ハイブリッドファブリック100は、メッシュで相互接続されたファットツリー部またはトーラス部(またはいずれかの他の規則的なトポロジー)を含んでもよい。サブネット内ルーティング(intra-subnet routing)アルゴリズムはサブネットスコープのみを有するため、ハイブリッドファブリック100の異なる部分を別々にルーティングする簡単な方法がない場合がある。また、ハイブリッドトポロジーに最適な性能を提供することができるIBのための汎用アグノスティックルーティングトポロジーはない。
【0022】
発明の実施形態によれば、ハイブリッドトポロジーを、より小さな規則的なサブネット101−104に分割することができ、その各々を、特定のサブネットに最適化される異なるルーティングアルゴリズムを用いてルーティングすることができる。たとえば、ファットツリールーティングアルゴリズムはファットツリー部をルーティングすることができ、次元順ルーティングは、トポロジーのメッシュ部をルーティングすることができる。
【0023】
さらに、スーパーサブネットマネージャを用いてローカルサブネットマネージャ間の調整を行なうことができ、最終デスティネーションが別のサブネットの後ろに位置するより不規則なネットワークの場合(たとえば、少なくとも2つのルータホップが必要とされる)、トランジットサブネットを通るパスを確立することができる。
【0024】
したがって、IBサブネット間のルーティングを用いることによって、システムは、IBネットワークにおけるアドレス空間スケーラビリティおよびファブリック管理コンテナをもたらすことができる。
【0025】
ネイティブなInfiniBand(IB)ルータ
図2は、発明の実施形態に従う、ネットワーク環境においてルータ上のパケット転送をサポートする例示を示す。
図2に示されるように、ネットワーク環境200は、ルータ210を用いて相互接続される複数のサブネット、たとえばIBサブネットA−B 201−202を含むことができる。さらに、IBサブネットA 201は、ホストチャネルアダプタ(HCA)213に関連付けられるエンドノードX 203に接続し、IBサブネットB 202は、ホストチャネルアダプタ(HCA)214に関連付けられるエンドノードY 204に接続する。
【0026】
発明の実施形態によれば、IBルータ210は、IBアドレス指定ヒエラルキーのレイヤ3で動作することができる。さらに、LIDに加えて、各IB装置は、GID、IBレイヤ3アドレスを形成するために使用することができる64ビットのグローバルユニーク識別子(GUID)も有し得る。たとえば、64ビットサブネットIDを64ビットGUIDと連結してIPv6のような128ビットのアドレスを形成することによってGIDを作成することができる。また、GUIDという用語は、ポートGUID、つまりIBファブリック中のあらゆるポートに割当てられたGUIDを指すのに使用してもよく、GUIDは、不揮発性メモリに焼きつけることができる。
【0027】
図2に示されるように、エンドノード、たとえばエンドノードX 203は、ルータ210を介して、別のエンドノード、たとえばエンドノードY 204にパケットを送信することができる。アドレス解決メカニズムは、ローカルルータ210をエンドノードX−Y 203−204に対して可視化することができる。
【0028】
たとえば、ルータ210で受信されたパケットは、ローカルルーティングヘッダ(LRH)223およびグローバルルーティングヘッダ(GRH)225を含む入来ルーティングヘッダ221を含むことができる。パケットを転送する前に、ルータ210は、LRH 224およびGRH 226を含む送出ルーティングヘッダ222に入来ルーティングヘッダ221を修正することができる。
【0029】
図2に示されるように、エンドノードX 203は、ローカルHCAのLIDアドレス、たとえばXをソースLIDであるsrcLIDとして配置することができ、ローカルルータのLIDアドレス、たとえばAをLRH 223中のデスティネーションLIDであるdstLIDとして配置することができる。さらに、エンドノードX 203は、そのレイヤ3アドレス(GID)、たとえば1234をソースGIDであるsrcGIDとして配置することができ、最終デスティネーションアドレス(GID)、たとえば5678をGRH 225中のデスティネーションGIDであるdstGIDとして配置することができる。
【0030】
パケットがルータ210に到達すると、パケット転送メカニズム220はパケットフィールドを更新し置換することができる。たとえばシステムは、ローカルルーティングヘッダ(LRH)224中のソースLIDであるsrcLIDを、ルータの出口ポートのLID、たとえばBに置換することができる。さらにシステムは、デスティネーションLIDであるdstLIDを、デスティネーションのLIDアドレス、たとえばYに置換することができる。
【0031】
代替的に、システムは、パケットが別のルータから転送されてくる場合、前のホップルータの出口ポートのLIDをソースLIDであるsrcLIDとして使用することができる。また、さらなるパケット転送が必要な場合、システムは、デスティネーションLIDであるdstLIDを次のホップポートのLIDに置換することができる。それぞれの場合、システムは次のホップにパケットを転送する前に巡回冗長検査(CRC)を再計算することができる。
【0032】
発明の実施形態によれば、別個のInfiniBand(IB)サブネット間のトラフィックをルーティングするために異なる方法を使用することができる。これらの方法は、特定のデスティネーションについてどのルータを選択すべきか(第1のルーティング段階)、および当該デスティネーションに到達するにはどのパスをルータによって選択すべきか(第2のルーティング段階)などの、サブネット間ルーティングに関するさまざまな問題に対処するために使用することができる。
【0033】
たとえば、これらの方法は、単純な古典的ルーティング法、さまざまなトポロジーに良好な性能を提供するソースルーティング法、およびファットツリーベースのトポロジーのために特殊化され、最適な性能を提供する最適化ルーティング法を含むことができる。ソースルーティング法および最適化ルーティング法は両方とも、場合によっては古典的ルーティング法よりも良好な性能を与えることができる。さらに、最適化ルーティング法は、基礎をなすファットツリートポロジーについて最適な性能を取得することを可能にする。加えて、両方の方法は、任意のマルチポートルータの使用をサポートするが、古典的ルーティングは、利用可能なポートの数を制限しない場合でもすべてのポートを効果的に利用しない場合がある。
【0034】
したがって、これらの方法を用いて、ネイティブなIBルータは、性能を著しく低下させることなくサブネットを互いに接続することによって、より複雑なIBファブリックを構築することを可能にする。
【0035】
サブネット間ソースルーティング(Inter-Subnet Source Routing:ISSR)
発明の実施形態によれば、サブネット間ソースルーティング(ISSR)ルーティングアルゴリズムなどの汎用ルーティングアルゴリズムを、ハイブリッドサブネットを有する複雑なネットワークをルーティングするために使用することができる。ISSRルーティングアルゴリズムは、2つの段階、特定のデスティネーションのための入口ルータポートを選択するための第1段階と、出口ルータポートを選択するための第2段階とを含むことができる。
【0036】
図3は、発明の実施形態に従う、ネットワーク環境において異なるデスティネーションのための入口ルータポートを選択する例示を示す。
図3に示されるように、ネットワーク環境300は、1つ以上のルータ、たとえばルータA 301およびルータB 302に接続されたサブネット310を含むことができる。
【0037】
サブネットマネージャ(SM)、たとえばサブネット310中のSM 303は、異なるデスティネーションのための入口ルータポートを選択するのに使用することができるマッピングファイル304を含むことができる。さらに、入口ルータポートの選択は、ローカルサブネットに接続されるすべての利用可能なルータ間のラウンドロビンパス分散に基づくことができる。たとえば、ISSRアルゴリズムについてローカルルータポートを選択するfind_router()機能は、OpenSMルーティングアルゴリズムと同様の方法で実装することができる。
【0038】
以下は、マッピングファイル304のハイレベルの例である。
【0040】
サブネット全体を一つのルータポートにマッチングさせることしかできないOpenSMルーティングとは異なり、システムは、デスティネーションエンドポートを異なるルータポートにマッピングすることができる。さらに、マッピングファイルのセットアップを、OpenSMに設けられたマッピングファイルとは異ならせることができる。上記の表1に示されるように、マッピングファイル304は、OpenSMサブネット間ルーティングに関するサブネットプレフィックスのみでなく、完全修飾ポートGIDを含み、入口ルータポートを選択する際に、システムが十分な粒度を提供することを可能にする。
【0041】
さらに、
図3に示されるように、等しい(または同様の)数のデスティネーションを、たとえばラウンドロビン式に多くのポートにマッピングすることができる。たとえば、デスティネーションA 311(dst_gid1)およびデスティネーションC 313(dst_gid3)は、ルータA 301上のポート1およびポート2を介してルーティングすることができ、デスティネーションB 312(dst_gid2)およびデスティネーションD 314(dst_gid4)は、ルータB 302上のポート1およびポート2を介してルーティングすることができる。加えて、マッピングファイル304はバックアップおよびデフォルトルートを特定することができる。
【0042】
発明の実施形態によれば、出口ルータポートを選択することは、ルータファームウェアにおけるモジュロベースのハッシュを用いて実施することができる。ハッシュは、ソースおよびデスティネーションLID(またはルータ上の入口ポート番号などのいずれかの他の有用なパラメータ)を用いて生成された乱数をとることができる。ハッシュを使用すると、出力ルータポートのうちの1つを選択することができる。さらに、ISSRルーティングアルゴリズムは、同じペアのノードには同じパスを常に使用する決定的オブリビアス(deterministic oblivious)ルーティングアルゴリズムである。
【0043】
さらに、ルータは3つ以上のサブネットに取付けられ得ることから、ツーステップポート確認方法を用いて、出口ルータポートを選択することができる。まず、システムは、デスティネーションが位置するサブネットに(またはサブネットの方向に)取付けられている1組の可能なポートを選択することができる。次いで、システムは、モジュロ機能に基づく単純なハッシュを用いて、出口ポートを選択することができる。
【0044】
図4は、発明の実施形態に従う、ネットワーク環境におけるルータにおいて受信パケットのための出口ルータポートを選択する例示を示す。
図4に示されるように、ネットワーク環境400は、異なるサブネット中の様々なデスティネーションに1つ以上のパケットをルーティングすることができるルータ、たとえばルータA 401を含むことができる。
【0045】
たとえば、ルータA 401は、サブネット403中のデスティネーションX 421宛てのソースA 411からのパケットを、ポート1において受信することができる。加えて、ルータA 401は、サブネット402中のデスティネーションY 422宛てのソースC 413からの別のパケットを、ポート2において受信することができる。
【0046】
以下のアルゴリズム1は、出口ルータポートを選択するためのSMおよびルータファームウェアの両方において実装することができる。
【0048】
ルーティング決定は、ソースLIDおよびデスティネーションLIDの両方に基づくことができる。ソースLIDは、オリジナルソースまたはトランジットサブネットシナリオにおける前のホップルータの出口ポートのいずれかとすることができ、デスティネーションLIDは、最終デスティネーションLIDまたは次のホップ入口ルータポートのLIDのいずれかとすることができる。
【0049】
サブネットが取付けられているのを見ることができることから、ルータA 401は、ソースLIDおよびデスティネーションLIDの両方についての値を識別する。デスティネーションLIDを得るためには、アルゴリズム1中のget_next_LID()(2行目)などのマッピング機能を用いて、デスティネーションGIDをデスティネーションLIDにマッピングすることができるか、またはGID内に位置するサブネットプレフィックスに基づいて次のホップLIDを戻すことが必要とされる。マッピング機能は、連想メモリルックアップ、最終デスティネーションのローカル識別子(LID)をグローバルルーティングヘッダ(GRH)フィールドからデコードすること、次のホップのローカル識別子をグローバルルーティングヘッダ(GRH)フィールドからデコードすることのうち、1つ以上を行なうことができる。
【0050】
発明の実施形態によれば、出口ルータポートを選択するアルゴリズムは、ソースおよびデスティネーションLIDに基づく乱数を算出することができる。この乱数を用いて、1組の可能なポートから一つの出口ポートを選択することができる。乱数の生成は、所定のソース−デスティネーションのペアが同じ数を常に生成することができるような決定的な手法で行なうことができる。したがってシステムは、出口ポートを選択するためのラウンドロビン法とは異なり、サブネット間でルーティングする際のアウトオブオーダー配信を防ぐことができ、各ソース−デスティネーションのペアがネットワークを通る同じパスを常に使用することを確実にする。
【0051】
図5は、発明の実施形態に従う、ネットワーク環境におけるルータにおいてサブネット間ソースルーティング(ISSR)アルゴリズムをサポートするための典型的なフローチャートを例示する。
図5に示されるように、ステップ501において、ルータは、当該ルータが担う1つ以上のパケットのルーティング先であるデスティネーションのリストを受信することができ、ルータは、ネットワーク環境において少なくとも1つのサブネットに接続している。次いで、ステップ502において、ルータは、1つ以上のパケットに関連付けられたソースローカル識別子(LID)およびデスティネーションLIDに基づいて乱数を生成することができる。さらに、ステップ503において、ルータは、モジュロベースのハッシュを用いて、ルータの出力ルータポートのうち1つのポートを選択することができる。
【0052】
サブネット間ファットツリールーティング(Inter-Subnet Fat-Tree Routing:ISFR)
発明の実施形態によれば、サブネット間ファットツリールーティング(ISFR)ルーティングアルゴリズムなどの最適化ルーティング法は、ファットツリートポロジーを有するサブネット間でルーティングするために使用されることができる。
【0053】
最適化ルーティング法は、ローカルサブネットに接続されるすべての利用可能なルータ間のラウンドロビンパス分散の第1段階、各ルータに接続された下流側へのスイッチを照会し、どのスイッチが特定のデスティネーションへの主要なパスとして作用するかを学習する第2段階、および第1段階と第2段階とから得られる情報を用いてルーティングテーブルを構築する第3段階などの3つの段階を含むことができる。
【0054】
図6は、発明の実施形態に従う、ネットワーク環境600におけるルータにおいてサブネット間ファットツリールーティング(ISFR)アルゴリズムをサポートする例示を示す。
図6に示されるように、ルータ601は、1つ以上のエンドノード621−624に接続するサブネット610にパケット650をルーティングすることを担う。サブネット610は、ファットツリートポロジー中のSW611−616などの1つ以上のスイッチを含むことができる。
【0055】
ルータ601は、特定のデスティネーションへのパケットを、関連付けられたGIDに相応してルーティングするためにはそのポートのうちどれを使用することができるかを学習することができる。たとえば、ルータ601は、サブネット610中のサブネットマネージャ(SM)620からポートマッピング630を受信することができる。ポートマッピング630は、ルータ601が担うサブネット610から生じるパケットのルーティング先であるデスティネーションのリストを含むことができる。
【0056】
さらに、ルータ601は、パケット650をルーティングする際に最大性能を実現するためにはいずれの下流側出力ポートを使用するべきであるかをスイッチ611−612から学習することができる。たとえば、ルータ601は、サブネット610における宛先ノードへの主要なパスについて、サブネット610におけるスイッチ611−612に照会することができる。それらのスイッチのうちの1つのみが所望のデスティネーションへの専用の主要なパスを有し得ることから、照会によって、パケット650についての主要なパス(スイッチ611またはスイッチ612のいずれか)をルータが選択することが可能となる。
【0057】
次いでルータ601は、上で得られた情報を用いてルーティングテーブル640を構築することができる。たとえば、ローカルOpenSMルーティングは、スイッチ611またはスイッチ612のいずれかのルーティングテーブルに宛先ノードへの主要なパスをマークすることができる。
【0058】
以下のアルゴリズム2は、ルータ上の出口ポートを選択するためのルータファームウェアに実装することができる。
【0060】
上記のISFRアルゴリズムは、表1のGID‐ルータポートマッピングを含む、あらかじめ定義されたファイル形式を使用することができる。ISSRアルゴリズムのように、ISFRアルゴリズムはルータ装置において実装することができる。さらに、ISFRアルゴリズムは、ファットツリー上で、かつファットツリールーティングがあらゆるサブネットにおいてローカルに実行している状態でのみ機能し得る。また、必要であれば、ISFRアルゴリズムはISSRに戻ることができる。
【0061】
図6に示されるように、ルータ601は、適切なファットツリートポロジーの上に位置するものとして表わすことができる。したがって、照会が行なわれた後、ルータ601は、特定のサブネットに位置する各デスティネーションについて下流側への方向にポートごとに1つのパスを有することができる。オーバーサブスクライブファットツリーの場合、パスの数はオーバーサブスクリプション比率と同等することができる。
【0062】
加えて、サブネット610に接続された2つ以上のルータがある場合がある。ISFRルーティングのプロパティは、すべてのスパイン(トップ)ルータがスイッチに置換された場合、(ルータによる)ISFRルーティングのための、および(スイッチによる)ローカルルーティングのためのルーティングテーブルが同じとなるようなものである。
【0063】
発明の実施形態によれば、ISFRルーティングアルゴリズムは、不透明なルータによって接続される異なるサブネット中のサブネットマネージャ(SM)間で確立された通信に基づいて実装することができる。たとえば、SMがそれを介して通信することができるルータにインターフェイスを設けることができ、付近のサブネットに位置する2つのSM間でハンドシェーキングを実施することができる。
【0064】
図7〜
図9は、発明の実施形態に従う、異なるトポロジーによるネットワーク環境におけるルーティングを例示する。トポロジーの各々は、多段ファットツリー、たとえばルータが上に置かれた3段ファットツリーとして表わすことができる。たとえば、3段ファットツリーは、3つのルーティング/スイッチ段階および1つのノード段階を有することができ、各サブネット(2段ファットツリー)はブランチとして出現する。さらに、ISFRルーティングアルゴリズムに基づいて、より大きなトポロジーをサポートすることもできる。
【0065】
発明の実施形態によれば、各サブネットが、いずれのトランジットサブネットも介在しない状態で他のサブネットに直接取付けることができるファットツリートポロジーであるように、ネットワーク環境を構成することができる。
【0066】
たとえば、
図7において、システム700は、6つのルータ710を用いて、2つのファットツリーサブネット、たとえばサブネットA−B 701−702を接続することができる。
図8において、システム800は、6つのルータ810を用いて、3つのファットツリーサブネット、たとえばサブネットA−C 801−803を接続することができる。
図9では、システム900は18個のルータ910を用いて648ポートの3段ファットツリーを作成して、6つのファットツリーサブネット901−906を接続することができる。
【0067】
図10は、発明の実施形態に従う、ネットワーク環境におけるルータにおいてサブネット間ファットツリールーティング(ISFR)アルゴリズムをサポートするための典型的なフローチャートを例示する。
図10に示されるように、ステップ1001において、ルータは、当該ルータが担う1つ以上のパケットのルーティング先であるデスティネーションのリストを受信することができ、ルータは、ネットワーク環境において少なくとも1つのサブネットに接続している。次いで、ステップ1002において、ルータは、1つ以上のパケットをルーティングするためにルータのいずれの下流側出力ポートを使用することができるかについての情報を、少なくとも1つのサブネットにおける1つ以上のスイッチから取得することができる。さらに、ステップ1003において、ルータは、取得された情報に基づいてルーティングテーブルを構築することができる。
【0068】
図11は、発明の実施形態の特徴を示すための機能ブロック図を例示する。本特徴は、ネットワーク環境において別個のサブネット間のトラフィックをルーティングするためのシステム1100として実装され得る。システム1100は、1つ以上のマイクロプロセッサ、および1つ以上のマイクロプロセッサ上で動くルータ1110を含む。ルータ1110は、当該ルータが担う1つ以上のパケットのルーティング先であるデスティネーションのリストを受信ユニット1120から受信し、1つ以上のパケットをルーティングするためにルータのいずれの下流側出力ポートを使用することができるかについての、少なくとも1つのサブネットにおける1つ以上のスイッチからの情報を取得ユニット1130から取得し、取得された情報に基づいてルーティングテーブルを構築ユニット1140上に構築するように動作する。
【0069】
一実施形態によれば、1つ以上のマイクロプロセッサ上のネットワーク環境においてディストリクトサブネット間のトラフィックをルーティングするためのシステムが開示される。システムは、ルータにおいて、当該ルータが担う1つ以上のパケットのルーティング先であるデスティネーションのリストを受信するための手段を備え、ルータは、ネットワーク環境において少なくとも1つのサブネットに接続している。システムは、1つ以上のパケットをルーティングするためにルータのいずれの下流側出力ポートを使用することができるかについての情報を、少なくとも1つのサブネットにおける1つ以上のスイッチから取得するための手段を備える。システムは、取得された情報に基づいてルーティングテーブルを構築するための手段を備える。
【0070】
好ましくは、システムは、少なくとも1つのサブネットに接続されるすべての利用可能なルータ間でラウンドロビンパス分散を行なうための手段を備える。
【0071】
好ましくは、システムは、各ルータに接続されているスイッチに照会して、いずれのスイッチが特定のデスティネーションへの主要なパスとして作用するかについて学習するための手段を備える。
【0072】
好ましくは、システムは、最大性能のためにルータのいずれの下流側出力ポートを使用することができるかを取得された情報に基づいて判定するための手段を備える。
【0073】
好ましくは、システムは、ルータによって接続されたサブネットを異なるネットワークトポロジーで構成することを可能にするための手段を備える。
【0074】
好ましくは、システムは、1つ以上の付加的なルータを用いて、ネットワーク環境における1つ以上の近隣のサブネットに少なくとも1つのサブネットを接続するための手段を備える。
【0075】
好ましくは、システムは、接続されるサブネットが異なるトポロジーであることを可能にするための手段を備える。
【0076】
好ましくは、システムは、接続される各サブネットが多段ファットツリーにおけるブランチであることを可能にするための手段を備える。
【0077】
好ましくは、システムは、少なくとも1つのサブネットがファットツリートポロジーで構成されることを可能にするための手段を備える。
【0078】
好ましくは、システムは、少なくとも1つのサブネットをルーティングするためにファットツリールーティングアルゴリズムを使用するための手段を備える。
【0079】
一実施形態によれば、ネットワーク環境において別個のサブネット間のトラフィックをルーティングするためのシステムが開示される。システムはルータを含み、上記ルータは、当該ルータが担う1つ以上のパケットのルーティング先であるデスティネーションのリストを受信するように構成され、ルータは、ネットワーク環境において少なくとも1つのサブネットに接続している。ルータは、1つ以上のパケットをルーティングするためにルータのいずれの下流側出力ポートを使用することができるかについての情報を、少なくとも1つのサブネットにおける1つ以上のスイッチから取得するように構成され、かつ取得された情報に基づいてルーティングテーブルを構築するようにも構成される。
【0080】
好ましくは、システムは、少なくとも1つのサブネットに接続されるすべての利用可能なルータ間でラウンドロビンパス分散を行なうことができる。
【0081】
好ましくは、システムは、上記ルータに接続されているスイッチに照会して、いずれのスイッチが特定のデスティネーションへの主要なパスとして作用することができるかについて学習するように上記ルータを動作させることができる。
【0082】
好ましくは、システムは、取得された情報に基づいて、最大性能のためにルータのいずれの下流側出力ポートを使用することができるかを判定するように上記ルータを動作させることができる。
【0083】
好ましくは、システムは、1つ以上のデスティネーショングローバル識別子(GID)と1つ以上のルータポートとの間のポートマッピングをサブネットマネージャから受信するように上記ルータを動作させることができる。
【0084】
好ましくは、システムは、1つ以上の付加的なルータを用いて、ネットワーク環境における1つ以上の近隣のサブネットに少なくとも1つのサブネットを接続させることができる。
【0085】
好ましくは、システムは、接続されるサブネットを異なるトポロジーにさせることができる。
【0086】
好ましくは、システムは、接続される各サブネットを多段ファットツリーにおけるブランチにすることができる。
【0087】
好ましくは、システムは、少なくとも1つのサブネットをファットツリートポロジーで構成させ、少なくとも1つのサブネットをルーティングするためにファットツリールーティングアルゴリズムを使用させることができる。
【0088】
本発明は、本開示の教示に従ってプログラミングされる1つ以上のプロセッサ、メモリ、および/またはコンピュータ読取可能な記録媒体を含む、1つ以上の従来の汎用もしくは特化デジタルコンピュータ、コンピューティングデバイス、マシン、またはマイクロプロセッサを用いて好都合に実現されてもよい。適切なソフトウェアコーディングは、ソフトウェア技術の当業者には明らかであるように、本開示の教示に基づいて、熟練したプログラマーによって容易に作成されることができる。
【0089】
いくつかの実施形態では、本発明は、本発明のプロセスのうち任意のものを行なうようにコンピュータをプログラミングするのに用いることができる命令をその上に/その中に記憶した記録媒体またはコンピュータ読取可能な媒体であるコンピュータプログラム製品を含む。記録媒体は、フロッピー(登録商標)ディスク、光学ディスク、DVD、CD−ROM、マイクロドライブ、および磁気光学ディスクを含む任意の種類のディスク、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、フラッシュメモリデバイス、磁気もしくは光学カード、(分子メモリICを含む)ナノシステム、または命令および/もしくはデータを記憶するのに好適な任意の種類の媒体もしくはデバイスを含むことができるが、これらに限定されない。
【0090】
本発明の以上の説明は、例示および説明の目的のために与えられた。網羅的であることまたは開示される正確な形態に発明を限定することを意図するものではない。当業者には多数の修正例および変形例が明らかである。発明の原則およびその実際的な適用例を最も良く説明し、これによりさまざまな実施形態について、企図される特定の用途に適するさまざまな修正例とともに当業者が発明を理解できるようにするために、実施形態を選択し、説明した。発明の範囲は、以下の請求項およびそれらの均等物によって規定されることが意図される。