[go: up one dir, main page]

JP6333498B1 - 情報処理装置および情報処理方法 - Google Patents

情報処理装置および情報処理方法 Download PDF

Info

Publication number
JP6333498B1
JP6333498B1 JP2018508246A JP2018508246A JP6333498B1 JP 6333498 B1 JP6333498 B1 JP 6333498B1 JP 2018508246 A JP2018508246 A JP 2018508246A JP 2018508246 A JP2018508246 A JP 2018508246A JP 6333498 B1 JP6333498 B1 JP 6333498B1
Authority
JP
Japan
Prior art keywords
communication
virtual machine
unit
address
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018508246A
Other languages
English (en)
Other versions
JPWO2018179413A1 (ja
Inventor
大貴 星野
大貴 星野
卓也 宮丸
卓也 宮丸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of JP6333498B1 publication Critical patent/JP6333498B1/ja
Publication of JPWO2018179413A1 publication Critical patent/JPWO2018179413A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/028Capturing of monitoring data by filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/58Caching of addresses or names
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-2 addresses, e.g. medium access control [MAC] addresses

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Abstract

情報処理装置(1)が、外部に通信データのアドレス要求をし、アドレス要求の応答として受信した送信先アドレスに対し通信データを送信する機能を有する複数の仮想マシン(10A,10B)と、仮想マシン(10A,10B)と他の仮想マシンとの間の第1の通信データをロギングする通信デバッガ(30X)と、を備え、通信デバッガ(30X)は、仮想マシン(10A,10B)からアドレス要求を受けると、自己のアドレスを送信先アドレスとして仮想マシン(10A,10B)に送信し、仮想マシン(10A,10B)から送信された通信データをロギングする。

Description

本発明は、ロギングを行う情報処理装置および情報処理方法に関する。
現在、物理的なコンピュータの中に、コンピュータのハードウェア構成をソフトウェアで仮想化していわゆる仮想マシンを複数実現し、これらの仮想マシンを、物理的なコンピュータを動作するOS(Operating System)と独立したOSで並列して実行する技術として、ハイパーバイザが開発されている。このハイパーバイザは、コンピュータのハードウェアのように振舞う仮想マシンを作り出し、仮想マシン上で種々のOSを動作させる。
ハイパーバイザを用いた装置として、特許文献1の通信装置がある。特許文献1の通信装置は、仮想マシン間の通信データをキャプチャするキャプチャ処理部を、ハイパーバイザ上に有している。そして、キャプチャ処理部が、第1の仮想マシンから第2の仮想マシンへ転送される通信データを取得して記憶部に保存することで、通信データのロギングを行っている。
特開2016−12801号公報
しかしながら、上記従来の技術である特許文献1の通信装置は、第1の仮想マシンと第2の仮想マシンとの間の通信経路を介して転送される通信データをキャプチャする為、キャプチャするには専用のハードウェアを必要としていた。また、特許文献1の通信装置は、キャプチャ装置のメモリ領域が仮想マシンによって抽象化されている為、仮想マシンがメモリ領域にアクセスするための仕組みが複雑になるとの問題があった。
本発明は、上記に鑑みてなされたものであって、簡易な構成で仮想マシン間の通信データをロギングすることができる情報処理装置を得ることを目的とする。
上述した課題を解決し、目的を達成するために、本発明の情報処理装置は、外部にアドレス要求を送信し、アドレス要求の応答として受信した送信先アドレスに対し通信データを送信する機能を有する複数の仮想マシンと、仮想マシンと他の仮想マシンとの間の第1の通信データをロギングする通信ロギング部とを備え、通信ロギング部は、仮想マシンからアドレス要求を受けると、自己のアドレスを送信先アドレスとして仮想マシンに送信し、仮想マシンから送信された通信データをロギングすることを特徴とする。
本発明にかかる情報処理装置は、簡易な構成で仮想マシン間の通信内容をロギングすることができるという効果を奏する。
本発明の実施の形態1にかかる情報処理装置の構成を示すブロック図 実施の形態1にかかるデータ送受信処理の処理手順を示すシーケンス図 実施の形態1にかかる固定ARP(Address Resolution Protocol:アープ)テーブルの構成を示す図 実施の形態1にかかるパケット送信処理の処理手順を示すシーケンス図 実施の形態1にかかる通信デバッガの動作処理手順を示すフローチャート 実施の形態1にかかる通信デバッガのハードウェア構成を示す図 実施の形態2にかかる通信デバッガの機能構成を示す図
以下に、本発明の実施の形態にかかる情報処理装置および情報処理方法を図面に基づいて詳細に説明する。なお、これらの実施の形態によりこの発明が限定されるものではない。
実施の形態1.
図1は、本発明の実施の形態1にかかる情報処理装置の構成を示すブロック図である。実施の形態1の情報処理装置1は、産業用コンピュータ(IPC:Industrial Personal Computer)に適用されるコンピュータである。情報処理装置1は、図示しない複数のコントローラに接続可能なよう構成されている。情報処理装置1は、複数のコントローラに種々の情報を送信するとともに、複数のコントローラから種々の情報を受信する。情報処理装置1に接続されるコントローラは、ロボット等の被制御機器を制御するPLC(Programmable Logic Controller:プログラマブルロジックコントローラ)である。
情報処理装置1は、図1に示すように外部装置であるホスト2に接続されており、ホスト2が受け取ったユーザからの指示を受信するようになされている。情報処理装置1は、ホスト2から送られてくる情報に従って種々の処理を実行する。ユーザが情報処理装置1への設定を実行する場合には、ホスト2に情報処理装置1への指示を入力する。これにより、ホスト2が情報処理装置1にユーザからの指示データを送信する。
情報処理装置1は、既存のIP(Internet Protocol:インターネットプロトコル)が実装されている。情報処理装置1は、仮想化された基盤である仮想基盤10と、仮想基盤10を制御するルートOS20とを備えている。仮想基盤10は、ルートOS20から独立して動作する仮想マシン10A,10Bを搭載している。
実施の形態1の情報処理装置1は、仮想マシン10A,10B間で行われる通信データの送受信を、後述する通信デバッガ30Xを介して送受信する。そして、通信デバッガ30Xは、通信ロギング部として通信データを捕まえる処理であるロギングを実行し、所定の条件を満たした場合に、ロギングした通信データに対して、例えば通信パケットの解析処理を実行する。すなわち、通信デバッガ30Xは、仮想マシン10A,10B間の通信データをロギングするロギング部の機能と、デバッグ処理する通信デバッグ部の機能とを有している。なお、情報処理装置1は、通信データをロギングする必要が無い場合、通信デバッガ30Xを介することなく仮想マシン10A,10B間で直接通信データの送受信を実行することも可能である。
また、実施の形態1では、通信デバッガ30Xが、条件を満たした場合に通信データに対して実行する処理を通信デバッグと呼び、通信デバッグとして、例えば、通信パケットの解析、通信パケットの置換、通信パケットの通信制御、通信パケットの保存、通信ログの保存、通信データの再送信または通信パケットの加工がある。
そして、仮想マシン10A,10Bは、ハイパーバイザ40上で動作する。仮想マシン10Aは、仮想マシン10A上で動作するOSであるゲストOS11Aを備えている。また、仮想マシン10Aは、ルートOS20との間の通信を行なう際に用いられる仮想ネットワークカード12Aを備えている。また、仮想マシン10Aは、アドレスの要求に対してアドレスを回答する応答部151Aと、応答部151Aにアドレスを送信させるか否かの設定を行う設定部152Aとを有している。
設定部152Aは、アドレスを取得するための仮想マシン10Bからのアドレス要求であるARP(Address Resolution Protocol)要求に対して仮想マシン10Aのアドレスを送信するか否かの設定である応答設定を行う。応答部151Aは、設定部152Aによる応答設定が無効設定である場合にARP要求を受信しても仮想マシン10Aのアドレスを送信せず、設定部152Aによる応答設定が有効設定である場合にARP要求を受信すると仮想マシン10Aのアドレスを送信する。このように、設定部152Aが、ARP要求に対する応答設定を無効設定にすることにより、応答部151Aは、ARP要求に対してアドレスの回答を制限する。応答部151Aは、ユーザが入力した指示に応じた指示データに従って有効設定と無効設定との切替えを実行する。
ゲストOS11Aは、ゲストOS11A上で種々のデータ診断等の処理を実行するアプリケーション130Aと、仮想ネットワークカード12Aを動作させるドライバ140Aとを備えている。アプリケーション130Aは、ユーザが要求する情報処理を直接実行するソフトウェアプログラムによって実現される機能部である。ドライバ140Aは、仮想ネットワークカード12Aを動作させるためのソフトウェアプログラムによって実現される機能部である。
仮想ネットワークカード12Aは、アプリケーション130Aの生成したデータが、ドライバ140Aから送信されてくると、アプリケーション130Aの生成したデータをルートOS20に送信する。また、仮想ネットワークカード12Aは、ルートOS20から送信されてくるデータを、ドライバ140Aに送信する。
仮想マシン10Bは、仮想マシン10Aと同様の構成を有している。すなわち、仮想マシン10Bは、仮想マシン10B上で動作するゲストOS11Bを備えている。そして、ゲストOS11Bは、ゲストOS11Aと同様の機能を有している。具体的には、ゲストOS11Bは、アプリケーション130Aと同様の機能を有したアプリケーション130Bと、ドライバ140Aと同様の機能を有したドライバ140Bとを備えている。
また、仮想マシン10Bは、仮想ネットワークカード12Aと同様の機能を有した仮想ネットワークカード12Bを備えている。また、仮想マシン10Bは、応答部151Aと同様の機能を有した応答部151Bと、設定部152Aと同様の機能を有した設定部152Bとを有している。
情報処理装置1では、仮想マシン10Aが仮想マシン10Bに送信するデータは、ルートOS20を介して仮想マシン10Bに送信される。また、情報処理装置1では、仮想マシン10Bが仮想マシン10Aに送信するデータは、ルートOS20を介して仮想マシン10Aに送信される。
仮想マシン10A,10BとルートOS20との間で送受信されるデータは、ARP要求、ARP応答または通信データである。ARP要求は、アドレス要求の一例であり、アドレス要求は、送信したデータに対応するアドレスを取得するための要求である。ARP要求は、IPアドレスを指定してMACアドレスを取得するための要求である。ARP応答は、ARP要求を受信した装置が送信する該ARP要求に対する応答であり、アドレス要求に対応する送信先アドレスである。
仮想マシン10Aが、ARP要求をブロードキャスト送信すると、このARP要求は、ルートOS20および仮想マシン10Bに送られる。また、仮想マシン10BがARP要求をブロードキャスト送信すると、このARP要求は、ルートOS20および仮想マシン10Aに送られる。
また、ルートOS20は、仮想マシン10AからARP要求を受信すると、ARP応答を仮想マシン10Aに送信し、仮想マシン10BからARP要求を受信すると、ARP応答を仮想マシン10Bに送信する。
本実施形態では、仮想マシン10Aが仮想マシン10Bに送る通信データは、ルートOS20で情報処理が実行された後にルートOS20から仮想マシン10Bに送られる。また、仮想マシン10Bが仮想マシン10Aに送る通信データは、ルートOS20で情報処理が実行された後にルートOS20から仮想マシン10Aに送られる。
ルートOS20から仮想マシン10Bへの通信データは、仮想マシン10Aで生成された通信データ、または仮想マシン10Aで生成されてルートOS20で加工された通信データである。同様に、ルートOS20から仮想マシン10Aへの通信データは、仮想マシン10Bで生成された通信データ、または仮想マシン10Bで生成されてルートOS20で加工された通信データである。仮想マシン10A,10BとルートOS20との間で送受信される通信データは、複数の通信パケットから構成されている。
なお、仮想マシン10AからルートOS20を介して仮想マシン10Bに通信データが送信される処理と、仮想マシン10BからルートOS20を介して仮想マシン10Aに通信データが送信される処理とは、同様の処理なので、以下では、仮想マシン10AからルートOS20を介して仮想マシン10Bに通信データが送信される場合について説明する。
ルートOS20は、複数の異なるOSであるゲストOS11A,11Bを並列に実行させるハイパーバイザ40と、仮想マシン10A,10Bの通信デバッグを実行する通信デバッガ30Xとを備えている。また、ルートOS20は、ハイパーバイザ40と通信デバッガ30Xとの間の通信を行なう際に用いられる仮想ネットワークカード42と、仮想ネットワークカード42を動作させるドライバ43とを備えている。また、ルートOS20は、通信ログを記憶するログ記憶部50を備えている。
ハイパーバイザ40は、ハードウェアのように振舞う仮想マシン10A,10Bを作り出し、ゲストOS11A,11Bを稼働させるソフトウェアプログラムである。ハイパーバイザ40は、ルートOS20上で起動し、仮想マシン10A,10Bを管理する。ハイパーバイザ40は、情報処理装置1内で情報の中継を行なう仮想スイッチングハブ41を備えている。
仮想スイッチングハブ41は、仮想ネットワークカード12A,12B,42に接続されている。仮想スイッチングハブ41は、仮想マシン10A,10Bおよび通信デバッガ30Xを含んで構成されるネットワークにおいて送受信される情報の中継を行う。
具体的には、仮想スイッチングハブ41は、仮想ネットワークカード12A,12Bから送られてきたデータを、仮想ネットワークカード42に送信する。また、仮想スイッチングハブ41は、仮想ネットワークカード42から送られてきたデータを、仮想ネットワークカード12A,12Bの何れかに送信する。これにより、ハイパーバイザ40は、仮想マシン10A,10Bから送られてきたデータを、仮想ネットワークカード42を介してルートOS20に送信する。また、ハイパーバイザ40は、ルートOS20から送られてきたデータを、仮想マシン10A,10Bの何れかに送信する。
また、仮想ネットワークカード42は、ハイパーバイザ40から送信されてくるデータをドライバ43に送信する。また、仮想ネットワークカード42は、ドライバ43から送信されてくるデータをハイパーバイザ40に送信する。ハイパーバイザ40は、通信デバッガ30Xに、ARP応答、ARP要求または通信データを送信する。一方、通信デバッガ30Xは、ハイパーバイザ40にARP応答または通信データを送信する。ログ記憶部50は、通信デバッガ30Xで生成された通信ログを記憶する。ログ記憶部50は、ホスト2に接続されており、ホスト2は、ログ記憶部50に記憶された通信ログを読み出し可能である。
通信デバッガ30Xは、仮想マシン10A,10Bから送信されてくる通信データに基づいて、仮想マシン10A,10B間の通信データをデバッグするソフトウェアプログラムである。なお、通信デバッガ30Xは、ルートOS20上で動作する。
この通信デバッガ30Xは、通信パケットを解析するパケット解析部31と、通信ログおよび通信パケットを生成するログ生成部32と、通信パケットを加工するパケット加工部33とを備えている。また、通信デバッガ30Xは、通信パケットを解析するか否かの判断に用いる指定条件を記憶する設定記憶部34と、ログ生成部32で生成された通信パケットを記憶するパケット記憶部35と、後述の固定ARPテーブル300(図3)を記憶するARPテーブル記憶部36とを備えている。なお、固定ARPテーブル300は、仮想のIPアドレスとMACアドレスとの対応関係を示すテーブルである。
また、通信デバッガ30Xは、アドレスの要求に対してアドレスを回答する応答部371Xと、応答部371Xにアドレスを送信させるか否かの設定を行う設定部372Xとを有している。
設定部372Xは、アドレスを取得するための仮想マシン10Bからのアドレス要求であるARP要求に対して通信デバッガ30Xのアドレスを送信するか否かの応答設定を行う。応答部371Xは、設定部372Xによる応答設定が無効設定である場合にARP要求を受信しても通信デバッガ30Xのアドレスを送信せず、設定部372Xによる応答設定が有効設定である場合にARP要求を受信すると通信デバッガ30Xのアドレスを送信する。このように、設定部372Xが、ARP要求に対する応答設定を有効設定にすることにより、応答部371Xは、アドレスを回答する。設定部372Xは、ユーザからの指示に従って、有効設定と無効設定の切替えを実行する。
通信デバッガ30Xは、ドライバ43から送られてくるデータをパケット解析部31に送信する。具体的には、通信デバッガ30Xは、仮想マシン10Aから送られてきた仮想マシン10B宛ての通信データをパケット解析部31へ送る。また、通信デバッガ30Xは、仮想マシン10Bから送られてきた仮想マシン10A宛ての通信データをパケット解析部31へ送る。また、通信デバッガ30Xは、仮想マシン10A,10Bから送られてきたARP要求を応答部371Xへ送る。
パケット解析部31は、ドライバ43から送られてくるデータが通信データである場合には、ユーザ設定された指定条件と通信データとを比較し、通信データの通信パケットが指定条件に合致するか否かを確認する。具体的には、パケット解析部31は、設定記憶部34に保存されている指定条件と通信データ内の通信パケットとを比較することによって、通信パケットが指定条件に合致するか否かを確認する。このように、パケット解析部31は、仮想マシン10A,10Bからの通信データに含まれる通信パケットがユーザからの指定条件に合致するか否かを解析する。
パケット解析部31は、通信データ内の通信パケットが指定条件に合致しない場合、通信データをそのまま通信データの宛先となっている仮想マシンに送信する。指定条件に合致しない通信パケットが、仮想マシン10Aから仮想マシン10Bへの通信データである場合、パケット解析部31は、通信データを仮想マシン10Bに送信する。同様に、指定条件に合致しない通信パケットが、仮想マシン10Bから仮想マシン10Aへの通信データである場合、パケット解析部31は、通信データを仮想マシン10Aに送信する。パケット解析部31は、通信パケットが指定条件に合致する場合、合致した通信パケットをログ生成部32に送信する。
ユーザ設定される指定条件には、通信パケットのヘッダの内容または仮想マシン10A内での通信プロトコルの種別が用いられており、例えば、通信パケットが所定のプロトコルの場合、パケット解析部31は、この通信パケットを解析する通信パケットであると判断される。また、ユーザ設定される指定条件は、通信パケットのデータ部の内容であってもよい。すなわち、指定条件が通信パケットのヘッダの内容である場合、指定条件には、通信パケットのヘッダに含まれるデータ列(例えば、「1010」からなるデータ列)が設定される。なお、ユーザ設定される指定条件は、何れの条件であってもよい。
ログ生成部32は、パケット解析部31から送信されてきた通信パケットをパケット記憶部35に保存する。また、ログ生成部32は、パケット解析部31から送信されてきた通信パケットをパケット加工部33に送信する。また、ログ生成部32は、パケット解析部31から送信されてきた通信パケットに基づいて通信ログを生成する。このように、ログ生成部32は、通信パケットが指定条件に合致する場合に、通信データの通信ログを生成する。また、ログ生成部32は、生成した通信ログをログ記憶部50に保存する。
パケット解析部31は、ドライバ43から送信されてくるデータを解析する。応答部371Xは、応答設定が有効設定されている場合にドライバ43からARP要求が送られてくると、通信デバッガ30XのMAC(Media Access Control)アドレスを付加したARP応答をドライバ43に送信する。一方、応答部371Xは、応答設定が無効設定されている場合にドライバ43からARP要求が送信されてくると、ARP応答の送信は行わない。
また、パケット加工部33は、ログ生成部32から送られてくる通信パケットを指定データで置換する。換言すると、パケット加工部33は、通信パケットの置換条件に合致した通信パケットを指定データで置換する。具体的には、パケット加工部33は、通信パケット内の特定のデータまたは特定のフィールドを指定データで置換する。これにより、通信パケット内のデータを、動作確認用のデータに置換することが可能となる。そして、動作確認用のデータが仮想マシン10A,10Bに送られることにより、仮想マシン10A,10Bは、動作確認用のデータを用いて動作するので、仮想マシン10A,10Bの動作を容易に確認することが可能となる。置換条件は、通信パケットを置換する条件であり、ユーザによって設定される。
また、パケット加工部33は、ARPテーブル記憶部36内に保存されている後述の固定ARPテーブル300に従って、通信パケットの宛先を設定する。パケット加工部33は、仮想マシン10Aから送信されてきた仮想マシン10B宛ての通信パケットに対しては、仮想マシン10Bを宛先に設定する。また、パケット加工部33は、仮想マシン10Bから送信されてきた仮想マシン10A宛ての通信パケットに対しては、仮想マシン10Aを宛先に設定する。パケット加工部33は、宛先を設定した通信パケットを含めた通信データをドライバ43に送る。このように、パケット加工部33は、通信パケットを用いて通信データを生成し、ドライバ43に送る。
パケット加工部33は、通信パケットが送信変更条件に合致すると、通信データの送信停止、送信再開または送信スキップを行う。送信変更条件は、通信処理を変更する条件であり、ユーザによって設定される。送信変更条件の一例は、通信デバッガ30Xが通信データを受信してからの経過時間である。この場合、通信デバッガ30Xが通信データを受信してから送信変更条件で設定されている経過時間が経過すると、パケット加工部33は、通信データの送信停止、送信再開または送信スキップを行う。
パケット加工部33は、送信停止に対応する送信変更条件が満たされると通信データの送信を停止する。また、パケット加工部33は、送信再開に対応する送信変更条件が満たされると通信データの送信を再開し、送信スキップに対応する送信変更条件が満たされると通信データの送信をスキップする。
なお、送信変更条件は、通信パケットのヘッダの内容であってもよい。この場合、送信変更条件には、通信パケットのヘッダに含まれるデータ列(例えば、「0101」からなるデータ列)が設定される。そして、パケット加工部33は、ヘッダに含まれるデータ列が、送信変更条件に設定されたデータ列に合致すると通信データの送信停止、送信再開または送信スキップを行う。パケット加工部33は、送信停止に対応するデータ列がヘッダ内に含まれていると通信データの送信を停止する。また、パケット加工部33は、送信再開に対応するデータ列がヘッダ内に含まれていると通信データの送信を再開し、送信スキップに対応するデータ列がヘッダ内に含まれていると通信データの送信をスキップする。
また、パケット加工部33は、パケット記憶部35内に保存されている通信パケットを、任意のタイミングで仮想マシン10A,10Bに送信する。パケット加工部33は、送信再現タイミングになると、パケット記憶部35内に保存されている通信パケットを、仮想マシン10A,10Bに送信する。送信再現タイミングは、通信データを再送信するタイミングであり、通信データ毎にユーザ設定される。
また、パケット加工部33は、通信パケットが指定条件および置換条件に合致する場合に、通信パケット内のデータをユーザからホスト2を介して指定されたデータに置換する。すなわち、実施の形態1のパケット加工部33は、過去の通信状態を再現する際に、通信パケットをパケット記憶部35に記憶された過去の通信パケットに置換することにより、仮想マシン10A,10B上のアプリケーション130A,130Bが操作されることなく、過去の通信データを再送信することが可能となる。
設定記憶部34は、パケット解析部31およびホスト2に接続されている。設定記憶部34は、パケット解析部31が用いる送信変更条件を記憶する。なお、パケット加工部33が参照する送信変更条件、置換条件および送信再現タイミングは、何れの領域に保存されていてもよい。送信変更条件、置換条件または送信再現タイミングは、設定記憶部34に保存されていてもよいし、設定記憶部34以外の領域に保存されていてもよい。
パケット記憶部35は、ログ生成部32およびパケット加工部33に接続されている。パケット記憶部35は、ログ生成部32が生成した通信パケットを記憶する。パケット記憶部35は、通信パケットが指定条件に合致する場合に、通信パケットを記憶する。
ARPテーブル記憶部36は、パケット加工部33が用いる固定ARPテーブル300を記憶する。固定ARPテーブル300は、図3に示すように、仮想マシン10A,10Bを含む仮想LAN(Local Area Network)内のIPアドレスとMACアドレスとの対応関係を示すテーブルである。固定ARPテーブル300は、仮想マシン10A,10Bおよび通信デバッガ30Xに対して、IPアドレスとMACアドレスとの対応関係を格納している。
通信デバッガ30Xは、ホスト2に接続されている。具体的には、通信デバッガ30Xの設定記憶部34が、ホスト2に接続されている。ホスト2は、ユーザからの指示に従って指定条件を変更する場合には、設定記憶部34内の送信変更条件を書き換える。また、ホスト2は、通信ログが必要な場合には、ログ記憶部50から通信ログを読み出す。また、ホスト2は、ユーザからの指示に従って送信変更条件、置換条件または送信再現タイミングを変更する場合には、通信デバッガ30Xにアクセスし、送信変更条件、置換条件または送信再現タイミングを変更する。
このように、実施の形態1の通信デバッガ30Xは、仮想マシン10A,10Bからの通信データに含まれる通信パケットが指定条件に合致する場合に、仮想マシン10A,10Bからの通信データに種々の処理を実行する。なお、通信デバッガ30Xが有しているロギング部の機能は、例えば、パケット解析部31、ログ生成部32およびパケット加工部33を用いて実現される。通信デバッガ30Xが有しているロギング部の機能は、通信デバッガ30Xが有している何れの構成要素を用いて実現されてもよい。また、通信デバッガ30Xが有している通信デバッグ部の機能は、例えば、パケット解析部31、ログ生成部32およびパケット加工部33を用いて実現される。通信デバッガ30Xが有している通信デバッグ部の機能は、通信デバッガ30Xが有している何れの構成要素を用いて実現されてもよい。
なお、仮想基盤10が搭載する仮想マシンの数は、仮想マシン10A,10Bの2つに限らず3つ以上であってもよい。また、設定記憶部34、パケット記憶部35またはARPテーブル記憶部36は、通信デバッガ30X内に配置される場合に限らず、通信デバッガ30Xの外部に配置されてもよい。
つぎに、情報処理装置1内での通信データの送受信処理手順について説明する。図2は、実施の形態1にかかるデータ送受信処理の処理手順を示すシーケンス図である。実施の形態1の情報処理装置1は、仮想マシン10A,10B間の通信を、通信デバッガ30Xを経由させる。仮想マシン10AのIPアドレスは、例えば、192.168.3.2とし、MACアドレスは、00-00-5e-7f-56-01とする。また、仮想マシン10BのIPアドレスは、例えば、192.168.3.3とし、MACアドレスは、00-00-5e-7f-56-02とする。また、通信デバッガ30XのIPアドレスは、例えば、192.168.3.1とし、MACアドレスは、00-00-5e-7f-56-03とする。
仮想マシン10Aは、仮想マシン10Bと通信する。この場合において、仮想マシン10Aは、ステップS101において、仮想マシン10BのMACアドレスを特定するために、ARP要求をブロードキャストする。
仮想マシン10Aは、ブロードキャストするARP要求に、仮想マシン10BのIPアドレスである192.168.3.3を付加しておく。仮想マシン10AからのARP要求は、ハイパーバイザ40を介して仮想マシン10Bおよび通信デバッガ30Xに送信される。これにより、ステップS102において、ARP要求が仮想マシン10Aから仮想マシン10Bに送られ、ステップS103において、ARP要求が仮想マシン10Aから通信デバッガ30Xに送信される。
そして、仮想マシン10Bは、仮想マシン10AからのARP要求を受信し、ステップS104において、通信デバッガ30Xは、仮想マシン10AからのARP要求を受信する。実施の形態1では、仮想マシン10Bの設定部152Bは、応答設定を無効設定にする。したがって、仮想マシン10Bは、仮想マシン10AからARP要求を受けてもARP応答を送信しない。
また、実施の形態1では、通信デバッガ30Xの設定部372Xは、応答設定を有効設定にする。したがって、通信デバッガ30Xの応答部371Xは、ARP要求を受信すると、ステップS105において、仮想マシン10Bの代わりに仮想マシン10AへのARP応答を代理送信する。このARP応答は、通信デバッガ30Xが自己のアドレスを送信先アドレスに設定した応答である。
このように、仮想マシン10Bは、ARP応答しない設定になっているので、通信デバッガ30Xが代理でARP要求に応答する。通信デバッガ30Xから仮想マシン10AへのARP応答には、通信デバッガ30XのMACアドレスである00-00-5e-7f-56-03が付加されている。通信デバッガ30XからのARP応答は、ステップS106において、ハイパーバイザ40を介して仮想マシン10Aに送信される。
そして、ステップS107において、仮想マシン10Aは、通信デバッガ30XからのARP応答を受信する。ステップS108において、仮想マシン10Aは、ARP応答に基づいて、固定ARPテーブル300と同様の構成を有した可変ARPテーブルを更新する。仮想マシン10Aが更新する可変ARPテーブルは、ARP応答内のMACアドレスに従って仮想マシン10Aが動的に変更するものである。実施の形態1の仮想マシン10Aが受信したARP応答には、通信デバッガ30XのMACアドレスが含まれているので、仮想マシン10Aは、ARP要求内のIPアドレスである192.168.3.3と、ARP応答内のMACアドレスである00-00-5e-7f-56-03とを可変ARPテーブル内で対応付けする。これにより、可変ARPテーブル内では、仮想マシン10BのIPアドレスと、通信デバッガ30XのMACアドレスとが対応付けられることとなる。
この後、仮想マシン10Aは、通信デバッガ30XのMACアドレスを仮想マシン10BのMACアドレスと思い込み、ステップS109において、仮想マシン10Bに送信する予定であった通信データを通信デバッガ30Xへ送信する。これにより、ステップS110において、第1の通信データである通信データが通信デバッガ30Xに送信される。そして、ステップS111において、通信デバッガ30Xは、仮想マシン10B宛ての通信データを受信する。そして、ステップS112において、通信デバッガ30Xは、通信データへの種々の情報処理を実行する。具体的には、通信デバッガ30Xは、通信データのパケット解析と、通信ログの保存と、通信パケットの加工とを実行する。
この後、ステップS113において、通信デバッガ30Xは、固定ARPテーブル300を参照して、仮想マシン10Aから受信した仮想マシン10B宛ての通信データを仮想マシン10Bに代理送信する。これにより、ステップS114において、第2の通信データである通信データが通信デバッガ30Xから仮想マシン10Bに送信される。そして、仮想マシン10Bが通信データを受信する。
ここで、固定ARPテーブル300の構成について説明する。図3は、実施の形態1にかかる固定ARPテーブルの構成を示す図である。固定ARPテーブル300では、IPアドレスとMACアドレスとが対応付けられている。
実施の形態1では、固定ARPテーブル300において、仮想マシン10AのIPアドレスである192.168.3.2と、仮想マシン10AのMACアドレスである00-00-5e-7f-56-01とが、対応付けられている。また、固定ARPテーブル300において、仮想マシン10BのIPアドレスである192.168.3.3と、仮想マシン10BのMACアドレスである00-00-5e-7f-56-02とが、対応付けられている。また、固定ARPテーブル300において、通信デバッガ30XのIPアドレスである192.168.3.1と、通信デバッガ30XのMACアドレスである00-00-5e-7f-56-03とが、対応付けられている。
固定ARPテーブル300は、上述した構成となっているので、通信デバッガ30Xのパケット加工部33は、通信データを送信する際に、宛先のIPアドレスに対応するMACアドレスを固定ARPテーブル300から抽出する。そして、パケット加工部33は、抽出したMACアドレスに対して、通信データを送信する。これにより、パケット加工部33は、宛先のIPアドレスを有した仮想マシン10A,10Bに通信データを送信することが可能となる。
なお、可変ARPテーブルは、固定ARPテーブル300と同様の構成を有している。実施の形態1では、仮想マシン10Aが、通信デバッガ30XからのARP応答に基づいて、可変ARPテーブル内で、仮想マシン10BのIPアドレスと、通信デバッガ30XのMACアドレスとを対応付けておく。そして、仮想マシン10Aは、仮想マシン10Bに通信データを送信する際には、仮想マシン10BのIPアドレスに対応するMACアドレスを抽出する。この仮想マシン10Aが抽出するMACアドレスは、通信デバッガ30XのMACアドレスである。そして、仮想マシン10Aは、抽出したMACアドレスに対して、通信データを送信する。これにより、仮想マシン10Aは、仮想マシン10B宛ての通信データを、通信デバッガ30Xに送信することが可能となる。
つぎに、通信デバッガ30Xが保存した通信パケットの送信処理手順について説明する。図4は、実施の形態1にかかるパケット送信処理の処理手順を示すシーケンス図である。ステップS121において、仮想マシン10Aがアプリケーション130Aを操作することによって、ステップS122において、仮想マシン10Aは、仮想マシン10B宛ての通信データを通信デバッガ30Xに送信する。
これにより、ステップS123において、通信デバッガ30Xは、仮想マシン10B宛ての通信データを受信し、ステップS124において、受信した通信データの通信パケットをパケット記憶部35に保存する。さらに、ステップS125において、通信デバッガ30Xは、保存しておいた通信パケットを用いて通信データを生成し、仮想マシン10Aに代わって通信パケットを代理送信する。
これにより、ステップS126において、通信デバッガ30Xからの通信データが仮想マシン10Bに送信される。そして、仮想マシン10Bは、通信デバッガ30Xからの通信データを受信する。この仮想マシン10Bが受信した通信データが、仮想マシン10Aからの通信データに対応している。上述したステップS121からS126の処理によって、仮想マシン10Aから仮想マシン10Bへの通信である仮想マシン間通信が実行される。
通信デバッガ30Xが保存しておいた通信パケットを通信デバッガ30Xが仮想マシン10Bに送信する際には、仮想マシン10A,10Bは、アプリケーション130A,130Bを操作しない。換言すると、通信デバッガ30Xが、保存済みの通信パケットを仮想マシン10Bに送信する場合には、アプリケーション130A,130Bの操作が不要である。通信デバッガ30Xは、送信再現タイミングになると、ステップS131において、パケット記憶部35内に保存してある通信パケットをロードし、ステップS132において、ロードした通信パケットを用いて通信データを生成し、仮想マシン10Bに送信する。
これにより、ステップS133において、通信デバッガ30Xからの通信データが仮想マシン10Bに送信される。そして、仮想マシン10Bは、通信デバッガ30Xからの通信データを受信する。この仮想マシン10Bが受信した通信データが、仮想マシン10Aからの通信データに対応している。上述したステップS131からS133の処理によって、仮想マシン10Aから仮想マシン10Bへの通信である仮想マシン間通信が再現される。
つぎに、通信デバッガ30Xの動作処理手順について説明する。図5は、実施の形態1にかかる通信デバッガの動作処理手順を示すフローチャートである。ここでは、通信デバッガ30Xが、仮想マシン10Aから仮想マシン10Bへの通信データを受信した場合について説明する。
ステップst201において、通信デバッガ30Xの設定部372Xは、応答設定を実行する。このとき、設定部372Xは、ホスト2からのユーザ指示に従って、応答設定を有効設定にする。また、仮想マシン10Aの設定部152Aは、ホスト2からのユーザ指示に従って、応答設定を無効設定にし、仮想マシン10Bの設定部152Bは、ホスト2からのユーザ指示に従って、応答設定を無効設定にする。
このような設定により、仮想マシン10Aから通信デバッガ30XにARP要求が送られてくると、通信デバッガ30XがARP応答を仮想マシン10Aに送信する。これにより、仮想マシン10Aからの通信データは、通信デバッガ30Xに送信される。
そして、ステップst202において、パケット解析部31は、第1の仮想マシンである仮想マシン10Aから通信データを受信する。そして、ステップst203において、パケット解析部31は、通信データを解析する。ステップst204において、パケット解析部31は、ユーザ設定された指定条件と通信データ内の通信パケットとを比較し、通信データ内の通信パケットが指定条件に合致するか否かを確認する。
通信データの通信パケットに含まれるデータ列が、指定条件に設定されたデータ列に合致する場合、すなわち、ステップst204においてYesの場合、パケット解析部31は、通信パケットをログ生成部32に送信する。
そして、ステップst205において、ログ生成部32が、通信データの通信パケットをパケット記憶部35に保存する。さらに、ステップst206において、ログ生成部32が、通信データの通信ログを生成してログ記憶部50に保存する。なお、ログ生成部32は、ステップst205,206の処理の何れを先に実行してもよいし、同時に実行してもよい。
また、ログ生成部32は、パケット解析部31から送信されてきた通信パケットをパケット加工部33に送る。なお、ログ生成部32は、通信パケットをパケット加工部33に送る処理と、ステップst205,206の処理との何れを先に実行してもよいし、同時に実行してもよい。
ステップst207において、パケット加工部33は、置換条件に合致する通信パケットを指定データで置換する。パケット加工部33は、ARPテーブル記憶部36内に保存されている固定ARPテーブル300に従って、通信データを送信する宛先を設定する。ここでのパケット加工部33は、通信データを送信する宛先を仮想マシン10Bに設定する。そして、パケット加工部33は、ステップst208において、第2の仮想マシンである仮想マシン10Bに通信データを送信する。
一方、ステップst204において通信データのパケットに含まれるデータ列が、指定条件に設定されたデータ列に合致しない場合、すなわち、ステップst204においてNoの場合、パケット解析部31は、ステップst208において、第2の仮想マシンである仮想マシン10Bに通信データを送信する。
ステップst208の後、ステップst209において、パケット加工部33は、通信パケットが送信変更条件に合致するか否かを判定する。そして、通信パケットが送信変更条件に合致する場合、すなわち、ステップst209においてYesの場合、パケット加工部33は、ステップst210において、通信データの送信停止、送信再開または送信スキップを行う。このとき、パケット加工部33は、通信パケットが送信停止の送信変更条件に合致する場合には通信データの送信停止を行う。また、パケット加工部33は、通信パケットが送信再開の送信変更条件に合致する場合には送信再開を行い、通信パケットが送信スキップの送信変更条件に合致する場合には送信スキップを行う。
パケット加工部33は、通信データの送信停止、送信再開または送信スキップを行なった後、ステップst211において、送信再現タイミングになったか否かを監視する。また、ステップst209において通信パケットが送信変更条件に合致しない場合、すなわち、ステップst209においてNoの場合、ステップst211において、パケット加工部33は、送信再現タイミングになったか否かを監視する。
送信再現タイミングになっていない場合、すなわち、ステップst211においてNoの場合、パケット加工部33は、送信再現タイミングになるまで仮想マシン10Bへの通信データの送信を行わない。そして、パケット加工部33は、ステップst211において、送信再現タイミングになったか否かの監視を継続する。
送信再現タイミングになると、すなわち、ステップst211においてYesの場合、パケット加工部33は、ステップst212において、パケット記憶部35に保存されている通信パケットを用いて通信データを生成し、第2の仮想マシンである仮想マシン10Bに通信データを送信する。なお、パケット解析部31は、ステップst203において、ARPテーブル記憶部36内に保存されている固定ARPテーブル300を用いて通信データを解析してもよい。この場合、パケット解析部31は、ステップst204において、固定ARPテーブル300に基づいて、通信データ内の通信パケットが指定条件に合致するか否かを確認する。
なお、実施の形態1の通信デバッガ30Xが備える構成要素の機能は、後述するプロセッサ61によって実現されてもよい。図6は、実施の形態1にかかる通信デバッガのハードウェア構成を示す図である。
通信デバッガ30Xにおけるパケット解析部31、ログ生成部32、パケット加工部33、応答部371Xおよび設定部372Xの各機能は、処理回路により実現される。すなわち、通信デバッガ30Xは、ARP応答を送信し、パケットを解析し、ログを生成し、パケットを加工することによって、通信デバッグするための処理回路を備える。処理回路は、メモリ62に格納されるプログラムを実行するプロセッサ(CPU(Central Processing Unit)、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、DSP(Digital Signal Processor)ともいう)61である。
パケット解析部31、ログ生成部32、パケット加工部33、応答部371Xおよび設定部372Xの機能は、ソフトウェアまたはファームウェアで実現されてもよいし、ソフトウェアとファームウェアとの組み合わせによって実現されてもよい。ソフトウェアまたはファームウェアは、プログラムとして記述され、メモリ62に格納される。処理回路は、メモリ62に記憶されたプログラムを読み出して実行することにより、各部の犠能を実現する。すなわち、通信デバッガ30Xは、処理回路により実行されるときに、パケットを解析するステップ、ログを生成するステップ、パケットを加工するステップが結果的に実行されることになるプログラムを格納するためのメモリ62を備える。また、これらのプログラムは、パケット解析部31、ログ生成部32、パケット加工部33の手順または方法をコンピュータに実行させるものであるともいえる。
このように、プロセッサ61が実行するプログラムは、コンピュータで実行可能な、通信デバッグを行うための複数の命令を含むコンピュータ読取り可能かつ非遷移的な(non-transitory)記録媒体を有するコンピュータプログラムプロダクトである。プロセッサ61が実行するプログラムは、複数の命令が通信デバッグを行うことをコンピュータに実行させる。
ここで、メモリ62は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM)といった不揮発性または揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD(Digital Versatile Disc)が該当する。
このように、情報処理装置1は、仮想マシン10Bの設定部152Bが応答設定を無効設定にし、通信デバッガ30Xの設定部372Xが応答設定を有効設定にすることにより、仮想マシン10A,10B間の通信データを、強制的に通信デバッガ30Xを経由させることができる。また、情報処理装置1は、既存のインターネットプロトコルで実現されている。これにより、情報処理装置1は、特別なハードウェアを用いることなく簡易な構成で、通信データをデバッグすることができる。また、情報処理装置1は、仮想制御部であるハイパーバイザ40自体が仮想マシン10A,10Bとの間の情報を直接中継する必要がない。すなわち、情報処理装置1は、強制的に通信デバッガ30Xを経由させる為の機能、すなわち通信デバッガ30Xが仮想マシン10A,10BのAPR応答を止め、仮想マシン10A,10Bの代わりに通信デバッガ30Xのアドレスを回答する仕組みを備えている。これにより、情報処理装置1は、仮想マシン10A,10B間の情報を、強制的に通信デバッガ30Xを経由させている。また、情報処理装置1は、仮想マシン10A,10Bによって抽象化されたメモリ領域に直接アクセスする必要がない。このため、デバッグの実現コストを抑制できるとともに、デバッグプログラムの実装難度を下げることができる。また、外部から仮想マシン10A,10B内のメモリ領域にアクセスする必要がないので、OS標準の設定変更でデバッグを実現できる。
また、通信デバッガ30Xは、通信パケットを解析し、指定条件に合致する通信パケットを通信ログに含めて保存するので、必要な通信パケットを保存することができる。これにより、情報処理装置1のディスク容量であるログ記憶部50のストレージ容量を削減することができるとともに、通信ログの可読性が向上する。
また、通信デバッガ30Xは、通信パケットを解析し、通信パケットをユーザによって指定されたデータで書き換える。これにより、仮想マシン10A,10B上でデバッグプログラムを動作させることなく、通信デバッガ30Xが通信データを変更することができるので、デバッグが容易になる。また、通信デバッガ30Xは、通信データの内容の書き換えを容易に行うことが可能になるとともに、送信停止、送信再開、送信スキップといった制御を容易に行うことが可能になる。また、デバッグ環境の構築コストを抑制することが可能になる。
また、通信デバッガ30Xは、保存した通信パケットを任意のタイミングで仮想マシン10A,10Bに送信する。これにより、情報処理装置1は、仮想マシン10A,10B上のアプリケーション130A,130Bを操作することなく、容易に過去の通信状態を再現できる。
このように、実施の形態1では、仮想マシン10AからのARP要求に対して仮想マシン10Bは応答せず、通信デバッガ30Xが仮想マシン10AにARP応答を送信するので、仮想マシン10A,10B間の通信データを、通信デバッガ30Xを経由させることができる。したがって、簡易な構成で仮想マシン10A,10B間の情報をロギングすることが可能となる。また、簡易な構成で仮想マシン10A,10B間の通信内容をデバッグすることが可能となる。
また、情報処理装置1は、複数の仮想マシン10A,10Bを備えており、通信デバッガ30Xが複数の仮想マシン10A,10Bに接続されているので、通信デバッガ30Xは、仮想マシン10A,10B間の通信データを容易にデバッグすることが可能となる。
また、通信デバッガ30Xは、通信データに含まれる通信パケットがユーザからの指定条件に合致する場合に、通信データをデバッグするので、所望の通信データに対して容易にデバッグすることが可能となる。
また、通信デバッガ30Xは、通信パケットが指定条件に合致する場合に、通信データの通信ログを生成して保存しておくので、所望の通信ログを保存することができる。したがって、ログ記憶部50のストレージ容量を削減することが可能となる。
また、通信デバッガ30Xは、通信パケットが指定条件に合致する場合に、通信パケットを保存するので、所望のパケットを保存することができる。したがって、パケット記憶部35のストレージ容量を削減することが可能となる。
また、通信デバッガ30Xは、通信パケットが指定条件に合致する場合に、通信パケット内のデータをユーザから指定されたデータに置換するので、所望の通信パケット内のデータを所望のデータに置換することが可能となる。
また、通信デバッガ30Xは、パケット記憶部35で記憶されている通信パケットから通信データを生成して仮想マシン10Bに送信するので、所望の通信データを容易に再送信することが可能となる。また、通信デバッガ30Xは、ルートOS20に搭載されているので、情報処理装置1の構成を簡易な構成とすることができる。
実施の形態2.
つぎに、図7を用いて実施の形態2について説明する。実施の形態2では、設定部152A,152Bによる応答設定を、後述する通信デバッガ30Yが、仮想マシン10A,10Bに指示する。
図7は、実施の形態2にかかる通信デバッガの機能構成を示す図である。図7の各構成要素のうち図1に示す実施の形態1の通信デバッガ30Xと同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。なお、実施の形態2にかかる通信デバッガ30Yは、通信デバッガ30Xと同様のハードウェア構成を有している。
通信デバッガ30Yは、通信デバッガ30Xと同様に、仮想マシン10A,10Bの通信のバグまたは欠陥の修正を支援するソフトウェアプログラムである。通信デバッガ30Yは、図1に示した情報処理装置1内において通信デバッガ30Xと同様の位置に配置される。
通信デバッガ30Yは、通信デバッガ30Xが有する構成要素に加えて、仮想マシン10A,10Bの設定部152A,152Bによる応答設定を有効設定または無効設定に切替えさせる切替指示部38を有している。
切替指示部38は、ユーザからの指示に従って、設定部152A,152Bに応答設定を指示する。また、切替指示部38は、通信デバッガ30Yの設定部372Yに応答設定を指示する。設定部372Yは、設定部372Xと同様の機能であり、応答部371Yは、応答部371Xと同様の機能である。
なお、以下の説明では、仮想マシン10A,10Bにおける応答設定の切替えをマシン切替という場合がある。また、通信デバッガ30Yにおける応答設定の切替えをデバッガ切替という場合がある。
切替指示部38は、ドライバ43に接続されており、仮想マシン10A,10Bに対してマシン切替を設定する際には、マシン切替の切替指示である第1の切替指示をドライバ43に送る。この第1の切替指示は、設定部152A,152Bにおける応答設定を有効設定とするか無効設定とするかを指定する指示である。
切替指示部38が、第1の切替指示をドライバ43に送ると、第1の切替指示が、仮想マシン10A,10Bに送信される。なお、切替指示部38は、第1の切替指示を仮想マシン10A,10Bの両方に送信してもよいし、仮想マシン10A,10Bの何れか一方に送信してもよい。
また、切替指示部38は、設定部372Yに接続されており、通信デバッガ30Yに対してマシン切替を設定する際には、デバッガ切替の切替指示である第2の切替指示を設定部372Yに送る。この第2の切替指示は、設定部372Yにおける応答設定を有効設定とするか無効設定とするかを指定する指示である。切替指示部38が、第2の切替指示を設定部372Yに送ると、設定部372Yは、第2の切替指示に従って、応答設定を有効設定または無効設定にする。
切替指示部38は、仮想マシン10A,10Bに対して有効設定を指示する場合には、設定部372Yに対して無効設定を指示する。これにより、仮想マシン10Bの設定部152Bが応答設定を有効設定にしている場合には、仮想マシン10AからのARP要求に対して、仮想マシン10Bが仮想マシン10AにARP応答を送信し、通信デバッガ30YはARP応答を送信しない。同様に、仮想マシン10Aの設定部152Aが応答設定を有効設定にしている場合には、仮想マシン10BからのARP要求に対して、仮想マシン10Aが仮想マシン10BにARP応答を送信し、通信デバッガ30YはARP応答を送信しない。
一方、切替指示部38は、仮想マシン10A,10Bに対して無効設定を指示する場合には、設定部372Yに対して有効設定を指示する。これにより、仮想マシン10AからのARP要求に対して、応答部371Yが仮想マシン10AにARP応答を送信する場合には、仮想マシン10BはARP応答を送信しない。同様に、仮想マシン10BからのARP要求に対して、応答部371Yが仮想マシン10BにARP応答を送信する場合には、仮想マシン10AはARP応答を送信しない。このように、仮想マシン10A,10Bにおけるマシン切替と通信デバッガ30Yにおけるデバッガ切替とは、リンクしている。
なお、仮想マシン10A,10Bの設定部152A,152Bは、通信デバッガ30Yにおけるデバッガ切替を検知し、検知結果に基づいてマシン切替を行なってもよい。また、通信デバッガ30Yの設定部372Yは、仮想マシン10A,10Bにおけるマシン切替を検知し、検知結果に基づいてデバッガ切替を行なってもよい。この場合、通信デバッガ30Yの切替指示部38は不要となる。
また、仮想マシン10A,10Bの応答部151A,151Bは、マシン切替の状態を通信デバッガ30Yの設定部372Yに通知してもよい。この場合、設定部372Yは、応答部151A,151Bからの通知の内容に従ってデバッガ切替を行なう。この場合も、通信デバッガ30Yの切替指示部38は不要となる。
また、仮想マシン10A,10Bは、通信デバッガ30Yから独立してマシン切替を実行してもよい。また、通信デバッガ30Yは、仮想マシン10A,10Bから独立してデバッガ切替を実行してもよい。換言すると、仮想マシン10A,10Bが行うマシン切替と、切替指示部38が行うデバッガ切替とは、独立して実行されてもよい。この場合も、通信デバッガ30Yの切替指示部38は不要となる。
このように、実施の形態2では、通信デバッガ30Yが切替指示部38を備えているので、通信デバッガ30Yが仮想マシン10A,10Bに、応答設定の設定指示を送ることが可能となる。
また、切替指示部38は、設定部152A,152Bに有効設定を指示した場合には、設定部372Yに無効設定を指示するので、複数のARP応答が送信されることを防止することが可能となる。
また、設定部372Yは、仮想マシン10Bが、応答設定を有効設定した際に、有効設定を検知して、応答設定を無効設定にするので、複数のARP応答が送信されることを防止することが可能となる。
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
1 情報処理装置、2 ホスト、10 仮想基盤、10A,10B 仮想マシン、12A,12B,42 仮想ネットワークカード、20 ルートOS、30X,30Y 通信デバッガ、31 パケット解析部、32 ログ生成部、33 パケット加工部、34 設定記憶部、35 パケット記憶部、36 ARPテーブル記憶部、38 切替指示部、40 ハイパーバイザ、50 ログ記憶部、151A,151B,371X,371Y 応答部、152A,152B,372X,372Y 設定部、300 固定ARPテーブル。

Claims (11)

  1. 外部にアドレス要求を送信し、前記アドレス要求の応答として受信した送信先アドレスに対し通信データを送信する機能を有する複数の仮想マシンと、
    前記仮想マシンと他の仮想マシンとの間の第1の通信データをロギングする通信ロギング部と
    を備え、
    前記通信ロギング部は、前記仮想マシンからアドレス要求を受けると、自己のアドレスを送信先アドレスとして前記仮想マシンに送信し、前記仮想マシンから送信された通信データをロギングする
    ことを特徴とする情報処理装置。
  2. 前記仮想マシンは、
    アドレスを取得するための前記他の仮想マシンからのアドレス要求に対して前記仮想マシンのアドレスである第1のアドレスを送信するか否かの第1の設定を行う第1の設定部と、
    前記第1の設定が無効設定である場合に前記アドレス要求を受信しても前記第1のアドレスを送信せず、前記第1の設定が有効設定である場合に前記アドレス要求を受信すると前記第1のアドレスを送信する第1の応答部と、
    を有し、
    前記通信ロギング部は、
    前記アドレス要求に対して前記通信ロギング部のアドレスである第2のアドレスを送信するか否かの第2の設定を行う第2の設定部と、
    前記第2の設定が無効設定である場合に前記アドレス要求を受信しても前記第2のアドレスを送信せず、前記第2の設定が有効設定である場合に前記アドレス要求を受信すると前記第2のアドレスを送信する第2の応答部と、
    を有し、
    前記第2の設定部は、前記第1の設定が無効設定される場合に、前記第2の設定を有効設定にして、前記第2の応答部が前記アドレス要求の要求元である前記他の仮想マシンに前記第2のアドレスを送信する、
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記通信ロギング部は、前記第1の設定を前記第1の設定部に指示する切替指示部をさらに有する、
    ことを特徴とする請求項2に記載の情報処理装置。
  4. 前記第2の設定部は、前記第1の設定部が前記第1の設定を無効設定にした際に、当該無効設定を検知し、前記第2の設定を有効設定にする、
    ことを特徴とする請求項3に記載の情報処理装置。
  5. 前記他の仮想マシンをさらに備え、
    前記他の仮想マシンは、前記第2のアドレスを受信すると、前記第2のアドレスを宛先に設定して前記第1の通信データを送信し、
    前記通信ロギング部は、前記第1の通信データに対応する第2の通信データを前記仮想マシンに送信する、
    ことを特徴とする請求項2から4のいずれか1つに記載の情報処理装置。
  6. 前記通信ロギング部は、
    前記第1の通信データに含まれる通信パケットがユーザからの指定条件に合致するか否かを解析するパケット解析部をさらに有し、
    前記通信パケットが前記指定条件に合致する場合に、前記第1の通信データにデータ処理を実行する、
    ことを特徴とする請求項5に記載の情報処理装置。
  7. 前記通信ロギング部は、
    前記通信パケットが前記指定条件に合致する場合に、前記第1の通信データの通信ログを生成するログ生成部と、
    前記通信ログを記憶するログ記憶部と、
    をさらに有する、
    ことを特徴とする請求項6に記載の情報処理装置。
  8. 前記通信ロギング部は、
    前記通信パケットが前記指定条件に合致する場合に、前記第1の通信データの通信パケットを記憶するパケット記憶部をさらに有し、
    前記第2の通信データを再送信するタイミングである送信再現タイミングになると、前記パケット記憶部で記憶されている前記通信パケットを加工して前記第2の通信データを生成し、生成した前記第2の通信データを前記仮想マシンに送信するパケット加工部をさらに有する、
    ことを特徴とする請求項6に記載の情報処理装置。
  9. 前記通信パケットが前記指定条件に合致し、且つ前記通信パケットが置換の条件である置換条件に合致する場合に、前記第1の通信データを前記ユーザから指定されたデータに置換して前記第2の通信データを生成し、生成した前記第2の通信データを前記仮想マシンに送信するパケット加工部をさらに有する、
    ことを特徴とする請求項6に記載の情報処理装置。
  10. 前記通信パケットが前記指定条件に合致し、且つ前記通信パケットが、通信処理を変更する条件である送信変更条件に合致する場合に、前記第2の通信データの送信停止、送信再開または送信スキップを行うパケット加工部をさらに有する、
    ことを特徴とする請求項6に記載の情報処理装置。
  11. 仮想マシン以外の他の仮想マシンが、前記仮想マシンと通信データをロギングする通信ロギング部と、にアドレスを取得するためのアドレス要求を送信する第1の送信ステップと、
    前記通信ロギング部が、前記通信ロギング部のアドレスを含んだアドレス応答を前記他の仮想マシンに送信する第2の送信ステップと、
    前記他の仮想マシンが、前記通信ロギング部の前記アドレスに第1の通信データを送信する第3の送信ステップと、
    前記通信ロギング部が、前記第1の通信データに対応する第2の通信データを前記仮想マシンに送信する第4の送信ステップと、
    を含むことを特徴とする情報処理方法。
JP2018508246A 2017-03-31 2017-03-31 情報処理装置および情報処理方法 Active JP6333498B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/013807 WO2018179413A1 (ja) 2017-03-31 2017-03-31 情報処理装置および情報処理方法

Publications (2)

Publication Number Publication Date
JP6333498B1 true JP6333498B1 (ja) 2018-05-30
JPWO2018179413A1 JPWO2018179413A1 (ja) 2019-04-11

Family

ID=62238888

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018508246A Active JP6333498B1 (ja) 2017-03-31 2017-03-31 情報処理装置および情報処理方法

Country Status (4)

Country Link
US (1) US10715433B2 (ja)
JP (1) JP6333498B1 (ja)
CN (1) CN110023908B (ja)
WO (1) WO2018179413A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7234905B2 (ja) * 2019-11-20 2023-03-08 横河電機株式会社 情報処理装置及びアドレス重複管理方法
CN113055217B (zh) * 2019-12-28 2023-03-24 浙江宇视科技有限公司 一种设备离线修复方法及装置
JP7318745B2 (ja) * 2020-01-23 2023-08-01 日本電信電話株式会社 最適化エンジン、最適化方法、及びプログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008526109A (ja) * 2004-12-23 2008-07-17 ソレラ ネットワークス インコーポレイテッド ネットワークパケットキャプチャ分散ストレージシステムの方法及び機器
JP2013175075A (ja) * 2012-02-27 2013-09-05 Fujitsu Ltd データ収集方法、情報処理システムおよびプログラム
JP2014216991A (ja) * 2013-04-30 2014-11-17 株式会社日立製作所 分析サーバ及び分析方法
JP2016012801A (ja) * 2014-06-27 2016-01-21 富士通株式会社 通信装置、通信システム及び通信装置制御方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7245587B2 (en) * 2000-12-20 2007-07-17 Inmon Corporation Method to associate input and output interfaces with packets read from a mirror port
US7283534B1 (en) * 2002-11-22 2007-10-16 Airespace, Inc. Network with virtual “Virtual Private Network” server
US7464183B1 (en) * 2003-12-11 2008-12-09 Nvidia Corporation Apparatus, system, and method to prevent address resolution cache spoofing
JP4889638B2 (ja) * 2005-07-14 2012-03-07 パナソニック株式会社 検証方法、検証プログラム、記録媒体、情報処理装置、集積回路
CN101605084B (zh) * 2009-06-29 2011-09-21 北京航空航天大学 基于虚拟机的虚拟网络报文处理方法和系统
US8370933B1 (en) * 2009-11-24 2013-02-05 Symantec Corporation Systems and methods for detecting the insertion of poisoned DNS server addresses into DHCP servers
JP2011145963A (ja) 2010-01-18 2011-07-28 Canon Inc 複合機能デバイス、制御方法、及び、プログラム
US8996720B2 (en) * 2010-03-16 2015-03-31 Brocade Communications Systems, Inc. Method and apparatus for mirroring frames to a remote diagnostic system
JP5696724B2 (ja) * 2010-05-27 2015-04-08 富士通株式会社 中継装置,中継システム,中継方法,プログラム,及びプログラムを記録したコンピュータ読み取り可能な記録媒体
US8767737B2 (en) * 2011-11-30 2014-07-01 Industrial Technology Research Institute Data center network system and packet forwarding method thereof
EP2809035A4 (en) 2012-01-27 2015-06-03 Fujitsu Ltd INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING SYSTEM, COMMUNICATION DATA OUTPUT METHOD, AND COMMUNICATION DATA OUTPUT PROGRAM
WO2013114620A1 (ja) 2012-02-03 2013-08-08 富士通株式会社 仮想マシン制御プログラム、仮想マシン制御方法および情報処理装置
JP5930181B2 (ja) 2012-03-21 2016-06-08 日本電気株式会社 通信制御装置、通信制御方法および通信制御プログラム
US9516451B2 (en) * 2012-04-10 2016-12-06 Mcafee, Inc. Opportunistic system scanning
US9088506B2 (en) * 2012-09-11 2015-07-21 Avaya, Inc. System and method for data stream mirroring
US9019978B2 (en) * 2012-10-05 2015-04-28 Cisco Technology, Inc. Port mirroring at a network interface device
US9774517B2 (en) * 2012-11-26 2017-09-26 EMC IP Holding Company LLC Correlative monitoring, analysis, and control of multi-service, multi-network systems
US9331915B1 (en) * 2013-01-25 2016-05-03 Amazon Technologies, Inc. Dynamic network traffic mirroring
US9516054B2 (en) * 2014-04-14 2016-12-06 Trap Data Security Ltd. System and method for cyber threats detection
US9860309B2 (en) * 2014-12-22 2018-01-02 Vmware, Inc. Hybrid cloud network monitoring system for tenant use
JP2016162324A (ja) * 2015-03-04 2016-09-05 富士通株式会社 情報処理システム、制御プログラム及び制御方法
JP6582554B2 (ja) * 2015-05-26 2019-10-02 富士通株式会社 シンクライアントシステム、サーバ装置、ポリシー管理装置、制御方法及び制御プログラム
JP2017101974A (ja) * 2015-11-30 2017-06-08 株式会社東芝 データロガーおよび該データロガーに適用されるプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008526109A (ja) * 2004-12-23 2008-07-17 ソレラ ネットワークス インコーポレイテッド ネットワークパケットキャプチャ分散ストレージシステムの方法及び機器
JP2013175075A (ja) * 2012-02-27 2013-09-05 Fujitsu Ltd データ収集方法、情報処理システムおよびプログラム
JP2014216991A (ja) * 2013-04-30 2014-11-17 株式会社日立製作所 分析サーバ及び分析方法
JP2016012801A (ja) * 2014-06-27 2016-01-21 富士通株式会社 通信装置、通信システム及び通信装置制御方法

Also Published As

Publication number Publication date
CN110023908A (zh) 2019-07-16
CN110023908B (zh) 2020-12-08
US20190363982A1 (en) 2019-11-28
JPWO2018179413A1 (ja) 2019-04-11
US10715433B2 (en) 2020-07-14
WO2018179413A1 (ja) 2018-10-04

Similar Documents

Publication Publication Date Title
US11146665B2 (en) Methods and apparatus for sharing and arbitration of host stack information with user space communication stacks
JP5943861B2 (ja) リモートデバッグシステム
JP6333498B1 (ja) 情報処理装置および情報処理方法
CN108351859B (zh) 用于端点设备的直接存储器存取
US20160212237A1 (en) Management server, communication system and path management method
US9106417B2 (en) Communication apparatus for transmission protocol processing and reception protocol processing
US8938516B1 (en) Switch provided failover
JP5018969B2 (ja) 通信制御プログラム、通信制御装置、通信制御システムおよび通信制御方法
JP4964666B2 (ja) 冗長化された通信経路を切り替える計算機、プログラム及び方法
US20190089675A1 (en) Network address translation device, setting requesting device, communication system, communication method and storage medium storing program
US20150271060A1 (en) Communication apparatus including a plurality of network interfaces, method of controlling communication apparatus, and storage medium
JP5655533B2 (ja) 情報処理装置の制御方法、情報処理装置、及び情報処理装置の制御プログラム
JP6513324B1 (ja) 情報処理装置、方法、及びプログラム
US7313600B1 (en) Arrangement for emulating an unlimited number of IP devices without assignment of IP addresses
CN116668346A (zh) 网络协议一致性的测试方法和系统、装置及电子设备
WO2024024280A1 (ja) 通信処理装置および通信方法
WO2006123456A1 (ja) パケット処理装置、通信システム、パケット処理方法、および当該方法を実行させるプログラム
JP7230593B2 (ja) 中継装置及びプログラム
JP6014068B2 (ja) 中継装置及び中継方法、並びにコンピュータ・プログラム
CN114500577A (zh) 数据访问系统及数据访问方法
CN114268669A (zh) 访问处理方法及系统
JP6373245B2 (ja) 情報処理装置、接続デバイス識別方法およびプログラム
JP7237176B2 (ja) 通信システム、電子制御装置及び通信方法
CN118660004B (zh) 网络线路切换方法、装置、设备及存储介质
JP2019121910A (ja) マルウェア検査支援プログラム、マルウェア検査支援方法および通信装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180215

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180215

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20180215

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20180320

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180327

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180424

R150 Certificate of patent or registration of utility model

Ref document number: 6333498

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250