(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-20
(45)【発行日】2023-11-29
(54)【発明の名称】コンテナ型仮想化環境における通信管理装置
(51)【国際特許分類】
H04L 41/40 20220101AFI20231121BHJP
【FI】
H04L41/40
(21)【出願番号】P 2020006685
(22)【出願日】2020-01-20
【審査請求日】2022-12-01
(73)【特許権者】
【識別番号】000000099
【氏名又は名称】株式会社IHI
(74)【代理人】
【識別番号】100083806
【氏名又は名称】三好 秀和
(74)【代理人】
【識別番号】100101247
【氏名又は名称】高橋 俊一
(74)【代理人】
【識別番号】100095500
【氏名又は名称】伊藤 正和
(74)【代理人】
【識別番号】100098327
【氏名又は名称】高松 俊雄
(72)【発明者】
【氏名】平田 圭史朗
【審査官】和平 悠希
(56)【参考文献】
【文献】特開2014-216991(JP,A)
【文献】国際公開第2018/118465(WO,A1)
【文献】米国特許出願公開第2017/0180250(US,A1)
【文献】特許第5844938(JP,B2)
【文献】特開2001-274793(JP,A)
【文献】特開2005-252606(JP,A)
【文献】米国特許出願公開第2019/0394219(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00-12/66
H04L 41/00-101/695
(57)【特許請求の範囲】
【請求項1】
ネットワークに接続された物理サーバ上に仮想的に実装されたコンテナが前記ネットワークのインタフェースを介して送受信するコンテナ側のパケットのヘッダ情報を、前記コンテナ内で取得する第1の情報取得部と、
前記物理サーバが前記インタフェースを介して前記ネットワークとの間で送受信するサーバ側のパケットのヘッダ情報を、前記物理サーバにおける前記コンテナの外部のユーザ空間で取得する第2の情報取得部と、
前記第1の情報取得部及び前記第2の情報取得部においてそれぞれ取得されたパケットのヘッダ情報同士を照合し、前記コンテナ及び前記物理サーバにおいて同期して送受信されたパケットの前記ヘッダ情報同士を結合する結合部と、
前記結合部が結合した前記ヘッダ情報の表示データを、コンテナ型仮想化環境における通信管理データとして生成する表示データ生成部と、
を備えるコンテナ型仮想化環境における通信管理装置。
【請求項2】
前記第1の情報取得部は、前記コンテナ側のパケットのヘッダ情報を前記コンテナ内でキャプチャするキャプチャ部と、前記キャプチャ部においてキャプチャされた前記コンテナ側のパケットの少なくとも前記ヘッダ情報のデータを、前記ユーザ空間に転送する転送部とを有しており、前記結合部は、前記転送部が転送した前記コンテナ側のパケットの前記ヘッダ情報と、前記第2の情報取得部において取得された前記サーバ側のパケットの前記ヘッダ情報とを、前記ユーザ空間において照合する請求項1に記載のコンテナ型仮想化環境における通信管理装置。
【請求項3】
前記第1の情報取得部は、前記コンテナ側のパケットの送受信をトリガとして前記コンテナ側のパケットの少なくとも前記ヘッダ情報を含む通信ログのデータを、前記ユーザ空間に送信するログ送信部を有しており、前記結合部は、前記ログ送信部が送信した前記通信ログのデータにおける前記ヘッダ情報と、前記第2の情報取得部において取得された前記サーバ側のパケットの前記ヘッダ情報とを、前記ユーザ空間において照合する請求項1に記載のコンテナ型仮想化環境における通信管理装置。
【請求項4】
前記結合部は、照合した双方の前記ヘッダ情報においてパケットの宛先又は送信元が一致し、かつ、双方が同期して送受信されたパケットの前記ヘッダ情報同士を結合する請求項1~3のいずれか1項に記載のコンテナ型仮想化環境における通信管理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、コンテナ型仮想化環境における通信管理装置に関する。
【背景技術】
【0002】
ネットワークに接続されるコンピュータでは、ネットワーク側からの不正なアクセスに備えて対策を講じることが重要である。ファイヤウォール、あるいは、ウィルスパターンの照合処理等は、よく知られた不正アクセス対策である。これらの不正アクセス対策を運用する際には、どのパケット通信において不正アクセスが発生したかを特定する必要がある。
【0003】
特許文献1は、ネットワーク内のプロキシサーバが記録する、ネットワーク内のユーザPCとインターネットのサーバとのパケット通信のログの監視により、不正通信を検出する技術を開示している。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
コンピュータのリソースを抽象化する仮想化は、リソースの柔軟な利用を可能にすることができる。コンテナ型の仮想化環境は、仮想化OS(Operation System)が必要ないので、仮想化OSを必要とするホスト型及びハイパーバイザ型の仮想化環境よりも、起動の迅速性と使用するリソースの少なさにおいて優れている。この点を生かして、コンテナ型の仮想化環境を、クラウドコンピューティングサービスに使用するWebサーバに導入することが進められている。
【0006】
コンテナ型の仮想化環境をWebサーバに導入すると、Webサーバ上の仮想化されたコンテナは、ネットワークを介してパケットを送受信する。このため、コンテナへの不正アクセス対策として、コンテナが行うパケット通信のログを、記録して監視する必要がある。仮想化OSが存在しないコンテナが行うパケット通信のログの記録及び監視を、もしも、WebサーバのホストOSで行う構成とすると、コンテナ内でのパケット通信の状態を把握することができない。
【0007】
本開示は前記事情に鑑みなされたもので、本開示の目的は、ネットワークに接続される物理サーバ上の仮想化されたコンテナにおけるパケット通信の状態を、把握できるようにすることにある。
【課題を解決するための手段】
【0008】
本開示に係るコンテナ型仮想化環境における通信管理装置は、
ネットワークに接続された物理サーバ上に仮想的に実装されたコンテナが前記ネットワークのインタフェースを介して送受信するコンテナ側のパケットのヘッダ情報を、前記コンテナ内で取得する第1の情報取得部と、
前記物理サーバが前記インタフェースを介して前記ネットワークとの間で送受信するサーバ側のパケットのヘッダ情報を、前記物理サーバにおける前記コンテナの外部のユーザ空間で取得する第2の情報取得部と、
前記第1の情報取得部及び前記第2の情報取得部においてそれぞれ取得されたパケットのヘッダ情報同士を照合し、前記コンテナ及び前記物理サーバにおいて同期して送受信されたパケットの前記ヘッダ情報同士を結合する結合部と、
前記結合部が結合した前記ヘッダ情報の表示データを、コンテナ型仮想化環境における通信管理データとして生成する表示データ生成部と、
を備える。
【0009】
本開示に係るコンテナ型仮想化環境における通信管理装置において、前記第1の情報取得部は、前記コンテナ側のパケットのヘッダ情報を前記コンテナ内でキャプチャするキャプチャ部と、前記キャプチャ部においてキャプチャされた前記コンテナ側のパケットの少なくとも前記ヘッダ情報のデータを、前記ユーザ空間に転送する転送部とを有しており、前記結合部は、前記転送部が転送した前記コンテナ側のパケットの前記ヘッダ情報と、前記第2の情報取得部において取得された前記サーバ側のパケットの前記ヘッダ情報とを、前記ユーザ空間において照合してもよい。
【0010】
本開示に係るコンテナ型仮想化環境における通信管理装置において、前記第1の情報取得部は、前記コンテナ側のパケットの送受信をトリガとして前記コンテナ側のパケットの少なくとも前記ヘッダ情報を含む通信ログのデータを、前記ユーザ空間に送信するログ送信部を有しており、前記結合部は、前記ログ送信部が送信した前記通信ログのデータにおける前記ヘッダ情報と、前記第2の情報取得部において取得された前記サーバ側のパケットの前記ヘッダ情報とを、前記ユーザ空間において照合してもよい。
【0011】
本開示に係るコンテナ型仮想化環境における通信管理装置において、前記結合部は、照合した双方の前記ヘッダ情報においてパケットの宛先又は送信元が一致し、かつ、双方が同期して送受信されたパケットの前記ヘッダ情報同士を結合してもよい。
【発明の効果】
【0012】
本開示によれば、ネットワークに接続される物理サーバ上の仮想化されたコンテナにおけるパケット通信の状態を、把握することができる。
【図面の簡単な説明】
【0013】
【
図1】一実施形態に係るコンテナ型仮想化環境における通信管理装置を運用可能なコンテナが仮想化により複数実装された物理サーバの一例を示す説明図である。
【
図2】一実施形態に係り
図1のコンテナにおけるパケット通信の状態を把握する通信管理装置の詳細な構成を示す説明図である。
【
図3】
図2のコンテナがネットワーク上の機器との間でパケットを送受信する場合を概念的に示す説明図である。
【
図4】(a)は
図2のコンテナ及び物理サーバのユーザ空間においてパケットキャプチャがそれぞれキャプチャするパケットの構成を示す説明図、(b)は(a)のパケットデータヘッダのデータから取得される通信ログの内容を示す説明図である。
【
図5】
図2の物理サーバにおいてキャプチャされるパケットのタイムスタンプと送信元及び宛先の各IPアドレスを含むヘッダ情報を示し、(a)は物理サーバのパケットキャプチャソフトウェアがキャプチャしたパケットのヘッダ情報の説明図、(b)はコンテナのパケットキャプチャアプリケーションソフトウェアがキャプチャしたパケットのヘッダ情報の説明図、(c)は表示データ生成部が生成する(a),(b)のヘッダ情報を結合したヘッダ情報の説明図である。
【
図6】他の実施形態に係り
図1のコンテナにおけるパケット通信の状態を把握する通信管理装置の詳細な構成を示す説明図である。
【発明を実施するための形態】
【0014】
以下、いくつかの例示的な実施形態について、図面を参照しながら説明する。
図1は一実施形態に係るコンテナ型仮想化環境における通信管理装置を運用可能なコンテナが仮想化により複数実装された物理サーバの一例を示す説明図である。
【0015】
図1に示す物理サーバ1は、ハードウェア3を有する。ハードウェア3は、例えば、CPU、RAM、ROM、不揮発性の外部記憶装置、ディスプレイ等を有している。
【0016】
ハードウェア3のROM又は外部記憶装置には、ホストOS(Operation System)5を記憶させることができる。ハードウェア3のCPUは、ホストOS5のプログラムを実行することで、物理サーバ1上にカーネル7を仮想的に実装させることができる。
【0017】
また、ROM又は外部記憶装置には、ホストOS5上で実行されるコンテナ管理ソフトウェア9を記憶させることができる。ハードウェア3のCPUは、コンテナ管理ソフトウェア9のプログラムを実行することで、物理サーバ1上に1又は複数のコンテナ11を仮想的に実装させることができる。
図1では、コンテナ11が物理サーバ1上に3つ実装された場合を示している。
【0018】
各コンテナ11は、ホストOS5のカーネル7を共有する。また、各コンテナ11は、ライブラリ環境変数13の環境変数に基づいて稼働するミドルウェア15及びアプリケーションソフトウェア(アプリ)17をそれぞれ有している。したがって、各コンテナ11は、ホストOS5上でアプリケーションソフトウェア17を実行する仮想サーバをそれぞれ構成することができる。
【0019】
実施形態に係るコンテナ型仮想化環境における通信管理装置は、各コンテナ11におけるパケット通信の状態を把握するために、物理サーバ1上で運用することができる。以下、一実施形態に係るコンテナ型仮想化環境における通信管理装置の構成について、
図2の説明図を参照して説明する。
【0020】
図2では、図面の見やすさのため、コンテナ11を1つだけ図示し、他のコンテナ11の図示を省略している。
図2に示すように、物理サーバ1は、ハードウェア3のネットワークインタフェース19において、ネットワーク21に接続されている。ネットワーク21は、例えば、インターネット、イントラネット、WAN(Wide Area Network )等とすることができる。ネットワーク21の通信プロトコルがインターネットプロトコルに準拠する場合、物理サーバ1を含むネットワーク21上の各機器には、グローバルIP(Internet Protocol )アドレスをそれぞれ割り当てることができる。
【0021】
各コンテナ11は、ハードウェア3のユーザ空間(図示せず)に仮想的に実装される通信経路により、ネットワークインタフェース19に接続される。即ち、ハードウェア3のCPUがコンテナ管理ソフトウェア9のプログラムを実行することで、ネットワークインタフェース19に仮想ブリッジが割り当てられる。この仮想ブリッジにより、各コンテナ11とネットワークインタフェース19とをつなげる仮想的な通信経路が確立される。
【0022】
各コンテナ11は、ネットワークインタフェース19を介して行うパケットの送受信により、他のコンテナ11又はネットワーク21上の他の機器とデータをやり取りすることができる。各コンテナ11のパケットの送受信は、カーネル7の制御の下で行われる。そのために、各コンテナ11には、プライベートIPアドレスがそれぞれ割り当てられている。各コンテナ11のプライベートIPアドレスは、物理サーバ1のポート番号に1対1に対応している。物理サーバ1のポート番号は、各コンテナ11の通信経路を確立する仮想ブリッジにそれぞれ割り当てられている。
【0023】
各コンテナ11のプライベートIPアドレスは、各コンテナ11の通信経路によって物理サーバ1内に構築されるローカルネットワーク(図示せず)上で有効なアドレスである。プライベートIPアドレスは、ネットワーク21上では無効なアドレスである。
【0024】
コンテナ管理ソフトウェア9は、コンテナ11がパケットの送受信を行うための構成と、コンテナ11が行うパケットの送受信を監視するための構成とを、ユーザ空間に仮想的に実装させる。
【0025】
コンテナ管理ソフトウェア9がユーザ空間に実装させる構成は、コンテナ11の外部に構築されて各コンテナ11が共有する構成と、各コンテナ11の内部に個別に構築される構成とを含んでいる。コンテナ11の外部に構築される構成は、例えば、NAPT(Network Address Port Translation)テーブル23、第1通信制御部25及びデータバックアップ部27を含んでいる。各コンテナ11の内部にそれぞれ構築される構成は、キャプチャデータ格納部29を含んでいる。これらが仮想的に実装されるユーザ空間は、例えば、ハードウェア3の外部記憶装置に設けることができる。
【0026】
また、各コンテナ11においてそれぞれ実行される
図1のアプリケーションソフトウェア17は、
図2に示すように、通信アプリ31及びパケットキャプチャアプリ33を含んでいる。
【0027】
各コンテナ11は、通信アプリ31を実行することで、物理サーバ1内のローカルネットワーク上でパケットを送受信することができる。各コンテナ11がローカルネットワークに送信するパケットは、通信アプリ31によって生成することができる。また、各コンテナ11がローカルネットワークから受信したパケットは、通信アプリ31によって受信処理することができる。
【0028】
各コンテナ11は、パケットキャプチャアプリ33を実行することで、各コンテナ11が送受信するパケットを、ローカルネットワーク上でキャプチャすることができる。キャプチャしたパケットのデータ、即ち、キャプチャデータIは、第1データ格納空間35に保存することができる。第1データ格納空間35は、コンテナ11の実装空間に確保することができる。
【0029】
NAPTテーブル23は、各コンテナ11のプライベートIPアドレスと、ネットワーク21上で有効なグローバルIPアドレスとを対応付けたテーブル(図示せず)を保持している。各コンテナ11に対応するグローバルIPアドレスは、各コンテナ11毎に異なるアドレスである。
【0030】
第1通信制御部25は、ローカルネットワークを構成する各通信経路上で、対応する各コンテナ11を送信元又は宛先とするパケットのIPアドレスを、プライベートIPアドレス及びグローバルIPアドレスの一方から他方に変換する。IPアドレスを変換する際に、第1通信制御部25は、NAPTテーブル23を参照する。
【0031】
第1通信制御部25は、各コンテナ11がパケットを送受信する際に、カーネル7に対してシステムコールを出力する。
【0032】
コンテナ11によるパケットの送信時には、第1通信制御部25は、カーネル7に対するシステムコールにより、コンテナ11が送信したパケットをカーネル7に受け渡す。このとき、第1通信制御部25は、パケットの送信元のIPアドレスを、送信元のコンテナ11に対応するプライベートIPアドレスから、送信元のコンテナ11に対応するグローバルIPアドレスに変換する。コンテナ11に対応するグローバルIPアドレスは、コンテナ11の通信経路を構成する仮想ブリッジに割り当てられたネットワークインタフェース19のポート番号に対応するIPアドレスである。
【0033】
第1通信制御部25が受け渡したパケットは、カーネル7によってネットワークインタフェース19のキューに格納される。キューに格納されたパケットは、宛先のグローバルIPアドレスに対応するネットワーク21上の機器に向けて、ネットワーク21に送信される。
【0034】
コンテナ11によるパケットの受信時には、第1通信制御部25は、カーネル7に対するシステムコールにより、コンテナ11が受信するパケットをカーネル7から取得する。このパケットは、ネットワークインタフェース19がネットワーク21から受信してキューに格納したものであり、カーネル7によってキューから取り出される。
【0035】
第1通信制御部25は、カーネル7から取得したパケットの宛先のIPアドレスを、宛先のコンテナ11に対応するグローバルIPアドレスから、宛先のコンテナ11に対応するプライベートIPアドレスに変換する。そして、カーネル7から取得したパケットを、変換後のプライベートIPアドレスに対応するコンテナ11の通信経路を介して伝送し、通信アプリ31によって受信処理させる。
【0036】
図3は、コンテナ11が物理サーバ1を介してネットワーク21上の各機器との間でパケットを送受信する場合を概念的に示す説明図である。コンテナ11がネットワーク21上の機器又は他のコンテナ11にパケットを送信する場合は、コンテナ11は、
図3の(1)で示す経路で、仮想ブリッジ37によるローカルネットワーク39を介してネットワークインタフェース19にパケットを送信する。
【0037】
このとき、パケットの送信元のIPアドレスは、コンテナ11のプライベートIPアドレスとなる。パケットの宛先のIPアドレスは、宛先がネットワーク21上の機器である場合は、その機器のグローバルIPアドレスとなる。また、宛先が物理サーバ1の他のコンテナ11である場合は、そのコンテナ11のプライベートIPアドレスとなる。
【0038】
コンテナ11が送信したパケットを、
図2に示すネットワークインタフェース19が受信してキューに格納すると、第1通信制御部25が、パケットの送信元のIPアドレスをプライベートIPアドレスからグローバルIPアドレスに変換する。パケットの宛先のIPアドレスが他のコンテナ11のプライベートIPアドレスである場合は、第1通信制御部25が、パケットの宛先のIPアドレスもプライベートIPアドレスからグローバルIPアドレスに変換する。
【0039】
そして、第1通信制御部25は、コンテナ11から受信したパケットを、
図3の(2)で示す経路で、ネットワークインタフェース19のキューからネットワーク21に送信する。
【0040】
一方、ネットワーク21上の各機器又は物理サーバ1の他のコンテナ11から送信されたコンテナ11宛のパケットは、
図3の(3)で示す経路で、ネットワーク21を介してネットワークインタフェース19によって受信され、キューに格納される。
【0041】
このとき、パケットの送信元のIPアドレスは、送信元がネットワーク21上の機器である場合は、その機器のグローバルIPアドレスとなっている。また、送信元が物理サーバ1の他のコンテナ11である場合は、そのコンテナ11のグローバルIPアドレスとなっている。パケットの宛先のIPアドレスは、宛先のコンテナ11のグローバルIPアドレスとなっている。
【0042】
そこで、第1通信制御部25は、キューに格納されたパケットの宛先のIPアドレスを、グローバルIPアドレスからプライベートIPアドレスに変換する。パケットの送信元のIPアドレスが他のコンテナ11のグローバルIPアドレスである場合は、第1通信制御部25が、パケットの送信元のIPアドレスもグローバルIPアドレスからプライベートIPアドレスに変換する。
【0043】
そして、第1通信制御部25は、ネットワークインタフェース19のキューに格納されたパケットを、
図3の(4)で示す経路で、仮想ブリッジ37によるローカルネットワーク39を介して宛先のコンテナ11に送信する。
【0044】
図2のデータバックアップ部27は、コンテナ11が送受信し第1データ格納空間35に格納されたパケットのデータをバックアップし、バックアップデータを記憶する。
【0045】
ハードウェア3のROM又は外部記憶装置には、コンテナ管理ソフトウェア9の他に、ホストOS5上で実行される他のアプリケーションソフトウェアをさらに記憶させることができる。アプリケーションソフトウェアとしては、例えば、パケットキャプチャソフトウェア41、データ結合ソフトウェア43及びグラフィックソフトウェア45を挙げることができる。
【0046】
ハードウェア3のCPUは、パケットキャプチャソフトウェア41のプログラムを実行することで、物理サーバ1上に、第2通信制御部47を仮想的に実装させることができる。第2通信制御部47は、ネットワークインタフェース19がネットワーク21に対してパケットを送受信する際に、送受信するパケットをネットワークインタフェース19のキュー上でキャプチャすることができる。キャプチャしたパケットのデータ、即ち、キャプチャデータIIは、第2データ格納空間49に保存することができる。第2データ格納空間49は、例えば、ハードウェア3のROM又は外部記憶装置に確保することができる。
【0047】
ここで、第1データ格納空間35及び第2データ格納空間49にそれぞれ保存されるパケットの構成を、
図4(a)の説明図を参照して説明する。
【0048】
図4(a)に示すように、コンテナ11及びネットワークインタフェース19がそれぞれ送受信するパケットは、ヘッダ部及びデータ部を有している。データ部は、パケットデータの伝送に用いられる。ヘッダ部は、パケットデータヘッダの伝送に用いられる。
【0049】
パケットデータヘッダは、パケットデータに関するヘッダ情報である。ヘッダ情報は、
図4(b)の説明図に示すように、パケットの送信元による送信時刻のタイムスタンプ、送信元及び宛先の各IPアドレス、パケットの通信に用いるプロトコル等の情報を含んでいる。また、パケットの送信元又は宛先がコンテナ11である場合、ヘッダ情報は、コンテナ11の通信経路を構成する仮想ブリッジ37に割り当てられたネットワークインタフェース19のポート番号をさらに含んでいる。
【0050】
パケットの送信時刻のタイムスタンプは、例えば、パケットの送信元において管理されるシステム時刻から取得することができる。なお、物理サーバ1を含むネットワーク21上の各機器は、ネットワーク21を通じてシステム時刻を共有することができる。また、物理サーバ1内の各コンテナ11も、物理サーバ1のホストOS5が管理する物理サーバ1のシステム時刻を、ローカルネットワーク39を通じて取得することで、ネットワーク21上の各機器とシステム時刻を共有することができる。
【0051】
ハードウェア3のCPUは、データ結合ソフトウェア43のプログラムを実行することで、物理サーバ1上に、結合処理部51を仮想的に実装させることができる。結合処理部51は、コンテナ11が送受信したパケットのヘッダ情報、即ち、キャプチャデータIを、第1データ格納空間35から第3データ格納空間53に複写する。これにより、パケットキャプチャアプリ33によってキャプチャされて第1データ格納空間35に保存されたコンテナ11側のパケットの少なくともヘッダ情報のデータを、物理サーバ1のユーザ空間に転送することができる。
【0052】
また、結合処理部51は、ネットワークインタフェース19が送受信したパケットのヘッダ情報、即ち、キャプチャデータIIを、第2データ格納空間49から第4データ格納空間55に複写する。第3データ格納空間53及び第4データ格納空間55は、例えば、ハードウェア3のROM又は外部記憶装置に確保することができる。
【0053】
そして、結合処理部51は、第3データ格納空間53のヘッダ情報と第4データ格納空間55のヘッダ情報とを照合する。そして、両ヘッダ情報中の送信元又は宛先のIPアドレスが一致し、かつ、両ヘッダ情報中のタイムスタンプの時刻の差が基準時間以内である場合に、結合処理部51は、両パケットが同期して送受信されたものと判定する。基準時間は、例えば、1秒とすることができる。そして、結合処理部51は、同期して送受信されたと判定した両パケットのヘッダ情報を、コンテナ11がネットワーク21上の各機器との間で送受信したパケットのヘッダ情報として結合する。即ち、結合処理部51は、同期して送受信されたヘッダ情報を結合することで、コンテナ型仮想化環境における通信管理データを生成する。結合したヘッダ情報は、第5データ格納空間57に保存して蓄積することができる。
【0054】
ハードウェア3のCPUは、グラフィックソフトウェア45のプログラムを実行することで、物理サーバ1上に、表示データ生成部59を仮想的に実装させることができる。表示データ生成部59は、コンテナ11がネットワーク21上の各機器との間で送受信したパケットのヘッダ情報として結合した第5データ格納空間57のヘッダ情報を、第6データ格納空間61に複写する。第6データ格納空間61は、例えば、ハードウェア3のROM又は外部記憶装置に確保することができる。
【0055】
そして、表示データ生成部59は、第6データ格納空間61のヘッダ情報を表示するためのデータを生成する。
【0056】
例えば、コンテナ11がパケットをネットワーク21の機器に、
図3の(1),(2)に示す経路で送信し、機器からのパケットをコンテナ11が、
図3の(3),(4)に示す経路で受信したものとする。
【0057】
この場合、パケットキャプチャソフトウェア41によって経路(2),(3)上でキャプチャされるサーバ側のパケットのヘッダ情報は、
図5(a)の上段及び下段にそれぞれ示す内容となる。即ち、タイムスタンプが、
図3の経路(2),(3)上でのパケット送信の実施時におけるシステム時刻となる。また、送信元のIPアドレスが、送信元の物理サーバ1又は機器のグローバルIPアドレス、宛先のIPアドレスが、宛先の機器又は物理サーバ1のグローバルIPアドレスとなる。
【0058】
また、パケットキャプチャアプリ33によって経路(1),(4)上でキャプチャされるコンテナ側のパケットのヘッダ情報は、
図5(b)の上段及び下段にそれぞれ示す内容となる。即ち、タイムスタンプが、
図3の経路(1),(4)上でのパケット送信の実施時におけるシステム時刻となる。また、送信元のIPアドレスが、送信元のコンテナ11のプライベートIPアドレス又は送信元の機器のグローバルIPアドレス、宛先のIPアドレスが、宛先の機器のグローバルIPアドレス又は宛先のコンテナ11のプライベートIPアドレスとなる。
【0059】
なお、
図5中では、コンテナ11のプライベートIPアドレスを、「xxx.xxx.xxx.xxx」としている。また、物理サーバ1のグローバルIPアドレスを、「XXX.XXX.XXX.XXX」としている。さらに、ネットワーク21上の機器のグローバルIPアドレスを、「AAA.AAA.AAA.AAA」としている。
【0060】
上述した経路でコンテナ11とネットワーク21上の機器とがパケットの送受信を行った場合、
図3の経路(1),(2)におけるパケットの送信は連続して行われる。このため、
図5(a)の上段に示す経路(2)のパケット送信の実施時におけるタイムスタンプのシステム時刻は、
図5(b)の上段に示す経路(1)のパケット送信の実施時におけるタイムスタンプのシステム時刻と同期する。即ち、経路(2)のパケット送信時のシステム時刻が、経路(1)のパケット送信時のシステム時刻と同一又は基準時間以内遅れた時刻となる。また、両ヘッダ情報の宛先のIPアドレスは、宛先の機器のグローバルIPアドレス同士で一致する。
【0061】
同じく、上述した経路でコンテナ11とネットワーク21上の機器とがパケットの送受信を行った場合、
図3の経路(3),(4)におけるパケットの送信は連続して行われる。このため、
図5(b)の下段に示す経路(4)のパケット送信の実施時におけるタイムスタンプのシステム時刻は、
図5(a)の下段に示す経路(3)のパケット送信の実施時におけるタイムスタンプのシステム時刻と同期する。即ち、経路(4)のパケット送信時のシステム時刻が、経路(3)のパケット送信時のシステム時刻と同一又は基準時間以内遅れた時刻となる。また、両ヘッダ情報の送信元のIPアドレスは、送信元の機器のグローバルIPアドレス同士で一致する。
【0062】
そこで、
図5(a),(b)の上段の各ヘッダ情報は、結合処理部51によって結合されて第5データ格納空間57に保存される。また、
図5(a),(b)の下段の各ヘッダ情報も、結合処理部51によって結合されて第5データ格納空間57に保存される。したがって、表示データ生成部59は、第6データ格納空間61に複写された第5データ格納空間57の結合されたヘッダ情報を表示するためのデータを、例えば、
図5(c)に示す内容で生成することができる。
【0063】
図5(c)に示す表示データでは、
図5(a)に示すヘッダ情報に、送信元又は宛先のコンテナ11のプライベートIPアドレスを付加している。表示データ生成部59が表示データを生成した結合されたヘッダ情報は、例えば、ハードウェア3の不図示のディスプレイにおいて表示させることができる。
【0064】
以上に説明した本実施形態の物理サーバ1では、ハードウェア3のCPUがホストOS5上での各ソフトウェア9,41,43,45のプログラムを実行することで、物理サーバ1上にコンテナ型仮想化環境における通信管理装置を実装することができる。
【0065】
また、本実施形態の物理サーバ1では、ハードウェア3のCPUが各コンテナ11のパケットキャプチャアプリ33のプログラムを実行することで、物理サーバ1上に第1の情報取得部のキャプチャ部及び転送部を実装させることができる。さらに、本実施形態の物理サーバ1では、第2通信制御部47及び結合処理部51を、第2の情報取得部及び結合部として機能させることができる。
【0066】
そして、
図2に示すように、ハードウェア3のCPUは、ホストOS5上でパケットキャプチャソフトウェア41を稼働させ、ネットワークインタフェース19で送受信するパケットをキャプチャする状態とする。キャプチャしたパケットのデータは、第2データ格納空間49に保存される(i)。
【0067】
また、ハードウェア3のCPUは、ホストOS5上でコンテナ管理ソフトウェア9を稼働させ、物理サーバ1上に複数のコンテナ11を仮想的に実装させる。このとき、ネットワークインタフェース19に仮想ブリッジ37が割り当てられる。このため、各コンテナ11について、仮想ブリッジ37を介したネットワークインタフェース19との仮想的な通信経路がそれぞれ確立される(ii)。
【0068】
さらに、ハードウェア3のCPUは、コンテナ11内でパケットキャプチャアプリ33のアプリケーションソフトウェアを稼働させ、コンテナ11が送受信する仮想ブリッジ37内のパケットをキャプチャする状態とする。キャプチャしたパケットのデータは、第1データ格納空間35に保存される(iii )。
【0069】
また、ハードウェア3のCPUは、コンテナ11と外部との通信を行う通信アプリ31のアプリケーションソフトウェアを、コンテナ11内で稼働させる(iv)。そして、ハードウェア3のCPUは、ホストOS5のタイムスケジュール処理により、第1データ格納空間35及び第2データ格納空間49のパケットのデータを、定期的に第3データ格納空間53及び第4データ格納空間55に複写する(v )。パケットのデータの複写は、第2通信制御部47及び結合処理部51によって実行させることができる。
【0070】
さらに、ハードウェア3のCPUは、第3データ格納空間53及び第4データ格納空間55のパケットのデータを用いて、コンテナ11とネットワーク21上の各機器との間で送受信されたパケットのヘッダ情報の結合ビューのデータを作成する(vi)。結合ビューは、例えば、
図5(a),(b)の上段の各ヘッダ情報によって構成することができる。あるいは、
図5(a),(b)の下段の各ヘッダ情報によって構成することができる。結合ビューは、結合処理部51によって作成させることができる。作成した結合ビューのデータは、第5データ格納空間57に保存される。
【0071】
また、ハードウェア3のCPUは、第5データ格納空間57に保存された結合ビューのデータを、第6データ格納空間61に複写する(vii )。結合ビューのデータは、表示データ生成部59によって実行させることができる。さらに、ハードウェア3のCPUは、第6データ格納空間61のデータを用いて、
図5(c)に示す内容の結合ビューを,不図示のディスプレイに表示する(viii)。
【0072】
このため、各コンテナ11を送信元又は宛先とするパケットの通信状態を、自身では把握できないホストOS5に代わって把握することができる。
【0073】
なお、各コンテナ11が送受信するパケットのキャプチャデータIとネットワークインタフェース19がネットワーク21に対して送受信するパケットのキャプチャデータIとのヘッダ情報を照合し結合する処理は、各コンテナ11で行ってもよい。
【0074】
また、各コンテナ11が送受信するパケットのキャプチャデータIを、パケットキャプチャアプリ33によってキャプチャし、データバックアップ部27にバックアップデータとして記憶させる構成は、他の構成に変えてもよい。
【0075】
例えば、各コンテナ11においてそれぞれ実行される
図1のアプリケーションソフトウェア17に、
図2に示すパケットキャプチャアプリ33に変えて、
図6の説明図に示す通信ログ生成アプリ63を含める。
【0076】
この場合、各コンテナ11は、通信ログ生成アプリ63を実行することで、各コンテナ11がパケットを送受信する度に、この送受信をトリガとして、ローカルネットワーク39上のパケットの通信ログを生成することができる。この通信ログは、例えば、
図4(b)のパケットデータヘッダの情報を含む内容とすることができる。生成した通信ログのデータは、例えば、第3データ格納空間53に保存させることができる。
【0077】
したがって、結合処理部51は、第3データ格納空間53の通信ログのデータの内容と、第4データ格納空間55のヘッダ情報とを照合する。
【0078】
図6に示す実施形態の構成とした場合でも、
図2の実施形態の構成とした場合と同様に、各コンテナ11を送信元又は宛先とするパケットの通信状態を、自身では把握できないホストOS5に代わって把握することができる。
【0079】
なお、
図6に示す実施形態の構成とする場合、
図2に示すデータバックアップ部27及び各コンテナ11の第1データ格納空間35は、省略することができる。
【0080】
また、
図6に示す実施形態の物理サーバ1では、ハードウェア3のCPUが各コンテナ11の通信ログ生成アプリ63のプログラムを実行することで、物理サーバ1上に第1の情報取得部としてのログ送信部を実装させることができる。この実施形態の物理サーバ1でも、第2通信制御部47及び結合処理部51を、第2の情報取得部及び結合部として機能させることができる。
【0081】
さらに、表示データ生成部59が生成してディスプレイに表示させる結合されたヘッダ情報における、送信元又は宛先のコンテナ11のプライベートIPアドレスは、そのコンテナ11に対応する仮想ブリッジ37に割り当てられたポート番号に変えてもよい。
【0082】
以上にいくつかの実施形態を説明したが、上記開示内容に基づいて実施形態の修正または変形をすることが可能である。上記実施形態のすべての構成要素、及び請求の範囲に記載されたすべての特徴は、それらが互いに矛盾しない限り、個々に抜き出して組み合わせてもよい。
【符号の説明】
【0083】
1 物理サーバ
3 ハードウェア
5 ホストOS
7 カーネル
9 コンテナ管理ソフトウェア
11 コンテナ
13 ライブラリ環境変数
15 ミドルウェア
17 アプリケーションソフトウェア
19 ネットワークインタフェース
21 ネットワーク
23 NAPTテーブル
25 第1通信制御部
27 データバックアップ部
29 キャプチャデータ格納部
31 通信アプリ
33 パケットキャプチャアプリ
35 第1データ格納空間
37 仮想ブリッジ
39 ローカルネットワーク
41 パケットキャプチャソフトウェア
43 データ結合ソフトウェア
45 グラフィックソフトウェア
47 第2通信制御部
49 第2データ格納空間
51 結合処理部
53 第3データ格納空間
55 第4データ格納空間
57 第5データ格納空間
59 表示データ生成部
61 第6データ格納空間
63 通信ログ生成アプリ