(57)【要約】【課題】ミラーパケットの送信設定を容易に行えるようにする。【解決手段】情報処理装置４は、ミラーリング設定要求を受信すると、検出パケット５ａをブロードキャストで送信する。情報処理装置４は、検出パケット５ａに対する応答パケット６ｂを監視ノード３から受信した場合、ネットワークインタフェース４ａに接続されたスイッチ２ａにおける応答パケット６ｂの受信ポートがローカルポートかアップリンクポートかの状態を判定する。次に情報処理装置４は、応答パケット６ｂの有無と受信ポートの状態とに基づいて、自装置と監視ノード３との間のネットワーク１上の接続関係を判定する。そして情報処理装置４は、判定した接続関係に基づいて、複数のスイッチ２ａ，２ｂ，・・・の少なくとも一部に対して、仮想マシン４ｆの通信パケットをコピーしたミラーパケットの監視ノード３への送信設定を行う。【選択図】図１
2020113836.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに含まれる複数のスイッチのうちの一スイッチに接続されたネットワークインタフェースと、
前記一スイッチのポートごとの、前記ポート経由で接続された機器に付与されたノード識別子を示すノード識別子情報、および前記ポートそれぞれがローカルポートかアップリンクポートかの状態を示す状態情報を記憶する記憶部と、
自装置上で動作している仮想マシンの通信パケットのミラーリング設定要求を受信すると、パケットの監視機能を有する監視ノードを検出するための検出パケットを、前記ネットワークインタフェースを介してブロードキャストで送信し、前記検出パケットに対する応答パケットを前記監視ノードから受信した場合、前記監視ノードのノード識別子、前記ノード識別子情報、および前記状態情報に基づいて、前記一スイッチにおける前記応答パケットの受信ポートがローカルポートかアップリンクポートかの状態を判定し、前記応答パケットの有無と前記受信ポートの状態とに基づいて、自装置と前記監視ノードとの間の前記ネットワーク上の接続関係を判定し、判定した接続関係に基づいて、前記複数のスイッチの少なくとも一部に対して、前記仮想マシンの通信パケットをコピーしたミラーパケットの前記監視ノードへの送信設定を行う処理部と、
を有する情報処理装置。
【請求項２】
前記処理部は、前記応答パケットを受信しており、前記受信ポートがローカルポートの場合、前記監視ノードが前記一スイッチに接続されていると判定する、
請求項１記載の情報処理装置。
【請求項３】
前記処理部は、前記応答パケットを受信しており、前記受信ポートがアップリンクポートの場合、前記監視ノードが２以上のスイッチを介して同一セグメント内に接続されていると判定する、
請求項１または２記載の情報処理装置。
【請求項４】
前記処理部は、前記応答パケットが受信できない場合、前記監視ノードがルータを介して接続されていると判定する、
請求項１ないし３のいずれかに記載の情報処理装置。
【請求項５】
ネットワーク上の通信パケットの監視機能を有し、前記監視機能を有するノードを検出するための検出パケットを受信すると、前記検出パケットに対する応答パケットを送信する監視ノードと、
前記ネットワークに含まれる複数のスイッチのうちの一スイッチに接続されたネットワークインタフェースと、前記一スイッチのポートごとの、前記ポート経由で接続された機器に付与されたノード識別子を示すノード識別子情報、および前記ポートそれぞれがローカルポートかアップリンクポートかの状態を示す状態情報を記憶する記憶部と、自装置上で動作している仮想マシンの通信パケットのミラーリング設定要求を受信すると、前記検出パケットを、前記ネットワークインタフェースを介してブロードキャストで送信し、前記検出パケットに対する応答パケットを前記監視ノードから受信した場合、前記監視ノードのノード識別子、前記ノード識別子情報、および前記状態情報に基づいて、前記一スイッチにおける前記応答パケットの受信ポートがローカルポートかアップリンクポートかの状態を判定し、前記応答パケットの有無と前記受信ポートの状態とに基づいて、自装置と前記監視ノードとの間の前記ネットワーク上の接続関係を判定し、判定した接続関係に基づいて、前記複数のスイッチの少なくとも一部に対して、前記仮想マシンの通信パケットをコピーしたミラーパケットの前記監視ノードへの送信設定を行う処理部と、を有する情報処理装置と、
を具備する情報処理システム。
【請求項６】
コンピュータに、
自装置上で動作している仮想マシンの通信パケットのミラーリング設定要求を受信すると、パケットの監視機能を有する監視ノードを検出するための検出パケットを、ネットワークに含まれる複数のスイッチのうちの一スイッチに接続されたネットワークインタフェースを介してブロードキャストで送信し、
前記検出パケットに対する応答パケットを前記監視ノードから受信した場合、前記監視ノードのノード識別子、前記一スイッチのポートごとの、前記ポート経由で接続された機器に付与されたノード識別子を示すノード識別子情報、および前記ポートそれぞれがローカルポートかアップリンクポートかの状態を示す状態情報に基づいて、前記一スイッチにおける前記応答パケットの受信ポートがローカルポートかアップリンクポートかの状態を判定し、
前記応答パケットの有無と前記受信ポートの状態とに基づいて、自装置と前記監視ノードとの間の前記ネットワーク上の接続関係を判定し、
判定した接続関係に基づいて、前記複数のスイッチの少なくとも一部に対して、前記仮想マシンの通信パケットをコピーしたミラーパケットの前記監視ノードへの送信設定を行う、
処理を実行させる設定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、および設定プログラムに関する。
【背景技術】
【０００２】
コンピュータネットワークでは、ネットワークを介して通信されたパケットをキャプチャすることで、通信状況を把握することができる。パケットのキャプチャには、例えばスイッチのポートミラーリング機能を利用することができる。ポートミラーリングとは、監視対象のコンピュータが接続されたポートに入出力されたパケットのコピー（ミラーパケット）を、監視を行うコンピュータが接続されたポートに出力することである。
【０００３】
また、コンピュータネットワークでは、コンピュータリソースの仮想化が進んでおり、監視対象のコンピュータが仮想マシン（ＶＭ：Virtual Machine）の場合もある。ＶＭへの入出力パケットをキャプチャする場合、例えば仮想スイッチにポートミラーリングの設定を行うことよって、ミラーパケットを、他の監視用のＶＭに送信することができる。
【０００４】
なお、１台の物理マシンで動作する複数のＶＭは、物理マシンに搭載されたネットワークインタフェースカード（ＮＩＣ）を介して通信を行う。ＮＩＣの中には、内部に複数の仮想的なＮＩＣを生成できるものがある。ＮＩＣ内での機能の仮想化は、例えばＳＲ−ＩＯＶ（Single Root I/O Virtualization）の技術を用いて実現できる。仮想的なＮＩＣは、ＶＦ（Virtual Function）と呼ぶこともある。ＮＩＣが複数のＶＦを搭載している場合、複数のＶＭそれぞれに、例えば１つずつのＶＦが割り当てられる。ＶＭそれぞれにＶＦが割り当てられることで、各ＶＭはハイパーバイザを介さずにＮＩＣ内のＶＦを操作し、通信を行うことができる。その結果、仮想化によるオーバヘッドの発生を抑止し、通信の高速化を図ることができる。
【０００５】
監視対象となるＶＭがハイパーバイザを介さずに通信を行っている場合、そのＶＭに入出力されるパケットのミラーリングは、仮想スイッチで行うことはできず、ネットワーク上の物理スイッチの機能を用いて行うこととなる。このとき、ミラーパケットを送信先のＶＭに送信させるためのスイッチへの設定内容は、監視対象のＶＭと監視用のＶＭとの位置関係に依存する。例えば監視対象のＶＭと監視用のＶＭとが共通のスイッチに直接つながっている場合、管理者は、そのスイッチにポートミラーリングの設定を行えばよい。それに対し、監視対象のＶＭと監視用のＶＭとが、スイッチやルータ（レイヤ３スイッチを含む）などの複数の機器を介して接続されている場合、管理者は、より複雑な設定を行うこととなる。例えば管理者は、ＶＬＡＮ（Virtual Local Area Network）の設定またはパケットのカプセル化などの設定を、スイッチに対して行う。ＶＬＡＮは、仮想的なＬＡＮセグメントを構築する技術である。
【０００６】
ネットワークの管理技術としては、例えば、レイヤ２スイッチ（Ｌ２ＳＷ）に代表されるノードと、オープンフロースイッチに代表されるノードとが混在する環境においても、意図した経路に従ったパケット転送を行うことのできる通信システムが提案されている。また接続する仮想ネットワークの種類を検出し、仮想ネットワークへの接続性を向上する通信装置も提案されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特表２０１３−５３７７６９号公報
【特許文献２】特開２０１７−４６２１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ミラーパケットを送信先のＶＭに送信させるためのスイッチへの設定内容は監視対象のＶＭと監視用のＶＭとの位置関係に依存するが、ＶＭ間の位置関係を管理者が常に把握するのは困難である。例えばＶＭを生成する際には、仮想化マネージャによって、その時点で適切な物理マシンが自動で決定され、その物理マシン上にＶＭが生成される。またＶＭは、システムのメンテナンスや物理マシンの負荷の均等化などの理由で、マイグレーションによって別の物理マシン上に移動することもある。そのため、管理者は各ＶＭが現在どの物理マシンで動作しているのかを把握できず、監視対象のＶＭと監視用のＶＭとの位置関係も分からない。その結果、管理者によるスイッチへのミラーパケットの送信設定が困難となっている。
【０００９】
１つの側面では、本件は、ミラーパケットの送信設定を容易に行えるようにすることを目的とする。
【課題を解決するための手段】
【００１０】
１つの案では、ネットワークインタフェースと、記憶部と、処理部とを有する情報処理装置が提供される。
ネットワークインタフェースは、ネットワークに含まれる複数のスイッチのうちの一スイッチに接続されている。記憶部は、一スイッチのポートごとの、ポート経由で接続された機器に付与されたノード識別子を示すノード識別子情報、およびポートそれぞれがローカルポートかアップリンクポートかの状態を示す状態情報を記憶する。処理部は、自装置上で動作している仮想マシンの通信パケットのミラーリング設定要求を受信すると、パケットの監視機能を有する監視ノードを検出するための検出パケットを、ネットワークインタフェースを介してブロードキャストで送信する。処理部は、検出パケットに対する応答パケットを監視ノードから受信した場合、監視ノードのノード識別子、ノード識別子情報、および状態情報に基づいて、一スイッチにおける応答パケットの受信ポートがローカルポートかアップリンクポートかの状態を判定する。さらに処理部は、応答パケットの有無と受信ポートの状態とに基づいて、自装置と監視ノードとの間のネットワーク上の接続関係を判定する。そして処理部は、判定した接続関係に基づいて、複数のスイッチの少なくとも一部に対して、仮想マシンの通信パケットをコピーしたミラーパケットの監視ノードへの送信設定を行う。
【発明の効果】
【００１１】
１態様によれば、ミラーパケットの送信設定が容易となる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施の形態に係るミラーパケットの送信設定方法の一例を示す図である。
【図２】第２の実施の形態のシステム構成の一例を示す図である。
【図３】ノードのハードウェアの一構成例を示す図である。
【図４】監視用のＶＭと監視対象のＶＭとの位置関係の例を示す図である。
【図５】ノードが有する機能の一例を示すブロック図である。
【図６】スイッチ情報記憶部が記憶する情報の一例を示す図である。
【図７】ミラーリング設定のための連係動作の一例を示すシーケンス図である。
【図８】ミラーリング設定処理の手順の一例を示すフローチャートである。
【図９】ミラーリングの第１の設定例を示す図である。
【図１０】ミラーリングの第２の設定例を示す図である。
【図１１】ミラーリングの第３の設定例を示す図である。
【図１２】ＧＲＥパケットのフォーマットの一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第１の実施の形態〕
まず第１の実施の形態について説明する。第１の実施の形態は、ミラーパケットの送信設定を容易に行える情報処理システムである。
【００１４】
図１は、第１の実施の形態に係るミラーパケットの送信設定方法の一例を示す図である。図１には、ネットワーク１内のスイッチ２ａ，２ｂ，・・・へのミラーパケットの送信設定方法を、ネットワーク１に接続された監視ノード３と情報処理装置４とで実施した場合の例を示している。監視ノード３と情報処理装置４とは、それぞれ例えばミラーパケットの送信設定のために各装置が実行する処理の処理手順が記述されたプログラムを実行することにより、ミラーパケットの送信設定方法を実施することができる。
【００１５】
ミラーパケットの送信設定方法を実現するために、監視ノード３は処理部３ａを有し、情報処理装置４はネットワークインタフェース４ａと記憶部４ｂと処理部４ｅとを有する。監視ノード３の処理部３ａは、例えば監視ノード３が有するプロセッサ、または演算回路である。情報処理装置４の記憶部４ｂは、例えば情報処理装置４が有するメモリ、またはストレージ装置である。情報処理装置４の処理部４ｅは、例えば情報処理装置４が有するプロセッサ、または演算回路である。
【００１６】
監視ノード３は、ネットワーク１上の通信パケットの監視機能を有し、監視機能を有するノードを検出するための検出パケット５ａを受信すると、検出パケット５ａに対する応答パケット６ｂを送信する。例えば監視ノード３の処理部３ａは、通信パケットの監視用の仮想マシン３ｂを実行する。
【００１７】
情報処理装置４の処理部４ｅは、監視対象となる仮想マシン４ｆを実行している。またネットワークインタフェース４ａ内には、仮想的なネットワークインタフェースとして機能するＶＦ４ｇが設けられている。仮想マシン４ｆは、処理部４ｅのハイパーバイザなどの管理機能を介さずに、ＶＦ４ｇを直接制御して、ネットワーク１を介した通信を行う。
【００１８】
記憶部４ｂは、ノード識別子情報４ｃと状態情報４ｄとを記憶する。ノード識別子情報４ｃは、スイッチ２ａのポートごとの、ポート経由で接続された機器に付与されたノード識別子を示す。ノード識別子は、例えば通信機器のＭＡＣ（Media Access Control address）アドレスである。状態情報４ｄは、ノード識別子情報４ｃ、およびポートそれぞれがローカルポートかアップリンクポートかの状態を示す。
【００１９】
仮想マシン４ｆに入出力される通信パケットを監視する場合、システムの管理者は、情報処理装置４に対して、自装置上で動作している仮想マシン４ｆの通信パケットのミラーリング設定要求を入力する。処理部４ｅは、ミラーリング設定要求を受信すると、パケットの監視機能を有する監視ノード３を検出するための検出パケット５ａを、ネットワークインタフェース４ａを介してブロードキャストで送信する。例えばブロードキャストフレーム５によって、検出パケット５ａが送信される。ブロードキャストフレーム５は、情報処理装置４と同じセグメント内の機器それぞれに対して送信される。
【００２０】
監視ノード３が情報処理装置４と同じセグメント内に接続されていれば、ブロードキャストフレーム５は、監視ノード３に到達する。監視ノード３が情報処理装置４と別のセグメント内に接続されていれば、ブロードキャストフレーム５は、監視ノード３まで到達しない。
【００２１】
監視ノード３の処理部３ａは、ブロードキャストフレーム５によって転送された検出パケット５ａを受信すると、検出パケット５ａに対する応答を行う。例えば処理部３ａは、検出パケット５ａの送信元である情報処理装置４に対して、応答パケット６ｂを送信する。応答パケット６ｂの送信用のフレーム６には、送信元ノード識別子６ａとして監視ノード３のノード識別子が含まれる。
【００２２】
情報処理装置４の処理部４ｅは、検出パケット５ａに対する応答パケット６ｂを含むフレーム６が監視ノード３から送信されると、フレーム６によって転送された応答パケット６ｂを受信する。処理部４ｅは、応答パケット６ｂを受信した場合、監視ノード３のノード識別子、ノード識別子情報４ｃ、および状態情報４ｄに基づいて、スイッチ２ａにおける応答パケット６ｂの受信ポートがローカルポートかアップリンクポートかの状態を判定する。例えば処理部４ｅは、ノード識別子情報４ｃを参照し、応答パケット６ｂの送信元ノード識別子６ａに対応するポート番号を取得する。次に処理部４ｅは、状態情報４ｄを参照し、取得したポート番号に対応するポートの状態を取得する。
【００２３】
処理部４ｅは、応答パケット６ｂの有無と受信ポートの状態とに基づいて、自装置と監視ノード３との間のネットワーク１上の接続関係を判定する。例えば処理部４ｅは、応答パケット６ｂを受信しており、受信ポートがローカルポートの場合、監視ノード３が、情報処理装置４と同一のスイッチ２ａに接続されていると判定する。また処理部４ｅは、応答パケット６ｂを受信しており、受信ポートがアップリンクポートの場合、監視ノード３が２以上のスイッチを介して、情報処理装置４と同一セグメント内に接続されていると判定する。さらに処理部４ｅは、応答パケット６ｂが受信できない場合、監視ノード３がルータを介して接続されていると判定する。
【００２４】
処理部４ｅは、判定した接続関係に基づいて、複数のスイッチ２ａ，２ｂ，・・・の少なくとも一部に対して、仮想マシン４ｆの通信パケットをコピーしたミラーパケットの監視ノード３への送信設定を行う。例えば処理部４ｅは、同一スイッチに接続されていると判定した場合、ネットワークインタフェース４ａに接続されたスイッチ２ａに、ポートミラーリングの設定を行う。また処理部４ｅは、２以上のスイッチを介して同一セグメントに接続されていると判定した場合、ネットワークインタフェース４ａに接続されたスイッチ２ａと監視ノード３が接続されたスイッチとに、ＶＬＡＮによるミラーリングの設定を行う。さらに処理部４ｅは、別セグメントに接続されていると判定した場合、カプセル化してミラーパケットを転送する設定を行う。
【００２５】
このようにして、情報処理装置４は、監視ノード３との間の接続関係を自動認識し、接続関係に応じた適切なミラーリング設定をスイッチに対して行うことができる。その結果、ミラーリングの設定が容易となるとともに、スイッチに係る負荷を抑止できる。例えば、接続関係を無視し、すべての場合においてカプセル化によるミラーパケットの送信設定を行うと、ミラーパケットを送信するためのスイッチの負荷が過大となる。それに対して、情報処理装置４と監視ノード３とが同一スイッチに接続されている場合、処理部４ｅは、そのスイッチに対するポートミラーリングによるミラーパケットの送信設定を行う。ポートミラーリングは、スイッチ内の電子回路によって実現することができ、パケットのミラーリングのためのスイッチの負荷は、カプセル化に比べて少なくて済む。同様に、情報処理装置４と監視ノード３とが同一セグメントに接続されている場合、処理部４ｅは、ＶＬＡＮによるミラーパケットの送信設定を行う。ＶＬＡＮによるパケットの管理は、パケットのカプセル化に比べて単純であり、パケットのミラーリングのためのスイッチの負荷は少なくて済む。
【００２６】
〔第２の実施の形態〕
次に第２の実施の形態について説明する。
図２は、第２の実施の形態のシステム構成の一例を示す図である。コンピュータネットワークには、例えば複数のノード１００，２００，３００，４００，５００および端末装置３１が、スイッチ４１〜４４およびルータ４５を介して接続されている。図２の例では、ノード１００，２００，３００と端末装置３１とはスイッチ４１に接続されている。ノード４００はスイッチ４３に接続されている。ノード５００はスイッチ４４に接続されている。
【００２７】
スイッチ４１〜４３は、カスケード接続されている。カスケード接続は、複数のスイッチ４１〜４３を階層的に接続する接続形態である。複数のスイッチ４１〜４３をカスケード接続することで、ネットワークに収容する機器の台数を増やすことができる。図２の例では、スイッチ４２の下位にスイッチ４１，４３が接続されている。
【００２８】
上位のスイッチ４２において、下位のスイッチ４１，４３と接続するためのケーブルは、ローカルポートに接続される。それに対し、下位のスイッチ４１，４３において、上位のスイッチ４２と接続するためのケーブルは、アップリンクポートに接続される。ローカルポートは、ノード１００，２００，３００，４００，５００、ルータ４５、端末装置３１のような機器を接続するための通信ポートである。アップリンクポートは、上位のスイッチに接続するための通信ポートである。
【００２９】
カスケード接続されたスイッチ４１〜４３に接続された機器は、ネットワーク上、同一のセグメントに属する。同一セグメント内の機器同士の接続を、Ｌ２接続と呼ぶこともある。他方、スイッチ４２とスイッチ４４とは、ルータ４５を介して接続されている。この場合、スイッチ４１〜４３に接続された機器とスイッチ４４に接続された機器とは、別のセグメントに属する。機器同士のルータ４５またはＬ３スイッチを介した接続を、Ｌ３接続と呼ぶこともある。
【００３０】
このようなコンピュータネットワークにおいて、管理者３０は、例えば端末装置３１を用いて、いずれかのノードに、ＶＭの通信監視用のＶＭを生成することができる。このとき管理者３０は、監視対象のＶＭに入出力されるパケットのコピー（ミラーパケット）を監視用のＶＭに送信するように、スイッチ４１〜４３の設定指示を入力する。管理者３０からのミラーパケットの送信指示の入力があると、各ノード１００，２００，３００，４００，５００が連係動作することで、その指示に従ってミラーパケットが送信されるように、スイッチ４１〜４４に対する設定を行う。
【００３１】
図３は、ノードのハードウェアの一構成例を示す図である。ノード１００は、プロセッサ１０１によって装置全体が制御されている。プロセッサ１０１には、バス１０９を介してメモリ１０２と複数の周辺機器が接続されている。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、またはＤＳＰ（Digital Signal Processor）である。プロセッサ１０１がプログラムを実行することで実現する機能の少なくとも一部を、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）などの電子回路で実現してもよい。
【００３２】
メモリ１０２は、ノード１００の主記憶装置として使用される。メモリ１０２には、プロセッサ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ１０２には、プロセッサ１０１による処理に利用する各種データが格納される。メモリ１０２としては、例えばＲＡＭ（Random Access Memory）などの揮発性の半導体記憶装置が使用される。
【００３３】
バス１０９に接続されている周辺機器としては、ストレージ装置１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６、機器接続インタフェース１０７およびＮＩＣ１０８がある。
【００３４】
ストレージ装置１０３は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置１０３は、コンピュータの補助記憶装置として使用される。ストレージ装置１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置１０３としては、例えばＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）を使用することができる。
【００３５】
グラフィック処理装置１０４には、モニタ２１が接続されている。グラフィック処理装置１０４は、プロセッサ１０１からの命令に従って、画像をモニタ２１の画面に表示させる。モニタ２１としては、有機ＥＬ（Electro Luminescence）を用いた表示装置や液晶表示装置などがある。
【００３６】
入力インタフェース１０５には、キーボード２２とマウス２３とが接続されている。入力インタフェース１０５は、キーボード２２やマウス２３から送られてくる信号をプロセッサ１０１に送信する。なお、マウス２３は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００３７】
光学ドライブ装置１０６は、レーザ光などを利用して、光ディスク２４に記録されたデータの読み取りを行う。光ディスク２４は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク２４には、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００３８】
機器接続インタフェース１０７は、ノード１００に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース１０７には、メモリ装置２５やメモリリーダライタ２６を接続することができる。メモリ装置２５は、機器接続インタフェース１０７との通信機能を搭載した記録媒体である。メモリリーダライタ２６は、メモリカード２７へのデータの書き込み、またはメモリカード２７からのデータの読み出しを行う装置である。メモリカード２７は、カード型の記録媒体である。
【００３９】
ＮＩＣ１０８は、スイッチ４１に接続されている。ＮＩＣ１０８は、スイッチ４１を介して、他のノード２００，３００，４００，５００、または端末装置３１との間でデータの送受信を行う。またＮＩＣ１０８は、ＳＲ−ＩＯＶを実現する機能を有しており、内部に複数の仮想的なＮＩＣ（ＶＦ）を生成することができる。
【００４０】
ノード１００は、以上のようなハードウェアによって、第２の実施の形態の処理機能を実現することができる。他のノード２００，３００，４００，５００、および端末装置３１も、ノード１００と同様のハードウェアにより実現することができる。また、第１の実施の形態に示した監視ノード３および情報処理装置４も、ノード１００と同様のハードウェアにより実現することができる。
【００４１】
ノード１００は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施の形態の処理機能を実現する。ノード１００に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、ノード１００に実行させるプログラムをストレージ装置１０３に格納しておくことができる。プロセッサ１０１は、ストレージ装置１０３内のプログラムの少なくとも一部をメモリ１０２にロードし、プログラムを実行する。またノード１００に実行させるプログラムを、光ディスク２４、メモリ装置２５、メモリカード２７などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ１０１からの制御により、ストレージ装置１０３にインストールされた後、実行可能となる。またプロセッサ１０１が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。ノード２００，３００，４００，５００、および端末装置３１も、ノード１００と同様に、コンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施の形態の処理機能を実現する。
【００４２】
上記のように、各ノード１００，２００，３００，４００，５００が有するＮＩＣは、内部にＶＦを生成することができる。この場合、ノード１００，２００，３００，４００，５００上で動作するＶＭは、各ノード１００，２００，３００，４００，５００のハイパーバイザを介さずに、直接ＶＦを操作し、ネットワークを介した通信を行う。ＶＭがノード１００，２００，３００，４００，５００のハイパーバイザを介さずに通信が行われるため、ハイパーバイザ上で提供される機能（例えば仮想スイッチ）を用いたパケットキャプチャを行うことはできない。そこで特定のＶＭに入出力されるパケットのキャプチャを行う場合、管理者３０は、スイッチ４１〜４４に対してパケットのミラーリングの設定を行うこととなる。
【００４３】
スイッチ４１〜４４に対するパケットのミラーリングの設定内容は、モニタＶＭと管理対象のＶＭとの位置関係に依存する。
図４は、監視用のＶＭと監視対象のＶＭとの位置関係の例を示す図である。ノード１００では、ＯＳ１１０およびＶＭ１２０，１３０が動作している。ノード１００のＮＩＣ１０８は、内部に仮想的なＮＩＣとして動作するＶＦ１０８ａ，１０８ｂを有している。ＶＭ１２０，１３０それぞれに１つずつのＶＦ１０８ａ，１０８ｂが割り当てられている。ＶＭ１２０は、割り当てられたＶＦ１０８ａをネットワークインタフェース（ｅｔｈ０）として認識し、ＶＦ１０８ａを制御して通信を行う。ＶＭ１３０は、割り当てられたＶＦ１０８ｂをネットワークインタフェース（ｅｔｈ０）として認識し、ＶＦ１０８ｂを制御して通信を行う。
【００４４】
ノード２００では、ＯＳ２１０およびＶＭ２２０が動作している。ノード２００のＮＩＣ２０８は、内部に仮想的なＮＩＣとして動作するＶＦ２０８ａを有している。ＶＭ２２０は、ＶＦ２０８ａをネットワークインタフェース（ｅｔｈ０）として認識し、ＶＦ２０８ａを制御して通信を行う。
【００４５】
ノード４００では、ＯＳ４１０およびＶＭ４２０が動作している。ノード４００のＮＩＣ４０８は、内部に仮想的なＮＩＣとして動作するＶＦ４０８ａを有している。ＶＭ４２０は、ＶＦ４０８ａをネットワークインタフェース（ｅｔｈ０）として認識し、ＶＦ４０８ａを制御して通信を行う。
【００４６】
ノード５００では、ＯＳ５１０およびＶＭ５２０が動作している。ノード５００のＮＩＣ５０８は、内部に仮想的なＮＩＣとして動作するＶＦ５０８ａを有している。ＶＭ５２０は、ＶＦ５０８ａをネットワークインタフェース（ｅｔｈ０）として認識し、ＶＦ５０８ａを制御して通信を行う。
【００４７】
図４の例では、ＶＭ１２０が監視用のＶＭ（モニタ）である。このとき、監視対象がＶＭ１３０であれば、ＶＭ１３０が送受信したパケットのミラーパケット５１は、スイッチ４１を介して、ＶＭ１２０に送信される。監視対象がＶＭ２２０であれば、ＶＭ２２０が送受信したパケットのミラーパケット５２は、スイッチ４１を介して、ＶＭ１２０に送信される。監視対象がＶＭ４２０であれば、ＶＭ４２０が送受信したパケットのミラーパケット５３は、スイッチ４１〜４３を介して、ＶＭ１２０に送信される。監視対象がＶＭ５２０であれば、ＶＭ５２０が送受信したパケットのミラーパケット５４は、スイッチ４１，４２，４４、およびルータ４５を介して、ＶＭ１２０に送信される。
【００４８】
ミラーパケット５１，５２のように、１つのスイッチ４１のみを経由したミラーパケット５１，５２の送信は、スイッチ４１へのパケットミラーリングの設定によって実現できる。ミラーパケット５３のように、同一セグメント内の複数のスイッチ４１〜４３を経由したミラーパケット５３の送信は、スイッチ４１，４３への、ミラーパケット送信用のＶＬＡＮの設定により実現できる。ミラーパケット５４のように、ルータ４５またはＬ３スイッチを経由したミラーパケット５４の送信は、スイッチ４４に対するミラーパケットのカプセル化の設定により実現できる。
【００４９】
このように、監視用のＶＭ１２０と監視対象のＶＭ１３０，２２０，４２０，５２０とのネットワーク上の位置関係により、スイッチ４１〜４３への設定内容が異なる。なお、すべてのミラーパケット５１〜５４をカプセル化して送信することも可能ではあるが、すべてのミラーパケット５１〜５４をカプセル化してしまうと、スイッチ４１〜４４の処理負荷が過大となる。換言すると、監視用のＶＭ１２０と監視対象のＶＭ１３０，２２０，４２０，５２０とのネットワーク上の位置関係に応じて、適切なスイッチ４１〜４４の設定を行うことで、パケットミラーリングのためのスイッチ４１〜４４の負荷を軽減することができる。
【００５０】
次に、パケットミラーリングの設定を行うために各ノードが有する機能について説明する。
図５は、ノードが有する機能の一例を示すブロック図である。図５の例では、ノード３００にシステムの管理機能が実装されており、ノード１００，２００にＶＭを用いたサービス提供機能が実装されている。
【００５１】
システムの管理に用いるノード３００は、管理者３０が使用する端末装置３１からのミラーリング設定要求に従って、ノード１００，２００のＶＭ１２０，１３０，２２０を管理する。ノード３００では、例えばハードウェア３００ａによりハイパーバイザ３００ｂが実行されている。そしてハイパーバイザ３００ｂによってＯＳ３１０が実行されている。なおハイパーバイザ３００ｂを用いず、ハードウェア３００ａでＯＳ３１０を直接実行してもよい。
【００５２】
ＯＳ３１０は、仮想化マネージャ３１１とポートミラーマネージャ３１２とを有する。仮想化マネージャ３１１は、ノード１００，２００上で動作するＶＭ１２０，１３０，２２０を管理する。例えば仮想化マネージャ３１１は、端末装置３１から新たなＶＭの生成が指示されると、負荷の少ないノードに対してＶＭの生成を指示する。また仮想化マネージャ３１１は、ノード１００，２００に対して、ＶＭのマイグレーションを指示することもできる。例えば仮想化マネージャ３１１は、負荷が過大となったノードに対して、そのノードで動作しているＶＭの他のノードへのマイグレーションを指示する。
【００５３】
ポートミラーマネージャ３１２は、特定のＶＭに対して入出力されるパケットのミラーリングを管理する。例えばポートミラーマネージャ３１２は、端末装置３１から監視対象のＶＭが指示されると、そのＶＭを実行しているノードへ、ＶＭに入出力されるパケットのミラーリング設定要求を送信する。
【００５４】
ノード１００は、ＶＭ１２０，１３０によりサービスを提供する。ノード１００では、例えばハードウェア１００ａによりハイパーバイザ１００ｂが実行されている。そしてハイパーバイザ１００ｂによってＯＳ１１０およびＶＭ１２０，１３０が実行されている。例えばハイパーバイザ１００ｂは、ノード３００の仮想化マネージャ３１１からのＶＭ生成指示に応じて、ＶＭ１２０，１３０を生成する。またハイパーバイザ１００ｂは、仮想化マネージャ３１１から、監視用のＶＭの生成指示を受信し、そのＶＭを生成した場合、そのＶＭが監視用のＶＭであることをＯＳ１１０に通知する。なおＶＭ１２０，１３０それぞれは、それぞれに割り当てられたＶＦ１０８ａ，１０８ｂを直接制御して、ＯＳ１１０やハイパーバイザ１００ｂを経由せずに、ネットワーク２０を介した通信を行う。
【００５５】
ＯＳ１１０は、監視用のＶＭの管理、およびノード１００で動作しているＶＭ１２０，１３０の通信の管理を行う。例えばＯＳ１１０は、ノード３００のポートミラーマネージャ３１２からのミラーリング設定要求に従って、ＶＭ１２０，１３０のうちの指定されたＶＭに入出力されるパケットのミラーリングの設定を行う。そのためにＯＳ１１０は、スイッチ情報記憶部１１１、検出パケット送信部１１２、検出パケット受信部１１３、宛先判定部１１４、およびスイッチ制御部１１５を有する。
【００５６】
スイッチ情報記憶部１１１は、ネットワーク２０上でパケットを中継するスイッチ４１，４２，・・・から収集した情報を記憶する。例えばノード１００のメモリ１０２またはストレージ装置１０３の記憶領域の一部が、スイッチ情報記憶部１１１として使用される。
【００５７】
検出パケット送信部１１２は、ポートミラーマネージャ３１２から特定のＶＭのパケットのミラーリング設定要求を受信すると、監視機能を有するＶＭ（宛先ＶＭ）を検出するための検出パケットを、同一セグメント内にブロードキャストで送信する。例えば検出パケット送信部１１２は、宛先のＭＡＣアドレスのすべてのビットを「１」にしたブロードキャストフレームによって、検出パケットを送信する。検出パケットとしては、例えばＡＲＰ（Address Resolution Protocol）リクエストを用いることもできる。
【００５８】
検出パケット受信部１１３は、他のノード２００からブロードキャストで送信された検出パケットを受信する。そして検出パケット受信部１１３は、自身が動作しているノード１００上のＶＭが宛先ＶＭである場合（監視機能を有するＶＭの場合）、検出パケットの送信元に対して、Ａｃｋ（肯定応答）を示すパケットを送信する。検出パケットがＡＲＰリクエストの場合、検出パケット受信部１１３はＡＲＰリプライを応答する。
【００５９】
宛先判定部１１４は、検出パケット送信部１１２が送信した検出パケットに対する応答が、他のノード２００から返されたとき、その応答パケットを受信する。そして宛先判定部１１４は、応答パケットの有無、および直近のスイッチにおける受信した応答パケットの受信ポートの結線の状態に応じて、監視対象のＶＭとミラーパケットの宛先ＶＭとの位置関係を判定する。なお宛先判定部１１４は、受信ポートの結線の状態については、スイッチ情報記憶部１１１に格納されている情報を参照して判断する。
【００６０】
例えば宛先判定部１１４は、検出パケットのＡｃｋが返ってきた場合、Ａｃｋのパケットを受信したポートが、直近のスイッチの「ローカルポート」なら、ノード１００と同じスイッチに宛先ＶＭが接続されていると判定する。また宛先判定部１１４は、検出パケットのＡｃｋが返ってきた場合、Ａｃｋのパケットを受信したポートが、直近のスイッチの「アップリンクポート」なら、宛先ＶＭが、複数のスイッチを跨ってＬ２接続されていると判定する。さらに宛先判定部１１４は、検出パケットのＡｃｋの待ち時間がタイムアウトとなり、Ａｃｋが返ってこなければ、宛先ＶＭが、ルータ４５を介してＬ３接続されていると判定する。
【００６１】
スイッチ制御部１１５は、スイッチ４１，４２，・・・を管理する。例えばスイッチ制御部１１５は、スイッチ４１，４２，・・・から内部の情報を収集し、スイッチ情報記憶部１１１に格納する。またスイッチ制御部１１５は、宛先判定部１１４による判定結果に基づいて、スイッチ４１，４２，・・・に対するパケットのミラーリングの設定を行う。
【００６２】
例えばスイッチ制御部１１５は、宛先ＶＭがノード１００と同じスイッチに接続されている場合、そのスイッチに対してポートミラーリングの設定を行う。具体的には、スイッチ制御部１１５は、宛先ＶＭを有しているノードが接続されたポートをモニタポートとして設定し、監視対象のＶＭを有しているノード１００が接続されたポートをミラーポートとして設定する。
【００６３】
またスイッチ制御部１１５は、宛先ＶＭが、複数のスイッチを跨ってＬ２接続されている場合、監視対象のＶＭを有しているノード１００が接続されたスイッチと、宛先ＶＭが接続されたスイッチとに対して、ミラーリング用のＶＬＡＮを設定する。具体的には、スイッチ制御部１１５は、監視対象のＶＭを有しているノード１００が接続されたスイッチ４１に対して、ノード１００が接続されたポートをミラーポートに設定する。さらにスイッチ制御部１１５は、スイッチ４１に対して、ミラーポートに入出力されたパケットのミラーパケットを、ミラーリング用のＶＬＡＮ＿ＩＤを付与してアップリンクポートに送信するように設定する。また、スイッチ制御部１１５は、宛先ＶＭを有しているノードが接続されたスイッチに対して、ミラーリング用のＶＬＡＮ＿ＩＤを有するＶＬＡＮのパケットを、そのノードが接続されたポートに送信するように設定する。
【００６４】
さらにスイッチ制御部１１５は、宛先ＶＭが、ルータ４５を介してＬ３接続されている場合、監視対象のＶＭを有しているノード１００が接続されたスイッチに対して、監視対象のＶＭの入出力パケットをカプセル化して、宛先ＶＭに送信するように設定する。
【００６５】
ノード２００は、ＶＭ２２０によりサービスを提供する。ノード２００では、例えばハードウェア２００ａによりハイパーバイザ２００ｂが実行されている。そしてハイパーバイザ２００ｂによってＯＳ２１０およびＶＭ２２０が実行されている。ＯＳ２１０は、スイッチ情報記憶部２１１、検出パケット送信部２１２、検出パケット受信部２１３、宛先判定部２１４、およびスイッチ制御部２１５を有する。ノード２００内の各要素の機能は、ノード１００内の同名の要素の機能と同様である。
【００６６】
なお図５に示していないノード４００，５００も、ノード１００，２００と同様の機能を有する。
図５に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図５に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
【００６７】
次に、スイッチ情報記憶部１１１が記憶する情報について説明する。
図６は、スイッチ情報記憶部が記憶する情報の一例を示す図である。スイッチ情報記憶部１１１には、スイッチ制御部１１５がスイッチ４１〜４４から収集した、スイッチごとのスイッチ情報１１１ａ，１１１ｂ，・・・を記憶する。例えばノード１００のスイッチ制御部１１５は、スイッチ４１からＭＡＣ学習テーブル４１ａとポート状態テーブル４１ｂとを取得し、スイッチ情報１１１ａとしてスイッチ情報記憶部１１１に格納する。
【００６８】
ＭＡＣ学習テーブル４１ａには、スイッチ４１が有するポートのポート番号に対応付けて、そのポートを介して通信を行っている装置のＭＡＣアドレスが設定されている。図６の例では、スイッチ４１のポート番号「１」のポートにノード１００が接続されており、ポート番号「４」のポートにノード２００が接続されている。またスイッチ４１のポート番号「６」のポートにスイッチ４２が接続されている。スイッチ４２にはスイッチ４３が接続されており、スイッチ４３にノード４００が接続されている。この場合、ＭＡＣ学習テーブル４１ａには、ポート番号「１」に対応付けてノード１００のＭＡＣアドレス「ＭＡＣ＿Ａ」が設定される。またポート番号「４」に対応付けてノード１００のＭＡＣアドレス「ＭＡＣ＿Ｂ」が設定される。さらに、ポート番号「６」に対応付けてノード１００のＭＡＣアドレス「ＭＡＣ＿Ｃ」が設定される。
【００６９】
ポート状態テーブル４１ｂには、スイッチ４１が有するポートのポート番号に対応付けて、そのポートの結線の状態が設定されている。ポートの結線の状態には、ローカルポート用のＭＤＩ−Ｘ（Medium Dependent Interface Crossover）とアップリンクポート用のＭＤＩ（Medium Dependent Interface）とがある。図６の例では、ポート番号「１」〜「５」のポートはローカルポートであり、ポート番号「６」のポートはアップリンクポートである。
【００７０】
ここでＶＭを実行する各ノード１００，２００，４００，５００では、ＮＩＣがＳＲ−ＩＯＶをサポートしている。このような環境でポートミラーリングを行う場合、監視用のＶＭがどのノード上で実行されているのかが、簡単には分からない。監視用のＶＭの場所が分からないと、正しくミラーパケットを転送することができない。
【００７１】
なお、ＯｐｅｎＦｌｏｗでは、すべてのノードがトンネルによってフルメッシュで接続されており、ミラーパケットもトンネルによって転送される。この場合、監視対象のＶＭを有するノードは、監視対象のＶＭに入出力されたパケットのミラーパケットを、すべてのトンネルポートで送信することができる。監視用のＶＭを有するノードは、例えばミラーパケットを受信したら、ミラーパケットの送信元に返信パケットを送信する。以後、監視対象のＶＭを有するノードは、返信があったトンネルのみから、ミラーパケットを送信する。このようにして、ＯｐｅｎＦｌｏｗを用いれば、ミラーパケットを監視用のＶＭへ送信することが可能となる。しかし、ＯｐｅｎＦｌｏｗを適用するには、すべてのスイッチがＯｐｅｎＦｌｏｗのパケットを解釈できることが条件となる。すなわち、ＯｐｅｎＦｌｏｗに対応していないスイッチを含むネットワークでは、ＯｐｅｎＦｌｏｗによるミラーパケットの送信を行うことができない。
【００７２】
そこで第２の実施の形態では、各ノードが連係して、ＯｐｅｎＦｌｏｗに頼らずに監視用のＶＭを有するノードを特定し、そのノードに対してミラーパケットを送信するためのスイッチの設定を行う。
【００７３】
図７は、ミラーリング設定のための連係動作の一例を示すシーケンス図である。例えば、ノード１００上に監視用のＶＭがあり、ノード２００上のＶＭを監視対象として、ポートミラーリングを行うものとする。システム管理用のノード３００は、ミラーリング設定の指示を、ノード２００に送信する（ステップＳ１１）。ミラーリング設定要求を受信したノード２００は、監視用のＶＭの位置を探索するために、検出パケットを、ノード２００と同じセグメント内にブロードキャストで送信する（ステップＳ１２）。監視用のＶＭを有するノード１００は、検出パケットに対してＡｃｋを応答する（ステップＳ１３）。ノード２００は、Ａｃｋ応答の有無、およびＡｃｋ応答を受信したポートの状態（ローカルポートかアップリンクポートか）に基づいて、監視用ＶＭとの接続関係を判定する（ステップＳ１４）。そしてノード２００は、判定した接続関係に基づいて、ネットワーク上のスイッチ４１〜４４にミラーリング用の設定を行う（ステップＳ１５）。スイッチ４１〜４４への設定は、例えばスイッチ４１〜４４に対して制御コマンドを送信することで行うことができる。
【００７４】
次にノード２００によるミラーリング設定処理の手順について説明する。
図８は、ミラーリング設定処理の手順の一例を示すフローチャートである。以下、図８に示す処理をステップ番号に沿って説明する。
【００７５】
［ステップＳ１０１］検出パケット送信部２１２は、ポートミラーマネージャ３１２からのミラーリング設定要求を受信する。ミラーリング設定要求には、例えば監視対象のＶＭのＩＰ（Internet Protocol）アドレスと監視を行う宛先ＶＭのＩＰアドレスとが含まれる。検出パケット送信部２１２は、ミラーリング設定要求に示されるＩＰアドレスに対応するＶＭを、監視対象のＶＭと判断する。なお、ミラーリング設定要求には、ミラーリングするパケットのトラフィックの方向を指定することもできる。例えばミラーリング設定要求において、監視対象のＶＭに入力するパケット、または監視対象のＶＭが出力したパケットのいずれかをミラーリングの対象として指定することができる。
【００７６】
検出パケット送信部２１２がミラーリング設定要求を受信したとき、スイッチ制御部２１５が、スイッチ情報記憶部２１１内のスイッチ情報を、最新の情報に更新してもよい。例えばスイッチ制御部２１５は、ミラーリング設定要求の受信を検知すると、各スイッチ４１〜４４からスイッチ情報を取得し、取得したスイッチ情報をスイッチ情報記憶部２１１に格納する。
【００７７】
［ステップＳ１０２］検出パケット送信部２１２は、検出パケットをブロードキャストで送信する。検出パケットは、例えば宛先のＭＡＣアドレスのすべてのビットが「１」のブロードキャストフレームによって送信される。また検出パケットには、検出パケットであることを示す識別子が含められる。送信された検出パケットは、スイッチ４１〜４３を介して、ノード２００と同一セグメント内の装置に送信される。スイッチ４１は、ノード２００が接続されたポートに対しても、検出パケットのブロードキャスト送信のフレームを出力する。
【００７８】
［ステップＳ１０３］宛先判定部２１４は、検出パケット送信部２１２が送信した検出パケットに対するＡｃｋ応答を受信したか否かを判断する。Ａｃｋ応答を受信した場合、宛先判定部２１４は、処理をステップＳ１０５に進める。またＡｃｋ応答を受信しないまま、応答の待ち時間がタイムアウトとなった場合、宛先判定部２１４は、処理をステップＳ１０４に進める。
【００７９】
［ステップＳ１０４］宛先判定部２１４は、宛先ＶＭが、ルータ４５を介してＬ３接続されていることを、スイッチ制御部２１５に通知する。スイッチ制御部２１５は、ノード２００に接続されているスイッチ４１に対して、監視対象のＶＭの入出力パケットのミラーパケットをカプセル化して、カプセル化したパケットを宛先ＶＭのＩＰアドレス宛に送信するように設定する。その後、スイッチ制御部２１５はミラーリング設定処理を終了する。
【００８０】
［ステップＳ１０５］宛先判定部２１４は、受信したＡｃｋ応答の受信ポートの状態を、スイッチ４１のＭＡＣ学習テーブルとポート状態テーブルとに基づいて探索する。例えば宛先判定部２１４は、Ａｃｋ応答のパケットを含むフレームの送信元アドレスを参照し、送信元のＭＡＣアドレスを取得する。次に宛先判定部２１４は、スイッチ４１のＭＡＣ学習テーブル４１ａを参照し、送信元のＭＡＣアドレスが登録されたポート番号を取得する。さらに宛先判定部２１４は、ポート状態テーブル４１ｂを参照し、取得したポート番号の状態を取得する。
【００８１】
［ステップＳ１０６］宛先判定部２１４は、Ａｃｋ応答の受信ポートがローカルポートかアップリンクポートかを判断する。宛先判定部２１４は、ローカルポートであれば、処理をステップＳ１０７に進める。また宛先判定部２１４は、アップリンクポートであれば、処理をステップＳ１０８に進める。
【００８２】
［ステップＳ１０７］宛先判定部２１４は、宛先ＶＭが、同一のスイッチ４１に接続されたノード上のＶＭであることを、スイッチ制御部２１５に通知する。スイッチ制御部２１５は、スイッチ４１に対して、ポートミラーリングの設定を行う。例えばスイッチ制御部２１５は、スイッチ４１に対して、ノード２００が接続されているポートをミラーポートに設定する。さらにスイッチ制御部２１５は、スイッチ４１に対して、宛先ＶＭを実行しているノードが接続されているポート（Ａｃｋ応答の受信ポート）を、モニタポートに設定する。その後、宛先判定部２１４はミラーリング設定処理を終了する。
【００８３】
［ステップＳ１０８］宛先判定部２１４は、宛先ＶＭが、複数のスイッチを介して接続された、同一セグメント内のノード上のＶＭであることを、スイッチ制御部２１５に通知する。スイッチ制御部２１５は、ミラーリング用のＶＬＡＮを設定する。例えばスイッチ制御部２１５は、スイッチ４１に対して、ノード２００が接続されたポートのミラーパケットを、ミラーリング用のＶＬＡＮ＿ＩＤを付与してアップリンクポートに送信するように設定する。また、スイッチ制御部２１５は、宛先ＶＭを有しているノードが接続されたスイッチに対して、ミラーリング用のＶＬＡＮ＿ＩＤを有するＶＬＡＮのパケットを、そのノードが接続されたポートに送信するように設定する。
【００８４】
このようにして、監視対象のＶＭと監視用のＶＭとのネットワーク上の接続関係に応じて、監視用のＶＭを宛先ＶＭとする適切なミラーリング設定が行われる。そしてミラーリング設定の結果、監視対象のＶＭの入出力パケットのミラーパケットが、監視用のＶＭに送信される。
【００８５】
以下、図９〜図１１を参照して、監視対象のＶＭと監視用のＶＭとの位置関係に応じたミラーリングの設定に基づくミラーパケットの送信例を説明する。
図９は、ミラーリングの第１の設定例を示す図である。図９の例では、ＶＭ１２０が監視用のＶＭである。
【００８６】
ここで、例えばＶＭ１３０のＩＰアドレスを監視対象として指定したミラーリング設定要求が、ノード１００に入力されたものとする。この場合、ＯＳ１１０は、検出パケットのブロードキャスト送信により、監視用のＶＭ１２０が、ＯＳ１１０と同じノード１００内にあること（スイッチ４１の同じポートに接続されたノード１００上にあること）を認識する。図９の例では、ノード１００の接続ポートは、スイッチ４１のポート番号「１」のポートである。この場合、ＯＳ１１０は、スイッチ４１に対して、ポート番号「１」のポートをミラーポートおよびモニタポートとして設定する。
【００８７】
その後、ＶＭ１３０がＮＩＣ１０８によって生成されたＶＦ１０８ｂを用いて通信を行う。ＶＦ１０８ｂは、スイッチ４１のポート番号「１」のポートを介して、パケットの送信または受信を行う。すると、スイッチ４１は、ポート番号「１」のポートを介して入出力されるパケットのミラーパケット５１を生成し、ミラーパケット５１をポート番号「１」のポートに送信する。送信されたミラーパケット５１は、ＶＦ１０８ａを介してＶＭ１２０で受信される。
【００８８】
なお、ミラーポートとモニタポートとが同じポートに設定された場合、ミラーポートに対してミラーパケット５１，５２が送信される。スイッチ４１は、モニタポートに対して送信されたミラーパケット５１，５２については、ミラーリングを抑止する。これにより、ミラーポートとモニタポートとが同じポートに設定された場合でも、ミラーパケットはミラーリングの対象とされずに済む。
【００８９】
また、例えばＶＭ２２０のＩＰアドレスを監視対象として指定したミラーリング設定要求が、ノード２００に入力されたものとする。この場合、ＯＳ２１０は、検出パケットのブロードキャスト送信により、監視用のＶＭ１２０が、ノード２００と同じスイッチ４１に接続されたノード１００内にあることを認識する。図９の例では、ノード１００の接続ポートはスイッチ４１のポート番号「１」のポートであり、ノード２００の接続ポートはスイッチ４１のポート番号「４」のポートである。この場合、ＯＳ２１０は、スイッチ４１に対して、ポート番号「１」のポートをミラーポートとして設定し、ポート番号「４」のポートをモニタポートとして設定する。
【００９０】
その後、ＶＭ２２０がＮＩＣ２０８によって生成されたＶＦ１０８ａを用いて通信を行う。ＶＦ２０８ａは、スイッチ４１のポート番号「４」のポートを介して、パケットの送信または受信を行う。すると、スイッチ４１は、ポート番号「４」のポートを介して入出力されるパケットのミラーパケット５２を生成し、ミラーパケット５２をポート番号「１」のポートに送信する。送信されたミラーパケット５２は、ＶＦ１０８ａを介してＶＭ１２０で受信される。
【００９１】
図１０は、ミラーリングの第２の設定例を示す図である。図１０の例ではＶＭ１２０が監視用のＶＭである。そして、例えばＶＭ４２０のＩＰアドレスを監視対象として指定したミラーリング設定要求が、ノード４００に入力されたものとする。この場合、ＯＳ４１０は、検出パケットのブロードキャスト送信により、監視用のＶＭ１２０が、複数のスイッチ４１〜４３を介して接続されたノード１００内にあることを認識する。図１０の例では、ノード１００の接続ポートは、スイッチ４１のポート番号「１」のポートである。またノード４００の接続ポートは、スイッチ４３のポート番号「２」のポートである。さらにスイッチ４３のポート番号「３」のポートがアップリンクポートであり、そのアップリンクポートにスイッチ４２が接続されている。
【００９２】
この場合、ＯＳ４１０は、スイッチ４１，４３に対して、ミラーリング用のＶＬＡＮを設定する。すなわちＯＳ４１０は、スイッチ４１，４３にミラーリング用のＶＬＡＮを定義し、そのＶＬＡＮにＶＬＡＮ＿ＩＤを設定する。またＯＳ４１０は、スイッチ４３のポート番号「２」に入出力されるパケットのミラーパケット５３を、設定したＶＬＡＮ＿ＩＤを付与してポート番号「３」のポートから送信することを設定する。具体的には、ＯＳ４１０は、スイッチ４３のポート番号「２」のポートをミラーポートとし、そのミラーポートに入出力されるパケットのミラーパケット送信用のセッションを定義する。そのセッションには、ミラーリング用のＶＬＡＮ＿ＩＤが設定される。そしてＯＳ４１０は、スイッチ４３に、そのセッションによるミラーパケット５３の送信先のリフレクタポートとして、スイッチ４３のポート番号「３」のポートを設定する。さらにＯＳ４１０は、スイッチ４１のポート番号「１」に、設定したＶＬＡＮ＿ＩＤのミラーパケット５３を送信することを設定する。具体的には、ＯＳ４１０は、スイッチ４１に対して、ミラーリング用のＶＬＡＮの通信用のセッションを定義する。そのセッションには、ミラーリング用のＶＬＡＮ＿ＩＤが設定される。そしてＯＳ４１０は、スイッチ４１に、そのセッションで受信したパケットの宛先ポートとして、ポート番号「１」のポートを設定する。
【００９３】
その後、ＶＭ４２０がＮＩＣ４０８によって生成されたＶＦ４０８ａを用いて通信を行う。ＶＦ４０８ａは、スイッチ４３のポート番号「２」のポートを介して、パケットの送信または受信を行う。すると、スイッチ４３は、ポート番号「２」のポートを介して入出力されたパケットのミラーパケット５３を生成し、ミラーパケット５３を、ミラーリング用のＶＬＡＮのＶＬＡＮ＿ＩＤを付与して、ポート番号「３」のポートから送信する。スイッチ４２は、受信したミラーパケット５３を、受信ポート以外のすべてのポートから送信する。スイッチ４１は、ミラーパケット５３を受信すると、ＶＬＡＮ＿ＩＤによってミラーパケット５３であることを認識し、そのミラーパケット５３をポート番号「１」のポートから送信する。
【００９４】
図１１は、ミラーリングの第３の設定例を示す図である。図１１の例では、ＶＭ１２０が監視用のＶＭである。そして、例えばＶＭ５２０のＩＰアドレスを監視対象として指定したミラーリング設定要求が、ノード５００に入力されたものとする。この場合、ＯＳ５１０は、検出パケットのブロードキャスト送信により、監視用のＶＭ１２０が、ルータ４５を介して接続されたノード１００内にあることを認識する。図１１の例では、ノード１００の接続ポートは、スイッチ４１のポート番号「１」のポートである。またノード５００の接続ポートは、スイッチ４４のポート番号「２」のポートである。
【００９５】
この場合、ＯＳ５１０は、スイッチ４４に対して、ミラーパケットのカプセル化による送信を設定する。すなわちＯＳ５１０は、スイッチ４４に、ポート番号「２」のポートに入出力されたパケットのミラーパケット５４をカプセル化するように設定する。またＯＳ５１０は、スイッチ４４に、カプセル化により生成されたカプセル化パケット５５の宛先として、監視用のＶＭ１２０のＩＰアドレスを設定する。またＯＳ５１０は、スイッチ４４に、カプセル化により生成されたカプセル化パケット５５の送信に使用するセッションのセッションＩＤを設定する。
【００９６】
その後、ＶＭ５２０がＮＩＣ５０８によって生成されたＶＦ５０８ａを用いて通信を行う。ＶＦ５０８ａは、スイッチ４４のポート番号「２」のポートを介して、パケットの送信または受信を行う。すると、スイッチ４４は、ポート番号「２」のポートを介して入出力されるパケットのミラーパケット５４を生成し、そのミラーパケットをカプセル化する。そしてスイッチ４４は、カプセル化によって生成したカプセル化パケット５５を、ＶＭ１２０のＩＰアドレスを宛先として送信する。カプセル化パケット５５は、ルータ４５を介して、スイッチ４２に転送される。スイッチ４２は、カプセル化パケット５５をスイッチ４１に送信する。スイッチ４１は、カプセル化パケット５５を受信すると、カプセル化パケット５５の宛先のＩＰアドレスが、スイッチ４１自身に接続されたノード１００のアドレスであることを確認し、カプセル化パケット５５のカプセル化を解除する。そしてスイッチ４１は、カプセル化の解除により得られたミラーパケット５４を、カプセル化パケット５５の宛先のＩＰアドレスを有するノード１００が接続されたポートに送信する。
【００９７】
なお、ミラーパケット５４のカプセル化は、例えばＧＲＥ（Generic Routing Encapsulation）と呼ばれるプロトコルを用いて行うことができる。ＧＲＥを用いた場合、カプセル化パケット５５を受信したスイッチ４１は、ＧＲＥヘッダのプロトコルタイプを参照して、ミラーリング用にカプセル化されたパケットであることを認識できる。
【００９８】
図１２は、ＧＲＥパケットのフォーマットの一例を示す図である。ＧＲＥパケット６０には、カプセル化ヘッダ６１、ＧＲＥヘッダ６２、ミラーパケット情報６３、およびミラーパケット６４が含まれる。カプセル化ヘッダ６１には、カプセル化されたパケットのイーサネット（登録商標）ヘッダとＩＰヘッダとが含まれる。ＧＲＥヘッダには、カプセル化したパケットのプロトコルタイプを示す情報が含まれる。例えばプロトコルタイプが「０ｘ８８ＢＥ」であれば、カプセル化したのはミラーパケット６４である。スイッチ４１は、カプセル化パケット５５としてＧＲＥパケットを受信した場合、ＧＲＥヘッダ６２に示されるプロトコルタイプを確認することで、受信したカプセル化パケット５５に含まれるのがミラーパケット５４であることを認識することができる。
【００９９】
ミラーパケット情報６３には、セッションＩＤが含まれる。セッションＩＤは、送信元のスイッチ４４で指定されたカプセル化ミラーリングのＩＤである。スイッチ４１は、セッションＩＤが指定されたパケットの中で、カプセル化ヘッダ６１に示される宛先ＩＰアドレスがスイッチ４１自身に接続されているノードであれば、カプセル化を解除する。
【０１００】
なお、ＯＳ５１０は、カプセル化の解除を行うスイッチ４１に対して、予めカプセル化解除の設定を行ってもよい。例えばＯＳ５１０は、カプセル化のセッションＩＤと、カプセル化されたミラーパケットの送信先のポート（ノード１００が接続されたポート）のポート番号を、スイッチ４１に設定する。この場合、スイッチ４１は、カプセル化のセッションＩＤが付与されたカプセル化パケット５５を受信すると、そのカプセル化パケット５５のカプセル化を解除し、カプセル化パケット５５から取り出されたミラーパケット５４を、予め設定されたポートに送信する。
【０１０１】
このようにして、ＯｐｅｎＦｌｏｗをサポートしていないスイッチ間でミラーパケットを転送する場合であっても、ＳＲ−ＩＯＶ環境で通信を行うＶＭへの入出力パケットのミラーパケットを、監視用のＶＭへ正しく送信することが可能となる。
【０１０２】
〔その他の実施の形態〕
第２の実施の形態では、管理用のノード３００以外のノード１００，２００，４００，５００それぞれにスイッチ制御部が設けられているが、スイッチ制御部は、少なくとも１つのノードに設けられていればよい。その場合、各ノード１００，２００，４００，５００の宛先判定部は、判定結果を、スイッチ制御部を有するノードにネットワーク経由で通知する。
【０１０３】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【符号の説明】
【０１０４】
１  ネットワーク
２ａ，２ｂ，・・・  スイッチ
３  監視ノード
３ａ，４ｅ  処理部
３ｂ，４ｆ  仮想マシン
４  情報処理装置
４ａ  ネットワークインタフェース
４ｂ  記憶部
４ｃ  ノード識別子情報
４ｄ  状態情報
４ｇ  ＶＦ
５  ブロードキャストフレーム
５ａ  検出パケット
６  フレーム
６ａ  送信元ノード識別子
６ｂ  応答パケット
【図１】
2020113836.tif 000003
【図２】
2020113836.tif 000004
【図３】
2020113836.tif 000005
【図４】
2020113836.tif 000006
【図５】
2020113836.tif 000007
【図６】
2020113836.tif 000008
【図７】
2020113836.tif 000009
【図８】
2020113836.tif 000010
【図９】
2020113836.tif 000011
【図１０】
2020113836.tif 000012
【図１１】
2020113836.tif 000013
【図１２】
2020113836.tif 000014