[VPN間通信システム及びVPN間接続管理システムの概要]
実施例1においては、拠点間接続の一例としてVPN間接続を説明する。VPN間接続は、VPN間通信システムにおいて実現される。また、VPN間接続は、VPN間接続管理システムによって管理される。
図1は、実施例1に係るVPN間通信システム及びVPN間接続管理システムの概要を説明するための図である。図1に示すように、VPN間通信システムは、集合仮想ルータ、VPN終端装置、アドレス変換装置、及び名前解決装置を含む。なお、VPN終端装置は、図1に示す広域ネットワーク側のみならず拠点側にも設置されることが多いが、図1においては図示を省略する。
「VPNi」は、VPN名である。また、「VRF(Virtual Routing and Forwarding)」は、集合仮想ルータに設定された仮想ルータである。仮想ルータは、物理的な筐体としての集合仮想ルータ内のリソースを、仮想化技術を用いて分割することにより、論理的に互いに独立なルータとして機能するものである。「VRFm」は、仮想ルータ名である。
図1においては、VPNi及びVPNj(i及びjは互いに独立な正の整数値、ここでは特にi≠j)をVPN間接続し、VPNi配下の端末αとVPNj配下の端末βとの間に、協働空間(VCS(Virtual Collaboration Space))が提供される例を示す。また、図1においては、集合仮想ルータにVRFm及びVRFn(m及びnは互いに独立な正の整数値、ここでは特にm≠n)が設定され、VPNi及びVPNjのVPN間接続に用いられる経路が複数(VRFm経由の経路及びVRFn経由の経路)である例を示す。
また、図1に示すように、VPN間通信システムは、アドレス変換装置を含む。アドレス変換装置は、VPN終端装置から受信したパケットのIPアドレスを変換し、アドレス変換後のパケットを集合仮想ルータに送信する。また、アドレス変換装置は、集合仮想ルータから受信したパケットのIPアドレスを変換し、アドレス変換後のパケットをVPN終端装置に送信する。
ここで、VPN間通信システムにおいては、アドレス変換の技術として、IETF(Internet Engineering Task Force)によって公開されたRFC(Request for Comments)2663の技術(Twice−NAT)を用いる。
すなわち、アドレス変換装置は、送信元のIPアドレス及び宛先のIPアドレスの双方を変換する。ここで、VPN間接続に属する各VPN配下の端末をその各VPN内で識別するためのIPアドレスを「拠点内アドレス」とする。また、通信相手となる他VPN配下の端末を自VPN内で識別するためのIPアドレスを「第一アドレス」とする。また、VPN間接続に属する各VPN配下の端末を集合仮想ルータにて識別するためのIPアドレスを「第二アドレス」とする。
図1において、「a
i」は、VPN
i内で端末αを識別するための拠点内アドレスであり、「a
j」は、VPN
j内で端末βを識別するための拠点内アドレスである。また、(1)式は、VPN
iからVRF
m向けのアドレス変換を表す変換作用素である。また、(2)式は、VRF
mからVPN
j向けのアドレス変換を表す変換作用素である。
したがって、図1において、VRF
mに属するVPN
i配下の端末α及びVPN
j配下の端末βを、集合仮想ルータ(仮想ルータVRF
m)にて識別するための第二アドレスは、拠点内アドレス「a
i」及び拠点内アドレス「a
j」がそれぞれアドレス変換装置によって1回変換されたIPアドレスとなり、(3)と表現される。一方、VRF
nに属するVPN
i配下の端末α及びVPN
j配下の端末βを、集合仮想ルータ(仮想ルータVRF
n)にて識別するための第二アドレスは、拠点内アドレス「a
i」及び拠点内アドレス「a
j」がそれぞれアドレス変換装置によって1回変換されたIPアドレスとなり、(4)と表現される。
また、図1において、通信相手となるVPN
j配下の端末βをVPN
i内で識別するための第一アドレスは、VRF
m経由の経路の場合に(5)となり、VRF
n経由の経路の場合に(6)となる。同様に、通信相手となるVPN
i配下の端末αをVPN
j内で識別するための第一アドレスは、VRF
m経由の経路の場合に(7)となり、VRF
n経由の経路の場合に(8)となる。
さて、上述したように、VPN間接続は、VPN間接続管理システムによって管理される。VPN間接続管理システムの主な機能を簡単に説明する。図1に示すように、VPN間接続管理システムは、例えばVPNの管理者などから、VPN間接続要求を受け付ける。このVPN間接続要求には、VPN間接続の構築に必要な情報が含まれる。なお、VPN間接続管理システムの利用者には、電気通信事業者などの運用者と、企業内の情報システム部などの管理者とが含まれる。
すると、VPN間接続管理システムは、VPN間接続をオンデマンドに構築するために、このVPN間接続に用いられるIPアドレスを決定し、決定したIPアドレスを用いて、アドレス変換情報、ルーティング情報、名前解決に用いられる対応情報などの各種情報を生成する。
具体的には、VPN間接続管理システムは、このVPN間接続に必要な第一アドレス及び第二アドレスを決定する。ここで、通信相手となる他VPN配下の端末を自VPN内で識別するための第一アドレスは、経路毎に異なる。このため、VPN間接続管理システムは、例えば(9)式、(10)式、(11)式、及び、(12)式、(13)式、(14)式が成り立つように、第一アドレスを決定する。
また、VPN間接続管理システムは、例えば(15)式及び(16)式が成り立つように、第二アドレスを決定する。
このように、VPN間接続管理システムは、「Twice−NATによるアドレス変換技術」及び「仮想ルータ技術」を用いてIPアドレス空間を独立化することで、IPアドレス競合を解決しつつIPアドレスの割り当てを簡易化している。具体的には、まず、「Twice−NATによるアドレス変換技術」により、VPNと、広域ネットワークに設定された仮想ルータとの間で、IPアドレス空間を垂直方向に分離する。また、「仮想ルータ技術」により、広域ネットワークに設定された仮想ルータ間で、IPアドレス空間を水平方向に分離する。そして、VPN間接続管理システムは、この両者を組み合わせることにより、IPアドレス空間を、各VPN内、各仮想ルータ内にそれぞれ独立化させ、IPアドレス競合を解決しつつ、IPアドレスの割り当てを簡易化している。
また、VPN間接続管理システムは、アドレス変換装置にてIPアドレスを変換するためのアドレス変換情報を生成する。また、VPN間接続管理システムは、集合仮想ルータやVPN終端装置にてパケットを転送するためのルーティング情報を生成する。また、VPN間接続管理システムは、名前解決装置にて名前解決をするための対応情報を生成する。
ここで、対応情報は、第一アドレスと名前とを対応付けた情報である。また、名前解決装置は、名前解決の問い合わせに対してIPアドレスを応答する装置である。例えば、名前解決装置は、Webサーバ上に、第一アドレスと名前との対応付けを表示するWebページを出力し、例えば認証された利用者のアクセスを受け付ける手法で、第一アドレスを応答すればよい。また、例えば、名前解決装置は、メールなどによって、名前解決の問い合わせに対して第一アドレスを応答すればよい。また、例えば、名前解決装置は、DNS(Domain Name System)装置として実現されてもよい。この場合、対応情報は、Aレコード形式等で記述されたDNS情報として実現される。なお、VPN間接続管理システムは、後述するように、経路毎に異なる第一アドレスと名前とを対応付けることにより、経路毎に異なる対応情報を生成する。
そして、VPN間接続管理システムは、例えばサービス開始時刻までに、アドレス変換情報をアドレス変換装置に設定し、ルーティング情報を集合仮想ルータやVPN終端装置に設定し、対応情報を名前解決装置に設定し、その他必要な情報を各機器に設定する。こうして、VPN間通信システムに、VPN間接続が構築される。
[VPN間接続管理システムの構成]
図2は、実施例1に係るVPN間接続管理システム100の構成を示すブロック図である。図2に示すように、VPN間接続管理システム100は、通信部110と、入力部111と、出力部112と、入出力制御I/F(Interface)部113と、記憶部120と、制御部130とを備える。
通信部110は、例えばIP通信用の一般的なインタフェースである。通信部110は、アドレス変換情報、ルーティング情報、対応情報などの設定対象となるアドレス変換装置、集合仮想ルータ、VPN終端装置、名前解決装置などとの間で通信を行う。なお、VPN間接続管理システム100は、通信部110を介して他の管理端末やユーザ用のWebサーバなどとの間で通信を行うこともでき、他の管理端末やユーザ用のWebサーバなどからVPN間接続要求を受信することもできる。
入力部111は、例えばキーボードやマウスなどであり、各種操作の入力などを受け付ける。入力部111は、例えば、VPN間接続要求の入力をキーボードやマウスによって受け付ける。出力部112は、例えばディスプレイなどであり、各種操作のための情報などを出力する。出力部112は、例えば、VPN間接続要求の入力画面を出力する。入出力制御I/F部113は、入力部111と、出力部112と、記憶部120と、制御部130との間における入出力を制御する。なお、VPN間接続管理システム100は、必ずしも入力部111や出力部112を備える必要はなく、例えば、通信部110を介して他の管理端末やユーザ用のWebサーバなどとの間で通信を行い、入出力に係る情報を送受信してもよい。
記憶部120は、例えばRAM(Random Access Memory)やフラッシュメモリなどの半導体メモリ素子、ハードディスク、光ディスクなどであり、各種情報を記憶する。例えば、記憶部120は、図2に示すように、VPN間接続情報記憶部121と、VPN間接続要求記憶部122とを有する。
VPN間接続情報記憶部121は、VPN間接続の構築に必要なVPN間接続情報を記憶する。VPN間接続情報記憶部121は、例えばVPN間接続管理システム100の利用者に入力されることで、VPN間接続情報を事前に記憶する。また、VPN間接続情報記憶部121は、例えば後述するVPN間接続要求受付部131によって受け付けられたVPN間接続要求に含まれる情報を、VPN間接続情報として記憶する。
VPN間接続情報は、例えば、各VPNの識別情報、各VPNの種別、各VPNが収容される集合仮想ルータ、VPN終端装置やアドレス変換装置の識別情報、各VPN配下の端末の拠点内アドレス、各VPN配下の端末の名前などである。VPN間接続情報記憶部121が記憶するVPN間接続情報は、後述するアドレス決定部132、アドレス変換情報生成部133、ルーティング情報生成部135、対応情報生成部137などによる処理に利用される。
VPN間接続要求記憶部122は、VPN間接続要求情報を記憶する。VPN間接続要求記憶部122は、例えば後述するVPN間接続要求受付部131によって受け付けられたVPN間接続要求に含まれる情報を記憶する。VPN間接続要求情報は、例えば、VPN間接続サービスを開始すべきサービス開始時刻、VPN間接続サービスを終了すべきサービス終了時刻、VPN間接続の識別情報などである。VPN間接続要求記憶部122が記憶するVPN間接続要求情報は、後述するアドレス変換情報設定部134、ルーティング情報設定部136、対応情報設定部138などによる処理に利用される。
制御部130は、VPN間接続管理システム100において実行される各種処理を制御する。具体的には、図2に示すように、制御部130は、VPN間接続要求受付部131と、アドレス決定部132と、アドレス変換情報生成部133と、アドレス変換情報設定部134と、ルーティング情報生成部135と、ルーティング情報設定部136と、対応情報生成部137と、対応情報設定部138とを有する。
VPN間接続要求受付部131は、VPN間接続要求を受け付ける。具体的には、例えば、インターネットなどのネットワークにユーザ用のWebサーバが設置され、VPN間接続要求受付部131は、ユーザ用の入力画面をWebサーバに配信する。ここで、ユーザ用の入力画面とは、VPN間接続を行うVPNの管理者から、そのVPN間接続要求を受け付けるために、VPN間接続サービスを提供する電気通信事業者などが提供するものである。すると、例えば各VPNの管理者が、このWebサーバにアクセスし、ユーザ用の入力画面にVPN間接続要求(例えば、希望するサービス開始時刻、サービス終了時刻、VPN間接続の識別情報など)を入力する。VPN間接続要求受付部131は、VPN間接続要求の入力を受け付け、受け付けたVPN間接続要求をVPN間接続要求記憶部122に格納する。
アドレス決定部132は、VPN間接続に用いられる第一アドレス及び第二アドレスを決定する。具体的には、アドレス決定部132は、VPN間接続要求受付部131によって受け付けられたVPN間接続要求に基づき、このVPN間接続に用いられる第一アドレス及び第二アドレスを決定する。アドレス決定部132によって決定された第一アドレス及び第二アドレスは、アドレス変換情報生成部133、ルーティング情報生成部135、対応情報生成部137などによる処理に利用される。
ここで、上述したように、アドレス決定部132は、VPN間接続に用いられる経路が同一のVPN間に複数設定される場合に、通信相手となる他VPN配下の端末を自VPN内で識別するための第一アドレスを、経路毎に異なるように決定する。すなわち、アドレス決定部132は、例えば、上述した(9)式及び(12)式が成り立つように、第一アドレスを決定する。また、VPN間接続管理システムは、例えば、上述した(15)式及び(16)式が成り立つように、第二アドレスを決定する。
例えば、アドレス決定部132は、サービス開始時刻からサービス終了時刻の間に利用される予定のIPアドレスや、各機器のインタフェースに割り当てる予定のIPアドレスなどを管理する。そして、アドレス決定部132は、これらのIPアドレスと重複しないように調整の上、プライベートアドレス全体の中から、例えば(9)式及び(12)式が成り立つように第一アドレスを決定し、例えば(15)式及び(16)式が成り立つように第二アドレスを決定する。
アドレス変換情報生成部133は、アドレス決定部132によって決定された第一アドレス及び第二アドレスや、VPN間接続情報記憶部121が記憶する拠点内アドレスを用いて、アドレス変換情報を生成する。アドレス変換情報生成部133によって生成されたアドレス変換情報は、アドレス変換情報設定部134などによる処理に利用される。
例えば、端末αと端末βとが通信を行う場合、端末αを配下とするVPNi側に設置されたアドレス変換装置は、(送信元アドレス、宛先アドレス)=(端末αの拠点内アドレス、端末βの第一アドレス)を、(送信元アドレス、宛先アドレス)=(端末αの第二アドレス、端末βの第二アドレス)に変換する。このため、アドレス変換情報生成部133は、アドレス変換情報として、端末αの拠点内アドレスと端末αの第二アドレスとを変換するアドレス変換情報、及び、端末βの第一アドレスと端末βの第二アドレスとを変換するアドレス変換情報を生成する。
一方、端末βを配下とするVPNj側に設置されたアドレス変換装置は、(送信元アドレス、宛先アドレス)=(端末βの拠点内アドレス、端末αの第一アドレス)を、(送信元アドレス、宛先アドレス)=(端末βの第二アドレス、端末αの第二アドレス)に変換する。このため、アドレス変換情報生成部133は、アドレス変換情報として、端末βの拠点内アドレスと端末βの第二アドレスとを変換するアドレス変換情報、及び、端末αの第一アドレスと端末αの第二アドレスとを変換するアドレス変換情報を生成する。
アドレス変換情報設定部134は、アドレス変換情報生成部133によって生成されたアドレス変換情報をアドレス変換装置に設定する。例えば、アドレス変換情報設定部134は、アドレス変換情報を設定すべきタイミングになると、記憶部120に記憶されたアタッチメント(図示を省略)を取得し、取得したアタッチメントを用いて、該当するアドレス変換装置にアドレス変換情報を送信する。
アタッチメントとは、例えば、アドレス変換情報をアドレス変換装置に反映するためのプログラム、ルーティング情報を集合仮想ルータやVPN終端装置に反映するためのプログラム、対応情報を名前解決装置に反映するためのプログラムなどである。アタッチメントには、VPN間接続管理システム100と、アドレス変換装置、集合仮想ルータ、VPN終端装置、名前解決装置との間で用いられる通信プロトコルが規定される。なお、一般に、この通信プロトコルには、各機器のベンダによって規定される独自仕様の通信プロトコルが用いられる。また、アタッチメントには、例えば、VPN間接続管理システム100から各機器に対してtelnetやSSH(Secure SHell)などを用いて遠隔操作することにより、各種情報を設定する手法が含まれていてもよい。
ルーティング情報生成部135は、アドレス決定部132によって決定された第一アドレス及び第二アドレスや、VPN間接続情報記憶部121が記憶する拠点内アドレスを用いて、ルーティング情報を生成する。例えば、ルーティング情報生成部135は、各機器のインタフェースに設定するIPアドレスを、予め確保されたIPアドレスの中から割り当てる。そして、ルーティング情報生成部135は、各機器のインタフェースに設定されたIPアドレスや、アドレス決定部132によって決定された第一アドレス及び第二アドレスに基づいて、ルーティング情報を生成する。ルーティング情報生成部135によって生成されたルーティング情報は、ルーティング情報設定部136などによる処理に利用される。
ルーティング情報設定部136は、ルーティング情報生成部135によって生成されたルーティング情報を、集合仮想ルータ及びVPN終端装置に設定する。例えば、ルーティング情報設定部136は、ルーティング情報を設定すべきタイミングになると、記憶部120に記憶されたアタッチメント(図示を省略)を取得し、取得したアタッチメントを用いて、該当する集合仮想ルータ及びVPN終端装置にルーティング情報を送信する。
対応情報生成部137は、アドレス決定部132によって決定された第一アドレスや、VPN間接続情報記憶部121が記憶する名前を用いて、対応情報を生成する。ここで、対応情報生成部137は、同一のVPN間に複数設定された経路間で各経路を流れるトラヒックの割り当てが制御されるように、経路毎に異なる第一アドレスと名前とを対応付け、経路毎に異なる対応情報を生成する。言い換えると、対応情報生成部137は、『経路』と『第一アドレス』と『名前』との関係を保持する情報として、対応情報を生成する。対応情報生成部137によって生成された対応情報は、対応情報設定部138などによる処理に利用される。なお、対応情報生成部137の処理は、後に詳述する。
対応情報設定部138は、対応情報生成部137によって生成された対応情報を、名前解決装置に設定する。例えば、対応情報設定部138は、対応情報を設定すべきタイミングになると、記憶部120に記憶されたアタッチメント(図示を省略)を取得し、取得したアタッチメントを用いて、該当する名前解決装置に対応情報を送信する。なお、名前解決装置は、上述したように、名前解決の問い合わせに対してIPアドレスを応答する装置である。これを言い換えると、名前解決装置は、経路毎に異なる『第一アドレス』と『名前』とを対応付けた対応情報を保持することで、『経路』と『第一アドレス』と『名前』との関係を保持し、『名前』を用いた問い合わせに対して、ある経路に割り当てられた『第一アドレス』を応答することで、結果として、その問い合わせ元に対して『経路』を割り当てる。
[対応情報の生成]
さて、上述したように、対応情報生成部137は、同一のVPN間に複数設定された経路間でトラヒックの割り当てが制御されるように、対応情報を生成する。以下、この点について詳述する。
まず、上述したように、VPN間接続において通信相手となる他VPN配下の端末を自VPN内で識別する第一アドレスは、経路毎に異なるように決定されている。例えば、図1に示すように、VPNi配下の端末αにとって、通信相手は、VPNj配下の端末βであり、VPNj配下の端末βにとって、通信相手は、VPNi配下の端末αである。また、VPNi配下の端末αとVPNj配下の端末βとが通信を行うためのVPN間接続に用いられる経路は、VRFm経由の経路及びVRFn経由の経路の2経路である。
この場合、端末αが端末βをVPN
i内で識別するための第一アドレスは、VRF
m経由の経路の場合に(5)となり、VRF
n経由の経路の場合に(6)となる。これらの第一アドレスは、(9)式を満たすことにより、経路毎に異なることになる。
一方、端末βが端末αをVPN
j内で識別するための第一アドレスは、VRF
m経由の経路の場合に(7)となり、VRF
n経由の経路の場合に(8)となる。これらの第一アドレスは、(12)式を満たすことにより、経路毎に異なることになる。
このようなことから、経路毎に第一アドレスが異なることを利用すれば、第一アドレスの使い分けにより、トラヒックを適宜分散させることが可能になる。以下、方式A、方式B、及び方式Cを説明する。なお、以下に示す方式A、方式B、及び方式Cの具体例は、一例に過ぎない。
(方式A)
図3及び図4は、実施例1に係る方式Aを説明するための図である。以下では、具体例として、VPNi及びVPNjをVPN間接続するものとし、VPNi配下の端末はいわゆるクライアントであり、VPNj配下の端末はいわゆるサーバであると想定する。
図3に示すように、例えば、VPN間接続管理システム100は、VPNi又はVPNjの管理者などから、VPNj配下のサーバを識別する名前と拠点内アドレスとを受け付ける。例えば、VPN間接続管理システム100は、VPNj配下には「serverA@vpnj.example.com」、「serverB@vpnj.example.com」、及び「serverC@vpnj.example.com」という名前のサーバが設置され、それぞれの拠点内アドレスは「aj(A)」、「aj(B)」、及び「aj(C)」であるとの情報を、VPN間接続要求とともに受け付ける。なお、これらの情報は、例えば事前に受け付けた情報として、VPN間接続情報記憶部121に格納されていてもよい。
また、図3に示すように、例えば、VPN間接続管理システム100は、VPNi又はVPNjの管理者などから、VPN間接続要求とともに、各サーバによって提供されるサービスの種類と、希望するトラヒックの割り当て(経路グループ)とを受け付ける。例えば、VPN間接続管理システム100は、「serverA」はメールサービスを提供すること、「serverB」はWebサービス及び動画配信サービスを提供すること、「severC」はリアルタイムコラボレーションサービスを提供することを受け付ける。また、例えば、VPN間接続管理システム100は、メールサービス及びWebサービスを経路グループ1、動画配信サービスを経路グループ2、リアルタイムコラボレーションサービスを経路グループ3に割り当てることを受け付ける。
なお、ここでは、各サーバによって提供されるサービスの種類と、希望するトラヒックの割り当て(経路グループ)とを受け付ける例を説明するが、これに限られるものではない。例えば、品質クラスのように経路グループとして事前に最大4クラスを定めておき、管理者が、VPN間接続要求時に数及びそのクラスを指定してもよいし、また、自動的に経路グループが指定されてもよい。VPN間接続管理システム100が、「複数の経路グループ」を「どのように利用するか」を決定することができればよく、その決定は、必ずしもサービスの種類によって分類されなければならないものではなく、また、VPNの管理者の指定に拠らなければならないものでもない。
図3に示すように、例えば、VPN間接続管理システム100は、VPN間接続要求受付部131においてこれらの情報を受け付ける。VPN間接続要求受付部131は、受け付けたこれらの情報に基づいてVPN間接続に用いられる経路を設計し、VPNiとVPNjとの間に3つの経路(VRFl、VRFm、VRFn)を設定する必要があることを決定する。そして、VPN間接続要求受付部131は、VPN間接続要求や、これらの設計情報を、アドレス決定部132やルーティング情報生成部135に送る。なお、ルーティング情報生成部135は、アドレス決定部132によって決定されたIPアドレスや設計情報を用いてルーティング情報を生成することになるが、例えば公知の技術によって実現することが可能であり、説明を割愛する。
さて、アドレス決定部132は、VPNiとVPNjとの間に3つの経路(VRFl、VRFm、VRFn)を設定する必要があるとの設計情報を受け取り、この設計情報とVPN間接続要求とに基づいて、第一アドレス及び第二アドレスを決定する。
ここでは、特に第一アドレスについて説明する。まず、アドレス決定部132は、VPN間接続要求によって指定された経路グループ1をVRFlに割り当て、経路グループ2をVRFmに割り当て、経路グループ3をVRFnに割り当てる。
次に、アドレス決定部132は、経路グループ1のメールサービスは「serverA」が提供するサービスであること、経路グループ1はVRF
lに割り当てられていること、「serverA」の拠点内アドレスは「a
j(A)」であることを用いて、(17)の第一アドレスを決定する。ただし、(17)の第一アドレスは、VPN
i内で使用されていないIPアドレスから選択する必要がある。
同様に、アドレス決定部132は、経路グループ1のWebサービスは「serverB」が提供するサービスであること、経路グループ1はVRF
lに割り当てられていること、「serverB」の拠点内アドレスは「a
j(B)」であることを用いて、(18)の第一アドレスを決定する。ただし、(18)の第一アドレスは、VPN
i内で使用されていないIPアドレスから選択する必要がある。
同様に、アドレス決定部132は、経路グループ2の動画配信サービスは「serverB」が提供するサービスであること、経路グループ2はVRF
mに割り当てられていること、「serverB」の拠点内アドレスは「a
j(B)」であることを用いて、(19)の第一アドレスを決定する。ただし、(19)の第一アドレスは、VPN
i内で使用されていないIPアドレスから選択する必要がある。
同様に、アドレス決定部132は、経路グループ3のリアルタイムコラボレーションサービスは「serverC」が提供するサービスであること、経路グループ3はVRF
nに割り当てられていること、「serverC」の拠点内アドレスは「a
j(C)」であることを用いて、(20)の第一アドレスを決定する。ただし、(20)の第一アドレスは、VPN
i内で使用していないIPアドレスから選択する必要がある。
そして、アドレス決定部132は、決定したこれらの第一アドレスを、対応情報生成部137に送る。
対応情報生成部137は、アドレス決定部132によって決定されたIPアドレスに基づいて、対応情報を生成する。
まず、対応情報生成部137は、経路グループ1のメールサービスを提供するサーバをVPNi内で識別する名前として、「mail@vrf(l+m+n).vpnj.example.com」を決定する。また、対応情報生成部137は、経路グループ1のWebサービスを提供するサーバをVPNi内で識別する名前として、「www@vrf(l+m+n).vpnj.example.com」を決定する。対応情報生成部137は、経路グループ2の動画配信サービスを提供するサーバをVPNi内で識別する名前として、「movie@vrf(l+m+n).vpnj.example.com」を決定する。対応情報生成部137は、経路グループ3のリアルタイムコラボレーションサービスを提供するサーバをVPNi内で識別する名前として、「collabo@vrf(l+m+n).vpnj.example.com」を決定する。なお、利用者に必ずしも仮想ルータ名やその数が認識される必要はないので、「vrf(l+m+n)」の部分は、特に協働空間がVRFl、VRFm、及びVRFnによって構成されていることが識別できる名前である必要はなく、協働空間が一意に識別される名前であれば、「vcs」などであってもよい。
そして、対応情報生成部137は、(17)のIPアドレスと「mail@vrf(l+m+n).vpnj.example.com」とを対応付けた対応情報として、(21)の対応情報を生成する。同様に、対応情報生成部137は、(18)のIPアドレスと「www@vrf(l+m+n).vpnj.example.com」とを対応付けた対応情報として、(22)の対応情報を生成する。また、対応情報生成部137は、(19)のIPアドレスと「movie@vrf(l+m+n).vpnj.example.com」とを対応付けた対応情報として、(23)の対応情報を生成する。また、対応情報生成部137は、(20)のIPアドレスと「collabo@vrf(l+m+n).vpnj.example.com」とを対応付けた対応情報として、(24)の対応情報を生成する。なお、対応情報がDNS情報として実現される場合には、対応情報は、例えばAレコードの形式で生成される。
そして、対応情報設定部138は、対応情報生成部137によって生成された対応情報を、名前解決装置に設定する。なお、対応情報生成部137によって生成されたサーバ名は、オフライン、又は、ユーザ用のWebサーバなどによって、VPNi及びVPNjの利用者や管理者に伝えられる。
この結果、例えば、VPNi配下のクライアントの利用者は、VPNj配下のサーバ名が
メールサービス:「mail@vrf(l+m+n).vpnj.example.com」
Webサービス:「www@vrf(l+m+n).vpnj.example.com」
動画配信サービス:「movie@vrf(l+m+n).vpnj.example.com」
リアルタイムコラボレーションサービス:「collabo@vrf(l+m+n).vpnj.example.com」
であると認識する。利用者に認識される名前自体が、経路によって異なることになる。
例えば、VPNi配下のクライアントの利用者がメールサービスを利用したい場合、VPNi配下のクライアントは、名前解決装置に対して「mail@vrf(l+m+n).vpnj.example.com」の名前解決を問い合わせる。名前解決装置には、「mail@vrf(l+m+n).vpnj.example.com」に対応付けて(17)のIPアドレスが登録されている。このため、名前解決装置は、(17)のIPアドレスを応答する。
すると、図4の実線に示すように、VPNi配下のクライアントは、(17)のIPアドレスを用いて通信を行い、結果として、クライアントは、VRFlの経路を用いて、serverAが提供するメールサービスを利用することになる。
同様に、例えば、VPNi配下のクライアントの利用者が動画配信サービスを利用したい場合、VPNi配下のクライアントは、名前解決装置に対して「movie@vrf(l+m+n).vpnj.example.com」の名前解決を問い合わせる。名前解決装置には、「movie@vrf(l+m+n).vpnj.example.com」に対応付けて(19)のIPアドレスが登録されている。このため、名前解決装置は、(19)のIPアドレスを応答する。
すると、図4の点線に示すように、VPNi配下のクライアントは、(19)のIPアドレスを用いて通信を行い、結果として、クライアントは、VRFmの経路を用いて、serverBが提供する動画配信サービスを利用することになる。なお、Webサービス及び動画配信サービスは、いずれも同じ「serverB」によって提供されているが、実施例1においてこれらのサービスは、それぞれ異なる経路に割り当てられている。すなわち、図4に示すように、WebサービスはVRFlの経路に割り当てられ、動画配信サービスはVRFmの経路に割り当てられている。このとき、実施例1において第一アドレスは、経路毎に異なるように決定されているので、VPNi配下のクライアントは、Webサービスを利用したい場合には(18)のIPアドレスを用いて通信を行う。この結果、クライアントは、VRFlの経路を用いて、serverBが提供するWebサービスを利用する。
このように、方式Aを用いた具体例において、トラヒックは3つの経路に分散される。なお、図4において集合仮想ルータは、仮想ルータ毎に異なる筐体であるが、このような構成によれば、各集合仮想ルータの負荷を低減することが可能である。
(方式B)
図5及び図6は、実施例1に係る方式Bを説明するための図である。以下では、具体例として、VPNi及びVPNjをVPN間接続するものとし、VPNi配下の端末はいわゆるクライアントであり、VPNj配下の端末はいわゆるサーバであると想定する。
図5に示すように、例えば、VPN間接続管理システム100は、VPNi又はVPNjの管理者などから、VPNj配下のサーバを識別する名前と拠点内アドレスとを受け付ける。例えば、VPN間接続管理システム100は、VPNj配下には「serverA@vpnj.example.com」という名前の動画配信サービスを提供するサーバが設置され、拠点内アドレスは「aj(A)」であるとの情報を、VPN間接続要求とともに受け付ける。なお、これらの情報は、例えば事前に受け付けた情報として、VPN間接続情報記憶部121に格納されていてもよい。
図5に示すように、例えば、VPN間接続管理システム100は、VPN間接続要求受付部131においてこれらの情報を受け付ける。VPN間接続要求受付部131は、受け付けたこれらの情報に基づいてVPN間接続に用いられる経路を設計する。ここでは、経路の数は、何らかの理由により事前に与えられているとする。例えば、固定的に経路の数「3」が与えられているとする。すると、VPN間接続要求受付部131は、VPNiとVPNjとの間に3つの経路(VRFl、VRFm、VRFn)を設定する必要があることを決定する。そして、VPN間接続要求受付部131は、VPN間接続要求や、これらの設計情報を、アドレス決定部132やルーティング情報生成部135に送る。なお、ルーティング情報生成部135は、アドレス決定部132によって決定されたアドレスや設計情報を用いてルーティング情報を生成することになるが、例えば公知の技術によって実現することが可能であり、説明を割愛する。
さて、アドレス決定部132は、VPNiとVPNjとの間に3つの経路(VRFl、VRFm、VRFn)を設定する必要があるとの設計情報を受け取り、この設計情報とVPN間接続要求とに基づいて、第一アドレス及び第二アドレスを決定する。
ここでは、特に第一アドレスについて説明する。まず、アドレス決定部132は、「serverA」の拠点内アドレスは「a
j(A)」であることを用いて、VRF
l経由の経路の場合の第一アドレスとして(25)のIPアドレスを決定する。また、アドレス決定部132は、VRF
m経由の経路の場合の第一アドレスとして(26)のIPアドレスを決定する。また、アドレス決定部132は、VRF
n経由の経路の場合の第一アドレスとして(27)のIPアドレスを決定する。そして、アドレス決定部132は、決定したこれらの第一アドレスを、対応情報生成部137に送る。
対応情報生成部137は、アドレス決定部132によって決定されたIPアドレスに基づいて、対応情報を生成する。まず、対応情報生成部137は、「serverA」が提供するサービスは動画配信サービスであることから、この動画配信サービスを提供するサーバをVPNi内で識別する名前として、「movie@vrf(l+m+n).vpnj.example.com」を決定する。
次に、対応情報生成部137は、(25)のIPアドレスと「movie@vrf(l+m+n).vpnj.example.com」とを対応付けた対応情報として、(28)の対応情報を生成する。同様に、対応情報生成部137は、(26)のIPアドレスと「movie@vrf(l+m+n).vpnj.example.com」とを対応付けた対応情報として、(29)の対応情報を生成する。また、対応情報生成部137は、(27)のIPアドレスと「movie@vrf(l+m+n).vpnj.example.com」とを対応付けた対応情報として、(30)の対応情報を生成する。
そして、対応情報設定部138は、対応情報生成部137によって生成された対応情報を、名前解決装置に設定する。なお、対応情報生成部137によって生成されたサーバ名は、オフライン、又は、ユーザ用のWebサーバなどによって、VPNi及びVPNjの利用者や管理者に伝えられる。
この結果、例えば、VPNi配下のクライアントの利用者は、全員、VPNj配下のサーバ名が「movie@vrf(l+m+n).vpnj.example.com」であると認識する。すなわち、利用者に認識される名前自体は、経路によって異ならない。すると、全てのVPNi配下のクライアントが、名前解決装置に対して「movie@vrf(l+m+n).vpnj.example.com」の名前解決を問い合わせることになり、これだけではトラヒックを分散することができない。この点、方式Bにおいては、名前解決装置が、名前解決の問い合わせに対して、名前解決の問い合わせ元に対応する第一アドレスを応答するように制御することで、トラヒックの分散を実現する。
すなわち、方式Bにおいて、名前解決装置は、名前解決の問い合わせ元のIPアドレスを参照し、そのIPアドレスに応じて異なる第一アドレスを応答するように制御する。例えば、名前解決装置は、クライアントのIPアドレスを、予め、VRFl経由の経路を利用させたいIPアドレスのグループ、VRFm経由の経路を利用させたいIPアドレスのグループ、VRFn経由の経路を利用させたいIPアドレスのグループに分けて管理する。
そして、名前解決装置は、名前解決の問い合わせ(クエリ)を受け付けると、問い合わせ元のIPアドレスを参照し、そのIPアドレスが、VRFl経由の経路を利用させたいIPアドレスのグループに属するIPアドレスである場合には、「movie@vrf(l+m+n).vpnj.example.com」の名前解決要求に対して(25)のIPアドレスを応答する。また、名前解決装置は、問い合わせ元のIPアドレスを参照し、そのIPアドレスが、VRFm経由の経路を利用させたいIPアドレスのグループに属するIPアドレスである場合には、「movie@vrf(l+m+n).vpnj.example.com」の名前解決要求に対して(26)のIPアドレスを応答する。また、名前解決装置は、問い合わせ元のIPアドレスを参照し、そのIPアドレスが、VRFn経由の経路を利用させたいIPアドレスのグループに属するIPアドレスである場合には、「movie@vrf(l+m+n).vpnj.example.com」の名前解決要求に対して(27)のIPアドレスを応答する。
すると、図6の実線に示すように、VPNi配下のクライアントのうち、例えばユーザAは、(25)のIPアドレスを用いて通信を行い、VRFlの経路を用いて動画配信サービスを利用することになる。また、図6の点線に示すように、例えばユーザBは、(26)のIPアドレスを用いて通信を行い、VRFmの経路を用いて動画配信サービスを利用することになる。また、図6の一点鎖線に示すように、例えばユーザCは、(27)のIPアドレスを用いて通信を行い、VRFnの経路を用いて動画配信サービスを利用することになる。
このように、方式Bを用いた具体例において、トラヒックは3つの経路に分散される。なお、図6において集合仮想ルータは、仮想ルータ毎に異なる筐体であるが、このような構成によれば、各集合仮想ルータの負荷を低減することが可能である。
(方式C)
図7及び図8は、実施例1に係る方式Cを説明するための図である。以下では、具体例として、VPNi及びVPNjをVPN間接続するものとし、VPNi配下の端末は、いわゆるクライアントであり、VPNj配下の端末は、いわゆるサーバであると想定する。
図7に示すように、例えば、VPN間接続管理システム100は、VPNi又はVPNjの管理者などから、VPNj配下のサーバを識別する名前と拠点内アドレスとを受け付ける。例えば、VPN間接続管理システム100は、VPNj配下には「serverA@vpnj.example.com」という名前の動画配信サービスを提供するサーバが設置され、拠点内アドレスは「aj(A)」であるとの情報を、VPN間接続要求とともに受け付ける。なお、これらの情報は、例えば事前に受け付けた情報として、VPN間接続情報記憶部121に格納されていてもよい。
図7に示すように、例えば、VPN間接続管理システム100は、VPN間接続要求受付部131においてこれらの情報を受け付ける。VPN間接続要求受付部131は、受け付けたこれらの情報に基づいてVPN間接続に用いられる経路を設計する。ここでは、経路の数は、何らかの理由により事前に与えられているとする。例えば、固定的に経路の数「3」が与えられているとする。すると、VPN間接続要求受付部131は、VPNiとVPNjとの間に3つの経路(VRFl、VRFm、VRFn)を設定する必要があることを決定する。そして、VPN間接続要求受付部131は、VPN間接続要求や、これらの設計情報を、アドレス決定部132やルーティング情報生成部135に送る。なお、ルーティング情報生成部135は、アドレス決定部132によって決定されたアドレスや設計情報を用いてルーティング情報を生成することになるが、例えば公知の技術によって実現することが可能であり、説明を割愛する。
さて、アドレス決定部132は、VPNiとVPNjとの間に3つの経路(VRFl、VRFm、VRFn)を設定する必要があるとの設計情報を受け取り、この設計情報とVPN間接続要求とに基づいて、第一アドレス及び第二アドレスを決定する。
ここでは、特に第一アドレスについて説明する。まず、アドレス決定部132は、「serverA」の拠点内アドレスは「a
j(A)」であることを用いて、VRF
l経由の経路の場合の第一アドレスとして(31)のIPアドレスを決定する。また、アドレス決定部132は、VRF
m経由の経路の場合の第一アドレスとして(32)のIPアドレスを決定する。また、アドレス決定部132は、VRF
n経由の経路の場合の第一アドレスとして(33)のIPアドレスを決定する。そして、アドレス決定部132は、決定したこれらの第一アドレスを、対応情報生成部137に送る。
対応情報生成部137は、アドレス決定部132によって決定されたIPアドレスに基づいて、対応情報を生成する。まず、対応情報生成部137は、「serverA」が提供するサービスは動画配信サービスであることから、この動画配信サービスを提供するサーバをVPNi内で識別する名前として、「movie@vrf(l+m+n).vpnj.example.com」を決定する。
次に、対応情報生成部137は、(31)のIPアドレスと「movie@vrf(l+m+n).vpnj.example.com」とを対応付けた対応情報として、(34)の対応情報を生成する。同様に、対応情報生成部137は、(32)のIPアドレスと「movie@vrf(l+m+n).vpnj.example.com」とを対応付けた対応情報として、(35)の対応情報を生成する。また、対応情報生成部137は、(33)のIPアドレスと「movie@vrf(l+m+n).vpnj.example.com」とを対応付けた対応情報として、(36)の対応情報を生成する。
そして、対応情報設定部138は、対応情報生成部137によって生成された対応情報を、名前解決装置に設定する。なお、対応情報生成部137によって生成されたサーバ名は、オフライン、又は、ユーザ用のWebサーバなどによって、VPNi及びVPNjの利用者や管理者に伝えられる。
この結果、例えば、VPNi配下のクライアントの利用者は、全員、VPNj配下のサーバ名が「movie@vrf(l+m+n).vpnj.example.com」であると認識する。すなわち、利用者に認識される名前自体は、経路によって異ならない。すると、全てのVPNi配下のクライアントが、名前解決装置に対して「movie@vrf (l+m+n).vpnj.example.com」の名前解決を問い合わせることになり、これだけではトラヒックを分散することができない。この点、方式Cにおいては、名前解決装置が、名前解決の問い合わせに対して、所定の規則に従って異なる第一アドレスを応答するように、ここではタイミングによって異なる第一アドレスを応答するように制御することで、トラヒックの分散を実現する。
すなわち、方式Cにおいて、名前解決装置は、予め、3N+1(Nは0以上の整数)回目のアクセスについてはVRFl経由の経路を利用させること、3N+2(Nは0以上の整数)回目のアクセスについてはVRFm経由の経路を利用させること、3(N+1)(Nは0以上の整数)回目のアクセスについてはVRFn経由の経路を利用させることを、規則として決めておく。
そして、名前解決装置は、このサーバに関する名前解決の回数を判定し、3N+1回目のアクセスである場合には、「movie@vrf(l+m+n).vpnj.example.com」の名前解決要求に対して(31)のIPアドレスを応答する。また、名前解決装置は、3N+2回目のアクセスである場合には、「movie@vrf(l+m+n).vpnj.example.com」の名前解決要求に対して(32)のIPアドレスを応答する。また、名前解決装置は、3(N+1)回目のアクセスである場合には、「movie@vrf(l+m+n).vpnj.example.com」の名前解決要求に対して(33)のIPアドレスを応答する。
すると、図8に示すように、方式Cを用いた具体例において、同じ名前に対する問い合わせに対し、応答するIPアドレスをその都度順番に変更する結果、トラヒックは3つの経路に時間的に分散される。なお、図8において集合仮想ルータは、仮想ルータ毎に異なる筐体であるが、このような構成によれば、各集合仮想ルータの負荷を低減することが可能である。
[DNS装置の配置方法]
さて、これまで、方式A、方式B、及び方式Cの具体例を説明してきたが、以下では、VPN間通信システムにおける名前解決装置の配置方法について説明する。なお、以下では、名前解決装置の一例として、DNS装置を配置する方法を説明する。
図9及び図10は、実施例1に係るDNS装置の配置方法を説明するための図である。例えば、図9に示すように、広域ネットワークに広域ネットワークDNS装置が配置されるとともに、各VPNにもDNS装置が配置される構成が考えられる。例えば、VPN1に配置されたDNS装置1は、VPN1内あるいはインターネット(図示を省略)上の名前解決を行う。また、広域ネットワークには、広域ネットワークDNS装置が配置される。そして、集合仮想ルータに『共用リソース用仮想ルータ』を設定し、全てのVPNと広域ネットワークDNS装置との間をVPN間接続する。なお、例えば、各VPNと広域ネットワークDNS装置との間にファイアウォールを設置し(図示を省略)、ファイアウォールに、DNSの問い合わせ以外を通さない設定をする。
VPN1内の端末は、VPN間接続以外の名前解決についてはDNS装置1に問い合わせ、VPN間接続に関する名前解決については、広域ネットワークDNS装置に問い合わせる。具体的には、VPN1内の端末には、広域ネットワークドメインの名前解決については広域ネットワークDNS装置に問い合わせるように、検索条件が設定される。また、それ以外の名前解決については既存の検索条件を維持し、既存の検索順序で回送又は再帰問い合わせを行うように、検索条件が設定される。なお、端末に対する設定は、VPN1の管理者などが実施する。
一方、VPN1に設置されたDNS装置1に対しても設定を行う。例えば、DNS装置1の「named.conf」ファイルのoptionsステートメントに、以下に示す追記(3行目)を行う。なお、以下において、iは、i=1、2、・・・、nである。また、DNS装置1に対する設定は、VPN1の管理者などが実施する。
zone“vpn_i.vpn.example.co.jp”{
type stub;
masters{dns@vpn.example.co.jpのIPアドレス;};
file“vpn_i.vpn.example.co.jp.zone”;
forwarders{ };
また、DNS装置の配置方法は、これに限られるものではない。例えば、図10に示すように、まず、各VPNには、それぞれ、DNS装置が配置される。例えば、VPN1に配置されたDNS装置1は、VPN1内あるいはインターネット(図示を省略)上の名前解決を行う。
また、各VPNを収容するVPN終端装置に広域ネットワークDNS装置用のI/Fを作成し、アドレス変換装置経由で広域ネットワークDNS装置に接続する。また、例えば、広域ネットワークDNS装置用のI/Fと広域ネットワークDNS装置との間にファイアウォールを設置し(図示を省略)、ファイアウォールに、DNSの問い合わせ以外を通さない設定をする。
このように、広域ネットワークDNS装置、及び、各VPNのDNS装置を併用する配置方法の場合、広域ネットワークDNS装置と各VPNのDNS装置とを連携する仕組みが必要である。
まず、各VPN配下の端末が名前解決の問い合わせを行う手法としては、広域ネットワークDNS装置を優先(Preferred)DNSにする手法、各VPNのDNS装置を広域ネットワークDNS装置の管理するゾーンのセカンダリネームサーバとする手法、及び、各VPNにDNSプロキシを設置し、各VPN内のDNS装置と広域ネットワークDNS装置とに名前解決の問い合わせ(クエリ)を振り分ける手法等が考えられる。VPN間接続管理システムが生成した対応情報は、広域ネットワークDNS装置に登録されるので、第一の手法の場合は、広域ネットワークDNS装置が、協働空間の名前解決を行って各VPN配下の端末に応答すればよい。この場合、クエリのソースアドレスが広域ネットワークDNS装置で分かるため、前述した方式Bを実現可能である。
一方、第二の手法の場合には、広域ネットワークDNS装置のゾーンファイルを各VPNのDNS装置(セカンダリDNS)に転送する方法によって、さらに、いくつかの手法が考えられる。ひとつは、ゾーン転送を用いて、各VPNのDNS装置を広域ネットワークDNS装置のセカンダリDNSとする手法である。もうひとつは、ゾーン転送ではなくrsyncなどを用いて、各VPNのDNS装置を広域ネットワークDNS装置のセカンダリDNSとする手法である。DNSプロキシを使った第三の手法の場合、一旦DNSプロキシでクエリを受けて代理応答することによって、問い合わせ元への応答内容を制御できるため、より柔軟な経路の使い分けができる可能性がある。
[実施例1の効果]
このようなことから、実施例1において提案したVPN間接続を実現するための構成や、IPアドレス空間の独立化を用いれば、柔軟性の高いVPN間通信システムを実現することが可能になる。
まず、VPN間接続管理システムは、「Twice−NATによるアドレス変換技術」及び「仮想ルータ技術」を組み合わせることにより、IPアドレス空間を、各VPN、各仮想ルータ単位に独立化する。こうして、拠点間のIPアドレス競合を解決することが可能な構造を実現している。また、この結果として、VPN間接続管理システムは、「一つ」のVPNが「複数」のVPN間接続に同時に多重帰属する構造を実現する。更に、実施例1においては、「一つ」のVPN間接続について「複数」の仮想ルータが設定された。言い換えると、「一つ」のVPN間接続について「複数」の経路が設定された。そうであるとすると、実施例1においては、「一つ」のVPN間接続について「複数」の経路が設定されるとともに、このようなVPN間接続が、同時に多重帰属する数分重畳することになる。
このような柔軟性の高いVPN間通信システムを実現することができれば、例えば、トラヒックの経路分散や負荷分散、スケールアウトが可能なVPN間通信システムを実現することも可能になる。このとき、名前解決のためのシステムを如何に構築するかといった点が課題となり得る。この点、実施例1においては、経路毎に異なる『第一アドレス』と『名前』とを対応付けた対応情報を生成し、名前解決装置がこの対応情報を保持することで、『経路』と『第一アドレス』と『名前』との関係を保持する。そして、名前解決装置は、『名前』を用いた問い合わせに対して、ある経路に割り当てられた『第一アドレス』を応答することで、結果として、その問い合わせ元に対して『経路』を割り当てる。
なお、実施例1においては、各サーバが提供するサービスを複数の経路に分散して割り当て、割り当てた経路に応じたアドレスとサービスを識別する名前とを対応付けることにより対応情報を生成する例を説明したが、開示の技術はこれに限られるものではない。例えば、複数のサーバを複数の経路に分散して割り当て、割り当てた経路に応じたアドレスと各サーバを識別する名前とを対応付けることにより対応情報を生成する例にも、開示の技術を同様に適用することができる。