説明

通信制御装置、通信制御方法、および通信制御プログラム

【課題】VPNを利用しつつ、QoSを確保して遅延の少ない通信を行うことが可能な通信制御装置、通信制御方法、および通信制御プログラムを提供する。
【解決手段】通信制御装置11、12間で、複数のVPNトンネル30が確立される。通信制御装置11は、配下のネットワークに接続する通信端末からパケットを受信した場合、受信したパケットの暗号化を行うことによって、暗号化データを作成する。通信制御装置11は、トンネル条件に応じて、VPNトンネル31、32、33のうちいずれかを選択する。通信制御装置11は、選択したVPNトンネル30に対応付けられているSPIをESPヘッダに格納する。通信制御装置11は、IPヘッダおよびESPヘッダを暗号化データに付加することによって、VPNパケットを作成し、通信制御装置12に対して送信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、Virtual Private Network(VPN)が利用される通信制御装置、通信制御方法、および通信制御プログラムに関する。
【背景技術】
【0002】
Virtual Private Network(VPN)を利用しつつ、Quality of Service(QoS)を確保するための技術が提案されている(例えば特許文献1参照)。一例として、優先制御を行うことによって通信のリアルタイム性を確保する場合がある。この場合、はじめに、通信端末間に介在する通信制御装置によってVPNが構築される。通信制御装置として、例えばVPNゲートウェイが使用される。通信制御装置は、配下の通信端末から受信したパケットの種類に応じて、優先度を示す優先度情報をパケットのヘッダに付加する。例えば、通信遅延によって情報が劣化し易い、音声や映像等のデータを含むパケットには、優先度の高い優先度情報が付加される。通信制御装置は、優先度情報が付加されたパケットを、VPNを介して他の通信制御装置に転送する。この場合に通信制御装置は、優先度の高い優先度情報が付加されたパケットを優先的に転送する。また、VPNを介してパケットを受信した他の通信制御装置は、パケットに付加されている優先度情報に基づき、優先度の高い優先度情報が付加されたパケットを優先的に通信端末に転送する。これによって、優先度の高いパケットが通信端末間で送受信される場合の通信遅延は小さくなるので、通信のリアルタイム性は向上する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特表2010−510760号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
VPNのプロトコルとして、パケットのデータを暗号化するプロトコルが知られている。一例として、Security Architecture for Internet Protocol(IPSec)が挙げられる。このようなプロトコルがVPNのプロトコルとして使用された場合、パケットのヘッダに付加された優先度情報がデータとともに暗号化される場合がある。優先度情報が暗号化された場合、通信制御装置は、暗号化された優先度情報を復号しなければ、優先度情報に基づいてパケットの転送処理を行うことができなくなる。このため、優先度情報の復号に時間を要してしまってパケットの通信遅延が大きくなるという問題点がある。
【0005】
一方で、優先度情報が通信制御装置によって暗号化されない場合もある。例えば、ヘッダ部分も含めて暗号化されたパケットをデータとして新たなヘッダが付与され、その新たなヘッダに優先度情報が付与される場合などである。しかしながらこのような場合も、VPN内に介在するルータ等の中継機器によってパケットが中継される際、優先度情報が変更されたり、消去されたりする場合がある。このような場合、通信制御装置は、優先度情報に基づいた優先制御を行うことができないという問題点がある。
【0006】
本発明の目的は、VPNを利用しつつ、QoSを確保して遅延の少ない通信を行うことが可能な通信制御装置、通信制御方法、および通信制御プログラムを提供することにある。
【課題を解決するための手段】
【0007】
本発明の第一態様に係る通信制御装置は、通信端末間に介在し、他の通信制御装置との間に構築した仮想プライベートネットワーク(Virtual Private Network、VPN)を介して通信を行うことによって前記通信端末間の通信を制御する通信制御装置であって、複数のVPNトンネルを、前記他の通信制御装置との間で確立する第一確立手段と、配下の前記通信端末から受信したデータを暗号化した暗号化データに、前記複数のVPNトンネルのうち、前記暗号化データが通過する一のVPNトンネルを示す経路情報を付加する付加手段と、前記付加手段によって付加された前記経路情報に対応する前記一のVPNトンネルを使用し、前記他の通信制御装置に対して前記暗号化データを送信する第一送信手段と、前記他の通信制御装置から送信された前記暗号化データを受信する受信手段と、前記受信手段によって受信された前記暗号化データを、前記暗号化データに付加された前記経路情報によって示される優先度に従って、配下の前記通信端末に送信する第二送信手段とを備えている。
【0008】
第一態様によれは、優先制御を行うために暗号化データに付加される経路情報は暗号化されないため、通信制御装置は、暗号化データを転送する際に経路情報を復号する必要がない。このため通信制御装置は、経路情報に基づいて優先制御を迅速に行い通信端末間の通信制御を行うことができる。従って通信制御装置は、VPNを利用して暗号化データの通信が行われる場合であっても、通信端末間の通信遅延を小さくすることによってQoSを確保することができる。
【0009】
また通信制御装置間で、優先度毎にVPNトンネルが確立される。そして通信制御装置は、使用したVPNトンネルに対応する優先度に従って、受信パケットを処理することができる。従って通信制御装置は、優先制御を容易に行うことによって、優先度の高いデータを優先して処理することができる。従って、例えば通信端末は、通信遅延により情報が劣化し易い音声や映像等のデータに高い優先度を設定することによって、これらのデータのリアルタイム性を高めることができるので、他の通信端末との間で信頼性の高い通信を実行することができる。
【0010】
さらに通信制御装置は、VPNを利用し、暗号化したデータを他の通信制御装置に対して送信するため、秘匿性の高い通信を行うことができる。
【0011】
第一態様において、記憶手段の記憶領域であって前記経路情報毎に設けられた複数のデータ領域のうち、前記受信手段によって受信された前記暗号化データに付加された前記経路情報に対応するデータ領域に、前記受信手段によって受信された前記暗号化データを格納する格納手段を備えてもよい。前記第二送信手段は、前記格納手段によって前記データ領域に格納された前記暗号化データを、前記経路情報によって示される前記優先度の高い前記データ領域に格納された前記暗号化データから優先的に選択し、配下の前記通信端末に送信してもよい。例えば、暗号化データが共通の記憶領域に格納される場合、優先度の高い暗号化データを検索するために時間を要してしまうことが想定される。これに対して通信制御装置は、受信した暗号化データを優先度別にデータ領域に格納する。これによって通信制御装置は、優先度の高い暗号化データを優先して通信端末に送信する処理を、容易かつ迅速に行うことができる。
【0012】
第一態様において、前記格納手段によって前記データ領域に格納する前記暗号化データの容量が、前記データ領域にて格納可能な残容量を超えている場合、前記暗号化データを前記データ領域に格納せず消去する消去手段を備えていてもよい。データ領域の残容量が僅かな場合、十分な残容量が確保されるまで待機すると、暗号化データの処理が滞り、通信遅延が大きくなる可能性がある。これに対して通信制御装置は、データ領域の残容量が僅かな場合に暗号化データを破棄することによって、通信遅延が大きくなることを抑止できる。また、記憶手段において必要な記憶容量を抑制することができるので、通信制御装置は、容量の小さい記憶手段を使用することができることになる。このため、通信制御装置のコストを抑制することができる。
【0013】
第一態様において、前記複数のVPNトンネルの確立を要求することを示す情報を、要求データのヘッダに付加し、前記要求データを前記他の通信制御装置に対して送信する要求手段を備えていてもよい。前記他の通信制御装置から前記要求データを受信した場合に、前記要求データに応じて、前記複数のVPNトンネルの確立を許可することを示す情報を、応答データのヘッダに付加し、前記応答データを前記他の通信制御装置に対して送信する応答手段を備えていてもよい。前記第一確立手段は、前記応答手段によって前記他の通信制御装置に対して前記応答データを送信するか、または、前記要求手段による要求に応じて前記他の通信制御装置から前記応答データを受信した場合に、前記他の通信制御装置との間で前記複数のVPNトンネルを確立してもよい。これによって通信制御装置は、通信制御装置と他の通信制御装置との双方が複数のVPNトンネルを確立できる場合にのみ、複数のVPNトンネルを確立させることができる。これによって通信制御装置は、他の通信制御装置との間で複数のVPNトンネルを安定的に確立させることができる。
【0014】
第一態様において、受信した前記応答データに、前記複数のVPNトンネルの確立を許可することを示す情報が付加されていない場合に、単一のVPNトンネルを確立する第二確立手段を備えていてもよい。これによって通信制御装置は、他の通信制御装置が複数のVPNトンネルを確立できない場合に、一のVPNトンネルを確立させることができる。これによって通信制御装置は、他の通信制御装置が複数のVPNトンネルを確立させる処理に対応していない場合でも、単一のVPNトンネルを利用して他の通信制御装置と通信を行い、通信端末間の通信制御を実行することができる。
【0015】
第一態様において、前記第一確立手段によって確立する前記複数のVPNトンネルの数を、前記他の通信制御装置に対して通知する通知手段を備えていてもよい。前記他の通信制御装置から、前記複数のVPNトンネルの数が通知された場合に、通知された数分の前記データ領域を前記記憶手段に設定する設定手段を備えていてもよい。これによって通信制御装置は、確立されるVPNトンネルの数に応じてデータ領域を記憶手段に設定することができる。通信制御装置は、予めデータ領域を記憶手段に設定しておく必要がない。このため通信制御装置は、暗号化データを格納するために必要な領域を、必要に応じてデータ領域として設定することができるので、記憶手段の記憶領域を効率的に使用することができる。
【0016】
第一態様において、前記暗号化データを復号する復号手段を備えていてもよい。前記第二送信手段は、前記受信手段によって受信された前記暗号化データを復号し、配下の前記通信端末に送信してもよい。通信端末が通信制御装置から受信するデータは復号された状態となっているため、通信端末は、受信したデータを即座に利用することができる。
【0017】
第一態様において、前記VPNトンネルには、所定のヘッダ情報が対応付けられてもよい。前記第一送信手段は、配下の前記通信端末から受信したデータのヘッダ情報のうちいずれかが、前記所定のヘッダ情報として対応付けられている前記VPNトンネルを使用し、前記暗号化データを送信してもよい。これによって通信制御装置は、暗号化データを送信する場合に使用するVPNトンネルを容易に特定することができる。
【0018】
本発明の第二態様に係る通信制御方法は、通信制御装置と他の前記通信制御装置との間で、複数の仮想プライベートネットワーク(Virtual Private Network、VPN)トンネルを確立する第一確立ステップと、前記通信制御装置が配下の通信端末から受信したデータを暗号化した暗号化データに、前記複数のVPNトンネルのうち前記暗号化データが通過する一のVPNトンネルを示す経路情報を付加する付加ステップと、前記付加ステップによって付加された前記経路情報に対応する前記一のVPNトンネルを使用し、前記通信制御装置が前記他の通信制御装置に対して前記暗号化データを送信する第一送信ステップと、前記他の通信制御装置から前記通信制御装置に対して送信された前記暗号化データを受信する受信ステップと、前記受信ステップによって受信された前記暗号化データを、前記暗号化データに付加された前記経路情報によって示される優先度に従って、前記通信制御装置の配下の前記通信端末に送信する第二送信ステップとを備えている。第二態様によれば、第一態様と同様の効果を奏することができる。
【0019】
本発明の第三態様に係る通信制御プログラムは、他の通信制御装置との間で、複数の仮想プライベートネットワーク(Virtual Private Network、VPN)トンネルを確立する第一確立ステップと、配下の通信端末から受信したデータを暗号化した暗号化データに、前記複数のVPNトンネルのうち前記暗号化データが通過する一のVPNトンネルを示す経路情報を付加する付加ステップと、前記付加ステップによって付加された前記経路情報に対応する前記一のVPNトンネルを使用し、前記他の通信制御装置に対して前記暗号化データを送信する第一送信ステップと、前記他の通信制御装置から送信された前記暗号化データを受信する受信ステップと、前記受信ステップによって受信された前記暗号化データを、前記暗号化データに付加された前記経路情報によって示される優先度に従って、配下の前記通信端末に送信する第二送信ステップとを前記通信制御装置のコンピュータに実行させる。第三態様によれば、第一態様と同様の効果を奏することができる。
【図面の簡単な説明】
【0020】
【図1】通信システム1の概要、および、通信制御装置10の電気的構成を示す図である。
【図2】VPNトンネル19のトンネル条件を設定する設定画面28を示す図である。
【図3】通信制御装置11、12間に設定されたVPNトンネル30を示す図である。
【図4】通信制御装置11、12間の通信を示すシーケンス図である。
【図5】受信キュー241および優先度別キュー242を示す図である。
【図6】第一メイン処理を示すフローチャートである。
【図7】トンネル確立処理を示すフローチャートである。
【図8】第二メイン処理を示すフローチャートである。
【図9】送信処理を示すフローチャートである。
【図10】格納処理を示すフローチャートである。
【図11】取り出し処理を示すフローチャートである。
【発明を実施するための形態】
【0021】
以下、本発明の一実施形態について、図面を参照して説明する。これらの図面は、本発明が採用しうる技術的特徴を説明するために用いられるものである。記載されている装置の構成、各種処理のフローチャート等は、それのみに限定する趣旨ではなく、単なる説明例である。
【0022】
図1を参照し、通信システム1の概要について説明する。通信システム1は、通信制御装置11、12、および、通信端末14、15を備えている。通信端末14は、通信制御装置11の配下のネットワークに接続している。通信端末15は、通信制御装置12の配下のネットワークに接続している。通信制御装置11、12は、Virtual Private Network(VPN)を利用し、インターネット網16にVPNトンネル19を確立することができる。通信制御装置11、12は、確立したVPNトンネル19を使用することによって、通信端末14、15間で実行されるデータ通信を仲介する。以下、通信制御装置11、12を区別しない場合または総称する場合、これらを通信制御装置10という。通信端末14、15を区別しない場合または総称する場合、これらを通信端末13という。通信制御装置10の一例として、VPNゲートウェイが挙げられる。通信端末13の一例として、PCが挙げられる。通信制御装置10の配下のネットワークの一例として、Local Area Network(LAN)が挙げられる。
【0023】
通信制御装置10が利用するVPNのプロトコルは、Security Architecture for Internet Protocol(IPSec)である。通信制御装置10は、IPSecに基づいて、配下の通信端末13から受信したデータの暗号化およびカプセル化を行う。通信制御装置10は、インターネット網16に確立したVPNトンネル19を使用し、カプセル化したデータのトンネリング通信を行う。これによって通信制御装置10は、インターネット網16を介して異なるネットワークを仮想的に直結することができる。また通信制御装置10は、データを暗号化することによって、データの漏洩や改ざんを防止することができる。
【0024】
なお、通信システム1におけるインターネット網16の代わりに、専用通信回線が使用されてもよい。通信制御装置10は、専用通信回線にVPNトンネル19を確立してもよい。VPNのプロトコルはIPSecに限定されず、暗号化およびカプセル化を行う他のVPNプロトコルであってもよい。通信制御装置10はVPNゲートウェイに限定されず、VPNを利用することによってネットワークにVPNトンネルを確立することが可能な他の装置であってもよい。通信端末13はPCに限定されず、Internet Protocol(IP)電話等の通話端末であってもよい。
【0025】
通信制御装置10の電気的構成について説明する。通信制御装置10は、通信制御装置10の制御を司るCPU21を備えている。CPU21は、ROM22、RAM23、フラッシュメモリ24、通信インタフェース(以下、通信I/Fという。)25、およびLED26と電気的に接続している。ROM22は、書き換え可能な不揮発性メモリである。ROM22には、ブートプログラム、BIOS、OS等が記憶される。RAM23には、タイマやカウンタ、一時的なデータが記憶される。またRAM23には、後述する受信キュー241および優先度別キュー242が必要に応じて設けられる。フラッシュメモリ24には、CPU21の制御プログラムが記憶される。通信I/F25は、他の通信制御装置10、および、配下の通信端末13と通信を行うためのインタフェースである。LED25は、通信制御装置10の状態をユーザに通知するために設けられている。
【0026】
通信システム1において、通信端末13間の通信のリアルタイム性がQuality of Service(QoS)として要求されたとする。ここで、データの暗号化およびカプセル化が行われず、VPNトンネル19が使用されない場合において、通信端末13間の通信のリアルタイム性を確保するための従来の方法について、図1を参照しつつ説明する。従来の方法として、優先制御による方法が一般的に用いられる。具体的には、例えば以下のとおりである。
【0027】
通信端末14が通信端末15に対してデータを送信する場合を想定する。通信端末14は、データの優先度をType of service(TOS)に格納したIPヘッダを準備する。通信端末14は、準備したIPヘッダをデータに付加し、パケットを作成する。ここでデータには、使用されるプロトコルに応じたヘッダ(例えば、(Transmission Control Protocol(TCP)ヘッダや、User Datagram Protocol(UDP)ヘッダ等)が含まれている。通信端末14は、作成したパケットを通信制御装置11に対して送信する。通信制御装置11は、通信端末14からパケットを受信する。なおデータの優先度は、パケットを受信した通信制御装置11によってTOSに格納されてもよい。通信制御装置11は、受信したパケットを、インターネット網16を介して通信制御装置12に対して転送する。通信制御装置12はパケットを受信し、RAM23に記憶する。
【0028】
通信制御装置12は、RAM23に記憶され蓄積されたパケットを順次参照する。通信制御装置12は、TOSに格納された優先度に基づき、高い優先度のパケットを優先的に選択し、通信端末15に対して転送する。通信端末15は、通信制御装置12からパケットを受信する。なお通信制御装置12は、優先度の高い順でパケットを転送する場合の他に、低い優先度に対して重み付けを行うことによって、優先度の低いパケットであっても一定の割合で転送できるようにする場合もある。
【0029】
以上の処理によって、通信制御装置12は、優先度の高いパケットを長時間滞留させることなく、通信端末15に対して速やかに転送することができる。通信端末15は、通信端末14から送信されたパケットのうち優先度の高いパケットを遅滞なく受信することができる。これによって、通信端末13間で行われる通信のリアルタイム性が確保される。
【0030】
次に、暗号化およびカプセル化されたデータのトンネリング通信が、VPNトンネル19を介して実行される状況に対して、上述の優先制御が適用された場合について説明する。なお以下では、通信制御装置11、12間で一のVPNトンネル19が予め確立されているものとする。
【0031】
通信制御装置11が、TOSに優先度が格納されたIPヘッダを含むパケットを、通信端末14から受信したとする。通信制御装置11は、パケットの暗号化およびカプセル化を行う。暗号化は、通信端末14から受信したパケットのうち、IPヘッダおよびデータを対象として実行される。以下、暗号化されたIPヘッダおよびデータを、暗号化データともいう。通信制御装置11は、IPヘッダおよびEncapsulated Security Payload(ESP)ヘッダを暗号化データに付加することによって、暗号化データをカプセル化する。以下、暗号化データをカプセル化することによって作成されたパケットを、VPNパケットともいう。作成されたVPNパケットは、VPNトンネル19を介して、通信制御装置11から通信制御装置12に対して送信される。通信制御装置12は、VPNパケットを受信し、RAM23に記憶する。
【0032】
通信制御装置12は、通信端末15にパケットを転送するために、RAM23に記憶され蓄積されたVPNパケットを順次参照する。ここで従来の方法と異なり、TOSを含むIPヘッダは、通信制御装置11によって暗号化されている。従って通信制御装置12は、TOSに格納された優先度を確認して優先度の高いパケットを優先的に選択するために、VPNパケットを復号しなければならない。従って、VPNパケットを受信してから通信端末14に転送するまでに、復号に要する時間が余分に発生することになり、通信遅延は大きくなる。従って、VPNトンネル19が使用されない従来の場合と比較して、通信端末13間で行われる通信のリアルタイム性は悪化する。
【0033】
なお上述とは異なる方法として、通信制御装置11が暗号化データに付加するIPヘッダのTOSに優先度情報を格納し、VPNパケットを作成するという方法もある。この場合、TOSは暗号化されないので、VPNパケットを受信した通信制御装置12は、復号を要することなくTOSに格納された優先度を確認することができる。従って通信遅延は改善するとも考えられる。しかしながら、通信制御装置11、12間のインターネット網16内に介在するルータ等がVPNパケットを中継転送する過程で、VPNパケットのTOSが変更されたり破棄されたりする可能性がある。このような場合、通信制御装置12は、TOSに格納された優先度を参照することができないので、優先度に応じてパケットを選択し、配下の通信端末13に送信することができない。従って、通信端末13間の通信のリアルタイム性を確保することができない。
【0034】
上述の問題点を解消するために、本発明の通信制御装置10は、優先度のレベルに応じて複数のVPNトンネル19を確立する。図1では、二つのVPNトンネル17、18が、通信制御装置10間に確立されている。通信制御装置12は、通信制御装置11から送信されたVPNパケットを、VPNトンネル17、18のうち何れを介して受信したかを判断することによって、通信制御装置11から受信したVPNパケットの優先度を判断する。具体的には以下のとおりである。
【0035】
VPNトンネル19を識別するパラメータとして、ESPヘッダにSecurity Parameter Index(SPI)がある。本発明では、優先度のレベルに応じて異なるSPIをESPヘッダに格納することによって、VPNトンネル19を使い分ける。例えば図1では、VPNトンネル17に対応するSPIとして1が割り当てられ、VPNトンネル18に対応するSPIとして2が割り当てられている。通信制御装置11は、優先度の高いVPNパケットのESPヘッダのSPIに1を格納し、優先度の低いVPNパケットのESPヘッダのSPIに2を格納する。これによって、優先度の高いVPNパケットの送信時にはVPNトンネル17が使用され、優先度の低いVPNパケットの送信時にはVPNトンネル18が使用される。
【0036】
通信制御装置11から送信されたVPNパケットが、通信制御装置12において受信されたとする。通信制御装置12は、SPIに格納されている値から、VPNパケットが通過したVPNトンネル19を識別する。優先度の高いVPNパケットはVPNトンネル17を介して送信され、優先度の低いVPNパケットはVPNトンネル18を介して送信されているので、通信制御装置12は、受信したVPNパケットの優先度を、暗号化データを復号することなく特定することができる。これによって通信制御装置12は、優先度の高いパケットを速やかに通信端末15に対して送信することができる。また通信制御装置12は、優先度の高いパケットを長時間滞留させることを防止できる。以上の方法によって本発明は、暗号化およびカプセル化されたデータのトンネリング通信が、VPNトンネル19を使用して実行される場合であっても、通信端末13間の通信のリアルタイム性を確保することができる。
【0037】
なお上述では、VPNトンネル19に割り当てるSPIを優先度順に「1、2・・・」とした例を挙げて説明したが、実際には、VPNトンネル19に割り当てるSPIはランダムに選択される。従って通信制御装置10は、VPNトンネル19に割り当てたSPIと優先度との対応関係を示すテーブルを管理し、優先度に対応するSPIを選択してVPNパケットのESPヘッダに格納することによって、VPNトンネル19を使い分ける。なお以下では、説明を容易化するために、上述と同様、通信制御装置10は優先度順でSPIをVPNトンネル19に割り当てることを想定して説明する。
【0038】
図2および図3を参照し、通信制御装置11、12間に複数のVPNトンネルを確立させる場合における、通信制御装置11に対する操作手順の具体例について説明する。通信制御装置11に、設定用の外部端末が接続される。外部端末として通信端末14が使用されてもよい。外部端末のディスプレイに、図2に示す設定画面28が表示される。設定画面28は、通信制御装置10間に確立させるVPNトンネルの条件を、優先度順に設定するためのものである。
【0039】
設定画面28の設定項目として、IPアドレス、プロトコル、およびポートがある。IPアドレスとして、宛先/送信元/設定なし、のいずれか、および、IPアドレスを入力することができる。プロトコルとして、トランスポート層のプロトコル(TCP、UDPなど)を入力することができる。ポートとして、宛先/送信元/設定なし、のいずれか、開始ポート番号、および終了ポート番号を入力することができる。これらの設定項目は、通信制御装置10が配下の通信端末13から受信するパケットのヘッダに含まれる情報項目の一部に相当する。なお、削除ボタンを選択することによって、入力した設定情報を削除することができる。
【0040】
例えば図2では、インデックス1として、IPアドレス「対象:宛先、アドレス:192.168.25.2」、プロトコル「UDP」、ポート「対象:宛先、開始ポート番号:5060、終了ポート番号:5060」が其々入力されている。これらを設定することによって、「宛先のIPアドレス:192.168.25.2、トランスポート層のプロトコル:UDP、宛先のポート番号:5060」という条件を満たすヘッダを含むパケットを通信制御装置11が通信端末13から受信した場合において、VPNパケットを通信制御装置12に対して送信する場合に使用されるVPNトンネル31(図3参照)が確立される。以下、確立されたVPNトンネルに対応する条件であって設定画面28を介して入力された条件を、トンネル条件という。
【0041】
また図3では、図2のうちインデックス2として入力された情報に基づき、トンネル条件が「トランスポート層のプロトコル:UDP、送信元の開始ポート番号:20000、送信元の終了ポート番号:20100」であるVPNトンネル32が確立されている。さらに、VPNトンネル31、32の何れの条件も満たさないVPNパケット用に、VPNトンネル33が確立されている。以下、VPNトンネル31、32、33を区別しない場合または総称する場合、VPNトンネル30という。このように、設定画面28を介してトンネル条件が入力された場合、入力されたトンネル条件の数よりも1大きい数のVPNトンネル30が、通信制御装置11、12間に確立されることになる。
【0042】
なお図3では、VPNトンネル31、32、および33の其々に対応するSPIとして、1、2、3が其々割り当てられている。通信制御装置11は、VPNパケットのSPIを使い分けることによって、VPNパケットを送信する際に使用するVPNトンネル30を使い分けることができる。
【0043】
以上のように、通信制御装置11のユーザは、通信制御装置11に接続した外部機器を介し、設定画面28を介してトンネル条件を設定することによって、通信制御装置11、12間に確立するVPNトンネル30のトンネル条件を容易に設定することができる。また通信制御装置11は、VPNトンネル30にトンネル条件を対応付けることによって、VPNパケットを送信する場合に使用するVPNトンネル30を容易に特定することができる。通信制御装置11は、通信端末14から受信したパケットのヘッダに含まれている情報(IPアドレス、プロトコル、ポート番号)のうち一部と一致するトンネル条件が対応付けられたVPNトンネル30を、VPNパケットを送信する場合に使用するVPNトンネルとして特定することができるためである。
【0044】
また詳細は後述するが、インデックスの小さいトンネル条件に対応するVPNトンネル30を使用して送信されたVPNパケットの方が、インデックスの大きいトンネル条件に対応するVPNトンネル30を使用して送信されたVPNパケットよりも、通信制御装置12のRAM23に記憶される時間が短くなる。従ってユーザは、設定画面28を介し、優先度の高い順にトンネル条件を設定することによって、通信端末13間の通信のリアルタイム性を優先度のレベルに応じて制御し、通信端末13間の通信遅延を優先度に応じて小さくすることができる。
【0045】
なお上述のように、通信制御装置11に対してトンネル条件が設定されることによって確立されたVPNトンネル30は、通信制御装置11が通信制御装置12に対してVPNパケットを送信する場合にのみ使用され、通信制御装置12が通信制御装置11に対してVPNパケットを送信する場合には使用されない。通信制御装置12が通信制御装置11に対してVPNパケットを送信する場合に使用されるVPNトンネルは、通信制御装置12に対してトンネル条件の設定が行われることによって確立される。
【0046】
図4を参照し、通信制御装置11、12間の通信の手順について説明する。図4では、VPNトンネルの確立から、VPNトンネルを介した通信が実行されるまでの一連の通信が示されている。以下、詳細について説明する。
【0047】
VPNトンネルを確立させるための通信は、Phase1、2に分かれている。Phase1、2では、通信制御装置11、12間でメッセージパケット41〜59が送受信される。メッセージパケット41〜59は、IPヘッダ、UDPヘッダ、ISAKMPヘッダ、およびISAKMPペイロードによって構成されている。ISAKMPペイロードには、後述する様々なパラメータが格納される。Phase1では、VPNトンネルを確立するために必要な設定条件を、通信制御装置10間で交換するための通信が実行される。Phase2では、通信制御装置11から送信されたVPNパケットが通信制御装置12において受信される場合に使用される優先度別キュー242(図5参照、後述)を、通信制御装置12に設定するための通信が実行される。
【0048】
通信制御装置11に外部機器が接続され、設定画面28(図2参照)を介してトンネル条件が入力されたとする。Phase1の通信が開始される。通信制御装置11は、VPNパケットを送信する際に使用する複数のVPNトンネルの確立を、通信制御装置12に対して要求する。この要求は、SAおよびVendor IDのパラメータがISAKMPペイロードに格納されたメッセージパケット43を、通信制御装置12に対して送信することによって行われる(S101)。以下、S101において、複数のVPNトンネルの確立を要求するために送信されるメッセージパケット43を、要求パケットともいう。要求パケットは、通信制御装置12において受信される。
【0049】
要求パケットのSAとして、VPNトンネルを使用してVPNパケットの通信を行うために必要な各種設定条件のうち、通信制御装置11において利用することが可能な設定条件が格納される。格納される設定条件は、暗号化アルゴリズム、ハッシュアルゴリズム、ライフタイム、および認証方式である。また、要求パケットのVendor IDとして、複数のVPNトンネルの確立を要求することを示す所定の情報が格納される。以下、複数のVPNトンネルの確立を要求することを示す所定の情報を、要求情報という。
【0050】
要求パケットを通信制御装置12が受信した場合、通信制御装置12は、要求パケットのSAを参照する。通信制御装置12は、SAとして格納された各種設定条件の中に、通信制御装置12において利用することが可能な設定条件が含まれているかを判断する。利用することが可能な設定条件が含まれていない場合、通信制御装置12は、通信制御装置11との間にVPNトンネルを確立させることができないためである。次に通信制御装置12は、要求パケットのVendor IDを参照する。通信制御装置12は、要求情報がVendor IDとして格納されているかを判断する。
【0051】
通信制御装置12は、SAとして格納された各種設定条件の中に通信制御装置12が利用可能な設定条件が含まれており、且つ、要求情報がVendor IDとして格納されている場合、通信制御装置11からの要求に応じて複数のVPNトンネルを確立することを許可する。通信制御装置12は、通信制御装置11からの要求パケットによる要求に応じ、SAおよびVendor IDのパラメータがISAKMPペイロードに格納されたメッセージパケット45を、通信制御装置11に対して送信する(S103)。以下、S103において、複数のVPNトンネルの確立を許可することを通知するために送信されるメッセージパケット45を、応答パケットともいう。応答パケットのSAとして、要求パケットにSAとして格納されていた各種設定条件のうち、通信制御装置12において利用可能な設定条件が格納される。またVendor IDとして、複数のVPNトンネルの確立を許可することを示す所定の情報が格納される。以下、複数のVPNトンネルの確立を許可することを示す所定の情報を、応答情報という。応答パケットは、通信制御装置11において受信される。
【0052】
なお通信制御装置12は、要求パケットのSAとして格納された各種設定条件の中に、通信制御装置12が利用可能な設定条件が含まれていない場合、通信制御装置11との間にVPNトンネルを確立させることができないので、通信制御装置11に対して応答パケットを送信しない。また通信制御装置12は、通信制御装置12が複数のVPNトンネルを確立するための制御に対応していない場合、Vendor IDの情報が格納されていない状態の応答パケットを、通信制御装置11に対して送信する。
【0053】
以上のように要求パケットおよび応答パケットの通信を行うことによって、通信制御装置11は、通信制御装置11と通信制御装置12との双方が複数のVPNトンネルを確立できる場合にのみ、複数のVPNトンネルを確立させることが可能となる。これによって通信制御装置11は、通信制御装置12との間で複数のVPNトンネルを安定的に確立させることができる。また通信制御装置11は、通信制御装置12が複数のVPNトンネルを確立できないことを、Vendor IDに応答情報が格納されているか否かによって判断することができる。通信制御装置11は、通信制御装置12が複数のVPNトンネルを確立できないと判断した場合、後述するように、一のVPNトンネルを確立させることができる。これによって通信制御装置11は、通信制御装置12が複数のVPNトンネルを確立させる処理に対応していない場合でも、一のVPNトンネルを利用して通信制御装置12と通信を行い、通信端末13間の通信制御を実行することができるようになる。詳細は後述する。
【0054】
また上述までの通信は、IPSecがVPNのプロトコルとして使用された場合においてVPNトンネルを確立するために実行される周知の通信と同一である。従って、要求パケットおよび応答パケットのメッセージフォーマットも、周知の通信と同一のものが使用される。このように通信制御装置11は、周知のメッセージフォーマットをそのまま使用することによって複数のVPNトンネルを確立させることができる。
【0055】
応答パケットを通信制御装置11が受信した場合、次に通信制御装置11は、VPNトンネルを介した通信時における暗号/復号に必要な鍵情報を、通信制御装置12に対して通知する。この通知は、KEおよびNiのパラメータがISAKMPペイロードに格納されたメッセージパケット47を、通信制御装置12に対して送信することによって行われる(S105)。KEとして、暗号/復号に必要な鍵情報が格納される。通信制御装置12は、鍵情報が格納されたメッセージパケット47を受信する。通信制御装置12は、受信したメッセージパケット47に応じ、鍵情報を通信制御装置12に対して通知する。この通知は、KEおよびNrのパラメータがISAKMPペイロードに格納されたメッセージパケット49を、通信制御装置11に対して送信することによって行われる(S107)。KEとして、暗号/復号に必要な鍵情報が格納される。通信制御装置11は、鍵情報が格納されたメッセージパケット49を受信する。これによって通信制御装置11、12は、交換した鍵情報に基づいて暗号/復号を実行することが可能な状態になる。
【0056】
S105、S107による鍵情報の交換が終了した後、次に通信制御装置11は、通信制御装置11のIPアドレスを通信制御装置12に対して通知する。この通知は、IDiiおよびHASH_IのパラメータがISAKMPペイロードに格納されたメッセージパケット51を、通信制御装置12に対して送信することによって行われる(S109)。IDiiとして、通信制御装置11のIPアドレスが格納される。通信制御装置12は、通信制御装置11のIPアドレスが格納されたメッセージパケット51を受信する。通信制御装置12は、受信したメッセージパケット51に応じ、通信制御装置12のIPアドレスを通信制御装置11に対して通知する。この通知は、IDiiおよびHASH_RのパラメータがISAKMPペイロードに格納されたメッセージパケット53を、通信制御装置11に対して送信することによって行われる(S111)。IDiiとして、通信制御装置12のIPアドレスが格納される。通信制御装置11は、通信制御装置12のIPアドレスが格納されたメッセージパケット53を受信する。これによって通信制御装置11、12は、相手方のIPアドレスに基づいてVPNトンネルを確立することが可能な状態になる。Phase1の通信は終了する。
【0057】
Phase1の通信の後、Phase2の通信が開始される。Phase2の通信は、通信制御装置11、12間に確立されるVPNトンネルの数分繰り返して実行される。通信制御装置11は、通信制御装置12に対して、確立させるVPNトンネルの優先度、および、確立させるVPNトンネルの総数を通知する。この通知は、HASH(1)、SA、Ni、およびPのパラメータがISAKMPペイロードに格納されたメッセージパケット55を、通信制御装置12に対して送信することによって行われる(S113)。Pのパラメータは、確立されるVPNトンネルの優先度を定義するペイロードである。Pのパラメータは、例えば、Priority、Priority Maxなどの変数格納領域を含む。PのパラメータのうちPriorityに、優先度(1、2、3・・・)を示す情報が格納される。PのパラメータのうちPriority Maxに、VPNトンネルの総数が格納される。通信制御装置12は、Priority(優先度)およびPriority Max(総数)が格納されたメッセージ−パケット55を受信する。通信制御装置12は、メッセージ−パケット55のPにPriorityおよびPriority Maxとして格納された値に基づいて、優先度別キュー242(図5参照)をRAM23内に設定する(S114)。優先度別キュー242の設定の詳細は後述する。
【0058】
なお、通信制御装置11がS103で通信制御装置12から受信した応答パケットのVendor IDに応答情報が格納されていない場合、通信制御装置12が複数のVPNトンネルを確立させることができないことを示している。この場合、通信制御装置11は、一のVPNトンネルを確立させるためのメッセージパケット55を通信制御装置12に対して送信する。このようにして通信制御装置11は、通信制御装置12が複数のVPNトンネルを確立させる処理に対応していない場合でも、一のVPNトンネルを確立させることができる。
【0059】
通信制御装置12は、受信したメッセージパケット55に応じ、HASH(2)、SA、およびNrのパラメータがISAKMPペイロードに格納されたメッセージパケット57を、通信制御装置12に対して送信する(S115)。通信制御装置11は、メッセージパケット57を受信する。通信制御装置11は、受信したメッセージパケット57に応じ、HASH(3)のパラメータがISAKMPペイロードに格納されたメッセージパケット59を、通信制御装置12に対して送信する(S117)。S113〜S117の通信によって、一のVPNトンネルが通信制御装置11、12間に確立される。
【0060】
S113〜117の通信は、通信制御装置11、12間で確立されるVPNトンネルの数分繰り返される。例えば図3で示したように、通信制御装置11、12間で3つのVPNトンネルを確立させる場合、S113〜117の通信は合計3回繰り返されることになる。最初に、PのうちPriorityに優先度1が格納され、Priority Maxに総数3が格納されたメッセージパケット55が、通信制御装置11から通信制御装置12に対して送信され、S113〜117の通信が実行される。通信制御装置11、12間に、VPNトンネル31(図3参照)が確立される。Priorityに格納された優先度1が、VPNトンネル31のSPIと対応付けられる。
【0061】
次に、PのうちPriorityに優先度2が格納され、Priority Maxに総数3が格納されたメッセージパケット55が、通信制御装置11から通信制御装置12に対して送信され、S113〜117の通信が実行される。通信制御装置11、12間に、VPNトンネル32(図3参照)が確立される。Priorityに格納された優先度2が、VPNトンネル32のSPIと対応付けられる。最後に、PのうちPriorityに優先度3が格納され、Priority Maxに総数3が格納されたメッセージパケット55が、通信制御装置11から通信制御装置12に対して送信され、S113〜117の通信が実行される。通信制御装置11、12間に、VPNトンネル33(図3参照)が確立される。Priorityに格納された優先度3が、VPNトンネル33のSPIと対応付けられる。Phase2の通信は終了する。
【0062】
なお通信制御装置11では、上述のようにして確立されたVPNトンネル30に対して、設定画面28(図2参照)を介して設定されたトンネル条件が対応付けられる。具体的には、VPNトンネル31(図3参照)に対して、設定画面28(図2参照)におけるインデックス1のトンネル情報が対応付けられる。VPNトンネル32(図3参照)に対して、インデックス2のトンネル情報が対応付けられる。なお、VPNトンネル33(図3参照)に対してトンネル情報は対応付けられない。
【0063】
図5を参照し、S114で通信制御装置12のRAM23に設定される優先度別キュー242について説明する。優先度別キュー242は、通信制御装置12がVPNトンネルを介して通信制御装置11から受信したVPNパケットを、VPNトンネル別に記憶するためのFIFO型の記憶領域である。例えばメッセージパケット55(図5参照)において、Priority Maxとして3が設定されていた場合、3つの優先度別キュー242(優先度別キュー2421、2422、および2423)が、RAM23に設定される。其々の優先度別キュー242には、対応するVPNトンネルのSPIが割り当てられる。また、Phase2の通信によって通信制御装置11から受信した3つのメッセージパケット55にPriorityとして格納された優先度1、2、3が、設定された優先度別キュー2421、2422、2423に対応付けられる。其々の優先度別キュー242に、SPIと優先度が対応付けられたことになる。
【0064】
以上のように通信制御装置12は、確立されるVPNトンネルの数に応じて優先度別キュー242をRAM23に設定することができる。通信制御装置12は、予め優先度別キュー242をRAM23に設定しておく必要がない。このため通信制御装置12は、VPNパケットを格納するために必要な優先度別キュー242を、必要に応じて必要な領域分、RAM23に設定することができるので、RAM23の記憶領域を効率的に使用することができる。
【0065】
なお、上述した優先度別キュー242の設定は、通信制御装置12において最初にメッセージパケット55(図4参照)を受信した場合にのみ実行される。
【0066】
図4に示すように、Phase2の通信によってVPNトンネルが確立された後、確立されたVPNトンネルを介して、VPNパケットの通信が開始される。以下、VPNトンネルを介して行われるVPNパケットによる通信を、VPN通信ともいう。VPN通信が開始された場合、通信制御装置11は以下のようにして通信処理を行う。
【0067】
通信制御装置11は、配下の通信端末14(図1参照)からパケットを受信する。通信制御装置11は、パケットの暗号化およびカプセル化を行う。具体的には、通信制御装置11は、受信したパケットのうち、IPヘッダおよびデータを対象として暗号化し、暗号化データを作成する。通信制御装置11は、通信端末14から受信したパケットのヘッダに含まれる情報(IPアドレス、プロトコル、ポート番号)のうち一部と一致するトンネル条件を対応付けたVPNトンネルを、Phase1およびPhase2の通信によって確立した複数のVPNトンネルの中から選択する。具体的には、例えば図3に示す3つのVPNトンネル30が確立された状態で、「宛先IPアドレス:192.168.25.2、プロトコル:UDP、宛先ポート番号:5060」であるパケットを通信端末14から受信したとする。これらの条件は、設定画面28(図2参照)を介して入力されたトンネル条件のうち、インデックス1に対応するトンネル条件と一致する。このような場合、通信制御装置11は、インデックス1に対応するトンネル条件が対応付けられたVPNトンネル31を選択する。
【0068】
通信制御装置11は、選択したVPNトンネルに割り当てたSPIを、ESPヘッダのSPIとして格納することによって、ESPヘッダを準備する。通信制御装置11は、IPヘッダおよび準備したESPヘッダを暗号化データに付加することによってカプセル化し、VPNパケット61を作成する。通信制御装置11は、作成したVPNパケット61を通信制御装置12に対して送信する(S119)。これによってVPNパケットは、SPIに対応するVPNトンネルを経由し、通信制御装置12に到達する。通信制御装置12は、VPNパケットを受信する。
【0069】
通信制御装置12が優先度別キュー242を使用してVPNパケットを受信する方法について、図5を参照して説明する。RAM23には、既述の優先度別キュー242の他に、受信キュー241が設けられている。受信キュー241は、インターネット網16(図1参照)を介して受信したパケットを記憶するためのFIFO型の記憶領域である。通信制御装置12は、インターネット網16を介してパケットを受信した場合、受信したパケットを受信キュー241に格納する(S131)。受信キュー241には、VPNパケット以外のパケットも格納される。
【0070】
受信キュー241に格納されたパケットが順に取り出される(S133)。取り出されたパケットの中から、VPNパケットが抽出される。抽出されたVPNパケットは、通信制御装置11から送信される際に使用されたVPNトンネルに応じて分類される。使用されたVPNトンネルは、VPNパケットのESPヘッダのSPIに格納された値を参照することによって特定される。VPNパケットは、SPI毎に対応する優先度別キュー242に格納される(S135)。VPNパケットは、使用されたVPNトンネル毎に分類され、優先度別キュー242に格納されることになる。
【0071】
通信制御装置12は、優先度別キュー242を高い優先度から順に参照し、記憶されているVPNパケットを選択する。優先度別キュー242に対応付けられているSPIは、優先度別キュー242の優先度と対応付けられているので、対応付けられている優先度の高いSPIの順に、優先度別キュー242が参照できる。優先度別キュー242に格納されたVPNパケットから暗号化データが抽出され、復号される。復号されたデータは、通信制御装置12の配下の通信端末15に対して送信される(S137)。このようにして通信制御装置12は、優先度別キュー242に対応付けられているSPIと優先度とに基づき、優先度の高い順に優先度別キュー242を参照し、格納されているVPNパケットを復号して通信端末15に送信する。
【0072】
例えば上述とは異なり、RAM23の共通の記憶領域に、受信されたVPNデータが格納されたとする。この場合、優先度の高いVPNデータを検索するために時間を要してしまうことが想定される。VPNパケットは優先度別に分類されていないので、共通の記憶領域に記憶されたVPNパケットを最初から順番に検索しなければならないためである。これに対して通信制御装置12は、優先度別キュー242を用いることで、受信したVPNデータを優先度別に管理することができる。これによって通信制御装置12は、優先度の高いVPNデータを優先して通信端末15に送信する処理を、容易かつ迅速に行うことができる。また通信制御装置12は、暗号化データを復号して通信端末15に送信するため、通信端末15は、復号されたパケットを直接受信することができる。このため通信端末15は、受信したパケットを即座に利用することができる。
【0073】
図6から図11を参照し、通信制御装置10が実行する処理について説明する。第一メイン処理(図6参照)、および第二メイン処理(図8参照)は、フラッシュメモリ24に記憶されている通信制御プログラムに従って、通信制御装置10のCPU21が実行する。CPU21は、通信制御装置10の電源がONされると、第一メイン処理を開始する。またCPU21は、第一メイン処理中で第二メイン処理を起動する。トンネル確立処理(図7参照)は、第一メイン処理中で実行される。送信処理(図9参照)、格納処理(図10参照)、および取り出し処理(図11参照)は、第二メイン処理中で実行される。
【0074】
図6を参照し、第一メイン処理について説明する。CPU21は、通信制御装置10に接続された外部機器に対して、トンネル条件を入力する操作が設定画面28(図2参照)を介して行われたかを判断する(S11)。トンネル条件を入力する操作が行われた場合(S11:YES)、CPU21は、入力されたトンネル条件をフラッシュメモリ24に記憶する。CPU21は、他の通信制御装置10に対してVPNトンネルの確立を要求し、VPNトンネルを確立する処理(トンネル確立処理、図7参照)を実行する(S15)。なお、設定画面28を介して入力操作が行われているため、トンネル確立処理では、他の通信制御装置10に対して複数のVPNトンネルの確立が要求されることになる。トンネル確立処理の詳細は後述する。トンネル確立処理によってVPNトンネルが確立された後、CPU21は、第二メイン処理を起動する(S17)。第二メイン処理では、確立されたVPNトンネルが使用され、他の通信制御装置10に対してVPNパケットが送信される。第二メイン処理が起動された後、第一メイン処理は終了する。
【0075】
一方S11で、トンネル条件の入力操作が行われていないと判断された場合(S11:NO)、CPU21は、他の通信制御装置10から要求パケットを受信したかを判断する(S13)。他の通信制御装置10から要求パケットを受信していない場合(S13:NO)、処理はS11に戻る。他の通信制御装置10から要求パケットを受信した場合、他の通信制御装置10からVPNトンネルの確立が要求されていることになる(S13:YES)。CPU21は、要求に応じてVPNトンネルを確立するトンネル確立処理(図7参照)を実行する(S15)。トンネル確立処理の詳細は後述する。トンネル確立処理によってVPNトンネルが確立された後、CPU21は、第二メイン処理を起動する(S17)。第二メイン処理では、確立されたVPNトンネルを介して、他の通信制御装置10からVPNパケットが受信される。第二メイン処理が起動された後、第一メイン処理は終了する。
【0076】
図7を参照し、トンネル確立処理について説明する。CPU21は、Phase1の通信(図4参照)を開始する(S21)。Phase1の通信では、VPNトンネルを確立するために必要な設定条件が、他の通信制御装置10との間で交換される。外部機器からトンネル条件を直接受け付けている場合(S11:YES、図6参照)、CPU21は、図4における通信制御装置11の通信シーケンスに従ってPhase1の通信を行う。CPU21は、他の通信制御装置10に対して、複数のVPNトンネルの確立を要求する要求パケットを送信することによって、Phase1の通信を開始する。Phase1の通信では、設定画面28(図2参照)を介して受け付けたトンネル条件の数に1加算した数分のVPNトンネルの確立が要求される。一方、他の通信制御装置10から、複数のVPNトンネルの確立を要求する要求パケットを受信している場合(S13:YES、図6参照)、CPU21は、図4における通信制御装置12の通信シーケンスに従ってPhase1の通信を行う。
【0077】
複数のVPNトンネルの確立を要求する要求パケットを、他の通信制御装置10に対して送信している場合(S22:YES)、CPU21は、要求パケットに応じて他の通信制御装置10から受信した応答パケットのVendor IDに、応答情報が格納されているかを判断する(S23)。応答パケットのVendor IDに応答情報が格納されている場合(S23:YES)、他の通信制御装置10は、複数のVPNトンネルの確立を許可していることになる(S103、図4参照)。CPU21は、Phase1の通信に続いて行われるPhase2の通信において、複数のVPNトンネルを確立することになる(S24)。Phase2の通信を開始するために、処理はS29に進む。これに対し、応答パケットのVendor IDに応答情報が格納されていない場合(S23:NO)、他の通信制御装置10は、複数のVPNトンネルを確立させることができない状態であることになる(S103、図4参照)。この場合、CPU21は、Phase1の通信に続いて行われるPhase2の通信において、一のVPNトンネルを確立することになる(S25)。Phase2の通信を開始するために、処理はS29に進む。
【0078】
一方、複数のVPNトンネルの確立を要求する要求パケットを、他の通信制御装置10から受信している場合(S22:NO)、CPU21は、要求パケットに応じて応答パケットを送信する(S103、図4参照)。複数のVPNトンネルを確立させることが可能な場合、CPU21は、応答パケットのVendor IDに応答情報を格納する。複数のVPNトンネルを確立させることができない場合、CPU21は、応答パケットのVendor IDに応答情報を格納しない(S103、図4参照)。
【0079】
CPU21は、他の通信制御装置10に対して送信した応答パケットのVendor IDに応答情報を格納している場合(S26:YES)、Phase1の通信に続いて行われるPhase2の通信において、複数のVPNトンネルを確立することになる(S27)。Phase2の通信を開始するために、処理はS29に進む。これに対し、応答パケットのVendor IDに応答情報を格納していない場合(S26:NO)、CPU21は、Phase1の通信に続いて行われるPhase2の通信において、一のVPNトンネルを確立することになる(S28)。Phase2の通信を開始するために、処理はS29に進む。
【0080】
Phase1の通信(図4参照)の終了後、CPU21は、Phase2の通信(図4参照)を開始する(S29)。Phase2の通信によって、CPU21は、他の通信制御装置10との間に複数または一のVPNトンネルを確立する。CPU21は、複数のVPNトンネルを確立した場合、其々のVPNトンネルに対し、優先度1、2、3・・・をSPIに対応付ける。
【0081】
またCPU21は、他の通信制御装置10から応答パケットを受信している場合、VPN通信時に使用される優先度別キュー242(図5参照)をRAM23に設定する。CPU21は、複数の優先度別キュー242を設定した場合、VPNトンネルに割り当てたSPI(1、2、3・・・)と、SPIに対応付けた優先度を、其々の優先度別キュー242に対応付ける。優先度別キュー242にSPIおよび優先度が対応付けられたことになる。VPNトンネルが確立され、Phase2の通信が終了した場合、トンネル確立処理は終了し、処理は第一メイン処理(図6参照)に戻る。
【0082】
図8を参照し、第二メイン処理について説明する。CPU21は、(1)Phase1の通信において他の通信制御装置10に対して要求パケットを送信しており、且つ、(2)配下の通信端末13からパケットを受信したかを判断する。(1)(2)を満たす場合、CPU21は、通信端末13から受信したパケットのヘッダの情報のうち一部と一致するトンネル条件に対応付けられたVPNトンネルを使用することによって、VPNパケットを他の通信制御装置10に送信する必要があると判断する(S31:YES)。CPU21は、VPNトンネルを使用してVPNパケットを送信する処理(送信処理、図9参照)を実行する(S33)。送信処理の詳細は後述する。送信処理の終了後、処理はS35に進む。一方、CPU21は、S31において(1)〜(2)を満たさないと判断した場合、他の通信制御装置10に対してVPNパケットを送信する必要がないと判断する(S31:NO)。処理はS35に進む。
【0083】
次にCPU21は、(3)Phase2の通信において他の通信制御装置10に対して応答パケットを送信しており、且つ、(4)他の通信制御装置10からVPNトンネルを介してVPNパケットを受信したかを判断する(S35)。(3)(4)を満たす場合(S35:YES)、CPU21は、受信したVPNパケットを、RAM23に設定した優先度別キュー242(図5参照)に格納する処理(格納処理、図10参照)を実行する(S37)。格納処理の詳細は後述する。格納処理の終了後、処理はS39に進む。一方、CPU21は、S35において(3)(4)を満たさないと判断した場合(S35:NO)、処理はS39に進む。
【0084】
次にCPU21は、所定周期で実行する取り出し処理(S41、図11参照、後述)の実行タイミングが到来したかを判断する(S39)。取り出し処理の実行タイミングが到来した場合(S39:YES)、CPU21は取り出し処理を実行する(S41)。取り出し処理では、優先度別キュー242に格納されたVPNパケットを優先度順に取り出し、配下の通信端末13に対して送信するための処理が実行される。取り出し処理の詳細は後述する。取り出し処理の終了後、処理はS43に進む。一方CPU21は、S39において取り出し処理の実行タイミングが到来していないと判断した場合(S39:NO)、処理はS43に進む。
【0085】
CPU21は、VPN通信を終了させる入力操作が、配下の通信端末13に対して行われたかを判断する(S43)。VPN通信を終了させる入力操作が行われた場合(S43:YES)、CPU21は、VPN通信を終了させるためにVPNトンネルを切断し、第二メイン処理は終了する。一方CPU21は、VPN通信を終了させる入力操作が行われていない場合(S43:NO)、VPN通信を継続するために、処理はS31に戻る。
【0086】
図9を参照し、送信処理について説明する。CPU21は、RAM23(図1参照)に定義された変数Jに1を設定する(S51)。CPU21は、設定画面28(図2参照)を介して入力されたトンネル条件のうち、Jのインデックスのトンネル条件を参照する。CPU21は、配下の通信端末13から受信したパケットのヘッダの情報のうち一部が、参照したトンネル条件と一致するかを判断する(S53)。
【0087】
通信端末13から受信したパケットの条件が、参照したトンネル条件と一致する場合(S53:YES)、CPU21は、通信端末13から受信したパケットを暗号化することによって、暗号化データを作成する(S55)。CPU21は、優先度Jに対応するSPIを格納したESPヘッダを準備する。CPU21は、IPヘッダ、および、準備したESPヘッダを、暗号化データに付加することによって、VPNパケットを作成する(S57)。CPU21は、作成したVPNパケットを、他の通信制御装置10に対して送信する(S65)。優先度Jに対応するSPIが格納されているので、VPNパケットは、優先度Jに対応するSPIが示すVPNトンネルを使用して送信される。送信処理は終了し、処理は第二メイン処理(図8参照)に戻る。
【0088】
一方、S53で、通信端末13から受信したパケットの条件が、参照したトンネル条件と一致しない場合(S53:NO)、CPU21は、Jに1を加算して更新する(S59)。CPU21は、更新したJの値が、設定画面28(図2参照)を介して入力されたトンネル条件の総数よりも大きいかを判断する(S61)。Jの値が、入力されたトンネル条件の総数以下である場合(S61:NO)、処理はS53に戻る。これに対し、Jの値が、入力されたトンネル条件の総数よりも大きくなった場合(S61:YES)、CPU21は、暗号化データを作成する(S63)。優先度Jに対応するSPIが格納されたESPヘッダを準備し、IPヘッダと、準備したESPヘッダを暗号化データに付加したVPNパケットを作成する(S64)。CPU21は、作成したVPNパケットを、他の通信制御装置10に対して送信する(S65)。VPNパケットは、トンネル条件が対応付けられていないVPNトンネル、例えば、図3におけるVPNトンネル33を使用して送信される。送信処理は終了し、処理は第二メイン処理に戻る。
【0089】
図10を参照し、格納処理について説明する。他の通信制御装置10から受信したパケットは、OSの処理によってRAM23の受信キュー241に順次格納されている(S131、図5参照)。またOSの処理によって、受信キュー241からパケットが取り出され、VPNパケットが抽出されている(S133、図5参照)。CPU21は、抽出されたVPNパケットのESPヘッダを参照し、SPIを特定する(S71)。CPU21は、特定したSPIに対応する優先度別キュー242を特定する(S71)。CPU21は、特定した優先度別キュー242に空きがあるかを判断する(S73)。CPU21は、特定した優先度別キュー242に空きがある場合(S73:YES)、優先度別キュー242の末尾に、VPNパケットを格納する(S75)。格納処理は終了し、処理は第二メイン処理(図8参照)に戻る。一方、特定した優先度別キュー242に空きがない場合(S73:NO)、優先度別キュー242にこれ以上VPNパケットを格納することができないので、CPU21は、VPNパケットを破棄する(S77)。格納処理は終了し、処理は第二メイン処理(図8参照)に戻る。
【0090】
優先度別キュー242に空きがない場合、優先度別キュー242に空きが確保されるまで待機すると、VPNデータの処理が滞り、通信遅延が大きくなる可能性がある。これに対してCPU21は、優先度別キュー242の空きがない場合にVPNパケットを破棄することによって、通信遅延が大きくなることを抑止している。なお後述するように、VPNパケットは優先度の高い順で優先度別キュー242から取り出されるため、優先度の高い優先度別キュー242の空きは確保され易くなっている。このため、優先度の高いVPNパケットが破棄される可能性は低い。
【0091】
図11を参照し、取り出し処理について説明する。CPU21は、RAM23(図1参照)に定義された変数Iに1を設定する(S81)。CPU21は、優先度別キュー242のうち、優先度Iの値が対応付けられた優先度別キュー242を参照する(S83)。CPU21は、参照した優先度別キュー242にVPNパケットが格納されているかを判断する(S85)。参照した優先度別キュー242にVPNパケットが格納されている場合(S85:YES)、CPU21は、優先度別キュー242に格納されているVPNパケットを取り出す(S87)。CPU21は、取り出したVPNパケットから暗号化データを抽出し、暗号化データを復号する(S89)。CPU21は、復号したパケットを、配下の通信端末13に対して送信する(S91)。取り出し処理は終了し、処理は第二メイン処理(図8参照)に戻る。これによって、優先度の高い優先度別キュー242から順にVPNパケットが取り出され、復号の後、通信端末13に送信されることになる。
【0092】
一方、参照した優先度別キュー242にVPNパケットが格納されていない場合(S85:NO)、CPU21は、Iに1を加算し更新する(S93)。CPU21は、更新したIの値が、優先度別キュー242の総数よりも大きいかを判断する(S95)。Iの値が優先度別キュー242の総数以下である場合(S95:NO)、処理はS83に戻る。一方、Iの値が、優先度別キュー242の総数よりも大きくなった場合(S95:YES)、取り出し処理は終了し、処理は第二メイン処理(図8参照)に戻る。
【0093】
以上説明したように、通信制御装置10は、他の通信制御装置10との間に確立した複数のVPNトンネルに対応付けたSPIによって、VPNトンネルの優先度を設定する。通信制御装置10は、VPNパケットに応じてVPNトンネルを使い分けることによって、優先制御を行う。ここで、通信制御装置10が受信したVPNパケットを、使用されたVPNトンネル毎に分類するために参照するSPIは暗号化されない。このため通信制御装置10は、VPNパケットを通信端末13に対して転送する際、SPIを参照するためにVPNパケットを復号する必要がない。従って通信制御装置10は、SPIに応じた優先制御を迅速に行い、通信端末13間の通信制御を行うことができる。例えば、通信遅延により情報が劣化し易い音声や映像等のデータを含むパケットについては、高い優先度のVPNトンネルが使用されるようにSPIを設定し、VPNパケットを送信するとよい。これによって、通信端末13間の通信のリアルタイム性を高めることができる。
【0094】
なお通信制御装置10は、VPNパケットを受信する場合に使用される優先度別キュー242を、確立されるVPNトンネルの数に応じてRAM23に設定することができる。このため通信制御装置10は、予め多くの優先度別キュー242をRAM23に設定しておく必要が無いので、容量の小さいRAM23を使用することができる。これによって、通信制御装置10のコストを抑制することができる。
【0095】
なお、S15において、複数のVPNトンネルを確立する処理を行うCPU21が本発明の「第一確立処理」に相当する。S57、S63の処理を行うCPU21が本発明の「付加手段」に相当する。S65の処理を行うCPU21が本発明の「第一送信手段」に相当する。S35の処理を行うCPU21が本発明の「受信手段」に相当する。S91の処理を行うCPU21が本発明の「第二送信手段」に相当する。RAM23が本発明の「記憶手段」に相当する。優先度別キュー242が本発明の「データ領域」に相当する。S75の処理を行うCPU21が本発明の「格納手段」に相当する。S77の処理を行うCPU21が本発明の「消去手段」に相当する。S21において、他の通信制御装置10に対して要求パケットを送信する処理を行うCPU21が本発明の「要求手段」に相当する。S21において、他の通信制御装置10に対して応答パケットを送信する処理を行うCPU21が本発明の「応答手段」に相当する。S15において、一のVPNトンネルを確立する処理を行うCPU21が本発明の「第二確立手段」に相当する。S29において、他の通信制御装置10に対して、VPNトンネルの総数を通知する処理を行うCPU21が本発明の「通知手段」に相当する。S29において、優先度別キュー242を設定する処理を行うCPU21が本発明の「設定手段」に相当する。SPIに格納される情報が、本発明の「経路情報」に相当する。S15において、複数のVPNトンネルを確立する処理が本発明の「第一確立ステップ」に相当する。S57、S63の処理が本発明の「付加ステップ」に相当する。S65の処理が本発明の「第一送信ステップ」に相当する。S35の処理が本発明の「受信ステップ」に相当する。S91の処理が本発明の「第二送信ステップ」に相当する。
【0096】
なお本発明は、上述の実施形態に限定されず、種々の変更が可能である。上述において、受信したVPNパケットを格納する優先度別キュー242をRAM23に設定する代わりに、VPNパケットを記憶する共通の受信バッファをRAM23に設定してもよい。CPU21は、受信したVPNパケットを、受信した順で受信バッファに格納しても良い。受信バッファから優先度別にVPNパケットを取り出す場合、CPU21は、其々のVPNパケットのSPIを参照し、SPIに対応する優先度の高い順にVPNパケットを取り出して通信端末13に送信してもよい。上述において、優先度別キュー242に空きが無い場合にVPNパケットを破棄していたが、CPU21は、VPNパケットを破棄せず、RAM23の専用領域に、VPNパケットを一時的に記憶してもよい。CPU21は、優先度別キュー242に空きができた時点で、一時的に記憶したVPNパケットを優先度別キュー242に格納してもよい。
【0097】
上述において、CPU21は、要求パケットのVendor IDに要求情報を格納する代わりに、確立を要求するVPNトンネルの総数を格納してもよい。CPU21は、応答パケットのVendor IDに応答情報を格納する代わりに、確立させることが可能なVPNトンネルの総数を格納してもよい。上述において、CPU21は、他の通信制御装置10から受信したVPNパケットを配下の通信端末13に送信する場合、暗号化データを復号せず、暗号化された状態で送信してもよい。
【0098】
上述では、配下の通信端末13から受信したパケットのヘッダの情報に応じて、VPNパケットを送信する場合に使用するVPNトンネルが決定されていた。CPU21は、配下の通信端末13から送信されたパケットの種別(映像パケット、音声パケット等)に応じて優先度を定めてもよい。CPU21は、定めた優先度に対応するSPIが割り当てられたVPNトンネルを使用して、VPNパケットを他の通信制御装置10に対して送信してもよい。または、配下の通信端末13から送信されたパケットに、優先度を示す情報が予め格納されていてもよい。通信制御装置10は、格納されている優先度に対応するSPIが割り当てられたVPNトンネルを使用して、VPNパケットを他の通信制御装置10に対して送信してもよい。
【0099】
上述では、優先度別キュー242に対応付けられた優先度の高い順で、優先度別キュー242が参照され、VPNパケットが取り出されていた。これに対してCPU21は、其々の優先度別キュー242に重み付けを行うことによって、優先度の低い優先度別キュー242からも、一定の割合でVPNパケットを取り出すように制御してもよい。
【符号の説明】
【0100】
10、11、12 通信制御装置
13、14、15 通信端末
16 インターネット網
17、18、19、30、31、32、33 VPNトンネル
24 フラッシュメモリ
61 VPNパケット
242 優先度別キュー

【特許請求の範囲】
【請求項1】
通信端末間に介在し、他の通信制御装置との間に構築した仮想プライベートネットワーク(Virtual Private Network、VPN)を介して通信を行うことによって前記通信端末間の通信を制御する通信制御装置であって、
複数のVPNトンネルを、前記他の通信制御装置との間で確立する第一確立手段と、
配下の前記通信端末から受信したデータを暗号化した暗号化データに、前記複数のVPNトンネルのうち、前記暗号化データが通過する一のVPNトンネルを示す経路情報を付加する付加手段と、
前記付加手段によって付加された前記経路情報に対応する前記一のVPNトンネルを使用し、前記他の通信制御装置に対して前記暗号化データを送信する第一送信手段と、
前記他の通信制御装置から送信された前記暗号化データを受信する受信手段と、
前記受信手段によって受信された前記暗号化データを、前記暗号化データに付加された前記経路情報によって示される優先度に従って、配下の前記通信端末に送信する第二送信手段と
を備えたことを特徴とする通信制御装置。
【請求項2】
記憶手段の記憶領域であって前記経路情報毎に設けられた複数のデータ領域のうち、前記受信手段によって受信された前記暗号化データに付加された前記経路情報に対応するデータ領域に、前記受信手段によって受信された前記暗号化データを格納する格納手段を備え、
前記第二送信手段は、
前記格納手段によって前記データ領域に格納された前記暗号化データを、前記経路情報によって示される前記優先度の高い前記データ領域に格納された前記暗号化データから優先的に選択し、配下の前記通信端末に送信することを特徴とする請求項1に記載の通信制御装置。
【請求項3】
前記格納手段によって前記データ領域に格納する前記暗号化データの容量が、前記データ領域にて格納可能な残容量を超えている場合、前記暗号化データを前記データ領域に格納せず消去する消去手段を備えたことを特徴とする請求項2に記載の通信制御装置。
【請求項4】
前記複数のVPNトンネルの確立を要求することを示す情報を、要求データのヘッダに付加し、前記要求データを前記他の通信制御装置に対して送信する要求手段と、
前記他の通信制御装置から前記要求データを受信した場合に、前記要求データに応じて、前記複数のVPNトンネルの確立を許可することを示す情報を、応答データのヘッダに付加し、前記応答データを前記他の通信制御装置に対して送信する応答手段と
を備え、
前記第一確立手段は、
前記応答手段によって前記他の通信制御装置に対して前記応答データを送信するか、または、前記要求手段による要求に応じて前記他の通信制御装置から前記応答データを受信した場合に、前記他の通信制御装置との間で前記複数のVPNトンネルを確立することを特徴とする請求項1から3のいずれかに記載の通信制御装置。
【請求項5】
受信した前記応答データに、前記複数のVPNトンネルの確立を許可することを示す情報が付加されていない場合に、単一のVPNトンネルを確立する第二確立手段を備えたことを特徴とする請求項4に記載の通信制御装置。
【請求項6】
前記第一確立手段によって確立する前記複数のVPNトンネルの数を、前記他の通信制御装置に対して通知する通知手段と、
前記他の通信制御装置から、前記複数のVPNトンネルの数が通知された場合に、通知された数分の前記データ領域を前記記憶手段に設定する設定手段と
を備えたことを特徴とする請求項2または3に記載の通信制御装置。
【請求項7】
前記暗号化データを復号する復号手段を備え、
前記第二送信手段は、前記受信手段によって受信された前記暗号化データを復号し、配下の前記通信端末に送信することを特徴とする請求項1から6のいずれかに記載の通信制御装置。
【請求項8】
前記VPNトンネルには、所定のヘッダ情報が対応付けられ、
前記第一送信手段は、
配下の前記通信端末から受信したデータのヘッダ情報のうちいずれかが、前記所定のヘッダ情報として対応付けられている前記VPNトンネルを使用し、前記暗号化データを送信することを特徴とする請求項1から7のいずれかに記載の通信制御装置。
【請求項9】
通信制御装置と他の前記通信制御装置との間で、複数の仮想プライベートネットワーク(Virtual Private Network、VPN)トンネルを確立する第一確立ステップと、
前記通信制御装置が配下の通信端末から受信したデータを暗号化した暗号化データに、前記複数のVPNトンネルのうち前記暗号化データが通過する一のVPNトンネルを示す経路情報を付加する付加ステップと、
前記付加ステップによって付加された前記経路情報に対応する前記一のVPNトンネルを使用し、前記通信制御装置が前記他の通信制御装置に対して前記暗号化データを送信する第一送信ステップと、
前記他の通信制御装置から前記通信制御装置に対して送信された前記暗号化データを受信する受信ステップと、
前記受信ステップによって受信された前記暗号化データを、前記暗号化データに付加された前記経路情報によって示される優先度に従って、前記通信制御装置の配下の前記通信端末に送信する第二送信ステップと
を備えたことを特徴とする通信制御方法。
【請求項10】
他の通信制御装置との間で、複数の仮想プライベートネットワーク(Virtual Private Network、VPN)トンネルを確立する第一確立ステップと、
配下の通信端末から受信したデータを暗号化した暗号化データに、前記複数のVPNトンネルのうち前記暗号化データが通過する一のVPNトンネルを示す経路情報を付加する付加ステップと、
前記付加ステップによって付加された前記経路情報に対応する前記一のVPNトンネルを使用し、前記他の通信制御装置に対して前記暗号化データを送信する第一送信ステップと、
前記他の通信制御装置から送信された前記暗号化データを受信する受信ステップと、
前記受信ステップによって受信された前記暗号化データを、前記暗号化データに付加された前記経路情報によって示される優先度に従って、配下の前記通信端末に送信する第二送信ステップと
を前記通信制御装置のコンピュータに実行させるための通信制御プログラム。

【図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

【図11】
image rotate