(57)【要約】【課題】ネットワークの管理を容易にする技術を提供する。【解決手段】情報処理装置２０００は、取得部２０２０及び推定部２０４０を有する。取得部２０２０は状態情報を取得する。状態情報は、複数のネットワークインタフェース１２０それぞれが、データの送受信を行える状態（オンライン）であるか否かを示す。推定部２０４０は、「第１のネットワークインタフェースがオンラインでなく、かつ第２のネットワークインタフェースがオンラインである」という場合に、第１のネットワークインタフェースが仮想ネットワークインタフェースであると推定する。【選択図】図３
2016201691.tif 000002
【特許請求の範囲】
【請求項１】
複数のネットワークインタフェースそれぞれについて、データの送受信を行える状態であるか否かを示す状態情報を取得する取得手段と、
第１の前記ネットワークインタフェースがデータの送受信を行えない状態であり、かつ第１の前記ネットワークインタフェースとは異なる第２の前記ネットワークインタフェースがデータの送受信を行える状態である場合に、第１の前記ネットワークインタフェースは仮想的なネットワークインタフェースであると推定する推定手段と、を有する情報処理装置。
【請求項２】
前記取得手段は、異なる複数の時点それぞれにおける前記状態情報を取得し、
前記推定手段は、異なる複数の時点それぞれにおける前記状態情報を用いて、第１の前記ネットワークインタフェースがデータの送受信を行えない状態になったことを検出する請求項１に記載の情報処理装置。
【請求項３】
前記状態情報は、レイヤ２スイッチが有する MAC（Media Access Control）アドレステーブルである、請求項１に記載の情報処理装置。
【請求項４】
MAC（Media Access Control）アドレスと IP（Internet Protocol）アドレスとの対応付けを示すアドレス情報を取得する取得手段と、
複数のIPv4（IP version 4）アドレス又は複数の同一スコープの IPv6（IP version 6）アドレスが割り当てられている MAC アドレスを持つネットワークインタフェースが、物理ネットワークインタフェースであると推定する推定手段と、
を有する情報処理装置。
【請求項５】
前記アドレス情報は ARP（Address Resolution Protocol）テーブル又は Neighbor Cache  である請求項４に記載の情報処理装置。
【請求項６】
複数のネットワークインタフェースそれぞれにおいて送受信されるデータのトラフィック量に関するトラフィック情報を取得する取得手段と、
各前記ネットワークインタフェースのトラフィック量に基づいて、各前記ネットワークインタフェースが、物理ネットワークインタフェースと仮想ネットワークインタフェースのどちらであるかを推定する推定手段と、を有する情報処理装置。
【請求項７】
前記推定手段は、トラフィック量が最も多いネットワークインタフェース又はトラフィック量が他のトラフィック量と比較して有意に多いネットワークインタフェースが、物理ネットワークインタフェースであると推定する、請求項６に記載の情報処理装置。
【請求項８】
トラフィック量に基づいて前記複数のネットワークインタフェースを複数のグループに分けるクラスタリング手段を有し、
前記推定手段は、トラフィック量が最も多いグループに属している各ネットワークインタフェースが、物理ネットワークインタフェースであると推定する、請求項６に記載の情報処理装置。
【請求項９】
物理ネットワークインタフェースであると推定されたネットワークインタフェースと、仮想ネットワークインタフェースであると推定されたネットワークインタフェースとを対応付ける対応付け手段を有する、請求項１乃至８いずれか一項に記載の情報処理装置。
【請求項１０】
コンピュータを、請求項１乃至９いずれか一項に記載の情報処置装置として動作させるプログラム。
【請求項１１】
コンピュータによって実行される制御方法であって、
複数のネットワークインタフェースそれぞれについて、データの送受信を行える状態であるか否かを示す状態情報を取得する取得ステップと、
第１の前記ネットワークインタフェースがデータの送受信を行えない状態であり、かつ第１の前記ネットワークインタフェースとは異なる第２の前記ネットワークインタフェースがデータの送受信を行える状態である場合に、第１の前記ネットワークインタフェースは仮想的なネットワークインタフェースであると推定する推定ステップと、を有する制御方法。
【請求項１２】
コンピュータによって実行される制御方法であって、
MAC（Media Access Control）アドレスと IP（Internet Protocol）アドレスとの対応付けを示すアドレス情報を取得する取得ステップと、
複数のIPv4（IP version 4）アドレス又は複数の同一スコープの IPv6（IP version 6）アドレスが割り当てられている MAC アドレスを持つネットワークインタフェースが、物理ネットワークインタフェースであると推定する制御方法。
【請求項１３】
コンピュータによって実行される制御方法であって、
複数のネットワークインタフェースそれぞれにおいて送受信されるデータのトラフィック量に関するトラフィック情報を取得する取得ステップと、
各前記ネットワークインタフェースのトラフィック量に基づいて、各前記ネットワークインタフェースが、物理ネットワークインタフェースと仮想ネットワークインタフェースのどちらであるかを推定する推定ステップと、を有する制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、プログラム、及び制御方法に関する。
【背景技術】
【０００２】
近年、様々な環境で仮想マシン技術が導入されている。仮想マシン技術とは、１つの物理マシン上で複数の仮想的なマシンを動作させる技術である。この仮想的なマシンは、仮想マシン（Virtual Machine（VM））と呼ばれる。VM は、物理マシンと同様に OS（Operating System）を動作させることができ、OS に対して物理マシンと同様のハードウエア環境を提供する。
【０００３】
一方で、VM はソフトウエアで実現される仮想的なマシンであるため、物理的な実体を有する物理マシンとは異なる性質も有する。例えば VM は、物理マシンと比較し、生成や削除が容易に行える。
【０００４】
また近年、ネットワークを介してマシン同士を接続することが一般的となっている。例えばオフィス環境では、各社員の PC（Personal Computer）がネットワークに接続されている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】「Zabbix Documentation 2.2」、［online］、［平成２７年３月１３日検索］、インターネット＜URL：https://www.zabbix.com/documentation/2.2/manual/vm_monitoring＞
【非特許文献２】「RFC（Request for Comments）826」、［online］、［平成２７年３月１３日検索］、インターネット＜URL : http://tools.ietf.org/html/rfc826＞
【非特許文献３】「RFC792」、［online］、［平成２７年３月１３日検索］、インターネット＜URL：http://tools.ietf.org/html/rfc792＞
【非特許文献４】「RFC4443」、［online］、［平成２７年３月１３日検索］、インターネット＜URL：http://tools.ietf.org/html/rfc4443＞
【非特許文献５】「RFC4861」、［online］、［平成２７年３月１３日検索］、インターネット＜URL：http://tools.ietf.org/html/rfc4861＞
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ネットワークに接続されている物理マシン上で VM が利用されると、ネットワーク上において VM と物理マシンが混在することとなる。前述したように VM は生成が容易であるため、データセンタの様な特殊な環境だけでなく、オフィス環境などの一般的な環境においても、VM と物理マシンが混在するネットワーク環境が容易に生じうる。
【０００７】
このように VM と物理マシンが混在するネットワークを適切に管理するためには、VM と物理マシンの性質の違いを考慮できることが好ましい。そのためには、ネットワーク上に存在する各マシンが VM と物理マシンのどちらなのかを把握する必要がある。
【０００８】
しかし、あるマシンが VM と物理マシンのどちらであるのかを、外部の装置などから判別することは難しい。前述したように VM はその上で動作する OS 等に物理マシンと同等の環境を提供するため、VM 上で動作するソフトウエアと物理マシン上で動作するソフトウエアは同様の動作をしうるためである。例えば、VM から送信されるパケットと物理マシンから送信されるパケットのフォーマットは同じであるため、あるマシンから受信するパケットのフォーマットに基づいて、そのマシンが VM と物理マシンのどちらであるかを判別することは難しい。
【０００９】
非特許文献１は、ネットワーク上で特定の物理マシンや VM が起動したことを検出するシステムを開示している。しかし、このシステムを利用する者（ネットワークの管理者など）は、検出対象の各物理マシンや各 VM を特定するための情報（UUID（Universally Unique Identifier）など）を予め把握し、この情報を予めシステムの設定ファイルに記述しておかなければならない。そのため、非特許文献１のシステムを利用するためには、各マシンが物理マシンと VM のどちらなのかということを予め把握しておかなければならない。また、非特許文献１のシステムは、管理者の知らないところで導入される物理マシンや VM を検出することができない。
【００１０】
本発明は、以上の課題に鑑みてなされたものである。本発明の目的は、ネットワークの管理を容易にする技術を提供することである。
【課題を解決するための手段】
【００１１】
本発明の第１の情報処理装置は、複数のネットワークインタフェースそれぞれについて、データの送受信を行える状態であるか否かを示す状態情報を取得する取得手段と、第１の前記ネットワークインタフェースがデータの送受信を行えない状態であり、かつ第１の前記ネットワークインタフェースとは異なる第２の前記ネットワークインタフェースがデータの送受信を行える状態である場合に、第１の前記ネットワークインタフェースは仮想的なネットワークインタフェースであると推定する推定手段と、を有する。
【００１２】
本発明の第２の情報処理装置は、MAC（Media Access Control）アドレスと IP（Internet Protocol）アドレスとの対応付けを示すアドレス情報を取得する取得手段と、複数のIPv4（IP version 4）アドレス又は複数の同一スコープの IPv6（IP version 6）アドレスが割り当てられている MAC アドレスを持つネットワークインタフェースが、物理ネットワークインタフェースであると推定する推定手段と、を有する。
【００１３】
本発明の第３の情報処理装置は、複数のネットワークインタフェースそれぞれにおいて送受信されるデータのトラフィック量に関するトラフィック情報を取得する取得手段と、
各前記ネットワークインタフェースのトラフィック量に基づいて、各前記ネットワークインタフェースが、物理ネットワークインタフェースと仮想ネットワークインタフェースのどちらであるかを推定する推定手段と、を有する。
【００１４】
本発明のプログラムは、コンピュータを、上記第１から第３の情報処理装置のいずれかとして動作させるプログラムである。
【００１５】
本発明の第１の制御方法は、コンピュータによって実行される。当該制御方法は、複数のネットワークインタフェースそれぞれについて、データの送受信を行える状態であるか否かを示す状態情報を取得する取得ステップと、第１の前記ネットワークインタフェースがデータの送受信を行えない状態であり、かつ第１の前記ネットワークインタフェースとは異なる第２の前記ネットワークインタフェースがデータの送受信を行える状態である場合に、第１の前記ネットワークインタフェースは仮想的なネットワークインタフェースであると推定する推定ステップと、を有する。
【００１６】
本発明の第２の制御方法は、コンピュータによって実行される。当該制御方法は、MAC（Media Access Control）アドレスと IP（Internet Protocol）アドレスとの対応付けを示すアドレス情報を取得する取得ステップと、複数のIPv4（IP version 4）アドレス又は複数の同一スコープの IPv6（IP version 6）アドレスが割り当てられている MAC アドレスを持つネットワークインタフェースが、物理ネットワークインタフェースであると推定する推定ステップと、を有する。
【００１７】
本発明の第３の制御方法は、コンピュータによって実行される。当該制御方法は、複数のネットワークインタフェースそれぞれにおいて送受信されるデータのトラフィック量に関するトラフィック情報を取得する取得ステップと、各前記ネットワークインタフェースのトラフィック量に基づいて、各前記ネットワークインタフェースが、物理ネットワークインタフェースと仮想ネットワークインタフェースのどちらであるかを推定する推定ステップと、を有する。
【発明の効果】
【００１８】
本発明によれば、ネットワークの管理を容易にする技術が提供される。
【図面の簡単な説明】
【００１９】
【図１】物理マシン内のネットワーク環境が仮想ブリッジを用いて構築される形態を例示する図である。
【図２】物理マシン内のネットワーク環境が NAT（Network Address Translation） 環境として構築される形態を例示する図である。
【図３】実施形態１に係る情報処理装置を例示するブロック図である。
【図４】情報処理装置によって把握される各ネットワークインタフェースの状態を時系列で例示するグラフである。
【図５】実施形態１の情報処理装置によって実行される処理の流れを例示するフローチャートである。
【図６】情報処理装置のハードウエア構成を例示するブロック図である。
【図７】実施形態２の情報処理装置を例示するブロック図である。
【図８】仮想化環境において、１つの MAC アドレスに対して複数の IPv4 アドレスが対応付けられる構成を例示する図である。
【図９】実施形態２の情報処理装置によって実行される処理の流れを例示するフローチャートである。
【図１０】実施形態３の情報処理装置を例示するブロック図である。
【図１１】実施形態３の情報処理装置によって実行される処理の流れを例示するフローチャートである。
【図１２】実施形態５に係る情報処理装置を例示するブロック図である。
【図１３】対応付け部によって生成される対応付けを例示する図である。
【発明を実施するための形態】
【００２０】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【００２１】
［前提事項の説明］
まず、各実施形態に共通する前提事項について説明する。
【００２２】
ネットワークインタフェースは、ネットワーク回線を介してデータを送受信するためのインタフェースである。例えば一般の PC は、マザーボードに予め搭載されているネットワークインタフェース（いわゆるオンボードのネットワークインタフェース）や、PCI（Peripheral Component Interconnect）カードで実装されたネットワークインタフェースを有する。以下、このように物理的に実装されたネットワークインタフェースを、物理ネットワークインタフェースと呼ぶ。
【００２３】
ネットワークインタフェースをソフトウエアで仮想的に実現する技術がある。以下、このようにソフトウエアで仮想的に実現されるネットワークインタフェースを、仮想ネットワークインタフェースと呼ぶ。このような技術の１つに、仮想マシン技術がある。仮想マシン技術は、１つの物理マシン上で複数の VM を動作させる技術である。VMは、仮想的なハードウエアで構成される仮想的なマシンである。仮想ネットワークインタフェースは、仮想マシンを構成する仮想的なハードウエアの１つである。
【００２４】
仮想マシン技術を利用するためには、仮想マシンモニタ（VMM（Virtual Machine Monitor））と呼ばれるソフトウエアレイヤを導入する。VMM は、物理ハードウエア上で直接動作することで物理ハードウエアを管理する。そして、VMM は、物理ハードウエアを抽象化した仮想ハードウエアを生成することで、VM を構築する。各 VM はそれぞれ、物理マシンと同様に OS 動作させることができる。ここで、VM 上で動作する OS は、一般にゲスト OS と呼ばれる。
【００２５】
VM 上で動作するゲスト OS は、VM が持つ仮想ネットワークインタフェースを利用して、同じ物理マシン上で動作する VM、他の物理マシン、又は他の物理マシン上で動作する VM と通信する。ただし、VM が他の物理マシンや他の物理マシン上で動作する VM と通信するためには、 VM を動作させる物理マシンが有する物理ネットワークインタフェースを利用する必要がある。VM のネットワークインタフェースはあくまでソフトウエアで実現された仮想的なハードウエアであるためである。
【００２６】
以下、仮想マシン技術を導入された物理マシンにおけるネットワーク環境について説明する。図１及び図２は、仮想マシン技術が導入された物理マシン１０におけるネットワーク環境を例示する図である。物理マシン１０は物理ネットワークインタフェース３０を有する。物理ネットワークインタフェース３０は物理ネットワーク１００に接続している。物理マシン１０は、物理ネットワーク１００を介して外部の物理マシンや VM と通信する。また、物理マシン１０は、その上で VMM ２０を動作させている。
【００２７】
VMM ２０は４つの VM５０を動作させている。各 VM５０は仮想ネットワークインタフェース７０を有している。各仮想ネットワークインタフェース７０は、物理ネットワークインタフェース３０の MAC（Media Access Control）アドレスとはそれぞれ異なる MAC アドレスを持つ。各VM５０はその上でゲスト OS ６０を動作させている。
【００２８】
なお、上述の MAC アドレスは、MAC アドレス以外のレイヤ２アドレスであってもよい。レイヤ２アドレスとは、OSI（Open Systems Interconnection）参照モデルのデータリンク層（レイヤ２）で扱われるアドレスである。以降の各記載についても同様に、MAC アドレスは、MAC アドレス以外のレイヤ２アドレスであってもよい。
【００２９】
図１は、物理マシン１０内のネットワーク環境が仮想ブリッジ９０を用いて構築される形態を例示する図である。仮想ブリッジ９０は、ソフトウエアで実現された仮想的なブリッジである。VMM ２０は、物理マシン１０の内部に仮想ネットワーク１１０を構築している。各仮想ネットワークインタフェース７０は、仮想ネットワーク１１０を介して仮想ブリッジ９０と接続されている。仮想ブリッジ９０が有するネットワークインタフェースの１つは、物理ネットワークインタフェース３０である。仮想ネットワーク１１０は、物理ネットワーク１００と同じネットワークセグメントに属する。そのため、各仮想ネットワークインタフェース７０にはそれぞれ、物理ネットワーク１００で利用可能な IP アドレスが割り当てられている。
【００３０】
仮想ブリッジ９０は、物理的なブリッジと同様の動作を行う。具体的には、仮想ブリッジ９０は、取得したデータを送信先の MAC アドレスに基づいてディスパッチする。例えば仮想ブリッジ９０は、仮想ネットワークインタフェース７０から取得したデータの送信先 MAC アドレスが、各仮想ネットワークインタフェース７０の MAC アドレス以外を示している場合、物理ネットワークインタフェース３０を介して、そのデータを外部へ送信する。
【００３１】
また例えば仮想ブリッジ９０は、仮想ネットワークインタフェース７０から取得したデータの送信先 MAC アドレスが、別の仮想ネットワークインタフェース７０の MAC アドレスを示している場合、その仮想ネットワークインタフェース７０へそのデータを渡す。この場合、データを受け取った仮想ネットワークインタフェース７０を有する VM５０上で動作しているゲスト OS ６０が、そのデータをハンドルする。
【００３２】
また例えば、仮想ブリッジ９０は、物理ネットワークインタフェース３０から取得したデータを、その送信先の MAC アドレスを持つ仮想ネットワークインタフェース７０へ渡す。この場合も、データを受け取った仮想ネットワークインタフェース７０を有する VM５０上で動作しているゲスト OS ６０が、そのデータをハンドルする。
【００３３】
図２は、物理マシン１０内のネットワーク環境が NAT（Network Address Translation） 環境として構築される形態を例示する図である。VMM ２０は、物理マシン１０の内部に仮想ネットワーク１１０を構築している。この形態の場合、仮想ネットワーク１１０のネットワークセグメントは、物理ネットワーク１００とは異なるネットワークセグメントである。そのため、仮想ネットワークインタフェース７０には、物理ネットワーク１００で利用可能な IP アドレスではなく、仮想ネットワーク１１０におけるローカルな IP アドレスが割り当てられている。
【００３４】
各仮想ネットワークインタフェース７０は、仮想ルータ８０を介して物理ネットワーク１００に接続する。仮想ルータ８０は、ソフトウエアで仮想的に実現されたルータである。仮想ルータ８０は、物理ネットワーク１００に接続する物理ネットワークインタフェース３０と、仮想ネットワーク１１０に接続する NAT インタフェース４０という２つのネットワークインタフェースを有する。つまり、仮想ルータ８０は、仮想ネットワーク１１０と物理ネットワーク１００とを繋ぐゲートウェイとして機能する。
【００３５】
仮想ルータ８０は、一般の NAT 環境におけるゲートウェイが行う動作と同様の動作を行う。これにより、各仮想ネットワークインタフェース７０は、物理ネットワーク１００で利用可能な IP アドレスを個別に持たず、物理ネットワークインタフェース３０の IP アドレスを利用して外部のマシンとデータの送受信を行う。
【００３６】
なお、物理ネットワークインタフェース３０によってデータが受信された場合、まず VMM ２０は、それが VMM ２０に宛てたデータであるか否かを判定する。この判定は、データが示す宛先 MAC アドレスや宛先 IP アドレスを調べることによって行われる。そして VMM ２０は、物理ネットワークインタフェース３０によって受信されたデータがVMM ２０に宛てたデータでない場合、そのデータを仮想ルータ８０や仮想ブリッジ９０に処理させる。一方、VMM ２０は、物理ネットワークインタフェース３０によって受信されたデータがVMM ２０に宛てたデータである場合、そのデータの中身を取り出す等、適切な処理を行う。
【００３７】
ここで、仮想マシン環境におけるネットワーク環境の形態は、上述の例に限定されない。その他の例については、必要に応じて後述の実施形態で説明する。
【００３８】
仮想マシン技術が導入される目的は様々である。例えば仮想マシン技術は、デスクトップマシンやサーバマシンを仮想的に実現するために導入される。また例えば、仮想マシンは、ルータやレイヤ２スイッチなどのネットワーク機器を仮想的に実現するために導入される。このように、仮想マシン技術を導入してネットワーク機器を仮想化する技術は、NFV（Network Functions Virtualization）と呼ばれる。本発明において、仮想マシン環境の導入目的は特定の目的に限定されない。そのため、VM の導入目的は、上述したいずれかの目的であってもよいし、それ以外の目的であってもよい。
【００３９】
また、本発明における仮想ネットワークインタフェースは、仮想マシン技術によって実現される仮想的なネットワークインタフェースに限定されない。例えば、仮想ネットワークインタフェースは、エミュレータによるエミュレートによって実現される仮想的なネットワークインタフェースでもよい。エミュレータによって仮想ネットワークインタフェースを実現する場合でも、物理マシン内のネットワークは、例えば仮想ブリッジや仮想ルータを用いて実現される。この実現方法の詳細については省略する。
【００４０】
以上の事項を前提に、本発明の各実施形態について説明する。
【００４１】
［実施形態１］
図３は、実施形態１に係る情報処理装置２０００を例示するブロック図である。図３において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。
【００４２】
本実施形態の情報処理装置２０００は、取得部２０２０及び推定部２０４０を有する。取得部２０２０は状態情報を取得する。状態情報は、複数のネットワークインタフェース１２０それぞれが、データの送受信を行える状態であるか否かを示す。以下、データの送受信を行える状態を「オンライン」、データの送受信を行えない状態を「オフライン」と表記する。ここで、「ネットワークインタフェースがオフラインである」とは、そのネットワークインタフェースが起動していない状況だけでなく、そのネットワークインタフェースを有するマシンがスリープ状態又はハイバネーション状態にある状況なども含む。
【００４３】
推定部２０４０は、取得した状態情報を用い、ネットワークインタフェース１２０について推定を行う。その具体的な方法は後述する。
【００４４】
＜着目点＞
一般に、物理ネットワークインタフェースが１つである環境において、「仮想ネットワークインタフェースはオンラインであり、物理ネットワークインタフェースはオフラインである」という状況は起こらない。仮想ネットワークインタフェースは物理ネットワークインタフェースを介して外部の物理マシン等と通信するためである。
【００４５】
一方で、「仮想ネットワークインタフェースはオフラインであり、物理ネットワークインタフェースはオンラインである」という状況は起こりうる。例えば、「VMM は起動しているが、VM は起動していない」という状況がこの状況に相当する。
【００４６】
＜推定部２０４０による推定処理＞
そこで推定部２０４０は、「あるネットワークインタフェース X がオフラインであり、かつ別のネットワークインタフェース Y がオンラインである」という場合に、ネットワークインタフェース X が仮想ネットワークインタフェースであると推定する。
【００４７】
また、推定部２０４０は、オンラインのネットワークインタフェースが１つのみである場合、そのネットワークインタフェースは物理ネットワークインタフェースであると推定してもよい。
【００４８】
＜状態情報の詳細＞
推定部２０４０は、取得部２０２０が取得する状態情報に基づいて、各ネットワークインタフェースの状態を把握する。状態情報は、ネットワークインタフェースの状態がオンラインとオフラインのどちらであるかを直接的に示す情報であってもよいし、間接的に示す情報であってもよい。
【００４９】
＜＜状態を直接的に示す状態情報＞＞
ネットワーク上に存在するネットワークインタフェース１２０を検出する装置を、ネットワーク１３０に設けるとする。例えばこの装置は、特許文献１などに開示されている。このような装置によってネットワークインタフェース１２０が検出されたとき、そのネットワークインタフェース１２０はオンラインであると言える。つまり検出されたネットワークインタフェース１２０を示す情報は、オンラインのネットワークインタフェース１２０を示す直接的に示す情報であるといえる。また、ある時に検出されたネットワークインタフェース１２０がその後に検出されなくなった場合、そのネットワークインタフェース１２０はオフラインであるといえる。
【００５０】
そこで、例えば取得部２０２０は、上記装置から、検出されたネットワークインタフェース１２０を示す情報を繰り返し取得する。推定部２０４０は、取得された複数の情報を用いることで、オンラインのネットワークインタフェース１２０とオフラインのネットワークインタフェース１２０をそれぞれ把握する。
【００５１】
＜＜状態を間接的に示す状態情報＞＞
ネットワークインタフェース１２０の状態を間接的に示す情報は、例えばネットワーク１３０内に設けられているレイヤ２スイッチが持つ MAC アドレステーブルである。MAC アドレステーブルの各エントリは、レイヤ２スイッチのポートと、そのポートに接続されているマシンの MAC アドレスとを対応付けたテーブルである。具体的には、レイヤ２スイッチは、あるポート P1 で受信したデータの送信元 MAC アドレスが M1 である場合、MAC アドレステーブルに「P1、M1」という対応付けを示すエントリを生成する。
【００５２】
一般に、MAC アドレステーブルにはエージングタイムが設定されている。エージングタイムは、エントリの更新を行う時間間隔を示す。レイヤ２スイッチは、あるエントリが作成された後、エージングタイムが経過するごとに、そのエントリを更新する。具体的には、レイヤ２スイッチは、そのエントリが示すポートから、そのエントリが示す MAC アドレスを送信元 MAC アドレスとするデータを受信していない場合、そのエントリを削除する。
【００５３】
上述のような更新が行われるため、MAC アドレステーブルは、各 MAC アドレスを持つネットワークインタフェースの状態を間接的に示す情報として利用できる。具体的には、推定部２０４０は、ネットワークインタフェース１２０の MAC アドレスがいずれかのレイヤ２スイッチの MAC アドレステーブルに示されている場合、そのネットワークインタフェース１２０はオンラインであると推定する。また、あるタイミングにおいて MAC アドレステーブルに示されていたネットワークインタフェース１２０が、その後 MAC アドレステーブルに示されなくなった場合、推定部２０４０は、そのネットワークインタフェース１２０がオフラインであると推定する。
【００５４】
取得部２０２０は、ネットワーク１３０に設けられている各レイヤ２スイッチから MAC アドレステーブルを取得する。なお、レイヤ２スイッチから MAC アドレステーブルを取得する方法は既知の技術であるため、その方法についての詳細は省略する。
【００５５】
＜具体例＞
図４は、情報処理装置２０００によって把握される各ネットワークインタフェース１２０の状態を時系列で例示するグラフである。図４のグラフの横軸は時間を示しており、縦軸はネットワークインタフェース１２０の名前を示している。バツ印は、状態情報に基づいてネットワークインタフェース１２０がオンラインになっていると推定された時点を示す。バツ印を囲む領域はネットワークインタフェース１２０がオンラインであると推定される期間を表している。図４の例では、取得部２０２０が、状態情報として MAC アドレステーブルを取得すると仮定する。
【００５６】
まず、ネットワークインタフェース１の状態について説明する。ネットワークインタフェース１は、時点 t1 より前には、MAC アドレステーブルに示されていない。一方、時点 t 1 以降、ネットワークインタフェース１は、MAC アドレステーブルに示されている。これにより、ネットワークインタフェース１が、時点 t1 以降オンラインになっていると推定できる。
【００５７】
次に、ネットワークインタフェース２の状態について説明する。ネットワークインタフェース２は、時点 t2 より前及び時点 t3 より後には、MAC アドレステーブルに示されていない。一方、時点 t2 以降、時点 t3 まで、ネットワークインタフェース２は、MAC アドレステーブルに示されている。そのため、ネットワークインタフェース２が時点 t2 から t3 までの間オンラインであり、時点 t3 でオフラインになったと推定できる。
【００５８】
図４において、時点 t3 以降、ネットワークインタフェース２はオフラインであり、ネットワークインタフェース１はオンラインであることが分かる。そのため、推定部２０４０は、ネットワークインタフェース２が仮想ネットワークインタフェースであると推定する。また、MAC アドレステーブルにその他のネットワークインタフェース１２０が示されていないため、推定部２０４０は、ネットワークインタフェース１が物理ネットワークインタフェースであると推定する。
【００５９】
＜処理の流れ＞
図５は、実施形態１の情報処理装置２０００によって実行される処理の流れを例示するフローチャートである。取得部２０２０は状態情報を取得する（Ｓ１０２）。推定部２０４０は、オフラインのネットワークインタフェースがあるか否かを判定する（Ｓ１０４）。オフラインのネットワークインタフェースがない場合（Ｓ１０４：ＮＯ）、図５の処理は終了する。一方、オフラインのネットワークインタフェースがある場合（Ｓ１０４：ＹＥＳ）、図５の処理はＳ１０６に進む。
【００６０】
Ｓ１０６において、推定部２０４０は、オンラインのネットワークインタフェースがあるか否かを判定する。オンラインのネットワークインタフェースがない場合（Ｓ１０６：ＮＯ）、図５の処理は終了する。一方、オンラインのネットワークインタフェースがある場合（Ｓ１０６：ＹＥＳ）、図５の処理はＳ１０８に進む。
【００６１】
Ｓ１０８において、推定部２０４０は、オフラインのネットワークインタフェースが仮想ネットワークインタフェースであると推定する。
【００６２】
＜ハードウエア構成例＞
実施形態１の情報処理装置２０００の各機能構成部は、各機能構成部を実現するハードウエア（例：ハードワイヤードされた電子回路など）で実現されてもよいし、ハードウエアとソフトウエアとの組み合わせ（例：電子回路とそれを制御するプログラムの組み合わせなど）で実現されてもよい。
【００６３】
情報処理装置は、PC、携帯型端末、又はサーバマシンなどの種々の計算機として実装される。ここで情報処理装置２０００は、情報処理装置２０００を実装するための専用の計算機に実装されてもよいし、その他のアプリケーション等も含まれている汎用の計算機に実装されてもよい。
【００６４】
図６は、情報処理装置２０００のハードウエア構成を例示するブロック図である。情報処理装置２０００は、バス１０２０、プロセッサ１０４０、メモリ１０６０、ストレージ１０８０、入出力インタフェース１１００、ネットワークインタフェース１１２０を有する。バス１０２０は、プロセッサ１０４０、メモリ１０６０、ストレージ１０８０、入出力インタフェース１１００、及びネットワークインタフェース１１２０が、相互にデータを送受信するためのデータ伝送路である。ただし、プロセッサ１０４０などを互いに接続する方法は、バス接続に限定されない。プロセッサ１０４０は、例えば CPU (Central Processing Unit) や GPU (Graphics Processing Unit) などの演算処理装置である。メモリ１０６０は、例えば RAM (Random Access Memory) や ROM (Read Only Memory) などのメモリである。ストレージ１０８０は、例えばハードディスク、SSD (Solid State Drive)、又はメモリカードなどの記憶装置である。また、ストレージ１０８０は、RAM や ROM 等のメモリであってもよい。
【００６５】
入出力インタフェース１１００は、情報処理装置２０００と入出力デバイスとを接続するためのインタフェースである。入出力デバイスは、例えばキーボード、マウス、又はディスプレイなどである。
【００６６】
ネットワークインタフェース１１２０は、情報処理装置２０００が外部のネットワークインタフェースとの間でデータを送受信するためのインタフェースである。ネットワークインタフェース１１２０は、有線回線と接続するためのネットワークインタフェースでもよいし、無線回線と接続するためのネットワークインタフェースでもよい。
【００６７】
ストレージ１０８０は、情報処理装置２０００の機能を実現するためのプログラムを記憶している。具体的には、取得部２０２０及び推定部２０４０の機能を実現するプログラムモジュールを記憶している。プロセッサ１０４０は、これら各プログラムモジュールを実行することで、取得部２０２０及び推定部２０４０の機能をそれぞれ実現する。ここでプロセッサ１０４０は、上記各モジュールを実行する際、これらのモジュールをメモリ１０６０上に読み出してから実行してもよいし、メモリ１０６０上に読み出さずに実行してもよい。
【００６８】
情報処理装置２０００のハードウエア構成は図６に示した構成に限定されない。例えば、各プログラムモジュールはメモリ１０６０に格納されてもよい。この場合、情報処理装置２０００は、ストレージ１０８０を備えていなくてもよい。
【００６９】
＜作用・効果＞
本実施形態によれば、取得部２０２０によって取得される状態情報に基づいて、ネットワーク１３０に接続しているネットワークインタフェース１２０が物理ネットワークインタフェースと仮想ネットワークインタフェースのどちらであるかが推定される。ここで、物理ネットワークインタフェースを持つマシンは物理マシンである。一方、仮想ネットワークインタフェースを持つマシンは、仮想マシンなど、ソフトウエアで実現されたマシンである。よって、本実施形態の情報処理装置２０００を用いることにより、ネットワーク１３０に接続されている各マシンが、物理マシンと仮想マシンなどのどちらであるかを推定することができる。よって、ネットワーク１３０の管理者やネットワーク１３０を管理する装置などは、ネットワーク１３０上の各マシンが物理マシンと仮想マシンなどのどちらであるかを把握して上で、ネットワーク１３０を適切に管理できるようになる。
【００７０】
また、取得部２０２０はネットワークインタフェース１２０以外の装置（レイヤ２スイッチなど）から情報を取得するため、推定部２０４０は、ネットワークインタフェース１２０に負荷をかけずに推定を行うことができる。
【００７１】
［実施形態２］
図７は、実施形態２の情報処理装置２０００を例示する図である。図７において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。
【００７２】
実施形態２の情報処理装置２０００は、第２取得部２０６０及び推定部２０４０を有する。第２取得部２０６０はアドレス情報を取得する。アドレス情報は、ネットワークインタフェース１２０のMAC アドレスと IP アドレスとを対応付けて示す情報である。
【００７３】
実施形態２の推定部２０４０は、アドレス情報が示す MAC アドレスと IP アドレスとの対応付けに基づいて推定を行う。推定方法の詳細は後述する。
【００７４】
＜IP アドレスについて＞
まず、ネットワークインタフェースに対する一般的な IPv4 アドレス及び IPv6 アドレスの割り当てについて説明する。
【００７５】
＜＜IPv6 アドレスの割り当てについて＞＞
IPv6 では、１つのネットワークインタフェースに対して、スコープが異なる複数の IPv6 アドレスが割り当てられうる。IPv6 アドレスのスコープとは、その IPv6 アドレスが有効な範囲のことである。それぞれスコープが異なる IPv6 アドレスとして、グローバルアドレス、ULA（Unique Local IPv6 Unicast Address）、及びリンクローカルアドレスがある。
【００７６】
ただし通常、ネットワークインタフェースに対してスコープが同一の IPv6 アドレスが複数割り当てられることはない。例えば、あるネットワークインタフェースに対して２つのグローバルアドレスが割り当てられることはない。
【００７７】
＜＜IPv4 アドレスについて＞＞
IPv4 では IPv6 におけるスコープという概念は無い。そのため、１つのネットワークインタフェースに対して割り当てられる IPv4 アドレスは、通常１つである。
【００７８】
以上のことから、通常、１つの MAC アドレスに対し、複数の IPv4 アドレスや同一スコープの複数の IPv6 アドレスが対応付けられることはない。
【００７９】
＜着目するネットワーク環境＞
仮想化環境やエミュレーション環境では、「１つ MAC アドレスに対し、複数の IPv4 アドレスや同一スコープの複数の IPv6 アドレスが対応付けられる」という構成がありうる。図８は、仮想化環境において、１つの MAC アドレスに対して複数の IPv4 アドレスが対応付けられる構成を例示する図である。
【００８０】
図８において、仮想ネットワークインタフェース７０には、物理ネットワークインタフェース３０と同じ MAC アドレスが割り当てられている。一方、仮想ネットワークインタフェース７０に割り当てられている IPv4 アドレスは、物理ネットワークインタフェース３０に割り当てられている IPv4 アドレスと異なる。そのため、１つの MAC アドレスに対し、複数の IPV4 アドレスが対応付けられている。
【００８１】
VMM ２０は、物理ネットワークインタフェース３０によって受信されたデータがどのネットワークインタフェースを宛先とするものであるかを、そのデータの宛先 IPv4 アドレスを用いて判断する。そのため、VMM ２０は、物理ネットワークインタフェース３０や仮想ネットワークインタフェース７０の IPv4 アドレスを予め把握しておく。
【００８２】
なお、図８と同様の構成により、１つの MAC アドレスに対し、同一スコープの IPv6 アドレスが複数対応付けられうる。具体的には、仮想ネットワークインタフェース７０の MAC アドレスを物理ネットワークインタフェース３０の MAC アドレスと同じにしつつ、仮想ネットワークインタフェース７０と物理ネットワークインタフェース３０にそれぞれ異なる同一スコープの IPv6 アドレスを割り当てる。
【００８３】
また仮想化環境だけでなく、エミュレーション環境においても、同様のネットワーク構成を構築できる。
【００８４】
よって、１つの MAC アドレスに対して複数の IPv4 アドレスや同一スコープの複数の IPv6 アドレスが対応付けられている場合、上述した仮想化環境やエミュレーション環境が構築されていると推定できる。そして、この場合、複数の IPv4 アドレスや同一スコープの複数の IPv6 アドレスが対応付けられている MAC アドレスは、物理ネットワークインタフェース３０の MAC アドレスであると推定できる。
【００８５】
＜推定部２０４０による推定＞
そこで推定部２０４０は、アドレス情報を用いて、MAC アドレスと IP アドレスとの対応付けを把握する。そして、推定部２０４０は、１つの MAC アドレスに対して複数の IPv4 アドレスや同一スコープの複数の IPv6 アドレスが対応付けられている場合、その MAC アドレスを持つネットワークインタフェース１２０が物理ネットワークインタフェースであると推定する。図８で説明した通り、複数の IP アドレスが対応付けられる MAC アドレスは、物理ネットワークインタフェースの MAC アドレスであるためである。
【００８６】
＜アドレス情報の詳細＞
推定部２０４０が取得するアドレス情報は様々である。例えば推定部２０４０は、ARP テーブルをアドレス情報として取得する。ARP テーブルは、MAC アドレスと IPv4 アドレスを対応付けた情報である。ARP テーブルは、OS や VMM などによって生成及び管理される。OS などは、ARP リクエストに対する ARP リプライを用いて割り出した「IPv4 アドレス、MAC アドレス」の対応付けを、ARP テーブルに記憶する。なお、ARP テーブルの生成方法や管理方法などは既知の技術であるため、これらについての詳細な説明は省略する。
【００８７】
また例えば、推定部２０４０は、Neighbor Cache をアドレス情報として取得してもよい。Neighbor Cache は、MAC アドレスと IPv6 アドレスを対応付けた情報である。Neighbor Cache も、ARP テーブルと同様に、OS や VMM によって生成・管理される。OS などは、NS メッセージに対する NA メッセージを用いて割り出した「IPv6 アドレス、MAC アドレス」の対応付けを、Neighbor Cache に記憶する。なお、Neighbor Cache の生成方法や管理方法などは既知の技術であるため、これらについての詳細な説明は省略する。
【００８８】
第２取得部２０６０が ARP テーブルや Neighbor Cache などのアドレス情報を取得する方法は様々である。例えば第２取得部２０６０は、各ネットワークインタフェース１２０を用いて動作している OS や VMM から、アドレス情報を取得する。
【００８９】
また例えば、実施形態１と同様に、ネットワーク上に存在するネットワークインタフェース１２０を検出する装置を、ネットワーク１３０に設けるとする。この装置によれば、ネットワーク１３０上に存在するネットワークインタフェース１２０の MAC アドレスと IP アドレスの対応付けを生成することができる。そこで第２取得部２０６０は、この装置によって生成された IP アドレスと MAC アドレスとの対応付けを、アドレス情報として取得する。
【００９０】
＜処理の流れ＞
図９は、実施形態２の情報処理装置２０００によって実行される処理の流れを例示するフローチャートである。図９において、推定対象のネットワークインタフェースをネットワークインタフェースＸと表記する。
【００９１】
第２取得部２０６０はアドレス情報を取得する（Ｓ２０２）。推定部２０４０は、アドレス情報を用いて、複数の IPv4 アドレスが対応付けられている MAC があるか否かを判定する（Ｓ２０４）。そのような MAC アドレスがない場合（Ｓ２０４：ＮＯ）、図９の処理は終了する。一方、そのような MAC アドレスがある場合（Ｓ２０４：ＹＥＳ）、図９の処理はＳ２０６に進む。
【００９２】
推定部２０４０は、複数の IPv4 アドレスが対応付けられているMAC アドレスを持つネットワークインタフェース１２０が、物理ネットワークインタフェースであると推定する（Ｓ２０６）。
【００９３】
なお、図９では、IP アドレスが IPv4 アドレスである場合について例示している。IP アドレスが IPv6 アドレスである場合の処理の流れも、図９で示した流れと同様である。ただし、Ｓ２０４において、推定部２０４０は、互いに異なる複数の同一スコープの IPv6 アドレスと対応付けられている MAC アドレスがあるか否かを判定する。また、Ｓ２０６において、推定部２０４０は、互いに異なる複数の同一スコープの IPv6 アドレスと対応付けられている MAC アドレスを持つネットワークインタフェース１２０が、物理ネットワークインタフェースであると推定する。
【００９４】
＜ハードウエア構成＞
例えば実施形態２の情報処理装置２０００のハードウエア構成は、実施形態１の情報処理装置２０００と同様に、図６で表される。本実施形態において、前述したストレージ１０８０に記憶される各プログラムモジュールには、本実施形態で説明した各機能を実現するプログラムがさらに含まれる。また、ストレージ１０８０は、第２取得部２０６０を実現するプログラムモジュールをさらに記憶する。プロセッサ１０４０は、このプログラムモジュールを実行することで、第２取得部２０６０の機能を実現する。
【００９５】
＜作用・効果＞
本実施形態によれば、仮想ネットワークインタフェースに対して物理ネットワークインタフェースと同じ MAC アドレスが割り当てられているという環境において、その環境の特徴を利用し、ネットワークインタフェース１２０が物理ネットワークインタフェースと仮想ネットワークインタフェースのどちらであるかを推定することができる。この方法によれば、推定部２０４０は、各ネットワークインタフェース１２０が稼働し続ける状況（オフラインになるネットワークインタフェース１２０がない状況）においても推定を行うことができる。
【００９６】
［実施形態３］
図１０は、実施形態３の情報処理装置２０００を例示するブロック図である。図１０において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。
【００９７】
実施形態３の情報処理装置２０００は、第３取得部２０８０及び推定部２０４０を有する。第３取得部２０８０はトラフィック情報を取得する。トラフィック情報は、複数のネットワークインタフェース１２０それぞれにおいて送受信されるトラフィックのトラフィック量に関する情報である。
【００９８】
推定部２０４０は、各ネットワークインタフェースのトラフィック量に基づいて、各ネットワークインタフェースが物理ネットワークインタフェースと仮想ネットワークインタフェースのどちらであるかを推定する。
【００９９】
＜着目点＞
前述したように仮想ネットワークインタフェースはソフトウエアで実現された仮想的なネットワークインタフェースであるため、実際のデータの送受信は物理ネットワークインタフェースを介して行われる。そのため、物理ネットワークインタフェースは、その上で直接動作している VMM などが外部とやりとりするデータの送受信だけでなく、VM などが外部とやりとりするデータの送受信も行う。
【０１００】
さらに、物理マシン内のネットワークの構成によっては、VM が動作している物理マシンの外部から観測した場合に、VM によって送受信されるデータも、VMM によって送受信されるデータとして観測される場合がある。例えば図２に示す NAT を利用したネットワーク構成の場合、ゲスト OS ６０が送受信するデータとVMM ２０が送受信するデータはいずれも、物理ネットワークインタフェース３０の IP アドレスを送信先又は送信元とする。そのため、物理マシン１０の外部からは、物理ネットワークインタフェース３０の IP アドレスを送信先 IP アドレス又は送信元 IP アドレスとするデータが通常よりも多く観測される。
【０１０１】
同様に、図８に示す構成においても、VM によって送受信されるデータが、VMM によって送受信されるデータとして観測されうる。図８の構成の場合、仮想ネットワークインタフェース７０に対して、物理ネットワークインタフェース３０と同じ MAC アドレスが割り当てられる。そのため図８の構成の場合、ゲスト OS ６０が送受信するデータとVMM ２０が送受信するデータはいずれも、物理ネットワークインタフェース３０の MAC アドレスを送信先又は受信先とする。そのため、物理マシン１０の外部からは、物理ネットワークインタフェース３０の MAC アドレスを送信元 MAC アドレス又は送信先 MAC アドレスとするデータ（トラフィック）が通常よりも多く観測される。
【０１０２】
＜推定部２０４０による推定＞
そこで実施形態３の推定部２０４０は、送受信されるデータの量（トラフィック量）が多いネットワークインタフェース１２０が、物理ネットワークインタフェースであると推定する。例えば推定部２０４０は、ネットワーク１３０を流れるデータについて、「アドレス、トラフィック量」の対応付けを取得する。ここでいうアドレスは、IP アドレスであってもよいし、MAC アドレスであってもよい。またこのアドレスは、送信先アドレスと送信元アドレスの双方であってもよいし、いずれか一方であってもよい。そして、推定部２０４０は、対応付けられているトラフィック量が多いアドレスを持つネットワークインタフェース１２０が、物理ネットワークインタフェースであると推定する。
【０１０３】
推定部２０４０が「トラフィック量が多い」と判定する方法は様々である。例えば、推定部２０４０は、「アドレス、トラフィック量」の対応付けを、トラフィック量の昇順にソートする。そして、推定部２０４０は、最もトラフィック量が多い推定部２０４０が物理ネットワークインタフェースであると推定する。
【０１０４】
また、推定部２０４０は、トラフィック量に基づいてネットワークインタフェースを複数のグループにクラスタリングしてもよい。そして、推定部２０４０は、トラフィック量が最も多いグループに属するネットワークインタフェースが、物理ネットワークインタフェースであると推定する。
【０１０５】
また例えば推定部２０４０は、「アドレス、トラフィック量」を統計処理し、有意に大きいトラフィック量があるか否かを判定する。そして、推定部２０４０は、有意に大きいトラフィック量がある場合、そのトラフィック量と対応付けられているアドレスを持つネットワークインタフェース１２０が、物理ネットワークインタフェースであると推定する。
【０１０６】
複数の値を統計処理し、有意に大きい値を見つける方法には様々な方法がある。例えば推定部２０４０は、各ネットワークインタフェース１２０のトラフィック量の平均値μ及び標準偏差σを求める。そして、推定部２０４０は、μ＋σより大きいトラフィック量を、有意に大きいトラフィック量とする。ただし、トラフィック量を統計処理して有意に大きいトラフィック量を見つける方法には、既知の様々な方法を利用でき、例示した方法に限定されない。
【０１０７】
＜＜トラフィック量の取得方法＞＞
第３取得部２０８０がトラフィック情報を取得する方法は様々である。例えば、第３取得部２０８０は、ネットワーク１３０上の各レイヤ２スイッチから、「ポートを通過するトラフィックの量、そのポートに接続されているネットワークインタフェース１２０の MAC アドレス」の対応付けを示すトラフィック情報を取得する。第３取得部２０８０は、このトラフィック情報から、各ネットワークインタフェース１２０のトラフィック量を把握する。
【０１０８】
また、ネットワーク上を流れるトラフィックを監視する装置がネットワーク１３０に設けられてもよい。この場合、第３取得部２０８０は、この装置から、「トラフィック量、そのトラフィックの送受信を行うネットワークインタフェースのMAC アドレス又は IP アドレス」の対応付けを取得する。なお、ネットワーク上を流れるトラフィックを監視する方法は既知の技術であるため、詳細な説明は省略する。
【０１０９】
＜処理の流れ＞
図１１は、実施形態３の情報処理装置２０００によって実行される処理の流れを例示するフローチャートである。第３取得部２０８０は、トラフィック情報を取得する（Ｓ３０２）。推定部２０４０は、トラフィック量が多いネットワークインタフェース１２０が存在するか否かを判定する（Ｓ３０４）。トラフィック量が多いネットワークインタフェース１２０が存在しない場合（Ｓ３０４：ＮＯ）、図１１の処理は終了する。一方、トラフィック量が多いネットワークインタフェース１２０が存在する場合（Ｓ３０４：ＹＥＳ）、図１１の処理はＳ３０６に進む。Ｓ３０６において、推定部２０４０は、トラフィック量が多いネットワークインタフェースが、物理ネットワークインタフェースであると推定する。
【０１１０】
＜作用・効果＞
本実施形態によれば、各ネットワークインタフェースに関するトラフィック情報を用いて、ネットワークインタフェース１２０が物理ネットワークインタフェースと仮想ネットワークインタフェースのどちらであるかを推定できる。この方法によれば、推定部２０４０は、各ネットワークインタフェース１２０が稼働し続ける状況（オフラインになるネットワークインタフェース１２０がない状況）においても推定を行うことができる。
【０１１１】
［実施形態４］
実施形態４の情報処理装置２０００は、実施形態１から実施形態３のいずれか２つ以上を組み合わせた構成を有する。
【０１１２】
実施形態４の推定部２０４０は、実施形態１から実施形態３で説明した推定方法の内のいずれか２つ以上の方法でそれぞれ推定を行う。さらに、推定部２０４０は、２つ以上の推定結果を利用して、総合的な推定結果を生成する。
【０１１３】
例えば実施形態４の推定部２０４０は、所定数以上の推定方法によって「ネットワークインタフェースＸは物理ネットワークインタフェースである」と推定された場合に、「ネットワークインタフェースＸは物理ネットワークインタフェースである」という総合的な推定結果を生成する。同様に推定部２０４０は、所定数以上の推定方法によって「ネットワークインタフェースＸは仮想ネットワークインタフェースである」と推定された場合に、「ネットワークインタフェースＸは仮想ネットワークインタフェースである」という総合的な推定結果を生成する。この所定数は、予め推定部２０４０に設定されていてもよいし、情報処理装置２０００の内部又は外部の記憶部に記憶されていてもよい。後者の場合、推定部２０４０は、推定を行う際にこの記憶部から上記所定値を取得する。
【０１１４】
また例えば、推定部２０４０は、各推定方法による推定結果の重み付き和を算出し、その算出結果に基づいて総合的な推定結果を生成してもよい。数式（１）は、各推定方法による推定結果の重み付き和を算出する式の例である。ｉは推定方法に割り当てた ID である。wi は推定方法ｉの推定結果に与える重みである。ri は推定方法ｉの推定結果である。例えば ri は、推定方法ｉの推定結果が「ネットワークインタフェース１２０は物理ネットワークインタフェースである」である場合に 1 を示し、「ネットワークインタフェース１２０は仮想ネットワークインタフェースである」である場合に -1 を示す。
【数１】
2016201691.tif 000003
【０１１５】
重み付き和 S の利用方法は様々である。例えば推定部２０４０は、重み付き和 S の値が 0 より大きい場合に、「ネットワークインタフェース１２０は物理ネットワークインタフェースである」という総合的な推定結果を生成する。一方、推定部２０４０は、重み付き和 S の値が 0 未満である場合に、「ネットワークインタフェース１２０は仮想ネットワークインタフェースである」という総合的な推定結果を生成する。さらに、推定部２０４０は、重み付き和 S の値が 0 である場合に、「推定不能」という総合的な推定結果を生成する。
【０１１６】
また推定部２０４０は、物理ネットワークインタフェースの数が既知である場合、各ネットワークインタフェース１２０の重み付き和 S の順位を用いて、各ネットワークインタフェース１２０が物理ネットワークインタフェースなのか仮想ネットワークインタフェースなのかを推定してもよい。例えば物理ネットワークインタフェースが１つであることが既知の場合、推定部２０４０は、「重み付き和 S が最も大きいネットワークインタフェース１２０は物理ネットワークインタフェースであり、それ以外のネットワークインタフェース１２０は仮想ネットワークインタフェースである」という総合的な推定結果を生成する。
【０１１７】
なお、物理ネットワークインタフェースの数は、実施形態３で説明したポート VLAN を用いる方法などにより、１つに限定することが可能である。
【０１１８】
＜作用・効果＞
本実施形態の情報処理装置２０００は、複数の推定方法による推定結果に基づいて総合的な推定を行うため、１つの推定方法のみを利用する場合よりも高い精度で推定を行うことができる。
【０１１９】
［実施形態５］
実施形態５の情報処理装置２０００は、実施形態１から４のいずか１つと同様の機能を有する。さらに実施形態５の情報処理装置２０００は、対応付け部２１００を有する。図１２は、実施形態１と同様の機能を有する、実施形態５に係る情報処理装置２０００を例示するブロック図である。図１２において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。
【０１２０】
対応付け部２１００は、物理ネットワークインタフェースと、その物理ネットワークインタフェースを用いて動作する仮想ネットワークインタフェースとの対応付けを行う。なお、対応付け部２１００によって行われる対応付けは、「物理マシンと、その物理マシン上で動作している仮想化又はエミュレートされたマシンとの対応付け（例えば物理マシンと VM の対応付け）」や、「物理マシン上で動作する VMM 又はエミュレータと、その物理マシン上で動作する仮想化又はエミュレートされたマシンとの対応付け（例えば VMM とゲストOS との対応付け）」とも言い換えることができる。
【０１２１】
ネットワークインタフェース１２０同士の対応付けを表す方法は様々である。例えば対応付け部２１００は、物理ネットワークインタフェースの MAC アドレスや IP アドレスと、仮想ネットワークインタフェースの MAC アドレスや IP アドレスとを対応付ける。また実施形態５の対応付け部２１００は、物理ネットワークインタフェースを有する物理マシンのホスト名や UUID と、仮想ネットワークインタフェースを有する VM などのホストや UUID とを対応付けてもよい。なお、対応付け部２１００は、実施形態８で説明したマシン情報などを利用することで、物理マシンや VM のホスト名などを把握する。
【０１２２】
図１３は、対応付け部２１４０によって生成される対応付けを例示する図である。図１３（ａ）は物理ネットワークインタフェースの MAC アドレスと仮想ネットワークインタフェースの MAC アドレスとを対応付けたテーブルを示す。このテーブルから、例えば、「MAC アドレスが BB:BB:BB:BB である仮想ネットワークインタフェースを持つ VM と、MAC アドレスCC:CC:CC:CC である仮想ネットワークインタフェースを持つ VM は、MAC アドレスが AA:AA:AA:AA である物理ネットワークインタフェースを持つ物理マシン上で動作している」ということが分かる。
【０１２３】
一方、図１３（ｂ）は、物理マシンのホスト名と仮想マシンのホスト名とを対応付けたテーブルを示す。このテーブルから、例えば、「ホスト名が hostB である VM とホスト名が hostC である VM は、ホスト名が hostA である物理マシン上で動作している」ということが分かる。
【０１２４】
＜作用・効果＞
本実施形態の情報処理装置２０００によれば、物理ネットワークインタフェースと仮想ネットワークインタフェースとの対応付け（物理マシンと VM などとの対応付け）が行われる。これにより、ネットワーク１３０の管理者やネットワーク１３０を管理する装置は、ネットワーク１３０に存在するネットワークインタフェース１２０やマシンの対応関係（従属関係）を容易に把握することができる。よって、ネットワーク１３０の管理者等は、ネットワーク１３０の管理をより適切に行うことができる。
【０１２５】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
【０１２６】
以下、参考形態の例を付記する。
１．  複数のネットワークインタフェースそれぞれについて、データの送受信を行える状態であるか否かを示す状態情報を取得する取得手段と、
第１の前記ネットワークインタフェースがデータの送受信を行えない状態であり、かつ第１の前記ネットワークインタフェースとは異なる第２の前記ネットワークインタフェースがデータの送受信を行える状態である場合に、第１の前記ネットワークインタフェースは仮想的なネットワークインタフェースであると推定する推定手段と、を有する情報処理装置。
２．  前記取得手段は、異なる複数の時点それぞれにおける前記状態情報を取得し、
前記推定手段は、異なる複数の時点それぞれにおける前記状態情報を用いて、第１の前記ネットワークインタフェースがデータの送受信を行えない状態になったことを検出する１．に記載の情報処理装置。
３．  前記状態情報は、レイヤ２スイッチが有する MAC（Media Access Control）アドレステーブルである、１．に記載の情報処理装置。
４．  MAC（Media Access Control）アドレスと IP（Internet Protocol）アドレスとの対応付けを示すアドレス情報を取得する取得手段と、
複数のIPv4（IP version 4）アドレス又は複数の同一スコープの IPv6（IP version 6）アドレスが割り当てられている MAC アドレスを持つネットワークインタフェースが、物理ネットワークインタフェースであると推定する推定手段と、
を有する情報処理装置。
５．  前記アドレス情報は ARP（Address Resolution Protocol）テーブル又は Neighbor Cache  である４．に記載の情報処理装置。
６．  複数のネットワークインタフェースそれぞれにおいて送受信されるデータのトラフィック量に関するトラフィック情報を取得する取得手段と、
各前記ネットワークインタフェースのトラフィック量に基づいて、各前記ネットワークインタフェースが、物理ネットワークインタフェースと仮想ネットワークインタフェースのどちらであるかを推定する推定手段と、を有する
情報処理装置。
７．  前記推定手段は、トラフィック量が最も多いネットワークインタフェース又はトラフィック量が他のトラフィック量と比較して有意に多いネットワークインタフェースが、物理ネットワークインタフェースであると推定する、６．に記載の情報処理装置。
８．  トラフィック量に基づいて前記複数のネットワークインタフェースを複数のグループに分けるクラスタリング手段を有し、
前記推定手段は、トラフィック量が最も多いグループに属している各ネットワークインタフェースが、物理ネットワークインタフェースであると推定する、６．に記載の情報処理装置。
９．  物理ネットワークインタフェースであると推定されたネットワークインタフェースと、仮想ネットワークインタフェースであると推定されたネットワークインタフェースとを対応付ける対応付け手段を有する、１．乃至８．いずれか一つに記載の情報処理装置。
１０．  コンピュータを、１．乃至９．いずれか一つに記載の情報処置装置として動作させるプログラム。
１１．  コンピュータによって実行される制御方法であって、
複数のネットワークインタフェースそれぞれについて、データの送受信を行える状態であるか否かを示す状態情報を取得する取得ステップと、
第１の前記ネットワークインタフェースがデータの送受信を行えない状態であり、かつ第１の前記ネットワークインタフェースとは異なる第２の前記ネットワークインタフェースがデータの送受信を行える状態である場合に、第１の前記ネットワークインタフェースは仮想的なネットワークインタフェースであると推定する推定ステップと、を有する制御方法。
１２．  前記取得ステップは、異なる複数の時点それぞれにおける前記状態情報を取得し、
前記推定ステップは、異なる複数の時点それぞれにおける前記状態情報を用いて、第１の前記ネットワークインタフェースがデータの送受信を行えない状態になったことを検出する１１．に記載の制御方法。
１３．  前記状態情報は、レイヤ２スイッチが有する MAC（Media Access Control）アドレステーブルである、１１．に記載の制御方法。
１４．  コンピュータによって実行される制御方法であって、
MAC（Media Access Control）アドレスと IP（Internet Protocol）アドレスとの対応付けを示すアドレス情報を取得する取得ステップと、
複数のIPv4（IP version 4）アドレス又は複数の同一スコープの IPv6（IP version 6）アドレスが割り当てられている MAC アドレスを持つネットワークインタフェースが、物理ネットワークインタフェースであると推定する推定ステップと、
を有する制御方法。
１５．  前記アドレス情報は ARP（Address Resolution Protocol）テーブル又は Neighbor Cache  である１４．に記載の制御方法。
１６．  コンピュータによって実行される制御方法であって、
複数のネットワークインタフェースそれぞれにおいて送受信されるデータのトラフィック量に関するトラフィック情報を取得する取得ステップと、
各前記ネットワークインタフェースのトラフィック量に基づいて、各前記ネットワークインタフェースが、物理ネットワークインタフェースと仮想ネットワークインタフェースのどちらであるかを推定する推定ステップと、を有する制御方法。
１７．  前記推定ステップは、トラフィック量が最も多いネットワークインタフェース又はトラフィック量が他のトラフィック量と比較して有意に多いネットワークインタフェースが、物理ネットワークインタフェースであると推定する、１６．に記載の制御方法。
１８．  トラフィック量に基づいて前記複数のネットワークインタフェースを複数のグループに分けるクラスタリングステップを有し、
前記推定ステップは、トラフィック量が最も多いグループに属している各ネットワークインタフェースが、物理ネットワークインタフェースであると推定する、１６．に記載の制御方法。
１９．  物理ネットワークインタフェースであると推定されたネットワークインタフェースと、仮想ネットワークインタフェースであると推定されたネットワークインタフェースとを対応付ける対応付けステップを有する、１１．乃至１８．いずれか一つに記載の制御方法。
【符号の説明】
【０１２７】
１０  物理マシン
２０  VMM
３０  物理ネットワークインタフェース
４０  NAT インタフェース
５０  VM
６０  ゲスト OS
７０  仮想ネットワークインタフェース
８０  仮想ルータ
９０  仮想ブリッジ
１００  物理ネットワーク
１１０  仮想ネットワーク
１２０  ネットワークインタフェース
１３０  ネットワーク
１０２０  バス
１０４０  プロセッサ
１０６０  メモリ
１０８０  ストレージ
１１００  入出力インタフェース
１１２０  ネットワークインタフェース
２０００  情報処理装置
２０２０  取得部
２０４０  推定部
２０６０  第２取得部
２０８０  第３取得部
２１００  対応付け部
【図１】
2016201691.tif 000004
【図２】
2016201691.tif 000005
【図３】
2016201691.tif 000006
【図４】
2016201691.tif 000007
【図５】
2016201691.tif 000008
【図６】
2016201691.tif 000009
【図７】
2016201691.tif 000010
【図８】
2016201691.tif 000011
【図９】
2016201691.tif 000012
【図１０】
2016201691.tif 000013
【図１１】
2016201691.tif 000014
【図１２】
2016201691.tif 000015
【図１３】
2016201691.tif 000016