(57)【要約】【課題】仮想化環境において直接のアクセスが制限された装置間でデータを転送するための技術を提供する。【解決手段】仮想環境データ転送システム１０において、仮想マシン１３４は、ホストサーバ１３２上で稼働する。データ転送サーバ１２２は、ホストサーバ１３２と、ユーザ端末１０２に接続されている。ユーザ端末１０２は、仮想マシン１３４が作成したデータの転送を要求するデータ転送要求をデータ転送サーバ１２２に送信する。データ転送サーバ１２２の要求処理部は、データの種類が転送条件を満たす場合に、データ転送要求に含まれたＩＰアドレスとポート番号との第１の組み合わせを第２の組み合わせに置換し、データ転送要求をホストサーバ１３２に転送する。【選択図】図１
2011203887.tif 000002
【特許請求の範囲】
【請求項１】
ホストサーバと、
前記ホストサーバ上で稼働する仮想マシンと、
前記ホストサーバに接続されているデータ転送サーバと、
前記データ転送サーバに接続されており、前記仮想マシンが作成したデータの転送を要求するデータ転送要求を前記データ転送サーバに送信するユーザ端末とを備え、
前記データ転送サーバは、
前記データ転送要求のヘッダから、ＩＰアドレスとポート番号との第１の組み合わせを取得するとともに、データ転送要求のペイロードから、前記ヘッダの属する層より上位の層のヘッダを取得する第１取得部と、
前記第１取得部において取得した第１の組み合わせのうち、少なくともＩＰアドレスを他のＩＰアドレスに変換することによって、ひとつに固定されたポート番号と他のＩＰアドレスとの第２の組み合わせを生成する変換部と、
前記第１取得部において取得した上位の層のヘッダに含まれた識別情報であって、かつデータ転送要求に含まれうる複数種類のデータのうちのいずれかを特定するための識別情報を取得する第２取得部と、
前記第２取得部において取得した識別情報に対応したデータの種類が、前記データ転送要求の転送を許可するための転送条件を満たすか否か判定する転送条件判定部と、
前記データの種類が前記転送条件を満たす場合に、前記データ転送要求に含まれた第１の組み合わせを第２の組み合わせに置換し、データ転送要求を前記ホストサーバに転送する要求転送部とを備えることを特徴とする仮想環境データ転送システム。
【請求項２】
前記仮想マシンのホスト名と前記ホストサーバのホスト名とを対応づけて記憶する仮想マシン情報記憶部を含む環境管理サーバをさらに備え、
前記ユーザ端末は、前記データ転送サーバのＩＰアドレスとポート番号との第１の組み合わせであるアドレスと、前記ホストサーバのホスト名とを対応づけて記憶した仮アドレス記憶部を備え、前記仮想マシンが作成したデータの転送指示がユーザにより入力された際、前記仮想マシンのホスト名を前記環境管理サーバに送信して前記ホストサーバのホスト名を取得し、前記仮アドレス記憶部から前記データ転送サーバのアドレスを読み出し、前記データ転送サーバに前記データ転送要求を送信することを特徴とする請求項１に記載の仮想環境データ転送システム。
【請求項３】
前記データ転送サーバのＩＰアドレスとポート番号との第１の組み合わせであるアドレスと、前記仮想マシンのホスト名とを対応づけて記憶した仮想マシン情報記憶部を含む環境管理サーバをさらに備え、
前記ユーザ端末は、前記仮想マシンが作成したデータの転送指示がユーザにより入力された際、前記仮想マシンのホスト名を前記環境管理サーバに送信して、前記データ転送サーバのアドレスを取得し、前記データ転送サーバに前記データ転送要求を送信することを特徴とする請求項１に記載の仮想環境データ転送システム。
【請求項４】
前記データ転送要求は、前記ホストサーバに対して前記仮想マシンの画面の転送を要求する画面転送要求であることを特徴とする請求項１から３のいずれかに記載の仮想環境データ転送システム。
【請求項５】
ユーザ端末と、仮想マシンが稼働するホストサーバとに接続されるデータ転送装置であって、
前記仮想マシンが作成したデータの転送を要求するデータ転送要求を前記ユーザ端末から受け付ける要求受付部と、
前記データ転送要求のヘッダから、ＩＰアドレスとポート番号との第１の組み合わせを取得するとともに、データ転送要求のペイロードから、前記ヘッダの属する層より上位の層のヘッダを取得する第１取得部と、
前記第１取得部において取得した第１の組み合わせのうち、少なくともＩＰアドレスを他のＩＰアドレスに変換することによって、ひとつに固定されたポート番号と他のＩＰアドレスとの第２の組み合わせを生成する変換部と、
前記第１取得部において取得した上位の層のヘッダに含まれた識別情報であって、かつデータ転送要求に含まれうる複数種類のデータのうちのいずれかを特定するための識別情報を取得する第２取得部と、
前記第２取得部において取得した識別情報に対応したデータの種類が、前記データ転送要求の転送を許可するための転送条件を満たすか否か判定する転送条件判定部と、
前記データの種類が前記転送条件を満たす場合に、前記データ転送要求に含まれた第１の組み合わせを第２の組み合わせに置換し、データ転送要求を前記ホストサーバに転送する要求転送部とを備えることを特徴とする仮想環境データ転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、仮想化環境のセキュリティ管理技術に関連し、特に、仮想化環境においてデータを転送するための仮想環境データ転送システムおよび仮想環境データ転送装置に関する。
【背景技術】
【０００２】
コンピュータシステムを構成するプロセッサ、メモリなどの資源を、物理的構成とは別に、柔軟に分割したり統合したりして利用する仮想化技術が注目を集めている。
たとえばサーバを仮想化することにより、利用率が低くサーバ性能を活かしきれていないサーバを１台の物理サーバに集約するなど、物理的なサーバ台数を減らすことができ、資源の有効利用や、スペース削減、メンテナンスコストの削減が期待される。また、仮想化によりシステムの拡張や構成変更が容易になるため、利用可能なハードウェア資源の構成を動的に最適化することができ、パフォーマンス向上が期待される。このため、近年、仮想化技術を導入する企業が急速に増えている。
このような状況において、仮想化環境において構築した仮想マシンに、外部からアクセスしたいという要請がある（例えば、非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】harada、VMWare Server 上の仮想マシンに外部からアクセスする方法、［online］、2008/09/19/19、株式会社ニジモ、nijimo Blog、［2010/3/24検索］、インターネット＜URL：http://blog.nijimo.jp/2008/09/19/19/＞
【発明の概要】
【発明が解決しようとする課題】
【０００４】
仮想化環境において、あるサーバと、そのサーバ上で仮想的に稼働する仮想マシンの所属するセグメントを分けたいことがある。たとえば、ユーザに公開されていないＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）に所属するサーバと、そのサーバ上で稼働し、ユーザから利用可能である仮想マシンとは、セキュリティ上、分離して管理することが望ましい。
【０００５】
しかしながら、従来の仮想化環境用のサーバの機能では、公開されていないサーバ上で稼働する仮想マシンの画面を、非公開ＬＡＮ外部のユーザ端末に表示させるような場合、非公開ＬＡＮ内のサーバと、外部のユーザ端末とを直接接続せざるを得なかった。これは、ユーザの不正行為や不注意に起因する事故を誘発する恐れがあり、セキュリティの観点から望ましくない。
とくに、非公開ＬＡＮ内のサーバに重要な影響をおよぼしうる管理情報を通信するための管理用ポートと画面などのデータを通信するためのデータ用ポートとが分離されておらず、一のポートで管理情報もデータも通信するタイプのサーバを用いる場合において、この問題は顕著であった。すなわちこの場合、画面転送のみのために、外部の端末から非公開サーバの管理ポートにアクセスできる状態にしておく必要があったため、セキュリティ上、深刻な問題であった。
【０００６】
本発明は、上記課題に基づいて完成された発明であり、その主たる目的は、仮想化環境において、装置間の直接のアクセスを制限しつつ、データの転送を可能とするための技術を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のある態様の仮想環境データ転送システムは、ホストサーバと、ホストサーバ上で稼働する仮想マシンと、ホストサーバに接続されているデータ転送サーバと、データ転送サーバに接続されており、仮想マシンが作成したデータの転送を要求するデータ転送要求をデータ転送サーバに送信するユーザ端末とを備える。データ転送サーバは、データ転送要求のヘッダから、ＩＰアドレスとポート番号との第１の組み合わせを取得するとともに、データ転送要求のペイロードから、ヘッダの属する層より上位の層のヘッダを取得する第１取得部と、第１取得部において取得した第１の組み合わせのうち、少なくともＩＰアドレスを他のＩＰアドレスに変換することによって、ひとつに固定されたポート番号と他のＩＰアドレスとの第２の組み合わせを生成する変換部と、第１取得部において取得した上位の層のヘッダに含まれた識別情報であって、かつデータ転送要求に含まれうる複数種類のデータのうちのいずれかを特定するための識別情報を取得する第２取得部と、第２取得部において取得した識別情報に対応したデータの種類が、データ転送要求の転送を許可するための転送条件を満たすか否か判定する転送条件判定部と、データの種類が転送条件を満たす場合に、データ転送要求に含まれた第１の組み合わせを第２の組み合わせに置換し、データ転送要求をホストサーバに転送する要求転送部とを備える。
【０００８】
本発明の別の態様は、仮想環境データ転送装置である。この装置は、ユーザ端末と、仮想マシンが稼働するホストサーバとに接続されるデータ転送装置であって、仮想マシンが作成したデータの転送を要求するデータ転送要求をユーザ端末から受け付ける要求受付部と、データ転送要求のヘッダから、ＩＰアドレスとポート番号との第１の組み合わせを取得するとともに、データ転送要求のペイロードから、ヘッダの属する層より上位の層のヘッダを取得する第１取得部と、第１取得部において取得した第１の組み合わせのうち、少なくともＩＰアドレスを他のＩＰアドレスに変換することによって、ひとつに固定されたポート番号と他のＩＰアドレスとの第２の組み合わせを生成する変換部と、第１取得部において取得した上位の層のヘッダに含まれた識別情報であって、かつデータ転送要求に含まれうる複数種類のデータのうちのいずれかを特定するための識別情報を取得する第２取得部と、第２取得部において取得した識別情報に対応したデータの種類が、データ転送要求の転送を許可するための転送条件を満たすか否か判定する転送条件判定部と、データの種類が転送条件を満たす場合に、データ転送要求に含まれた第１の組み合わせを第２の組み合わせに置換し、データ転送要求をホストサーバに転送する要求転送部とを備える。
【０００９】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１０】
本発明によると、仮想化を導入したシステムにおいて、セキュリティ保護された環境で、データを転送するための技術を提供することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態にかかる仮想環境データ転送システムのブロック図である。
【図２】実施の形態にかかるデータ転送サーバのブロック図である。
【図３】実施の形態にかかる環境管理サーバの仮想マシン情報記憶部に格納された仮想マシン情報テーブルを示す図である。
【図４】実施の形態にかかるユーザＬＡＮの仮アドレス記憶部に格納された仮アドレス対応テーブルを示す図である。
【図５】図２のデータ転送サーバの実アドレス記憶部に格納されたホストサーバ実アドレステーブルを示す図である。
【図６】ユーザ端末から仮想マシンへと画面クエリが送信され、仮想マシンからユーザ端末へと画面が転送される手順を示すフローチャートである。
【図７】図６の要求転送処理を示すフローチャートである。
【発明を実施するための形態】
【００１２】
はじめに、実施の形態にかかる仮想環境データ転送システムの概要を説明する。
仮想環境データ転送システムにおいては、ユーザに公開しない管理ＬＡＮ内のサーバと、そのサーバ上で稼働し、ユーザ端末から利用可能である仮想マシンとを分離して管理する。ユーザ端末に対しては、管理ＬＡＮ内のサーバの実際のアドレス（以下、「実アドレス」ともいう）や、そのサーバ上で稼働する仮想マシンの実アドレスは公開されない。したがって、ユーザ端末が、管理ＬＡＮ内のサーバや、そのサーバ上で稼働する仮想マシンに直接アクセスすることはできない。ユーザ端末とホストサーバとの間の通信は、データ転送サーバが中継する。
【００１３】
ユーザ端末には、利用可能な仮想マシンのホスト名が公開されている。
ユーザがユーザ端末に対して、ある仮想マシンからデータを取得することを指示すると、ユーザ端末は、その仮想マシンのホスト名にもとづいて、その仮想マシンが稼働するホストサーバのホスト名を問い合わせ、取得する。そして、取得したホスト名にもとづいて、ホストサーバにそれぞれ割り当てられた仮のアドレス（以下、「仮アドレス」ともいう）を取得し、仮想マシンからのデータの転送を要求するデータ転送要求を、仮アドレスに宛てて、送信する。
仮アドレスは、実際には、データ転送サーバのアドレスであり、ユーザ端末が、仮アドレスを用いてデータ転送要求を送信すると、データ転送要求はデータ転送サーバに送信される。
【００１４】
データ転送サーバは、ユーザ端末から受け取ったパケットについて、ヘッダからデータの種類を読み取り、ホストサーバに転送してよいデータであると判定した場合には、そのパケットをホストサーバに転送する。
データ転送サーバはまた、応答として仮想マシンから送られたデータを、ユーザ端末に転送する。
【００１５】
本明細書において、送信先を特定することができる情報を、「アドレス」とよぶ。たとえばＩＰアドレスがアドレスとして用いられてもよく、ＩＰアドレスとポート番号の組み合わせがアドレスとして用いられてもよい。
また、本明細書において、仮想マシンにハードウェア資源などを提供しており、仮想マシンがその上で稼働しているサーバのことを、「ホストサーバ」とよぶ。
【００１６】
図１は、実施の形態にかかる仮想環境データ転送システム１０のブロック図である。
仮想環境データ転送システム１０は、ユーザＬＡＮ１００、中継ＬＡＮ１２０および管理ＬＡＮ１３０を備える。ユーザＬＡＮ１００は、たとえば開発者チームなど、仮想マシンを利用するユーザが使用するユーザ端末が所属するローカルエリアネットワークであり、管理ＬＡＮ１３０とは分離されている。中継ＬＡＮ１２０には、ユーザＬＡＮ１００と管理ＬＡＮ１３０との間の通信を中継するためのサーバが所属する。管理ＬＡＮ１３０はユーザＬＡＮ１００には公開されず、管理ＬＡＮ１３０に所属するサーバ等のアドレスも公開されないが、管理ＬＡＮ１３０に所属するサーバ上で稼働する仮想マシンは、ユーザＬＡＮ１００から利用可能であるよう、システムが構成される。
【００１７】
ユーザＬＡＮ１００と中継ＬＡＮ１２０の間、および中継ＬＡＮ１２０と管理ＬＡＮ１３０の間は、イントラネット、ＬＡＮ、広域ネットワーク（ＷＡＮ）、仮想プライベートネットワーク（ＶＰＮ）、インターネットなどのネットワークにより通信可能に接続される。
【００１８】
ユーザＬＡＮ１００は、ユーザ端末１０２および仮アドレス記憶部１０４を備える。仮アドレス記憶部１０４は、ユーザ端末１０２がアクセスする仮想マシンが稼働するホストサーバに割り当てられた仮アドレスを格納する。仮アドレスについて、詳細は後述する。図１において、仮アドレス記憶部１０４は、ユーザ端末１０２の外部記憶装置として示されているが、ユーザ端末１０２の内部記憶装置として構成されてもよい。なお、図１においては一のユーザ端末１０２を示しているが、ユーザＬＡＮ１００は複数のユーザ端末１０２を含んでもよい。
【００１９】
中継ＬＡＮ１２０は、データ転送サーバ１２２および環境管理サーバ１２４を備える。
データ転送サーバ１２２は、ユーザ端末１０２から送られた仮想マシンに対する画面転送要求（以下、「画面クエリ」ともいう）などのデータ転送要求を仮想マシンに転送し、また、仮想マシンから送られた画面データなどをユーザ端末１０２に転送する。データ転送サーバ１２２の構造については、図２に関連して後述する。
【００２０】
環境管理サーバ１２４は、ユーザＬＡＮ１００等のシステム環境を管理する。環境管理サーバ１２４は、管理ＬＡＮ１３０内のサーバや、管理ＬＡＮ１３０内のサーバ上で稼働する仮想マシンに関する情報を格納する仮想マシン情報記憶部１２８を備える。
【００２１】
管理ＬＡＮ１３０は、第１ホストサーバ１３２ａ、第２ホストサーバ１３２ｂ（以下、総称して、単に「ホストサーバ１３２」ともいう）および統合管理サーバ１３６を備える。図１においては２台のホストサーバ１３２を示しているが、ホストサーバ１３２の数はこれに限られず、任意の数で構成されてよく、用途や負荷、物理マシンの性能などに応じて、適宜定めてよい。ホストサーバ１３２は、仮想環境を構築可能な任意のサーバであり、例えば、ＶＭｗａｒｅ  ＥＳＸ  Ｓｅｒｖｅｒ（登録商標）であってもよい。
【００２２】
第１ホストサーバ１３２ａ上では、第１仮想マシン１３４ａおよび第２仮想マシン１３４ｂが仮想的に構築されており、第２ホストサーバ１３２ｂ上では、第３仮想マシン１３４ｃおよび第４仮想マシン１３４ｄが仮想的に構築されている。以下、これらの仮想マシンを総称して、単に「仮想マシン１３４」ともいう。図１においては例示として、ホストサーバ１３２上でそれぞれ２台の仮想マシン１３４が稼働している構成を示しているが、仮想マシン１３４の数はこれに限られず、用途や負荷、物理マシンの性能などに応じて、適宜定めてよい。
【００２３】
統合管理サーバ１３６は、ＬＡＮ１３０内の、ホストサーバ１３２および仮想マシン１３４を統合的に管理する。統合管理サーバ１３６は、ホストサーバ１３２および仮想マシン１３４に関する情報を蓄積し、格納する管理情報記憶部１３８を備える。
【００２４】
図２は、データ転送サーバ１２２のブロック図である。データ転送サーバ１２２は、ユーザ端末１０２から送られた仮想マシン１３４に対する要求などのパケットを処理する要求処理部５０、ホストサーバ１３２の実アドレスを格納する実アドレス記憶部５６、およびホストサーバ１３２から送信されたデータをユーザ端末１０２に転送する応答転送部５８を備える。要求処理部５０は、要求受付部６０、第１取得部６２、第２取得部６４、転送条件判定部６６、変換部６８、および要求転送部７０を備える。
【００２５】
要求受付部６０は、仮想マシン１３４からのデータ転送を要求するデータ転送要求などのパケットを、ユーザ端末１０２から受け付ける。第１取得部６２は、受け付けたパケットのヘッダから、例えばＩＰアドレスとポート番号の組み合わせで構成されるアドレスを取得し、また、ペイロードから、より上位の層のヘッダを取得する。ＩＰアドレスが第３レイヤのヘッダに含まれ、ポート番号が第４レイヤのヘッダに含まれるので、より上位の層のヘッダは、第５レイヤ以上のヘッダに相当する。第２取得部６４は、第１取得部６２が取得した、より上位の層のヘッダから、データ転送要求に含まれうるデータ種類を特定する識別情報を取得する。
【００２６】
転送条件判定部６６は、第２取得部６４が取得した識別情報に対応したデータの種類にもとづいて、ホストサーバ１３２に転送してもよいデータであるか否か判定する。判定するための条件については後述する。変換部６８は、第１取得部が取得したアドレスを、ホストサーバ１３２に送信するためのアドレスに変換する。要求転送部７０は、転送条件判定部６６がホストサーバ１３２に転送してもよいデータであると判定した場合に、パケットに含まれていたアドレスを、変換部６８が変換したアドレスに置換し、ホストサーバ１３２に転送する。転送条件を充たさない場合、要求転送部７０は、受信したパケットを廃棄する。
【００２７】
図１および図２に示す各ブロックは、ハードウェア的には、コンピュータのＣＰＵをはじめとする素子や機械装置で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できることは、当業者には理解されるところである。
【００２８】
図３は、環境管理サーバ１２４の仮想マシン情報記憶部１２８に格納された仮想マシン情報テーブル２００を示す図である。仮想マシン情報テーブル２００は、仮想マシンホスト名欄２０２と、ホストサーバホスト名欄２０４とを含む。仮想マシンホスト名欄２０２は、各仮想マシン１３４のホスト名を記録する。ホストサーバホスト名欄２０４は、それぞれの仮想マシン１３４がその上で稼働しているホストサーバ１３２のホスト名を記録する。
【００２９】
ここでは、図１に示した第１仮想マシン１３４ａ〜１３４ｄのホスト名は、それぞれｖｍ１〜ｖｍ４であり、図１に示した第１ホストサーバ１３２ａ、１３２ｂのホスト名は、それぞれ、ｈｓａ、ｈｓｂであるとしている。仮想マシン情報テーブル２００を参照することにより、各仮想マシン１３４がその上で稼働しているホストサーバ１３２のホスト名を取得することができる。たとえば、仮想マシン情報テーブル２００から、ホスト名がｖｍ１である第１仮想マシン１３４ａは、ホスト名がｈｓａである第１ホストサーバ１３２ａ上に構築された仮想マシンであることが読み取れる。
【００３０】
なお、仮想マシン情報テーブル２００は、この他にも、例えば、ホストサーバ１３２のホスト名に関連づけて、ホストサーバ１３２の仮アドレスを格納してもよい。仮想マシン情報テーブル２００に記録される情報は、統合管理サーバ１３６の管理情報記憶部１３８に格納されるホストサーバ１３２および仮想マシン１３４に関する情報の更新と同期して、最新の情報に更新される。
【００３１】
図４は、ユーザＬＡＮ１００の仮アドレス記憶部１０４に格納された仮アドレス対応テーブル２１０を示す図である。仮アドレス対応テーブル２１０は、ホストサーバホスト名欄２１２と、ホストサーバ仮アドレス欄２１４とを含む。ホストサーバホスト名欄２１２は、ホストサーバ１３２のホスト名を記録する。ホストサーバ仮アドレス欄２１４は、それぞれのホストサーバ１３２に割り当てられた仮アドレスを記録する。
【００３２】
仮想環境データ転送システム１０においては、ユーザ端末１０２に対して、ホストサーバ１３２や仮想マシン１３４の実アドレスは公開されない。ユーザ端末１０２は、ホストサーバ１３２の実アドレスに代えて、各ホストサーバ１３２に割り当てられた仮アドレスを、ホストサーバ１３２に送信する際の宛先として用いる。
【００３３】
図４の例において、ホスト名がそれぞれｈｓａ、ｈｓｂである第１ホストサーバ１３２ａ、１３２ｂに対して、仮アドレスとしてＩＰアドレス「Ｘ．１．１．１」とポート番号「ＸＸ１１」の組み合わせが割り当てられている。この仮アドレスは、実際にはデータ転送サーバ１２２のアドレスである。
ユーザ端末１０２が第１ホストサーバ１３２ａと通信するときには、実際にはデータ転送サーバ１２２のアドレスである仮アドレスを送信先のアドレスとして用いる。したがって、ユーザ端末１０２は、まずデータ転送サーバ１２２と通信することになる。
【００３４】
図４において、ホスト名がｈｓｃである図示しないホストサーバに対しては、仮アドレスとしてＩＰアドレス「Ｘ．１０．１０．１０」とポート番号「ＸＸ１０」との組み合わせが割り当てられている。この仮アドレスは、別のデータ転送サーバ（図示せず）のアドレスであり、ユーザ端末１０２は、ホスト名がｈｓｃであるホストサーバと通信するときには、そのデータ転送サーバを介して通信することになる。
【００３５】
なお、図４の例においては、ホストサーバに対して割り当てられた仮アドレスとして、ＩＰアドレスとポート番号の両方が、仮アドレス対応テーブル２１０に記録されていることとしたが、ポート番号は、必ずしも固定された値として仮アドレス対応テーブル２１０に記録されていなくてもよい。たとえば、通信する都度、データ転送サーバ１２２が定めたポート番号が、データ転送サーバ１２２から、ユーザ端末１０２に通知されてもよい。
【００３６】
図５は、データ転送サーバ１２２の実アドレス記憶部５６に格納されたホストサーバ実アドレステーブル２３０を示す図である。ホストサーバ実アドレステーブル２３０は、ホストサーバホスト名欄２３２と、ホストサーバ実アドレス欄２３４とを含む。ホストサーバホスト名欄２３２は、各ホストサーバのホスト名を記録する。ホストサーバ実アドレス欄２３４は、それぞれのホストサーバの実アドレスを記録する。
【００３７】
図５の例においては、ホスト名がｈｓａである第１ホストサーバ１３２ａの実アドレスとしてＩＰアドレス「Ｘ．２．２．２」とポート番号「４４３」との組み合わせが記録されている。また、ホスト名がｈｓｂである第２ホストサーバ１３２ｂの実アドレスとしてＩＰアドレス「Ｘ．２．２．３」とポート番号「４４３」の組み合わせが記録されている。
【００３８】
データ転送サーバ１２２は、ユーザ端末１０２から受信したパケットを、ホストサーバ１３２に転送する際には、ホストサーバ実アドレステーブル２３０を参照して、受信したパケットのアドレスをホストサーバ１３２の実アドレスに置換して、送信する。
【００３９】
以上の構成による動作は以下のとおりである。
図６は、ユーザ端末１０２から第１ホストサーバ１３２ａへと画面クエリが転送され、第１ホストサーバ１３２ａからユーザ端末１０２へと、第１仮想マシン１３４ａの画面が転送される手順を示すフローチャートである。
【００４０】
ユーザ端末１０２は、例えば図示しない入力装置を介してユーザから第１仮想マシン１３４ａの画面を表示するよう指示されたときに、第１仮想マシン１３４ａの画面を転送することを要求する画面クエリを生成する（Ｓ１０）。ユーザ端末１０２は、生成した画面クエリに、仮想マシンのホスト名である「ｖｍ１」を含めて、環境管理サーバ１２４に送信する（Ｓ１２）。
【００４１】
環境管理サーバ１２４は、仮想マシン情報記憶部１２８に格納された仮想マシン情報テーブル２００を参照し、第１仮想マシン１３４ａのホスト名である「ｖｍ１」に対応づけられたホスト名「ｈｓａ」を読み出す（Ｓ１４）。「ｈｓａ」は、第１ホストサーバ１３２ａのホスト名である。環境管理サーバ１２４は、読み出したホスト名「ｈｓａ」をユーザ端末１０２に送信する（Ｓ１６）。
【００４２】
ユーザ端末１０２は、仮アドレス記憶部１０４に格納された仮アドレス対応テーブル２１０を参照し、第１ホストサーバ１３２ａに割り当てられている仮アドレスを取得する（Ｓ１８）。図４の例では、ユーザ端末１０２は、環境管理サーバ１２４から取得したホスト名「ｈｓａ」に対応づけられたＩＰアドレス「Ｘ．１．１．１」とポート番号「ＸＸ１１」との組み合わせを、第１ホストサーバ１３２ａの仮アドレスとして取得する。ユーザ端末１０２は、読み取った仮アドレスを、第１ホストサーバ１３２ａのアドレスとして扱う。すなわち、ユーザ端末１０２は、第１ホストサーバ１３２ａに第１仮想マシン１３４ａの画面クエリを送信するときには、ＩＰアドレス「Ｘ．１．１．１」およびポート番号「ＸＸ１１」に宛てて送信する。
【００４３】
ここで、ユーザ端末１０２が送信する画面クエリには、第１仮想マシン１３４ａのホスト名である「ｖｍ１」と、仮想マシン１３４が稼働する第１ホストサーバ１３２ａのホスト名「ｈｓａ」が含まれる。仮アドレスであるＩＰアドレス「Ｘ．１．１．１」とポート番号「ＸＸ１１」は、実際にはデータ転送サーバ１２２のアドレスであるため、ユーザ端末１０２は、画面クエリを、データ転送サーバ１２２に宛てて送信することになる（Ｓ２０）。
【００４４】
データ転送サーバ１２２において、要求転送処理がなされる（Ｓ２２）。要求転送処理については、図７に関連して後述する。データ転送サーバ１２２は、画面クエリを、第１ホストサーバ１３２ａに送信する（Ｓ２４）。第１ホストサーバ１３２ａに送られる画面クエリには、第１仮想マシン１３４ａのホスト名「ｖｍ１」が含まれる。
【００４５】
第１ホストサーバ１３２ａは、データ転送サーバ１２２から画面クエリを受信すると、要求された第１仮想マシン１３４ａの画面データを取得する（Ｓ２６）。例えば、第１ホストサーバ１３２ａは、あらかじめ、第１仮想マシン１３４ａの画面データを取得して、図示しない記憶部に格納しておき、画面クエリを受信した際に、記憶部から画面データを取得する。そして、第１ホストサーバ１３２ａは、取得した画面データをデータ転送サーバ１２２に送信する（Ｓ２８）。
【００４６】
データ転送サーバ１２２の応答転送部５８は、第１仮想マシン１３４ａから画面データを受信し、ユーザ端末１０２に転送する（Ｓ３０）。ユーザ端末１０２は、データ転送サーバ１２２から画面データを受信し、受信した画面データをもとにして、図示しない表示装置に第１仮想マシン１３４ａの画面を表示する（Ｓ３２）。
【００４７】
図７は、図６のステップ２２の要求転送処理手順を示すフローチャートである。
まず、データ転送サーバ１２２の要求受付部６０は、ユーザ端末１０２からのパケットを受け付ける（Ｓ４０）。第１取得部６２は、受信したパケットのヘッダからアドレスを取得する（Ｓ４２）。アドレスは、例えば、第３層のＩＰヘッダに含まれるＩＰアドレスと第４層のＴＣＰヘッダに含まれるポート番号の組み合わせで構成される。ここでは、ヘッダに含まれるＩＰアドレスは、「Ｘ．１．１．１」であり、ヘッダに含まれるポート番号は、「ＸＸ１１」であるとする。
【００４８】
第１取得部６２はまた、受信したパケットのペイロードから、アドレスを取得したヘッダの属する層より上位の層のヘッダを取得する（Ｓ４４）。たとえば、アドレスを取得したヘッダの属する層が第３層および第４層であれば、これより上位の層である第５層以上の層のヘッダを取得する。
【００４９】
第２取得部６４は、第１取得部６２がペイロードから取得したヘッダから、パケットに含まれうる複数種類のデータのうちのいずれかを特定するための識別情報を取得する（Ｓ４６）。パケットに含まれうる複数種類のデータの例としては、画面クエリ、画面データ自体などの画面転送に関するデータや、ホストサーバ１３２を操作するための命令などがある。複数種類のデータのうちのいずれかを特定するための識別情報は、例えば、画面転送に関するデータであるか、それともそれ以外のデータであるのか識別可能である情報である。この識別情報は、あらかじめデータ転送サーバ１２２が定めて、ユーザ端末１０２に通知しておいてもよい。
【００５０】
転送条件判定部６６は、第２取得部６４が取得した識別情報にもとづいて、受信したパケットに含まれうるデータの種類が、パケットの転送を許可するための転送条件を満たすか否か判定する（Ｓ４８）。この転送条件は、例えば、受信したパケットに含まれるデータが、画面クエリや画面転送に関連するデータであることを、そのパケットをホストサーバ１３２に転送することを許可するための条件として定める。すなわち、受信したパケットに含まれるデータの種類が、画面に関連しないホストサーバ１３２への命令を含む管理情報等である場合には、転送は許可されない。転送条件を満たさない場合、受信したパケットは、廃棄される（Ｓ５０）。
【００５１】
変換部６８は、第１取得部が取得したアドレスを、ホストサーバ１３２に送信するためのアドレスに変換する（Ｓ５２）。例えば、第１取得部６２が取得したＩＰアドレスとポート番号の組み合わせからなるアドレスのうち、少なくともＩＰアドレスを他のＩＰアドレスに変換する。具体的には、変換部６８は、ホストサーバ実アドレステーブル２３０を参照し、第１ホストサーバ１３２ａのホスト名「ｈｓａ」にもとづいて、第１ホストサーバ１３２ａの実アドレスであるＩＰアドレス「Ｘ．２．２．２」とポート番号「４４３」の組み合わせを読み出す。そして、第１取得部６２が画面クエリのヘッダから抽出した「Ｘ．１．１．１」を、第１ホストサーバ１３２ａの実アドレス「Ｘ．２．２．２」に変換する。
【００５２】
変換部６８は、第１取得部６２が取得したポート番号がデータ転送サーバ１２２とホストサーバ１３２との間の通信に用いるポート番号と異なるときには、ポート番号をデータ転送サーバ１２２とホストサーバ１３２との間の通信に用いるポート番号に変換する。データ転送サーバ１２２とホストサーバ１３２との間の通信に用いるポート番号は、ひとつに固定されている。例えば、ｈｔｔｐｓ通信用の４４３ポートに固定されている。この例においては、データ転送サーバ１２２は、第１取得部６２が取得したポート番号「ＸＸ１１」が４４３と一致しないため、ポート番号を４４３に変換する。
【００５３】
要求転送部７０は、パケットに含まれるデータの種類が転送条件を満たす場合に、前記画面クエリに含まれたＩＰアドレスとポート番号の組み合わせを、変換部６８が変換したＩＰアドレスとポート番号の組み合わせに置換する（Ｓ５４）。本実施例においては、ＩＰアドレス「Ｘ．１．１．１」とポート番号「ＸＸ１１」の組み合わせを、ＩＰアドレス「Ｘ．２．２．２」とポート番号「４４３」の組み合わせに置換する。
そして、要求転送部７０は、置換したアドレスにしたがって、画面クエリをホストサーバ１３２に転送し（Ｓ５６）、要求転送処理は終了する。
【００５４】
このように、本発明にかかる仮想環境データ転送システム１０によれば、ユーザ端末１０２を、直接ホストサーバ１３２に接続させることなく、ユーザ端末１０２から仮想マシン１３４へと、画面クエリを送信することができ、仮想マシン１３４の画面をユーザ端末１０２に転送することが可能となる。
ユーザ端末には、仮想マシン１３４やホストサーバ１３２の実アドレスは記録されておらず、また通知もされない。したがって、仮に悪意あるユーザが、ユーザ端末１０２から公開されていない管理ＬＡＮ１３０へのアクセスを試みようとしても、仮想マシン１３４やホストサーバ１３２の実アドレスを知ることができず、管理ＬＡＮ１３０にアクセスすることができない。
【００５５】
また、データ転送サーバ１２２において、ユーザ端末１０２から送信されたパケットのデータの種類をチェックすることが可能であるため、画面クエリや、転送画面など、画面に関連する所定のデータ以外のデータであると判断されたパケットは、通過させないフィルタリング処理が可能となる。
したがって、よりセキュリティ保護された環境で、仮想化されたリソースを利用可能と
【００５６】
また、統合管理サーバ１３６の管理情報記憶部１３８に接続可能な環境管理サーバ１２４が仮想マシン情報テーブル２００を更新保持し、管理するため、常に最新の情報をユーザ端末１０２に提供することができる。例えば、管理ＬＡＮ１３０においてシステム構成が変更され、仮想マシン１３４が他のホストサーバ１３２上に移されたような場合にも、最新の情報を提供することができる。
【００５７】
以上、本発明について実施例をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００５８】
例えば、実施例においては、ユーザ端末１０２が仮想マシン１３４からの画面転送を要求し、その応答である画面データをデータ転送サーバ１２２がユーザ端末１０２に転送した。しかし、ユーザ端末１０２が要求する情報は、画面データに限られず、例えば音声など画面以外のデータや、画面データとそれ以外のデータの組み合わせであってもよく、ユーザ端末１０２から仮想マシン１３４を利用するにあたって必要となる任意のデータであってよい。例えば、ＨＴＭＬ文書や、文書に関連付けられている画像、音声、動画などの組み合わせであってもよい。
【００５９】
また、図６のフローチャートのステップ１８においては、ユーザ端末１０２は仮アドレス対応テーブル２１０から仮アドレスを読み出したが、これに代えて、ユーザ端末１０２は環境管理サーバ１２４から仮アドレスを取得することとしてもよい。
【００６０】
この場合、環境管理サーバ１２４の仮想マシン情報テーブル２００はさらに、ホストサーバのホスト名と、その仮アドレスとを関連づけて記録する。環境管理サーバ１２４は、ステップ１４において、第１ホストサーバ１３２ａのホスト名「ｈｓａ」に加えて、第１ホストサーバ１３２ａに割り当てられた仮アドレスも読み出す。そして、ステップ１６において、環境管理サーバ１２４は、第１ホストサーバ１３２ａのホスト名と共に、第１ホストサーバ１３２ａに割り当てられた仮アドレスをユーザ端末１０２に送信する。
【００６１】
この場合、ユーザ端末１０２は、ステップ１８の読み出しを行う必要はない。そして、ステップ２０において、ユーザ端末１０２は、環境管理サーバ１２４から取得した仮アドレスに従って、第１仮想マシン１３４ａの画面クエリをデータ転送サーバ１２２に宛てて送信する。以降、図６と同じ手順で画面クエリが第１仮想マシン１３４ａに転送され、第１ホストサーバ１３２ａから、第１仮想マシン１３４ａの画面データがユーザ端末１０２に転送される。
【００６２】
この変形例によると、環境管理サーバ１２４から第１ホストサーバ１３２ａの仮アドレスが取得されるため、ユーザ端末１０２は、仮アドレス対応テーブル２１０を保持する必要がなく、仮アドレス対応テーブル２１０の更新などの管理をする必要がない。
【００６３】
また、図６のフローチャートのステップ１２からステップ１６においては、ユーザ端末１０２は、環境管理サーバ１２４から第１ホストサーバ１３２ａのホスト名を取得しているが、第１ホストサーバ１３２ａのホスト名は、ユーザ端末１０２自身が、あらかじめ取得しておき、必要に応じて読み出すこととしてもよい。この場合、環境管理サーバ１２４へ問い合わせて、第１ホストサーバ１３２ａのホスト名を取得する処理（図６のＳ１２〜Ｓ１６）は不要である。
【００６４】
この場合、ユーザ端末１０２の仮アドレス記憶部１０４が、仮アドレス対応テーブル２１０に加えて、仮想マシン情報テーブル２００を保持する。ユーザ端末１０２は、まず、アクセスしたい第１仮想マシン１３４ａのホスト名に基づいて、仮想マシン情報テーブル２００を参照して第１仮想マシン１３４ａが稼働する第１ホストサーバ１３２ａのホスト名を読み出す。ユーザ端末１０２は、次に、第１ホストサーバ１３２ａのホスト名にもとづいて仮アドレス対応テーブル２１０を参照して、第１ホストサーバ１３２ａの仮アドレスを読み出す（Ｓ１８）。そして、ステップ２０以降、図６と同じ手順で、画面クエリが第１仮想マシン１３４ａに送信され、第１仮想マシン１３４ａの画面データがユーザ端末１０２に転送される。
【００６５】
この変形例によると、環境管理サーバ１２４なしで仮想環境データ転送システム１０を構築することができるため、より簡単に、セキュリティ保護された環境で、仮想化されたリソースを利用することができる。
【符号の説明】
【００６６】
１０  仮想環境データ転送システム、  ５０  要求処理部、  ５８  応答転送部、  ６０  要求受付部、  ６２  第１取得部、  ６４  第２取得部、  ６６  転送条件判定部、  ６８  変換部、  ７０  要求転送部、  １００  ユーザＬＡＮ、  １０２  ユーザ端末、  １０４  仮アドレス記憶部、  １２０  中継ＬＡＮ、  １２２  データ転送サーバ、  １２４  環境管理サーバ、  １２８  仮想マシン情報記憶部、  １３０  管理ＬＡＮ、  １３２  ホストサーバ、  １３４，１３６  統合管理サーバ、  １３８  管理情報記憶部。
【図１】
2011203887.tif 000003
【図２】
2011203887.tif 000004
【図３】
2011203887.tif 000005
【図４】
2011203887.tif 000006
【図５】
2011203887.tif 000007
【図６】
2011203887.tif 000008
【図７】
2011203887.tif 000009