(57)【特許請求の範囲】
【請求項１】
プロセッサ及びメモリを有するホスト・コンピュータ・システムと、
前記ホスト・コンピュータを外部ネットワークに接続する、単一のインターネット・プロトコル（ＩＰ）アドレスを有する物理インターフェースと、
各々が前記メモリ内の仮想マシン番号を有する複数の仮想マシンと、
前記物理インターフェース上で受け取った、宛先ポート番号を有するデータ・パケットと、
前記データ・パケットの前記宛先ポート番号に応じて、前記データ・パケットを前記複数の仮想マシンのうちの一意のものに経路指定するための仮想ネットワーク・マネージャと、
複数のポート範囲及び各ポート範囲についての対応する仮想マシン番号を有するポート範囲テーブルとを含み、
前記仮想ネットワーク・マネージャは、前記データ・パケットの前記宛先ポート番号を含むポート範囲に対応する前記ポート範囲テーブル内に格納された前記仮想マシン番号を選択することによって、前記複数の仮想マシンのうちの前記一意のものの前記仮想マシン番号を判断する、装置。
【請求項２】
前記外部ネットワークから前記ホスト・コンピュータを保護するファイアウォールをさらに含む、請求項１に記載の装置。
【請求項３】
前記複数の仮想マシンは、複数のホスト・コンピュータ・システム上に配置される、請求項１に記載の装置。
【請求項４】
前記仮想ネットワーク・マネージャは、仮想ネットワーク上で前記データ・パケットを前記仮想マシンに転送する、請求項１に記載の装置。
【請求項５】
前記データ・パケットは、ＴＣＰ（伝送制御プロトコル）及びユーザ・データグラム・プロトコル（ＵＤＰ）から選択されるプロトコルに準拠する、請求項１に記載の装置。
【請求項６】
前記仮想マシンの一時ポートが、前記仮想マシンに割り当てられた前記ポート範囲テーブル内のポート範囲内のポート番号を用いるように構成される、請求項１に記載の装置。
【請求項７】
ホスト・コンピュータ・システム上でデータを仮想マシンに送るコンピュータ実装方法であって、
（Ａ）単一のインターネット・プロトコル（ＩＰ）アドレスを有するように複数の仮想マシンを構成するステップと、
（Ｂ）複数のポート範囲及び各ポート範囲についての対応する仮想マシン番号を有するポート範囲テーブルを有するように仮想ネットワーク・マネージャを構成するステップと、
（Ｃ）前記仮想マシンに割り当てられた前記ポート範囲テーブル内のポート範囲内のポート番号を用いるように前記仮想マシンの一時ポートを構成するステップと、
（Ｄ）前記データ・パケットの宛先ポート番号に基づいて、前記複数の仮想マシンのうちの一意のものに物理インターフェースからの着信データ・パケットを経路指定するステップと、
を含む方法。
【請求項８】
前記着信データ・パケットを経路指定するステップは、前記データ・パケットの前記宛先ポート番号であって、前記ポート範囲テーブル内のポート範囲に一致する宛先ポート番号に対応する仮想マシン番号を判断し、前記判断した仮想マシン番号を有する前記一意のものの仮想マシンに前記データ・パケットを経路指定するステップをさらに含む、請求項７に記載の方法。
【請求項９】
（Ｅ）前記着信パケットがファイアウォールによって許可されない場合、前記着信パケットを破棄するステップと、
（Ｆ）前記パケットがＴＣＰ（伝送制御プロトコル）及びユーザ・データグラム・プロトコル（ＵＤＰ）から選択されるプロトコルに準拠しない場合、前記着信パケットを返すステップと、
をさらに含む、請求項７に記載の方法。
【請求項１０】
前記仮想ネットワーク・マネージャは、仮想ネットワーク上で前記データ・パケットを前記仮想マシンに転送する、請求項７に記載の方法。
【請求項１１】
前記複数の仮想マシンは、複数のホスト・コンピュータ上に配置される、請求項７に記載の方法。
【請求項１２】
コンピュータを、
物理インターフェース上で受け取った、宛先ポート番号を有するデータ・パケットを、前記データ・パケットの前記宛先ポート番号に応じて、複数の仮想マシンのうちの一意のものに経路指定する仮想ネットワーク・マネージャとして機能させ、
前記仮想ネットワーク・マネージャは、複数のポート範囲及び各ポート範囲についての対応する仮想マシン番号を有するポート範囲テーブルをさらに含み、前記仮想ネットワーク・マネージャは、前記データ・パケットの前記宛先ポート番号を含むポート範囲に対応する前記ポート範囲テーブル内に格納された前記仮想マシン番号を選択することによって、前記複数の仮想マシンのうちの前記一意のものの前記仮想マシン番号を判断する、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ・システムに関し、より具体的には、１つ又は複数の物理ホスト・コンピュータ上に存在する複数の仮想マシンの間で単一のＩＰアドレスを共有することに関する。
【背景技術】
【０００２】
単一のホスト・コンピュータが、仮想マシンと呼ばれる複数のコンピュータの仮想インスタンスを保持することができる。仮想マシンは、実マシンの効率的で分離した複製と定義されることもある。従って、仮想マシンは、物理ホスト・コンピュータ上に存在する仮想コンピュータの複製又はインスタンスである。仮想マシンは、論理パーティションと呼ばれることもある。仮想マシン・システムの主な利点は、複数のオペレーティング・システム（ＯＳ）環境が、同じコンピュータ上で互いに分離した形で共存できることである。さらに、仮想マシンは、実マシンのものとは異なる命令セット・アーキテクチャを提供することができる。仮想マシンを用いて、アプリケーションのプロビジョニング、保守、高可用性及び障害回復を改善することができる。
【０００３】
物理ホスト・コンピュータ上に存在する仮想マシンは、典型的には、ホスト・コンピュータの物理ネットワーク・インターフェースを共有しなければならない。ホスト・コンピュータの物理ネットワーク・インターフェースは、外部ネットワークに接続される。本明細書で用いられる場合、外部ネットワークは、単一の物理マシンの外部に存在する任意のネットワークであり、一連のファイアウォールを通じて間接的に連絡できることも、又はできないこともある。場合によっては、ホスト・コンピュータの物理インターフェースに割り当てられた、外部ネットワーク・アドレス空間からの単一のＩＰアドレスを有することが有利である。ホスト上に存在する仮想マシンは、ホスト物理インターフェースを介して同じ外部ネットワークに接続されるそれぞれの仮想ネットワーク・インターフェースを有する。従来技術において、複数の仮想マシンに同じ物理ネットワーク・インターフェースを使用させる種々の手法が存在する。
【０００４】
特許文献１は、第１のネットワーク・デバイスに割り当てられたＩＰアドレスを、第２のネットワーク・デバイスにより共有して、第２のネットワーク・デバイスから生じたパケットが第１のネットワーク・デバイスから生じたように見えるようにすることを開示している。ネットワーク・デバイスは、指定されたポートがコンピュータにより使用されていない場合に、コンピュータのＩＰアドレスを用いて１つ又は複数の指定ポートからメッセージを送ることによって、このタスクを遂行する。
【０００５】
特許文献２は、仮想インターネット・プロトコル・アドレスを動的に構成するための方法を開示する。通常、ＩＰアドレスがローカル・エリア・ネットワーク（ＬＡＮ）に接続されたノードを指定する場合、ＩＰアドレスの一部又は全ては、典型的には、ＬＡＮのアクセス・ポイントを指定する。しかしながら、「ポート」の指定は、ＩＰアドレスに加えて、アクセス・ポイント（ＬＡＮ）内でノードを指定するために用いることができる。すなわち、ＩＰアドレスは、ＬＡＮのインターネット・アクセス・ポイントを指定するために用いることができ、ポートは、そのアクセス・ポイントにおいてインターネットに接続されるＬＡＮ内部のノードを指定するために用いることができる。インターネット・アクセス・ポイントは、インターネット上で受け取ったパケットのＩＰアドレス（及び、含まれる場合には、ポート）を、同じくＩＰアドレスとすることができるローカル・ネットワーク・アドレスに変換する。
【０００６】
特許文献３は、ローカルＩＰネットワーク上でのマルチ・テレコミュニケーションの方法を開示する。この方法において、複数の端末により、各々のＩＰアドレスが共有される。ローカルＩＰネットワーク１０１は、内部ＩＰアドレス、すなわち、１０．０．０．０から１０．０．２５５．２５５までにより、各端末を識別する。ローカルＩＰネットワーク１０１の端末を区別するために、各端末には異なるポート番号が割り当てられる。ここで、ポートは、物理的な意味でも又ハードウェアの意味でもなく、ＴＣＰｆｕＤＲポートを指す。一般に、ＩＰネットワークは、ＨＴＴＰ、Ｅメール及びＦＴＰを処理するために特定のポートを割り当て、複数の予約ポートを有する。これらの予約ポートは、ローカルＩＰネットワークに接続された端末を識別するためのＩＤとして用いられる。
【０００７】
特許文献４は、ポート番号を用いてＩＰアドレスを共有するための装置を開示する。ＩＰアドレスを共有するための装置は、ＩＰアドレスの浪費を防ぎ、かつ、ＴＣＰＡＪＤＰ／ＩＰヘッダ内に含まれるポート番号を用いて速度を向上させるために提供される。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】米国特許第７７８２８７８号明細書
【特許文献２】米国特許出願第２００９／０１０６４０４号明細書
【特許文献３】米国特許第７４４７８０４２号明細書
【特許文献４】韓国公開特許第２００２−００７４７７Ａ２号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記の従来技術のいずれも、複数の仮想マシンにわたって単一のＩＰアドレスをどのように共有するかという問題を克服するものではない。
【課題を解決するための手段】
【００１０】
本明細書における開示及び特許請求の範囲は、外部ネットワーク・アドレス空間上で同じＩＰアドレスが一括して割り当てられる複数の仮想マシン（仮想コンピュータ）に向けられる。この仮想マシンは、１つ又は複数の物理ホスト・コンピュータ・システム上に存在する。仮想ネットワーク・マネージャは、ホスト・コンピュータ上の物理インターフェースからのネットワーク・トラフィックを処理し、宛先ポート番号に基づいて、ネットワーク・データを適切な仮想マシンに転送する。外部ネットワーク上のデータ・パケットはそれぞれ、宛先ポート番号及び送信元ポート番号を有する。仮想ネットワーク・マネージャは、各仮想マシンを着信データ・パケットの宛先ポート番号の範囲と関連付けるポート範囲テーブルを使用する。各々の仮想マシンにポート範囲テーブル内の一意の宛先ポート範囲が割り当てられ、データ・パッケトの宛先ポート番号に基づいて、外部ネットワーク上の着信データ・トラフィックが、受信側仮想マシンに経路指定される。
【００１１】
第１の態様から見ると、本発明は、プロセッサ及びメモリを有するホスト・コンピュータ・システムと、ホスト・コンピュータを外部ネットワークに接続する、単一のインターネット・プロトコルを有する物理インターフェースと、各々がメモリ内の仮想マシン番号を有する複数の仮想マシンと、物理インターフェース上で受け取られる、宛先ポート番号を有するデータ・パケットと、データ・パケットの宛先ポート番号に応じて、複数の可能マシンのうちの一意のものにデータ・パケットを転送するための仮想マシン・マネージャとを含む装置を提供する。
【００１２】
好ましくは、本発明は、複数のポート範囲及び各ポート範囲についての対応する仮想マシン番号を有するポート範囲テーブルをさらに含み、仮想ネットワーク・マネージャは、データ・パケットの宛先ポート番号を含むポート範囲に対応するポート範囲テーブル内に格納された仮想マシン番号を選択することによって、複数の仮想マシンのうちの一意のものの仮想マシン番号を判断する装置を含む。
【００１３】
好ましくは、本発明は、外部ネットワークからホスト・コンピュータを保護するファイアウォールをさらに含む装置を提供する。
【００１４】
好ましくは、本発明は、複数の仮想マシンが複数のホスト・コンピュータ・システム上に配置される装置を提供する。
【００１５】
好ましくは、本発明は、仮想ネットワーク・マネージャが仮想ネットワーク上でデータ・パケットを仮想マシンに転送する装置を提供する。
【００１６】
好ましくは、本発明は、データ・パケットが、ＴＣＰ（通信制御プロトコル）及びユーザ・データグラム・プロトコル（ＵＤＰ）から選択されるプロトコルに準拠する装置を提供する。
【００１７】
好ましくは、本発明は、仮想マシンの一時ポートが、仮想マシンに割り当てられたポート範囲テーブル内のポート番号を用いるように構成される装置を提供する。
【００１８】
第２の態様から見ると、本発明は、単一のインターネット・プロトコル（ＩＰ）アドレスを有するように複数の仮想マシンを構成するステップと、複数のポート範囲及び各ポート範囲についての対応する仮想マシン番号を有するポート範囲テーブルを有するように仮想ネットワーク・マネージャを構成するステップと、データ・パケット内の宛先ポート番号に基づいて、物理インターフェースからの着信データ・パケットを複数の仮想マシンのうちの一意のものに経路指定するステップとを含む、ホスト・コンピュータ・システム上でデータを仮想マシンに送る方法を提供する。
【００１９】
好ましくは、本発明は、方法のステップが、コンピュータ・メモリ内に格納され、コンピュータ・プロセッサによって実行されるコンピュータ・ソフトウェア・プログラムの形で実装される方法を提供する。
【００２０】
好ましくは、本発明は、着信データ・パケットを経路指定するステップが、データ・パケット内の宛先ポート番号を含むポート範囲テーブル内のポート範囲に対応する仮想マシン番号を判断し、判断した仮想マシン番号を有する一意のものの仮想マシンにデータ・パケットを経路指定するステップをさらに含む方法を提供する。
【００２１】
好ましくは、本発明は、着信パケットがファイアウォールによって許可されない場合、着信パケットを破棄するステップと、パケットがＴＣＰ（通信制御プロトコル）及びユーザ・データグラム・プロトコル（ＵＤＰ）から選択されたプロトコルに準拠しない場合、着信パケットを返すステップと、仮想マシンに割り当てられたポート範囲テーブル内のポート番号を用いるように仮想マシンの一時ポートを構成するステップとをさらに含む方法を提供する。
【００２２】
好ましくは、本発明は、仮想ネットワーク・マネージャが、仮想ネットワーク上でデータ・パケットを仮想マシンに転送する方法を提供する。
【００２３】
好ましくは、本発明は、複数の仮想マシンが複数のホスト・コンピュータ上に配置される方法を提供する。
【００２４】
第３の態様から見ると、本発明は、単一のインターネット・プロトコル（ＩＰ）アドレスを有するように、少なくとも１つの物理ホスト・コンピュータ上に配置される複数の仮想マシンを構成するステップと、複数のポート範囲及び各ポート範囲についての対応する仮想マシン番号を有するポート範囲テーブルを有するように仮想ネットワーク・マネージャを構成するステップと、データ・パケットの宛先ポート番号を含むポート範囲テーブル内のポート範囲に対応する仮想マシン番号を判断し、判断した仮想マシン番号を有する一意のものの仮想マシンにデータ・パケットを経路指定することによって、データ・パケットの宛先ポート番号に基づいて、複数の仮想マシンのうちの一意のものに物理インターフェースからの着信データ・パケットを経路指定するステップと、着信パケットがファイアウォールによって許可されない場合、着信パケットを破棄するステップと、パケットがＴＣＰ（通信制御プロトコル）及びユーザ・データグラム・プロトコル（ＵＤＰ）から選択されるプロトコルに準拠しない場合、着信パケットを返すステップと、仮想マシンに割り当てられたポート範囲テーブル内のポート番号を用いるように仮想マシンの一時ポートを構成するステップとを含み、データ・パケットは仮想ネットワーク上で経路指定され、方法のステップは、コンピュータ・メモリ内に格納され、コンピュータ・プロセッサによって実行されるコンピュータ・ソフトウェア・プログラムの形で実行される、データをホスト・コンピュータ上の仮想マシンに送る方法を提供する。
【００２５】
第４の態様から見ると、本発明は、有形のコンピュータ可読記憶媒体上に格納されたソフトウェアを含む製品を提供し、このソフトウェアは、データ・パケット内の宛先ポート番号に応じて、物理インターフェース上で受け取った宛先ポート番号を有するデータ・パケットを、複数の仮想マシンのうちの一意のものに転送する仮想ネットワーク・マネージャを含み、ここで、複数の仮想マシンは、ホスト・コンピュータを外部ネットワークに接続する、単一のインターネット・プロトコル（ＩＰ）アドレスを有する物理インターフェースを共有する。
【００２６】
好ましくは、本発明は、仮想ネットワーク・マネージャが、複数のポート範囲及び各ポート範囲についての対応する仮想マシン番号を有するポート範囲テーブルをさらに含む製品を提供し、ここで、仮想ネットワーク・マネージャは、データ・パケットの宛先ポート番号を含むポート範囲に対応するポート範囲テーブル内に格納された仮想マシン番号を選択することによって、複数の仮想マシンのうちの一意のものの仮想マシン番号を判断する。
【００２７】
好ましくは、本発明は、ファイアウォールが外部ネットワークからホスト・コンピュータを保護する、製品を提供する。
【００２８】
好ましくは、本発明は、複数の仮想マシンが複数のホスト・コンピュータ上に配置される、製品を提供する。
【００２９】
好ましくは、本発明は、仮想ネットワーク・マネージャが、仮想ネットワーク上でデータ・パケットを仮想マシンに転送する、製品を提供する。
【００３０】
好ましくは、本発明は、データ・パケットが、ＴＣＰ（通信制御プロトコル）及びユーザ・データグラム・プロトコル（ＵＤＰ）から選択されるプロトコルに準拠する、製品を提供する。
【００３１】
好ましくは、本発明は、仮想マシンの一時ポートが、仮想マシンに割り当てられたポート範囲テーブル内のポート番号を用いるように構成される、製品を提供する。
【００３２】
ここで本発明の好ましい実施形態を、添付図面を参照しながら、単なる例として説明する。
【図面の簡単な説明】
【００３３】
【図１】本発明の好ましい実施形態による、本明細書で説明されるように、複数の仮想コンピュータが単一のネットワークＩＰアドレスを用いるのを可能にするための、ポート範囲テーブルを用いる仮想ネットワーク・マネージャを有するコンピュータ・システムのブロック図である。
【図２】本発明の好ましい実施形態による、仮想ネットワーク・マネージャによって、どのように、データ・パケットが、ホスト・コンピュータ上に存在する複数の仮想マシンに経路指定されるかを示すブロック図である。
【図３】本発明の好ましい実施形態による、本明細書で説明されるネットワーク上で送られるデータ・パケットを表すブロック図である。
【図４】本発明の好ましい実施形態による、ポート範囲テーブルの一例を示すブロック図である。
【図５】本発明の好ましい実施形態による、同じＩＰアドレスを用いた複数の仮想マシンを有する複数の物理ホストを示す、図１と類似のブロック図である。
【図６】本発明の好ましい実施形態による、複数の仮想マシンの間で単一のＩＰアドレスを共有する方法のフロー図である。
【図７】本発明の好ましい実施形態による、図６のステップ６３０に従って、ポート範囲テーブルに基づいて着信データを複数の仮想マシンに経路指定する方法のフロー図の一例である。
【発明を実施するための形態】
【００３４】
本明細書で開示されるのは、複数の仮想マシンが外部ネットワーク・アドレス空間上で同じＩＰアドレスを共有するための装置及び方法である。仮想マシンは、１つ又は複数の物理ホスト・コンピュータ・システム上に存在する。仮想ネットワーク・マネージャが、ホスト・コンピュータ上の物理インターフェースからのネットワーク・トラフィックを処理し、宛先ポート番号に基づいて、ネットワーク・データを適切な仮想マシンに転送する。外部ネットワーク上のデータ・パケットはそれぞれ、宛先ポート番号及び送信元ポート番号を有する。仮想ネットワーク・マネージャは、各仮想マシンを着信データ・パケットについての宛先ポート番号の範囲と関連付けるポート範囲テーブルを用いる。仮想マシンの各々には、ポート範囲テーブル内の一意の宛先ポート範囲が割り当てられ、データ・パケット内の宛先ポート番号に基づいて、外部ネットワーク上の着信データ・トラフィックが、受信側仮想マシンに経路指定される。
【００３５】
図１を参照すると、コンピュータ・システム１００は、本明細書で説明される仮想ネットワーク・マネージャを含むコンピュータ・システムの１つの適切な実装形態である。コンピュータ・システム１００は、ＩＢＭ（登録商標）のｉオペレーティング・システム及びＬｉｎｕｘオペレーティング・システム（Ｌｉｎｕｘは、米国、他の国々、又はその両方におけるＬｉｎｕｓ  Ｔｏｒｖａｌｄｓの登録商標である）を含む複数のオペレーティング・システムを実行することができる、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐｏｒａｔｉｏｎ（ＩＢＭ（登録商標））Ｐｏｗｅｒ  Ｓｙｓｔｅｍである。しかしながら、当業者であれば、本明細書での開示は、外部ネットワークに接続することが可能ないずれのコンピュータ・システムにも等しく適用されることを認識するであろう。図１に示すように、コンピュータ・システム１００は、１つ又は複数のプロセッサ１１０、メイン・メモリ１２０、大容量ストレージ・インターフェース１３０、ディスプレイ・インターフェース１４０、ネットワーク・インターフェース１５０、及び複数のＩ／Ｏスロット１８０を含む。これらのシステム・コンポーネントは、システム・バス１６０を用いて相互接続される。大容量ストレージ・インターフェース１３０は、直接アクセス・ストレージ・デバイス１５５などの、コンピュータ可読媒体を有する大容量ストレージ・デバイス１５５をコンピュータ・システム１００に接続するのに用いられる。直接アクセス・ストレージ・デバイス１５５の１つの具体的なタイプは、ＣＤ−ＲＷ１９５との間でデータの格納及びデータの読み出しを行うことができる、読み出し及び書き込み可能ＣＤ−ＲＷドライブである。大容量ストレージ・インターフェース１３０、ディスプレイ・インターフェース１４０、及びネットワーク・インターフェース１５０は、実際には、Ｉ／Ｏスロット１８０に結合されたアダプタ内に実装できることに留意されたい。Ｉ／Ｏアダプタは、Ｉ／Ｏスロット１８０の１つに差し込まれる外部カード内に実装することができる１つの適切なネットワーク・インターフェース１５０である。さらに、モデムなどの他のＩ／ＯデバイスをＩ／Ｏスロット１８０の１つに差し込むこともできる。
【００３６】
メイン・メモリ１２０は、好ましくは、オペレーティング・システム１２１を含む。オペレーティング・システム１２１は、好ましくは、ＡＩＸ又はＬｉｎｕｘなどのマルチタスク型オペレーティング・システムであるが、当業者であれば、本開示の趣旨及び範囲は、いずれか１つのオペレーティング・システムに限定されるものではないことを認識するであろう。いずれの適切なオペレーティング・システムを用いることもできる。オペレーティング・システム１２１は、コンピュータ・システム１００のリソースを管理するための低レベル・コードを含む高度なプログラムである。これらのリソースの幾つかは、プロセッサ１１０、メイン・メモリ１２０、大容量ストレージ・インターフェース１３０、ディスプレイ・インターフェース１４０、ネットワーク・インターフェース１５０、システム・バス１６０、及びＩ／Ｏスロット１８０である。各々の仮想マシンもオペレーティング・システムを有することができる。各々の仮想マシン又はパーティション内のオペレーティング・システムは、仮想マシン内のオペレーティング・システムと同じであってもよく、又は完全に異なるオペレーティング・システムであってもよい。従って、１つの仮想マシンはＡＩＸオペレーティング・システムを実行することができる一方で、異なる仮想マシンは、場合によっては異なるリリースの又は異なる環境設定（例えば、時間ゾーン又は言語）を有するＡＩＸの別のインスタンスを実行することができる。このように、仮想マシンは、同じ物理コンピュータ・システム上に全く異なるコンピューティング環境をもたらすことができる。メモリは、ソフトウェア・アプリケーション１２２をさらに含む。メモリは、仮想ネットワーク・マネージャ１２３を含む。仮想ネットワーク・マネージャは、インターセプタ（遮断器）１２４、ミキサ１２５、及びポート範囲テーブル１２６を含む。メモリは、１つ又は複数の仮想マシン又はコンピュータ１２７も含む。メモリ内のこれらのエンティティの各々を以下でさらに説明する。
【００３７】
仮想マシン１２７は、メイン・メモリ１２０内に存在するように示されている。しかしながら、当業者であれば、仮想マシン（又は論理パーティション）は、メモリ以外のリソースを含む論理構成体であることを認識するであろう。仮想マシン１２７は、典型的には、プロセッサの能力、並びに、Ｉ／Ｏスロット１８０、及びＩ／Ｏスロット１８０内に存在し得るＩ／Ｏアダプタなどの他のシステム・リソースの割り当てに加えて、メモリの一部分を指定する。従って、１つの仮想マシンは、大容量ストレージ・インターフェース１３０、ディスプレイ・インターフェース１４０、ネットワーク・インターフェース１５０、又はＩ／Ｏアダプタ若しくはＩ／Ｏスロット１８０に差し込まれる他のデバイス（モデムなどの）へのインターフェースの機能を提供することができる、１つ又は複数のＩ／Ｏプロセッサと共に、２つのプロセッサ及びメモリ１２０の一部分を含むように定めることができる。次いで、別の仮想マシンは、３つの他のプロセッサ、メモリ１２０の別の部分、及び１つ又は複数のＩ／Ｏプロセッサを含むように定めることができる。仮想マシンは、コンピュータ・システム１００内のメモリ１２０の外部のシステム・リソースを含む、仮想マシン又は論理パーティションを記号によって表すように図１に示される。
【００３８】
コンピュータ・システム１００は、コンピュータ・システム１００のプログラムが、メイン・メモリ１２０及びＤＡＳＤデバイス１５５などの複数のより小容量のストレージ・エンティティにアクセスする代わりに、大容量の単一のストレージ・エンティティにアクセスするだけであるかのように振る舞うことを可能にする周知の仮想アドレス指定機構を用いる。従って、オペレーティング・システム１２１、アプリケーション１２２、仮想ネットワーク・マネージャ１２３及び仮想マシン１２７は、メイン・メモリ１２０内に存在するように示されるが、当業者であれば、これらのアイテムが、同時に必ずしも全て完全にメイン・メモリ１２０内に含まれるとは限らないことを認識するであろう。また、「仮想メモリ」という用語は、本明細書では、一般的に、コンピュータ・システム１００の仮想メモリ全体を指すのに用いられ、かつ、コンピュータ・システム１００に結合された他のコンピュータ・システムの仮想メモリを含むことができることにも留意すべきである。
【００３９】
プロセッサ１１０は、１つ又は複数のマイクロプロセッサ及び／又は集積回路から構築することができる。プロセッサ１１０は、メイン・メモリ１２０内に格納されたプログラム命令を実行する。メイン・メモリ１２０は、プログラムと、プロセッサ１１０がアクセスできるデータとを格納する。コンピュータ・システム１００が起動すると、プロセッサ１１０は、初めに、オペレーティング・システム１２１を構成するプログラム命令を実行し、その後、アプリケーション１２２及び仮想ネットワーク・マネージャ１２３を構成するプログラム命令を実行する。
【００４０】
コンピュータ・システム１００は、単一のプロッセサ及び単一のシステム・バスだけを含むように示されるが、当業者であれば、複数のプロセッサ及び／又は複数のバスを有するコンピュータ・システムを用いて仮想ネットワーク・マネージャを実行できることを理解するであろう。さらに、用いられるインターフェースはそれぞれ、プロセッサ１１０から数値計算処理をオフロードするのに用いられる、別個の完全にプログラムされたマイクロプロセッサを含むことが好ましい。しかしながら、当業者であれば、Ｉ／Ｏアダプタを用いて、これらの機能を同様に実行できることを理解するであろう。
【００４１】
ディスプレイ・インターフェース１４０は、１つ又は複数のディスプレイ１６５をコンピュータ・システム１００に直接接続するのに用いられる。これらのディスプレイ１６５は、非インテリジェント（すなわち、ダム）端末又は完全にプログラム可能なワークステーションとすることができ、システム管理者及びユーザにコンピュータ・システム１００と通信する能力を提供するために用いられる。しかしながら、ディスプレイ・インターフェース１４０は、１つ又は複数のディスプレイ１６５との通信をサポートするために提供されるが、ユーザ及び他のプロセスとの全ての必要な対話は、例えばウェブ・クライアント・ベースのユーザなど、ネットワーク・インターフェース１５０を介して行うことができるので、コンピュータ・システム１００は必ずしもディスプレイ１６５を必要としない。
【００４２】
ネットワーク・インターフェース１５０は、ネットワーク１７０を介して、コンピュータ・システム１００を他のコンピュータ・システム又はワークステーション１７５に接続するために用いられる。ネットワーク・インターフェース１５０は、ネットワーク１７０が今日のアナログ及び／又はデジタル技術を含むか又は将来の何らかのネットワーキング機構を介するかに関係なく、電子デバイスを相互接続するいずれかの適切な方法を広く表す。さらに、多くの異なるネットワーク・プロトコルを用いてネットワークを実装することができる。これらのプロトコルは、コンピュータがネットワークにわたって通信するのを可能にする専用コンピュータ・プログラムである。ＴＣＰ（Transmission Control Protocol、通信制御プロトコル）及びユーザ・データグラム・プロトコル（User Datagram Protocol、ＵＤＰ）は、適切なネットワーク・プロトコルの例である。
【００４３】
図２は、複数の仮想マシンが外部ネットワーク・アドレス空間上で同じＩＰアドレスを共有する、ホスト・コンピュータのブロック図を示す。図２のホスト・コンピュータ１００は、図１を参照して上述したホスト・コンピュータ又は類似のコンピュータ・システムである。ホスト・コンピュータ１００は、物理ネットワーク２１４によってネットワーク・クラウド２１２に接続される。ネットワーク・クラウドは、互いに接続された、ホスト・コンピュータ１００と通信するコンピュータの外部ネットワークを表す。ネットワーク・クラウド２１２内の他のコンピュータからのデータ通信は、ファイアウォール２１６を通じてホスト・コンピュータ１００に流れる。データは、異なるデータ・プロトコルに従って、データ・パケットの形でネットワーク２１４によってホスト・コンピュータに送られる。データ・パケットは、仮想ネットワーク・マネージャ１２３によって、ホスト・コンピュータ１００上に存在する複数の仮想マシン１２７Ａ、１２７Ｂに経路指定される。仮想ネットワーク・マネージャ１２３は、物理インターフェース２１８上でデータ・パケットを受け取り、次いで、仮想インターフェース２２０を用いて、データ・パケットを適切な仮想マシンに送る。仮想ネットワーク・マネージャは、着信データを管理するインターセプタ１２４と、発信データを管理するミキサ１２５とを有する。ミキサ１２５は、仮想マシン１２７Ａ、１２７Ｂから発信パケットを受け取り、それらを外部ネットワーク２１２に送る。インターセプタ１２４は、共有アドレスへの着信トラフィックを遮断し、ターゲット・ポートに応じて、それを、仮想インターフェースを介して宛先仮想マシンに送るか、又は、宛先ポートが割り当てられたポート範囲のいずれにも適合しない場合は、ホスト・ネットワーキング・スタックに戻す。インターセプタは、ポート範囲テーブル１２６を用いて、各データ・パケットをどこに送るかを決定する。インターセプタは、データ・パケット内の宛先ポート番号を調べ、そのデータ・パケットを、ポート範囲テーブル１２６によって決定されたような特定の宛先ポート番号を有するデータ・パケットを受信するように割り当てられた仮想マシンに送る。
【００４４】
図３は、外部ネットワーク上でのデータ通信のために用いられるデータ・パケットの非常に単純化した図を表すブロック図である。データ・パケットは、当技術分野において周知のＴＣＰ又はＵＤＰデータ・パケットとすることができる。データ・パケット３００は、ＩＰアドレス３１０及び宛先ポート番号３１２を含む。データ・パケットの他の要素３１４は、ここでは説明されないが当技術分野において周知のものである。
【００４５】
図４は、仮想ネットワーク・マネージャ１２３（図２）内のインターセプタ１２４（図２）により用いられるポート範囲テーブル１２６の１つの適切な実装を表すテーブルを示す。ポート範囲テーブル１２６は、好ましくは、メモリ、データ・ストレージ・デバイス、又はその両方に格納されたレコードのファイルである。ポート範囲テーブル１２６は、複数の宛先ポート範囲４１０と、各ポート範囲についての関連した仮想マシン４１２とを含む。ポート範囲４１０は、１つ又は複数の宛先ポート番号を定め、この宛先ポート番号は、データを対応する仮想マシン４１２に経路指定するために仮想ネットワーク・マネージャが使用する。示された例において、０−２５のポート範囲４１４は仮想マシン１  ４１６と関連付けられ、２６−８０のポート範囲４１８は仮想マシン２  ４２０と関連付けられる。ポート範囲テーブル１２６は、他の仮想マシン４２４と関連付けられた「その他」の範囲４２２で示されるような、任意の数の他のポート範囲を含むことができる。ポート範囲テーブル１２６は、本明細書で説明するように、ポート範囲と仮想マシンとの間の論理条件を示すように、任意の適切なフォーマットで格納することができる。ホスト・コンピュータ上のポート範囲全体を閉じて仮想マシンのパケット全体をディスエーブルにことができ、従って、ホスト上で仮想マシンを管理する際のシステム管理が簡単になる。
【００４６】
ＴＣＰ及びＵＤＰプロトコルにおいては、単一のＩＰアドレスは、限られた数の宛先ポートを有し、１つのＩＰアドレスを使用するとき、通常、ポート番号が、アプリケーション間で重複することはない。１つのＩＰアドレスは、仮想マシン上の１つだけのアプリケーションが、特定のポートへの通信のレシーバとなることを可能にし得る。例えば、本明細書で説明されるように、１つだけの仮想マシンが、１つだけのＩＰアドレスが存在する通信のために、ＴＣＰポート２１を使用することができる。仮想マシン可視のアドレス空間が外部ネットワーク・アドレス空間に属するのを可能にすることによって、仮想マシンのアドレス空間が、ピアツーピア・プロトコル及びボイス・オーバー・ＩＰプロトコルを含む全てのプロトコルに対してトランスペアレントになる。
【００４７】
ミキサ１２５及びインターセプタ１２４の両方とも、ホスト・ファイアウォール２１６の後方に配置されるので、仮想マシンを外的脅威から保護する。ホスト・システム及びクライアント・システムのためのファイアウォールは変わらないままとすることができる。共有ＩＰアドレスはホストには「ローカル」と見られるので、ホストは、いずれのパケット・ルールも、それがローカル・ルールであり、それをローカル・アプリケーションに対して指示するかのように扱う。１つだけのＩＰアドレスが用いられるので、二次的ファイアウォール又はルール・セットは必要ない。
【００４８】
上述の好ましい例において、全ての仮想マシンは、ネットワーク・インターフェース上で同じＩＰアドレスを使用するように構成される。各々の仮想マシンには、１又は複数の不連続の範囲から成ることができる一意のポート範囲が割り当てられる。着信ＴＣＰ又はＵＤＰパケットを受け入れる全てのアプリケーションは、それらが唯一の既知の着信／発信ポートであるので、割り当てられた範囲からのポートだけを使用するように構成される。仮想マシンのオペレーティング・システムは、割り当てられた範囲からの一時ポート（ephemeral port）を使用するように構成することができる。一時ポートは、ＴＣＰ及びＵＤＰパケットを発信する際の一時的なポートとして使用される。仮想マシンは、ポート範囲テーブル内の、仮想マシンに割り当てられたのと同じポート範囲内で発信メッセージについての送信元ポートを割り当てるので、返信メッセージが適切な仮想マシンに返される。ホストは、仮想マシンに割り当てられた共有ＩＰアドレスに送られたパケットを遮断し、パケット宛先ポート番号に基づいてこれを宛先マシンに転送するように構成される。全ての発信パケットは、典型的には、修正されずに外部ネットワークに伝送される。ホストも共有ＩＰアドレスを用いる場合には、一意のポート範囲がホストに割り当てられる。この場合、ホストは、この範囲からの恒久的ポート及び一時ポートを割り当てる。ホストが受け取った、共有アドレスへのパケットは、インターセプタによって遮断され、仮想マシンに向けられる。ホストが共有ＩＰを使用する場合、仮想マシンのポート範囲の１つに合致しない全てのパケットが、ホスト・ネットワーキング・スタックに返される。
【００４９】
図５は、外部ネットワーク・アドレス空間上で同じＩＰアドレスを共有する複数の仮想マシンを有するコンピュータ・システムのブロック図を示す。図５のコンピュータ・システムは、図２に示されるシステムと類似しているが、システムをどのように複数の物理ホスト・コンピュータに拡大縮小できるかの一例を示している。図５において、ホスト・コンピュータ５１０Ａは、図２に説明されるホスト・コンピュータ１００と同様に仮想ネットワーク・マネージャ１２３を有する。図２のシステムとは対照的に、図５の仮想ネットワーク・マネージャ１２３は、１つ又は複数の他のホスト上に存在する仮想マシンと通信する。示される例において、仮想ネットワーク・マネージャ１２３は、データ・パケットをホストＢ  ５１０Ｂ上の仮想マシンＡ  １２５Ａ及び仮想マシンＢ  １２５Ｂ、並びにホストＣ  ５１０Ｃ上の仮想マシンＣ  １２５Ｃ及び仮想マシンＤ  １２５Ｄに送る。この場合、仮想ネットワーク・マネージャは、異なる物理ホスト・コンピュータ上の仮想マシンへの通信を、ホスト・コンピュータ５１０Ａ、５１０Ｂ、５１０Ｃの間の仮想ネットワークではなく、物理ネットワーク５１２上で処理する。他のホスト・コンピュータ上の仮想マシンへの接続には、任意の適切な物理ネットワーク接続を用いることができる。このアーキテクチャにより、ＩＰアドレスを変更せずに、仮想マシンが異なる物理ホストに移動することが可能になる。
【００５０】
図６は、ここで特許請求されるような、外部ネットワーク上の同じＩＰアドレスを複数の仮想マシンに割り当てる方法６００を示す。方法６００のステップは、好ましくは、仮想ネットワーク・マネージャ１２３（図１）によって実行されるが、方法の一部は、コンピュータ・システムと関連した他のソフトウェアにより、又はシステム管理者により実行することもできる。初めに、単一のＩＰアドレスを用いるように複数の仮想マシンを構成する（ステップ６１０）。次に、各仮想マシンについてのポート範囲を有するようにポート範囲テーブルを構成する（ステップ６２０）。次いで、ポート範囲テーブル内の仮想マシンについての割り当てられたポート範囲の送信元ポート番号を用いるように、仮想マシンの各々の一時ポートを構成する（ステップ６３０）。次に、データ・パケットの宛先ポート番号に基づいて、物理インターフェース上の着信データを複数の仮想マシンに経路指定する（ステップ６４０）。その後、方法は終了する。
【００５１】
図７は、ポート範囲テーブルに基づいて、物理インターフェース上のデータを複数の仮想マシンに経路指定する方法６３０を示す。方法６３０は、前の段落で説明した例における図６のステップ６３０を実行する一例である。方法６００のステップは、好ましくは、仮想ネットワーク・マネージャ１２３（図１）によって実行されるが、方法の一部分は、コンピュータ・システムと関連した他のソフトウェアによって実行することもできる。方法６３０は、物理インターフェース上の新しい着信データ・パケットの各々について実行される（ステップ７１０）。次に、ファイアウォールによってデータ・パケットが検査される（ステップ７２０）。データ・パケットがファイアウォールにより許可されない場合（ステップ７２０＝ノー）、データ・パケットは破棄され（ステップ７３０）、方法はステップ７１０に戻る。データ・パケットがファイアウォールにより許可された場合（ステップ７２０＝イエス）、データ・パケットがＴＣＰプロトコル又はＵＤＰプロトコルに準拠するかどうかをチェックする（ステップ７４０）。データ・パケットがＴＣＰプロトコル又はＵＤＰプロトコルに準拠しない場合（ステップ７４０＝ノー）、パケットを返し（ステップ７５０）、ステップ７１０に戻る。データ・パケットがＴＣＰプロトコル又はＵＤＰプロトコルに準拠する場合（ステップ７４０＝イエス）、パケットの宛先ポート番号が、ポート範囲テーブルの仮想マシンについてのポート範囲内の宛先ポート番号と合致するかどうかを判断する。パケットの宛先ポート番号が、ポート範囲テーブルの宛先ポート番号と合致しない場合（ステップ７６０＝ノー）、そのパケットを返し（ステップ７５０）、ステップ７１０に戻る。パケットの宛先ポート番号が、ポート範囲テーブル内の宛先ポート番号と合致する場合（ステップ７６０＝イエス）、データ・パケット内の宛先ポート番号に応じて、データ・パケットを仮想マシンのうちの一意のものに転送し（ステップ７７０）、ステップ７１０に戻る。上述の実施形態において、パケットを転送するための一意の仮想マシンの仮想マシン番号は、データ・パケット内の宛先ポート番号を含むポート範囲に対応する、ポート範囲テーブル内に格納された仮想マシン番号を選択することによって決定される。
【００５２】
図面内の流れ図及びブロック図は、本発明の種々の実施形態によるシステム、方法、及びコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、及び動作を示す。この点で、流れ図又はブロック図の中の各ブロックは、特定の１つ又は複数の論理機能を実装するための１つ又は複数の実行可能命令を含む、モジュール、セグメント、又はコードの一部を表すことができる。幾つかの代替的な実装においては、ブロックに記載された機能が図に示された順序通りに行われない場合があることにも留意すべきである。例えば、逐次的に示された２つのブロックは、関与する機能に応じて、実際には、実質的に同時に実行されることもあり、ときにはブロックが逆順に実行されることもある。ブロック図及び／又は流れ図の各ブロック、及び、ブロック図及び／又は流れ図におけるブロックの組み合わせは、指定された機能又は動作を行う専用ハードウェアに基づくシステムによって、又は専用ハードウェアとコンピュータ命令との組み合わせによって、実装できることにも留意されたい。
【００５３】
当業者には認識されるように、本発明の態様は、システム、方法又はコンピュータ・プログラム製品として具体化することができる。従って、本発明の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロ・コード等を含む）、又はソフトウェアの態様とハードウェアの態様とを組み合わせた実施形態の形を取ることができ、本明細書においては、これらを全て、一般的に、「回路」、「モジュール」又は「システム」と呼ぶことがある。さらに、本発明の態様は、媒体内に具体化されたコンピュータ可読プログラム・コードを有する、１つ又は複数のコンピュータ可読媒体内に具体化されたコンピュータ・プログラム製品の形を取ることができる。
【００５４】
１つ又は複数のコンピュータ可読媒体のいずれの組み合わせも利用することができる。コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読ストレージ媒体とすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子的、磁気的、光学的、電磁気的、赤外線若しくは半導体のシステム、装置若しくはデバイス、又は上記のもののいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例（非網羅的なリスト）として、以下のもの、即ち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能なプログラム可能読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク型読み出し専用メモリ（ＣＤ−ＲＯＭ）、光記憶装置、磁気記憶装置、又は上記のもののいずれかの適切な組み合わせが挙げられる。本明細書の文脈においては、コンピュータ可読ストレージ媒体は、命令実行システム、装置若しくはデバイスによって又はそれらと関連して用いるためのプログラムを収容又は格納することが可能な、いずれかの有形媒体とすることができる。コンピュータ可読信号媒体は、コンピュータ可読プログラム・コードが、例えばベースバンド内に、又は搬送波の一部としてその中に具体化された、伝搬データ信号を含むことができる。このような伝搬信号は、これらに限定されるものではないが、電磁気、光、又はこれらのいずれかの適切な組み合わせを含む、種々の異なる形態のいずれかを取ることができる。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではなく、かつ、命令実行システム、装置若しくはデバイスによって又はこれらと関連して用いるためのプログラムを通信し、伝搬し又は搬送することができる、任意のコンピュータ可読媒体とすることができる。コンピュータ可読媒体上に具体化されたプログラム・コードは、これらに限定されるものではないが、無線、有線、光ファイバ・ケーブル、ＲＦ等、又は上記のもののいずれかの適切な組み合わせを含む、任意の適切な媒体を用いて伝送することができる。
【００５５】
本発明の態様のための動作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ（Ｊａｖａ並びに全てのＪａｖａベースの商標及びロゴは、Ｏｒａｃｌｅ及び／又はその子会社の商標又は登録商標である）、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋等のようなオブジェクト指向型プログラミング言語、及び「Ｃ」プログラミング言語又は同様のプログラミング言語のような従来の手続き型プログラミング言語を含む、１つ又は複数のプログラミング言語のいずれかの組み合わせで記述することができる。プログラム・コードは、完全にユーザのコンピュータ上で実行されるか、一部がユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして実行されるか、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行されるか、又は完全に遠隔コンピュータ若しくはサーバ上で実行される場合がある。後者のシナリオにおいては、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）若しくは広域ネットワーク（ＷＡＮ）を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続されるか、又は、（例えば、インターネット・サービス・プロバイダを用いたインターネットを通じて）外部コンピュータへの接続がなされる場合がある。本発明の態様は、本発明の実施形態による方法、装置（システム）及びコンピュータ・プログラム製品の流れ図及び／又はブロック図を参照して以下で説明される。流れ図及び／又はブロック図の各ブロック、及び、流れ図及び／又はブロック図におけるブロックの組み合わせは、コンピュータ・プログラム命令によって実装することができることが理解されるであろう。これらのコンピュータ・プログラム命令を汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを生成し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、流れ図及び／又はブロック図の１つ又は複数のブロック内で指定された機能／動作を実装するための手段を生成するようにすることができる。これらのコンピュータ命令を、コンピュータ、他のプログラム可能データ処理装置、又はその他のデバイスを特定の方法で機能するように命令することができるコンピュータ可読媒体に格納し、それにより、そのコンピュータ可読媒体に格納された命令が、流れ図及び／又はブロック図の１つ又は複数のブロック内で指定された機能／動作を実装する命令を含む製品を生成するようにすることもできる。コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又はその他のデバイスにロードして、コンピュータ、他のプログラム可能データ処理装置、又はその他のデバイス上で一連の動作ステップを行わせて、コンピュータ実装プロセスを生成し、それにより、コンピュータ又は他のプログラム可能装置上で実行される命令が、流れ図及び／又はブロック図の１つ又は複数のブロック内で指定された機能／動作を実行するためのプロセスを提供するようにすることもできる。
【００５６】
当業者であれば、特許請求項の範囲内で多くの変形が可能であることを認識するであろう。本明細書での例は時間に関して説明されるが、これらの他のタイプの閾値が、特許請求の範囲内に含まれることが明らかに意図されている。従って、本開示が上記に特に示され、述べられるが、当業者であれば、特許請求の範囲から逸脱することなく、これら及び他の形態及び細部の変更を成し得ることを理解するであろう。
【符号の説明】
【００５７】
１００：コンピュータ・システム
１１０：プロセッサ
１２０：メイン・メモリ
１２１：オペレーティング・システム
１２２：ソフトウェア・アプリケーション
１２３：仮想ネットワーク・マネージャ
１２４：インターセプタ
１２５：ミキサ
１２５Ａ：仮想マシンＡ
１２５Ｂ：仮想マシンＢ
１２５Ｃ：仮想マシンＣ
１２５Ｄ：仮想マシンＤ
１２６：ポート範囲テーブル
１２７、１２７Ａ、１２７Ｂ、４１２、４１６、４２０、４２４：仮想マシン
１３０：大容量ストレージ・インターフェース
１４０：ディスプレイ・インターフェース
１５０：ネットワーク・インターフェース
１５５：直接アクセス・ストレージ・デバイス
１６０：システム・バス
１６５：ディスプレイ
１７０：ネットワーク
１７５：ワークステーション
１８０：Ｉ／Ｏスロット
１９５：ＣＤ−ＲＷ
２１２：ネットワーク・クラウド（外部ネットワーク）
２１４：物理ネットワーク
２１６：ファイアウォール
２１８：物理インターフェース
２２０：仮想インターフェース
３００：データ・パケット
３１０：ＩＰアドレス
３１２：宛先ポート番号
３１４：他の要素
４１０、４１４、４１８、４２０：ポート範囲
５１０Ａ：ホスト・コンピュータＡ
５１０Ｂ：ホスト・コンピュータＢ
５１０Ｃ：ホスト・コンピュータＣ
５１２：物理ネットワーク
【図１】
0005643431.tif 000002
【図２】
0005643431.tif 000003
【図３】
0005643431.tif 000004
【図４】
0005643431.tif 000005
【図５】
0005643431.tif 000006
【図６】
0005643431.tif 000007
【図７】
0005643431.tif 000008