(57)【特許請求の範囲】
【請求項１】
ソフトウェアによる仮想ハブを形成する中継装置と、前記仮想ハブを経由して仮想ネットワーク通信を行う複数のクライアント端末と、を具備するネットワーク仮想化システムにおいて、
少なくとも１つのクライアント端末は、データのキャプチャ処理を行う第１のキャプチャ処理手段を具備し、この第１のキャプチャ処理手段は、
キャプチャ処理の結果を表示デバイスに出力する手段と、
前記キャプチャ処理を行なわずに、当該クライアント端末の記憶領域に保存されているキャプチャデータを表示デバイスに出力するモードの設定を可能とする手段と、
当該クライアント端末の記憶領域に保存されているキャプチャデータを取得せずに、前記仮想ハブの記憶領域に保存されているキャプチャデータを取得するモードの設定を可能とする手段とを具備し、
前記クライアント端末は、前記仮想ハブに対しデータのキャプチャ処理に関する要求を行う処理要求手段を具備し、当該処理要求手段は、
前記仮想ハブ上の、当該クライアント端末を収容するポート以外の全ポート間、或いは一部のポート間のトラフィックを、当該クライアント端末を収容するポートへミラーリングするモードの設定を可能とする手段と、
前記仮想ハブ上の、当該クライアント端末を収容するポートで、フレームに対するフィルタ設定および当該設定に基づくフィルタリングを行なうモードの設定を可能とする手段と、
前記仮想ハブ上の、当該クライアント端末を収容するポートで、キャプチャデータを当該クライアント端末へ送出せずに、前記仮想ハブの記憶領域に保存するリダイレクトを行なうモードの設定を可能とする手段と、
前記仮想ハブ上の、当該クライアント端末を収容するポートでキャプチャ処理を行なわずに、既にキャプチャされ前記仮想ハブの記憶領域に保存されているキャプチャデータを当該クライアント端末に送信するモードの設定を可能とする手段とを具備し、
前記仮想ハブは、任意のクライアント端末からの要求に応じたキャプチャ処理を行う第２のキャプチャ処理手段を具備し、この第２のキャプチャ処理手段は、
要求元のクライアント端末を収容するポートへ、他の全てのポート間、或いは一部のポート間のトラフィックをミラーリングする手段と、
要求元のクライアント端末を収容するポートで、要求元のクライアント端末へ送出する前のフレーム、或いは、当該仮想ハブの記憶領域に保存する前のフレームに対するフィルタ設定および当該設定に基づくフィルタリングを行なう手段と、
要求元のクライアント端末を収容するポートで、キャプチャデータを要求元のクライアント端末へ送出する手段と、
要求元のクライアント端末を収容するポートで、キャプチャデータを要求元のクライアント端末へ送出せずに、当該仮想ハブの記憶領域に保存するリダイレクトを行なう手段と、
要求元のクライアント端末を収容するポートから当該仮想ハブに流入するトラフィックに対しては、キャプチャデータを当該仮想ハブの記憶領域に保存するリダイレクトを行う場合を除いては、キャプチャ処理の対象外とする手段と、
要求元のクライアント端末へ、既にキャプチャされ当該仮想ハブの記憶領域に保存されているキャプチャデータを送信する手段と、
要求元のクライアント端末へ、要求元のクライアント端末宛のユニキャストフレーム、ブロードキャストフレーム、マルチキャストフレームを、要求元のクライアント端末が要求するフィルタリングもしくはリダイレクトの設定に関わらず、送信する手段とを具備する
ことを特徴とするネットワーク仮想化システム。
【請求項２】
請求項１に記載のネットワーク仮想化システムにおいて、
前記クライアント端末のカーネルに備えられるトンネルインタフェース、および、前記クライアント端末のユーザランドに備えられる仮想ネットワークインタフェースユーザプログラム部によって、前記仮想ネットワーク通信を行なうための仮想ネットワークインタフェースが実現され、
前記クライアント端末のユーザランドに備えられるプログラム群によって、前記仮想ハブに対する前記フィルタリング、前記ミラーリング、前記リダイレクトの各設定およびこれら設定の解除の各要求、並びに、前記仮想ハブの記憶領域に保存されているキャプチャデータの取得が実現され、
前記ユーザランドに備えられるラッパプログラムによって、前記プログラム群が呼び出され、
前記ラッパプログラムは、
前記プログラム群を起動し、これらプログラム群の動作の結果に応じて、処理を終了するか否かの判断、および当該クライアント端末でのキャプチャ処理の設定および指示を行なうキャプチャプログラムを起動するか否かの判断を行なう手段と、
前記キャプチャプログラムを起動する場合に、前記フィルタ設定の結果として得られるパラメータもしくはオペレータが指定するパラメータを用いて前記キャプチャプログラムを起動する手段と、
オペレータからの終了指示があった場合に、前記仮想ハブ上の各設定を解除するための所定の終了プログラムを起動し、上記仮想ハブ上の設定を解除し、前記キャプチャプログラムを終了させる手段と
を具備することを特徴とするネットワーク仮想化システム。
【請求項３】
請求項１に記載のネットワーク仮想化システムにおいて、
前記クライアント端末のカーネルに備えられるトンネルインタフェース、および、前記クライアント端末のユーザランドに備えられる仮想ネットワークインタフェースユーザプログラム部によって、前記仮想ネットワーク通信を行なうための仮想ネットワークインタフェースが実現され、
前記クライアント端末のユーザランドに備えられるプログラム群によって、前記仮想ハブに対する前記フィルタリング、前記ミラーリング、前記リダイレクトの各設定およびこれら設定の解除の各要求、並びに、前記仮想ハブの記憶領域に保存されているキャプチャデータの取得が実現され、
前記ユーザランドには、当該クライアント端末でのキャプチャ処理の設定および指示を行なうキャプチャプログラムと、前記仮想ネットワークインタフェースを構成する仮想ネットワークインタフェースユーザプログラム部とが備えられ、前記カーネルには、当該クライアント端末でのキャプチャ処理を実行するパケットキャプチャモジュールが備えられ、
前記キャプチャプログラムは、
前記仮想ハブ上での前記ミラーリングの設定もしくは前記リダイレクトの設定を行なうためのパラメータを起動時に指定可能とする手段と、
前記ミラーリングの設定もしくは前記リダイレクトの設定を行なうためのパラメータが指定された場合、当該パラメータを前記パケットキャプチャモジュールへ伝達する手段と、
前記仮想ハブの記憶領域に保存されているキャプチャデータを前記ユーザランドに備えられる所定のプログラムを通じて取得する手段と、
前記仮想ハブの記憶領域に保存するリダイレクトが設定されている場合、当該クライアント端末の記憶領域への保存処理を抑制する手段とを具備し、
前記パケットキャプチャモジュールは、
前記キャプチャプログラムから、前記ミラーリングの設定、前記リダイレクトの設定、もしくは前記フィルタ設定の伝達を受けた場合、前記トンネルインタフェースに対して待機している前記仮想ネットワークインタフェースユーザプログラム部を、前記伝達されたパラメータを用いて起動する手段と、
前記キャプチャプログラムが終了した場合、その旨をパラメータとして、前記トンネルインタフェースに対して待機している前記仮想ネットワークインタフェースユーザプログラム部を起動する手段とを具備し、
前記仮想ネットワークインタフェースユーザプログラム部は、
前記トンネルインタフェースに対して待機し、起動された場合に、前記パケットキャプチャモジュールから渡されるパラメータを元に、前記プログラム群を起動する手段を具備する
ことを特徴とするネットワーク仮想化システム。
【請求項４】
請求項１に記載のネットワーク仮想化システムにおいて、
前記クライアント端末のカーネルに備えられる擬似ネットワークインタフェース、および、ＩＰトンネリングの仕組みによって、前記仮想ネットワーク通信を行なうための仮想ネットワークインタフェースが実現され、
前記クライアント端末のカーネルスレッドによって、前記仮想ハブに対する前記フィルタリング、前記ミラーリング、前記リダイレクトの各設定およびこれら設定の解除の各要求が実現され、一方、前記クライアント端末のユーザランドに備えられるプログラム群によって、前記仮想ハブの記憶領域に保存されているキャプチャデータの取得が実現され、
前記ユーザランドには、当該クライアント端末でのキャプチャ処理の設定および指示を行なうキャプチャプログラムが備えられ、前記カーネルには、当該クライアント端末でのキャプチャ処理を実行するパケットキャプチャモジュールと、前記仮想ネットワーク通信を行なうための仮想ネットワークインタフェースを実現する擬似ネットワークインタフェースとが備えられ、
前記キャプチャプログラムは、
前記仮想ハブ上での前記ミラーリングの設定もしくは前記リダイレクトの設定を行なうためのパラメータを起動時に指定可能とする手段と、
前記ミラーリングの設定もしくは前記リダイレクトの設定を行なうためのパラメータが指定された場合、当該パラメータを前記パケットキャプチャモジュールへ伝達する手段と、
前記仮想ハブの記憶領域に保存されているキャプチャデータを前記ユーザランドに備えられる所定のプログラムを通じて取得する手段と、
前記仮想ハブの記憶領域に保存するリダイレクトが設定されている場合、当該クライアント端末の記憶領域への保存処理を抑制する手段とを具備し、
前記パケットキャプチャモジュールは、
前記キャプチャプログラムから、前記ミラーリングの設定、前記リダイレクトの設定、もしくは前記フィルタ設定の伝達を受けた場合、それを前記擬似ネットワークインタフェースに伝達する手段と、
前記パケットキャプチャモジュールが終了した場合、その旨を前記擬似ネットワークインタフェースに伝達する手段とを具備し、
前記擬似ネットワークインタフェースは、
前記キャプチャプログラムから、前記ミラーリングの設定、前記リダイレクトの設定、もしくは前記フィルタ設定の終了の伝達を受けた場合、前記カーネルスレッドを起動する手段を具備する
ことを特徴とするネットワーク仮想化システム。
【請求項５】
ソフトウェアによる仮想ハブを形成し、前記仮想ハブを経由して仮想ネットワーク通信を行う複数のクライアント端末の中の任意のクライアント端末からの要求に応じたキャプチャ処理を行う中継装置において、
要求元のクライアント端末を収容するポートへ、他の全てのポート間、或いは一部のポート間のトラフィックをミラーリングする手段と、
要求元のクライアント端末を収容するポートで、要求元のクライアント端末へ送出する前のフレーム、或いは、当該仮想ハブの記憶領域に保存する前のフレームに対するフィルタ設定および当該設定に基づくフィルタリングを行なう手段と、
要求元のクライアント端末を収容するポートで、キャプチャデータを要求元のクライアント端末へ送出する手段と、
要求元のクライアント端末を収容するポートで、キャプチャデータを要求元のクライアント端末へ送出せずに、当該仮想ハブの記憶領域に保存するリダイレクトを行なう手段と、
要求元のクライアント端末を収容するポートから当該仮想ハブに流入するトラフィックに対しては、キャプチャデータを当該仮想ハブの記憶領域に保存するリダイレクトを行う場合を除いては、キャプチャ処理の対象外とする手段と、
要求元のクライアント端末へ、既にキャプチャされ当該仮想ハブの記憶領域に保存されているキャプチャデータを送信する手段と、
要求元のクライアント端末へ、要求元のクライアント端末宛のユニキャストフレーム、ブロードキャストフレーム、マルチキャストフレームを、要求元のクライアント端末が要求するフィルタリングもしくはリダイレクトの設定に関わらず、送信する手段と
を具備することを特徴とする中継装置。
【請求項６】
ソフトウェアによる仮想ハブを形成し、前記仮想ハブを経由して仮想ネットワーク通信を行う複数のクライアント端末の中の任意のクライアント端末からの要求に応じたキャプチャ処理を行う中継装置に適用されるプログラムであって、
要求元のクライアント端末を収容するポートへ、他の全てのポート間、或いは一部のポート間のトラフィックをミラーリングする機能と、
要求元のクライアント端末を収容するポートで、要求元のクライアント端末へ送出する前のフレーム、或いは、当該仮想ハブの記憶領域に保存する前のフレームに対するフィルタ設定および当該設定に基づくフィルタリングを行なう機能と、
要求元のクライアント端末を収容するポートで、キャプチャデータを要求元のクライアント端末へ送出する機能と、
要求元のクライアント端末を収容するポートで、キャプチャデータを要求元のクライアント端末へ送出せずに、当該仮想ハブの記憶領域に保存するリダイレクトを行なう機能と、
要求元のクライアント端末を収容するポートから当該仮想ハブに流入するトラフィックに対しては、キャプチャデータを当該仮想ハブの記憶領域に保存するリダイレクトを行う場合を除いては、キャプチャ処理の対象外とする機能と、
要求元のクライアント端末へ、既にキャプチャされ当該仮想ハブの記憶領域に保存されているキャプチャデータを送信する機能と、
要求元のクライアント端末へ、要求元のクライアント端末宛のユニキャストフレーム、ブロードキャストフレーム、マルチキャストフレームを、要求元のクライアント端末が要求するフィルタリングもしくはリダイレクトの設定に関わらず、送信する機能と
をコンピュータに実現させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばＴＣＰ／ＩＰのようなアンダーレイネットワーク上に、仮想的なイーサネット（登録商標）のようなオーバレイネットワークを構築するネットワーク仮想化システム、そのシステムに備えられる中継装置、およびその中継装置に適用されるプログラムに関する。
【背景技術】
【０００２】
例えば、ＴＣＰ／ＩＰネットワークのような既存の物理的なネットワーク（以後、「アンダーレイネットワーク」と称する）上に、ソフトウェアにて構築する仮想的なネットワークをオーバレイネットワークと呼ぶ。
【０００３】
主なオーバレイネットワーク（以後、「仮想ネットワーク」とも称する）として、仮想ローカルエリアネットワーク（以後、「仮想ＬＡＮ」と称する）がある。
【０００４】
仮想ＬＡＮとして代表的なものに、ソフトイーサ株式会社製のＳｏｆｔＥｔｈｅｒ（ＰａｃｋｅｔｉＸ）（例えば、非特許文献１，２）がある。ＳｏｆｔＥｔｈｅｒ（ＰａｃｋｅｔｉＸ）は仮想ネットワークの一例である仮想イーサネットを構築するソフトウェア群である。ＳｏｆｔＥｔｈｅｒ（ＰａｃｋｅｔｉＸ）又はこれに類似したソフトウェアでの仮想イーサネットの構築方法は例えば以下の通りである。
【０００５】
・ある計算機上にイーサネットスイッチングハブをエミュレートするソフトウェア（以後、「仮想ハブ」と称する）を動作させる（以後、仮想ハブを動作させる計算機を「サーバ」と称する。）。
【０００６】
・仮想イーサネットに参加を希望する計算機が、ソフトウェアにて構築された仮想的なネットワークインタフェース（以後、「仮想ネットワークインタフェース」と称する）を介して、仮想ハブに接続する（以後、仮想ネットワークインタフェースを動作させる計算機を「クライアント」と称する）。
【０００７】
・仮想ネットワークインタフェース−仮想ハブ間、すなわち、クライアント−サーバ間の通信には、アンダーレイネットワーク（ＴＣＰ／ＩＰネットワークなど）を使用する。
【０００８】
このような仮想イーサネットの一般的な構成を図１３に示す。
【０００９】
例えばＴＣＰ／ＩＰネットワークであるアンダーレイネットワーク１５０は、オーバレイネットワークである仮想イーサネット１５４を構築する基盤となる物理ネットワークである。アンダーレイネットワーク１５０は、ファイアウォール１５６、ルータ１５７、リンク層の通信装置（イーサネットならばハブやスイッチングハブ）により構成される。ルータ１５７は、ＴＣＰ／ＩＰネットワークを構成するネットワーク層の装置であり、一般的なものであることから、ここではその詳細な説明を割愛する。また、ファイアウォール１５６は、内部ネットワーク１６０と外部ネットワーク１６１との境界に設置されるセキュリティ装置であり、一般的なものであることからここではその詳細な説明を割愛する。
【００１０】
クライアント１５３は、仮想イーサネット１５４を構成する仮想ハブ１５１に接続する計算機であり、仮想ネットワークインタフェース１５２を介して仮想ハブ１５１に接続する。仮想ハブ１５１は、このように複数のクライアント１５３とのコネクションを保持する中継ノードとして機能する。サーバ１５５は、このような仮想ハブ１５１を配置するネットワーク仮想化装置である。本明細書では、このようなネットワーク仮想化装置であるサーバ１５５と、ネットワーク仮想化装置によって制御される端末であるクライアント１５３とを合わせてネットワーク仮想化システムと称する。仮想イーサネット１５４は、一つ又は複数の仮想ハブ１５１に、それぞれ仮想ネットワークインタフェース１５２を持った複数のクライアント１５３が接続することにより構築される。
【００１１】
また、仮想イーサネットに限らず、イーサネットにおいては、ネットワーク上を流れるイーサネットフレームのキャプチャは、ネットワーク管理（構成管理、性能管理、不具合解析など）、或いは、システム開発の場面で広く行なわれており、代表的な方法は以下のようなものである。
【００１２】
・イーサネットスイッチングハブ（或いは仮想ハブ）に接続している計算機のネットワークインタフェースドライバに対して、キャプチャすべき、或いは、キャプチャすべきでないイーサネットフレームを“フィルタ”として設定する。
【００１３】
・フィルタに設定する項目としては、送信元／宛先ＭＡＣアドレス、イーサネットタイプ、送信元／宛先ＩＰアドレス、ポート番号、上位プロトコル種別などが挙げられる。
【００１４】
・上記ネットワークインタフェースドライバは、設定されたフィルタの内容に従い、自局に到着するイーサネットフレームのキャプチャの要不要を判断し、キャプチャすべきものは、その内容を表示用フォーマットに変換後、ディスプレイデバイスに表示するか、或いは、キャプチャした内容をそのまま、ファイルシステム上のファイルに保存する。
【非特許文献１】株式会社アスキー、公式ＳｏｆｔＥｔｈｅｒ活用ガイド
【非特許文献２】ｈｔｔｐ：／／ｗｗｗ．ｓｏｆｔｅｔｈｅｒ．ｃｏｍ、ソフトイーサ株式会社ホームページ
【非特許文献３】ｈｔｔｐ：／／ｗｗｗ．ｆｒｅｅｂｉｔ．ｃｏｍ／ｅｌ／ｉｎｄｅｘ．ｈｔｍｌ、フリービット株式会社ホームページ
【発明の開示】
【発明が解決しようとする課題】
【００１５】
ここで、上記キャプチャのための従来技術では、キャプチャ対象のイーサネットフレームを指定するためのフィルタの設定、及び、フィルタリング処理はクライアント側で実施される。よって、最終的にキャプチャされるもの以外のイーサネットフレームも、クライアントまで流入してしまうこととなり、特に仮想イーサネット環境においては、仮想ハブとクライアントの、アンダーレイネットワーク上での位置関係が遠隔である場合や、仮想ハブからクライアントへ流入するイーサネットフレームが多量である場合に、アンダーレイネットワークへ多大な負荷をかけることとなる。
【００１６】
本発明は上記実情に鑑みてなされたものであり、仮想ネットワーク環境において、キャプチャ対象ではないフレームの仮想ハブからクライアントへの流入を防止し、アンダーレイネットワークへの不要な負荷を低減するネットワーク仮想化システム、中継装置、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１７】
本発明の一態様によれば、ソフトウェアによる仮想ハブを形成する中継装置と、前記仮想ハブを経由して仮想ネットワーク通信を行う複数のクライアント端末と、を具備するネットワーク仮想化システムにおいて、少なくとも１つのクライアント端末は、データのキャプチャ処理を行う第１のキャプチャ処理手段を具備し、この第１のキャプチャ処理手段は、キャプチャ処理の結果を表示デバイスに出力する手段と、前記キャプチャ処理を行なわずに、当該クライアント端末の記憶領域に保存されているキャプチャデータを表示デバイスに出力するモードの設定を可能とする手段と、当該クライアント端末の記憶領域に保存されているキャプチャデータを取得せずに、前記仮想ハブの記憶領域に保存されているキャプチャデータを取得するモードの設定を可能とする手段とを具備し、前記クライアント端末は、前記仮想ハブに対しデータのキャプチャ処理に関する要求を行う処理要求手段を具備し、当該処理要求手段は、前記仮想ハブ上の、当該クライアント端末を収容するポート以外の全ポート間、或いは一部のポート間のトラフィックを、当該クライアント端末を収容するポートへミラーリングするモードの設定を可能とする手段と、前記仮想ハブ上の、当該クライアント端末を収容するポートで、フレームに対するフィルタ設定および当該設定に基づくフィルタリングを行なうモードの設定を可能とする手段と、前記仮想ハブ上の、当該クライアント端末を収容するポートで、キャプチャデータを当該クライアント端末へ送出せずに、前記仮想ハブの記憶領域に保存するリダイレクトを行なうモードの設定を可能とする手段と、前記仮想ハブ上の、当該クライアント端末を収容するポートでキャプチャ処理を行なわずに、既にキャプチャされ前記仮想ハブの記憶領域に保存されているキャプチャデータを当該クライアント端末に送信するモードの設定を可能とする手段とを具備し、前記仮想ハブは、任意のクライアント端末からの要求に応じたキャプチャ処理を行う第２のキャプチャ処理手段を具備し、この第２のキャプチャ処理手段は、要求元のクライアント端末を収容するポートへ、他の全てのポート間、或いは一部のポート間のトラフィックをミラーリングする手段と、要求元のクライアント端末を収容するポートで、要求元のクライアント端末へ送出する前のフレーム、或いは、当該仮想ハブの記憶領域に保存する前のフレームに対するフィルタ設定および当該設定に基づくフィルタリングを行なう手段と、要求元のクライアント端末を収容するポートで、キャプチャデータを要求元のクライアント端末へ送出する手段と、要求元のクライアント端末を収容するポートで、キャプチャデータを要求元のクライアント端末へ送出せずに、当該仮想ハブの記憶領域に保存するリダイレクトを行なう手段と、要求元のクライアント端末を収容するポートから当該仮想ハブに流入するトラフィックに対しては、キャプチャデータを当該仮想ハブの記憶領域に保存するリダイレクトを行う場合を除いては、キャプチャ処理の対象外とする手段と、要求元のクライアント端末へ、既にキャプチャされ当該仮想ハブの記憶領域に保存されているキャプチャデータを送信する手段と、要求元のクライアント端末へ、要求元のクライアント端末宛のユニキャストフレーム、ブロードキャストフレーム、マルチキャストフレームを、要求元のクライアント端末が要求するフィルタリングもしくはリダイレクトの設定に関わらず、送信する手段とを具備することを特徴とするネットワーク仮想化システムが提供される。
【００１８】
本発明の別の一態様によれば、ソフトウェアによる仮想ハブを形成し、前記仮想ハブを経由して仮想ネットワーク通信を行う複数のクライアント端末の中の任意のクライアント端末からの要求に応じたキャプチャ処理を行う中継装置において、要求元のクライアント端末を収容するポートへ、他の全てのポート間、或いは一部のポート間のトラフィックをミラーリングする手段と、要求元のクライアント端末を収容するポートで、要求元のクライアント端末へ送出する前のフレーム、或いは、当該仮想ハブの記憶領域に保存する前のフレームに対するフィルタ設定および当該設定に基づくフィルタリングを行なう手段と、要求元のクライアント端末を収容するポートで、キャプチャデータを要求元のクライアント端末へ送出する手段と、要求元のクライアント端末を収容するポートで、キャプチャデータを要求元のクライアント端末へ送出せずに、当該仮想ハブの記憶領域に保存するリダイレクトを行なう手段と、要求元のクライアント端末を収容するポートから当該仮想ハブに流入するトラフィックに対しては、キャプチャデータを当該仮想ハブの記憶領域に保存するリダイレクトを行う場合を除いては、キャプチャ処理の対象外とする手段と、要求元のクライアント端末へ、既にキャプチャされ当該仮想ハブの記憶領域に保存されているキャプチャデータを送信する手段と、要求元のクライアント端末へ、要求元のクライアント端末宛のユニキャストフレーム、ブロードキャストフレーム、マルチキャストフレームを、要求元のクライアント端末が要求するフィルタリングもしくはリダイレクトの設定に関わらず、送信する手段とを具備することを特徴とする中継装置が提供される。
【００１９】
本発明の更なる別の一態様によれば、ソフトウェアによる仮想ハブを形成し、前記仮想ハブを経由して仮想ネットワーク通信を行う複数のクライアント端末の中の任意のクライアント端末からの要求に応じたキャプチャ処理を行う中継装置に適用されるプログラムであって、要求元のクライアント端末を収容するポートへ、他の全てのポート間、或いは一部のポート間のトラフィックをミラーリングする機能と、要求元のクライアント端末を収容するポートで、要求元のクライアント端末へ送出する前のフレーム、或いは、当該仮想ハブの記憶領域に保存する前のフレームに対するフィルタ設定および当該設定に基づくフィルタリングを行なう機能と、要求元のクライアント端末を収容するポートで、キャプチャデータを要求元のクライアント端末へ送出する機能と、要求元のクライアント端末を収容するポートで、キャプチャデータを要求元のクライアント端末へ送出せずに、当該仮想ハブの記憶領域に保存するリダイレクトを行なう機能と、要求元のクライアント端末を収容するポートから当該仮想ハブに流入するトラフィックに対しては、キャプチャデータを当該仮想ハブの記憶領域に保存するリダイレクトを行う場合を除いては、キャプチャ処理の対象外とする機能と、要求元のクライアント端末へ、既にキャプチャされ当該仮想ハブの記憶領域に保存されているキャプチャデータを送信する機能と、要求元のクライアント端末へ、要求元のクライアント端末宛のユニキャストフレーム、ブロードキャストフレーム、マルチキャストフレームを、要求元のクライアント端末が要求するフィルタリングもしくはリダイレクトの設定に関わらず、送信する機能とをコンピュータに実現させることを特徴とするプログラムが提供される。
【発明の効果】
【００２０】
本発明によれば、仮想ネットワーク環境において、キャプチャ対象ではないフレームの仮想ハブからクライアントへの流入を防止し、アンダーレイネットワークへの不要な負荷を低減することが可能となる。
【発明を実施するための最良の形態】
【００２１】
以下、図面を参照して、本発明の実施の形態について説明する。
【００２２】
＜各実施形態における共通事項＞
以後では３つの実施形態を示すが、全ての実施形態に共通する実施上の方針を以下に説明する。
【００２３】
1. ユーザ（オペレータ）は、既存のキャプチャプログラムをそのまま、或いは、若干の使用方法変更のみで使うことができるようにする。
【００２４】
可能な限り、ユーザに特別な手順を強いることなく実現するためである。
【００２５】
2. キャプチャを行なうクライアント端末（以後、「クライアント」と称する）上の他のアプリケーション、或いはＯＳ（オペレーティングシステム）は、キャプチャ処理の実施の有無に関わらず、通常通り、イーサネットフレームの送受信を行なうことが出来る。
【００２６】
他のアプリケーションやＯＳの挙動に影響を与えないためである。もちろん、該当クライアントをキャプチャ専用のマシンとして動作させる場合にはこの限りではない。
【００２７】
3. 中継装置としてのサーバ装置（以後、「サーバ」と称する）により形成される仮想ハブ（中継ノード）上を流れる全てのイーサネットフレーム（以後、「トラフィック」とも称する）をキャプチャ、フィルタリングの対象とすることができる。
【００２８】
通常のイーサネットスイッチングハブは、いわゆる“バス”構造ではないため、あるポートでは、該当イーサネットスイッチングハブ上を流れるイーサネットフレームのうちの一部しか観測することは出来ない。具体的には、ブロードキャストフレーム、マルチキャストフレーム、及び、そのポートに接続しているクライアントが送信元か或いは宛先であるユニキャストフレームのみ、観測可能である。
【００２９】
仮想ハブも通常動作時には、イーサネットスイッチングハブとして、つまり、前述のように動作するが、キャプチャを実行しようとしているクライアントからの特別な指示により、そのクライアントが接続している仮想ポート（仮想ハブがクライアントを収容する仮想的なポート）へは、仮想ハブ上を流れる全ての、或いは、指定のイーサネットフレームをミラーする（もしくはミラーリングする）、特別なモードを用意する。ここでいう「ミラー（もしくはミラーリング）」とは、ある場所からある場所へ転送されるフレームの複製をリアルタイムに生成しつつそれを目的のポート等へ送る処理をいう。
【００３０】
なお、後述の通り、上記ミラーされたイーサネットフレームが全てクライアントまで流入するわけではない。フィルタリング処理が行なわれると、クライアントまで流入しないものがある。
【００３１】
＜第１の実施形態＞
ここでは、クライアント１側にて、既存のキャプチャプログラムへのラッパの形により本提案の機能を実現する方法を説明する。また、仮想ハブ側での処理については、全ての実施形態にて共通であるあるが、説明の順番上、本実施形態にて詳述する。
【００３２】
図１は、本実施形態に係るネットワーク仮想化システムを構成するクライアント１の構成例を示す図である。また、図２は、本実施形態に係るネットワーク仮想化システムを構成するサーバ装置（中継装置）により形成される仮想ハブ５０の構成例を示す図である。なお、図２に示す仮想ハブ５０の構成は本実施形態固有のものではなく、全実施形態で共通である。
【００３３】
図１に示すクライアント１は、カーネル１０およびユーザランド２０を含む。カーネル１０は、物理ネットワークインタフェース１１、ネットワークインタフェースドライバ１２、イーサネット層１３、ＴＣＰ／ＩＰ１４、仮想ネットワークインタフェースカーネル部（トンネルインタフェース）１５、およびパケットキャプチャモジュール１６を有する。一方、ユーザランド２０は、仮想ネットワークインタフェースユーザプログラム部２１、ラッパプログラム２３、アプリケーションプログラム群２９などを有する。仮想ネットワークインタフェースユーザプログラム部２１は、制御モジュール２２などを含む。また、ラッパプログラム２３は、モード設定モジュール２４、フィルタ設定モジュール２５、キャプチャファイル取得モジュール２６、キャプチャプログラム２７、キャプチャ終了モジュール２８などを含む。
【００３４】
図２に示す仮想ハブ５０は、クライアント毎に対応する仮想ポート５１、イーサネットスイッチングモジュール５２、フィルタモジュール５３、制御モジュール５４、キャプチャデータ保存部５５、キャプチャファイル提供モジュール５６などを有する。また、仮想ハブ５０は、クライアント１（及び２，３，４）の仮想ネットワークインタフェースと接続する仮想的なイーサネットケーブルである仮想イーサネットコネクション６０を形成する。なお、図２中に示されるクライアント２，３，４は、図１に示すクライアント１と同じ機能を有する。
【００３５】
［構成要素の概要］
以下、図１および図２を参照して、それぞれの機能要素の概要を説明する。
【００３６】
1. クライアント１（及び２，３，４）
クライアント１は、仮想ハブ５０にアンダーレイネットワークを使用して仮想的にイーサネット接続する計算機である。本実施形態では、ＵＮＩＸ（登録商標）などのＯＳに実装されているトンネルインタフェースの仕組みを利用して仮想ネットワークインタフェースを実装したものである。図１にクライアント１の典型的なプロトコルスタック、モジュール構成を示す。
【００３７】
- 物理ネットワークインタフェース１１
物理ネットワークインタフェース１１は、いわゆるネットワークインタフェースと呼ばれているものである。
【００３８】
- ネットワークインタフェースドライバ１２
ネットワークインタフェースドライバ１２は、ネットワークインタフェースを動作させるためのＯＳ内のソフトウェアである。
【００３９】
- イーサネット層１３
イーサネット層１３は、イーサネットのプロトコルを用いた通信を行うレイヤーである。
【００４０】
- ＴＣＰ／ＩＰ１４
ＴＣＰ／ＩＰ１４は、ＩＰ及びＴＣＰまたはＵＤＰ等のトランスポート層プロトコルを用いた通信を行うレイヤーである。
【００４１】
- 仮想ネットワークインタフェースカーネル部（トンネルインタフェース）１５
仮想ネットワークインタフェースカーネル部（トンネルインタフェース）１５は、各種ＯＳなどに実装されているトンネルインタフェースであり、後述の仮想ネットワークインタフェースユーザプログラム部２１と連携し、仮想ネットワークインタフェースを構成する。
【００４２】
なお、ＯＳ、ユーザランドのプログラム群の観点では、仮想ネットワークインタフェースカーネル部（トンネルインタフェース）１５の識別名が仮想ネットワークインタフェースの識別名となる。
【００４３】
つまり、ネットワークインタフェース名を指定する必要がある場面では、仮想ネットワークインタフェースカーネル部（トンネルインタフェース）１５の識別名を使用する。
【００４４】
- パケットキャプチャモジュール１６
パケットキャプチャモジュール１６は、各種ＯＳに実装されているカーネル内のパケットキャプチャモジュールであり、後述のキャプチャプログラム２７からの設定により、イーサネットフレームのフィルタリング、キャプチャ処理を行なう。
【００４５】
通常、パケットキャプチャモジュール１６は、ネットワークインタフェースドライバ１２及びカーネル内のイーサネット層１３にて、イーサネットフレームのフィルタリング、キャプチャを行なう。
【００４６】
- 仮想ネットワークインタフェースユーザプログラム部２１
仮想ネットワークインタフェースユーザプログラム部２１は、仮想ネットワークインタフェースカーネル部（トンネルインタフェース）１５と連携し、仮想ネットワークインタフェースを構成するユーザランドのプログラムであり、イーサネットフレームを処理するイーサネット処理モジュール（不図示）、および仮想ハブ５０と制御情報をやりとりする制御モジュール２２により構成される。
【００４７】
- ラッパプログラム２３
ラッパプログラム２３は、後述のモード設定モジュール２４、フィルタ設定モジュール２５、キャプチャファイル取得モジュール２６、キャプチャプログラム２７、キャプチャ終了モジュール２８を内部的に呼び出すことで、本提案の中心部分であるフィルタリング、キャプチャ処理（本来ならばクライアント１上のパケットキャプチャモジュール１６が行なう）を仮想ハブ５０側で処理可能にするプログラムであり、オペレータは、キャプチャプログラム２７を直接使うのではなく、本プログラムを使用することとなる。
【００４８】
ラッパプログラム２３では、以下の「仮想ネットワークインタフェース」、「ミラーモード」、「フィルタ設定」、「リダイレクトモード」に関してパラメータで各種の指定を行うことが可能である。
【００４９】
* 仮想ネットワークインタフェース（パラメータ指定は必須）
イーサネットフレームのキャプチャを実行する仮想ネットワークインタフェースを指定する。
【００５０】
* ミラーモード（パラメータ指定は省略可能）
仮想ハブ５０のイーサネットスイッチングモジュール５２のモードを指定する。以下の３つのモードがある（詳細は後述）。
【００５１】
i. 通常モード（ミラーモードのパラメータ指定が省略された場合）
仮想ハブ５０は通常のイーサネットスイッチングハブとして動作する。つまり、ブロードキャストフレーム、マルチキャストフレーム、宛先がキャプチャ対象の仮想ポートに収容しているクライアントであるユニキャストフレームのみがキャプチャ対象となる。
【００５２】
ii. 全ミラーモード
仮想ハブ５０の全てのトラフィックをキャプチャ対象とする。
【００５３】
iii. 部分ミラーモード
仮想ハブ５０の一部の仮想ポート間のトラフィックをキャプチャ対象とする。
【００５４】
* フィルタ設定（パラメータ指定は省略可能）
キャプチャ対象のイーサネットフレームを決定するためのフィルタリングに使用される。
【００５５】
* リダイレクトモード（パラメータ指定は省略可能）
キャプチャデータの出力先などを指定する。以下のモードがある。
【００５６】
i. 通常モード（リダイレクトモードのパラメータ指定が省略された場合）
キャプチャされたイーサネットフレームの出力先を表示デバイスとする。
【００５７】
ii. ファイル保存モード
キャプチャされたイーサネットフレームの出力先をファイルとする。
【００５８】
iii. ファイル読み出しモード
実際にはキャプチャ処理を行なわず、上記ファイル保存モードにて保存されたファイルを読み出し、表示デバイスに出力する。
【００５９】
以下に、ラッパプログラム２３が使用する各モジュールの動作を説明する。
【００６０】
* モード設定モジュール２４
モード設定モジュール２４は、ラッパプログラム２３から呼び出され、仮想ハブ５０のイーサネットスイッチングモジュール５２、仮想ポートの各種モード（ミラーモード、リダイレクトモード）の設定を行なう。
【００６１】
* フィルタ設定モジュール２５
フィルタ設定モジュール２５は、ラッパプログラム２３から呼び出され、仮想ハブ５０上におけるフィルタ設定の指示を出す。
【００６２】
* キャプチャファイル取得モジュール２６
キャプチャファイル取得モジュール２６は、ラッパプログラム２３から呼び出され、仮想ハブ５０のファイルシステム上のファイルとしてキャプチャデータ保存部５５に保存されているキャプチャデータを取得（入力）し、ローカルのファイルシステムＦに保存する。
【００６３】
なお、キャプチャファイル取得モジュール２６、及び、仮想ハブ５０のキャプチャファイル提供モジュール５６は、一般的なファイル転送プロトコル（ＦＴＰやＳＣＰなど）のクライアントとサーバを想定している。
【００６４】
* キャプチャプログラム２７
キャプチャプログラム２７は、ラッパプログラム２３から呼び出され、上記パケットキャプチャモジュール１６へのフィルタの設定、キャプチャ実行の指示を出すユーザランドのプログラムであり、各種ＯＳに標準で搭載されていることが多い。
【００６５】
* キャプチャ終了モジュール２８
キャプチャ終了モジュール２８は、ラッパプログラム２３から呼び出され、仮想ハブ５０へ、クリーンアップ処理の指示などを出す。
【００６６】
2. 仮想ハブ
仮想ハブ５０は、イーサネットスイッチングハブをエミュレートするソフトウェアである。以下のような複数の仮想ポートや各種のモジュールにより構成される。
【００６７】
- 仮想ポート５１
前述のクライアント１の仮想イーサネットコネクション６０の端点であり、通常のイーサネットスイッチングハブでのポートに該当する。
【００６８】
なお、イーサネットフレームのキャプチャを実行するクライアントを収容する仮想ポート５１を、特にミラーポートと呼ぶこととする。
【００６９】
また、ミラーポートである仮想ポート５１は、以下のモードを持つ。
【００７０】
a) 通常キャプチャモード
イーサネットスイッチングモジュール５２から流入するイーサネットフレームを、クライアント１との仮想イーサネットコネクション６０へ送出する。
【００７１】
b) リダイレクトモード
イーサネットスイッチングモジュール５２から流入するイーサネットフレーム、及び、クライアントからのイーサネットフレームをキャプチャデータ保存部５５へ送出する（ファイルへ保存する）。
【００７２】
なお、制御モジュール５４によりフィルタが設定されている場合には、イーサネットフレームをクライアント１との仮想イーサネットコネクション６０、或いは、キャプチャデータ保存部５５へ送出する前に、フィルタモジュール５３を介してフィルタリング処理を行なう。
【００７３】
ただし、クライアント上のアプリケーションプログラム群、及びＯＳが、イーサネットフレームのキャプチャ処理の有無に関わらず、正常に自身宛のイーサネットフレームを受信できるようにするため、ブロードキャストフレーム、マルチキャストフレーム、及び、キャプチャ処理を実行しているクライアント向けのユニキャストフレームは、クライアントからの要求によるフィルタリング、リダイレクトの設定に関わらず、常にクライアントへ送出する。
【００７４】
- イーサネットスイッチングモジュール５２
イーサネットフレームをスイッチングするモジュールである。以下のモードを持つ。
【００７５】
a) 通常モード
いわゆるイーサネットスイッチングハブと同等のスイッチング処理を行なう。
【００７６】
b) 全ミラーモード
制御モジュール５４からの指示により、全ての仮想ポート５１で送受信されるイーサネットフレームをミラーポートへコピーする。
【００７７】
c) 部分ミラーモード
制御モジュール５４からの指示により、特定の仮想ポート５１で送受信されるイーサネットフレームをミラーポートへコピーする。
【００７８】
- フィルタモジュール５３
制御モジュール５４によるフィルタ設定の内容に基づき、該当仮想ポート５１へ流入するイーサネットフレームに対してフィルタリングを行なう。
【００７９】
- 制御モジュール５４
クライアントの仮想ネットワークインタフェースユーザプログラム部２１と、制御メッセージを使用して制御情報をやりとりし、その制御情報の内容に基づきイーサネットスイッチングモジュール５２、仮想ポート５１、フィルタモジュール５３の挙動を制御するモジュールである。
【００８０】
- キャプチャデータ保存部５５
フィルタモジュール５３がフィルタリングしたキャプチャデータを保持する記憶領域である。一般的に、ＨＤＤやフラッシュメモリが使用され、キャプチャデータはファイルとして保存される。
【００８１】
- キャプチャファイル提供モジュール５６
クライアントのキャプチャファイル取得モジュール２６からの指示に従い、キャプチャデータ保存部５５から指定されたファイルを読み出し、クライアント１へ送信する。
【００８２】
なお、前述の通り、キャプチャファイル提供モジュール５６、及び、クライアント１のキャプチャファイル取得モジュール２６は、一般的なファイル転送プロトコル（ＦＴＰやＳＣＰなど）のサーバとクライアントを想定している。
【００８３】
なお、図中では省略しているが、仮想ハブ５０は、上記以外にも、アンダーレイネットワークを使用してクライアント１との仮想イーサネットコネクション６０を構成するネットワークプロトコルスタック（ＴＣＰ／ＩＰなど）や物理ネットワークインタフェース１１も持つ。
【００８４】
3. 仮想イーサネットコネクション６０
仮想ハブ５０とクライアント１（及び２，３，４）の仮想ネットワークインタフェースとをアンダーレイネットワークにより接続する、仮想的なイーサネットケーブルであると考えることができる。
【００８５】
仮想イーサネットコネクション６０は、ユーザデータであるイーサネットフレームを運ぶユーザデータリンクと、仮想ネットワークインタフェースの仮想ネットワークインタフェースユーザプログラム部２１と仮想ハブ５０間で制御情報をやりとりするための制御リンクにより構成される。
【００８６】
図３の（ａ），（ｂ）に本実施形態で使用される要求メッセージ，応答メッセージの各フォーマットをそれぞれ示す。その詳細については、次の“［処理詳細］”の説明の中で行なう。
【００８７】
［処理詳細］
以下、図４〜図１０を参照して、各要素の処理シーケンスの詳細を説明する。
【００８８】
ここでは、クライアント１と仮想ハブ５０との間で行われる処理の例を挙げる。
【００８９】
なお、イーサネットフレームのフィルタリング、キャプチャに関わる設定処理に主眼を置く一方、クライアントの仮想ハブ５０への接続方法、ユーザデータ（イーサネットフレーム）/制御データの送受信処理やイーサネットフレームのスイッチング処理、フィルタリング処理など、本提案の主旨ではないものについての詳細な説明については割愛する。
【００９０】
更に、クライアントにおける、ラッパプログラム２３と仮想ネットワークインタフェースユーザプログラム部２１間の通信手段は、プロセス間通信をはじめとして各種想定されるが、これも本提案の主旨ではないため、詳細は割愛する。
【００９１】
1. オペレータによるキャプチャ処理開始
オペレータの操作により、クライアント１上にてラッパプログラム２３が起動する（図４中のステップＳ１０）。
【００９２】
パラメータとして、仮想ネットワークインタフェース、フィルタ設定、リダイレクトモード、ミラーモードが指定可能である。
【００９３】
2. リダイレクトモードのファイル読み出しモードの指定の有無チェック
ラッパプログラム２３は、リダイレクトモードのファイル読み出しモードの指定の有無をチェックする（ステップＳ１１）。
【００９４】
指定されていない場合は、ステップＳ１０２へ、指定されている場合は以下の処理へ進む。
【００９５】
（a） ファイル名の有無のチェック
ラッパプログラム２３は、ファイル名が指定されているか否かを確認し（図４中のＳ１２）、ファイル名が指定されていない場合（ステップＳ１２のＮｏ）、処理を終了する（ステップＳ１１６）。
【００９６】
（b） キャプチャファイル取得モジュール２６の起動
ラッパプログラム２３は、ファイル名をパラメータとして、キャプチャファイル取得モジュール２６を起動し（ステップＳ１３、図７中のステップＳ４００）、その終了を待つ。
【００９７】
（c） キャプチャファイル取得モジュール２６／キャプチャファイル提供モジュール５６によるファイル取得
キャプチャファイル取得モジュール２６は、ラッパプログラム２３から指定されたファイルの取得を仮想ハブ５０のキャプチャファイル提供モジュール５６に指示し（図７中のステップＳ４０１）、ファイルが取得できたら、取得したファイルをローカルのファイルシステムＦに保存し（ステップＳ４０２〜Ｓ４０３）、処理を終了する（ステップＳ４０４）。一方で、キャプチャファイル提供モジュール５６は、キャプチャファイル取得モジュール２６からファイルの取得の要求を受け（図７中のステップＳ７００〜Ｓ７０１）、指定されたファイルがあれば（ステップＳ７０２）、当該ファイルをキャプチャファイル取得モジュール２６へ転送し（ステップＳ７０３）、処理を終了する（ステップＳ７０４）。
【００９８】
なお、ファイル名が不正（仮想ハブ５０のキャプチャデータ保存部５５に該当ファイルが存在しないなど）の場合、キャプチャファイル取得モジュール２６は異常終了する（図中のステップＳ１４のＮＧ、Ｓ１１６）。
【００９９】
なお、キャプチャファイル取得モジュール２６、及び、仮想ハブ５０のキャプチャファイル提供モジュール５６は、一般的なファイル転送プロトコル（ＦＴＰやＳＣＰなど）ライアントとサーバを想定しているため、ここでは詳細な説明を割愛する。
【０１００】
（d） キャプチャファイル取得モジュール２６の実行結果チェック
ラッパプログラム２３は、キャプチャファイル取得モジュール２６の処理結果をチェックし、以下の処理を行なう。
【０１０１】
・キャプチャファイル取得モジュール２６が正常終了した場合
ファイル読み出しモードである旨とファイル名、及び、ラッパプログラム２３のパラメータとしてフィルタパラメータが指定されていれば（ステップＳ１４のＯＫ）、それをパラメータとして、キャプチャプログラム２７を起動する（ステップＳ１１３）。
【０１０２】
・キャプチャファイル取得モジュール２６が異常終了した場合
キャプチャファイル取得モジュール２６が異常終了した場合（ステップＳ１４のＮＧ）、処理を終了する（ステップＳ１１６）。
【０１０３】
3. 仮想ネットワークインタフェースパラメータのチェック
ラッパプログラム２３は、オペレータが指定した仮想ネットワークインタフェースパラメータのチェックを行なう（ステップＳ１０２、Ｓ１０３）。
【０１０４】
・仮想ネットワークインタフェースのパラメータ指定が省略された場合
仮想ネットワークインタフェースのパラメータ指定が省略された場合（ステップＳ１０２のＮｏ）、処理を終了する（ステップＳ１１６）。
【０１０５】
・無効な仮想ネットワークインタフェースが指定された場合
指定された仮想ネットワークインタフェースがクライアント１上に存在しない場合、或いは、アクティブでない場合（Ｓ１０３のＮｏ）、処理を終了する（ステップＳ１１６）。
【０１０６】
・有効な仮想ネットワークインタフェースが指定された場合
指定された仮想ネットワークインタフェースが存在し、かつ、アクティブである場合（Ｓ１０３のＹｅｓ）、本パラメータをキャプチャプログラム２７起動時に渡すために内部変数に記憶し、ステップＳ１０４へ進む。
【０１０７】
4. フィルタ設定
（a） フィルタパラメータのチェック
ラッパプログラム２３は、オペレータが指定したフィルタパラメータのチェックを行なう（ステップＳ１０４）。
【０１０８】
・フィルタパラメータが指定されていない場合
フィルタパラメータが指定されていない場合（ステップＳ１０４のＮｏ）、ステップＳ１０７へ進む。
【０１０９】
・フィルタパラメータが指定されている場合
フィルタパラメータが指定されている場合（ステップＳ１０４のＹｅｓ）、ステップＳ１０５へ進む。
【０１１０】
（b） フィルタ設定モジュール２５の起動
ラッパプログラム２３は、オペレータが指定したフィルタパラメータをパラメータとして、フィルタ設定モジュール２５を起動し（図４中のステップＳ１０５、図５中のステップＳ２００）、その終了を待つ。
【０１１１】
（c） フィルタ設定モジュール２５によるフィルタ設定要求の送信
i. フィルタチェック
クライアント１のフィルタ設定モジュール２５は、ラッパプログラム２３から渡されたフィルタパラメータのチェックを行ない（図５中のステップＳ２０１）、異常ならば（ステップＳ２０１のＮｏ）、エラーとしてラッパプログラム２３へ制御を戻し、処理を終了する（ステップ２０５）。
【０１１２】
ii. フィルタ設定要求送信
一方、正常ならば、仮想ネットワークインタフェースユーザプログラム部２１の制御モジュール２２を介して、仮想ハブ５０の制御モジュール５４へフィルタ設定要求を送信し（ステップＳ２０２）、仮想ハブ５０の制御モジュール５４からのフィルタ設定応答を待つ（ステップＳ２０３）。
【０１１３】
フィルタ設定要求のフォーマットは図３（ａ）に示す通りで、ラッパプログラム２３から指定されたフィルタ設定をフィルタデータ部に設定する。
【０１１４】
なお、フィルタ条件の指定方法は、送信元/宛先ＭＡＣアドレス、イーサネットタイプ、送信元/宛先ＩＰアドレス、送信元/宛先ポート番号、上位プロトコル番号など、一般的なキャプチャプログラム２７と同等のものを想定しているが、具体的内容は本提案の主旨ではないため、詳細は割愛する。
【０１１５】
もし、タイムアウトした場合は（ステップＳ２０３のＹｅｓ）、エラーとしてラッパプログラム２３へ制御を戻し、処理を終了する（ステップＳ２０５）。
【０１１６】
（d） 仮想ハブ５０の制御モジュール５４によるフィルタ設定、及び、フィルタ設定応答の送信
仮想ハブ５０の制御モジュール５４は、クライアント１の制御モジュール２２からフィルタ設定要求を受信すると（図９中のＳ６００〜Ｓ６０２の「フィルタ設定」）、フィルタ設定要求からフィルタデータを取り出し、必要に応じてフィルタの記述フォーマットの変換処理を行なった後、クライアント１との仮想イーサネットコネクション６０を収容している仮想ポート５１、すなわち、ミラーポートのフィルタモジュール５３にフィルタの設定を行なう（ステップＳ６１２）。
【０１１７】
フィルタの設定が正常に終了すれば、処理結果が正常であるフィルタ設定応答をクライアント１の制御モジュール２２へ送信し（ステップＳ６１３）、処理を終了する（ステップＳ６１４）。一方、フィルタの設定が異常終了した場合は、処理結果が異常であるフィルタ設定応答をクライアント１の制御モジュール２２へ送信し、処理を終了する。
【０１１８】
（e） フィルタ設定モジュール２５によるフィルタ設定応答の受信
クライアント１のフィルタ設定モジュール２５は、仮想ネットワークインタフェースユーザプログラム部２１の制御モジュール２２を介して、仮想ハブ５０の制御モジュール５４からフィルタ設定応答を受信すると（図５中のステップＳ２０４）、処理結果を戻り値として、ラッパプログラム２３に制御を戻し（ステップＳ２０５）、処理を終了する。
【０１１９】
（f） フィルタ設定モジュール２５の実行結果チェック
ラッパプログラム２３は、フィルタ設定モジュール２５の戻り値をチェックし（図５中のステップＳ１０６）、以下の処理を行なう。
【０１２０】
・フィルタ設定モジュール２５が正常終了した場合
フィルタ設定モジュール２５が正常終了した場合（ステップＳ１０６のＯＫ）、指定されたフィルタパラメータの内容をキャプチャプログラム２７起動時に渡すため、内部変数に記憶し、ステップＳ１０７へ進む。
【０１２１】
・フィルタ設定モジュール２５が異常終了した場合
フィルタ設定モジュール２５が異常終了した場合（ステップＳ１０６のＮＧ）、処理を終了する（ステップＳ１１６）。
【０１２２】
5. 仮想ハブ動作モード設定
ラッパプログラム２３は、ミラーモードパラメータ、リダイレクトモードパラメータのチェックを行ない（ステップＳ１０７）、以下の処理を行なう。
【０１２３】
（a） ミラーモードパラメータ（全ミラーモード/部分ミラーモード）、リダイレクトモードパラメータ（ファイル保存モード）が指定されている場合（ステップＳ１０７のＹｅｓ）
i. モード設定モジュール２４の起動
ラッパプログラム２３は、モード設定の内容（ミラーモードパラメータ（全ミラーモード/部分ミラーモード）、リダイレクトモードパラメータ（ファイル保存モード））をパラメータとして、モード設定モジュール２４を起動し（ステップＳ１０８、図６中のステップＳ３００）、その終了を待つ。
【０１２４】
なお、部分ミラーモードの場合、どの仮想ポート５１をミラーするかを指定する仮想ポート５１のリストも必要となるが、リストが無い場合は全ミラーモードが指定されたと見なす。
【０１２５】
ii. モード設定モジュール２４によるモード設定要求の送信
クライアント１のモード設定モジュール２４は、仮想ネットワークインタフェースユーザプログラム部２１の制御モジュール２２を介して、仮想ハブ５０の制御モジュール５４へモード設定要求を送信する（図６中のステップＳ３０１）。モード設定要求のフォーマットは図３（ｂ）に示す通りで、ミラーモードの種別のいずれか、或いは、リダイレクトモードのファイル保存モードを指定する。また、部分ミラーモードの場合は仮想ポート５１のリストも、ファイル保存モードの場合はファイル名も設定する。
【０１２６】
もし、タイムアウトした場合は（ステップＳ３０２のＹｅｓ）、エラーとしてラッパプログラム２３へ制御を戻し、処理を終了する（ステップＳ３０４）。
【０１２７】
iii. 仮想ハブ５０の制御モジュール５４による仮想ハブモードの設定、及び、モード設定応答の送信
仮想ハブ５０の制御モジュール５４は、クライアント１の制御モジュール２２からモード設定要求を受信すると（図９中のステップＳ６００〜Ｓ６０２の「モード設定」）、モード設定要求から指定されているモード情報を取り出し、その内容に応じて、以下の処理を行なう。
【０１２８】
・全ミラーモードが指定されている場合
全ミラーモードが指定されている場合（ステップＳ６０３の「全ミラー」）、イーサネットスイッチングモジュール５２を全ミラーモードに設定する（ステップＳ６０５〜Ｓ６０６）。
【０１２９】
・部分ミラーモードが指定されている場合
部分ミラーモードが指定されている場合（ステップＳ６０３の「部分ミラー」）、指定された仮想ポート５１の情報を元に、イーサネットスイッチングモジュール５２を部分ミラーモードに設定する。仮想ポート５１のリストがあれば（ステップＳ６０４の「あり」）、それに従い、該当する仮想ポート５１をミラーするように設定し（ステップＳ６０６）、仮想ポート５１のリストが無ければ（ステップＳ６０４の「なし」）、全ての仮想ポート５１をミラーするように設定する（全ミラーモードと等価）（ステップＳ６０５）。
【０１３０】
・ファイル保存モードが指定されている場合
ファイル保存モードが指定されている場合（ステップＳ６０８の「あり」）、指定されたファイル名を元に、仮想ポート５１をリダイレクトモードに設定する（ステップＳ６０９）。
【０１３１】
上記処理完了後、モード設定応答をクライアント１の制御モジュール２２に送信し（ステップＳ６１０）、処理を終了する（ステップＳ６１４）。
【０１３２】
iv. モード設定モジュール２４によるモード設定応答の受信
クライアント１のモード設定モジュール２４は、仮想ハブ５０の制御モジュール５４からモード設定応答を受信すると（図６中のステップＳ３０３）、処理結果を戻り値としてラッパプログラム２３へ制御を戻し、処理を終了する（ステップＳ３０４）。
【０１３３】
v. モード設定モジュール２４の実行結果チェック
ラッパプログラム２３は、モード設定モジュール２４の戻り値をチェックし（図４中のステップＳ１０９）、以下の処理を行なう。
【０１３４】
・モード設定モジュール２４が正常終了した場合
ファイル保存モードが指定されていない場合には（ステップＳ１１０のＮｏ）、ステップＳ１１３へ進む。一方、ファイル保存モードが指定されている場合には（ステップＳ１１０のＹｅｓ）、オペレータからの終了指示を待つ（ステップＳ１１１、Ｓ１１２）。その後、オペレータからの終了指示があると（ステップＳ１１２のＹｅｓ）、ステップＳ１１５へ進む。
【０１３５】
・モード設定モジュール２４が異常終了した場合
モード設定モジュール２４が異常終了した場合（ステップＳ１０９のＮＧ）、ステップＳ１１５へ進む。
【０１３６】
（b） 上記のいずれも指定されていない場合
上記のいずれも指定されていない場合（ステップＳ１１０のＮｏ）、ステップＳ１１３へ進む。
【０１３７】
6. キャプチャプログラム２７の起動
ラッパプログラム２３は、キャプチャプログラム２７を起動する（ステップＳ１１３）。
【０１３８】
（a） ファイル読み出しモードが指定されている場合
キャプチャプログラム２７を起動する際に、ファイル読み出しモードが指定されている場合、上記記憶しておいた、フィルタパラメータ、ファイル読み出しモードである旨及びファイル名をパラメータとして、キャプチャプログラム２７を起動する（ステップＳ１１３）。キャプチャプログラム２７がオペレータからの終了指示で（ステップＳ２０のＹｅｓ）、或いはファイルの内容を表示デバイスに表示後、終了すると、ファイル読み出しモードが指定されているので（図４中のＳ１１４のＹｅｓ）、ラッパプログラム２３も処理を終了する（ステップＳ１１６）。
【０１３９】
（b） ファイル読み出しモードが指定されていない場合
キャプチャプログラム２７を起動する際に、ファイル読み出しモードが指定されていない場合、上記記憶しておいた、フィルタパラメータをパラメータとして、キャプチャプログラム２７を起動する（ステップＳ１１３）。オペレータからの終了指示（ステップＳ２０のＹｅｓ）などでキャプチャプログラム２７が終了すると、ファイル読み出しモードが指定されていないので（図４中のＳ１１４のＮｏ）、ステップＳ１１５へ進む。
【０１４０】
7. 終了処理
（a） キャプチャ終了モジュール２８の起動
ラッパプログラム２３は、キャプチャ終了モジュール２８を起動する（ステップＳ１１５、図８中のステップＳ５００）。
【０１４１】
（b） キャプチャ終了要求の送信
キャプチャ終了モジュール２８は、仮想ネットワークインタフェースユーザプログラム部２１の制御モジュール２２を介して、仮想ハブ５０の制御モジュール５４にキャプチャ終了要求を送信し（図８中のステップＳ５０１）、制御をラッパプログラム２３に戻し、処理を終了する（ステップＳ５０２）。
【０１４２】
（c） 仮想ハブのクリーンアップ処理
仮想ハブ５０の制御モジュール５４は、クライアント１の制御モジュール２２からキャプチャ終了要求を受信すると（ステップ図９中のステップＳ６００〜Ｓ６０２の「キャプチャ終了」）、イーサネットスイッチングモジュール５２、及び、仮想ポート５１を“通常モード”に設定する。つまり、キャプチャ処理に関わる設定をクリアする（ステップＳ６１１）。
【０１４３】
（d） 処理終了
ラッパプログラム２３は、キャプチャ終了モジュール２８が終了すると、自身の処理を終了する（ステップＳ１１６）。
【０１４４】
［具体例］
引続き、図１、図２、図４〜図１０を参照して、具体的な処理シーケンスの詳細を説明する。
【０１４５】
図２に示すように、仮想ハブ５０にクライアント１、クライアント２、クライアント３、クライアント４が接続されているものとする。このうち、クライアント１を使用しているオペレータが、仮想ハブ５０上のトラフィックをキャプチャしたいと考えているとする。
【０１４６】
なお、この段階では、仮想ハブ５０のイーサネットスイッチングモジュール５２、仮想ポート５１（ミラーポート）は“通常モード”で動作しており、仮想ハブ５０は一般的なイーサネットスイッチングハブと同等のイーサネットフレームのスイッチング処理を行なっているものとする。
【０１４７】
以下、ラッパプログラム２３にさまざまなパラメータが指定された場合の動作を詳述する。
【０１４８】
（具体例その１）
オペレータが以下のパラメータを指定してラッパプログラム２３を実行したとする。
【０１４９】
・仮想ネットワークインタフェースパラメータ：
クライアント１の仮想ネットワークインタフェースを指定
・リダイレクトモードパラメータ：
指定を省略
・フィルタパラメータ：
指定を省略
・ミラーモードパラメータ：
指定を省略
このようにパラメータが指定された場合の動作１〜４を以下に示す。
【０１５０】
1. キャプチャ設定、キャプチャ開始
・リダイレクトモード（ファイル読み出しモード）設定
行なわれない。
【０１５１】
・フィルタ設定
行なわれない。
【０１５２】
・リダイレクトモード（ファイル保存モード、ミラーモード）設定
行なわれない。
【０１５３】
・キャプチャプログラム２７の起動
ラッパプログラム２３により、仮想ネットワークインタフェースパラメータを指定してキャプチャプログラム２７が起動される。
【０１５４】
2. 仮想ハブによる処理
（a） イーサネットスイッチングモジュール５２によるスイッチング処理
ミラーモード設定が行なわれていないため、イーサネットスイッチングモジュール５２は通常のスイッチング処理を行なう。つまり、ブロードキャストフレーム、マルチキャストフレーム、及び、クライアント１向けのユニキャストフレームのみを、クライアント１を収容する仮想ポート５１へ送出する。
【０１５５】
（b） 仮想ポート５１によるイーサネットフレームの送出
フィルタ設定、リダイレクトモード（ファイル保存モード）設定が行なわれていないため、イーサネットスイッチングモジュール５２から受け取ったイーサネットフレームは全て、クライアント１へ送信される。
【０１５６】
3. クライアント１による処理
（a） 仮想ネットワークインタフェースによる処理
仮想ネットワークインタフェースは通常のネットワークプロトコル処理に従い、受信したイーサネットフレームをアプリケーションプログラム群やＯＳに配送する。
【０１５７】
（b） パケットキャプチャモジュール１６による処理
キャプチャプログラム２７が起動されているため、パケットキャプチャモジュール１６は仮想ネットワークインタフェースユーザプログラム部２１（或いは仮想ネットワークインタフェースカーネル部）が受信するイーサネットフレームを全てキャプチャし、キャプチャプログラム２７へ配送する。また、クライアント１が送信するイーサネットフレームも全てキャプチャし、キャプチャプログラム２７へ配送する。
【０１５８】
（c） キャプチャプログラム２７による処理
パケットキャプチャモジュール１６からキャプチャデータを受け取ると、それらを表示デバイスに表示可能な形式に変換し、表示デバイスに表示する。
【０１５９】
つまり、ブロードキャストフレーム、マルチキャストフレーム、及び、クライアント１１向けのユニキャストフレームが表示される。
【０１６０】
なお、表示フォーマットに関する各種設定も可能であることが一般的であるが、ここでは詳細は割愛する。
【０１６１】
4. キャプチャ終了
オペレータによる終了指示（例えば、ラッパプログラム２３に対するシグナル送信など）があると、キャプチャ終了モジュール２８を呼び出し、仮想ネットワークインタフェースユーザプログラム部２１の制御モジュール２２、仮想ハブ５０の制御モジュール５４を介して、仮想ハブ５０のイーサネットスイッチングモジュール５２、仮想ポート５１を通常モードに戻す。
【０１６２】
その後、キャプチャプログラム２７はパケットキャプチャモジュール１６によるキャプチャ処理を終了し、自身も終了する。最後に、ラッパプログラム２３も終了する。
【０１６３】
（具体例その２）
オペレータが以下のパラメータを指定してラッパプログラム２３を実行したとする。
【０１６４】
・仮想ネットワークインタフェースパラメータ：
クライアント１の仮想ネットワークインタフェース
・リダイレクトモードパラメータ：
指定を省略
・フィルタパラメータ：
送信元ＩＰアドレス： クライアント３のＩＰアドレス
宛先ＩＰアドレス： クライアント４のＩＰアドレス
条件にマッチしたイーサネットフレームをキャプチャ
・ミラーモードパラメータ： 全ミラーモード
このようにパラメータが指定された場合の動作１〜４を以下に示す。
【０１６５】
1. キャプチャ設定、キャプチャ開始
・リダイレクトモード（ファイル読み出しモード）設定
行なわれない。
【０１６６】
・フィルタ設定
ラッパプログラム２３がフィルタ設定モジュール２５を呼び出すことで、仮想ネットワークインタフェースユーザプログラム部２１の制御モジュール２２、仮想ハブ５０の制御モジュール５４を介して、仮想ハブ５０の仮想ポート５１のフィルタモジュール５３に上記のフィルタが設定される。
【０１６７】
・リダイレクトモード（ファイル保存モード、ミラーモード）設定
ラッパプログラム２３がモード設定モジュール２４を呼び出すことで、仮想ネットワークインタフェースユーザプログラム部２１の制御モジュール２２、仮想ハブ５０の制御モジュール５４を介して、仮想ハブ５０のイーサネットスイッチングモジュール５２が全ミラーモードに設定される。
【０１６８】
・キャプチャプログラム２７の起動
ラッパプログラム２３により、仮想ネットワークインタフェースパラメータ、及び、上記フィルタパラメータを指定してキャプチャプログラム２７が起動される。
【０１６９】
2. 仮想ハブによる処理
（a） イーサネットスイッチングモジュール５２によるスイッチング処理
イーサネットスイッチングモジュール５２は、ブロードキャストフレーム、マルチキャストフレーム、及び、クライアント１向けのユニキャストフレームを含め、全てのイーサネットフレームをクライアント１を収容する仮想ポート５１へ送出する。
【０１７０】
（b） 仮想ポート５１によるイーサネットフレームの送出
フィルタ設定に従い、送信元ＩＰアドレスとしてクライアント３のＩＰアドレスを、宛先ＩＰアドレスとしてクライアント４のＩＰアドレスを持つイーサネットフレームがクライアント１へ送信される。
【０１７１】
また、ブロードキャストフレーム、マルチキャストフレーム、及び、クライアント１向けのユニキャストフレームはフィルタリングの対象外のため、上記フィルタ設定に関わらず、クライアン１へ送信される。
【０１７２】
3. クライアント１による処理
（a） 仮想ネットワークインタフェースによる処理
仮想ネットワークインタフェースは通常のネットワークプロトコル処理に従い、受信したイーサネットフレームをアプリケーションプログラム群やＯＳに配送する。
【０１７３】
（b） パケットキャプチャモジュール１６による処理
キャプチャプログラム２７が起動されているため、パケットキャプチャモジュール１６は仮想ネットワークインタフェースユーザプログラム部２１（或いは仮想ネットワークインタフェースカーネル部）が受信するイーサネットフレームをキャプチャし、フィルタ設定に従い、送信元ＩＰアドレスとしてクライアント３のＩＰアドレスを、宛先ＩＰアドレスとしてクライアント４のＩＰアドレスを持つイーサネットフレームをキャプチャプログラム２７へ配送する。
【０１７４】
一方、上記以外のイーサネットフレームは、クライアント１が送信するイーサネットフレームも含め、フィルタ設定にマッチしないため、キャプチャプログラム２７へは配送しない。
【０１７５】
（c） キャプチャプログラム２７による処理
パケットキャプチャモジュール１６からキャプチャデータを受け取ると、それらを表示デバイスに表示可能な形式に変換し、表示デバイスに表示する。
【０１７６】
つまり、送信元ＩＰアドレスとしてクライアント３のＩＰアドレスを、宛先ＩＰアドレスとしてクライアント４のＩＰアドレスを持つイーサネットフレームが表示される。
【０１７７】
4. キャプチャ終了
前述の（具体例その１）の場合と同様となるため、説明を省略する。
【０１７８】
（具体例その３）
オペレータが以下のパラメータを指定してラッパプログラム２３を実行したとする。
【０１７９】
・仮想ネットワークインタフェースパラメータ：
クライアント１の仮想ネットワークインタフェース
・リダイレクトモードパラメータ：
指定を省略
・フィルタパラメータ：
ＴＣＰポート番号： ２０、２１
条件にマッチしたイーサネットフレームをキャプチャ
・ミラーモードパラメータ：
部分ミラーモード
対象仮想ポートは、クライアント３とクライアント４を収容する仮想ポート
このようにパラメータが指定された場合の動作１〜４を以下に示す。
【０１８０】
1. キャプチャ設定、キャプチャ開始
・リダイレクトモード（ファイル読み出しモード）設定
行なわれない。
【０１８１】
・フィルタ設定
前述の（具体例その２）の場合と同様となるため、説明を省略する。
【０１８２】
・リダイレクトモード（ファイル保存モード、ミラーモード）設定
ラッパプログラム２３がモード設定モジュール２４を呼び出すことで、仮想ネットワークインタフェースユーザプログラム部２１の制御モジュール２２、仮想ハブ５０の制御モジュール５４を介して、仮想ハブ５０のイーサネットスイッチングモジュール５２が、クライアント３、クライアント４を対象とした部分ミラーモードに設定される。
【０１８３】
・キャプチャプログラム２７の起動
ラッパプログラム２３により、仮想ネットワークインタフェースパラメータ、及び、上記フィルタパラメータを指定してキャプチャプログラム２７が起動される。
【０１８４】
2. 仮想ハブによる処理
（a） イーサネットスイッチングモジュール５２によるスイッチング処理
イーサネットスイッチングモジュール５２は、ブロードキャストフレーム、マルチキャストフレーム、及び、クライアント１向けのユニキャストフレーム、及び、クライアント3、クライアント４を収容する仮想ポート５１間で送受信されるイーサネットフレームをクライアント１を収容する仮想ポート５１へ送出する。
【０１８５】
（b） 仮想ポート５１によるイーサネットフレームの送出
フィルタ設定に従い、ＴＣＰポート番号が２０、或いは、２１であるイーサネットフレームがクライアント１へ送信される。
【０１８６】
また、ブロードキャストフレーム、マルチキャストフレーム、及び、クライアント１向けのユニキャストフレームはフィルタリングの対象外のため、上記フィルタ設定に関わらず、クライアント１へ送信される。
【０１８７】
3. クライアント１による処理
（a） 仮想ネットワークインタフェースによる処理
仮想ネットワークインタフェースは通常のネットワークプロトコル処理に従い、受信したイーサネットフレームをアプリケーションプログラム群やＯＳに配送する。
【０１８８】
（b） パケットキャプチャモジュール１６による処理
キャプチャプログラム２７が起動されているため、パケットキャプチャモジュール１６は仮想ネットワークインタフェースユーザプログラム部２１（或いは仮想ネットワークインタフェースカーネル部）が受信するイーサネットフレームをキャプチャし、フィルタ設定に従い、ＴＣＰポート番号が２０、或いは、２１であるイーサネットフレームをキャプチャプログラム２７へ配送する。
【０１８９】
一方、上記以外のイーサネットフレームは、ＩＰアドレスがクライアント３、クライアント４であるイーサネットフレームやクライアント１が送信するイーサネットフレームも含め、フィルタ設定にマッチしないため、キャプチャプログラム２７へは配送しない。
【０１９０】
（c） キャプチャプログラム２７による処理
パケットキャプチャモジュール１６からキャプチャデータを受け取ると、それらを表示デバイスに表示可能な形式に変換し、表示デバイスに表示する。
【０１９１】
つまり、ＴＣＰポート番号が２０、或いは、２１であるイーサネットフレームが表示される。
【０１９２】
4. キャプチャ終了
前述の（具体例その１）の場合と同様となるため、説明を省略する。
【０１９３】
（具体例その４）
オペレータが以下のパラメータを指定してラッパプログラム２３を実行したとする。
【０１９４】
・仮想ネットワークインタフェースパラメータ：
クライアント１の仮想ネットワークインタフェース
・リダイレクトモードパラメータ：
ファイル保存モード
ファイル名： capturehttp.dat
・フィルタパラメータ：
ＴＣＰポート番号： ８０
条件にマッチしたイーサネットフレームをキャプチャ
・ミラーモードパラメータ：
全ミラーモード
対象仮想ポートは、全仮想ポート
このようにパラメータが指定された場合の動作１〜４を以下に示す。
【０１９５】
1. キャプチャ設定、キャプチャ開始
・リダイレクトモード（ファイル読み出しモード）設定
行なわれない。
【０１９６】
・フィルタ設定
前述の（具体例その２）の場合と同様となるため、説明を省略する。
【０１９７】
・リダイレクトモード（ファイル保存モード、ミラーモード）設定
ラッパプログラム２３がモード設定モジュール２４を呼び出すことで、仮想ネットワークインタフェースユーザプログラム部２１の制御モジュール２２、仮想ハブ５０の制御モジュール５４を介して、仮想ハブ５０のイーサネットスイッチングモジュール５２が全ミラーモードに、仮想ポート５１がファイル保存モード（ファイル名capturehttp.dat）に、それぞれ設定される。
【０１９８】
・キャプチャプログラム２７の起動
ラッパプログラム２３により、仮想ネットワークインタフェースパラメータ、及び、上記フィルタパラメータ、ファイル保存モードを指定してキャプチャプログラム２７が起動される。
【０１９９】
2. 仮想ハブによる処理
（a） イーサネットスイッチングモジュール５２によるスイッチング処理
イーサネットスイッチングモジュール５２は、ブロードキャストフレーム、マルチキャストフレーム、及び、クライアント１向けのユニキャストフレームを含め、全てのイーサネットフレームをクライアント１を収容する仮想ポート５１へ送出する。
【０２００】
（b） 仮想ポート５１によるイーサネットフレームの送出
フィルタ設定に従い、ＴＣＰポート番号が８０であるイーサネットフレームがキャプチャデータ保存部５５へ送出される（ファイルcapturehttp.datへ保存される）。
【０２０１】
また、ブロードキャストフレーム、マルチキャストフレーム、及び、クライアント１向けのユニキャストフレームは、上記フィルタ設定、ファイル保存モードの設定に関わらず、クライアント１へ送信される。
【０２０２】
3. クライアント１による処理
（a） 仮想ネットワークインタフェースによる処理
仮想ネットワークインタフェースは通常のネットワークプロトコル処理に従い、受信したイーサネットフレームをアプリケーションプログラム群やＯＳに配送する。
【０２０３】
（b） パケットキャプチャモジュール１６による処理
キャプチャプログラム２７が起動されていないため、キャプチャ処理は行なわない。
【０２０４】
4. キャプチャ終了
オペレータによる終了指示（例えば、ラッパプログラム２３に対するシグナル送信など）があると、キャプチャ終了モジュール２８を呼び出し、仮想ネットワークインタフェースユーザプログラム部２１の制御モジュール２２、仮想ハブ５０の制御モジュール５４を介して、仮想ハブ５０のイーサネットスイッチングモジュール５２、仮想ポート５１を通常モードに戻す。
【０２０５】
その後、ラッパプログラム２３も終了する。
【０２０６】
（具体例その５）
オペレータが以下のパラメータを指定してラッパプログラム２３を実行したとする。
【０２０７】
・仮想ネットワークインタフェースパラメータ：
クライアント１の仮想ネットワークインタフェース
・リダイレクトモードパラメータ：
ファイル読み出しモード
ファイル名： capturehttp.dat
・フィルタパラメータ：
指定を省略
・ミラーモードパラメータ：
指定を省略
このようにパラメータが指定された場合の動作１〜４を以下に示す。
【０２０８】
1. キャプチャ設定、キャプチャ開始
・リダイレクトモード（ファイル読み出しモード）設定
ラッパプログラム２３がキャプチャファイル取得モジュール２６を呼び出すことで、仮想ハブ５０のキャプチャファイル提供モジュール５６を介して、ファイルcapturehttp.datを取得し、ローカルのファイルシステムＦに保存する。
【０２０９】
・フィルタ設定
行なわれない。
【０２１０】
・リダイレクトモード（ファイル保存モード、ミラーモード）設定
行なわれない。
【０２１１】
・キャプチャプログラム２７の起動
ラッパプログラム２３により、仮想ネットワークインタフェースパラメータ、及び、ファイル読み出しモード、上記ファイル名を指定してキャプチャプログラム２７が起動される。
【０２１２】
2. 仮想ハブによる処理
（a） キャプチャファイル提供モジュール５６による処理
上記の通り、クライアント１のキャプチャファイル取得モジュール２６と連携し、仮想ハブ５０からクライアント１へファイルcapturehttp.datを転送する。
【０２１３】
3. クライアント１による処理
（a） 仮想ネットワークインタフェースによる処理
仮想ネットワークインタフェースは通常のネットワークプロトコル処理に従い、受信したイーサネットフレームをアプリケーションプログラム群やＯＳに配送する。
【０２１４】
（b） パケットキャプチャモジュール１６による処理
キャプチャプログラム２７がファイル読み出しモードで起動されているため、キャプチャ処理は行なわない。
【０２１５】
（c） キャプチャプログラム２７による処理
ファイルcapturehttp.datからキャプチャデータを読み出すと、それらを表示デバイスに表示可能な形式に変換し、表示デバイスに表示する。
【０２１６】
4. キャプチャ終了
オペレータによる終了指示（例えば、ラッパプログラム２３に対するシグナル送信など）があると、ラッパプログラム２３は終了する。
【０２１７】
以上のように、第１の実施形態によれば、フレームに対するフィルタリング処理を仮想ハブ側であらかじめ行なうことで、キャプチャ対象ではないフレームの仮想ハブからクライアントへの流入を防止し、アンダーレイネットワークへの不要な負荷を低減することが可能となる。
【０２１８】
＜第２の実施形態＞
次に、本発明の第２の実施形態について説明する。
【０２１９】
ここでは、クライアント１側にて、第１の実施形態で示したラッパプログラム２３が呼び出していた機能モジュールである以下の、
・モード設定モジュール２４
・フィルタ設定モジュール２５
・キャプチャファイル取得モジュール２６
・キャプチャ終了モジュール２８
を、仮想ネットワークインタフェースユーザプログラム部２１、或いは、キャプチャプログラム２７が呼び出すことで、本提案の機能を実現する方法を説明する。
【０２２０】
基本的な機能は第１の実施形態と共通であるため、ここでは、本実施形態と第１の実施形態の異なる部分のみ説明する（仮想ハブ５０側での処理については全く同じである）。
【０２２１】
以下、図１１を参照して、それぞれの機能要素のうち、第１の実施形態と異なる部分について説明する。なお、第１の実施形態と共通する要素には同一の符号を付している。また、図１１では、仮想ハブ５０との情報のやりとりを示す線の記載を省略している。ここでは、第１の実施形態と重複している部分、特に、モジュール間の要求、応答などの説明は一部省略する。
【０２２２】
・クライアント
- キャプチャプログラム２７
第１の実施形態で記した通常の機能に加え、リダイレクトモード（ファイル保存モード、ファイル読み出しモード）、ミラーモード（全ミラーモード、部分ミラーモード）をパラメータとして指定可能である。
【０２２３】
リダイレクトモード（ファイル読み出しモード）が指定された場合、キャプチャプログラム２７はキャプチャファイル取得モジュール２６を呼び出すことで仮想ハブ５０上のファイルを獲得し、ローカルのファイルシステムＦに保存した後、そのファイルに対して自身のファイル読み出しモードの処理を行なう。
【０２２４】
リダイレクトモード（ファイル保存モード）、ミラーモード（全ミラーモード、部分ミラーモード）が指定された場合、その旨を、フィルタ設定の指示と同様の手段（ioctlなどシステムコール或いはコマンド）により、パケットキャプチャモジュール１６へ指示する。
【０２２５】
更に、リダイレクトモード（ファイル保存モード）が指定された場合、自身のファイル保存処理は行なわない。
【０２２６】
- パケットキャプチャモジュール１６
第１の実施形態で示した機能に加え、上記キャプチャプログラム２７から
* リダイレクトモード（ファイル保存モード）
* ミラーモード（全ミラーモード、部分ミラーモード）
* フィルタ設定
の指示を受け得ると、仮想ネットワークインタフェースカーネル部に対して待機（sleep）しているプロセス、ここでは仮想ネットワークインタフェースユーザプログラム部２１を、これらの指示をパラメータとして起動（wakeup）する。
【０２２７】
また、オペレータからの終了指示（シグナルなど）を受けるとキャプチャプログラム２７が終了するが、それにともなうパケットキャプチャモジュール１６の終了処理時に、キャプチャ処理終了指示をパラメータとして仮想ネットワークインタフェースユーザプログラム部２１を起動（wakeup）する。
【０２２８】
- 仮想ネットワークインタフェースユーザプログラム部２１（制御モジュール２２）
仮想ネットワークインタフェースカーネル部に対して待機（sleep）し、起動（wakeup）されると、パケットキャプチャモジュール１６を経由してキャプチャプログラム２７から通知された上記指示に基づき、モード設定モジュール２４、フィルタ設定モジュール２５、キャプチャ終了モジュール２８を呼び出す（起動する）。この場合の処理は、図４における、ステップＳ１０４〜Ｓ１１０、Ｓ１１４〜Ｓ１１５に該当する。
【０２２９】
以上のように、第２の実施形態によれば、ラッパプログラム２３を使うことなく、第１の実施形態と同等の機能を実現することが可能である。
【０２３０】
＜第３の実施形態＞
次に、本発明の第３の実施形態について説明する。
【０２３１】
第１の実施形態、第２の実施形態では、ＵＮＩＸなどのＯＳに実装されているトンネルインタフェースの仕組みを利用して仮想ネットワークインタフェースを実装した場合の処理を示したが、この第３の実施形態では、図１２に示すような、ＯＳ内でのＩＰトンネリングの仕組みを利用して仮想ネットワークインタフェースを実装した場合の処理について説明する。なお、第１の実施形態、第２の実施形態と共通する要素には同一の符号を付している。また、図１２では、仮想ハブ５０との情報のやりとりを示す線の記載を省略している。ここでは、第１の実施形態、第２の実施形態と重複している部分、特に、モジュール間の要求、応答などの説明は一部省略する。
【０２３２】
カーネル１０側には、物理ネットワークインタフェース１１、ドライバ１２、イーサネット層１３Ａ、イーサネット層１３Ｂ、ＩＰ（インナーＩＰ）１４Ａ、ＩＰ（アウターＩＰ）１４Ｂ、ＴＣＰ／ＵＤＰ１４Ｃ、擬似ネットワークインタフェース３０が形成される。なお、概念的な理解の助けとなるよう、イーサネット層１３Ａとイーサネット層１３Ｂ、或いは、ＩＰ（インナーＩＰ）１４ＡとＩＰ（アウターＩＰ）１４Ｂをそれぞれ別機能モジュールとして図示しているが、通常、ＯＳ内には単一のイーサネット層、及び、ＩＰ層が実装されているものであり、プロトコルスタックの設定や送受信されるフレームの内容によりこれらが二度使用され、結果的に、図示したようなプロトコルスタックに見なされることとなる。
【０２３３】
ＩＰトンネリングを使用する場合、大半の処理はＯＳ（カーネル）の中で処理されることになるが、この場合、以下のようにすることで、第１の実施形態、第２の実施形態と同等の機能を実現することが可能である。
【０２３４】
・モード設定モジュール２４、フィルタ設定モジュール２５、キャプチャ終了モジュール２８をカーネルスレッド（ユーザモードを持たないプロセス）として実装する。一方、キャプチャファイル取得モジュール２６については、第２の実施形態と同様、ユーザランドに実装し、キャプチャプログラム２７が直接呼び出す。
【０２３５】
・キャプチャプログラム２７から指示を受け取ったパケットキャプチャモジュール１６は、カーネル内の擬似ネットワークインタフェース３０へ各種指示を出す。
【０２３６】
・カーネル内の擬似ネットワークインタフェース３０が、パケットキャプチャモジュール１６（キャプチャプログラム２７）からの指示により、上記カーネルスレッド（モード設定モジュール２４、フィルタ設定モジュール２５、キャプチャ終了モジュール２８）を呼び出す（起動する）。
【０２３７】
以上のように、第３の実施形態によれば、ＩＰトンネリングの仕組みを利用することにより、第１の実施形態や第２の実施形態と同等の機能を実現することが可能である。
【０２３８】
各実施形態で説明したクライアント１（及び２，３，４）及び仮想ハブ５０は、企業内ネットワークの管理、顧客ネットワークの遠隔保守、システム開発現場における作業の効率化等に、広く適用が可能である。
【０２３９】
上述した実施形態で述べた本発明に係る各種の処理手順は、コンピュータプログラムとして、コンピュータ（情報処理装置）により読み取り可能な記憶媒体（例えば磁気ディスク，光ディスク，半導体メモリ）に記憶させておき、必要に応じてそれをプロセッサにより読み出して実行するようにしてもよい。また、このようなコンピュータプログラムは、通信媒体を介してあるコンピュータから他のコンピュータに伝送することにより配布することも可能である。
【０２４０】
本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【０２４１】
【図１】本発明の第１の実施形態に係るネットワーク仮想化システムを構成するクライアント１の構成例を示す図。
【図２】同実施形態に係るネットワーク仮想化システムを構成するサーバ装置（中継装置）により形成される仮想ハブ５０の構成例を示す図。
【図３】同実施形態に係る要求/応答メッセージフォーマットを示す図。
【図４】同実施形態に係るラッパプログラム２３の処理シーケンスを示す図。
【図５】同実施形態に係るフィルタ設定モジュール２５の処理シーケンスを示す図。
【図６】同実施形態に係るモード設定モジュール２４の処理シーケンスを示す図。
【図７】同実施形態に係るキャプチャファイル取得モジュール２６の処理シーケンスを示す図。
【図８】同実施形態に係るキャプチャ終了モジュール２８の処理シーケンスを示す図。
【図９】同実施形態に係る仮想ハブ５０の制御モジュール５４の処理シーケンスを示す図。
【図１０】同実施形態に係るキャプチャファイル提供モジュール５６の処理シーケンスを示す図。
【図１１】本発明の第２の実施形態に係るクライアント１の構成を示す図。
【図１２】本発明の第３の実施形態に係るクライアント１の構成を示す図。
【図１３】仮想イーサネットの一般的な構成を示す図。
【符号の説明】
【０２４２】
１，２，３，４…クライアント、１０…カーネル、１１…物理ネットワークインタフェース、１２…ネットワークインタフェースドライバ、１３…イーサネット層、１４…ＴＣＰ／ＩＰ、１５…仮想ネットワークインタフェースカーネル部（トンネルインタフェース）、１６…パケットキャプチャモジュール、２０…ユーザランド、２１…仮想ネットワークインタフェースユーザプログラム部、２２…制御モジュール、２３…ラッパプログラム、２４…モード設定モジュール、２５…フィルタ設定モジュール、２６…キャプチャファイル取得モジュール、２７…キャプチャプログラム、２８…キャプチャ終了モジュール、２９…アプリケーションプログラム群、３０…擬似ネットワークインタフェース、５０…仮想ハブ、５１…仮想ポート、５２…イーサネットスイッチングモジュール、５３…フィルタモジュール、５４…制御モジュール、５５…キャプチャデータ保存部、５６…キャプチャファイル提供モジュール、６０…仮想イーサネットコネクション、１５０…アンダーレイネットワーク、１５１…仮想ハブ、１５２…仮想ネットワークインタフェース、１５３…クライアント、１５４…仮想イーサネット、１５５…サーバ、１５５…ネットワーク仮想化装置、１５６…ファイアウォール、１５７…ルータ、１６０…内部ネットワーク、１６１…外部ネットワーク。
【図１】
0004417993.tif 000002
【図２】
0004417993.tif 000003
【図３】
0004417993.tif 000004
【図４】
0004417993.tif 000005
【図５】
0004417993.tif 000006
【図６】
0004417993.tif 000007
【図７】
0004417993.tif 000008
【図８】
0004417993.tif 000009
【図９】
0004417993.tif 000010
【図１０】
0004417993.tif 000011
【図１１】
0004417993.tif 000012
【図１２】
0004417993.tif 000013
【図１３】
0004417993.tif 000014