以下の規格は、本出願において参照され、引用により本明細書に組み込まれている:1)以前にはIEEE 802.3adタスクフォースによって2000年3月に追加されたIEEE 802.3規格の第43項であった、現在は2008年11月3日にIEEE 802.1AX−2008に組み込まれているとおりのものであるリンクアグリゲーション制御プロトコル(LACP)、および2)IEEE規格802.1Q、仮想ブリッジローカルエリアネットワーク、2003年版。
図1aは、仮想ファブリックリンク(VFL)120と称される制御およびアドレッシング情報を伝達するために専用リンクアグリゲートグループによって動作可能に結合された複数のネットワークノード110を備える仮想シャーシシステム100の一実施形態を示している。VFL120およびその動作は、引用により本明細書に組み込まれ、すべての目的に関して本米国特許出願の一部を成す、2011年1月20日に出願された係属中の米国特許出願第13/010,168号、名称「SYSTEM AND METHOD FOR MULTI−CHASSIS LINK AGGREGATION」においてより詳しく説明されている。VFL120は、トラフィック転送、MACアドレッシング、マルチキャストフロー、アドレス解決プロトコル(ARP)テーブル、レイヤ2制御プロトコル(例えば、スパニングツリー、イーサネットリング保護、論理リンク検出プロトコル)、ルーティングプロトコル(例えば、RIP、OSPF、BGP)、ならびにネットワークノードおよび外部リンクのステータスに関係する情報の交換のためネットワークノード110間の接続を構成する。
一実施形態において、複数のネットワークノード110は、統合された管理機能を持つ単一の仮想ネットワークノードとして動作する。マスターネットワークノード、例えば、ネットワークノード110aが、選択され、マスターネットワークノード110のローカルMACアドレスが、他のネットワークノード110によって仮想シャーシシステム100のマスターMACアドレスとして採用される。マスターMACアドレスは、仮想シャーシシステム100内のネットワークノード110をアドレッシングするために外部ノード112によって利用される。したがって、ネットワークノード110は、外部ノード112に対して透過的に動作し、外部ノード112によって単一の論理デバイスとして扱われる。
外部ノード112は、単一のトランクもしくはリンク、リンクアグリゲートグループ(LAG)116、または仮想シャーシリンクアグリゲートグループ(VC−LAG)114を使用して仮想シャーシシステム100内の1つまたは複数のネットワークノード110に結合するように動作可能である。回復力を高め、単一障害点、さらには2つの障害点を取り除くために、VC−LAG114は、外部ノードを仮想シャーシシステム100内の2つまたはそれ以上のネットワークノード110に結合するように動作可能である。外部ノードは、トラフィックをVC−LAG114の利用可能なリンクにまたがって分散させるためにロードバランシング技術を使用することができる。例えば、VC−LAG114の物理リンクのうちの1つは、帯域幅をより効果的に使用できるようにするロードバランシングアルゴリズム(通常は送信元および送信先のインターネットプロトコル(IP)または媒体アクセス制御(MAC)アドレス情報に作用するハッシュ関数を伴う)に基づきパケットを送信するため外部ノードによって選択される。
通常動作では、仮想シャーシシステム内のネットワークノード110は、広範なレイヤ2およびレイヤ3のプロトコルによるシステム識別のためにマスターMACアドレスを共有する。例えば、スパニングツリープロトコルおよびLACPプロトコルは、マスターMACアドレスを仮想シャーシシステム110の識別子として使用する。インターネットプロトコル(IP)ルーティングでも、マスターMACアドレスを利用して、ネットワーク内の外部ネットワーク要素に対して仮想シャーシシステム100を識別する、例えば、ピアがマスターMACアドレスを、仮想シャーシシステム100を宛先とするパケットに対するイーサネット送信先アドレスとして使用する。したがって、仮想シャーシシステム100内のネットワークノード110は、外部ネットワークノード112によって単一の論理ノードとしてみなされる。それに加えて、仮想シャーシシステム100内のネットワークノード110は、統合されたアドミニストレーション、オペレーション、およびメンテナンスマネジメントシステムにより単一の論理ノードとして管理される。
仮想シャーシシステム100内のネットワークノード110は、外部ノード112によって単一の論理デバイスとして扱われるので、外部ノード112は、VC−LAC114のすべてのリンク上でトラフィックをアクティブに転送するように動作可能である。この機能は、キャリアグレード検出およびエッジアップリンク障害さらにはネットワークノード110の障害までのコンバージェンス時間を円滑にしながら外部ノードとネットワークノードとの間のスパニングツリープロトコルを必要とすることなくネットワークノード110への外部ノード112のマルチホーミングを可能にする。仮想シャーシシステム100へのVC−LAC114のすべてのアップリンクのアクティブ転送モードの別の利点は、VC−LAC114のリンクの帯域幅の使用効率が高まることである。
仮想シャーシシステム100内で、ネットワークノード110は、シャーシ識別子またはシャーシIDと称されるグローバルに一意的な識別子を割り当てられる。ネットワークノード110は、内部VFL識別子(VFID)を仮想シャーシシステム100内の構成されたVFL120のそれぞれに割り当てる。VFLに対するVFIDは、VFL120の内部識別および構成のために利用されるので、ネットワークノード110は、同じ、または異なるVFIDを、別のネットワークノード110によって割り当てられるようにVFL120に割り当てることができる。VFL120は、2011年1月20日に出願された米国特許出願第13/010,168号、名称「SYSTEM AND METHOD FOR MULTI−CHASSIS LINK AGGREGATION」でさらに詳しく説明されているように、トラフィック転送、MACアドレッシング、マルチキャストフロー、アドレス解決プロトコル(ARP)テーブル、レイヤ2制御プロトコル(例えば、スパニングツリー、イーサネットリング保護、論理リンク検出プロトコル)、ルーティングプロトコル(例えば、RIP、OSPF、BGP)に関する情報をネットワークノード110の間で交換するための接続を提供する。一実施形態において、ネットワークノード110間の媒体アクセス制御(MAC)アドレステーブルなどのレイヤ2アドレステーブルの同期化は、VFL120上のレイヤ2パケットフローによって、さらには定期的なキープアライブメカニズムによって駆動され、これにより、所定のMACアドレスを所有するネットワークノード110は、送信元アドレスなどのMACアドレスを運ぶ特定のパケットのフラッディングを引き起こす。同期化メカニズムは、また、ネットワークノード110またはそのコンポーネントのうちのいくつかが故障した場合に対処する標準的なMACフラッシングメカニズムを実装する必要もある。MACアドレス送信元学習が、未知の送信先MACアドレスのフラッディングを通じてVFL120上で有効化される。送信元学習において、ネットワークノード110は、送信元シャーシID、送信元ネットワークインターフェース識別子、および送信元ポート識別子情報などの、送信元MACアドレスおよび関連するハードウェアデバイス情報を含むプリペンデッドヘッダーを備えるパケットをVFL120を介して交換する。ネットワークノード110は、この情報を使用して、最低限のメッセージングベースMACテーブル同期化で同期化されたMACアドレステーブルを維持する。同期化されたMACアドレステーブルを利用することで、ネットワークノード110は、仮想シャーシシステム100内のネットワークノード110の間でパケットを処理し、転送するように動作可能である。
図1aは、部分的メッシュネットワークトポロジーにおいてネットワークノード110が結合される状況を示している。しかし、仮想シャーシシステム100内のネットワークノード110は、仮想シャーシシステム100の動作に影響を及ぼすことなく複数の種類のネットワークトポロジーのうちのどれかにおいて結合され得る。図1bは、複数のネットワークノード110がVFL120によって結合されたリングネットワークトポロジーで構成されている仮想シャーシシステム100を示している。図1cは、複数のネットワークノード110がハブアンドスポーク型またはスター型ネットワークトポロジーで構成されている仮想シャーシシステム100を示している。線状、ツリー型、完全メッシュ、ハイブリッドなどの、図示されていない他のネットワークトポロジーも、仮想シャーシシステム100によってサポートされる。複数の異なる種類のネットワークトポロジーをサポートするために、仮想シャーシシステム100内のネットワークノード110は、ネットワークトポロジー発見プロセスを実行するように動作可能である。
図2は、仮想シャーシシステム100におけるネットワークトポロジー発見プロセス130の一実施形態の論理フロー図を示している。このプロセスは、起動時に、リブート時に、ネットワークのステータス変化の指示があると、または所定の時間的周期で、仮想シャーシシステム100内のアクティブネットワークノード110によって実行される。ステップ132において、ネットワークノード110は、それが仮想シャーシモードで動作していることを検出する。例えば、ネットワークノード110の1つまたは複数のパラメータは、仮想シャーシ動作モードを指示するように構成される。ネットワークノード110は、それらのパラメータが仮想シャーシモード動作(例えば、スタンドアロンモードまたはマルチシャーシモードではなく)を指示していることを、検出する。次いで、ネットワークノード110は、ステップ134で、仮想シャーシシステム100内の他のネットワークノード110を発見し、トポロジーおよび構成情報を交換するために1つまたは複数の制御プロトコルを実行する。ネットワークノード110は、この情報を使用して、仮想シャーシシステム100のトポロジーデータベースを構築する。トポロジーデータベースは:他のネットワークノード110に対する識別情報(例えば、ローカルMACアドレス、シャーシ識別子)、アクティブVFL120(または他のアクティブスイッチ間リンク)をホストするネットワークインターフェースに対する識別情報、VFL120およびネットワークノード110上のその関連するメンバーポートに対する識別情報を含む。ネットワークノード110は、こうして、ネットワークノード110間のアクティブ接続および仮想シャーシシステム100内の他のネットワークノード110の構成情報を学習する。以下の表1は、発見フェーズの後の、この例では例えばシャーシID=1を有する、ネットワークノード110aに対するトポロジーデータベースの一例である。表1は、トポロジーデータベース内に格納されている例示的な情報を含むが、図示されていない他の情報およびデータも、トポロジーデータベースに含まれ得る。それに加えて、トポロジーデータベースは、別のデータベースもしくはテーブル内に格納されるか、またはネットワークノード110内の他のテーブルまたはデータベースと組み合わされ得る。
図2のステップ136において、マスターネットワークノードは、仮想シャーシシステム100に対する管理および他のタスクを実行するように選択される。次いで、マスターネットワークノードのローカルMACアドレスが、他のネットワークノード110によって採用される。以下の表2は、シャーシID=1である選択されたマスターネットワークノード110に対するトポロジーデータベースの一例である。表2を見るとわかるように、シャーシID=1であるネットワークノードは、マスターの役割を有するものとして指示され、他のノードは、トポロジーデータベース内のスレーブの役割を有するものとして指示される。
マスターネットワークノード110の選択は、シャーシ優先度、アップタイム、シャーシID、およびシャーシMACアドレスを含むパラメータの優先順位付きされたリストに基づく。アップタイムのパラメータは、より長い期間にわたって動作しているネットワークノード110に優先付けする。シャーシ優先度のパラメータは、シャーシIDまたはアップタイムに関係なくマスターネットワークノード110のユーザープリファレンスを定義するユーザー構成優先度である。さまざまなパラメータを使用することで、マスターネットワークノード110の選択の柔軟性を高める。トポロジーデータベースに示されているシャーシグループパラメータは、仮想シャーシシステム100を識別する。異なるシャーシグループ識別を有する1つまたは複数の追加の仮想シャーシシステム100も、ネットワーク内で動作可能であるものとしてよい。トポロジーデータベースは、ネットワークノード110内のアクティブまたはプライマリ制御マネージャモジュール(CMM)、およびネットワークノード110のシャーシタイプを識別する。
ネットワークトポロジー発見プロセス130のステップ138において、ネットワークノード110は、1つまたは複数のプロトコルを実行して、仮想シャーシシステム100内の接続およびネットワークノード110の状態もしくはステータスを監視する。ネットワークノード110の現在の状態は、トポロジーデータベース内に維持される。仮想シャーシシステム100内のネットワークノード110における検出されたステータスの変化は、ルーティングの変更、マスターノードの変更、などを開始し得る。ネットワークノード110のトポロジー自己発見および監視を通じて、仮想シャーシシステム100は、最低限度の事前構成および介入で複数の異なる種類のネットワークトポロジーをサポートするように動作可能である。
図3は、マスターネットワークノード110の選択の後、仮想シャーシシステム100内のネットワークノード110におけるトポロジーデータベース144の一例を示している。この例では、ネットワークノード110aは、マスターネットワークノードとして採用され、ネットワークノード110bおよび110cはスレーブノードである。ネットワークノード110aのローカルMACアドレス(例えば、マスターMACアドレス=A)は、ネットワークノード110a−cによって仮想シャーシMACアドレスとして採用される。それに加えて、マスターMACアドレス(MAC=A)は、管理アプリケーションのアプリケーションMACアドレスとして採用される。
仮想シャーシシステム100は、ネットワークノード110に、単一のモジュール、スタッカブル、またはマルチスロットシャーシベースのアーキテクチャなどの、1つまたは複数の異なる種類のノードアーキテクチャを含めるようにも動作可能である。図4は、異なる種類のノードアーキテクチャを使用する仮想シャーシシステム100におけるネットワークノード110の一実施形態の概略ブロック図を示している。この例では、ネットワークノード110aは、複数のネットワークインターフェースモジュール152a−nを備えるマルチスロットシャーシベースのアーキテクチャを有する。一般に、マルチスロットシャーシベースのアーキテクチャは、回線カードまたはポートモジュールなどの、1つまたは複数のネットワークインターフェースモジュール(NIM)152a−nと、1つのエンクロージャ、制御マネージャモジュール(CMM)150a−b、および共通電源を共有する。ネットワークインターフェースモジュール152nは、キューイングモジュール212およびスイッチングモジュール210を備え、シャーシのバックプレーンに一体化されたファブリックスイッチ214によって接続される。
この例におけるネットワークノード110bは、スタッカブルノードアーキテクチャを有し、バックプレーン接続142によって結合された複数のネットワーク要素140a−nを備える。それぞれのネットワーク要素140a−nは、スタンドアロンノードとして動作可能であり、それ専用のエンクロージャ、制御マネージャモジュール(CMM)150、スイッチングモジュール210、キューイングモジュール212、および電源を備える。いくつかのスタックアーキテクチャでは、1つのネットワーク要素(この例におけるネットワーク要素140a)は、管理を目的としてスタックの主またはマスターユニットとして指定される。
ネットワークノード110cは、単一のスタッカブル要素140などの単一モジュールノードアーキテクチャ、または代替的に、単一のネットワークインターフェースモジュール152を備えるマルチスロットシャーシベースのアーキテクチャを有する。
ネットワークノード110a−cは、図1a−cの仮想シャーシシステム100内のネットワーク要素110のうちの1つまたは複数に対応する。例えば、仮想シャーシシステム100は、マルチスロットシャーシベースのノードアーキテクチャのみを有するネットワークノード110を備えるか、またはスタッカブルノードアーキテクチャのみを有するネットワークノード110を備えるか、またはマルチスロットシャーシベースのアーキテクチャ、スタッカブルノードアーキテクチャ、および単一モジュールノードアーキテクチャなどの、2つまたはそれ以上の種類のノードアーキテクチャを有するネットワークノード110の組み合わせを備えるように動作可能である。図示されていないけれども、仮想シャーシシステム100は、他の種類のノードアーキテクチャおよび構成からなるネットワークノード110を備えることもできる。
ネットワークノード110aおよびネットワークノード110bは、VFL120aによって動作可能に結合される。ネットワークノード110aおよび110bは、ネットワークノード110aに対するVFID=3、および図3に示されているようなネットワークノード110bによるVFID=0などの、内部VFL識別子(VFID)を有するVFL120aを指定する。ネットワークノード110aおよびネットワークノード110cは、VFL120bによって動作可能に結合される。ネットワークノード110aおよび110cは、ネットワークノード110aに対するVFID=2、および図3に示されているようなネットワークノード110cによるVFID=1などの、内部VFL識別子(VFID)を有するVFL120bを指定する。それに加えて、ネットワークノード110a−cは、図1a−cに示されているように追加のVFL120によって1つまたは複数の他のネットワークノード110に結合されるように動作可能でもある。ネットワークノード110aと110bとの間のVFL120aは、仮想シャーシシステム100内のさまざまなネットワークノード110の間のVFL120の動作および構成の一般化として以下で説明されている。
ネットワークノード110aとネットワークノード110bとの間のVFL120aは、1つまたは複数のスイッチングモジュール210における1つまたは複数のVFLメンバーポートに動作可能に結合される。1つまたは複数のポート、リンクまたはモジュールに障害が発生した場合に冗長性を利用できるようにするため、VFL120aは、ネットワークノード110aおよび110bの異なるスイッチングモジュール210の間のLACPまたは類似のアグリゲートプロトコルを使用して生成される複数のアグリゲートリンクを含むように動作可能である。例えば、図4では、VFL120aは、ネットワークノード110aのNIM152aとネットワークノード110bのスタッカブルネットワーク要素140aとの間の物理リンクの第1のサブセットA、およびネットワークノード110aのNIM152bとネットワークノード110bのスタッカブルネットワーク要素140bとの間の物理リンクの第2のサブセットBを備える。
ネットワークノード110は、仮想シャーシシステム100内で一意的なシャーシ識別子を割り当てられる。それぞれのネットワークノード110に対するシャーシIDは、一意的かつグローバルであり、トポロジー発見を通じて、ネットワークノード110は、仮想シャーシシステム100内のピアネットワークノード110のシャーシIDを認識する。それに加えて、ネットワークノード110内のスイッチングモジュール210およびポートインターフェースなどのさまざまなコンポーネントに対する一意的なハードウェアデバイス識別子またはモジュール識別子(MID)が生成され、これにより、ローカルおよびリモートのオブジェクトの管理が可能になる。一実施形態において、スイッチングモジュール210に対するハードウェアデバイス識別子MIDは、仮想シャーシシステム内でグローバルな意味を有するが、キューイングモジュール212などの他のコンポーネントに対するMIDは、ローカルな意味しか有し得ない。例えば、スイッチングモジュール210に割り当てられたハードウェアデバイス識別子は、他のネットワークノード110によって知られるが、他のデバイスに対するハードウェアデバイス識別子は、ローカルネットワークノード110に制限され、他のネットワークノード110に対しては意味がない。例えば、スイッチングモジュール210のポートインターフェースは、シャーシID、スイッチングモジュールID、およびポートインターフェースIDを含むグローバルな一意的ハードウェアデバイス識別子を割り当てられる。一実施形態において、仮想シャーシシステム内のネットワークノード110は、プリペンデッドヘッダーモードで動作し、VFL120を介してデータおよび制御パケットを交換する。
図5は、プリペンデッドヘッダーモードで動作するネットワークインターフェースモジュール(NIM)152の一実施形態の概略ブロック図をより詳細に示している。ネットワークインターフェースモジュール152が図示されているけれども、スタッカブルネットワーク要素140または単一のモジュールネットワーク要素は、プリペンデッドヘッダーモードで動作するために類似の機能を実行するように動作可能である。スイッチングモジュール210は、仮想シャーシシステム100から外部ノード112に接続されている複数の外部ポート240を備える。外部ポート240の1つまたは複数は、VC−LAG114、LAG116、単一のトランクまたはその他のトランクグループ、固定リンクなどに対するメンバーポートを備えることができる。外部ポート240は、銅線ポート(CAT−5E/CAT−6)、マルチモードファイバーポート(SX)、またはシングルモードファイバーポート(LX)などの、同じ物理インターフェースタイプを有するものとしてよい。別の実施形態において、外部ポート240は、1つまたは複数の異なる物理インターフェースタイプを有することができる。
外部ポート240は、スイッチングモジュール210に関連付けられているgportおよびdport値などの、外部ポートインターフェース識別子(PortID)、例えば、デバイスポート値を割り当てられる。一実施形態において、ネットワークノード110のシャーシID、スイッチングモジュール210のMID、および外部ポートインターフェース識別子(PortID)は、仮想シャーシシステム100内のネットワークノード110における物理外部ポートインターフェース240のグローバルな一意的識別子として使用される。別の実施形態において、グローバルに一意的なモジュール識別子(MID)は、シャーシ識別子に基づき仮想シャーシシステム内のネットワークノードのスイッチングモジュール210に割り当てられる。例えば、スイッチングMID0−31は、シャーシID=1に割り当てられ、スイッチングMID32−63は、シャーシID=2に割り当てられる、などである。この場合、グローバルに一意的なスイッチングMIDおよび外部ポート識別子(PortID)は、仮想シャーシシステム100内のネットワークノード110における物理外部ポートインターフェース240のグローバルな一意的識別子として使用される。
パケットが、外部ポート240上で受信されると、スイッチングモジュール210は、そのパケットを、パケットの送信元および/または送信先MACアドレスに関連付けられているハードウェアデバイス情報(HDI)を含むようにプリペンデッドヘッダーを追加する(か、または他の何らかの形でパケットヘッダーを修正する)プリペンデッドパケットヘッダーインターフェース(PPHI)246に転送する。一実施形態において、プリペンデッドヘッダーは、パケット優先度およびロードバランス識別子などの他の情報を含み得る。パケットのMACアドレスに関連付けられているHDI情報を取得するために、PPHIは、MAC/HDI転送テーブル250でルックアッププロセスを実行する。アドレステーブルメモリ248に記憶されるMAC/HDI転送テーブル250は、MACアドレスおよび関連するハードウェアデバイス情報のリストを含む。ハードウェアデバイス情報は、ネットワークノード110、スイッチングモジュール210、および/またはパケットをルーティングするためのポートインターフェース240を一意的に識別する。ハードウェアデバイス情報は、例えば、シャーシID、スイッチングモジュール210のMID、および/または送信先MACアドレスに関連付けられているポート240のポートインターフェースIDを含む。MAC/HDI転送テーブル250は、送信元トランクマップ(source trunk map)、トランクビットマップテーブル(trunk bitmap table)、トランクグループテーブル(trunk group tables)、VLANマッピングテーブル、などの、1つまたは複数のテーブルを含みうる。一実施形態において、MAC/HDI転送テーブル250またはその一部は、NIM152のキューイングモジュールまたは他のモジュールにも配置され得る。
トポロジーデータベース144に基づき、VFLルーティング構成テーブル254がネットワークノード110側で生成され、ユニキャストトラフィックのルーティングを決定する。VFLルーティング構成テーブル254は、シャーシIDおよび関連付けられているVFL ID(VFID)を含む。シャーシIDに関連付けられているVFIDは、送信先シャーシIDによって識別されたネットワークノード110にパケットをルーティングするために仮想シャーシシステム100内のVFL120を識別する。別の実施形態において、グローバルに一意的なモジュール識別子(MID)が、仮想シャーシシステム100内のネットワークノード110のスイッチングモジュール210に割り当てられた場合、VFLルーティング構成テーブル254は、グローバルに一意的なMIDおよび関連付けられているVFL ID(VFID)を含む。一実施形態において、VFLルーティング構成テーブル254は、最短経路アルゴリズム、トラフィックベースのアルゴリズム、または他の種類のルーティングアルゴリズムを使用して生成される。図1aに示されている仮想シャーシシステム100に対するVFLルーティング構成テーブル254の一例が、以下の表3に示されている。
MAC/HDI転送テーブル250およびVFLルーティングテーブル254は、アドレステーブルメモリ248内の独立したテーブルとして示されているけれども、これらのテーブルは組み合わされるか、またはデータがテーブルの1つから他のテーブルに含められるか、またはテーブルは1つまたは複数の他のテーブルに分けて配置され得る。
一実施形態において、パケットのプリペンデッドヘッダー内のハードウェアデバイス情報HDIは、表3に示されているように、送信先シャーシIDに関連付けられているVFLポート252に対する送信VFIDを含む。プリペンデッドヘッダーは、ポートインターフェースID、スイッチングモジュール210のMID、およびシャーシIDなどの、パケットを受信する送信元ポートに関連付けられているハードウェアデバイス情報HDIも含む。VLAN ID、パケットタイプ(マルチキャスト、ユニキャスト、ブロードキャスト)、パケット優先度、およびロードバランス識別子などの追加情報も、一実施形態におけるプリペンデッドヘッダーに追加される。
次いで、プリペンデッドヘッダーを持つパケットは、ファブリックスイッチ214を介してのルーティングのためにキューイングモジュール212に送信される。VFLルーティング構成テーブル254に基づき、キューイングモジュール212は、プリペンデッドヘッダーを持つパケットを、送信VFL120に接続されているスイッチングモジュール210にルーティングする。
キューイングモジュール212は、パケットバッファ260、トラフィックおよびバッファ管理を行うためのキュー管理部262、ならびにグローバルHDIアドレステーブル264を備える。グローバルHDIアドレステーブル264は、送信VFL IDを他のNIM152のうちの1つまたは複数におけるキューイングモジュール212内の適切なキューにマッピングする。例えば、キューイングモジュール212は、送信VFL120を介して送信するためにVFLポートインターフェース252のうちの1つまたは複数に対する適切な出口キューにパケットを切り替える。一実施形態において、特定のVFLポートインターフェースに対応する出口キューの決定は、プリペンデッドヘッダー内のロードバランス識別子に動作可能に基づく。
スイッチングモジュール210およびキューイングモジュール212は、別の集積回路もしくはモジュールとして図示されているけれども、モジュールの1つまたは複数の機能もしくはコンポーネントは、他のモジュール上に含まれるか、または代替的モジュールに組み合わされるか、または他の何らかの方法で1つまたは複数の集積回路で実装され得る。
図6は、仮想シャーシシステム100におけるパケットのプリペンデッドヘッダーの一実施形態の概略ブロック図を示している。プリペンデッドヘッダー300は、送信元HDI302、送信先HDI304、VLAN ID306、パケットタイプ308、送信元MACアドレス310、および送信先MACアドレス312に対するフィールドを備える。一実施形態において、プリペンデッドヘッダーは、ロードバランス識別子314およびパケット優先度316も含み得る。送信先HDI304は、例えば、ポート識別子(デバイスポート(dport)および/またはグローバルポート値(GPV))、スイッチングモジュール210のMID、および/または送信先MACアドレスに関連付けられている送信先ネットワークノード110のシャーシIDを含む。送信元HDI302は、例えば、ポート識別子(デバイスポート(dport)および/またはグローバルポート値(GPV))、スイッチングモジュール210のMID、および/または送信元MACアドレスに関連付けられている送信元ネットワークノードのシャーシIDを含む。ロードバランス識別子314は、送信VFL120を介してパケットを送信するためのVFLメンバーポートを決定するためにキューイングモジュール212によって利用される。パケット優先度316は、特定の優先キューを決定するためにキューイングモジュール212によって利用される。
図7は、仮想シャーシシステム100におけるネットワークノード110aを通って別のネットワークノード110bに流れるパケットフローの一実施形態の概略ブロック図を示している。この例では、送信元MACアドレスが「MAC1」である仮想シャーシシステム100からの外部デバイス300は、送信先MACアドレスが「MAC2」であるパケットを送信する。この例ではシャーシID=1のネットワークノード110aは、例えば、スイッチングモジュール210n上でポートID=2、例えば、MID=31である、外部ポートインターフェース240でパケットを受信する。スイッチングモジュール210nは、送信先MACアドレスMAC2を抽出し、MAC/HDI転送テーブル250においてアドレステーブル探索を実行して送信先MACアドレスMAC2に関連付けられているハードウェアデバイス情報(HDI)を決定する。送信先HDIは、例えば、送信先シャーシIDおよびデバイスモジュール識別子(MID)ならびに送信先MACアドレスに関連付けられているポート識別子を含み得る。送信先HDIは、送信先MACアドレスに関連付けられている送信先デバイスへの経路内の1つまたは複数の他のネットワークノードもしくはハードウェアモジュールの識別子も含み得る。送信先MACアドレスが、別のネットワークノードに関連付けられている場合、例えば、送信先シャーシIDがローカルシャーシIDでない場合、スイッチングモジュール210は、送信先シャーシIDに関連付けられている送信VFL IDを決定する。送信VFL IDは、プリペンデッドヘッダー内の送信先HDIに追加され得る。例えば、図5では、VFLルーティングテーブル254は、送信先シャーシID=2がVFID=3を有するVFL120に関連付けられていることを示す。
スイッチングモジュール210nは、プリペンデッドヘッダー内に、発信元外部ポートインターフェースに関連付けられている送信元ハードウェアデバイス情報(HDI)、例えば、ポートID=2も含む。送信元HDIは、発信元スイッチングモジュール210のMID、送信元ポート識別子、送信元NIM152に対するMID、送信元シャーシIDなどの1つまたは複数のハードウェアデバイス識別子を含み得る。さらに、一実施形態では、プリペンデッドヘッダーは、パケット優先度、および元のパケットから取り出されたパラメータ(送信元MACアドレス、送信先MACアドレス、送信元IPアドレス、送信先IPアドレス)に基づき決定されるロードバランス識別子を含む。
プリペンデッドヘッダーを有するパケットはキューイングモジュール212nに送信され、次いで、このモジュールが、送信先HDIに基づきパケットを送信するためにネットワークノード110上のNIM152を決定する。送信先HDIが、ネットワークノード上のローカル外部ポートインターフェースを指示する場合(例えば、プリペンデッドヘッダーに収容される送信先MIDに基づき)、キューイングモジュールは、ローカル外部ポートインターフェースの対応するNIM152に送信するためにパケットを出口キューに入れる。図5に例示されている別の例では、送信先HDIが、パケットが仮想シャーシシステム100内の別のネットワークノード110にVFL120を介して送信される必要のあることを指示する場合、キューイングモジュールは、VFL IDから、パケット送信するための送信NIM152を決定する。この例では、キューイングモジュールは、VFID=3がNIM152aに動作可能に結合されることを決定し、ファブリックスイッチ214を介してプリペンデッドヘッダーを有するパケットをNIM152aに送信する。複数のスイッチングモジュール210が、送信VFL120に動作可能に結合されている場合、送信されるべきトラフィックは、ロードバランシング方法で複数のスイッチングモジュール210間に分散され得る。それに加えて、スイッチングモジュール210上のVFLメンバーポートの選択(高優先キュー、低優先度など)は、プリペンデッドヘッダーで運ばれるロードバランス識別子パラメータに動作可能に基づく。NIM152a上のモジュール212aが、プリペンデッドヘッダーを有するパケットを受信し、VFID=3を有するVFL120を介して送信するためパケットをキューに入れる。次いで、スイッチングモジュール210aは、送信元および/または送信先HDIを含むプリペンデッドヘッダーを有するパケットを、シャーシID=2を有するネットワークノード110bに、VFID=3を有するVFL120を介して送信する。
一実施形態において、スイッチングモジュール210aは、VFL120を介して送信する前にプリペンデッドヘッダーを改変することができる。例えば、スイッチングモジュール210aは、ローカルでの意味を有する送信先HDI(例えば、gport値またはローカルハードウェアデバイス識別子MID)を、グローバルでの意味を有するHDIに翻訳するか、またはプリペンデッドヘッダーから送信VFIDを取り除くことができる。
一実施形態において、NIM152におけるMAC/HDI転送テーブル250はポピュレートされ、仮想シャーシシステム100を流れるレイヤ2のパケットフローに応答して更新される。プリペンデッドヘッダーは、送信元MACアドレスおよび送信元HDI情報を含むので、NIMS152は、例えば、一実施形態における特定のスイッチングモジュール210で、MAC/HDI転送テーブル250にこの情報をポピュレートすることができる。プリペンデッドヘッダーモードで動作し、送信元MACアドレスおよび送信元HDIを有するレイヤ2のパケットをVFL120を介して交換することによって、スイッチングモジュール210は、仮想シャーシシステム100内のネットワークモジュール110の間のMAC/HDI転送テーブル250を同期化することができる。MAC/HDI転送テーブル250およびVFLルーティングテーブル254は、スイッチングモジュール210内に配置されていると記述されているけれども、これらのテーブルは、代替的に、またはそれに加えて、ネットワークノード110のキューイングモジュール212nまたは他のモジュール内に含まれ得る。別の実施形態において、CMM150(プライマリおよびセカンダリ)も、MAC/HDI転送テーブル250およびVFLルーティングテーブル254を含むことができる。
図8は、仮想シャーシシステム100内のネットワークノード110で動作可能な仮想シャーシマネージャアプリケーションもしくはモジュール400の一実施形態の概略ブロック図を示している。マルチスロットシャーシベースのノードアーキテクチャを備えるネットワークノード110の一実施形態において、仮想シャーシマネージャモジュール400は、ネットワークノード110の中央管理モジュール(CMM)150(VCM−CMM402と称される)とネットワークノードの指定されたネットワークインターフェースモジュール(NIM)152内の処理モジュール266(VCM−NIM404と称される)との間の機能の分散を含む。スタッカブルノードアーキテクチャにおいて、指定されたまたはマスタースタッカブルネットワーク要素140は、VCM−NIM404を運用する。指定されたNIM152またはスタッカブル要素140の使用は、VCMモジュール400の機能をCMM150にのみ集中させることを回避する。仮想シャーシマネージャモジュール400の機能性の分散の一例は、表4に示されている。
一実施形態において、VCM−CMM402は、仮想シャーシマネージャモジュール400と要素および/またはネットワークマネージャモジュール406との間のインターフェース、さらには、ネットワークノード110上で動作可能であるVCMモジュール400に登録された他のアプリケーション408へのインターフェースを備える。仮想シャーシマネージャモジュール400は、仮想シャーシモードで動作すべきときにそのことを登録されたアプリケーション408に通知する。より一般的に、仮想シャーシマネージャモジュール400は、関与しているアプリケーションに、仮想シャーシシステム100内のローカルノードおよび他のネットワークノード110の両方の関連において仮想シャーシシステムのステータスを知らせるためにさまざまな通知手段を備える。ステータス情報の一部は、管理構成によって駆動されるが、他のステータス情報は、制御データ交換、ネゴシエーション、および同意が行われると、仮想シャーシシステム内でネットワークノードによって個別に、または複数のネットワークノード110によって下される実行時決定によってトリガーされる。仮想シャーシマネージャモジュール400は、VLANマネージャアプリケーションモジュール410、スパニングツリープロトコル(STP)アプリケーションモジュール412、送信元学習アプリケーションモジュール414、リンクアグリゲーションアプリケーションモジュール416、およびこれらのシステムコンポーネントにサービスを要求するためのポートマネージャアプリケーションモジュール418ともインターフェースする。例えば、VCM400は、仮想シャーシシステム100内のネットワークノード110の間のプロセス間通信チャネルをセットアップできるようにするため、VLANマネージャに、VFLメンバーポートを制御VLANのメンバーとして構成するように要求することができる。
VCM−NIM404は、ハードウェアモジュールのモジュール識別構成(例えば、MID)を実行する。VCM−NIM404は、ハードウェアデバイス/キューマッピング機能およびシャーシ間ループ回避機能を実行するためキューイングモジュール212内のキュー管理部262ともインターフェースする。VCM−NIM404は、VFL120の制御および管理用の仮想シャーシ状態機能性も備える。仮想ファブリックリンク制御部は、VFL120を管理し、構成し、ポートマネージャアプリケーションモジュール418とインターフェースして、VFL120およびその対応するメンバーポートの状態を監視し、および/または制御する。また、VFL120のステータスを追跡し、更新することも行う。VCM−NIM404は、標準のLACPプロトコル、または他の類似のプロトコルを、物理レベルのリンクの状態と共に使用してそれぞれのVFLメンバーポートの状態を追跡する。LACPプロトコルに加えて、仮想シャーシステータスプロトコルは、両方の仮想シャーシスイッチ上の指定されたNIM上で実行しているコンポーネントのステータスおよび/または動作可能性をチェックするために定期的キープアライブチェック(helloプロトコル)を実行する。すべての仮想シャーシプロトコルパケットは、誤った/早すぎる故障検出を回避するためにシステムにおいて高い優先度を割り当てられなければならないが、それは、そのような故障の早すぎる検出は、システムにおいて非常に高い崩壊効果を有し得るからである。プライマリ指定NIM152上で仮想シャーシステータスプロトコルを実行することによって、バックアップ指定NIMモジュールは、故障が発生した場合にステータスプロトコル処理の制御を引き継ぐことができる。
VCM−CMM402およびVCM−NIM404は、VFL120のメンバーポートおよびリンクに関してポート状態およびリンク状態イベントを受信するためにポートマネージャアプリケーションモジュール418に登録する。別の実施形態において、仮想シャーシマネージャモジュール400は、VFL120のポートおよびリンク状態を監視するためのポートマネージャアプリケーションモジュールを備えることができる。仮想シャーシマネージャモジュール400は、VFL120の動作状態を追跡し、VFLステータス、すなわち、アグリゲート作成済み/削除済み/アップ/ダウンに関するイベントを処理する。ポートマネージャアプリケーションモジュール418は、VCM−CMM402およびVCM−NIM404の両方にリンク状態通知を送る。
一実施形態において、トランスポート制御プロトコルは、ネットワークノード110の指定されたNIM152またはスタッカブルネットワーク要素140の間で制御プロトコルパケットをトランスポートするために仮想シャーシシステム100内に実装される。トランスポート制御プロトコルは、異なるノードアーキテクチャを有するネットワークノード110内で動作可能である。マルチスロットシャーシベースのノードアーキテクチャでは、指定されたNIM152は指定された処理モジュール266と共にトランスポート制御プロトコルを、例えば、VCM−NIM404の一部として操作する。スタッカブルノードアーキテクチャにおいて、指定されたまたはマスタースタッカブルネットワーク要素140は、トランスポート制御プロトコルを操作する。
シャーシスーパーバイザーモジュール420は、ネットワークノード110のハードウェアへのインターフェースを提供し、さまざまなアプリケーションモジュールの監視およびブートアップもしくは再起動を制御し、要素マネージャモジュール406に対するコマンドラインインターフェース(CLI)を提供する、ソフトウェアリロードおよびソフトウェアアップグレード(サービス内ソフトウェアアップグレードISSUなど)を制御し、ネットワークノード110のシステムのステータスまたはイメージファイルへのアクセスを制御する。仮想シャーシモードにおいて、シャーシスーパーバイザーモジュール420は、ブートシーケンスを制御し、ソフトウェアリロードおよびISSUを制御し、仮想シャーシパラメータにアクセスするためのインターフェースを提供する。
構成マネージャモジュール422は、ネットワークノード110の動作を仮想シャーシモードからスタンドアロンモードに変換するか、またはネットワークノード110の動作をスタンドアロンモードから仮想シャーシモードに変換するように動作可能である。構成マネージャモジュールは、仮想シャーシマネージャモジュール400およびマルチシャーシマネージャモジュール424を構成するようにも動作可能である。構成マネージャモジュール422の動作およびネットワークノード110の動作状態について、以下でさらに詳しく説明する。
仮想シャーシシステム100内のネットワークノード110は、仮想シャーシモード、スタンドアロンモード、およびマルチシャーシ(MC−LAG)モードを含む、複数の動作モードで動作し得る。さまざまなパラメータおよび構成が、動作モードに応じて修正される。表5は、動作モードに応じたネットワークノード110へのシャーシIDの割り当てを示している。
スタンドアロンモードでは、ネットワークノード110は、単一ノードとして運用され、グローバル仮想シャーシMACアドレスではなくその構成されたローカルMACアドレスを利用する。マルチシャーシモードでは、2つのネットワークノードは、MAC転送テーブルおよびARPテーブルが同期される仮想ノードとして構成されるが、それでも、個別のブリッジおよびルーターとして動作し、それぞれ、2011年1月20日に出願された米国特許出願第13/010,168号、名称「SYSTEM AND METHOD FOR MULTI−CHASSIS LINK AGGREGATION」においてより詳しく説明されているように、それ専用のローカルシャーシMACアドレスを使用する。本明細書で説明されているような仮想シャーシモードでは、複数の、N個のネットワークノードが、仮想シャーシシステム100内の仮想シャーシにノードとして構成される。1からNまでのグローバルに一意的なシャーシIDが、仮想シャーシシステム100内の複数のネットワークノードのそれぞれに割り当てられる。
ネットワークノード110がスタンドアロンモードで動作する場合、ポート識別子および構成は、フォーマット:0/<slot>/<port>に従い、ただし、シャーシIDは「ゼロ」に等しく、slotはマルチスロットアーキテクチャまたはスタッカブルネットワーク要素140におけるそれぞれのネットワークインターフェースモジュール(NIM)152を識別し、portはポートインターフェース識別子である。ネットワークノード110がマルチシャーシモードで動作する場合、ポート構成は、フォーマット:<chassis>/<slot>/<port>に従い、ただし、シャーシIDは1または2に等しく、動作/現在/実行中シャーシIDを表す。ネットワークノード110が仮想シャーシモードで動作する場合、ポート構成は、フォーマット:<chassis>/<slot>/<port>に従い、ただし、シャーシIDは1、2...Nの範囲内の数であり、動作/現在/実行中シャーシIDを表す。
図9は、構成マネージャモジュール422の概略ブロック図をより詳しく示している。構成マネージャ422は、ネットワークノード110の異なる動作モードをサポートするためさまざまな構成モジュールを備える。一実施形態におけるブート構成モジュール440は、スタンドアロン動作モードおよびマルチシャーシ動作モードをサポートする。仮想シャーシ(VC)モード構成モジュール450は、仮想シャーシモードをサポートする。構成マネージャモジュール422は、ネットワークノードの動作モードに応じて起動時および実行時に関連する構成ファイル(ブート構成モジュール440またはVCモード構成モジュール450)を読み出して妥当性を確認する。
ブート構成モジュール440は、スタンドアロンまたはマルチシャーシモードにおいて、リソースを定義し、ネットワークノードのパラメータおよび機能を指定する管理コマンドセットを備える。ブート構成モジュール440は、アプリケーション構成モジュール442およびVCマネージャ構成モジュール446aを含む。アプリケーション構成モジュール442は、ネットワークノード110におけるさまざまなアプリケーションの構成を制御するために使用される。例えば、アプリケーション構成モジュール442は、シャーシスーパーバイザーモジュール420、VLANマネージャアプリケーションモジュール410、STPアプリケーションモジュール412、マルチシャーシマネージャ424などを構成する。VCマネージャ構成モジュール446aは、仮想シャーシマネージャ400によって処理される構成パラメータおよび制御コマンドを備える。VCマネージャ構成モジュール446aは、スタンドアロンモードで動作しているときにブート構成モジュール440において更新され利用される。ローカルネットワークノードに固有の、ネットワークノードを仮想シャーシモードに遷移させるために必要なコマンドが、VCマネージャ構成モジュール446aに備えられている。
しかし、仮想シャーシモードで動作している場合、VCマネージャ構成モジュール446bはVCモード構成モジュール450において更新され利用される。VCマネージャ構成モジュール446aおよび446bをブート構成モジュール440およびVCモード構成モジュール450に含めることによって、ネットワークノード110は、マルチシャーシモードまたはスタンドアロンモードまたは仮想シャーシモードで動作している間に仮想シャーシ関係の構成および機能を実行するように動作可能である。
VCモード構成モジュール450は、仮想シャーシモードにおいて、リソースを定義し、ネットワークノードのパラメータおよび機能を指定する管理コマンドセットを備える。VCブート構成モジュール452は仮想シャーシシステム100内の複数のネットワークノードの仮想シャーシ構成458a−nを含むが、VCセットアップモジュール460はローカルシャーシ構成を含む。
図10は、仮想シャーシシステム100内のネットワークノード100の動作モードを決定するための方法470の一実施形態の論理フロー図を示している。シャーシスーパーバイザーモジュール420は、シャーシスーパーバイザーモジュール420がマルチシャーシマネージャ424を開始するか、または仮想シャーシマネージャ400を開始するかを動作モードが決定するので、構成前の起動時にネットワークノード110の動作モード(例えば、仮想シャーシ、スタンドアロン、またはマルチシャーシ)を決定する必要がある。ステップ472で、ネットワークノードが起動し、ステップ474で、シャーシスーパーバイザーモジュール420は、VCセットアップモジュール460(vcsetup.cfg)がネットワークノード110内に存在しているかどうかを判定する。VCセットアップモジュール460(vcsetup.cfg)が存在していないときに、ネットワークノードは、仮想シャーシモードで動作しておらず、構成マネージャモジュール422が、スタンドアロンまたはマルチシャーシモードでの動作に関してステップ476でブート構成モジュール440(boot.cfgファイル)を構文解析する。次いで、マルチシャーシマネージャ424が、ステップ478Iにおいてブート構成モジュール440(boot.cfgファイル)の処理のため開始される。
ステップ474において、VCセットアップモジュール460(vcsetup.cfg)が存在しているときに、ネットワークノードは、仮想シャーシモードで動作し、シャーシスーパーバイザーモジュール420は、仮想シャーシマネージャ400を開始する。シャーシスーパーバイザーモジュール420は、ステップ480で起動プロセスにおいてアプリケーションによって使用される共有メモリファイル内に「virtual chassis mode」というパラメータをセットし、仮想シャーシモード動作を指示する。次いで、構成マネージャモジュール422は、仮想シャーシ構成モジュール、VCセットアップモジュール460(vcsetup.cfg)、およびVCブート構成モジュール(vcboot.cfg)を構文解析し、ステップ482で、仮想シャーシマネージャ400を開始する。ステップ484において、仮想シャーシマネージャ400は、VCセットアップモジュール460(vcsetup.cfg)が有効な仮想シャーシ構成(例えば、有効なシャーシID)を含むことを確認する。そうでない場合、仮想シャーシマネージャ400は、仮想シャーシモードが失敗したことをシャーシスーパーバイザーモジュール420に通知する。次いで、シャーシスーパーバイザーモジュール422は、ポートインターフェースおよびVFLメンバーポートを無効化する。したがって、VCセットアップモジュール460(vcsetup.cfg)ファイルを有しているが、その内容は無効である(例えば、シャーシIDが範囲外である、ファイルが破損している、手入力で編集された)ネットワークノード110は、動作しない。スタンドアロンモードでネットワークノード110を運用することを試みないが、それは、いくつかのシナリオにおいて、仮想シャーシシステム100内の別のネットワークノード110のスタンドアロン構成と仮想シャーシ構成との間にコンフリクトが生じることによりネットワーク問題が発生し得るからである。
図11は、仮想シャーシモードで起動時にネットワークノード110を構成するための方法500の一実施形態の論理フロー図を示している。システムの起動時に、ネットワークノード110が、有効な構成を用いステップ502において仮想シャーシモードで動作していると判定された場合、仮想シャーシマネージャ400は、ネットワークノード110を仮想シャーシシステム100に遷移させるようにVCセットアップモジュール460において構成コマンドを処理する。しかし、この初期フェーズにおいて、仮想シャーシマネージャ400は、マスターネットワークノード110が知られ、トポロジーデータベース144がネットワークノード100によって構築されるまでVCブート構成モジュール452のコマンドを処理しない。以下の表6は、この初期フェーズにおけるネットワークノード110の構成を示している。表6は、2つのネットワークノードのみを示しているけれども、ネットワークノードはいくつでもサポートされることに留意されたい。表6の実行時構成パラメータは、この初期フェーズにおいてネットワークノード110によって処理されるモジュールまたはコマンドセットを示している。
ステップ506においてマスターネットワークノードが選択され、トポロジーデータベースが構築された後、構成処理の第2のフェーズが生じる。第2のフェーズにおいて、仮想シャーシシステム100内のマスターネットワークノード110は、ステップ508で、マスターネットワークノード(例えば、vcboot1.cfg)およびスレーブネットワークノード(例えば、vcboot2.cfg)のVCブート構成モジュール452のマージを実行する。ネットワークノードがVCブート構成モジュール452における指定された構成の同じセットを有することができない場合、スレーブネットワークノードは、マスターネットワークノードから構成を取り出し、自ファイルを上書きする。次いで、スレーブネットワークノードは、新しいパラメータセットが有効になるようにリブートする必要がある。VCブート構成モジュール452の指定された構成が、コピーされた場合、そのコピーされたVCブート構成モジュール452(例えば、vcboot1.cfg)は、ステップ510で、スレーブネットワークノードによって処理される。表7は、第2のフェーズにおけるネットワークノードの構成を示している。
これで、マスターネットワークノードのVCブート構成モジュール452(vcboot1.cfg)は、スレーブネットワークノード2にコピーされている。スレーブネットワークノードからの構成を保存するために、マスターネットワークノードは、スレーブネットワークノードのVCブート構成モジュール(vcboot2.cfg)内の構成コマンドを構文解析する。この構文解析は、オフラインで実行されるか、または要素マネージャまたはネットワークマネージャによって実行され得る。スレーブのVCブート構成モジュール(vcboot2.cfg)内のコンフリクトしているコマンドが決定され、分析のため保存される。マスターネットワークノードは、ステップ512において、コンフリクトしているコマンドを除去し、コンフリクトしていないコマンドをスレーブネットワークノードに対するマージされたVCブート構成モジュール452(vcboot2’.cfg)に書き込む。
最終段階において、マージされたVCブート構成モジュール452(vcboot2’.cfg)が、仮想シャーシシステム内のスレーブネットワークノードにコピーされる。次いで、VCブート構成モジュール452が、ステップ514において、ネットワークノード110によって実行される。表8は、最終フェーズの後のネットワークノード110の構成を示している。
その結果、スレーブネットワークノード110の構成は、それぞれのスレーブネットワークノード110をリブートしなくてもコンフリクトしているコマンドを除き利用される。それに加えて、スレーブネットワークノード110の構成が維持される。
仮想シャーシシステム内でネットワークノード110のセットアップを行っているときに、ネットワークノード110は、ネイバ発見を実行し、例えば、トポロジーデータベース144を構築する、マスターネットワークノードを選択するなどを行う。しかし、セットアップ時に、シャーシ識別子およびネットワークノード110間のVFLリンク120は不明である。通信するために、仮想シャーシ制御プロトコルがネットワークノード110によって利用され、これにより、他のネットワークノードを発見し、情報を交換してトポロジーデータベース144を構築する。仮想シャーシ制御プロトコルは、ネットワークノード110がトポロジー発見の前にプロトコルメッセージを送受信する動作を行えるようにポイントツーポイントまたはホップバイホップに基づき動作する。一実施形態において、仮想シャーシ制御プロトコルは、例えば、引用により本明細書に組み込まれている、IEEE Network Working Group RFC 1142、「OSI IS−IS Intra−domain Routing Protocol」、1990年2月、およびIEEE Network Working Group RFC 1195、「Use of OSI IS−IS for Routing in TCP/IP and Dual Environments」、1990年12月において定義されている、中間システム間(IS−IS)ルーティングプロトコルのプロトコルおよび機能を含むが、他のルーティングプロトコルまたはプロセスも、本明細書で説明されている仮想シャーシ制御プロトコルの機能および特徴を実行するための基盤として利用され得る(例えば、Open Shortest Path First for IP networks、これは例えばIEEE Network Working Group RFC 2740、「OSPF for IPv6」、1999年12月において説明されている)。
一実施形態において、仮想シャーシ制御プロトコルメッセージは、割り当てられたマルチキャストMAC送信先アドレスを使用してネットワークノード間で交換される。ネットワークノード110のスイッチングモジュール210が、割り当てられたマルチキャストMAC送信先アドレスと共に仮想シャーシ制御プロトコルメッセージを受信した場合、スイッチングモジュール210は、VCM−NIM404またはVCM−CMM402において動作しているVCM400によるプロトコルメッセージの処理のために制御プロトコルメッセージを処理モジュール266に転送する。別の実施形態において、仮想シャーシ制御プロトコルメッセージは、所定のオペレーションコードをプリペンデッドヘッダー300の一部として含む。スイッチングモジュール210が、所定のオペレーションコードがプリペンデッドヘッダー300に含まれる仮想シャーシ制御プロトコルメッセージを受信した場合、スイッチングモジュール210は、制御プロトコルメッセージを処理のため処理モジュール266に転送する。
トポロジー発見の前に、仮想シャーシ制御プロトコルは、ポイントツーポイントまたはホップバイホッププロセスを使用して、隣接するネットワークノード間でプロトコルメッセージを交換する。隣接するネイバでないネットワークノード110にプロトコルメッセージを送信するために、仮想シャーシ制御プロトコルは、ホップカウントフィールドに基づく内部伝搬プロセスを含む。ホップカウントフィールドは、それぞれのネットワークノード110においてプロトコルメッセージ内でデクリメントされ、仮想シャーシシステム100内のパケットループを防ぐのを助ける。一実施形態において、仮想シャーシ制御プロトコルは、VCM−CMMの一部として、またはVCM−NIM404の一部として動作している仮想シャーシマネージャ400に含まれるが、仮想シャーシ制御プロトコルは、ネットワークノード110内の1つまたは複数の代替的な、または追加のモジュール内で動作可能であってもよい。
図12は、仮想シャーシシステム100における仮想シャーシプロトコルを使用するトポロジー発見の一実施形態の概略ブロック図を示している。ブートアップまたはセットアップすると、VFL120aなどの第1のVFLが動作することになったときに、ネットワークノード110aは、仮想シャーシシステム100のトポロジー発見を始める。仮想シャーシマネージャモジュール400(または仮想シャーシプロトコルを操作している他のモジュール)は、VFL120aに結合されたNIM152のスイッチングモジュール210へのプロトコルメッセージ550aを開始する。プロトコルメッセージ550aは、プロトコルメッセージを発信する送信元ネットワークノードのシャーシIDを含む送信元シャーシフィールド552およびプロトコルメッセージ550aに対する送信VFL120のVFIDを含む送信元VFLフィールド554を備える。プロトコルメッセージ550は、ホップカウントフィールド556も備える。この例では、プロトコルメッセージ550は、送信元シャーシID=1、送信元VFID=0、およびホップカウント=2を備える。プロトコルメッセージ550は、類似の、または追加のトポロジー情報を有する追加の、または代替的なフィールドを備え得る。
隣接するネットワークノード110bが、プロトコルメッセージ550aを受信すると、これは、受信VFL120aのVFID、例えば、受信VFID=1をプロトコルメッセージ550aに付加して、プロトコルメッセージをその仮想シャーシマネージャ400、例えば、VCM400に送信し、仮想シャーシ制御プロトコルにより処理を行う。プロトコルメッセージ550aから、VCM400は、シャーシID=1を有するネットワークノード110aは、隣接するノードであることを決定するように動作可能である。VCM400は、ネットワークノード110aが、ネットワークノード110bに対するVFID=1のVFL識別子およびネットワークノード110aに対するVFID=0のVFL識別子を有するVFL120aによって結合されることも決定する。VCM400は、このトポロジー情報でトポロジーデータベース144を更新するか、このトポロジー情報をトポロジーデータベース144にポピュレートするように動作可能である。プロトコルメッセージのホップカウント=2は、ホップカウント=1にデクリメントされる。ポップカウントは非ゼロであるため、ネットワークノード110bのVCM400は、ネットワークノード110cに送信するプロトコルメッセージを再生成して送信元ネットワークノード情報を含める。再生成されたプロトコルメッセージ550bは、送信元ネットワークノード110bの送信元シャーシID=2、送信元VFL120bの送信元VFID=2、およびデクリメントされたホップカウント=1を含む。
ネットワークノード110cが、プロトコルメッセージ550bを受信すると、これは、着信VFL120bのVFID、例えば、着信VFID=3をプロトコルメッセージ550bに付加して、プロトコルメッセージをVCM400に送信し、仮想シャーシ制御プロトコルにより処理を行う。プロトコルメッセージ550bから、VCM400は、シャーシID=2を有するネットワークノード110bは、隣接するノードであることを決定するように動作可能である。VCM400は、ネットワークノード110bに対するVFID=2がネットワークノード110cに対するVFID=3に結合することも決定する。VCM400は、このトポロジー情報でトポロジーデータベース144を更新するか、このトポロジー情報をトポロジーデータベース144にポピュレートするように動作可能である。ホップカウント=1は、ホップカウント=0にデクリメントされる。ホップカウントはゼロなので、仮想シャーシ制御プロトコルを操作するVCM400は、プロトコルメッセージの再生成または転送を行うことをしない。
ネットワークノード110が、隣接するネットワークノード110のトポロジー情報を決定したときに、ネットワークノードは、トポロジーデータベース144をトポロジー情報で更新し、トポロジー情報を他のVFLリンクを介して結合されている他の知られている隣接するノードに転送する。例えば、図12において、ネットワークノード110bが、プロトコルメッセージ550aを通じてネットワークノード110aが隣接するノードであると判定したときに、ネットワークノード110bは、知られている隣接するネットワークノード110dへのプロトコルメッセージ550cを生成する。プロトコルメッセージ550cは、1つまたは複数のトポロジーフィールド558内に更新されたトポロジー情報を備える。ネットワークノード110dが、トポロジーメッセージ550cを受信したときに、これは、トポロジーメッセージ550cをVCM400に転送し、仮想シャーシ制御プロトコルにより処理する。VCM400は、トポロジーデータベース144を1つまたは複数のトポロジーフィールド558内のトポロジー情報で更新する、例えば、シャーシID=2のそのVFID=1はシャーシID=1のVFID=0に結合される。
一実施形態において、仮想シャーシシステム100のセットアップ時に、ネットワークノード110がトポロジー情報を交換し、各トポロジーデータベース144を生成するように所定の発見期間が構成される。発見期間が過ぎたときに、知られているネットワークノード110からマスターネットワークノードが選択される。発見期間が過ぎた後に仮想シャーシシステム100内で発見されるか、または動作することになった他のネットワークノード110は、マスターネットワークノード選択プロセスに含まれない。これらの新規に追加されたネットワークノード110は、スレーブネットワークノードとして指定される。
図13は、仮想シャーシプロトコルを使用してマスターネットワークノードを選択するための方法580の一実施形態の論理流れ図を例示している。ステップ582において、ネットワークノード110は、所定の発見期間中に各トポロジーデータベースを構築するためにプロトコルメッセージを交換する。マスターネットワークノードの選択は、発見期間が過ぎると始まる。一実施形態において、所定の発見期間は、他の開始時間が実装され得るけれども仮想シャーシシステム内の第1のネットワークノードのブートアップすると始まる。発見期間は、仮想シャーシシステム100におけるトポロジーおよびノードアーキテクチャに応じても変化し得る。例えば、発見期間の長さは、起動時間を過度に引き延ばすことなく正確で予測可能なマスター選択を円滑にするように選択される。所定の期間を実装することによって、マスターネットワークノードの選択は、不明なネットワークノードにより無制限に遅延されるか、またはより高い優先度の別のネットワークノードが接続するのを待つことがない。
ステップ584で発見期間が過ぎると、各トポロジーデータベースに仮想シャーシシステム100に対するトポロジー情報をポピュレートし、各トポロジーデータベース144を更新したネットワークノード110は、マスターネットワークノードに対する選択プロセスを始める。ネットワークノード110上で仮想シャーシ制御プロトコルを操作している仮想シャーシマネージャモジュール(VCM)400または他のモジュールは、ステップ586においてマスターネットワークノードである適格性を決定する。一実施形態において、ネットワークノード110は、1つまたは複数のパラメータに基づき選択キーを決定することによってその適格性を決定する。パラメータの優先順位付けリストは、プリファレンスを、例えば、より高いシャーシ優先度、より長いアップタイム、より小さいシャーシID、およびより小さいシャーシMACアドレスに与える。優先順位付けされたパラメータの使用は、選択プロセスに柔軟性を加える。シャーシ優先度パラメータは、事前構成された優先度であり、マスターネットワークノードに対するユーザープリファレンスを定義する。シャーシ優先度パラメータは、選択プロセスにおいて最大の重みを有する。
ネットワークノードが、ステップ588において、その選択キーが他のノードの選択キーより比較して有利であり、マスターネットワークノードとして適格性を有すると決定した場合、ネットワークノード110は、ステップ590において、マスターネットワークノードとしての選択に対する要求を送信する。ステップ592において、ネットワークノードは、別の要求がステップ592において所定の期間内に受信されるかどうかを監視する。所定の期間が過ぎた後も他の要求がない場合、ネットワークノード110は、ステップ596においてそれがマスターネットワークノードであることをアドバタイズするマスター選択メッセージを送信する。マスター選択メッセージが受信された時、ステップ598において、他のネットワークノードはトポロジーデータベース144を更新して、マスターとして選択されたネットワークノードを指示し、他のネットワークノードをスレーブノードとして指定する。
ステップ592において、複数ネットワークノードが所定の期間中にマスターネットワークノードとしての選択の要求を送信した場合、マスターとしての選択を要求する1つまたは複数のノードの選択キーが比較される。ステップ594における最も有利な選択キーを有するネットワークノード110は、マスターネットワークノードとして選択され、ステップ596においてそれがマスターネットワークノードであることをアドバタイズするマスター選択メッセージを送信する。このマスター選択プロセスは、2つまたはそれ以上のネットワークノードがマスターネットワークノードとしての役割を果たすという問題が生じるのを防ぐのを助ける。
図14a−bは、仮想シャーシシステム100においてユニキャストトラフィックをルーティングする一実施形態の概略ブロック図を示している。図14aは、例示的な仮想シャーシトポロジーの概略ブロック図を示している。一実施形態において、仮想シャーシ制御プロトコルを操作しているネットワークノード110の仮想シャーシマネージャ400は、トポロジーデータベース144内のトポロジー情報を分析し、VFL120を介してユニキャストパケットを仮想シャーシシステム100内の他のネットワークノード110にルーティングする最短経路(例えば、最小ホップカウント)を決定する。図14bは、図14aの仮想シャーシトポロジーにおけるネットワークノード110a−dについて決定された最短経路のルーティングツリーの概略ブロック図を示している。決定された最短経路に基づき、VCM400は、VFLルーティングテーブル254を生成し、VFLルーティングテーブル254をネットワークノード110のスイッチングモジュール210内に格納する。
一実施形態において、ネットワークノード間の複数の最短(例えば、最小コストまたは最小ホップカウント)経路がサポートされ、トラフィックは、本明細書の表3のVFLルーティング構成テーブル254の一例によって示されているように複数の最短経路の間に分散される。図14bに示されているような別の実施形態では、複数の最短経路がある場合、VCM400は、VFLルーティングテーブル254を構成するため複数の最短経路のうちの1つを選択する。この選択は、シャーシID、VFLリンク特性、トラフィックパターンなどの1つまたは複数のメトリックに基づくものとしてよい。例えば、VCM400は、最短経路におけるシャーシIDの総和に基づき複数の最短経路のうちの1つを選択することができる。別の実施形態では、最短経路のうちの1つの選択は、VFL120のデータ転送速度またはリンク速度などの、VFLリンク特性に基づく。トラフィックパターンまたは他の代替的方法またはプロセスも、仮想シャーシシステム100内のネットワークノード110間の最短経路のうちの1つを選択するように実装され得る。図14bのルーティングツリーは、VFLルーティングテーブル254内に構成される最短経路の概略図として示されている。図14bに示されている最短経路に対応するVFLルーティング構成テーブル254の一例が、以下の表9に示されている。
表9に示されているVFLルーティングテーブル254は、送信先シャーシIDに対する最短経路を1つのみ含むが、1つまたは複数のコストの等しい経路が存在し得る。別の実施形態において、特定のユニキャストパケットフローについて選択する複数の経路のうちの1つを決定するために複数の最短経路が1つまたは複数のメトリックと共に含まれ得る。一実施形態におけるVFLルーティングテーブル254は、シャーシIDに加えて、またはそれに対して代替的に、送信先モジュールIDを含む。一実施形態において、グローバルに一意的なモジュール識別子(MID)が、仮想シャーシシステム100内の複数のネットワークノード110におけるスイッチングモジュール210に割り当てられる。送信先スイッチングモジュール210のグローバルに一意的なMIDは、送信先シャーシIDに加えて、またはそれに対して代替的に、VFLルーティングテーブル254(およびパケットのプリペンデッドヘッダー)に含まれる。
図15a−bは、仮想シャーシシステム100において非ユニキャストトラフィックをルーティングする一実施形態の概略ブロック図を示している。仮想シャーシ制御プロトコルを操作しているネットワークノード110の仮想シャーシマネージャモジュール(VCM)400は、トポロジーデータベース144内のトポロジー情報を分析し、マルチキャストまたはブロードキャストパケットなどの非ユニキャストパケットを仮想シャーシシステム100においてVFL120を介して他のネットワークノード110にルーティングするための経路を決定する。VCM400は、ループおよび重複パケットがネットワークノード110によって受信されるのを防ごうとして非ユニキャストパケットをルーティングする。一実施形態において、VCM400は、非ユニキャストパケットの送信元ネットワークノードに対する構成されたユニキャスト最短経路に基づき非ユニキャストパケットに対する経路を決定する。
図15aは、入口マルチキャストパケット600が外部ポートインターフェース240上でネットワークノード110aによって受信される仮想シャーシシステム100の概略ブロック図を示している。ネットワークノード110aは、VFLを介してマルチキャストパケット600をネットワークノード110bに転送し、VFL120dを介してネットワークノード110dに転送するため重複コピーを生成する。ネットワークノード110bは、非ユニキャストパケット600を受信し、それをネットワークノード110cに転送する。さらなるルーティング構成がなければ、ネットワークノード110bも、VFL120eを介してネットワークノード110dに転送するため非ユニキャストパケット600の重複コピーを生成する。同様に、ネットワークノード110cも、非ユニキャストパケット600のコピーをVFL120cを介してネットワークノード110dに転送する。したがって、ネットワークノード110dは、非ユニキャストパケットの3つのコピーを受信する。パケットのそのような複数のコピーをネットワークノード側で受信されるのを防ぐために、VCM400は、非ユニキャストパケット600の送信元または入口ネットワークノードおよび送信元ネットワークノードに対するユニキャストパケットについて構成された最短経路に基づきいくつかの経路をブロックする。
図15bは、ネットワークノード側のループおよび重複パケットを防ぐように仮想シャーシシステム100を通して非ユニキャストパケット600をルーティングするためのルーティングツリーの一実施形態の概略ブロック図を示している。ルーティングツリーは、送信元または入口ネットワークノード110aの仮想シャーシシステム100に入る非ユニキャストパケットをルーティングするためのネットワークノード110a−dの構成を示している。VCM400は、送信元ネットワークノードに基づき、また送信元ネットワークノード110に対するユニキャストパケットについて構成されたルーティングツリーまたは最短経路に基づき非ユニキャストパケットのルーティングを決定する。例えば、ネットワークノード110bは、VFL120a上で非ユニキャストパケット600を受信する。ネットワークノード110bは、非ユニキャストパケット600のプリペンデッドヘッダーの送信元ハードウェアデバイス情報(シャーシIDまたはモジュールID)が、ネットワークノード110aに関連付けられていると判定する。ネットワークノード110bは、VFLルーティングテーブル254(表9および図15bに示されているような)から、送信元ネットワークノード110aに対するユニキャストパケットについてそれから構成されている最短経路を決定する。VFLルーティングテーブル254は、ネットワークノード110aに対する最短経路が、シャーシID=2からシャーシID=3へのVFID=2を含むことを指示する。したがって、ネットワークノード110b(シャーシID=2)は、VFID=2のVFL120bを介して非ユニキャストパケットをネットワークノード110c(シャーシID=3)に転送する。ネットワークノード110bは、この経路がネットワークノード110aについて構成された最短経路に含まれていないので非ユニキャストパケット600をVFL120eを介してネットワークノード110dに転送しない。したがって、非ユニキャストパケットは、送信元または入口ネットワークノード、および送信元ネットワークノードについて構成されているユニキャストパケットに対する最短経路に応答してルーティングされる。
一実施形態において、このルーティングを実装するために、出口フィルタリングが実装され、これにより、送信元ネットワークノードの構成された最短経路から除外されたVFL120から非ユニキャストパケットをブロックする。別の実施形態において、このルーティングを実装するために、受信側ネットワークノードによって入口フィルタリングが実装され、これにより、送信元ネットワークノードの構成された最短経路から除外されたVFL120から着信非ユニキャストパケットをブロックする。例えば、シャーシID=4を有するネットワークノード110dは、ネットワークノード110aの送信元ネットワークノードを伴う非ユニキャストトラフィックをVFID=1およびVFID=2からブロックする。したがって、入口フィルタリングについては、ネットワークノードは、VFLリンク上の送信元ネットワークノードが最短経路に含まれていない非ユニキャストパケットをユニキャストパケットに対する送信元ネットワークノードからブロックする。一実施形態において、出口フィルタリングは、マルチスロットシャーシベースタイプのアーキテクチャで実装され、入口フィルタリングは、単一のスロットまたはスタンドアロンのネットワーク要素上に実装されるが、異なる種類のノードおよびネットワークインターフェースモジュール上でフィルタリングの他の実装も可能である。
図16は、仮想シャーシシステム100において非ユニキャストトラフィックをルーティングするための方法610の一実施形態の論理フロー図を示している。ステップ612において、仮想シャーシシステム100内のネットワークノード110は、VFL120上で非ユニキャストパケットを受信する。受信側ネットワークノード110は、ステップ614においてプリペンデッドヘッダーから非ユニキャストパケットの送信元ネットワークノード(例えば、送信元シャーシIDまたは送信元MIDから)を決定する。受信側ネットワークノードは、ステップ616で、そのアドレステーブルにアクセスして送信元ネットワークノード110に対するユニキャストパケットについて構成されている最短経路を決定する。ステップ618において、受信側ネットワークノードは、送信元ネットワークノードに対するユニキャストパケットについて構成されている最短経路に基づき非ユニキャストパケットに対するルーティングを決定する。次いで、受信側ネットワークノードは、送信元ネットワークノードについて構成されている受信側ネットワークノードからユニキャストパケットに対する最短経路内の1つまたは複数のVFLを介して非ユニキャストパケットを転送する。
動作時に、仮想シャーシシステム100内のネットワークノード110は、ネットワークノード障害、ネットワークインターフェース障害、アプリケーションモジュール障害、およびVFL障害を含む1つまたは複数の種類の障害を検出し、それから復旧するように動作可能である。一実施形態において、パススルーモードは、ネットワークノード110における構成の間違い、不整合、または障害の検出に応答して仮想シャーシシステム内のネットワークノードを流れるユーザーデータおよび制御トラフィックに対するシステムおよび方法を提供する。パススルーモードは、仮想シャーシシステム内のトポロジーの破壊およびサービスの中断を回避するのを助けるものであるが、これについては、同日に出願され、引用により本明細書に組み込まれている、米国出願第13/674,352号、名称「SYSTEM AND METHOD FOR A PASS THRU MODE IN A VIRTUAL CHASSIS SYSTEM」に関連してより詳しく説明されている。
ネットワークノード110は、2つまたはそれ以上の仮想シャーシシステム100のマージなど、さまざまなネットワーク問題を検出し、それから復旧するように動作可能でもある。仮想シャーシシステム100は、仮想シャーシグループ識別子と共に構成される。いくつかの場合において、異なるグループ識別を有する2つまたはそれ以上の仮想シャーシシステム100をマージすると都合がよい。2つの仮想シャーシシステム100がマージされる場合、マスターネットワークノードは、2つの仮想シャーシシステムから、マージされた仮想シャーシシステムに対するマスターネットワークノードとして選択される。他の仮想シャーシシステム内のネットワークノードは、VCブート構成モジュールをマージすることについて図11に関して説明されているのと同様にして選択されたマスターネットワークノードの構成およびパラメータを再構成し、その構成およびパラメータに再同期化する。そのような再構成は、ネットワークノード110の再起動を必要とすることがある。
図17は、仮想シャーシシステムのマージの一実施形態の概略ブロック図を示している。第1の仮想シャーシグループID=1の第1の仮想シャーシシステム100aは、第2の仮想シャーシグループID=2の第2の仮想シャーシシステム100aとマージする。2つの仮想シャーシシステム100aと100bのマスターネットワークノードのうちから選択するために、一実施形態では、マスターネットワークノードの選択キー、例えば、パラメータの優先順位付けリストが比較されるが、他の方法も同様に実装され得る。比較して有利な選択キーを有するマスターネットワークノードが、マージされたマスターネットワークノードとして選択される。図17の例では、ネットワークノード110aが、マージされたマスターネットワークノードとして選択される。選択されていないマスターネットワークノード110cは、スレーブモードに遷移し、その構成を選択されたマスターネットワークノード110aと同期化する。それに加えて、選択されていないネットワークノードを含む仮想シャーシシステム内の、ネットワークノード110dなどの他のネットワークノードも、その構成を選択されたマスターネットワークノード110aと同期化する。
図18は、仮想シャーシシステムのマージに対する方法620の一実施形態の論理フロー図を示している。ステップ622において、マスターネットワークノードは、マージされた仮想シャーシシステムに対して選択される。一実施形態において、マスターネットワークノードは、2つまたはそれ以上のマージする仮想シャーシシステム内の既存のマスターネットワークノードから選択される。選択キー、例えば、パラメータの優先順位付けされたリストが比較され、既存のマスターネットワークノードのうちから選択するが、他の方法も同様に実装され得る。別の実施形態において、非マスターネットワークノードが、マージされた仮想シャーシシステムに対するマスターネットワークノードとして選択される(スレーブノードなど)。例えば、非マスターネットワークノードは、既存のマスターネットワークノードが重複するシャーシ識別子を含むか、または既存のマスターネットワークノードのうちの1つまたは複数で障害が発生するか、または非マスターネットワークノードがより有利な選択キーを有するときに選択され得る。
マスターネットワークノードが、マージされた仮想シャーシシステムに対して選択された場合、ステップ624において、既存の選択されていないマスターネットワークノードがスレーブモードに遷移する。次いで、ネットワークノードは、ステップ626で、そのトポロジーデータベース144をマージされた仮想シャーシシステムのトポロジー情報と共に更新し、ステップ628で、構成をマージされた仮想シャーシ内の選択されたマスターネットワークノードにマージする。ネットワークノードは、図11に関してさらに説明されているように構成を選択されたマスターネットワークノードとマージするために再起動またはリブートされる必要がある。選択されたマスターネットワークノードとすでに同期化されているネットワークノード、例えば、以前の、選択されたマスターネットワークノードに対するスレーブノードは、このステップを実行し得ない。他の追加のプロセスまたは方法は、同日に出願され、引用により本明細書に組み込まれている、米国出願第13/674,352号、名称「SYSTEM AND METHOD FOR A PASS THRU MODE IN A VIRTUAL CHASSIS SYSTEM」に関連してより詳しく説明されているように、マージされた仮想シャーシシステム内で重複するシャーシIDを有するネットワークノード110を伴う状況のために実装され得る。
仮想シャーシ制御プロトコルに加えて、仮想シャーシシステム100内のネットワークノード110は、さまざまな機能を実行するために追加の制御またはトランスポートプロトコルを操作することができる。例えば、追加の制御プロトコルは、健全性監視または他の機能のためのアプリケーション間の通信およびデータ共有を円滑にするためにネットワークノード内のアプリケーションモジュール間で、または異なるネットワークノード上のモジュール間で、実装され得る。一実施形態において、プロセス間通信(ICP)プロトコルは、2011年1月20日に出願され、引用により本明細書に組み込まれている、米国出願公開第2012/0033678号、名称「Multi−Chassis Inter−Process Communication」でより詳しく説明されているように実装される。そこで説明されているマルチシャーシシステム内のアグリゲートスイッチによって実装されるIPCプロトコルも、同様に、ネットワークノード100のアプリケーションモジュール間の通信およびデータ共有を円滑にするために仮想シャーシシステム100内のネットワークノード110によって利用され得る。
一実施形態において、IPCは、仮想シャーシシステム100内のネットワークノード110間の健全性監視機能を円滑にするように実装されるが、本明細書で説明されている健全性監視機能を実行するために代替的または追加のプロトコルも実装され得る。健全性監視機能は、ネットワークノード内のアプリケーションモジュール408−418が動作していること、およびネットワークノード110が仮想シャーシシステム100内の他のネットワークノード110と通信することができることを保証するためにネットワークノード内の、およびネットワークノード110間の定期的チェックを含む。健全性監視では、アプリケーションモジュール間の仮想接続における障害も検出し、早すぎる、または誤った障害検出を防ぐのを補助する。
図19は、仮想シャーシシステム100内の健全性監視の一実施形態の概略ブロック図を示している。一実施形態において、健全性監視は、VFL120を介して隣接するネットワークノード110間の1つまたは複数の論理もしくは仮想接続を確立することを含む。健全性監視のための仮想接続は、本明細書ではクリティカルコネクション(critical connections)と称される。仮想シャーシトポロジーおよびネットワークノード110のアーキテクチャに応じて、クリティカルコネクションをサポートするためにさまざまな制御およびトランスポートプロトコルが使用され得る。例えば、一実施形態では、インターネットプロトコルソケット(トランスポート制御プロトコル(TCP)ソケット、ユーザーデータグラムプロトコル(UDP)ソケットなど)上のIPC(Inter−Process Communication(プロセス間通信))が、隣接するネットワークノード110の間にクリティカルコネクションを実装するために使用される。例えば、一実施形態では、ネットワークノード110内のアプリケーションモジュール408−418は、通信を行うために、またデータを共有するために、TCPソケット上のIPC接続を利用する。したがって、健全性監視にTCPソケット上の同じIPC接続を使用することで、アプリケーションモジュール408−418もこれらの接続を使用して通信することができることを示す。TCP上のIPCが本明細書において説明されているけれども、1つまたは複数の他の制御もしくはトランスポートプロトコルおよびメカニズムを使用する他の種類の仮想接続も、健全性監視およびアプリケーションモジュール408−418の間のデータの共有をサポートするように実装され得る。
一実施形態において、図19に示されているように、健全性を監視のために隣接するネットワークノード110の間に1つまたは複数のクリティカルコネクション650が確立される。例えば、一実施形態では、ネットワークノード110aと隣接するネットワークノード110bとの間に3つのクリティカルコネクションが確立される。ネットワークノード110aの指定されたNIM152bと隣接するネットワークノード110bのプライマリCMM150aとの間に1つのクリティカルコネクションが確立される。ネットワークノード110aの指定されたNIM152bと隣接するネットワークノード110bのセカンダリCMM150bとの間に別のクリティカルコネクションが確立される。さらに、ネットワークノード110aの指定されたNIM152bと隣接するネットワークノード110の指定されたNIM152aとの間に別のクリティカルコネクションが確立される。プライマリおよびセカンダリCMM150ならびに指定されたNIM152の同一性が、仮想シャーシ制御プロトコルを使用して発見トポロジーを通して決定される。図示されていないけれども、ネットワークノード110bの指定されたNIM152aと指定されたNIM152b、ネットワークノード110aのプライマリCMM150aとセカンダリCMM150bとの間にもクリティカルコネクションが確立される。1つまたは複数の他のもしくは代替的なクリティカルコネクションも、ネットワークノード110間に確立され得る。
隣接するネットワークノード110bの状態は、helloまたはキープアライブメッセージなどの、定期的健全性監視メッセージをクリティカルコネクション510を介して送信することによってネットワークノード110aにより監視される。閾値数のhelloまたはキープアライブメッセージへの応答が所定の期間内に受信されない場合、クリティカルコネクション650は、失敗状態(例えば、タイムアウト)に遷移させられる。一実施形態において、閾値数のクリティカルコネクションが失敗するか、またはタイムアウトになった場合、隣接するネットワークノード110bの状態は、非アクティブまたは動作不能状態に遷移させられる。例えば、一実施形態では、クリティカルコネクション650a−cのうちの少なくとも1つが動作中である場合、ネットワークノード110bは、そのまま、動作状態にあると考えられる。すべてのクリティカルコネクションが失敗した場合、ネットワークノード110bは、動作不能状態に遷移させられる。
別の実施形態において、クリティカルコネクション650に適用されるさまざまなルールが、隣接するネットワークノード110bの状態を決定するために実装される。例えば、ネットワークノード110bのプライマリCMM150aおよびセカンダリCMM150bに対する2つのクリティカルコネクション650aおよび650bが失敗した場合、ネットワークノード110bは、動作不能であると考えられる。しかし、セカンダリCMM150bに対する2つのクリティカルコネクション650bおよび指定されたNIM152aに対するクリティカルコネクション650cが失敗する場合、ネットワークノード110bは、そのまま、動作状態にあると考えられる。別の例では、ネットワークノード110bの指定されたNIM152aに対するクリティカルコネクション650cが失敗した場合、新しい指定されたNIMが引き継ぐのを待つように所定の期間が設定される。所定の期間が過ぎて動作状態になった新しい指定されたNIM152がなかった場合、ネットワークノード110bは、動作不能であると考えられる。
ネットワークノード110が、動作不能状態に遷移させられた場合、仮想シャーシシステム100内の動作不能のネットワークノードと他のネットワークノードとの間のクリティカルコネクション650は閉じられる。他のネットワークノード110は、そのMAC/HDIアドレステーブル250から動作不能のネットワークノードに対するMACアドレスをフラッシュし、トポロジーデータベース144内の動作不能のネットワークノードの役割を動作不能または不整合に遷移させるか、または動作不能のノードに対するトポロジー情報をフラッシュする。動作不能のネットワークノードがマスターの役割を有している場合、別のマスターネットワークノードが選択される。仮想シャーシ制御プロトコルでは、異なるトランスポートプロトコルを使用するので、クリティカルコネクション(例えば、TCP上のIPC)が閉じられた(または失敗した)ときにもそのまま機能しているものとしてよい。この場合、動作不能のネットワークノードは、特に動作不能のネットワークノードがトポロジー内で仮想シャーシの分割を引き起こす場合に、パススルーモードに遷移し得る。
健全性監視で、ネットワークノード110に結合されているVFL120が失敗したと判定した場合、トポロジー情報が分析され、それにより、失敗したVFL120が仮想シャーシの分割を引き起こすかどうかを判定する。仮想シャーシの分割が行われた場合、失敗したVFL120によってトポロジーから分離された1つまたは複数のネットワークノード110は、動作不能状態に遷移させられ、動作不能のネットワークノードに対して上で説明されているように類似のステップが実行される。失敗したVFL120が仮想シャーシの分割を引き起こさない、例えば、1つまたは複数の他のVFL120がネットワークノード110に動作可能に結合されている場合、トポロジーデータベース144は、失敗したVFL120を取り除くように更新され、アドレステーブルは、残りの動作しているVFL120を介して仮想シャーシシステムを通る経路を決定するように再構成される。
健全性監視で、ネットワークノード110のNIM152が失敗したと判定した場合、失敗したNIM152とのクリティカルコネクション650は、閉じられる。失敗したNIM152のスイッチングモジュール210および外部ポートインターフェース240に関連付けられているMACアドレスは、仮想シャーシシステム100内のネットワークノード110のMAC/HDIアドレステーブルからフラッシュされる。失敗したNIM152が、1つまたは複数のVFL120へのVFLメンバーポートを備えている場合、トポロジー情報が分析され、それにより、失敗したVFLメンバーポートが仮想シャーシの分割を引き起こすかどうかを判定する。引き起こす場合、失敗したVFLメンバーポートによってトポロジーから分離された1つまたは複数のネットワークノード110は、動作不能状態に遷移させられ、動作不能のネットワークノードに対して上で説明されているように類似のステップが実行される。
健全性監視で、ネットワークノード110のCMM150が失敗したと判定した場合、失敗したNIM152とのクリティカルコネクション650は、閉じられる。失敗したCMMがプライマリである場合、セカンダリCMMはプライマリCMMに遷移する。
図20は、仮想シャーシシステム100内のネットワークノード110の健全性監視を行うための方法700の一実施形態の論理フロー図を示している。ステップ702において、隣接するネットワークノードの1つまたは複数のアプリケーションモジュール、制御モジュール、またはスイッチングモジュールとの1つまたは複数のクリティカルコネクションが監視しているネットワークノードによって確立される。1つまたは複数のクリティカルコネクションは、隣接するネットワークノードに結合されたVFL120を介して、または隣接するネットワークノードを結合する他の物理リンクを介して確立され得る。一実施形態におけるクリティカルコネクションは、TCPソケット上のICPに基づく仮想接続であるが、クリティカルコネクションを確立するために他のトランスポートまたは制御プロトコルも実装され得る。ステップ704において、監視しているネットワークノードは、キープアライブ、hello、または他の種類の監視プロトコルを使用してクリティカルコネクションによって隣接するネットワークノードを監視する。一実施形態において、監視メッセージは、クリティカルコネクションを介して、隣接するネットワークノードに所定の間隔で送信される。監視しているネットワークノードは、所定の期間の間、監視メッセージに対する応答が来るのを待つ。応答が受信されない場合、監視しているネットワークノードは、別の監視メッセージを送信し、別の所定の期間の間待機する。隣接するネットワークノードが1つまたは複数のクリティカルコネクションを介して所定の数の監視メッセージに応答できない場合、監視しているネットワークノードは、ステップ706で、クリティカルコネクションのうちの1つまたは複数が失敗していると判定する。1つまたは複数の失敗したクリティカルコネクションに応答して、監視しているネットワークノード110は、ステップ708で、隣接するネットワークノード、VFL(または他の物理リンク)、アプリケーションモジュール、制御モジュール、または隣接するネットワークノードのスイッチングモジュールが失敗したか、または動作不能になったかどうかを判定する。もしそうであれば、隣接するネットワークノードは、本明細書で説明されているように、ステップ710において、復旧動作を実行する。
仮想シャーシシステム100内のネットワークノード110は、共通仮想シャーシMACアドレスを有する単一の論理デバイスとして扱われる。したがって、外部ノード112は、2つまたはそれ以上のネットワークノード110に動作可能に結合されているVC−LAG114のすべてのリンク上でトラフィックをアクティブに転送するように動作可能である。この機能は、キャリアグレード検出およびエッジアップリンク障害さらにはネットワークノード110の障害までのコンバージェンス時間を円滑にしながら外部ノードとネットワークノードとの間のスパニングツリープロトコルを必要とすることなくネットワークノード110への外部ノード112のマルチホーミングを可能にする。仮想シャーシシステム100へのVC−LAC114のすべてのアップリンクのアクティブ転送モードの別の利点は、VC−LAC114のリンクの帯域幅の使用効率が高まることである。こうして、仮想シャーシシステム100は、1つまたは複数の異なる種類のネットワークトポロジーにおいて1つまたは複数の異なる種類のノードアーキテクチャを有するネットワークノード間に回復力を有するネットワークを実現する。
本明細書で使用されうるように、「動作可能に結合される」、「結合される」、および/または「結合する」という言い回し(複数可)は、項目間の直接的結合および/または介在する項目を介した項目間の間接的結合を含み(例えば、項目は、限定はしないが、コンポーネント、要素、回路、および/またはモジュールを含む)、ただし、間接的結合については、介在する項目は信号の情報を修正しないが、その電流レベル、電圧レベル、および/または電力レベルを調整し得る。本明細書でさらに使用され得るように、推論される結合(つまり、一方の要素が、推論によって他方の要素に結合される)は、「結合される」と同じようにして2つの項目間の直接的および間接的結合を含む。
本明細書でなおも使用され得るように、「するように動作可能である」または「動作可能に結合される」という言い回しは、項目が、対応する機能のうちの1つまたは複数を、活性化されたときに、実行するための電源接続部、入力(複数可)、出力(複数可)などのうちの1つまたは複数を含み、1つまたは複数の他の項目への推論される結合をさらに含み得ることを示す。本明細書でさらに使用され得るように、「関連付けられている」という言い回しは、個別の項目の直接的および/または間接的結合、および/または一方の項目が他方の項目の中に埋め込まれていること、または一方の項目が他方の項目と共に、または他方の項目によって使用されるように構成されていることを含む。本明細書で使用され得るように、「比較して有利である」という言い回しは、2つまたはそれ以上の項目、信号などの間の比較が所望の関係をもたすことを示す。例えば、所望の関係が、信号1の大きさが信号2の大きさより大きいという関係である場合、比較して有利であることは、信号1の大きさが信号2の大きさより大きいか、または信号2の大きさが信号1の大きさより小さいときに達成され得る。
また本明細書で使用され得るように、「処理モジュール」、「処理回路」、および/または「処理ユニット」という用語は、単一の処理デバイスまたは複数の処理デバイスであってよい。そのような処理デバイスは、マクロプロセッサ、マイクロコントローラ、デジタルシグナルプロセッサ、マイクロコンピュータ、中央演算処理装置、フィールドプログラマブルゲートアレイ、プログラム可能論理デバイス、状態機械、論理回路、アナログ回路、デジタル回路、および/または回路のハードコーディングおよび/または操作命令に基づき信号(アナログおよび/またはデジタル)を操作するデバイスであってよい。処理モジュール、モジュール、処理回路、および/または処理ユニットは、メモリおよび/または集積化メモリ要素であるか、またはさらに備えることができ、これらは単一のメモリデバイス、複数のメモリデバイス、および/または別の処理モジュール、モジュール、処理回路、および/または処理ユニットの埋め込み回路であってよい。このようなメモリデバイスは、リードオンリーメモリ、ランダムアクセスメモリ、揮発性メモリ、不揮発性メモリ、スタティックメモリ、ダイナミックメモリ、フラッシュメモリ、キャッシュメモリ、および/またはデジタル情報を記憶する任意のデバイスであってよい。処理モジュール、モジュール、処理回路、および/または処理ユニットが複数の処理デバイスを備える場合、処理デバイスは集中的に配置され得るか(例えば、有線および/またはワイヤレスバス構造を介して直接的に1つに結合される)、または分散配置にすることができる(例えば、ローカルエリアネットワークおよび/またはワイドエリアネットワークを介した間接的結合を用いるクラウドコンピューティング)ことに留意されたい。さらに、処理モジュール、モジュール、処理回路、および/または処理ユニットが、その機能の1つまたは複数を、状態機械、アナログ回路、デジタル回路、および/または論理回路を介して実装する場合、対応する操作命令を記憶するメモリおよび/またはメモリ要素は、状態機械、アナログ回路、デジタル回路、および/または論理回路を含む回路内に埋め込まれるか、またはその回路の外部にあってもよいことに留意されたい。また、メモリ要素は、図の1つまたは複数に示されているステップおよび/また機能のうちの少なくともいくつかに対応するハードコーディングおよび/または操作命令を記憶し、処理モジュール、モジュール、処理回路、および/または処理ユニットは、これらを実行することにさらに留意されたい。そのようなメモリデバイスまたはメモリ要素は、製造品に含まれ得る。
本発明は、指定された機能の実行およびこれらの機能の関係を示す方法ステップの助けを借りて説明されている。これらの機能構成ブロックおよび方法ステップの境界および順序は、説明の便宜のために本明細書で任意に定義されている。代替的境界および順序は、指定された機能および関係が適切に実行される限り定義され得る。したがって、そのような代替的境界または順序はどれも、請求されている発明の範囲および精神のうちにある。さらに、これらの機能構成ブロックの境界は、説明の便宜のために任意に定義されている。代替的境界は、特定の重要な機能が適切に実行される限り定義される可能性がある。同様に、流れ図ブロックも、いくつかの重要な機能性を例示するために本明細書において任意に定義され得る。使用される範囲において、流れ図ブロックの境界および順序は、他の何らかの方法で定義されている可能性もあり、それでもその特定の重要な機能性を実行することができる。したがって、機能構成ブロックおよび流れ図ブロックの両方および順序のそのような代替的定義は、請求されている発明の範囲および精神のうちにある。当業者であれば、機能概略ブロック、ならびに本明細書の他の例示的なブロック、モジュール、およびコンポーネントは、例示されているように実装され得るか、または離散コンポーネント、特定用途向け集積回路、適切なソフトウェアおよび同様のものを実行するプロセッサ、またはこれらの任意の組み合わせで組み合わされるか、または分離され得ることが理解されよう。
本発明は、少なくとも一部は1つまたは複数の実施形態に関して本明細書で説明されている。一実施形態は、本発明、その一態様、その特徴、その概念、および/またはその例を示すため本明細書で説明されている。本発明を具現化する装置、製造品、機械、および/またはプロセスの物理的実施形態は、本明細書で説明されている実施形態のうちの1つまたは複数を参照しつつ説明されている態様、特徴、概念、例などのうちの1つまたは複数を備えることができる。さらに、図から図へ移る間に、これらの実施形態は、同じまたは異なる参照番号を使用し得る同じ、または類似の名前の機能、ステップ、モジュールなどを組み込むものとしてもよく、また、したがって、機能、ステップ、モジュールなどは、同じ、もしくは類似の機能、ステップ、モジュールなど、または異なるものであってもよい。
特に断りのない限り、本明細書に提示されている図中の要素への、要素からの、および/または要素間の信号は、アナログまたはデジタル、連続時間または離散時間、およびシングルエンドまたは差動であってよい。例えば、信号経路が、シングルエンド経路として示されている場合、これは、差動信号経路も表す。同様に、信号経路が、差動経路として示されている場合、これは、シングルエンド信号経路も表す。本明細書において1つまたは複数の特定のアーキテクチャが説明されているが、図に明示されていない1つまたは複数のデータバス、要素間の直接接続、および/または他の要素間の間接結合を使用する他のアーキテクチャも同様に実装され得る。
「モジュール」という用語は、本発明のさまざまな実施形態の説明で使用されている。モジュールは、本明細書で説明されているような1つまたは複数の機能を実行するように動作可能な処理モジュール(上で説明されているような)、機能ブロック、ハードウェア、および/またはメモリ上に記憶されているソフトウェアを含む。モジュールがハードウェアを介して実装される場合、ハードウェアは、ソフトウェアおよび/またはファームウェアと独立して、および/または連携して動作し得る。モジュールがメモリ内に記憶されているソフトウェアとして実装される場合、モジュールが、処理モジュールもしくは他のハードウェアを使用してモジュール内のメモリに記憶されているソフトウェアを実行し本明細書で説明されているような機能を実行するように動作可能である。本明細書で説明されているモジュールは、1つまたは複数のサブモジュールを備えるものとしてよく、それぞれは1つまたは複数のモジュールであるか、1つまたは複数の他のモジュールに組み込まれ得るか、または1つまたは複数の他のモジュールを備えるものとしてよい。
本発明のさまざまな機能および特徴の特定の組み合わせが、本明細書で明示的に説明されているが、これらの特徴および機能の他の組み合わせも同様に可能である。本明細書で説明されている実施形態は、説明されている特定の例によって制限されず、他の組み合わせおよび実施形態を含み得る。