(57)【要約】【課題】ネットワーク機器を直接的に制御することなく、ＶＬＡＮ−ＩＤより制約が小さい資源であるトンネルＩＤを用いて、パケット転送を抑制させるべきリンクを介したパケット転送を抑制させるための技術を提供する。【解決手段】制御サーバ３は、ホスト１−１、１−２に対し、他方から送信されるＡＲＰパケットを廃棄させるフィルタ設定を行い（ＳＣ１）、ホスト１−１、及び１−２を対象にしたＧＡＲＰパケットの送信をＬ２ＧＷ１０−２３に指示する（ＳＣ２）。その指示により、Ｌ２ＧＷ１０−２３は、ＧＡＲＰパケットを送信し（ＳＤ１、ＳＤ２）、ホスト１−１、１−２から送信されるＡＲＰパケットに応答する（ＳＤ３）。そのようにして、ホスト１−１、１−２間のパケット転送における通信先として、ホスト１−１、１−２にＬ２ＧＷ１０−２３を認識させる。【選択図】図１２
2015198295.tif 000002
【特許請求の範囲】
【請求項１】
パケットの送信元である第１の情報処理装置と、前記パケットの送信先である第２の情報処理装置と、第１のポートと第２のポートを備えるとともに前記パケットを前記第１のポートと前記第２のポート間で中継する第３の情報処理装置と、前記第１の情報処理装置と前記第２の情報処理装置と前記第３の情報処理装置を制御する制御装置とを有する情報処理システムにおいて、
前記制御装置は、
前記第２の情報処理装置を識別する第２の識別情報を含むアドレスを解決するための第１の要求パケットを受信しないように前記第２の情報処理装置に設定する設定部と、
前記第３の情報処理装置に前記第１のポートから前記第１の識別情報を含む第１の確認パケットを送信させ、前記第１の情報処理装置に前記第１の要求パケットを送信させ、前記第３の情報処理装置に前記第１のポートから前記第１の要求パケットに対する第１の応答パケットを送信させる制御部とを有することを特徴とする情報処理システム。
【請求項２】
前記設定部はさらに、
前記第１の情報処理装置を識別する第１の識別情報を含むアドレスを解決するための第２の要求パケットを受信しないように前記第１の情報処理装置を設定し、
前記制御部はさらに、
前記第３の情報処理装置に前記第２のポートから前記第２の識別情報を含む第２の確認パケットを送信させ、前記第２の情報処理装置に前記第２の要求パケットを送信させ、前記第３の情報処理装置に前記第２のポートから前記第２の要求パケットに対する第２の応答パケットを送信させることを特徴とする請求項１記載の情報処理システム。
【請求項３】
前記情報処理システムは、
３台以上の複数の情報処理装置を有し、
前記制御装置はさらに、
前記ネットワークで輻輳が発生した場合、前記複数の情報処理装置のうち、発生した輻輳を回避できる経路上に存在する情報処理装置を、前記第３の情報処理装置として選択する選択部を有することを特徴とする請求項１又は２記載の情報処理システム。
【請求項４】
パケットの送信元である第１の情報処理装置と、前記パケットの送信先である第２の情報処理装置と、第１のポートと第２のポートを備えるとともに前記パケットを前記第１のポートと前記第２のポート間で中継する第３の情報処理装置とを制御する制御装置において、
前記制御装置は、
前記第２の情報処理装置を識別する第２の識別情報を含むアドレスを解決するための第１の要求パケットを受信しないように前記第２の情報処理装置に設定する設定部と、
前記第３の情報処理装置に、前記第１のポートから前記第１の識別情報を含む第１の確認パケットを送信させ、前記第１の情報処理装置に、前記第１の要求パケットを送信させ、前記第３の情報処理装置に、前記第１のポートから前記第１の要求パケットに対する第１の応答パケットを送信させる制御部とを有することを特徴とする制御装置。
【請求項５】
パケットの送信元である第１の情報処理装置と、前記パケットの送信先である第２の情報処理装置と、第１のポートと第２のポートを備えるとともに前記パケットを前記第１のポートと前記第２のポート間で中継する第３の情報処理装置と、前記第１の情報処理装置と前記第２の情報処理装置と前記第３の情報処理装置を制御する制御装置とを有する情報処理システムの制御方法において、
前記制御装置が、
前記第２の情報処理装置を識別する第２の識別情報を含むアドレスを解決するための第１の要求パケットを受信しないように前記第２の情報処理装置に設定し、
前記第３の情報処理装置に、前記第１のポートから前記第１の識別情報を含む第１の確認パケットを送信させ、
前記第１の情報処理装置に、前記第１の要求パケットを送信させ、
前記第３の情報処理装置に、前記第１のポートから前記第１の要求パケットに対する第１の応答パケットを送信させることを特徴とする情報処理システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数台の情報処理装置を備えた情報処理システム、その制御方法、及びその情報処理システムに用いられる制御装置に関する。
【背景技術】
【０００２】
現在、情報処理装置はネットワークに接続可能となっている。ノードとしてネットワークに接続される情報処理装置とは、端末装置、端末装置等にサービス、若しくは処理能力等を提供するホストコンピュータ（以降「ホスト」と略記）、或いは情報収集等の何らかの処理を行う機器等である。ここでは、ホストは端末装置に対してサービスを提供するサーバを含む意味で用いる。また、以降、特に断らない限り、情報処理装置は、パケットの送信元（送信側）、或いは送信先（受信側）となる情報処理装置を指す意味で用いる。情報処理装置以外のノードは、大部分はハブ、或いはスイッチ等のネットワーク機器である。このことから、情報処理装置以外のノードは「ネットワーク機器」と表記する。
【０００３】
ネットワークに接続される情報処理装置の台数は増大傾向にある。現在では、１つのネットワークに多くの情報処理装置が接続されているのが普通となっている。また、情報処理装置間で送受信されるデータ量も増大傾向にある。このようなことから、ネットワーク上のトラフィック量も増大傾向にある。
【０００４】
各情報処理装置から送信されたパケットは、ネットワークの構成、及びパケットを送受信する各情報処理装置のネットワーク上の位置に応じた経路で転送される。比較的に多くの転送経路が重なるリンクは、他のリンクよりも通信トラフィックが集中しやすくなり易いことから、情報処理装置の性能ボトルネックとなる可能性が高い。
【０００５】
このようなネットワーク内でのトラフィックの集中は、ネットワークに接続された情報処理装置の処理能力を低下させる要因となる。このようなことから、ネットワーク内でのトラフィック集中は発生させないようにするのが望ましい。
【０００６】
ネットワーク内でのトラフィック集中発生の抑制は、パケットの転送経路を制御することで可能である。転送経路を制御する従来の方法としては、ネットワーク機器の管理を通して行う第１の方法、ＶＬＡＮ（Virtual Local Area Network）技術を用いて行う第２の方法、等が考えられる。
【０００７】
ネットワーク機器は、受信したパケットのヘッダを参照し、受信したパケットを送信するポートを決定する。パケットを送信すべきポートの決定には、通常、ＭＡＣ（Media Access Control）アドレス、或いはＩＰ（Internet Protocol）アドレスと、パケットを送信すべきポートとの関係を表すパケットフォワーディングテーブルが用いられる。このパケットフォワーディングテーブルの内容をネットワーク管理システム経由で変更することによってパケットの転送経路を変更することができる．しかし，ネットワーク管理システムを通してパケットの転送経路を制御する場合、外部からの直接的な制御によりパケットフォワーディングテーブルを更新可能なネットワーク機器が設置され、且つ任意のネットワーク機器を制御可能なネットワーク管理システムが存在することが前提となる。しかし、その前提をネットワーク（そのネットワークが構築されたデータセンタ等の施設）が満たしているとは限らない。管理システムの構築、及びその管理システムによる直接的な制御が可能なネットワーク機器への交換には多大なコストが発生する。このようなことから、第１の方法の適用は望ましくない面が多い。コストをより確実に抑えるためには、外部からの直接的な制御が可能なネットワーク機器の存在は想定すべきではないと云える。
【０００８】
ネットワークを論理的に複数のブロードキャストドメイン（ＶＬＡＮ）に分割するＶＬＡＮ技術は、ネットワークに非常に多くの情報処理装置が接続されるようになっていることもあり、現在では広く用いられている。
【０００９】
ＶＬＡＮへの分割により、パケットの転送経路は変化する。第２の方法では、このことを利用する。第２の方法では、複数の経路毎に予めＶＬＡＮを設定し、実際にボトルネックとなったリンクを通過しないように使用するＶＬＡＮを切り替える。使用するＶＬＡＮの切り替えにより、ボトルネックとなったリンクを介したパケット転送を回避させることができる。しかし、そのようなパケット転送の回避のためには、あらかじめ多くのＶＬＡＮを設定しておかなければならない。
【００１０】
各ＶＬＡＮには、識別情報として、ＶＬＡＮ−ＩＤ（IDentifier）が割り当てられる。割り当て可能なＶＬＡＮ−ＩＤは有限な資源であり、現在では、ネットワークの規模から、割り当て可能なＶＬＡＮ−ＩＤの数は必ずしも十分ではなくなっている。このような現状から、第２の方法は適用できるとは限らない。これは、資源上の制約の程度は重視すべき事項であることを意味する。
【００１１】
上記のようなことから、ボトルネック等の理由によりパケット転送を抑制（ここでは回避を含む）させるべきリンクの存在、或いは発生への対応には、ネットワーク機器を制御することなく、制約がより小さい資源を用いて行うのが望ましいと思われる。
【００１２】
特許文献１には、第１のコンピュータ及び第２のコンピュータを含む複数のコンピュータと通信可能な対策機器であって、通信サービスの制限開始命令に応答して、前記第１のコンピュータに記録された前記第２のコンピュータの通信アドレスを、前記対策機器の通信アドレスに変更し、前記第２のコンピュータに記録された前記第１のコンピュータの通信アドレスを、前記対策機器の通信アドレスに変更する通信アドレス変更手段と、前記第１のコンピュータから前記第２のコンピュータへのパケットを取得する第１パケット取得手段と、前記第２のコンピュータから前記第１のコンピュータへのパケットを取得する第２パケット取得手段と、前記第１パケット取得手段が取得したパケットを前記第２のコンピュータに送信するかを判断する第１判断手段と、を備えることにより前記第１のコンピュータと前記第２のコンピュータとによる通信サービスを制限する対策機器が記載されている。
【００１３】
特許文献２には、自己のＩＰアドレス及びＭＡＣアドレスと、監視対象となる複数の端末のＩＰアドレスとを記憶するアドレス記憶手段と、アドレス記憶手段に記憶された複数の端末のＩＰアドレスを用いて当該複数の端末との間でＡＲＰ要求メッセージ及びＡＲＰ応答メッセージを送受信して、当該複数の端末が記憶しているＩＰアドレスとＭＡＣアドレスとの組を記述したＡＲＰテーブルを書き換える代理ＡＲＰ処理手段と、複数の端末のうちの何れかの端末から送信されたパケットを受信するパケット受信手段と、パケット受信手段で受信したパケットを解析して所定の条件に合致する場合にパケットに所定のフィルタリング処理を施すフィルタリング手段と、フィルタリング手段によって処理されたパケットを他の端末に転送するパケット転送手段とを備えるパケット転送装置が記載されている。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２００６−７４７０５号公報
【特許文献２】特開２００８−１０９３５７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
一側面では、本発明は、ネットワーク機器を直接的に制御することなく、ＶＬＡＮ−ＩＤより制約が小さい資源であるトンネルＩＤを用いて、パケット転送を抑制させるべきリンクを介したパケット転送を抑制させるための技術を提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明を適用した１システムは、パケットの送信元である第１の情報処理装置と、前記パケットの送信先である第２の情報処理装置と、第１のポートと第２のポートを備えるとともに前記パケットを前記第１のポートと前記第２のポート間で中継する第３の情報処理装置と、前記第１の情報処理装置と前記第２の情報処理装置と前記第３の情報処理装置を制御する制御装置とを有する。前記制御装置は、前記第２の情報処理装置を識別する第２の識別情報を含むアドレスを解決するための第１の要求パケットを受信しないように前記第２の情報処理装置に設定する設定部と、前記第３の情報処理装置に前記第１のポートから前記第１の識別情報を含む第１の確認パケットを送信させ、前記第１の情報処理装置に前記第１の要求パケットを送信させ、前記第３の情報処理装置に前記第１のポートから前記第１の要求パケットに対する第１の応答パケットを送信させる制御部とを有する。
【発明の効果】
【００１７】
本発明を適用した場合には、ネットワーク機器を直接的に制御することなく、ＶＬＡＮ−ＩＤより制約が小さい資源であるトンネルＩＤを用いて、パケット転送を抑制させるべきリンクを介したパケット転送を抑制させることができる。
【図面の簡単な説明】
【００１８】
【図１】本実施形態による情報処理システムの構成例を説明する図である。
【図２】制御サーバによるパケットの転送経路の切り替え制御例を説明する図である。
【図３】トンネルを用いて送信されるパケットの構成例を説明する図である。
【図４】制御サーバ、ホスト、ホスト上に作成されるＬ２ＧＷ、及びスイッチの機能構成例を説明する図である。
【図５】ＧＡＲＰパケットの構成例を説明する図である。
【図６】Ｌ２ＧＷを配備するホストの選択方法例を説明する図である。
【図７】ＶＭフロー毎の経路テーブルの構成例を説明する図である。
【図８】ＶＭ稼働ホストテーブルの構成例を説明する図である。
【図９】ＡＲＰパケットのフィルタリング設定のために送信されるメッセージ例を説明する図である。
【図１０】ＧＡＲＰパケットの送信のためのメッセージ例を説明する図である。
【図１１】パケットの転送経路を切り替える場合の制御サーバ、ホスト、及びスイッチの動作例を説明する図である。
【図１２】パケットの転送経路を切り替える場合の制御サーバ、ホスト、及びスイッチの動作例を表すシーケンス図である。
【図１３】制御サーバが実行する転送経路切り替え処理のフローチャートである。
【図１４】ホストが実行するパケット送信処理のフローチャートである。
【図１５】ホストが実行するパケット受信処理のフローチャートである。
【図１６】中継ホストが実行するパケット受信処理のフローチャートである。
【発明を実施するための形態】
【００１９】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
図１は、本実施形態による情報処理システムの構成例を説明する図である。本実施形態による情報処理システムは、例えばデータセンタに構築されたシステムである。図１には、説明上、便宜的に、情報処理システムの一部を抜粋して表している。
【００２０】
図１に「Ｈｏｓｔ０」〜「Ｈｏｓｔ５」と表記のホストコンピュータ（以降「ホスト」と略記）１（１−０〜１−５）は、全て本実施形態による情報処理装置である。図１には、パケットの送信元、或いは送信先となる情報処理装置として、本実施形態による情報処理装置であるホスト１のみ表している。各ホスト１は、図１に表すように、複数のＣＰＵ（Central Processing Unit）１１、ＦＷＨ（Firm-Ware Hub）１２、メモリ１３、ハードディスク装置（ＨＤ）１４、及び１つ以上のＮＩＣ（Network Interface Card）１５（１５−１、１５−２）を備えている。
【００２１】
各ホスト１上には、ＶＭ（Virtual Machine）が作成される。図１中に表記の「ＶＭａ」「ＶＭｂ」及び「Ｌ２ＧＷ」は何れもホスト１に作成されたＶＭを表している。「ＶＭａ」及び「ＶＭｂ」は、サービス、若しくは処理能力等を提供するために作成されるＶＭであり、「Ｌ２ＧＷ」はパケットの転送経路を制御するために作成されるＶＭである。そのような用途の違いから、符号として、「ＶＭａ」及び「ＶＭｂ」には１０−１（１０−１１、１０−１２）、「Ｌ２ＧＷ」には１０−２（１０−２３〜１０−２５）をそれぞれ付している。以降、各ホスト１上に作成される「ＶＭａ」及び「ＶＭｂ」等は、作成されるホスト１を区別する必要のない場合「ＶＭｎ」と表記する。また、作成されるホスト１、及び用途を区別する必要のないＶＭには符号として１０を付すこととする。
【００２２】
ここでは、ＶＭ１０が動作する仮想化環境は、ハイパーバイザー型と想定する。その想定では、仮想化環境は，ハードディスク装置１４上のハイパーバイザーによって提供される。各ＶＭ１０で動作するゲストＯＳ（Operating System）１０１、及びアプリケーション・プログラム（以降「アプリケーション」と略記）は、例えばハードディスク装置１４上に格納されている。ホストＯＳ型の仮想化環境であった場合、ハードディスク装置１４上にはホストＯＳ１１０も格納される。
【００２３】
各ホスト１上に作成された各ＶＭ１０上には、仮想的なＮＩＣである仮想ＮＩＣが構築され、構築された仮想ＮＩＣにはＭＡＣアドレスが割り当てられる。そのため、ホスト１間の通信、つまりパケットの送受信は、ＶＭ１０単位で行われる。
【００２４】
図１に表記の「ＳＷ１」〜「ＳＷ６」は、ネットワーク機器２（２−１〜２−６）である。ネットワーク機器２の種類は特に限定されない。しかし、ここでは各ネットワーク機器２は、ＭＡＣアドレスと、パケットを送信すべきポートとの関係を表すテーブル（以降「フォワーディングテーブル」と表記）２ａを参照し、受信したパケットを送信すべきポートを選択すると想定する。そのフォワーディングテーブル２ａの各エントリ（レコード）には、他に、自身が属するＶＬＡＮを表すＶＬＡＮ−ＩＤが保存されている。以降、各ネットワーク機器２は「スイッチ」と表記する。
【００２５】
情報処理システムには、管理用として、制御サーバ３が設置されている。この制御サーバ３は、本実施形態による制御装置であり、図１に表すように、１つ以上のＣＰＵ３１、ＦＷＨ３２、メモリ３３、ハードディスク装置３４、及び１つ以上のＮＩＣ３５を備えている。
【００２６】
制御サーバ３は、少なくともホスト１を制御対象としている。例えばハードディスク装置３４上には、情報処理システムを管理するための制御プログラム３ｃが格納されている。ＣＰＵ３１がその制御プログラム３ｃを実行することにより、制御サーバ３は情報処理システムの管理を行う。ここでは、図２に表すように、制御サーバ３はスイッチ２−１に接続されていると想定する。制御サーバ３と各ホスト１間の通信は、スイッチ２を介して行わせなくとも良い。
【００２７】
図２は、制御サーバによるパケットの転送経路の切り替え制御例を説明する図である。図２では、スイッチ２−４とスイッチ２−３を接続するリンクに輻輳が発生した場合に行われる、ホスト１−１とホスト１−２間で送受信されるパケットの転送経路の切り替え制御例を表している。
【００２８】
図２には、パケットの転送経路の切り替えに関係するノードのみを抜粋したネットワーク構成図を２つ表している。図２に向かって左側のネットワーク構成図には、輻輳が発生する前のパケットの転送経路５１を実線で表している。その転送経路５１から、ホスト１−１とホスト１−２間で送受信されるパケットは、スイッチ２−４、２−３、及び２−５を介して転送される。
【００２９】
スイッチ２−４とスイッチ２−３を接続するリンクに輻輳が発生した場合、ホスト１−１とホスト１−２間で送受信されるパケットは、輻輳が発生した輻輳リンクを避けて転送させる必要がある。そのため、本実施形態では、図２に向かって右側のネットワーク構成図に表すように、例えばホスト１−３を介し、ホスト１−１とホスト１−２間のパケット転送を行わせる。そのようなパケット転送を可能にするために、本実施形態では、ホスト１−１とホスト１−３間のパケットの転送経路５５、及びホスト１−２とホスト１−３間のパケットの転送経路５６を設定させる。ホスト１−３上に作成されたＬ２ＧＷ１０−２（１０−２３）は、転送経路５５と転送経路５６間のパケットの中継（転送）を行う。転送経路５５を介したパケットの受信、及びパケットの転送経路５５への送信と、転送経路５６を介したパケットの受信、及びパケットの転送経路５５への送信とは、異なるＮＩＣ１５を用いて行われる。
【００３０】
図２に表すような２つの転送経路５５、及び５６の設定により、ホスト１−１とホスト１−２間のパケット転送は、輻輳リンクを介さずに行われる。そのため、輻輳リンクが発生しても、より快適な通信環境が維持され、ホスト１−１、及び１−２によって提供されるサービスの質の低下等も抑制されることとなる。
【００３１】
本実施形態では、２つの転送経路５５、及び５６の設定は、トンネリング技術を用いて行われる。トンネリング技術は、ネットワーク上の２点間を結ぶ閉じられた仮想的な通信路であるトンネルを確立する技術である。
【００３２】
図３は、トンネルを用いて送信されるパケットの構成例を説明する図である。
トンネル通信用のパケット（以降「トンネル化パケット」と表記）は、本来の通信に使用するプロトコルで記述されたパケット（以降「通常パケット」と表記）をカプセル化して作成される。図３に表すトンネリングプロトコル情報４０は、カプセル化のために通常パケットに付加される情報である。図３に表す例では、トンネリングプロトコル情報４０は、送信先ＭＡＣアドレス（図３中「Outer MAC DA」と表記）、送信元ＭＡＣアドレス（図３中「Outer MAC SA」と表記）、ＶＬＡＮ−ＩＤ、送信先ＩＰアドレス（図３中「Outer IP DA」と表記）、送信元ＩＰアドレス（図３中「Outer IP SA」と表記）、及びトンネルＩＤを含む。
【００３３】
一方、通常パケットは、図３に表すように、例えば送信先ＭＡＣアドレス（図３中「Inner MAC DA」と表記）、送信元MACアドレス（図３中「Inner MAC SA」と表記）、タイプデータ（図３中「TYPE」と表記）、及びＩＰパケットを含む。タイプフィールドに格納されるタイプデータは、プロトコルの種別を表すデータであり、図３に表す例ではＩＰを表している。
【００３４】
ＶＬＡＮの識別子であるＶＬＡＮ−ＩＤの格納フィールドには１２ビットが割り当てられ、トンネルＩＤの格納フィールドには２４ビットが割り当てられている。そのため、トンネルの設定は、ＶＬＡＮの設定と比較して、資源であるＩＤの制約が非常に小さく、非常に多くのトンネルの設定が可能である。多くのネットワークは、トンネルの設定に対応しており、トンネルの設定には、何れのスイッチ２にも直接的な制御を行う必要はない。このようなことから、ホスト１−１とホスト１−２間の輻輳リンクを避けたパケット転送は、何れのスイッチ２を直接的に制御することなく、ＶＬＡＮ−ＩＤより制約の小さい資源を用いて実現させることができる。
【００３５】
なお、転送経路５５、及び５６のような転送経路の切り替えのための設定は、輻輳リンクの発生以外の理由により行っても良い。例えば何れかのスイッチ２、或いは何れかのリンクに障害が発生したことを契機に、転送経路の切り替えのための設定を行っても良い。或いは設定されたＶＬＡＮ上でボトルネックとなりうるリンクの判明を契機に、転送経路の切り替えのための設定を行っても良い。このようなことから、転送経路の切り替えを行う契機は特に限定されない。しかし、ここでは、説明上、便宜的に、契機としては輻輳リンクの発生のみを想定する。
【００３６】
図４、制御サーバ、ホスト、ホスト上に作成されるＬ２ＧＷ、及びスイッチの機能構成例を説明する図である。次に図４を参照し、図２に表すような転送経路の切り替え制御を可能にする制御サーバ３、ホスト１、そのホスト１上に作成されるＬ２ＧＷ１０−２、及びスイッチ２の機能について詳細に説明する。
【００３７】
図２に表すような転送経路の切り替えは、２台のホスト１間のパケット転送に、別のホスト１を介在させることで実現される。それにより、図２に表す例では、ホスト１−１とホスト１−２間を結ぶ転送経路５１は、ホスト１−１とホスト１−３を結ぶ転送経路５５と、ホスト１−３とホスト１−２を結ぶ転送経路５６とに分割された形となっている。図４では、そのような転送経路の切り替えに特に係わる機能を表している。
【００３８】
スイッチ２は、状態検出機能２０１、テーブル更新機能２０２、及びパケット中継機能２０３を備える。
【００３９】
状態検出機能２０１は、リンクが接続されているポートの検出、及び接続されているリンクを介した通信状況の診断、等を行う。輻輳が発生しているか否かの診断は、この状態検出機能２０１によって行われ、輻輳が発生していると診断した場合、状態検出機能２０１は、その旨を制御サーバ３に通知する。輻輳が発生しているか否かの診断自体は、例えば所定のパケットを送信してから応答を受信するまでの時間を計時することで行われる。
【００４０】
上記のように、各スイッチ２は、ＭＡＣアドレスと、パケットを送信すべきポートとの関係を表すフォワーディングテーブル２ａを参照し、受信したパケットを送信すべきポートを選択する。テーブル更新機能２０２は、受信したパケットを用いた学習によるエントリの追加、或いは削除すべきエントリの削除、等により、フォワーディングテーブル２ａを更新する。
【００４１】
送受信されるパケットには、ＡＲＰ（Address Resolution Protocol）パケット、及びＧＡＲＰ（Gratuitous ARP）パケットがある。本実施形態では、図２に表すような転送経路の切り替えに、ＡＲＰパケット、及びＧＡＲＰパケットを用いることを想定している。
【００４２】
ＡＲＰパケットは、ＩＰアドレスからＭＡＣアドレスを確認するアドレス解決要求のためにブロードキャストされるパケットである。ＡＲＰパケットに格納されたＩＰアドレスを割り当てられているホスト１は、そのＡＲＰパケットの受信により、自身のＭＡＣアドレスを格納した応答パケットを送信する。このため、各ホスト１は、ＩＰアドレスを格納したＡＲＰパケットの送信により、そのＩＰアドレスが割り当てられたホスト１のＭＡＣアドレスを確認するアドレス解決を行うことができる。
【００４３】
ＡＲＰパケットを送信、或いは受信したホスト１は、ＡＲＰパケットの送信、或いは受信によって得られた情報をテーブル（ＡＲＰテーブル）１００に格納する。そのＡＲＰテーブル１００のエントリには、例えばＩＰアドレス、及びＭＡＣアドレスが少なくとも格納される。ここでは、ＡＲＰパケット、或いはＡＲＰ応答パケットを受信したＮＩＣ１５を表すインターフェース情報も各エントリに格納されると想定する。
【００４４】
ＧＡＲＰパケットは、他のホスト１に同じアドレスが割り当てられているか否かの確認のためにブロードキャストされるＡＲＰパケットである。
【００４５】
図５は、ＧＡＲＰパケットの構成例を説明する図である。このＧＡＲＰパケットは、非トンネル通信で送信されるパケットである。そのため、基本的な構成は、カプセル化を行っていない通常パケットと同じであり、図５に表すように、例えば送信先ＭＡＣアドレス（図５中「MAC DA」と表記）、送信元ＭＡＣアドレス（図５中「MAC SA」と表記）、タイプデータ（図５中「TYPE」と表記）、及びＡＲＰパケット（図５中「ＡＲＰペイロード」と表記）を含む。タイプフィールドに格納されるタイプデータは、プロトコルの種別を表すデータであり、図５に表記の「０ｘ０８０６」は、ＡＲＰを表す値である。
【００４６】
ＡＲＰパケットは、ハードウェアタイプ、プロトコルタイプ、ハードウェアアドレス長（図５中「Hardware Length」と表記）、プロトコルアドレス長（図５中「Protocol Length」と表記）、オペレーション、送信元ＭＡＣアドレス（図５中「Sender H/W Address」と表記）、送信元ＩＰアドレス（図５中「Sender IP  Address」と表記）、探索対象ＭＡＣアドレス（図５中「Target H/W Address」と表記）、及び探索対象ＩＰアドレス（図５中「Target IP Address」と表記）を含む。
【００４７】
ハードウェアタイプは、ハードウェアの種別を表す情報であり、図５中に表記の「１」はイーサネット（登録商標）の場合の値である。
【００４８】
プロトコルタイプは、プロトコルの種別を表す情報であり、図５中に表記の「０ｘ０８００」はＩＰを表している。
【００４９】
ハードウェアアドレス長は、ＭＡＣアドレスのデータ長を表す情報であり、その値は固定値の「６」である。
【００５０】
プロトコルアドレス長は、プロトコルタイプで指定されるプロトコルのアドレス長（ここではＩＰアドレス長）を表す情報であり、その値は固定値の「４」である。
【００５１】
オペレーションは、ＡＲＰの動作の種類、及び要求か否かを表す情報である。
送信元ＭＡＣアドレス、及び送信元ＩＰアドレスは、ＧＡＲＰパケットを送信するホスト１に割り当てられたＭＡＣアドレス、及びＩＰアドレスである。探索対象ＭＡＣアドレス、及び探索対象ＩＰアドレスは、ＧＡＲＰパケットの応答をすべきホスト１を指定する。ＧＡＲＰパケットでは、探索対象ＭＡＣアドレス、及び探索対象ＩＰアドレスは、ＧＡＲＰパケットを送信するホスト１に割り当てられているＭＡＣアドレス、及びＩＰアドレスとなる。
【００５２】
上記のような構成のＧＡＲＰパケットを受信したホスト１は、ＡＲＰパケットに格納されている探索対象ＭＡＣアドレス、及び探索対象ＩＰアドレスを確認し、削除すべきエントリを削除する。その結果、ＧＡＲＰパケットが送信された場合、何れかのホスト１でＡＲＰテーブル１００の更新が行われる。
【００５３】
ホスト１は、ＡＲＰテーブル１００の何れかのエントリに格納されているＭＡＣアドレスを探索対象ＭＡＣアドレスとするＧＡＲＰパケットを受信した場合、そのＭＡＣアドレスを格納したエントリを削除する。そのため、ホスト１は、削除したエントリにＭＡＣアドレスが格納されていた他のホスト１との通信を行う前に、ＡＲＰパケットの送信を行う。
【００５４】
スイッチ２もホスト１と同様に、ＧＡＲＰパケットの受信により、受信したＧＡＲＰパケットで指定されたＭＡＣアドレスが格納されているエントリをフォワーディングテーブル２ａから削除する。そのようなエントリのフォワーディングテーブル２ａからの削除は、テーブル更新機能２０２によって実現される。
【００５５】
各ホスト１は、フィルタリング機能１１１、及びアドレス解決機能１１２を備える。これらは、例えばホストＯＳ１１０によって実現される機能である。
【００５６】
アドレス解決機能１１２は、ＡＲＰパケットの作成・送信により、ＩＰアドレスからＭＡＣアドレスを確認するアドレス解決を行う。ＡＲＰテーブル１００の更新は、このアドレス解決機能１１２によって行われる。
【００５７】
上記ＧＡＲＰパケットの送信は、転送経路の切り替えのために行われる。図２に表す例では、ＧＡＲＰパケットの送信は、ホスト１−１上のＶＭａ１０−１１とホスト１−２上のＶＭｂ１０−１２間のパケット転送が直接的に行えないようにする。
【００５８】
ＧＡＲＰパケットの受信によりＡＲＰテーブル１００中のエントリを削除したホスト１は、削除したエントリにＭＡＣアドレスが格納されていた他のホスト１との通信を行えなくなる。そのため、エントリを削除したホスト１は、削除したエントリにＭＡＣアドレスが格納されていた他のホスト１との通信を行う前に、ＡＲＰパケットの送信を行う。しかし、ホスト１が送信したＡＲＰパケットに他のホスト１が応答した場合、ＡＲＰパケットを送信したホスト１は、削除したエントリを再びＡＲＰテーブル１００に登録することになる。このことから、本実施形態では、各ホスト１に、廃棄すべきＡＲＰパケットを廃棄させるようにしている。フィルタリング機能１１１は、廃棄すべきＡＲＰパケットを廃棄するフィルタリングを行う。ＧＡＲＰパケットの受信によるＡＲＰテーブル１００からのエントリの削除も、このフィルタリング機能１１１によって行われる。
【００５９】
制御サーバ３は、監視機能３０１、Ｌ２ＧＷ配備機能３０２、フィルタリング設定通知機能３０３、及びテーブルクリア送信指示通知機能３０４を備える。これらの機能３０１〜３０４は、制御プログラム３ｃによって実現される。
【００６０】
監視機能３０１は、各ノードを監視するための機能である。各スイッチ２は、状態検出機能２０１によってリンクの輻輳を検出した場合、その旨を制御サーバ３に通知する。その通知は、監視機能３０１によって処理され。認識される。
【００６１】
Ｌ２ＧＷ配備機能３０２は、監視機能３０１からリンクの輻輳が通知された場合に、輻輳が発生したリンクに応じて、パケットの転送を中継させるホスト１、つまりＬ２ＧＷ１０−２を配備すべきホスト１を選択する。選択したホスト１にＬ２ＧＷ１０−２が起動されていない場合、Ｌ２ＧＷ配備機能３０２は、選択したホスト１にＬ２ＧＷ１０−２の起動を指示する。以降、便宜的に、作成されたＬ２ＧＷ１０−２によりパケットの転送を中継するホスト１は「中継ホスト」と表記する。
【００６２】
図６は、Ｌ２ＧＷを配備するホストの選択方法例を説明する図である。ここでは、図６に表すように、６台のスイッチ２（２−０〜２−５）、９台のホスト１（１−１〜１−ｃ）を備えた情報処理システムを想定する。
【００６３】
その情報処理システムでは、ホスト１−１上には２つのＶＭ１０−１１、１０−１２が作成されている。同様にホスト１−２、及び１−３上には１つのＶＭ１０−１３、及び１０−１４、ホスト１−４上には２つのＶＭ１０−１５、及び１０−１６、ホスト１−５、及び１−６上には１つのＶＭ１０−１７、及び１０−１８がそれぞれ作成されている。ホスト１−１、及び１−２はスイッチ１−３と接続されている。同様に、ホスト１−３、及び１−４はスイッチ２−４、ホスト１−５、及び１−６はスイッチ２−５とそれぞれ接続されている。また、ホスト１−ａはスイッチ２−０、ホスト１−ｂはスイッチ２−１、及びホスト１−ｃはスイッチ２―２とそれぞれ接続されている。
【００６４】
図６は、スイッチ２−０とスイッチ２−３を結ぶリンクが輻輳ポイントとなった場合の例を表している。ホスト１−１とホスト１−６間のパケットの転送経路８０は、スイッチ２−３、スイッチ２−０、及びスイッチ２−５を含む。そのため、輻輳ポイントとなったリンクを介さずにパケットを転送できるように、ホスト１−ａ〜１−ｃの３台が中継ホスト１の候補となる。
【００６５】
制御サーバ３は、ＶＭフロー毎の転送経路テーブル３ａ、及びＶＭ稼働ホストテーブル３ｂを管理・保存している。これらのテーブル３ａ、及び３ｂは、中継ホスト１の選択に用いられるテーブルである。Ｌ２ＧＷ配備機能３０２は、これらのテーブル３ａ、及び３ｂを参照し、中継ホスト１を選択する。
【００６６】
図７は、ＶＭフロー毎の経路テーブルの構成例を説明する図であり、図８は、ＶＭ稼働ホストテーブルの構成例を説明する図である。
【００６７】
ＶＭフロー毎の経路テーブル３ａは、通信を行う可能性のあるＶＭｎ１０−１間毎に、そのＶＭｎ１０−１間でパケットが転送されるリンクの集合（組み合わせ）を表すテーブルである。図７中、１つの括弧書きは１つのリンクを表している。例えば「（ホスト１，ＳＷ３）」は、ホスト１−１とスイッチ２−３を結ぶリンクを表している。
【００６８】
ＶＭ１０はそれぞれ、１台の情報処理装置（コンピュータ）として動作する。それにより、各ＶＭ１０は一意に特定できるようにする必要がある。このため、各ＶＭ１０上に仮想的なＮＩＣである仮想ＮＩＣが構築され、構築された仮想ＮＩＣにはＭＡＣアドレスが割り当てられる。このことから、ＶＭフロー毎の経路テーブル３ａでは、ＶＭｎ１０−１間毎に、パケットが転送されるリンクの集合を表している。
【００６９】
ＶＭ稼働ホストテーブル３ｂは、ＶＭｎ１０−１毎に、そのＶＭｎ１０−１が稼働しているホスト１を表すテーブルである。
【００７０】
Ｌ２ＧＷ配備機能３０２は、監視機能３０１から通知された輻輳ポイント（リンク））の情報を用いてＶＭフロー毎の経路テーブル３ａを参照し、その輻輳ポイントを有するエントリを抽出する。次にＬ２ＧＷ配備機能３０２は、抽出したエントリ毎に、輻輳ポイントを介してパケットが転送される２台のＶＭｎ１０−１を特定する。Ｌ２ＧＷ配備機能３０２は、特定したＶＭｎ１０−１を用いてＶＭ稼働ホストテーブル３ｂを参照し、特定したＶＭｎ１０−１が稼働するホスト１を認識する。
【００７１】
中継ホスト１の候補は、認識したホスト１とは異なり、且つ認識したホスト１との間を転送されるパケットが輻輳ポイントを経由しないという中継条件を満たすホスト１である。このことから、Ｌ２ＧＷ配備機能３０２は、ＶＭフロー毎の経路テーブル３ａ、及びＶＭ稼働ホストテーブル３ｂを参照し、中継条件を満たすホスト１を抽出する。図６に表す例では、中継条件を満たすホスト１として、ホスト１−ａ〜１−ｃの３台が抽出される。
【００７２】
上記のような中継条件を満たすホスト１を抽出することにより、輻輳ポイントの発生に適切に対応し、発生した輻輳ポイントを経由しないパケット転送を実現させることができる。
【００７３】
本実施形態では、中継ホスト１の候補のなかでＣＰＵ負荷が最も小さいホスト１を中継ホスト１として選択するようにしている。これは、Ｌ２ＧＷ１０−２を稼働させることによる影響を最小限に抑えるためである。そのため、ホスト１−ａ〜１−ｃのＣＰＵ使用率がそれぞれ５％、２０％、及び１０％であった場合、中継ホスト１としてホスト１−ａが選択される。
【００７４】
各ホスト１のＣＰＵ使用率は、例えばハイパーバイザーによって測定され、予め定められたタイミングで制御サーバ３に通知される。その通知は、監視機能３０１によって処理される。
【００７５】
フィルタリング設定通知機能３０３は、輻輳ポイントを経由してパケットが転送される各ホスト１に対し、廃棄すべきＡＲＰパケットを廃棄させるための設定を行わせる機能である。その設定のために、フィルタリング設定通知機能３０３は、ＩＰアドレスを通知する。通知されるＩＰアドレスは、図２に表す例では、ホスト１−１にはホスト１−２のＩＰアドレス、ホスト１−２にはホスト１−１のＩＰアドレスである。ホスト１が備えるフィルタリング機能１１１は、制御サーバ３から通知されたＩＰアドレスを用いてＡＲＰパケットのフィルタリングを行う。
【００７６】
図９は、ＡＲＰパケットのフィルタリング設定のために送信されるメッセージ例を説明する図である。図９に表す例は、ＨＴＴＰ（Hyper Text Transfer Protocol）を用いた場合の例であり、ホスト１−１宛を想定している。
【００７７】
ＰＯＳＴメソッドとして表記の「/filter」は、フィルタリングの設定を要求する。Ｈｏｓｔリクエストヘッダフィールドに表記の「host2.com」は、ホスト１−２のＵＲＬ（Uniform Resource Locator）を表している。ＭＡＣフィールドに表記の「aa:bb:cc:dd:ee:20」及び「192,168,100,20」は、それぞれホスト１−２のＭＡＣアドレス、及びＩＰアドレスを表している。
【００７８】
ホスト１−２宛のメッセージでは、Ｈｏｓｔリクエストヘッダフィールド、ＭＡＣフィールド、及びＩＰフィールドに格納されるデータはホスト１−１のものとなる。図９に表すようなメッセージ（以降「フィルタリング設定要求メッセージ」と表記する）が制御サーバ３からホスト１−１、及び１−２宛にそれぞれ送信される。その結果、ホスト１−１、及び１−２はＡＲＰパケットのフィルタリングを行う。
【００７９】
そして，Ｌ２ＧＷ１０−２がホスト１−１，ホスト１−２に代わって，ＡＲＰ応答パケットをかえすことにより、ホスト１−１、及びホスト１−２に対し、代わりとなる通信相手として、Ｌ２ＧＷ１０−２３を確実に認識させることができる。
【００８０】
テーブルクリア送信指示通知機能３０４は、Ｌ２ＧＷ配備機能３０２によって中継ホスト１上で稼働するＬ２ＧＷ１０−２に、ＧＡＲＰパケットを送信させる。
【００８１】
図１０は、ＧＡＲＰパケットの送信のためのメッセージ例を説明する図である。図１０に表す例も、ＨＴＴＰを用いた場合の例であり、メッセージの宛先（送信先）は中継ホスト１上のＬ２ＧＷ１０−２である。
【００８２】
ＰＯＳＴメソッドとして表記の「/garp」は、ＧＡＲＰパケットの送信を要求する。Ｈｏｓｔリクエストヘッダフィールドに表記の「l2gw.com」は、中継ホスト１上のＬ２ＧＷ１０２のＵＲＬを表している。
【００８３】
２つのＭＡＣフィールドの一方、及び２つのＩＰフィールドの一方に表記の「aa:bb:cc:dd:ee:20」、及び「192,168,100,20」は、上記のように、ホスト１−２のＭＡＣアドレス、及びＩＰアドレスをそれぞれ表している。他方のＭＡＣフィールド、及び他方のＩＰフィールドに表記の「aa:bb:cc:dd:ee:10」、及び「192,168,100,10」は、ホスト１−１のＭＡＣアドレス、及びＩＰアドレスをそれぞれ表している。これら２組のＭＡＣアドレス、及びＩＰアドレスは、それぞれ別のＧＡＲＰパケットの探索対象ＭＡＣアドレス、及び探索対象ＩＰアドレスとして格納される。それにより、テーブルクリア送信指示通知機能３０４は、図１０に表すようなメッセージ（以降「ＧＡＲＰ送信要求メッセージ」と表記）を中継ホスト１上のＬ２ＧＷ１０−２宛に送信することにより、そのＬ２ＧＷ１０−２に２種類のＧＡＲＰパケットを送信させることができる。
【００８４】
ホスト１上に作成されるＬ２ＧＷ１０−２は、イベント受信機能１２１、テーブルクリア送信機能１２２、及び転送機能１２３を備える。これらの機能１２１〜１２３は、例えばＬ２ＧＷ１０−２上で実行される、パケットの転送のためのアプリケーション（以降「転送アプリケーション」と表記）１０５によって実現される。
【００８５】
イベント受信機能１２１は、制御サーバ３から転送経路の制御用に送信されるメッセージを受信する機能である。受信するメッセージには、上記ＧＡＲＰ送信要求メッセージが含まれる。
【００８６】
テーブルクリア送信機能１２２は、イベント受信機能１２１がＧＡＲＰ送信要求メッセージを受信した場合に、受信されたＧＡＲＰ送信要求メッセージが送信を要求するＧＡＲＰパケットを送信する。
【００８７】
ＧＡＲＰ送信要求メッセージは、受信したＡＲＰパケットのなかで応答を返信すべきＡＲＰパケットを指定する。テーブルクリア送信機能１２２は、ＧＡＲＰ送信要求メッセージ中の何れかのＩＰアドレスを探索対象ＩＰアドレスとするＡＲＰパケットを受信した場合、応答を行う。応答により通知するＭＡＣアドレスは、自Ｌ２ＧＷ１０−２に割り当てられたＭＡＣアドレスである。そのような応答を行うことにより、ホスト１−１は、ホスト１−２の代わりに、Ｌ２ＧＷ１０−２を通信相手として認識する。この結果、図２に表すような転送経路５５、及び５６が実現される。
【００８８】
転送機能１２３は、２種類のＧＡＲＰパケットにそれぞれ探索対象ＭＡＣアドレスとして格納されたＭＡＣアドレスを有する２台のホスト１上のＶＭｎ１０−１間のパケット転送を中継する。中継の対象となるパケットは、トンネル化パケットである。中継対象のトンネル化パケットのトンネリングプロトコル情報４０では、送信先ＭＡＣアドレスが中継ホスト１のＭＡＣアドレス、送信元ＭＡＣアドレスが２台のホスト１上のＶＭｎ１０−１のうちの一方のＭＡＣアドレスとなっている。中継対象となるトンネル化パケット中の通常パケットでは、送信先ＭＡＣアドレスは、Ｌ２ＧＷ１０−２に割り当てられたＭＡＣアドレスとなっている。
【００８９】
転送機能１２３は、そのようなパケットを転送するために、トンネリングプロトコル情報４０、及び通常パケットの送信元ＭＡＣアドレス、及び送信先ＭＡＣアドレスを変更する。具体的には、転送機能１２３は、送信先ＭＡＣアドレスを２台のホスト１の他方のＭＡＣアドレス、送信元ＭＡＣアドレスを自Ｌ２ＧＷ１０−２のＭＡＣアドレスにそれぞれ変更する。そのようにして、転送機能１２３は、図２に表す例では、転送経路５５のパケットを転送経路５６に転送するか、或いは転送経路５６のパケットを転送経路５５に転送する。
【００９０】
図１１は、パケットの転送経路を切り替える場合の制御サーバ、ホスト、及びスイッチの動作例を説明する図であり、図１２は、パケットの転送経路を切り替える場合の制御サーバ、ホスト、及びスイッチの動作例を表すシーケンス図である。次に、図１１、及び図１２を参照し、制御サーバ３、ホスト１、及びスイッチ２の動作について具体的に説明する。
【００９１】
図１１、及び図１２は、図２に表す転送経路の切り替えが行われる場合を例にとっている。そのため、図１２では、転送経路の切り替えが行われるホスト１として、ホスト１−１、及び１−２を表している。これらのホスト１−１、及び１−２は、実際にはＶＭａ１０−１１、及びＶＭｂ１０−１２である。図１２に表記のＬ２ＧＷ１０−２３は、中継ホスト１としてホスト１−３が選択されたと想定していることを表している。スイッチ２としては、切り替えを行う前の転送経路５１上、或いは切り替えを行った後の転送経路５５、若しくは５６上に存在するスイッチ２−１、２−３〜２−５の４台のみを表している。
【００９２】
スイッチ２−３とスイッチ２−４間のリンクに発生した輻輳は、スイッチ２−３，或いは２−４によって制御サーバ３に通知される。制御サーバ３は、その通知（以降「輻輳検出イベント」と表記）の受信により、ホスト１−１、及び１−２上の各ＶＭａ１０−１１、及びＶＭｂ１０−１２に対し、廃棄すべきＡＲＰパケットを廃棄させるためのフィルタ設定を行う（ＳＣ１）。このフィルタ設定により、図９に表すようなフィルタリング設定要求メッセージがホスト１−１、及び１−２上のＶＭａ１０−１１、及びＶＭｂ１０−１２宛にそれぞれ送信される（Ｓ１）。
【００９３】
ホスト１−１、及び１−２は、それぞれ、フィルタリング設定要求メッセージの受信により、ホスト１−２、及び１−１から送信されるＡＲＰパケットを廃棄するためのフィルタ設定を行う（ＳＡ１、ＳＢ１）。
【００９４】
制御サーバ３は、フィルタリング設定要求メッセージを送信した後、中継ホスト１−３上のＬ２ＧＷ１０−２３に対し、ＧＡＲＰパケットの送信を指示する（ＳＣ２）。その送信指示は、図１０に表すようなＧＡＲＰ送信要求メッセージを中継ホスト１−３上のＬ２ＧＷ１０−２３宛に送信することで行われる（Ｓ２）。
【００９５】
中継ホスト１−３上にＬ２ＧＷ１０−２３が作成されていない場合、制御サーバ３は、ＧＡＲＰ送信要求メッセージを送信する前に、中継ホスト１−３にＬ２ＧＷ１０−２３の起動を指示する。図１１、及び図１２では、中継ホスト１−３上にＬ２ＧＷ１０−２３が既に起動していることを想定し、そのＬ２ＧＷ１０−２３を起動させる動作等を省いている。
【００９６】
Ｌ２ＧＷ１０−２３は、受信したＧＡＲＰ送信要求メッセージに従い、探索対象ＭＡＣアドレスが異なる２種類のＧＡＲＰパケットの送信のための処理を順次、行う。その処理は、例えばホスト１−１のＭＡＣアドレスを探索対象ＭＡＣアドレスとするＧＡＲＰパケットのための処理（ＳＤ１）が最初に行われる。次に、ホスト１−２のＭＡＣアドレスを探索対象ＭＡＣアドレスとするＧＡＲＰパケットのための処理（ＳＤ２）が行われる。その結果、ホスト１−１のＭＡＣアドレスを探索対象ＭＡＣアドレスとするＧＡＲＰパケットのブロードキャスト（Ｓ３ａ）が最初に行われる。次に、ホスト１−２のＭＡＣアドレスを探索対象ＭＡＣアドレスとするＧＡＲＰパケットのブロードキャスト（Ｓ３ｂ）が行われる。
【００９７】
探索対象ＭＡＣアドレスの異なる２種類のＧＡＲＰパケットのブロードキャストにより、探索対象ＭＡＣアドレスを格納したエントリは、ホスト１−１、及び１−２の各ＡＲＰテーブル１００中から削除される。また、各スイッチ２も、該当するエントリをフォワーディングテーブル２ａから削除することになる。
【００９８】
そのようなエントリの削除により、ホスト１−１，或いは１−２は、必要に応じてＡＲＰパケットを送信することになる。このため、例えばホスト１−１は、ホスト１−２のＩＰアドレスを格納したＡＲＰパケットを送信するための処理を行う（ＳＡ２）。その結果、ホスト１−１からＡＲＰパケットがブロードキャストされる（Ｓ４ａ）。
【００９９】
ホスト１−２には、ホスト１−１から送信されるＡＲＰパケットを廃棄させるためのフィルタ設定が行われている。そのため、ホスト１−１から送信されたＡＲＰパケットを受信しても、ホスト１−２は受信したＡＲＰパケットを廃棄する（ＳＢ２）。
【０１００】
ホスト１−２には、ホスト１−１から送信されるＡＲＰパケットを廃棄させるためのフィルタ設定が行われている。そのため、ホスト１−１から送信されたＡＲＰパケットを受信しても、ホスト１−２は受信したＡＲＰパケットを廃棄する（ＳＢ３）。
【０１０１】
一方、ホスト１−２も、必要に応じて、ホスト１−１のＩＰアドレスを格納したＡＲＰパケットを送信するための処理を行う（ＳＢ３）。その結果、ホスト１−２からＡＲＰパケットがブロードキャストされる（Ｓ４ｂ）。しかし、ホスト１−１には、ホスト１−２から送信されるＡＲＰパケットを廃棄させるためのフィルタ設定が行われている。そのため、ホスト１−２から送信されたＡＲＰパケットを受信しても、ホスト１−１は受信したＡＲＰパケットを廃棄する（ＳＡ３）。
【０１０２】
Ｌ２ＧＷ１０−２３は、ホスト１−１、及び１−２からそれぞれ送信されたＡＲＰパケットに応答するための処理を行う（ＳＤ３）。それにより、ホスト１−１、及び１−２に対し、Ｌ２ＧＷ１０−２３に割り当てられたＭＡＣアドレスを格納したＡＲＰ応答パケットがそれぞれ送信される（Ｓ５ａ、Ｓ５ｂ）。
【０１０３】
この結果、ホスト１−１は、ＡＲＰテーブル１００に、ホスト１−２上と通信するためのエントリを追加する。そのエントリに格納されるＭＡＣアドレスは、Ｌ２ＧＷ１０−２３に割り当てられたＭＡＣアドレスである。同様に、ホスト１−２もＡＲＰテーブル１００に、Ｌ２ＧＷ１０−２３のＭＡＣアドレスを格納したエントリを追加する。そのため、ホスト１−１上のＶＭａ１０−１１とホスト１−２上のＶＭｂ１０−１２間のパケット転送は、転送経路５５→転送経路５６、或いは転送経路５６→転送経路５５で行われることとなる。
【０１０４】
以降は、図１３〜図１６に表すフローチャートを参照し、制御サーバ３、ホスト１のＶＭｎ１０−１、中継ホスト１のＬ２ＧＷ１０−２の動作について、更に詳細に説明する。
【０１０５】
図１３は、制御サーバ３が実行する転送経路切り替え処理のフローチャートである。この転送経路切り替え処理は、ＣＰＵ３１が制御プログラム３ｃを実行することで実現される処理であり、何れかのスイッチ２から輻輳の検出を通知する輻輳検出イベントの受信を契機に実行される。輻輳ポイント（輻輳リンク）を避けた転送経路の設定は、この転送経路切り替え処理の実行により実現される。
【０１０６】
輻輳ポイントを経由してパケット転送が行われるホスト１の組は普通、複数である。しかし、ここでは、便宜的に、輻輳ポイントを経由してパケット転送が行われる２台のホスト１（ＶＭｎ１０−１）のみを想定し、フローチャートを表している。始めに図１３を参照し、制御サーバ３の動作について詳細に説明する。
【０１０７】
先ず、ＣＰＵ３１は、スイッチ２から送信された輻輳検出イベントの受信のための処理を行う（ＳＣ１１）。次にＣＰＵ３１は、受信した輻輳検出イベントが表す輻輳ポイントから、中継ホスト１の候補を抽出し、抽出した候補のなかでＣＰＵ利用率が最も小さい候補を中継ホスト１に選択する（ＳＣ１２）。この中継ホスト１の選択は、上記のように、ＶＭフロー毎の経路テーブル３ａ（図７）、及びＶＭ稼働ホストテーブル３ｂ（図８）を参照して行われる。
【０１０８】
ＣＰＵ３１は、次に、選択した中継ホスト１にＬ２ＧＷ１０−２が起動されていない場合、Ｌ２ＧＷ１０−２を起動させる（ＳＣ１３）。その後、ＣＰＵ３１は、輻輳ポイントを経由してパケットが転送される２台のホスト１上で稼働している各ＶＭｎ１０−１宛に、廃棄すべきＡＲＰパケットを廃棄させるためのフィルタ設定を行う（ＳＣ１４）。このフィルタ設定は、図１２中、ＳＣ１として実行される処理であり、図９に表すようなフィルタリング設定要求メッセージが対象となる各ＶＭｎ１０−１宛に送信される。
【０１０９】
次に、ＣＰＵ３１は、選択した中継ホスト１上のＬ２ＧＷ１０−２宛に、図１０に表すようなＧＡＲＰ送信要求メッセージを送信する（ＳＣ１５）。このＧＡＲＰ送信要求メッセージを送信する処理は、図１２中、ＳＣ２として実行される処理である。このＧＡＲＰ送信要求メッセージの送信により、１組のＶＭｎ１０−１を対象にした転送経路の切り替えのための一連の処理が終了する。他に転送経路の切り替えが必要なＶＭｎ１０−１の組が存在しない場合、ここで転送経路切り替え処理が終了する。
【０１１０】
図１４は、ホストが実行するパケット送信処理のフローチャートである。このパケット送信処理は、ホストＯＳ１１０をＣＰＵ１１が実行することによって実現される処理であり、パケット（図１４中「Ethernetパケット」と表記）を送信すべき状況となった場合に実行される。次に図１４を参照し、パケット送信処理について詳細に説明する。
【０１１１】
先ず、ＣＰＵ１１は、例えばアプリケーションからパケットの送信依頼（イベント）を受け取る（ＳＡ１１）。その送信依頼には、パケットの送信先として指定されたＩＰアドレスが含まれる。アプリケーション等からの送信依頼が渡されたＣＰＵ１１は、ＡＲＰテーブル１００を参照し、指定されたＩＰアドレスを含むエントリがあるか否か判定する（ＳＡ１２）。指定されたＩＰアドレスを格納したエントリがＡＲＰテーブル１００に存在する場合、ＳＡ１２の判定はＹｅｓとなってＳＡ１４に移行する。指定されたＩＰアドレスを格納したエントリがＡＲＰテーブル１００に存在しない場合、ＳＡ１２の判定はＮｏとなってＳＡ１３に移行する。
【０１１２】
指定されたＩＰアドレスに対応するＭＡＣアドレスが特定できなければ、送信すべきパケット（トンネル化パケット）を生成することはできない。このことから、ＳＡ１３では、ＣＰＵ１１は、指定されたＩＰアドレスに対応するＭＡＣアドレスを確認するためのＡＲＰパケットを作成して送信する。その後、依頼されたパケット（トンネル化パケット）を送信することなく、パケット送信処理が終了する。このＳＡ１３は、図１２中のＳＡ２、及びＳＢ３として実行される処理である。
【０１１３】
一方、ＳＡ１４では、ＣＰＵ１１は、指定されたＩＰアドレスが格納されたエントリを参照して、そのＩＰアドレスに対応するＭＡＣアドレスを取得し、依頼されたパケット（トンネル化パケット）を作成する。次に、ＣＰＵ１１は、作成したトンネル化パケットを、ＡＲＰテーブル１００から特定されるＮＩＣ１５から送信させる（ＳＡ１５）。その後、このパケット送信処理が終了する。
【０１１４】
図２に表すような転送経路の切り替えが行われても、各ホストはＡＲＰテーブル１００を参照し、トンネル化パケットを作成し送信する。このことから、各ホストにおけるトンネル化パケットの作成方法は、転送経路の切り替えが行われたか否かによって変化しない。
【０１１５】
図１５は、ホストが実行するパケット受信処理のフローチャートである。このパケット受信処理も、ホストＯＳ１１０をＣＰＵ１１が実行することによって実現される処理であり、パケットの受信を契機に実行される。次に図１５を参照し、パケット受信処理について詳細に説明する。
【０１１６】
各ホスト１には、必要に応じて、制御サーバ３から転送経路の切り替えに係わるパケット（メッセージ。以降「制御サーバイベント」と表記）が送信される。ここでは、便宜的に、制御サーバイベントとして、図９に表すようなフィルタリング設定要求メッセージのみを想定している。
【０１１７】
先ず、ＣＰＵ１１は、パケットを受信するための処理を行う（ＳＡ２１）。次に、ＣＰＵ１１は、受信したパケットが制御サーバイベントか否か判定する（ＳＡ２２）。図９に表すようなフィルタリング設定要求メッセージを受信した場合、ＳＡ２２の判定はＹｅｓとなってＳＡ２３に移行する。フィルタリング設定要求メッセージを受信しなかった場合、ＳＡ２２の判定はＮｏとなってＳＡ２４に移行する。このＳＡ２３は、図１２中のＳＡ３、及びＳＢ２の一部として実行される処理に相当する。
【０１１８】
ＳＡ２３では、ＣＰＵ１１は、制御サーバイベント（フィルタリング設定要求メッセージ）に含まれるＭＡＣアドレスを送信元ＭＡＣアドレスとするＡＲＰパケット（図１５中「ＡＲＰ要求」と表記）をフィルタ（廃棄）する設定を実施する。その後、このパケット受信処理が終了する。
【０１１９】
ＳＡ２４では、ＣＰＵ１１は、受信したパケットがＡＲＰパケットであり、且つそのＡＲＰパケットの送信元ＭＡＣアドレスがフィルタ用に設定したＭＡＣアドレスと一致するか否か判定する。フィルタ用に設定したＭＡＣアドレスを送信元ＭＡＣアドレスとするＡＲＰパケットを受信した場合、ＳＡ２４の判定はＹｅｓとなってＳＡ２５に移行する。受信したパケットがＡＲＰパケットではない、或いはフィルタ用に設定したＭＡＣアドレスが送信元ＭＡＣアドレスではないＡＲＰパケットを受信した場合、ＳＡ２４の判定はＮｏとなってＳＡ２６に移行する。
【０１２０】
ＳＡ２５では、ＣＰＵ１１は、受信したＡＲＰパケットを廃棄する。その後、このパケット受信処理が終了する。そのＡＲＰパケットの廃棄により、Ｌ２ＧＷ１０−２を介したパケットの転送がより確実に行えるように、転送経路の設定を行うことができる。
【０１２１】
ＳＡ２６では、ＣＰＵ１１は、受信したパケットがＧＡＲＰパケットか否か判定する。ＧＡＲＰパケットを受信した場合、ＳＡ２６の判定はＹｅｓとなってＳＡ２７に移行する。ＧＡＲＰパケットを受信していない場合、ＳＡ２６の判定はＮｏとなってＳＡ２８に移行する。ＧＡＲＰパケットを受信した場合、ＳＡ２６の判定はＹｅｓとなってＳＡ２７に移行する。
【０１２２】
ＳＡ２７では、ＣＰＵ１１は、ＡＲＰテーブル１００から、ＧＡＲＰパケットに格納されている探索対象ＭＡＣアドレスと同じＭＡＣアドレスを含むエントリを削除する。その後、このパケット受信処理が終了する。
【０１２３】
ＳＡ２８では、ＣＰＵ１１は、受信したパケットに含まれるペイロード、つまりＩＰパケット、或いはＡＲＰパケット等に対する処理を行う。その処理には、例えばパケットを渡すべきアプリケーションに渡す処理も含まれる。そのようなＳＡ２８の処理を実行した後、このパケット受信処理が終了する。
【０１２４】
図１６は、中継ホストが実行するパケット受信処理のフローチャートである。このパケット受信処理は、転送アプリケーション１０５をＣＰＵ１１が実行することで実現される処理であり、パケットの受信を契機に実行される。最後に図１６を参照し、中継ホスト１の動作として、Ｌ２ＧＷ１０−２の動作について詳細に説明する。
【０１２５】
各ホスト１には、必要に応じて、制御サーバ３から転送経路の切り替えに係わるパケット（制御サーバイベント）が送信される。ここでは、便宜的に、制御サーバイベントとして、図１０に表すようなＧＡＲＰ送信要求メッセージのみを想定している。仮想ＭＡＣアドレスの割り当てを含むＬ２ＧＷ１０−２の起動（作成）自体は、ホスト１上で実行されるハイパーバイザーによって行われる。
【０１２６】
先ず、ＣＰＵ１１は、パケットを受信するための処理を行う（ＳＤ１１）。次に、ＣＰＵ１１は、受信したパケットが制御サーバイベントか否か判定する（ＳＤ２２）。図１０に表すようなＧＡＲＰ送信要求メッセージが受信された場合、ＳＤ１２の判定はＹｅｓとなってＳＤ１３に移行する。ＧＡＲＰ送信要求メッセージが受信されなかった場合、ＳＤ１２の判定はＮｏとなってＳＤ１４に移行する。
【０１２７】
ＳＤ１３では、ＣＰＵ１１は、制御サーバイベント（ＧＡＲＰ送信要求メッセージ）に含まれるＩＰアドレス、及びＭＡＣアドレスをそれぞれ探索対象ＩＰアドレス、及び探索対象ＭＡＣアドレスとする２つのＧＡＲＰパケットを生成する。その後、ＣＰＵ１１は、生成した２つのＧＡＲＰパケットを送信させる（ＳＤ１４）。ＧＡＲＰパケットを送信させた後、このパケット受信処理が終了する。図１２中のＳＤ１、及びＳＤ２は、このＳＤ１３によって実現される。
【０１２８】
ＳＤ１５では、ＣＰＵ１１は、受信したパケットが、制御サーバイベント（ＧＡＲＰ送信要求メッセージ）に含まれるＩＰアドレス、及びＭＡＣアドレスを含むＡＲＰパケットか否か判定する。そのＡＲＰパケットとは、制御サーバイベント（ＧＡＲＰ送信要求メッセージ）に含まれるＩＰアドレス、及びＭＡＣアドレスを有するホスト１から送信されたＡＲＰパケットである。そのようなＡＲＰパケットが受信された場合、ＳＤ１５の判定はＹｅｓとなってＳＤ１６に移行する。そのようなＡＲＰパケットが受信されなかった場合、つまり転送対象とするパケットが受信された場合、ＳＤ１５の判定はＮｏとなってＳＤ１８に移行する。
【０１２９】
ＳＤ１６では、ＣＰＵ１１は、ＡＲＰペイロード中の探索対象ＭＡＣアドレスとして自Ｌ２ＧＷ１０−２のＭＡＣアドレスを設定したＡＲＰ応答パケットを生成する。その後、ＣＰＵ１１は、生成したＡＲＰ応答パケットを送信させる（ＳＤ１７）。ＡＲＰ応答パケットを送信させた後、このパケット受信処理が終了する。図１２中のＳＤ３は、このＳＤ１３によって実現される。
【０１３０】
ＳＤ１８では、ＣＰＵ１１は、受信したパケットに含まれる送信元ＭＡＣアドレス、及び送信先ＭＡＣアドレスを書き換え、それらＭＡＣアドレスを書き換えた後のパケットを送信させる。トンネリングプロトコル情報４０、及びそのトンネリングプロトコル情報４０が付与された通常パケットともに、送信元ＭＡＣアドレスは自Ｌ２ＧＷ１０−２のＭＡＣアドレスに書き換えられる。送信先ＭＡＣアドレスは、制御サーバイベント（ＧＡＲＰ送信要求メッセージ）に含まれる２つのＭＡＣアドレスのなかで、送信元ＭＡＣアドレスとは異なるＭＡＣアドレスに書き換えられる。ＭＡＣアドレスを書き換えたパケットは、受信したＮＩＣ１５とは異なるＮＩＣ１５から送信される。そのようなパケットの転送を行った後、このパケット受信処理が終了する。
【０１３１】
なお、本実施形態では、図２に表すように、輻輳ポイントの発生により、２台のホスト１上のＶＭｎ１０−１からそれぞれ送信されるパケットを中継ホスト１に中継させているが、１方向のみ、パケットの転送を中継ホスト１に中継させるようにしても良い。これは、例えばホスト１−１上のＶＭａ１０−１１から送信されたパケットのみ、中継ホスト１−３を中継させたとしても、スイッチ２−３とスイッチ２−４間のリンクのトラフィック量は低減すると期待できるからである。このようなこともあり、転送経路を切り替えるべき対象の選択は、その転送経路の切り替えを行う理由（輻輳、故障、等）、或いは目的（トラフィックの必要な低減量）等に応じて行っても良い。
【０１３２】
転送を回避すべきリンクの数も１に限定されない。中継ホスト１の選択は、連続してパケットが転送される複数のリンク、或いは直接的にはパケットが転送されない複数のリンクを想定して行っても良い。
【０１３３】
また、本実施形態では、中継ホスト１は、候補となるホスト１のなかからＣＰＵ使用率に着目して選択しているが、別のルールにより選択するようにしても良い。例えば候補となるホスト１のなかでＬ２ＧＷ１０−２が既に作成されているホスト１を優先的に中継ホスト１として選択するようにしても良い。Ｌ２ＧＷ１０−２が稼働しているホスト１を中継ホスト１として優先的に選択する場合、輻輳ポイントを回避したパケット転送をより迅速に開始させることができる。
【０１３４】
また、本実施形態では、ホスト１とは別に制御サーバ３を設けているが、制御サーバ３は何れかのホスト１上に搭載させても良い。大規模な情報処理システムでは、制御サーバ３を複数台、設けて、対象範囲（例えばＶＬＡＮ）毎に制御サーバ３を割り当てても良い。
【０１３５】
上記以外にも、様々な変形を行うことができる。
【０１３６】
以上の変形例を含む実施形態に関し、更に以下の付記を開示する。
（付記１）
パケットの送信元である第１の情報処理装置と、前記パケットの送信先である第２の情報処理装置と、第１のポートと第２のポートを備えるとともに前記パケットを前記第１のポートと前記第２のポート間で中継する第３の情報処理装置と、前記第１の情報処理装置と前記第２の情報処理装置と前記第３の情報処理装置を制御する制御装置とを有する情報処理システムにおいて、
前記制御装置は、
前記第２の情報処理装置を識別する第２の識別情報を含むアドレスを解決するための第１の要求パケットを受信しないように前記第２の情報処理装置に設定する設定部と、
前記第３の情報処理装置に前記第１のポートから前記第１の識別情報を含む第１の確認パケットを送信させ、前記第１の情報処理装置に前記第１の要求パケットを送信させ、前記第３の情報処理装置に前記第１のポートから前記第１の要求パケットに対する第１の応答パケットを送信させる制御部とを有することを特徴とする情報処理システム。
（付記２）
前記設定部はさらに、
前記第１の情報処理装置を識別する第１の識別情報を含むアドレスを解決するための第２の要求パケットを受信しないように前記第１の情報処理装置を設定し、
前記制御部はさらに、
前記第３の情報処理装置に前記第２のポートから前記第２の識別情報を含む第２の確認パケットを送信させ、前記第２の情報処理装置に前記第２の要求パケットを送信させ、前記第３の情報処理装置に前記第２のポートから前記第２の要求パケットに対する第２の応答パケットを送信させることを特徴とする付記１記載の情報処理システム。
（付記３）
前記情報処理システムは、
３台以上の複数の情報処理装置を有し、
前記制御装置はさらに、
前記ネットワークで輻輳が発生した場合、前記複数の情報処理装置のうち、発生した輻輳を回避できる経路上に存在する情報処理装置を、前記第３の情報処理装置として選択する選択部を有することを特徴とする付記１又は２記載の情報処理システム。
（付記４）
前記選択部は、
前記複数の情報処理装置のうち、前記第３の情報処理装置として選択可能な情報処理装置が複数存在する場合、選択可能な各情報処理装置が備える演算処理装置の使用率に基づいて、前記第３の情報処理装置を選択することを特徴とする付記３記載の情報処理システム。
（付記５）
パケットの送信元である第１の情報処理装置と、前記パケットの送信先である第２の情報処理装置と、第１のポートと第２のポートを備えるとともに前記パケットを前記第１のポートと前記第２のポート間で中継する第３の情報処理装置とを制御する制御装置において、
前記制御装置は、
前記第２の情報処理装置を識別する第２の識別情報を含むアドレスを解決するための第１の要求パケットを受信しないように前記第２の情報処理装置に設定する設定部と、
前記第３の情報処理装置に、前記第１のポートから前記第１の識別情報を含む第１の確認パケットを送信させ、前記第１の情報処理装置に、前記第１の要求パケットを送信させ、前記第３の情報処理装置に、前記第１のポートから前記第１の要求パケットに対する第１の応答パケットを送信させる制御部とを有することを特徴とする制御装置。
（付記６）
パケットの送信元である第１の情報処理装置と、前記パケットの送信先である第２の情報処理装置と、第１のポートと第２のポートを備えるとともに前記パケットを前記第１のポートと前記第２のポート間で中継する第３の情報処理装置と、前記第１の情報処理装置と前記第２の情報処理装置と前記第３の情報処理装置を制御する制御装置とを有する情報処理システムの制御方法において、
前記制御装置が、
前記第２の情報処理装置を識別する第２の識別情報を含むアドレスを解決するための第１の要求パケットを受信しないように前記第２の情報処理装置に設定し、
前記第３の情報処理装置に、前記第１のポートから前記第１の識別情報を含む第１の確認パケットを送信させ、
前記第１の情報処理装置に、前記第１の要求パケットを送信させ、
前記第３の情報処理装置に、前記第１のポートから前記第１の要求パケットに対する第１の応答パケットを送信させることを特徴とする情報処理システムの制御方法。
（付記７）
パケットの送信元である第１の情報処理装置と、前記パケットの送信先である第２の情報処理装置と、第１のポートと第２のポートを備えるとともに前記パケットを前記第１のポートと前記第２のポート間で中継する第３の情報処理装置とを制御する制御装置の制御プログラムにおいて、
前記制御装置に、
前記第２の情報処理装置を識別する第２の識別情報を含むアドレスを解決するための第１の要求パケットを受信しないように、前記第２の情報処理装置に設定させ、
前記第１のポートから前記第１の識別情報を含む第１の確認パケットを、前記第３の情報処理装置に送信させ、
前記第１の要求パケットを、前記第１の情報処理装置に送信させ、
前記第１のポートから前記第１の要求パケットに対する第１の応答パケットを、前記第３の情報処理装置に送信させることを特徴とする制御装置の制御プログラム。
【符号の説明】
【０１３７】
１、１−０〜１−６、１−ａ〜１−ｃ    ホスト
２、２−１〜２−６    スイッチ
２ａ    フォワーディングテーブル
３    制御サーバ
３ｃ    制御プログラム
１０−１、１０−１１〜１０−１８    ＶＭｎ
１１、３１    ＣＰＵ
１２、３２    ＦＷＨ
１３、３３    メモリ
１４、３４    ハードディスク装置
１５、１５−１、１５−２、３５    ＮＩＣ
１００    ＡＲＰテーブル
１０１    ゲストＯＳ
１０５    転送アプリケーション
１１１    フィルタリング機能
１１２    アドレス解決機能
１２１    イベント受信機能
１２２    テーブルクリア送信機能
１２３    転送機能
２０１    状態検出機能
２０２    テーブル更新機能
２０３    パケット中継機能
３０１    監視機能
３０２    Ｌ２ＧＷ配備機能
３０３    フィルタリング設定通知機能
３０４    テーブルクリア送信指示通知機能
【図１】
2015198295.tif 000003
【図３】
2015198295.tif 000004
【図４】
2015198295.tif 000005
【図５】
2015198295.tif 000006
【図６】
2015198295.tif 000007
【図１２】
2015198295.tif 000008
【図１３】
2015198295.tif 000009
【図１４】
2015198295.tif 000010
【図１５】
2015198295.tif 000011
【図１６】
2015198295.tif 000012
【図２】
2015198295.tif 000013
【図７】
2015198295.tif 000014
【図８】
2015198295.tif 000015
【図９】
2015198295.tif 000016
【図１０】
2015198295.tif 000017
【図１１】
2015198295.tif 000018