(57)【要約】【課題】仮想マシン上で実行される第１コンテナにより送受信される情報を複製し第２コンテナに転送する処理を、適切に行なう。【解決手段】複数の仮想マシン４により実行される複数のコンテナ５のうちのいずれかから送信される第１情報を検出する検出部３３と、予め指定された第１及び第２コンテナ５−１及び５−４のアドレスを対応付けた対応情報３２を記憶する記憶部と、前記第１情報に含まれるアドレスと、前記第１又は第２コンテナ５のアドレスとが一致する場合、一致した前記第１又は第２コンテナ５と、前記第１情報に基づき特定される仮想マシン４−１のポート４１と、を対応付けて前記対応情報３２に設定する設定部３４と、前記対応情報に基づき、前記第１コンテナ５−１に対応付けられた第１ポート４１を通過する第２情報を複製し、前記第２コンテナ５−４に対応付けられた第２ポート４１を宛先として転送する複製転送部３１及び３５と、を備える。【選択図】図９
2020205571.tif 000002
【特許請求の範囲】
【請求項１】
１以上の情報処理装置を備える情報処理システムであって、
前記１以上の情報処理装置は、
複数の仮想マシンにより実行される複数のコンテナのうちのいずれかのコンテナから送信される第１情報であって、少なくとも１つのアドレスを含む前記第１情報を検出する検出部と、
予め指定された第１コンテナのアドレスと、予め指定された第２コンテナのアドレスと、を対応付けた対応情報を記憶する記憶部と、
前記第１情報に含まれるアドレスと、前記第１コンテナのアドレス、又は、前記第２コンテナのアドレスとが一致する場合、一致した前記第１コンテナ又は前記第２コンテナと、前記第１情報に基づき特定される仮想マシンのポートと、を対応付けて前記対応情報に設定する設定部と、
前記対応情報に基づき、前記第１コンテナに対応付けられた第１ポートを通過する第２情報を複製し、複製した前記第２情報を、前記第２コンテナに対応付けられた第２ポートを宛先として転送する複製転送部と、を備える、
情報処理システム。
【請求項２】
前記複製転送部は、前記第１ポートを通過する前記第２情報であって、前記第１情報に含まれる前記アドレスと、前記第２コンテナのアドレスとは異なるアドレスと、の間で送信又は受信される前記第２情報を複製し、複製した前記第２情報を、前記第２ポートを宛先として転送する、
請求項１に記載の情報処理システム。
【請求項３】
前記１以上の情報処理装置は、
前記第２コンテナを実行する仮想マシンとの間のトンネル経路を形成するトンネルポートを生成する生成部と、
前記第２ポートを宛先として転送された前記第２情報を、前記トンネルポートに転送する転送部と、を備え、
前記トンネルポートは、前記転送部から受信した前記第２情報を、前記トンネル経路を経由して、前記第２コンテナを実行する仮想マシンに送信する、
請求項１又は請求項２に記載の情報処理システム。
【請求項４】
前記転送部は、前記第２情報に付加された、前記複製転送部による転送で利用された第１ヘッダ情報を除去し、前記第１ヘッダ情報を除去した前記第２情報を前記トンネルポートに転送し、
前記トンネルポートは、受信した前記第２情報に対して、前記第２コンテナを実行する仮想マシンを宛先とする第２ヘッダ情報を付加し、前記第２ヘッダ情報を付加した前記第２情報を前記トンネル経路に送信する、
請求項３に記載の情報処理システム。
【請求項５】
前記トンネルポートは、前記複数の仮想マシンの間の通信を制御する仮想スイッチに備えられ、
前記転送部は、前記仮想スイッチに備えられ、前記第２コンテナを実行する仮想マシンの前記第２ポートに対応する、仮想ポートである、
請求項３又は請求項４に記載の情報処理システム。
【請求項６】
前記第１情報は、予め設定されたタイミングで、前記第１コンテナと前記第２コンテナとの間で送受信される、
請求項１〜４のいずれか１項に記載の情報処理システム。
【請求項７】
複数の仮想マシンにより実行される複数のコンテナのうちのいずれかのコンテナから送信される第１情報であって、少なくとも１つのアドレスを含む前記第１情報を検出する検出部と、
予め指定された第１コンテナのアドレスと、予め指定された第２コンテナのアドレスと、を対応付けた対応情報を記憶する記憶部と、
前記第１情報に含まれるアドレスと、前記第１コンテナのアドレス、又は、前記第２コンテナのアドレスとが一致する場合、一致した前記第１コンテナ又は前記第２コンテナと、前記第１情報に基づき特定される仮想マシンのポートと、を対応付けて前記対応情報に設定する設定部と、
前記対応情報に基づき、前記第１コンテナに対応付けられた第１ポートを通過する第２情報を複製し、複製した前記第２情報を、前記第２コンテナに対応付けられた第２ポートを宛先として転送する複製転送部と、を備える、
情報処理装置。
【請求項８】
複数の仮想マシンにより実行される複数のコンテナのうちのいずれかのコンテナから送信される第１情報であって、少なくとも１つのアドレスを含む前記第１情報を検出し、
記憶部に、予め指定された第１コンテナのアドレスと、予め指定された第２コンテナのアドレスと、を対応付けた対応情報を記憶し、
前記第１情報に含まれるアドレスと、前記第１コンテナのアドレス、又は、前記第２コンテナのアドレスとが一致する場合、一致した前記第１コンテナ又は前記第２コンテナと、前記第１情報に基づき特定される仮想マシンのポートと、を対応付けて前記対応情報に設定し、
前記対応情報に基づき、前記第１コンテナに対応付けられた第１ポートを通過する第２情報を複製し、
複製した前記第２情報を、前記対応情報に基づき、前記第２コンテナに対応付けられた第２ポートを宛先として転送する、
処理をコンピュータに実行させる、情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理装置、及び情報処理プログラムに関する。
【背景技術】
【０００２】
１以上の情報処理装置の物理ハードウェア（ＨＷ；Hardware）資源を利用して仮想的なサーバとして提供される仮想マシン（ＶＭ；Virtual Machine）が知られている。また、仮想マシンの監視等を行なうための手法として、パケットキャプチャが知られている。
【０００３】
パケットキャプチャの一態様として、ポートミラーリングがある。ポートミラーリングは、ホスト上の仮想スイッチのポートを通過する、ＶＭへの入力パケット、出力パケット、又は両方のパケット、を別のポートにミラーリングする処理である。例えば、仮想スイッチは、ポートにおけるパケットに対する処理が完了したときに、当該パケットを複製してミラーパケットを生成し、ミラーパケットを別のポートに送信（転送）する。
【０００４】
また、仮想化技術の一例として、「コンテナ」が知られている。コンテナは、ＯＳ（Operating System）上に仮想的なＯＳ空間を提供する技術である。１つのＶＭ上に、複数のコンテナを起動することも可能である。
【０００５】
ＶＭ上でコンテナが実行される場合、送信元コンテナから送信されたパケットは、ＶＭにおいて、ＩＰ（Internet Protocol）ルーティングによりアドレスが変換され、ＶＭの仮想ポートから仮想スイッチに送信される。仮想スイッチは、パケットのヘッダに基づき送信元コンテナを実行するＶＭにパケットを転送する。宛先コンテナを実行するＶＭは、受信したパケットをＩＰルーティングによりアドレス変換し、宛先コンテナに送信する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１７−２２７６７号公報
【特許文献２】特表２０１８−５２８７２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述したＶＭのポートミラーリング機能では、ＶＭ上にコンテナが配備される環境において、コンテナ単位でポートミラーリングを行なうことが考慮されていない。このため、例えば、コンテナにより送受信されるパケット等の情報を複製し、監視を行なうコンテナに転送するミラーリングを、適切に行なうことが困難となる場合がある。
【０００８】
１つの側面では、本発明は、仮想マシン上で実行される第１コンテナにより送受信される情報を複製し第２コンテナに転送する処理を、適切に行なうことを目的の１つとする。
【課題を解決するための手段】
【０００９】
１つの側面では、情報処理システムは、１以上の情報処理装置を備えてよい。前記１以上の情報処理装置は、検出部と、記憶部と、設定部と、複製転送部と、を備えてよい。前記検出部は、複数の仮想マシンにより実行される複数のコンテナのうちのいずれかのコンテナから送信される第１情報であって、少なくとも１つのアドレスを含む前記第１情報を検出してよい。前記記憶部は、予め指定された第１コンテナのアドレスと、予め指定された第２コンテナのアドレスと、を対応付けた対応情報を記憶してよい。前記設定部は、前記第１情報に含まれるアドレスと、前記第１コンテナのアドレス、又は、前記第２コンテナのアドレスとが一致する場合、一致した前記第１コンテナ又は前記第２コンテナと、前記第１情報に基づき特定される仮想マシンのポートと、を対応付けて前記対応情報に設定してよい。前記複製転送部は、前記対応情報に基づき、前記第１コンテナに対応付けられた第１ポートを通過する第２情報を複製し、複製した前記第２情報を、前記第２コンテナに対応付けられた第２ポートを宛先として転送してよい。
【発明の効果】
【００１０】
１つの側面では、仮想マシン上で実行される第１コンテナにより送受信される情報を複製し第２コンテナに転送する処理を、適切に行なうことができる。
【図面の簡単な説明】
【００１１】
【図１】ポートミラーリングの一例を説明するためのブロック図である。
【図２】サーバ型仮想化の一例を示す図である。
【図３】コンテナ型仮想化の一例を示す図である。
【図４】コンテナネットワークの一例を示すブロック図である。
【図５】比較例に係る情報処理システムの動作を説明するためのブロック図である。
【図６】比較例に係る情報処理システムの動作を説明するためのブロック図である。
【図７】一実施形態の一例としての情報処理システムのＨＷ構成例を示すブロック図である。
【図８】一実施形態の一例としてのコンピュータのＨＷ構成例を示すブロック図である。
【図９】一実施形態の一例としての情報処理システムの機能構成例を示すブロック図である。
【図１０】ＶＭミラー管理テーブルの一例を示す図である。
【図１１】コンテナミラー管理テーブルの初期状態の一例を示す図である。
【図１２】一実施形態に係るポートミラーリングの一例を示すブロック図である。
【図１３】コンテナミラー管理テーブルの一例を示す図である。
【図１４】宛先コンテナに対するミラーパケットの転送経路の一例を示すブロック図である。
【図１５】ＶＸＬＡＮ（Virtual eXtensible Local Area Network）ポートによりカプセル化されたミラーパケットの一例を示す図である。
【図１６】一実施形態に係る検出処理の動作例を示すフローチャートである。
【図１７】一実施形態に係るトンネル生成処理の動作例を示すフローチャートである。
【図１８】一実施形態に係るミラーリング処理の動作例を示すフローチャートである。
【図１９】一実施形態に係るパケット転送処理の動作例を示すフローチャートである。
【図２０】一実施形態に係るカプセル化処理の動作例を示すフローチャートである。
【図２１】一実施形態に係る情報処理システムの動作例を示すブロック図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。例えば、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。
【００１３】
なお、以下の説明で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
【００１４】
〔１〕一実施形態
図１は、ポートミラーリングの一例を説明するためのブロック図である。図１に示すように、情報処理システム１において、ホスト２上では、仮想スイッチ３、並びに、ＶＭ４−１及び４−２が実行される。以下、ＶＭ４−１及び４−２をそれぞれ区別しない場合には、符号のハイフン「−」以降を省略し、ＶＭ４と表記する。符号にハイフン「−」を含む、後述する他の機能ブロック又はＨＷブロックについても同様である。
【００１５】
なお、「ホスト」は、１以上の情報処理装置のＨＷ資源を利用して実行されるＯＳ（「ホストＯＳ」又は「仮想ＯＳ」と称されてもよい）と、当該ＯＳ上で実行されるハイパバイザ等の仮想化管理機能とを含むものとする。仮想化管理機能にホストＯＳが不要である場合、「ホスト」は、ＨＷ資源を利用して実行される仮想化管理機能を含むものとする。
【００１６】
仮想スイッチ３は、ＶＭ４−１及び４−２の各々の仮想ポート（図１では「eth0」と表記）４１−１及び４１−２に対して、仮想ポート（図１では「vif1.0」及び「vif2.0」と表記）３１−１及び３１−２を備える。仮想ポート３１は、仮想インタフェース（ＩＦ；Interface）と称されてもよい。
【００１７】
例えば、ＶＭ４−１の仮想ポート４１−１にポートミラーリングが設定されている場合、仮想ポート３１−１は、仮想ポート４１−１からの出力パケット又は仮想ポート４１−１への入力パケット、に対する処理が完了したときに、ミラーパケットを生成する。生成されたミラーパケットは、仮想スイッチ３及び仮想ポート３１−２を経由して、監視を行なうＶＭ４−２の仮想ポート４１−２に転送される。
【００１８】
図２は、ＶＭ等のサーバ型仮想化の一例を示す図であり、図３は、コンテナ型仮想化の一例を示す図である。
【００１９】
図２に示すように、サーバ型仮想化では、ＨＷ資源やＮＷ（Network）資源等の物理的なインフラ上でホストＯＳが実行され、ホストＯＳ上で実行されるハイパバイザにより、複数のＶＭが実行される。ＶＭは、ゲストＯＳ、バイナリ及びライブラリ、アプリケーションを含む。
【００２０】
図３に示すように、コンテナ型仮想化では、ＨＷ資源やＮＷ資源等の物理的なインフラ上でＯＳが実行され、ＯＳ上で実行されるコンテナエンジンにより、複数のコンテナが実行される。コンテナは、バイナリ及びライブラリ並びにアプリケーションを含んでよい。
【００２１】
図３に例示するように、コンテナ型仮想化では、ＯＳ上に仮想的なＯＳ空間が提供される。このため、例えば、図２に示すＶＭ（「ゲストＯＳ」と称されてもよい）上に、複数のコンテナを起動することも可能である。
【００２２】
図４は、コンテナネットワークの一例を示すブロック図である。図４に示すように、ＶＭ４において、複数のコンテナ５−１及び５−２が実行される場合を想定する。コンテナネットワークでは、ＶＸＬＡＮにより、オーバレイネットワークが構築される。
【００２３】
図４に示すように、コンテナ５−１及び５−２は、仮想ブリッジ（図４では「br0」と表記）４２を介して、ＶＸＬＡＮポート（図４では「vxlan0」と表記）４３と接続される。ＶＸＬＡＮポート４３と仮想ポート４１との間では、ブリッジ接続ではなく、ＩＰルーティングによりパケットが転送される。
【００２４】
ここで、ＶＭ４上にコンテナ５が配備されている環境において、ＶＭ４のポートミラーリング機能を利用して、コンテナ５のポートミラーリングを行なう場合を想定する。
【００２５】
図５及び図６は、比較例に係る情報処理システム１００の動作を説明するためのブロック図である。図５に示すように、ホスト２０１及び２０２でそれぞれ動作する仮想スイッチ３０１及び３０２は、コンテナ５０１〜５０４の配備先のＶＭ４０１〜４０３を認識することが困難である。
【００２６】
例えば、仮想スイッチ３０１及び３０２は、監視対象であるコンテナ５０１を実行するＶＭ４０１、及び、キャプチャされたパケットの宛先のコンテナ５０４を実行するＶＭ４０３、を特定できない。このため、仮想スイッチ３０１及び３０２は、パケットキャプチャを設定する仮想ポート４１１及び４１２を特定できず、コンテナ５０１からコンテナ５０４へのポートミラーリングの実行が困難となる。
【００２７】
また、図６に例示するように、ホスト２０１及び２０２に配備されている全てのＶＭ４０１〜４０３に対して、ポートミラーリング設定を行なうことも考えられる。しかしながら、図５の場合と同様に、いずれのコンテナ５０１〜５０５をミラーリングすればよいか不明であり、また、いずれのＶＭ４０１〜４０３において、ミラーパケットの宛先のコンテナ５０５が起動しているのか不明である。
【００２８】
また、仮に、コンテナ５０５を実行する４０３を特定できたとしても、ＶＭ４０３において、複数のコンテナ５０４、５０５が起動していた場合、いずれのコンテナ５０４及び５０５にミラーパケットを転送すればよいか不明である。
【００２９】
さらに、図６の例では、監視対象以外の（例えば他のユーザの）コンテナ５０２〜５０４のパケットについてもミラーリングが行なわれる。このため、セキュリティの面で不都合が生じるとともに、ホスト２０１及び２０２を実行する情報処理装置において、不要なＨＷリソースやＮＷリソースが消費されることになる。
【００３０】
そこで、一実施形態では、１つの側面において、仮想マシン上で実行される第１コンテナにより送受信される情報を複製し第２コンテナに転送する処理を、適切に行なう手法を説明する。
【００３１】
〔１−１〕一実施形態の構成例
（ハードウェア構成例）
図７は、一実施形態の一例としての情報処理システム１のＨＷ構成例を示すブロック図であり、図８は、一実施形態の一例としてのコンピュータ２０のＨＷ構成例を示すブロック図である。
【００３２】
図７に示すように、情報処理システム１は、複数のサーバ１０−１及び１０−２、及び、管理装置１１を備えてよい。なお、図７の例では、便宜上、２台のサーバ１０を示すが、情報処理システム１は、３以上のサーバ１０を備えてもよい。
【００３３】
サーバ１０は、情報処理装置の一例であり、図１に例示するホスト２を実行するためのＨＷ資源を提供する。複数のサーバ１０の間は、仮想化ネットワーク１ａにより相互に通信可能に接続されてよい。
【００３４】
管理装置１１は、情報処理装置の一例であり、図１に例示するホスト２、仮想スイッチ３、ＶＭ４、及び、コンテナ５の少なくとも１つの管理を行なう。管理装置１１では、例えば、管理者等のオペレータにより、図示しない端末等を介して設定等の種々の処理が行なわれてもよい。なお、管理装置１１は、複数のサーバ１０のうちの１以上のサーバ１０であってもよい。
【００３５】
管理装置１１と複数のサーバ１０との間は、管理ネットワーク１ｂにより相互に通信可能に接続されてよい。なお、管理ネットワーク１ｂに代えて、仮想化ネットワーク１ａが用いられてもよい。
【００３６】
仮想化ネットワーク１ａ及び管理ネットワーク１ｂは、それぞれ、イーサネット（Ethernet；登録商標）に準拠したＬＡＮ（Local Area Network）等のネットワークであってもよい。
【００３７】
サーバ１０及び管理装置１１は、互いに同様のＨＷ構成を備えてよい。以下、図８を参照して、サーバ１０及び管理装置１１を代表して、コンピュータ２０のＨＷ構成例を説明する。図８に示すように、コンピュータ２０は、プロセッサ２０ａ、メモリ２０ｂ、記憶装置２０ｃ、ＩＦ部２０ｄ、Ｉ／Ｏ（Input / Output）部２０ｅ、及び、読取部２０ｆを備えてよい。
【００３８】
プロセッサ２０ａは、対応する各ブロック２０ｂ〜２０ｆとバス２０ｉを介して相互に通信可能に接続され、種々の制御や演算を行なう演算処理装置の一例である。プロセッサ２０ａは、メモリ２０ｂ、記憶装置２０ｃ、又は記録媒体２０ｈ等に格納されたプログラムを実行することにより、サーバ１０又は管理装置１１における種々の機能を実現する。
【００３９】
なお、プロセッサ２０ａは、複数のプロセッサを含むマルチプロセッサであってもよいし、複数のプロセッサコアを有するマルチコアプロセッサであってもよく、或いは、マルチコアプロセッサを複数有する構成であってもよい。
【００４０】
プロセッサ２０ａとしては、例えば、ＣＰＵ、ＭＰＵ、ＧＰＵ、ＡＰＵ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡ等の集積回路が挙げられる。ＣＰＵはCentral Processing Unitの略称であり、ＭＰＵはMicro Processing Unitの略称である。ＧＰＵはGraphics Processing Unitの略称であり、ＡＰＵはAccelerated Processing Unitの略称である。ＤＳＰはDigital Signal Processorの略称であり、ＡＳＩＣはApplication Specific ICの略称であり、ＦＰＧＡはField-Programmable Gate Arrayの略称である。
【００４１】
メモリ２０ｂは、種々のデータやプログラムを格納する記憶装置である。プロセッサ２０ａは、プログラムを実行する際に、メモリ２０ｂにデータやプログラムを格納し展開する。なお、メモリ２０ｂとしては、例えばＲＡＭ（Random Access Memory）等の揮発性メモリが挙げられる。
【００４２】
記憶装置２０ｃは、種々のデータやプログラム等を格納するＨＷである。記憶装置２０ｃとしては、例えばＨＤＤ（Hard Disk Drive）等の磁気ディスク装置、ＳＳＤ等の半導体ドライブ装置、不揮発性メモリ、等の各種デバイスが挙げられる。不揮発性メモリとしては、例えば、フラッシュメモリ、ストレージクラスメモリ（ＳＣＭ；Storage Class Memory）、又はＲＯＭ（Read Only Memory）等が挙げられる。
【００４３】
ＩＦ部２０ｄは、有線又は無線による、仮想化ネットワーク１ａ又は管理ネットワーク１ｂや他のネットワークとの間の接続及び通信の制御等を行なう。
【００４４】
Ｉ／Ｏ部２０ｅは、マウスやキーボード等の入力装置及びディスプレイやプリンタ等の出力装置の少なくとも一方を含んでよい。例えば、管理装置１１において、Ｉ／Ｏ部２０ｅは、管理者等による種々の操作に用いられてもよい。
【００４５】
読取部２０ｆは、コンピュータ読取可能な記録媒体２０ｈに記録されたデータやプログラムを読み出す装置である。記録媒体２０ｈには、プログラム２０ｇが格納されてもよい。例えば、プロセッサ２０ａは、読取部２０ｆを介して記録媒体２０ｈから読み出したプログラム２０ｇを、メモリ２０ｂ等の記憶装置に展開して実行してもよい。
【００４６】
記録媒体２０ｈとしては、例示的に、磁気／光ディスクやフラッシュメモリ等の非一時的な記録媒体が挙げられる。磁気／光ディスクとしては、例示的に、フレキシブルディスク、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc）、ブルーレイディスク、ＨＶＤ（Holographic Versatile Disc）等が挙げられる。フラッシュメモリとしては、例示的に、ＵＳＢメモリやＳＤカード等が挙げられる。
【００４７】
なお、サーバ１０及び管理装置１１の上述したＨＷ構成は例示である。従って、サーバ１０及び管理装置１１内でのＨＷの増減（例えば任意のブロックの追加や省略）、分割、任意の組み合わせでの統合、バスの追加又は省略等は適宜行なわれてもよい。
【００４８】
（機能構成例）
図９は、一実施形態の一例としての情報処理システム１の機能構成例を示すブロック図である。図９に示すように、情報処理システム１は、機能構成として、ホスト２−１及び２−２、並びに、管理マシン８を備えてよい。なお、図９に示す例では、便宜上、２つのホスト２−１及び２−２を例に挙げるが、情報処理システム１は、３つ以上のホスト２を備えてもよい。
【００４９】
ホスト２−１及び２−２は、複数のサーバ１０（図７参照）が提供するＨＷ構成を利用して実現されてよい。
【００５０】
ホスト２は、ホストＯＳ６を実行し、ホストＯＳ６上でハイパバイザ６０を実行してよい。ハイパバイザ６０は仮想化管理機能の一例である。なお、ハイパバイザ６０にホストＯＳ６が不要である場合、ホスト２は、ハイパバイザ６０を実行してもよい。図９の例では、ホスト２−１は、ホストＯＳ６−１及びハイパバイザ６０−１を実行し、ホスト２−２は、ホストＯＳ６−２及びハイパバイザ６０−２を実行するものとする。
【００５１】
ホストＯＳ６（ハイパバイザ６０）上では、仮想スイッチ３及び１以上のＶＭ４が実行されてよい。図９の例では、ホストＯＳ６−１は、仮想スイッチ３−１並びにＶＭ４−１及び４−２を実行し、ホストＯＳ６−２は、仮想スイッチ３−２及びＶＭ４−３を実行するものとする。仮想スイッチ３の詳細は後述する。
【００５２】
ＶＭ４は、サーバ１０のＨＷ資源を利用して動作する仮想マシンの一例であり、一実施形態においては、１以上のコンテナ５を実行（起動）可能である。ＶＭ４は、図４に例示するように、仮想ポート４１、仮想ブリッジ４２及びＶＸＬＡＮポート４３を備えてよい。
【００５３】
仮想ブリッジ４２は、ＶＭ４内で仮想ブリッジ４２に接続されるコンテナ５間の通信を可能とする。
【００５４】
ＶＸＬＡＮポート４３は、コンテナ５から送信されるパケットに対して、ＶＸＬＡＮヘッダを付加することでＶＸＬＡＮパケット（以下、単に「パケット」と表記する場合がある）を生成し、ＶＸＬＡＮパケットを仮想ポート４１に転送する。また、ＶＸＬＡＮポート４３は、仮想ポート４１から受信するＶＸＬＡＮパケットからＶＸＬＡＮヘッダを除去して元のパケットを取り出し、取り出したパケットを仮想ブリッジ４２に転送する。なお、ＶＸＬＡＮヘッダは、仮想ネットワークを識別するためのＶＬＡＮ  ＩＤを含んでよい。
【００５５】
管理マシン８は、管理装置１１（図７参照）が提供するＨＷ構成を利用して実現されてよい。
【００５６】
管理マシン８は、ＯＳ７（例えば仮想ＯＳ）を実行し、ＯＳ７上でハイパバイザ７０を実行してよい。なお、管理マシン８において、ＯＳ７は実ＯＳであってもよく、この場合、ハイパバイザ７０が実行されなくてもよい。
【００５７】
ＯＳ７は、仮想化管理部７１及びポートミラー管理部７２を備えてよい。仮想化管理部７１は、ホスト２におけるＶＭ４、及び、ＶＭ４におけるコンテナ５の管理を行なう。
【００５８】
ポートミラー管理部７２は、ホスト２におけるポートミラーリングの管理を行なう。例えば、ポートミラー管理部７２は、ポートミラーリングの対象となるＶＭミラー管理テーブル（図９では「ＶＭミラー管理ＴＢＬ」と表記）７３を管理し、ホスト２に対して、当該テーブル７３に基づき、ＶＭ４単位のポートミラーリングの実行を指示してよい。
【００５９】
ＶＭミラー管理テーブル７３は、例えば、オペレータ等により設定されてよい。図１０は、ＶＭミラー管理テーブル７３の一例を示す図である。
【００６０】
図１０に示すように、ＶＭミラー管理テーブル７３は、例示的に、「ＩＤ」、「名前」、「ポートＩＤ」、「ミラー方向」、及び、「モニタポートＩＤ」を含んでよい。
【００６１】
「ＩＤ」（Identifier）は、ポートミラーリングのエントリを特定する識別情報の一例である。「名前」は、ポートミラーリングの対象となる対象ＶＭ４の仮想ポート４１の名前、例えば“VM1_eth0”等が設定される。「ポートＩＤ」は、対象ＶＭ４の仮想ポート４１の識別情報の一例である。「モニタポートＩＤ」は、ポートミラーリングによるミラーパケットの宛先となる宛先ＶＭ４の仮想ポート４１の識別情報の一例である。
【００６２】
「ミラー方向」は、ポートミラーリングの対象となるパケットの、対象ＶＭ４に対する転送方向を示す、「出力」、「入力」、又は「双方向」等が設定される。「出力」は、対象ＶＭ４から出力されるパケットが対象となることを示し、「入力」は、対象ＶＭ４に入力されるパケットが対象となることを示す。「双方向」は、対象ＶＭ４に入力されるパケットと、対象ＶＭ４から出力されるパケットと、が対象となることを示す。
【００６３】
なお、図１０では、ＶＭミラー管理テーブル７３に格納されるデータを、便宜上、テーブル形式として示すが、これに限定されるものではない。例えば、ＶＭミラー管理テーブル７３は、ＤＢ（Database）形式やＸＭＬ（eXtensible Markup Language）形式、配列等の種々の形態でデータを記憶してよい。ＶＭミラー管理テーブル７３は、例えば、管理装置１１のメモリ２０ｂ又は記憶装置２０ｃ（図８参照）の記憶領域に格納されてよい。
【００６４】
また、ポートミラー管理部７２は、コンテナ５単位のポートミラーリングの対象となる対象コンテナ５、及び、ポートミラーリングによるミラーパケットの宛先となる宛先コンテナ５の情報を受け付けてよい。当該情報は、例えばオペレータ等から入力されてよい。そして、ポートミラー管理部７２は、受け付けた情報を、ホスト２、例えば仮想スイッチ３に対して送信してよい。なお、対象コンテナ５及び宛先コンテナ５の情報としては、例えば、各コンテナ５のアドレス、一例としてＩＰアドレスが挙げられる。
【００６５】
〔１−２〕仮想スイッチの構成例
仮想スイッチ３は、複数のＶＭ４の間の通信を制御する。また、一実施形態に係る仮想スイッチ３は、管理マシン８からの指示に応じて、ＶＭ４単位、又は、コンテナ５単位のポートミラーリングを実行する。以下、仮想スイッチ３によるコンテナ５単位のポートミラーリングに着目した構成について説明する。
【００６６】
図９に例示するように、仮想スイッチ３は、１以上の仮想ポート３１、コンテナミラー管理テーブル（図９では「コンテナミラー管理ＴＢＬ」と表記）３２、アドレス検出部３３、ミラー設定部３４、ルーティング部３５、及び、トンネル作成部３６を備えてよい。図９の例では、仮想スイッチ３−１は、２つの仮想ポート３１−１及び３１−２を備え、仮想スイッチ３−２は、１つの仮想ポート３１を備えるものとする。
【００６７】
ここで、一実施形態において、対象コンテナ５は、仮想スイッチ３−１上で動作するＶＭ４−１のコンテナ５−１であるものとし、宛先コンテナ５は、仮想スイッチ３−２上で動作するＶＭ４−３のコンテナ５−４であるものとする。この場合、宛先コンテナ５−４を実行するＶＭ４を管轄する仮想スイッチ３−２は、後述するトンネル作成部３６により作成される、ＶＸＬＡＮポート３７をさらに備えてよい。
【００６８】
仮想ポート３１は、仮想スイッチ３が備える仮想的なＩＦであり、ＶＭ４の仮想ポート４１と接続される。仮想ポート３１は、対応するＶＭ４の仮想ポート４１からのパケットに対して所定の処理を行ない、ルーティング部３５に転送するとともに、ルーティング部３５からのパケットに対して所定の処理を行ない、対応するＶＭ４の仮想ポート４１に転送する。所定の処理には、一例として、パケットのヘッダの更新等の種々の処理が含まれてよい。
【００６９】
また、一実施形態に係る仮想ポート３１は、所定の処理として、後述するコンテナミラー管理テーブル３２に基づき、対象コンテナ５を実行するＶＭ４の仮想ポート４１を通過する、例えば宛先コンテナ５とは異なるＩＰアドレス宛のパケットを複製してよい。そして、仮想ポート３１は、コンテナミラー管理テーブル３２に基づき、複製したパケットを、宛先コンテナ５を実行するＶＭ４の仮想ポート４１を宛先として、ルーティング部３５に転送してよい。
【００７０】
なお、仮想ポート３１は、複製したパケットの転送の際に、当該パケット（ＶＸＬＡＮパケット）のヘッダに、ミラーパケットであることを示す識別情報を付加してもよい。ミラーパケットであることを示す識別情報としては、例えば、予め指定された特定のＶＬＡＮ  ＩＤ等が挙げられる。
【００７１】
コンテナミラー管理テーブル（以下、「管理テーブル」と表記する場合がある）３２は、コンテナ５のアドレスとＶＭ４のポートとを対応付ける対応情報の一例であり、コンテナ５単位のポートミラーリングを管理するテーブルである。管理テーブル３２は、例えば、仮想スイッチ３等により、管理マシン８から受信した対象コンテナ５及び宛先コンテナ５の情報に基づき生成及び更新されてよい。
【００７２】
図１１は、コンテナミラー管理テーブル３２の初期状態の一例を示す図である。図１１に示すように、管理テーブル３２は、例示的に、「ＩＤ」、「対象アドレス」、「対象ポートＩＤ」、「ミラー方向」、「宛先アドレス」及び、「宛先ポートＩＤ」を含んでよい。
【００７３】
「ＩＤ」は、コンテナ５単位のポートミラーリングのエントリを特定する識別情報の一例である。「対象アドレス」は、対象コンテナ５のアドレス、一例としてＩＰアドレスである。「宛先アドレス」は、宛先コンテナ５のアドレス、一例としてＩＰアドレスである。
【００７４】
「ミラー方向」は、ポートミラーリングの対象となるパケットの、対象コンテナ５（ＶＭ４）に対する転送方向を示す、「出力」、「入力」、又は「双方向」等が設定される。「出力」は、対象コンテナ５から出力されるパケットが対象となることを示し、「入力」は、対象コンテナ５に入力されるパケットが対象となることを示す。「双方向」は、対象コンテナ５に入力されるパケットと、対象コンテナ５から出力されるパケットと、が対象となることを示す。
【００７５】
「対象ポートＩＤ」は、対象コンテナ５が接続される「ポート」の識別情報の一例であり、「宛先ポートＩＤ」は、宛先コンテナ５が接続される「ポート」の識別情報の一例である。なお、「接続」とは、論理的な接続を含むものとする。一実施形態においては、「対象ポートＩＤ」及び「宛先ポートＩＤ」がそれぞれ、ＶＭ４における仮想ポート４１のＩＤを示すものとするが、これに限定されるものではなく、仮想ポート４１に接続される、仮想スイッチ３の仮想ポート３１のＩＤであってもよい。
【００７６】
管理テーブル３２の初期状態、例えば管理マシン８からの指示に応じた仮想スイッチ３による設定後、管理テーブル３２は、「ＩＤ」、「対象アドレス」、「ミラー方向」、及び、「宛先アドレス」が設定された状態となる。換言すれば、管理テーブル３２に対してエントリが追加される際には、対象コンテナ５及び宛先コンテナ５のアドレスの指定と、ポートミラーリングの対象となるパケットの指定とが行なわれる。
【００７７】
一方、管理テーブル３２の初期状態において、「対象ポートＩＤ」及び「宛先ポートＩＤ」は、未設定（ブランク又は“NULL”）である。これは、図５及び図６に示す比較例のように、コンテナ５０１〜５０５がＶＭ４０１〜４０３上で実行される場合に、対象コンテナ５０１及び宛先コンテナ５０４を特定することが困難であるためである。
【００７８】
そこで、一実施形態に係る仮想スイッチ３は、以下に説明する手法により、「対象ポートＩＤ」及び「宛先ポートＩＤ」を特定することで、図１２に例示するように、管理テーブル７３で指定されたコンテナ５間のポートミラーリングを実行可能とする。
【００７９】
なお、図１１では、管理テーブル３２に格納されるデータを、便宜上、テーブル形式として示すが、これに限定されるものではない。例えば、管理テーブル３２は、ＤＢ形式やＸＭＬ形式、配列等の種々の形態でデータを記憶してよい。管理テーブル３２は、例えば、サーバ１０のメモリ２０ｂ又は記憶装置２０ｃ（図８参照）の記憶領域に格納されてよい。管理テーブル３２を記憶する、サーバ１０のメモリ２０ｂ又は記憶装置２０ｃは、記憶部の一例である。
【００８０】
アドレス検出部３３は、検出部の一例であり、複数の仮想ポート３１又は４１の各々を監視し、コンテナ５が出力する特定種別のパケットを検出する。
【００８１】
特定種別のパケットとしては、例えば、パケットの送信元及び宛先の少なくとも一方のアドレス（例えばＩＰアドレス）を含むパケットであってよく、各コンテナ５の動作において、少なくとも１度は送信又は受信される可能性の高いパケットであってよい。
【００８２】
一例として、特定種別のパケットとしては、ＡＲＰパケット、又は、ＤＨＣＰ応答パケット等の、コンテナ５の起動後やアクセスの際等の所定のタイミングで送信又は受信されるパケットが挙げられる。ＡＲＰはAddress Resolution Protocolの略称であり、ＤＨＣＰはDynamic Host Configuration Protocolの略称である。ＡＲＰパケットには、例えばソースＩＰアドレスとしてコンテナ５のＩＰアドレスが含まれ、ＤＨＣＰ応答パケットには、例えばＤＨＣＰサーバによるオファーＩＰアドレスとしてコンテナ５のＩＰアドレスが含まれる。
【００８３】
なお、特定種別のパケットとしては、ＡＲＰやＤＨＣＰのパケットに限定されるものではなく、所定のタイミングで、コンテナ５から送信され、又は、コンテナ５により受信される、種々の種別のパケットが利用されてよい。特定種別のパケットは、第１情報又は制御情報の一例である。
【００８４】
ミラー設定部３４は、設定部の一例である。ミラー設定部３４は、アドレス検出部３３が検出した検出パケットに基づき、対象コンテナ５を起動する対象ＶＭ４、及び、宛先コンテナ５を起動する宛先ＶＭ４を、それぞれ特定する。
【００８５】
例えば、ミラー設定部３４は、検出パケットに含まれるＩＰアドレスと、対象コンテナ５のＩＰアドレス、又は、宛先コンテナ５のＩＰアドレスとが一致するか否かを判定する。検出パケットに含まれるＩＰアドレスとは、例えば、ＡＲＰパケットのソースＩＰアドレス又はＤＨＣＰ応答パケットのオファーＩＰアドレスである。
【００８６】
なお、対象コンテナ５のＩＰアドレスは、予め指定された第１コンテナ５のアドレスの一例であり、宛先コンテナ５のＩＰアドレスは、予め指定された第２コンテナ５のアドレスの一例である。
【００８７】
上記の判定により、例えば、検出パケットのＩＰアドレスが、管理テーブル３２における対象コンテナ５のＩＰアドレスと一致すれば、当該検出パケットを検出した（検出パケットが通過する）仮想ポート４１に対象コンテナ５が接続されていることがわかる。そこで、ミラー設定部３４は、第１ポートの一例である当該仮想ポート４１にポートミラーを設定する。
【００８８】
また、例えば、検出パケットのＩＰアドレスが、管理テーブル３２における宛先コンテナ５のＩＰアドレスと一致すれば、当該検出パケットを検出した（検出パケットが通過する）仮想ポート４１に宛先コンテナ５が接続されていることがわかる。そこで、ミラー設定部３４は、第２ポートの一例である当該仮想ポート４１をポートミラーの宛先ポートに決定する。
【００８９】
例えば、ミラー設定部３４は、ＩＰアドレスが一致した対象コンテナ５又は宛先コンテナ５と、送信されたパケットに基づき特定されるＶＭ４の仮想ポート４１（又は仮想ポート３１）のポートＩＤと、を対応付けて、管理テーブル３２に設定する。これにより、管理テーブル３２においては、図１３に例示するように、未設定であった「対象ポートＩＤ」及び「宛先ポートＩＤ」が設定される。
【００９０】
このように、ミラー設定部３４によれば、管理テーブル３２の設定により、対象コンテナ５のＩＰアドレスに一致したパケットを選択的にミラーリングするためのポートミラーを、仮想ポート４１（例えば図９において丸で示すポイント）に設定することができる。
【００９１】
なお、ミラー設定部３４は、例えば、管理テーブル３２において未設定の「対象ポートＩＤ」及び「宛先ポートＩＤ」が無くなるまで、アドレス検出部３３が特定種別のパケットを検出する都度、上述した判定及び管理テーブル３２の更新を行なってよい。
【００９２】
以上のように、アドレス検出部３３及びミラー設定部３４によれば、仮想スイッチ３において、特定種別のパケットの監視を行なうことで、例えば、ホスト２ごとに管理テーブル３２の情報を補完することができる。従って、ホスト２間での管理テーブル３２の共有を不要とすることができ、ＨＷ資源やＮＷ資源を効率的に利用できる。換言すれば、サーバ１０の処理負荷や、仮想化ネットワーク１ａの通信負荷を低減させることができる。
【００９３】
また、例えば、対象コンテナ５及び宛先コンテナ５が起動したタイミング等の予め設定されたタイミングで、対象コンテナ５と宛先コンテナ５との間で特定種別のパケットを送受信するように動作させてもよい。当該動作は、例えば管理マシン８、仮想スイッチ３、又はハイパバイザ６０等により制御されてよい。これにより、ホスト２ごとに管理テーブル３２の情報を容易に且つ確実に補完することができる。
【００９４】
ルーティング部３５は、仮想ポート３１間の通信を制御する。例えば、ルーティング部３５は、仮想ポート３１から転送されたパケットを、当該パケットのヘッダで指定されたＶＭ４の仮想ポート４１に転送する。
【００９５】
このように、仮想ポート３１及びルーティング部３５は、コンテナ５単位のポートミラーリングにおいて、以下の処理を行なう複製転送部の一例である。例えば、仮想ポート３１及びルーティング部３５は、管理テーブル３２に基づき、対象コンテナ５に対応付けられた仮想ポート４１を通過する、第２情報の一例であるパケットを複製する。また、例えば、仮想ポート３１及びルーティング部３５は、複製したパケットを、宛先コンテナ５に対応付けられた仮想ポート４１を宛先として転送する。
【００９６】
ここで、ミラーパケットの宛先アドレスは、上述のように、宛先コンテナ５のＩＰアドレスとは異なる。このため、宛先コンテナ５に対応付けられた仮想ポート４１に接続される仮想ポート３１は、通常のルーティングでは、受信したミラーパケットを、宛先コンテナ５に転送することが困難である。
【００９７】
そこで、宛先コンテナ５−４を実行するＶＭ４−３を管轄する仮想スイッチ３（図９の例では、仮想スイッチ３−２）は、受信したパケットのうちのミラーパケットを、宛先コンテナ５のＶＸＬＡＮに変換してから、宛先コンテナ５に転送する。
【００９８】
図１４は、宛先コンテナ５に対するミラーパケットの転送経路の一例を示すブロック図である。図１４では、図９に示す構成のうちの一部の構成を省略している。
【００９９】
図９に示す仮想ポート３１−１は、管理テーブル３２に基づき、対象ポートＩＤの仮想ポート４１を通過するパケットのうち、対象コンテナ５−１のＩＰアドレスを送信元又は宛先に含み、且つ、ミラー方向が一致するパケットを検出する。そして、仮想ポート３１−１は、検出したパケットを複製し、ルーティング部３５を経由して、宛先ポートＩＤの仮想ポート４１に転送する。
【０１００】
ルーティング部３５により転送されたミラーパケットは、仮想スイッチ３−１から、ホスト２間の通信路（例えば仮想化ネットワーク１ａ）を経由して、仮想スイッチ３−２が備える、宛先ポートＩＤに対応する仮想ポート３１により受信される。
【０１０１】
仮想ポート３１は、パケットを受信すると、当該パケットがミラーパケットか否かを判定する。例えば、仮想ポート３１は、当該パケットのヘッダに含まれるＶＬＡＮ  ＩＤを参照し、ミラーパケットを示すＶＬＡＮ  ＩＤであるか否かを判定してよい。ＶＬＡＮ  ＩＤがミラーパケットを示すと判定した場合、仮想ポート３１は、当該パケットを仮想ポート４１に転送する代わりに、ＶＸＬＡＮポート３７に転送する。
【０１０２】
このとき、仮想ポート３１は、ミラーパケットに付加された第１ヘッダ情報、例えばＶＸＬＡＮヘッダを除去し、ＶＸＬＡＮヘッダ除去後のミラーパケットを、ＶＸＬＡＮポート３７に転送してよい。このように、第２ポートを宛先として転送されたミラーパケットを、ＶＸＬＡＮポート３７に転送する転送部の一例である。
【０１０３】
ＶＸＬＡＮポート（図９及び図１４では「vxlan1」と表記）３７は、トンネル作成部３６により生成されるポートであり、ＶＭ４のＶＸＬＡＮポート４３との間でトンネル経路を形成するトンネルポートの一例である。
【０１０４】
トンネル作成部３６は、生成部の一例であり、例えば、ミラー設定部３４により管理テーブル３２の「宛先ポートＩＤ」が設定された場合に、当該宛先ポートＩＤのＶＭ４が有するＶＸＬＡＮポート４３に対応するＶＸＬＡＮポート３７を生成してよい。このように、トンネル作成部３６は、ＶＸＬＡＮポート３７を生成することで、ＶＭ４と仮想スイッチ３との間に、トンネル経路の一例であるＶＸＬＡＮトンネルを開設する。
【０１０５】
ＶＸＬＡＮポート３７は、仮想ポート３１から転送されたミラーパケットに対して、宛先コンテナ５−４を実行するＶＭ４を宛先とする第２ヘッダ情報の一例であるＶＸＬＡＮヘッダを付加してカプセル化する。ＶＸＬＡＮヘッダは、トンネル経路を識別するためのＶＬＡＮ  ＩＤ等の識別情報を含んでよい。
【０１０６】
図１５は、ＶＸＬＡＮポート３７によりカプセル化されたミラーパケットの一例を示す図である。図１５に示すように、ＶＸＬＡＮポート３７は、仮想ポート３１においてＶＸＬＡＮヘッダが除去されたミラーパケット（「オーバレイパケット」と称されてもよい）をペイロードとし、ＶＸＬＡＮヘッダを付加することで、ミラーパケットをカプセル化する。カプセル化されたミラーパケットは、「アンダーレイパケット」と称されてもよい。
【０１０７】
ＶＸＬＡＮポート３７は、カプセル化したミラーパケットを、トンネル経路、換言すれば、トンネル経路を経由してＶＭ４のＶＸＬＡＮポート４３に送信する。
【０１０８】
ＶＭ４では、ＶＸＬＡＮポート４３により、ミラーパケットのＶＸＬＡＮヘッダが除去され、ＶＸＬＡＮヘッダ除去後のミラーパケットが、仮想ブリッジ４２を経由して、宛先コンテナ５に転送される。
【０１０９】
以上により、一実施形態によれば、ＶＭ４上にコンテナ５が配備される環境において、ＶＭ４のポートミラーリング機能を利用してコンテナ５のポートミラーリングを行なう場合であっても、宛先コンテナ５に正しくミラーパケットを届けることが可能となる。
【０１１０】
〔１−３〕動作例
次に、図１６〜図２１を参照して、上述の如く構成された一実施形態に係る情報処理システム１の動作例を説明する。
【０１１１】
〔１−３−１〕検出処理
まず、図１６及び図２１を参照して、検出処理の動作例を説明する。なお、検出処理は、例えば、管理マシン８からの指示に基づき、主に、仮想スイッチ３のアドレス検出部３３及びミラー設定部３４により実行されてよい。
【０１１２】
図１６に例示するように、仮想スイッチ３は、管理マシン８からのコンテナミラーリングの実行指示に従い、実行指示で指定された対象コンテナ５及び宛先コンテナ５（図２１の（ｉ）参照）のＩＰアドレスを、管理テーブル３２に設定する（ステップＳ１）。
【０１１３】
アドレス検出部３３は、管理テーブル３２に「対象ポートＩＤ」又は「宛先ポートＩＤ」が未設定のエントリが存在する場合、各仮想ポート４１（例えば各仮想ポート３１）を監視し、仮想ポート４１を通過するパケットを取得する（ステップＳ２）。
【０１１４】
パケットを取得すると、アドレス検出部３３は、取得パケットが特定種別のパケットか否かを判定する（図２１の（ii）参照）。例えば、アドレス検出部３３は、取得パケットがＡＲＰパケットか否かを判定する（ステップＳ３）。
【０１１５】
取得パケットがＡＲＰパケットであると判定した場合（ステップＳ３でＹｅｓ）、アドレス検出部３３は、ＡＲＰパケット内のソースＩＰアドレスを取得し（ステップＳ４）、処理がステップＳ７に移行する。
【０１１６】
取得パケットがＡＲＰパケットではないと判定した場合（ステップＳ３でＮｏ）、アドレス検出部３３は、取得パケットがＤＨＣＰ応答パケットか否かを判定する（ステップＳ５）。取得パケットがＤＨＣＰ応答パケットではないと判定した場合（ステップＳ５でＮｏ）、処理がステップＳ１１に移行する。
【０１１７】
取得パケットがＤＨＣＰ応答パケットであると判定した場合（ステップＳ５でＹｅｓ）、アドレス検出部３３は、ＤＨＣＰ応答パケット内のオファーＩＰアドレスを取得し（ステップＳ６）、処理がステップＳ７に移行する。
【０１１８】
ステップＳ７では、ミラー設定部３４は、アドレス検出部３３が取得したＩＰアドレスが、管理テーブル３２に設定された対象コンテナ５のＩＰアドレスと一致するか否かを判定する。一致すると判定した場合（ステップＳ７でＹｅｓ）、ミラー設定部３４は、取得パケットに基づき特定されるＶＭ４の仮想ポート４１をミラーポートに設定し（ステップＳ８；図２１の（iii）参照）、処理がステップＳ１１に移行する。例えば、ミラー設定部３４は、管理テーブル３２に対して「対象ポートＩＤ」に仮想ポート４１のＩＤを設定してよい。
【０１１９】
取得パケットと対象コンテナ５のＩＰアドレスとが一致しないと判定した場合（ステップＳ７でＮｏ）、ミラー設定部３４は、取得したＩＰアドレスが、管理テーブル３２に設定された宛先コンテナ５のＩＰアドレスと一致するか否かを判定する（ステップＳ９）。一致しないと判定した場合（ステップＳ９でＮｏ）、処理がステップＳ１１に移行する。
【０１２０】
取得したＩＰアドレスと宛先コンテナ５のＩＰアドレスとが一致すると判定した場合（ステップＳ９でＹｅｓ）、ミラー設定部３４は、取得パケットに基づき特定されるＶＭ４の仮想ポート４１を宛先ポートに設定する（ステップＳ１０；図２１の（iv）参照）。そして、処理がステップＳ１１に移行する。宛先ポートの設定は、例えば、管理テーブル３２に対して「宛先ポートＩＤ」に仮想ポート４１のＩＤを設定することで行なわれてよい。
【０１２１】
なお、ステップＳ７及びＳ９において、取得パケットに基づき特定されるＶＭ４としては、例えば、取得パケットがＡＲＰパケットの場合は送信元のＶＭ４であり、取得パケットがＤＨＣＰ応答パケットの場合は宛先のＶＭ４が挙げられる。
【０１２２】
また、ステップＳ７及びＳ９における判定対象の対象コンテナ５及び宛先コンテナ５は、管理テーブル３２においてポートＩＤ未設定のエントリに設定されたコンテナ５に制限されてもよい。
【０１２３】
ステップＳ１１では、ミラー設定部３４は、管理テーブル３２において、未設定のミラーポート又は未設定の宛先ポートが存在するか否かを判定する。未設定のミラーポート又は未設定の宛先ポートが存在すると判定した場合（ステップＳ１１でＹｅｓ）、処理がステップＳ２に移行し、アドレス検出部３３によるパケットの監視が行なわれる。一方、未設定のミラーポート又は未設定の宛先ポートが存在しない、換言すれば、管理テーブル３２における全てのミラーポート及び宛先ポートの設定が完了した、と判定した場合、処理が終了する。
【０１２４】
なお、対象コンテナ５又は宛先コンテナ５が他のホスト２で実行される仮想スイッチ３の管轄である場合等、ポートＩＤが特定し難い場合を考慮し、ステップＳ１１のＹｅｓのルートに遷移可能な回数又は時間を制限してもよい。例えば、所定回数実行又は所定時間経過しても管理テーブル３２にポートＩＤが未設定のエントリが存在する場合、仮想スイッチ３は、他の仮想スイッチ３との間で管理テーブル３２の同期を行なうことで、未設定のポートＩＤを取得してもよい。
【０１２５】
〔１−３−２〕トンネル生成処理
次に、図１７を参照して、トンネル生成処理の動作例を説明する。なお、トンネル生成処理は、例えば、主にトンネル作成部３６により、管理テーブル３２のエントリごとに、検出処理による設定の完了後に実行されてよい。
【０１２６】
図１７に例示するように、トンネル作成部３６は、自身のホスト２で実行される各ＶＭ４の仮想ポート４１が宛先ポートか否かを判定する（ステップＳ２１）。例えば、トンネル作成部３６は、検出処理が完了したエントリの宛先ポートＩＤを管理テーブル３２から取得し、当該宛先ポートＩＤと、自身のホスト２で実行される各ＶＭ４の仮想ポート４１のポートＩＤとを比較し、一致するか否かを判定してよい。
【０１２７】
ＶＭ４の仮想ポート４１が宛先ポートではないと判定した場合（ステップＳ２１でＮｏ）、処理が終了する。
【０１２８】
ＶＭ４の仮想ポート４１が宛先ポートであると判定した場合（ステップＳ２１でＹｅｓ）、トンネル作成部３６は、当該ＶＭ４内のＶＸＬＡＮポート（図１４等では「vxlan0」と表記）４３のＩＰアドレスを取得する（ステップＳ２２）。なお、トンネル作成部３６は、ＶＸＬＡＮポート４３のＩＰアドレスを、管理マシン８の仮想化管理部７１に問い合わせ、仮想化管理部７１から取得してもよい。
【０１２９】
トンネル作成部３６は、ＶＸＬＡＮポート３７宛てのＶＸＬＡＮポート（図１４等では「vxlan1」と表記）４３を仮想スイッチ３に作成し（ステップＳ２３）、処理が終了する。
【０１３０】
〔１−３−３〕ミラーリング処理
次に、図１８を参照して、ミラーリング処理の動作例を説明する。なお、ミラーリング処理は、例えば、主に、仮想ポート３１及びルーティング部３５により、パケットが到着するごとに実行されてよい。
【０１３１】
図１８に例示するように、仮想ポート３１は、パケットの到着（受信）を待ち受ける（ステップＳ３１、ステップＳ３１でＮｏ）。なお、パケットは、ルーティング部３５から、自身の仮想ポート３１に対応する仮想ポート４１への入力方向、及び、自身の仮想ポート３１に対応する仮想ポート４１からルーティング部３５への出力方向、の双方から到着し得る。
【０１３２】
パケットが到着すると（ステップＳ３１でＹｅｓ）、仮想ポート３１は、パケットに対する処理を実行し（ステップＳ３２）、例えば当該パケットを宛先へ転送する。
【０１３３】
また、仮想ポート３１は、自身の仮想ポート３１に対応する仮想ポート４１、及び、パケットがミラーリング対象か否かを判定する（ステップＳ３３）。例えば、仮想ポート３１は、管理テーブル３２を参照し、仮想ポート４１が「対象ポートＩＤ」と一致するか否か、パケットの送信元又は宛先が「対象アドレス」と一致するか否か、及び受信したパケットの転送方向とミラー方向とが一致するか否かを判定してよい。
【０１３４】
ミラーリング対象ではない（例えば上記のうちの少なくとも１つが一致しない）と判定した場合（ステップＳ３３でＮｏ）、処理がステップＳ３１に移行する。
【０１３５】
ミラーリング対象であると判定した場合（ステップＳ３３でＹｅｓ）、仮想ポート３１は、パケットを複製し、複製パケットを、管理テーブル３２のエントリで「宛先ポートＩＤ」に指定された仮想ポート４１宛に転送する（ステップＳ３４）。そして、処理がステップＳ３１に移行する。
【０１３６】
〔１−３−４〕パケット転送処理
次に、図１９を参照して、パケット転送処理の動作例を説明する。なお、パケット転送処理は、例えば、主に、宛先コンテナ５を実行するＶＭ４の仮想ポート４１に対応する仮想ポート３１により、パケットが到着するごとに実行されてよい。
【０１３７】
図１９に例示するように、仮想ポート３１は、ルーティング部３５からパケットの到着（受信）を待ち受ける（ステップＳ４１、ステップＳ４１でＮｏ）。
【０１３８】
パケットが到着すると（ステップＳ４１でＹｅｓ）、仮想ポート３１は、受信したパケットがミラーパケットか否かを判定する（ステップＳ４２）。例えば、仮想ポート３１は、パケットのＶＬＡＮ  ＩＤが、予め定められたミラーパケット用のＶＬＡＮ  ＩＤであるか否かを判定してよい。或いは、ミラーパケットは、受信したパケットの宛先が宛先コンテナ５のＩＰアドレスとは異なる場合に、ミラーパケットであると判定してもよい。
【０１３９】
受信したパケットがミラーパケットではないと判定した場合（ステップＳ４２でＮｏ）、仮想ポート３１は、パケットに対する処理を実行し（ステップＳ４３）、処理がステップＳ４１に移行する。
【０１４０】
受信したパケットがミラーパケットであると判定した場合（ステップＳ４２でＹｅｓ）、仮想ポート３１は、ミラーパケット内のＶＸＬＡＮヘッダを取り除く（ステップＳ４４）。そして、仮想ポート３１は、ＶＸＬＡＮヘッダを取り除いたパケットを、トンネル作成部３６が生成したＶＸＬＡＮポート３７に転送し（ステップＳ４５）、処理がステップＳ４１に移行する。
【０１４１】
〔１−３−５〕カプセル化処理
次に、図２０及び図２１を参照して、カプセル化処理の動作例を説明する。なお、カプセル化処理は、例えば、主に、ＶＸＬＡＮポート３７（図２１では「vxlan1」と表記）により、仮想ポート３１からミラーパケットが到着するごとに実行されてよい。
【０１４２】
図２０に例示するように、ＶＸＬＡＮポート３７は、仮想ポート３１からミラーパケットの到着（受信）を待ち受ける（ステップＳ５１、ステップＳ５１でＮｏ）。
【０１４３】
ミラーパケットが到着すると（ステップＳ５１でＹｅｓ）、ＶＸＬＡＮポート３７は、ミラーパケットにＶＸＬＡＮヘッダを付加してカプセル化、すなわちＶＸＬＡＮに変換する（ステップＳ５２；図２１の（ｖ）参照）。
【０１４４】
そして、ＶＸＬＡＮポート３７は、カプセル化したパケットを、トンネル経路を経由してＶＭ４のＶＸＬＡＮポート（図２１では「vxlan0」と表記）４３に転送し（ステップＳ５３）、処理がステップＳ５１に移行する。
【０１４５】
〔２〕その他
上述した一実施形態に係る技術は、以下のように変形、変更して実施することができる。
【０１４６】
例えば、図９に示す情報処理システム１が備える各機能ブロックは、任意の組み合わせで併合してもよく、それぞれ分割してもよい。また、図９に示すホスト２又は管理マシン８が備える各機能ブロックは、任意の組み合わせで併合してもよく、それぞれ分割してもよい。さらに、図９に示す仮想スイッチ３が備える各機能ブロックは、任意の組み合わせで併合してもよく、それぞれ分割してもよい。
【０１４７】
また、一実施形態では、対象コンテナ５が実行されるホスト２−１と、宛先コンテナ５が実行されるホスト２−２とが別々のホスト２であるものとしたが、これに限定されるものではない。対象コンテナ５及び宛先コンテナ５は、同一のホスト２且つ同一の仮想スイッチ３上で動作する異なるＶＭ４により実行されてもよいし、さらに、同一のＶＭ４により実行されてもよい。
【０１４８】
〔３〕付記
以上の一実施形態に関し、さらに以下の付記を開示する。
【０１４９】
（付記１）
１以上の情報処理装置を備える情報処理システムであって、
前記１以上の情報処理装置は、
複数の仮想マシンにより実行される複数のコンテナのうちのいずれかのコンテナから送信される第１情報であって、少なくとも１つのアドレスを含む前記第１情報を検出する検出部と、
予め指定された第１コンテナのアドレスと、予め指定された第２コンテナのアドレスと、を対応付けた対応情報を記憶する記憶部と、
前記第１情報に含まれるアドレスと、前記第１コンテナのアドレス、又は、前記第２コンテナのアドレスとが一致する場合、一致した前記第１コンテナ又は前記第２コンテナと、前記第１情報に基づき特定される仮想マシンのポートと、を対応付けて前記対応情報に設定する設定部と、
前記対応情報に基づき、前記第１コンテナに対応付けられた第１ポートを通過する第２情報を複製し、複製した前記第２情報を、前記第２コンテナに対応付けられた第２ポートを宛先として転送する複製転送部と、を備える、
情報処理システム。
【０１５０】
（付記２）
前記複製転送部は、前記第１ポートを通過する前記第２情報であって、前記第１情報に含まれる前記アドレスと、前記第２コンテナのアドレスとは異なるアドレスと、の間で送信又は受信される前記第２情報を複製し、複製した前記第２情報を、前記第２ポートを宛先として転送する、
付記１に記載の情報処理システム。
【０１５１】
（付記３）
前記１以上の情報処理装置は、
前記第２コンテナを実行する仮想マシンとの間のトンネル経路を形成するトンネルポートを生成する生成部と、
前記第２ポートを宛先として転送された前記第２情報を、前記トンネルポートに転送する転送部と、を備え、
前記トンネルポートは、前記転送部から受信した前記第２情報を、前記トンネル経路を経由して、前記第２コンテナを実行する仮想マシンに送信する、
付記１又は付記２に記載の情報処理システム。
【０１５２】
（付記４）
前記転送部は、前記第２情報に付加された、前記複製転送部による転送で利用された第１ヘッダ情報を除去し、前記第１ヘッダ情報を除去した前記第２情報を前記トンネルポートに転送し、
前記トンネルポートは、受信した前記第２情報に対して、前記第２コンテナを実行する仮想マシンを宛先とする第２ヘッダ情報を付加し、前記第２ヘッダ情報を付加した前記第２情報を前記トンネル経路に送信する、
付記３に記載の情報処理システム。
【０１５３】
（付記５）
前記トンネルポートは、前記複数の仮想マシンの間の通信を制御する仮想スイッチに備えられ、
前記転送部は、前記仮想スイッチに備えられ、前記第２コンテナを実行する仮想マシンの前記第２ポートに対応する、仮想ポートである、
付記３又は付記４に記載の情報処理システム。
【０１５４】
（付記６）
前記第１情報は、予め設定されたタイミングで、前記第１コンテナと前記第２コンテナとの間で送受信される、
付記１〜４のいずれか１項に記載の情報処理システム。
【０１５５】
（付記７）
複数の仮想マシンにより実行される複数のコンテナのうちのいずれかのコンテナから送信される第１情報であって、少なくとも１つのアドレスを含む前記第１情報を検出する検出部と、
予め指定された第１コンテナのアドレスと、予め指定された第２コンテナのアドレスと、を対応付けた対応情報を記憶する記憶部と、
前記第１情報に含まれるアドレスと、前記第１コンテナのアドレス、又は、前記第２コンテナのアドレスとが一致する場合、一致した前記第１コンテナ又は前記第２コンテナと、前記第１情報に基づき特定される仮想マシンのポートと、を対応付けて前記対応情報に設定する設定部と、
前記対応情報に基づき、前記第１コンテナに対応付けられた第１ポートを通過する第２情報を複製し、複製した前記第２情報を、前記第２コンテナに対応付けられた第２ポートを宛先として転送する複製転送部と、を備える、
情報処理装置。
【０１５６】
（付記８）
前記複製転送部は、前記第１ポートを通過する前記第２情報であって、前記第１情報に含まれる前記アドレスと、前記第２コンテナのアドレスとは異なるアドレスと、の間で送信又は受信される前記第２情報を複製し、複製した前記第２情報を、前記第２ポートを宛先として転送する、
付記７に記載の情報処理装置。
【０１５７】
（付記９）
前記第２コンテナを実行する仮想マシンとの間のトンネル経路を形成するトンネルポートを生成する生成部と、
前記第２ポートを宛先として転送された前記第２情報を、前記トンネルポートに転送する転送部と、を備え、
前記トンネルポートは、前記転送部から受信した前記第２情報を、前記トンネル経路を経由して、前記第２コンテナを実行する仮想マシンに送信する、
付記７又は付記８に記載の情報処理装置。
【０１５８】
（付記１０）
前記転送部は、前記第２情報に付加された、前記複製転送部による転送で利用された第１ヘッダ情報を除去し、前記第１ヘッダ情報を除去した前記第２情報を前記トンネルポートに転送し、
前記トンネルポートは、受信した前記第２情報に対して、前記第２コンテナを実行する仮想マシンを宛先とする第２ヘッダ情報を付加し、前記第２ヘッダ情報を付加した前記第２情報を前記トンネル経路に送信する、
付記９に記載の情報処理装置。
【０１５９】
（付記１１）
前記トンネルポートは、前記複数の仮想マシンの間の通信を制御する仮想スイッチに備えられ、
前記転送部は、前記仮想スイッチに備えられ、前記第２コンテナを実行する仮想マシンの前記第２ポートに対応する、仮想ポートである、
付記９又は付記１０に記載の情報処理装置。
【０１６０】
（付記１２）
前記第１情報は、予め設定されたタイミングで、前記第１コンテナと前記第２コンテナとの間で送受信される、
付記７〜１１のいずれか１項に記載の情報処理装置。
【０１６１】
（付記１３）
複数の仮想マシンにより実行される複数のコンテナのうちのいずれかのコンテナから送信される第１情報であって、少なくとも１つのアドレスを含む前記第１情報を検出し、
記憶部に、予め指定された第１コンテナのアドレスと、予め指定された第２コンテナのアドレスと、を対応付けた対応情報を記憶し、
前記第１情報に含まれるアドレスと、前記第１コンテナのアドレス、又は、前記第２コンテナのアドレスとが一致する場合、一致した前記第１コンテナ又は前記第２コンテナと、前記第１情報に基づき特定される仮想マシンのポートと、を対応付けて前記対応情報に設定し、
前記対応情報に基づき、前記第１コンテナに対応付けられた第１ポートを通過する第２情報を複製し、
複製した前記第２情報を、前記対応情報に基づき、前記第２コンテナに対応付けられた第２ポートを宛先として転送する、
処理をコンピュータに実行させる、情報処理プログラム。
【０１６２】
（付記１４）
前記複製は、前記第１ポートを通過する前記第２情報であって、前記第１情報に含まれる前記アドレスと、前記第２コンテナのアドレスとは異なるアドレスと、の間で送信又は受信される前記第２情報を複製する、
付記１３に記載の情報処理プログラム。
【０１６３】
（付記１５）
前記第２コンテナを実行する仮想マシンとの間のトンネル経路を形成するトンネルポートを生成し、
前記第２ポートを宛先として転送された前記第２情報を、前記トンネルポートに転送し、
前記トンネルポートに転送した前記第２情報を、前記トンネル経路を経由して、前記第２コンテナを実行する仮想マシンに送信する、
処理を前記コンピュータに実行させる、
付記１３又は付記１４に記載の情報処理プログラム。
【０１６４】
（付記１６）
前記第２情報の前記トンネルポートへの転送は、前記第２情報に付加された、前記複製転送部による転送で利用された第１ヘッダ情報を除去し、前記第１ヘッダ情報を除去した前記第２情報を前記トンネルポートに転送し、
前記送信は、前記トンネルポートに転送した前記第２情報に対して、前記第２コンテナを実行する仮想マシンを宛先とする第２ヘッダ情報を付加し、前記第２ヘッダ情報を付加した前記第２情報を前記トンネル経路に送信する、
付記１５に記載の情報処理プログラム。
【０１６５】
（付記１７）
前記トンネルポートは、前記複数の仮想マシンの間の通信を制御する仮想スイッチに備えられ、
前記第２情報の前記トンネルポートへの転送は、前記仮想スイッチに備えられ、前記第２コンテナを実行する仮想マシンの前記第２ポートに対応する、仮想ポートにおいて実行される、
付記１５又は付記１６に記載の情報処理プログラム。
【０１６６】
（付記１８）
前記第１情報は、予め設定されたタイミングで、前記第１コンテナと前記第２コンテナとの間で送受信される、
付記１３〜１７のいずれか１項に記載の情報処理プログラム。
【符号の説明】
【０１６７】
１    情報処理システム
１ａ    仮想化ネットワーク
１ｂ    管理ネットワーク
１０、１０−１、１０−２    サーバ
１１    管理装置
２、２−１、２−２    ホスト
２０    コンピュータ
２０ａ    プロセッサ
２０ｂ    メモリ
２０ｃ    記憶装置
２０ｄ    ＩＦ部
２０ｅ    Ｉ／Ｏ部
２０ｆ    読取部
２０ｈ    記録媒体
２０ｇ    プログラム
３、３−１、３−２    仮想スイッチ
３１、３１−１、３１−２、４１、４１−１〜４１−３    仮想ポート
３２    コンテナミラー管理テーブル
３３    アドレス検出部
３４    ミラー設定部
３５    ルーティング部
３６    トンネル作成部
３７、４３    ＶＸＬＡＮポート
４、４−１〜４−３    ＶＭ
４２    仮想ブリッジ
５、５−１〜５−５    コンテナ
６、６−１、６−２    ホストＯＳ
６０、６０−１、６０−２、７０    ハイパバイザ
７    ＯＳ
７１    仮想化管理部
７２    ポートミラー管理部
７３    ＶＭミラー管理テーブル
８    管理マシン
【図１】
2020205571.tif 000003
【図２】
2020205571.tif 000004
【図３】
2020205571.tif 000005
【図４】
2020205571.tif 000006
【図５】
2020205571.tif 000007
【図６】
2020205571.tif 000008
【図７】
2020205571.tif 000009
【図８】
2020205571.tif 000010
【図９】
2020205571.tif 000011
【図１０】
2020205571.tif 000012
【図１１】
2020205571.tif 000013
【図１２】
2020205571.tif 000014
【図１３】
2020205571.tif 000015
【図１４】
2020205571.tif 000016
【図１５】
2020205571.tif 000017
【図１６】
2020205571.tif 000018
【図１７】
2020205571.tif 000019
【図１８】
2020205571.tif 000020
【図１９】
2020205571.tif 000021
【図２０】
2020205571.tif 000022
【図２１】
2020205571.tif 000023