(57)【要約】【課題】仮想ネットワーク環境で仮想スイッチを利用してロードバランシングを処理する方法およびシステムを提供する。【解決手段】仮想ネットワーク上でロードバランシングノードがロードバランシングを処理する方法は、ルータを通じてクライアントからの要求パケットを受信する段階、前記受信した要求パケットを送信するバックエンド仮想マシンサーバをロードバランサによって選択する段階、仮想ネットワークを介して前記選択されたバックエンド仮想マシンサーバに前記受信した要求パケットを送信するための情報を、前記ロードバランシングノードが含む仮想スイッチによって前記受信した要求パケットにオーバーレイして仮想ネットワーキングのためのパケットを生成する段階、および前記生成された仮想ネットワーキングのためのパケットを、前記選択されたバックエンド仮想マシンサーバを含むハイパーバイザノードに送信する段階を含む。【選択図】図４
2018033136.tif 000002
【特許請求の範囲】
【請求項１】
仮想ネットワーク上でロードバランシングノードがロードバランシングを処理する方法であって、
ルータを通じてクライアントからの要求パケットを受信する段階、
前記受信した要求パケットを送信するバックエンド仮想マシンサーバをロードバランサ（ｌｏａｄ  ｂａｌａｎｃｅｒ）によって選択する段階、
前記仮想ネットワークを介して前記選択されたバックエンド仮想マシンサーバに前記受信した要求パケットを送信するための情報を、前記ロードバランシングノードが含む仮想スイッチによって前記受信した要求パケットにオーバーレイ（ｏｖｅｒｌａｙ）して仮想ネットワーキングのためのパケットを生成する段階、および
前記生成された仮想ネットワーキングのためのパケットを、前記選択されたバックエンド仮想マシンサーバを含むハイパーバイザノードに送信する段階
を含む、ロードバランシング処理方法。
【請求項２】
前記ハイパーバイザノードは、
前記送信された仮想ネットワーキングのためのパケットを、前記仮想ネットワークを介して受信し、前記ハイパーバイザノードが含む仮想スイッチのうち前記選択されたバックエンド仮想マシンサーバのための仮想スイッチを利用して前記要求パケットを抽出し、
前記抽出された要求パケットを前記選択されたバックエンド仮想マシンサーバに伝達する、請求項１に記載のロードバランシング処理方法。
【請求項３】
前記送信された仮想ネットワーキングのためのパケットは、ＴＯＲ（Ｔｏｐ  Ｏｆ  Ｒａｃｋ）スイッチに伝達され、前記ＴＯＲスイッチが含む仮想スイッチのうち前記選択されたバックエンド仮想マシンサーバのための仮想スイッチを利用して前記要求パケットに再変換されて前記ハイパーバイザノードに伝達され、
前記ハイパーバイザノードは、前記再変換された要求パケットを前記選択されたバックエンド仮想マシンサーバに伝達する、請求項１に記載のロードバランシング処理方法。
【請求項４】
前記ロードバランサは、Ｌ４  ＤＳＲ（Ｄｉｒｅｃｔ  Ｓｅｒｖｅｒ  Ｒｅｔｕｒｎ）ロードバランサを含み、
前記選択されたバックエンド仮想マシンサーバは、前記伝達された要求パケットに対する応答パケットを前記選択されたバックエンド仮想マシンサーバのための仮想スイッチを利用して前記Ｌ４  ＤＳＲロードバランサを経ずに前記ルータに直接伝達する、請求項２または３に記載のロードバランシング処理方法。
【請求項５】
前記要求パケットは、前記クライアントのＩＰアドレスを含み、
前記要求パケットに前記情報がオーバーレイされた前記仮想ネットワーキングのためのパケットによって前記クライアントのＩＰアドレスが前記選択されたバックエンド仮想マシンサーバに伝達される、請求項１に記載のロードバランシング処理方法。
【請求項６】
前記仮想ネットワーキングのためのパケットを生成する段階は、
前記要求パケットにＶｘＬＡＮ（Ｖｉｒｔｕａｌ  ｅｘｔｅｎｓｉｂｌｅ  ＬＡＮ）、ＶＬＡＮ（Ｖｉｒｔｕａｌ  ＬＡＮ）、ＧＲＥ（Ｇｅｎｅｒｉｃ  Ｒｏｕｔｅ  Ｅｎｃａｐｓｕｌａｔｉｏｎ）、および８０２.１１ｂｒのうちの１つの仮想ネットワーキングプロトコルを適用したトンネリング（ｔｕｎｎｅｌｉｎｇ）によって前記仮想ネットワーキングのためのパケットを生成する、請求項１に記載のロードバランシング処理方法。
【請求項７】
前記要求パケットにオーバーレイされた情報は、ネットワークモデルのレイヤ２およびレイヤ３のためのヘッダ情報および前記仮想ネットワーキングプロトコルのためのヘッダ情報を含む、請求項１に記載のロードバランシング処理方法。
【請求項８】
仮想ネットワーク上でハイパーバイザノードがロードバランシングを処理する方法であって、
ロードバランサを含むロードバランシングノードから実際のネットワークを介して仮想ネットワーキングのためのパケットを受信する段階（前記仮想ネットワーキングのためのパケットは、前記ロードバランシングノードがルータを通じて伝達を受けたクライアントからの要求パケットに、前記仮想ネットワークを介して前記要求パケットを送信するために要求される情報を前記ロードバランシングノードが含む仮想スイッチを利用してオーバーレイして生成される）、
前記ハイパーバイザノードが含む仮想スイッチのうち前記ロードバランサによって選択されたバックエンド仮想マシンサーバのための仮想スイッチを利用して前記仮想ネットワーキングのためのパケットから前記要求パケットを抽出する段階、および
前記抽出された要求パケットを前記選択されたバックエンド仮想マシンサーバに伝達する段階
を含む、ロードバランシング処理方法。
【請求項９】
前記ロードバランサは、Ｌ４  ＤＳＲ（Ｄｉｒｅｃｔ  Ｓｅｒｖｅｒ  Ｒｅｔｕｒｎ）ロードバランサを含み、
前記選択されたバックエンド仮想マシンサーバは、前記伝達された要求パケットに対する応答パケットを前記選択されたバックエンド仮想マシンサーバのための仮想スイッチを利用して前記Ｌ４  ＤＳＲロードバランサを経ずに前記ルータに直接伝達する、請求項８に記載のロードバランシング処理方法。
【請求項１０】
請求項１〜３または請求項５〜９のうちのいずれか一項に記載の方法をコンピュータに実行させるためのプログラムが記録されている、コンピュータで読み取り可能な記録媒体。
【請求項１１】
請求項１〜３または請求項５〜９のうちのいずれか一項に記載の方法をコンピュータに実行させるためのプログラム。
【請求項１２】
コンピュータを、ロードバランシング処理方法を実行するロードバランシングノードとして機能させるためのコンピュータプログラムであって、
前記ロードバランシング処理方法は、
ルータを通じてクライアントからの要求パケットを受信する段階、
前記受信した要求パケットを送信するバックエンド仮想マシンサーバをロードバランサ（ｌｏａｄ  ｂａｌａｎｃｅｒ）によって選択する段階、
仮想ネットワークを介して前記選択されたバックエンド仮想マシンサーバに前記受信した要求パケットを送信するための情報を、前記ロードバランシングノードが含む仮想スイッチによって前記受信した要求パケットにオーバーレイ（ｏｖｅｒｌａｙ）して仮想ネットワーキングのためのパケットを生成する段階、および
前記生成された仮想ネットワーキングのためのパケットを、前記選択されたバックエンド仮想マシンサーバを含むハイパーバイザノードに送信する段階
を含む、コンピュータプログラム。
【請求項１３】
前記ハイパーバイザノードは、
前記送信された仮想ネットワーキングのためのパケットを、前記仮想ネットワークを介して受信し、前記ハイパーバイザノードが含む仮想スイッチのうち前記選択されたバックエンド仮想マシンサーバのための仮想スイッチを利用して前記要求パケットを抽出し、
前記抽出された要求パケットを前記選択されたバックエンド仮想マシンサーバに伝達する、請求項１２に記載のコンピュータプログラム。
【請求項１４】
前記送信された仮想ネットワーキングのためのパケットは、ＴＯＲ（Ｔｏｐ  Ｏｆ  Ｒａｃｋ）スイッチに伝達され、前記ＴＯＲスイッチが含む仮想スイッチのうち前記選択されたバックエンド仮想マシンサーバのための仮想スイッチを利用して前記要求パケットに再変換されて前記ハイパーバイザノードに伝達され、
前記ハイパーバイザノードは、前記再変換された要求パケットを前記選択されたバックエンド仮想マシンサーバに伝達する、請求項１２に記載のコンピュータプログラム。
【請求項１５】
前記ロードバランサは、Ｌ４  ＤＳＲ（Ｄｉｒｅｃｔ  Ｓｅｒｖｅｒ  Ｒｅｔｕｒｎ）ロードバランサを含み、
前記選択されたバックエンド仮想マシンサーバは、前記伝達された要求パケットに対する応答パケットを前記選択されたバックエンド仮想マシンサーバのための仮想スイッチを利用して前記Ｌ４  ＤＳＲロードバランサを経ずに前記ルータに直接伝達する、請求項１３または１４に記載のコンピュータプログラム。
【請求項１６】
前記要求パケットは、前記クライアントのＩＰアドレスを含み、
前記要求パケットに前記情報がオーバーレイされた前記仮想ネットワーキングのためのパケットによって前記クライアントのＩＰアドレスが前記選択されたバックエンド仮想マシンサーバに伝達される、請求項１２に記載のコンピュータプログラム。
【請求項１７】
ロードバランシング処理方法を実行するためにコンピュータで実現されるロードバランシングノードであって、
コンピュータで読み取り可能な命令を格納するメモリ、および
前記メモリに格納された命令を実行するように実現される少なくとも１つのプロセッサ
を含み、
前記少なくとも１つのプロセッサは、
ルータを通じてクライアントからの要求パケットを受信するように前記ロードバランシングノードを制御し、
前記受信した要求パケットを送信するバックエンド仮想マシンサーバをロードバランサ（ｌｏａｄ  ｂａｌａｎｃｅｒ）によって選択し、
仮想ネットワークを介して前記選択されたバックエンド仮想マシンサーバに前記受信した要求パケットを送信するための情報を、前記ロードバランシングノードが含む仮想スイッチによって前記受信した要求パケットにオーバーレイ（ｏｖｅｒｌａｙ）して仮想ネットワーキングのためのパケットを生成し、
前記生成された仮想ネットワーキングのためのパケットを、前記選択されたバックエンド仮想マシンサーバを含むハイパーバイザノードに送信するように前記ロードバランシングノードを制御する、
コンピュータで実現されるロードバランシングノード。
【請求項１８】
前記ハイパーバイザノードは、
前記送信された仮想ネットワーキングのためのパケットを、前記仮想ネットワークを介して受信し、前記ハイパーバイザノードが含む仮想スイッチのうち前記選択されたバックエンド仮想マシンサーバのための仮想スイッチを利用して前記要求パケットを抽出し、
前記抽出された要求パケットを前記選択されたバックエンド仮想マシンサーバに伝達する、請求項１７に記載のコンピュータで実現されるロードバランシングノード。
【請求項１９】
前記送信された仮想ネットワーキングのためのパケットは、ＴＯＲ（Ｔｏｐ  Ｏｆ  Ｒａｃｋ）スイッチに伝達され、前記ＴＯＲスイッチが含む仮想スイッチのうち前記選択されたバックエンド仮想マシンサーバのための仮想スイッチを利用して前記要求パケットに再変換されて前記ハイパーバイザノードに伝達され、
前記ハイパーバイザノードは、前記再変換された要求パケットを前記選択されたバックエンド仮想マシンサーバに伝達する、請求項１７に記載のコンピュータで実現されるロードバランシングノード。
【請求項２０】
前記ロードバランサは、Ｌ４  ＤＳＲ（Ｄｉｒｅｃｔ  Ｓｅｒｖｅｒ  Ｒｅｔｕｒｎ）ロードバランサを含み、
前記選択されたバックエンド仮想マシンサーバは、前記伝達された要求パケットに対する応答パケットを前記選択されたバックエンド仮想マシンサーバのための仮想スイッチを利用して前記Ｌ４  ＤＳＲロードバランサを経ずに前記ルータに直接伝達する、請求項１８または１９に記載のコンピュータで実現されるロードバランシングノード。
【請求項２１】
前記要求パケットは、前記クライアントのＩＰアドレスを含み、
前記要求パケットに前記情報がオーバーレイされた前記仮想ネットワーキングのためのパケットによって前記クライアントのＩＰアドレスが前記選択されたバックエンド仮想マシンサーバに伝達される、請求項１７に記載のコンピュータで実現されるロードバランシングノード。
【発明の詳細な説明】
【技術分野】
【０００１】
以下の説明は、仮想ネットワーク環境で仮想スイッチを利用してロードバランシングを処理する方法およびシステム、並びにコンピュータで実現されるノードと結合してロードバランシング処理方法をコンピュータに実行させるためにコンピュータで読み取り可能な記録媒体に格納されたコンピュータプログラムに関する。
【背景技術】
【０００２】
Ｌ４ロードバランサ（ｌｏａｄ  ｂａｌａｎｃｅｒ）とは、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）、ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）などのレイヤ４プロトコルに対し、多数のバックエンドサーバ（Ｂａｃｋｅｎｄ  Ｓｅｒｖｅｒ）への連結やセッションなどを分けて分配することによってバックエンドサーバへの負荷を分散させるネットワーク装備である。例えば、特許文献１は、クライアント−サーバ連結方法、ロードバランサ動作方法、およびパケット送信方法について説明している。
【０００３】
より具体的な例として、図１は、従来技術における、Ｌ４ロードバランサの動作を説明するための図である。図１は、ＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）１１０、ルータ（Ｒｏｕｔｅｒ）１２０、Ｌ４ロードバランサ（Ｌ４  Ｌｏａｄ  Ｂａｌａｎｃｅｒ）１３０、バックエンドサーバ１（Ｂａｃｋｅｎｄ  Ｓｅｒｖｅｒ  １）１４０、バックエンドサーバ２（Ｂａｃｋｅｎｄ  Ｓｅｒｖｅｒ  ２）１５０、およびバックエンドサーバ３（Ｂａｃｋｅｎｄ  Ｓｅｒｖｅｒ  ３）１６０を示している。ＮＡＴ１１０とは、限定された１つの公認ＩＰを多数の内部私設ＩＰに変換して公認ＩＰを節約し、外部侵入からの保安性を高めるための通信網のアドレス変換器であり、ルータ１２０とは、ネットワーク構成方式や使用するプロトコルに関係なくネットワークを接続し、ある通信網から他の通信網に通信することができるようにサポートする装置である。このとき、Ｌ４ロードバランサ１３０は、ＮＡＴ１１０とルータ１２０を通じて伝達されるクライアントからのＨＴＴＰリクエストのようなトラフィックをバックエンドサーバ１４０、１５０、１６０に分配する役割を行う。一般的に、このようなＬ４ロードバランサ１３０は、ハードウェア装備にロードバランシングのためのソフトウェアモジュールが結合した形態で提供される。
【０００４】
一方、図２は、従来技術における、ＮＡＴ動作を共に実行するＬ４ロードバランサの動作を説明するための図である。図２は、ルータ２１０、ＮＡＴを含むＬ４ロードバランサ２２０、バックエンドサーバ１（Ｂａｃｋｅｎｄ  Ｓｅｒｖｅｒ  １）２３０、バックエンドサーバ２（Ｂａｃｋｅｎｄ  Ｓｅｒｖｅｒ  ２）２４０、およびバックエンドサーバ３（Ｂａｃｋｅｎｄ  Ｓｅｒｖｅｒ  ３）２５０を示している。
【０００５】
図１および図２を比較すると、図１では、ＮＡＴ１１０を基準に共用ネットワーク（ｐｕｂｌｉｃ  ｎｅｔｗｏｒｋ）と専用ネットワーク（ｐｒｉｖａｔｅ  ｎｅｔｗｏｒｋ）とが区分され、図２では、ＮＡＴを含むＬ４ロードバランサ２２０を基準に共用ネットワークと専用ネットワークとが区分される。このとき、図１のケースと図２のケースは共に、バックエンドサーバ１４０、１５０、１６０、２３０、２４０、２５０がクライアントのＩＰアドレスを知らない。さらに、バックエンドサーバ１４０、１５０、１６０、２３０、２４０、２５０の応答は、Ｌ４ロードバランサ１３０やＮＡＴを含むＬ４ロードバランサ２２０を経て再びクライアントに伝達されるため、遅延速度（ｌａｔｅｎｃｙ）が増加するようになる。
【０００６】
一方、このような遅延速度を減らすためにバックエンドサーバからの応答がロードバランサを経ないようにするための技術が存在する。図３は、従来技術における、Ｌ４  ＤＳＲ（Ｄｉｒｅｃｔ  Ｓｅｒｖｅｒ  Ｒｅｔｕｒｎ）ロードバランサの動作を説明するための図である。図３は、ルータ３１０、Ｌ４  ＤＳＲロードバランサ３２０、バックエンドサーバ１（Ｂａｃｋｅｎｄ  Ｓｅｒｖｅｒ  １）３３０、バックエンドサーバ２（Ｂａｃｋｅｎｄ  Ｓｅｒｖｅｒ  ２）３４０、およびバックエンドサーバ３（Ｂａｃｋｅｎｄ  Ｓｅｒｖｅｒ  ３）３５０を示しており、バックエンドサーバ３３０、３４０、３５０それぞれに設定されるループバック（ｌｏｏｐ  ｂａｃｋ）インタフェース３３１、３４１、３５１を示している。このとき、バックエンドサーバ３３０、３４０、３５０それぞれからの応答は、Ｌ４  ＤＳＲロードバランサ３２０を経ず、ＶＩＰ（Ｖｉｒｔｕａｌ  ＩＰ）を利用してルータに直接伝達することができる。言い換えれば、バックエンドサーバ３３０、３４０、３５０それぞれは、ロードバランサのためのＶＩＰを直接管理することができ、ループバックインタフェース３３１、３４１、３５１を利用してＬ４  ＤＳＲロードバランサ３２０を経ずに応答をルータ３１０に直接伝達することができるため、遅延速度において利点を有する。しかし、図３に示すように、バックエンドサーバ３３０、３４０、３５０にループバックインタフェース３３１、３４１、３５１が設定されなければならないという問題がある。さらに、クライアントのＩＰアドレスを知るためにすべての装備が共用ネットワークに存在しなければならないため、公認ＩＰアドレスが多く割り当てられなければならず、スケールアウト（ｓｃａｌｅ  ｏｕｔ）に不利であるという問題を抱えている。
【０００７】
公認ＩＰアドレスに関する問題を解決するためにＮＡＴを利用する場合には、バックエンドサーバでクライアントのＩＰアドレスを知ることができなくなるという問題が再び浮上する。
【０００８】
一方、顧客のための専用ラック（Ｒａｃｋ）として独立したクラウド環境構成が可能なＶＰＣ（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｃｌｏｕｄ）技術が存在する。このようなＶＰＣのためのサービスを提供するサービス提供者は、顧客に専用クラウドの構成のためのサービスを提供することができる。このようなＶＰＣ環境におけるロードバランシングのための技術は、上述した図１〜３を参照しながら説明した、一般的なネットワーク状況におけるロードバランシングとは差がある。例えば、上述したロードバランサとバックエンドサーバが仮想化されて提供されなければならない。さらに、サービス提供者が遅延速度の利点を得るためにＬ４  ＤＳＲロードバランサを提供しようとするとき、顧客が構成するバックエンド仮想マシンサーバそれぞれにループバックインタフェースを設定するように要求および／または強制するには困難を来たすという問題がある。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】韓国公開特許第１０−２００２−００６９４８９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
ＶＰＣ（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｃｌｏｕｄ）環境において、ハイパーバイザ（ｈｙｐｅｒｖｉｓｏｒ）によって顧客が構成するバックエンド仮想マシンサーバ（Ｂａｃｋｅｎｄ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｓｅｒｖｅｒ）に対するロードバランシングを、トンネリングを利用して処理する新たなロードバランサを提供する。
【００１１】
ＶＰＣ環境でバックエンド仮想マシンサーバに必要なループバック（ｌｏｏｐ  ｂａｃｋ）インタフェースをハイパーバイザの仮想スイッチ（ｖｉｒｔｕａｌ  ｓｗｉｔｃｈ）で実現および提供することにより、顧客がループバックインタフェースを直接設定する必要がない上に、ＶＰＣ環境でもバックエンド仮想マシンサーバの応答を、ロードバランサを経ずにルータに直ぐに伝達することができる、ロードバランシング方法およびシステムを提供する。
【００１２】
上述した新たなロードバランサと仮想スイッチを利用してＶＰＣ環境でＬ４  ＤＳＲロードバランシングを処理することによって遅延速度（ｌａｔｅｎｃｙ）を減らすことができる、ロードバランシング方法およびシステムを提供する。
【００１３】
ロードバランシングのための前記仮想スイッチを利用してバックエンド仮想マシンサーバで送受信されるパケットをＤＰＩ（Ｄｅｅｐ  Ｐａｃｋｅｔ  Ｉｎｓｐｅｃｔｉｏｎ）のための機能が含まれたモニタリング仮想マシンでミラーリング（ｍｉｒｒｏｒｉｎｇ）することにより、モニタリング仮想マシンで希望するバックエンド仮想マシンに対して送受信されるすべてのパケットを収集および分析することができる、パケット分析方法およびシステムを提供する。
【課題を解決するための手段】
【００１４】
仮想ネットワーク上でロードバランシングノードがロードバランシングを処理する方法であって、ルータを通じてクライアントからの要求パケットを受信する段階、前記受信した要求パケットを送信するバックエンド仮想マシンサーバをロードバランサ（ｌｏａｄ  ｂａｌａｎｃｅｒ）によって選択する段階、前記仮想ネットワークを介して前記選択されたバックエンド仮想マシンサーバに前記受信した要求パケットを送信するための情報を、前記ロードバランシングノードが含む仮想スイッチによって前記受信した要求パケットにオーバーレイ（ｏｖｅｒｌａｙ）して仮想ネットワーキングのためのパケットを生成する段階、および前記生成された仮想ネットワーキングのためのパケットを、前記選択されたバックエンド仮想マシンサーバを含むハイパーバイザノードに送信する段階を含む、ロードバランシング処理方法を提供する。
【００１５】
一側面によると、前記ハイパーバイザノードは、前記送信された仮想ネットワーキングのためのパケットを、前記仮想ネットワークを介して受信し、前記ハイパーバイザノードが含む仮想スイッチのうで前記選択されたバックエンド仮想マシンサーバのための仮想スイッチを利用して前記要求パケットを抽出し、前記抽出された要求パケットを前記選択されたバックエンド仮想マシンサーバに伝達することを特徴とする。
【００１６】
他の側面によると、前記送信された仮想ネットワーキングのためのパケットは、ＴＯＲ（Ｔｏｐ  Ｏｆ  Ｒａｃｋ）スイッチに伝達され、前記ＴＯＲスイッチが含む仮想スイッチのうちで前記選択されたバックエンド仮想マシンサーバのための仮想スイッチを利用して前記要求パケットに再変換されて前記ハイパーバイザノードに伝達され、前記ハイパーバイザノードは、前記再変換された要求パケットを前記選択されたバックエンド仮想マシンサーバに伝達することを特徴とする。
【００１７】
また他の側面によると、前記ロードバランサは、Ｌ４  ＤＳＲ（Ｄｉｒｅｃｔ  Ｓｅｒｖｅｒ  Ｒｅｔｕｒｎ）ロードバランサを含み、前記選択されたバックエンド仮想マシンサーバは、前記伝達された要求パケットに対する応答パケットを前記選択されたバックエンド仮想マシンサーバのための仮想スイッチを利用して前記Ｌ４  ＤＳＲロードバランサを経ずに前記ルータに直接伝達することを特徴とする。
【００１８】
また他の側面によると、前記要求パケットは、前記クライアントのＩＰアドレスを含み、前記要求パケットに前記情報がオーバーレイされた前記仮想ネットワーキングのためのパケットによって前記クライアントのＩＰアドレスが前記選択されたバックエンド仮想マシンサーバに伝達されることを特徴とする。
【００１９】
また他の側面によると、前記仮想ネットワーキングのためのパケットを生成する段階は、前記要求パケットにＶｘＬＡＮ（Ｖｉｒｔｕａｌ  ｅｘｔｅｎｓｉｂｌｅ  ＬＡＮ）、ＶＬＡＮ（Ｖｉｒｔｕａｌ  ＬＡＮ）、ＧＲＥ（Ｇｅｎｅｒｉｃ  Ｒｏｕｔｅ  Ｅｎｃａｐｓｕｌａｔｉｏｎ）、および８０２.１１ｂｒのうちの１つの仮想ネットワーキングプロトコルを適用したトンネリング（ｔｕｎｎｅｌｉｎｇ）によって前記仮想ネットワーキングのためのパケットを生成することを特徴とする。
【００２０】
また他の側面によると、前記要求パケットにオーバーレイされた情報は、ネットワークモデルのレイヤ２およびレイヤ３のためのヘッダ情報および前記仮想ネットワーキングプロトコルのためのヘッダ情報を含むことを特徴とする。
【００２１】
仮想ネットワーク上でハイパーバイザノードがロードバランシングを処理する方法であって、ロードバランサを含むロードバランシングノードから実際のネットワークを介して仮想ネットワーキングのためのパケットを受信する段階（前記仮想ネットワーキングのためのパケットは、前記ロードバランシングノードがルータを通じて伝達を受けたクライアントからの要求パケットに、前記仮想ネットワークを介して前記要求パケットを送信するために要求される情報を前記ロードバランシングノードが含む仮想スイッチを利用してオーバーレイして生成される）、前記ハイパーバイザノードが含む仮想スイッチのうちで前記ロードバランサによって選択されたバックエンド仮想マシンサーバのための仮想スイッチを利用して前記仮想ネットワーキングのためのパケットから前記要求パケットを抽出する段階、および前記抽出された要求パケットを前記選択されたバックエンド仮想マシンサーバに伝達する段階を含む、ロードバランシング処理方法を提供する。
【００２２】
上述したロードバランシング処理方法をコンピュータに実行させるためのプログラムが記録されている、コンピュータで読み取り可能な記録媒体が提供される。また、上述したロードバランシング処理方法をコンピュータに実行させるためのプログラムが提供される。
【００２３】
コンピュータを、ロードバランシング処理方法を実行するロードバランシングノードとして機能させるためのコンピュータプログラムであって、前記ロードバランシング処理方法は、ルータを通じてクライアントからの要求パケットを受信する段階、前記受信した要求パケットを送信するバックエンド仮想マシンサーバをロードバランサ（ｌｏａｄ  ｂａｌａｎｃｅｒ）によって選択する段階、仮想ネットワークを介して前記選択されたバックエンド仮想マシンサーバに前記受信した要求パケットを送信するための情報を、前記ロードバランシングノードが含む仮想スイッチによって前記受信した要求パケットにオーバーレイ（ｏｖｅｒｌａｙ）して仮想ネットワーキングのためのパケットを生成する段階、および前記生成された仮想ネットワーキングのためのパケットを、前記選択されたバックエンド仮想マシンサーバを含むハイパーバイザノードに送信する段階を含む、コンピュータプログラムを提供する。
【００２４】
ロードバランシング処理方法を実行するためにコンピュータで実現されるロードバランシングノードであって、コンピュータで読み取り可能な命令を格納するメモリ、および前記メモリに格納された命令を実行するように実現される少なくとも１つのプロセッサを含み、前記少なくとも１つのプロセッサは、ルータを通じてクライアントからの要求パケットを受信するように前記ロードバランシングノードを制御し、前記受信した要求パケットを送信するバックエンド仮想マシンサーバをロードバランサ（ｌｏａｄ  ｂａｌａｎｃｅｒ）によって選択し、仮想ネットワークを介して前記選択されたバックエンド仮想マシンサーバに前記受信した要求パケットを送信するための情報を、前記ロードバランシングノードが含む仮想スイッチによって前記受信した要求パケットにオーバーレイ（ｏｖｅｒｌａｙ）して仮想ネットワーキングのためのパケットを生成し、前記生成された仮想ネットワーキングのためのパケットを、前記選択されたバックエンド仮想マシンサーバを含むハイパーバイザノードに送信するように前記ロードバランシングノードを制御する、コンピュータで実現されるロードバランシングノードを提供する。
【発明の効果】
【００２５】
ＶＰＣ（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｃｌｏｕｄ）環境においてハイパーバイザ（ｈｙｐｅｒｖｉｓｏｒ）により、顧客が構成するバックエンド仮想マシンサーバ（Ｂａｃｋｅｎｄ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｓｅｒｖｅｒ）に対するロードバランシングをトンネリングによって処理することができる。
【００２６】
ＶＰＣ環境においてバックエンド仮想マシンサーバに必要なループバック（ｌｏｏｐ  ｂａｃｋ）インタフェースをハイパーバイザの仮想スイッチ（ｖｉｒｔｕａｌ  ｓｗｉｔｃｈ）によって実現および提供することにより、顧客がループバックインタフェースを直接設定する必要がない上に、ＶＰＣ環境でもバックエンド仮想マシンサーバの応答を、ロードバランサを経ずにルータに直ぐに伝達することができる。
【００２７】
上述した新たなロードバランサと仮想スイッチを利用してＶＰＣ環境でのＬ４  ＤＳＲロードバランシングを処理することにより、遅延速度（ｌａｔｅｎｃｙ）を減らすことができる。
【００２８】
ロードバランシングのための前記仮想スイッチを利用してバックエンド仮想マシンサーバで送受信されるパケットをＤＰＩ（Ｄｅｅｐ  Ｐａｃｋｅｔ  Ｉｎｓｐｅｃｔｉｏｎ）のための機能が含まれたモニタリング仮想マシンでミラーリング（ｍｉｒｒｏｒｉｎｇ）することにより、モニタリング仮想マシンで希望するバックエンド仮想マシンに対して送受信されるすべてのパケットを収集および分析することができる。
【図面の簡単な説明】
【００２９】
【図１】従来技術における、Ｌ４ロードバランサの動作を説明するための図である。
【図２】従来技術における、ＮＡＴ動作を共に実行するＬ４ロードバランサの動作を説明するための図である。
【図３】従来技術における、Ｌ４  ＤＳＲロードバランサの動作を説明するための図である。
【図４】本発明の一実施形態における、仮想ネットワーク上でのＬ４ロードバランシングのための動作の例を説明するための図である。
【図５】本発明の一実施形態における、トンネリング動作の例を説明するための図である。
【図６】本発明の一実施形態における、ループバックを利用した仮想ネットワーク上でのＬ４  ＤＳＲロードバランシングのための動作の例を説明するための図である。
【図７】本発明の一実施形態における、ＴＯＲスイッチを利用した仮想ネットワーク上でのＬ４  ＤＳＲロードバランシングのための動作の例を説明するための図である。
【図８】本発明の一実施形態における、仮想ネットワーク環境を構成するための物理的なノードの内部構成を説明するためのブロック図である。
【図９】本発明の一実施形態における、仮想ネットワーク環境でロードバランシングノードのための物理的なノードのプロセッサが含むことのできる構成要素の例を示したブロック図である。
【図１０】本発明の一実施形態における、ロードバランシングノードが実行することのできる方法の例を示したフローチャートである。
【図１１】本発明の一実施形態における、仮想ネットワーク環境でハイパーバイザノードのための物理的なノードのプロセッサが含むことのできる構成要素の例を示したブロック図である。
【図１２】本発明の一実施形態における、ハイパーバイザノードが実行することのできる方法の例を示したフローチャートである。
【図１３】本発明の一実施形態における、仮想ネットワーク環境で仮想スイッチを含むハイパーバイザノードのための物理的なノードのプロセッサが含むことのできる構成要素の例を示したブロック図である。
【図１４】本発明の一実施形態における、仮想スイッチを含むハイパーバイザノードが実行することのできる方法の例を示したフローチャートである。
【図１５】本発明の一実施形態における、仮想ネットワーク環境でＴＯＲスイッチノードを実現するための物理的なノードのプロセッサが含むことのできる構成要素の例を示したブロック図である。
【図１６】本発明の一実施形態における、ＴＯＲスイッチノードが実行することのできる方法の例を示したフローチャートである。
【図１７】本発明の一実施形態における、ループバックを利用した仮想ネットワーク上でのパケットモニタリングのための動作の例を示した図である。
【図１８】本発明の一実施形態における、仮想ネットワーク環境でモニタリング仮想マシンを実現する物理的なノードのプロセッサが含むことのできる構成要素の例を示したブロック図である。
【図１９】本発明の一実施形態における、モニタリング仮想マシンを実現するノードが実行することのできる方法の例を示したフローチャートである。
【発明を実施するための形態】
【００３０】
以下、実施形態について、添付の図面を参照しながら詳しく説明する。
【００３１】
本発明の実施形態は、仮想ネットワーク環境（一例として、ＶＰＣ（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｃｌｏｕｄ）環境）でロードバランシングを処理するためのロードバランシング方法およびシステムに関する。ここで、仮想ネットワーク環境では、仮想リソースを提供する実際のノード間の実際のネットワークと、仮想リソース間の仮想ネットワークとをすべて考慮しなければならない。
【００３２】
図４は、本発明の一実施形態における、仮想ネットワーク上でのＬ４ロードバランシングのための動作の例を説明するための図である。図４は、ルータ４１０、ロードバランシングノード（ＬＢ  ｎｏｄｅ）４２０、およびハイパーバイザ（Ｈｙｐｅｒｖｉｓｏｒ）４３０、４４０を示している。ここで、ロードバランシングノード４２０は、Ｌ４  ＤＳＲ（Ｄｉｒｅｃｔ  Ｓｅｒｖｅｒ  Ｒｅｔｕｒｎ）ロードバランサ（Ｌ４  ＤＳＲ  Ｌｏａｄ  Ｂａｌａｎｃｅｒ）４２１を含んでおり、ハイパーバイザ４３０、４４０は、バックエンド仮想マシンサーバ１（Ｂａｃｋｅｎｄ  ＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）Ｓｅｒｖｅｒ  １）４３１、バックエンド仮想マシンサーバ２（Ｂａｃｋｅｎｄ  ＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）Ｓｅｒｖｅｒ  ２）４３２、およびバックエンド仮想マシンサーバ３（Ｂａｃｋｅｎｄ  ＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）Ｓｅｒｖｅｒ  ３）４４１を含んでいる。図４では、２つのハイパーバイザ４３０、４４０と３つのバックエンド仮想マシンサーバ４３１、４３２、４４１を示しているが、その数が図４のように限定されることはなく、顧客の要求および／または仮想ネットワークサービスのための環境に応じて多様な数で構成可能であることは、当業者にとって自明であろう。
【００３３】
ここで、Ｌ４  ＤＳＲロードバランサ４２１とバックエンド仮想マシンサーバ４３１、４３２、４４１は、仮想リソースであってよく、仮想ネットワークのサービス提供者は、顧客が望む条件にしたがってこのような仮想リソースを顧客に提供してよい。ここで、Ｌ４  ＤＳＲロードバランシングのためには、一例として、バックエンド仮想マシンサーバ１（４３１）がＬ４  ＤＳＲロードバランサ４２１から伝達されたクライアントの要求による応答を、Ｌ４  ＤＳＲロードバランサ４２１を経ずにルータ４１０に直ぐに（直接的に）伝達する必要がある。このようなＬ４  ＤＳＲロードバランシングの処理のためには、上述したように、バックエンド仮想マシンサーバ１（４３１）にループバック（ｌｏｏｐ  ｂａｃｋ）インタフェースのような機能が設定されなければならなかった。しかし、バックエンド仮想マシンサーバ１（４３１）は、顧客が自身の必要に応じて機能を設定および活用する仮想マシンであり、サービス提供者が顧客にループバックインタフェースの設定を要求および／または強要することは困難である。したがって、本発明の実施形態では、ハイパーバイザ４３０、４４０に含まれる仮想スイッチ（Ｖｉｒｔｕａｌ  Ｓｗｉｔｃｈ：ＶＳ）がループバックインタフェースの動作の代わりに処理できるように実現することにより、顧客がループバックインタフェースのための別途の設定をしなくても、Ｌ４  ＤＳＲロードバランシングのためのサービス提供が受けられるように処理することができる。
【００３４】
図５は、本発明の一実施形態における、仮想スイッチを利用したトンネリング動作の例を説明するための図である。上述したように、ロードバランシングノード４２０が含むＬ４  ＤＳＲロードバランサ４２１とハイパーバイザ４３０が含むバックエンド仮想マシンサーバ１（４３１）は、仮想ネットワーク５１０を介して連結してよいが、ロードバランシングノード４２０とハイパーバイザ４３０は、実際のネットワーク上で物理的にそれぞれ構成される別のノードであってよい。したがって、クライアントからの要求によるパケットは、実際のネットワークを介してロードバランシングノード４２０までは伝達されるが、ロードバランシングノード４２０からハイパーバイザ４３０までは仮想ネットワークを介して伝達されてよい。このために、本発明の実施形態では、仮想化ネットワークレイヤとして仮想スイッチ５２０、５３０が用いられてよい。例えば、Ｌ４  ＤＳＲロードバランサ４２１は、クライアントの要求による要求パケットを処理するためにバックエンド仮想マシンサーバ１（４３１）を選択したとする。このとき、バックエンド仮想マシンサーバ１（４３１）に要求パケットを伝達するために、仮想スイッチ５２０は、要求パケットに仮想ネットワーキングのための情報（一例として、仮想ネットワーキングのためのヘッダ情報）をオーバーレイして仮想ネットワーキングのためのパケットを生成してよい。言い換えれば、要求パケットは、仮想ネットワーキングのためのパケットにカプセル化（ｅｎｃａｐｓｕｌａｔｉｏｎ）される。このために、ロードバランシングノード４２０は、イーサネット（Ｅｔｈｅｒｎｅｔ）（登録商標）などのネットワークプロトコルのためのレイヤ２、ＩＰ、ＩＰｖ６などのネットワークプロトコルのためのレイヤ３、さらにＴＣＰ、ＵＤＰなどのネットワークプロトコルのためのレイヤ４をすべて処理するように実現されてよい。より具体的な例として、仮想スイッチ５２０は、オーバーレイのための方式として、ＶｘＬＡＮ（Ｖｉｒｔｕａｌ  ｅｘｔｅｎｓｉｂｌｅ  ＬＡＮ）、ＶＬＡＮ（Ｖｉｒｔｕａｌ  ＬＡＮ）、ＧＲＥ（Ｇｅｎｅｒｉｃ  Ｒｏｕｔｅ  Ｅｎｃａｐｓｕｌａｔｉｏｎ）、８０２．１１ｂｒなどのような仮想ネットワーキング技術（プロトコル）を適用してよい。
【００３５】
これとは逆に、ハイパーバイザ４３０が含む仮想スイッチ５３０は、仮想ネットワーキングのためのパケットから要求パケットを抽出し、Ｌ４  ＤＳＲロードバランサ４２１によって選択されたバックエンド仮想マシンサーバ１（４３１）に伝達してよい。この場合、実際のネットワークを介して送信された要求パケットには発信者（クライアント）のＩＰアドレスが含まれており、したがって、バックエンド仮想マシンサーバ１（４３０）は、クライアントに関する情報を得ることができるようになる。
【００３６】
一方、仮想スイッチ５３０は、上述したループバックインタフェースの動作を代わりに処理するように実現されてよい。例えば、上述した要求によるバックエンド仮想マシンサーバ１（４３１）の応答は、仮想スイッチ５３０を利用し、ロードバランシングノード４２０ではない、図４を参照しながら説明したルータ４１０に直接伝達されてよい。
【００３７】
図６は、本発明の一実施形態における、ループバックを利用した仮想ネットワーク上でのＬ４  ＤＳＲロードバランシングのための動作の例を説明するための図である。図６は、図４を参照しながら説明したルータ４１０、ロードバランシングノード４２０、ハイパーバイザ４３０、４４０、Ｌ４  ＤＳＲロードバランサ４２１、バックエンド仮想マシンサーバ１（４３１）、バックエンド仮想マシンサーバ２（４３２）、およびバックエンド仮想マシンサーバ３（４４１）を示している。また、図６は、追加で、バックエンド仮想マシンサーバ４３１、４３２、４４１それぞれのためのループバックモジュール６１０、６２０、６３０をさらに示している。ここで、ループバックモジュール６１０、６２０、６３０は、ハイパーバイザ４３０、４４０がバックエンド仮想マシンサーバ４３１、４３２、４４１のために含む仮想スイッチにそれぞれ実現されてよい。例えば、図５を参照しながら説明したように、バックエンド仮想マシンサーバ１（４３１）のためのループバックモジュール６１０は、仮想スイッチ５３０に実現されてよい。例えば、ルータ４１０を通じてロードバランシングノード４２０に伝達された要求パケットが、Ｌ４  ＤＳＲロードバランサ４２１とロードバランシングノード４２０が含む仮想スイッチを経てバックエンド仮想マシンサーバ１（４３１）に伝達されたとする。このとき、要求パケットは、上述したように、トンネリングによってロードバランシングノード４２０からバックエンド仮想マシンサーバ１（４３１）に伝達されてよい。要求パケットを受信したバックエンド仮想マシンサーバ１（４３１）の応答パケットは、ループバックモジュール６１０を通じてロードバランシングノード４２０が含むＬ４  ＤＳＲロードバランサ４２１を経ずにルータ４１０に直ぐに伝達されてよい。上述したように、バックエンド仮想マシンサーバ１（４３１）は、クライアントのＩＰアドレスが分かるため、ループバックモジュール６１０は、クライアントのＩＰアドレスを利用し、ロードバランシングノード４２０を経ずにルータ４１０に応答パケットを直接伝達してよい。したがって、応答パケットがトンネリングによって再びロードバランシングノード４２０を経る過程を省略することができるため、遅延速度（ｌａｔｅｎｃｙ）を減らすことができる。
【００３８】
一方、ハイパーバイザ４３０、４４０で仮想スイッチを設定することができない場合も存在する。このような場合には、ＴＯＲ（Ｔｏｐ  Ｏｆ  Ｒａｃｋ）スイッチが仮想スイッチの役割をしてよく、このようなＴＯＲスイッチでループバックインタフェースのための動作を実行してよい。
【００３９】
図７は、本発明の一実施形態における、ＴＯＲスイッチを利用した仮想ネットワーク上でのＬ４  ＤＳＲロードバランシングのための動作の例を説明するための図である。図７は、図４を参照しながら説明したルータ４１０、ロードバランシングノード４２０、ハイパーバイザ４３０、４４０、Ｌ４  ＤＳＲロードバランサ４２１、バックエンド仮想マシンサーバ１（４３１）、バックエンド仮想マシンサーバ２（４３２）、およびバックエンド仮想マシンサーバ３（４４１）を示している。また、図７は、ＴＯＲスイッチ（ＴＯＲ  Ｓｗｉｔｃｈ）７１０をさらに示している。本実施形態では、ハイパーバイザ４３０、４４０に仮想スイッチを構成することができない場合に、仮想ネットワークで使用されるＴＯＲスイッチ７１０にバックエンド仮想マシンサーバ４３１、４３２、４４１のためのループバックモジュール７１１、７１２、７１３を構成した例を示している。図５を参照しながら説明したように、ロードバランシングノード４２０が伝達するクライアントからの要求パケットは、トンネリングによってバックエンド仮想マシンサーバ４３１、４３２、４４１に伝達される。例えば、ロードバランシングノード４２０は、Ｌ４  ＤＳＲロードバランサ４２１と仮想スイッチ（一例として、図５の仮想スイッチ５２０）を利用し、クライアントからの要求パケットをトンネリングによってＴＯＲスイッチ７１０に構成されたループバックモジュール７１１を経てバックエンド仮想マシンサーバ１（４３１）に伝達してよい。このとき、ＴＯＲスイッチ７１０が含む仮想スイッチは、トンネリングによって生成された仮想ネットワーキングのためのパケットを要求パケットに再変換してもよい。当該再変換された要求パケットは、ハイパーバイザ（４３０）に伝達され、選択されたバックエンド仮想マシンサーバ（４３１）に伝達されてもよい。また、ループバックモジュール７１１は、バックエンド仮想マシンサーバ１（４３１）からの応答パケットをトンネリングによって再びロードバランシングノード４２０に伝達せずに、ルータ４１０に直接伝達することにより、遅延速度（ｌａｔｅｎｃｙ）を減らすことができる。
【００４０】
このように、本発明の実施形態では、仮想ネットワーク環境でのロードバランシングノードとバックエンド仮想マシンサーバ間のパケットの伝達を、仮想スイッチを利用したトンネリングによって処理することができる。また、仮想スイッチによってループバックインタフェースのための処理を提供することにより、顧客がバックエンド仮想マシンサーバそれぞれにループバックインタフェースを設定しなくてもＤＳＲロードバランシングを可能にし、遅延速度を減らすことができる。さらに、発信者のＩＰソースアドレスがバックエンド仮想マシンサーバに伝達されるため、バックエンド仮想マシンサーバでクライアントに関する情報が得られるようになる。
【００４１】
図８は、本発明の一実施形態における、仮想ネットワーク環境を構成するための物理的なノードの内部構成を説明するためのブロック図である。図８では、１つのノード８１０に対する実施形態について説明するが、仮想ネットワーク環境を構成するための物理的なノードは、図８のノード８１０と同一または類似の内部構成を有してよい。
【００４２】
ノード８１０は、メモリ８１１、プロセッサ８１２、通信モジュール８１３、そして入力／出力インタフェース８１４を含んでよい。メモリ８１１は、コンピュータで読み取り可能な記録媒体であって、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、ＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）、およびディスクドライブのような永久大容量記憶装置（ｐｅｒｍａｎｅｎｔ  ｍａｓｓ  ｓｔｏｒａｇｅ  ｄｅｖｉｃｅ）を含んでよい。ここで、ＲＯＭと永久大容量記憶装置は、メモリ８１１とは分離する別の永久格納装置として含まれてもよい。また、メモリ８１１には、オペレーティングシステムと、少なくとも１つのプログラムコード（一例として、ロードバランシングノード４２０にＬ４  ＤＳＲロードバランサ４２１および仮想スイッチ５２０を実現するためのプログラムやソフトウェアモジュールのコード）が格納されてよい。このようなソフトウェア構成要素は、メモリ８１１とは別のコンピュータで読み取り可能な記録媒体からロードされてよい。このような別のコンピュータで読み取り可能な記録媒体は、フロッピー（登録商標）ドライブ、ディスク、テープ、ＤＶＤ／ＣＤ−ＲＯＭドライブ、メモリカードなどのコンピュータで読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータで読み取り可能な記録媒体ではない通信モジュール８１３を通じてメモリ８１１にロードされてもよい。
【００４３】
プロセッサ８１２は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ８１１または通信モジュール８１３によって、プロセッサ８１２に提供されてよい。例えば、プロセッサ８１２は、メモリ８１１のような記録装置に格納されたプログラムコードにしたがって受信される命令を実行するように構成されてよい。より具体的な例として、ノード８１０を利用してＶＰＣ（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｃｌｏｕｄ）サービスを提供するサービス提供者は、顧客のロードバランシングサービス提供の要請にしたがい、Ｌ４  ＤＳＲロードバランサおよび仮想スイッチを実現するための命令を、通信モジュール８１３を通じてノード８１０に入力してよい。このとき、ノード８１０のプロセッサ８１２は、入力された命令とメモリ８１１に格納されたコンピュータプログラムの命令にしたがってＬ４  ＤＳＲロードバランサおよび仮想スイッチを実現し、指定された顧客のバックエンド仮想マシンサーバにロードバランシングサービスを提供してよい。
【００４４】
通信モジュール８１３は、実際のネットワークを介して他の物理的なノードと互いに通信するための機能を提供してよい。一例として、ノード８１０のプロセッサ８１２がメモリ８１１のような記録装置に格納されたプログラムコードにしたがって生成したパケット（一例として、バックエンド仮想マシンサーバに伝達するためのパケット）が、通信モジュール８１３の制御にしたがって実際のネットワークを介して他の物理的なノードに伝達されてよい。これとは逆に、他の物理的なノードからのパケットが通信モジュール８１３を通じて受信され、ノード８１０のプロセッサ８１２やメモリ８１１に伝達されてもよい。
【００４５】
入力／出力インタフェース８１４は、入力／出力装置８１５とのインタフェースのための手段であってよい。例えば、入力装置は、キーボードまたはマウスなどの装置を、出力装置は、ディスプレイのような装置を含んでよい。また、他の実施形態として、ノード８１０は、図８の構成要素よりもさらに多くの構成要素を含んでもよい。しかし、大部分の従来技術的構成要素を明確に図に示す必要はない。例えば、ノード８１０は、物理的な各種ボタンやタッチパネルを利用したボタン、または入力／出力ポートなどの多様な構成要素がノード８１０にさらに含まれるように実現されてもよいことを理解できるであろう。
【００４６】
以下で説明される図９および図１０は、ロードバランスノードがロードバランシングを処理する実施形態について説明する。
【００４７】
図９は、本発明の一実施形態における、仮想ネットワーク環境を構成するための物理的なノードのプロセッサが含むことのできる構成要素の例を示したブロック図であり、図１０は、本発明の一実施形態における、ノードが実行することのできる方法の例を示したフローチャートである。
【００４８】
本実施形態に係るノード８１０は、上述したロードバランシングノードに対応してよく、Ｌ４  ＤＳＲロードバランサおよび仮想スイッチを構成するための物理的な装置であってよい。このようなノード８１０に含まれるプロセッサ８１２は、構成要素として、ロードバランシング処理要請受信部９１０、ロードバランサおよび仮想スイッチ実現部９２０、要求パケット受信部９３０、バックエンド仮想マシンサーバ選択部９４０、仮想ネットワーキングパケット生成部９５０、および仮想ネットワーキングパケット送信部９６０を含んでよい。
【００４９】
このようなプロセッサ８１２およびプロセッサ８１２の構成要素は、図１０の方法が含む段階１０１０〜１０６０を実行してよい。このとき、プロセッサ８１２およびプロセッサ８１２の構成要素は、メモリ８１１が含むオペレーティングシステムのコードおよび／または少なくとも１つのプログラムのコードによる命令（ｉｎｓｔｒｕｃｔｉｏｎ）を実行するように実現されてよい。ここで、プロセッサ８１２の構成要素は、ノード８１０に格納されたプログラムコードが提供する制御命令にしたがってプロセッサ８１２によって実行される、プロセッサ８１２の互いに異なる機能（ｄｉｆｆｅｒｅｎｔ  ｆｕｎｃｔｉｏｎｓ）として実現することができる。このとき、プロセッサ８１２は、ノード８１０の制御と関連する命令がロードされたメモリ８１１から必要な制御命令を読み取り、読み取った制御命令にしたがって後述する段階１０１０〜１０６０を実行するようにノード８１０を制御してよい。
【００５０】
段階１０１０で、ロードバランシング処理要請受信部９１０は、仮想ネットワークのためのサービスの顧客端末からロードバランシングの処理のための要請を受信するようにノード８１０を制御してよい。例えば、仮想ネットワークのためのサービス提供者は、実際のネットワークを介して顧客端末からの多様な要求に応じて仮想リソースを顧客に提供してよい。このとき、ロードバランシング要請受信部９１０は、顧客のロードバランシングの処理のための要請を受信してよい。実施形態によっては、仮想ネットワークの物理的な装置を制御する制御装置が、顧客端末からロードバランシングの処理のための要請を受信してもよい。この場合、ロードバランシング処理要請受信部９１０は、制御装置から顧客要請の伝達を受けてよい。
【００５１】
段階１０２０で、ロードバランサおよび仮想スイッチ実現部９２０は、受信した要請にしたがい、該当の顧客のためのロードバランサと仮想スイッチを生成してよい。このようなロードバランサと仮想スイッチは、仮想モジュールの形態で生成されてよい。ＶＰＣのような仮想ネットワークで仮想リソースをどのように生成して提供するかについては、既存の技術を利用することで当業者が容易に理解できるであろう。
【００５２】
段階１０３０で、要求パケット受信部９３０は、ルータを通じてクライアントから要求パケットを受信するようにノード８１０を制御してよい。仮想ネットワークのためのサービスを提供するサービス提供者の観点の顧客は、クライアントにサービスを提供してよく、このために多数のバックエンド仮想マシンサーバを構築してよい。このとき、段階１０１０で説明したロードバランシングの処理のための要請とは、クライアントの要請パケットに対するロードバランシングの処理を、顧客が要求することを意味してよい。この場合、クライアントからの要求パケットは、バックエンド仮想マシンサーバに伝達される前に共用ネットワークのルータを経てノード８１０に送信されてよく、要求パケット受信部９３０は、送信された要求パケットを受信するようにノード８１０を制御してよい。
【００５３】
段階１０４０で、バックエンド仮想マシンサーバ選択部９４０は、受信した要求パケットを送信するバックエンド仮想マシンサーバをロードバランサ（ｌｏａｄ  ｂａｌａｎｃｅｒ）によって選択してよい。言い換えれば、バックエンド仮想マシンサーバ選択部９４０は、ロードバランサを通じて要求パケットが複数のバックエンド仮想マシンサーバに分散処理されるようにしてよい。このようなロードバランサは、段階１０２０で生成されたソフトウェアモジュールであってよい。
【００５４】
段階１０５０で、仮想ネットワーキングパケット生成部９５０は、受信した要求パケットを、仮想ネットワークを介して前記選択されたバックエンド仮想マシンサーバに送信するための情報を、ロードバランシングノードが含む仮想スイッチによって前記受信した要求パケットにオーバーレイ（ｏｖｅｒｌａｙ）して仮想ネットワーキングのためのパケットを生成してよい。要求パケットは、実際のネットワークを介して送信されたパケットであり、仮想ネットワークを介した送信のためには、仮想ネットワーキングプロトコルのためのヘッダなどが要求される。仮想ネットワーキングパケット生成部９５０は、このような仮想ネットワーキングプロトコルのためのヘッダのような情報を受信した要求パケットにオーバーレイすることにより、仮想ネットワーキングのためのパケットを生成してよい。例えば、仮想ネットワーキングパケット生成部９５０は、段階１０５０で、要求パケットにＶｘＬＡＮ（Ｖｉｒｔｕａｌ  ｅｘｔｅｎｓｉｂｌｅ  ＬＡＮ）、ＶＬＡＮ（Ｖｉｒｔｕａｌ  ＬＡＮ）、ＧＲＥ（Ｇｅｎｅｒｉｃ  Ｒｏｕｔｅ  Ｅｎｃａｐｓｕｌａｔｉｏｎ）、および８０２．１１ｂｒのうちの１つの仮想ネットワーキングプロトコルを適用するトンネリング（ｔｕｎｎｅｌｉｎｇ）により、仮想ネットワーキングのためのパケットを生成してよい。このために、ノード８１０は、ネットワークモデルのレイヤ２、３、４を処理できるように実現されてよく、要求パケットにオーバーレイされた情報は、ネットワークモデルのレイヤ２およびレイヤ３のためのヘッダ情報および前記仮想ネットワーキングプロトコルのためのヘッダ情報を含んでよい。
【００５５】
段階１０６０で、仮想ネットワーキングパケット送信部９６０は、生成された仮想ネットワーキングのためのパケットをハイパーバイザノードに送信するようにノード８１０を制御してよい。ここで、ハイパーバイザノードは、前記選択されたバックエンド仮想マシンサーバを含んでよく、送信された仮想ネットワーキングのためのパケットを、仮想ネットワークを介して受信し、ハイパーバイザノードが含む仮想スイッチのうちで選択されたバックエンド仮想マシンサーバのための仮想スイッチによって要求パケットを抽出し、抽出された要求パケットを、ロードバランサを通じて選択されたバックエンド仮想マシンサーバに伝達するように実現されてよい。また、上述したように、ハイパーバイザノードが仮想スイッチを構成することができない場合も存在する。この場合、送信された仮想ネットワーキングのためのパケットは、ＴＯＲ（Ｔｏｐ  Ｏｆ  Ｒａｃｋ）スイッチに伝達され、ＴＯＲスイッチが含む仮想スイッチのうちで前記選択されたバックエンド仮想マシンサーバのための仮想スイッチによって要求パケットに再変換されてハイパーバイザノードに伝達されてよい。このとき、ハイパーバイザノードは、再変換された要求パケットを選択されたバックエンド仮想マシンサーバに伝達するように実現されてよい。
【００５６】
実施形態によって、ロードバランサは、Ｌ４  ＤＳＲ（Ｄｉｒｅｃｔ  Ｓｅｒｖｅｒ  Ｒｅｔｕｒｎ）ロードバランサを含んでよい。このために、選択されたバックエンド仮想マシンサーバは、伝達された要求パケットに対する応答パケットを、前記選択されたバックエンド仮想マシンサーバのための仮想スイッチを利用してＬ４  ＤＳＲロードバランサを経ずにルータに直接送信するように実現されてよい。
【００５７】
上述したように、要求パケットは、クライアントのＩＰアドレスを含んでいるため、要求パケットがカプセル化されている仮想ネットワーキングのためのパケットにより、クライアントのＩＰアドレスが前記選択されたバックエンド仮想マシンサーバに伝達されてよい。
【００５８】
以下で説明される図１１および図１２は、ノード８１０から送信された仮想ネットワーキングのためのパケットを受信するハイパーバイザノードがロードバランシングを処理する実施形態について説明する。
【００５９】
図１１は、本発明の一実施形態における、仮想ネットワーク環境を構成するための物理的なノードのプロセッサが含むことのできる構成要素の他の例を示したブロック図であり、図１２は、本発明の一実施形態における、ノードが実行することのできる方法の他の例を示したフローチャートである。
【００６０】
本実施形態に係るノード８１０は、上述したハイパーバイザノードに対応してよく、少なくとも１つのバックエンド仮想マシンサーバとバックエンド仮想マシンサーバそれぞれに対応する仮想スイッチを構成するための物理的な装置であってよい。このようなノード８１０に含まれるプロセッサ８１２は、構成要素として、サーバおよび仮想スイッチ実現部１１１０、パケット受信部１１２０、要求パケット抽出部１１３０、要求パケット伝達部１１４０、要請処理部１１５０、および応答パケット伝達部１１６０を含んでよい。
【００６１】
このようなプロセッサ８１２およびプロセッサ８１２の構成要素は、図１２の方法が含む段階１２１０〜１２６０を実行してよい。このとき、プロセッサ８１２およびプロセッサ８１２の構成要素は、メモリ８１１が含むオペレーティングシステムのコードおよび／または少なくとも１つのプログラムのコードによる命令（ｉｎｓｔｒｕｃｔｉｏｎ）を実行するように実現されてよい。ここで、プロセッサ８１２の構成要素は、ノード８１０に格納されたプログラムコードが提供する制御命令にしたがってプロセッサ８１２によって実行される、プロセッサ８１２の互いに異なる機能（ｄｉｆｆｅｒｅｎｔ  ｆｕｎｃｔｉｏｎｓ）として実現することができる。このとき、プロセッサ８１２は、ノード８１０の制御と関連する命令がロードされたメモリ８１１から必要な制御命令を読み取り、読み取った制御命令にしたがって後述される段階１２１０〜１２６０を実行するようにノード８１０を制御してよい。
【００６２】
段階１２１０で、サーバおよび仮想スイッチ実現部１１１０は、顧客の要請にしたがい、少なくとも１つのバックエンド仮想マシンサーバとバックエンド仮想マシンサーバに対応する仮想スイッチを生成してよい。バックエンド仮想マシンサーバと仮想スイッチはそれぞれ、ソフトウェアモジュールとして生成されてよい。
【００６３】
段階１２２０で、パケット受信部１１２０は、ロードバランサを含むロードバランシングノードから実際のネットワークを介して仮想ネットワーキングのためのパケットを受信するようにノード８１０を制御してよい。ここで、上述したように、仮想ネットワーキングのためのパケットは、ロードバランシングノードがルータを通じて伝達されたクライアントからの要求パケットに、要求パケットを、仮想ネットワークを介して送信するために要求される情報をロードバランシングノードが含む仮想スイッチによってオーバーレイして生成されてよい。
【００６４】
段階１２３０で、要求パケット抽出部１１３０は、ハイパーバイザノードが含む仮想スイッチのうちでロードバランサによって選択されたバックエンド仮想マシンサーバのための仮想スイッチを利用し、仮想ネットワーキングのためのパケットで要求パケットを抽出してよい。仮想ネットワーキングのためのパケットは、要求パケットをカプセル化しているため、要求パケット抽出部１１３０は、仮想ネットワーキングのためのパケットから仮想ネットワーキングのためにオーバーレイされた情報を取り除いて要求パケットを取得してよい。
【００６５】
段階１２４０で、要求パケット伝達部１１４０は、抽出された要求パケットを前記選択されたバックエンド仮想マシンサーバに伝達してよい。上述したように、バックエンド仮想マシンサーバは、ソフトウェアモジュールの形態を有するため、実質的なデータ送信は発生しなくてよい。
【００６６】
段階１２５０で、要請処理部１１５０は、クライアントからの要求パケットによる要請を処理し、要求パケットに対する応答パケットを生成してよい。例えば、要請処理部１１５０は、ソフトウェアモジュールの形態を有する前記選択されたバックエンド仮想マシンサーバの制御にしたがって要求パケットを処理してよく、応答パケットを生成してよい。
【００６７】
段階１２６０で、応答パケット伝達部１１６０は、前記選択されたバックエンド仮想マシンサーバの制御にしたがって伝達された要求パケットに対する応答パケットを、前記選択されたバックエンド仮想マシンサーバのための仮想スイッチを利用してＬ４  ＤＳＲロードバランサを経ずにルータに直接送信するようにノード８１０を制御してよい。このように、応答パケットがＬ４  ＤＳＲロードバランサを経ないため、遅延速度で利得を得ることができる。
【００６８】
実施形態によっては、ハイパーバイザノードが仮想スイッチを構成することができない場合も存在する。この場合には、ハイパーバイザノードは、上述したように、ＴＯＲ（Ｔｏｐ  Ｏｆ  Ｒａｃｋ）スイッチに構成された仮想スイッチを利用して仮想ネットワーキングのためのパケットから応答パケットを得てもよい。このために、ハイパーバイザノードは、段階１２１０でバックエンド仮想マシンサーバのみを生成してよく、段階１２２０でＴＯＲスイッチから要求パケットを得てよい。段階１２３０は省略されてもよく、段階１２４０および段階１２５０を経た後、段階１２６０で応答パケットをＴＯＲスイッチに構成された仮想スイッチを利用してＬ４  ＤＳＲロードバランサを経ずにルータに直接送信するようにノード８１０を制御してもよい。
【００６９】
図１３は、本発明の一実施形態における、仮想ネットワーク環境で仮想スイッチを含むハイパーバイザノードのための物理的なノードのプロセッサが含むことのできる構成要素の例を示したブロック図であり、図１４は、本発明の一実施形態における、仮想スイッチを含むハイパーバイザノードが実行することのできる方法の例を示したフローチャートである。
【００７０】
本実施形態に係るノード８１０は、上述したハイパーバイザノードに対応してよく、少なくとも１つのバックエンド仮想マシンサーバとバックエンド仮想マシンサーバそれぞれに対応する仮想スイッチを構成するための物理的な装置であってよい。このようなノード８１０に含まれるプロセッサ８１２は、構成要素として、サーバおよび仮想スイッチ実現部１３１０、パケット受信部１３２０、応答パケット生成部１３３０、および応答パケット送信部１３４０を含んでよい。
【００７１】
このようなプロセッサ８１２およびプロセッサ８１２の構成要素は、図１４の方法が含む段階１４１０〜１４４０を実行してよい。このとき、プロセッサ８１２およびプロセッサ８１２の構成要素は、メモリ８１１が含むオペレーティングシステムのコードおよび／または少なくとも１つのプログラムのコードによる命令（ｉｎｓｔｒｕｃｔｉｏｎ）を実行するように実現されてよい。ここで、プロセッサ８１２の構成要素は、ノード８１０に格納されたプログラムコードが提供する制御命令にしたがってプロセッサ８１２によって実行される、プロセッサ８１２の互いに異なる機能（ｄｉｆｆｅｒｅｎｔ  ｆｕｎｃｔｉｏｎｓ）として実現することができる。このとき、プロセッサ８１２は、ノード８１０の制御と関連する命令がロードされたメモリ８１１から必要な制御命令を読み取り、読み取った制御命令にしたがって以後で説明される段階１４１０〜１４４０を実行するようにノード８１０を制御してよい。
【００７２】
段階１４１０で、サーバおよび仮想スイッチ実現部１３１０は、少なくとも１つのバックエンド仮想マシンサーバおよび前記少なくとも１つのバックエンド仮想マシンサーバに対応してＤＳＲ（Ｄｉｒｅｃｔ  Ｓｅｒｖｅｒ  Ｒｅｔｕｒｎ）処理機能を含む仮想スイッチを生成してよい。例えば、サーバおよび仮想スイッチ実現部１３１０は、顧客の要請にしたがい、ハイパーバイザノードは顧客が望む仮想リソースの形態でバックエンド仮想マシンサーバを生成して提供してよく、顧客は生成されたバックエンド仮想マシンサーバを通じてクライアントにサービスを提供してよい。また、サーバおよび仮想スイッチ実現部１３１０は、生成されたバックエンド仮想マシンサーバそれぞれに対応する仮想スイッチを生成してよい。このとき、仮想スイッチは、ＤＳＲ処理機能を含んでよい。このようなＤＳＲ処理機能は、以下で説明するように、クライアントからの要求パケットに含まれたＩＰアドレスを利用して要求パケットに対する応答パケットを実際のネットワーク上のルータに直接送信するための機能を含んでよい。
【００７３】
段階１４２０で、パケット受信部１３２０は、Ｌ４  ＤＳＲロードバランサを含むロードバランシングノードがルータを通じて受信したクライアントからの要求パケットを、ロードバランシングノードから仮想ネットワークを介して受信してよい。上述したように、要求パケットは、ＶｘＬＡＮ（Ｖｉｒｔｕａｌ  ｅｘｔｅｎｓｉｂｌｅ  ＬＡＮ）、ＶＬＡＮ（Ｖｉｒｔｕａｌ  ＬＡＮ）、ＧＲＥ（Ｇｅｎｅｒｉｃ  Ｒｏｕｔｅ  Ｅｎｃａｐｓｕｌａｔｉｏｎ）、および８０２．１１ｂｒのうちの１つの仮想ネットワーキングプロトコルを適用したトンネリング（ｔｕｎｎｅｌｉｎｇ）により、仮想ネットワークを介して要求パケットを送信するための情報が前記要求パケットにオーバーレイされて伝達されてよい。このとき、要求パケットにオーバーレイされた情報は、ネットワークモデルのレイヤ２およびレイヤ３のためのヘッダ情報および前記仮想ネットワーキングプロトコルのためのヘッダ情報を含んでよい。
【００７４】
段階１４３０で、応答パケット生成部１３３０は、生成された少なくとも１つのバックエンド仮想マシンサーバのうちでＬ４  ＤＳＲロードバランサによって選択されたバックエンド仮想マシンサーバを通じて要求パケットを処理して、応答パケットを生成してよい。例えば、応答パケット生成部１３３０は、前記生成された仮想スイッチを利用して前記情報がオーバーレイされた要求パケットから要求パケットを抽出し、前記選択されたバックエンド仮想マシンサーバに伝達してよい。また、応答パケット生成部１３３０は、前記選択されたバックエンド仮想マシンサーバを通じて要求パケットを処理して応答パケットを生成してよい。
【００７５】
段階１４４０で、応答パケット送信部１３４０は、生成された仮想スイッチが含むＤＳＲ処理機能にしたがって生成された応答パケットを、要求パケットが含むクライアントのＩＰアドレスに基づいて実際のネットワーク上のルータに送信してよい。例えば、応答パケット送信部１３４０は、生成された応答パケットを、仮想ネットワークを介してＬ４  ＤＳＲロードバランサを経ずにＤＳＲ処理機能によって実際のネットワーク上のルータに直接送信してよい。言い換えれば、要求パケットは、ロードバランシングノードから仮想ネットワークを介して伝達されるが、要求パケットに対する応答パケットは、実際のネットワークを介してルータに送信されてよい。
【００７６】
図１５は、本発明の一実施形態における、仮想ネットワーク環境でＴＯＲスイッチノードを実現するための物理的なノードのプロセッサが含むことのできる構成要素の例を示したブロック図であり、図１６は、本発明の一実施形態における、ＴＯＲスイッチノードが実行することのできる方法の例を示したフローチャートである。
【００７７】
本実施形態に係るノード８１０は、上述したＴＯＲスイッチに対応する物理的な装置であってよい。このようなノード８１０に含まれるプロセッサ８１２は、構成要素として、仮想スイッチ実現部１５１０、パケット受信部１５２０、要求パケット送信部１５３０、応答パケット受信部１５４０、および応答パケット送信部１５５０を含んでよい。
【００７８】
このようなプロセッサ８１２およびプロセッサ８１２の構成要素は、図１６の方法が含む段階１６１０〜１６５０を実行してよい。このとき、プロセッサ８１２およびプロセッサ８１２の構成要素は、メモリ８１１が含むオペレーティングシステムのコードおよび／または少なくとも１つのプログラムのコードによる命令（ｉｎｓｔｒｕｃｔｉｏｎ）を実行するように実現されてよい。ここで、プロセッサ８１２の構成要素は、ノード８１０に格納されたプログラムコードが提供する制御命令にしたがってプロセッサ８１２によって実行される、プロセッサ８１２の互いに異なる機能（ｄｉｆｆｅｒｅｎｔ  ｆｕｎｃｔｉｏｎｓ）として実現することができる。このとき、プロセッサ８１２は、ノード８１０の制御と関連する命令がロードされたメモリ８１１から必要な制御命令を読み取り、読み取った制御命令にしたがって以後で説明される段階１６１０〜１６６０を実行するようにノード８１０を制御してよい。
【００７９】
段階１６１０で、仮想スイッチ実現部１５１０は、複数のバックエンド仮想マシンサーバそれぞれに対応し、ＤＳＲ（Ｄｉｒｅｃｔ  Ｓｅｒｖｅｒ  Ｒｅｔｕｒｎ）処理機能を含む仮想スイッチを生成してよい。このとき、複数のバックエンド仮想マシンサーバは、少なくとも１つのハイパーバイザノードに構成されてよい。仮想スイッチ実現部１５１０は、上述した少なくとも１つのハイパーバイザノードに構成された複数のバックエンド仮想マシンサーバを確認し、確認されたバックエンド仮想マシンサーバそれぞれのための仮想スイッチを生成してよい。
【００８０】
段階１６２０で、パケット受信部１５２０は、Ｌ４  ＤＳＲロードバランサを含むロードバランシングノードがルータを通じて受信したクライアントからの要求パケットを、ロードバランシングノードから仮想ネットワークを介して受信するようにノード８１０を制御してよい。上述したように、要求パケットは、ＶｘＬＡＮ（Ｖｉｒｔｕａｌ  ｅｘｔｅｎｓｉｂｌｅ  ＬＡＮ）、ＶＬＡＮ（Ｖｉｒｔｕａｌ  ＬＡＮ）、ＧＲＥ（Ｇｅｎｅｒｉｃ  Ｒｏｕｔｅ  Ｅｎｃａｐｓｕｌａｔｉｏｎ）、および８０２．１１ｂｒのうちの１つの仮想ネットワーキングプロトコルを適用したトンネリング（ｔｕｎｎｅｌｉｎｇ）により、仮想ネットワークを介して要求パケットを送信するための情報が前記要求パケットにオーバーレイされて伝達されてよい。ここで、要求パケットにオーバーレイされた情報は、ネットワークモデルのレイヤ２およびレイヤ３のためのヘッダ情報および前記仮想ネットワーキングプロトコルのためのヘッダ情報を含んでよい。
【００８１】
段階１６３０で、要求パケット送信部１５３０は、Ｌ４  ＤＳＲロードバランサによって選択されたバックエンド仮想マシンサーバを含むハイパーバイザノードに要求パケットを送信するようにノード８１０を制御してよい。例えば、要求パケット送信部１５３０は、生成された仮想スイッチを利用して前記情報がオーバーレイされた要求パケットから前記要求パケットを抽出し、前記選択されたバックエンド仮想マシンサーバに伝達することによって要求パケットをハイパーバイザノードに送信してよい。
【００８２】
段階１６４０で、応答パケット受信部１５４０は、選択されたバックエンド仮想マシンサーバを含むハイパーバイザノードから要求パケットに対する応答パケットを受信するようにノード８１０を制御してよい。ここで、要求パケットは、前記選択されたバックエンド仮想マシンサーバによって処理されてよく、前記選択されたバックエンド仮想マシンサーバを通じて前記応答パケットが生成されてよい。
【００８３】
段階１６５０で、応答パケット送信部１５５０は、生成された仮想スイッチが含むＤＳＲ処理機能にしたがって受信された応答パケットを、要求パケットが含むクライアントのＩＰアドレスに基づいて実際のネットワーク上のルータに送信するようにノード８１０を制御してよい。例えば、応答パケット送信部１５５０は、生成された応答パケットを、仮想ネットワークを介してＬ４  ＤＳＲロードバランサを経ずにＤＳＲ処理機能にしたがって実際のネットワーク上のルータに直接送信してよい。言い換えれば、要求パケットは、ロードバランシングノードから仮想ネットワークを介して伝達されたが、要求パケットに対する応答パケットは実際のネットワークを介してルータに送信されてよい。
【００８４】
図１７は、本発明の一実施形態における、ループバックを利用した仮想ネットワーク上でのパケットモニタリングのための動作の例を示した図である。図１７は、図６を参照しながら説明したルータ４１０、ロードバランシングノード４２０、ハイパーバイザ４３０、４４０、Ｌ  ４ＤＳＲロードバランサ４２１、バックエンド仮想マシンサーバ１（４３１）、バックエンド仮想マシンサーバ２（４３２）、バックエンド仮想マシンサーバ３（４４１）、およびバックエンド仮想マシンサーバ４３１、４３２、４４１それぞれのためのループバックモジュール６１０、６２０、６３０をさらに示している。また、図１７は、モニタリング仮想マシン（Ｍｏｎｉｔｏｒｉｎｇ  ＶＭ）１７１０をさらに示している。
【００８５】
ここで、ループバックモジュール６１０、６２０、６３０は、上述したように、バックエンド仮想マシンサーバ４３１、４３２、４４１それぞれに対して送受信されるパケットをすべて処理する。本実施形態において、ループバックモジュール６１０、６２０、６３０は、このように送受信されるパケットをすべてコピーしてモニタリング仮想マシン１７１０に伝達してよい。実施形態によっては、特定のバックエンド仮想マシンサーバに対して送受信されるパケットだけをコピーしてモニタリング仮想マシン１７１０に伝達することも可能である。
【００８６】
この場合、モニタリング仮想マシン１７１０は、ＤＰＩ（Ｄｅｅｐ  Ｐａｃｋｅｔ  Ｉｎｓｐｅｃｔｉｏｎ）のための機能を含んでよい。ＤＰＩとは、パケットの出発地と目的地情報だけではなく、パケットの内容までも検査する技術であって、アプリケーションレベル（レイヤ７）のデータを基盤としてパケットを識別および分類して特定のデータを分析する技術であり、これを通じてワームやハッキングなどの攻撃の可否を識別および分析してよい。言い換えれば、本実施形態では、Ｌ４  ＤＳＲロードバランシングのために利用される仮想スイッチを利用して必要なバックエンド仮想マシンサーバに対して送受信されるすべてのパケットをモニタリング仮想マシン１７１０によってミラーリング（ｍｉｒｒｏｒｉｎｇ）することにより、モニタリング仮想マシン１７１０がＤＰＩのための機能を利用してパケットを分析することが可能となる。図１７では、モニタリング仮想マシン１７１０がハイパーバイザ４３０に含まれる例について説明しているが、モニタリング仮想マシン１７１０は、希望するバックエンド仮想マシンサーバに対応する仮想スイッチからパケットの提供を受けることのできる、いずれの位置でも実現可能である。例えば、モニタリング仮想マシン１７１０は、別のハイパーバイザノードに実現されてもよい。
【００８７】
図１８は、本発明の一実施形態における、仮想ネットワーク環境でモニタリング仮想マシンを実現する物理的なノードのプロセッサが含むことのできる構成要素の例を示したブロック図であり、図１９は、本発明の一実施形態における、モニタリング仮想マシンを実現するノードが実行することのできる方法の例を示したフローチャートである。
【００８８】
本実施形態に係るノード８１０は、上述したモニタリング仮想マシンを実現するためのノードに対応する物理的な装置であってよい。このようなノード８１０に含まれるプロセッサ８１２は、構成要素として、モニタリング仮想マシン生成部１８１０、ミラーリング部１８２０、およびパケット分析部１８３０を含んでよい。
【００８９】
このようなプロセッサ８１２およびプロセッサ８１２の構成要素は、図１９の方法が含む段階１９１０〜１９３０を実行してよい。このとき、プロセッサ８１２およびプロセッサ８１２の構成要素は、メモリ８１１が含むオペレーティングシステムのコードおよび／または少なくとも１つのプログラムのコードによる命令（ｉｎｓｔｒｕｃｔｉｏｎ）を実行するように実現されてよい。ここで、プロセッサ８１２の構成要素は、ノード８１０に格納されたプログラムコードが提供する制御命令にしたがってプロセッサ８１２によって実行される、プロセッサ８１２の互いに異なる機能（ｄｉｆｆｅｒｅｎｔ  ｆｕｎｃｔｉｏｎｓ）として実現することができる。このとき、プロセッサ８１２は、ノード８１０の制御と関連する命令がロードされたメモリ８１１から必要な制御命令を読み取り、読み取った制御命令にしたがって以下で説明される段階１９１０〜１９３０を実行するようにノード８１０を制御してよい。
【００９０】
段階１９１０で、モニタリング仮想マシン生成部１８１０は、ＤＰＩ（Ｄｅｅｐ  Ｐａｃｋｅｔ  Ｉｎｓｐｅｃｔｉｏｎ）のための機能が含まれたモニタリング仮想マシンを生成してよい。ＤＰＩは、パケットの出発地と目的地情報だけではなく、パケットの内容までも検査する技術として周知であり、このような周知の技術を仮想マシンに適用することは、当業者であれば容易に理解できるであろう。
【００９１】
段階１９２０で、ミラーリング部１８２０は、少なくとも１つのバックエンド仮想マシンサーバに対して送受信されるパケットを、少なくとも１つのバックエンド仮想マシンサーバに対応する仮想スイッチによってミラーリング（ｍｉｒｒｏｒｉｎｇ）してよい。ここで、仮想スイッチは、ロードバランシングのためのロードバランシングノードから仮想ネットワークを介して送信される仮想パケットから、実際のパケットを分離して対応するバックエンド仮想マシンサーバに伝達し、バックエンド仮想マシンサーバからの実際のパケットに対する応答パケットを実際のネットワーク上のルータに送信してよい。さらに詳しく説明すると、仮想スイッチは、応答パケットを、仮想ネットワークを介してロードバランシングノードが含むＬ４  ＤＳＲ（Ｄｉｒｅｃｔ  Ｓｅｒｖｅｒ  Ｒｅｔｕｒｎ）ロードバランサを経ず、仮想スイッチに設定されたループバック（ｌｏｏｐ  ｂａｃｋ）インタフェースにしたがって実際のネットワーク上のルータに直接送信してよい。
【００９２】
段階１９３０で、パケット分析部１８３０は、ＤＰＩのための機能を利用して少なくとも１つのバックエンド仮想マシンサーバに対してミラーリングされたパケットを分析してよい。本実施形態は、仮想ネットワーク環境でバックエンド仮想マシンサーバに送受信されるパケットをどれほど簡単に取得できるかに関するものである。上述したように、バックエンド仮想マシンサーバは、顧客によって構成されるものであるため、パケットのミラーリング機能を追加するように要求および／または強制することは困難である。また、ＤＳＲ方式においてロードバランシングノードは、バックエンド仮想マシンサーバに送信されるパケットだけを扱い、ルータは実際のネットワーク（共用ネットワーク）上の装置であるため、仮想ネットワークのためのサービス提供者が任意に機能を変更することはできない。本実施形態では、サービス提供者側で直接管理することのできる仮想スイッチを利用してバックエンド仮想マシンサーバに対して送受信されるパケットをモニタリング仮想サーバにミラーリングすることにより、仮想ネットワーク環境で希望するバックエンド仮想マシンサーバに対して送受信されるパケットを容易に取得することができる。ＤＰＩを利用して、取得したパケットを分析することは、既存の周知技術によって処理されることを当業者であれば容易に理解できるであろう。
【００９３】
仮想ネットワークを介したパケットの伝達のためのオーバーレイおよびトンネリングなどや、Ｌ４  ＤＳＲロードバランシングのためのループバックインタフェースが設定された仮想スイッチ、さらにはＴＯＲスイッチを利用した仮想スイッチについては、上述したとおりであるため、繰り返しの説明は省略する。
【００９４】
このように本発明の実施形態によると、ＶＰＣ（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｃｌｏｕｄ）環境でハイパーバイザ（ｈｙｐｅｒｖｉｓｏｒ）を通じて顧客が構成するバックエンド仮想マシンサーバ（Ｂａｃｋｅｎｄ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｓｅｒｖｅｒ）に対するロードバランシングをトンネリングによって処理することができる。また、ＶＰＣ環境でバックエンド仮想マシンサーバに必要なループバック（ｌｏｏｐｂａｃｋ）インタフェースをハイパーバイザの仮想スイッチ（ｖｉｒｔｕａｌ  ｓｗｉｔｃｈ）によって実現および提供することにより、顧客がループバックインタフェースを直接設定する必要がない上に、ＶＰＣ環境でもバックエンド仮想マシンサーバの応答を、ロードバランサを経ずにルータに直接伝達することができる。また、上述した新たなロードバランサと仮想スイッチを利用してＶＰＣ環境でのＬ４  ＤＳＲロードバランシングを処理することにより、遅延速度（ｌａｔｅｎｃｙ）を減らすことができる。さらに、ロードバランシングのための前記仮想スイッチを利用し、バックエンド仮想マシンサーバで送受信されるパケットをＤＰＩ（Ｄｅｅｐ  Ｐａｃｋｅｔ  Ｉｎｓｐｅｃｔｉｏｎ）のための機能が含まれたモニタリング仮想マシンによってミラーリング（ｍｉｒｒｏｒｉｎｇ）することにより、モニタリング仮想マシンで希望するバックエンド仮想マシンに対して送受信されるすべてのパケットを収集および分析することができる。
【００９５】
上述したシステムまたは装置は、ハードウェア構成要素、ソフトウェア構成要素、またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、例えば、プロセッサ、コントローラ、ＡＬＵ（ａｒｉｔｈｍｅｔｉｃ  ｌｏｇｉｃ  ｕｎｉｔ）、デジタル信号プロセッサ、マイクロコンピュータ、ＦＰＧＡ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）、ＰＬＵ（ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｕｎｉｔ）、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、１つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム（ＯＳ）および前記ＯＳ上で実行される１つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを格納、操作、処理、および生成してよい。理解の便宜のために、１つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素および／または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは１つのプロセッサおよび１つのコントローラを含んでもよい。また、並列プロセッサのような、他の処理構成も可能である。
【００９６】
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの１つ以上の組み合わせを含んでもよく、所望の動作を実行するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび／またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、仮想装置、コンピュータ格納媒体または装置に永久的または一時的に具現化されてもよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で格納されても実行されてもよい。ソフトウェアおよびデータは、１つ以上のコンピュータで読み取り可能な記録媒体に格納されてもよい。
【００９７】
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてもよいし、コンピュータで読み取り可能な媒体にプログラム命令の形態で記録されてもよい。前記コンピュータで読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含んでよい。前記媒体に記録されるプログラム命令は、実施形態のために特別に設計されて構成されたものであってもよいし、コンピュータソフトウェアの当業者に公知な使用可能なものであってもよい。コンピュータで読み取り可能な記録媒体の例としては、ハードディスク、フロッピー（登録商標）ディスク、および磁気テープのような磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤのような光媒体、フロプティカルディスク（ｆｌｏｐｔｉｃａｌ  ｄｉｓｋ）のような光磁気媒体、およびＲＯＭ、ＲＡＭ、フラッシュメモリなどのようなプログラム命令を格納して実行するように特別に構成されたハードウェア装置が含まれる。プログラム命令の例は、コンパイラによって生成されるもののような機械語コードだけではなく、インタプリタなどを使用してコンピュータによって実行される高級言語コードを含む。上述したハードウェア装置は、実施形態の動作を実行するために１つ以上のソフトウェアモジュールとして動作するように構成されてもよく、その逆も同じである。
【００９８】
以上のように、実施形態を、限定された実施形態と図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ／あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
【００９９】
したがって、異なる実施形態であっても、特許請求の範囲と均等な範囲に含まれるものであれば、添付される特許請求の範囲に属する。
【符号の説明】
【０１００】
４１０：ルータ
４２０：ロードバランシングノード
４２１：Ｌ４  ＤＳＲロードバランサ
４３０、４４０：ハイパーバイザ
４３１：バックエンド仮想マシンサーバ１
４３２：バックエンド仮想マシンサーバ２
４４１：バックエンド仮想マシンサーバ３
【図１】
2018033136.tif 000003
【図２】
2018033136.tif 000004
【図３】
2018033136.tif 000005
【図４】
2018033136.tif 000006
【図５】
2018033136.tif 000007
【図６】
2018033136.tif 000008
【図７】
2018033136.tif 000009
【図８】
2018033136.tif 000010
【図９】
2018033136.tif 000011
【図１０】
2018033136.tif 000012
【図１１】
2018033136.tif 000013
【図１２】
2018033136.tif 000014
【図１３】
2018033136.tif 000015
【図１４】
2018033136.tif 000016
【図１５】
2018033136.tif 000017
【図１６】
2018033136.tif 000018
【図１７】
2018033136.tif 000019
【図１８】
2018033136.tif 000020
【図１９】
2018033136.tif 000021