(57)【要約】【課題】ＶＰＮの動作に必要な各種パラメータの設定作業を事前に行うことなく、簡易かつ柔軟にＶＰＮを構築可能にするＶＰＮ装置を提供することを目的とする。【解決手段】接続元となるＬＡＮ１００側のＶＰＮ装置１０１は、ＷＡＮ２００上のＳＴＵＮサーバ２０１より自装置のグローバルＩＰアドレス及びポート番号を含む外部アドレス・ポート情報を取得し、この接続元の外部アドレス・ポート情報をＷＡＮ２００上の呼制御サーバ２０２を経由して接続先となるＬＡＮ３００側のＶＰＮ装置３０１に送信する。また、ＬＡＮ３００側のＶＰＮ装置３０１から接続先の外部アドレス・ポート情報を呼制御サーバ２０２を経由して受信する。ＶＰＮ装置１０１は、接続先の外部アドレス・ポート情報を用いて、ＶＰＮ装置３０１との間でＰ２ＰのＶＰＮ通信経路を構築し、暗号化されたパケットを伝送する。【選択図】図１
2010252261.tif 000002
【特許請求の範囲】
【請求項１】
第１のネットワーク上に設けられ、この第１のネットワークと接続された第２のネットワークを介して、他の第３のネットワーク上の相手装置と自装置との間で仮想プライベートネットワークを構築して通信を行うＶＰＮ装置であって、
前記第２のネットワーク側から前記第１のネットワーク上の自装置にアクセス可能なアドレス情報である自装置の外部アドレス・ポート情報を取得する外部アドレス・ポート取得部と、
前記自装置の外部アドレス・ポート情報を、前記相手装置に送信する自装置アドレス情報送信部と、
前記相手装置が取得した、前記第２のネットワーク側から前記第３のネットワーク上の相手装置にアクセス可能なアドレス情報である相手装置の外部アドレス・ポート情報を、前記相手装置より受信する相手装置アドレス情報受信部と、
前記相手装置の外部アドレス・ポート情報を用いて前記相手装置へ通信データを送信するデータ送信部と、
を備えるＶＰＮ装置。
【請求項２】
請求項１に記載のＶＰＮ装置であって、
前記第２のネットワークには、前記第２のネットワーク側から前記第１のネットワークまたは前記第３のネットワークへアクセス可能なアドレス・ポート情報を管理するアドレス情報サーバが設けられ、
前記外部アドレス・ポート取得部は、前記第２のネットワーク上の前記アドレス情報サーバとの間で所定の手順の通信を実行し、前記アドレス情報サーバから受信した応答に含まれる外部アドレス・ポート情報を取得するもので、前記外部アドレス・ポート情報はグローバルＩＰアドレス及びポート番号を含んでいるＶＰＮ装置。
【請求項３】
請求項２に記載のＶＰＮ装置であって、
前記外部アドレス・ポート取得部は、前記第２のネットワーク上のアドレス情報サーバとして、ＳＴＵＮ（Simple Traversal of User Datagram Protocol (UDP) through Network Address Translators (NATs)）プロトコルを実行するＳＴＵＮサーバより前記外部アドレス・ポート情報を取得するＶＰＮ装置。
【請求項４】
請求項１に記載のＶＰＮ装置であって、
前記自装置アドレス情報送信部は、前記自装置の外部アドレス・ポート情報を、前記第２のネットワーク上に設けられた中継サーバを介して前記相手装置に送信するものであり、
前記相手装置アドレス情報受信部は、前記相手装置の外部アドレス・ポート情報を、前記中継サーバを介して前記相手装置より受信するＶＰＮ装置。
【請求項５】
請求項４に記載のＶＰＮ装置であって、
前記自装置アドレス情報送信部は、前記第２のネットワーク上の中継サーバとして、通信装置間の呼制御を行う呼制御サーバを介して前記自装置の外部アドレス・ポート情報の送信を行うものであり、
前記相手装置アドレス情報受信部は、前記呼制御サーバを介して前記相手装置の外部アドレス・ポート情報の受信を行うＶＰＮ装置。
【請求項６】
請求項１に記載のＶＰＮ装置であって、
前記通信データを暗号化する暗号処理部を有し、前記暗号化した通信データを前記相手装置へ送信するＶＰＮ装置。
【請求項７】
請求項１に記載のＶＰＮ装置であって、
前記データ送信部は、前記通信データをＵＤＰ（User Datagram Protocol）でカプセリングして前記相手装置へ送信するＶＰＮ装置。
【請求項８】
請求項１に記載のＶＰＮ装置であって、
前記相手装置の外部アドレス・ポート情報により特定される接続先の特定のポートに対して、ＵＤＰパケットの送信動作を所定の間隔で実行する通信経路維持部を備えるＶＰＮ装置。
【請求項９】
請求項８に記載のＶＰＮ装置であって、
前記通信経路維持部は、通信終了判断に基づいて前記ＵＤＰパケットの送信動作を停止するＶＰＮ装置。
【請求項１０】
第１のネットワーク上の第１の装置と、この第１のネットワークと接続された第２のネットワークを介して、他の第３のネットワーク上の第２の装置との間で、仮想プライベートネットワークを構築して通信を行うＶＰＮネットワーキング方法であって、
前記第２のネットワーク側から前記第１のネットワーク上の前記第１の装置にアクセス可能なアドレス情報である前記第１の装置の外部アドレス・ポート情報を取得するステップと、
前記第１の装置の外部アドレス・ポート情報を、前記第２の装置に送信するステップと、
前記第２の装置が取得した、前記第２のネットワーク側から前記第３のネットワーク上の前記第２の装置にアクセス可能なアドレス情報である前記第２の装置の外部アドレス・ポート情報を、前記第２の装置より受信するステップと、
前記第２の装置の外部アドレス・ポート情報を用いて前記第２の装置へ通信データを送信するステップと、
を有するＶＰＮネットワーキング方法。
【請求項１１】
コンピュータに、第１のネットワーク上の自装置と、この第１のネットワークと接続された第２のネットワークを介して、他の第３のネットワーク上の相手装置との間で、仮想プライベートネットワークを構築して通信を行う機能を実現させるプログラムを格納した記憶媒体であって、
前記第２のネットワーク側から前記第１のネットワーク上の自装置にアクセス可能なアドレス情報である自装置の外部アドレス・ポート情報を取得する外部アドレス・ポート取得部と、
前記自装置の外部アドレス・ポート情報を、前記相手装置に送信する自装置アドレス情報送信部と、
前記相手装置が取得した、前記第２のネットワーク側から前記第３のネットワーク上の相手装置にアクセス可能なアドレス情報である相手装置の外部アドレス・ポート情報を、前記相手装置より受信する相手装置アドレス情報受信部と、
前記相手装置の外部アドレス・ポート情報を用いて前記相手装置へ通信データを送信するデータ送信部と、
を含む各部の機能をコンピュータに実現させるプログラムを格納した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＶＰＮ装置、ＶＰＮネットワーキング方法、及び記憶媒体に関し、特に、通信相手の固定された専用通信回線（専用線）の代わりに、多数の加入者で帯域を共用する通信網を利用してネットワーク間などを接続するＶＰＮ（Virtual Private Network：仮想プライベートネットワーク）技術に関する。
【背景技術】
【０００２】
仮想プライベートネットワーク（以下、ＶＰＮと記載する）は、たとえば、企業内等の２以上の拠点のローカルエリアネットワーク（ＬＡＮ）相互間などのように、一般に、異なるネットワークセグメントを、広域ネットワーク（ＷＡＮ）などを介して互いに接続する。そして、通信の秘匿性を担保することで、仮想的に全体が１つのプライベートネットワークであるように構成する。これにより、専用線を利用する場合と同様の通信サービスを可能にする。
【０００３】
このようなＶＰＮは、インターネット等のＷＡＮや公衆回線網を利用して構築するいわゆるインターネットＶＰＮと、通信事業者閉域網などのインターネット等とは異なる通信網を使用して構築するＩＰ−ＶＰＮと、に大別される。特に、インターネットＶＰＮは、昨今のネットワークインフラのブロードバンド化と、インターネットを利用してＶＰＮを構築することによる安価な価格設定に伴い、利用者が増加している。
【０００４】
ＶＰＮを構築するにあたり、例えば異なる拠点間で通信を行う場合に、通信経路の途中にインターネット等の共用の通信網が介在するので、通信の漏洩、盗聴、改竄などの危険性がある。そこで、ＶＰＮ技術においては、通信の秘匿性を担保するために、ネットワークのいずれかの階層において、データを暗号化しカプセリングすることを基本的な技術思想としている。ここで、ある通信プロトコルを他の通信プロトコルのパケットで包んで送ることを「カプセル化（カプセリング）」という。
【０００５】
ＶＰＮ技術で用いられる暗号化プロトコルの具体例としては、ＩＰ（Internet Protocol）層で暗号化を施すＩＰｓｅｃ（Security Architecture for Internet Protocol）や、ＴＣＰ（Transmission Control Protocol）層（特にＨＴＴＰ：Hyper Text Transfer Protocolで使用）で暗号化を施すＳＳＬ（Secure Sockets Layer）などが知られている。また、他のＶＰＮ技術の例として、ＳＳＨ、ＴＬＳ、ＳｏｆｔＥｔｈｅｒ、ＰＰＴＰ、Ｌ２ＴＰ、Ｌ２Ｆ、ＭＰＬＳなどが知られている。ソフトウェアによってＶＰＮを構築するソフトウェアＶＰＮでは、上記のＩＰｓｅｃやＳＳＬを使用したトンネリング技術を使用する。ここで、ある通信プロトコルを、同じまたはより上位の階層のプロトコルのデータとして通信することを「トンネリング」という。ＶＰＮを構築する場合は、ネットワークの中継装置または通信を行う端末等（以降、これらを「ピア」とも称する）に設けたＶＰＮ装置によって、パケットを暗号化及びカプセル化して仮想トンネルを構築する。これにより、ピア間を結ぶ閉じられた仮想的な直結通信回線を確立する。
【０００６】
例えば、ネットワーク間を相互接続する技術として、トンネリング技術を用いて通信路を構築し、通信路を維持するために通信路維持データを送信し、さらに、通信漏洩等を防止するために電子署名や暗号化を施すものが提案されている（例えば、特許文献１参照）。この特許文献１では、外部ネットワーク内の外部ホストがファイアウォールを越えて内部ネットワーク内の内部ホストとの間でトンネルを構築して通信を行うために、トンネルを維持するのに必要なタイミングに応じてトンネルを維持するための通信路維持データを送信する送信手段と、通信路維持データの中に電子署名を施す電子署名手段とを設けている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−１６０４９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記特許文献１等の既存のＶＰＮ技術では、拠点毎のＶＰＮ装置において、適正なアドレスやポート番号を指定し、所定の識別番号等を付与し、これらの暗号化、復号化を実行するために、ＶＰＮ装置を設置するにあたり予め各種パラメータの設定作業を行う必要があった。
【０００９】
したがって、例えば企業内の複数の特定オフィス同士をＶＰＮで接続する場合のように、接続先やその範囲が予め固定されている場合であれば特に問題はない。しかし、例えば１回だけ、あるいは短い期間だけ一時的に所定の接続先に対してＶＰＮを構成しようとすると、その都度、各種パラメータの設定作業が必要になるため、利便性の面で実現が困難であった。つまり、必要に応じて一時的にネットワークを構成したいような環境でＶＰＮを利用することは困難であった。
【００１０】
本発明は、上記事情に鑑みてなされたもので、その目的は、ＶＰＮの動作に必要な各種パラメータの設定作業を事前に行うことなく、簡易かつ柔軟にＶＰＮを構築することが可能なＶＰＮ装置を提供することにある。
【課題を解決するための手段】
【００１１】
本発明は、第１の態様として、第１のネットワーク上に設けられ、この第１のネットワークと接続された第２のネットワークを介して、他の第３のネットワーク上の相手装置と自装置との間で仮想プライベートネットワークを構築して通信を行うＶＰＮ装置であって、第２のネットワーク側から第１のネットワーク上の自装置にアクセス可能なアドレス情報である自装置の外部アドレス・ポート情報を取得する外部アドレス・ポート取得部と、自装置の外部アドレス・ポート情報を、相手装置に送信する自装置アドレス情報送信部と、相手装置が取得した、第２のネットワーク側から第３のネットワーク上の相手装置にアクセス可能なアドレス情報である相手装置の外部アドレス・ポート情報を、相手装置より受信する相手装置アドレス情報受信部と、相手装置の外部アドレス・ポート情報を用いて相手装置へ通信データを送信するデータ送信部と、を備えるＶＰＮ装置を提供する。
【００１２】
また、本発明は、第２の態様として、上記のＶＰＮ装置であって、第２のネットワークには、第２のネットワーク側から第１のネットワークまたは第３のネットワークへアクセス可能なアドレス・ポート情報を管理するアドレス情報サーバが設けられ、外部アドレス・ポート取得部は、第２のネットワーク上のアドレス情報サーバとの間で所定の手順の通信を実行し、アドレス情報サーバから受信した応答に含まれる外部アドレス・ポート情報を取得するもので、外部アドレス・ポート情報はグローバルＩＰアドレス及びポート番号を含んでいるものも含まれる。
【００１３】
また、本発明は、第３の態様として、上記のＶＰＮ装置であって、外部アドレス・ポート取得部は、第２のネットワーク上のアドレス情報サーバとして、ＳＴＵＮ（Simple Traversal of User Datagram Protocol (UDP) through Network Address Translators (NATs)）プロトコルを実行するＳＴＵＮサーバより外部アドレス・ポート情報を取得するものを含む。
【００１４】
また、本発明は、第４の態様として、上記のＶＰＮ装置であって、自装置アドレス情報送信部は、自装置の外部アドレス・ポート情報を、第２のネットワーク上に設けられた中継サーバを介して相手装置に送信するものであり、相手装置アドレス情報受信部は、相手装置の外部アドレス・ポート情報を、中継サーバを介して相手装置より受信するものを含む。
【００１５】
また、本発明は、第５の態様として、上記のＶＰＮ装置であって、自装置アドレス情報送信部は、第２のネットワーク上の中継サーバとして、通信装置間の呼制御を行う呼制御サーバを介して自装置の外部アドレス・ポート情報の送信を行うものであり、相手装置アドレス情報受信部は、呼制御サーバを介して相手装置の外部アドレス・ポート情報の受信を行うものを含む。
【００１６】
また、本発明は第６の態様として、上記のＶＰＮ装置であって、通信データを暗号化する暗号処理部を有し、暗号化した通信データを相手装置へ送信するものを含む。
【００１７】
また、本発明は、第７の態様として、上記のＶＰＮ装置であって、データ送信部は、通信データをＵＤＰ（User Datagram Protocol）でカプセリングして相手装置へ送信するものを含む。
【００１８】
また、本発明は、第８の態様として、上記のＶＰＮ装置であって、相手装置の外部アドレス・ポート情報により特定される接続先の特定のポートに対して、ＵＤＰパケットの送信動作を所定の間隔で実行する通信経路維持部を備えるものを含む。
【００１９】
また、本発明は、第９の態様として、上記のＶＰＮ装置であって、通信経路維持部は、通信終了判断に基づいてＵＤＰパケットの送信動作を停止するものを含む。
【００２０】
本発明は、第１０の態様として、第１のネットワーク上の第１の装置と、この第１のネットワークと接続された第２のネットワークを介して、他の第３のネットワーク上の第２の装置との間で、仮想プライベートネットワークを構築して通信を行うＶＰＮネットワーキング方法であって、第２のネットワーク側から第１のネットワーク上の第１の装置にアクセス可能なアドレス情報である第１の装置の外部アドレス・ポート情報を取得するステップと、第１の装置の外部アドレス・ポート情報を、第２の装置に送信するステップと、第２の装置が取得した、第２のネットワーク側から第３のネットワーク上の第２の装置にアクセス可能なアドレス情報である第２の装置の外部アドレス・ポート情報を、第２の装置より受信するステップと、第２の装置の外部アドレス・ポート情報を用いて第２の装置へ通信データを送信するステップと、を有するＶＰＮネットワーキング方法を提供する。
【００２１】
本発明は、第１１の態様として、コンピュータに、第１のネットワーク上の自装置と、この第１のネットワークと接続された第２のネットワークを介して、他の第３のネットワーク上の相手装置との間で、仮想プライベートネットワークを構築して通信を行う機能を実現させるプログラムを格納した記憶媒体であって、第２のネットワーク側から第１のネットワーク上の自装置にアクセス可能なアドレス情報である自装置の外部アドレス・ポート情報を取得する外部アドレス・ポート取得部と、自装置の外部アドレス・ポート情報を、相手装置に送信する自装置アドレス情報送信部と、相手装置が取得した、第２のネットワーク側から第３のネットワーク上の相手装置にアクセス可能なアドレス情報である相手装置の外部アドレス・ポート情報を、相手装置より受信する相手装置アドレス情報受信部と、相手装置の外部アドレス・ポート情報を用いて相手装置へ通信データを送信するデータ送信部と、を含む各部の機能をコンピュータに実現させるプログラムを格納した記憶媒体を提供する。
【００２２】
上記構成により、アドレス情報サーバによって自装置の外部アドレス・ポート情報を取得し、相手装置に自装置の外部アドレス・ポート情報を送信するとともに、相手装置の外部アドレス・ポート情報を受信することで、相手装置の外部アドレス・ポート情報を用いて互いに暗号化通信を行うことが可能になる。このため、ＶＰＮの動作に必要な各種パラメータの設定作業を事前に行う必要がなく、簡易かつ柔軟にＶＰＮを構築可能となる。
【発明の効果】
【００２３】
本発明によれば、ＶＰＮの動作に必要な各種パラメータの設定作業を事前に行うことなく、簡易かつ柔軟にＶＰＮを構築することが可能なＶＰＮ装置を提供できる。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施形態に係るＶＰＮシステムの構成例を示す図
【図２】本実施形態のＶＰＮ装置のハードウェア構成の構成例を示すブロック図
【図３】本実施形態のＶＰＮ装置の機能的な構成例を示すブロック図
【図４】本実施形態のＶＰＮシステムにおけるＶＰＮ構築時の処理手順を示すシーケンス図
【図５】本実施形態のＶＰＮ装置におけるＶＰＮ構築時の処理内容を示すフローチャート
【図６】本実施形態における外部アドレス情報取得処理の処理内容を示すフローチャート
【図７】本実施形態における外部アドレス・ポート取得要求に関する処理手順を示すシーケンス図
【図８】外部アドレス・ポート取得要求と外部アドレス・ポート情報返信のそれぞれのパケット構造を示す図
【図９】ＶＰＮ通信におけるパケット構造を示す図
【図１０】ＵＤＰホールパンチングの動作に関する状態遷移を示す図
【発明を実施するための形態】
【００２５】
以下に、本発明に係るＶＰＮ装置、ＶＰＮネットワーキング方法、及び記憶媒体の一例としての実施形態を説明する。ここでは、広域ネットワーク（ＷＡＮ、グローバルネットワーク）を介して２つのローカルエリアネットワークの経路を（ＬＡＮ、ローカルネットワーク）経路接続して仮想プライベートネットワーク（ＶＰＮ）システムを構築する場合の構成例を示す。ＬＡＮとしては、有線ＬＡＮまたは無線ＬＡＮなどが用いられる。ＷＡＮとしては、インターネット等が用いられる。
【００２６】
図１は本発明の実施形態に係るＶＰＮシステムの構成例を示す図である。本実施形態のＶＰＮシステムは、一つの拠点に設けられたＬＡＮ（第１のネットワークに相当）１００と、他の拠点に設けられたＬＡＮ（第３のネットワークに相当）３００とを、インターネット等のＷＡＮ（第２のネットワークに相当）２００を介して通信経路を接続する。そして、ＬＡＮ１００の配下に接続された端末１０３とＬＡＮ３００の配下に接続された端末３０３との間で、ＶＰＮによる秘匿性を担保した通信（以下、「ＶＰＮ通信」と称する）を可能にしている。具体的なＶＰＮ通信の用途（アプリケーションプログラム等）としては、ＩＰ電話（音声通話）、ネットミーティング（動画＆音声通信）、ネットワークカメラ（ビデオ伝送）などが想定される。
【００２７】
ＬＡＮ１００とＷＡＮ２００との境界にはルータ１０２が配設され、ＷＡＮ２００とＬＡＮ３００との境界にはルータ３０２が配設されている。また、本実施形態では、ＶＰＮの構築を可能にするために、ＬＡＮ１００にはＶＰＮ装置１０１が接続され、ＬＡＮ３００にはＶＰＮ装置３０１が接続されている。そして、ＶＰＮ装置１０１には配下の端末１０３が接続され、ＶＰＮ装置３０１には配下の端末３０３が接続されている。なお、ＶＰＮ装置１０１、３０１は、ここでは中継装置等において構成される独立した装置の構成例を示しているが、ＬＡＮ内の他の通信機器や端末等においてＶＰＮ機能を有する装置として構成することも可能である。
【００２８】
また、ＷＡＮ２００上には、ＶＰＮ装置１０１とＶＰＮ装置３０１との間のＶＰＮによる接続（以下、「ＶＰＮ接続」と称する）を可能にするために、ＳＴＵＮサーバ２０１と呼制御サーバ２０２とが接続されている。ＳＴＵＮサーバ２０１は、ＳＴＵＮ（Simple Traversal of User Datagram Protocol (UDP) through Network Address Translators (NATs)）プロトコルを実行するために用いられるサーバである。呼制御サーバ２０２は、ＶＰＮ装置や端末等のピア間の発呼、着呼のために用いられるサーバである。
【００２９】
図１において、破線は外部アドレスとポートの情報を含む外部アドレス・ポート情報の流れを示している。また、一点鎖線は発呼及び着呼の制御に関する呼制御信号の流れを示している。また、実線はピア間で伝送される通信データに関するピア間通信の流れを示している。さらに、ピア間通信のためにＶＰＮ接続された通信経路を仮想トンネルとして、図中に表す。
【００３０】
各機器がＷＡＮ２００を介して通信する場合、ＷＡＮ２００上では、伝送するパケットの送信元や送信先を特定するためのアドレス情報として、ＷＡＮにおいて特定可能なグローバルなアドレス情報が用いられる。一般にはＩＰネットワークが用いられるため、グローバルＩＰアドレス及びポート番号が用いられる。しかし、各ＬＡＮ１００、３００内の通信においては、送信元や送信先を特定するためのアドレス情報として、ＬＡＮ内のみで特定可能なローカルなアドレス情報が用いられる。一般にはＩＰネットワークが用いられるため、ローカルＩＰアドレス及びポート番号が用いられる。したがって、各ＬＡＮ１００、３００とＷＡＮ２００との間の通信を可能にするために、ローカルなアドレス情報とグローバルなアドレス情報との相互変換を行うＮＡＴ（Network Address Translation）機能が各ルータ１０２、３０２に搭載されている。
【００３１】
ただし、ＬＡＮ１００、３００の配下の各端末においては、外部からアクセス可能なグローバルなアドレス情報を自身で持っていない。また、特別な設定を行わない限り、ＬＡＮ１００配下の端末１０３が他のＬＡＮ３００配下の端末３０３と直接通信することはできない。また、各ルータ１０２、３０２のＮＡＴ機能のため、普通の状態ではＷＡＮ２００側から各ＬＡＮ１００、３００内の各端末にアクセスすることもできない。
【００３２】
このような状況であっても、本実施形態では、各拠点のＬＡＮにＶＰＮ装置１０１、３０１を設けることにより、図１において実線で示すピア間通信の経路のように、ＬＡＮ間をＶＰＮ接続して端末１０３と端末３０３との間で仮想的な閉じられた通信経路を通じて直接通信することが可能になる。本実施形態のＶＰＮ装置の構成、機能、及び動作について以下に順を追って説明する。
【００３３】
ＳＴＵＮサーバ２０１は、ＳＴＵＮプロトコルの実行に関するサービスを行うもので、いわゆるＮＡＴ越えの通信を行うために必要な情報を提供するアドレス情報サーバである。ＳＴＵＮは、音声、映像、文章などの双方向リアルタイムＩＰ通信を行うアプリケーションにおいて、ＮＡＴ通過の方法の１つとして使われる標準化されたクライアントサーバ型のインターネットプロトコルである。ＳＴＵＮサーバ２０１は、アクセス元からの要求に応じて、外部からアクセス可能な当該アクセス元のグローバルなアドレス情報として、外部ネットワークから見える外部アドレスとポートの情報を含む外部アドレス・ポート情報を返信する。外部アドレス・ポート情報としては、ＩＰネットワークにおいてはグローバルＩＰアドレス及びポート番号が用いられる。
【００３４】
各ＶＰＮ装置１０１、３０１は、ＳＴＵＮサーバ２０１との間で所定のテスト手順の通信を実行し、ＳＴＵＮサーバ２０１から自装置のグローバルＩＰアドレス及びポート番号が含まれる応答パケットを受信する。これにより、各ＶＰＮ装置１０１、３０１は自装置のグローバルＩＰアドレス及びポート番号を取得することができる。また、自装置の位置するＬＡＮとＷＡＮとの間にルータが複数存在する場合等であっても、これらのルータ等がＵＰｎＰ（Universal Plug and Play）の機能を有していない場合であっても、確実にグローバルＩＰアドレス及びポート番号を取得できるという効果もある。
【００３５】
なお、ＶＰＮ装置１０１、３０１がグローバルＩＰアドレス及びポート番号を取得するための方法に関しては、ＩＥＴＦのＲＦＣ ３４８９（STUN - Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs)）にて記載された手法を利用することもできる。しかし、ＳＴＵＮによる手法はグローバルＩＰアドレス及びポート番号を取得するところまでが可能なのであって、通信に先立って予め各種パラメータの設定作業を行うこともなく、簡易かつ柔軟にＶＰＮを構築する技術は本発明の特徴である。
【００３６】
呼制御サーバ２０２は、特定の相手先を呼び出して通信経路を確立するための通信装置間の呼制御に関するサービスを行う中継サーバである。呼制御サーバ２０２は、登録された各ユーザまたは端末の識別情報を保持しており、例えばＩＰ電話の機能を有する通信システムの場合には、接続相手の電話番号に基づいて特定の相手先を呼び出すことができる。また、呼制御サーバ２０２は、信号やデータを中継する機能を有しており、発信側の装置から送出されたパケットを着信側の装置に転送したり、着信側の装置から送出されたパケットを発信側の装置に転送することも可能である。
【００３７】
なお、ＳＴＵＮサーバ２０１及び呼制御サーバ２０２は、ここでは別個のサーバによる構成例を示しているが、１つのサーバにこれらのアドレス情報サーバと中継サーバの２つのサーバの機能を搭載して構成してもよいし、ＷＡＮ上の他のいずれかのサーバに同様の機能を搭載して構成することも可能である。
【００３８】
次に、本実施形態のＶＰＮ装置の構成及び機能について説明する。なお、ＶＰＮ装置１０１とＶＰＮ装置３０１の構成及び機能は同様であり、ここではＶＰＮ装置１０１によって説明する。図２は本実施形態のＶＰＮ装置のハードウェア構成の構成例を示すブロック図である。
【００３９】
ＶＰＮ装置１０１は、マイクロコンピュータ（ＣＰＵ）１１１、フラッシュＲＡＭ等による不揮発性メモリ１１２、ＳＤ ＲＡＭ等によるメモリ１１３、ネットワークインタフェース１１４、ネットワークインタフェース１１５、ＬＡＮ側ネットワーク制御部１１６、ＷＡＮ側ネットワーク制御部１１７、通信中継部１１８、表示制御部１１９、表示部１２０を有して構成される。
【００４０】
マイクロコンピュータ１１１は、所定のプログラムを実行することによりＶＰＮ装置１０１全体の制御を実施する。不揮発性メモリ１１２は、マイクロコンピュータ１１１が実行するプログラムを保持している。このプログラムの中には、ＶＰＮ装置１０１が外部アドレス・ポート情報を取得するための外部アドレス・ポート取得プログラムも含まれている。
【００４１】
なお、マイクロコンピュータ１１１が実行するプログラムについては、任意の通信経路を経由してオンラインで外部のサーバから取得することもできるし、例えばメモリカードやＣＤ−ＲＯＭのような記録媒体から読み込んで取得することもできる。換言すれば、汎用のコンピュータ（マイクロコンピュータ１１１）にＶＰＮ装置の機能を実現するプログラムを記録媒体から読み込むことによってＶＰＮ装置、およびＶＰＮネットワーキング方法を実現することができる。
なお、マイクロコンピュータ１１１がプログラムを実行する時には、不揮発性メモリ１１２上のプログラムの一部がメモリ１１３上に展開され、メモリ１１３上のプログラムが実行される場合もある。
【００４２】
メモリ１１３は、ＶＰＮ装置１０１の運用中のデータ管理や、各種設定情報などを一時的に記憶するためのものである。設定情報としては、自端末の外部アドレス・ポート取得要求の応答に含まれる外部アドレス・ポート情報等、通信に必要なあて先アドレス情報などが含まれる。
【００４３】
ネットワークインタフェース１１４は、ＶＰＮ装置１０１と自装置が管理する配下の端末１０３とを通信可能な状態で接続するためのインタフェースである。ネットワークインタフェース１１５は、ＶＰＮ装置１０１とＬＡＮ１００とを通信可能な状態で接続するためのインタフェースである。ＬＡＮ側ネットワーク制御部１１６は、ＬＡＮ側のネットワークインタフェース１１４に関する通信制御を行うものである。ＷＡＮ側ネットワーク制御部１１７は、ＷＡＮ側のネットワークインタフェース１１５に関する通信制御を行うものである。
【００４４】
通信中継部１１８は、ＬＡＮ側に接続された配下の端末１０３から外部のＶＰＮ接続先（ＶＰＮ装置３０１配下の端末３０３）へ送出するパケットデータと、反対に、外部のＶＰＮ接続先（ＶＰＮ装置３０１配下の端末３０３）から配下の端末１０３宛に到着したパケットデータをそれぞれ中継する。
【００４５】
表示部１２０は、ＶＰＮ装置１０１としての動作状態の表示等を行う表示器により構成され、各種状態をユーザあるいは管理者に通知する。表示部１２０は、複数の発光ダイオード（ＬＥＤ）や液晶表示器（ＬＣＤ）等により構成される。表示制御部１１９は、表示部１２０の表示制御を行うもので、マイクロコンピュータ１１１からの表示信号に従って表示部１２０に表示する内容等を制御する。
【００４６】
図３は本実施形態のＶＰＮ装置の機能的な構成例を示すブロック図である。
【００４７】
ＶＰＮ装置１０１は、機能構成として、システム制御部１３０、配下端末管理部１３１、メモリ部１３２、データ中継部１３３、設定用インタフェース部１３４、通信制御部１４０を有して構成される。メモリ部１３２は、外部アドレス・ポート情報記憶部１３５を有する。通信制御部１４０は、外部アドレス・ポート取得部１４１、ＶＰＮ機能部１４２、呼制御機能部１４３を有する。ＶＰＮ機能部１４２は、暗号処理部１４５を有する。これらの各機能は、図２に示した各ブロックのハードウェアの動作、またはマイクロコンピュータ１１１が所定のプログラムを実行することにより実現する。
【００４８】
なお、ＶＰＮ装置１０１のＬＡＮ側のネットワークインタフェース１１４は、配下の端末１０３と接続され、ＷＡＮ側のネットワークインタフェース１１５は、ＬＡＮ１００及びルータ１０２を経由してＷＡＮ２００と接続される。
【００４９】
システム制御部１３０は、ＶＰＮ装置１０１の全体の制御を行う。配下端末管理部１３１は、ＶＰＮ装置１０１配下の端末１０３の管理を行う。メモリ部１３２は、外部アドレス・ポート情報記憶部１３５において、外部アドレス（ＷＡＮ２００上でのグローバルＩＰアドレス）とポート（ＩＰネットワークのポート番号）の情報を含む外部アドレス・ポート情報を記憶する。外部アドレス・ポート情報としては、接続元である配下の端末１０３に割り当てられたグローバルＩＰアドレス及びポート番号の情報や、接続先の端末３０３に割り当てられたグローバルＩＰアドレス及びポート番号の情報などを記憶する。
データ中継部１３３は、接続元の端末１０３から接続先の端末３０３に向かって転送されるパケットや、逆に接続先の端末３０３から接続元の端末１０３に向かって転送されるパケットをそれぞれ中継する。設定用インタフェース部１３４は、ユーザあるいは管理者がＶＰＮ装置１０１に対する設定操作等の各種操作を行うためのユーザインタフェースである。このユーザインタフェースの具体例として、端末上で動作するブラウザによって表示するＷｅｂページなどが用いられる。
【００５０】
通信制御部１４０の外部アドレス・ポート取得部１４１は、ＶＰＮ装置１０１の配下の端末１０３に割り当てられた外部アドレス・ポート情報をＳＴＵＮサーバ２０１から取得する。また、接続先の端末３０３の外部アドレス・ポート情報を含むパケットを呼制御サーバ２０２を経由して受信し、接続先の端末３０３に割り当てられた外部アドレス・ポート情報を取得する。この外部アドレス・ポート情報取得動作の詳細については後で説明する。外部アドレス・ポート取得部１４１が取得した情報は、メモリ部１３２の外部アドレス・ポート情報記憶部１３５に保持される。
【００５１】
通信制御部１４０のＶＰＮ機能部１４２は、暗号処理部１４５において、ＶＰＮ通信のために必要な暗号処理を行う。すなわち、暗号処理部１４５は、送信するパケットをカプセリングして暗号化したり、受信したパケットをアンカプセリングして復号化して元のパケットを抽出する。この暗号処理動作については後で説明する。なお、ＶＰＮ通信は、図１に示したようなピア間通信ではなく、ＷＡＮ２００上に設けられるサーバでパケットの中継を行い、クライアント／サーバ方式でＶＰＮ通信を行うことも可能である。この場合には、サーバ側で暗号処理を行うようにしてもよい。
【００５２】
呼制御機能部１４３は、目的の接続先に接続するための接続要求を呼制御サーバ２０２に送信したり、接続先からの接続応答を呼制御サーバ２０２を経由して受信するための処理を実施する。
【００５３】
すなわち、通信制御部１４０は、自装置の外部アドレス・ポート情報を取得する外部アドレス・ポート取得部、自装置の外部アドレス・ポート情報を送信する自装置アドレス情報送信部、相手装置の外部アドレス・ポート情報を受信する相手装置アドレス情報受信部、通信データを暗号化する暗号処理部、通信データを送信するデータ送信部の各機能を実現する。また、通信制御部１４０は、ＶＰＮ通信の通信経路を維持する通信経路維持部の機能も有している。
【００５４】
次に、本実施形態のＶＰＮ装置１０１によるＶＰＮ構築時の動作について説明する。図４は本実施形態のＶＰＮシステムにおけるＶＰＮ構築時の処理手順を示すシーケンス図である。この図４では、ＶＰＮ装置を含むネットワークにおいて、ＶＰＮ装置１０１の配下の端末１０３からＷＡＮ２００を経由して他のＶＰＮ装置３０１の配下の端末３０３に接続しようとする場合の処理を示している。
【００５５】
まず、図４に示す処理に先立ち、端末１０３は呼制御サーバ２０２にログインしてユーザ認証を受けるようにする。端末１０３がユーザ認証に成功した場合、呼制御サーバ２０２において、端末１０３の識別情報（ＭＡＣアドレス、ユーザＩＤ、電話番号など）やネットワーク上の位置情報（グローバルＩＰアドレス）等の登録、設定が行われる。以降、端末１０３と呼制御サーバ２０２との間で通信可能となる。
【００５６】
この状態で、ＶＰＮ装置１０１は、ＶＰＮ通信を行うアプリケーションの起動に伴って外部アドレス・ポート取得部１４１の機能により、配下の端末１０３からのＶＰＮ接続の接続要求を受けると、ＳＴＵＮサーバ２０１との間で外部アドレス・ポート取得手順を行う（ＰＲ１）。このとき、ＶＰＮ装置１０１は、自装置に割り当てられた外部アドレス・ポート情報（ＷＡＮ２００側からみたグローバルＩＰアドレス及びポート番号）を取得するため、ＳＴＵＮサーバ２０１に対して、外部アドレス・ポート取得要求としてバインディングリクエスト（Binding Request 接続要求、RFC3489参照；以下同じ）パケットを送出する。一方、ＳＴＵＮサーバ２０１は、外部アドレス・ポート取得要求に対して応答し、ＶＰＮ装置１０１に外部アドレス・ポート情報返信として外部アドレス・ポート情報を含むバインディングレスポンス（Binding Response 接続応答、RFC3489参照；以下同じ）パケットを返送する。そして、ＶＰＮ装置１０１は、外部アドレス・ポート情報返信により得られた外部アドレス・ポート情報を記憶する。
【００５７】
次に、ＶＰＮ装置１０１は、呼制御サーバ２０２に対して、接続先の端末３０３を配下に持つＶＰＮ装置３０１へのＰ２Ｐ（Peer to Peer）の通信経路を構築するための接続要求を行う（ＰＲ２）。このとき、ＶＰＮ装置１０１は、発呼側アドレス情報として、外部アドレス・ポート取得手順ＰＲ１で取得した自装置の外部アドレス・ポート情報（グローバルＩＰアドレス及びポート番号）を含む接続要求を呼制御サーバ２０２へ送信する。呼制御サーバ２０２は、この接続要求を中継してＶＰＮ接続の接続先となるＶＰＮ装置３０１へ送信する。この接続要求により、呼制御サーバ２０２は、ＶＰＮ装置１０１がＶＰＮ装置３０１へＰ２Ｐ経路構築のためのＶＰＮ接続をしたいという要求を接続先に通知する。
【００５８】
接続先のＶＰＮ装置３０１は、呼制御サーバ２０２からの接続要求を受けると、ＳＴＵＮサーバ２０１との間で外部アドレス・ポート取得手順を行う（ＰＲ３）。このとき、ＶＰＮ装置３０１は、上記ＶＰＮ装置１０１と同様、自装置に割り当てられた外部アドレス・ポート情報（ＷＡＮ２００側からみたグローバルＩＰアドレス及びポート番号）を取得するため、ＳＴＵＮサーバ２０１に対して、外部アドレス・ポート取得要求としてバインディングリクエストパケットを送出する。一方、ＳＴＵＮサーバ２０１は、外部アドレス・ポート取得要求に対して応答し、ＶＰＮ装置３０１に外部アドレス・ポート情報返信として外部アドレス・ポート情報を含むバインディングレスポンスパケットを返送する。そして、ＶＰＮ装置３０１は、外部アドレス・ポート情報返信により得られた外部アドレス・ポート情報を記憶する。
【００５９】
次に、ＶＰＮ装置３０１は、呼制御サーバ２０２に対して、接続要求に対する接続応答を行う（ＰＲ４）。このとき、ＶＰＮ装置３０１は、被呼側アドレス情報として、外部アドレス・ポート取得手順ＰＲ３で取得した自装置の外部アドレス・ポート情報（グローバルＩＰアドレス及びポート番号）を含む接続応答を呼制御サーバ２０２へ送信する。呼制御サーバ２０２は、この接続応答を中継してＶＰＮ接続の接続要求元となるＶＰＮ装置１０１へ送信する。この接続応答により、呼制御サーバ２０２は、接続要求に対するＶＰＮ装置３０１からＶＰＮ装置１０１への応答を接続要求元に通知する。
【００６０】
この段階で、接続元のＶＰＮ装置１０１と接続先のＶＰＮ装置３０１とは、お互いに相手の外部アドレス・ポート情報を取得している。したがって、ＶＰＮ装置１０１及びＶＰＮ装置３０１は、互いに相手の外部アドレス・ポート情報（グローバルＩＰアドレス及びポート番号）の送信先に設定してＷＡＮ２００を経由してパケットを送信し、通信可能であること（ＶＰＮ接続）を確認し、暗号化したデータ通信（ＶＰＮ通信）を開始する（ＰＲ５）。
【００６１】
図５は本実施形態のＶＰＮ装置におけるＶＰＮ構築時の処理内容を示すフローチャートである。この図５は、図４のＶＰＮ構築時の処理に関する具体的な処理内容を示したものである。図５において、ステップＳ１１〜Ｓ１６は接続元（発呼側）のＶＰＮ装置１０１が行う処理の内容を示し、ステップＳ２１〜Ｓ２６は接続先（被呼側）のＶＰＮ装置３０１が行う処理の内容を示している。
【００６２】
ＶＰＮの構築にあたってＶＰＮ接続するために、発呼側のＶＰＮ装置１０１は、まず、待受用の外部アドレス及びポートの情報として、自装置のグローバルＩＰアドレス及びポート番号を含む外部アドレス・ポート情報を取得する処理を行う（ＰＲ１、ステップＳ１１）。この外部アドレス情報取得処理の詳細は、本願発明の第２の態様における「所定の手順の通信」に相当し、図５を用いてさらに詳細に説明する。
【００６３】
次に、ＶＰＮ装置１０１は、被呼側のＶＰＮ装置３０１に対する接続要求を送信する（ＰＲ２、ステップＳ１２）。この接続要求は、接続先の端末３０３を特定するための識別情報などを含むものである。また、接続要求には、ステップＳ１１で取得した自装置の外部アドレス・ポート情報を含めて送信する。この接続要求は、呼制御サーバ２０２を経由してＶＰＮ装置３０１に伝送される。
【００６４】
被呼側のＶＰＮ装置３０１は、ＶＰＮ装置１０１からの接続要求を受信する（ステップＳ２１）。接続要求を受信すると、ＶＰＮ装置３０１は、この接続要求に含まれている接続元（ＶＰＮ装置１０１側）の外部アドレス・ポート情報を取り出し、この情報をメモリに記憶する（ステップＳ２２）。そして、ＶＰＮ装置３０１は、待受用の外部アドレス及びポートの情報として、ステップＳ１１と同様にして、自装置（ＶＰＮ装置１０１からから見ると相手装置）のグローバルＩＰアドレス及びポート番号を含む外部アドレス・ポート情報を取得する処理を行う（ステップＳ２３）。
【００６５】
次に、ＶＰＮ装置３０１は、発呼側のＶＰＮ装置１０１から受信した接続要求に対する接続応答を送信する（ステップＳ２４）。この接続応答には、ステップＳ２３で取得した自装置の外部アドレス・ポート情報を含めて送信する。この接続応答は、呼制御サーバ２０２を経由してＶＰＮ装置１０１に伝送される。
【００６６】
発呼側のＶＰＮ装置１０１は、接続応答を受信したかを判定して接続応答の待受けを行う（ステップＳ１３）。接続応答を受信すると、ＶＰＮ装置１０１は、この接続応答に含まれている接続先（ＶＰＮ装置３０１側）の外部アドレス・ポート情報を取り出し、この情報をメモリに記憶する（ステップＳ１４）。
【００６７】
上記の処理により、データ通信開始処理ＰＲ５を実行する時点では、発呼側のＶＰＮ装置１０１は、自装置の外部アドレス・ポート情報と、被呼側のＶＰＮ装置３０１の外部アドレス・ポート情報とを取得している。一方、被呼側のＶＰＮ装置３０１は、自装置の外部アドレス・ポート情報と、発呼側のＶＰＮ装置１０１の外部アドレス・ポート情報とを取得している。
【００６８】
データ通信開始後、発呼側のＶＰＮ装置１０１は、被呼側のＶＰＮ装置３０１が待ち受けているグローバルＩＰアドレス及びポート番号を宛先として、ＶＰＮ装置３０１に向けてＷＡＮ２００上にデータを送信する（ステップＳ１５）。一方、ＶＰＮ装置３０１は、自装置の待受用のグローバルＩＰアドレス及びポート番号によってデータの待ち受けを行い、発呼側のＶＰＮ装置１０１から送信されたデータを受信する（ステップＳ２５）。また、被呼側のＶＰＮ装置３０１は、発呼側のＶＰＮ装置１０１が待ち受けているグローバルＩＰアドレス及びポート番号を宛先として、ＶＰＮ装置１０１に向けてＷＡＮ２００上にデータを送信する（ステップＳ２６）。一方、ＶＰＮ装置１０１は、自装置の待受用のグローバルＩＰアドレス及びポート番号によってデータの待ち受けを行い、被呼側のＶＰＮ装置３０１から送信されたデータを受信する（ステップＳ１６）。なお、待ち受けから受信に至る本発明の特徴は、「ホールパンチング」として以後に詳細に説明する。
【００６９】
ＶＰＮ装置１０１及びＶＰＮ装置３０１の双方でデータの送受信に成功すると、ＶＰＮ装置１０１とＶＰＮ装置３０１との間でＶＰＮ接続されたことが認識される。以降は、サーバを経由することなくＰ２Ｐで直接通信可能であり、ＶＰＮ装置１０１配下の端末１０３とＶＰＮ装置３０１配下の端末３０３との間で暗号化したＶＰＮ通信を行う。
【００７０】
ＶＰＮ通信を終了する際は、ＶＰＮ装置１０１及びＶＰＮ装置３０１は当該ＶＰＮ通信に用いていたポートを閉じるようにする。これにより、該当するポートに対して外部からのアクセスが不能になるので、セキュリティホールを塞ぐことができる。ここで、各ポートはアプリケーションに対応しており、ＶＰＮ接続時にアプリケーションごとに割り当てたポート番号を指定して通信を行う。
たとえば、端末１０３側でアプリケーションを終了した場合などは、端末１０３からＶＰＮ装置１０１へ一定時間パケットが送られて来ないから、ＶＰＮ装置１０１は端末１０３の通信が終了したものと判断してルータ１０２との通信を停止する。その結果、ＶＰＮ通信は終了すると共にルータ１０２のポートは閉じられる。こうして、必要なときに通信相手の端末との間でＶＰＮ通信を行い、通信を終了するとＶＰＮ通信を終了しセキュリティホールを塞ぐことができる。
【００７１】
次に、上記ステップＳ１１で示した外部アドレス情報取得処理について説明する。図６は外部アドレス情報取得処理の処理内容を示すフローチャート、図７は外部アドレス・ポート取得要求に関する処理手順を示すシーケンス図である。また、図８は外部アドレス・ポート取得要求と外部アドレス・ポート情報返信のそれぞれのパケット構造を示す図である。図６では、外部アドレス情報取得処理におけるＶＰＮ装置とＳＴＵＮサーバの各々の動作を示している。
【００７２】
ＶＰＮ装置１０１は、外部アドレス・ポート取得要求として、バインディングリクエストパケットをＳＴＵＮサーバ２０１に送信する（ステップＳ３１）。バインディングリクエストパケットは、図８の上側に示すように、この要求の識別ＩＤ（トランザクションＩＤ）が含まれる領域Ｄ１１と、データ長の情報（データLength）が含まれる領域Ｄ１２と、このパケットが「バインディングリクエスト」であることを示す符号（0x0001）が含まれる領域Ｄ１３とを有している。また、図８には示されていないが、実際のパケットのヘッダには、送信元や送信先を示すグローバルＩＰアドレス及びポート番号の情報が含まれている。
【００７３】
ＳＴＵＮサーバ２０１は、待ち受け状態で外部アドレス・ポート取得要求を待機している（ステップＳ４１）。ここで、バインディングリクエストパケットを受信すると、ＳＴＵＮサーバ２０１は、この到着パケットからアドレス情報として、パケットの送信元を示すＷＡＮ側から見た外部アドレス・ポート情報（グローバルＩＰアドレス及びポート番号）を取得する（ステップＳ４２）。
【００７４】
そして、ＳＴＵＮサーバ２０１は、外部アドレス・ポート取得要求のバインディングリクエストパケットに対する外部アドレス・ポート情報返信として、バインディングレスポンスパケットをＶＰＮ装置１０１に向けて送信する（ステップＳ４３）。バインディングレスポンスパケットは、図８の下側に示すように、このパケットが「バインディングレスポンス」であることを示す符号（0x0101）が含まれる領域Ｄ２１と、データ長の情報（データLength）が含まれる領域Ｄ２２と、この応答の識別ＩＤが含まれる領域Ｄ２３と、属性情報（MAPPED-ADDRESS）が含まれる領域Ｄ２４とを有している。属性情報の領域Ｄ２４には、識別子の領域Ｄ２４ａと、属性データ長の領域Ｄ２４ｂと、外部アドレス・ポート情報の領域Ｄ２４ｃとが含まれている。ＳＴＵＮサーバ２０１は、この外部アドレス・ポート情報の領域Ｄ２４ｃにおいて、ステップＳ４２で取得したバインディングリクエストパケットの送信元のＶＰＮ装置１０１に割り当てられている外部アドレス（グローバルＩＰアドレス）とポート（ポート番号）の情報を装填して返信する。
【００７５】
ＶＰＮ装置１０１は、外部アドレス・ポート取得要求の送信後、待ち受け状態で外部アドレス・ポート情報返信を待機する（ステップＳ３２）。ここで、バインディングレスポンスパケットを受信すると、ＶＰＮ装置１０１は、このバインディングレスポンスパケットに含まれる外部アドレス・ポート情報（グローバルＩＰアドレス及びポート番号）を取り出し、メモリに保存する（ステップＳ３３）。
【００７６】
ここで、ＶＰＮ接続後のＶＰＮ通信において伝送されるパケットについて説明する。図９はＶＰＮ通信におけるパケット構造を示す図である。この図９では、発呼側の端末１０３からＶＰＮ装置１０１、ＷＡＮ２００、ＶＰＮ装置３０１を通って被呼側の端末３０３までパケットを伝送する場合の、パケットのカプセリング及びアンカプセリングについて示している。
【００７７】
ＶＰＮ接続において、ＶＰＮ装置１０１、３０１内のＶＰＮ機能部１４２は、ＶＰＮ装置１０１とＶＰＮ装置３０１との間にＶＰＮのトンネルセッションを形成する。これにより、Ｐ２Ｐ接続によって送信元の端末１０３と送信先の端末３０３との間で通信の秘匿性を担保して安全にパケットを伝送できるようにする。このトンネルセッションの経路では、ＶＰＮ機能部１４２の暗号処理部１４５によりカプセリングされ暗号化されたパケットが伝送される。
【００７８】
図９の最上段には、送信元の端末１０３（端末Ａ）上のＶＰＮ通信用のアプリケーションが通信相手の端末３０３（端末Ｄ）に送信するＩＰパケットによるパケットＰ１が示されている。このパケットＰ１には、送信元の端末Ａ及び送信先の端末ＤのＩＰアドレス情報Ｐ１ａと、端末Ａから端末Ｄへ送信する際のポート情報Ｐ１ｂと、伝送対象の実際のデータ部分Ｐ１ｃとが含まれている。
【００７９】
ＶＰＮ装置１０１は、配下の端末１０３（端末Ａ）から送信されたパケットＰ１を受け取って中継する際に、ＶＰＮ機能部１４２において暗号化及びカプセリングを行い、パケットＰ２を生成して転送する。カプセル化されたパケットＰ２の中には、上記端末Ａから通信相手の端末Ｄへ送るパケットＰ１の他に、送信元のＶＰＮ装置１０１及び送信先のＶＰＮ装置３０１のＩＰアドレス情報Ｐ２ａと、ＶＰＮ装置１０１からＶＰＮ装置３０１への送信に用いるポート情報Ｐ２ｂとが含まれている。この際、ＶＰＮ装置１０１はパケットＰ２をＵＤＰ（User Datagram Protocol）でカプセリングしてＶＰＮ装置３０１へ送信する。
【００８０】
カプセル化されたパケットＰ２は、ＶＰＮ装置１０１から送出され、ＬＡＮ１００、ルータ１０２、ＷＡＮ２００、ルータ３０２、ＬＡＮ３００を経由してＶＰＮ装置３０１まで到達する。
【００８１】
ＶＰＮ装置３０１が受け取るパケットＰ３は、ＶＰＮ装置１０１から送信されたパケットＰ２と同じものである。すなわち、カプセル化されたパケットＰ３の中には、ＶＰＮ装置１０１及びＶＰＮ装置３０１のＩＰアドレス情報Ｐ２ａと、ＶＰＮ装置１０１からＶＰＮ装置３０１への送信に用いるポート情報Ｐ２ｂと、端末Ａから通信相手の端末Ｄへ送るパケットＰ１とが含まれている。ＶＰＮ装置３０１は、パケットＰ３を受け取って中継する際に、カプセル化されたパケットＰ３から配下の端末３０３が受け取るべきパケットＰ１をアンカプセリングして取り出し、端末３０３に転送する。端末３０３（端末Ｄ）では、送信元の端末１０３（端末Ａ）から送信されたパケットＰ１と同じ内容のパケットＰ４を受け取ることができる。
【００８２】
次に、ＬＡＮ１００、３００間のＵＤＰホールパンチングについて説明する。図１０はＵＤＰホールパンチングの動作に関する状態遷移を示す図である。
【００８３】
ＷＡＮを介して複数のＬＡＮを接続するネットワークでは、通常、図１に示したようなＶＰＮシステムの構成のように、ＬＡＮ１００とＷＡＮ２００との境界、及びＷＡＮ２００とＬＡＮ３００との境界にそれぞれルータ１０２、３０２が設けられる。よって、通常の状態では、ＬＡＮ１００内の端末１０３とＬＡＮ３００内の端末３０３との間で直接パケットを伝送することはできない。ＵＤＰの場合、各ルータ１０２、３０２は、外部のＷＡＮ２００側からＬＡＮ１００、３００内部に向かう方向のパケットを遮断するためである。
【００８４】
したがって、図１０の上段において、（１）のようにＬＡＮ１００からＷＡＮ２００へ出る方向のパケットは通るが、（２）のようにＷＡＮ２００からＬＡＮ３００へ入る方向のパケットは通らない。つまり、図１０の上段に示すように、ＬＡＮ１００側からルータ１０２、ＷＡＮ２００、ルータ３０２を介してＬＡＮ３００に向かってパケットを送信すると、このパケットはルータ３０２によって遮断され、ＬＡＮ３００内への侵入が阻止される。
【００８５】
ただし、図１０の中段の（３）に示すように、一旦ＬＡＮ３００からＷＡＮ２００方向へパケットを送出する動作を行うと、その直後はルータ３０２における該当する送信元−送信先間のアドレス及びポートには一時的に穴が空いた状態になる。この場合、図１０の下段の（４）に示すように、外部のＷＡＮ２００側からＬＡＮ３００内へパケットが通過する。つまり、ＬＡＮ３００内からＬＡＮ１００へのパケット送出によって一時的に穴の空いているルータ３０２のポートを利用して、送信先のＬＡＮ１００側からのパケットをルータ１０２、ＷＡＮ２００を介して、ルータ３０２のＬＡＮ３００側に通すことができる。逆方向も同様である。
【００８６】
このルータの機能を利用して、通信相手からのパケットを受け取るために、ＶＰＮ装置１０１、３０１は、事前に上記（３）のような自身のＬＡＮ側から通信相手へパケットを送出する動作を行えばよい。しかし、パケット送出によって外部に穴が空いた使用ポートは、所定時間が経過すると自動的に閉じられる。このため、ＷＡＮ側からＬＡＮ内への通信が可能なポートを維持するためには、上記（３）の動作を、例えば１０秒間程度の間隔で周期的に、あるいは断続的に行う必要がある。このようなＬＡＮからＷＡＮ方向へ事前にパケットを送出する動作、あるいはポート維持のために断続的にパケットを送出する動作は、ホールパンチングと呼ばれる。
【００８７】
このホールパンチングに使用するポート情報は、ＶＰＮ装置１０１、３０１が前述の外部アドレス・ポート情報の取得処理によってＳＴＵＮサーバ２０１から受け取ることができる。自装置の外部アドレス・ポート情報を通信相手のＶＰＮ装置に通知してお互いに保持することで、通信相手に直接パケットを送信してホールパンチングを行い、通信相手からのパケットを受信することが可能になる。
【００８８】
ＶＰＮ装置１０１、３０１は、ＶＰＮ接続を確立した後、伝送するデータが存在しない場合であっても、端末１０３，３０３側のアプリケーション終了をＶＰＮ装置１０１、３０１が判断するまでは、通信可能な状態を維持するために、上記ホールパンチング動作を繰り返す。例えば、１０秒程度の周期で通信相手と何らかのＵＤＰパケットの送受信を所定間隔で繰り返してＶＰＮ用の通信経路のポートを維持する。
ＶＰＮ通信を終了する場合は、端末１０３，３０３側のアプリケーションが終了したことを、各ＶＰＮ装置１０１、３０１が判断（通信終了判断と略称する）してＵＤＰパケットの送受信を停止し、ホールパンチング動作を終了する。これにより、使用ポートが閉じられ、ＷＡＮ側からＬＡＮ側への不正な侵入が防止される。したがって、ＶＰＮ通信時以外はポートを遮断し、ＶＰＮ通信時はポートを開放することができ、セキュリティ性の高い通信が可能になる。
【００８９】
なお、同時に複数のセッション／ポートを使用した通信の場合、例えばシグナリングと音声パケットとを並行して伝送するようなアプリケーションが通信を行う場合には、次のような処理を行う構成としても良い。すなわち、音声パケットのように伝送の遅延が小さいことが要求されるパケットのみを本実施形態によるＰ２Ｐの通信経路で伝送し、遅延が大きくても問題が生じにくいシグナリング用のパケットについては、ＷＡＮ上のサーバでデータを中継して伝送するような構成も可能である。
【００９０】
上述した本実施形態は、ソフトウェアによってＶＰＮを構築するソフトウェアＶＰＮに適用可能なものである。ソフトウェアＶＰＮは、ＶＰＮ機能をコンピュータや情報家電といった機器の内部に自由に組み込むことが可能で、ネットワークセグメント間の接続に限らず、より細かな単位での接続が可能となっている。すなわち、ソフトウェアＶＰＮは、ネットワークに接続された機器が持つ様々な通信アプリケーションと協調して動作することにより、場所単位ではなく、アプリケーション単位での接続を行うことができるものである。ソフトウェアＶＰＮでは、ＩＰｓｅｃやＳＳＬを使用したトンネリング技術を使用し、自装置と相手装置との間でＰ２Ｐの通信経路を確立して暗号化通信を行うことが可能である。
【００９１】
例えば、ＬＡＮとＷＡＮとがＮＡＴルータを介して接続されている場合、ダイナミックに使用するＵＤＰポートでの開放の許可の有無、使用するポートの範囲などによる制限がある。このため、従来のＶＰＮ装置では、これらの条件を満たすような事前設定がＶＰＮ装置の設置時に必要不可欠であった。これに対し、本実施形態では、ＳＴＵＮサーバによって自装置の外部アドレス・ポート情報を取得し、呼制御サーバを経由して相手装置と外部アドレス・ポート情報を交換することで、相手装置の外部アドレス・ポート情報を用いて互いに暗号化通信を行うことが可能になる。このため、事前に各種パラメータの設定作業を行う必要がなく、簡易かつ柔軟にＶＰＮを構築可能である。
【００９２】
このように本実施形態によれば、拠点毎のＶＰＮ装置において、従来のように所定の識別番号等を付与したり、適正なポートの使用や暗号の暗号化、復号化を行えるように装置の設置前に予め設定作業を行ったり、する必要がなくなる。また、常時、ＶＰＮ通信を行う拠点のＶＰＮ装置間でＶＰＮセッションを有効に起動しておく必要もない。したがって、例えばある企業のオフィスから別の企業のオフィスへ一時的にＶＰＮで接続しようとする場合であっても、事前に設定作業を行うことなく、必要なときに必要な期間だけ容易にＶＰＮ通信が可能である。
【００９３】
また、本実施形態では、必要に応じて相手装置との間でＶＰＮ接続を行って暗号化通信を開始し、通信終了時には使用ポートを閉じて通信経路を遮断することができる。これにより、通信のために開放したポートへの不正アクセスを防止でき、セキュリティホールを生じさせることがない。したがって、一時的なＶＰＮの利用が容易に実現可能であり、この際の安全性を高めることができる。ＶＰＮ通信においては、ＩＰｓｅｃやＳＳＬを使用してトンネリング及びカプセリングを行い、ＵＤＰでカプセリングして相手装置との間で伝送することで、ＷＡＮ上での情報の漏洩、盗聴、改竄などを防止でき、秘匿性を担保した通信が可能である。また、ＬＡＮ間のＶＰＮ接続によるＰ２Ｐの通信が可能であるので、中継サーバを設けたクライアント／サーバシステムの構成は必須ではなく、中継サーバの処理負荷の増加や中継時の遅延などを回避できる。
【００９４】
なお、本発明は、本発明の趣旨ならびに範囲を逸脱することなく、明細書の記載、並びに周知の技術に基づいて、当業者が様々な変更、応用することも本発明の予定するところであり、保護を求める範囲に含まれる。たとえば、本発明はＷＡＮ２００上におけるＳＴＵＮサーバ２０１や呼制御サーバ２０２の存在が必須であるものと限定的に解釈されるものではない。自装置の外部アドレス・ポート情報を取得可能な手段・情報源はＳＴＵＮサーバ２０１に代替可能であり、たとえば、ハイブリッドＰ２Ｐや、ピュアＰ２Ｐや、ＤＨＴなどの技術が対応可能となる。また、ノードを順にたどって通信相手と通信経路を構築する技術は呼制御サーバ２０２に代替可能であり、たとえば、ＳＭＴＰやＤＮＳの技術が対応可能となる。
さらにまた、ＶＰＮ装置１０１，３０１が通信するパケットはＵＤＰに限られると限定的に解釈されるものでもない。あるいは、ＶＰＮ装置１０１、３０１は必ずしもその配下に端末１０３，３０３を有する必要はなく、端末１０３，３０３に本発明のＶＰＮ装置のプログラムを読み込むことによって、端末自身がＶＰＮ装置と一体化して機能することも、本発明が保護を求める範囲に含まれる。
【産業上の利用可能性】
【００９５】
本発明は、ＶＰＮの動作に必要な各種パラメータの設定作業を事前に行うことなく、簡易かつ柔軟にＶＰＮを構築することが可能となる効果を有する。よって本発明は、通信相手の固定された専用通信回線の代わりに、多数の加入者で帯域を共用する通信網を利用してネットワーク間などを接続し、専用線を利用する場合と同様の通信サービスを提供するＶＰＮ装置、ＶＰＮネットワーキング方法及びＶＰＮプログラム等として有用である。
【符号の説明】
【００９６】
１００、３００  ＬＡＮ
１０１、３０１  ＶＰＮ装置
１０２、３０２  ルータ
１０３、３０３  端末
１１１  マイクロコンピュータ（ＣＰＵ）
１１２  不揮発性メモリ
１１３  メモリ
１１４、１１５  ネットワークインタフェース
１１６  ＬＡＮ側ネットワーク制御部
１１７  ＷＡＮ側ネットワーク制御部
１１８  通信中継部
１１９  表示制御部
１２０  表示部
１３０  システム制御部
１３１  配下端末管理部
１３２  メモリ部
１３３  データ中継部
１３４  設定用インタフェース部
１３５  外部アドレス・ポート情報記憶部
１４０  通信制御部
１４１  外部アドレス・ポート取得部
１４２  ＶＰＮ機能部
１４３  呼制御機能部
１４５  暗号処理部
２００  ＷＡＮ
２０１  ＳＴＵＮサーバ
２０２  呼制御サーバ
【図１】
2010252261.tif 000003
【図２】
2010252261.tif 000004
【図３】
2010252261.tif 000005
【図４】
2010252261.tif 000006
【図５】
2010252261.tif 000007
【図６】
2010252261.tif 000008
【図７】
2010252261.tif 000009
【図８】
2010252261.tif 000010
【図９】
2010252261.tif 000011
【図１０】
2010252261.tif 000012