(57)【要約】【課題】複数の通信装置間で通信を行うときの通信経路として、最適な通信経路を設定することが可能な通信経路設定装置を提供する。【解決手段】ＶＰＮ装置３０１又は１０４との間で通信を行うときの通信経路を設定するＶＰＮ装置１０１であって、ＶＰＮ装置１０１とＶＰＮ装置３０１又は１０４とを通信可能に接続する複数の通信経路の経路情報及び各通信経路の評価情報を記憶する通信経路情報記憶部１３６と、通信経路情報記憶部１３６に記憶されたいずれかの通信経路により、ＶＰＮ装置１０１とＶＰＮ装置３０１又は１０４とを接続可能か否かを判定し、接続可能と判定した通信経路に対応する評価情報に基づいて、ＶＰＮ装置１０１とＶＰＮ装置３０１又は１０４とを接続する特定の通信経路を設定する呼制御機能部１４３とを備える。【選択図】図１
2010283762.tif 000002
【特許請求の範囲】
【請求項１】
第１の通信装置と第２の通信装置との間で通信を行うときの通信経路を設定する通信経路設定装置であって、
前記第１の通信装置と前記第２の通信装置とを通信可能に接続する複数の通信経路の経路情報及び各通信経路の評価情報を記憶する通信経路情報記憶部と、
前記通信経路情報記憶部に記憶されたいずれかの通信経路により、前記第１の通信装置と前記第２の通信装置とを接続可能か否かを判定する接続判定部と、
前記接続判定部により接続可能と判定された通信経路に対応する前記評価情報に基づいて、前記第１の通信装置と前記第２の通信装置とを接続する特定の通信経路を設定する通信経路設定部と、
を備える通信経路設定装置。
【請求項２】
請求項１に記載の通信経路設定装置であって、更に、
ネットワークを介して、前記第１の通信装置のグローバルアドレス情報及びポート情報を取得するアドレス・ポート情報取得部と、
前記ネットワークを介して、前記第１の通信装置の前記グローバルアドレス情報及び前記ポート情報を前記第２の通信装置へ送信するアドレス・ポート情報送信部と、
前記ネットワークを介して、前記第２の通信装置からの前記第２の通信装置のグローバルアドレス情報及びポート情報を受信するアドレス・ポート情報受信部と、
を備え、
前記接続判定部は、前記第２の通信装置の前記グローバルアドレス情報及び前記ポート情報を用いて、前記第１の通信装置と前記第２の通信装置との間で、前記ネットワークを介した直接通信が可能か否かを判定し、
前記通信経路設定部は、前記接続判定部により前記ネットワークを介した直接通信が可能であると判定された場合、前記特定の通信経路として、前記ネットワークを介した直接通信を行う通信経路を設定する通信経路設定装置。
【請求項３】
請求項２に記載の通信経路設定装置であって、
前記アドレス・ポート情報送信部は、前記第１の通信装置のプライベートアドレス情報を前記第２の通信装置へ送信し、
前記アドレス・ポート情報受信部は、前記第２の通信装置からの前記第２の通信装置のプライベートアドレス情報を受信し、
前記接続判定部は、前記第２の通信装置の前記プライベートアドレス情報及び前記ポート情報を用いて、前記第１の通信装置と前記第２の通信装置との間で、前記ローカル直接通信が可能か否かを判定し、
前記通信経路設定部は、前記接続判定部により前記ローカル直接通信が可能であると判定された場合、前記特定の通信経路として、前記ローカル直接通信を行う通信経路を設定する通信経路設定装置。
【請求項４】
請求項１に記載の通信経路設定装置であって、
前記通信経路設定部は、前記特定の通信経路として、前記第１の通信装置と前記第２の通信装置とをデータ通信を中継する中継サーバを介して接続する通信経路を設定する通信経路設定装置。
【請求項５】
第１の通信装置と第２の通信装置との間で通信を行うときの通信経路を設定する通信経路設定方法であって、
前記第１の通信装置と前記第２の通信装置とを通信可能に接続する複数の通信経路の経路情報及び各通信経路の評価情報を記憶する通信経路情報記憶部に記憶されたいずれかの通信経路により、前記第１の通信装置と前記第２の通信装置とを接続可能か否かを判定するステップと、
前記第１の通信装置と前記第２の通信装置とを接続可能と判定された通信経路に対応する前記評価情報に基づいて、前記第１の通信装置と前記第２の通信装置とを接続する特定の通信経路を設定するステップと、
を有する通信経路設定方法。
【請求項６】
請求項５に記載の通信経路設定方法の各ステップを実行させるためのプログラム。
【請求項７】
請求項５に記載の通信経路設定方法の各ステップを実行させるためのプログラムを記録したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信経路設定装置、通信経路設定方法、プログラム、及び記憶媒体に関し、特に、複数の通信装置間で通信を行うときの通信経路を設定する通信経路設定装置に関する。
【背景技術】
【０００２】
従来、複数の通信装置間で通信を行うときの通信経路の１つとして、仮想プライベートネットワーク（ＶＰＮ：Virtual Private Network、以下、ＶＰＮと記載する）を構築することが行われている。ＶＰＮは、たとえば、企業内等の２以上の拠点のローカルエリアネットワーク（ＬＡＮ）相互間などのように、一般に、異なるネットワークセグメントを、広域ネットワーク（ＷＡＮ）などを介して互いに接続する。そして、通信の秘匿性を担保することで、仮想的に全体が１つのプライベートネットワークであるように構成する。これにより、専用線を利用する場合と同様の通信サービスを可能にする。
【０００３】
このようなＶＰＮは、インターネット等のＷＡＮや公衆回線網を利用して構築するいわゆるインターネットＶＰＮと、通信事業者閉域網などのインターネット等とは異なる通信網を使用して構築するＩＰ−ＶＰＮと、に大別される。特に、インターネットＶＰＮは、昨今のネットワークインフラのブロードバンド化と、インターネットを利用してＶＰＮを構築することによる安価な価格設定に伴い、利用者が増加している。
【０００４】
ＶＰＮを構築するにあたり、例えば異なる拠点間で通信を行う場合に、通信経路の途中にインターネット等の共用の通信網が介在するので、通信の漏洩、盗聴、改竄などの危険性がある。そこで、ＶＰＮ技術においては、通信の秘匿性を担保するために、ネットワークのいずれかの階層において、データを暗号化しカプセリングすることを基本的な技術思想としている。ここで、ある通信プロトコルを他の通信プロトコルのパケットで包んで送ることを「カプセル化（カプセリング）」という。
【０００５】
ＶＰＮ技術で用いられる暗号化プロトコルの具体例としては、ＩＰ（Internet Protocol）層で暗号化を施すＩＰｓｅｃ（Security Architecture for Internet Protocol）や、ＴＣＰ（Transmission Control Protocol）層（特にＨＴＴＰ：Hyper Text Transfer Protocolで使用）で暗号化を施すＳＳＬ（Secure Sockets Layer）などが知られている。また、他のＶＰＮ技術の例として、ＳＳＨ、ＴＬＳ、ＳｏｆｔＥｔｈｅｒ、ＰＰＴＰ、Ｌ２ＴＰ、Ｌ２Ｆ、ＭＰＬＳなどが知られている。ソフトウェアによってＶＰＮを構築するソフトウェアＶＰＮでは、上記のＩＰｓｅｃやＳＳＬを使用したトンネリング技術を使用する。ここで、ある通信プロトコルを、同じまたはより上位の階層のプロトコルのデータとして通信することを「トンネリング」という。ＶＰＮを構築する場合は、ネットワークの中継装置または通信を行う端末等（以降、これらを「ピア」とも称する）に設けたＶＰＮ装置によって、パケットを暗号化及びカプセル化して仮想トンネルを構築する。これにより、ピア間を結ぶ閉じられた仮想的な直接通信（以下、Ｐ２Ｐ（Peer to Peer）通信ともいう）回線をインターネット等のネットワーク上に構築する。
【０００６】
また、上記ネットワークを介したＰ２Ｐ通信以外の方法によって複数の通信装置間で通信を行うときの通信経路を設定することも考えられる。例えばネットワーク上にデータ通信を中継する中継サーバを設け、中継サーバを介して通信を行うことも考えられる。
【０００７】
このように複数の通信装置間で通信を行うための通信経路が複数存在する場合に、最短経路（最短時間でデータ伝送が可能となる通信経路）として、送信要求の送出後に最先に応答が返送された通信経路を選択する技術が知られている（例えば、特許文献１参照）。また、周知のダイクストラ法を用いて、２台の通信装置間で通信を行うときの通信経路を最短距離に設定する技術が知られている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平８−２２８１９２号公報
【特許文献２】特表平１１−５０８７５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１の技術では、最先に応答が返送された通信経路が必ずしも最短経路ではないという状況が生じている。特に、異なるＬＡＮに配置された通信装置間でグローバルＩＰアドレスを用いて通信を行ったり、ＶＰＮを構築して通信を行ったりする場合には、複雑な通信手順を必要とするために、最短経路として特定される経路が状況によって異なることがある。
【００１０】
また、特許文献２の技術では、２台の通信装置間の最短距離を算出するために、あらかじめ通信装置の位置情報、距離情報など（例えば地図データ）を把握する必要があった。したがって、通信相手となる通信装置が多数である場合には、通信装置の負荷が大きくなることがあった。
【００１１】
本発明は、上記事情に鑑みてなされたものであって、複数の通信装置間で通信を行うときの通信経路として、最適な通信経路を設定することが可能な通信経路設定装置、通信経路設定方法、プログラム、記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の通信経路設定装置は、第１の通信装置と第２の通信装置との間で通信を行うときの通信経路を設定する通信経路設定装置であって、前記第１の通信装置と前記第２の通信装置とを通信可能に接続する複数の通信経路の経路情報及び各通信経路の評価情報を記憶する通信経路情報記憶部と、前記通信経路情報記憶部に記憶されたいずれかの通信経路により、前記第１の通信装置と前記第２の通信装置とを接続可能か否かを判定する接続判定部と、前記接続判定部により接続可能と判定された通信経路に対応する前記評価情報に基づいて、前記第１の通信装置と前記第２の通信装置とを接続する特定の通信経路を設定する通信経路設定部とを備える。
【００１３】
この構成により、複数の通信装置間で通信を行うときの通信経路として、最適な通信経路を設定することが可能である。特に、通信経路毎に評価情報を保持し、通信装置間で通信を行うときに、評価情報を有する通信経路の接続確認を行うことで、通信装置が置かれた環境において最適な通信経路を設定することが可能である。
【００１４】
本発明の通信経路設定装置は、ネットワークを介して、前記第１の通信装置のグローバルアドレス情報及びポート情報を取得するアドレス・ポート情報取得部と、前記ネットワークを介して、前記第１の通信装置の前記グローバルアドレス情報及び前記ポート情報を前記第２の通信装置へ送信するアドレス・ポート情報送信部と、前記ネットワークを介して、前記第２の通信装置からの前記第２の通信装置のグローバルアドレス情報及びポート情報を受信するアドレス・ポート情報受信部と、を備え、前記接続判定部が、前記第２の通信装置の前記グローバルアドレス情報及び前記ポート情報を用いて、前記第１の通信装置と前記第２の通信装置との間で、前記ネットワークを介した直接通信が可能か否かを判定し、前記通信経路設定部が、前記接続判定部により前記ネットワークを介した直接通信が可能であると判定された場合、前記特定の通信経路として、前記ネットワークを介した直接通信を行う通信経路を設定する。
【００１５】
この構成により、ネットワークを介したＰ２Ｐ通信経路を確立することができるため、通信コストを低減することができ、高速な通信を行うことができる。
【００１６】
本発明の通信経路設定装置は、前記アドレス・ポート情報送信部が、前記第１の通信装置のプライベートアドレス情報を前記第２の通信装置へ送信し、前記アドレス・ポート情報受信部が、前記第２の通信装置からの前記第２の通信装置のプライベートアドレス情報を受信し、前記接続判定部が、前記第２の通信装置の前記プライベートアドレス情報及び前記ポート情報を用いて、前記第１の通信装置と前記第２の通信装置との間で、前記ローカル直接通信が可能か否かを判定し、前記通信経路設定部が、前記接続判定部により前記ローカル直接通信が可能であると判定された場合、前記特定の通信経路として、前記ローカル直接通信を行う通信経路を設定する。
【００１７】
この構成により、ローカルＰ２Ｐ通信経路を確立することができるため、外部ネットワークを利用することがないためネットワーク負荷を低減でき、高速な通信を行うことができ、さらに通信コストの低減も可能である。
【００１８】
本発明の通信経路設定装置は、前記通信経路設定部が、前記特定の通信経路として、前記第１の通信装置と前記第２の通信装置とをデータ通信を中継する中継サーバを介して接続する通信経路を設定する。
【００１９】
この構成により、データ通信専用の中継サーバを介した通信経路を確立することができるため、呼制御サーバを介した通信経路と比較すると、処理負荷を低減できる。また、ルータの種別やルータの有するＮＡＴ機能の依存せずにデータ通信の中継を行うことができる。
【００２０】
本発明の通信経路設定方法は、第１の通信装置と第２の通信装置との間で通信を行うときの通信経路を設定する通信経路設定方法であって、前記第１の通信装置と前記第２の通信装置とを通信可能に接続する複数の通信経路の経路情報及び各通信経路の評価情報を記憶する通信経路情報記憶部に記憶されたいずれかの通信経路により、前記第１の通信装置と前記第２の通信装置とを接続可能か否かを判定するステップと、前記第１の通信装置と前記第２の通信装置とを接続可能と判定された通信経路に対応する前記評価情報に基づいて、前記第１の通信装置と前記第２の通信装置とを接続する特定の通信経路を設定するステップとを有する。
【００２１】
この方法により、複数の通信装置間で通信を行うときの通信経路として、最適な通信経路を設定することが可能である。
【００２２】
本発明のプログラムは、上記通信経路設定方法の各ステップを実行させるためのプログラムである。
【００２３】
このプログラムにより、複数の通信装置間で通信を行うときの通信経路として、最適な通信経路を設定することが可能である。
【００２４】
本発明の記憶媒体は、上記通信経路設定方法の各ステップを実行させるためのプログラムを記録したコンピュータ読み取り可能な記憶媒体である。
【００２５】
この記憶媒体により、複数のＶＰＮ装置間で直接通信を行うときの通信遅延の発生を回避することができる。
【発明の効果】
【００２６】
本発明によれば、複数の通信装置間で通信を行うときの通信経路として、最適な通信経路を設定することが可能である。
【図面の簡単な説明】
【００２７】
【図１】本発明の実施形態に係るＶＰＮシステムの構成例を示す図
【図２】本発明の実施形態における同一ＬＡＮに接続されたＶＰＮ装置同士で行われる通信（ローカルＰ２Ｐ通信）の一例を示す図
【図３】本発明の実施形態における同一ＬＡＮ内に多段にルータが配設された環境の一例を示す図
【図４】本発明の実施形態のＶＰＮ装置のハードウェア構成の構成例を示すブロック図
【図５】本発明の実施形態のＶＰＮ装置の機能的な構成例を示すブロック図
【図６】本発明の実施形態のＶＰＮ装置の通信経路情報記憶部により記憶される通信経路情報の一例を示す図
【図７】本発明の実施形態のＶＰＮシステムにおけるＶＰＮ構築時の処理手順の一例を示すシーケンス図
【図８】本発明の実施形態のＶＰＮ装置におけるＶＰＮ構築時の処理内容の一例を示すフローチャート
【図９】本発明の実施形態のＶＰＮ装置におけるＶＰＮ構築時の処理内容の一例を示すフローチャート
【発明を実施するための形態】
【００２８】
以下に、本発明に係る通信経路設定装置、ＶＰＮネットワーキング方法、プログラム、及び記憶媒体の一例としての実施形態を説明する。
【００２９】
図１は本発明の実施形態に係るＶＰＮシステムの構成例を示す図である。本実施形態のＶＰＮシステムは、一つの拠点に設けられたローカルエリアネットワーク（ＬＡＮ、ローカルネットワーク）１００と、他の拠点に設けられたＬＡＮ３００とを、インターネット等の広域ネットワーク（ＷＡＮ、グローバルネットワーク）２００を介して通信経路を接続する。ＬＡＮとしては、有線ＬＡＮまたは無線ＬＡＮなどが用いられる。ＷＡＮとしては、インターネット等が用いられる。そして、ＬＡＮ１００の配下に接続された端末１０３、端末１０５、ＬＡＮ３００の配下に接続された端末３０３の間で、仮想プライベートネットワーク（ＶＰＮ）による秘匿性を担保した通信（以下、「ＶＰＮ通信」と称する）を可能にしている。具体的なＶＰＮ通信の用途（アプリケーションプログラム等）としては、ＩＰ電話（音声通話）、ネットミーティング（動画＆音声通信）、ネットワークカメラ（ビデオ伝送）などが想定される。
【００３０】
ＬＡＮ１００とＷＡＮ２００との境界にはルータ１０２が配設され、ＷＡＮ２００とＬＡＮ３００との境界にはルータ３０２が配設されている。また、本実施形態では、ＶＰＮの構築を可能にするために、ＬＡＮ１００にはＶＰＮ装置１０１及びＶＰＮ装置１０４が接続され、ＬＡＮ３００にはＶＰＮ装置３０１が接続されている。そして、ＶＰＮ装置１０１には配下の端末１０３が接続され、ＶＰＮ装置１０４には配下の端末１０５が接続され、ＶＰＮ装置３０１には配下の端末３０３が接続されている。なお、各ＬＡＮ配下に接続されるＶＰＮ装置、端末の数はこれに限られず、例えばＬＡＮ３００配下に複数のＶＰＮ装置、端末が接続されてもよい。
【００３１】
ここで、ＶＰＮ装置１０１又は端末１０３は、「第１の通信装置」の一例である。ＶＰＮ装置３０１、ＶＰＮ装置１０４、端末３０３、又は端末１０５は、「第２の通信装置」の一例である。さらに、ＶＰＮ装置１０１は、「通信経路設定装置」の一例である。
【００３２】
ＷＡＮ２００上には、ＶＰＮ装置１０１又は１０４とＶＰＮ装置３０１との間のＶＰＮによる接続（以下、「ＶＰＮ接続」と称する）を可能にするために、ＳＴＵＮサーバ（Stun Server:ＳＳ）２０１、呼制御サーバ（Negotiation Server：ＮＳ）２０２が接続されている。また、データ通信中継サーバ（Relay Server ：ＲＳ）２０３、特性情報サーバ（Addressing Server：ＡＳ）２０４もＷＡＮ２００に接続されている。
【００３３】
ＳＴＵＮサーバ２０１は、ＳＴＵＮ（Simple Traversal of User Datagram Protocol (UDP) through Network Address Translators (NATs)）プロトコルを実行するために用いられるサーバである。呼制御サーバ２０２は、ＶＰＮ装置や端末等のピア間の発呼、着呼のために用いられるサーバである。データ通信中継サーバ２０３は、ＶＰＮ装置間のデータ通信を中継する機能を有する。特性情報サーバ２０４は、各端末の特性を記憶しており、ＶＰＮ装置からの取得要求に応じて、例えば取得要求を行ったＶＰＮ装置配下の端末の特性などの特性情報（Configuration file）を送信する。
【００３４】
各機器がＷＡＮ２００を介して通信する場合、ＷＡＮ２００上では、伝送するパケットの送信元や送信先を特定するためのアドレス情報として、ＷＡＮにおいて特定可能なグローバルなアドレス情報が用いられる。一般にはＩＰネットワークが用いられるため、グローバルＩＰアドレス及びポート番号が用いられる。しかし、各ＬＡＮ１００、３００内の通信においては、送信元や送信先を特定するためのアドレス情報として、ＬＡＮ内のみで特定可能なローカルなアドレス情報が用いられる。一般にはＩＰネットワークが用いられるため、ローカルＩＰアドレス及びポート番号が用いられる。したがって、各ＬＡＮ１００、３００とＷＡＮ２００との間の通信を可能にするために、ローカルなアドレス情報とグローバルなアドレス情報との相互変換を行うＮＡＴ（Network Address Translation）機能が各ルータ１０２、３０２に搭載されている。すなわち、アドレス変換機能とは、ＩＰネットワーク層のＩＰアドレスと、トランスポート層のポートとを含めた、いわゆるＮＡＰＴ（Network Address Port Translation）に相当する相互変換を行う。以下本発明の説明において、ＮＡＴ機能とは狭義のＮＡＰＴ機能を含めた広義のＮＡＴ機能を指すものとする。
【００３５】
ただし、ＬＡＮ１００、３００の配下の各端末においては、外部からアクセス可能なグローバルなアドレス情報を自身で持っていない。また、特別な設定を行わない限り、ＬＡＮ１００配下の端末１０３又は１０５が他のＬＡＮ３００配下の端末３０３と直接通信を行うことはできない。また、各ルータ１０２、３０２のＮＡＴ機能のため、普通の状態ではＷＡＮ２００側から各ＬＡＮ１００、３００内の各端末にアクセスすることもできない。
【００３６】
このような状況であっても、本実施形態では、各拠点のＬＡＮにＶＰＮ装置１０１、１０４、３０１を設けることにより、図１において示すネットワークを介したＰ２Ｐ通信の経路のように、ＬＡＮ間をＶＰＮ接続して端末１０３又は１０５と端末３０３との間で仮想的な閉じられた通信経路を通じて直接通信することが可能になる。本実施形態のＶＰＮ装置の構成、機能、及び動作について以下に順を追って説明する。
【００３７】
ＳＴＵＮサーバ２０１は、ＳＴＵＮプロトコルの実行に関するサービスを行うもので、いわゆるＮＡＴ越えの通信を行うために必要な情報を提供するアドレス情報サーバである。ＳＴＵＮは、音声、映像、文章などの双方向リアルタイムＩＰ通信を行うアプリケーションにおいて、ＮＡＴ通過の方法の１つとして使われる標準化されたクライアントサーバ型のインターネットプロトコルである。ＳＴＵＮサーバ２０１は、アクセス元からの要求に応じて、外部からアクセス可能な当該アクセス元のグローバルなアドレス情報として、外部ネットワークから見える外部アドレスとポートの情報を含む外部アドレス・ポート情報を返信する。外部アドレス・ポート情報としては、ＩＰネットワークにおいてはグローバルＩＰアドレス及びポート番号が用いられる。
【００３８】
各ＶＰＮ装置１０１、１０４、３０１は、ＳＴＵＮサーバ２０１との間で所定のテスト手順の通信を実行し、ＳＴＵＮサーバ２０１から自装置のグローバルＩＰアドレス及びポート番号が含まれる応答パケットを受信する。これにより、各ＶＰＮ装置１０１、１０４、３０１は自装置のグローバルＩＰアドレス及びポート番号を取得することができる。また、自装置の位置するＬＡＮとＷＡＮとの間にルータが複数存在する場合等であっても、これらのルータ等がＵＰｎＰ（Universal Plug and Play）の機能を有していない場合であっても、確実にグローバルＩＰアドレス及びポート番号を取得できるという効果もある。
【００３９】
なお、ＶＰＮ装置１０１、１０４、３０１がグローバルＩＰアドレス及びポート番号を取得するための方法に関しては、ＩＥＴＦのＲＦＣ ３４８９（STUN - Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs)）にて記載された手法を利用することもできる。しかし、ＳＴＵＮによる手法はグローバルＩＰアドレス及びポート番号を取得するところまでが可能なのであって、本実施形態では、通信に先立って予め各種パラメータの設定作業を行うこともなく、簡易かつ柔軟にＶＰＮを構築することができる。
【００４０】
呼制御サーバ２０２は、特定の相手先を呼び出して通信経路を確立するための通信装置間の呼制御に関するサービスを行う中継サーバである。呼制御サーバ２０２は、登録されたＶＰＮ装置または端末の識別情報を保持しており、例えばＩＰ電話の機能を有する通信システムの場合には、接続相手の電話番号に基づいて特定の相手先を呼び出すことも考えられる。また、呼制御サーバ２０２は、信号やデータを中継する機能を有しており、発信側の装置から送出されたパケットを着信側の装置に転送したり、着信側の装置から送出されたパケットを発信側の装置に転送したりすることも可能である。また、呼制御サーバ２０２は、各端末がデータ通信中継サーバ２０３へアクセス可能となるように、データ通信中継サーバ２０３のグローバルＩＰアドレス及びポート番号の情報を通知することもできる。
【００４１】
なお、ＳＴＵＮサーバ２０１及び呼制御サーバ２０２は、ここでは別個のサーバによる構成例を示しているが、１つのサーバで構成してもよいし、ＷＡＮ上の他のいずれかのサーバに同様の機能を搭載して構成することも可能である。
【００４２】
データ通信中継サーバ２０３は、ＶＰＮ装置間のデータ通信を中継する機能を有している。データ通信中継サーバ２０３はＷＡＮ２００上に複数配置されてもよく、同時に複数のデータ通信の中継を行うことができる。
【００４３】
特性情報サーバ２０４は、ＶＰＮ装置からの取得要求に応じて、特性情報（Configuration file）を送信する。特性情報としては、例えば各端末の設定情報や動作情報が含まれる。また、各端末がデータ通信中継サーバ２０３へアクセス可能となるように、データ通信中継サーバ２０３のグローバルＩＰアドレス情報及びポート番号の情報が含まれてもよい。
【００４４】
次に、複数のＶＰＮ装置間で通信を行うときの通信経路について説明する。本実施形態では、以下の４つの通信経路（第１〜第４の通信経路）を想定している。図１では、太実線又は太破線により、第１〜第４の通信経路を示している。
【００４５】
まず、第１の通信経路は、呼制御サーバ２０２を介した通信経路である。呼制御サーバ２０２は、ＶＰＮ装置間で通信を確立するための処理を行うため、第１の通信経路は、例えば、通信開始から所定期間、初期段階の通信経路として利用される。
【００４６】
また、第２の通信経路は、データ通信中継サーバ２０３を介した通信経路である。第２の通信経路は、例えば、通信開始から所定期間経過後から利用される。これにより、データ通信中継サーバ２０３は呼制御サーバ２０２よりも処理負荷が軽いため、呼制御サーバ２０２を介した通信よりも高速にＶＰＮ装置間の通信を中継することができる。
【００４７】
また、第３の通信経路は、ＷＡＮ２００を介して２つのＬＡＮ１００、３００の経路を経路接続してＶＰＮシステムを構築し、ネットワークを介して直接通信を行う通信経路（以下、ネットワークを介したＰ２Ｐ通信経路ともいう）である。第３の通信経路は、例えば、異なるＬＡＮ１００、３００に接続される端末１０３と端末３０３との間で通信を行う場合であって、Ｐ２Ｐ通信が可能なときに利用される。
【００４８】
また、第４の通信経路は、同一のＬＡＮ１００に接続された端末同士で通信を行うときに、外部ネットワークを介さずに直接通信を行う通信経路（以下、ローカルＰ２Ｐ通信経路ともいう）である。第４の通信経路は、例えば、同一のＬＡＮ１００に接続されるＶＰＮ装置１０１の配下の端末１０３とＶＰＮ装置１０４の配下の端末１０５との間で通信を行うときに利用される。
【００４９】
図２は、同一ＬＡＮに接続されたＶＰＮ装置同士で行われる通信（ローカルＰ２Ｐ通信）の一例を示す図である。ここでは、ＶＰＮ装置１０１とＶＰＮ装置１０４との間で通信を行うことを想定している。
【００５０】
初期段階では、ＶＰＮ装置１０１及びＶＰＮ装置１０４は、互いに同一ＬＡＮ１００内に配置されていることを認識していない。そのため、ＶＰＮ装置１０１及びＶＰＮ装置１０４は、外部アドレス・ポート情報を用いて、ＷＡＮ２００へパケットを送信しようとする。ここで、ルータ１０２は、ＶＰＮ装置１０１及びＶＰＮ装置１０４からの通信データを参照し、送信先のアドレス（例えばグローバルＩＰアドレス）がルータ１０２配下の端末であることを認識した場合には、外部ネットワーク（ここではＷＡＮ２００）に通信データを送出せずに、送信先であるＶＰＮ装置１０４及びＶＰＮ装置１０１へ送る。この動作をヘアピニング動作とも呼ぶ。
【００５１】
また、ＶＰＮ装置１０１及びＶＰＮ装置１０４が、相手装置が同一ＬＡＮ１００内に存在することを認識した場合には、相手装置のプライベートＩＰアドレス及びポート番号の情報を用いて、ルータ１０２を介さずに、ＶＰＮ装置１０１及びＶＰＮ装置１０４の間で直接通信してもよい。このようにルータ１０２を介さずに直接通信を行うことで、中継回数が一回減少し、ネットワーク負荷が軽減し、高速化が実現できる。また、ルータ１０２の機種によっては、ヘアピニング動作を行うことができない機種もあるが、ルータ１０２の機種によらずローカルＰ２Ｐ通信が可能となる。
【００５２】
さらに、図３は、同一ＬＡＮ内に多段にルータが配設された環境の一例を示す図である。図３に示す例では、ＬＡＮ＿ＡにＬＡＮ＿Ｂが含まれる構成となっている。ＬＡＮ＿ＡにはルータＡが接続されており、ＬＡＮ＿ＢにはルータＢが接続されている。ルータＢの配下には、ＶＰＮ装置Ａ及びＶＰＮ装置Ｂが配置されている。また、ＬＡＮ＿Ｂのエリア外であってルータＡの配下には、ＶＰＮ装置Ｃが配置されている。ここでは、ＶＰＮ装置ＡとＶＰＮ装置Ｃとの間で通信を行うことを想定している。
【００５３】
初期段階では、ＶＰＮ装置Ａ及びＶＰＮ装置Ｃは、互いに同一ＬＡＮ＿Ａ内に配置されていることを認識していない。そのため、ＶＰＮ装置Ａ及びＶＰＮ装置Ｃは、外部アドレス・ポート情報を用いて、ＷＡＮ２００へパケットを送信しようとする。ここで、ＶＰＮ装置Ａは送信先のアドレス（例えばグローバルＩＰアドレス）がルータＡ配下の端末であることを認識した場合には、外部ネットワーク（ここではＷＡＮ２００）に通信データを送出せずに、送信先であるＶＰＮ装置ＣのローカルＩＰアドレスへ送る。ＶＰＮ装置Ｃは、受け取ったデータの送信元へ送り返すことで、このように、ルータが多段に接続されている環境であっても、同一ＬＡＮ内において直接Ｐ２Ｐ動作を行うことが可能である。
【００５４】
次に、本実施形態のＶＰＮ装置の構成及び機能について説明する。なお、ＶＰＮ装置１０１、１０４、３０１の構成及び機能は同様であり、ここではＶＰＮ装置１０１によって説明する。図４は本実施形態のＶＰＮ装置のハードウェア構成の構成例を示すブロック図である。
【００５５】
ＶＰＮ装置１０１は、マイクロコンピュータ（ＣＰＵ）１１１、フラッシュＲＡＭ等による不揮発性メモリ１１２、ＳＤ ＲＡＭ等によるメモリ１１３、ネットワークインタフェース１１４、ネットワークインタフェース１１５、ＬＡＮ側ネットワーク制御部１１６、ＷＡＮ側ネットワーク制御部１１７、通信中継部１１８、表示制御部１１９、表示部１２０を有して構成される。
【００５６】
マイクロコンピュータ１１１は、所定のプログラムを実行することによりＶＰＮ装置１０１全体の制御を実施する。不揮発性メモリ１１２は、マイクロコンピュータ１１１が実行するプログラムを保持している。このプログラムの中には、ＶＰＮ装置１０１が外部アドレス・ポート情報やプライベートＩＰアドレスの情報を取得するためのアドレス・ポート取得プログラムも含まれている。
【００５７】
なお、マイクロコンピュータ１１１が実行するプログラムについては、任意の通信経路を経由してオンラインで外部のサーバから取得することもできるし、例えばメモリカードやＣＤ−ＲＯＭのような記録媒体から読み込んで取得することもできる。換言すれば、汎用のコンピュータ（マイクロコンピュータ１１１）にＶＰＮ装置の機能を実現するプログラムを記録媒体から読み込むことによってＶＰＮ装置、およびＶＰＮネットワーキング方法を実現することができる。
なお、マイクロコンピュータ１１１がプログラムを実行する時には、不揮発性メモリ１１２上のプログラムの一部がメモリ１１３上に展開され、メモリ１１３上のプログラムが実行される場合もある。
【００５８】
メモリ１１３は、ＶＰＮ装置１０１の運用中のデータ管理や、各種設定情報などを一時的に記憶するためのものである。設定情報としては、自端末の外部アドレス・ポート取得要求の応答に含まれる外部アドレス・ポート情報等、通信に必要なあて先アドレス情報などが含まれる。また、自端末のプライベートＩＰアドレスの情報が含まれてもよい。
【００５９】
ネットワークインタフェース１１４は、ＶＰＮ装置１０１と自装置が管理する配下の端末１０３とを通信可能な状態で接続するためのインタフェースである。ネットワークインタフェース１１５は、ＶＰＮ装置１０１とＬＡＮ１００とを通信可能な状態で接続するためのインタフェースである。ＬＡＮ側ネットワーク制御部１１６は、ＬＡＮ側のネットワークインタフェース１１４に関する通信制御を行うものである。ＷＡＮ側ネットワーク制御部１１７は、ＷＡＮ側のネットワークインタフェース１１５に関する通信制御を行うものである。
【００６０】
通信中継部１１８は、ＬＡＮ側に接続された配下の端末１０３から外部のＶＰＮ接続先（ＶＰＮ装置３０１配下の端末３０３）や同一ＬＡＮ内のＶＰＮ接続先（ＶＰＮ装置１０４配下の端末１０５）へ送出するパケットデータと、反対に、外部のＶＰＮ接続先（ＶＰＮ装置３０１配下の端末３０３）や同一ＬＡＮ内のＶＰＮ接続先（ＶＰＮ装置１０４配下の端末１０５）から配下の端末１０３宛に到着したパケットデータをそれぞれ中継する。
【００６１】
表示部１２０は、ＶＰＮ装置１０１としての動作状態の表示等を行う表示器により構成され、各種状態をユーザあるいは管理者に通知する。表示部１２０は、複数の発光ダイオード（ＬＥＤ）や液晶表示器（ＬＣＤ）等により構成される。表示制御部１１９は、表示部１２０の表示制御を行うもので、マイクロコンピュータ１１１からの表示信号に従って表示部１２０に表示する内容等を制御する。
【００６２】
図５は本実施形態のＶＰＮ装置の機能的な構成例を示すブロック図である。
【００６３】
ＶＰＮ装置１０１は、機能構成として、システム制御部１３０、配下端末管理部１３１、メモリ部１３２、データ中継部１３３、設定用インタフェース部１３４、通信制御部１４０を有して構成される。メモリ部１３２は、アドレス・ポート情報記憶部１３５、通信経路情報記憶部１３６を有する。通信制御部１４０は、アドレス・ポート取得部１４１、ＶＰＮ機能部１４２、呼制御機能部１４３を有する。ＶＰＮ機能部１４２は、暗号処理部１４５を有する。これらの各機能は、図４に示した各ブロックのハードウェアの動作、またはマイクロコンピュータ１１１が所定のプログラムを実行することにより実現する。
【００６４】
なお、ＶＰＮ装置１０１のＬＡＮ側のネットワークインタフェース１１４は、配下の端末１０３と接続され、ＷＡＮ側のネットワークインタフェース１１５は、ＬＡＮ１００及びルータ１０２を経由してＷＡＮ２００と接続される。
【００６５】
システム制御部１３０は、ＶＰＮ装置１０１の全体の制御を行う。配下端末管理部１３１は、ＶＰＮ装置１０１配下の端末１０３の管理を行う。メモリ部１３２は、アドレス・ポート情報記憶部１３５において、外部アドレス（ＷＡＮ２００上でのグローバルＩＰアドレス）とポート（ＩＰネットワークのポート番号）の情報を含む外部アドレス・ポート情報やプライベートＩＰアドレスの情報を記憶する。外部アドレス・ポート情報及びプライベートＩＰアドレスの情報としては、接続元である配下の端末１０３に割り当てられたグローバルＩＰアドレス及びポート番号やプライベートＩＰアドレスの情報、接続先の端末３０３又は１０５に割り当てられたグローバルＩＰアドレス及びポート番号の情報、接続先の端末１０５に割り当てられたプライベートＩＰアドレスの情報などを記憶する。
【００６６】
また、メモリ部１３２は、通信経路情報記憶部１３６において、ＶＰＮ装置１０１とＶＰＮ装置３０１又は１０４とを通信可能に接続する複数の通信経路（例えば第１〜第４の通信経路）の情報と、各通信経路の評価情報と、を含む情報を記憶する。図６は、通信経路情報記憶部１３６が記憶する情報（通信経路情報）の一例を示す図である。通信経路情報記憶部１３６は、通信経路情報として、通信経路毎に、優先度、経路種別、接続速度、通信速度、接続コスト、接続安定度、などの情報を有する。このうち、優先度、接続速度、通信速度、接続コスト、接続安定度などが評価情報の一例である。なお、図６に示す例では、最適、適、不適、最不適の４段階の指標が記憶されているが、これに限られず、具体的な数値を記憶していてもよい。例えば、ビットレート、ボーレート、エラーレート、再送頻度、通信を中継する中継器の数、通信料金、などを記憶していてもよい。また、ユーザの指示により、操作部等を介して通信経路情報を必要があるときに任意に設定できるようにしてもよい。
【００６７】
データ中継部１３３は、接続元の端末１０３から接続先の端末３０３又は１０５に向かって転送されるパケットや、逆に接続先の端末３０３又は１０５から接続元の端末１０３に向かって転送されるパケットをそれぞれ中継する。設定用インタフェース部１３４は、ユーザあるいは管理者がＶＰＮ装置１０１に対する設定操作等の各種操作を行うためのユーザインタフェースである。このユーザインタフェースの具体例として、端末上で動作するブラウザによって表示するＷｅｂページなどが用いられる。
【００６８】
通信制御部１４０のアドレス・ポート取得部１４１は、ＶＰＮ装置１０１の配下の端末１０３に割り当てられた外部アドレス・ポート情報をＳＴＵＮサーバ２０１から取得する。また、接続先の端末３０３又は１０５の外部アドレス・ポート情報を含むパケットを呼制御サーバ２０２を経由して受信し、接続先の端末３０３又は１０５に割り当てられた外部アドレス・ポート情報を取得する。また、接続先の端末１０５のプライベートＩＰアドレスの情報を含むパケットを例えば呼制御サーバ２０２を介して取得する。アドレス・ポート取得部１４１が取得した情報は、メモリ部１３２のアドレス・ポート情報記憶部１３５に保持される。
【００６９】
通信制御部１４０のＶＰＮ機能部１４２は、暗号処理部１４５において、ＶＰＮ通信のために必要な暗号処理を行う。すなわち、暗号処理部１４５は、送信するパケットをカプセリングして暗号化したり、受信したパケットをアンカプセリングして復号化して元のパケットを抽出したりする。なお、ＶＰＮ通信は、Ｐ２Ｐ通信だけではなく、先に説明した第１〜第４の通信経路により行うことが可能である。つまり、呼制御サーバ２０２又はデータ通信中継サーバ２０３でパケットの中継を行い、クライアント／サーバ方式でＶＰＮ通信を行うことも可能である。この場合には、サーバ側で暗号処理を行うようにしてもよい。
【００７０】
呼制御機能部１４３は、目的の接続先に接続するための接続要求を呼制御サーバ２０２に送信したり、接続先からの接続応答を呼制御サーバ２０２を経由して受信したりするための処理を実施する。また、呼制御機能部１４３は、第１〜第４の通信経路のいずれかにより、ＶＰＮ装置１０１とＶＰＮ装置３０１又は１０４とが接続可能な状態か否かを判定する。また、呼制御機能部１４３は、接続可能な状態と判定した通信経路に関して、通信経路情報記憶部１３６に記憶された通信経路情報の評価情報を参照し、使用すべき特定の通信経路を設定する。例えば、第１〜第４の全ての通信経路が接続可能な状態にある場合には、第４の通信経路であるローカルＰ２Ｐ通信経路を使用すべき通信経路に設定する。また、ネットワークを介したＰ２Ｐ通信やローカルＰ２Ｐ通信による接続が不可能な状態である場合には、第２の通信経路であるデータ通信中継サーバ２０３を介した通信経路を使用すべき通信経路に設定する。
【００７１】
次に、本実施形態のＶＰＮ装置１０１によるＶＰＮ構築時の動作について説明する。図７は本実施形態のＶＰＮシステムにおけるＶＰＮ構築時の処理手順を示すシーケンス図である。この図７では、ＶＰＮ装置を含むネットワークにおいて、ＶＰＮ装置１０１の配下の端末１０３と他のＶＰＮ装置３０１の配下の端末３０３又は他のＶＰＮ装置１０４の配下の端末１０５に接続しようとする場合の処理を示している。ここでは、一例として、通信経路情報記憶部１３６に記憶された通信経路情報に含まれる優先度の低い順に通信経路を確立する手順について説明するが、通信経路を確立する順序はこれに限られない。
【００７２】
まず、図７に示す処理に先立ち、ＶＰＮ装置１０１は呼制御サーバ２０２にログインしてユーザ認証を受けるようにする。ＶＰＮ装置１０１がユーザ認証に成功した場合、呼制御サーバ２０２において、ＶＰＮ装置１０１の識別情報（ＭＡＣアドレス、ユーザＩＤ、電話番号など）やネットワーク上の位置情報（グローバルＩＰアドレス）等の登録、設定が行われる。以降、ＶＰＮ装置１０１と呼制御サーバ２０２との間で通信可能となる。なお、ＶＰＮ装置１０１は発呼側であるが、被呼側であるＶＰＮ装置３０１又は１０４についても同様に、呼制御サーバ２０２にログインしてユーザ認証を受け、呼制御サーバ２０２においてＶＰＮ装置３０１又は１０４の識別情報等の登録、設定が行われる。
【００７３】
この状態で、ＶＰＮ装置１０１は、ＶＰＮ通信を行うアプリケーションの起動に伴ってアドレス・ポート取得部１４１の機能により、配下の端末１０３からのＶＰＮ接続の接続要求を受けると、呼制御サーバ２０２に対して、接続先の端末３０３を配下に持つＶＰＮ装置３０１又は接続先の端末１０５を配下に持つＶＰＮ装置１０４へのネットワークを介したＰ２Ｐ通信経路を構築するための接続要求を行う（ステップＳ１０１）。このとき、ＶＰＮ装置１０１は、発呼側及び被呼側の識別情報を含む接続要求を呼制御サーバ２０２へ送信する。呼制御サーバ２０２は、この接続要求を中継してＶＰＮ接続の接続先となるＶＰＮ装置３０１又は１０４へ送信する（ステップＳ１０２）。この接続要求により、呼制御サーバ２０２は、ＶＰＮ装置１０１がＶＰＮ装置３０１又は１０４へネットワークを介したＰ２Ｐ経路構築のためのＶＰＮ接続をしたいという要求を接続先に通知する。
【００７４】
ＶＰＮ装置１０１による接続要求と同時並行で、ＶＰＮ装置１０１は、ＳＴＵＮサーバ２０１との間で外部アドレス・ポート取得手順を行う（ステップＳ１０３）。このとき、ＶＰＮ装置１０１は、自装置に割り当てられた外部アドレス・ポート情報（ＷＡＮ２００側からみたグローバルＩＰアドレス及びポート番号）を取得するため、ＳＴＵＮサーバ２０１に対して、外部アドレス・ポート取得要求としてバインディングリクエスト（Binding Request 接続要求、RFC3489参照；以下同じ）パケットを送出する。一方、ＳＴＵＮサーバ２０１は、外部アドレス・ポート取得要求に対して応答し、ＶＰＮ装置１０１に外部アドレス・ポート情報返信として外部アドレス・ポート情報を含むバインディングレスポンス（Binding Response 接続応答、RFC3489参照；以下同じ）パケットを返送する。そして、ＶＰＮ装置１０１は、外部アドレス・ポート情報返信により得られた外部アドレス・ポート情報を記憶する。
【００７５】
接続先のＶＰＮ装置３０１又は１０４は、呼制御サーバ２０２からの接続要求を受けると、呼制御サーバ２０２に対して、接続要求に対する接続応答を行う（ステップＳ１０４）。このとき、ＶＰＮ装置３０１又は１０４は、発呼側及び被呼側の識別情報を含む接続応答を呼制御サーバ２０２へ送信する。呼制御サーバ２０２は、この接続応答を中継してＶＰＮ接続の接続要求元となるＶＰＮ装置１０１へ送信する（ステップＳ１０５）。この接続応答により、呼制御サーバ２０２は、接続要求に対するＶＰＮ装置３０１又は１０４からＶＰＮ装置１０１への応答を接続要求元に通知する。
【００７６】
ＶＰＮ装置３０１又は１０４による接続応答と同時並行で、ＶＰＮ装置３０１又は１０４は、ＳＴＵＮサーバ２０１との間で外部アドレス・ポート取得手順を行う（ステップＳ１０６）。このとき、ＶＰＮ装置３０１又は１０４は、上記ＶＰＮ装置１０１と同様、自装置に割り当てられた外部アドレス・ポート情報（ＷＡＮ２００側からみたグローバルＩＰアドレス及びポート番号）を取得するため、ＳＴＵＮサーバ２０１に対して、外部アドレス・ポート取得要求としてバインディングリクエストパケットを送出する。一方、ＳＴＵＮサーバ２０１は、外部アドレス・ポート取得要求に対して応答し、ＶＰＮ装置３０１又は１０４に外部アドレス・ポート情報返信として外部アドレス・ポート情報を含むバインディングレスポンスパケットを返送する。そして、ＶＰＮ装置３０１又は１０４は、外部アドレス・ポート情報返信により得られた外部アドレス・ポート情報を記憶する。
【００７７】
ＶＰＮ装置１０１がＶＰＮ装置３０１又は１０４から接続許可を含む接続応答を受信すると、ＶＰＮ装置１０１及びＶＰＮ装置３０１又は１０４は、呼制御サーバ２０２を介して、互いに実データ（音声パケットや映像パケット等）の通信を行う（ステップＳ１０７）。つまり、ネットワークを介したＰ２Ｐ通信経路を確立する前に、実データの通信を開始している。
【００７８】
次に、ＶＰＮ装置１０１及びＶＰＮ装置３０１又は１０４は、呼制御サーバ２０２を介して、ＳＴＵＮサーバ２０１から取得した自装置の外部アドレス・ポート情報を互いに通知する（ステップＳ１０８）。
【００７９】
次に、ＶＰＮ装置１０１及びＶＰＮ装置３０１又は１０４は、呼制御サーバ２０２を介した実データの通信から、データ通信中継サーバ２０３を介した実データの通信に切り替える（ステップＳ１０９）。データ通信中継サーバ２０３のグローバルＩＰアドレス及びポート番号の情報は、特性情報サーバ２０４からデータ通信中継サーバ２０３の各種情報（グローバルＩＰアドレス及びポート番号の情報を含む）を含む特性情報を取得することにより把握してもよい。また、呼制御サーバ２０２が、実データの通信をデータ通信中継サーバ２０３へ切り替える都度、データ通信中継サーバ２０３のポート番号の情報をＶＰＮ装置１０１及びＶＰＮ装置３０１又は１０４へ通知するようにしてもよい。
【００８０】
呼制御サーバ２０２からデータ通信中継サーバ２０３への切り替えと同時並行で、ＶＰＮ装置１０１及びＶＰＮ装置３０１又は１０４は、互いに受信した相手の外部アドレス・ポート情報を用いて、ＶＰＮ装置１０１及びＶＰＮ装置３０１又は１０４との間で、ネットワークを介したＰ２Ｐ通信が可能な状態であるか否かを判定する（ステップＳ１１０）。ここでは、互いに相手の外部アドレス・ポート情報（グローバルＩＰアドレス及びポート番号）を送信先に設定してＷＡＮ２００を経由してパケットを送信し、通信可能であるか否かを確認する。例えば、ＶＰＮ装置１０１がＶＰＮ装置３０１又は１０４へパケットを送信し、この送信から所定期間内にＶＰＮ装置３０１又は１０４からパケットを受信したことを示す応答を受信した場合には、ネットワークを介したＰ２Ｐ通信が可能な状態であると判定する。
【００８１】
例えば、ネットワークを介したＰ２Ｐ通信が可能か否かは、ルータ１０２及びルータ３０２が有するＮＡＴ機能の種別によって決定される。ＮＡＴ機能の種別としては、ＦＣ（Full Cone NAT）、ＡＲ（Address-Restricted cone NAT）、ＰＲ（Port-Restricted cone NAT）、ＳＹＮ（Symmetric NAT）の４種類がある。このうち、ルータ１０２及びルータ３０２の組み合わせが、両者ともＳＹＮの場合、もしくは、一方がＰＲかつ他方がＳＹＮの場合には、ネットワークを介したＰ２Ｐ通信が不可能となる。これらの組み合わせ以外であれば、ＶＰＮ装置１０１及びＶＰＮ装置３０１又は１０４の間でネットワークを介したＰ２Ｐ通信が可能である。
【００８２】
ネットワークを介したＰ２Ｐ通信が可能な状態である場合には、ネットワークを介したＰ２Ｐ通信経路が確立されているため、ＶＰＮ装置１０１及びＶＰＮ装置３０１又は１０４は、ネットワークを介したＰ２Ｐ通信により、互いに暗号化した実データの通信を開始する（ステップＳ１１１）。
【００８３】
さらに、ＶＰＮ装置１０１及びＶＰＮ装置３０１又は１０４は、ローカルＰ２Ｐ通信が可能な状態であるか否かを判定する（ステップＳ１１２）。
このとき、まず、ＶＰＮ装置１０１は、接続先のＶＰＮ装置３０１又は１０４の外部アドレス・ポート情報を参照し、ＶＰＮ装置３０１又は１０４のグローバルＩＰアドレスが自装置と同一であるか否かを判定する。グローバルＩＰアドレスが同一である場合には、ＶＰＮ装置１０１の接続先が同一のルータ１０２配下のＶＰＮ装置、つまりＶＰＮ装置１０４であると認識する。
そして、ＶＰＮ装置１０４のプライベートＩＰアドレス及びポート番号の情報を用いて、ＶＰＮ装置１０１がＶＰＮ装置１０４へパケットを送信し、この送信から所定期間内にＶＰＮ装置１０４からパケットを受信したことを示す応答を受信した場合には、ローカルＰ２Ｐ通信が可能な状態であると判定する。なお、ポート番号の情報については、外部アドレス・ポート情報を互いに通知した際に取得済みである。プライベートＩＰアドレスの情報については、ステップＳ１０８において外部アドレス・ポート情報を互いに通知する際に併せて互いに通知してもよいし、いずれかの通信経路による通信（ステップＳ１０７、１０９、１１１における通信）を行っているときに、実データとともに互いに通知してもよい。つまり、ローカルＰ２Ｐ通信を開始する前に、互いにプライベートＩＰアドレスの情報を通知しておく。
【００８４】
ローカルＰ２Ｐ通信が可能な場合には、ＶＰＮ装置１０１及びＶＰＮ装置１０４は、ネットワークを介したＰ２Ｐ通信からローカルＰ２Ｐ通信に切り替え、ローカルＰ２Ｐ通信を開始する（ステップＳ１１３）。ローカルＰ２Ｐ通信を行うときには、ＶＰＮ装置１０１及びＶＰＮ装置１０４のプライベートＩＰアドレス及びポート番号の情報を用いる。
【００８５】
次に、図８及び図９は、図７のシーケンス図に対応するＶＰＮ構築時の処理手順を示すフローチャートである。この図８及び図９では、ＶＰＮ装置を含むネットワークにおいて、ＶＰＮ装置１０１の配下の端末１０３から他のＶＰＮ装置３０１の配下の端末３０３又は他のＶＰＮ装置１０４の配下の端末１０５に接続しようとする場合の処理を示している。
【００８６】
まず、図７の処理手順と同様に、ＶＰＮ装置１０１及びＶＰＮ装置３０１又は１０４は呼制御サーバ２０２にログインしてユーザ認証を受け、呼制御サーバ２０２においてＶＰＮ装置１０１及びＶＰＮ装置３０１又は１０４の識別情報等の登録、設定が行われる。
【００８７】
ＶＰＮ装置１０１は、呼制御サーバ２０２を介してＶＰＮ装置３０１又は１０４へ接続要求を送信する（ステップＳ３０１）とともに、ＳＴＵＮサーバ２０２から自装置の外部アドレス・ポート情報を取得する（ステップＳ３０２）。ＶＰＮ装置３０１又は１０４は、ＶＰＮ装置１０１からの接続要求を受信すると（ステップＳ３０３）、ＳＴＵＮサーバ２０１から自装置の外部アドレス・ポート情報を取得する（ステップＳ３０４）とともに、呼制御サーバ２０２を介してＶＰＮ装置１０１へ接続応答を送信する（ステップＳ３０５）。
【００８８】
ＶＰＮ装置１０１は、ＶＰＮ装置３０１又は１０４からの接続応答を受信したか否かを判定し（ステップＳ３０６）、受信していない場合には接続応答を受信するまで待機する。ＶＰＮ装置１０１が接続許可を含む接続応答を受信すると、ＶＰＮ装置１０１及びＶＰＮ装置３０１又は１０４は、呼制御サーバ２０２を介して互いにデータ通信（実データの通信）を開始する（ステップＳ３０７及びステップＳ３０８）。
【００８９】
呼制御サーバ２０２を介したデータ通信の開始後、ＶＰＮ装置１０１及びＶＰＮ装置３０１又は１０４は、データ通信中継サーバ２０３への接続手順を実行する（ステップＳ３０９及びＳ３１０）。ここでは、呼制御サーバ２０２又は特性情報サーバ２０４からデータ通信中継サーバ２０３のグローバルＩＰアドレス及びポート番号の情報を取得する。そして、ＶＰＮ装置１０１及びＶＰＮ装置３０１又は１０４は、取得したデータ通信中継サーバ２０３のグローバルＩＰアドレス及びポート番号を中継先に設定し、中継サーバ２０３を介して互いにデータ通信を開始する（ステップＳ３１１及びＳ３１２）。つまり、実データの通信が呼制御サーバ２０２経由からデータ通信中継サーバ２０３経由に切り替えられる。切り替え後は、呼制御サーバ２０２を介したデータ通信を終了する。
【００９０】
データ通信中継サーバ２０３を介したデータ通信の開始後、ＶＰＮ装置１０１及びＶＰＮ装置３０１又は１０４は、互いに受信した相手の外部アドレス・ポート情報を用いて、ネットワークを介したＰ２Ｐ通信の接続確認を行う（ステップＳ３１３及びＳ３１４）。
ここでは、ネットワークを介したＰ２Ｐ通信が可能か否かの判定を行う。ネットワークを介したＰ２Ｐ通信が可能である場合には、ＶＰＮ装置１０１及びＶＰＮ装置３０１又は１０４は、互いにネットワークを介したＰ２Ｐ通信を開始する（ステップＳ３１５及びＳ３１６）。
【００９１】
続いて、データ通信中継サーバ２０３を介したデータ通信もしくはネットワークを介したＰ２Ｐ通信中に、ＶＰＮ装置１０１及びＶＰＮ装置３０１又は１０４は、通信相手のグローバルＩＰアドレスが自装置のグローバルＩＰアドレスと同一であるか否かを判定する（ステップＳ３１７及びＳ３１８）。互いのグローバルＩＰアドレスが異なる場合には、異なるＬＡＮ１００、３００にＶＰＮ装置１０１、３０１が配設されていることを示している。この場合には、ＶＰＮ装置１０１及びＶＰＮ装置３０１は、現状の通信経路を利用したデータ通信（つまりデータ通信中継サーバ２０３を介した通信もしくはネットワークを介したＰ２Ｐ通信）を継続する（ステップＳ３１９）。
【００９２】
一方、互いのグローバルＩＰアドレスが一致する場合には、同一のＬＡＮ１００にＶＰＮ装置１０１、１０４が配設されていることを示している。この場合には、ＶＰＮ装置１０１及びＶＰＮ装置１０４は、例えば呼制御サーバ２０２を経由してプライベートＩＰアドレスの情報を互いに相手側へ通知し、互いに受信した相手のプライベートＩＰアドレス及びポート番号の情報を用いて、ローカルＰ２Ｐ通信経路の接続確認を行う（ステップＳ３２０及びＳ３２１）。ローカルＰ２Ｐ通信経路の接続が不可能である場合には、ＶＰＮ装置１０１及びＶＰＮ装置１０４は、現状の通信経路を利用したデータ通信（つまりデータ通信中継サーバ２０３を介した通信もしくはネットワークを介したＰ２Ｐ通信）を継続する（ステップＳ３２２）。一方、ローカル２Ｐ通信経路の接続が可能である場合には、ＶＰＮ装置１０１及びＶＰＮ装置１０４は、互いにローカルＰ２Ｐ通信を開始する（ステップＳ３２３及びＳ３２４）。
【００９３】
このような図７及び図８の処理手順によれば、通信経路情報記憶部１３６に記憶された通信経路情報に示す優先度の高い通信経路を優先して設定することができる。したがって、通信を行うとするＶＰＮ装置の置かれた環境において、最適な通信経路を設定することができる。
【産業上の利用可能性】
【００９４】
本発明は、複数の通信装置間で通信を行うときの通信経路として、最適な通信経路を設定することが可能な通信経路設定装置、通信経路設定方法、プログラム、記憶媒体等に有用である。
【符号の説明】
【００９５】
１００、３００  ＬＡＮ
１０１、１０４、３０１  ＶＰＮ装置
１０２、３０２  ルータ
１０３、１０５、３０３  端末
１１１  マイクロコンピュータ（ＣＰＵ）
１１２  不揮発性メモリ
１１３  メモリ
１１４、１１５  ネットワークインタフェース
１１６  ＬＡＮ側ネットワーク制御部
１１７  ＷＡＮ側ネットワーク制御部
１１８  通信中継部
１１９  表示制御部
１２０  表示部
１３０  システム制御部
１３１  配下端末管理部
１３２  メモリ部
１３３  データ中継部
１３４  設定用インタフェース部
１３５  アドレス・ポート情報記憶部
１３６  通信経路情報記憶部
１４０  通信制御部
１４１  アドレス・ポート取得部
１４２  ＶＰＮ機能部
１４３  呼制御機能部
１４５  暗号処理部
２００  ＷＡＮ
２０１  ＳＴＵＮサーバ
２０２  呼制御サーバ
２０３  データ通信中継サーバ
２０４  特性情報サーバ
【図１】
2010283762.tif 000003
【図２】
2010283762.tif 000004
【図３】
2010283762.tif 000005
【図４】
2010283762.tif 000006
【図５】
2010283762.tif 000007
【図６】
2010283762.tif 000008
【図７】
2010283762.tif 000009
【図８】
2010283762.tif 000010
【図９】
2010283762.tif 000011