(57)【要約】      （修正有）【課題】異なるプライベートネットワーク内の複数のホストがネットワーク通信可能となる、ルーティング装置を提供する。【解決手段】第１のネットワークインターフェース装置はルーティング装置をローカルプライベートネットワークへ接続する。第２のネットワークインターフェース装置はルーティング装置をインターネットへ接続する。処理装置は、リモートプライベートネットワーク内のリモートホスト用のリモートルーティング装置に仮想サブネットを割り当てて、仮想サブネットに基づいて仮想インターネットプロトコル（ＩＰ）アドレスを取得する。処理装置は、ローカルプライベートネットワーク内のローカルホストから第１のネットワークインターフェース装置経由でネットワークパケットを受信し、リモートルーティング装置のパブリックＩＰアドレスに基づいてネットワークパケットをカプセル化して代替パケットを生成する。【選択図】図３
2013247678.tif 000002
【特許請求の範囲】
【請求項１】
ルーティング装置をローカルプライベートネットワークに接続するように構成した第１のネットワークインターフェース装置と、
前記ルーティング装置をインターネットに接続するように構成した第２のネットワークインターフェース装置と、
前記第１のインターフェース装置および前記第２のインターフェース装置に接続され、リモートプライベートネットワーク内の少なくとも１つのリモートホスト用のリモートルーティング装置に仮想サブネットを割り当てて該仮想サブネットに基づいて少なくとも１つの仮想インターネットプロトコル（ＩＰ）アドレスを取得するように構成した処理装置と、を備えたルーティング装置において、
前記第１のプライベートネットワーク内の第１のローカルホストが前記リモートプライベートネットワーク内の対象リモートホストに第１のネットワークパケットを送信すると、前記処理装置は、前記第１のネットワークインターフェース装置経由で前記第１のネットワークパケットを受信し、前記リモートルーティング装置のパブリックＩＰアドレスに基づいて前記第１のネットワークパケットをカプセル化して第１の代替パケットを生成し、前記第２のネットワークインターフェース装置経由で前記第１の代替パケットをインターネットに配信すること、および
前記第１の代替パケットは、前記第１のネットワークパケットを含み、前記第１のネットワークパケットの送信先ＩＰアドレスは、前記対象リモートホストの前記仮想ＩＰアドレスであること、を特徴とするルーティング装置。
【請求項２】
前記処理装置は少なくとも１つのリモートルーティング装置に少なくとも１つの仮想サブネットをさらに割り当てること、および
前記少なくとも１つのリモートルーティング装置に割り当てた前記少なくとも１つの仮想サブネットは互いに異なるものであること、を特徴とする請求項１に記載のルーティング装置。
【請求項３】
ビットマップテーブルを格納するように構成した記憶装置をさらに備え、
前記処理装置はＩＰアドレス交渉プロセスを行うように構成され、該ＩＰアドレス交渉プロセスの間に、前記処理装置は割り当てられていない少なくとも１つの仮想サブネット候補を前記ビットマップテーブルから取得し、前記少なくとも１つの仮想サブネット候補から仮想サブネットを選択し、該仮想サブネットをリモートルーティング装置に割り当て、該仮想サブネットをビットマップテーブルに記録し、該仮想サブネットを前記リモートルーティング装置に割り当て済みとしてマークすること、を特徴とする請求項１〜２のルーティング装置。
【請求項４】
前記ビットマップテーブルは、少なくとも１つの行と少なくとも１つの列を含む二次元配列で構成され、前記少なくとも１つの行および前記少なくとも１つの列は、仮想サブネットの２つの桁に対応し、前記二次元配列における前記２つの桁に対応する少なくとも１つの交点に前記仮想サブネットの使用状態をマークすること、を特徴とする、
請求項３に記載のルーティング装置。
【請求項５】
処理装置は、割り当てられていない前記仮想サブネットを第１の識別コードを用いて前記ビットマップテーブルにマークし、前記ルーティング装置が所有する仮想サブネットを第２の識別コードを用いて前記ビットマップテーブルにマークし、前記割り当てた前記仮想サブネット候補を第３の識別コードを用いて前記ビットマップテーブルにマークすること、特徴とする請求項３および４に記載のルーティング装置。
【請求項６】
前記ビットマップテーブルは２５５行２５５列で構成したことを特徴とする、請求項３乃至５に記載のルーティング装置。
【請求項７】
前記処理装置は、前記ローカルプライベートネットワーク内の前記第１のローカルホストにローカル仮想ＩＰアドレスを割り当て、前記ローカル仮想ＩＰアドレスを前記第１のネットワークパケットの送信元ＩＰアドレスとして設定し、前記第１の代替パケットを生成したら前記第１の代替パケットを前記第２のネットワークインターフェース装置経由で前記リモートルーティング装置に送信して、前記対象ホストに前記第１の代替パケットをリレーすること、を特徴とする請求項１乃至６に記載のルーティング装置。
【請求項８】
前記第２のネットワークインターフェース装置が第２の代替パケットを受信すると、前記処理装置は前記第２の代替パケットを非カプセル化して該第２の代替パケットから第２のネットワークパケットを取得し、前記第２のネットワークパケットの前記送信先ＩＰアドレスに基づいて前記第２のネットワークパケットの送信先ＩＰアドレスに対応するプライベートＩＰアドレスを特定し、前記プライベートＩＰアドレスに対応する第２のローカルホストに前記第２のネットワークパケットを前記第１のインターフェース装置経由でリレーすること、を特徴とする請求項７に記載のルーティング装置。
【請求項９】
前記処理装置は、前記第２のネットワークインターフェース装置ユニット経由で前記リモートルーティング装置へのピアツーピア接続を確立しようとし、前記ピアツーピア接続が正常に確立したかを判断し、前記ピアツーピア接続が正常に確立されていない場合は前記第２のネットワークインターフェース装置経由で前記ルーティング装置の第１のパブリックＩＰアドレスおよび第１のパブリックポート番号をユーザデータグラムプロトコル（ＵＤＰ）サーバを介して前記リモートルーティング装置に配信して前記リモートルーティング装置の第２のパブリックＩＰアドレスおよび第２のパブリックポート番号を取得すること、を特徴とする請求項１乃至８に記載のルーティング装置。
【請求項１０】
前記処理装置は、前記第１のネットワークパケットのＩＰヘッダにある前記対象リモートホストが取得した前記仮想ＩＰアドレスに基づいて、前記仮想ＩＰアドレスに対応する前記リモートルーティング装置の前記第２のパブリックＩＰアドレスおよび前記第２のパブリックポート番号を特定し、前記第１のパブリックＩＰアドレスおよび前記第２のパブリックアドレスを前記第１の代替パケットのＩＰヘッダにカプセル化し、前記第１のパブリックポート番号および前記第２のパブリックポート番号を前記第１の代替パケットのＵＤＰヘッダにカプセル化すること、を特徴とする請求項９に記載のルーティング装置。
【請求項１１】
前記処理装置は前記第１のネットワークパケットを前記第１の代替パケットのＵＤＰペイロードとして利用すること、を特徴とする請求項１０に記載のルーティング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク通信技術に関する。特に、本発明はルーティング装置に関する。
【背景技術】
【０００２】
インターネットの急速な普及に伴い、インターネットプロトコルバージョン４（ＩＰｖ４）のアーキテクチャ下のネットワークユーザの急速な増加によりパブリックインターネットプロトコルアドレス（パブリックＩＰアドレス）の数が不足している。したがって、プライベートネットワーク、企業イントラネット、または仮想プライベートネットワークの構想が提案されて以来、プライベートネットワークは近年あらゆる組織および機関によって広く利用されている。
【０００３】
一般に、プライベートネットワークにおいて、ホストは、カスタマイズしたプライベートインターネットプロトコルアドレス（プライベートＩＰアドレス）により互いに通信を行うことができる。ここで、一般的なプライベートＩＰアドレスの例として、例えば、最初の２桁が「１９２．１６８」であるＩＰアドレス（例えば、１９２．１６８．１．１０１）または最初の１桁が「１０」であるＩＰアドレス（例えば、１０．１．２．３）等を挙げることができる。外部との通信においては、プライベートネットワーク内の各ホストは、ネットワークアドレストランスレーション（ＮＡＴ）機能を有するＮＡＴサーバまたはルータ経由で、同じパブリックＩＰアドレスを用いてインターネットに容易に接続できる。
【０００４】
例えば、図１は従来技術による複数のプライベートネットワークからなるネットワークアーキテクチャを示す模式図である。図１を参照すると、プライベートネットワーク１００〜１２０はそれぞれ、ルーティング装置１０〜１２およびホスト１０１〜１０３、１１１〜１１３、および１２１〜１２３によって構成され、各ルーティング装置１０〜１２は、各プライベートネットワーク１００〜１２０からインターネット１３０へ送信されるネットワークパケットまたはインターネット１３０から各プライベートネットワーク１００〜１２０へ送信されるネットワークパケットについて、それぞれＮＡＴ作業を行う。
【０００５】
例えば、プライベートネットワーク１００のホスト１０１がインターネット１３０へネットワークパケットを送信しようとする場合、ネットワークパケットがルーティング装置１０を通過すると、ルーティング装置１０は当該ネットワークパケットの送信元ＩＰアドレスおよび送信元ポート番号を、ホスト１０１が使用するプライベートＩＰアドレス（例えば、１９２．１６８．１．１０１）およびプライベートポート番号（例えば、２５４１３０）からルーティング装置の外部ネットワークインターフェースカード（ＮＩＣ）が使用するパブリックＩＰアドレス（例えば、５９．１２０．ｘ．ｘ）およびパブリックポート番号（例えば、５８１２）へそれぞれ変換し、パブリックポート番号（例えば５８１２）に対応するホスト１０１のプライベートポート番号（例えば、２５４１３０）およびプライベートＩＰアドレス（例えば、１９２．１６８．１．１０１）を指標値とともに記録し、その後ネットワークパケットをインターネット１３０に送信する。
【０００６】
したがって、ルーティング装置１０がインターネット１３０からネットワークパケットを受信すると、ルーティング装置１０は、ネットワークパケットにあるパブリックポート番号（例えば、５８１２）に基づいて対応する指標値を特定し、プライベートＩＰアドレス（例えば、１９２．１６８．１．１０１）およびプライベートポート番号（例えば、２５４１３０）を取得して、ネットワークパケットをホスト１０１へリレーする。
【０００７】
上記のＮＡＴ方法によれば、プライベートネットワークとインターネットとの間でネットワークパケットが送信可能となるが、複数のプライベートネットワーク間でネットワークパケットを送信するには一層の改善を要する。すなわち、図１を例として参照すると、ホスト１０１がネットワークパケットをホスト１１１に送信しようとする場合、ルーティング装置１０はホスト１１１を特定できない場合がある（これは、ホスト２０１がパブリックＩＰアドレスではなくプライベートＩＰアドレスを使用しているためである）。したがって、いかにして複数のプライベートネットワーク内の各ホストを互いに通信可能とするかは、本分野における検討および開発を要する課題である。
【発明の概要】
【０００８】
第１のネットワークインターフェース装置と、第２のネットワークインターフェース装置と、処理装置とを備えたルーティング装置を提供する。第１のネットワークインターフェース装置は、ルーティング装置をローカルプライベートネットワークに接続する。第２のネットワークインターフェース装置は、ルーティング装置をインターネットに接続する。処理装置はリモートプライベートネットワーク内のリモートホスト用のリモートルーティング装置に仮想サブネットを割り当てて、仮想サブネットに基づいて少なくとも１つの仮想インターネットプロトコル（ＩＰ）アドレスを取得する。処理装置はローカルプライベートネットワーク内のローカルホストから第１のネットワークインターフェース装置経由でネットワークパケットを受信し、リモートルーティング装置のパブリックＩＰアドレスにお基づいてネットワークパケットをカプセル化して代替パケットを生成する。そして、処理装置は第２ネットワークインターフェース経由で代替パケットをインターネットに配信する。
【発明が解決しようとする課題】
【０００９】
本発明は、仮想ＩＰアドレスを用いることにより、異なるプライベートネットワーク内の複数のホストがネットワーク通信可能となる、ルーティング装置を提案する。
【課題を解決するための手段】
【００１０】
本発明は、第１のネットワークインターフェース装置と、第２のネットワークインターフェース装置と、記憶装置と、処理装置とを備えたルーティング装置を提供する。第１のネットワークインターフェース装置は、ルーティング装置をローカルプライベートネットワークに接続するように構成される。第２のネットワークインターフェース装置は、ルーティング装置をインターネットに接続するように構成される。処理装置は第１のネットワークインターフェース装置および第２のネットワークインターフェース装置に接続され、リモートプライベートネットワーク内の少なくとも１つのリモートホスト用のリモートルーティング装置に仮想サブネットを割り当てて、仮想サブネットに基づいて少なくとも１つの仮想インターネットプロトコル（ＩＰ）アドレスを取得するように構成される。ローカルプライベートネットワーク内の第１のローカルホストが第１のネットワークパケットをリモートプライベートネットワーク内の対象リモートホストに送信すると、処理装置はこの第１のネットワークパケットを第１のネットワークインターフェース装置経由で受信し、リモートルーティング装置のパブリックＩＰアドレスおよびパブリックポート番号に基づいてこの第１のネットワークパケットをカプセル化して第１の代替パケットを生成する。次に、処理装置は第２のネットワークインターフェース装置経由で代替パケットをインターネットに配信するが、この代替パケットは第１のネットワークパケットを含み、第１のネットワークパケットの送信先ＩＰアドレスは対象リモートホストの仮想ＩＰアドレスである。
【発明の効果】
【００１１】
したがって、異なるプライベートネットワーク内の複数のホストは、それぞれ、割り当てられた仮想ＩＰアドレスを使用することによりネットワーク通信を行うことができる。
【図面の簡単な説明】
【００１２】
【図１】従来技術による、複数のプライベートネットワークからなるネットワークアーキテクチャを示す模式図である。
【図２】本発明の一実施形態による、インターネットを介して接続したローカルプライベートネットワークとリモートプライベートネットワークとを示す模式図である。
【図３】本発明の一実施形態によるルーティング装置を示す概略ブロック図である。
【図４】本発明の一実施形態によるビットマップテーブルを示す模式図である。
【図５】本発明の一実施形態による、ネットワークパケットをカプセル化することにより生成した代替パケットを示す模式図である。
【図６】本発明の別の実施形態による、インターネットを介して接続したローカルプライベートネットワークとリモートプライベートネットワークとを示す模式図である。
【図７】本発明の一実施形態による、仮想プライベートネットワーク通信方法を示すフローチャートである。
【図８】本発明の別の実施形態による、仮想プライベートネットワーク通信方法を示すフローチャートである。
【図９】本発明のさらに別の実施形態による、仮想プライベートネットワーク通信方法を示す図である。
【図１０】本発明のまたさらに別の実施形態による、仮想プライベートネットワーク通信方法を示すフローチャートである。
【発明を実施するための形態】
【００１３】
本発明は、仮想プライベートネットワーク通信方法および同方法を用いたルーティング装置に関し、各方法および装置を用いればローカルプライベートネットワーク内の各ローカルホストがリモートプライベートネットワーク内の各リモートホストとネットワーク通信を行うことができる。仮想プライベートネットワーク通信方法においては、異なる複数の仮想サブネットを適切に管理してローカルルーティング装置およびリモートルーティング装置に割り当てて、ローカルプライベートネットワークおよび少なくとも１つのリモートプライベートネットワークにおいて各仮想サブネットを繰り返し使用しないようにすることで、ローカルルーティング装置およびリモートルーティング装置により仮想プライベートネットワークを形成することができる。したがって、ローカルプライベートネットワーク内のローカルホストおよびリモートプライベートネットワーク内のリモートホストは、それぞれに割り当てられた仮想ＩＰアドレスに基づいて、異なるプライベートネットワーク間におけるネットワークパケット通信を行うことができる。
【００１４】
図２は、本発明の一実施形態による、インターネットを介して接続したローカルプライベートネットワークとリモートプライベートネットワークとを示す模式図である。図３は、本発明の一実施形態によるルーティング装置を示す概略ブロック図である。
【００１５】
図２および図３を参照すると、ローカルルーティング装置２０は、第１のネットワークインターフェース装置２１、第２のネットワークインターフェース装置２２、記憶装置２３、および処理装置２４を備える。第１のネットワークインターフェース装置２１は、ローカルルーティング装置２０をローカルプライベートネットワーク２００に接続するように構成される。第２のネットワークインターフェース装置２２は、ローカルルーティング装置２０をインターネット１３０に接続するように構成される。本実施形態において、第１のネットワークインターフェース装置２１および第２のネットワークインターフェース装置２２はいずれも、例えば、ネットワークインターフェースカードとすることができる。なお、説明の便宜上、ローカルルーティング装置２０を例にとって本発明を説明するが、リモートルーティング装置３０の基本構造はローカルルーティング装置２０とほぼ同様であり、以下において関連する説明は省略する。
【００１６】
記憶装置２３はデータを格納するように構成される。記憶装置２３として、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、およびそれらの組み合わせ等、種々の不揮発性メモリ等を用いることができる。さらに、記憶装置２３は、ハードドライブ、光学ドライブ、または外部記憶装置、またはそれらを組み合わせて備えることができ、本発明における記憶装置２３の実装方法は特に限定されない。
【００１７】
本実施形態では、処理装置２４として、中央演算装置（ＣＰＵ）、埋め込みコントローラ等を用いることができるが、本発明の実施方法はそれらに限定されない。処理装置２４は、第１のネットワークインターフェース装置２１、第２のネットワークインターフェース装置２２、および記憶装置２３に接続され、リモートプライベートネットワーク３００内の各リモートホスト３０１〜３０３用のリモートルーティング装置３０に対して仮想サブネットを割り当てて、その仮想サブネットに基づいて仮想ＩＰアドレスをそれぞれ取得するように構成される。例えば、リモートホスト３０１が取得する仮想ＩＰアドレスを１０．３．２１．１０１とし、リモートホスト３０２が取得する仮想ＩＰアドレスを１０．３．２１．１０２とし、リモートホスト３０３が取得する仮想ＩＰアドレスを１０．３．２１．１０３とすることができる。
【００１８】
なお、本発明の本実施形態における上記の仮想サブネットは、各プライベートネットワークにおいて利用可能な仮想ＩＰアドレスの範囲と数を設定するために実質的に使用するものである。本実施形態では、仮想サブネットにおけるＩＰアドレスは、例えば１０．３．２１．ｘ等、最終桁がｘ（本明細書において、ｘは１〜２５５から選択したいずれか一つの正の整数）である４桁（digits）からなり、各桁は８ビットである。例えば、ローカルルーティング装置２０により割り当てられたリモートルーティング装置３０の仮想サブネットにおけるＩＰアドレスが１０．３．２１．ｘであれば、リモートプライベートネットワーク３００内の各リモートホスト３０１〜３０３において利用可能な仮想ＩＰアドレスはそれぞれ１０．３．２１．１〜１０．３．２１．２２５となる。
【００１９】
適正な仮想ＩＰアドレスを選択するには、例えば、本発明の本実施形態において仮想サブネットに基づいて仮想ＩＰアドレスを割り当てる前に、リモートホスト３０１が使用するプライベートＩＰアドレスを１９２．１６８．７５．１０１と仮定する。元のプライベートＩＰアドレス１９２．１６８．７５．１０１の最終桁（すなわち、１０１）および仮想サブネット１０．３．２１．ｘに基づき、リモートプライベートネットワーク３００において利用可能な仮想ＩＰアドレスは仮想サブネット１０．３．２１．ｘの範囲であることをリモートルーティング装置３０に通知した後、再割り当てした仮想ＩＰアドレス１０．３．２１．１０１をリモートホスト３０１により取得することができる（すなわち、仮想サブネット１０．３．２１．ｘにおけるｘを１０１と設定する）。
【００２０】
なお、本実施形態において説明した仮想サブネットの範囲、および仮想サブネットに基づいてプライベートネットワークに少なくとも１つの仮想ＩＰアドレスを割り当てる方法は上記に限定されない。本発明の別の実施形態によれば、仮想サブネットの範囲を、例えば、１０．３．ｘ．ｘ、１０．ｘ．ｘ．ｘ、または１９２．１６８．ｘ．ｘ（ここで、ｘは１〜２５５から選択したいずれか一つの正の整数）等の形式で表してもよい。例えば、仮想サブネットが１０．３．ｘ．ｘ．である場合、１０．３．１．１から１０．３．２５５．２５５までの範囲にある仮想ＩＰアドレスはすべて、仮想サブネットのプライベートネットワーク内の各ホストへの割り当て可能であることを示す。したがって、仮想サブネットにおける変数ｘの値および数を調整することにより、各プライベートネットワークにおけるそれぞれのホストについて仮想ＩＰアドレスを選択する範囲を効率的に管理することができる。
【００２１】
なお、本実施形態においては、ローカルルーティング装置２０の処理装置２４が複数のリモートルーティング装置に対して仮想サブネットを割り当てる場合、割り当てようとする全ての仮想サブネットは互いに異なるものとして、各リモートプライベートネットワークにおけるリモートホストがそれぞれ同じ仮想ＩＰアドレスを繰り返し選択してしまわないようにするする必要がある。したがって、本実施形態においては、ローカルルーティング装置２０の処理装置２４はリモートルーティング装置との間でＩＰアドレス交渉プロセスを行って、複数のリモートルーティング装置に対してそれぞれ異なる仮想サブネットを効率的に割り当てるようにすることができる。
【００２２】
例えば、ＩＰアドレス交渉プロセスにおいては、まず、ローカルルーティング装置２０の処理装置２４が、（例えば図３に示す記憶装置２３に格納した）ビットマップテーブルから割り当てられていない仮想サブネット候補を少なくとも１つ取得することができる。次に、ローカルルーティング装置２０の処理装置２４は、少なくとも１つの仮想サブネット候補のなかから、あらかじめ設定した選択手順によって、または無作為に、仮想サブネットを選択し、その仮想サブネットをリモートルーティング装置に割り当てる。最後に、ローカルルーティング装置２０の処理装置２４は、その仮想サブネットをビットマップテーブルに記録し、該仮想サブネットがすでにリモートルーティング装置に割り当て済みであるとしてマークして、このＩＰアドレス交渉プロセスを終了する。したがって、仮想サブネットをリモートルーティング装置に割り当てる処理が終了する度に、それに応じてビットマップテーブルが更新されるため、ローカルルーティング装置２０の処理装置２４は各仮想サブネットの使用状態を識別する機能を有することになる。
【００２３】
本実施形態では、ローカルルーティング装置２０の処理装置２４は、少なくとも１つの行と少なくとも１つの列を有する二次元配列により構成したビットマップテーブルを利用することができる。例えば、ビットマップテーブルを用いて各仮想サブネットを明確に示すには、ローカルルーティング装置２０の処理装置２４は、少なくとも１つの仮想サブネット候補の一つの桁（digit）を、二次元配列における第一次元方向に相当する少なくとも１つの行に対して記録し、少なくとも１つの仮想サブネット候補の別の一つの桁を、二次元配列における第二次元方向に相当する少なくとも１つの列に対して記録する。ここで、少なくとも１つの仮想サブネット候補は少なくとも４桁からなるものとする。さらに、ローカルルーティング装置２０の処理装置２４は、二次元配列における前記一つの桁と前記別の一つの桁とに対応する交点において、少なくとも１つの仮想サブネット候補の使用状態をマークしてもよい。
【００２４】
例えば、ビットマップテーブルを初期化したとき、または最初に作成したときに、ローカルルーティング装置２０の処理装置２４は、第１の識別コードを利用して、前記少なくとも一つの仮想サブネット候補を割り当てられていないものとしてビットマップテーブルにマークし、第２の識別コードを利用して、ローカルルーティング装置が所有する仮想サブネットをビットマップテーブルにマークすることができる。次に、ＩＰアドレス交渉プロセスが終了するごとに、ローカルルーティング装置２０の処理装置２４は、第３の識別コードを利用して、仮想サブネット候補を割り当て済みとしてマークすることができる。第１の識別コードを「０」、第２の識別コードを「２」、および第３の識別コードを「１」とすることができる。
【００２５】
より具体的には、本発明の一実施形態によるビットマップテーブルの模式図を図４に示す。
【００２６】
図４を参照すると、ビットマップテーブル４０はＮ行Ｍ列の二次元配列４１からなり、二次元配列４１の第Ａ番目の列（すなわち、第一次元方向）は、第Ｎ番目の仮想サブネット候補の第２の桁に相当（例えば、１０．Ａ．Ｂ．ｘにおけるＡ）し、一方で、二次元配列４１の第Ｂ番目の行（すなわち、第二次元方向）は、第Ｍ番目の仮想サブネット候補の第３の桁に相当（例えば、１０．Ａ．Ｂ．ｘにおけるＢ）するが、ここで、Ａ、Ｂ、Ｎ、およびＭはすべて正の整数であり、１＜Ａ＜Ｎおよび１＜Ｂ＜Ｍの関係にある。本実施形態においては、ビットマップテーブル４０を２５５行２５５列の二次元配列４１として構成したが、設計上または実用上の必要条件によりＮおよびＭの値を実質的に調整してもよい。
【００２７】
例えば、本実施形態によれば、第１の識別コードを「０」、第２の識別コードを「２」、および第３の識別コードを「１」で表す。すなわち、各行および各列の交点において示した「０」、「１」、および「２」を用いて、割り当てられていない仮想サブネット候補、割り当て済みの仮想サブネット候補、およびルーティング装置が所有する仮想サブネットをそれぞれ表す。
【００２８】
例えば、破線領域４１１においては、第１行（すなわち、１０．Ａ．Ｂ．ｘにおけるＡが１）と第１列（すなわち、１０．Ａ．Ｂ．ｘにおけるＢが１）との交点が「１」とマークされていることにより、１０．１．１．ｘが既に割り当て済みであることをローカルルーティング装置の処理装置に通知する。この場合、ＩＰアドレス交渉プロセスにおいて、ローカルルーティング装置の処理装置はこの仮想サブネット候補を飛ばして、次のマークされた交点を照合してこのマークされた交点に相当する仮想サブネット候補を選択するか否かを判断することができる。破線領域４１２においては、第２の行と第１の列との交点が「２」とマークされており、１０．１．２．ｘはローカルルーティング装置が所有する仮想サブネットであることをローカルルーティング装置の処理装置に通知する。破線領域４１３においては、第１の行と第２の列との交点が「０」とマークされており、１０．２．１．ｘが割り当てられていないことをローカルルーティング装置の処理装置に通知し、１０．２．１．ｘをそのまま選択して、仮想サブネット候補を要求しているリモートルーティング装置に割り当てることができる。
【００２９】
なお、本発明の別の実施形態によれば、一次配列または三次元配列を用いてビットマップテーブルを構成することもできる。例えば、一次元配列の第Ｃ番目の要素を用いて、１０．２．Ｃ．ｘ等のフォーマットを示すことができ、または、三次元配列の３方向に相当するＡ、Ｂ、およびＣを組み合わせて用いて、Ａ．Ｂ．Ｃ．ｘ等のフォーマットを示すことができる。また、本発明のさらに別の実施形態によれば、座標を用いて、この座標に対応する仮想サブネット候補の使用状態をマークしてもよい。例えば、座標（Ａ、Ｂ、Ｃ）をそれぞれ用いて、１０．Ａ．Ｂ．ｘ等のフォーマットを示し、そのうち、Ｃは、前述したように、第１の識別コード、第２の識別コード、および第３の識別コードを割り当てるように構成されるが、本発明は上記の各実施形態に限定されない。したがって、ローカルルーティング装置の処理装置は、ＩＰアドレス交渉プロセスを利用し、かつビットマップテーブルに基づいて、異なる仮想サブネットを各リモートルーティング装置に効率的に割り当てることができる。
【００３０】
以下の表１において、本実施形態におけるローカルホスト２０１およびリモートホスト３０１の元のプライベートＩＰアドレスおよび再割り当てした仮想ＩＰアドレスをそれぞれ模式的に示す。
【表１】
2013247678.tif 000003
【００３１】
再度図２および図３を参照すると、ローカルプライベートネットワーク２００内のローカルホスト２０１がリモートプライベートネットワーク３０内のリモートホスト３０１にネットワークパケットを送信する際は、ローカルルーティング装置２０の処理装置２４は第１のネットワークインターフェース装置２１を介してそのネットワークパケットを受信することができ、リモートルーティング装置３０のパブリックＩＰアドレスに基づいて、ネットワークパケットをカプセル化して代替パケットを生成する。次に、ローカルルーティング装置２０の処理装置２４は、第２のネットワークインターフェース装置２２経由でこの代替パケットをインターネット１３０に送信することができるが、該代替パケットは前記のネットワークパケットを含み、このネットワークパケットの送信先ＩＰアドレスは、リモートホスト３０１が取得した１０．３．２１．１０１等の仮想ＩＰアドレスである。
【００３２】
なお、本実施形態において、処理装置２４は、ローカルルーティング装置２０が所有する仮想サブネットに基づいて、ローカルプライベートネットワーク２００内のローカルホスト２０１〜２０３にローカル仮想ＩＰアドレスを割り当ててもよく、その結果に応じてビットマップテーブルを更新する（例えば、図４に示す破線領域４１２）。次に、ローカルホスト２０１がリモートプライベートネットワーク３００内のリモートホスト３０１にネットワークパケットを送信する際は、ローカルホスト２０１はリモートホスト３０１により取得した仮想ＩＰアドレス（例えば、１０．３０．２１．１０１）を、そのネットワークパケットの送信先ＩＰアドレスとして設定することができる。さらに、そのネットワークパケットをローカルルーティング装置２０経由で送信する場合は、ローカルルーティング装置２０の処理装置２４はローカルホスト２０１の仮想ＩＰアドレス（例えば、１０．１．２３．１０１）をそのネットワークパケットの送信元ＩＰアドレスとして設定することができる。代案として、その他の実施形態においては、ローカルホスト２０１がネットワークパケットをリモートプライベートネットワーク３００内のリモートホスト３０１に送信する際は、ローカルホスト２０１は、リモートホスト３０１の仮想ＩＰアドレス（例えば、１０．３．２１．１０１）をそのネットワークパケットの送信先ＩＰアドレスとして設定することができ、同時に、ローカルホスト２０１の仮想ＩＰアドレス（例えば、１０．１．２３．１０１）をそのネットワークパケットの送信元ＩＰアドレスとして設定することができる。
【００３３】
したがって、ネットワークパケットをルーティングするプロセスにおいて、リモートルーティング装置３０が代替パケットを非パケット化してネットワークパケットを取得した後、リモートルーティング装置３０は、ネットワークパケットにおいて再割り当てされた送信先ＩＰアドレス（すなわち、１０．３．２１．１０１等のリモートホスト３０１の仮想ＩＰアドレス）および送信元ＩＰアドレス（すなわち１０．１．２３．１０１等のローカルホスト２０１の仮想ＩＰアドレス）に基づいて、送信先ＩＰアドレスに相当するリモートホスト３０１のプライベートＩＰアドレス（例えば、１９２．１６８．７５．１０１）を特定することができ、リモートホスト３０１のプライベートＩＰアドレス（例えば１９２．１６８．７５．１０１）に相当するリモートホスト３０１にネットワークパケットをリレーすることができる。したがって、ネットワークパケットは、リモートルーティング装置３０経由でリモートホスト３０１に正常に（successfully）到達する。
【００３４】
なお、本実施形態において、各ローカルホスト２０１〜２０３および各リモートホスト３０１〜３０３がそれぞれ所有する元のプライベートＩＰアドレス（例えば、１９２．１６８．７５．１０１）は、再割り当てしようとする仮想ＩＰアドレス（例えば、１０．３．２１．１０１および１０．１．２３．１０１）へ変更することができるが、本発明はそれに限定されない。
【００３５】
本発明の別の実施形態によれば、各ローカルホスト２０１〜２０３および各リモートホスト３０１〜３０３がそれぞれ所有する元のプライベートＩＰアドレス（例えば、１９２．１６８．７５．１０１）を大幅に変更する必要はないかわりに、再割り当てしようとする仮想ＩＰアドレスと、各ローカルホスト２０１〜２０３および各リモートホスト３０１〜３０３の元のプライベートＩＰアドレスとのあいだの詳細な対応関係をローカルルーティング装置２０およびリモートルーティング装置３０それぞれのＩＰアドレスマッピングテーブルに記録してもよい。すなわち、各ローカルホスト２０１〜２０３および各リモートホスト３０１〜３０３の各プライベートネットワークにおいては、元のプライベートＩＰアドレス（例えば、１９２．１６８．７５．１０１）を引き続き使用して内部通信を行う。すなわち、同じプライベートネットワーク内で送信されるネットワークパケットは、その送信元ＩＰアドレスおよび送信先ＩＰアドレスとして、各ローカルホスト２０１〜２０３および各リモートホスト３０１〜３０３それぞれの元のプライベートＩＰアドレスを実質的に用いる。
【００３６】
すなわち、複数のプライベートネットワーク間でネットワーク通信を行うとき（例えば、ローカルプライベートネットワーク２００内のローカルホスト２０１がネットワークパケットをリモートプライベートネットワーク３００内のリモートホスト３０１に送信するとき）のみ、ローカルルーティング装置２０およびリモートルーティング装置３０はそれぞれ、自身に格納したＩＰアドレスマッピングテーブルを照合して、送信元ホスト（例えば、ローカルホスト２０１）の元のプライベートＩＰアドレスと仮想ＩＰアドレス（例えば、１０．１．２３．１０１）との間の対応関係を取得する。
【００３７】
一般に、データをインターネット経由で送信するためにカプセル化するプロセスにおいて、データはまず通常ユーザデータグラムプロトコル（ＵＤＰ）パケットまたは送信制御プロトコル（ＴＣＰ）パケットにカプセル化される。次に、ＵＤＰパケットまたはＴＣＰパケットを順次ＩＰパケットにカプセル化して、このＩＰパケットをイーサネットフレームにカプセル化する。通常、イーサネットフレームにおけるＩＰパケットのヘッダは、少なくとも一組の送信元ＩＰアドレスと送信先ＩＰアドレスを含む。したがって、ＩＰパケットを送信するパス上のルーティング装置は、イーサネットフレーム内のＩＰパケットが含む送信元ＩＰアドレスと送信先ＩＰアドレスに基づいて、ＩＰパケットを送信することができる。
【００３８】
図５は、本発明の一実施形態にしたがって、ネットワークパケットをカプセル化することにより生成した代替パケットを示す模式図である。図５を参照すると、本実施形態のカプセル化プロセスにおいては、ローカルルーティング装置の処理装置は、まずネットワークパケット５１をＵＤＰパケット５２にカプセル化する。例えば、ネットワークパケット５１を、代替パケットにおけるＵＤＰパケット５２のペイロード５２２として用いる。次に、ローカルルーティング装置の処理装置は、ＵＤＰパケット５２を順次ＩＰパケット５３にカプセル化して、代替パケット５４を生成する。なお、代替パケット（すなわち、ＩＰパケット５３）のＩＰヘッダには、送信元ＩＰアドレス（例えば、ローカルルーティング装置２０のパブリックＩＰアドレス）および送信先ＩＰアドレス（例えば、リモートルーティング装置３０のパブリックＩＰアドレス）も含まれる。
【００３９】
以上に基づき、本発明の各実施形態においては、ルーティング装置が代替パケットを生成した後に、その代替パケットの送信元ＩＰアドレスおよび送信先ＩＰアドレスに基づいて当該代替パケットを送信するためのルーティング方法（例えば、代替パケットをリモートルーティング装置３０経由でリモートホスト３０１にリレーする等）をルーティング装置に通知することができる。なお、パケットを送信するためのルーティング方法については当業者にとって公知であるので、以下、関連する説明については省略する。
【００４０】
さらに、本発明の各実施形態においては、送信元ＩＰアドレスおよび送信先ＩＰアドレスもネットワークパケットのＩＰパケットに含まれるにもかかわらず、これらの送信元ＩＰアドレスおよび送信先ＩＰアドレスは代替パケットに含まれる送信元ＩＰアドレスおよび送信先ＩＰアドレスとは異なるものであることに留意されたい。より詳細には、ネットワークパケットにおいては、送信元ＩＰアドレスを、例えば、ローカルホスト２０１に再割り当てした仮想ＩＰアドレス（１０．１．２３．１０１）とする一方、送信先ＩＰアドレスを、例えば、リモートホスト３０１に再割り当てした仮想ＩＰアドレス（１０．３．２１．１０１）とすることができる。しかしながら、代替パケットにおいては、送信元ＩＰアドレスを、例えば、ローカルルーティング装置２０のパブリックＩＰアドレスとする一方、送信先ＩＰアドレスを、例えば、リモートルーティング装置３０のパブリックＩＰアドレスとすることができる。
【００４１】
図２および図３を再度参照すると、代替パケットの受信および処理について、ローカルルーティング装置２０を例にとれば、ローカルルーティング装置の第２のネットワークインターフェース装置２２が代替パケットを受信すると、ローカルルーティング装置２０の処理装置２４は当該代替パケットを非カプセル化して、この代替パケットからネットワークパケットを取得することができる。さらに、ローカルルーティング装置２０の処理装置２４は、ネットワークパケットのＩＰヘッダ内の送信先ＩＰアドレス（例えば、１０．１．２３．１０１）に基づいてＩＰアドレスマッピングテーブル（または、仮想サブネットの割り当て記録テーブル）を照合することにより、対応するプライベートＩＰアドレス（例えば、ローカルホスト２０１の元のプライベートＩＰアドレスである、１９２．１６８．７５．１０１）を特定することができる。次に、ローカルルーティング装置２０の処理装置２４は、取得したプライベートＩＰアドレスに基づき、第１のネットワークインターフェース装置２１経由でネットワークパケットをローカルホスト２０１にリレーする。同様に、リモートルーティング装置３０が、リモートホスト３０１への送信先ＩＰアドレス（すなわち、仮想ＩＰアドレス）を含む代替パケットを受信する際は、リモートルーティング装置３０は、ネットワークパケットの仮想ＩＰアドレスに基づいて適切なアドレス変換によってＩＰアドレスマッピングテーブルを照合することにより、対応するプライベートＩＰアドレスを特定することができる。次に、リモートルーティング装置３０は、代替パケットを非カプセル化して得られたネットワークパケットをプライベートＩＰアドレスに基づいてリモートホスト３０１にリレーする。
【００４２】
なお、インターネットをフロントエンドに持ち、プライベートネットワークをバックエンドに持つルーティング装置については、通常、ファイアウォールおよびＮＡＴ両方の特徴を備えている。ここで、ファイアウォールの基本機能は、未知のネットワークトラフィックまたはネットワークパケットが、保護下のルーティング装置またはバックエンドのプライベートネットワークへ侵入するのを防ぐことである。図２を例にとると、ファイアウォールを有するローカルホスト２０１がリモートホスト３０１とネットワーク通信を行えるようにするため、または、ローカルホスト２０１が、ファイアウォールを有するリモートルーティング装置３０のサブネット内のリモートホスト３０１とネットワーク通信を行えるようにするためには、ローカルルーティング装置２０とリモートルーティング装置３０とが相互に通信可能である必要がある。すなわち、ファイアウォールによる規制またはその他のパケットフィルタリング機構が原因で、ローカルルーティング装置２０とリモートルーティング装置３０との間でパケットが正常に送信できない、または通信が行えないことがある。
【００４３】
図６は、本発明の別の実施形態による、インターネット経由で接続されたローカルプライベートネットワークおよびリモートプライベートネットワークを示す模式図である。図３〜図６を参照すると、ローカルルーティング装置２０およびリモートルーティング装置３０は、図３に示すものと同様に実装される。本実施形態において、ローカルルーティング装置２０の処理装置２４は、第２のネットワークインターフェース装置２２経由でリモートルーティング装置３０とピアツーピア接続を確立しようとし、リモートルーティング装置３０との間でピアツーピア接続が正常に確立されているかどうか判断する。処理装置２４は、リモートルーティング装置３０とのピアツーピア接続が正常に確立されていない場合、ユーザデータグラムプロトコル（ＵＤＰ）サーバ６１を介して、ローカルルーティング装置２０のパブリックＩＰアドレスとパブリックポート番号を第２のネットワークインターフェース装置２２経由でリモートルーティング装置３０へ配信して、リモートルーティング装置３０のパブリックＩＰアドレスおよびパブリックポート番号を取得する。
【００４４】
すなわち、リモートルーティング装置３０とのピアツーピア接続が正常に確立されていない場合とは、パケットが正常に送信できないか、または、ファイアウォールによる規制またはその他のパケットフィルタリング機構が原因でローカルルーティング装置２０とリモートルーティング装置３０との間の接続が確立できないことを意味する。したがって、例えば、ローカルルーティング装置２０の処理装置２４は、ローカルルーティング装置２０のパブリックＩＰアドレスおよびパブリックポート番号の情報をＵＤＰサーバ６１に格納するため、第２のネットワークインターフェース装置２２経由でＵＤＰサーバ６１との接続を確立する。同様に、リモートルーティング装置３０も、リモートルーティング装置３０のパブリックＩＰアドレスおよびパブリックポート番号の情報をＵＤＰサーバ６１に格納するため、ＵＤＰサーバ６１との接続を確立する。次に、ローカルルーティング装置２０およびリモートルーティング装置３０は、それぞれＵＤＰサーバ６１に接続して、互いのパブリックＩＰアドレスおよびパブリックポート番号を取得し、相手のパブリックＩＰアドレスおよびパブリックポート番号を使用してネットワーク通信を行う。したがって、ファイアウォールの有無は各プライベートネットワーク間の通信に影響しない。
【００４５】
本実施形態によれば、ＵＤＰサーバ６１としては、接続機能があり接続情報を記録できるものであれば任意のサーバを用いることができ、本発明はそれに限定されない。
【００４６】
なお、ローカルルーティング装置とリモートルーティング装置との間にファイアウォールまたはその他のフィルタリング機構が存在しないことがわかっている場合は、ローカルルーティング装置およびリモートルーティング装置は、前記情報を交換するためにＵＤＰサーバを使用せずに、ピアツーピア接続を介してパブリックＩＰアドレスおよびパブリックポート番号の情報を直接取得してもよい。
【００４７】
上記のように、ローカルルーティング装置（例えば、ローカルルーティング装置２０）およびリモートルーティング装置（例えば、リモートルーティング装置３０）がいずれも互いのパブリックＩＰアドレスおよびパブリックポート番号を取得済みであれば、ローカルルーティング装置の処理装置（例えば、処理装置２４）は、対象リモートホスト（例えば、リモートホスト３０１）により取得した、受信しようとするネットワークパケットのＩＰヘッダにある仮想ＩＰアドレスに基づいて、対象リモートホスト（例えば、リモートホスト３０１）により取得された仮想ＩＰアドレスに対応するリモートルーティング装置（例えば、リモートルーティング装置３０）のパブリックＩＰアドレスおよびパブリックポート番号を特定することができる。さらに、ローカルルーティング装置の処理装置によりネットワークパケットをカプセル化して代替パケットを生成するプロセスにおいて、ローカルルーティング装置の処理装置は、ローカルルーティング装置のパブリックＩＰアドレスおよびパブリックポート番号ならびにリモートルーティング装置のパブリックＩＰアドレスおよびパブリックポート番号を代替パケットにカプセル化してもよい。例えば、ローカルルーティング装置２０の処理装置２４は、ローカルルーティング装置２０のパブリックＩＰアドレスおよびリモートルーティング装置３０のパブリックＩＰアドレスを代替パケットのＩＰヘッダ（例えば、図５に示す、ＩＰパケット５３のＩＰヘッダ）にカプセル化してもよい。さらに、ローカルルーティング装置２０の処理装置２４は、ローカルルーティング装置２０のパブリックポート番号およびリモートルーティング装置３０のパブリックポート番号を代替パケットのＵＤＰヘッダ（例えば、図５に示す、ＵＤＰパケット５２のＵＤＰヘッダ５２１）にカプセル化してもよい。したがって、ローカルルーティング装置またはリモートルーティング装置により代替パケットを受信する場合、当該代替パケットの前記情報により、適切なルーティング処理を行うことができる。
【００４８】
図７は、本発明の一実施形態による仮想プライベートネットワーク通信方法を示すフローチャートである。
【００４９】
図７を参照すると、ステップＳ７０２において、ローカルルーティング装置の処理装置は、リモートプライベートネットワーク内の各リモートホスト用のリモートルーティング装置に仮想サブネットを割り当ててこの仮想サブネットに基づいて仮想ＩＰアドレスをそれぞれ取得する。なお、本実施形態において、各ホストの仮想ＩＰアドレスは１つのルーティング装置により別個に割り当ててもよいし、または、各ホストが、割り当てられた（例えば、仮想サブネットおよび元のプライベートＩＰアドレスとともに割り当てられた）仮想サブネットに基づいて取得してもよいが、本発明はそれらに限定されない。
【００５０】
ステップＳ７０４において、ローカルプライベートネットワーク内のローカルホストがリモートプライベートネットワーク内の対象リモートホストにネットワークパケットを送信すると、ローカルルーティング装置の処理装置はリモートルーティング装置のパブリックＩＰアドレスおよびパブリックポート番号に基づいてネットワークパケットをカプセル化して代替パケットを生成し、その代替パケットをインターネットに配信する。代替パケットは、カプセル化したネットワークパケットを含み、カプセル化したネットワークパケットの送信先ＩＰアドレスは、対象リモートホストにより取得した仮想ＩＰアドレスである。
【００５１】
図８は、本発明の別の実施形態による、仮想プライベートネットワーク通信方法を示すフローチャートである。図８を参照すると、本実施形態において、パケットが正常に送信できない場合、またはファイアウォールによる規制またはその他のパケットフィルタリング機構が原因でローカルルーティング装置とリモートルーティング装置との間の接続が確立できない場合は、ローカルルーティング装置およびリモートルーティング装置はそれぞれ互いのパブリックＩＰアドレスおよびパブリックポート番号をＵＤＰサーバを介して取得してもよい。
【００５２】
ステップＳ８０２において、ローカルルーティング装置の処理装置は、第２のネットワークインターフェース装置経由でリモートルーティング装置との間にピアツーピア接続を確立しようと試みる。次に、ステップＳ８０２が終了したらステップ８０４へ進む。ステップＳ８０４において、ローカルルーティング装置の処理装置は、リモートルーティング装置とのピアツーピア接続が正常に確立されているかを判断する。Ｓ８０４においてローカルルーティング装置の処理装置により、ピアリモートルーティング装置とのピアツーピア接続が正常に確立していると判断された場合、ステップＳ８０４が終了したらステップＳ８０８へ進む。ステップＳ８０４においてローカルルーティング装置の処理装置により、リモートルーティング装置とのピアツーピア接続が正常に確立していないと判断された場合、ステップＳ８０４が終了したらステップＳ８０６に進む。
【００５３】
ステップＳ８０６において、ローカルルーティング装置の処理装置は、ローカルルーティング装置のパブリックＩＰアドレスおよびパブリックポート番号をＵＤＰサーバを介してリモートルーティング装置に配信し、リモートルーティング装置のパブリックＩＰアドレスおよびパブリックポート番号を取得する。次に、ステップＳ８０６が終了したらステップＳ８０８に進む。ステップＳ８０４においてローカルルーティング装置により、リモートルーティング装置とのピアツーピア接続が正常に確立していると判断された場合、ステップＳ８０４が終了したらステップＳ８０８へ進む。ステップＳ８０８において、ローカルルーティング装置の処理装置は、リモートプライベートネットワーク内の各リモートホスト用のリモートルーティング装置に仮想サブネットを割り当ててその仮想サブネットに基づいて仮想ＩＰアドレスをそれぞれ取得する。次に、ステップＳ８０８が終了したら、ステップＳ８１０へ進む。
【００５４】
ステップＳ８１０において、ローカルルーティング装置の処理装置は、ネットワークパケットがローカルプライベートネットワーク内のローカルホストからリモートプライベートネットワーク内の対象リモートホストに送信されたか判断する。ローカルルーティング装置の処理装置が、ステップＳ８１０において、ローカルプライベートネットワーク内のローカルホストからリモートプライベートネットワーク内の対象リモートホストに送信されたネットワークパケットはないと判断する場合、ローカルルーティング装置の処理装置は、ステップＳ８１０が終了した後も、ネットワークパケットがローカルプライベートネットワーク内のローカルホストからリモートプライベートネットワーク内の対象リモートホストに送信されるかどうか引き続きモニタリングする。ローカルルーティング装置の処理装置が、ステップＳ８１０において、ローカルプライベートネットワーク内のローカルホストからリモートプライベートネットワーク内の対象リモートホストにネットワークパケットが送信されたと判断する場合、ステップＳ８１０が終了したらステップＳ８１２へ進む。
【００５５】
ステップＳ８１２において、ローカルルーティング装置の処理装置は、ローカルルーティング装置のパブリックＩＰアドレスおよびパブリックポート番号ならびにリモートルーティング装置のパブリックＩＰアドレスおよびパブリックポート番号に基づいてネットワークパケットをカプセル化して代替パケットを生成し、ローカルルーティング装置の処理装置はその代替パケットを第２のネットワークインターフェース装置経由でインターネットへ配信する。
【００５６】
図９は、本発明のさらに別の実施形態による仮想プライベートネットワーク通信方法を示すフローチャートである。図９を参照すると、本実施形態において、ローカルルーティング装置はＩＰアドレス交渉プロセスを行い、各プライベートネットワークが同じ仮想サブネットを使用しないようにする。
【００５７】
ステップＳ９０２において、ローカルルーティング装置の処理装置は、第２のネットワークインターフェース装置経由でリモートルーティング装置とのピアツーピア接続を確立しようと試みる。次に、ステップＳ９０２が終了したらステップＳ９０４に進む。ステップＳ９０４において、ローカルルーティング装置の処理装置は、リモートルーティング装置とのピアツーピア接続が正常に確立したか判断する。ステップＳ９０４において、ローカルルーティング装置の処理装置により、リモートルーティング装置とのピアツーピア接続が正常に確立していると判断された場合、ステップＳ９０４が終了したらステップＳ９０８へ進む。ステップＳ９０４において、ローカルルーティング装置の処理装置により、リモートルーティング装置とのピアツーピア接続が正常に確立していないと判断された場合、ステップＳ９０４が終了したらステップＳ９０６へ進む。
【００５８】
ステップＳ９０６において、ローカルルーティング装置の処理装置は、ＵＤＰサーバを介してローカルルーティング装置のパブリックＩＰアドレスおよびパブリックポート番号をリモートルーティング装置へ配信し、リモートルーティング装置のパブリックＩＰアドレスおよびパブリックポート番号を取得する。次に、ステップＳ９０６が終了したらステップＳ９０８へ進む。ステップＳ９０４において、ローカルルーティング装置の処理装置により、リモートルーティング装置とのピアツーピア接続が正常に確立していると判断されたら、ステップＳ９０４が終了したらステップＳ９０８へ進む。
【００５９】
ステップＳ９０８において、ローカルルーティング装置の処理装置はＩＰアドレス交渉プロセスを行う。例えば、ローカルルーティング装置の処理装置は、割り当てられていない仮想サブネットを照合し、記録し、リモートルーティング装置に割り当ててもよい。次に、ステップＳ９０８が終了したらステップＳ９１０に進む。ステップＳ９１０において、ローカルルーティング装置の処理装置は、リモートプライベートネットワーク内の各リモートホスト用のリモートルーティング装置に仮想サブネットを割り当て、その仮想サブネットに基づいて仮想ＩＰアドレスをそれぞれ取得する。次に、ステップＳ９１０が終了したらステップＳ９１２へ進む。
【００６０】
ステップＳ９１２において、ローカルルーティング装置の処理装置は、ローカルプライベートネットワーク内のローカルホストからリモートプライベートネットワーク内の対象リモートホストへネットワークパケットが送信されたか判断する。ローカルルーティング装置の処理装置が、ステップＳ９１２において、ローカルプライベートネットワーク内のローカルホストからリモートプライベートネットワーク内の対象リモートホストへ送信されたネットワークパケットはないと判断する場合、ローカルルーティング装置の処理装置は、ステップＳ９１２が終了した後も、ネットワークパケットがローカルプライベートネットワーク内のローカルホストからリモートプライベートネットワーク内の対象リモートホストに送信されるかどうか引き続きモニタリングする。ローカルルーティング装置の処理装置が、ステップＳ９１２において、ローカルプライベートネットワーク内のローカルホストからリモートプライベートネットワーク内の対象リモートホストにネットワークパケットが送信されたと判断する場合、ステップＳ９１２が終了したらステップＳ９１４へ進む。
【００６１】
ステップＳ９１４において、ローカルルーティング装置の処理装置は、ローカルルーティング装置のパブリックＩＰアドレスおよびパブリックポート番号ならびにリモートルーティング装置のパブリックＩＰアドレスおよびパブリックポート番号に基づいてネットワークパケットをカプセル化して代替パケットを生成し、ローカルルーティング装置の処理装置はその代替パケットを第２のネットワークインターフェース装置経由でインターネットへ配信する。
【００６２】
図１０は、本発明の一実施形態による仮想プライベートネットワーク通信方法を示すフローチャートである。より詳細には、図１０を参照すると、本実施形態を用いて、代替パケットを受信した後のローカルルーティング装置またはリモートルーティング装置の動作を説明する。
【００６３】
ステップＳ１００２において、ローカルルーティング装置の第２のインターフェース装置が代替パケットを受信すると、ローカルルーティング装置の処理装置がこの代替パケットを非カプセル化して、当該代替パケットからネットワークパケットを取得する。次に、ステップＳ１００２が終了したらステップＳ１００４へ進む。ステップＳ１００４において、ローカルルーティング装置の第１のネットワークインターフェースは、ネットワークパケットのＩＰヘッダにある送信先ＩＰアドレスに基づいてＩＰアドレスマッピングテーブルを調べてネットワークパケットのＩＰヘッダにある送信先ＩＰアドレスに対応するプライベートＩＰアドレスを特定し、そのプライベートＩＰアドレスに対応するローカルホストにネットワークパケットをリレーする。
【００６４】
なお、上記の各方法については、先の各実施形態に開示した教示、示唆、および説明を参照することができるため、以下において詳細な説明は省略する。
【００６５】
以上より、本発明の各実施形態に開示した仮想プライベートネットワーク通信方法およびそれを用いたルーティング装置を利用して、リモートプライベートネットワーク内の少なくとも１つのリモートホストについてＩＰアドレス交渉プロセスを用いてリモートルーティング装置に仮想サブネットを割り当てて、この仮想サブネットに基づいて少なくとも１つの仮想ＩＰアドレスをそれぞれ取得することができる。ローカルプライベートネットワーク内のローカルホストがリモートプライベートネットワーク内の対象リモートホストにネットワークパケットを送信するときは、対象リモートホストにより取得した仮想ＩＰアドレスに基づいてそのネットワークパケットをカプセル化して代替パケットを生成することができる。さらに、代替パケットを受信するときは、当該代替パケットを非カプセル化して、代替パケットからネットワークパケットを取得する。次に、ネットワークパケットの送信先ＩＰアドレスを用いて、この送信先ＩＰアドレスに対応するプライベートＩＰアドレスを特定し、その後ネットワークパケットをこのプライベートＩＰアドレスに対応するローカルホストにリレーする。したがって、異なるプライベートネットワーク内の複数のホストは、それぞれに割り当てられた仮想ＩＰアドレスを使用してネットワーク通信をそれぞれ行うことができる。
【００６６】
本開示の範囲または精神から逸脱することなく、開示した各実施形態の構成に種々の変更および変形を加えることが可能であることは当業者にとって明らかであろう。上記の事項を鑑みれば、以下の請求の範囲およびその等価物の範囲内であれば、本開示は、この明細書における変更および変形をも含むことを意図するものである
【産業上の利用可能性】
【００６７】
上記のように、本発明の各実施形態に開示した仮想プライベートネットワーク通信方法およびそれを用いたルーティング装置を利用して、リモートプライベートネットワーク内の少なくとも１つのリモートホストについてリモートルーティング装置に仮想サブネットを割り当てて、この仮想サブネットに基づいて少なくとも１つの仮想ＩＰアドレスをそれぞれ取得することができる。ローカルプライベートネットワーク内のローカルホストがネットワークパケットをリモートプライベートネットワーク内の対象リモートホストに送信するときは、リモートルーティング装置のパブリックＩＰアドレスに基づいてネットワークパケットをカプセル化して代替パケットを生成する。代替パケットを受信すると、代替パケットを非カプセル化して、代替パケットからネットワークパケットを取得する。次に、ネットワークパケットの送信先ＩＰアドレスを用いて、当該送信先ＩＰアドレスに対応するプライベートＩＰアドレスを取得することができ、その後、このネットワークパケットをこのプライベートＩＰアドレスに対応するローカルホストにリレーする。したがって、異なるプライベート内の複数のホストはそれぞれ、割り当てられた仮想ＩＰアドレスを用いてネットワーク通信を行うことができる。
【符号の説明】
【００６８】
１０、１１、１２    ルーティング装置
２０    ローカルルーティング装置
２１    第１のネットワークインターフェース装置
２２    第２のネットワークインターフェース装置
２３    記憶装置
２４    処理装置
３０    リモートルーティング装置
４０    ビットマップテーブル
４１    二次元配列
５１    ネットワークパケット
５２    ＵＤＰパケット
５２１    ＵＤＰヘッダ
５２２    ＵＤＰペイロード
５３    ＩＰパケット
５４    代替パケット
６１    ＵＤＰサーバ
１００、１１０、１２０    プライベートネットワーク
１０１〜１０３、１１１〜１１３、１２１〜１２３    ホスト
１３０    インターネット
２００    ローカルプライベートネットワーク
２０１〜２０３    ローカルホスト
３００    リモートプライベートネットワーク
３０１〜３０３    リモートホスト
４１１、４１２、４１３    破線領域
【図１】
2013247678.tif 000004
【図２】
2013247678.tif 000005
【図３】
2013247678.tif 000006
【図４】
2013247678.tif 000007
【図５】
2013247678.tif 000008
【図６】
2013247678.tif 000009
【図７】
2013247678.tif 000010
【図８】
2013247678.tif 000011
【図９】
2013247678.tif 000012
【図１０】
2013247678.tif 000013
【外国語明細書】
2013247678000001.pdf