説明

VPN装置、VPNネットワーキング方法、及び記憶媒体

【課題】VPNの動作に必要な各種パラメータの設定作業を事前に行うことなく、簡易かつ柔軟にVPNを構築可能にするVPN装置を提供することを目的とする。
【解決手段】接続元となるLAN100側のVPN装置101は、WAN200上のSTUNサーバ201より自装置のグローバルIPアドレス及びポート番号を含む外部アドレス・ポート情報を取得し、この接続元の外部アドレス・ポート情報をWAN200上の呼制御サーバ202を経由して接続先となるLAN300側のVPN装置301に送信する。また、LAN300側のVPN装置301から接続先の外部アドレス・ポート情報を呼制御サーバ202を経由して受信する。VPN装置101は、接続先の外部アドレス・ポート情報を用いて、VPN装置301との間でP2PのVPN通信経路を構築し、暗号化されたパケットを伝送する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、VPN装置、VPNネットワーキング方法、及び記憶媒体に関し、特に、通信相手の固定された専用通信回線(専用線)の代わりに、多数の加入者で帯域を共用する通信網を利用してネットワーク間などを接続するVPN(Virtual Private Network:仮想プライベートネットワーク)技術に関する。
【背景技術】
【0002】
仮想プライベートネットワーク(以下、VPNと記載する)は、たとえば、企業内等の2以上の拠点のローカルエリアネットワーク(LAN)相互間などのように、一般に、異なるネットワークセグメントを、広域ネットワーク(WAN)などを介して互いに接続する。そして、通信の秘匿性を担保することで、仮想的に全体が1つのプライベートネットワークであるように構成する。これにより、専用線を利用する場合と同様の通信サービスを可能にする。
【0003】
このようなVPNは、インターネット等のWANや公衆回線網を利用して構築するいわゆるインターネットVPNと、通信事業者閉域網などのインターネット等とは異なる通信網を使用して構築するIP−VPNと、に大別される。特に、インターネットVPNは、昨今のネットワークインフラのブロードバンド化と、インターネットを利用してVPNを構築することによる安価な価格設定に伴い、利用者が増加している。
【0004】
VPNを構築するにあたり、例えば異なる拠点間で通信を行う場合に、通信経路の途中にインターネット等の共用の通信網が介在するので、通信の漏洩、盗聴、改竄などの危険性がある。そこで、VPN技術においては、通信の秘匿性を担保するために、ネットワークのいずれかの階層において、データを暗号化しカプセリングすることを基本的な技術思想としている。ここで、ある通信プロトコルを他の通信プロトコルのパケットで包んで送ることを「カプセル化(カプセリング)」という。
【0005】
VPN技術で用いられる暗号化プロトコルの具体例としては、IP(Internet Protocol)層で暗号化を施すIPsec(Security Architecture for Internet Protocol)や、TCP(Transmission Control Protocol)層(特にHTTP:Hyper Text Transfer Protocolで使用)で暗号化を施すSSL(Secure Sockets Layer)などが知られている。また、他のVPN技術の例として、SSH、TLS、SoftEther、PPTP、L2TP、L2F、MPLSなどが知られている。ソフトウェアによってVPNを構築するソフトウェアVPNでは、上記のIPsecやSSLを使用したトンネリング技術を使用する。ここで、ある通信プロトコルを、同じまたはより上位の階層のプロトコルのデータとして通信することを「トンネリング」という。VPNを構築する場合は、ネットワークの中継装置または通信を行う端末等(以降、これらを「ピア」とも称する)に設けたVPN装置によって、パケットを暗号化及びカプセル化して仮想トンネルを構築する。これにより、ピア間を結ぶ閉じられた仮想的な直結通信回線を確立する。
【0006】
例えば、ネットワーク間を相互接続する技術として、トンネリング技術を用いて通信路を構築し、通信路を維持するために通信路維持データを送信し、さらに、通信漏洩等を防止するために電子署名や暗号化を施すものが提案されている(例えば、特許文献1参照)。この特許文献1では、外部ネットワーク内の外部ホストがファイアウォールを越えて内部ネットワーク内の内部ホストとの間でトンネルを構築して通信を行うために、トンネルを維持するのに必要なタイミングに応じてトンネルを維持するための通信路維持データを送信する送信手段と、通信路維持データの中に電子署名を施す電子署名手段とを設けている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2008−160497号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、上記特許文献1等の既存のVPN技術では、拠点毎のVPN装置において、適正なアドレスやポート番号を指定し、所定の識別番号等を付与し、これらの暗号化、復号化を実行するために、VPN装置を設置するにあたり予め各種パラメータの設定作業を行う必要があった。
【0009】
したがって、例えば企業内の複数の特定オフィス同士をVPNで接続する場合のように、接続先やその範囲が予め固定されている場合であれば特に問題はない。しかし、例えば1回だけ、あるいは短い期間だけ一時的に所定の接続先に対してVPNを構成しようとすると、その都度、各種パラメータの設定作業が必要になるため、利便性の面で実現が困難であった。つまり、必要に応じて一時的にネットワークを構成したいような環境でVPNを利用することは困難であった。
【0010】
本発明は、上記事情に鑑みてなされたもので、その目的は、VPNの動作に必要な各種パラメータの設定作業を事前に行うことなく、簡易かつ柔軟にVPNを構築することが可能なVPN装置を提供することにある。
【課題を解決するための手段】
【0011】
本発明は、第1の態様として、第1のネットワーク上に設けられ、この第1のネットワークと接続された第2のネットワークを介して、他の第3のネットワーク上の相手装置と自装置との間で仮想プライベートネットワークを構築して通信を行うVPN装置であって、第2のネットワーク側から第1のネットワーク上の自装置にアクセス可能なアドレス情報である自装置の外部アドレス・ポート情報を取得する外部アドレス・ポート取得部と、自装置の外部アドレス・ポート情報を、相手装置に送信する自装置アドレス情報送信部と、相手装置が取得した、第2のネットワーク側から第3のネットワーク上の相手装置にアクセス可能なアドレス情報である相手装置の外部アドレス・ポート情報を、相手装置より受信する相手装置アドレス情報受信部と、相手装置の外部アドレス・ポート情報を用いて相手装置へ通信データを送信するデータ送信部と、を備えるVPN装置を提供する。
【0012】
また、本発明は、第2の態様として、上記のVPN装置であって、第2のネットワークには、第2のネットワーク側から第1のネットワークまたは第3のネットワークへアクセス可能なアドレス・ポート情報を管理するアドレス情報サーバが設けられ、外部アドレス・ポート取得部は、第2のネットワーク上のアドレス情報サーバとの間で所定の手順の通信を実行し、アドレス情報サーバから受信した応答に含まれる外部アドレス・ポート情報を取得するもので、外部アドレス・ポート情報はグローバルIPアドレス及びポート番号を含んでいるものも含まれる。
【0013】
また、本発明は、第3の態様として、上記のVPN装置であって、外部アドレス・ポート取得部は、第2のネットワーク上のアドレス情報サーバとして、STUN(Simple Traversal of User Datagram Protocol (UDP) through Network Address Translators (NATs))プロトコルを実行するSTUNサーバより外部アドレス・ポート情報を取得するものを含む。
【0014】
また、本発明は、第4の態様として、上記のVPN装置であって、自装置アドレス情報送信部は、自装置の外部アドレス・ポート情報を、第2のネットワーク上に設けられた中継サーバを介して相手装置に送信するものであり、相手装置アドレス情報受信部は、相手装置の外部アドレス・ポート情報を、中継サーバを介して相手装置より受信するものを含む。
【0015】
また、本発明は、第5の態様として、上記のVPN装置であって、自装置アドレス情報送信部は、第2のネットワーク上の中継サーバとして、通信装置間の呼制御を行う呼制御サーバを介して自装置の外部アドレス・ポート情報の送信を行うものであり、相手装置アドレス情報受信部は、呼制御サーバを介して相手装置の外部アドレス・ポート情報の受信を行うものを含む。
【0016】
また、本発明は第6の態様として、上記のVPN装置であって、通信データを暗号化する暗号処理部を有し、暗号化した通信データを相手装置へ送信するものを含む。
【0017】
また、本発明は、第7の態様として、上記のVPN装置であって、データ送信部は、通信データをUDP(User Datagram Protocol)でカプセリングして相手装置へ送信するものを含む。
【0018】
また、本発明は、第8の態様として、上記のVPN装置であって、相手装置の外部アドレス・ポート情報により特定される接続先の特定のポートに対して、UDPパケットの送信動作を所定の間隔で実行する通信経路維持部を備えるものを含む。
【0019】
また、本発明は、第9の態様として、上記のVPN装置であって、通信経路維持部は、通信終了判断に基づいてUDPパケットの送信動作を停止するものを含む。
【0020】
本発明は、第10の態様として、第1のネットワーク上の第1の装置と、この第1のネットワークと接続された第2のネットワークを介して、他の第3のネットワーク上の第2の装置との間で、仮想プライベートネットワークを構築して通信を行うVPNネットワーキング方法であって、第2のネットワーク側から第1のネットワーク上の第1の装置にアクセス可能なアドレス情報である第1の装置の外部アドレス・ポート情報を取得するステップと、第1の装置の外部アドレス・ポート情報を、第2の装置に送信するステップと、第2の装置が取得した、第2のネットワーク側から第3のネットワーク上の第2の装置にアクセス可能なアドレス情報である第2の装置の外部アドレス・ポート情報を、第2の装置より受信するステップと、第2の装置の外部アドレス・ポート情報を用いて第2の装置へ通信データを送信するステップと、を有するVPNネットワーキング方法を提供する。
【0021】
本発明は、第11の態様として、コンピュータに、第1のネットワーク上の自装置と、この第1のネットワークと接続された第2のネットワークを介して、他の第3のネットワーク上の相手装置との間で、仮想プライベートネットワークを構築して通信を行う機能を実現させるプログラムを格納した記憶媒体であって、第2のネットワーク側から第1のネットワーク上の自装置にアクセス可能なアドレス情報である自装置の外部アドレス・ポート情報を取得する外部アドレス・ポート取得部と、自装置の外部アドレス・ポート情報を、相手装置に送信する自装置アドレス情報送信部と、相手装置が取得した、第2のネットワーク側から第3のネットワーク上の相手装置にアクセス可能なアドレス情報である相手装置の外部アドレス・ポート情報を、相手装置より受信する相手装置アドレス情報受信部と、相手装置の外部アドレス・ポート情報を用いて相手装置へ通信データを送信するデータ送信部と、を含む各部の機能をコンピュータに実現させるプログラムを格納した記憶媒体を提供する。
【0022】
上記構成により、アドレス情報サーバによって自装置の外部アドレス・ポート情報を取得し、相手装置に自装置の外部アドレス・ポート情報を送信するとともに、相手装置の外部アドレス・ポート情報を受信することで、相手装置の外部アドレス・ポート情報を用いて互いに暗号化通信を行うことが可能になる。このため、VPNの動作に必要な各種パラメータの設定作業を事前に行う必要がなく、簡易かつ柔軟にVPNを構築可能となる。
【発明の効果】
【0023】
本発明によれば、VPNの動作に必要な各種パラメータの設定作業を事前に行うことなく、簡易かつ柔軟にVPNを構築することが可能なVPN装置を提供できる。
【図面の簡単な説明】
【0024】
【図1】本発明の実施形態に係るVPNシステムの構成例を示す図
【図2】本実施形態のVPN装置のハードウェア構成の構成例を示すブロック図
【図3】本実施形態のVPN装置の機能的な構成例を示すブロック図
【図4】本実施形態のVPNシステムにおけるVPN構築時の処理手順を示すシーケンス図
【図5】本実施形態のVPN装置におけるVPN構築時の処理内容を示すフローチャート
【図6】本実施形態における外部アドレス情報取得処理の処理内容を示すフローチャート
【図7】本実施形態における外部アドレス・ポート取得要求に関する処理手順を示すシーケンス図
【図8】外部アドレス・ポート取得要求と外部アドレス・ポート情報返信のそれぞれのパケット構造を示す図
【図9】VPN通信におけるパケット構造を示す図
【図10】UDPホールパンチングの動作に関する状態遷移を示す図
【発明を実施するための形態】
【0025】
以下に、本発明に係るVPN装置、VPNネットワーキング方法、及び記憶媒体の一例としての実施形態を説明する。ここでは、広域ネットワーク(WAN、グローバルネットワーク)を介して2つのローカルエリアネットワークの経路を(LAN、ローカルネットワーク)経路接続して仮想プライベートネットワーク(VPN)システムを構築する場合の構成例を示す。LANとしては、有線LANまたは無線LANなどが用いられる。WANとしては、インターネット等が用いられる。
【0026】
図1は本発明の実施形態に係るVPNシステムの構成例を示す図である。本実施形態のVPNシステムは、一つの拠点に設けられたLAN(第1のネットワークに相当)100と、他の拠点に設けられたLAN(第3のネットワークに相当)300とを、インターネット等のWAN(第2のネットワークに相当)200を介して通信経路を接続する。そして、LAN100の配下に接続された端末103とLAN300の配下に接続された端末303との間で、VPNによる秘匿性を担保した通信(以下、「VPN通信」と称する)を可能にしている。具体的なVPN通信の用途(アプリケーションプログラム等)としては、IP電話(音声通話)、ネットミーティング(動画&音声通信)、ネットワークカメラ(ビデオ伝送)などが想定される。
【0027】
LAN100とWAN200との境界にはルータ102が配設され、WAN200とLAN300との境界にはルータ302が配設されている。また、本実施形態では、VPNの構築を可能にするために、LAN100にはVPN装置101が接続され、LAN300にはVPN装置301が接続されている。そして、VPN装置101には配下の端末103が接続され、VPN装置301には配下の端末303が接続されている。なお、VPN装置101、301は、ここでは中継装置等において構成される独立した装置の構成例を示しているが、LAN内の他の通信機器や端末等においてVPN機能を有する装置として構成することも可能である。
【0028】
また、WAN200上には、VPN装置101とVPN装置301との間のVPNによる接続(以下、「VPN接続」と称する)を可能にするために、STUNサーバ201と呼制御サーバ202とが接続されている。STUNサーバ201は、STUN(Simple Traversal of User Datagram Protocol (UDP) through Network Address Translators (NATs))プロトコルを実行するために用いられるサーバである。呼制御サーバ202は、VPN装置や端末等のピア間の発呼、着呼のために用いられるサーバである。
【0029】
図1において、破線は外部アドレスとポートの情報を含む外部アドレス・ポート情報の流れを示している。また、一点鎖線は発呼及び着呼の制御に関する呼制御信号の流れを示している。また、実線はピア間で伝送される通信データに関するピア間通信の流れを示している。さらに、ピア間通信のためにVPN接続された通信経路を仮想トンネルとして、図中に表す。
【0030】
各機器がWAN200を介して通信する場合、WAN200上では、伝送するパケットの送信元や送信先を特定するためのアドレス情報として、WANにおいて特定可能なグローバルなアドレス情報が用いられる。一般にはIPネットワークが用いられるため、グローバルIPアドレス及びポート番号が用いられる。しかし、各LAN100、300内の通信においては、送信元や送信先を特定するためのアドレス情報として、LAN内のみで特定可能なローカルなアドレス情報が用いられる。一般にはIPネットワークが用いられるため、ローカルIPアドレス及びポート番号が用いられる。したがって、各LAN100、300とWAN200との間の通信を可能にするために、ローカルなアドレス情報とグローバルなアドレス情報との相互変換を行うNAT(Network Address Translation)機能が各ルータ102、302に搭載されている。
【0031】
ただし、LAN100、300の配下の各端末においては、外部からアクセス可能なグローバルなアドレス情報を自身で持っていない。また、特別な設定を行わない限り、LAN100配下の端末103が他のLAN300配下の端末303と直接通信することはできない。また、各ルータ102、302のNAT機能のため、普通の状態ではWAN200側から各LAN100、300内の各端末にアクセスすることもできない。
【0032】
このような状況であっても、本実施形態では、各拠点のLANにVPN装置101、301を設けることにより、図1において実線で示すピア間通信の経路のように、LAN間をVPN接続して端末103と端末303との間で仮想的な閉じられた通信経路を通じて直接通信することが可能になる。本実施形態のVPN装置の構成、機能、及び動作について以下に順を追って説明する。
【0033】
STUNサーバ201は、STUNプロトコルの実行に関するサービスを行うもので、いわゆるNAT越えの通信を行うために必要な情報を提供するアドレス情報サーバである。STUNは、音声、映像、文章などの双方向リアルタイムIP通信を行うアプリケーションにおいて、NAT通過の方法の1つとして使われる標準化されたクライアントサーバ型のインターネットプロトコルである。STUNサーバ201は、アクセス元からの要求に応じて、外部からアクセス可能な当該アクセス元のグローバルなアドレス情報として、外部ネットワークから見える外部アドレスとポートの情報を含む外部アドレス・ポート情報を返信する。外部アドレス・ポート情報としては、IPネットワークにおいてはグローバルIPアドレス及びポート番号が用いられる。
【0034】
各VPN装置101、301は、STUNサーバ201との間で所定のテスト手順の通信を実行し、STUNサーバ201から自装置のグローバルIPアドレス及びポート番号が含まれる応答パケットを受信する。これにより、各VPN装置101、301は自装置のグローバルIPアドレス及びポート番号を取得することができる。また、自装置の位置するLANとWANとの間にルータが複数存在する場合等であっても、これらのルータ等がUPnP(Universal Plug and Play)の機能を有していない場合であっても、確実にグローバルIPアドレス及びポート番号を取得できるという効果もある。
【0035】
なお、VPN装置101、301がグローバルIPアドレス及びポート番号を取得するための方法に関しては、IETFのRFC 3489(STUN - Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs))にて記載された手法を利用することもできる。しかし、STUNによる手法はグローバルIPアドレス及びポート番号を取得するところまでが可能なのであって、通信に先立って予め各種パラメータの設定作業を行うこともなく、簡易かつ柔軟にVPNを構築する技術は本発明の特徴である。
【0036】
呼制御サーバ202は、特定の相手先を呼び出して通信経路を確立するための通信装置間の呼制御に関するサービスを行う中継サーバである。呼制御サーバ202は、登録された各ユーザまたは端末の識別情報を保持しており、例えばIP電話の機能を有する通信システムの場合には、接続相手の電話番号に基づいて特定の相手先を呼び出すことができる。また、呼制御サーバ202は、信号やデータを中継する機能を有しており、発信側の装置から送出されたパケットを着信側の装置に転送したり、着信側の装置から送出されたパケットを発信側の装置に転送することも可能である。
【0037】
なお、STUNサーバ201及び呼制御サーバ202は、ここでは別個のサーバによる構成例を示しているが、1つのサーバにこれらのアドレス情報サーバと中継サーバの2つのサーバの機能を搭載して構成してもよいし、WAN上の他のいずれかのサーバに同様の機能を搭載して構成することも可能である。
【0038】
次に、本実施形態のVPN装置の構成及び機能について説明する。なお、VPN装置101とVPN装置301の構成及び機能は同様であり、ここではVPN装置101によって説明する。図2は本実施形態のVPN装置のハードウェア構成の構成例を示すブロック図である。
【0039】
VPN装置101は、マイクロコンピュータ(CPU)111、フラッシュRAM等による不揮発性メモリ112、SD RAM等によるメモリ113、ネットワークインタフェース114、ネットワークインタフェース115、LAN側ネットワーク制御部116、WAN側ネットワーク制御部117、通信中継部118、表示制御部119、表示部120を有して構成される。
【0040】
マイクロコンピュータ111は、所定のプログラムを実行することによりVPN装置101全体の制御を実施する。不揮発性メモリ112は、マイクロコンピュータ111が実行するプログラムを保持している。このプログラムの中には、VPN装置101が外部アドレス・ポート情報を取得するための外部アドレス・ポート取得プログラムも含まれている。
【0041】
なお、マイクロコンピュータ111が実行するプログラムについては、任意の通信経路を経由してオンラインで外部のサーバから取得することもできるし、例えばメモリカードやCD−ROMのような記録媒体から読み込んで取得することもできる。換言すれば、汎用のコンピュータ(マイクロコンピュータ111)にVPN装置の機能を実現するプログラムを記録媒体から読み込むことによってVPN装置、およびVPNネットワーキング方法を実現することができる。
なお、マイクロコンピュータ111がプログラムを実行する時には、不揮発性メモリ112上のプログラムの一部がメモリ113上に展開され、メモリ113上のプログラムが実行される場合もある。
【0042】
メモリ113は、VPN装置101の運用中のデータ管理や、各種設定情報などを一時的に記憶するためのものである。設定情報としては、自端末の外部アドレス・ポート取得要求の応答に含まれる外部アドレス・ポート情報等、通信に必要なあて先アドレス情報などが含まれる。
【0043】
ネットワークインタフェース114は、VPN装置101と自装置が管理する配下の端末103とを通信可能な状態で接続するためのインタフェースである。ネットワークインタフェース115は、VPN装置101とLAN100とを通信可能な状態で接続するためのインタフェースである。LAN側ネットワーク制御部116は、LAN側のネットワークインタフェース114に関する通信制御を行うものである。WAN側ネットワーク制御部117は、WAN側のネットワークインタフェース115に関する通信制御を行うものである。
【0044】
通信中継部118は、LAN側に接続された配下の端末103から外部のVPN接続先(VPN装置301配下の端末303)へ送出するパケットデータと、反対に、外部のVPN接続先(VPN装置301配下の端末303)から配下の端末103宛に到着したパケットデータをそれぞれ中継する。
【0045】
表示部120は、VPN装置101としての動作状態の表示等を行う表示器により構成され、各種状態をユーザあるいは管理者に通知する。表示部120は、複数の発光ダイオード(LED)や液晶表示器(LCD)等により構成される。表示制御部119は、表示部120の表示制御を行うもので、マイクロコンピュータ111からの表示信号に従って表示部120に表示する内容等を制御する。
【0046】
図3は本実施形態のVPN装置の機能的な構成例を示すブロック図である。
【0047】
VPN装置101は、機能構成として、システム制御部130、配下端末管理部131、メモリ部132、データ中継部133、設定用インタフェース部134、通信制御部140を有して構成される。メモリ部132は、外部アドレス・ポート情報記憶部135を有する。通信制御部140は、外部アドレス・ポート取得部141、VPN機能部142、呼制御機能部143を有する。VPN機能部142は、暗号処理部145を有する。これらの各機能は、図2に示した各ブロックのハードウェアの動作、またはマイクロコンピュータ111が所定のプログラムを実行することにより実現する。
【0048】
なお、VPN装置101のLAN側のネットワークインタフェース114は、配下の端末103と接続され、WAN側のネットワークインタフェース115は、LAN100及びルータ102を経由してWAN200と接続される。
【0049】
システム制御部130は、VPN装置101の全体の制御を行う。配下端末管理部131は、VPN装置101配下の端末103の管理を行う。メモリ部132は、外部アドレス・ポート情報記憶部135において、外部アドレス(WAN200上でのグローバルIPアドレス)とポート(IPネットワークのポート番号)の情報を含む外部アドレス・ポート情報を記憶する。外部アドレス・ポート情報としては、接続元である配下の端末103に割り当てられたグローバルIPアドレス及びポート番号の情報や、接続先の端末303に割り当てられたグローバルIPアドレス及びポート番号の情報などを記憶する。
データ中継部133は、接続元の端末103から接続先の端末303に向かって転送されるパケットや、逆に接続先の端末303から接続元の端末103に向かって転送されるパケットをそれぞれ中継する。設定用インタフェース部134は、ユーザあるいは管理者がVPN装置101に対する設定操作等の各種操作を行うためのユーザインタフェースである。このユーザインタフェースの具体例として、端末上で動作するブラウザによって表示するWebページなどが用いられる。
【0050】
通信制御部140の外部アドレス・ポート取得部141は、VPN装置101の配下の端末103に割り当てられた外部アドレス・ポート情報をSTUNサーバ201から取得する。また、接続先の端末303の外部アドレス・ポート情報を含むパケットを呼制御サーバ202を経由して受信し、接続先の端末303に割り当てられた外部アドレス・ポート情報を取得する。この外部アドレス・ポート情報取得動作の詳細については後で説明する。外部アドレス・ポート取得部141が取得した情報は、メモリ部132の外部アドレス・ポート情報記憶部135に保持される。
【0051】
通信制御部140のVPN機能部142は、暗号処理部145において、VPN通信のために必要な暗号処理を行う。すなわち、暗号処理部145は、送信するパケットをカプセリングして暗号化したり、受信したパケットをアンカプセリングして復号化して元のパケットを抽出する。この暗号処理動作については後で説明する。なお、VPN通信は、図1に示したようなピア間通信ではなく、WAN200上に設けられるサーバでパケットの中継を行い、クライアント/サーバ方式でVPN通信を行うことも可能である。この場合には、サーバ側で暗号処理を行うようにしてもよい。
【0052】
呼制御機能部143は、目的の接続先に接続するための接続要求を呼制御サーバ202に送信したり、接続先からの接続応答を呼制御サーバ202を経由して受信するための処理を実施する。
【0053】
すなわち、通信制御部140は、自装置の外部アドレス・ポート情報を取得する外部アドレス・ポート取得部、自装置の外部アドレス・ポート情報を送信する自装置アドレス情報送信部、相手装置の外部アドレス・ポート情報を受信する相手装置アドレス情報受信部、通信データを暗号化する暗号処理部、通信データを送信するデータ送信部の各機能を実現する。また、通信制御部140は、VPN通信の通信経路を維持する通信経路維持部の機能も有している。
【0054】
次に、本実施形態のVPN装置101によるVPN構築時の動作について説明する。図4は本実施形態のVPNシステムにおけるVPN構築時の処理手順を示すシーケンス図である。この図4では、VPN装置を含むネットワークにおいて、VPN装置101の配下の端末103からWAN200を経由して他のVPN装置301の配下の端末303に接続しようとする場合の処理を示している。
【0055】
まず、図4に示す処理に先立ち、端末103は呼制御サーバ202にログインしてユーザ認証を受けるようにする。端末103がユーザ認証に成功した場合、呼制御サーバ202において、端末103の識別情報(MACアドレス、ユーザID、電話番号など)やネットワーク上の位置情報(グローバルIPアドレス)等の登録、設定が行われる。以降、端末103と呼制御サーバ202との間で通信可能となる。
【0056】
この状態で、VPN装置101は、VPN通信を行うアプリケーションの起動に伴って外部アドレス・ポート取得部141の機能により、配下の端末103からのVPN接続の接続要求を受けると、STUNサーバ201との間で外部アドレス・ポート取得手順を行う(PR1)。このとき、VPN装置101は、自装置に割り当てられた外部アドレス・ポート情報(WAN200側からみたグローバルIPアドレス及びポート番号)を取得するため、STUNサーバ201に対して、外部アドレス・ポート取得要求としてバインディングリクエスト(Binding Request 接続要求、RFC3489参照;以下同じ)パケットを送出する。一方、STUNサーバ201は、外部アドレス・ポート取得要求に対して応答し、VPN装置101に外部アドレス・ポート情報返信として外部アドレス・ポート情報を含むバインディングレスポンス(Binding Response 接続応答、RFC3489参照;以下同じ)パケットを返送する。そして、VPN装置101は、外部アドレス・ポート情報返信により得られた外部アドレス・ポート情報を記憶する。
【0057】
次に、VPN装置101は、呼制御サーバ202に対して、接続先の端末303を配下に持つVPN装置301へのP2P(Peer to Peer)の通信経路を構築するための接続要求を行う(PR2)。このとき、VPN装置101は、発呼側アドレス情報として、外部アドレス・ポート取得手順PR1で取得した自装置の外部アドレス・ポート情報(グローバルIPアドレス及びポート番号)を含む接続要求を呼制御サーバ202へ送信する。呼制御サーバ202は、この接続要求を中継してVPN接続の接続先となるVPN装置301へ送信する。この接続要求により、呼制御サーバ202は、VPN装置101がVPN装置301へP2P経路構築のためのVPN接続をしたいという要求を接続先に通知する。
【0058】
接続先のVPN装置301は、呼制御サーバ202からの接続要求を受けると、STUNサーバ201との間で外部アドレス・ポート取得手順を行う(PR3)。このとき、VPN装置301は、上記VPN装置101と同様、自装置に割り当てられた外部アドレス・ポート情報(WAN200側からみたグローバルIPアドレス及びポート番号)を取得するため、STUNサーバ201に対して、外部アドレス・ポート取得要求としてバインディングリクエストパケットを送出する。一方、STUNサーバ201は、外部アドレス・ポート取得要求に対して応答し、VPN装置301に外部アドレス・ポート情報返信として外部アドレス・ポート情報を含むバインディングレスポンスパケットを返送する。そして、VPN装置301は、外部アドレス・ポート情報返信により得られた外部アドレス・ポート情報を記憶する。
【0059】
次に、VPN装置301は、呼制御サーバ202に対して、接続要求に対する接続応答を行う(PR4)。このとき、VPN装置301は、被呼側アドレス情報として、外部アドレス・ポート取得手順PR3で取得した自装置の外部アドレス・ポート情報(グローバルIPアドレス及びポート番号)を含む接続応答を呼制御サーバ202へ送信する。呼制御サーバ202は、この接続応答を中継してVPN接続の接続要求元となるVPN装置101へ送信する。この接続応答により、呼制御サーバ202は、接続要求に対するVPN装置301からVPN装置101への応答を接続要求元に通知する。
【0060】
この段階で、接続元のVPN装置101と接続先のVPN装置301とは、お互いに相手の外部アドレス・ポート情報を取得している。したがって、VPN装置101及びVPN装置301は、互いに相手の外部アドレス・ポート情報(グローバルIPアドレス及びポート番号)の送信先に設定してWAN200を経由してパケットを送信し、通信可能であること(VPN接続)を確認し、暗号化したデータ通信(VPN通信)を開始する(PR5)。
【0061】
図5は本実施形態のVPN装置におけるVPN構築時の処理内容を示すフローチャートである。この図5は、図4のVPN構築時の処理に関する具体的な処理内容を示したものである。図5において、ステップS11〜S16は接続元(発呼側)のVPN装置101が行う処理の内容を示し、ステップS21〜S26は接続先(被呼側)のVPN装置301が行う処理の内容を示している。
【0062】
VPNの構築にあたってVPN接続するために、発呼側のVPN装置101は、まず、待受用の外部アドレス及びポートの情報として、自装置のグローバルIPアドレス及びポート番号を含む外部アドレス・ポート情報を取得する処理を行う(PR1、ステップS11)。この外部アドレス情報取得処理の詳細は、本願発明の第2の態様における「所定の手順の通信」に相当し、図5を用いてさらに詳細に説明する。
【0063】
次に、VPN装置101は、被呼側のVPN装置301に対する接続要求を送信する(PR2、ステップS12)。この接続要求は、接続先の端末303を特定するための識別情報などを含むものである。また、接続要求には、ステップS11で取得した自装置の外部アドレス・ポート情報を含めて送信する。この接続要求は、呼制御サーバ202を経由してVPN装置301に伝送される。
【0064】
被呼側のVPN装置301は、VPN装置101からの接続要求を受信する(ステップS21)。接続要求を受信すると、VPN装置301は、この接続要求に含まれている接続元(VPN装置101側)の外部アドレス・ポート情報を取り出し、この情報をメモリに記憶する(ステップS22)。そして、VPN装置301は、待受用の外部アドレス及びポートの情報として、ステップS11と同様にして、自装置(VPN装置101からから見ると相手装置)のグローバルIPアドレス及びポート番号を含む外部アドレス・ポート情報を取得する処理を行う(ステップS23)。
【0065】
次に、VPN装置301は、発呼側のVPN装置101から受信した接続要求に対する接続応答を送信する(ステップS24)。この接続応答には、ステップS23で取得した自装置の外部アドレス・ポート情報を含めて送信する。この接続応答は、呼制御サーバ202を経由してVPN装置101に伝送される。
【0066】
発呼側のVPN装置101は、接続応答を受信したかを判定して接続応答の待受けを行う(ステップS13)。接続応答を受信すると、VPN装置101は、この接続応答に含まれている接続先(VPN装置301側)の外部アドレス・ポート情報を取り出し、この情報をメモリに記憶する(ステップS14)。
【0067】
上記の処理により、データ通信開始処理PR5を実行する時点では、発呼側のVPN装置101は、自装置の外部アドレス・ポート情報と、被呼側のVPN装置301の外部アドレス・ポート情報とを取得している。一方、被呼側のVPN装置301は、自装置の外部アドレス・ポート情報と、発呼側のVPN装置101の外部アドレス・ポート情報とを取得している。
【0068】
データ通信開始後、発呼側のVPN装置101は、被呼側のVPN装置301が待ち受けているグローバルIPアドレス及びポート番号を宛先として、VPN装置301に向けてWAN200上にデータを送信する(ステップS15)。一方、VPN装置301は、自装置の待受用のグローバルIPアドレス及びポート番号によってデータの待ち受けを行い、発呼側のVPN装置101から送信されたデータを受信する(ステップS25)。また、被呼側のVPN装置301は、発呼側のVPN装置101が待ち受けているグローバルIPアドレス及びポート番号を宛先として、VPN装置101に向けてWAN200上にデータを送信する(ステップS26)。一方、VPN装置101は、自装置の待受用のグローバルIPアドレス及びポート番号によってデータの待ち受けを行い、被呼側のVPN装置301から送信されたデータを受信する(ステップS16)。なお、待ち受けから受信に至る本発明の特徴は、「ホールパンチング」として以後に詳細に説明する。
【0069】
VPN装置101及びVPN装置301の双方でデータの送受信に成功すると、VPN装置101とVPN装置301との間でVPN接続されたことが認識される。以降は、サーバを経由することなくP2Pで直接通信可能であり、VPN装置101配下の端末103とVPN装置301配下の端末303との間で暗号化したVPN通信を行う。
【0070】
VPN通信を終了する際は、VPN装置101及びVPN装置301は当該VPN通信に用いていたポートを閉じるようにする。これにより、該当するポートに対して外部からのアクセスが不能になるので、セキュリティホールを塞ぐことができる。ここで、各ポートはアプリケーションに対応しており、VPN接続時にアプリケーションごとに割り当てたポート番号を指定して通信を行う。
たとえば、端末103側でアプリケーションを終了した場合などは、端末103からVPN装置101へ一定時間パケットが送られて来ないから、VPN装置101は端末103の通信が終了したものと判断してルータ102との通信を停止する。その結果、VPN通信は終了すると共にルータ102のポートは閉じられる。こうして、必要なときに通信相手の端末との間でVPN通信を行い、通信を終了するとVPN通信を終了しセキュリティホールを塞ぐことができる。
【0071】
次に、上記ステップS11で示した外部アドレス情報取得処理について説明する。図6は外部アドレス情報取得処理の処理内容を示すフローチャート、図7は外部アドレス・ポート取得要求に関する処理手順を示すシーケンス図である。また、図8は外部アドレス・ポート取得要求と外部アドレス・ポート情報返信のそれぞれのパケット構造を示す図である。図6では、外部アドレス情報取得処理におけるVPN装置とSTUNサーバの各々の動作を示している。
【0072】
VPN装置101は、外部アドレス・ポート取得要求として、バインディングリクエストパケットをSTUNサーバ201に送信する(ステップS31)。バインディングリクエストパケットは、図8の上側に示すように、この要求の識別ID(トランザクションID)が含まれる領域D11と、データ長の情報(データLength)が含まれる領域D12と、このパケットが「バインディングリクエスト」であることを示す符号(0x0001)が含まれる領域D13とを有している。また、図8には示されていないが、実際のパケットのヘッダには、送信元や送信先を示すグローバルIPアドレス及びポート番号の情報が含まれている。
【0073】
STUNサーバ201は、待ち受け状態で外部アドレス・ポート取得要求を待機している(ステップS41)。ここで、バインディングリクエストパケットを受信すると、STUNサーバ201は、この到着パケットからアドレス情報として、パケットの送信元を示すWAN側から見た外部アドレス・ポート情報(グローバルIPアドレス及びポート番号)を取得する(ステップS42)。
【0074】
そして、STUNサーバ201は、外部アドレス・ポート取得要求のバインディングリクエストパケットに対する外部アドレス・ポート情報返信として、バインディングレスポンスパケットをVPN装置101に向けて送信する(ステップS43)。バインディングレスポンスパケットは、図8の下側に示すように、このパケットが「バインディングレスポンス」であることを示す符号(0x0101)が含まれる領域D21と、データ長の情報(データLength)が含まれる領域D22と、この応答の識別IDが含まれる領域D23と、属性情報(MAPPED-ADDRESS)が含まれる領域D24とを有している。属性情報の領域D24には、識別子の領域D24aと、属性データ長の領域D24bと、外部アドレス・ポート情報の領域D24cとが含まれている。STUNサーバ201は、この外部アドレス・ポート情報の領域D24cにおいて、ステップS42で取得したバインディングリクエストパケットの送信元のVPN装置101に割り当てられている外部アドレス(グローバルIPアドレス)とポート(ポート番号)の情報を装填して返信する。
【0075】
VPN装置101は、外部アドレス・ポート取得要求の送信後、待ち受け状態で外部アドレス・ポート情報返信を待機する(ステップS32)。ここで、バインディングレスポンスパケットを受信すると、VPN装置101は、このバインディングレスポンスパケットに含まれる外部アドレス・ポート情報(グローバルIPアドレス及びポート番号)を取り出し、メモリに保存する(ステップS33)。
【0076】
ここで、VPN接続後のVPN通信において伝送されるパケットについて説明する。図9はVPN通信におけるパケット構造を示す図である。この図9では、発呼側の端末103からVPN装置101、WAN200、VPN装置301を通って被呼側の端末303までパケットを伝送する場合の、パケットのカプセリング及びアンカプセリングについて示している。
【0077】
VPN接続において、VPN装置101、301内のVPN機能部142は、VPN装置101とVPN装置301との間にVPNのトンネルセッションを形成する。これにより、P2P接続によって送信元の端末103と送信先の端末303との間で通信の秘匿性を担保して安全にパケットを伝送できるようにする。このトンネルセッションの経路では、VPN機能部142の暗号処理部145によりカプセリングされ暗号化されたパケットが伝送される。
【0078】
図9の最上段には、送信元の端末103(端末A)上のVPN通信用のアプリケーションが通信相手の端末303(端末D)に送信するIPパケットによるパケットP1が示されている。このパケットP1には、送信元の端末A及び送信先の端末DのIPアドレス情報P1aと、端末Aから端末Dへ送信する際のポート情報P1bと、伝送対象の実際のデータ部分P1cとが含まれている。
【0079】
VPN装置101は、配下の端末103(端末A)から送信されたパケットP1を受け取って中継する際に、VPN機能部142において暗号化及びカプセリングを行い、パケットP2を生成して転送する。カプセル化されたパケットP2の中には、上記端末Aから通信相手の端末Dへ送るパケットP1の他に、送信元のVPN装置101及び送信先のVPN装置301のIPアドレス情報P2aと、VPN装置101からVPN装置301への送信に用いるポート情報P2bとが含まれている。この際、VPN装置101はパケットP2をUDP(User Datagram Protocol)でカプセリングしてVPN装置301へ送信する。
【0080】
カプセル化されたパケットP2は、VPN装置101から送出され、LAN100、ルータ102、WAN200、ルータ302、LAN300を経由してVPN装置301まで到達する。
【0081】
VPN装置301が受け取るパケットP3は、VPN装置101から送信されたパケットP2と同じものである。すなわち、カプセル化されたパケットP3の中には、VPN装置101及びVPN装置301のIPアドレス情報P2aと、VPN装置101からVPN装置301への送信に用いるポート情報P2bと、端末Aから通信相手の端末Dへ送るパケットP1とが含まれている。VPN装置301は、パケットP3を受け取って中継する際に、カプセル化されたパケットP3から配下の端末303が受け取るべきパケットP1をアンカプセリングして取り出し、端末303に転送する。端末303(端末D)では、送信元の端末103(端末A)から送信されたパケットP1と同じ内容のパケットP4を受け取ることができる。
【0082】
次に、LAN100、300間のUDPホールパンチングについて説明する。図10はUDPホールパンチングの動作に関する状態遷移を示す図である。
【0083】
WANを介して複数のLANを接続するネットワークでは、通常、図1に示したようなVPNシステムの構成のように、LAN100とWAN200との境界、及びWAN200とLAN300との境界にそれぞれルータ102、302が設けられる。よって、通常の状態では、LAN100内の端末103とLAN300内の端末303との間で直接パケットを伝送することはできない。UDPの場合、各ルータ102、302は、外部のWAN200側からLAN100、300内部に向かう方向のパケットを遮断するためである。
【0084】
したがって、図10の上段において、(1)のようにLAN100からWAN200へ出る方向のパケットは通るが、(2)のようにWAN200からLAN300へ入る方向のパケットは通らない。つまり、図10の上段に示すように、LAN100側からルータ102、WAN200、ルータ302を介してLAN300に向かってパケットを送信すると、このパケットはルータ302によって遮断され、LAN300内への侵入が阻止される。
【0085】
ただし、図10の中段の(3)に示すように、一旦LAN300からWAN200方向へパケットを送出する動作を行うと、その直後はルータ302における該当する送信元−送信先間のアドレス及びポートには一時的に穴が空いた状態になる。この場合、図10の下段の(4)に示すように、外部のWAN200側からLAN300内へパケットが通過する。つまり、LAN300内からLAN100へのパケット送出によって一時的に穴の空いているルータ302のポートを利用して、送信先のLAN100側からのパケットをルータ102、WAN200を介して、ルータ302のLAN300側に通すことができる。逆方向も同様である。
【0086】
このルータの機能を利用して、通信相手からのパケットを受け取るために、VPN装置101、301は、事前に上記(3)のような自身のLAN側から通信相手へパケットを送出する動作を行えばよい。しかし、パケット送出によって外部に穴が空いた使用ポートは、所定時間が経過すると自動的に閉じられる。このため、WAN側からLAN内への通信が可能なポートを維持するためには、上記(3)の動作を、例えば10秒間程度の間隔で周期的に、あるいは断続的に行う必要がある。このようなLANからWAN方向へ事前にパケットを送出する動作、あるいはポート維持のために断続的にパケットを送出する動作は、ホールパンチングと呼ばれる。
【0087】
このホールパンチングに使用するポート情報は、VPN装置101、301が前述の外部アドレス・ポート情報の取得処理によってSTUNサーバ201から受け取ることができる。自装置の外部アドレス・ポート情報を通信相手のVPN装置に通知してお互いに保持することで、通信相手に直接パケットを送信してホールパンチングを行い、通信相手からのパケットを受信することが可能になる。
【0088】
VPN装置101、301は、VPN接続を確立した後、伝送するデータが存在しない場合であっても、端末103,303側のアプリケーション終了をVPN装置101、301が判断するまでは、通信可能な状態を維持するために、上記ホールパンチング動作を繰り返す。例えば、10秒程度の周期で通信相手と何らかのUDPパケットの送受信を所定間隔で繰り返してVPN用の通信経路のポートを維持する。
VPN通信を終了する場合は、端末103,303側のアプリケーションが終了したことを、各VPN装置101、301が判断(通信終了判断と略称する)してUDPパケットの送受信を停止し、ホールパンチング動作を終了する。これにより、使用ポートが閉じられ、WAN側からLAN側への不正な侵入が防止される。したがって、VPN通信時以外はポートを遮断し、VPN通信時はポートを開放することができ、セキュリティ性の高い通信が可能になる。
【0089】
なお、同時に複数のセッション/ポートを使用した通信の場合、例えばシグナリングと音声パケットとを並行して伝送するようなアプリケーションが通信を行う場合には、次のような処理を行う構成としても良い。すなわち、音声パケットのように伝送の遅延が小さいことが要求されるパケットのみを本実施形態によるP2Pの通信経路で伝送し、遅延が大きくても問題が生じにくいシグナリング用のパケットについては、WAN上のサーバでデータを中継して伝送するような構成も可能である。
【0090】
上述した本実施形態は、ソフトウェアによってVPNを構築するソフトウェアVPNに適用可能なものである。ソフトウェアVPNは、VPN機能をコンピュータや情報家電といった機器の内部に自由に組み込むことが可能で、ネットワークセグメント間の接続に限らず、より細かな単位での接続が可能となっている。すなわち、ソフトウェアVPNは、ネットワークに接続された機器が持つ様々な通信アプリケーションと協調して動作することにより、場所単位ではなく、アプリケーション単位での接続を行うことができるものである。ソフトウェアVPNでは、IPsecやSSLを使用したトンネリング技術を使用し、自装置と相手装置との間でP2Pの通信経路を確立して暗号化通信を行うことが可能である。
【0091】
例えば、LANとWANとがNATルータを介して接続されている場合、ダイナミックに使用するUDPポートでの開放の許可の有無、使用するポートの範囲などによる制限がある。このため、従来のVPN装置では、これらの条件を満たすような事前設定がVPN装置の設置時に必要不可欠であった。これに対し、本実施形態では、STUNサーバによって自装置の外部アドレス・ポート情報を取得し、呼制御サーバを経由して相手装置と外部アドレス・ポート情報を交換することで、相手装置の外部アドレス・ポート情報を用いて互いに暗号化通信を行うことが可能になる。このため、事前に各種パラメータの設定作業を行う必要がなく、簡易かつ柔軟にVPNを構築可能である。
【0092】
このように本実施形態によれば、拠点毎のVPN装置において、従来のように所定の識別番号等を付与したり、適正なポートの使用や暗号の暗号化、復号化を行えるように装置の設置前に予め設定作業を行ったり、する必要がなくなる。また、常時、VPN通信を行う拠点のVPN装置間でVPNセッションを有効に起動しておく必要もない。したがって、例えばある企業のオフィスから別の企業のオフィスへ一時的にVPNで接続しようとする場合であっても、事前に設定作業を行うことなく、必要なときに必要な期間だけ容易にVPN通信が可能である。
【0093】
また、本実施形態では、必要に応じて相手装置との間でVPN接続を行って暗号化通信を開始し、通信終了時には使用ポートを閉じて通信経路を遮断することができる。これにより、通信のために開放したポートへの不正アクセスを防止でき、セキュリティホールを生じさせることがない。したがって、一時的なVPNの利用が容易に実現可能であり、この際の安全性を高めることができる。VPN通信においては、IPsecやSSLを使用してトンネリング及びカプセリングを行い、UDPでカプセリングして相手装置との間で伝送することで、WAN上での情報の漏洩、盗聴、改竄などを防止でき、秘匿性を担保した通信が可能である。また、LAN間のVPN接続によるP2Pの通信が可能であるので、中継サーバを設けたクライアント/サーバシステムの構成は必須ではなく、中継サーバの処理負荷の増加や中継時の遅延などを回避できる。
【0094】
なお、本発明は、本発明の趣旨ならびに範囲を逸脱することなく、明細書の記載、並びに周知の技術に基づいて、当業者が様々な変更、応用することも本発明の予定するところであり、保護を求める範囲に含まれる。たとえば、本発明はWAN200上におけるSTUNサーバ201や呼制御サーバ202の存在が必須であるものと限定的に解釈されるものではない。自装置の外部アドレス・ポート情報を取得可能な手段・情報源はSTUNサーバ201に代替可能であり、たとえば、ハイブリッドP2Pや、ピュアP2Pや、DHTなどの技術が対応可能となる。また、ノードを順にたどって通信相手と通信経路を構築する技術は呼制御サーバ202に代替可能であり、たとえば、SMTPやDNSの技術が対応可能となる。
さらにまた、VPN装置101,301が通信するパケットはUDPに限られると限定的に解釈されるものでもない。あるいは、VPN装置101、301は必ずしもその配下に端末103,303を有する必要はなく、端末103,303に本発明のVPN装置のプログラムを読み込むことによって、端末自身がVPN装置と一体化して機能することも、本発明が保護を求める範囲に含まれる。
【産業上の利用可能性】
【0095】
本発明は、VPNの動作に必要な各種パラメータの設定作業を事前に行うことなく、簡易かつ柔軟にVPNを構築することが可能となる効果を有する。よって本発明は、通信相手の固定された専用通信回線の代わりに、多数の加入者で帯域を共用する通信網を利用してネットワーク間などを接続し、専用線を利用する場合と同様の通信サービスを提供するVPN装置、VPNネットワーキング方法及びVPNプログラム等として有用である。
【符号の説明】
【0096】
100、300 LAN
101、301 VPN装置
102、302 ルータ
103、303 端末
111 マイクロコンピュータ(CPU)
112 不揮発性メモリ
113 メモリ
114、115 ネットワークインタフェース
116 LAN側ネットワーク制御部
117 WAN側ネットワーク制御部
118 通信中継部
119 表示制御部
120 表示部
130 システム制御部
131 配下端末管理部
132 メモリ部
133 データ中継部
134 設定用インタフェース部
135 外部アドレス・ポート情報記憶部
140 通信制御部
141 外部アドレス・ポート取得部
142 VPN機能部
143 呼制御機能部
145 暗号処理部
200 WAN
201 STUNサーバ
202 呼制御サーバ

【特許請求の範囲】
【請求項1】
第1のネットワーク上に設けられ、この第1のネットワークと接続された第2のネットワークを介して、他の第3のネットワーク上の相手装置と自装置との間で仮想プライベートネットワークを構築して通信を行うVPN装置であって、
前記第2のネットワーク側から前記第1のネットワーク上の自装置にアクセス可能なアドレス情報である自装置の外部アドレス・ポート情報を取得する外部アドレス・ポート取得部と、
前記自装置の外部アドレス・ポート情報を、前記相手装置に送信する自装置アドレス情報送信部と、
前記相手装置が取得した、前記第2のネットワーク側から前記第3のネットワーク上の相手装置にアクセス可能なアドレス情報である相手装置の外部アドレス・ポート情報を、前記相手装置より受信する相手装置アドレス情報受信部と、
前記相手装置の外部アドレス・ポート情報を用いて前記相手装置へ通信データを送信するデータ送信部と、
を備えるVPN装置。
【請求項2】
請求項1に記載のVPN装置であって、
前記第2のネットワークには、前記第2のネットワーク側から前記第1のネットワークまたは前記第3のネットワークへアクセス可能なアドレス・ポート情報を管理するアドレス情報サーバが設けられ、
前記外部アドレス・ポート取得部は、前記第2のネットワーク上の前記アドレス情報サーバとの間で所定の手順の通信を実行し、前記アドレス情報サーバから受信した応答に含まれる外部アドレス・ポート情報を取得するもので、前記外部アドレス・ポート情報はグローバルIPアドレス及びポート番号を含んでいるVPN装置。
【請求項3】
請求項2に記載のVPN装置であって、
前記外部アドレス・ポート取得部は、前記第2のネットワーク上のアドレス情報サーバとして、STUN(Simple Traversal of User Datagram Protocol (UDP) through Network Address Translators (NATs))プロトコルを実行するSTUNサーバより前記外部アドレス・ポート情報を取得するVPN装置。
【請求項4】
請求項1に記載のVPN装置であって、
前記自装置アドレス情報送信部は、前記自装置の外部アドレス・ポート情報を、前記第2のネットワーク上に設けられた中継サーバを介して前記相手装置に送信するものであり、
前記相手装置アドレス情報受信部は、前記相手装置の外部アドレス・ポート情報を、前記中継サーバを介して前記相手装置より受信するVPN装置。
【請求項5】
請求項4に記載のVPN装置であって、
前記自装置アドレス情報送信部は、前記第2のネットワーク上の中継サーバとして、通信装置間の呼制御を行う呼制御サーバを介して前記自装置の外部アドレス・ポート情報の送信を行うものであり、
前記相手装置アドレス情報受信部は、前記呼制御サーバを介して前記相手装置の外部アドレス・ポート情報の受信を行うVPN装置。
【請求項6】
請求項1に記載のVPN装置であって、
前記通信データを暗号化する暗号処理部を有し、前記暗号化した通信データを前記相手装置へ送信するVPN装置。
【請求項7】
請求項1に記載のVPN装置であって、
前記データ送信部は、前記通信データをUDP(User Datagram Protocol)でカプセリングして前記相手装置へ送信するVPN装置。
【請求項8】
請求項1に記載のVPN装置であって、
前記相手装置の外部アドレス・ポート情報により特定される接続先の特定のポートに対して、UDPパケットの送信動作を所定の間隔で実行する通信経路維持部を備えるVPN装置。
【請求項9】
請求項8に記載のVPN装置であって、
前記通信経路維持部は、通信終了判断に基づいて前記UDPパケットの送信動作を停止するVPN装置。
【請求項10】
第1のネットワーク上の第1の装置と、この第1のネットワークと接続された第2のネットワークを介して、他の第3のネットワーク上の第2の装置との間で、仮想プライベートネットワークを構築して通信を行うVPNネットワーキング方法であって、
前記第2のネットワーク側から前記第1のネットワーク上の前記第1の装置にアクセス可能なアドレス情報である前記第1の装置の外部アドレス・ポート情報を取得するステップと、
前記第1の装置の外部アドレス・ポート情報を、前記第2の装置に送信するステップと、
前記第2の装置が取得した、前記第2のネットワーク側から前記第3のネットワーク上の前記第2の装置にアクセス可能なアドレス情報である前記第2の装置の外部アドレス・ポート情報を、前記第2の装置より受信するステップと、
前記第2の装置の外部アドレス・ポート情報を用いて前記第2の装置へ通信データを送信するステップと、
を有するVPNネットワーキング方法。
【請求項11】
コンピュータに、第1のネットワーク上の自装置と、この第1のネットワークと接続された第2のネットワークを介して、他の第3のネットワーク上の相手装置との間で、仮想プライベートネットワークを構築して通信を行う機能を実現させるプログラムを格納した記憶媒体であって、
前記第2のネットワーク側から前記第1のネットワーク上の自装置にアクセス可能なアドレス情報である自装置の外部アドレス・ポート情報を取得する外部アドレス・ポート取得部と、
前記自装置の外部アドレス・ポート情報を、前記相手装置に送信する自装置アドレス情報送信部と、
前記相手装置が取得した、前記第2のネットワーク側から前記第3のネットワーク上の相手装置にアクセス可能なアドレス情報である相手装置の外部アドレス・ポート情報を、前記相手装置より受信する相手装置アドレス情報受信部と、
前記相手装置の外部アドレス・ポート情報を用いて前記相手装置へ通信データを送信するデータ送信部と、
を含む各部の機能をコンピュータに実現させるプログラムを格納した記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2010−252261(P2010−252261A)
【公開日】平成22年11月4日(2010.11.4)
【国際特許分類】
【出願番号】特願2009−102108(P2009−102108)
【出願日】平成21年4月20日(2009.4.20)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】