JP2011166438A - Vpn装置、vpnネットワーキング方法、プログラム - Google Patents

Vpn装置、vpnネットワーキング方法、プログラム Download PDF

Info

Publication number
JP2011166438A
JP2011166438A JP2010026724A JP2010026724A JP2011166438A JP 2011166438 A JP2011166438 A JP 2011166438A JP 2010026724 A JP2010026724 A JP 2010026724A JP 2010026724 A JP2010026724 A JP 2010026724A JP 2011166438 A JP2011166438 A JP 2011166438A
Authority
JP
Japan
Prior art keywords
vpn
packet
communication
vpn device
timer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2010026724A
Other languages
English (en)
Inventor
Akira Miyajima
晃 宮嶋
Koichi Hayata
弘一 早田
Hiroyuki Shimoosawa
博之 下大沢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Original Assignee
Panasonic Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp filed Critical Panasonic Corp
Priority to JP2010026724A priority Critical patent/JP2011166438A/ja
Publication of JP2011166438A publication Critical patent/JP2011166438A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】VPNセッションによりかかるネットワークの負担を低減させることが可能なVPN装置を提供する。
【解決手段】ネットワーク上100〜300で、他のVPN装置301との間でVPNを構築して通信を行うVPN装置101であって、VPN装置101の外部アドレス・ポート情報を取得し、VPN装置101の外部アドレス・ポート情報をVPN装置301へ送信し、VPN装置301からのVPN装置301の外部アドレス・ポート情報を受信し、VPN装置301の外部アドレス・ポート情報を用いて、VPN装置301との間で通信パケットを通信する。そして、パケット群不在区間を測定し、測定されたパケット群不在区間に基づいて、セッションタイマのタイマ値を設定し、パケット群不在区間の開始時点(Tgap−S、Ttime)からセッションタイマのタイマ値Tgrpに相当する時間が経過したときに、通信パケットの通信を終了するよう制御する。
【選択図】図12

Description

本発明は、通信相手の固定された専用通信回線(専用線)の代わりに、多数の加入者で帯域を共用する通信網を利用してネットワーク間などを接続するVPN(Virtual Private Network:仮想プライベートネットワーク)技術に関する。
仮想プライベートネットワーク(以下、VPNと記載する)は、一般に、企業内等の2以上の拠点のローカルエリアネットワーク(LAN:Local Area Network)などの異なるネットワークセグメントを、広域ネットワーク(WAN:Wide Area Network)などを介して互いに接続する。そして、通信の秘匿性を担保することで、仮想的に全体が1つのプライベートネットワークであるように構成する。これにより、専用線を利用する場合と同様の通信サービスを可能にする。
このようなVPNは、インターネット等のWANや公衆回線網を利用して構築するいわゆるインターネットVPNや、通信事業者閉域網などのインターネット等とは異なる通信網を使用して構築するIP−VPNなどに大別される。特に、インターネットVPNは、昨今のネットワークインフラのブロードバンド化と、インターネットを使った構築による安価な価格設定に伴い、利用者が増加している。
VPNを構築するにあたり、例えば異なる拠点間で通信を行う場合に、通信経路の途中にインターネット等の共用の通信網が介在するので、通信の漏洩、盗聴、改竄などの危険性がある。そこで、VPN技術においては、通信の秘匿性を担保するために、ネットワークのいずれかの階層において、データを暗号化しカプセリングすることを基本的な技術思想としている。ここで、ある通信プロトコルを他の通信プロトコルのパケットで包んで送ることを「カプセル化(カプセリング)」という。
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装置によって、パケットを暗号化及びカプセル化して仮想トンネルを構築する。これにより、ピア間を結ぶ閉じられた仮想的な直結通信回線を確立する。
例えば、ネットワーク間を相互接続する技術として、リバーストンネル技術を用いて通信路を構築し、通信路を維持するために通信路維持データを送信し、さらに、通信漏洩等を防止するために電子署名や暗号化を施すものが提案されている(例えば、特許文献1参照)。この特許文献1では、外部ネットワーク内の外部ホストがファイアウォールを越えて内部ネットワーク内の内部ホストとの間でトンネルを構築して通信を行うために、トンネルを維持するのに必要なタイミングに応じてトンネルを維持するための通信路維持データを送信する送信手段と、通信路維持データの中に電子署名を施す電子署名手段とを設けている。
特開2008−160497号公報
しかし、特許文献1のVPN技術では、拠点毎のVPN装置において、適正なアドレスやポート番号を指定し、所定の識別番号等を付与し、これらの暗号化、復号化を実行するために、VPN装置を設置するにあたり予め各種パラメータの設定作業を行う必要があった。
したがって、例えば企業内の複数の特定オフィス同士をVPNで接続する場合のように、接続先やその範囲が予め固定されている場合であれば特に問題はない。しかし、例えば1回だけ、あるいは短い期間だけ一時的に所定の接続先に対してVPNを構成しようとすると、その都度、各種パラメータの設定作業が必要になるため、利便性の面で実現が困難であった。つまり、必要に応じて一時的にネットワークを構成される環境(アドホックネットワークと呼ばれる)でVPNを利用することは困難であった。
そこで、SIP等のシグナリングによってピアリングを行って、拠点間でVPN通信セッションを確立した後に、データを暗号化してUDPカプセリングを行うVPN技術が考えられる。このVPN技術によれば、各種パラメータの設定作業が不要もしくは容易になるだけでなく、例えば、ネットワーク内部に接続されたアプリケーション端末での通信が完了した時に、VPNのセッションを開放することが可能であり、外部ネットワーク上でルータでのポート開放を含めたVPNセッションを張り続ける必要がない。なお、VPNセッションを張るとは、VPN通信経路を確立することである。
しかしながら、アプリケーション端末からVPN装置に対してVPNセッションの終了を通知するしくみがないため、適切なタイミングでVPNセッションを解放することができない。そのため、例えばユーザの手動操作によりVPNセッションを終了するか、あるいは適当なタイマを用いてタイムアウトを検出した時にVPNセッションを終了することになる。そのため、必要以上にVPNセッションが確立された時間が長くなることがある。つまり、実際に通信を行っている時間と比べて長い時間に渡って、VPNセッションを維持することになる。
一方、短い時間でタイムアウトが発生してVPNセッションが解放されると、VPNセッションを解放した後あまり時間が経過していないうちに改めてパケットを受信する可能性があり、その場合には再度VPNセッションを確立し直すことになるため、ネットワークに大きな負担がかかることがある。
本発明は、上記事情に鑑みてなされたものであって、VPNセッションにかかるネットワークの負担を低減させることが可能なVPN装置、VPNネットワーキング方法及びプログラムを提供することを目的とする。
本発明のVPN装置は、ネットワーク上で、他のVPN装置との間で仮想プライベートネットワークを構築して通信を行うVPN装置であって、ネットワークを介して、当該VPN装置のグローバルアドレス情報及びポート情報を取得する外部アドレス・ポート情報取得部と、ネットワークを介して、当該VPN装置のグローバルアドレス情報及びポート情報を他のVPN装置へ送信する外部アドレス・ポート情報送信部と、ネットワークを介して、他のVPN装置からの他のVPN装置のグローバルアドレス情報及びポート情報を受信する外部アドレス・ポート情報受信部と、他のVPN装置のグローバルアドレス情報及びポート情報を用いて、他のVPN装置との間で通信パケットを通信するパケット通信部と、パケット通信部により連続的に通信される通信パケット群が不在であるパケット群不在区間を測定するパケット群不在区間測定部と、パケット群不在区間測定部により測定されたパケット群不在区間に基づいて、前記パケット通信部による通信パケットの通信を行うためのVPNセッションを維持する時間としてのセッションタイマのタイマ値を設定するタイマ値設定部と、パケット群不在区間の開始時点からセッションタイマのタイマ値に相当する時間が経過したときに、前記パケット通信部による通信パケットの通信を終了するよう制御するパケット通信終了制御部と、を備える。
このVPN装置によれば、パケット群不在区間に基づいてセッションタイマのタイマ値を設定するので、適切なタイミングでセッションを終了することができ、ネットワークの負担を低減することが可能である。
また、本発明のVPN装置は、前記パケット通信部が、当該VPN装置配下の通信端末からの通信パケットを受信し、受信されたパケットを前記他のVPN装置へ送信する。
このVPN装置によれば、VPN装置とは別体で配下の通信端末からの通信パケットを受け、その通信パケットを送信するときのパケット群不在区間に基づいて、セッションタイマのタイマ値を適切な長さに調整できる。
また、本発明のVPN装置は、タイマ値設定部が、パケット群不在区間測定部により測定された複数のパケット群不在区間の長さの平均値を算出し、複数のパケット群不在区間の長さの各々と算出された平均値との差のいずれかが所定範囲外である場合、前記セッションタイマのタイマ値を所定の規定値に設定する。
このVPN装置によれば、複数のパケット群不在区間の長さが大きくばらついている場合には、セッションタイマのタイマ値を初期値に設定することで、タイマ値が短すぎたり長すぎたりする事象が発生しにくくすることができる。
また、本発明のVPN装置は、所定の閾値である第1閾値及び第1閾値よりも小さい第2閾値を記憶する閾値記憶部を備え、タイマ値設定部が、複数のパケット不在区間の長さの各々と算出された平均値との差がいずれも所定範囲内であり、かつ、平均値が第1閾値よりも大きい場合、セッションタイマのタイマ値が規定値よりも小さくなるよう設定する。
このVPN装置によれば、パケット群不在区間の長さが大きくばらついておらず、かつ、複数のパケット群不在区間の長さの平均値が大きい場合には、セッションタイマのタイマ値を規定値よりも小さく設定する。これにより、長いパケット群不在区間に渡って無駄にVPNセッションを維持することを防止することができる。
また、本発明のVPN装置は、タイマ値設定部が、複数のパケット不在区間の長さの各々と算出された平均値との差がいずれも所定範囲内であり、かつ、平均値が第2閾値よりも小さい場合、セッションタイマのタイマ値が規定値よりも大きくなるよう設定する。
このVPN装置によれば、パケット群不在区間の長さが大きくばらついておらず、かつ、複数のパケット群不在区間の長さの平均値が小さい場合、セッションタイマのタイマ値を規定値よりも大きく設定する。これにより、頻繁に短いパケット群不在区間にセッションを終了し再度VPNセッションを確立しなおすという状況を回避できる。
また、本発明のVPN装置は、前記タイマ値設定部が、複数のパケット不在区間の長さの各々と算出された平均値との差がいずれも所定範囲内であり、かつ、平均値が第1閾値以下第2閾値以上である場合、セッションタイマのタイマ値を規定値に設定する。
このVPN装置によれば、パケット群不在区間の長さが大きくばらついておらず、かつ、複数のパケット群不在区間の長さの平均値が大きくも小さくもなく中程度の場合、セッションタイマのタイマ値を規定値に設定する。これにより、セッションタイマのタイマ値が短すぎたり長すぎたりする事象が発生しにくくすることができる。
また、本発明のVPNネットワーキング方法は、ネットワーク上で、他のVPN装置との間で仮想プライベートネットワークを構築して通信を行うVPN装置のVPNネットワーキング方法であって、ネットワークを介して、VPN装置のグローバルアドレス情報及びポート情報を取得するステップと、ネットワークを介して、VPN装置のグローバルアドレス情報及びポート情報を他のVPN装置へ送信するステップと、ネットワークを介して、他のVPN装置からの他のVPN装置のグローバルアドレス情報及びポート情報を受信するステップと、他のVPN装置のグローバルアドレス情報及びポート情報を用いて、他のVPN装置との間で通信パケットを通信するステップと、連続的に通信される通信パケット群が不在であるパケット群不在区間を測定するステップと、測定されたパケット群不在区間に基づいて、通信パケットの通信を行うためのVPNセッションを維持する時間としてのセッションタイマのタイマ値を設定するステップと、前記パケット群不在区間の開始時点から前記セッションタイマのタイマ値に相当する時間が経過したときに、通信パケットの通信を終了するよう制御するステップと、を有する。
この方法によれば、パケット群不在区間に基づいてセッションタイマのタイマ値を設定するので、適切なタイミングでセッションを終了することができ、ネットワークの負担を低減することが可能である。
また、本発明のプログラムは、上記VPNネットワーキング方法の各ステップを実行させるためのプログラムである。
このプログラムによれば、上記VPNネットワーキング方法の各ステップを実行することが可能である。
本発明によれば、VPNセッションにかかるネットワークの負担を低減させることが可能である。
本発明の実施形態に係るVPNシステムの構成例を示すブロック図 本発明の実施形態に係るVPN装置のハードウェア構成の構成例を示すブロック図 本発明の実施形態に係るVPN装置の機能的な構成例を示すブロック図 本発明の実施形態に係るVPNシステムにおけるVPN構築時の処理手順を示すシーケンス図 本発明の実施形態に係るVPN装置におけるVPN構築時の処理内容を示すフローチャート 本発明の実施形態に係るパケット群不在区間の長さに関する頻度分布の一例を示す図 本発明の実施形態に係るパケット群不在区間の長さに関する頻度分布の別の一例を示す図 本発明の実施形態に係る統計テーブルの構成例を示す模式図 本発明の実施形態に係るタイマ値設定処理の一例を示すフローチャート 本発明の実施形態に係るパケット群検出チェック処理の一例を示すフローチャート 本発明の実施形態に係るパケット群と検出中フラグとの関係の一例を示すタイムチャート 本発明の実施形態に係る周期解析処理の一例を示すフローチャート 本発明の実施形態に係るパケット群不在区間の長さに関する頻度分布と閾値との関係の一例を示す図
以下に、本発明に係るVPN装置、VPNネットワーキング方法、及びプログラムの一例としての実施形態を説明する。ここでは、広域ネットワーク(WAN、グローバルネットワーク)を介して2つのローカルエリアネットワークの経路を(LAN、ローカルネットワーク)経路接続して仮想プライベートネットワーク(VPN)システムを構築する場合の構成例を示す。LANとしては、有線LANまたは無線LANなどが用いられる。WANとしては、インターネット等が用いられる。
図1は本発明の実施形態に係るVPNシステムの構成例を示す図である。本実施形態のVPNシステムは、一つの拠点に設けられたLAN(第1のネットワークに相当)100と、他の拠点に設けられたLAN(第3のネットワークに相当)300とを、インターネット等のWAN(第2のネットワークに相当)200を介して通信経路を接続する。そして、LAN100の配下に接続された端末103とLAN300の配下に接続された端末303との間で、VPNによる秘匿性を担保した通信(以下、「VPN通信」と称する)を可能にしている。具体的なVPN通信の用途(アプリケーションプログラム等)としては、IP電話(音声通話)、ネットミーティング(動画&音声通信)、ネットワークカメラ(ビデオ伝送)などが想定される。
LAN100とWAN200との境界にはルータ102が配設され、WAN200とLAN300との境界にはルータ302が配設されている。また、本実施形態では、VPNの構築を可能にするために、LAN100にはVPN装置101が接続され、LAN300にはVPN装置301が接続されている。そして、VPN装置101には配下の端末103が接続され、VPN装置301には配下の端末303が接続されている。なお、VPN装置101、301は、ここでは中継装置等において構成される独立した装置の構成例を示しているが、LAN内の他の通信機器や端末等においてVPN機能を有する装置として構成することも可能である。
また、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装置や端末等のピア間の発呼、被呼(着呼)のために用いられるサーバである。
図1において、破線は外部アドレスとポートの情報を含む外部アドレス・ポート情報の流れを示している。また、一点鎖線は発呼及び被呼の制御に関する呼制御信号の流れを示している。また、実線はピア間で伝送される通信データに関するピア間通信の流れを示している。さらに、ピア間通信のためにVPN接続された通信経路を仮想トンネルとして、図中に表す。
各機器がWAN200を介して通信する場合、WAN200上では、伝送するパケットの送信元や送信先を特定するためのアドレス情報として、WANにおいて特定可能なグローバルなアドレス情報が用いられる。一般にはIPネットワークが用いられるため、グローバルIPアドレス及びポート番号が用いられる。しかし、各LAN100、300内の通信においては、送信元や送信先を特定するためのアドレス情報として、LAN内のみで特定可能なローカルなアドレス情報が用いられる。一般にはIPネットワークが用いられるため、ローカルIPアドレス及びポート番号が用いられる。したがって、各LAN100、300とWAN200との間の通信を可能にするために、ローカルなアドレス情報とグローバルなアドレス情報との相互変換を行うNAT(Network Address Translation)機能が各ルータ102、302に搭載されている。
ただし、LAN100、300の配下の各端末においては、外部からアクセス可能なグローバルなアドレス情報を自身で持っていない。また、特別な設定を行わない限り、LAN100配下の端末103が他のLAN300配下の端末303と直接通信することはできない。また、各ルータ102、302のNAT機能のため、普通の状態ではWAN200側から各LAN100、300内の各端末にアクセスすることもできない。
このような状況であっても、本実施形態では、各拠点のLANにVPN装置101、301を設けることにより、図1において実線で示すピア間通信の経路のように、LAN間をVPN接続して端末103と端末303との間で仮想的な閉じられた通信経路を通じて直接通信することが可能になる。本実施形態のVPN装置の構成、機能、及び動作について以下に順を追って説明する。
STUNサーバ201は、STUNプロトコルの実行に関するサービスを行うもので、いわゆるNAT越えの通信を行うために必要な情報を提供するアドレス情報サーバである。STUNは、音声、映像、文章などの双方向リアルタイムIP通信を行うアプリケーションにおいて、NAT通過の方法の1つとして使われる標準化されたクライアントサーバ型のインターネットプロトコルである。STUNサーバ201は、アクセス元からの要求に応じて、外部からアクセス可能な当該アクセス元のグローバルなアドレス情報として、外部ネットワークから見える外部アドレスとポートの情報を含む外部アドレス・ポート情報を返信する。外部アドレス・ポート情報としては、IPネットワークにおいてはグローバルIPアドレス及びポート番号が用いられる。
各VPN装置101、301は、STUNサーバ201との間で所定のテスト手順の通信を実行し、STUNサーバ201から自装置のグローバルIPアドレス及びポート番号が含まれる応答パケットを受信する。これにより、各VPN装置101、301は自装置のグローバルIPアドレス及びポート番号を取得することができる。また、自装置の位置するLANとWANとの間にルータが複数存在する場合等であっても、これらのルータ等がUPnP(Universal Plug and Play)の機能を有していない場合であっても、確実にグローバルIPアドレス及びポート番号を取得できるという効果もある。
なお、VPN装置101、301がグローバルIPアドレス及びポート番号を取得するための方法に関しては、IETFのRFC 3489(STUN)にて記載された手法を利用することもできる。
呼制御サーバ202は、特定の相手先を呼び出して通信経路を確立するための通信装置間の呼制御に関するサービスを行う中継サーバである。呼制御サーバ202は、登録された各ユーザまたは端末の識別情報を保持しており、例えばIP電話の機能を有する通信システムの場合には、接続相手の電話番号に基づいて特定の相手先を呼び出すことができる。また、呼制御サーバ202は、信号やデータを中継する機能を有しており、発呼側の装置から送出されたパケットを被呼側の装置に転送したり、被呼側の装置から送出されたパケットを発呼側の装置に転送したりすることも可能である。
なお、STUNサーバ201及び呼制御サーバ202は、ここでは別個のサーバによる構成例を示しているが、1つのサーバにこれらのアドレス情報サーバと中継サーバの2つのサーバの機能を搭載して構成してもよいし、WAN上の他のいずれかのサーバに同様の機能を搭載して構成することも可能である。
次に、本実施形態のVPN装置の構成及び機能について説明する。なお、VPN装置101とVPN装置301の構成及び機能は同様であり、本実施形態では、主にVPN装置101によって説明する。図2は本実施形態のVPN装置のハードウェア構成の構成例を示すブロック図である。
VPN装置101は、中央演算処理装置(CPU)111、フラッシュRAM等による不揮発性メモリ112、SD RAM等によるメモリ113、ネットワークインタフェース114、ネットワークインタフェース115、LAN側ネットワーク制御部116、WAN側ネットワーク制御部117、通信中継部118、表示制御部119、表示部120を有して構成される。
CPU111は、所定のプログラムを実行することによりVPN装置101全体の制御を実施する。不揮発性メモリ112は、CPU111が実行するプログラムを保持している。このプログラムの中には、VPN装置101が外部アドレス・ポート情報を取得するための外部アドレス・ポート取得プログラムも含まれている。
なお、CPU111が実行するプログラムについては、任意の通信経路を経由してオンラインで外部のサーバから取得することもできるし、例えばメモリカードやCD−ROMのような記録媒体から読み込んで取得することもできる。換言すれば、汎用のコンピュータにVPN装置の機能を実現するプログラムを記録媒体から読み込むことによってVPN装置、およびVPNネットワーキング方法を実現することができる。
なお、CPU111がプログラムを実行する時には、不揮発性メモリ112上のプログラムの一部がメモリ113上に展開され、メモリ113上のプログラムが実行される場合もある。
メモリ113は、VPN装置101の運用中のデータ管理や、各種設定情報、各種閾値情報などを記憶するためのものである。設定情報としては、自端末の外部アドレス・ポート取得要求の応答に含まれる外部アドレス・ポート情報等、通信に必要なあて先アドレス情報などが含まれる。
ネットワークインタフェース114は、VPN装置101と自装置が管理する配下の端末103とを通信可能な状態で接続するためのインタフェースである。ネットワークインタフェース115は、VPN装置101とLAN100とを通信可能な状態で接続するためのインタフェースである。LAN側ネットワーク制御部116は、LAN側のネットワークインタフェース114に関する通信制御を行うものである。WAN側ネットワーク制御部117は、WAN側のネットワークインタフェース115に関する通信制御を行うものである。
通信中継部118は、LAN側に接続された配下の端末103から外部のVPN接続先(VPN装置301配下の端末303)へ送出するパケットデータと、反対に、外部のVPN接続先(VPN装置301配下の端末303)から配下の端末103宛に到着したパケットデータとをそれぞれ中継する。
表示部120は、VPN装置101としての動作状態の表示等を行う表示器により構成され、各種状態をユーザあるいは管理者に通知する。表示部120は、複数の発光ダイオード(LED)や液晶表示器(LCD)等により構成される。表示制御部119は、表示部120の表示制御を行うもので、CPU111からの表示信号に従って表示部120に表示する内容等を制御する。
図3は本実施形態のVPN装置の機能的な構成例を示すブロック図である。
VPN装置101は、機能構成として、システム制御部130、配下端末管理部131、メモリ部132、データ中継部133、設定用インタフェース部134、通信制御部140を有して構成される。メモリ部132は、外部アドレス・ポート情報記憶部135を有する。通信制御部140は、外部アドレス・ポート取得部141、VPN機能部142、呼制御機能部143、パケット周期解析部144、終了判定部146、終了部147、統計テーブル148を有する。VPN機能部142は、暗号処理部145を有する。これらの各機能は、図2に示した各ブロックのハードウェアの動作、またはCPU111が所定のプログラムを実行することにより実現する。
なお、VPN装置101のLAN側のネットワークインタフェース114は、配下の端末103と接続され、WAN側のネットワークインタフェース115は、LAN100及びルータ102を経由してWAN200と接続される。
システム制御部130は、VPN装置101の全体の制御を行う。配下端末管理部131は、VPN装置101配下の端末103の管理を行う。メモリ部132は、外部アドレス・ポート情報記憶部135において、外部アドレス(WAN200上でのグローバルIPアドレス)とポート(IPネットワークのポート番号)の情報を含む外部アドレス・ポート情報を記憶する。外部アドレス・ポート情報としては、発呼側である配下の端末103に対してルータ102により割り当てられたグローバルIPアドレス及びポート番号の情報や、被呼側の端末303に対してルータ302により割り当てられたグローバルIPアドレス及びポート番号の情報などを記憶する。
データ中継部133は、発呼側の端末103から被呼側の端末303に向かって送信されるパケットや、逆に被呼側の端末303から発呼側の端末103に向かって送信されるパケットをそれぞれ中継する。設定用インタフェース部134は、ユーザあるいは管理者がVPN装置101に対する設定操作等の各種操作を行うためのユーザインタフェースである。このユーザインタフェースの具体例として、端末上で動作するブラウザによって表示するWebページなどが用いられる。
外部アドレス・ポート取得部141は、VPN装置101の配下の端末103がWAN200との通信に使用するためにルータ102から割り当てられた外部アドレス・ポート情報をSTUNサーバ201を使用して取得する。また、被呼側の端末303の外部アドレス・ポート情報を含むパケットを呼制御サーバ202を経由して受信し、被呼側の端末303と通信するためにルータ302で割り当てられた外部アドレス・ポート情報を取得する。外部アドレス・ポート取得部141が取得した情報は、メモリ部132の外部アドレス・ポート情報記憶部135に保持される。
VPN機能部142は、暗号処理部145において、VPN通信のために必要な暗号処理を行う。すなわち、暗号処理部145は、送信するパケットをカプセリングして暗号化したり、受信したパケットをアンカプセリングして復号化して元のパケットを抽出したりする。この暗号処理動作については後で説明する。なお、VPN通信は、図1に示したようなピア間通信(P2P通信)ではなく、WAN200上に設けられるサーバでパケットの中継を行い、クライアント/サーバ方式でVPN通信を行うことも可能である。この場合には、サーバ側で暗号処理を行うようにしてもよい。また、カプセリングされたパケット中には、自装置配下の端末103を特定するための情報や、相手装置配下の端末303を特定するための情報が含まれる。この特定情報に基づいて、VPN装置及びVPN装置配下の端末間でデータ中継部133により通信データ(通信パケット)が中継される。
呼制御機能部143は、目的の被呼側に接続するための接続要求を呼制御サーバ202に送信したり、被呼側からの接続応答を呼制御サーバ202を経由して受信するための処理を実施したりする。
パケット周期解析部144は、他の端末303との間でVPNセッションを張った端末103のアプリケーションにより送出されるデータを監視する。そして、パケット周期解析部144は、このデータに含まれる連続的な一連のパケット(以下、「パケット群」という)が終了してから次のパケット群が現れるまでのパケットが途絶えている時間間隔、つまり時間軸上でパケット群が不在となる期間を示すパケット群不在区間を測定する。そして、パケット周期解析部144は、この測定結果を統計的に処理して解析を行い、この解析結果からVPNセッションを終了するための(VPNセッションを維持する時間を計測するための)セッションタイマのタイマ値に反映する。したがって、パケット周期解析部144は、セッションタイマのタイマ値を最適な値に自動的に調整する。なお、セッションタイマのタイマ値とは、VPNセッションを終了するためのセッションタイマがタイムアウトする時間であり、ネットワーク環境に合わせて調整される。これにより、使用されていないVPNセッションを維持するために消費されるリソースを好適に解放し、使用するVPNセッションへリソースを割り当て、有効なリソース活用が可能となる。
終了判定部146は、セッションタイマのタイマ値に基づいてVPNセッションを終了するか否かを判定する。このとき、パケット群が途絶えている期間の時間を計数し、パケット周期解析部144が決定したタイマ値の時間が経過したか否か、つまりタイムアウトしたか否かを判定する。なお、終了判定部146がセッションタイマを有している。
終了部147は、終了判定部146によりタイムアウトしたと判定された場合に、VPNセッションの終了を呼制御機能部143に対して通知する。呼制御機能部143は、当該通知に基づいてVPNセッションつまりVPN通信を終了する。
統計テーブル148は、パケット周期解析部144が処理途中で使用するデータや、パケット周期解析部144により得られた統計情報などを保持するための記憶領域である。
すなわち、通信制御部140は、自装置の外部アドレス・ポート情報を取得する外部アドレス・ポート取得部、パケット群不在区間を測定し、セッションタイマのタイマ値を設定するパケット周期解析部、セッション終了タイミングを判定する終了判定部、相手装置との間での通信パケットの通信を終了するよう制御する終了部、の各機能を実現する。
次に、本実施形態のVPN装置によるVPN構築時の動作について説明する。
図4は本実施形態のVPNシステムにおけるVPN構築時の処理手順を示すシーケンス図である。この図4では、VPN装置を含むネットワークにおいて、VPN装置101の配下の端末103からWAN200を経由して他のVPN装置301の配下の端末303に接続しようとする場合の処理を示している。
まず、図4に示す処理に先立ち、VPN装置101は呼制御サーバ202にログインしてユーザ認証を受けるようにする。VPN装置101がユーザ認証に成功した場合、呼制御サーバ202において、VPN装置101の識別情報(MACアドレス、ユーザID、電話番号など)やネットワーク上の位置情報(グローバルIPアドレス)等の登録、設定が行われる。以降、VPN装置101と呼制御サーバ202との間で通信可能となる。なお、VPN装置101は発呼側であるが、被呼側であるVPN装置301についても同様に、呼制御サーバ202にログインしてユーザ認証を受け、呼制御サーバ202においてVPN装置301の識別情報等の登録、設定が行われる。
この状態で、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は、外部アドレス・ポート情報返信により得られた外部アドレス・ポート情報を記憶する。
続いて、VPN装置101は、呼制御サーバ202に対して、接続先の端末303を配下に持つVPN装置301へのVPN通信経路を構築するための接続要求を行う(PR2)。このとき、VPN装置101は、発呼側アドレス情報として、外部アドレス・ポート取得手順PR1で取得した自装置の外部アドレス・ポート情報(グローバルIPアドレス及びポート番号)を含む接続要求を呼制御サーバ202へ送信する。呼制御サーバ202は、この接続要求を中継してVPN接続の接続先となるVPN装置301へ送信する。この接続要求により、呼制御サーバ202は、VPN装置101がVPN装置301へ通信経路構築のためのVPN接続をしたいという要求を接続先に通知する。
なお、VPN通信経路としては直接通信を行うP2P通信経路とWAN200に設置された中継サーバを経由する通信経路とが考えられるが、主にP2P通信経路として説明を行う。中継サーバ経由の通信経路を想定しても同様の処理となる。
接続先のVPN装置301は、呼制御サーバ202からの接続要求を受けると、STUNサーバ201との間で外部アドレス・ポート取得手順を行う(PR3)。このとき、VPN装置301は、上記VPN装置101と同様、自装置に割り当てられた外部アドレス・ポート情報(WAN200側からみたグローバルIPアドレス及びポート番号)を取得するため、STUNサーバ201に対して、外部アドレス・ポート取得要求としてバインディングリクエストパケットを送出する。一方、STUNサーバ201は、外部アドレス・ポート取得要求に対して応答し、VPN装置301に外部アドレス・ポート情報返信として外部アドレス・ポート情報を含むバインディングレスポンスパケットを返送する。そして、VPN装置301は、外部アドレス・ポート情報返信により得られた外部アドレス・ポート情報を記憶する。
続いて、VPN装置301は、呼制御サーバ202に対して、接続要求に対する接続応答を行う(PR4)。このとき、VPN装置301は、被呼側アドレス情報として、外部アドレス・ポート取得手順PR3で取得した自装置の外部アドレス・ポート情報(グローバルIPアドレス及びポート番号)を含む接続応答を呼制御サーバ202へ送信する。呼制御サーバ202は、この接続応答を中継してVPN接続の接続要求元となるVPN装置101へ送信する。この接続応答により、呼制御サーバ202は、接続要求に対する応答をVPN装置301からVPN装置101へ通知する。
この段階で、発呼側のVPN装置101と被呼側のVPN装置301とは、お互いに相手の外部アドレス・ポート情報を取得している。したがって、VPN装置101及びVPN装置301は、互いに相手の外部アドレス・ポート情報(グローバルIPアドレス及びポート番号)を設定してWAN200を経由してパケットを送信し、通信可能であること(VPN接続)を確認し、VPN通信経路で暗号化したデータ通信を開始する(PR5)。
図5は本実施形態のVPN装置におけるVPN構築時の処理内容を示すフローチャートである。この図5は、図4のVPN構築時の処理に関する具体的な処理内容を示したものである。図5において、ステップS11〜S16は発呼側のVPN装置101が行う処理の内容を示し、ステップS21〜S26は被呼側のVPN装置301が行う処理の内容を示している。
VPNの構築にあたってVPN接続するために、発呼側のVPN装置101は、まず、待受用の外部アドレス及びポートの情報として、自装置のグローバルIPアドレス及びポート番号を含む外部アドレス・ポート情報を取得する処理を行う(PR1、ステップS11)。
続いて、VPN装置101は、被呼側のVPN装置301に対する接続要求を送信する(PR2、ステップS12)。この接続要求は、被呼側の端末303を特定するための識別情報などを含むものである。また、接続要求には、ステップS11で取得した自装置の外部アドレス・ポート情報を含めて送信する。この接続要求は、呼制御サーバ202を経由してVPN装置301に伝送される。
被呼側のVPN装置301は、VPN装置101からの接続要求を受信する(ステップS21)。接続要求を受信すると、VPN装置301は、この接続要求に含まれている接続元(VPN装置101側)の外部アドレス・ポート情報を取り出し、この情報をメモリに記憶する(ステップS22)。そして、VPN装置301は、待受用の外部アドレス及びポートの情報として、ステップS11と同様にして、自装置のグローバルIPアドレス及びポート番号を含む外部アドレス・ポート情報を取得する処理を行う(ステップS23)。
続いて、VPN装置301は、発呼側のVPN装置101から受信した接続要求に対する接続応答を送信する(ステップS24)。この接続応答には、ステップS23で取得した自装置の外部アドレス・ポート情報を含めて送信する。この接続応答は、呼制御サーバ202を経由してVPN装置101に伝送される。
発呼側のVPN装置101は接続応答の待ち受け状態で、接続応答を受信したかを判定する処理を行う(ステップS13)。接続応答を受信すると、VPN装置101は、この接続応答に含まれている被呼側(VPN装置301側)の外部アドレス・ポート情報を取り出し、この情報をメモリに記憶する(ステップS14)。
上記の処理により、データ通信開始処理PR5を実行する時点では、発呼側のVPN装置101は、自装置の外部アドレス・ポート情報と、被呼側のVPN装置301の外部アドレス・ポート情報とを取得している。一方、被呼側のVPN装置301は、自装置の外部アドレス・ポート情報と、発呼側のVPN装置101の外部アドレス・ポート情報とを取得している。
データ通信開始後、発呼側のVPN装置101は、被呼側のVPN装置301に直接通信が可能なグローバルIPアドレス及びポート番号を宛先として、VPN装置301に向けてWAN200上にデータを送信する(ステップS15)。一方、VPN装置301は、自装置宛のデータの待ち受けを行い、発呼側のVPN装置101から送信されたデータを受信する(ステップS25)。また、被呼側のVPN装置301は、発呼側のVPN装置101に直接通信可能なグローバルIPアドレス及びポート番号を宛先として、VPN装置101に向けてWAN200上にデータを送信する(ステップS26)。
一方、VPN装置101は、自装置宛のデータの待ち受けを行い、被呼側のVPN装置301から送信されたデータを受信する(ステップS16)。
VPN装置101及びVPN装置301の双方でデータの送受信に成功すると、VPN装置101とVPN装置301との間でVPN接続されたことが認識される。以降は、サーバを経由することなくP2Pで直接通信可能であり、VPN装置101配下の端末103とVPN装置301配下の端末303との間で暗号化したVPN通信を行う。
VPN通信を終了する際は、VPN装置101及びVPN装置301は当該VPN通信に用いていたポートを閉じるようにする。これにより、該当するポートに対して外部からのアクセスが不能になるので、セキュリティホールを塞ぐことができる。ここで、各ポートはアプリケーションに対応しており、VPN接続時にアプリケーションごとに割り当てたポート番号を指定して通信を行う。
例えば、端末103側でアプリケーションを終了した場合などは、端末103からVPN装置101へ一定時間パケットが送られて来ないから、VPN装置101は端末103への通信が終了したものと判断してルータ102との通信を停止する。その結果、VPN通信は終了すると共にルータ102のポートは閉じられる。こうして、必要なときに通信相手の端末との間でVPN通信を行い、通信を終了するとVPN通信を終了しセキュリティホールを塞ぐことができる。
このように、通信パケットの通信(送信もしくは受信)が所定期間行われない状態が継続されると、終了判定部146がVPN通信を終了すべきものと判断し、VPNセッションを開放する。上記所定期間は、セッションタイマのタイマ値に基づいて判断される。セッションタイマのタイマ値は、所定期間が経過した後、任意のタイミングでVPNセッションを終了するよう設定される。ネットワークリソースを有効活用するためには、このセッションタイマのタイマ値をネットワーク環境に応じて柔軟に変更することが好ましい。以下、セッションタイマのタイマ値を設定するための処理について、詳細に説明する。
本実施形態では、図3のパケット周期解析部144が、パケット群不在区間の開始時点から、セッションタイマのタイマ値に相当する時間が経過したときつまりセッションタイマがタイムアウトしたと判断したときに、終了判定部146が、上記所定期間にわたって通信パケットの通信がなかったものと判断する。そして、終了部147が、通信パケットの通信を終了するよう制御する。通信パケットの通信を終了することで、VPNセッションが開放され、前記VPNセッションが解放された後に任意のタイミングでルータ102のポートは閉じられる。
次に、パケット群不在区間の長さに関する頻度分布の例が図6、図7に示されている。図6、図7における横軸は、前のパケット群の最後のパケットが終了してから次のパケット群の先頭のパケットを検出するまでに、セッションタイマが計数する時間tの長さを表している。ここでは、図6、図7のいずれの例においても、検出されるパケット群不在区間が平均周期Tm(後述する平均値Taveと同義)の近傍に集中している(間隔のばらつきが小さい)場合を想定している。
図6に示す例のように、平均周期Tmがセッションタイマのタイマ値よりも小さいネットワーク環境においては、セッションタイマのタイムアウトが発生する前に次のパケット群が到来してセッションタイマの計数値がリセットされることが多い。この場合、長時間にわたってVPNセッションの通信経路を維持することができる。しかし、セッションタイマのタイマ値がパケット群不在区間に比べ大きすぎる場合には、実際に通信が終了した後も長時間に渡りVPNセッションが維持されることになり、ネットワークのリソースを不要に消費することがある。
一方、図7に示す例のように、平均周期Tmがセッションタイマのタイマ値よりも大きいネットワーク環境においては、1つのパケット群が終了する毎にセッションタイマのタイムアウトが発生し、VPNセッションが終了することが多い。この場合、次に現れるパケット群を宛先の端末303に届けるためには、VPNセッションを再び確立する必要がある。従って、セッションタイマのタイマ値と平均周期Tmとが近い場合には、VPNセッションの終了処理と、VPNセッションの確立処理とが頻繁に行われることになり、ネットワークに大きな負担がかかることになる。
本実施形態では、これらの状況を回避する。
次に、図3の統計テーブル148について説明する。
図8は、例えば図1のVPN装置101が有する統計テーブル148に関する具体的な構成例を示す図である。図8に示す統計テーブル148には、セッション番号領域148a、送信元アドレス領域148b、宛先アドレス領域148c、時刻情報領域148d、不在区間情報領域148e、平均不在区間情報領域148f、セッションタイマ値領域148gが含まれている。
セッション番号領域(Session)148aには、それぞれのVPNセッションを特定するための管理番号が記録される。
送信元アドレス領域(Source)148bには、当該VPNセッションで利用される送信元の図1の端末103(A)のIPアドレス及びポートの情報が記録される。
宛先アドレス領域(Destination)148cには、当該VPNセッションで利用される宛先の図1の端末303(D)のIPアドレス及びポートの情報が記録される。
時刻情報領域148dには、パケット群の終了を最後に(前回)検出した時刻の情報(Ttime)が記録される。
不在区間情報領域148eには、複数個(n個)のパケット群不在区間の情報を記録するための領域が存在し、それぞれの領域には測定により得られたパケット群不在区間の時間Td(パケット群が終了してから次のパケット群の先頭が現れるまでの時間)が記録される。
平均不在区間情報領域148fには、不在区間情報領域148eにある複数のパケット群不在区間の長さの情報(Td(1)〜Td(n))を統計処理して得られる統計情報(例えばパケット群不在区間の長さの平均値Tave)が記録される。
セッションタイマ値領域148gには、パケット周期解析部144により決定され、当該VPNセッションに割り当てたセッションタイマのタイマ値が記録される。
次に、VPN装置によるセッションタイマのタイマ値を設定するための処理(タイマ値設定処理)の詳細について説明する。図9は、VPN装置によるタイマ値設定処理の一例を示すフローチャートである。また、図9のパケット群検出チェック処理(ステップS121)の内容の一例が図10に示されており、図9の周期解析処理(ステップS127)の内容の一例が図12に示されている。また、パケット群及び本パケット群を検出する際に使用する検出中Flagの状態変化の一例が図11にタイムチャートで示されている。
本実施形態では、予めシステムで定められた所定期間内に連続的に現れる複数のパケットを同一のパケット群に属するパケットの集合とみなす。従って、互いに隣接する複数のパケットの間が所定時間以上離れている場合には、これらのパケットは互いに異なるパケット群に属することになる。
図9の処理は定期的に実行され、その処理の中ではまず、図3のパケット周期解析部144が、データ中継部133から入力されたパケットについて、VPNセッション毎にパケット群検出チェック処理、すなわち図10に示す処理を実行する。
ここで、図10に示すパケット群検出チェック処理について以下に説明する。「パケット群検出チェック処理」とは、入力されたパケットをパケット群毎に区別すると共に、互いに隣接するパケット群とパケット群との間隔(パケット群不在区間)の時間(Td)を計測するための処理である。なお、「検出中フラグ(Flag)」とは、連続的に現れるパケットを同一のパケット群に属するか否かを判定するためのフラグである。同一パケット群に属する(パケット群としてパケット検出処理を行っている)場合にはON、同一パケット群に属しない(パケット群としてのパケット検出処理を終了している)場合にはOFFとなる。また、「タイマTgrp」とは、パケット不在区間が同一のパケット群として認識される所定時間間隔(Tgrp)以内か否かを判定するためのタイマである(図11参照)。なお、所定時間(Tgrp)はシステムで予め規定される閾値の1つである。
図10の処理では、まず、パケット周期解析部144は、新たなパケットの到着を検出したか否かを判定する(ステップS131)。到着を検出した場合はステップS132に進み、パケットの到着を検出しない場合はステップS136に進む。
新たなパケットの到着を検出した場合、パケット周期解析部144は、検出中Flagの状態を参照し、パケット群の検出処理中か否かを判定する(ステップS132)。パケット群の検出処理中ならステップS134に進み、パケット群の検出処理を行っていなければステップS133に進む。
例えば、図11に示す時刻t1でパケットP02の到着をパケット周期解析部144が検出した時には、検出中FlagがON(検出処理中)なので、図10のステップS131からS132、S134と進む。一方、図11に示す時刻t3でパケットP11(パケット群の先頭)の到着を検出した時には、検出中FlagがOFF(検出処理を行ってない)なので、ステップS131からS132、S133と進む。
パケット群の検出処理を行ってない場合、パケット周期解析部144は、現在時刻計測用の手段により検出された現在時刻をパケット群不在区間の終了時刻(Tgap−E)として保存する(ステップS133)。
パケット群を検出処理中である場合もしくはステップS133の終了後、パケット周期解析部144は、検出中FlagをON状態にセットする(ステップS134)。
続いて、パケット周期解析部144は、パケット群を検出、判定処理するためのタイマの計数値をクリア(初期化)する(ステップS135)。パケット群を検出、判定処理するためのタイマは、クリアされると時間の計数を0から再開する。
一方、図10のステップS131において新たなパケットを検出しなかった場合、パケット周期解析部144は、検出中Flagの状態を参照し、パケット群の検出処理中か否かを判定する(ステップS136)。パケット群の検出処理中ならステップS137に進み、パケット群を検出中でなければステップS131に戻る。
パケット群の検出処理中である場合、パケット周期解析部144は、パケット群を検出、判定処理するためのタイマを参照し、パケット群を検出、判定処理するためのタイマの計数値が所定時間(Tgrp:パケット群が終了したと判定される時間)を経過したか否かを識別する(ステップS137)。所定時間(Tgrp)を経過した場合はステップS138に進み、経過していない場合はステップS131に戻る。
例えば、図11に示す時刻t21では、パケットP02が終了した時刻t2でパケット群を検出、判定処理するためのタイマがクリアされてから所定時間(Tgrp)を経過するので、この場合はステップS137からS138に進む。すなわち、1つのパケット群が終了したものとみなす。
パケット群を検出、判定処理するためのタイマの計数値が所定時間(Tgrp)を経過した場合には、パケット周期解析部144は、検出中FlagをOFF状態にする(ステップS138)。
続いて、パケット周期解析部144は、パケット群の最後のパケットを検出した時刻((現在時刻計測用の手段により検出された現在時刻)−(Tgap−E)−(Tgrp))を、パケット群不在区間の開始時刻(Tgap−S)として保存する(ステップS139)。
従って、例えば図11に示すパケット群A2が途絶えてから次のパケット群A3が始まるまでのパケット群不在区間Td(n)については、パケット群が終了した時刻t4の時間情報(Tgap−S)と、次のパケット群が開始した時刻t5の時間情報(Tgap−E)との差分として求めることができる。
なお、図11のパケットP01とP02とはそれらの間のパケット群間隔が所定時間(Tgrp)以内なので、これらは同じパケット群A1として区分される。同様に、パケットP11、P12はこれらの隙間が所定時間(Tgrp)以内なので、これらは同じパケット群A2として区分される。同じパケット群として区分されたときには、パケット群不在区間とはみなされず、統計テーブル148の不在区間情報(図8の148e)には記録されない。
図9に戻り、図3のパケット周期解析部144は、パケット群検出チェックの処理の結果、パケット群を検出したか否かを判定する(ステップS122)。パケット群を検出した場合はステップS123に進み、検出していない場合はステップS121に戻る。
ステップS123〜S125では、パケット周期解析部144は、パケット群検出チェックで得られた情報を、後述する周期解析の際に利用できるように、図3の統計テーブル148に書き込むための処理を行う。
パケット周期解析部144は、最も新しい計測値を統計テーブル148に残すための処理を行う。すなわち、既にn個の計測値が不在区間情報領域(図8の148e)に記録されている場合には、これらの計測値の記録領域を古い方向(n→n−1方向)に向かって1個分ずらし、最も古い計測値は削除して、新しい計測値1個分の記録領域を確保する(ステップS123)。
続いて、パケット周期解析部144は、パケット群検出チェック処理で得られたパケット群不在区間の開始時刻(Tgrap−S)とパケット群不在区間の終了時刻(Tgap−E)とに基づいて、最新のパケット群不在区間の時間(長さ)Tdを計算し、これを統計テーブル148の不在区間情報領域148eの最後の位置にTd(n)として記録する(ステップS124)。ここでは、パケット群不在区間の時間Tdは、今回検出されたパケット群不在区間の終了時刻(Tgap−E)から、前回検出されたパケット群のパケット群不在区間の開始時刻を表す時刻の情報(Ttime:前回検出したTgrap−S)を減算した結果である。
続いて、パケット周期解析部144は、今回検出したパケット群の情報を次のパケット群を検出した時に利用するために、今回のパケット群不在区間の開始時刻(Tgap−S)を統計テーブル148の時刻情報領域148dに前回検出されたパケット群のパケット群不在区間の開始時刻を表す時刻の情報(Ttime)として保存する(ステップS125)。
続いて、パケット周期解析部144は、統計テーブル148の内容を参照し、統計情報の計算に必要な複数(n個)のパケット群不在区間の時間(Td)のサンプル情報取得が終了しているか否かを判定する(ステップS126)。終了している場合はステップS127に進み、終了していない場合はステップS121に戻る。
ステップS127では、パケット周期解析部144は、データ中継部133から入力されたパケットについて、VPNセッション毎に周期解析処理、すなわち図12に示す処理を実行する。
ここで、図12に示す周期解析処理について以下に説明する。なお、図12中の処理で用いられる2つの閾値TthL(第1閾値に相当)とTthS(第2閾値に相当)については、図13に示すように、両者はTthSはTthLよりも小さいという関係がある。なお、図13は、パケット群不在区間の長さに関する頻度と閾値TthS、TthLとの関係の一例を示す図である。ここで、TthSはこれ以上短いとセッション継続時間を長くするという閾値で、TthLはこれ以上長いとセッション継続時間を短くするという閾値である。
図12の処理では、まず、図3のパケット周期解析部144は、統計テーブル148の内容に基づいて、統計情報を算出する(ステップS141)。具体的には、n個のパケット群不在区間の長さTd(1)〜Td(n)の情報からこれらの平均値をTaveとして算出し、更に最大値をTmaxとして算出する。算出した平均値Taveは統計テーブル148の領域(図8の148f)に記録する。また、最大値Tmaxを統計テーブル148に記録するようにしてもよい。
続いて、パケット周期解析部144は、パケット群不在区間の時間Tdの周期性の有無を調べるために、取得したパケット群不在区間の時間Td(1)〜Td(n)のばらつきが所定範囲内に収まっているか否かを判定する(ステップS142)。具体的には、平均値Taveと予め定めた定数ΔS(%)とを用いて、パケット群不在区間の時間Td(1)〜Td(n)の全てが(Tave±(Tave*ΔS(%)/100))で表される時間範囲内に属するか否かを判定する(ステップ142)。この条件を満たす場合はステップS143に進み、満たさない場合はステップS144に進む。
ステップS142の条件を満たす場合、つまり、複数のパケット群不在区間の時間Tdの各々と算出された平均値Taveとの差のいずれも所定範囲内である場合、パケット周期解析部144は、当該VPNセッションについて、パケット群不在区間の長さTd(1)〜Td(n)に周期性がある(ばらつきが小さい)と判定する(ステップS143)。
一方、ステップS142の条件を満たさない場合、つまり、複数のパケット群不在区間の時間Tdの各々と算出された平均値Taveとの差のいずれかが所定範囲外である場合、パケット周期解析部144は、当該VPNセッションについて、パケット群不在区間の長さTd(1)〜Td(n)に周期性がない(ばらつきが大きい)と判定する(ステップS144)。
ステップS143の処理後、パケット周期解析部144は、平均値Taveと予め定めた閾値TthL(図13参照)とを比較する(ステップS145)。(Tave>TthL)の条件を満たす場合はステップS146に進み、満たさない場合はステップS147に進む。
ステップS145の条件を満たす場合、パケット周期解析部144は、当該VPNセッションについて、セッションタイマのタイマ値を閾値TthL以下となるように変更する。例えば、セッションタイマのタイマ値を初期値(例えば60秒、予め定めた規定値)よりも短い長さ(Tshort、予め定めた定数)に変更する(ステップS146)。そして、変更後のタイマ値を、統計テーブル148の領域148gに書き込む。
つまり、例えば図1の端末103(A)のアプリケーションによるパケット群の送出が休止されてから次のパケット群が送出されるまでの間隔が非常に長い(例えば60分)場合には、セッションタイマがタイムアウトするまでの時間(タイマ値)が短縮される。その結果、パケット群の送出が休止されてからタイムアウトが発生し当該VPNセッションが解放されるまでの時間が短縮されるので、使用されていないVPNセッションのために確保されているリソースを短時間で解放し、解放されたリソースを別のセッションで有効に使用することができる。
一方、ステップS145の条件を満たさない場合では、パケット周期解析部144は、平均値Taveと予め定めた閾値TthS(図13参照)とを比較する(ステップS147)。(Tave<TthS)の条件を満たす場合はステップS148に進み、満たさない場合はステップS149に進む。
ステップS147の条件を満たす場合、パケット周期解析部144は、当該VPNセッションについて、セッションタイマのタイマ値をタイムアウトしない値となるように変更する。例えば、セッションタイマのタイマ値をステップS141で求めた最大値Tmaxに予め定めた定数Tbufを加算した値(Tmax+Tbuf)に変更する(ステップS148)。そして、変更後のタイマ値を、統計テーブル148の領域148gに書き込む。Tmax+Tbufの値は、規定値(例えば60秒)よりも大きな値である。
つまり、例えば端末103(A)のアプリケーションによるパケット群の送出が休止されてから次のパケット群が送出されるまでの間隔が短い(例えば90秒)場合には、セッションタイマがタイムアウトするまでの時間(タイマ値)がそのパケット群送出間隔より十分長ければ、セッションタイマのタイムアウトは発生しない(セッションタイマのタイムアウトの前に次のパケット群が送出される)。その結果、端末103(A)のアプリケーションによるパケット群の送出が休止されてから次のパケット群が送出されるまでの間に、セッションタイマがタイムアウトすることがほとんどの確率でなく、VPNセッションを張り直す必要がないので、ネットワークの負担が軽減される。
ステップS144で周期性なしと判断された場合もしくはステップS147の条件を満たさない場合、パケット周期解析部144は、当該VPNセッションについて、セッションタイマのタイマ値を規定値、例えば初期値と同値に戻す(ステップS149)。そして、変更後のタイマ値を、統計テーブル148の領域148gに書き込む。なお、初期値と同値にする代わりに、現在のセッションタイマのタイマ値を変更しないようにしてもよい。
つまり、例えば端末103(A)のアプリケーションによるパケット群の送出が休止されてから次のパケット群が送出されるまでの間隔が大きくばらついている場合には、パケット群間隔に周期性がないと判断され、セッションタイマのタイマ値は変更されない、もしくは初期値に戻される。これにより、セッションタイマのタイムアウトが頻繁に発生する場合や、VPNセッションを維持する時間が長くなる場合など動作にバラツキが発生せず、VPNセッションを終了する動作が不安定になるのを防止できる。
このような図9、図10、図12に示したセッションタイマのタイマ値設定処理によれば、実際の様々なネットワーク環境に応じて、柔軟にセッションタイマのタイマ値を設定できる。例えば、セッションタイマのタイマ値が長く設定されている場合であっても、長時間に渡って使用されていないVPNセッションのためにネットワークのリソースが消費され続け、他の通信でリソースが取得できないという事象を回避することができる。また、セッションタイマのタイマ値が短く設定されている場合であっても、セッションタイマのタイムアウトが頻繁に発生し、VPNセッションが終了した後に短時間で次のパケットが到来し、その都度VPNセッションを確立することでネットワーク負荷が増大してしまうことを回避することができる。
なお、内容に限らず、本発明の装置を実際に構成したり本発明の方法を実施したりする場合には、様々な変形が考えられる。例えば、図12においては統計情報としてn個のTdの平均値Taveや最大値Tmaxを利用しているが、これらと同等の特性を有する値であれば他の計算方法で算出された統計情報を用いても良い。また、図12に示す例では、パケット群間隔Tdのばらつきの範囲を特定するためにステップS142で定数(ΔS%)を用いているが、これの代わりに例えば標準偏差などを利用しても良い。また、図8に示した統計テーブル148の構成についても様々な変形が考えられる。
さらに、本発明の趣旨ならびに範囲を逸脱することなく、明細書の記載、並びに周知の技術に基づいて、当業者が様々な変更、応用することも本発明の予定するところであり、保護を求める範囲に含まれる。たとえば、本発明は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装置と一体化して機能することも、本発明が保護を求める範囲に含まれる。つまり、VPN装置101及びVPN装置301は、VPN装置101及びVPN装置301自身が送信すべきパケットについてパケット群不在区間を測定し、測定結果に基づいてセッションタイマのタイマ値を設定し、設定されたタイマ値に基づいてVPNセッションを終了させてもよい。
本発明によれば、VPNセッションにかかるネットワークの負担を低減させることが可能なVPN装置、VPNネットワーキング方法及びプログラム等として有用である。
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 呼制御機能部
144 パケット周期解析部
145 暗号処理部
146 終了判定部
147 終了部
148 統計テーブル
200 WAN
201 STUNサーバ
202 呼制御サーバ

Claims (8)

  1. ネットワーク上で、他のVPN装置との間で仮想プライベートネットワークを構築して通信を行うVPN装置であって、
    前記ネットワークを介して、当該VPN装置のグローバルアドレス情報及びポート情報を取得する外部アドレス・ポート情報取得部と、
    前記ネットワークを介して、当該VPN装置の前記グローバルアドレス情報及び前記ポート情報を前記他のVPN装置へ送信する外部アドレス・ポート情報送信部と、
    前記ネットワークを介して、前記他のVPN装置からの前記他のVPN装置のグローバルアドレス情報及びポート情報を受信する外部アドレス・ポート情報受信部と、
    前記他のVPN装置の前記グローバルアドレス情報及び前記ポート情報を用いて、前記他のVPN装置との間で通信パケットを通信するパケット通信部と、
    前記パケット通信部により連続的に通信される通信パケット群が不在であるパケット群不在区間を測定するパケット群不在区間測定部と、
    前記パケット群不在区間測定部により測定されたパケット群不在区間に基づいて、前記パケット通信部による通信パケットの通信を行うためのVPNセッションを維持する時間としてのセッションタイマのタイマ値を設定するタイマ値設定部と、
    前記パケット群不在区間の開始時点から前記セッションタイマのタイマ値に相当する時間が経過したときに、前記パケット通信部による通信パケットの通信を終了するよう制御するパケット通信終了制御部と、
    を備えるVPN装置。
  2. 請求項1に記載のVPN装置であって、
    前記パケット通信部は、当該VPN装置配下の通信端末からの通信パケットを受信し、受信されたパケットを前記他のVPN装置へ通信するVPN装置。
  3. 請求項1または2に記載のVPN装置であって、
    前記タイマ値設定部は、前記パケット群不在区間測定部により測定された複数のパケット群不在区間の長さの平均値を算出し、前記複数のパケット不在区間の長さの各々と算出された平均値との差のいずれかが所定範囲外である場合、前記セッションタイマのタイマ値を所定の規定値に設定するVPN装置。
  4. 請求項3に記載のVPN装置であって、
    所定の閾値である第1閾値及び前記第1閾値よりも小さい第2閾値を記憶する閾値記憶部を備え、
    前記タイマ値設定部は、前記複数のパケット不在区間の長さの各々と算出された平均値との差がいずれも前記所定範囲内であり、かつ、前記平均値が前記第1閾値よりも大きい場合、前記セッションタイマのタイマ値が前記規定値よりも小さくなるよう設定するVPN装置。
  5. 請求項4に記載のVPN装置であって、
    前記タイマ値設定部は、前記複数のパケット不在区間の長さの各々と算出された平均値との差がいずれも前記所定範囲内であり、かつ、前記平均値が前記第2閾値よりも小さい場合、前記セッションタイマのタイマ値が前記規定値よりも大きくなるよう設定するVPN装置。
  6. 請求項5に記載のVPN装置であって、
    前記タイマ値設定部は、前記複数のパケット不在区間の長さの各々と算出された平均値との差が前記所定範囲内であり、かつ、前記平均値が前記第1閾値以下前記第2閾値以上である場合、前記セッションタイマのタイマ値を前記規定値に設定するVPN装置。
  7. ネットワーク上で、他のVPN装置との間で仮想プライベートネットワークを構築して通信を行うVPN装置のVPNネットワーキング方法であって、
    前記ネットワークを介して、当該VPN装置のグローバルアドレス情報及びポート情報を取得するステップと、
    前記ネットワークを介して、当該VPN装置の前記グローバルアドレス情報及び前記ポート情報を前記他のVPN装置へ送信するステップと、
    前記ネットワークを介して、前記他のVPN装置からの前記他のVPN装置のグローバルアドレス情報及びポート情報を受信するステップと、
    前記他のVPN装置の前記グローバルアドレス情報及び前記ポート情報を用いて、前記他のVPN装置との間で通信パケットを通信するステップと、
    連続的に通信される通信パケット群が不在であるパケット群不在区間を測定するステップと、
    測定されたパケット群不在区間に基づいて、前記通信パケットの通信を終了するためのセッションタイマのタイマ値を設定するステップと、
    前記パケット群不在区間の開始時点から前記セッションタイマのタイマ値に相当する時間が経過したときに、通信パケットの通信を終了するよう制御するステップと、
    を有するVPNネットワーキング方法。
  8. 請求項7に記載のVPNネットワーキング方法の各ステップを実行させるためのプログラム。
JP2010026724A 2010-02-09 2010-02-09 Vpn装置、vpnネットワーキング方法、プログラム Withdrawn JP2011166438A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010026724A JP2011166438A (ja) 2010-02-09 2010-02-09 Vpn装置、vpnネットワーキング方法、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010026724A JP2011166438A (ja) 2010-02-09 2010-02-09 Vpn装置、vpnネットワーキング方法、プログラム

Publications (1)

Publication Number Publication Date
JP2011166438A true JP2011166438A (ja) 2011-08-25

Family

ID=44596601

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010026724A Withdrawn JP2011166438A (ja) 2010-02-09 2010-02-09 Vpn装置、vpnネットワーキング方法、プログラム

Country Status (1)

Country Link
JP (1) JP2011166438A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015511424A (ja) * 2012-02-03 2015-04-16 聯發科技股▲ふん▼有限公司Mediatek Inc. セルラーネットワークにおける多様なトラフィック情報をトリガー及び報告する方法と装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015511424A (ja) * 2012-02-03 2015-04-16 聯發科技股▲ふん▼有限公司Mediatek Inc. セルラーネットワークにおける多様なトラフィック情報をトリガー及び報告する方法と装置
US9282562B2 (en) 2012-02-03 2016-03-08 Mediatek Inc. Method and apparatus for collecting and providing diverse traffic information in cellular networks

Similar Documents

Publication Publication Date Title
RU2660620C1 (ru) Устройство связи и способ обхода брандмауэра шлюза уровня приложения при установлении rtc-соединения связи между rtc-клиентом и rtc-сервером
US9369491B2 (en) Inspection of data channels and recording of media streams
US9043439B2 (en) Method for streaming packet captures from network access devices to a cloud server over HTTP
JP5378494B2 (ja) リレーサーバを利用したデータ伝送システム及び方法
US9319439B2 (en) Secured wireless session initiate framework
WO2010119710A1 (ja) Vpn装置及びvpnネットワーキング方法
US20110145426A1 (en) Networking method of communication apparatus, communication apparatus and storage medium
JP2011188358A (ja) Vpn装置及びip通信装置
US9917871B2 (en) Optimizing media bitrate with explicit network feedback on one client only
JP2007096826A (ja) 情報処理システム、トンネル通信装置、及びトンネル通信方法
US20230208746A1 (en) Cross datacenter communication using a mesh gateway
WO2008044432A1 (fr) Dispositif, procédé et logiciel de communication d'informations
Yoshikawa et al. Evaluation of new CYPHONIC: Overlay network protocol based on Go language
JP2011211490A (ja) Vpn装置及びip通信装置、サーバ装置
JP5464232B2 (ja) セキュア通信システム及び通信装置
US10609110B2 (en) Remote access over internet using reverse session-origination (RSO) tunnel
JP2010283762A (ja) 通信経路設定装置、通信経路設定方法、プログラム、及び記憶媒体
JP2011160286A (ja) 呼制御サーバ、中継サーバ、vpn装置、vpn通信システム、vpnネットワーキング方法、プログラム、及び記憶媒体
JP2010252261A (ja) Vpn装置、vpnネットワーキング方法、及び記憶媒体
JP2011166438A (ja) Vpn装置、vpnネットワーキング方法、プログラム
JP2012019455A (ja) Vpn装置、vpnネットワーキング方法、vpnプログラム、及び記憶媒体
JP2011239277A (ja) Vpn装置、vpnネットワーキング方法、プログラム、及び記憶媒体
JP2010283761A (ja) Vpn装置、vpnネットワーキング方法、プログラム、及び記憶媒体
KR100660123B1 (ko) Nat 통과를 위한 브이.피.엔 서버 시스템 및 브이.피.엔클라이언트 단말기
JP5025449B2 (ja) 中継通信システム

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20130507