次に、図面を参照して本発明の実施の形態を説明する。初めに、図1を参照して、本実施形態の中継通信システム100の概要について説明する。図1は、本実施形態に係る中継通信システム100の全体構成を示す説明図である。
図1に示すように、この中継通信システム100は、Wide Area Network(WAN、広域通信網)80に接続された複数のLAN10,20,30で構成されている。それぞれのLAN10,20,30は、限定された場所で構築される比較的小規模なネットワークである。また、LAN10,20,30は、それぞれが物理的に離れた場所に配置されている。なお、本実施形態ではWAN80としてインターネットが使用されている。
以下、それぞれのLANを具体的に説明する。図1に示すように、LAN(第2LAN)10には、中継サーバ(第2中継サーバ)1と、第2ルーティング対象装置としての操作PC11,12と、クライアント端末13と、が接続されている。LAN20には、中継サーバ2と、操作PC21と、クライアント端末22と、が接続されている。LAN(第1LAN)30には、中継サーバ(第1中継サーバ)3と、第1ルーティング対象装置としての対象端末31,32,33と、クライアント端末34と、が接続されている。
それぞれの中継サーバ1,2,3は、LAN10,20,30だけでなくWAN80にも接続されているため、同一のLANに接続された機器と通信可能であるだけでなく、他のLANに配置された中継サーバとも通信可能となっている。操作PC11,12,21は、例えばオペレータが操作するためのパーソナルコンピュータである。対象端末31,32,33は、パーソナルコンピュータ、又は、ファイルサーバ等であり、例えばオペレータは、操作PC11等を操作して、対象端末31等に所定のデータを要求すること、及び、対象端末31の記憶内容を更新することが想定されている。クライアント端末13,22,34は、例えばパーソナルコンピュータで構成されており、それぞれ自身が所属する中継サーバ1,2,3を介して、互いに通信可能である。
次に、図2を参照して、中継サーバ1,2,3の詳細な構成について説明する。図2は、中継サーバ3の機能ブロック図である。なお、中継サーバ3は中継サーバ1,2と略同じ構成であるので、以下では、主として中継サーバ3について説明する。
図2に示すように、中継サーバ3は、記憶部50と、制御部60と、インタフェース部70と、を備えている。
インタフェース部70は、LAN10内の端末に対して通信を実行する。また、インタフェース部70は、WAN80に対して通信を実行する。インタフェース部70は、LAN30又はWAN80から受信したパケットに適宜の処理を行って制御部60へ出力する。
制御部60は、例えば制御及び演算の機能を有するCPUであり、記憶部50から読み出したプログラムにより各種の処理を実行可能である。この制御部60は、TCP/IP、UDP、SIP等のプロトコルに従った様々な通信を制御することができる。具体的には、制御部60は、受信したパケットについて、当該パケットが示す情報と記憶部50に記憶された情報とに基づいて宛先を決定し、決定した宛先へ当該パケットを送信する。また、制御部60は、他の端末から受信した情報に基づいて、記憶部50の記憶内容を更新することができる。
記憶部50は、例えばハードディスク又は不揮発性RAMで構成されており、各種データを保存可能である。記憶部50は、中継グループ情報記憶部51と、中継サーバ情報記憶部52と、クライアント端末情報記憶部53と、VPNグループ情報記憶部54と、アドレスフィルタ情報記憶部55と、仮想アドレス登録情報記憶部56と、仮想アドレス割当情報記憶部57と、仮想アドレス通信可否情報記憶部58と、指定アプリケーションリスト記憶部59と、を備えている。以下、図3から図12までを参照して、記憶部50の記憶内容について説明する。図3から図12までは、主として、中継サーバ3の記憶部50の記憶内容を示す図である。
中継グループ情報記憶部51は、中継グループと、当該中継グループを構成する中継サーバと、を示した中継グループ情報を記憶している。
図3に示すように、中継グループ情報においては、groupタグと、このgroupタグを親要素とする子要素のsiteタグと、が記述されている。groupタグには中継グループに関するグループ情報511が記述されている。このグループ情報511としては、中継グループの識別情報(「id」)と、最終更新時刻(「lastmod」)と、中継グループの名称(「name」)と、が記述されている。siteタグには、中継グループを構成する中継サーバに関するグループ構成情報512が記述されている。このグループ構成情報512には、当該中継サーバの識別情報(「id」)が記述されている。また、中継グループは追加作成が可能であり、その場合、新しい中継グループには、他の中継グループと異なる一意の識別情報が付与される。これにより、特定の中継グループ内だけでデータのやり取りを行う等の設定が可能になっている。
なお、この中継グループ情報は、当該中継グループを構成する中継サーバ1,2,3の間で共有されている。そして、ある中継サーバにおいて中継グループを変更する処理が行われた場合は、他の中継サーバに対してその旨が送信されて中継グループ情報が更新される。このようにして、中継グループ情報が動的に共有される。
中継サーバ情報記憶部52は、中継通信を行う中継サーバ及び当該中継サーバに所属するクライアント端末の概要を示す中継サーバ情報を記憶している。
図4に示す中継サーバ情報においては、中継サーバ毎に記述されるsiteタグと、前記siteタグを親要素とする子要素のnodeタグと、が記述されている。siteタグには中継サーバ1に関するサーバ情報521が記述されている。このサーバ情報521としては、中継サーバの識別情報(「id」)と、中継サーバの名称(「name」)と、起動情報(「stat」)と、が記述されている。なお、「stat」の内容が「active」の場合は中継サーバが中継通信システム100にログインしていることを示し、statが空欄であるときはログオフ中であることを示す。siteタグの子要素であるnodeタグには、中継サーバに所属するクライアント端末を示す所属情報522が記述されている。所属情報522としては、所属する中継グループの名称(「group」)と、クライアント端末の識別情報(「id」)と、クライアント端末の名称(「name」)と、所属先の中継サーバの識別情報(「site」)と、が記述されている。クライアント端末が中継通信システム100にログインしていないときは、「site」は空欄となる。
なお、中継グループによる通信は、上記の中継グループ情報及び中継サーバ情報に基づいて、以下のようにして行われる。例えばクライアント端末13からクライアント端末22にパケットを送信する場合、初めに、クライアント端末13は、自身が接続している中継サーバである中継サーバ1にパケットを送信する。なお、パケットのやり取りが可能な中継サーバは上記の中継グループ情報に基づいて把握することができ、中継サーバに所属しているクライアント端末の識別情報及び接続の可否は上記の中継サーバ情報に基づいて把握することができる。中継サーバ1は、これらの情報に基づいて、クライアント端末22が接続している中継サーバである中継サーバ2へパケットを転送する。そして、このパケットを受信した中継サーバ2がクライアント端末22へパケットを転送する。このようにして、クライアント端末13,22同士で中継通信を行うことができる。
この中継サーバ情報に関しても中継グループ情報と同様に、当該中継グループを構成する中継サーバ1,2,3の間で情報が共有されている。そして、ある中継サーバにおいて中継サーバ情報を変更する処理が行われた場合は、他の中継サーバに対してその旨が送信されて中継サーバ情報が更新される。このようにして、中継サーバ情報が動的に共有される。
クライアント端末情報記憶部53は、クライアント端末に関する詳細な情報であるクライアント端末情報を記憶している。なお、中継サーバ1,2,3は、自身に所属するクライアント端末に関するクライアント端末情報のみを記憶している。中継サーバ3には、クライアント端末34が所属しているため、中継サーバ3が備えるクライアント端末情報記憶部53には、クライアント端末34についてのクライアント端末情報のみが記憶されている。
中継サーバ3のクライアント端末情報記憶部53が記憶するクライアント端末情報は、図5(c)に示されている。同様に、中継サーバ1が記憶するクライアント端末情報が図5(a)に、中継サーバ2が記憶するクライアント端末情報が図5(b)に、それぞれ示されている。
図5に示すクライアント端末情報においては、nodeタグが記述されている。このnodeタグには、クライアント端末のプライベートIPアドレス(「addr」)と、所属する中継グループの名称(「group」)と、識別情報(「id」)と、名称(「name」)と、中継サーバにログインするためのパスワード(「pass」)と、ポート情報(「port」)と、が記述されている。
VPNグループ情報記憶部54は、中継グループを構成する中継サーバ及びクライアント端末からルーティングポイントとして選択された機器(以下、ルーティング機器と称する)で構成されたVPNグループに関する情報であるVPNグループ情報を記憶している。同一のVPNグループに所属するルーティング機器同士でルーティングセッションを確立させることにより、VPNを利用した通信を開始することができる。
図6に示すVPNグループ情報においては、vnetタグが記述されている。このvnetタグには、VPNグループ基本情報541と、ルーティングポイント情報542と、ルーティングセッション情報543と、が記述されている。VPNグループ基本情報541には、VPNグループが所属する中継グループの名称(「group」)と、VPNグループの識別情報(「id」)と、最終更新時刻(「lastmod」)と、VPNグループの名称(「name」)と、が記述されている。ルーティングポイント情報542には、VPNグループ間で通信を行うときにルーティングを行うルーティング機器の識別情報が記述されている。図6の例においては、ルーティング機器として、中継サーバ1と、中継サーバ3と、が記述されている。ルーティングセッション情報543には、VPNグループにおいて互いに接続されるルーティング機器が記述されている。ルーティングセッション情報543において、ルーティング機器は、VPNグループでVPNを構築して通信を開始するためのルーティングセッション確立処理において、通信制御を最初に行う側(「sp(start point)」)と、その通信制御を受ける側「ep(end point)」と、に分けて定められている。なお、以下の説明では、ルーティングセッション確立のための通信制御を最初に行う側のルーティング機器を「始点」と、その通信制御を受ける側のルーティング機器を「終点」と、それぞれ称することがある。
図6に示すVPNグループ情報からは、VPNグループ(VPN−GROUP1)が、中継サーバ1と中継サーバ3とで構成されることが分かる。また、このVPNグループの開始時には、中継サーバ3から中継サーバ1へルーティングセッションを確立するための通信制御が行われることが分かる。
このVPNグループ情報も中継サーバ情報及び中継グループ情報と同様に、同じVPNグループに所属する中継サーバ1,3の間で共有されている。そして、ある中継サーバにおいてVPNグループ情報を変更する処理が行われた場合は、同じVPNグループに所属する他の中継サーバに対してその旨が送信されてVPNグループ情報が更新される。このようにして、VPNグループ情報が動的に共有される。なお、このVPNグループを作成する処理については後述する。
アドレスフィルタ情報記憶部55は、VPNを利用したルーティング制御を行う際に用いられる情報であるアドレスフィルタ情報を記憶する。アドレスフィルタ情報記憶部55は、VPNの構築前においては、中継サーバ3自身がパケットを直接的に送信可能な装置(ルーティング対象装置)を示す情報(中継サーバ3のアドレスフィルタ情報)を記憶する。なお、アドレスフィルタ情報には、ルーティング対象装置のアドレス(ルーティング対象アドレス)と、ルーティング対象装置の名称と、が含まれる。
図7(c)には、中継サーバ3自身に予め登録されたアドレスフィルタ情報の例が示されている。この例では、中継サーバ3がパケットを直接的に送信可能な機器が対象端末31,32,33であることが記述されている。なお、図7(a)には、中継サーバ1に予め登録されたアドレスフィルタ情報が示され、図7(b)には、中継サーバ2に予め登録されたアドレスフィルタ情報が示されている。
上述のように、中継サーバ3のアドレスフィルタ情報記憶部55は、VPNを構築する前においては、図7(c)に示すアドレスフィルタ情報のみを記憶する。そして、中継サーバ3は、例えば中継サーバ1とルーティングセッションを確立させるときに、自身に予め登録されたアドレスフィルタ情報(図7(c))を中継サーバ1へ送信するとともに、中継サーバ1からアドレスフィルタ情報(図7(a))を受信する。そして、中継サーバ3は、中継サーバ1のアドレスフィルタ情報を当該中継サーバ1の識別情報と対応付けてアドレスフィルタ情報記憶部55に記憶する。
これにより、中継サーバ3のアドレスフィルタ情報記憶部55には、図9(a)に示す内容が記憶されることになる。同様に、中継サーバ1のアドレスフィルタ情報記憶部55にも、図8(a)に示す内容(図9(a)と同内容)が記憶される。そして、中継サーバ1,3は、この取得したアドレスに基づいて、ルーティング制御を行う(詳細な制御については後述)。なお、以下では、中継サーバ3のアドレスフィルタ情報に含まれるルーティング対象アドレス(対象端末31,32,33のアドレス)を第1ルーティング対象アドレスと称し、中継サーバ1のアドレスフィルタ情報に含まれるルーティング対象アドレス(操作PC11,12のアドレス)を第2ルーティング対象アドレスと称することがある。
本実施形態では、第1ルーティング対象アドレスと第2ルーティング対象アドレスとの間に重複がある場合、中継サーバ3と対象端末31,32,33との間の通信では、操作PC11,12の実際のアドレスを用いずに、仮想アドレスを用いて通信を行うことができる。仮想アドレスとしては、LAN30内で重複しないアドレス(LAN30内の機器に割り当てられておらず、かつその予約もされていないアドレス)が予め登録されて、中継サーバ3の仮想アドレス登録情報記憶部56に記憶されている。本実施形態では、図10(b)に示すアドレスが仮想アドレスとして登録されている。
同様に、第1ルーティング対象アドレスと第2ルーティング対象アドレスとの間に重複がある場合、中継サーバ1と操作PC11,12との間の通信では、対象端末31,32,33の実際のアドレスを用いずに、仮想アドレスを用いて通信を行うことができる。この仮想アドレスとしては、上記と同様に、LAN10内で重複しないアドレスが予め登録されて、中継サーバ1の仮想アドレス登録情報記憶部56に記憶されている。本実施形態では、図10(a)に示すアドレスが仮想アドレスとして登録されている。
そして、中継サーバ3は、上記のようにアドレスフィルタ情報を交換して第2ルーティング対象アドレスを取得して、ルーティング対象アドレス間に重複があることを検出した場合、第2ルーティング対象アドレス(実際のアドレス)に対して前記仮想アドレスを割り当てる。仮想アドレス割当情報記憶部57は、図9(b)に示すように、第2ルーティング対象アドレスと、仮想アドレスと、の割当関係を記憶する。同様に、中継サーバ1の仮想アドレス割当情報記憶部57は、図8(b)に示すように、第1ルーティング対象アドレスと、仮想アドレスと、の割当関係を記憶する。
また、本実施形態では、上記仮想アドレスを利用した通信を許可するか禁止するかをユーザが設定することができる。ユーザが登録した内容(設定内容)は、仮想アドレス通信可否情報記憶部58に記憶される。仮想アドレス通信可否情報記憶部58には、図11に示すように、仮想アドレスを利用した通信を許可するか禁止するかが記憶されている。
指定アプリケーションリスト記憶部59は、図12に示すように、仮想アドレスを利用した場合に正常に機能しないアプリケーションのリストを記憶する。この種のアプリケーションとしては、上述のように、ファイル共有を行う一部のアプリケーション、FTPによる通信を利用する一部のアプリケーション、及びIPアドレスに基づいてIDを生成する一部のアプリケーション等が存在する。
指定アプリケーションリスト記憶部59には、対象端末31,32,33等にプリインストールされているアプリケーションのうち、該当するアプリケーションが予め登録されている。なお、ユーザは、対象端末31,32,33等にこの種のアプリケーションを新たにインストールした場合に、当該アプリケーションを指定アプリケーションリスト記憶部59に登録することができる。また、ユーザは、指定アプリケーションリスト記憶部59に登録されたアプリケーションのうち1つ又は複数を指定して、リストから削除することができる。以上により、指定アプリケーションリスト記憶部59の内容(リスト)をユーザが編集することができる。以下では、指定アプリケーションリスト記憶部59に登録されたアプリケーションを指定アプリケーションと称することがある。
次に、VPNを利用した通信を行うための準備について説明する。初めに、図13を参照して中継サーバに予め行う設定について説明し、次に、図14を参照してVPNグループを作成するときの流れについて説明する。図13は、予め中継サーバに行う設定を示すフローチャートである。図14は、VPNグループを作成する処理を示すフローチャートである。以下では、中継サーバ3を例に挙げて、中継サーバ3に対して行う設定及び中継サーバ3が実行する処理について説明するが、中継サーバ1,2にも同様の設定が行われるとともに、同様の処理を実行可能である。
中継サーバ3に予め行う設定としては、当該中継サーバ3のアドレスフィルタ情報の登録(S101)がある。この登録は、中継通信システム100を利用するユーザが、ルーティング対象装置として指定する機器等のアドレス(第1ルーティング対象アドレス)と、名称と、を所定の方法で入力することにより行う。ここでは、ユーザは、対象端末31,32,33のアドレス及び名称を入力したものとする。ここで登録されたアドレスフィルタ情報は、アドレスフィルタ情報記憶部55に記憶される。
次に、仮想アドレスを用いた通信を行う場合は、ユーザは、中継サーバ3が接続するLAN30内で重複しないアドレスを仮想アドレスとして登録する(S102)。ここで登録された仮想アドレスは、仮想アドレス登録情報記憶部56に記憶される。
以下、VPNグループを作成するときの流れについて説明する。ユーザは、初めに、クライアント端末13,22,34等を操作することによって、VPNグループの設定画面を表示させることができる。ここでは、クライアント端末34を用いて設定を行う場合について説明する。クライアント端末34に表示させた設定画面には、当該クライアント端末34が属する複数の中継グループが表示される。ユーザは、この複数の中継グループから、VPNグループを構築したい中継グループを選択する(S201)。
中継グループが選択されると、クライアント端末34の画面には、選択した中継グループに属し、かつルーティングポイントとして機能可能な中継サーバ及びクライアント端末の識別情報の一覧が表示される(S202)。そして、ユーザは、構築するVPNグループにおいてルーティングポイントとして機能させる中継サーバ及びクライアント端末を選択する(S203)。今回の説明では、中継サーバ1と、中継サーバ3と、がユーザに選択されたものとする。
そして、選択された中継サーバの識別情報に基づいて、ルーティングポイントの識別情報及び前記ルーティングセッション情報が作成される(S204)。そして、これらの情報にVPNグループの識別情報等を付加することにより、図6で示したVPNグループ情報が作成される。クライアント端末34は、このVPNグループ情報を、同じVPNグループに所属する中継サーバ1,3へ送信する(S205)。そして、中継サーバ1,3は、受信したVPNグループ情報をVPNグループ情報記憶部54に記憶する。以上により、VPNグループの構築処理が完了する。
次に、構築したVPNグループでVPNを利用した通信を開始するまでの流れについて、図15から図17を参照して説明する。図16及び図17は、VPNを利用した通信を開始するまでに行う処理を示すフローチャートである。
ユーザは、クライアント端末13等又は操作PC11等を操作することによって、構築したVPNグループを画面に表示させることができる。そして、表示されたVPNグループから適当なVPNグループを選択することにより(S301)、VPNを構築するための処理を行わせることができる。今回の説明では、上記で作成したVPNグループ(中継サーバ1,3で構成されるVPNグループ)の開始処理を中継サーバ3が行う例を説明する。
次に、中継サーバ3は、仮想アドレスを利用した通信の許可又は禁止の指示を受け付ける(S302、受付処理)。具体的には、中継サーバ3は、図15(a)に示すボックス(ダイアログ)をクライアント端末34のディスプレイ等に表示する。図15(a)には、指定アプリケーションリスト記憶部59に登録された指定アプリケーションの一覧と、当該アプリケーションを利用する可能性の有無を尋ねる質問と、質問の回答としてユーザに選択させる「はい」「いいえ」のボタンと、が表示されている。そして、中継サーバ3は、ユーザから「はい」の選択を受け付けると、仮想アドレスを利用した通信を禁止する指示が行われたと判断して、仮想アドレス通信可否情報記憶部58に「禁止」と登録する。一方、中継サーバ3は、ユーザから「いいえ」の選択を受け付けると、仮想アドレスを利用した通信を許可する指示が行われたと判断して、仮想アドレス通信可否情報記憶部58に「許可」と登録する。
このように、本実施形態では、仮想アドレスを利用した通信の許可又は禁止を直接的にユーザに選択させるのではなく、指定アプリケーションを利用する可能性の有無をユーザに選択させる。従って、仮に仮想アドレスを利用した通信についてユーザの知識が十分でない場合であっても、ユーザ自身の利用形態に応じた適切な設定を行うことができる。また、上述のように、指定アプリケーションは、ユーザによって追加及び削除が可能である。従って、仮想アドレスの利用時に機能が制限されるアプリケーションをユーザが新たにインストールした場合にも対応することができる。また、ユーザが殆ど利用しないこの種のアプリケーションを指定アプリケーションから除外することで、指定アプリケーションのリストが繁雑になることを防止できる。従って、中継サーバ3は、ユーザにとって必要なアプリケーションのみを提示して選択を行わせることができる。
次に、中継サーバ3は、自身に対応付けられたアドレスフィルタ情報を読み出す(S303)。ここで読み出される情報は、S101で登録された内容(図7(c)に示す内容)である。
そして、中継サーバ3は、S301で選択されたVPNグループに属するルーティングポイントの読出しを行う(S304)。これにより、図6に示すVPNグループ情報の内容に基づいて、中継サーバ1が読み出される。
中継サーバ3は、中継サーバ情報に基づいて、初めに、中継サーバ1がログイン中か否か(「stat」がactiveか空欄か)を判断する(S305)。図4に示す中継サーバ情報によれば中継サーバ1はログイン中であるため、中継サーバ3は、中継サーバ1へVPNグループの識別情報とともに、VPNグループの開始コマンドを送信する(S306)。
中継サーバ3は、この開始コマンドに対する中継サーバ1からの応答を受けると(S307)、中継サーバ1を、VPNを構築する準備が完了したルーティングポイントとして登録する(S308)。
次に、中継サーバ3は、同じVPNグループに所属する他の機器が有るか否かの判断を行う(S309)。現在作成中のVPNグループは、中継サーバ1と中継サーバ3のみで構成されるため、他の機器は存在しない。なお、仮に他の機器が存在していた場合は、中継サーバ3は、今度は当該機器を対象としてS305〜S308の処理を行う。
次に、中継サーバ3は、VPNグループ情報記憶部54の記憶内容からルーティングセッション情報を抽出する(図17のS310)。そして、中継サーバ3は、抽出したルーティングセッション情報を参照して、自身が始点となるルーティングセッションが記述されているか否かを判断する(S311)。図6のルーティングセッション情報においては、中継サーバ1と中継サーバ3との間で確立されるべきルーティングセッションにおいて、自身(中継サーバ3)が始点となることが記述されている。
そのため、中継サーバ3は、中継サーバ1に対して所定の通信制御を行ってルーティングセッションを確立する(S312)。なお、この通信制御を行う際に、前述のように、アドレスフィルタ情報が交換される(S313)。これにより、中継サーバ3のアドレスフィルタ情報記憶部55には、図9(a)に示す内容が記憶される。同様に、中継サーバ1のアドレスフィルタ情報記憶部55には、図8(a)に示す内容が記憶される。
次に、中継サーバ3は、アドレスフィルタ情報記憶部55の記憶内容に基づいて、アドレスフィルタ情報のルーティング対象アドレス間に重複があるか否かを判定する(S314、判定処理)。この判定処理では、例えばルーティング対象アドレス間でネットワークアドレス同士が一致しているときに重複があると判定する。なお、この判定処理は、VPNの開始時だけでなく、VPNの開始後にも適宜のタイミング(アドレスフィルタ情報が更新されたタイミング等)で行うものとする。
また、今回の説明において、VPNは2つのルーティングポイントから構成されているので、中継サーバ3は、2つのルーティング対象アドレス間の重複を判定する。これに対して、VPNが3つのルーティングポイントから構成される場合(例えば中継サーバ1,2,3がルーティングポイントとなる場合)、中継サーバ3は、3つのルーティング対象アドレス間の重複を検出する。
中継サーバ3は、ルーティング対象アドレス間に重複があると判定した場合、仮想アドレス通信可否情報記憶部58の内容を参照して、仮想アドレスを利用した通信が許可されているか禁止されているかを判断する(S315)。
仮想アドレスを利用した通信が許可されている場合、中継サーバ3は、第2ルーティング対象アドレスに仮想アドレスを割り当て(S316)、その割当関係を仮想アドレス割当情報記憶部57に記憶する(S317)。なお、S314において割り当てられる仮想アドレスとしては、仮想アドレス登録情報記憶部56に登録されており、かつ、まだ第2ルーティング対象アドレスに割り当てられていない仮想アドレスであれば、任意のアドレスを割り当てることができる。
次に、中継サーバ3は、再びS311の処理を行う。なお、ルーティング対象アドレス間で重複がないと判定した場合も再びS311の処理を行う。現在作成中のVPNグループは、中継サーバ1と中継サーバ3のみで構成されるため、他のルーティングセッションはVPNグループ情報には記述されていない。従って、中継サーバ3は、パケットのルーティング制御を開始する(S318)。なお、仮に他のルーティングセッションがある場合は、中継サーバ3は、再びS311〜S315の処理を行う。
一方、仮想アドレスを利用した通信が禁止されている場合、中継サーバ3は、通信を行うことができない旨のエラーを通知するとともに、仮想アドレスを利用した通信を許可するか禁止するかについての指示を再び受け付ける(S319、受付処理)。具体的には、中継サーバ3は、図15(b)に示すボックスをクライアント端末34のディスプレイ等に表示する。図15(b)には、アドレスの重複が検出された旨と、仮想アドレスを利用すれば通信が可能となる旨と、仮想アドレスを利用することで指定アプリケーションが利用できなくなる可能性がある旨と、が表示されている。また、図15(b)には、ユーザに選択させるための「はい」「いいえ」のボタンと、指定アプリケーションリストと、が表示されている。
このように本実施形態では、S319においてもS302と同様に、仮想アドレスを利用した通信の許可又は禁止を直接的にユーザに選択させるのではなく、指定アプリケーションを利用する可能性の有無をユーザに選択させるようになっている。
中継サーバ3は、ユーザから「はい」の選択を受け付けると、仮想アドレスの割当て(S316)及びその割当関係の記憶(S317)を行った後に、S311の処理に戻る。一方、中継サーバ3は、ユーザから「いいえ」の選択を受け付けると、中継サーバ1とのルーティングセッションを停止させて、S311の処理に戻る。
このように、本実施形態では、仮想アドレスを利用した通信を許可するか禁止するかを予め設定できるので、自動的に仮想アドレスが割り当てられて、ユーザに通知がされずに指定アプリケーションが利用できなくなる事態を回避できる。
また、本実施形態ではVPNを構築する際に、それぞれのルーティング機器が他のルーティング機器とアドレスフィルタ情報を交換(取得)するため、最新のアドレスフィルタ情報を用いてVPNを構築することができる。従って、VPN開始前の段階で一部のルーティング機器においてアドレスフィルタ情報が変更された場合でも、その変更を全てのルーティング機器に反映させた状態でVPNを構築して通信を開始できるので、パケットのルーティングにおける矛盾の発生を防止でき、信頼性を向上させることができる。
また、図17のフローチャートには記載していないが、S311において自身が接続の始点となるルーティングセッションが無い場合(自身がルーティングの終点となる場合)であっても、始点となるルーティング機器からの通信制御を受けてルーティングセッションの確立処理及びアドレスフィルタ情報の交換が行われる。それと同時に、仮想アドレスを用いた通信を行う場合は、仮想アドレスの割当て等も行われる。従って、中継サーバ1も第1ルーティング対象アドレスに仮想アドレスを割当て、それを記憶する制御を行う。
なお、それぞれのルーティング機器は、自身が始点である旨がルーティングセッション情報に記述されていない限りはルーティングセッション確立のための最初の通信制御を行わないので、通信制御の衝突を防止し、機器間のルーティングセッションを簡素な制御で確立することができる。
次に、確立したルーティングセッションを用いてパケットのルーティングを行う処理について説明する。以下では、中継サーバ3を例に挙げて、中継サーバ3が実行する処理について説明するが、中継サーバ1,2も同様の処理を実行可能であるとする。
初めに、中継サーバ3がLAN30からパケットを受信したときに行う制御について図18を参照して説明する。図18は、この制御の流れを示すフローチャートである。
なお、LAN30内のルーティング対象装置は、他のルーティング対象装置にパケットを送信する際は、中継サーバ3に登録された情報を参照して他のルーティング対象アドレスを取得し、当該ルーティング対象アドレスを宛先としてパケットを送信する。また、他のルーティング対象アドレスに仮想アドレスが割り当てられている場合、LAN30内のルーティング対象装置は、実際のアドレスではなく仮想アドレスを中継サーバ3から取得する。従って、例えば対象端末31から操作PC11へパケットが送信される場合、対象端末31は、宛先アドレスとして仮想アドレス(160.90.0.1)を取得する。
中継サーバ3は、LAN30からパケットを受信するまで待機している(S401)。そして、LAN30からパケットを受信した場合、初めに、当該パケットの宛先が自機(中継サーバ3)であるか否かの判断を行う(S402)。
中継サーバ3は、パケットの宛先が自機であった場合、当該パケットの受信を行う(S403)。一方、パケットの宛先が自機以外であった場合、中継サーバ3は、受信したパケットの宛先アドレスと、アドレスフィルタ情報(図9(b)を参照)と、を比較して、宛先アドレスがアドレスフィルタ情報に登録されているか否かの判断を行う(S404)。中継サーバ3は、宛先アドレスがアドレスフィルタ情報に登録されていない場合、パケットを破棄する(S405)。一方、中継サーバ3は、宛先アドレスがアドレスフィルタ情報に登録されていた場合、当該アドレスフィルタ情報に対応するルーティングセッションを特定する(S406)。
次に、中継サーバ3は、仮想アドレス割当情報記憶部57を参照して、宛先アドレスが仮想アドレスか否かの判断を行う(S407)。宛先アドレスが仮想アドレスである場合、中継サーバ3は、宛先アドレスを実際のアドレスに変換し(S408)、S406で特定したルーティングセッションへパケットを送信(転送)する(S409)。
次に、中継サーバ3がルーティングセッションからパケットを受信したときに行う制御について図16を参照して説明する。図19は、この制御の流れを示すフローチャートである。
中継サーバ3は、ルーティングセッションからパケットを受信するまで待機している(S501)。そして、中継サーバ3は、パケットを受信した場合、当該パケットの宛先アドレスと、アドレスフィルタ情報(図9(b)を参照)と、を比較して、パケットの宛先アドレスが自機のアドレスフィルタ情報に対応付けて登録されているか否かの判断を行う(S502)。
パケットの宛先アドレスが自機のアドレスフィルタ情報に対応付けて登録されている場合、仮想アドレス割当情報記憶部57を参照して、送信元アドレスに仮想アドレスが割り当てられているか否かの判断を行う(S503)。送信元アドレスに仮想アドレスが割り当てられている場合、中継サーバ3は、送信元アドレスを仮想アドレスに変換し(S504)、宛先アドレスが示す機器(対象端末31,32,33)へ、パケットを転送する(S505)。なお、送信元アドレスに仮想アドレスが割り当てられていない場合、中継サーバ3は、アドレスを変換することなく、宛先が示す機器へパケットを転送する(S505)。
また、中継サーバ3は、宛先アドレスが自機のアドレスフィルタ情報に対応付けて登録されていない場合、当該宛先アドレスが他のルーティング機器のアドレスフィルタ情報に対応付けて登録されているか否かの判断を行う(S506)。当該宛先アドレスが他のルーティング機器のアドレスフィルタ情報に対応付けて登録されている場合、中継サーバ3は、該当するルーティングセッションを特定し(S507)、このルーティングセッションへパケットを送信(転送)する(S508)。
一方、当該宛先アドレスが他のルーティング機器のアドレスフィルタ情報にも登録されていない場合、中継サーバ3は、当該パケットを破棄する(S509)。
以上の制御を行うことにより、中継サーバ3は、仮想アドレスを利用して通信を行うことができる。
次に、上記の制御を行う中継サーバ1,3を介して、操作PC11と対象端末31とがパケットをやり取りするときの流れについて図20を参照して簡単に説明する。
図20(a)は、対象端末31から操作PC11へパケットが送信される場合を示している。この場合、中継サーバ1は、ルーティングセッションからパケットを受信するため、図19に示す制御を行う。一方、中継サーバ3は、LAN30からパケットを受信するため、図18に示す制御を行う。
対象端末31は、上述のように操作PC11の仮想アドレスを宛先アドレスとしてパケットを送信する。このパケットを受信した中継サーバ3は、アドレスフィルタ情報(図9(b)を参照)に基づいて、パケットの宛先アドレスに対応するルーティング機器として中継サーバ1が記述されていることを認識してルーティングセッションを特定する(S406)。次に、中継サーバ3は、宛先アドレスが仮想アドレスであることを認識して、宛先アドレスを実際のアドレスに変換する(S408)。そして、中継サーバ3は、ルーティングセッションを介して中継サーバ1へパケットを送信する(S409)。
このパケットを受信した中継サーバ1は、アドレスフィルタ情報(図8(b)を参照)に基づいて、パケットの宛先アドレスに対応するルーティング機器として自機(中継サーバ1)が記述されていることを認識する。次に、中継サーバ1は、送信元アドレスに仮想アドレスが対応付けられていることを認識して、送信元アドレスを仮想アドレスに変換する(S504)。そして、中継サーバ1は、宛先の操作PC11へパケットを送信する(S505)。
図20(b)は、操作PC11から対象端末31へパケットが送信される場合を示している。この場合、中継サーバ1は、LAN10からパケットを受信するため、図18に示す制御を行う。一方、中継サーバ3は、ルーティングセッションからパケットを受信するため、図19に示す制御を行う。
操作PC11は、対象端末31の仮想アドレスを宛先としてパケットを送信する。このパケットを受信した中継サーバ1は、上記の中継サーバ3と同様に、ルーティングセッションを特定する処理(S406)、宛先アドレスを実際のアドレスに変換する処理(S408)、及び中継サーバ3へパケットを送信する処理(S409)を行う。
このパケットを受信した中継サーバ3は、上記の中継サーバ1と同様に、送信元アドレスを仮想アドレスに変換する処理(S504)及び宛先の対象端末31へパケットを送信する処理(S505)を行う。
以上により、第1ルーティング対象アドレスと第2ルーティング対象アドレスとが重複した場合であっても、割り当てられた仮想アドレスを利用して通信を行うことができる。
以上に示したように、本実施形態の中継サーバ3は、アドレスフィルタ情報記憶部55と、仮想アドレス割当情報記憶部57と、制御部60と、を備える。アドレスフィルタ情報記憶部55は、第1ルーティング対象アドレスと、第2ルーティング対象アドレスと、を記憶する。仮想アドレス割当情報記憶部57は、第2ルーティング対象アドレスと、当該第2ルーティング対象アドレスに割り当てられた仮想アドレスと、を対応付けて記憶する。制御部60は、仮想アドレスを利用した通信の許可又は禁止の指示をユーザから受け付ける受付処理を行う。制御部60は、中継サーバ1へ第1ルーティング対象アドレスを送信するとともに、中継サーバ1から第2ルーティング対象アドレスを受信し、中継サーバ1とルーティングセッションを確立する。制御部60は、第1ルーティング対象アドレスと第2ルーティング対象アドレスとの間で重複があるか否かを判定する。制御部60は、重複があると判定した場合に、以下の処理を行う。即ち、制御部60は、仮想アドレスを利用した通信の禁止の指示を受け付けていたときは、通信できない旨をユーザに通知する。一方、制御部60は、前記仮想アドレスを利用した通信の許可の指示を受け付けていたときは、第1ルーティング対象装置から仮想アドレスを宛先とするパケットを受信した際に、パケットの宛先アドレスを第2ルーティング対象アドレスに変換して、ルーティングセッションへパケットを転送する。更に、制御部60は、ルーティングセッションから第1ルーティング対象アドレスを宛先とするパケットを受信した際に、パケットの送信元アドレスを仮想アドレスに変換して、宛先の第1ルーティング対象装置へパケットを転送する。
これにより、この中継通信システム100では、仮想アドレスを利用した通信の可否を設定できる。従って、ユーザとしては、指定アプリケーションを利用しない場合は、仮想アドレスを利用した通信を許可することで、ルーティング対象アドレス同士が重複した場合であっても正常に通信を行うことができる。一方、指定アプリケーションを利用する場合は、仮想アドレスを利用した通信を禁止することで、ルーティング対象アドレス同士が重複しないときは問題なく当該指定アプリケーションを利用できる一方で、ルーティング対象アドレス同士が重複した場合には、ユーザが事態を即座に把握して適切に対応することができる。
また、本実施形態の中継サーバ3は、通信できない旨を通知するとともに、仮想アドレスを利用した通信を許可するか禁止するかをユーザに問い合わせる。
これにより、ユーザは、例えば指定アプリケーションよりも通信を優先したい場合は、即座に通信を許可する指示を行うことができる。従って、ユーザが設定画面等を呼び出して通信を許可する設定を行う必要がないので、ユーザフレンドリーな操作感を実現できる。
また、本実施形態の中継サーバ3は、指定アプリケーションを提示して、当該アプリケーションを利用する可能性の有無の指定を受け付ける。
これにより、仮想アドレスを利用することで何れのアプリケーションが影響を受けるかをユーザに知らせることができる。従って、ユーザは、仮想アドレスを用いた通信についての理解が十分でない場合であっても、自身の利用形態に応じた適切な設定を行うことができる。
また、本実施形態の中継サーバ3は、指定アプリケーションの追加及び削除を受け付ける。
これにより、中継サーバは、ユーザにとって必要なアプリケーションのみを提示して受付処理を行うことができる。
また、本実施形態の中継サーバ3は、中継サーバ1,2,3でVPNが構築される場合、3つのルーティング対象アドレス間で重複があるか否かを判定する。
これにより、3以上の中継サーバで通信を行う場合であっても、ルーティング対象アドレスの重複を検出して仮想アドレスの割当てを行うことができる。
以上に本発明の好適な実施の形態を説明したが、上記の構成は例えば以下のように変更することができる。
仮想アドレスを利用した通信の許可又は禁止の指示を受け付ける処理は、VPNの開始後に限られず、例えば初期設定時(S102等と同時)に行う構成であっても良い。また、仮想アドレスを利用した通信の許可又は禁止を事前に設定しておかずに、ルーティング対象アドレス間に重複がある事を検出した時には、図15(b)に示すボックスをクライアント端末34のディスプレイ等に表示し、仮想アドレスを利用するかどうかをその都度ユーザに選択させる構成であっても良い。
上記実施形態では、中継サーバ3は、仮想アドレス登録情報記憶部56に登録されている仮想アドレスを割り当てる構成である。これに代えて、中継サーバ3が仮想アドレス登録情報記憶部56を備えない構成として、重複を検出したときに、中継サーバ3が仮想アドレスを生成する構成であっても良い。このとき、中継サーバ3は、アドレスフィルタ情報記憶部55の記憶内容を参照して、VPNを行う際に用いられていないアドレスを仮想アドレスとすることで、利用中のアドレスと確実に重複しない仮想アドレスを生成できる。
ルーティング対象アドレス間に重複があるか否かの判定方法は任意であり、例えば、ネットワークアドレスとホストアドレスの両方が一致しているときにのみ重複と判定する構成であっても良い。
上記では、ルーティングセッションの確立と略同時にアドレスフィルタ情報の交換を行う構成である。これに対し、VPNグループの開始コマンドの送信(S306)とともにアドレスフィルタ情報を送信し、応答(S307)とともにアドレスフィルタ情報を受信する構成でも良い。
上記では、操作PC11等の個別の機器がルーティング対象装置となっていたが、例えば、LAN10全体(192.168.0.0/24)を中継サーバ1のルーティング対象装置として設定しても良い。この場合、当該ルーティング対象装置には、(160.60.0.0/24)のように、範囲指定された仮想アドレスが割り当てられる。
仮想アドレスの割当てを行うタイミングは任意であり、例えば、開始コマンドの送信とともにアドレスフィルタ情報を送信する構成の場合、より早いタイミングで仮想アドレスの割当てを行うことができる。
上記では、中継サーバのみがルーティングポイントとして機能する構成であるが、クライアント端末がルーティングポイントとして機能する構成であっても良い。また、VPNグループ内のルーティングポイントの数は2つに限られず、3つ以上であっても良い。また、1つのルーティング機器が複数のVPNグループに所属していても良い。
上記の中継グループ情報、中継サーバ情報、クライアント端末情報、VPNグループ情報、アドレスフィルタ情報等を格納する形式はXML形式に限定されず、適宜の形式で各情報を格納することができる。
上記実施形態の構成に代えて、各中継サーバ間での通信に用いられる外部サーバをインターネット上に設置し、SIP(Session Initiaion Protocol)サーバとしての機能を発揮させて通信を行う構成にしても良い。