(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上述したような仮想ネットワークでは、パケットを中継するソフトウェアである仮想スイッチの接続関係と、その仮想スイッチが動作する物理的なコンピュータ装置である仮想中継装置の接続関係とは異なるものとなる。このような仮想ネットワーク上で、例えばICMP(Internet Control Message Protocol)パケットを送信して転送経路を探索しようとする場合、その経路探索によって解析できるのは仮想ネットワーク上の仮想スイッチや仮想マシンの仮想的な接続関係である。ただし、このような仮想ネットワークにおいても、物理的な仮想中継装置の接続関係を解析することが有用な場合もある。
【0005】
本発明は、このような状況に鑑みてなされたもので、仮想ネットワークにおける仮想中継装置の物理的な接続関係を解析することを支援するネットワークシステム、経路解析装置、仮想中継装置、経路探索方法、経路探索プログラムを提供する。
【課題を解決するための手段】
【0006】
上述した課題を解決するために、本発明の一態様は、複数の仮想中継装置によって仮想化された仮想ネットワークにおける前記仮想中継装置と、当該仮想中継装置と
複数の物理マシンである中継装置とに接続された経路解析装置とを備えたネットワークシステムであって、前記経路解析装置は、所定の追跡パケットを生成し、生成した追跡パケットを前記仮想中継装置
及び前記中継装置に送信する追跡パケット送信部と、前記追跡パケット送信部によって送信された前記追跡パケットに対する返信パケットを受信する返信パケット解析部と、を備え、前記仮想中継装置は、前記経路解析装置から送信された前記追跡パケットを受信すると、自装置を物理的に一意に特定する識別情報が含まれる返信パケットを生成し、生成した返信パケットを前記経路解析装置に送信する追跡パケット処理部を備え
、前記中継装置は、前記追跡パケットを受信すると、自装置を物理的に一意に特定する識別情報と自装置のIPアドレスとが含まれる返信パケットを生成し、生成した返信パケットを前記経路解析装置に送信する処理部を備え、前記返信パケット解析部が、前記返信パケットが前記仮想中継装置からの場合に前記識別情報を表示し、前記返信パケットが前記中継装置からの場合に前記識別情報及びIPアドレスを表示することを特徴とするネットワークシステムである。
【0007】
また、本発明の一態様は、前記追跡パケットは、所定の識別子を含むICMPパケットであり、前記仮想中継装置の前記追跡パケット処理部
及び前記中継装置は、受信するパケットに前記識別子が含まれるか否かを判定し、前記識別子が含まれると判定した場合、前記追跡パケットを受信したとして前記返信パケットを生成することを特徴とする。
【0008】
また、本発明の一態様は、前記追跡パケットには、当該追跡パケットを転送する回数を示す転送回数が含まれ、前記仮想中継装置の前記追跡パケット処理部
及び前記中継装置は、前記経路解析装置から送信された前記追跡パケットを受信すると、当該追跡パケットに含まれる転送回数を1減算し、減算した結果が0でない場合に、当該追跡パケットを転送することを特徴とする。
【0009】
また、本発明の一態様は、前記仮想中継装置の前記追跡パケット処理部は、前記識別情報として自装置のMACアドレスが含まれる前記返信パケットを生成
し、前記中継装置の前記追跡パケット処理部は、自装置の前記IPアドレスと、前記識別情報として自装置のMACアドレスが含まれる前記返信パケットを生成することを特徴とする。
【0010】
また、本発明の一態様は、
上記いずれかのネットワークシステムにおいて用いられ、複数の仮想中継装置によって仮想化された仮想ネットワークにおける前記仮想中継装置であって、経路解析装置から送信された所定の追跡パケットを受信すると、自装置を物理的に一意に特定する識別情報が含まれる返信パケットを生成し、生成した返信パケットを前記経路解析装置に送信する追跡パケット処理部を備える前記仮想中継装置に接続された前記経路解析装置であって、前記追跡パケットを生成し、生成した追跡パケットを前記仮想中継装置に送信する追跡パケット送信部と、前記追跡パケット送信部によって送信された前記追跡パケットに対する返信パケットを受信する返信パケット解析部と、を備えることを特徴とする。
【0011】
また、本発明の一態様は、
上記いずれかのネットワークシステムにおいて用いられ、複数の仮想中継装置によって仮想化された仮想ネットワークにおける前記仮想中継装置と、当該仮想中継装置に接続され、所定の追跡パケットを生成し、生成した追跡パケットを前記仮想中継装置に送信する追跡パケット送信部と、前記追跡パケット送信部によって送信された前記追跡パケットに対する返信パケットを受信する返信パケット解析部とを備える経路解析装置とを備えたネットワークシステムにおける前記仮想中継装置であって、前記経路解析装置から送信された前記追跡パケットを受信すると、自装置を物理的に一意に特定する識別情報が含まれる返信パケットを生成し、生成した返信パケットを前記経路解析装置に送信する追跡パケット処理部を備えることを特徴とする。
【0012】
また、本発明の一態様は、複数の仮想中継装置によって仮想化された仮想ネットワークにおける前記仮想中継装置と、当該仮想中継装置と
複数の物理マシンである中継装置とに接続された経路解析装置とを備えたネットワークシステムの経路探索方法であって、前記経路解析装置が、所定の追跡パケットを生成し、生成した追跡パケットを前記仮想中継装置
及び前記中継装置に送信するステップと、前記仮想中継装置が、前記経路解析装置から送信された前記追跡パケットを受信すると、自装置を物理的に一意に特定する識別情報が含まれる返信パケットを生成し、生成した返信パケットを前記経路解析装置に送信するステップと、
前記仮想中継装置が、前記経路解析装置から送信された前記追跡パケットを受信すると、自装置を物理的に一意に特定する識別情報が含まれる返信パケットを生成し、生成した返信パケットを前記経路解析装置に送信するステップと、前記中継装置が、前記追跡パケットを受信すると、自装置を物理的に一意に特定する識別情報と自装置のIPアドレスとが含まれる返信パケットを生成し、生成した返信パケットを前記経路解析装置に送信するステップと、前記経路解析装置が、前記仮想中継装置
及び前記中継装置から送信される返信パケットを受信するステップと、
前記経路解析装置が、
前記返信パケットが前記仮想中継装置からの場合に前記識別情報を表示し、前記返信パケットが前記中継装置からの場合に前記識別情報及びIPアドレスを表示するステップとを備えることを特徴とする経路探索方法である。
【0013】
また、本発明の一態様は、複数の仮想中継装置によって仮想化された仮想ネットワークにおける前記仮想中継装置と、当該仮想中継装置と
複数の物理マシンである中継装置とに接続された経路解析装置とを備えたネットワークシステムのコンピュータに、前記経路解析装置が、所定の追跡パケットを生成し、生成した追跡パケットを前記仮想中継装置
及び前記中継装置に送信するステップと、前記経路解析装置が、
送信された前記追跡パケットを受信し、自装置を物理的に一意に特定する識別情報が含まれる前記仮想中継装置からの返信パケットを受信するステップと、前記経路解析装置が、送信された前記追跡パケットを受信し、自装置のIPアドレスと自装置を物理的に一意に特定する識別情報が含まれる前記中継装置からの返信パケットを受信するステップと、前記経路解析装置が、前記返信パケットが前記仮想中継装置からの場合に前記識別情報を表示し、前記返信パケットが前記中継装置からの場合に前記識別情報及びIPアドレスを表示するステップと、前記経路解析装置が、
前記返信パケットが前記仮想中継装置からの場合に前記識別情報を表示し、前記返信パケットが前記中継装置からの場合に前記識別情報及びIPアドレスを表示するステップとを実行させる経路探索プログラムである。
【発明の効果】
【0014】
以上説明したように、本発明によれば、複数の仮想中継装置によって仮想化された仮想ネットワークにおける仮想中継装置と、仮想中継装置に接続された経路解析装置とを備えたネットワークシステムであって、経路解析装置は、所定の追跡パケットを生成し、生成した追跡パケットを仮想中継装置に送信する追跡パケット送信部と、追跡パケット送信部によって送信された追跡パケットに対する返信パケットを受信する返信パケット解析部と、を備え、仮想中継装置は、経路解析装置から送信された追跡パケットを受信すると、自装置を物理的に一意に特定する識別情報が含まれる返信パケットを生成し、生成した返信パケットを経路解析装置に送信する追跡パケット処理部を備えるようにしたので、仮想ネットワークにおける仮想中継装置の接続関係を解析することを支援することができる。
【発明を実施するための形態】
【0016】
以下、本発明の一実施形態について、図面を参照して説明する。
図1は、本実施形態によるネットワークシステム1の構成例を示すブロック図である。本実施形態のネットワークシステム1は、経路解析装置10と、経路解析装置20−1と、中継装置30と、仮想中継装置20−2と、仮想中継装置20−3と、ホストコンピュータ装置40とのコンピュータ装置を備えている。経路解析装置20−1と、経路解析装置20−2と、経路解析装置20−3とは同様の構成であるので、特に区別しない場合には「−1」、「−2」等を省略して仮想中継装置20として説明する。
【0017】
ここで、仮想中継装置20はL(レイヤー)2ネットワークによる仮想ネットワークを構成する仮想スイッチを備えたコンピュータ装置であり、中継装置30は、仮想ネットワークではない従来通りの転送処理を行うコンピュータ装置である。ここで、図面を参照して、本実施形態のネットワークシステム1による経路探索処理と、従来のネットワークによる経路探索処理との相違点を説明する。
【0018】
図2は、従来のネットワークシステムによる経路探索処理の第1の例を示す図である。ここでは、経路解析装置110とホストコンピュータ装置140とが、中継装置130−1と、中継装置130−2と、中継装置130−3とによって構成されるネットワークを介して接続されている。経路解析装置110は、ホストコンピュータ装置140までの経路を探索するために、ホストコンピュータ装置140を宛先としたICMP要求パケットを送信する。
【0019】
まず、1回目の送信として、経路解析装置110が、ホストコンピュータ装置140を宛先として、TTL(Time to live)が1であるICMP要求パケットを送信すると、中継装置130−1が、経路解析装置110から送信されたICMP要求パケットを受信する。中継装置130−1は、TTLを1減算し、TTLが0になると、経路解析装置110にICMP返信パケットを送信する。
【0020】
経路解析装置110は、中継装置130−1から送信されたICMP返信パケットを受信すると、2回目の送信として、ホストコンピュータ装置140を宛先として、TTLが2であるICMP要求パケットを送信する。中継装置130−1が、経路解析装置110から送信されたICMP要求パケットを受信し、TTLを1減算して中継装置130−2に転送する。中継装置130−2が、中継装置130−1から転送されたICMP要求パケットを受信すると、TTLを1減算し、TTLが0になると、経路解析装置110にICMP返信パケットを送信する。
【0021】
経路解析装置110は、中継装置130−2から送信されたICMP返信パケットを受信すると、3回目の送信として、ホストコンピュータ装置140を宛先として、TTLが3であるICMP要求パケットを送信する。中継装置130−1が、経路解析装置110から送信されたICMP要求パケットを受信し、TTLを1減算して中継装置130−2に転送する。中継装置130−2が、中継装置130−1から転送されたICMP要求パケットを受信すると、TTLを1減算して中継装置130−3に転送する。中継装置130−3が、中継装置130−2から転送されたICMP要求パケットを受信すると、TTLを1減算し、TTLが0になると、経路解析装置110にICMP返信パケットを送信する。
【0022】
経路解析装置110は、中継装置130−3から送信されたICMP返信パケットを受信すると、4回目の送信として、ホストコンピュータ装置140を宛先として、TTLが4であるICMP要求パケットを送信する。中継装置130−1が、経路解析装置110から送信されたICMP要求パケットを受信し、TTLを1減算して中継装置130−2に転送する。中継装置130−2が、中継装置130−1から転送されたICMP要求パケットを受信すると、TTLを1減算して中継装置130−3に転送する。中継装置130−3が、中継装置130−2から転送されたICMP要求パケットを受信すると、TTLを1減算してホストコンピュータ装置140に転送する。ホストコンピュータ装置140が、中継装置130−3から転送されたICMP要求パケットを受信すると、TTLを1減算し、TTLが0になると、経路解析装置110にICMP返信パケットを送信する。このようにして、経路解析装置110は、自装置からホストコンピュータ装置140までの転送経路上に存在する各装置からのICMP返信パケットを受信することができる。経路解析装置110がこのように受信したICMP返信パケットを解析して表示することで、ネットワークの管理者等は、経路解析装置110からホストコンピュータ装置140までパケットが転送される経路を知ることができる。
【0023】
図3は、従来のネットワークシステムによる経路探索処理の第2の例を示す図である。この例では、経路解析装置110とホストコンピュータ装置140とは、仮想中継装置120−1と、仮想中継装置120−2と、仮想中継装置120−3とによって構成されるL2ネットワークによる仮想ネットワークを介して接続されている。経路解析装置110は、ホストコンピュータ装置140までの経路を探索するために、ホストコンピュータ装置140を宛先としたICMP要求パケットを送信する。
【0024】
ここで、仮想中継装置120−1と、仮想中継装置120−2と、仮想中継装置120−3とは、L2ネットワークを構成しているため、仮想的に単一のL2ネットワークに収容されているものとみなされる。仮想中継装置120−1と、仮想中継装置120−2と、仮想中継装置120−3とは、ホストコンピュータ装置140を宛先としたICMP要求パケットを転送するものの、ICMPはL3のプロトコルであるため、L3であるICMP要求パケットに対する返信パケットは送信せず、IPヘッダに記述されているTTLを減算する処理も行わない。このため、ホストコンピュータ装置140のみが、ICMP要求パケットを受信すると、TTLを1減算し、TTLが0になると、経路解析装置110にICMP返信パケットを送信する。
【0025】
すなわち、このような仮想ネットワークでは、経路解析装置110からホストコンピュータ装置140までの転送経路上に存在する各装置からはICMP返信パケットが送信されず、ネットワークの管理者等は、経路解析装置110からホストコンピュータ装置140までパケットが転送される物理的な経路を知ることができない。
【0026】
図4は、従来のネットワークシステムによる経路探索処理の第3の例を示す図である。この例では、経路解析装置110とホストコンピュータ装置140とは、仮想中継装置120−4と、中継装置130−4と、仮想中継装置120−5とを介して接続されている。すなわち、経路解析装置110とホストコンピュータ装置140とは、仮想ネットワークと従来のネットワークとを介して接続されている。
【0027】
この場合、経路解析装置110が、1回目の送信として、ホストコンピュータ装置140を宛先として、TTLが1であるICMP要求パケットを送信すると、仮想中継装置120−4は、L3であるICMP要求パケットに対する返信パケットは送信せず、IPヘッダに記述されているTTLを減算する処理も行わずに、ICMP要求パケットを中継装置130−4に転送する。中継装置130−4は、経路解析装置110から送信されたICMP要求パケットを受信すると、TTLを1減算し、TTLが0になると、経路解析装置110にICMP返信パケットを送信する。
【0028】
経路解析装置110は、中継装置130−4から送信されたICMP返信パケットを受信すると、2回目の送信として、ホストコンピュータ装置140を宛先として、TTLが2であるICMP要求パケットを送信する。仮想中継装置120−4は、ICMP要求パケットに対する返信パケットは送信せず、IPヘッダに記述されているTTLを減算する処理も行わずに、ICMP要求パケットを中継装置130−4に転送する。中継装置130−4は、経路解析装置110から送信されたICMP要求パケットを受信すると、TTLを1減算し、ICMP要求パケットを仮想中継装置120−5に転送する。仮想中継装置120−5は、ICMP要求パケットに対する返信パケットは送信せず、IPヘッダに記述されているTTLを減算する処理も行わずに、ICMP要求パケットをホストコンピュータ装置140に転送する。ホストコンピュータ装置140が、仮想中継装置120−5から転送されたICMP要求パケットを受信すると、TTLを1減算し、TTLが0になると、経路解析装置110にICMP返信パケットを送信する。
【0029】
すなわち、このような仮想ネットワークと従来のネットワークとが接続されたネットワークにおいても、経路解析装置110からホストコンピュータ装置140までの転送経路上に存在する各装置からはICMP返信パケットが送信されないため、ネットワークの管理者等は、経路解析装置110からホストコンピュータ装置140までパケットが転送される経路を知ることができない。
【0030】
そこで、本実施形態のネットワークシステム1は、このような仮想ネットワーク、または仮想ネットワークと従来のネットワークとが接続されたネットワークにおいても、経路解析装置からホストコンピュータ装置までの転送経路上に存在する各装置からICMP返信パケットを送信することで、仮想ネットワークを含むネットワークにおけるパケットの転送経路上の各コンピュータ装置の物理的な接続関係を解析することを支援する。以下、このようなネットワークシステム1の構成について、詳細に説明する。
【0031】
図1に戻り、経路解析装置10は、仮想ネットワークを構成する仮想中継装置20に接続され、仮想ネットワークを含むネットワークを介して接続されたホストコンピュータ装置40への経路探索を行うコンピュータ装置である。経路解析装置10は、入力部11と、制御部12とを備えている。
入力部11は、キーボードやマウス等の入力デバイスであり、ユーザからの入力を受け付ける。例えば、入力部11には、経路探索の開始指示が入力される。経路探索の開始指示は、例えば、tracerouteコマンドやpingコマンドである。
【0032】
制御部12は、経路解析装置10が備える各部を制御する。制御部12は、追跡パケット送信部13と、返信パケット解析部14とを備えている。
追跡パケット送信部13は、所定の追跡パケットを生成し、生成した追跡パケットを仮想中継装置20−1に送信する。この追跡パケットは、例えば、所定の識別子を含むICMPパケットである。また、追跡パケットには、追跡パケットを転送する回数を示す転送回数が含まれる。
【0033】
図5は、追跡パケット送信部13が生成する追跡パケットの例を示す図である。追跡パケットは、MAC(Media Access Control)ヘッダと、IP(Intellectual Property)ヘッダと、ICMPヘッダと、データとを含む。IPヘッダには、転送回数を示す情報であるTTLが含まれる。TTLは、そのパケットを転送する回数を示す情報である。例えば、追跡パケット送信部13は、TTLを1から開始し、1ずつ加算ながら、TTLがパケットを転送する上限の回数である上限転送回数(上限TTL)になるまで複数回、追跡パケットを生成して送信する。上限TTLは、例えば所定の初期値(例えば、30)とすることができるが、ユーザから入力される上限TTLを適用することもできる。
【0034】
ICMPヘッダには、TYPEと、CODEと、チェックサムと、IDと、シーケンス番号とのフィールドが含まれる。TYPEは、ICMPの種類を示す情報であり、例えば8であればエコー要求(echo request)であることを示し、0であればエコー応答(echo reply)であることを示す。本実施形態では、TYPEに8が記述されたICMPパケットをICMP要求パケットといい、TYPEに0が記述されたICMPパケットをICMP返信パケットという。IDには、そのICMPパケットの送信元において自由に利用できるフィールドである。そこで、本実施形態では、このIDのフィールドに、このパケットが仮想ネットワークにおいて経路探索を行うためのパケットであることを示す情報を所定の識別子として記述する。
【0035】
また、追跡パケット送信部13は、このように生成した追跡パケットを、ユーザから入力された宛先に送信する。本実施形態では、宛先としてホストコンピュータ装置40のIPアドレスが入力された例を説明する。追跡パケット送信部13は、生成した追跡パケットを、仮想中継装置20−1に送信する。パケットを受信した各装置は、受信したパケットに所定の識別子が含まれているか否かを判定することにより、そのパケットが仮想ネットワークにおいて経路探索を行うためのパケットであるか否かを判定することができ、所定の識別子が含まれている場合には、所定の追跡パケット処理を行う。
【0036】
返信パケット解析部14は、追跡パケット送信部13によって送信された追跡パケットに対する返信パケットを受信する。例えば、返信パケット解析部14は、追跡パケットの宛先であるホストコンピュータ装置40との間の経路において追跡パケットを転送する各装置である仮想中継装置20−1と、中継装置30と、仮想中継装置20−2と、仮想中継装置20−3とから送信される返信パケットを受信する。返信パケットは、ICMP返信パケットである。
【0037】
返信パケット解析部14は、返信パケットに含まれる、返信元の装置を識別する返信元識別情報を、自装置が備えるディスプレイ等の出力部に表示させる。返信元識別情報は、例えば、返信元のMACアドレスまたはIPアドレスまたはその双方である。ここで、経路上の仮想中継装置20の仮想スイッチはIPアドレスを持たないため、MACアドレスを表示させる。IPアドレスを持つ中継装置30については、IPアドレスとMACアドレスとを持つため、IPアドレスとMACアドレスとのいずれかまたは双方を表示させる。また、返信パケット解析部14は、追跡パケット送信部13が追跡パケットを送信した時点から、追跡パケット送信部13が送信した追跡パケットに対する返信パケットを受信する時点までの経過時間を計測し、計測した経過時間を、返信元識別情報とともに表示させる。
【0038】
仮想中継装置20は、複数の仮想中継装置20によってL2ネットワークによる仮想ネットワークを構成する仮想スイッチ21を備えたコンピュータ装置である。ここは、簡単のため、1台の仮想中継装置20が1つの仮想スイッチ21を備える例を示しているが、例えば、仮想中継装置20には複数の仮想マシンが起動されており、これらの複数の仮想マシンを相互に接続する複数の仮想スイッチ21を備えるようなものであってもよい。
【0039】
仮想スイッチ21は、L2ネットワークによる仮想ネットワークを構成するソフトウェアである。仮想スイッチ21は、SDN(Software Defined Networking)とよばれるようなネットワーク仮想化技術によってネットワーク機器をソフトウェア制御することで、従来のOSI(Open Systems Interconnection)参照モデルのような階層の概念に捉われない柔軟なネットワーク構成を実現する仮想的なスイッチ(SDNスイッチ)である。仮想スイッチ21は、L2(データリンク層)、L3(ネットワーク層)、L7(アプリケーション層)までを統合して処理することが可能である。例えば、ひとつのパケットの中で、L2やL3に属するヘッダ部分と、L7のデータを含むペイロード部分とを同時に書き換える処理や、パケットの宛先を変更することなども可能である。仮想スイッチ21は、追跡パケット処理部22を備えている。
【0040】
追跡パケット処理部22は、経路解析装置10から送信された追跡パケットを受信すると、自装置を物理的に一意に特定する識別情報が含まれる返信パケットを生成し、生成した返信パケットを経路解析装置10に送信する。自装置を物理的に一意に特定する識別情報は、例えば、自装置のMACアドレスである。この識別情報は、返信元識別情報であり、例えば、返信パケットのDATAフィールドに記述することができる。ここで、追跡パケット処理部22は、受信するパケットに所定の識別子が含まれるか否かを判定し、所定の識別子が含まれると判定した場合、追跡パケットを受信したとして返信パケットを生成する。返信パケットは、ICMP返信パケットである。
【0041】
ここで、追跡パケット処理部22は、経路解析装置10から送信された追跡パケットを受信すると、その追跡パケットに含まれる転送回数を1減算し、減算した結果が0でない場合に、追跡パケットを転送し、減算した結果が0である場合に、返信パケットを生成し、生成した返信パケットを経路解析装置10に送信する。本実施形態の例では、追跡パケットには転送回数であるTTLが記述されている。追跡パケット処理部22は、追跡パケットに含まれるTTLを1減算し、減算した結果が0でなければ、転送回数が所定の上限転送回数より小さいと判定し、追跡パケットを宛先に向けて転送する。一方、減算した結果が0であれば、転送回数が所定の上限転送回数より小さくない(転送回数が所定の上限転送回数に到達した)と判定し、返信パケットを生成して送信する。
ここで、例えば、OpenFlow(登録商標)によってSDNを実現する場合、フローテーブルに上述したような処理を行うためのヘッダフィールドとアクションとを定義しておき、追跡パケット処理部22は、このフローテーブルに基づいて上述したような処理を行うことができる。
【0042】
中継装置30は、仮想ネットワークではないパケット転送を行うコンピュータ装置である。例えば、中継装置30は、L3スイッチやルータである。中継装置30は、ICMP要求パケットを受信すると、所定のICMP処理を行う。すなわち、中継装置30は、ICMP要求パケットに含まれるTTLを減算してTTLが0になればICMP返信パケットを生成してICMP要求パケットの送信元に返信する。TTLが0にならなければ、ICMP要求パケットを宛先に向けて転送する。このように、本実施形態による追跡パケットはICMPによって定められた形式に準拠するため、追跡パケットを受信した中継装置30は、通常のICMP処理により返信、または転送することができる。このため、経路解析装置10が、仮想ネットワークと従来のネットワークとが含まれるネットワークに向けて追跡パケットを送信した場合、仮想ネットワーク上の仮想中継装置20は所定の識別子に基づいて追跡パケットを返信または転送する処理を行うことができ、従来のネットワーク上の中継装置30は通常のICMP処理により返信または転送することができる。
【0043】
ホストコンピュータ装置40は、経路解析装置10から送信される追跡パケットの宛先のコンピュータ装置である。ホストコンピュータ装置40は、中継装置30と同様に、ICMP要求パケットを受信すると、所定のICMP処理を行う。追跡パケットはICMPに準拠するため、ホストコンピュータ装置40は、経路解析装置10から送信される追跡パケットに対して通常のICMP処理を行うことで、ICMP返信パケットを返信することができる。
【0044】
次に、図面を参照して、本実施形態によるネットワークシステム1の動作例を説明する。
図6は、本実施形態による経路解析装置10の動作例を示すフローチャートである。
経路解析装置10の入力部11は、ユーザから経路探索の開始指示の入力を受け付ける。ここでは、宛先をホストコンピュータ装置40とし、上限TTLが指定されなかった例を説明する。追跡パケット送信部13は、初期値(例えば、30)である上限TTLを自身の記憶領域に記憶させる。
【0045】
追跡パケット送信部13は、TTLを1として(ステップS1)、追跡パケットを生成し、宛先に向けて送信する(ステップS2)。追跡パケット送信部13が送信した追跡パケットに対する返信パケットが送信されてくると(ステップS3:Yes)、返信パケット解析部14は、送信された返信パケットを受信する。返信パケット解析部14は、追跡パケット送信部13が追跡パケットを送信してから返信パケットを受信するまでの経過時間を表示部に表示させ(ステップS4)、返信元識別情報を含む返信パケットの情報を表示部に表示させる(ステップS5)。
【0046】
返信パケット解析部14は、返信パケットに含まれる返信元識別情報が宛先であるか否かを判定し、返信元識別情報が宛先であると判定すると(ステップS6:Yes)、処理を終了する。返信元識別情報が宛先でないと判定すると(ステップS6:No)、ステップS8に進む。ステップS3において、追跡パケット送信部13が送信した追跡パケットに対する返信パケットが送信されてこなければ(ステップS3:No)、返信パケット解析部14は、タイムアウトを表示部に表示させ(ステップS7)、ステップS8に進む。追跡パケット送信部13は、ステップS2において送信した追跡パケットのTTLが上限TTL未満でなければ(ステップS8:No)、処理を終了する。ステップS2において送信した追跡パケットのTTLが上限TTL未満であれば(ステップS8:Yes)、TTLに1を加算して(ステップS9)、ステップS2に戻り、加算したTTLを記述した追跡パケットを生成して宛先に送信し、以下の処理を繰り返す。
【0047】
図7は、本実施形態による仮想中継装置20の動作例を示すフローチャートである。
仮想中継装置20の追跡パケット処理部22は、自身に送信されてくるパケットを受信すると(ステップS11)、受信したパケットに所定の識別子が含まれるか否かを判定する。追跡パケット処理部22は、受信したパケットに所定の識別子が含まれないと判定すると、そのパケットは追跡パケットではないとして(ステップS12:No)、通常のパケット処理を行う(ステップS13)。ステップS12において、追跡パケット処理部22が、受信したパケットに所定の識別子が含まれると判定すると、そのパケットは追跡パケットであるとして(ステップS12:Yes)、追跡パケットに記述されたTTLを1減算する(ステップS14)。
【0048】
追跡パケット処理部22は、減算した結果のTTLが0でなければ(ステップS15:No)、ステップS13に進む。この場合、ステップS13において行われる通常のパケット処理とは、その追跡パケットを宛先に向けて転送する処理である。ステップS15において、減算した結果のTTLが0であれば(ステップS15:Yes)、追跡パケット処理部22は、返信パケットを生成し、生成した返信パケットを追跡パケットの送信元に返信し(ステップS16)、ステップS11に戻る。
【0049】
以上説明したように、本実施形態によれば、L2ネットワークである仮想ネットワークを構成する仮想中継装置20の仮想スイッチ21が、経路解析装置10から送信される追跡パケットに対して、自装置を物理的に特定する識別情報を含む返信パケットを送信するようにしたので、従来のネットワークにおいてはL3ネットワークにおいてのみ動作するICMPに基づく処理と同様の経路探索を、L2ネットワークである仮想ネットワーク上において実行することができる。これにより、仮想ネットワークを構成する各仮想スイッチ21の物理的な接続関係の解析を支援することが可能となる。また、仮想ネットワークにおけるパケットの到達確認、転送経路の検証、パケットのループなどを検出することができ、例えば、仮想ネットワークを含むネットワークにおける通信に何らかの不具合が発生している場合に、その原因の解析や対策を支援することができる。
【0050】
これにより、例えば、仮想ネットワークと従来のネットワークとを含むネットワークにおいて、仮想ネットワークと従来のネットワークとの接続点において従来のネットワークと同様のインタフェースを構築する必要があり、このようなネットワークの接続性を検証することが可能となる。
【0051】
また、仮想ネットワークにおいては、仮想マシンに対してIPアドレスが割り振られているため、例えば、仮想マシンが物理マシン間を移動する(ライブマイグレーション)場合には、仮想マシンとともにIPアドレスも移動することになる。このため、このような仮想ネットワークにおいて、物理マシンを原因として何らかの通信の不具合が発生している場合、パケットを転送する仮想マシンのIPアドレスに基づいて解析を行うよりも、パケットを転送する物理マシンの経路を特定する方が有用なことがある。また、そもそも、仮想スイッチの挙動に不具合が発生しているのか、物理マシンの挙動に不具合が発生しているのかを切り分けるためにも、パケットを転送する物理マシンの経路を特定することは有用である。
【0052】
なお、本実施形態では、経路解析装置10が直接に仮想中継装置20−1に接続されている例を説明したが、経路解析装置10と、追跡パケットの宛先であるホストコンピュータ装置40との間の経路上に仮想ネットワークが含まれるものであればよい。すなわち、例えば、経路解析装置10が直接に接続されるのは中継装置30であり、その中継装置30のネットワークの先に仮想ネットワークが接続され、その先にホストコンピュータ装置40が接続されるような環境であっても、本実施形態と同様の経路解析装置10や仮想中継装置20を適用することにより、経路探索処理を行うことができる。
【0053】
また、上述した経路解析装置10の制御部12が備える追跡パケット送信部13と返信パケット解析部14とは、物理マシンである経路解析装置10のコンピュータリソースを仮想化して起動された仮想マシンが備えるものであってもよい。
また、本実施形態では、追跡パケットにおけるICMPヘッダのIDフィールドに、そのパケットが仮想ネットワークにおいて経路探索を行うためのパケットであることを示す所定の識別子を記述する例を示したが、パケットにおける他のフィールドに、そのパケットが仮想ネットワークにおいて経路探索を行うためのパケットであることを示す所定の識別子を記述することもできる。例えば、データ(ペイロード)フィールドに、所定の識別子を記述しておくことも可能である。
【0054】
また、上述の例では、パケットの転送範囲を定める転送回数は、追跡パケットを転送する回数を示す、いわゆるTTLであるとして説明したが、転送回数は、パケットの転送範囲を制御できる情報であればよい。例えば、追跡パケットには、追跡パケットが転送された回数を示す転送回数を含ませておき、追跡パケット処理部22は、受信した追跡パケットに含まれる転送回数を1加算し、転送回数が所定の上限転送回数より小さい場合、追跡パケットを転送するようにしてもよい。この場合、例えば、追跡パケット処理部22は、所定の上限転送回数を予め自身の記憶領域に記憶させておくことができる。
【0055】
また、上述の例では、仮想中継装置20の追跡パケット処理部22が返信パケットに含ませる返信元識別情報としてMACアドレスを適用したが、自装置を物理的に一意に特定する識別情報であれば、他の情報を適用してもよい。例えば、仮想中継装置20(仮想スイッチ21)にIPアドレスが割り振られており、そのIPアドレスによって仮想中継装置20を特定できる場合にはそのIPアドレスを適用してもよいし、あるいは製造番号などを適用することもできる。
【0056】
また、本実施形態では、経路解析装置10が送信する追跡パケットの宛先はホストコンピュータ装置40であることとしたが、経路解析装置10が送信する追跡パケットの宛先は、仮想ネットワークを含むネットワークに接続されたどのようなコンピュータ装置、ネットワーク機器でもよい。
【0057】
また、上述した実施形態では、仮想スイッチ21がSDNスイッチである例を説明したが、仮想スイッチ21がフローテーブルに記述されたヘッダフィールドやアクションに基づいて動作する際には、複数のSDNスイッチに対するSDNコントローラと通信しながら、制御することができる。
【0058】
また、本実施形態では、仮想スイッチ21が追跡パケット処理部22を備えることとし、仮想スイッチ21の機能として追跡パケット処理を行う例を示したが、仮想スイッチ21とは独立して、仮想中継装置20が追跡パケット処理部22を備えるようにしてもよい。
【0059】
なお、本発明における処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより経路探索を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、インターネットやWAN、LAN、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、ネットワークを介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、上述した機能の一部を実現するためのものであってもよい。さらに、上述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【0060】
また、上述した機能の一部または全部を、LSI(Large Scale Integration)等の集積回路として実現してもよい。上述した各機能は個別にプロセッサ化してもよいし、一部、または全部を集積してプロセッサ化してもよい。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現してもよい。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。