説明

動的に拡張可能な仮想スイッチの装置および方法

動的に拡張可能な仮想スイッチの装置および方法。装置または仮想スイッチは、少なくとも1つのルータおよびデータ構造を有する。ルータは、1つ以上の仮想ネットワークインタフェースカード(VNIC)間の接続を組織して仮想ネットワークを形成することを目的として、データ構造を使用する。仮想スイッチは、また、データフレームのVNICノードをそのユニークなIDによって特定し、仮想ネットワークヘッドへのポインタを得るためにユニークなIDを要素の集合へのインデックスとして使用し、仮想ネットワークヘッドに関連付けられたVNICノードリスト内の、そのユニークなIDに関係するVNICノードを除く全てのVNICノードに対してデータフレームを転送する。


【発明の詳細な説明】
【背景技術】
【0001】
1つの物理プラットフォームは、複数の仮想ネットワークに分離されうる。このとき、物理プラットフォームは、少なくとも1つの仮想マシンモニタ(VMM)を含む。従来のVMMは、概して、コンピュータにおいて実行され、かつ、他のソフトウェアに対して1つ以上の仮想マシン(VM)のアブストラクションを提供する。各VMは、集合的にゲストソフトウェアと称される自身の「ゲストオペレーティングシステム」(すなわち、VMMによってホストされるオペレーティングシステム(OS))およびその他のソフトウェアを実行する、自己完結のプラットフォームとして機能しうる。
【0002】
VM内で実行されるプロセスには、いくつかのハードウェアリソースのアブストラクションが提供され、また、これらのプロセスは、システム内の他のVMを認識しなくてもよい。全てのVMは、自身に対して割り当てられたハードウェアリソースに対してフルコントロールを有すると考える。VMMは、プロセッサ、入力/出力(I/O)デバイス、およびメモリを含む、しかしこれらに限定されないシステムリソースの管理、および、VM間における調停を適切に行う責任を負う実体であってもよい。
【0003】
ネットワークインタフェースカード(NIC)の仮想化は、VMに対して物理NICのアブストラクションを提供するための技術である。仮想化によって、同一の物理NICが、複数のVMによって共有されることができる。更に、NICの仮想化は、VMに対して同一物理NICの複数のインスタンスが提供されることを可能にする。例えば、システムは1つの物理NICを有していても、VMは、それぞれ物理プラットフォーム内の異なるネットワークおよび/または物理NICが接続された外部ネットワークをインタフェースで接続する、複数の仮想NIC(VNIC)を認識しうる。実際には、システム内におけるVM間通信を使用可能にすることを目的として、実際の物理NICが存在する必要は無い。VMに提供されるVNICは、実際の物理NICとは完全に異なってもよいので、実際の物理ハードウェアに存在しない機能をVMに提供することを可能にしている。
【0004】
1つの物理プラットフォームにおける、仮想ネットワークの総数、および、1つの仮想ネットワークに対するVMの最大数には制限がある。更に、仮想ネットワークの再構成は、影響を受けるVMおよびVMM全体の再起動を必要とする、1つ以上のVMの1つの仮想ネットワークから他の仮想ネットワークへの移動を含むので、仮想ネットワークは、VMMのランタイムに再構成されることができない。
【0005】
仮想スイッチは、複数の仮想ネットワーク間における情報またはデータフレームのルーティングを行う、スイッチ機能を提供することを目的として使用されうる。仮想スイッチは、概して、データフレームが送信されてきたVNICのMACアドレス、または、データフレーム自体に保存されたMACアドレスによって、データフレームのソースVNICノードを特定する。すべての悪意のあるソフトウェア(例:VMで実行されるゲストOS)は、MACアドレスをスプーフすることができるので、データフレームの受信ノードに、データフレームが実際のソースVNICノードとは異なるソースVNICノードから送信されてきたというように認識させることができる。MACアドレスのスプーフィングは、仮想ネットワークの整合性を損なう。
【0006】
本発明は、下記の説明および本発明の実施形態を説明するために使用される添付図面を参照することによって、最も良く理解されうる。
【図面の簡単な説明】
【0007】
【図1】本発明のいくつかの実施形態が動作しうる仮想マシン環境の一実施形態を示す図である。
【0008】
【図2】本発明の一実施形態による仮想スイッチデータ構造を示す図である。
【0009】
【図3】新規の仮想ネットワークを作成する処理の一実施形態を示すフロー図である。
【0010】
【図4】既存の仮想ネットワークを削除する処理の一実施形態を示すフロー図である。
【0011】
【図5】本発明のある実施形態による既存の仮想ネットワークを削除する動作を示す図である。
【0012】
【図6】特定の仮想ネットワークにVNICを追加する処理の一実施形態を示すフロー図である。
【0013】
【図7】特定の仮想ネットワークにVNICを追加する動作を示す図である。
【0014】
【図8】特定の仮想ネットワークからVNICを削除する処理の一実施形態を示すフロー図である。
【0015】
【図9】スプーフィングの可能性を回避するデータフレーム・ルーティング・スキームにおける処理の一実施形態を示すフロー図である。
【発明を実施するための最良の形態】
【0016】
動的に拡張可能な仮想スイッチの装置および方法が説明される。本発明の仮想スイッチは、VMまたはVMMを再起動する必要なくランタイムに仮想ネットワークを作成、削除、または再構築する能力を提供する。更に、仮想スイッチは、仮想ネットワークに接続されることができるVMの数について固定の制限を課さない。仮想スイッチは、仮想ネットワークの総数についても制限を課さない。また、仮想スイッチは、悪意のあるソフトウェアがVMM管理者によって設定された仮想ネットワークの分離を損なわないことを保証する。以下の説明では、本発明を説明するために多くの特定の詳細が提示される。しかし、当業者にとっては、本発明の実施形態がこれらの詳細を必要とすることなく実施可能であることは明白である。
【0017】
本発明の実施形態は、ソフトウェア、ファームウェア、ハードウェア、または種々の技術の組み合わせによって実装されうる。例えば、いくつかの実施形態では、本発明は、本発明による処理を実行するためにコンピュータ(またはその他の電子デバイス)をプログラムするために使用されうる命令群が保存された、マシンまたはコンピュータによって読み取り可能な媒体を含むコンピュータプログラム製品またはソフトウェアとして提供されてもよい。他の実施形態では、本発明の方法は、本発明の方法を実行するための、ハードウェアによって制御された論理を含む特定のハードウェアコンポーネント、または、プログラムされたコンピュータコンポーネントおよびハードウェアコンポーネントの全ての組み合わせによって実行されてもよい。
【0018】
このように、マシン読み取り可能な媒体は、マシン(例:コンピュータ)によって読み取り可能な形態で情報を保存または送信するいかなる機構を含んでもよい。これらの機構は、フロッピーディスク、光ディスク、コンパクト・ディスク・リード・オンリー・メモリ(CD−ROM)、磁気光ディスク、リード・オンリー・メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、消去可能プログラマブル・リード・オンリー・メモリ(EPROM)、電気的消去可能リード・オンリー・メモリ(EEPROM)、磁気または光カード、フラッシュメモリ、インターネットによる転送、電気、光、音波、またはその他の形態の伝播信号(例:搬送波、赤外線信号、デジタル信号、など)などを含み、しかし、これらに限定されない。新しいタイプの機構が開発されるにつれて、本発明の特定の適用により、説明の内容に対して他のタイプの機構が追加または代用されてもよい。
【0019】
以下の詳細な説明におけるいくつかの部分は、コンピュータシステムのレジスタまたはメモリ内のデータビットの操作に関するアルゴリズムおよび記号表現の形で説明される。これらのアルゴリズムの説明および表現は、データ処理分野の当業者によって、技術内容の本質を他の当業者に対して最も効率的に伝えるために使用される方法である。アルゴリズムは、本明細書では、また一般的に、期待される結果に至る操作の自己矛盾無き順序であると考えられる。操作は、物理的な数量に対する物理的な操作を必要とするものであってもよい。通常、必ずしも必要ではないが、これらの数量は、保存、転送、結合、比較、および他の操作がされることが可能な電気または磁気の信号の形態をとる。これらの信号をビット、値、要素、記号、文字、言葉、数字、またはそのような形で参照することは、主に広く使われていることを理由として、便利であることが判明している。
【0020】
しかし、上述および同様の用語は、適切な物理的な数量に関連付けられたものであって、これらの数量に適用される単に便利なラベルであると理解されるべきである。特に記述が無い限り、下記の説明から明白であるように、説明において使用される「処理」、「コンピューティング」、「計算」、「判定」のような言葉は、コンピュータシステムのレジスタおよびメモリ内の物理的な(電子の)量として表現されるデータを操作して、コンピュータシステムのメモリまたはレジスタ、もしくは、その他の情報を保存、転送、または表示するデバイス内で物理的な量として同様に表現される他のデータに変換する、コンピュータシステムまたは同様の電子コンピュータデバイスの動作および動作および処理を指す。
【0021】
本明細書全体における「一実施形態」または「ある実施形態」は、本発明の実施形態に関連して説明される特定の機能、構造、または性質が少なくとも本発明の一実施形態に含まれることを意味する。このように、本明細書全体の多様な箇所に見られる「一実施形態では」または「ある実施形態では」の表現は、必ずしも同一の実施形態を指していない。更に、特定の機能、構造、または性質は、1つ以上の実施形態においてあらゆる適切な方法で組み合わされてもよい。
【0022】
実施形態に関する以下の詳細な説明では、本発明を説明する手法として、本発明が実施されうる特定の実施形態を示す添付図面への参照がなされる。添付図面では、数字などはいくつかの図において一貫して実質的に同様のコンポーネントを説明する。これらの実施形態は、当業者による本発明の実施を可能にするために十分な詳細まで説明される。本発明の範囲から逸脱することなく、他の実施形態が使用されてもよく、また、構造的、論理的、および電気的な変更が加えられてもよい。
【0023】
図1は、本発明のいくつかの実施形態が動作しうる動的に拡張可能な仮想スイッチの環境の一実施形態を示す図である。図1に示される特定のコンポーネントは、本発明に適した構成の一例を表すものであって、本発明を限定するものではない。
【0024】
図1を参照すると、動的に拡張可能な仮想スイッチの環境100は、1つ以上のVM102から112、VMM114、およびプラットフォームハードウェア116を有し、また、必ずしもこれらに限定されない。図1には6つのVMが示されるが、環境100にはいかなる数のVMが存在してもよいと理解される。次に、これらの各コンポーネントについて詳細に説明する。
【0025】
VM102から112のそれぞれは、1つ以上のVNICを有する。例えば、VM102はVNIC1およびVNIC2を有し、VM106はVNIC5のみを有する。図1の各VNICはユニークなIDを有する。以下の説明では、VNIC1は1のIDを有し、VNIC2は2のIDを有し、VNIC3は3のIDを有する、というように仮定する。
【0026】
NICの仮想化は、VMに対して物理NICのアブストラクションを提供するための技術である。仮想化によって、同一の物理NICは、複数のVMによって共有されることができる。各VMは、それぞれ自身が物理NICを所有すると認識する。更に、NICの仮想化は、同一物理NICの複数のインスタンスがVMに提供されることを可能にする。例えば、システムが1つの物理NICを有していても、VMは、それぞれが物理マシン内の異なるネットワークおよび/または物理NICが接続された外部ネットワークをインタフェースで接続する、複数のVNICを認識しうる。本発明の一実施形態では、VNIC1から8は、プラットフォームハードウェア116のネットワークインタフェースカード(NIC)128のアブストラクションである。
【0027】
VMM144は、仮想スイッチ118を有する。仮想スイッチ118は、ルータ120、122、および124の集合と、データ構造126とを有する。図1には3つのルータが示されるが、仮想スイッチ118にはいかなる数のルータが存在してもよいと理解される。ルータ120、122、および124は、以下に詳細に説明されるように、VM102から112のVNIC間における接続を組織して種々の仮想ネットワークを形成することを目的として、データ構造126を使用する。本発明の一実施形態では、仮想スイッチ118は、VMM114によって使用される仮想化モデル(例:ハイパーバイザ、ホストベースド、ハイブリッド、など)に関する知識を有しない。新しいタイプの仮想化モデルが開発されるにつれて、本発明の特定の適用により、説明の内容に対して他のタイプの仮想化モデルが追加または代用されてもよい。
【0028】
プラットフォームハードウェア116は、NIC128を有する。NIC128は、物理ネットワーク130に接続される。プラットフォームハードウェア116は、パーソナルコンピュータ(PC)、メインフレーム、ハンドヘルドデバイス、ポータブルコンピュータ、セットアップボックス、またはその他いかなるコンピュータシステムであってもよい。プラットフォームハードウェア116は、1つ以上のプロセッサおよびメモリ(図1には図示されない)を有してもよい。更に、プラットフォームハードウェア116は、メモリおよびその他の種々の入力/出力デバイス(図1には図示されない)を含んでもよい。
【0029】
プラットフォームハードウェア116のプロセッサは、ハイパースレッド、SMP、マルチコア、マイクロプロセッサ、デジタルシグナルプロセッサ、マイクロコントローラ、またはそれに類似するもの、もしくはこれらの組み合わせのような、ソフトウェアを実行することができるいかなるタイプのプロセッサであってもよい。新しいタイプのプロセッサが開発されるにつれて、環境100に対する本発明の特定の適用により、説明の内容に対して他のタイプのプロセッサが追加または代用されてもよい。本発明の方法の実施形態を実行するためのプロセッサは、マイクロコード、マクロコード、ソフトウェア、プログラマブルロジック、ハードウェアによって制御される論理などを含んでもよく、また、必ずしもこれらに限定されない。
【0030】
プラットフォームハードウェア116のメモリは、いかなるタイプの記録可能/記録不可能なメディア(例:ランダム・アクセス・メモリ(RAM)、リード・オンリー・メモリ(ROM)、磁気ディスクストレージメディア、光ストレージメディア、フラッシュメモリデバイスなど)であってもよく、また、電気、光、音波、またはその他の形式の伝播信号(例:搬送波、赤外線信号、デジタル信号など)、上記デバイスの組み合わせ、または、プロセッサによって読み取り可能なその他いかなるタイプのマシン媒体であってもよい。新しいタイプの記録可能/記録不可能なメディアが開発されるにつれて、本発明の特定の適用により、説明の内容に対して他のタイプの記録可能/記録不可能なメディアが追加または代用されてもよい。メモリは、本発明の実施形態による方法を実行する命令を保存してもよい。
【0031】
環境100では、プラットフォームハードウェア116は、例えば通常のオペレーティングシステム(OS)またはVMM114のような仮想マシンモニタ(VMM)を実行しうるコンピュータプラットフォームを備える。VMM114は、概してソフトウェアによって実装されるが、上位ソフトウェアに対して最小限のマシンインタフェースをエミュレートおよびエクスポートしてもよい。このような上位ソフトウェアは、通例のまたはリアルタイムOSを含んでもよく、限定されたオペレーティングシステムの機能を有する大きく機能を取り除かれたオペレーティング環境であってもよく、または、従来のOSの機能を有しなくてもよい。あるいは、例えば、VMM114は、他のVMMの内部または他のVMMの上で実行されてもよい。VMMおよびその典型的な特徴と機能は、当業者によって広く知られており、例えばソフトウェア、ファームウェア、ハードウェア、または種々の技術の組み合わせによって実装されうる。
【0032】
本発明の一実施形態では、仮想スイッチ118の各ルータは、関連するVNICと共に仮想ネットワークを表す。このように、ルータ120、VM102のVNIC2、およびVM104のVNIC3は1つの仮想ネットワークを表し、ルータ122、VM104のVNIC4、VM106のVNI5、およびVM108のVNIC6は第2の仮想ネットワークを表し、ルータ124、VM110のVNIC7、およびVM112のVNIC8は第3の仮想ネットワークを表す。VM102のVNIC1は、(NIC128を経由して)物理ネットワーク130に接続される、図1に示される唯一のVNICである。図1には4つの仮想ネットワークが示されるが、環境100にはいかなる数の仮想ネットワークが存在してもよいと理解される。
【0033】
仮想スイッチデータ構造126は、図2を参照して次に更に説明される。上述のように、ルータ120、122、および124は、VM102から112のVNIC間における接続を組織して環境100において種々の仮想ネットワークを形成することを目的として、データ構造126を使用する。データ構造126は、VNIC ID配列202および仮想ネットワークヘッドリスト204を有する。これらについて、以下に詳細に説明する。
【0034】
本発明の一実施形態では、図1の各VNICは、ユニークなIDを有する。以下の説明では、VNIC1は1のIDを有し、VNIC2は2のIDを有し、VNIC3は3のIDを有する、というように仮定する。各ユニークなVNIC IDは、VNIC ID配列202内の要素へのインデックスとなる。VNIC ID配列202内の要素は、仮想ネットワークヘッドへのポインタと、実際のVNICデータ構造(図2には図示されない)とを有する。各仮想ネットワークヘッドは、VNICノードのダブルリンクドリストへのポインタを有する。各VNICノードは、VNICのID(すなわち、VNIC ID配列202内の要素へのインデックス)を有する。
【0035】
本発明の一実施形態では、図1を参照した上記の説明の通り、VM102のVNIC1は、(NIC128を介して)物理ネットワーク130に接続された唯一のVNICである。図2の仮想ネットワークは、(仮想ネットワークヘッドリスト204の)仮想ネットワークヘッド1へのポインタを有するVNIC ID配列202内の要素1によって、および、(VNIC1を表す)1のIDを含むVNICノードのダブルリンクドリストへのポインタを有する仮想ネットワークヘッド1によって示される。
【0036】
また、図1を参照した上述の説明の通り、ルータ120、VM102のVNIC2、およびVM104のVNIC3は、もう1つの仮想ネットワークを作成する。この仮想ネットワークは、仮想ネットワークヘッド2へのポインタをそれぞれ有するVNIC ID配列202内の要素2および3によって、および、(VNIC2およびVNIC3を表す)2および3のIDを含むVNICノードのダブルリンクドリストへのポインタを有する仮想ネットワークヘッド2によって示される。図1の他の仮想ネットワークに対する同様の説明が図2に示される。
【0037】
本発明の一実施形態では、仮想スイッチデータ構造126は、VM102から112および/またはVMM114を再起動することなく、仮想ネットワークに対する操作を動的に実行するために使用される。これらの操作は、(1)新規仮想ネットワークの作成、(2)既存仮想ネットワークの削除、(3)特定の仮想ネットワークへのVNICの追加、および(4)特定の仮想ネットワークからのVNICの削除を含み、また必ずしもこれらに限定されない。これらの操作の実施形態は、図3から図8を参照して以下に説明される。
【0038】
図3は、新規仮想ネットワークを作成する処理の一実施形態を示すフロー図である。図3を参照すると、処理は、新規仮想ネットワークヘッドが作成される、処理ブロック302から開始する。処理ブロック304において、新規に作成された仮想ネットワークヘッドは、仮想ネットワークヘッドリスト204に追加される。図3の処理は、この時点で終了する。
【0039】
図4は、既存の仮想ネットワークを削除する処理の一実施形態を示すフロー図である。以下の説明では、仮想ネットワーク3が図2の仮想スイッチデータ構造126から削除されると仮定する。この説明は図5に示される。
【0040】
図4を参照すると、処理は、VNIC ID配列202内の全てのVNIC ID要素が、削除される仮想ネットワークヘッドから関連付けを解消される、処理ブロック402から開始する。本説明では、この処理はVNIC ID配列202(図5に図示される)内の要素4、5、および6からのポインタの削除を含む。
【0041】
処理ブロック404において、削除される仮想ネットワークヘッドのVNICノードに対応するダブルリンクドリストが削除される。この説明では、この処理は、仮想ネットワークヘッド3(図5にも図示される)からのVNICノードのダブルリンクドリストの削除を含む。
【0042】
処理ブロック406において、仮想ネットワークヘッドリスト204から仮想ネットワークヘッドが削除される。本説明では、この処理は、仮想ネットワークヘッドリスト204(図5に図示される)からの仮想ネットワークヘッド3の削除を含む。図4の処理は、この時点で終了する。
【0043】
図6は、特定の仮想ネットワークにVNICを追加する処理の一実施形態を示すフロー図である。以下の説明では、VNIC4(VNIC ID配列202内の要素4)が図2の仮想ネットワーク2に追加されると仮定する。この説明は図7に示される。
【0044】
図6を参照すると、処理は、VNIC ID配列202内のVNIC ID要素がその古い仮想ネットワークヘッドから関連付けを解消される、処理ブロック602から開始する。本説明では、要素4は、現在、仮想ネットワークヘッド3に関連付けられている。このため、要素4から仮想ネットワークヘッド3へのポインタが削除される(図7が示す通り)。
【0045】
処理ブロック604において、VNIC ID配列202内のVNIC ID要素は、その新しい仮想ネットワークヘッドから関連付けられる。本説明では、要素4から仮想ネットワークヘッド2へのポインタが作成される(図7が示す通り)。
【0046】
処理ブロック606において、新旧の仮想ネットワークヘッドに対するVNICノードのダブルリンクドリストが更新される。本説明では、VNIC4ノードは、仮想ネットワークヘッド3のダブルリンクドリストから削除され、仮想ネットワークヘッド2のダブルリンクドリストに追加される(図7が示す通り)。図6の処理は、この時点で終了する。
【0047】
図8は、特定の仮想ネットワークからVNICを削除する処理の一実施形態を示すフロー図である。図8を参照すると、処理は、VNIC ID配列202内のVNIC ID要素がその仮想ネットワークヘッドから関連付けを解消される、処理ブロック802から開始する。
【0048】
処理ブロック804において、削除されたVNICに対応するVNICノードを削除することを目的として、仮想ネットワークヘッドのVNICノードのダブルリンクドリストが更新される。図8の処理は、この時点で終了する。
【0049】
上述の通り、仮想スイッチは、複数の仮想ネットワーク間における情報またはデータフレームのルーティングを行うスイッチ機能を提供するために使用されうる。従来の仮想スイッチは、概して、データフレームが送信されてきたVNICのMACアドレス、または、データフレーム自体に保存されたMACアドレスによって、データフレームのソースVNICノードを特定する。すべての悪意のあるソフトウェア(例:VMにおいて実行するゲストOS)は、MACアドレスをスプーフすることができるので、データフレームの受信ノードにデータフレームが実際のソースVNICのノードとは異なるソースVNICノードから送信されたと認識させることができる。MACアドレスのスプーフィングは、仮想ネットワークの整合性を損なう。
【0050】
本発明の一実施形態では、仮想スイッチ118は、データフレームのソースVNICをMACアドレスではなくそのユニークなVNIC IDによって特定することにより、悪意のあるソフトウェアがMACアドレスをスプーフする可能性がある状況を克服する。仮想スイッチ118は、VMで実行されるプロセスからは認識されないVNIC IDを割り当てて使用することにより、MACアドレスのみに基づいてデータフレームを送信する悪意のあるソフトウェアのみが仮想ネットワークの整合性を損ないうることを保証する。
【0051】
図9は、スプーフィングの可能性を回避するデータフレーム・ルーティング・スキームにおける処理の一実施形態を示すフロー図である。図9を参照すると、処理は、仮想スイッチ118がデータフレームのソースVNICノードをそのユニークなIDによって特定する、処理ブロック902から開始する。
【0052】
処理ブロック904において、仮想スイッチ118は、ソースVNICノードが属する仮想ネットワークヘッドへのポインタを取得することを目的として、VNIC IDをVNIC ID配列202へのインデックスとして使用する。
【0053】
処理ブロック906において、仮想スイッチ118は、VNICノードのダブルリンクドリスト内の、ソースVNICノードを除く全てのVNICノードに対してデータフレームを転送する。図9の処理は、この時点で終了する。
【0054】
動的に拡張可能な仮想スイッチの装置および方法が説明された。上述の説明は、本発明を説明することを意図したものであって、本発明を限定することを意図していないと理解されるであろう。上記の説明を読解することにより、当業者には多くの他の実施形態が明白となる。このため、本発明の範囲は、添付の特許請求の範囲および特許請求の範囲の均等物の全ての範囲によって決定される。

【特許請求の範囲】
【請求項1】
少なくとも1つのルータと、
前記少なくとも1つのルータが、1つ以上の仮想ネットワークインタフェースカード(VNIC)間における接続を組織して仮想ネットワークを形成するために使用するデータ構造と
を備える装置。
【請求項2】
前記1つ以上のVNICのそれぞれは、同一の仮想マシン(VM)に存在する請求項1に記載の装置。
【請求項3】
前記1つ以上のVNICのそれぞれは、異なる仮想マシン(VM)に存在する請求項1に記載の装置。
【請求項4】
前記1つ以上のVNICのそれぞれは、ユニークなIDを有する請求項1に記載の装置。
【請求項5】
前記データ構造は、
前記1つ以上のVNICの前記ユニークなIDによってインデックスされる要素の集合と、
各VNICノードが前記1つ以上のVNICの前記ユニークなIDの1つを有するVNICノードリスト、および、前記要素の集合内の要素に関連付けられた仮想ネットワークヘッドを有する、仮想ネットワークヘッドリストと
を備える請求項4に記載の装置。
【請求項6】
前記要素の集合は配列である請求項5に記載の装置。
【請求項7】
前記VNICノードリストはVNICノードのダブルリンクドリストである請求項5に記載の装置。
【請求項8】
1つ以上の仮想ネットワークインタフェースカード(VNIC)間の接続を構成することを目的としてデータ構造を使用する少なくとも1つのルータと前記データ構造とによって仮想ネットワークを形成すること
を備える方法。
【請求項9】
前記1つ以上のVNICのそれぞれは、ユニークなIDを有する請求項8に記載の方法。
【請求項10】
前記データ構造は、前記1つ以上のVNICの前記ユニークなIDによってインデックスされる要素の集合と仮想ネットワークヘッドリストとを備え、前記要素の集合内の各要素は、前記仮想ネットワークヘッドリスト内の仮想ネットワークヘッドに関連付けられ、前記仮想ネットワークヘッドリスト内の前記各仮想ネットワークヘッドは、VNICノードリストに関連付けられ、前記VNICノードリスト内の各VNICノードは、前記1つ以上のVNICの前記ユニークなIDの1つを有する請求項9に記載の方法。
【請求項11】
新規仮想ネットワークを作成することを更に備える請求項10に記載の方法であって、
前記新規仮想ネットワークを作成することは、
新規仮想ネットワークヘッドを作成することと、
前記新規仮想ネットワークヘッドを前記仮想ネットワークヘッドリストに追加することと
を備える方法。
【請求項12】
1つ以上の仮想ネットワークインタフェースカード(VNIC)間の接続を組織することを目的としてデータ構造を使用する少なくとも2つのルータと前記データ構造とによって、少なくとも2つの仮想ネットワークを形成すること
を備える方法。
【請求項13】
前記1つ以上のVNICのそれぞれは、ユニークなIDを有し、前記データ構造は、前記1つ以上のVNICのユニークなIDによってインデックスされる要素の集合と仮想ネットワークヘッドリストとを備え、前記要素の集合内の各要素は前記仮想ネットワークヘッドリスト内の仮想ネットワークヘッドに関連づけられ、前記仮想ネットワークヘッドリスト内の各仮想ネットワークヘッドは、各VNICノードが前記1つ以上のVNICの前記ユニークなIDの1つを有する、VNICノードリストに関連づけられる、
請求項12に記載の方法。
【請求項14】
前記少なくとも2つの仮想ネットワークのうちの1つを削除することを更に備える請求項13に記載の方法であって、
前記仮想ネットワークを削除することは、
削除される前記仮想ネットワークを表す前記仮想ネットワークヘッドリスト内の前記仮想ネットワークヘッドを決定することと、
前記決定された仮想ネットワークヘッドに関連付けられた前記要素の集合内の各要素の関連付けを解消することと、
前記決定された仮想ネットワークヘッドに関連付けられたVNICノードリストの関連付けを解消することと、
前記仮想ネットワークヘッドリストから前記決定された仮想ネットワークヘッドを削除することと
を備える方法。
【請求項15】
前記少なくとも2つの仮想ネットワークのうちの1つからVNICを削除することを更に備える請求項13に記載の方法であって、
前記VNICを削除することは、
削除される前記VNICに関連づけられた前記仮想ネットワークを表す前記仮想ネットワークヘッドリスト内の前記仮想ネットワークヘッドを決定することと、
削除される前記VNICの前記ユニークなIDによってインデックスされる前記要素の集合内の前記要素の関連付けを前記決定された仮想ネットワークヘッドから解消することと、
削除される前記VNICの前記ユニークなIDを有する前記決定された仮想ネットワークに関連付けられた前記VNICノードリスト内の前記VNICノードを削除することと
を備える方法。
【請求項16】
前記少なくとも2つの仮想ネットワークのうちの1つにVNICを追加することを更に備える請求項13に記載の方法であって、
前記VNICを追加する方法は、
追加される前記VNICに関連付けられた前記仮想ネットワークを表す前記仮想ネットワークヘッドリスト内の前記仮想ネットワークヘッドを決定することと、
追加される前記VNICの前記ユニークなIDによってインデックスされる前記要素の集合内の前記要素を前記決定された仮想ネットワークヘッドに関連付けることと、
追加される前記VNICの前記ユニークなIDを有する前記決定された仮想ネットワークヘッドに関連付けられた前記VNICノードリストにVNICノードを追加することと
を備える方法。
【請求項17】
プロセッシングシステムによって実行されたときプロセッシングシステムに方法を実行させる命令群を有する、マシンによって読み取り可能な媒体であって、
前記方法は、
1つ以上の仮想ネットワークインタフェースカード(VNIC)間の接続を組織することを目的としてデータ構造を使用する少なくとも1つのルータと前記データ構造とによって、仮想ネットワークを形成すること
を備える媒体。
【請求項18】
前記1つ以上のVNICのそれぞれはユニークなIDを有し、前記データ構造は前記1つ以上のVNICの前記ユニークなIDによってインデックスされる要素の集合と仮想ネットワークヘッドリストとを備え、前記要素の集合内の各要素は前記仮想ネットワークヘッドリスト内の仮想ネットワークヘッドに関連付けられ、前記仮想ネットワークヘッドリスト内の前記仮想ネットワークヘッドはそれぞれVNICノードリストに関連付けられ、前記VNICノードリスト内の各VNICノードは前記1つ以上のVNICの前記ユニークなIDの1つを有する請求項17に記載のマシンによって読み取り可能な媒体。
【請求項19】
新規仮想ネットワークを作成することを更に備える請求項18に記載の媒体であって、
前記新規仮想ネットワークを作成する方法は、
新規仮想ネットワークヘッドを作成することと、
前記新規仮想ネットワークヘッドを前記仮想ネットワークヘッドリストに追加することと
を備える媒体。
【請求項20】
プロセッシングシステムによって実行されたときプロセッシングシステムに方法を実行させる命令を有する、マシンによって読み取り可能な媒体であって、
前記方法は、
1つ以上の仮想ネットワークインタフェースカード(VNIC)間の接続を組織するためにデータ構造を使用する少なくとも2つのルータと、前記データ構造とによって、少なくとも2つの仮想ネットワークを形成すること
を備える媒体。
【請求項21】
前記1つ以上のVNICのそれぞれは、ユニークなIDを有し、前記データ構造は、前記1つ以上のVNICのユニークなIDによってインデックスされる要素の集合と仮想ネットワークヘッドリストとを備え、前記要素の集合内の各要素は前記仮想ネットワークヘッドリスト内の仮想ネットワークヘッドに関連づけられ、前記仮想ネットワークヘッドリスト内の各仮想ネットワークヘッドは、各VNICノードが前記1つ以上のVNICの前記ユニークなIDの1つを有する、VNICノードリストに関連づけられる、請求項20に記載のマシンによって読み取り可能な媒体。
【請求項22】
前記少なくとも2つの仮想ネットワークのうちの1つを削除することを更に備える請求項21に記載の媒体であって、
前記仮想ネットワークを削除することは、
削除される前記仮想ネットワークを表す前記仮想ネットワークヘッドリスト内の前記仮想ネットワークヘッドを決定することと、
前記決定された仮想ネットワークヘッドに関連付けられた前記要素の集合内の各要素の関連付けを解消することと、
前記決定された仮想ネットワークヘッドに関連付けられた前記VNICノードリストの関連付けを解消することと、
前記決定された仮想ネットワークヘッドを前記仮想ネットワークヘッドリストから削除することと
を備える媒体。
【請求項23】
前記少なくとも2つの仮想ネットワークのうちの1つからVNICを削除することを更に備える請求項21に記載のマシンによって読み取り可能な媒体であって、
前記VNICを削除することは、
削除される前記VNICに関連付けられた前記仮想ネットワークを表す前記仮想ネットワークヘッドリスト内の前記仮想ネットワークヘッドを決定することと、
削除される前記VNICノードの前記ユニークなIDによってインデックスされる前記要素の集合内の前記要素の関連付けを前記決定された仮想ネットワークヘッドから解消することと、
削除される前記VNICの前記ユニークなIDを有する前記決定された仮想ネットワークヘッドに関連付けられた前記VNICノードリスト内の前記VNICノードを削除することと
を備える媒体。
【請求項24】
前記少なくとも2つの仮想ネットワークのうちの1つにVNICを追加することを更に備える請求項21に記載のマシンによって読み取り可能な媒体であって、
前記VNICを追加することは、
追加される前記VNICに関連付けられた前記仮想ネットワークを表す前記仮想ネットワークヘッドリスト内の前記仮想ネットワークヘッドを決定することと、
追加される前記VNICの前記ユニークなIDによってインデックスされる前記要素の集合内の前記要素を前記決定された仮想ネットワークヘッドに関連付けることと、
追加される前記VNICの前記ユニークなIDを有する前記決定された仮想ネットワークヘッドに関連付けられた前記VNICノードリストにVNICノードを追加することと
を備える媒体。
【請求項25】
データフレームのソース仮想ネットワークインタフェースカード(VNIC)ノードをそのユニークなIDによって識別することと、
仮想ネットワークヘッドへのポインタを取得するために前記ユニークなIDを要素の集合へのインデックスとして使用することと、
前記仮想ネットワークヘッドに関連付けられたVNICノードリスト内の、前記ユニークなIDに関連するVNICノードを除いた全てのVNICノードに対して前記データフレームを転送することと
を備える方法。
【請求項26】
前記要素の集合は配列であって、かつ、前記VNICノードリストはVNICノードのダブルリンクドリストである請求項25に記載の方法。
【請求項27】
データフレームのソース仮想ネットワークインタフェースカード(VNIC)ノードをそのユニークなIDによって識別し、仮想ネットワークヘッドへのポインタを取得するために前記ユニークなIDを要素の集合へのインデックスに使用し、前記仮想ネットワークヘッドに関連付けられたVNICノードリスト内の、前記ユニークなIDに関連するVNICノードを除いた全てのVNICノードに対して前記データフレームを転送する仮想スイッチを備える装置。
【請求項28】
前記要素の集合は配列であって、かつ、前記VNICノードリストはVNICノードのダブルリンクドリストである請求項27に記載の装置。
【請求項29】
プロセッシングシステムによって実行されたときプロセッシングシステムに方法を実行させる命令を有する、マシンによって読み取り可能な媒体であって、
前記方法は、
データフレームのソース仮想ネットワークインタフェースカード(VNIC)ノードをそのユニークな識別子によって識別することと、
仮想ネットワークヘッドへのポインタを取得することを目的として、前記ユニークなIDを要素の集合へのインデックスとして使用することと、
前記仮想ネットワークヘッドに関連付けられたVNICノードリスト内の、前記ユニークなIDに関連するVNICノードを除く全てのVNICノードに対して前記データフレームを転送することと
を備える媒体。
【請求項30】
前記要素の集合は配列であって、かつ、前記VNICノードリストはVNICノードのダブルリンクドリストである請求項29に記載のマシンによって読み取り可能な媒体。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公表番号】特表2007−522583(P2007−522583A)
【公表日】平成19年8月9日(2007.8.9)
【国際特許分類】
【出願番号】特願2006−553133(P2006−553133)
【出願日】平成17年1月21日(2005.1.21)
【国際出願番号】PCT/US2005/001602
【国際公開番号】WO2005/083946
【国際公開日】平成17年9月9日(2005.9.9)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.フロッピー
【出願人】(591003943)インテル・コーポレーション (1,101)