{第1の実施の形態}
{1.中継通信システムの全体構成}
以下、図面を参照しつつ、本発明の第1の実施の形態について説明する。図1は、中継通信システムの全体構成を示す図である。中継通信システムは、LAN1、2、WAN3等から構成される。WAN3は、たとえばインターネットなどの広域ネットワークである。
LAN1には、クライアント端末11、中継サーバ12が接続されている。LAN2には、クライアント端末21、22、中継サーバ23が接続されている。WAN3には、SIP(Session Initiation Protocol)サーバ31が接続されている。
クライアント端末11、21、22は、パーソナルコンピュータなどの端末である。中継サーバ12、23は、LAN1とLAN2との間でクライアント端末間の通信を中継する。SIPサーバ31は、中継サーバ12、23の相互間の通信を中継する。本実施の形態においては、中継サーバ12、23の相互間の通信プロトコルとして、SIPを利用するが、SIP以外のプロトコルを利用してもよい。
{2.中継サーバの構成要素}
図2は、中継サーバ12(23)の構成要素を示す図である。中継サーバ12(23)は、インターフェース部121(231)、制御部122(232)、データベース格納部123(233)を備える。図2において、括弧のない符号は、中継サーバ12に関する符号であり、括弧が付されている符号は、中継サーバ23に関する符号である。
インターフェース部121(231)は、ローカルIPアドレスを利用して、LAN1(2)に接続されるクライアント端末11(21、22)と通信を行う。インターフェース部121(231)は、グローバルIPアドレスを利用して、WAN3に接続されるSIPサーバ31等と通信を行う。
制御部122(232)は、LANドライバ151(251)、LAN側IPパケット処理部152(252)、WAN側IPパケット処理部153(253)、ルーティング制御部154(254)、中継サーバ間コネクション処理部155(255)、中継サーバXコネクション部156(256)を備える。
LANドライバ151(251)は、インターフェース部121(231)を制御するドライバソフトウェアである。LAN側IPパケット処理部152(252)は、LAN側から受信した通信パケットを処理し、ルーティング制御部154(254)に出力する。ルーティング制御部154(254)は、データベース格納部123(233)に格納された情報に基づいて、通信パケットのルーティング先を決定する。中継サーバ間コネクション処理部155(255)は、データベース格納部123(233)に格納された情報に基づいて、通信パケットを中継すべきコネクションを決定し、中継サーバXコネクション部156(256)に出力する。中継サーバXコネクションは、実際に、特定の中継サーバXとの間で構築されているコネクションを示している。中継サーバXコネクション部156(256)は、通信パケットをWAN側IPパケット処理部153(253)に出力する。
また、制御部122(232)は、データベース格納部123(233)に格納される各種データベースの作成、更新を行なう。データベース格納部123(233)は、中継グループ情報格納部124(234)、中継サーバ情報格納部125(235)、クライアント端末情報格納部126(236)から構成される。
{3.処理の流れ}
図3は、中継グループ情報、中継サーバ情報、クライアント端末情報の作成に関わる処理の流れを示す図である。中継サーバ12、23の管理者は、LAN1、2の相互間において中継通信システムのグループを構築し、LAN1、2間でルーティング機能を有効化することを取り決めている。
<3.1 ステップS1〜ステップS2>
中継サーバ12、23の管理者は、クライアント端末11、21のユーザに対して、アカウントを作成する(ステップS1、ステップS2:CreateAccount())。制御部122、232は、中継サーバ情報51−1、51−2を作成して、中継サーバ情報格納部125、235に格納する。中継サーバ情報51−1、51−2は、中継通信システムを構成する中継サーバの詳細を示す情報であり、図4に示すように、上位情報511−1、511−2、下位情報512−1、512−2から構成される。
上位情報511−1、511−2は、上位にある中継サーバについての情報である。「id」、「name」は、中継サーバの識別情報、名称を示す。中継サーバが起動しているときには、中継サーバ起動情報513−1、513−2として「active」が設定される。これにより、中継サーバが起動しているかどうかについての情報が、中継通信システム全体で共有される。
図4に示す中継サーバ情報51−1では、「id」として、「relay−server−1@abc.net」が、「name」として、「RELAY SERVER 1」が設定されている。中継サーバ情報51−2では、「id」として、「relay−server−2@abc.net」が、「name」として、「RELAY SERVER 2」が設定されている。中継サーバ起動情報513−1、513−2には「active」が設定され、中継サーバ12、23が共に起動している状態を示している。
下位情報512−1、512−2は、下位にあるクライアント端末についての情報である。「div」、「id」、「name」は、クライアント端末の部署名、識別情報、名称を示す。「group」は、クライアント端末が所属する中継グループの識別情報を示す。クライアント端末サイト情報514−1、514−2には、クライアント端末がログオンしている中継サーバの識別情報が示される。これにより、クライアント端末が中継サーバにログオンしているか否かの情報が、中継通信システム全体で共有される。
図4の示す中継サーバ情報51−1では、「div」として、「software」が、「group」として、「20070402133100@relay−server−1.abc.net」が設定されている。また、「id」として、「client−1@relay−server−1.abc.net」が、「name」として、「CLIENT 1」が設定されている。クライアント端末サイト情報514−1は空欄であり、クライアント端末11のユーザが中継サーバ12にログオンしていないことが分かる。
図4に示す中継サーバ情報51−2では、「div」として、「software」が、「group」として、「20070402133100@relay−server−1.abc.net」が設定されている。また、「id」として、「client−2@relay−server−2.abc.net」が、「name」として、「CLIENT 2」が設定されている。クライアント端末サイト情報514−2は空欄であり、クライアント端末21のユーザが中継サーバ23にログオンしていないことが分かる。
<3.2 ステップS3〜ステップS4>
以下の説明においては、中継サーバ12、23の相互間の通信は、SIPサーバ31により中継される。中継サーバ12(23)は、SIPサーバ31に対して、中継サーバ23(12)のアカウントが通信先として指定されたデータなどを送信する。SIPサーバ31は、中継サーバ12、23のアカウントとグローバルIPアドレスとの対応付けを保持しており、グローバルIPアドレスを用いて中継サーバ間の通信を中継する。
中継サーバ12は、中継サーバ23に対して、中継通信システムのグループ構築を要求する(ステップS3:SetGroup())。制御部122、232は、中継グループ情報42を作成して、中継グループ情報格納部124、234に格納する。
図5の1番目の枠内は、中継グループ情報42を示す。中継グループ情報42は、中継グループを特定する情報、中継グループに参加している中継サーバを特定する情報などを含む。中継グループ情報42は、上位情報421、下位情報422から構成される。
上位情報421は、上位にある中継グループについての情報である。「id」は、中継グループの識別情報であり、「20070402133100@relay−server−1.abc.net」が設定されている。「lastmod」は、中継グループ情報の最新更新時刻であり、「20070402133100」が設定されている。「name」は、中継グループの名称であり、「GROUP 1」が設定されている。
下位情報422は、下位にある中継サーバについての情報である。「id」は、中継サーバの識別情報であり、2つの中継サーバ「relay−server−1@abc.net」、「relay−server−2@abc.net」が設定されている。
次に、中継サーバ12は、中継サーバ23に対して、中継サーバ情報の交換を要求する(ステップS4:exchange(db))。中継サーバ12は、中継サーバ23に対して、中継サーバ情報51−1を送信する。中継サーバ23は、中継サーバ12に対して、中継サーバ情報51−2を送信する。これにより、中継サーバ12、23は、中継サーバ情報51−1、51−2を合成して中継サーバ情報52を作成し、中継サーバ情報格納部125(235)に格納する。
図5の2番目の枠内は、中継サーバ情報52を示す。上位情報521−1、521−2は、各々、図4の上位情報511−1、511−2と同様である。下位情報522−1、522−2は、各々、図4の下位情報512−1、512−2と同様である。
また、制御部122は、クライアント端末情報62を作成して、クライアント端末情報格納部126に格納する。制御部232は、クライアント端末情報72を作成して、クライアント端末情報格納部236に格納する。なお、クライアント端末情報62、72の作成処理および格納処理は、ステップS1、S2において実行される。
図5の3番目および4番目の枠内は、クライアント端末情報62、72を示す。「div」は、クライアント端末の部署名を示し、「group」は、クライアント端末が所属する中継グループの識別情報を示す。クライアント端末情報62、72では、いずれも「div」として、「software」が設定され、「group」として、「20070402133100@relay−server−1.abc.net」が設定されている。
「id」、「name」、「pass」は、クライアント端末の識別情報、名称、パスワードを示す。クライアント端末情報62では、「id」として、「client−1@relay−server−1.abc.net」が、「name」として、「CLIENT 1」が、「pass」として、「client−1」が設定されている。クライアント端末情報72では、「id」として、「client−2@relay−server−2.abc.net」が、「name」として、「CLIENT 2」が、「pass」として、「client−2」が設定されている。
クライアント端末アドレス情報621、721は、クライアント端末のIPアドレスを示す。クライアント端末有効期限情報622、722は、クライアント端末のレジスト有効期限を示す。クライアント端末ポート情報623、723は、クライアント端末のポート番号を示す。図5では、クライアント端末アドレス情報621、721およびクライアント端末ポート情報623、723は空欄であり、クライアント端末11、21のユーザは、中継サーバ12、23にログオンしていない状態を示している。
以上の処理の流れにより、中継グループ情報42、中継サーバ情報52は、中継サーバ12、23により共有される。また、中継サーバ12は、クライアント端末情報62を保有し、中継サーバ23は、クライアント端末情報72を保有する。
<3.3 ステップS5〜ステップS7>
クライアント端末11のユーザは、クライアント端末11の識別情報とパスワードを入力し、中継サーバ12にログオンする(ステップS5:REGISTER)。制御部122は、クライアント端末情報62を参照し、クライアント端末11のユーザ認証を行う。
制御部122は、クライアント端末11のユーザのログオンを受け付けると、中継サーバ情報52を更新して中継サーバ情報53を作成する。また、制御部122は、クライアント端末情報62を更新してクライアント端末情報63を作成する。
続いて、クライアント端末11は、中継サーバ12に対して、中継グループ情報および中継サーバ情報の提供を要求する(ステップS6:get())。中継サーバ12は、クライアント端末11に対して、中継グループ情報42および中継サーバ情報53を送信する。クライアント端末11は、中継グループ情報42、中継サーバ情報53を格納する。
制御部122は、中継サーバ情報53を参照し、中継サーバ23に関する中継サーバ起動情報533−2が「active」となっていることを確認すると、中継サーバ情報52が更新されたことを中継サーバ23に通知すべきと判断する。中継サーバ12は、中継サーバ23に対して、中継サーバ情報52が中継サーバ情報53に更新されたことを通知する(ステップS7:NOTIFY())。制御部232は、中継サーバ情報52を更新し、中継サーバ情報53を中継サーバ情報格納部235に格納する。
以上の処理により、中継グループ情報42および中継サーバ情報53が中継サーバ12、23およびクライアント端末11で共有される。また、中継サーバ12は、クライアント端末情報63を保有し、中継サーバ23は、クライアント端末情報72を保有する。
図6の2番目の枠内は、中継サーバ情報53を示す。更新部分を下線により示す。クライアント端末11のユーザは、中継サーバ12にログオンしている。そのため、下位情報532−1のクライアント端末サイト情報534−1には、「relay−server−1@abc.net」が登録されている。
図6の3番目の枠内は、クライアント端末情報63を示す。更新部分を下線により示す。クライアント端末11のユーザが中継サーバ12にログオンしたことにより、クライアント端末アドレス情報631に、クライアント端末11のアドレス「200.1.10.1」が登録されている。また、クライアント端末有効期限情報632に「1213935960484」が、クライアント端末ポート情報633に「5070」が登録されている。なお、中継サーバ情報42、クライアント端末情報72は更新されていない。
<3.4 ステップS8〜ステップS11>
クライアント端末21のユーザは、クライアント端末21の識別情報とパスワードを入力し、中継サーバ23にログオンする(ステップS8:REGISTER)。制御部232は、クライアント端末情報72を参照し、クライアント端末21のユーザ認証を行う。
制御部232は、クライアント端末21のユーザのログオンを受け付けると、中継サーバ情報53を更新して中継サーバ情報54を作成する。また、制御部232は、クライアント端末情報72を更新してクライアント端末情報74を作成する。
クライアント端末21は、中継サーバ23に対して、中継グループ情報および中継サーバ情報の提供を要求する(ステップS9:get())。中継サーバ23は、クライアント端末21に対して、中継グループ情報42および中継サーバ情報54を送信する。クライアント端末21は、中継グループ情報42、中継サーバ情報54を格納する。
制御部232は、中継サーバ情報54を参照し、中継サーバ12に関する中継サーバ起動情報543−1が「active」となっていることを確認すると、中継サーバ情報53が更新されたことを中継サーバ12に通知すべきと判断する。中継サーバ23は、中継サーバ12に対して、中継サーバ情報53が中継サーバ情報54に更新されたことを通知する(ステップS10:NOTIFY())。制御部122は、中継サーバ情報53を更新し、中継サーバ情報54を中継サーバ情報格納部125に格納する。
さらに、制御部122は、クライアント端末情報63を参照し、クライアント端末アドレス情報631が登録されているクライアント端末11に対して、中継サーバ情報53が中継サーバ情報54に更新されたことを通知する(ステップ11:NOTIFY())。クライアント端末11は、中継サーバ情報53を更新することにより、中継サーバ情報54を格納する。
以上の処理により、中継グループ情報42および中継サーバ情報54が中継サーバ12、23およびクライアント端末11、21で共有される。また、中継サーバ12はクライアント端末情報63を保有し、中継サーバ23はクライアント端末情報74を保有する。
図7の2番目の枠内は、中継サーバ情報54を示す。更新部分を下線により示す。クライアント端末21のユーザは、中継サーバ23にログオンしている。そのため、下位情報542−2のクライアント端末サイト情報544−2には、「relay−server−2@abc.net」が登録されている。
図7の4番目の枠内は、クライアント端末情報74を示す。更新部分を下線により示す。クライアント端末21のユーザが中継サーバ23にログオンしたことにより、クライアント端末アドレス情報741には、クライアント端末21のアドレス「210.10.20.1」が登録される。また、クライアント端末有効期限情報742には、「1213935978484」が、クライアント端末ポート情報743には、「5070」が登録される。なお、中継グループ情報42、クライアント端末情報63は更新されない。
<3.5 ステップS12〜ステップS14>
図8を参照する。中継サーバ12は、中継サーバ23にルーティングコマンドを送信する(ステップS12:setRouting)。中継サーバ12から中継サーバ23に送信されるルーティングコマンドには、中継サーバ12を経由してIPパケットをルーティングするネットワークのアドレスが含まれる。ここでは、中継サーバ12は、LAN1からのIPパケットをルーティングするので、LAN1のネットワークアドレス(200.1.10.0/24)が通知される(末尾の24はサブネットマスクである。)。中継サーバ23は、中継サーバ12からルーティングコマンドを受信すると、その応答として、中継サーバ23を経由してIPパケットをルーティングするネットワークのアドレスを通知する。ここでは、中継サーバ23は、LAN2からのIPパケットをルーティングするので、LAN2のネットワークアドレス(210.10.20.0/24)が通知される。
制御部122、232は、中継グループ情報42を更新することで中継グループ情報45を作成し、中継グループ情報格納部124(234)に格納する。中継サーバ12、23において中継グループ情報45が更新されると、中継サーバ12、23は、クライアント端末情報63、74を参照することで、更新情報を通知すべきクライアント端末を特定する。そして、中継サーバ23は、更新情報をクライアント端末21に通知する(ステップS13:NOTIFY())。中継サーバ12は、更新情報をクライアント端末11に通知する(ステップS14:NOTIFY())。
図9は、ステップS14の後で各中継サーバ12、23、クライアント端末11、21に格納されている情報を示す。中継グループ情報45の下位情報452には、各中継サーバの識別情報に対応付けて、IPルーティング可能となったネットワークアドレスが登録されている。これにより、中継グループ間で、IPルーティング可能となったネットワークアドレスが共有されることになる。なお、図9において、中継サーバ情報54、クライアント端末情報63、74は更新されていない。
<3.6 ステップS15〜ステップS20>
続いて、制御部122は、更新された中継サーバ情報56−1を作成し、中継サーバ23に通知する(ステップS15:NOTIFY)。この通知を受けて、制御部232は、更新された中継サーバ56−2を作成し、中継サーバ12に通知する。
図10は、ステップS15で交換された中継サーバ情報56−1、56−2を示している。図に示すように、中継サーバ情報56−1には、中継サーバ12のIPアドレス(200.1.10.254)と、クライアント端末11のIPアドレス(200.1.10.1)が登録されている。中継サーバ情報56−2には、中継サーバ23のIPアドレス(210.10.20.254)と、クライアント端末21のIPアドレス(210.10.20.1)が登録されている。
制御部122、232は、中継サーバ情報56−1、56−2を合成することで、中継サーバ情報57を作成し、それぞれ中継サーバ情報格納部125(235)に格納する。中継サーバ12、23において中継サーバ情報57が更新されると、中継サーバ12、23は、クライアント端末情報63、74を参照することで、更新情報を通知すべきクライアント端末を特定する。そして、中継サーバ23は、更新情報をクライアント端末21に通知する(ステップS16:NOTIFY())。中継サーバ12は、更新情報をクライアント端末11に通知する(ステップS17:NOTIFY())。
図11は、ステップS17の後で各中継サーバ12、23、クライアント端末11、21に格納されている情報を示す。中継サーバ情報57には、各中継サーバ12、23のIPアドレスと、各クライアント端末11、21のIPアドレスが登録されていることが分かる。このように、ルーティング機能が有効化されているグループ間で、中継サーバのIPアドレス、クライアント端末のIPアドレスが共有される。なお、中継グループ情報45、クライアント端末情報63、74は更新されていない。
以上の手順により、各中継サーバ12、23は、中継グループに参加し、中継サーバ12、23によってルーティング機能が有効化されているネットワークアドレス、中継サーバ12、23のIPアドレスを共有する。さらには、中継サーバ12、23は、中継サーバ12、23にログオンしているクライアント端末のIPアドレスも共有する。
再び、図8を参照する。続いて、中継サーバ12から中継サーバ23に対してルーティングセッションを確立するための開始要求を行なう(ステップS18:INVITE)。中継サーバ23から中継サーバ12に応答が返されると、中継サーバ12は中継サーバ23にACKを送信する(ステップS19)。中継サーバ23は、中継サーバ12からACKを受信すると、中継サーバ12との間でルーティングセッションを確立する(ステップS20:Routing Session)。これにより、中継サーバ12、23間でWAN3を介したルーティングセッションが確立される。
中継サーバ12、23間でルーティングセッションが確立されることで、ルーティング設定がされたネットワークアドレスを有するLANに接続された「通信端末」同士は、直接IPアドレスを指定した通信を行うことが可能である。ここで、「クライアント端末」という文言を使用せず、敢えて「通信端末」という文言を使用した。「クライアント端末」は、中継サーバに接続される端末であるのに対して、「通信端末」は「クライアント端末」を含む全ての端末を示している。これは、中継サーバに接続している「クライアント端末」のみならず、LAN1あるいはLAN2に接続された全ての「通信端末」からの通信パケットは、上記のルーティングセッションを利用してルーティング可能となるからである。中継サーバ12、23は、LAN側からの通信パケットを受信すると、その通信パケットの送信元IPアドレスと宛先IPアドレスとを取得する。そして、中継グループ情報45を参照して、送信元IPアドレスと宛先IPアドレスとが、ルーティング機能が有効化されているLANに対応したアドレスであるかどうかを確認する。ルーティング機能が有効化されている場合には、ルーティングセッションを確立している中継サーバ間で通信パケットをカプセル化して転送するのである。
たとえば、クライアント端末11からクライアント端末21のIPアドレスを指定した通信要求が発生したとする。中継サーバ12は、中継グループ情報45を参照することで、クライアント端末11およびクライアント端末21がルーティング可能なLANに存在するか否かを判定する。つまり、送信元であるクライアント端末11と宛先であるクライアント端末21のIPアドレスと、中継グループ情報45に設定されているネットワークアドレスおよびサブネットマスクから、クライアント端末11、21がルーティング可能なLANに存在するか否かを判定する。中継グループ情報45には、LAN1、2のネットワークアドレスが登録されており、クライアント端末11、21がルーティング可能なLANに存在することを確認する。このとき、転送される通信パケットは、中継サーバ12、23間でカプセル化されるので、クライアント端末11、21間では、WAN3の介在を意識することなく通信できる。そして、クライアント端末は、ローカルIPアドレスを利用して、直接WAN3を介して、他のLANに接続されたクライアント端末と通信することができる。なお、ここではクライアント端末11、21を例にあげて説明したが、クライアント端末を含む全ての通信端末からの通信パケットが同様の方法でルーティングされるのは、前述したとおりである。
図2のブロック図において、ルーティング処理の流れを説明する。中継サーバ12(23)は、インターフェース部121(231)、LANドライバ151(251)を介して通信パケットを受信する。通信パケットがLAN側から受信したものであれば、LAN側パケット処理部152(252)を介して、ルーティング制御部154(254)に通信パケットが出力される。ルーティング制御部154(254)は、中継グループ情報を参照し、ルーティング情報があるかどうかを確認する。ルーティング情報が存在する場合には、中継サーバ間コネクション処理部155(255)に通信パケットを出力する。
中継サーバ間コネクション処理部155(255)は、通信パケットの宛先IPアドレスに応じて中継すべきコネクションを決定し、生成されている中継サーバXコネクション部156(256)に通信パケットを受け渡す。中継サーバXコネクション部156(256)は、実際に特定の中継サーバとの間で構築されているコネクションである。
中継サーバXコネクション部156(256)は、通信パケットをWAN側IPパケット処理部153(253)に出力する。これにより、LANドライバ151(251)、インターフェース部121(231)を介して、通信パケットがルーティングセッションを利用して相手の中継サーバまで転送される。
本実施の形態の中継通信システムは、動的にルーティングを行うネットワークアドレスを決定するとともに、ルーティングに必要なルーティングセッションを確立してWAN3を介して通信端末間の通信パケットをルーティングすることが可能である。中継サーバ間で遠隔地にあるLANのネットワークアドレスを共有するので、中継システムによって動的にルーティングセッションを確立して、必要な時だけ遠隔地にある特定のネットワークアドレス同士をIPルーティング可能に接続することができる。通常、VPNでは、ネットワーク上に存在する端末のIPアドレスや接続状態を知るには、特別の手段が必要である。しかし、本実施の形態の中継通信システムでは、中継通信システム内の中継サーバやクライアント端末のIPアドレスと接続状態とが中継サーバ情報の共有により参照可能となる。
{第2の実施の形態}
{1.システムの構成と中継グループの設定内容}
次に、本発明の第2の実施の形態について説明する。図12は、第2の実施の形態に係る中継通信システムの全体構成を示す図である。この実施の形態では、さらに、LAN81がWAN3を介して接続されている。
LAN81には、クライアント端末811と中継サーバ812とが接続されている。また、LAN1には、クライアント端末11に加えてクライアント端末13が接続されている。中継サーバ812は、第1の実施の形態で説明した中継サーバ12、23と同様の機能を備えている。したがって、第2の実施の形態においては、3つのLAN1、2、81が中継通信システムに参加しており、3つのLAN間でルーティング制御が行なわれる。
図13は、中継サーバ12の構成要素を示す図である。第1の実施の形態と異なる点は、中継サーバ23コネクション部153−1と中継サーバ812コネクション部153−2が生成されている点である。つまり、第1の実施の形態においては、1対1の関係でLAN1、2がルーティングセッションを確立したが、この実施の形態においては、3つのLANが任意の組み合わせでルーティングセッションを確立する。そして、図13では、中継サーバ12が中継サーバ23および中継サーバ812との間でルーティングセッションを確立することにより、2つのコネクション部153−1、153−2が生成されている状態を示している。
図14は、中継サーバ12が参加している中継グループとルーティングパターンとの関係を示す図である。中継サーバ12は、中継グループGROUP1に参加している。GROUP1は、3つの中継サーバ12、23、812の間で形成されている中継グループである。
GROUP1では、中継サーバ12、23間のルーティングパターンと、中継サーバ12、812間のルーティングパターンが設定されている。
このように、GROUP1では、2つの独立したルーティングパターンが設定されている。たとえば、GROUP1では、中継サーバ23、812間でルーティングは行なわれない。1つの中継グループの中でも、独立したルーティングパターンを複数、個別に形成することができるので、より柔軟性の高い中継通信システムを構築することができる。
そして、図に示すように、各ルーティングパターンに対応付けてクライアントIDが設定されている。この設定により、各ルーティングパターンを利用できるクライアント端末の権限が設定されることになる。図の例では、中継サーバ12、23間のルーティングパターンには、クライアント端末11(client−1)とクライアント端末21(client−2)が設定されている。また、中継サーバ12、812間のルーティングパターンには、クライアント端末811(client−4)とクライアント端末13(client−5)が設定されている。
たとえば、クライアント端末11(client−1)が送出した通信パケットは、LAN2にはルーティングされるが、LAN3にはルーティングされないことになる。また、クライアント端末13(client−5)が送出した通信パケットは、LAN3にはルーティングされるが、LAN2にはルーティングされないことになる。
図15は、中継サーバ12が参加している中継グループに関する中継グループ情報を示す。図15は、GROUP1に関する中継グループ情報46である。図15において、第1の実施の形態と比較して新たに追加された情報に下線を引いている。
図15に示す中継グループ情報46において、上位情報461には、識別情報「id」として「20070402133100@relay−server−1.abc.net」が設定され、グループ名称「name」として、「GROUP1」が設定されている。
下位情報462には、中継サーバ12、23に加えて、中継サーバ812の情報が加わっている。中継サーバ812の情報として、「id」に「relay−server−3@abc.net」が設定され、ネットワークアドレスとして、「220.0.100.0/24」が設定されている。
さらに、ネットワークアドレスに続いて、ルーティングID463が設定されている。図の例では、中継サーバ12、23に対して、ルーティングID463として、“0001”が設定され、中継サーバ12、812に対して、ルーティングID463として“0002”が設定されている。ルーティングID“0001”は、図14にも示すように、GROUP1における中継サーバ12、23間のルーティングパターンを示している。ルーティングID“0002”は、GROUP1における中継サーバ12、812間のルーティングパターンを示している。
図16は、中継サーバ12、23、812間で共有される中継サーバ情報58を示している。第1の実施の形態における中継サーバ57と比較して、中継サーバ58には、LAN1に接続されたクライアント端末13の情報、LAN81に接続された中継サーバ812およびクライアント端末811の情報が追加されている。
下位情報582−1には、クライアント端末13に関する情報が追加されている。クライアント端末13の「id」として、「client−5@relay−server−1.abc.net」が設定され、「name」として、「CLIENT5」が設定されている。また、クライアント端末サイト情報として、「relay−server−1@abc.net」が設定され、クライアント端末13のIPアドレスとして、「200.1.10.2」が設定されている。また、クライアント端末11には、ルーティングID585−1として、“0001”が設定され、クライアント端末13には、ルーティングID585−1として、“0002”が設定されている。
上位情報581−3には、中継サーバ812に関する情報が追加されている。中継サーバ812の「id」として、「relay−server−3@abc.net」が設定され、「name」として「RELAY SERVER 3」が設定されている。また、中継サーバ812のIPアドレスとして、「220.0.100.254」が設定されている。
下位情報582−3には、クライアント端末811に関する情報が追加されている。クライアント端末811の「id」として、「client−4@relay−server−3.abc.net」が設定され、「name」として、「CLIENT4」が設定されている。また、クライアント端末サイト情報として、「relay−server−3@abc.net」が設定され、クライアント端末811のIPアドレスとして、「220.0.100.1」が設定されている。また、クライアント端末811には、ルーティングID585−3として、“0002”が設定されている。
また、下位情報582−2において、クライアント端末21には、ルーティングID585−2として、“0001”が設定されている。このように、クライアント端末11、21には、ルーティングID“0001”で識別されるルーティングパターンに対する権限が与えられている。また、クライアント端末13、811には、ルーティングID“0002”で識別されるルーティングパターンに対する権限が与えられている。
図17は、中継サーバ12、23、812が格納するクライアント端末情報68、74、98を示す。クライアント端末情報68には、クライアント端末13に関する情報が追加されている。クライアント端末13の「id」として、「client−5@relay−server−1.abc.net」が設定され、クライアント端末アドレス情報681には、クライアント端末13のIPアドレスとして、「200.1.10.2」が設定されている。クライアント端末情報74は、図9の状態と同じである。
クライアント端末情報98には、クライアント端末811に関する情報が設定されている。クライアント端末811の「id」として、「client−4@relay−server−3.abc.net」が設定され、クライアント端末アドレス情報981には、クライアント端末811のIPアドレスとして、「220.0.100.1」が設定されている。
{2.処理の流れ}
図18および図19のフローチャートを用いて、ルーティングセッション確立までの処理の流れと、実際に通信パケットをルーティングする処理の流れを説明する。まず、図18を用いてルーティングセッション確立に関わる処理を説明する。
まず、中継サーバの管理者がルーティング構成の設定を行う(ステップS101)。つまり、どの中継サーバと中継グループを構成するのか、どの中継サーバとの間でルーティンググループを形成するのか、どの中継サーバとの間でルーティング機能を有効化するかを設定する。たとえば、図14に示した例であれば、中継サーバ12の管理者は、中継サーバ12、23、812との間でGROUP1の中継グループを形成することを設定する。また、中継サーバ12の管理者は、GROUP1において、中継サーバ12、23間および中継サーバ12、812間でルーティングパターンを形成することを設定する。さらに、中継サーバ12の管理者は、GROUP1においては、中継サーバ12、23間および中継サーバ12、812間でルーティングセッションを構築することを設定する。
次に、ルーティングセッションを構築することが設定されている中継サーバを抽出する(ステップS102)。そして、抽出された中継サーバに対してルーティングコマンドを送信する(ステップS103)。つまり、図8のステップS12で示すように、ルーティングセッションを確立する相手の中継サーバに対して、自中継サーバがルーティングを行うLANのネットワークアドレスを通知する。これに対する応答として、相手中継サーバから相手中継サーバがルーティングを行うLANのネットワークアドレスを取得する(ステップS104)。この処理は、図8におけるステップS12の応答に対応している。
相手中継サーバから相手中継サーバがルーティングを行うネットワークアドレスを取得すると、中継サーバは、中継グループ情報を更新する(ステップS105)。つまり、図9の中継グループ情報45を用いて説明したように、中継グループ情報にルーティング機能が有効化されるネットワークアドレスが追加される。さらに、図15で示したように、ルーティング機能が有効化されるネットワークアドレスには、それぞれルーティングIDが設定される。そして、中継サーバ間でルーティングセッションを確立する(ステップS106)。この処理は、図8におけるステップS18〜S20に対応する。このように、本実施の形態に係るルーティング機能は、相互に通信できる中継サーバ間で、中継グループ情報を用いてルーティング設定されるネットワークアドレス情報を交換することで有効化される。そして、ルーティングのために確立されたルーティングセッションを用いて、中継通信システムの通信機能によってIPパケットのルーティング制御が行われる。このように、本実施の形態で有効化されるルーティングは、アプリケーション層において実行されるルーティングであり、通常のIPルーティングとは異なる。
次に、ステップS102で抽出した全ての中継サーバとのルーティングセッション確立が完了しているかどうかを判定し(ステップS107)、完了している場合には、ルーティングを開始する(ステップS108)。管理者によりルーティング機能がOFF操作されると(ステップS109でYES)、ルーティングセッションを切断し(ステップS110)、中継グループ情報を更新する(ステップS111)。つまり、中継グループ情報に設定されていたネットワークアドレス情報が削除される。
図19は、ルーティングセッションが確立されている状態で、中継サーバが通信パケットを実際にルーティングする処理を示すフローチャートである。中継サーバは、通信パケットを受信すると、通信パケットの解析を行い(ステップS201)、通信パケットがルーティングパケットであるかどうかの判定を行う(ステップS202)。通信パケットがルーティングパケットでないならば(ステップS202でNO)、通信パケットの受信処理を行う(ステップS204)。
通信パケットがルーティングパケットであるならば(ステップS202でYES)、通信パケットの送信元IPアドレスと宛先IPアドレスとを検出する(ステップS203)。そして、中継サーバは、検出した送信元IPアドレスと宛先IPアドレスとから通信パケットをルーティング可能か否か判定する。つまり、送信元IPアドレスおよび宛先IPアドレスに対応したネットワークアドレス情報が同一のルーティングIDを有するルーティング情報として中継グループ情報に設定されているかどうかを判定する(ステップS205)。
ルーティング可能な情報が中継グループ情報に含まれている場合には(ステップS205でYES)、クライアント端末情報に設定されている接続中のクライアント端末のIPアドレスと、通信パケットの送信元IPアドレスとを比較し、送信元の検出を行う(ステップS206)。そして、一致するアドレスが存在する場合には、送信元の通信端末はクライアント端末であると判定する(ステップS207でYES)。
送信元の通信端末がクライアント端末である場合には、中継サーバは、クライアント端末情報から送信元のクライアント端末のIDを検出し(ステップS208)、検出した送信元のクライアント端末にルーティングの権限があるか否かを判定する(ステップS209)。つまり、図15に示した中継グループ情報46と図16に示した中継サーバ情報58を参照し、送信元のクライアント端末が宛先のLANに対してルーティング権限があるか否かを判定する。
たとえば、送信元がクライアント端末11である場合、宛先のネットワークアドレスが210.10.20.0であれば、ルーティングID“0001”のルーティングパターンに対する権限がクライアント端末11に付与されている必要がある。中継サーバは、中継サーバ情報58を参照することで、クライアント端末11には、ルーティングパターン“0001”に対する権限があると判定する。宛先のネットワークアドレスが220.0.100.0である場合には、ルーティングID“0002”のルーティングパターンに対する権限が必要であるが、クライアント端末11には権限が付与されていないと判定される。
送信元のクライアント端末にルーティング権限がある場合(ステップS209でYES)、宛先のLANと直接ルーティングセッションが確立されているか否かを判定する(ステップS210)。宛先のLANと直接ルーティングセッションが確立されているならば(ステップS210でYES)、生成されているルーティングセッションを利用して通信パケットを送出する(ステップS211)。
図14の表を用いて例を説明する。たとえば、クライアント端末11からクライアント端末21を宛先とする通信パケットを中継サーバ12が受信したとする。中継サーバ12は、クライアント端末11、21が接続されたLAN1、2のネットワークアドレスが同じルーティングIDで関連付けられた上で中継グループ情報46に設定されていることから、ステップS205においては、ルーティング情報ありと判定する。さらに、中継サーバ12は、中継サーバ情報58を参照することにより、LAN1、2間のルーティングID“0001”で識別されたルーティングパターンに対する権限がクライアント端末11に付与されていることを確認する。そして、ルーティングID“0001”は、中継サーバ12、23間の1対1のルーティング設定であるので、中継サーバ12、23間でルーティングセッションが確立されている。具体的には、中継サーバ間コネクション処理部155が、中継サーバ23に対応した中継サーバ23コネクション部153−1を検出する。そこで、ステップS210においても、中継サーバ23との間のルーティングセッションありと判定され、ステップS211で直接LAN2に対してルーティング制御が行なわれる。
これに対して、宛先のLANと直接ルーティングセッションが確立されていなければ(ステップS210でNO)、迂回中継サーバとの間のルーティングセッションを利用して通信パケットを送出する(ステップS213)。たとえば、3つの中継サーバ12、23、812間で1つのルーティングパターンが形成されている場合、中継サーバ12、23間のルーティングセッションと中継サーバ23、812間のルーティングセッションが構築される場合が想定される。この場合は、中継サーバ12から中継サーバ812に対してルーティングされる通信パケットは、迂回中継サーバとして中継サーバ23を経由することになる。
また、ステップS211において、通信パケットを送出した後、通信エラーが発生した場合には(ステップS212でYES)、迂回中継サーバを利用して通信パケットを送出する。たとえば、3つの中継サーバ12、23、812間で1つのルーティングパターンが形成されている場合、中継サーバ12、23間、中継サーバ12、812間、中継サーバ23、812間に3つのルーティングセッションが構築されている場合がある。この場合、中継サーバ12は、まずステップS211において中継サーバ12、23間のルーティングセッションの利用を試み、通信エラーが発生した場合には、ステップS213で中継サーバ12、812間のルーティングセッションを利用するのである。通信パケットは最終的に中継サーバ812、23間のルーティングセッションを利用して転送される。なお、ステップS213において迂回中継サーバが存在しない場合には、エラー処理が行われる。
ステップS205において、ルーティング可能な情報が中継グループ情報に含まれていない場合には、送信元のクライアント端末に宛先到達不能を示す通知を行なう(ステップS214)。
図13のブロック図において、中継サーバ12におけるルーティング処理の流れを説明する。基本的には、図2で説明した処理内容と同様である。異なる点は、中継サーバ12は、2つの中継サーバ23、812との間でルーティングセッションを確立しているので、中継サーバ23コネクション部153−1、中継サーバ812コネクション部153−2が生成されている点である。
LAN側から受信した通信パケットが、インターフェース部121、LANドライバ151、LAN側IPパケット処理部152、ルーティング制御部154、中継サーバコネクション処理部155の順で処理される点は同様である。中継サーバコネクション処理部155は、通信パケットの宛先IPアドレスに応じて、中継サーバ23コネクション部153−1、中継サーバ812コネクション部153−2のいずれかのコネクション部に通信パケットを出力する。その後の処理の流れは図2と同様である。
このように、本実施の形態の中継通信システムは、中継サーバに複数の中継グループを設定することができ、各中継グループにおいて個別のルーティングパターンを設定することができる。そして、各ルーティングパターンを利用できるクライアント端末の権限を設定可能としている。これにより、中継グループを形成している複数のLANにおいて、様々なパターンでルーティング制御を行なうことができる。そして、LANに接続されたクライアント端末に対して、宛先のネットワークに応じたルーティング権限を付与することができる。そして、中継グループ情報、中継サーバ情報を更新することで、中継グループ、ルーティンググループ、ルーティング権限を動的に変更することができる。