信息处理装置及信息处理方法与流程

文档序号:18190635发布日期:2019-07-17 05:34阅读:124来源:国知局
信息处理装置及信息处理方法与流程

本发明涉及进行日志记录(logging)的信息处理装置及信息处理方法。



背景技术:

当前,作为在物理性的计算机中,实现多个通过软件对计算机的硬件结构进行虚拟化的所谓的虚拟机,利用与使物理性的计算机动作的os(operatingsystem)独立的os并行执行这些虚拟机的技术,开发了管理程序(hypervisor)。该管理程序创建出如计算机的硬件一样工作的虚拟机,在虚拟机上运行各种os。

作为使用了管理程序的装置,存在专利文献1的通信装置。专利文献1的通信装置在管理程序上具有对虚拟机间的通信数据进行捕获的捕获处理部。而且,捕获处理部通过取得从第1虚拟机向第2虚拟机传输的通信数据而保存于存储部,由此进行通信数据的日志记录。

专利文献1:日本特开2016-12801号公报



技术实现要素:

但是,上述现有技术即专利文献1的通信装置对经由第1虚拟机和第2虚拟机间的通信路径传输的通信数据进行捕获,因此,为了进行捕获需要专用的硬件。另外,专利文献1的通信装置存在以下问题,即,捕获装置的存储器区域通过虚拟机而抽象化,因此,虚拟机访问存储器区域所用的机制变复杂。

本发明就是鉴于上述课题而提出的,目的在于得到能够以简易的结构对虚拟机间的通信数据进行日志记录的信息处理装置。

为了解决上述课题而达成目的,本发明的信息处理装置的特征在于,具备:多个虚拟机,其具有向外部发出通信数据的地址请求,针对作为地址请求的响应而接收到的发送目标地址发送通信数据的功能;以及通信日志记录部,其对虚拟机和其他虚拟机之间的第1通信数据进行日志记录,通信日志记录部如果从虚拟机接收到地址请求,则将自己的地址作为发送目标地址向虚拟机发送,对从虚拟机发送来的通信数据进行日志记录。

发明的效果

本发明涉及的信息处理装置获得如下效果,即,能够以简易的结构对虚拟机间的通信内容进行日志记录。

附图说明

图1是表示本发明的实施方式1涉及的信息处理装置的结构的框图。

图2是表示实施方式1涉及的数据收发处理的处理流程的时序图。

图3是表示实施方式1涉及的固定arp(addressresolutionprotocol:arp)表的结构的图。

图4是表示实施方式1涉及的数据包发送处理的处理流程的时序图。

图5是表示实施方式1涉及的通信调试器的动作处理流程的流程图。

图6是表示实施方式1涉及的通信调试器的硬件结构的图。

图7是表示实施方式2涉及的通信调试器的功能结构的图。

具体实施方式

下面,基于附图,详细地说明本发明的实施方式涉及的信息处理装置以及信息处理方法。此外,本发明不受这些实施方式限定。

实施方式1

图1是表示本发明的实施方式1涉及的信息处理装置的结构的框图。实施方式1的信息处理装置1是应用于工业用计算机(ipc:industrialpersonalcomputer)的计算机。信息处理装置1构成为能够与未图示的多个控制器连接。信息处理装置1向多个控制器发送各种信息,并且从多个控制器接收各种信息。与信息处理装置1连接的控制器是对机器人等被控制设备进行控制的plc(programmablelogiccontroller:可编程逻辑控制器)。

如图1所示,信息处理装置1与作为外部装置的主机2连接,接收由主机2接收到的来自用户的指示。信息处理装置1按照从主机2发送来的信息执行各种处理。在用户执行对信息处理装置1的设定的情况下,向主机2输入针对信息处理装置1的指示。由此,主机2向信息处理装置1发送来自用户的指示数据。

信息处理装置1安装有已有的ip(internetprotocol:互联网协议)。信息处理装置1具备:作为被虚拟化的平台的虚拟平台10;以及对虚拟平台10进行控制的根os20。虚拟平台10搭载有相对于根os20独立地动作的虚拟机10a、10b。

实施方式1的信息处理装置1经由后述的通信调试器30x进行在虚拟机10a、10b间进行的通信数据的收发。而且,通信调试器30x作为通信日志记录部执行对通信数据进行捕获的处理即日志记录,在满足规定的条件的情况下,对所日志记录的通信数据执行例如通信数据包的解析处理。即,通信调试器30x具有对虚拟机10a、10b间的通信数据进行日志记录的日志记录部的功能和进行调试处理的通信调试部的功能。此外,信息处理装置1在不需要对通信数据进行日志记录的情况下,也能够不经由通信调试器30x而是在虚拟机10a、10b间直接执行通信数据的收发。

另外,在实施方式1中,将通信调试器30x在满足条件的情况下对通信数据执行的处理称为通信调试,作为通信调试,例如存在通信数据包的解析、通信数据包的置换、通信数据包的通信控制、通信数据包的保存、通信日志的保存、通信数据的重新发送或通信数据包的加工。

而且,虚拟机10a、10b在管理程序40上运行。虚拟机10a具备在虚拟机10a上运行的os即子os11a。另外,虚拟机10a具备在进行与根os20间的通信时使用的虚拟网卡12a。另外,虚拟机10a具有:响应部151a,其针对地址的请求而回答地址;以及设定部152a,其进行是否使响应部151a发送地址的设定。

设定部152a进行针对arp(addressresolutionprotocol)请求是否发送虚拟机10a的地址的设定即响应设定,该arp请求是用于取得地址的、来自虚拟机10b的地址请求。响应部151a在设定部152a作出的响应设定为无效设定的情况下,即使接收到arp请求也不发送虚拟机10a的地址,在设定部152a作出的响应设定为有效设定的情况下,如果接收到arp请求则发送虚拟机10a的地址。这样,通过由设定部152a将针对arp请求的响应设定设为无效设定,由此,响应部151a针对arp请求对地址的回答进行限制。响应部151a按照与用户输入的指示相应的指示数据,执行有效设定和无效设定的切换。

子os11a具备:应用130a,其在子os11a上执行各种数据诊断等处理;以及驱动模块140a,其使虚拟网卡12a动作。应用130a是通过软件程序实现的功能部,该软件程序直接执行用户所请求的信息处理。驱动模块140a是通过用于使虚拟网卡12a动作的软件程序实现的功能部。

如果从驱动模块140a发送来由应用130a生成的数据,则虚拟网卡12a将由应用130a生成的数据向根os20发送。另外,虚拟网卡12a将从根os20发送来的数据向驱动模块140a发送。

虚拟机10b具有与虚拟机10a相同的结构。即,虚拟机10b具备在虚拟机10b上运行的子os11b。而且,子os11b具有与子os11a相同的功能。具体而言,子os11b具备:应用130b,其具有与应用130a相同的功能;以及驱动模块140b,其具有与驱动模块140a相同的功能。

另外,虚拟机10b具备与虚拟网卡12a具有相同功能的虚拟网卡12b。另外,虚拟机10b具有:响应部151b,其具有与响应部151a相同的功能;以及设定部152b,其具有与设定部152a相同的功能。

在信息处理装置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具备:管理程序40,其并行地执行多个不同的os即子os11a、11b;以及通信调试器30x,其执行虚拟机10a、10b的通信调试。另外,根os20具备:虚拟网卡42,其在进行管理程序40和通信调试器30x间的通信时使用;以及驱动模块43,其使虚拟网卡42动作。另外,根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,其存储用于判断是否对通信数据包进行解析的指定条件;数据包存储部35,其对由日志生成部32生成的通信数据包进行存储;以及arp表存储部36,其对后述的固定arp表300(图3)进行存储。此外,固定arp表300是表示虚拟的ip地址和mac地址的映射关系的表。

另外,通信调试器30x具有:响应部371x,其针对地址的请求而回答地址;以及设定部372x,其进行是否使响应部371x发送地址的设定。

设定部372x进行针对arp请求是否发送通信调试器30x的地址的响应设定,该arp请求是用于取得地址的、来自虚拟机10b的地址请求。响应部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(mediaaccesscontrol)地址的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跳过通信数据的发送。

另外,数据包加工部33将在数据包存储部35内保存的通信数据包在任意的定时(timing)向虚拟机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进行存储。如图3所示,固定arp表300是表示包含虚拟机10a、10b的虚拟lan(localareanetwork)内的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在发送通信数据时,从固定arp表300提取出与作为目标的ip地址对应的mac地址。然后,数据包加工部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的通信数据的发送。而且,在步骤st211中,数据包加工部33继续监视是否到达了发送重现定时。

如果到达了发送重现定时,即,在步骤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(centralprocessingunit)、中央处理装置、处理装置、运算装置、微处理器、微型计算机、dsp(digitalsignalprocessor))61。

数据包解析部31、日志生成部32、数据包加工部33、响应部371x以及设定部372x的功能可以由软件或固件实现,也可以由软件和固件的组合实现。软件或固件是作为程序记述的,储存于存储器62。处理电路通过读取、执行存储于存储器62的程序,实现各部分的功能。即,通信调试器30x具备用于储存程序的存储器62,该程序在由处理电路执行时最终使得解析数据包的步骤、生成日志的步骤、加工数据包的步骤得以执行。另外,这些程序也可以说是使计算机执行数据包解析部31、日志生成部32、数据包加工部33的流程或方法。

这样,处理器61执行的程序是计算机程序产品,该计算机程序产品包含能够由计算机执行的、用于进行通信调试的多个指令并且具有计算机可读取且非暂时性(non-transitory)的记录介质。处理器61执行的程序使计算机执行多个指令进行通信调试。

这里,存储器62是例如ram(randomaccessmemory)、rom(readonlymemory)、闪存、eprom(erasableprogrammablerom)、eeprom(electricallyerasableprogrammablerom)这样的非易失性或易失性的半导体存储器、磁盘、软盘、光盘、紧凑盘、迷你盘、dvd(digitalversatiledisc)。

这样,虚拟机10b的设定部152b将响应设定设为无效设定,通信调试器30x的设定部372x将响应设定设为有效设定,由此,信息处理装置1能够强制使虚拟机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中,虚拟机10b不对来自虚拟机10a的arp请求作出响应,通信调试器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中,后述的通信调试器30y将设定部152a、152b作出的响应设定向虚拟机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数据包存储部,36arp表存储部,38切换指示部,40管理程序,50日志存储部,151a、151b、371x、371y响应部,152a、152b、372x、372y设定部,300固定arp表。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1