IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特許7226123情報処理システム、情報処理装置、及び情報処理プログラム
<>
  • 特許-情報処理システム、情報処理装置、及び情報処理プログラム 図1
  • 特許-情報処理システム、情報処理装置、及び情報処理プログラム 図2
  • 特許-情報処理システム、情報処理装置、及び情報処理プログラム 図3
  • 特許-情報処理システム、情報処理装置、及び情報処理プログラム 図4
  • 特許-情報処理システム、情報処理装置、及び情報処理プログラム 図5
  • 特許-情報処理システム、情報処理装置、及び情報処理プログラム 図6
  • 特許-情報処理システム、情報処理装置、及び情報処理プログラム 図7
  • 特許-情報処理システム、情報処理装置、及び情報処理プログラム 図8
  • 特許-情報処理システム、情報処理装置、及び情報処理プログラム 図9
  • 特許-情報処理システム、情報処理装置、及び情報処理プログラム 図10
  • 特許-情報処理システム、情報処理装置、及び情報処理プログラム 図11
  • 特許-情報処理システム、情報処理装置、及び情報処理プログラム 図12
  • 特許-情報処理システム、情報処理装置、及び情報処理プログラム 図13
  • 特許-情報処理システム、情報処理装置、及び情報処理プログラム 図14
  • 特許-情報処理システム、情報処理装置、及び情報処理プログラム 図15
  • 特許-情報処理システム、情報処理装置、及び情報処理プログラム 図16
  • 特許-情報処理システム、情報処理装置、及び情報処理プログラム 図17
  • 特許-情報処理システム、情報処理装置、及び情報処理プログラム 図18
  • 特許-情報処理システム、情報処理装置、及び情報処理プログラム 図19
  • 特許-情報処理システム、情報処理装置、及び情報処理プログラム 図20
  • 特許-情報処理システム、情報処理装置、及び情報処理プログラム 図21
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-13
(45)【発行日】2023-02-21
(54)【発明の名称】情報処理システム、情報処理装置、及び情報処理プログラム
(51)【国際特許分類】
   H04L 49/354 20220101AFI20230214BHJP
【FI】
H04L49/354
【請求項の数】 8
(21)【出願番号】P 2019113801
(22)【出願日】2019-06-19
(65)【公開番号】P2020205571
(43)【公開日】2020-12-24
【審査請求日】2022-03-08
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100092978
【弁理士】
【氏名又は名称】真田 有
(74)【代理人】
【識別番号】100189201
【弁理士】
【氏名又は名称】横田 功
(72)【発明者】
【氏名】鈴木 和宏
【審査官】宮島 郁美
(56)【参考文献】
【文献】米国特許出願公開第2018/0349163(US,A1)
【文献】国際公開第2018/024187(WO,A1)
【文献】特開2012-129648(JP,A)
【文献】特開2017-022767(JP,A)
【文献】中国特許出願公開第107682275(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L12/00-13/18,41/00-49/9057,61/00-65/80,69/00-69/40
(57)【特許請求の範囲】
【請求項1】
1以上の情報処理装置を備える情報処理システムであって、
前記1以上の情報処理装置は、
複数の仮想マシンにより実行される複数のコンテナのうちのいずれかのコンテナから送信される第1情報であって、少なくとも1つのアドレスを含む前記第1情報を検出する検出部と、
予め指定された第1コンテナのアドレスと、予め指定された第2コンテナのアドレスと、を対応付けた対応情報を記憶する記憶部と、
前記第1情報に含まれるアドレスと、前記第1コンテナのアドレス、又は、前記第2コンテナのアドレスとが一致する場合、一致した前記第1コンテナ又は前記第2コンテナと、前記第1情報に基づき特定される仮想マシンのポートと、を対応付けて前記対応情報に設定する設定部と、
前記対応情報に基づき、前記第1コンテナに対応付けられた第1ポートを通過する第2情報を複製し、複製した前記第2情報を、前記第2コンテナに対応付けられた第2ポートを宛先として転送する複製転送部と、を備える、
情報処理システム。
【請求項2】
前記複製転送部は、前記第1ポートを通過する前記第2情報であって、前記第1情報に含まれる前記アドレスと、前記第2コンテナのアドレスとは異なるアドレスと、の間で送信又は受信される前記第2情報を複製し、複製した前記第2情報を、前記第2ポートを宛先として転送する、
請求項1に記載の情報処理システム。
【請求項3】
前記1以上の情報処理装置は、
前記第2コンテナを実行する仮想マシンとの間のトンネル経路を形成するトンネルポートを生成する生成部と、
前記第2ポートを宛先として転送された前記第2情報を、前記トンネルポートに転送する転送部と、を備え、
前記トンネルポートは、前記転送部から受信した前記第2情報を、前記トンネル経路を経由して、前記第2コンテナを実行する仮想マシンに送信する、
請求項1又は請求項2に記載の情報処理システム。
【請求項4】
前記転送部は、前記第2情報に付加された、前記複製転送部による転送で利用された第1ヘッダ情報を除去し、前記第1ヘッダ情報を除去した前記第2情報を前記トンネルポートに転送し、
前記トンネルポートは、受信した前記第2情報に対して、前記第2コンテナを実行する仮想マシンを宛先とする第2ヘッダ情報を付加し、前記第2ヘッダ情報を付加した前記第2情報を前記トンネル経路に送信する、
請求項3に記載の情報処理システム。
【請求項5】
前記トンネルポートは、前記複数の仮想マシンの間の通信を制御する仮想スイッチに備えられ、
前記転送部は、前記仮想スイッチに備えられ、前記第2コンテナを実行する仮想マシンの前記第2ポートに対応する、仮想ポートである、
請求項3又は請求項4に記載の情報処理システム。
【請求項6】
前記第1情報は、予め設定されたタイミングで、前記第1コンテナと前記第2コンテナとの間で送受信される、
請求項1~4のいずれか1項に記載の情報処理システム。
【請求項7】
複数の仮想マシンにより実行される複数のコンテナのうちのいずれかのコンテナから送信される第1情報であって、少なくとも1つのアドレスを含む前記第1情報を検出する検出部と、
予め指定された第1コンテナのアドレスと、予め指定された第2コンテナのアドレスと、を対応付けた対応情報を記憶する記憶部と、
前記第1情報に含まれるアドレスと、前記第1コンテナのアドレス、又は、前記第2コンテナのアドレスとが一致する場合、一致した前記第1コンテナ又は前記第2コンテナと、前記第1情報に基づき特定される仮想マシンのポートと、を対応付けて前記対応情報に設定する設定部と、
前記対応情報に基づき、前記第1コンテナに対応付けられた第1ポートを通過する第2情報を複製し、複製した前記第2情報を、前記第2コンテナに対応付けられた第2ポートを宛先として転送する複製転送部と、を備える、
情報処理装置。
【請求項8】
複数の仮想マシンにより実行される複数のコンテナのうちのいずれかのコンテナから送信される第1情報であって、少なくとも1つのアドレスを含む前記第1情報を検出し、
記憶部に、予め指定された第1コンテナのアドレスと、予め指定された第2コンテナのアドレスと、を対応付けた対応情報を記憶し、
前記第1情報に含まれるアドレスと、前記第1コンテナのアドレス、又は、前記第2コンテナのアドレスとが一致する場合、一致した前記第1コンテナ又は前記第2コンテナと、前記第1情報に基づき特定される仮想マシンのポートと、を対応付けて前記対応情報に設定し、
前記対応情報に基づき、前記第1コンテナに対応付けられた第1ポートを通過する第2情報を複製し、
複製した前記第2情報を、前記対応情報に基づき、前記第2コンテナに対応付けられた第2ポートを宛先として転送する、
処理をコンピュータに実行させる、情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム、情報処理装置、及び情報処理プログラムに関する。
【背景技術】
【0002】
1以上の情報処理装置の物理ハードウェア(HW;Hardware)資源を利用して仮想的なサーバとして提供される仮想マシン(VM;Virtual Machine)が知られている。また、仮想マシンの監視等を行なうための手法として、パケットキャプチャが知られている。
【0003】
パケットキャプチャの一態様として、ポートミラーリングがある。ポートミラーリングは、ホスト上の仮想スイッチのポートを通過する、VMへの入力パケット、出力パケット、又は両方のパケット、を別のポートにミラーリングする処理である。例えば、仮想スイッチは、ポートにおけるパケットに対する処理が完了したときに、当該パケットを複製してミラーパケットを生成し、ミラーパケットを別のポートに送信(転送)する。
【0004】
また、仮想化技術の一例として、「コンテナ」が知られている。コンテナは、OS(Operating System)上に仮想的なOS空間を提供する技術である。1つのVM上に、複数のコンテナを起動することも可能である。
【0005】
VM上でコンテナが実行される場合、送信元コンテナから送信されたパケットは、VMにおいて、IP(Internet Protocol)ルーティングによりアドレスが変換され、VMの仮想ポートから仮想スイッチに送信される。仮想スイッチは、パケットのヘッダに基づき送信元コンテナを実行するVMにパケットを転送する。宛先コンテナを実行するVMは、受信したパケットをIPルーティングによりアドレス変換し、宛先コンテナに送信する。
【先行技術文献】
【特許文献】
【0006】
【文献】特開2017-22767号公報
【文献】特表2018-528725号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
上述したVMのポートミラーリング機能では、VM上にコンテナが配備される環境において、コンテナ単位でポートミラーリングを行なうことが考慮されていない。このため、例えば、コンテナにより送受信されるパケット等の情報を複製し、監視を行なうコンテナに転送するミラーリングを、適切に行なうことが困難となる場合がある。
【0008】
1つの側面では、本発明は、仮想マシン上で実行される第1コンテナにより送受信される情報を複製し第2コンテナに転送する処理を、適切に行なうことを目的の1つとする。
【課題を解決するための手段】
【0009】
1つの側面では、情報処理システムは、1以上の情報処理装置を備えてよい。前記1以上の情報処理装置は、検出部と、記憶部と、設定部と、複製転送部と、を備えてよい。前記検出部は、複数の仮想マシンにより実行される複数のコンテナのうちのいずれかのコンテナから送信される第1情報であって、少なくとも1つのアドレスを含む前記第1情報を検出してよい。前記記憶部は、予め指定された第1コンテナのアドレスと、予め指定された第2コンテナのアドレスと、を対応付けた対応情報を記憶してよい。前記設定部は、前記第1情報に含まれるアドレスと、前記第1コンテナのアドレス、又は、前記第2コンテナのアドレスとが一致する場合、一致した前記第1コンテナ又は前記第2コンテナと、前記第1情報に基づき特定される仮想マシンのポートと、を対応付けて前記対応情報に設定してよい。前記複製転送部は、前記対応情報に基づき、前記第1コンテナに対応付けられた第1ポートを通過する第2情報を複製し、複製した前記第2情報を、前記第2コンテナに対応付けられた第2ポートを宛先として転送してよい。
【発明の効果】
【0010】
1つの側面では、仮想マシン上で実行される第1コンテナにより送受信される情報を複製し第2コンテナに転送する処理を、適切に行なうことができる。
【図面の簡単な説明】
【0011】
図1】ポートミラーリングの一例を説明するためのブロック図である。
図2】サーバ型仮想化の一例を示す図である。
図3】コンテナ型仮想化の一例を示す図である。
図4】コンテナネットワークの一例を示すブロック図である。
図5】比較例に係る情報処理システムの動作を説明するためのブロック図である。
図6】比較例に係る情報処理システムの動作を説明するためのブロック図である。
図7】一実施形態の一例としての情報処理システムのHW構成例を示すブロック図である。
図8】一実施形態の一例としてのコンピュータのHW構成例を示すブロック図である。
図9】一実施形態の一例としての情報処理システムの機能構成例を示すブロック図である。
図10】VMミラー管理テーブルの一例を示す図である。
図11】コンテナミラー管理テーブルの初期状態の一例を示す図である。
図12】一実施形態に係るポートミラーリングの一例を示すブロック図である。
図13】コンテナミラー管理テーブルの一例を示す図である。
図14】宛先コンテナに対するミラーパケットの転送経路の一例を示すブロック図である。
図15】VXLAN(Virtual eXtensible Local Area Network)ポートによりカプセル化されたミラーパケットの一例を示す図である。
図16】一実施形態に係る検出処理の動作例を示すフローチャートである。
図17】一実施形態に係るトンネル生成処理の動作例を示すフローチャートである。
図18】一実施形態に係るミラーリング処理の動作例を示すフローチャートである。
図19】一実施形態に係るパケット転送処理の動作例を示すフローチャートである。
図20】一実施形態に係るカプセル化処理の動作例を示すフローチャートである。
図21】一実施形態に係る情報処理システムの動作例を示すブロック図である。
【発明を実施するための形態】
【0012】
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。例えば、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。
【0013】
なお、以下の説明で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
【0014】
〔1〕一実施形態
図1は、ポートミラーリングの一例を説明するためのブロック図である。図1に示すように、情報処理システム1において、ホスト2上では、仮想スイッチ3、並びに、VM4-1及び4-2が実行される。以下、VM4-1及び4-2をそれぞれ区別しない場合には、符号のハイフン「-」以降を省略し、VM4と表記する。符号にハイフン「-」を含む、後述する他の機能ブロック又はHWブロックについても同様である。
【0015】
なお、「ホスト」は、1以上の情報処理装置のHW資源を利用して実行されるOS(「ホストOS」又は「仮想OS」と称されてもよい)と、当該OS上で実行されるハイパバイザ等の仮想化管理機能とを含むものとする。仮想化管理機能にホストOSが不要である場合、「ホスト」は、HW資源を利用して実行される仮想化管理機能を含むものとする。
【0016】
仮想スイッチ3は、VM4-1及び4-2の各々の仮想ポート(図1では「eth0」と表記)41-1及び41-2に対して、仮想ポート(図1では「vif1.0」及び「vif2.0」と表記)31-1及び31-2を備える。仮想ポート31は、仮想インタフェース(IF;Interface)と称されてもよい。
【0017】
例えば、VM4-1の仮想ポート41-1にポートミラーリングが設定されている場合、仮想ポート31-1は、仮想ポート41-1からの出力パケット又は仮想ポート41-1への入力パケット、に対する処理が完了したときに、ミラーパケットを生成する。生成されたミラーパケットは、仮想スイッチ3及び仮想ポート31-2を経由して、監視を行なうVM4-2の仮想ポート41-2に転送される。
【0018】
図2は、VM等のサーバ型仮想化の一例を示す図であり、図3は、コンテナ型仮想化の一例を示す図である。
【0019】
図2に示すように、サーバ型仮想化では、HW資源やNW(Network)資源等の物理的なインフラ上でホストOSが実行され、ホストOS上で実行されるハイパバイザにより、複数のVMが実行される。VMは、ゲストOS、バイナリ及びライブラリ、アプリケーションを含む。
【0020】
図3に示すように、コンテナ型仮想化では、HW資源やNW資源等の物理的なインフラ上でOSが実行され、OS上で実行されるコンテナエンジンにより、複数のコンテナが実行される。コンテナは、バイナリ及びライブラリ並びにアプリケーションを含んでよい。
【0021】
図3に例示するように、コンテナ型仮想化では、OS上に仮想的なOS空間が提供される。このため、例えば、図2に示すVM(「ゲストOS」と称されてもよい)上に、複数のコンテナを起動することも可能である。
【0022】
図4は、コンテナネットワークの一例を示すブロック図である。図4に示すように、VM4において、複数のコンテナ5-1及び5-2が実行される場合を想定する。コンテナネットワークでは、VXLANにより、オーバレイネットワークが構築される。
【0023】
図4に示すように、コンテナ5-1及び5-2は、仮想ブリッジ(図4では「br0」と表記)42を介して、VXLANポート(図4では「vxlan0」と表記)43と接続される。VXLANポート43と仮想ポート41との間では、ブリッジ接続ではなく、IPルーティングによりパケットが転送される。
【0024】
ここで、VM4上にコンテナ5が配備されている環境において、VM4のポートミラーリング機能を利用して、コンテナ5のポートミラーリングを行なう場合を想定する。
【0025】
図5及び図6は、比較例に係る情報処理システム100の動作を説明するためのブロック図である。図5に示すように、ホスト201及び202でそれぞれ動作する仮想スイッチ301及び302は、コンテナ501~504の配備先のVM401~403を認識することが困難である。
【0026】
例えば、仮想スイッチ301及び302は、監視対象であるコンテナ501を実行するVM401、及び、キャプチャされたパケットの宛先のコンテナ504を実行するVM403、を特定できない。このため、仮想スイッチ301及び302は、パケットキャプチャを設定する仮想ポート411及び412を特定できず、コンテナ501からコンテナ504へのポートミラーリングの実行が困難となる。
【0027】
また、図6に例示するように、ホスト201及び202に配備されている全てのVM401~403に対して、ポートミラーリング設定を行なうことも考えられる。しかしながら、図5の場合と同様に、いずれのコンテナ501~505をミラーリングすればよいか不明であり、また、いずれのVM401~403において、ミラーパケットの宛先のコンテナ505が起動しているのか不明である。
【0028】
また、仮に、コンテナ505を実行する403を特定できたとしても、VM403において、複数のコンテナ504、505が起動していた場合、いずれのコンテナ504及び505にミラーパケットを転送すればよいか不明である。
【0029】
さらに、図6の例では、監視対象以外の(例えば他のユーザの)コンテナ502~504のパケットについてもミラーリングが行なわれる。このため、セキュリティの面で不都合が生じるとともに、ホスト201及び202を実行する情報処理装置において、不要なHWリソースやNWリソースが消費されることになる。
【0030】
そこで、一実施形態では、1つの側面において、仮想マシン上で実行される第1コンテナにより送受信される情報を複製し第2コンテナに転送する処理を、適切に行なう手法を説明する。
【0031】
〔1-1〕一実施形態の構成例
(ハードウェア構成例)
図7は、一実施形態の一例としての情報処理システム1のHW構成例を示すブロック図であり、図8は、一実施形態の一例としてのコンピュータ20のHW構成例を示すブロック図である。
【0032】
図7に示すように、情報処理システム1は、複数のサーバ10-1及び10-2、及び、管理装置11を備えてよい。なお、図7の例では、便宜上、2台のサーバ10を示すが、情報処理システム1は、3以上のサーバ10を備えてもよい。
【0033】
サーバ10は、情報処理装置の一例であり、図1に例示するホスト2を実行するためのHW資源を提供する。複数のサーバ10の間は、仮想化ネットワーク1aにより相互に通信可能に接続されてよい。
【0034】
管理装置11は、情報処理装置の一例であり、図1に例示するホスト2、仮想スイッチ3、VM4、及び、コンテナ5の少なくとも1つの管理を行なう。管理装置11では、例えば、管理者等のオペレータにより、図示しない端末等を介して設定等の種々の処理が行なわれてもよい。なお、管理装置11は、複数のサーバ10のうちの1以上のサーバ10であってもよい。
【0035】
管理装置11と複数のサーバ10との間は、管理ネットワーク1bにより相互に通信可能に接続されてよい。なお、管理ネットワーク1bに代えて、仮想化ネットワーク1aが用いられてもよい。
【0036】
仮想化ネットワーク1a及び管理ネットワーク1bは、それぞれ、イーサネット(Ethernet;登録商標)に準拠したLAN(Local Area Network)等のネットワークであってもよい。
【0037】
サーバ10及び管理装置11は、互いに同様のHW構成を備えてよい。以下、図8を参照して、サーバ10及び管理装置11を代表して、コンピュータ20のHW構成例を説明する。図8に示すように、コンピュータ20は、プロセッサ20a、メモリ20b、記憶装置20c、IF部20d、I/O(Input / Output)部20e、及び、読取部20fを備えてよい。
【0038】
プロセッサ20aは、対応する各ブロック20b~20fとバス20iを介して相互に通信可能に接続され、種々の制御や演算を行なう演算処理装置の一例である。プロセッサ20aは、メモリ20b、記憶装置20c、又は記録媒体20h等に格納されたプログラムを実行することにより、サーバ10又は管理装置11における種々の機能を実現する。
【0039】
なお、プロセッサ20aは、複数のプロセッサを含むマルチプロセッサであってもよいし、複数のプロセッサコアを有するマルチコアプロセッサであってもよく、或いは、マルチコアプロセッサを複数有する構成であってもよい。
【0040】
プロセッサ20aとしては、例えば、CPU、MPU、GPU、APU、DSP、ASIC、FPGA等の集積回路が挙げられる。CPUはCentral Processing Unitの略称であり、MPUはMicro Processing Unitの略称である。GPUはGraphics Processing Unitの略称であり、APUはAccelerated Processing Unitの略称である。DSPはDigital Signal Processorの略称であり、ASICはApplication Specific ICの略称であり、FPGAはField-Programmable Gate Arrayの略称である。
【0041】
メモリ20bは、種々のデータやプログラムを格納する記憶装置である。プロセッサ20aは、プログラムを実行する際に、メモリ20bにデータやプログラムを格納し展開する。なお、メモリ20bとしては、例えばRAM(Random Access Memory)等の揮発性メモリが挙げられる。
【0042】
記憶装置20cは、種々のデータやプログラム等を格納するHWである。記憶装置20cとしては、例えばHDD(Hard Disk Drive)等の磁気ディスク装置、SSD等の半導体ドライブ装置、不揮発性メモリ、等の各種デバイスが挙げられる。不揮発性メモリとしては、例えば、フラッシュメモリ、ストレージクラスメモリ(SCM;Storage Class Memory)、又はROM(Read Only Memory)等が挙げられる。
【0043】
IF部20dは、有線又は無線による、仮想化ネットワーク1a又は管理ネットワーク1bや他のネットワークとの間の接続及び通信の制御等を行なう。
【0044】
I/O部20eは、マウスやキーボード等の入力装置及びディスプレイやプリンタ等の出力装置の少なくとも一方を含んでよい。例えば、管理装置11において、I/O部20eは、管理者等による種々の操作に用いられてもよい。
【0045】
読取部20fは、コンピュータ読取可能な記録媒体20hに記録されたデータやプログラムを読み出す装置である。記録媒体20hには、プログラム20gが格納されてもよい。例えば、プロセッサ20aは、読取部20fを介して記録媒体20hから読み出したプログラム20gを、メモリ20b等の記憶装置に展開して実行してもよい。
【0046】
記録媒体20hとしては、例示的に、磁気/光ディスクやフラッシュメモリ等の非一時的な記録媒体が挙げられる。磁気/光ディスクとしては、例示的に、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク、HVD(Holographic Versatile Disc)等が挙げられる。フラッシュメモリとしては、例示的に、USBメモリやSDカード等が挙げられる。
【0047】
なお、サーバ10及び管理装置11の上述したHW構成は例示である。従って、サーバ10及び管理装置11内でのHWの増減(例えば任意のブロックの追加や省略)、分割、任意の組み合わせでの統合、バスの追加又は省略等は適宜行なわれてもよい。
【0048】
(機能構成例)
図9は、一実施形態の一例としての情報処理システム1の機能構成例を示すブロック図である。図9に示すように、情報処理システム1は、機能構成として、ホスト2-1及び2-2、並びに、管理マシン8を備えてよい。なお、図9に示す例では、便宜上、2つのホスト2-1及び2-2を例に挙げるが、情報処理システム1は、3つ以上のホスト2を備えてもよい。
【0049】
ホスト2-1及び2-2は、複数のサーバ10(図7参照)が提供するHW構成を利用して実現されてよい。
【0050】
ホスト2は、ホストOS6を実行し、ホストOS6上でハイパバイザ60を実行してよい。ハイパバイザ60は仮想化管理機能の一例である。なお、ハイパバイザ60にホストOS6が不要である場合、ホスト2は、ハイパバイザ60を実行してもよい。図9の例では、ホスト2-1は、ホストOS6-1及びハイパバイザ60-1を実行し、ホスト2-2は、ホストOS6-2及びハイパバイザ60-2を実行するものとする。
【0051】
ホストOS6(ハイパバイザ60)上では、仮想スイッチ3及び1以上のVM4が実行されてよい。図9の例では、ホストOS6-1は、仮想スイッチ3-1並びにVM4-1及び4-2を実行し、ホストOS6-2は、仮想スイッチ3-2及びVM4-3を実行するものとする。仮想スイッチ3の詳細は後述する。
【0052】
VM4は、サーバ10のHW資源を利用して動作する仮想マシンの一例であり、一実施形態においては、1以上のコンテナ5を実行(起動)可能である。VM4は、図4に例示するように、仮想ポート41、仮想ブリッジ42及びVXLANポート43を備えてよい。
【0053】
仮想ブリッジ42は、VM4内で仮想ブリッジ42に接続されるコンテナ5間の通信を可能とする。
【0054】
VXLANポート43は、コンテナ5から送信されるパケットに対して、VXLANヘッダを付加することでVXLANパケット(以下、単に「パケット」と表記する場合がある)を生成し、VXLANパケットを仮想ポート41に転送する。また、VXLANポート43は、仮想ポート41から受信するVXLANパケットからVXLANヘッダを除去して元のパケットを取り出し、取り出したパケットを仮想ブリッジ42に転送する。なお、VXLANヘッダは、仮想ネットワークを識別するためのVLAN IDを含んでよい。
【0055】
管理マシン8は、管理装置11(図7参照)が提供するHW構成を利用して実現されてよい。
【0056】
管理マシン8は、OS7(例えば仮想OS)を実行し、OS7上でハイパバイザ70を実行してよい。なお、管理マシン8において、OS7は実OSであってもよく、この場合、ハイパバイザ70が実行されなくてもよい。
【0057】
OS7は、仮想化管理部71及びポートミラー管理部72を備えてよい。仮想化管理部71は、ホスト2におけるVM4、及び、VM4におけるコンテナ5の管理を行なう。
【0058】
ポートミラー管理部72は、ホスト2におけるポートミラーリングの管理を行なう。例えば、ポートミラー管理部72は、ポートミラーリングの対象となるVMミラー管理テーブル(図9では「VMミラー管理TBL」と表記)73を管理し、ホスト2に対して、当該テーブル73に基づき、VM4単位のポートミラーリングの実行を指示してよい。
【0059】
VMミラー管理テーブル73は、例えば、オペレータ等により設定されてよい。図10は、VMミラー管理テーブル73の一例を示す図である。
【0060】
図10に示すように、VMミラー管理テーブル73は、例示的に、「ID」、「名前」、「ポートID」、「ミラー方向」、及び、「モニタポートID」を含んでよい。
【0061】
「ID」(Identifier)は、ポートミラーリングのエントリを特定する識別情報の一例である。「名前」は、ポートミラーリングの対象となる対象VM4の仮想ポート41の名前、例えば“VM1_eth0”等が設定される。「ポートID」は、対象VM4の仮想ポート41の識別情報の一例である。「モニタポートID」は、ポートミラーリングによるミラーパケットの宛先となる宛先VM4の仮想ポート41の識別情報の一例である。
【0062】
「ミラー方向」は、ポートミラーリングの対象となるパケットの、対象VM4に対する転送方向を示す、「出力」、「入力」、又は「双方向」等が設定される。「出力」は、対象VM4から出力されるパケットが対象となることを示し、「入力」は、対象VM4に入力されるパケットが対象となることを示す。「双方向」は、対象VM4に入力されるパケットと、対象VM4から出力されるパケットと、が対象となることを示す。
【0063】
なお、図10では、VMミラー管理テーブル73に格納されるデータを、便宜上、テーブル形式として示すが、これに限定されるものではない。例えば、VMミラー管理テーブル73は、DB(Database)形式やXML(eXtensible Markup Language)形式、配列等の種々の形態でデータを記憶してよい。VMミラー管理テーブル73は、例えば、管理装置11のメモリ20b又は記憶装置20c(図8参照)の記憶領域に格納されてよい。
【0064】
また、ポートミラー管理部72は、コンテナ5単位のポートミラーリングの対象となる対象コンテナ5、及び、ポートミラーリングによるミラーパケットの宛先となる宛先コンテナ5の情報を受け付けてよい。当該情報は、例えばオペレータ等から入力されてよい。そして、ポートミラー管理部72は、受け付けた情報を、ホスト2、例えば仮想スイッチ3に対して送信してよい。なお、対象コンテナ5及び宛先コンテナ5の情報としては、例えば、各コンテナ5のアドレス、一例としてIPアドレスが挙げられる。
【0065】
〔1-2〕仮想スイッチの構成例
仮想スイッチ3は、複数のVM4の間の通信を制御する。また、一実施形態に係る仮想スイッチ3は、管理マシン8からの指示に応じて、VM4単位、又は、コンテナ5単位のポートミラーリングを実行する。以下、仮想スイッチ3によるコンテナ5単位のポートミラーリングに着目した構成について説明する。
【0066】
図9に例示するように、仮想スイッチ3は、1以上の仮想ポート31、コンテナミラー管理テーブル(図9では「コンテナミラー管理TBL」と表記)32、アドレス検出部33、ミラー設定部34、ルーティング部35、及び、トンネル作成部36を備えてよい。図9の例では、仮想スイッチ3-1は、2つの仮想ポート31-1及び31-2を備え、仮想スイッチ3-2は、1つの仮想ポート31を備えるものとする。
【0067】
ここで、一実施形態において、対象コンテナ5は、仮想スイッチ3-1上で動作するVM4-1のコンテナ5-1であるものとし、宛先コンテナ5は、仮想スイッチ3-2上で動作するVM4-3のコンテナ5-4であるものとする。この場合、宛先コンテナ5-4を実行するVM4を管轄する仮想スイッチ3-2は、後述するトンネル作成部36により作成される、VXLANポート37をさらに備えてよい。
【0068】
仮想ポート31は、仮想スイッチ3が備える仮想的なIFであり、VM4の仮想ポート41と接続される。仮想ポート31は、対応するVM4の仮想ポート41からのパケットに対して所定の処理を行ない、ルーティング部35に転送するとともに、ルーティング部35からのパケットに対して所定の処理を行ない、対応するVM4の仮想ポート41に転送する。所定の処理には、一例として、パケットのヘッダの更新等の種々の処理が含まれてよい。
【0069】
また、一実施形態に係る仮想ポート31は、所定の処理として、後述するコンテナミラー管理テーブル32に基づき、対象コンテナ5を実行するVM4の仮想ポート41を通過する、例えば宛先コンテナ5とは異なるIPアドレス宛のパケットを複製してよい。そして、仮想ポート31は、コンテナミラー管理テーブル32に基づき、複製したパケットを、宛先コンテナ5を実行するVM4の仮想ポート41を宛先として、ルーティング部35に転送してよい。
【0070】
なお、仮想ポート31は、複製したパケットの転送の際に、当該パケット(VXLANパケット)のヘッダに、ミラーパケットであることを示す識別情報を付加してもよい。ミラーパケットであることを示す識別情報としては、例えば、予め指定された特定のVLAN ID等が挙げられる。
【0071】
コンテナミラー管理テーブル(以下、「管理テーブル」と表記する場合がある)32は、コンテナ5のアドレスとVM4のポートとを対応付ける対応情報の一例であり、コンテナ5単位のポートミラーリングを管理するテーブルである。管理テーブル32は、例えば、仮想スイッチ3等により、管理マシン8から受信した対象コンテナ5及び宛先コンテナ5の情報に基づき生成及び更新されてよい。
【0072】
図11は、コンテナミラー管理テーブル32の初期状態の一例を示す図である。図11に示すように、管理テーブル32は、例示的に、「ID」、「対象アドレス」、「対象ポートID」、「ミラー方向」、「宛先アドレス」及び、「宛先ポートID」を含んでよい。
【0073】
「ID」は、コンテナ5単位のポートミラーリングのエントリを特定する識別情報の一例である。「対象アドレス」は、対象コンテナ5のアドレス、一例としてIPアドレスである。「宛先アドレス」は、宛先コンテナ5のアドレス、一例としてIPアドレスである。
【0074】
「ミラー方向」は、ポートミラーリングの対象となるパケットの、対象コンテナ5(VM4)に対する転送方向を示す、「出力」、「入力」、又は「双方向」等が設定される。「出力」は、対象コンテナ5から出力されるパケットが対象となることを示し、「入力」は、対象コンテナ5に入力されるパケットが対象となることを示す。「双方向」は、対象コンテナ5に入力されるパケットと、対象コンテナ5から出力されるパケットと、が対象となることを示す。
【0075】
「対象ポートID」は、対象コンテナ5が接続される「ポート」の識別情報の一例であり、「宛先ポートID」は、宛先コンテナ5が接続される「ポート」の識別情報の一例である。なお、「接続」とは、論理的な接続を含むものとする。一実施形態においては、「対象ポートID」及び「宛先ポートID」がそれぞれ、VM4における仮想ポート41のIDを示すものとするが、これに限定されるものではなく、仮想ポート41に接続される、仮想スイッチ3の仮想ポート31のIDであってもよい。
【0076】
管理テーブル32の初期状態、例えば管理マシン8からの指示に応じた仮想スイッチ3による設定後、管理テーブル32は、「ID」、「対象アドレス」、「ミラー方向」、及び、「宛先アドレス」が設定された状態となる。換言すれば、管理テーブル32に対してエントリが追加される際には、対象コンテナ5及び宛先コンテナ5のアドレスの指定と、ポートミラーリングの対象となるパケットの指定とが行なわれる。
【0077】
一方、管理テーブル32の初期状態において、「対象ポートID」及び「宛先ポートID」は、未設定(ブランク又は“NULL”)である。これは、図5及び図6に示す比較例のように、コンテナ501~505がVM401~403上で実行される場合に、対象コンテナ501及び宛先コンテナ504を特定することが困難であるためである。
【0078】
そこで、一実施形態に係る仮想スイッチ3は、以下に説明する手法により、「対象ポートID」及び「宛先ポートID」を特定することで、図12に例示するように、管理テーブル73で指定されたコンテナ5間のポートミラーリングを実行可能とする。
【0079】
なお、図11では、管理テーブル32に格納されるデータを、便宜上、テーブル形式として示すが、これに限定されるものではない。例えば、管理テーブル32は、DB形式やXML形式、配列等の種々の形態でデータを記憶してよい。管理テーブル32は、例えば、サーバ10のメモリ20b又は記憶装置20c(図8参照)の記憶領域に格納されてよい。管理テーブル32を記憶する、サーバ10のメモリ20b又は記憶装置20cは、記憶部の一例である。
【0080】
アドレス検出部33は、検出部の一例であり、複数の仮想ポート31又は41の各々を監視し、コンテナ5が出力する特定種別のパケットを検出する。
【0081】
特定種別のパケットとしては、例えば、パケットの送信元及び宛先の少なくとも一方のアドレス(例えばIPアドレス)を含むパケットであってよく、各コンテナ5の動作において、少なくとも1度は送信又は受信される可能性の高いパケットであってよい。
【0082】
一例として、特定種別のパケットとしては、ARPパケット、又は、DHCP応答パケット等の、コンテナ5の起動後やアクセスの際等の所定のタイミングで送信又は受信されるパケットが挙げられる。ARPはAddress Resolution Protocolの略称であり、DHCPはDynamic Host Configuration Protocolの略称である。ARPパケットには、例えばソースIPアドレスとしてコンテナ5のIPアドレスが含まれ、DHCP応答パケットには、例えばDHCPサーバによるオファーIPアドレスとしてコンテナ5のIPアドレスが含まれる。
【0083】
なお、特定種別のパケットとしては、ARPやDHCPのパケットに限定されるものではなく、所定のタイミングで、コンテナ5から送信され、又は、コンテナ5により受信される、種々の種別のパケットが利用されてよい。特定種別のパケットは、第1情報又は制御情報の一例である。
【0084】
ミラー設定部34は、設定部の一例である。ミラー設定部34は、アドレス検出部33が検出した検出パケットに基づき、対象コンテナ5を起動する対象VM4、及び、宛先コンテナ5を起動する宛先VM4を、それぞれ特定する。
【0085】
例えば、ミラー設定部34は、検出パケットに含まれるIPアドレスと、対象コンテナ5のIPアドレス、又は、宛先コンテナ5のIPアドレスとが一致するか否かを判定する。検出パケットに含まれるIPアドレスとは、例えば、ARPパケットのソースIPアドレス又はDHCP応答パケットのオファーIPアドレスである。
【0086】
なお、対象コンテナ5のIPアドレスは、予め指定された第1コンテナ5のアドレスの一例であり、宛先コンテナ5のIPアドレスは、予め指定された第2コンテナ5のアドレスの一例である。
【0087】
上記の判定により、例えば、検出パケットのIPアドレスが、管理テーブル32における対象コンテナ5のIPアドレスと一致すれば、当該検出パケットを検出した(検出パケットが通過する)仮想ポート41に対象コンテナ5が接続されていることがわかる。そこで、ミラー設定部34は、第1ポートの一例である当該仮想ポート41にポートミラーを設定する。
【0088】
また、例えば、検出パケットのIPアドレスが、管理テーブル32における宛先コンテナ5のIPアドレスと一致すれば、当該検出パケットを検出した(検出パケットが通過する)仮想ポート41に宛先コンテナ5が接続されていることがわかる。そこで、ミラー設定部34は、第2ポートの一例である当該仮想ポート41をポートミラーの宛先ポートに決定する。
【0089】
例えば、ミラー設定部34は、IPアドレスが一致した対象コンテナ5又は宛先コンテナ5と、送信されたパケットに基づき特定されるVM4の仮想ポート41(又は仮想ポート31)のポートIDと、を対応付けて、管理テーブル32に設定する。これにより、管理テーブル32においては、図13に例示するように、未設定であった「対象ポートID」及び「宛先ポートID」が設定される。
【0090】
このように、ミラー設定部34によれば、管理テーブル32の設定により、対象コンテナ5のIPアドレスに一致したパケットを選択的にミラーリングするためのポートミラーを、仮想ポート41(例えば図9において丸で示すポイント)に設定することができる。
【0091】
なお、ミラー設定部34は、例えば、管理テーブル32において未設定の「対象ポートID」及び「宛先ポートID」が無くなるまで、アドレス検出部33が特定種別のパケットを検出する都度、上述した判定及び管理テーブル32の更新を行なってよい。
【0092】
以上のように、アドレス検出部33及びミラー設定部34によれば、仮想スイッチ3において、特定種別のパケットの監視を行なうことで、例えば、ホスト2ごとに管理テーブル32の情報を補完することができる。従って、ホスト2間での管理テーブル32の共有を不要とすることができ、HW資源やNW資源を効率的に利用できる。換言すれば、サーバ10の処理負荷や、仮想化ネットワーク1aの通信負荷を低減させることができる。
【0093】
また、例えば、対象コンテナ5及び宛先コンテナ5が起動したタイミング等の予め設定されたタイミングで、対象コンテナ5と宛先コンテナ5との間で特定種別のパケットを送受信するように動作させてもよい。当該動作は、例えば管理マシン8、仮想スイッチ3、又はハイパバイザ60等により制御されてよい。これにより、ホスト2ごとに管理テーブル32の情報を容易に且つ確実に補完することができる。
【0094】
ルーティング部35は、仮想ポート31間の通信を制御する。例えば、ルーティング部35は、仮想ポート31から転送されたパケットを、当該パケットのヘッダで指定されたVM4の仮想ポート41に転送する。
【0095】
このように、仮想ポート31及びルーティング部35は、コンテナ5単位のポートミラーリングにおいて、以下の処理を行なう複製転送部の一例である。例えば、仮想ポート31及びルーティング部35は、管理テーブル32に基づき、対象コンテナ5に対応付けられた仮想ポート41を通過する、第2情報の一例であるパケットを複製する。また、例えば、仮想ポート31及びルーティング部35は、複製したパケットを、宛先コンテナ5に対応付けられた仮想ポート41を宛先として転送する。
【0096】
ここで、ミラーパケットの宛先アドレスは、上述のように、宛先コンテナ5のIPアドレスとは異なる。このため、宛先コンテナ5に対応付けられた仮想ポート41に接続される仮想ポート31は、通常のルーティングでは、受信したミラーパケットを、宛先コンテナ5に転送することが困難である。
【0097】
そこで、宛先コンテナ5-4を実行するVM4-3を管轄する仮想スイッチ3(図9の例では、仮想スイッチ3-2)は、受信したパケットのうちのミラーパケットを、宛先コンテナ5のVXLANに変換してから、宛先コンテナ5に転送する。
【0098】
図14は、宛先コンテナ5に対するミラーパケットの転送経路の一例を示すブロック図である。図14では、図9に示す構成のうちの一部の構成を省略している。
【0099】
図9に示す仮想ポート31-1は、管理テーブル32に基づき、対象ポートIDの仮想ポート41を通過するパケットのうち、対象コンテナ5-1のIPアドレスを送信元又は宛先に含み、且つ、ミラー方向が一致するパケットを検出する。そして、仮想ポート31-1は、検出したパケットを複製し、ルーティング部35を経由して、宛先ポートIDの仮想ポート41に転送する。
【0100】
ルーティング部35により転送されたミラーパケットは、仮想スイッチ3-1から、ホスト2間の通信路(例えば仮想化ネットワーク1a)を経由して、仮想スイッチ3-2が備える、宛先ポートIDに対応する仮想ポート31により受信される。
【0101】
仮想ポート31は、パケットを受信すると、当該パケットがミラーパケットか否かを判定する。例えば、仮想ポート31は、当該パケットのヘッダに含まれるVLAN IDを参照し、ミラーパケットを示すVLAN IDであるか否かを判定してよい。VLAN IDがミラーパケットを示すと判定した場合、仮想ポート31は、当該パケットを仮想ポート41に転送する代わりに、VXLANポート37に転送する。
【0102】
このとき、仮想ポート31は、ミラーパケットに付加された第1ヘッダ情報、例えばVXLANヘッダを除去し、VXLANヘッダ除去後のミラーパケットを、VXLANポート37に転送してよい。このように、第2ポートを宛先として転送されたミラーパケットを、VXLANポート37に転送する転送部の一例である。
【0103】
VXLANポート(図9及び図14では「vxlan1」と表記)37は、トンネル作成部36により生成されるポートであり、VM4のVXLANポート43との間でトンネル経路を形成するトンネルポートの一例である。
【0104】
トンネル作成部36は、生成部の一例であり、例えば、ミラー設定部34により管理テーブル32の「宛先ポートID」が設定された場合に、当該宛先ポートIDのVM4が有するVXLANポート43に対応するVXLANポート37を生成してよい。このように、トンネル作成部36は、VXLANポート37を生成することで、VM4と仮想スイッチ3との間に、トンネル経路の一例であるVXLANトンネルを開設する。
【0105】
VXLANポート37は、仮想ポート31から転送されたミラーパケットに対して、宛先コンテナ5-4を実行するVM4を宛先とする第2ヘッダ情報の一例であるVXLANヘッダを付加してカプセル化する。VXLANヘッダは、トンネル経路を識別するためのVLAN ID等の識別情報を含んでよい。
【0106】
図15は、VXLANポート37によりカプセル化されたミラーパケットの一例を示す図である。図15に示すように、VXLANポート37は、仮想ポート31においてVXLANヘッダが除去されたミラーパケット(「オーバレイパケット」と称されてもよい)をペイロードとし、VXLANヘッダを付加することで、ミラーパケットをカプセル化する。カプセル化されたミラーパケットは、「アンダーレイパケット」と称されてもよい。
【0107】
VXLANポート37は、カプセル化したミラーパケットを、トンネル経路、換言すれば、トンネル経路を経由してVM4のVXLANポート43に送信する。
【0108】
VM4では、VXLANポート43により、ミラーパケットのVXLANヘッダが除去され、VXLANヘッダ除去後のミラーパケットが、仮想ブリッジ42を経由して、宛先コンテナ5に転送される。
【0109】
以上により、一実施形態によれば、VM4上にコンテナ5が配備される環境において、VM4のポートミラーリング機能を利用してコンテナ5のポートミラーリングを行なう場合であっても、宛先コンテナ5に正しくミラーパケットを届けることが可能となる。
【0110】
〔1-3〕動作例
次に、図16図21を参照して、上述の如く構成された一実施形態に係る情報処理システム1の動作例を説明する。
【0111】
〔1-3-1〕検出処理
まず、図16及び図21を参照して、検出処理の動作例を説明する。なお、検出処理は、例えば、管理マシン8からの指示に基づき、主に、仮想スイッチ3のアドレス検出部33及びミラー設定部34により実行されてよい。
【0112】
図16に例示するように、仮想スイッチ3は、管理マシン8からのコンテナミラーリングの実行指示に従い、実行指示で指定された対象コンテナ5及び宛先コンテナ5(図21の(i)参照)のIPアドレスを、管理テーブル32に設定する(ステップS1)。
【0113】
アドレス検出部33は、管理テーブル32に「対象ポートID」又は「宛先ポートID」が未設定のエントリが存在する場合、各仮想ポート41(例えば各仮想ポート31)を監視し、仮想ポート41を通過するパケットを取得する(ステップS2)。
【0114】
パケットを取得すると、アドレス検出部33は、取得パケットが特定種別のパケットか否かを判定する(図21の(ii)参照)。例えば、アドレス検出部33は、取得パケットがARPパケットか否かを判定する(ステップS3)。
【0115】
取得パケットがARPパケットであると判定した場合(ステップS3でYes)、アドレス検出部33は、ARPパケット内のソースIPアドレスを取得し(ステップS4)、処理がステップS7に移行する。
【0116】
取得パケットがARPパケットではないと判定した場合(ステップS3でNo)、アドレス検出部33は、取得パケットがDHCP応答パケットか否かを判定する(ステップS5)。取得パケットがDHCP応答パケットではないと判定した場合(ステップS5でNo)、処理がステップS11に移行する。
【0117】
取得パケットがDHCP応答パケットであると判定した場合(ステップS5でYes)、アドレス検出部33は、DHCP応答パケット内のオファーIPアドレスを取得し(ステップS6)、処理がステップS7に移行する。
【0118】
ステップS7では、ミラー設定部34は、アドレス検出部33が取得したIPアドレスが、管理テーブル32に設定された対象コンテナ5のIPアドレスと一致するか否かを判定する。一致すると判定した場合(ステップS7でYes)、ミラー設定部34は、取得パケットに基づき特定されるVM4の仮想ポート41をミラーポートに設定し(ステップS8;図21の(iii)参照)、処理がステップS11に移行する。例えば、ミラー設定部34は、管理テーブル32に対して「対象ポートID」に仮想ポート41のIDを設定してよい。
【0119】
取得パケットと対象コンテナ5のIPアドレスとが一致しないと判定した場合(ステップS7でNo)、ミラー設定部34は、取得したIPアドレスが、管理テーブル32に設定された宛先コンテナ5のIPアドレスと一致するか否かを判定する(ステップS9)。一致しないと判定した場合(ステップS9でNo)、処理がステップS11に移行する。
【0120】
取得したIPアドレスと宛先コンテナ5のIPアドレスとが一致すると判定した場合(ステップS9でYes)、ミラー設定部34は、取得パケットに基づき特定されるVM4の仮想ポート41を宛先ポートに設定する(ステップS10;図21の(iv)参照)。そして、処理がステップS11に移行する。宛先ポートの設定は、例えば、管理テーブル32に対して「宛先ポートID」に仮想ポート41のIDを設定することで行なわれてよい。
【0121】
なお、ステップS7及びS9において、取得パケットに基づき特定されるVM4としては、例えば、取得パケットがARPパケットの場合は送信元のVM4であり、取得パケットがDHCP応答パケットの場合は宛先のVM4が挙げられる。
【0122】
また、ステップS7及びS9における判定対象の対象コンテナ5及び宛先コンテナ5は、管理テーブル32においてポートID未設定のエントリに設定されたコンテナ5に制限されてもよい。
【0123】
ステップS11では、ミラー設定部34は、管理テーブル32において、未設定のミラーポート又は未設定の宛先ポートが存在するか否かを判定する。未設定のミラーポート又は未設定の宛先ポートが存在すると判定した場合(ステップS11でYes)、処理がステップS2に移行し、アドレス検出部33によるパケットの監視が行なわれる。一方、未設定のミラーポート又は未設定の宛先ポートが存在しない、換言すれば、管理テーブル32における全てのミラーポート及び宛先ポートの設定が完了した、と判定した場合、処理が終了する。
【0124】
なお、対象コンテナ5又は宛先コンテナ5が他のホスト2で実行される仮想スイッチ3の管轄である場合等、ポートIDが特定し難い場合を考慮し、ステップS11のYesのルートに遷移可能な回数又は時間を制限してもよい。例えば、所定回数実行又は所定時間経過しても管理テーブル32にポートIDが未設定のエントリが存在する場合、仮想スイッチ3は、他の仮想スイッチ3との間で管理テーブル32の同期を行なうことで、未設定のポートIDを取得してもよい。
【0125】
〔1-3-2〕トンネル生成処理
次に、図17を参照して、トンネル生成処理の動作例を説明する。なお、トンネル生成処理は、例えば、主にトンネル作成部36により、管理テーブル32のエントリごとに、検出処理による設定の完了後に実行されてよい。
【0126】
図17に例示するように、トンネル作成部36は、自身のホスト2で実行される各VM4の仮想ポート41が宛先ポートか否かを判定する(ステップS21)。例えば、トンネル作成部36は、検出処理が完了したエントリの宛先ポートIDを管理テーブル32から取得し、当該宛先ポートIDと、自身のホスト2で実行される各VM4の仮想ポート41のポートIDとを比較し、一致するか否かを判定してよい。
【0127】
VM4の仮想ポート41が宛先ポートではないと判定した場合(ステップS21でNo)、処理が終了する。
【0128】
VM4の仮想ポート41が宛先ポートであると判定した場合(ステップS21でYes)、トンネル作成部36は、当該VM4内のVXLANポート(図14等では「vxlan0」と表記)43のIPアドレスを取得する(ステップS22)。なお、トンネル作成部36は、VXLANポート43のIPアドレスを、管理マシン8の仮想化管理部71に問い合わせ、仮想化管理部71から取得してもよい。
【0129】
トンネル作成部36は、VXLANポート37宛てのVXLANポート(図14等では「vxlan1」と表記)43を仮想スイッチ3に作成し(ステップS23)、処理が終了する。
【0130】
〔1-3-3〕ミラーリング処理
次に、図18を参照して、ミラーリング処理の動作例を説明する。なお、ミラーリング処理は、例えば、主に、仮想ポート31及びルーティング部35により、パケットが到着するごとに実行されてよい。
【0131】
図18に例示するように、仮想ポート31は、パケットの到着(受信)を待ち受ける(ステップS31、ステップS31でNo)。なお、パケットは、ルーティング部35から、自身の仮想ポート31に対応する仮想ポート41への入力方向、及び、自身の仮想ポート31に対応する仮想ポート41からルーティング部35への出力方向、の双方から到着し得る。
【0132】
パケットが到着すると(ステップS31でYes)、仮想ポート31は、パケットに対する処理を実行し(ステップS32)、例えば当該パケットを宛先へ転送する。
【0133】
また、仮想ポート31は、自身の仮想ポート31に対応する仮想ポート41、及び、パケットがミラーリング対象か否かを判定する(ステップS33)。例えば、仮想ポート31は、管理テーブル32を参照し、仮想ポート41が「対象ポートID」と一致するか否か、パケットの送信元又は宛先が「対象アドレス」と一致するか否か、及び受信したパケットの転送方向とミラー方向とが一致するか否かを判定してよい。
【0134】
ミラーリング対象ではない(例えば上記のうちの少なくとも1つが一致しない)と判定した場合(ステップS33でNo)、処理がステップS31に移行する。
【0135】
ミラーリング対象であると判定した場合(ステップS33でYes)、仮想ポート31は、パケットを複製し、複製パケットを、管理テーブル32のエントリで「宛先ポートID」に指定された仮想ポート41宛に転送する(ステップS34)。そして、処理がステップS31に移行する。
【0136】
〔1-3-4〕パケット転送処理
次に、図19を参照して、パケット転送処理の動作例を説明する。なお、パケット転送処理は、例えば、主に、宛先コンテナ5を実行するVM4の仮想ポート41に対応する仮想ポート31により、パケットが到着するごとに実行されてよい。
【0137】
図19に例示するように、仮想ポート31は、ルーティング部35からパケットの到着(受信)を待ち受ける(ステップS41、ステップS41でNo)。
【0138】
パケットが到着すると(ステップS41でYes)、仮想ポート31は、受信したパケットがミラーパケットか否かを判定する(ステップS42)。例えば、仮想ポート31は、パケットのVLAN IDが、予め定められたミラーパケット用のVLAN IDであるか否かを判定してよい。或いは、ミラーパケットは、受信したパケットの宛先が宛先コンテナ5のIPアドレスとは異なる場合に、ミラーパケットであると判定してもよい。
【0139】
受信したパケットがミラーパケットではないと判定した場合(ステップS42でNo)、仮想ポート31は、パケットに対する処理を実行し(ステップS43)、処理がステップS41に移行する。
【0140】
受信したパケットがミラーパケットであると判定した場合(ステップS42でYes)、仮想ポート31は、ミラーパケット内のVXLANヘッダを取り除く(ステップS44)。そして、仮想ポート31は、VXLANヘッダを取り除いたパケットを、トンネル作成部36が生成したVXLANポート37に転送し(ステップS45)、処理がステップS41に移行する。
【0141】
〔1-3-5〕カプセル化処理
次に、図20及び図21を参照して、カプセル化処理の動作例を説明する。なお、カプセル化処理は、例えば、主に、VXLANポート37(図21では「vxlan1」と表記)により、仮想ポート31からミラーパケットが到着するごとに実行されてよい。
【0142】
図20に例示するように、VXLANポート37は、仮想ポート31からミラーパケットの到着(受信)を待ち受ける(ステップS51、ステップS51でNo)。
【0143】
ミラーパケットが到着すると(ステップS51でYes)、VXLANポート37は、ミラーパケットにVXLANヘッダを付加してカプセル化、すなわちVXLANに変換する(ステップS52;図21の(v)参照)。
【0144】
そして、VXLANポート37は、カプセル化したパケットを、トンネル経路を経由してVM4のVXLANポート(図21では「vxlan0」と表記)43に転送し(ステップS53)、処理がステップS51に移行する。
【0145】
〔2〕その他
上述した一実施形態に係る技術は、以下のように変形、変更して実施することができる。
【0146】
例えば、図9に示す情報処理システム1が備える各機能ブロックは、任意の組み合わせで併合してもよく、それぞれ分割してもよい。また、図9に示すホスト2又は管理マシン8が備える各機能ブロックは、任意の組み合わせで併合してもよく、それぞれ分割してもよい。さらに、図9に示す仮想スイッチ3が備える各機能ブロックは、任意の組み合わせで併合してもよく、それぞれ分割してもよい。
【0147】
また、一実施形態では、対象コンテナ5が実行されるホスト2-1と、宛先コンテナ5が実行されるホスト2-2とが別々のホスト2であるものとしたが、これに限定されるものではない。対象コンテナ5及び宛先コンテナ5は、同一のホスト2且つ同一の仮想スイッチ3上で動作する異なるVM4により実行されてもよいし、さらに、同一のVM4により実行されてもよい。
【0148】
〔3〕付記
以上の一実施形態に関し、さらに以下の付記を開示する。
【0149】
(付記1)
1以上の情報処理装置を備える情報処理システムであって、
前記1以上の情報処理装置は、
複数の仮想マシンにより実行される複数のコンテナのうちのいずれかのコンテナから送信される第1情報であって、少なくとも1つのアドレスを含む前記第1情報を検出する検出部と、
予め指定された第1コンテナのアドレスと、予め指定された第2コンテナのアドレスと、を対応付けた対応情報を記憶する記憶部と、
前記第1情報に含まれるアドレスと、前記第1コンテナのアドレス、又は、前記第2コンテナのアドレスとが一致する場合、一致した前記第1コンテナ又は前記第2コンテナと、前記第1情報に基づき特定される仮想マシンのポートと、を対応付けて前記対応情報に設定する設定部と、
前記対応情報に基づき、前記第1コンテナに対応付けられた第1ポートを通過する第2情報を複製し、複製した前記第2情報を、前記第2コンテナに対応付けられた第2ポートを宛先として転送する複製転送部と、を備える、
情報処理システム。
【0150】
(付記2)
前記複製転送部は、前記第1ポートを通過する前記第2情報であって、前記第1情報に含まれる前記アドレスと、前記第2コンテナのアドレスとは異なるアドレスと、の間で送信又は受信される前記第2情報を複製し、複製した前記第2情報を、前記第2ポートを宛先として転送する、
付記1に記載の情報処理システム。
【0151】
(付記3)
前記1以上の情報処理装置は、
前記第2コンテナを実行する仮想マシンとの間のトンネル経路を形成するトンネルポートを生成する生成部と、
前記第2ポートを宛先として転送された前記第2情報を、前記トンネルポートに転送する転送部と、を備え、
前記トンネルポートは、前記転送部から受信した前記第2情報を、前記トンネル経路を経由して、前記第2コンテナを実行する仮想マシンに送信する、
付記1又は付記2に記載の情報処理システム。
【0152】
(付記4)
前記転送部は、前記第2情報に付加された、前記複製転送部による転送で利用された第1ヘッダ情報を除去し、前記第1ヘッダ情報を除去した前記第2情報を前記トンネルポートに転送し、
前記トンネルポートは、受信した前記第2情報に対して、前記第2コンテナを実行する仮想マシンを宛先とする第2ヘッダ情報を付加し、前記第2ヘッダ情報を付加した前記第2情報を前記トンネル経路に送信する、
付記3に記載の情報処理システム。
【0153】
(付記5)
前記トンネルポートは、前記複数の仮想マシンの間の通信を制御する仮想スイッチに備えられ、
前記転送部は、前記仮想スイッチに備えられ、前記第2コンテナを実行する仮想マシンの前記第2ポートに対応する、仮想ポートである、
付記3又は付記4に記載の情報処理システム。
【0154】
(付記6)
前記第1情報は、予め設定されたタイミングで、前記第1コンテナと前記第2コンテナとの間で送受信される、
付記1~4のいずれか1項に記載の情報処理システム。
【0155】
(付記7)
複数の仮想マシンにより実行される複数のコンテナのうちのいずれかのコンテナから送信される第1情報であって、少なくとも1つのアドレスを含む前記第1情報を検出する検出部と、
予め指定された第1コンテナのアドレスと、予め指定された第2コンテナのアドレスと、を対応付けた対応情報を記憶する記憶部と、
前記第1情報に含まれるアドレスと、前記第1コンテナのアドレス、又は、前記第2コンテナのアドレスとが一致する場合、一致した前記第1コンテナ又は前記第2コンテナと、前記第1情報に基づき特定される仮想マシンのポートと、を対応付けて前記対応情報に設定する設定部と、
前記対応情報に基づき、前記第1コンテナに対応付けられた第1ポートを通過する第2情報を複製し、複製した前記第2情報を、前記第2コンテナに対応付けられた第2ポートを宛先として転送する複製転送部と、を備える、
情報処理装置。
【0156】
(付記8)
前記複製転送部は、前記第1ポートを通過する前記第2情報であって、前記第1情報に含まれる前記アドレスと、前記第2コンテナのアドレスとは異なるアドレスと、の間で送信又は受信される前記第2情報を複製し、複製した前記第2情報を、前記第2ポートを宛先として転送する、
付記7に記載の情報処理装置。
【0157】
(付記9)
前記第2コンテナを実行する仮想マシンとの間のトンネル経路を形成するトンネルポートを生成する生成部と、
前記第2ポートを宛先として転送された前記第2情報を、前記トンネルポートに転送する転送部と、を備え、
前記トンネルポートは、前記転送部から受信した前記第2情報を、前記トンネル経路を経由して、前記第2コンテナを実行する仮想マシンに送信する、
付記7又は付記8に記載の情報処理装置。
【0158】
(付記10)
前記転送部は、前記第2情報に付加された、前記複製転送部による転送で利用された第1ヘッダ情報を除去し、前記第1ヘッダ情報を除去した前記第2情報を前記トンネルポートに転送し、
前記トンネルポートは、受信した前記第2情報に対して、前記第2コンテナを実行する仮想マシンを宛先とする第2ヘッダ情報を付加し、前記第2ヘッダ情報を付加した前記第2情報を前記トンネル経路に送信する、
付記9に記載の情報処理装置。
【0159】
(付記11)
前記トンネルポートは、前記複数の仮想マシンの間の通信を制御する仮想スイッチに備えられ、
前記転送部は、前記仮想スイッチに備えられ、前記第2コンテナを実行する仮想マシンの前記第2ポートに対応する、仮想ポートである、
付記9又は付記10に記載の情報処理装置。
【0160】
(付記12)
前記第1情報は、予め設定されたタイミングで、前記第1コンテナと前記第2コンテナとの間で送受信される、
付記7~11のいずれか1項に記載の情報処理装置。
【0161】
(付記13)
複数の仮想マシンにより実行される複数のコンテナのうちのいずれかのコンテナから送信される第1情報であって、少なくとも1つのアドレスを含む前記第1情報を検出し、
記憶部に、予め指定された第1コンテナのアドレスと、予め指定された第2コンテナのアドレスと、を対応付けた対応情報を記憶し、
前記第1情報に含まれるアドレスと、前記第1コンテナのアドレス、又は、前記第2コンテナのアドレスとが一致する場合、一致した前記第1コンテナ又は前記第2コンテナと、前記第1情報に基づき特定される仮想マシンのポートと、を対応付けて前記対応情報に設定し、
前記対応情報に基づき、前記第1コンテナに対応付けられた第1ポートを通過する第2情報を複製し、
複製した前記第2情報を、前記対応情報に基づき、前記第2コンテナに対応付けられた第2ポートを宛先として転送する、
処理をコンピュータに実行させる、情報処理プログラム。
【0162】
(付記14)
前記複製は、前記第1ポートを通過する前記第2情報であって、前記第1情報に含まれる前記アドレスと、前記第2コンテナのアドレスとは異なるアドレスと、の間で送信又は受信される前記第2情報を複製する、
付記13に記載の情報処理プログラム。
【0163】
(付記15)
前記第2コンテナを実行する仮想マシンとの間のトンネル経路を形成するトンネルポートを生成し、
前記第2ポートを宛先として転送された前記第2情報を、前記トンネルポートに転送し、
前記トンネルポートに転送した前記第2情報を、前記トンネル経路を経由して、前記第2コンテナを実行する仮想マシンに送信する、
処理を前記コンピュータに実行させる、
付記13又は付記14に記載の情報処理プログラム。
【0164】
(付記16)
前記第2情報の前記トンネルポートへの転送は、前記第2情報に付加された、前記複製転送部による転送で利用された第1ヘッダ情報を除去し、前記第1ヘッダ情報を除去した前記第2情報を前記トンネルポートに転送し、
前記送信は、前記トンネルポートに転送した前記第2情報に対して、前記第2コンテナを実行する仮想マシンを宛先とする第2ヘッダ情報を付加し、前記第2ヘッダ情報を付加した前記第2情報を前記トンネル経路に送信する、
付記15に記載の情報処理プログラム。
【0165】
(付記17)
前記トンネルポートは、前記複数の仮想マシンの間の通信を制御する仮想スイッチに備えられ、
前記第2情報の前記トンネルポートへの転送は、前記仮想スイッチに備えられ、前記第2コンテナを実行する仮想マシンの前記第2ポートに対応する、仮想ポートにおいて実行される、
付記15又は付記16に記載の情報処理プログラム。
【0166】
(付記18)
前記第1情報は、予め設定されたタイミングで、前記第1コンテナと前記第2コンテナとの間で送受信される、
付記13~17のいずれか1項に記載の情報処理プログラム。
【符号の説明】
【0167】
1 情報処理システム
1a 仮想化ネットワーク
1b 管理ネットワーク
10、10-1、10-2 サーバ
11 管理装置
2、2-1、2-2 ホスト
20 コンピュータ
20a プロセッサ
20b メモリ
20c 記憶装置
20d IF部
20e I/O部
20f 読取部
20h 記録媒体
20g プログラム
3、3-1、3-2 仮想スイッチ
31、31-1、31-2、41、41-1~41-3 仮想ポート
32 コンテナミラー管理テーブル
33 アドレス検出部
34 ミラー設定部
35 ルーティング部
36 トンネル作成部
37、43 VXLANポート
4、4-1~4-3 VM
42 仮想ブリッジ
5、5-1~5-5 コンテナ
6、6-1、6-2 ホストOS
60、60-1、60-2、70 ハイパバイザ
7 OS
71 仮想化管理部
72 ポートミラー管理部
73 VMミラー管理テーブル
8 管理マシン
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21