仮想マシンモニタ、クライアント及びプログラム
【課題】 VPNの障害発生時の回線切替処理においてもセッションを維持することができ、VPNとの接続中にインターネット上のサイトにアクセスした場合でも、通信速度の低下を回避することのできる技術を提供する。
【解決手段】 クライアント(1)起動時にVPN回線と接続してVPN拠点と通信するためのVPN接続情報を取得する接続情報取得部と、VPN接続情報に基づいてVPN拠点との間で通信を行なって相互の通信アドレスを授受する通信アドレス授受部と、VPN回線の障害発生を検知する障害検知部と、VPN回線に障害発生が検知されたときは、VPN接続情報に基づいて新たなVPN回線に切り替える回線切替部と、新たなVPN回線を介して、VPN拠点に回線切り替え前後のクライアントの通信アドレスを通知して、VPN拠点とクライアントとの通信セッションを維持させる切替通知部とを備えた仮想マシンモニタ(VMM)である。
【解決手段】 クライアント(1)起動時にVPN回線と接続してVPN拠点と通信するためのVPN接続情報を取得する接続情報取得部と、VPN接続情報に基づいてVPN拠点との間で通信を行なって相互の通信アドレスを授受する通信アドレス授受部と、VPN回線の障害発生を検知する障害検知部と、VPN回線に障害発生が検知されたときは、VPN接続情報に基づいて新たなVPN回線に切り替える回線切替部と、新たなVPN回線を介して、VPN拠点に回線切り替え前後のクライアントの通信アドレスを通知して、VPN拠点とクライアントとの通信セッションを維持させる切替通知部とを備えた仮想マシンモニタ(VMM)である。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想マシンモニタを用いたVPN切替技術に関する。
【背景技術】
【0002】
近年、利用者がサーバ環境を意識することなく、さまざまなサービスを利用することができるクラウドコンピューティングが普及している。クラウドコンピューティングとは、ネットワークをベースとしたコンピュータの利用形態である。クラウドコンピューティングでは、クライアントとサーバとがネットワークで接続される。ネットワークの接続方法として、インターネット回線を用いたセキュアな接続方法であるVPN(Virtual Private Network)が注目されている。
【0003】
ところで、利用者がサーバからサービスを継続的に受けるためにはネットワーク接続を維持することが必要である。そのため多くのシステムでは障害対策として回線の多重化を図っている。特許文献1に記載の技術では、障害発生時には、クライアントや通信機器にルーティングテーブルを設けデフォルトゲートウェイをインターネットゲートウェイにしアクセス先に応じて回線を切替える。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2003−283543号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、回線を多重化してもVPNの障害発生時に回線切替が行われた段階でクライアントのIPアドレスが変更されると、接続先のセッションが切れる現象が発生する。また、VPNとの接続中にインターネットにアクセスすると、VPN接続先のサーバを経由して所望のインターネットWebサイトにアクセスするため、当該サイトの間での通信速度が低下する。
【0006】
本発明は、このような従来の状況に鑑みて提案されたものであり、VPNの障害発生時の回線切替処理においてもセッションを維持することができ、またVPNとの接続中にインターネット上のサイトにアクセスした場合でも、通信速度の低下を回避することのできる技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するための本発明は、複数のデータセンタが相互に接続されているサーバ環境において、クライアントに搭載されて、インターネット回線及びインターネット回線を用いたVPN回線と接続して通信情報を授受する仮想マシンモニタであって、クライアント起動時に前記VPN回線と接続してVPN拠点と通信するためのVPN接続情報を取得する接続情報取得部と、前記VPN接続情報に基づいてVPN拠点との間で通信を行なって相互の通信アドレスを授受する通信アドレス授受部と、前記VPN回線の障害発生を検知する障害検知部と、前記VPN回線に障害発生が検知されたときは、前記VPN接続情報に基づいて新たなVPN回線に切り替える回線切替部と、前記新たなVPN回線を介して、前記VPN拠点に回線切り替え前後のクライアントの通信アドレスを通知して、前記VPN拠点とクライアントとの通信セッションを維持させる切替通知部とを備えた仮想マシンモニタである。
【発明の効果】
【0008】
この発明によれば、VPNの障害発生時の回線切替処理においてもセッションを維持することができ、またVPNとの接続中にインターネット上のサイトにアクセスした場合でも、通信速度の低下を回避することができるVPN切替技術を提供することができる。
【図面の簡単な説明】
【0009】
【図1】本実施の形態の通信システムの構成を示す図。
【図2】本実施の形態のクライアントの構成と主な機能とを示す図。
【図3】本実施の形態のパケット中継サーバの構成と主な機能とを示す図。
【図4】本実施の形態のクライアントの通信処理手順を示すフロー図。
【図5】本実施の形態のVPN接続情報を示す図。
【図6】本実施の形態の障害検知情報を示す図。
【図7】本実施の形態のVMMのサブネット対応処理手順を示すフローチャート。
【図8】本実施の形態のIPアドレス管理情報を示す図。
【図9】本実施の形態のパケット中継サーバのパケット処理手順を示すフローチャート。
【図10】本実施の形態の再送タイムアウト処理手順を示すフローチャート。
【発明を実施するための形態】
【0010】
[第1の実施の形態]
図1は、本実施の形態の通信システムの構成を示す図である。本実施の形態の通信システムは、クライアント1、データセンタ2a、2b、接続情報管理サーバ3、インターネットサイト4a、・・・4n、インターネット5を備えている。
【0011】
クライアント1は、VPN拠点あるいはインターネット上のサイトと情報通信によりサービスを求めるユーザの所有する情報処理端末である。データセンタ2a、2bはクラウトコンピューティングによりクライアント1に対してサービスを提供する。データセンタ間には専用の通信線が設けられ、インターネット網5を介さずに相互に情報通信が可能である。データセンタ2a、2bはVPNに接続する特定のクライアント1のみに対して情報を提供する。接続情報管理サーバ3は、VPNに接続するために必要な各種管理情報を保存する。インターネットサイト4a、・・・4nは不特定の公衆に対して情報を提供する。
【0012】
そして、データセンタ2aには、サーバ10a、11a、パケット中継サーバ12a、VPNゲートウエイ13aが設けられ、データセンタ2bには、サーバ10b、11b、パケット中継サーバ12b、VPNゲートウエイ13bが設けられている。
【0013】
データセンタ2aについて説明する。VPNゲートウエイ13aはクライアントと接続するための個別のIPアドレスを備え、VPN通信を行なうための暗号化等を実行する。なお、VPNゲートウエイ13aは専用線を介して他のデータセンタ2bのサーバ10b、11bとも接続することが可能である。パケット中継サーバ12aは、サーバ10a、11aとクライアント1の間に設けられて両者間での通信のカプセル化、デカプセル化を実行する。サーバ10a、11aは、クライアント1に対してサービスを提供する。データセンタ2bの構成については、上述のデータセンタ2aと同様であるため説明は省略する。
【0014】
なお、本実施の形態では、データセンタは2つ設けられているが、これに限定されず複数のデータセンタが設けられていても良い。
【0015】
図1では、VPN拠点であるデータセンタ2aのVPNゲートウエイ13aがクライアント1とVPN回線によって接続している。通信に障害が発生してこのVPN回線が使用できないことが検知されたときは、後述する処理によってデータセンタ2bのVPNゲートウエイ13bがクライアント1とVPN回線によって接続する。VPN拠点を変更するこの動作をVPN切り替えと呼ぶ。上述のようにデータセンタ間には専用線等の高品質な回線が設けられているため、VPN切り替えが発生した場合でも、サービスは中断することなく継続することができる。
【0016】
図2は、本実施の形態のクライアント1の構成と主な機能とを示す図である。クライアント1は、アプリケーション部20、ゲストOS21、仮想マシンモニタ(VMM:Virtual Machine Monitor)22、NIC(Network Interface Card)26を備えている。アプリケーション部20は、クライアント1で動作するアプリケーションプログラムを格納する。ゲストOS21は、クライアント1の動作を統括して制御する。NIC26は、インターネット5と接続して情報の授受を行なうための入出力インターフェース回路である。VMM22は、ゲストOS21とデータセンタ2aのサーバ10a、11aとの間に設けられて、パケットの中継を行なうと共に障害検知、VPN切り替え処理を実行する。
【0017】
そして、VMM22はパケット中継クライアント23、VPNモジュール24、一時記憶部25を備えている。パケット中継クライアント23は、パケットをカプセル化あるいはデカプセル化する。VPNモジュール24は、パケット中継クライアント23とNIC26との間でパケットを授受するとともに、VPN回線の障害発生の検知、VPN切り替え処理を実行する。一時記憶部25は、障害検知情報及びVPN接続情報を記憶する。障害検知情報及びVPN接続情報の詳細については後述する。
【0018】
なお、接続情報管理サーバ3の記憶部にはVPN接続情報が記憶され、クライアント1起動時にクライアント1に対してVPN接続情報を提供する。
【0019】
図3は、本実施の形態のパケット中継サーバ12aの構成と主な機能とを示す図である。パケット中継サーバ12aは、サーバ10a、11aとVPNゲートウエイ13aを介してクライアント1のVMM22との間に設けられ、パケットの中継を行なうと共にVPN切り替え処理を実行する。パケット中継サーバ12aは、中継モジュール27、一時記憶部28、iptable29、NIC30を備えている。中継モジュール27は、パケットをカプセル化あるいはデカプセル化する。一時記憶部28は、IPアドレス管理情報を記憶する。IPアドレス管理情報については後述する。iptable29はIPアドレスの対応付けを行なう。NIC30は、インターネット5あるいはサーバ10a、11aと接続して情報の授受を行なうための入出力インターフェース回路である。
【0020】
続いて、本実施の形態の通信システムの動作について説明する。
図4は、本実施の形態のクライアント1の通信処理手順を示すフロー図である。
【0021】
[クライアント起動時の処理]
クライアント1が起動したとき、ステップS01において、VMM22は、接続情報管理サーバ3にVPN接続する。そして、接続情報管理サーバ3からクライアント1についてのVPN接続情報を取得する。なお、クライアント1のVMM22には接続情報管理サーバ3のIPアドレスを設定しておく必要がある。
【0022】
図5は、本実施の形態のVPN接続情報を示す図である。
VPN接続情報には、グローバルIPアドレス、ローカルIPアドレス、サブネットマスク、暗号化方式、ハッシュ方式、ユーザ識別子、パスワード、接続先優先順位を含んでいる。なお、このVPN接続情報はデータセンタ2a、2b毎に設けられている。
【0023】
グローバルIPアドレスは、VPN通信において窓口となるVPNゲートウエイのアドレスである。ローカルIPアドレスは、クライアント1に割り当てられるIPアドレスである。VPN接続によってクライアント1はVPNに所属する一端末として扱われるため、当該ネットワーク環境に対応したIPアドレスが付与される。ユーザ識別子、パスワードは、クライアント1がVPN通信を行なう際に使用する識別子、パスワードである。接続先優先順位は、このVPN接続情報の優先順位である。
【0024】
ステップS02において、VMM22は、取得したVPN接続情報に基づいてVPN接続を行なう。即ち、VMM22は、接続先優先順位の一番高いデータセンタのVPNゲートウエイとVPN接続を行なう。このVPN接続情報は、一時記憶部25に保存される。
【0025】
ステップS03において、VMM22は、VPN接続を行なうに際し、一時記憶部25の障害検知情報に初期値を設定する。
【0026】
図6は、本実施の形態の障害検知情報を示す図である。
障害検知情報は、VMM22が、VPN接続を行なう際にVPN回線に障害が発生しているか否かを判断するために用いられる情報である。
障害検知情報には、再送タイムアウト値、再送タイムアウト初期値、再送タイムアウト上限値、再送タイムアウト下限値、障害判定確認回数、ICMP送信時刻、現在時刻、往復遅延時間、VPN状態が含まれている。
【0027】
再送タイムアウト値は、一定時間データセンタから応答がない場合に障害が発生している可能性があると判断する時間である。障害判定確認回数は、障害発生と判断するためのタイムアウトの回数である。ICMP送信時刻は、VMM22がICMP(Internet Control Message Protocol)を送信した時刻である。ICMPは、通信エラー通知や通信状態の診断を行なうためのネットワーク層のプロトコルである。VPN状態は、現在VPN回線が利用可能であるかロック状態(利用不可)であるかを示す。
【0028】
ステップS04において、ICMPのペイロードに現在の時刻をセットして現在接続されているパケット中継サーバに対してPINGを送信する。そして、送信した現在の時刻を障害検知情報のICMP送信時刻に格納する。ステップS05において、障害検知情報のVPN状態を利用可能に設定する。ステップS06において、障害検知情報の再送タイムアウト値に再送タイムアウト初期値を設定する。そして、再送タイムアウト値のタイマを起動する。
【0029】
ステップS07において、パケットを受信するまで待機する。このステップS07においては、次の3つのケースが発生したことを検知すると、待機状態を脱して、ステップS08の処理を実行する。第1のケースは、外部(インターネット5)からパケットを受信した場合である。第2のケースは、ゲストOS21からパケットを受信した場合である。第3のケースは、再送タイムアウト値まで時間が経過した場合である。
【0030】
ステップS08において、外部からパケットを受信した場合(S08 Yes)は、ステップS09において、パケットの送信元がVPNの各サブネット内かどうか、即ち、パケットの送信元が各サブネット内かインターネット上のサイトかを判断する。
【0031】
クライアント1が起動したときは、上述のようにステップS04で送信したICMPの応答を待機する状態である。したがって、受信したパケットの送信元は各サブネット内となる。
パケットの送信元が各サブネット内のとき(S09 Yes)は、ステップS11においてサブネット対応処理を実行する。
【0032】
図7は、本実施の形態のVMM22のサブネット対応処理手順を示すフローチャートである。
【0033】
図7のステップT01において、VMM22は内部のデータであるICMPリクエストカウンタに0を設定する。ICMPリクエストカウンタは再送回数をカウントするためのデータである。ステップT02において、再送タイムアウト値のタイマを起動する。
【0034】
ステップT03において、受信したIPヘッダのプロトコルがICMPかどうかを調べる。受信したIPヘッダのプロトコルがICMPの場合(T03 Yes)、ステップT04の処理を実行する。受信したIPヘッダのプロトコルがICMPでない場合については後述する。
【0035】
ステップT04において、ICMPのペイロードを取得し、ステップT05において、ICMPのペイロードから送信時刻を取得する。取得した送信時刻は、ステップS04においてVMM22がICMP送信時にセットした時刻である。ステップT06において、現在時刻を取得する。ステップT07において、現在時刻とペイロードから取得した送信時刻との差から、通信の往復遅延時間を算出する。この往復遅延時間は、VPN送信における実績待ち時間を表している。
【0036】
ステップT08において、算出した往復遅延時間に基づいて、VPN通信における障害発生検知のための再送タイムアウト値を算出する。この際、再送タイムアウト値が上限値と下限値との範囲内にあるように再送タイムアウト値を算出する。ステップT09において、算出した再送タイムアウト値で障害検知情報の再送タイムアウト値を更新する。ステップT10において、パケットを破棄してリターンする。そして、図4のステップS07に戻り、新たな応答を待機する。
【0037】
以上の動作によって、VPN回線は使用可能な状態となる。
【0038】
[サービス要求処理:ゲストOSよりパケット受信]
ユーザは、VPNのデータセンタあるいはインターネット上のサイトに対するサービス要求を行う。アプリケーションプログラムはユーザの要求に基づいて送信情報を生成する。サービス要求先がVPNのデータセンタである場合は、上述の送信情報には、IPアドレス管理情報が含まれている。
【0039】
図8は、本実施の形態のIPアドレス管理情報を示す図である。
IPアドレス管理情報には、VPN接続時クライアントIPアドレス、クライアントIPアドレス、送信先IPアドレス、プロトコル、パケット有効期間、ペイロード、ペイロードサイズが含まれている。
【0040】
VPN接続時クライアントIPアドレスとクライアントIPアドレスは、クライアント1に割り当てられるIPアドレスである。ただし、後述のVPN回線切り替え前後では変更される可能性がある。送信先IPアドレスは、サービス提供サーバのIPアドレスである。
【0041】
ペイロードは、送信するデータそのものである。ペイロードサイズは、データの大きさを表す。
【0042】
ゲストOS21は、送信情報をVMM22に出力して送信処理を実行させる。
図4のステップS15において、ゲストOS21からパケットを受信した場合(S15 Yes)は、ステップS16において、VMM22は、パケットの送信先が各サブネット内かどうか、即ち、パケットの送信先が各サブネット内かインターネット上のサイト4a〜4nかを判断する。
【0043】
パケットの送信先がインターネット上のサイト4a〜4nである場合(S16 No)は、ゲストOSから受信したパケットをそのままNIC26に出力する。そして、ステップS07に戻って、外部からの応答を待機する。これによって、VPNと接続している状態であっても、インターネット上のサイト4a〜4nとは直接情報授受を行なうことができる。
【0044】
パケットの送信先が各サブネット内である場合(S16 Yes)は、ステップS18において、障害検知情報のVPN状態が、利用可能、ロックのいずれかを調べる。VPN状態が利用可能の場合(S18 No)は、ステップS20において、取得した送信情報をカプセル化してVPNに送信する。そして、ステップS07に戻って、外部からの応答を待機する。VPN状態がロックの場合(S18 Yes)は、VPN回線が回線切替中によって使用できないため、ステップS19において、パケットを破棄し、ステップS07に戻って、外部からの応答を待機する。
【0045】
続いて、クライアント1から送信情報を受信したパケット中継サーバ12aの動作について説明する。
図9は、本実施の形態のパケット中継サーバ12aのパケット処理手順を示すフローチャートである。
【0046】
図9のステップP01において、パケット中継サーバ12aは、パケットを受信するまで待機する。クライアント1からパケットを受信し(P02 Yes)、パケットが送信情報であった場合(P04 No)は、ステップP20において、IPヘッダを取得する、ステップP21において、IPヘッダから送信元IPアドレスを取得する。ステップP22において、IPヘッダからゲストIPアドレスを取得する。ステップP23において、IPヘッダからプロトコルを取得する。ステップP24において、IPヘッダからパケット有効期間を取得する。
【0047】
ステップP25において、内側のペイロードサイズを取得する。ステップP26において、内側のペイロードサイズだけ、データを取得することでデカプセル化する。ステップP27において、通信誤り検出のためのチェックサムを設定して、取得した情報をサーバ10a、11aに送信する。取得した情報は、ステップP21〜P26で述べたように、ゲストIPアドレス、送信元IPアドレス、プロトコル、パケット有効期間、ペイロード、ペイロードサイズを含む。
ステップP13において、パケットを破棄して、ステップP01に戻って、新たなパケットを受信するまで待機する。
【0048】
サーバ10a、11aでは、パケット中継サーバ12aを介して受信した、クライアント1からのサービス要求に対して処理を実行し、処理結果を送信情報に設定する。そして送信情報をパケット中継サーバ12aに出力してクライアント1に送信させる。
【0049】
図9のステップP02において、パケット中継サーバ12aはサーバ10a、11aから送信情報を取得する(ステップP02 No)と、ステップP03において、取得した情報をクライアント1に送信する。このとき、送信情報のプロトコルを、「パケット中継」と設定する。そして、ステップP13において、パケットを破棄して、ステップP01に戻って、新たなパケットを受信するまで待機する。
【0050】
[サービス要求応答処理:外部よりパケット受信]
図4のステップS08において、送信したサービス要求に対して、外部からパケットを受信した場合(S08 Yes)は、ステップS09において、パケットの送信元が各サブネット内かどうか、即ち、パケットの送信元が各サブネット内かインターネット上のサイト4a〜4nかを判断する。
【0051】
パケットの送信元がインターネット上のサイト4a〜4nのとき(S09 No)は、ステップS10において、受信したパケットをそのままゲストOS21に出力する。これによって、VPNと接続している状態であっても、インターネット上のサイト4a〜4nとは直接情報授受を行なうことができる。
【0052】
パケットの送信元が各サブネット内のとき(S09 Yes)は、ステップS11においてサブネット対応処理(図7)を実行する。
【0053】
図7のステップT21において、IPヘッダのプロトコルが「パケット中継」の場合(T21 Yes)は、ステップT22において、IPヘッダを取得する、ステップT23において、IPヘッダから送信元IPアドレスを取得する。ステップT24において、IPヘッダからゲストIPアドレスを取得する。ステップT25において、IPヘッダからプロトコルを取得する。ステップT26において、IPヘッダからパケット有効期間を取得する。
【0054】
ステップT27において、内側のペイロードサイズを取得する。ステップT28において、内側のペイロードサイズだけ、データを取得することでデカプセル化する。ステップT29において、通信誤り検出のためのチェックサムを設定して、取得した情報をIPパケットにてゲストOS21に送信する。取得した情報は、ステップT23〜T28で述べたようにゲストIPアドレス、送信元IPアドレス、プロトコル、パケット有効期間、ペイロード、ペイロードサイズを含む。
そして、ステップT10において、パケットを破棄してリターンする。そして、図4のステップS07に戻り、新たな応答を待機する。
【0055】
なお、ステップT21において、IPヘッダのプロトコルが「パケット中継」でない場合(T21 No)は、ステップS07に戻って、新たなパケットを受信するまで待機する。
【0056】
[障害検知、VPN切替え処理]
VPN通信において障害が発生しているか否かは、クライアント1がICMPを送信しても再送タイムアウト値が経過するまでにパケット中継サーバ12aから応答がなされていないことに基づいて判断する。
【0057】
図4のステップS15において、再送タイムアウト値まで時間経過した場合(S15 No)は、ステップS25において再送タイムアウト処理を実行する。
【0058】
図10は、本実施の形態の再送タイムアウト処理手順を示すフローチャートである。
【0059】
ステップT41において、ICMPリクエストカウンタに1を加算する。ステップT42において、ICMPリクエストカウンタの値が障害検知情報の障害判定確認回数と一致するかどうかを調べる。
【0060】
ICMPリクエストカウンタの値が障害検知情報の障害判定確認回数と一致する場合(T42 Yes)は、再送タイムアウトが所定回数継続している状態であるためVPN回線に障害が発生していると判断する。
【0061】
ステップS43において、障害検知情報のVPN状態を「ロック」に設定してVPN回線切り替え処理を実行する。ステップT44において、現在接続しているVPNとの回線接続を切断するためIPスタックを解放する。ステップT45において、VPN接続情報の接続先優先順位を調べる。そして、現在の接続先を除き、接続優先順位の一番高いVPNゲートウエイ13bに接続する。
【0062】
VPNゲートウエイ13bとの接続の切替えを完了したときは、ステップT46において、VPNゲートウエイ13b経由で専用線を介してVPN切替え完了通知をパケット中継サーバ12aに知らせる。ステップT47において、IPアドレス管理情報をパケット中継サーバ12aに送信する。
IPアドレス管理情報には、VPN接続時クライアントIPアドレス、クライアントIPアドレス、送信先IPアドレス、プロトコル、パケット有効期間、ペイロード、ペイロードサイズが含まれている。このとき、VPN接続時クライアントIPアドレスとクライアントIPアドレスとは、切り替えによって異なる場合がある。また、送信先IPアドレスは、VPNゲートウエイ13aのアドレスとなる。
【0063】
ステップT48において、障害検知情報のVPN状態を利用可能に設定する。ステップT49において、ICMPリクエストカウンタを0に設定する。そして、図4のステップS07に戻って、新たなパケットを受信するまで待機する。
【0064】
ICMPリクエストカウンタの値が障害検知情報の障害判定確認回数と一致しない場合(T42 No)は、VPN回線に障害が発生していると判断はされないまでも、通信の設定値(再送タイムリミット値)が適切でない、あるいは再送タイムアウトが発生しているためVPN回線に障害が発生している可能性がある。ステップT51において、ICMPのペイロードに現在の時刻をセットして現在接続されているパケット中継サーバに対してPINGを送信する。ステップS05において、障害検知情報のVPN状態を「利用可能」に設定する。ステップT52において、障害検知情報の再送タイムアウト値に再送タイムアウト初期値を設定する。次に、再送タイムアウト値のタイマを起動する。そして、図4のステップS07に戻って、新たなパケットを受信するまで待機する。
【0065】
パケット中継サーバ12aは、VPNゲートウエイ13bより専用線を介してVPN切り替え完了通知とIPアドレス管理情報を受信する。
【0066】
図9のステップP04において、パケットがVPN切り替え完了通知の場合(P04 Yes)は、ステップP10において、カプセル化ヘッダからVPN接続時のクライアントIPアドレスを取得する。ステップP11において、デカプセル化して、IPアドレス管理情報を取得する。ステップP12において、一時記憶部28のIPアドレス管理情報をステップP11で取得したIPアドレス管理情報で更新する。
【0067】
そして、ステップP13において、パケットを破棄して、ステップP01に戻って、新たなパケットを受信するまで待機する。さらに、取得した情報をカプセル化してゲストに送信する。
【0068】
従って、パケット中継サーバ12aは、VPN回線の切り替え前後におけるクライアントIPアドレスを取得しているため、クライアントのIPアドレスを変更しないようにすることができる。
【0069】
以上説明したように、本実施の形態では、複数の拠点が相互に接続された広域データセンタとの通信手段にインターネットVPNを使用する。そして、クライアントに仮想マシンモニタ(VMM)をインストールする。
【0070】
VMMにはVPN切替を処理するモジュールを導入するとともに、クライアント、サーバ間にパケット中継装置サーバを設置する。そして、VPNの障害発生時に回線の切り替えを可能にし、切替時にクライアントのIPアドレスが変更されないように、パケット中継装置サーバで、切替前と後のIPアドレスを対応付ける。これによってVPNの障害発生時の回線切替処理においてもセッションを維持することができる。
【0071】
さらに、クライアントのVMMが接続情報管理サーバから、VPN接続情報を取得し、複数のVPN接続拠点情報を持つことによって、アクセス先がVPN拠点であるかインターネット上のサイト4a〜4nであるかを判断しパケットを振り分けることができる。したがって、VPNとの接続中にインターネット上のサイト4a〜4nにアクセスした場合でも、VPN接続先のサーバを経由して所望のインターネット上のサイト4a〜4nにアクセスすることなく、直接インターネット上のサイト4a〜4nにアクセスするため、通信速度の低下を回避することができる。
【0072】
なお、上述の各実施の形態で説明した機能は、ハードウェアを用いて構成するに留まらず、ソフトウェアを用いて各機能を記載したプログラムをコンピュータに読み込ませて実現することもできる。また、各機能は、適宜ソフトウェア、ハードウェアのいずれかを選択して構成するものであっても良い。
【0073】
尚、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。
上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【0074】
1…クライアント、2a、2b…データセンタ、4a〜4n…インターネットサイト、5…インターネット網、10a、11a…サーバ、10b、11b…サーバ、12a、12b…パケット中継サーバ、13a、13b…VPNゲートウエイ、20…アプリケーション部、21…ゲストOS、22…仮想マシンモニタ(VMM)、23…パケット中継クライアント、24…VPNモジュール、25…一時記憶部、26…NIC、27…中継モジュール、28…一時記憶部、30…NIC。
【技術分野】
【0001】
本発明は、仮想マシンモニタを用いたVPN切替技術に関する。
【背景技術】
【0002】
近年、利用者がサーバ環境を意識することなく、さまざまなサービスを利用することができるクラウドコンピューティングが普及している。クラウドコンピューティングとは、ネットワークをベースとしたコンピュータの利用形態である。クラウドコンピューティングでは、クライアントとサーバとがネットワークで接続される。ネットワークの接続方法として、インターネット回線を用いたセキュアな接続方法であるVPN(Virtual Private Network)が注目されている。
【0003】
ところで、利用者がサーバからサービスを継続的に受けるためにはネットワーク接続を維持することが必要である。そのため多くのシステムでは障害対策として回線の多重化を図っている。特許文献1に記載の技術では、障害発生時には、クライアントや通信機器にルーティングテーブルを設けデフォルトゲートウェイをインターネットゲートウェイにしアクセス先に応じて回線を切替える。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2003−283543号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、回線を多重化してもVPNの障害発生時に回線切替が行われた段階でクライアントのIPアドレスが変更されると、接続先のセッションが切れる現象が発生する。また、VPNとの接続中にインターネットにアクセスすると、VPN接続先のサーバを経由して所望のインターネットWebサイトにアクセスするため、当該サイトの間での通信速度が低下する。
【0006】
本発明は、このような従来の状況に鑑みて提案されたものであり、VPNの障害発生時の回線切替処理においてもセッションを維持することができ、またVPNとの接続中にインターネット上のサイトにアクセスした場合でも、通信速度の低下を回避することのできる技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するための本発明は、複数のデータセンタが相互に接続されているサーバ環境において、クライアントに搭載されて、インターネット回線及びインターネット回線を用いたVPN回線と接続して通信情報を授受する仮想マシンモニタであって、クライアント起動時に前記VPN回線と接続してVPN拠点と通信するためのVPN接続情報を取得する接続情報取得部と、前記VPN接続情報に基づいてVPN拠点との間で通信を行なって相互の通信アドレスを授受する通信アドレス授受部と、前記VPN回線の障害発生を検知する障害検知部と、前記VPN回線に障害発生が検知されたときは、前記VPN接続情報に基づいて新たなVPN回線に切り替える回線切替部と、前記新たなVPN回線を介して、前記VPN拠点に回線切り替え前後のクライアントの通信アドレスを通知して、前記VPN拠点とクライアントとの通信セッションを維持させる切替通知部とを備えた仮想マシンモニタである。
【発明の効果】
【0008】
この発明によれば、VPNの障害発生時の回線切替処理においてもセッションを維持することができ、またVPNとの接続中にインターネット上のサイトにアクセスした場合でも、通信速度の低下を回避することができるVPN切替技術を提供することができる。
【図面の簡単な説明】
【0009】
【図1】本実施の形態の通信システムの構成を示す図。
【図2】本実施の形態のクライアントの構成と主な機能とを示す図。
【図3】本実施の形態のパケット中継サーバの構成と主な機能とを示す図。
【図4】本実施の形態のクライアントの通信処理手順を示すフロー図。
【図5】本実施の形態のVPN接続情報を示す図。
【図6】本実施の形態の障害検知情報を示す図。
【図7】本実施の形態のVMMのサブネット対応処理手順を示すフローチャート。
【図8】本実施の形態のIPアドレス管理情報を示す図。
【図9】本実施の形態のパケット中継サーバのパケット処理手順を示すフローチャート。
【図10】本実施の形態の再送タイムアウト処理手順を示すフローチャート。
【発明を実施するための形態】
【0010】
[第1の実施の形態]
図1は、本実施の形態の通信システムの構成を示す図である。本実施の形態の通信システムは、クライアント1、データセンタ2a、2b、接続情報管理サーバ3、インターネットサイト4a、・・・4n、インターネット5を備えている。
【0011】
クライアント1は、VPN拠点あるいはインターネット上のサイトと情報通信によりサービスを求めるユーザの所有する情報処理端末である。データセンタ2a、2bはクラウトコンピューティングによりクライアント1に対してサービスを提供する。データセンタ間には専用の通信線が設けられ、インターネット網5を介さずに相互に情報通信が可能である。データセンタ2a、2bはVPNに接続する特定のクライアント1のみに対して情報を提供する。接続情報管理サーバ3は、VPNに接続するために必要な各種管理情報を保存する。インターネットサイト4a、・・・4nは不特定の公衆に対して情報を提供する。
【0012】
そして、データセンタ2aには、サーバ10a、11a、パケット中継サーバ12a、VPNゲートウエイ13aが設けられ、データセンタ2bには、サーバ10b、11b、パケット中継サーバ12b、VPNゲートウエイ13bが設けられている。
【0013】
データセンタ2aについて説明する。VPNゲートウエイ13aはクライアントと接続するための個別のIPアドレスを備え、VPN通信を行なうための暗号化等を実行する。なお、VPNゲートウエイ13aは専用線を介して他のデータセンタ2bのサーバ10b、11bとも接続することが可能である。パケット中継サーバ12aは、サーバ10a、11aとクライアント1の間に設けられて両者間での通信のカプセル化、デカプセル化を実行する。サーバ10a、11aは、クライアント1に対してサービスを提供する。データセンタ2bの構成については、上述のデータセンタ2aと同様であるため説明は省略する。
【0014】
なお、本実施の形態では、データセンタは2つ設けられているが、これに限定されず複数のデータセンタが設けられていても良い。
【0015】
図1では、VPN拠点であるデータセンタ2aのVPNゲートウエイ13aがクライアント1とVPN回線によって接続している。通信に障害が発生してこのVPN回線が使用できないことが検知されたときは、後述する処理によってデータセンタ2bのVPNゲートウエイ13bがクライアント1とVPN回線によって接続する。VPN拠点を変更するこの動作をVPN切り替えと呼ぶ。上述のようにデータセンタ間には専用線等の高品質な回線が設けられているため、VPN切り替えが発生した場合でも、サービスは中断することなく継続することができる。
【0016】
図2は、本実施の形態のクライアント1の構成と主な機能とを示す図である。クライアント1は、アプリケーション部20、ゲストOS21、仮想マシンモニタ(VMM:Virtual Machine Monitor)22、NIC(Network Interface Card)26を備えている。アプリケーション部20は、クライアント1で動作するアプリケーションプログラムを格納する。ゲストOS21は、クライアント1の動作を統括して制御する。NIC26は、インターネット5と接続して情報の授受を行なうための入出力インターフェース回路である。VMM22は、ゲストOS21とデータセンタ2aのサーバ10a、11aとの間に設けられて、パケットの中継を行なうと共に障害検知、VPN切り替え処理を実行する。
【0017】
そして、VMM22はパケット中継クライアント23、VPNモジュール24、一時記憶部25を備えている。パケット中継クライアント23は、パケットをカプセル化あるいはデカプセル化する。VPNモジュール24は、パケット中継クライアント23とNIC26との間でパケットを授受するとともに、VPN回線の障害発生の検知、VPN切り替え処理を実行する。一時記憶部25は、障害検知情報及びVPN接続情報を記憶する。障害検知情報及びVPN接続情報の詳細については後述する。
【0018】
なお、接続情報管理サーバ3の記憶部にはVPN接続情報が記憶され、クライアント1起動時にクライアント1に対してVPN接続情報を提供する。
【0019】
図3は、本実施の形態のパケット中継サーバ12aの構成と主な機能とを示す図である。パケット中継サーバ12aは、サーバ10a、11aとVPNゲートウエイ13aを介してクライアント1のVMM22との間に設けられ、パケットの中継を行なうと共にVPN切り替え処理を実行する。パケット中継サーバ12aは、中継モジュール27、一時記憶部28、iptable29、NIC30を備えている。中継モジュール27は、パケットをカプセル化あるいはデカプセル化する。一時記憶部28は、IPアドレス管理情報を記憶する。IPアドレス管理情報については後述する。iptable29はIPアドレスの対応付けを行なう。NIC30は、インターネット5あるいはサーバ10a、11aと接続して情報の授受を行なうための入出力インターフェース回路である。
【0020】
続いて、本実施の形態の通信システムの動作について説明する。
図4は、本実施の形態のクライアント1の通信処理手順を示すフロー図である。
【0021】
[クライアント起動時の処理]
クライアント1が起動したとき、ステップS01において、VMM22は、接続情報管理サーバ3にVPN接続する。そして、接続情報管理サーバ3からクライアント1についてのVPN接続情報を取得する。なお、クライアント1のVMM22には接続情報管理サーバ3のIPアドレスを設定しておく必要がある。
【0022】
図5は、本実施の形態のVPN接続情報を示す図である。
VPN接続情報には、グローバルIPアドレス、ローカルIPアドレス、サブネットマスク、暗号化方式、ハッシュ方式、ユーザ識別子、パスワード、接続先優先順位を含んでいる。なお、このVPN接続情報はデータセンタ2a、2b毎に設けられている。
【0023】
グローバルIPアドレスは、VPN通信において窓口となるVPNゲートウエイのアドレスである。ローカルIPアドレスは、クライアント1に割り当てられるIPアドレスである。VPN接続によってクライアント1はVPNに所属する一端末として扱われるため、当該ネットワーク環境に対応したIPアドレスが付与される。ユーザ識別子、パスワードは、クライアント1がVPN通信を行なう際に使用する識別子、パスワードである。接続先優先順位は、このVPN接続情報の優先順位である。
【0024】
ステップS02において、VMM22は、取得したVPN接続情報に基づいてVPN接続を行なう。即ち、VMM22は、接続先優先順位の一番高いデータセンタのVPNゲートウエイとVPN接続を行なう。このVPN接続情報は、一時記憶部25に保存される。
【0025】
ステップS03において、VMM22は、VPN接続を行なうに際し、一時記憶部25の障害検知情報に初期値を設定する。
【0026】
図6は、本実施の形態の障害検知情報を示す図である。
障害検知情報は、VMM22が、VPN接続を行なう際にVPN回線に障害が発生しているか否かを判断するために用いられる情報である。
障害検知情報には、再送タイムアウト値、再送タイムアウト初期値、再送タイムアウト上限値、再送タイムアウト下限値、障害判定確認回数、ICMP送信時刻、現在時刻、往復遅延時間、VPN状態が含まれている。
【0027】
再送タイムアウト値は、一定時間データセンタから応答がない場合に障害が発生している可能性があると判断する時間である。障害判定確認回数は、障害発生と判断するためのタイムアウトの回数である。ICMP送信時刻は、VMM22がICMP(Internet Control Message Protocol)を送信した時刻である。ICMPは、通信エラー通知や通信状態の診断を行なうためのネットワーク層のプロトコルである。VPN状態は、現在VPN回線が利用可能であるかロック状態(利用不可)であるかを示す。
【0028】
ステップS04において、ICMPのペイロードに現在の時刻をセットして現在接続されているパケット中継サーバに対してPINGを送信する。そして、送信した現在の時刻を障害検知情報のICMP送信時刻に格納する。ステップS05において、障害検知情報のVPN状態を利用可能に設定する。ステップS06において、障害検知情報の再送タイムアウト値に再送タイムアウト初期値を設定する。そして、再送タイムアウト値のタイマを起動する。
【0029】
ステップS07において、パケットを受信するまで待機する。このステップS07においては、次の3つのケースが発生したことを検知すると、待機状態を脱して、ステップS08の処理を実行する。第1のケースは、外部(インターネット5)からパケットを受信した場合である。第2のケースは、ゲストOS21からパケットを受信した場合である。第3のケースは、再送タイムアウト値まで時間が経過した場合である。
【0030】
ステップS08において、外部からパケットを受信した場合(S08 Yes)は、ステップS09において、パケットの送信元がVPNの各サブネット内かどうか、即ち、パケットの送信元が各サブネット内かインターネット上のサイトかを判断する。
【0031】
クライアント1が起動したときは、上述のようにステップS04で送信したICMPの応答を待機する状態である。したがって、受信したパケットの送信元は各サブネット内となる。
パケットの送信元が各サブネット内のとき(S09 Yes)は、ステップS11においてサブネット対応処理を実行する。
【0032】
図7は、本実施の形態のVMM22のサブネット対応処理手順を示すフローチャートである。
【0033】
図7のステップT01において、VMM22は内部のデータであるICMPリクエストカウンタに0を設定する。ICMPリクエストカウンタは再送回数をカウントするためのデータである。ステップT02において、再送タイムアウト値のタイマを起動する。
【0034】
ステップT03において、受信したIPヘッダのプロトコルがICMPかどうかを調べる。受信したIPヘッダのプロトコルがICMPの場合(T03 Yes)、ステップT04の処理を実行する。受信したIPヘッダのプロトコルがICMPでない場合については後述する。
【0035】
ステップT04において、ICMPのペイロードを取得し、ステップT05において、ICMPのペイロードから送信時刻を取得する。取得した送信時刻は、ステップS04においてVMM22がICMP送信時にセットした時刻である。ステップT06において、現在時刻を取得する。ステップT07において、現在時刻とペイロードから取得した送信時刻との差から、通信の往復遅延時間を算出する。この往復遅延時間は、VPN送信における実績待ち時間を表している。
【0036】
ステップT08において、算出した往復遅延時間に基づいて、VPN通信における障害発生検知のための再送タイムアウト値を算出する。この際、再送タイムアウト値が上限値と下限値との範囲内にあるように再送タイムアウト値を算出する。ステップT09において、算出した再送タイムアウト値で障害検知情報の再送タイムアウト値を更新する。ステップT10において、パケットを破棄してリターンする。そして、図4のステップS07に戻り、新たな応答を待機する。
【0037】
以上の動作によって、VPN回線は使用可能な状態となる。
【0038】
[サービス要求処理:ゲストOSよりパケット受信]
ユーザは、VPNのデータセンタあるいはインターネット上のサイトに対するサービス要求を行う。アプリケーションプログラムはユーザの要求に基づいて送信情報を生成する。サービス要求先がVPNのデータセンタである場合は、上述の送信情報には、IPアドレス管理情報が含まれている。
【0039】
図8は、本実施の形態のIPアドレス管理情報を示す図である。
IPアドレス管理情報には、VPN接続時クライアントIPアドレス、クライアントIPアドレス、送信先IPアドレス、プロトコル、パケット有効期間、ペイロード、ペイロードサイズが含まれている。
【0040】
VPN接続時クライアントIPアドレスとクライアントIPアドレスは、クライアント1に割り当てられるIPアドレスである。ただし、後述のVPN回線切り替え前後では変更される可能性がある。送信先IPアドレスは、サービス提供サーバのIPアドレスである。
【0041】
ペイロードは、送信するデータそのものである。ペイロードサイズは、データの大きさを表す。
【0042】
ゲストOS21は、送信情報をVMM22に出力して送信処理を実行させる。
図4のステップS15において、ゲストOS21からパケットを受信した場合(S15 Yes)は、ステップS16において、VMM22は、パケットの送信先が各サブネット内かどうか、即ち、パケットの送信先が各サブネット内かインターネット上のサイト4a〜4nかを判断する。
【0043】
パケットの送信先がインターネット上のサイト4a〜4nである場合(S16 No)は、ゲストOSから受信したパケットをそのままNIC26に出力する。そして、ステップS07に戻って、外部からの応答を待機する。これによって、VPNと接続している状態であっても、インターネット上のサイト4a〜4nとは直接情報授受を行なうことができる。
【0044】
パケットの送信先が各サブネット内である場合(S16 Yes)は、ステップS18において、障害検知情報のVPN状態が、利用可能、ロックのいずれかを調べる。VPN状態が利用可能の場合(S18 No)は、ステップS20において、取得した送信情報をカプセル化してVPNに送信する。そして、ステップS07に戻って、外部からの応答を待機する。VPN状態がロックの場合(S18 Yes)は、VPN回線が回線切替中によって使用できないため、ステップS19において、パケットを破棄し、ステップS07に戻って、外部からの応答を待機する。
【0045】
続いて、クライアント1から送信情報を受信したパケット中継サーバ12aの動作について説明する。
図9は、本実施の形態のパケット中継サーバ12aのパケット処理手順を示すフローチャートである。
【0046】
図9のステップP01において、パケット中継サーバ12aは、パケットを受信するまで待機する。クライアント1からパケットを受信し(P02 Yes)、パケットが送信情報であった場合(P04 No)は、ステップP20において、IPヘッダを取得する、ステップP21において、IPヘッダから送信元IPアドレスを取得する。ステップP22において、IPヘッダからゲストIPアドレスを取得する。ステップP23において、IPヘッダからプロトコルを取得する。ステップP24において、IPヘッダからパケット有効期間を取得する。
【0047】
ステップP25において、内側のペイロードサイズを取得する。ステップP26において、内側のペイロードサイズだけ、データを取得することでデカプセル化する。ステップP27において、通信誤り検出のためのチェックサムを設定して、取得した情報をサーバ10a、11aに送信する。取得した情報は、ステップP21〜P26で述べたように、ゲストIPアドレス、送信元IPアドレス、プロトコル、パケット有効期間、ペイロード、ペイロードサイズを含む。
ステップP13において、パケットを破棄して、ステップP01に戻って、新たなパケットを受信するまで待機する。
【0048】
サーバ10a、11aでは、パケット中継サーバ12aを介して受信した、クライアント1からのサービス要求に対して処理を実行し、処理結果を送信情報に設定する。そして送信情報をパケット中継サーバ12aに出力してクライアント1に送信させる。
【0049】
図9のステップP02において、パケット中継サーバ12aはサーバ10a、11aから送信情報を取得する(ステップP02 No)と、ステップP03において、取得した情報をクライアント1に送信する。このとき、送信情報のプロトコルを、「パケット中継」と設定する。そして、ステップP13において、パケットを破棄して、ステップP01に戻って、新たなパケットを受信するまで待機する。
【0050】
[サービス要求応答処理:外部よりパケット受信]
図4のステップS08において、送信したサービス要求に対して、外部からパケットを受信した場合(S08 Yes)は、ステップS09において、パケットの送信元が各サブネット内かどうか、即ち、パケットの送信元が各サブネット内かインターネット上のサイト4a〜4nかを判断する。
【0051】
パケットの送信元がインターネット上のサイト4a〜4nのとき(S09 No)は、ステップS10において、受信したパケットをそのままゲストOS21に出力する。これによって、VPNと接続している状態であっても、インターネット上のサイト4a〜4nとは直接情報授受を行なうことができる。
【0052】
パケットの送信元が各サブネット内のとき(S09 Yes)は、ステップS11においてサブネット対応処理(図7)を実行する。
【0053】
図7のステップT21において、IPヘッダのプロトコルが「パケット中継」の場合(T21 Yes)は、ステップT22において、IPヘッダを取得する、ステップT23において、IPヘッダから送信元IPアドレスを取得する。ステップT24において、IPヘッダからゲストIPアドレスを取得する。ステップT25において、IPヘッダからプロトコルを取得する。ステップT26において、IPヘッダからパケット有効期間を取得する。
【0054】
ステップT27において、内側のペイロードサイズを取得する。ステップT28において、内側のペイロードサイズだけ、データを取得することでデカプセル化する。ステップT29において、通信誤り検出のためのチェックサムを設定して、取得した情報をIPパケットにてゲストOS21に送信する。取得した情報は、ステップT23〜T28で述べたようにゲストIPアドレス、送信元IPアドレス、プロトコル、パケット有効期間、ペイロード、ペイロードサイズを含む。
そして、ステップT10において、パケットを破棄してリターンする。そして、図4のステップS07に戻り、新たな応答を待機する。
【0055】
なお、ステップT21において、IPヘッダのプロトコルが「パケット中継」でない場合(T21 No)は、ステップS07に戻って、新たなパケットを受信するまで待機する。
【0056】
[障害検知、VPN切替え処理]
VPN通信において障害が発生しているか否かは、クライアント1がICMPを送信しても再送タイムアウト値が経過するまでにパケット中継サーバ12aから応答がなされていないことに基づいて判断する。
【0057】
図4のステップS15において、再送タイムアウト値まで時間経過した場合(S15 No)は、ステップS25において再送タイムアウト処理を実行する。
【0058】
図10は、本実施の形態の再送タイムアウト処理手順を示すフローチャートである。
【0059】
ステップT41において、ICMPリクエストカウンタに1を加算する。ステップT42において、ICMPリクエストカウンタの値が障害検知情報の障害判定確認回数と一致するかどうかを調べる。
【0060】
ICMPリクエストカウンタの値が障害検知情報の障害判定確認回数と一致する場合(T42 Yes)は、再送タイムアウトが所定回数継続している状態であるためVPN回線に障害が発生していると判断する。
【0061】
ステップS43において、障害検知情報のVPN状態を「ロック」に設定してVPN回線切り替え処理を実行する。ステップT44において、現在接続しているVPNとの回線接続を切断するためIPスタックを解放する。ステップT45において、VPN接続情報の接続先優先順位を調べる。そして、現在の接続先を除き、接続優先順位の一番高いVPNゲートウエイ13bに接続する。
【0062】
VPNゲートウエイ13bとの接続の切替えを完了したときは、ステップT46において、VPNゲートウエイ13b経由で専用線を介してVPN切替え完了通知をパケット中継サーバ12aに知らせる。ステップT47において、IPアドレス管理情報をパケット中継サーバ12aに送信する。
IPアドレス管理情報には、VPN接続時クライアントIPアドレス、クライアントIPアドレス、送信先IPアドレス、プロトコル、パケット有効期間、ペイロード、ペイロードサイズが含まれている。このとき、VPN接続時クライアントIPアドレスとクライアントIPアドレスとは、切り替えによって異なる場合がある。また、送信先IPアドレスは、VPNゲートウエイ13aのアドレスとなる。
【0063】
ステップT48において、障害検知情報のVPN状態を利用可能に設定する。ステップT49において、ICMPリクエストカウンタを0に設定する。そして、図4のステップS07に戻って、新たなパケットを受信するまで待機する。
【0064】
ICMPリクエストカウンタの値が障害検知情報の障害判定確認回数と一致しない場合(T42 No)は、VPN回線に障害が発生していると判断はされないまでも、通信の設定値(再送タイムリミット値)が適切でない、あるいは再送タイムアウトが発生しているためVPN回線に障害が発生している可能性がある。ステップT51において、ICMPのペイロードに現在の時刻をセットして現在接続されているパケット中継サーバに対してPINGを送信する。ステップS05において、障害検知情報のVPN状態を「利用可能」に設定する。ステップT52において、障害検知情報の再送タイムアウト値に再送タイムアウト初期値を設定する。次に、再送タイムアウト値のタイマを起動する。そして、図4のステップS07に戻って、新たなパケットを受信するまで待機する。
【0065】
パケット中継サーバ12aは、VPNゲートウエイ13bより専用線を介してVPN切り替え完了通知とIPアドレス管理情報を受信する。
【0066】
図9のステップP04において、パケットがVPN切り替え完了通知の場合(P04 Yes)は、ステップP10において、カプセル化ヘッダからVPN接続時のクライアントIPアドレスを取得する。ステップP11において、デカプセル化して、IPアドレス管理情報を取得する。ステップP12において、一時記憶部28のIPアドレス管理情報をステップP11で取得したIPアドレス管理情報で更新する。
【0067】
そして、ステップP13において、パケットを破棄して、ステップP01に戻って、新たなパケットを受信するまで待機する。さらに、取得した情報をカプセル化してゲストに送信する。
【0068】
従って、パケット中継サーバ12aは、VPN回線の切り替え前後におけるクライアントIPアドレスを取得しているため、クライアントのIPアドレスを変更しないようにすることができる。
【0069】
以上説明したように、本実施の形態では、複数の拠点が相互に接続された広域データセンタとの通信手段にインターネットVPNを使用する。そして、クライアントに仮想マシンモニタ(VMM)をインストールする。
【0070】
VMMにはVPN切替を処理するモジュールを導入するとともに、クライアント、サーバ間にパケット中継装置サーバを設置する。そして、VPNの障害発生時に回線の切り替えを可能にし、切替時にクライアントのIPアドレスが変更されないように、パケット中継装置サーバで、切替前と後のIPアドレスを対応付ける。これによってVPNの障害発生時の回線切替処理においてもセッションを維持することができる。
【0071】
さらに、クライアントのVMMが接続情報管理サーバから、VPN接続情報を取得し、複数のVPN接続拠点情報を持つことによって、アクセス先がVPN拠点であるかインターネット上のサイト4a〜4nであるかを判断しパケットを振り分けることができる。したがって、VPNとの接続中にインターネット上のサイト4a〜4nにアクセスした場合でも、VPN接続先のサーバを経由して所望のインターネット上のサイト4a〜4nにアクセスすることなく、直接インターネット上のサイト4a〜4nにアクセスするため、通信速度の低下を回避することができる。
【0072】
なお、上述の各実施の形態で説明した機能は、ハードウェアを用いて構成するに留まらず、ソフトウェアを用いて各機能を記載したプログラムをコンピュータに読み込ませて実現することもできる。また、各機能は、適宜ソフトウェア、ハードウェアのいずれかを選択して構成するものであっても良い。
【0073】
尚、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。
上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【0074】
1…クライアント、2a、2b…データセンタ、4a〜4n…インターネットサイト、5…インターネット網、10a、11a…サーバ、10b、11b…サーバ、12a、12b…パケット中継サーバ、13a、13b…VPNゲートウエイ、20…アプリケーション部、21…ゲストOS、22…仮想マシンモニタ(VMM)、23…パケット中継クライアント、24…VPNモジュール、25…一時記憶部、26…NIC、27…中継モジュール、28…一時記憶部、30…NIC。
【特許請求の範囲】
【請求項1】
クライアントに搭載されて、インターネット回線及びインターネット回線を用いたVPN回線と接続して通信情報を授受する仮想マシンモニタであって、
クライアント起動時に前記VPN回線と接続してVPN拠点と通信するためのVPN接続情報を取得する接続情報取得部と、
前記VPN接続情報に基づいてVPN拠点との間で通信を行なって相互の通信アドレスを授受する通信アドレス授受部と、
前記VPN回線の障害発生を検知する障害検知部と、
前記VPN回線に障害発生が検知されたときは、前記VPN接続情報に基づいて新たなVPN回線に切り替える回線切替部と、
前記新たなVPN回線を介して、前記VPN拠点に回線切り替え前後のクライアントの通信アドレスを通知して、前記VPN拠点とクライアントとの通信セッションを維持させる切替通知部と
を備えたことを特徴とする仮想マシンモニタ。
【請求項2】
クライアントOSから取得した通信情報の送信先がVPN内のときは、当該通信情報をカプセル化してインターネット回線に出力する第1の出力部と、
インターネット回線から取得した情報の送信元がVPN内のときは、当該通信情報をデカプセル化してクライアントOSに出力する第2の出力部と、
クライアントOSから取得した通信情報の送信先がVPN内でないときは、当該通信情報をカプセル化せずにインターネット回線に出力する第3の出力部と、
インターネット回線から取得した情報の送信元がVPN内でないときは、当該通信情報をデカプセル化せずにクライアントOSに出力する第4の出力部と
を更に備えたことを特徴とする請求項1に記載の仮想マシンモニタ。
【請求項3】
請求項1又は2に記載の仮想マシンモニタを搭載したことを特徴とするクライアント。
【請求項4】
クライアントに搭載されて、インターネット回線及びインターネット回線を用いたVPN回線と接続して通信情報を授受する仮想マシンモニタの動作を制御するプログラムであって、
前記仮想マシンモニタに
クライアント起動時に前記VPN回線と接続してVPN拠点と通信するためのVPN接続情報を取得する接続情報取得手順と、
前記VPN接続情報に基づいてVPN拠点との間で通信を行なって相互の通信アドレスを授受する通信アドレス授受手順と、
前記VPN回線の障害発生を検知する障害検知手順と、
前記VPN回線に障害発生が検知されたときは、前記VPN接続情報に基づいて新たなVPN回線に切り替える回線切替手順と、
前記新たなVPN回線を介して、前記VPN拠点に回線切り替え前後のクライアントの通信アドレスを通知して、前記VPN拠点とクライアントとの通信セッションを維持させる切替通知手順と
を実行させることを特徴とする仮想マシンモニタの動作を制御するプログラム。
【請求項5】
前記仮想マシンモニタに
クライアントOSから取得した通信情報の送信先がVPN内のときは、当該通信情報をカプセル化してインターネット回線に出力する第1の出力手順と、
インターネット回線から取得した情報の送信元がVPN内のときは、当該通信情報をデカプセル化してクライアントOSに出力する第2の出力手順と、
クライアントOSから取得した通信情報の送信先がVPN内でないときは、当該通信情報をカプセル化せずにインターネット回線に出力する第3の出力手順と、
インターネット回線から取得した情報の送信元がVPN内でないときは、当該通信情報をデカプセル化せずにクライアントOSに出力する第4の出力手順と
を実行させることを特徴とする請求項4に記載の仮想マシンモニタの動作を制御するプログラム。
【請求項1】
クライアントに搭載されて、インターネット回線及びインターネット回線を用いたVPN回線と接続して通信情報を授受する仮想マシンモニタであって、
クライアント起動時に前記VPN回線と接続してVPN拠点と通信するためのVPN接続情報を取得する接続情報取得部と、
前記VPN接続情報に基づいてVPN拠点との間で通信を行なって相互の通信アドレスを授受する通信アドレス授受部と、
前記VPN回線の障害発生を検知する障害検知部と、
前記VPN回線に障害発生が検知されたときは、前記VPN接続情報に基づいて新たなVPN回線に切り替える回線切替部と、
前記新たなVPN回線を介して、前記VPN拠点に回線切り替え前後のクライアントの通信アドレスを通知して、前記VPN拠点とクライアントとの通信セッションを維持させる切替通知部と
を備えたことを特徴とする仮想マシンモニタ。
【請求項2】
クライアントOSから取得した通信情報の送信先がVPN内のときは、当該通信情報をカプセル化してインターネット回線に出力する第1の出力部と、
インターネット回線から取得した情報の送信元がVPN内のときは、当該通信情報をデカプセル化してクライアントOSに出力する第2の出力部と、
クライアントOSから取得した通信情報の送信先がVPN内でないときは、当該通信情報をカプセル化せずにインターネット回線に出力する第3の出力部と、
インターネット回線から取得した情報の送信元がVPN内でないときは、当該通信情報をデカプセル化せずにクライアントOSに出力する第4の出力部と
を更に備えたことを特徴とする請求項1に記載の仮想マシンモニタ。
【請求項3】
請求項1又は2に記載の仮想マシンモニタを搭載したことを特徴とするクライアント。
【請求項4】
クライアントに搭載されて、インターネット回線及びインターネット回線を用いたVPN回線と接続して通信情報を授受する仮想マシンモニタの動作を制御するプログラムであって、
前記仮想マシンモニタに
クライアント起動時に前記VPN回線と接続してVPN拠点と通信するためのVPN接続情報を取得する接続情報取得手順と、
前記VPN接続情報に基づいてVPN拠点との間で通信を行なって相互の通信アドレスを授受する通信アドレス授受手順と、
前記VPN回線の障害発生を検知する障害検知手順と、
前記VPN回線に障害発生が検知されたときは、前記VPN接続情報に基づいて新たなVPN回線に切り替える回線切替手順と、
前記新たなVPN回線を介して、前記VPN拠点に回線切り替え前後のクライアントの通信アドレスを通知して、前記VPN拠点とクライアントとの通信セッションを維持させる切替通知手順と
を実行させることを特徴とする仮想マシンモニタの動作を制御するプログラム。
【請求項5】
前記仮想マシンモニタに
クライアントOSから取得した通信情報の送信先がVPN内のときは、当該通信情報をカプセル化してインターネット回線に出力する第1の出力手順と、
インターネット回線から取得した情報の送信元がVPN内のときは、当該通信情報をデカプセル化してクライアントOSに出力する第2の出力手順と、
クライアントOSから取得した通信情報の送信先がVPN内でないときは、当該通信情報をカプセル化せずにインターネット回線に出力する第3の出力手順と、
インターネット回線から取得した情報の送信元がVPN内でないときは、当該通信情報をデカプセル化せずにクライアントOSに出力する第4の出力手順と
を実行させることを特徴とする請求項4に記載の仮想マシンモニタの動作を制御するプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【公開番号】特開2012−205145(P2012−205145A)
【公開日】平成24年10月22日(2012.10.22)
【国際特許分類】
【出願番号】特願2011−68897(P2011−68897)
【出願日】平成23年3月25日(2011.3.25)
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成21、22年度、総務省、ディペンダブルな自律連合型クラウドコンピューティング基盤の研究開発に係る委託研究、産業技術力強化法第19条の適用を受ける特許出願
【出願人】(504171134)国立大学法人 筑波大学 (510)
【出願人】(593059773)富士ソフト株式会社 (28)
【Fターム(参考)】
【公開日】平成24年10月22日(2012.10.22)
【国際特許分類】
【出願日】平成23年3月25日(2011.3.25)
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成21、22年度、総務省、ディペンダブルな自律連合型クラウドコンピューティング基盤の研究開発に係る委託研究、産業技術力強化法第19条の適用を受ける特許出願
【出願人】(504171134)国立大学法人 筑波大学 (510)
【出願人】(593059773)富士ソフト株式会社 (28)
【Fターム(参考)】
[ Back to top ]