〔発明の概要〕
本発明に係るネットワークシステムは、IPネットワーク上に配置された複数のゲートウェイ装置(パケット中継装置)と、複数のゲートウェイ装置のいずれかに夫々収容される複数のホスト(端末装置:「クライアント端末」とも呼ぶ)を備える。ゲートウェイ装置は、ゲートウェイ装置間の連携を通じて複数のホストをグループ化する機能と、各グループに属するホストを管理する機能とを有する。さらに、複数のゲートウェイ装置は、連携を通じてグループ内に閉じた仮想閉鎖ネットワークを構築し、この仮想閉鎖ネットワーク内で、パケットのユニキャスト,ブロードキャスト,及びマルチキャストを実現する。
仮想閉鎖ネットワークは、グループに属するホスト(グループメンバ)と、ホスト間で送受信されるパケットの伝送ルート上に位置する複数のゲートウェイ装置とから構成される。ゲートウェイ装置には、ホストを配下に持つ(収容する)ものと、ホストを配下に持たず、前ホップとしてのゲートウェイ装置からのパケットを次ホップとしてのゲートウェイ装置へ中継するものとがあり、また両方の機能をもつゲートウェイ装置もある。
ホストは、仮想閉鎖ネットワーク上において、実IPアドレスと異なる仮想IPアドレスを持つホストとして管理される。仮想IPアドレスは、ゲートウェイ装置で管理される。或るホストが送信元ホストとして、或るホストと同一のグループに属する宛先ホストにIPパケットを送信する(グループ内通信を行う)場合には、宛先ホストに割り当てられた仮想IPアドレスが宛先IPアドレスとしてIPパケットに設定される。IPパケットは、複数のゲートウェイ装置を通って宛先ホストに到着する。ゲートウェイ装置間には、VPN技術を用いたトンネルが確立され、ゲートウェイ装置間では、IPパケットは暗号化されて送受信される。
ゲートウェイ装置は、IPパケットの転送時に、経路探索(ルーティング)を実行する。本願の出願人は、IPパケットに設定された宛先IPアドレス(仮想IPアドレス)を用いてルーティングを行う技術を既に出願している(PCT/JP2005/003788,出願日2005年3月4日)。
仮想閉鎖ネットワーでのルーティングに適用される情報として、仮想IPアドレスを適用すれば、既に提案されているIPアドレスを用いたルーティング技術や管理技術を流用することができる。但し、この場合には、IPアドレスを用いたルーティング及び管理技術で非効率的な部分も取り込むことになる。
例えば、IPアドレスによるルーティングが実施される場合、IPルーティングテーブルには、IPアドレスとして採り得る値を考慮した多数のエントリを用意しなければならない。このため、所望のエントリ検索に時間がかかり、結果としてルーティングに時間がかかる。従って、送信パケット数が大きくなると、ゲートウェイ装置に多大な負荷がかかることになる。
本発明は、このような非効率的な部分を取り除き、仮想閉鎖ネットワークでのパケット転送に係る負荷を軽減することを目的の一つとしている。
〔第1実施形態〕
〈全体構成〉
図1は、本発明に係るネットワークシステムの全体構成例を示す図である。図1に示す例では、ネットワークシステムは、パケット中継装置としてのゲートウェイ装置GW−Aと、ゲートウェイ装置GW−AにネットワークX(グローバル側ネットワーク)を介して接続されたゲートウェイ装置GW−Bと、ゲートウェイ装置GW−BにネットワークY(グローバル側ネットワーク)を介して接続されたゲートウェイ装置GW−Cと、を備えている。
ゲートウェイ装置GW−Aは、ローカル側ネットワークLN1を収容しており、ローカル側ネットワークLN1に接続された端末装置(ホスト)aを収容している。ゲートウェイ装置GW−Bは、ローカル側ネットワークLN2を収容しており、ローカル側ネットワークLN2に接続された端末装置(ホスト)bを収容している。ゲートウェイ装置GW−Cは、ローカル側ネットワークLN3を収容しており、ローカル側ネットワークLN3に接続された端末装置(ホスト)cを収容している。
ゲートウェイ装置GW−A,GW−B及びGW−Cは、端末装置a,b及びcをグループ化し(グループ1)、グループ内でパケットがユニキャスト,ブロードキャスト及びマルチキャストされるようにした仮想閉鎖ネットワークを構築している。
仮想閉鎖ネットワークは、次のようにして構築されている。グループに属するホストには、グループ内のパケット通信に適用されるIPアドレス(仮想IPアドレス)が割り当てられる。
仮想IPアドレスは、ホストが通常のIPパケット通信を行う場合に使用する実IPアドレスと異なるIPアドレスであり、グループメンバ間の通信においてのみ有効に機能する。
仮想IPアドレスは、仮想閉鎖ネットワークで、パケットを中継する複数のゲートウェイ装置にて管理される。ゲートウェイ装置間には、IPsecのようなVPNトンネリング技術を用いたトンネルで直接接続される。
異なるゲートウェイ装置に夫々接続された同一グループのホスト間でIPパケットの送受信(グループ内通信)が2以上のゲートウェイ装置を介して行われる場合には、次の動作が行われる。
送信元のホストを収容するゲートウェイ装置は、送信元ホストから受信されるIPパケットに対し、ゲートウェイ間通信(GW間通信)で経路探索に使用する情報(ルーティング情報)が設定されたヘッダ(「GWヘッダ」又は「グループ内通信用ヘッダ」と呼ぶ)をIPパケットに付与する処理(カプセル化)を行う。
また、GWヘッダが付与されたIPパケット(IP packet with GW header: 「カプセル化パケット(encapsulated packet)」とも呼ぶ)に対して、トンネル通信に適用される暗号化を行い、宛先ホストを収容するゲートウェイ装置へ向けて送信する。宛先ホストを収容するゲートウェイ装置へIPパケットを中継するゲートウェイ装置は、カプセル化パケットの復号化を行い、GWヘッダを参照してルーティングを行い、宛先ホストを収容するゲートウェイ装置へカプセル化パケットを送信する。宛先ホストを収容するゲートウェイ装置は、カプセル化パケットの復号化,デカプセル化(GWヘッダの削除)を行い、宛先ホストへ転送する。
このように、ゲートウェイ装置が中継ノードとなり、ゲートウェイ装置間を結ぶトンネルがリンクとなる仮想閉鎖ネットワークがネットワーク上に構築される。これにより、ホスト毎にVPNが構築された状態で、グループ内におけるホスト間通信が実現される。また、グループ内で、宛先の仮想IPアドレスとしてブロードキャストアドレス又はマルチキャストアドレスが指定されることで、グループに対するブロードキャスト又はマルチキャストが実現される。
図1に示す例では、端末装置a,b及びcは、同一のグループ(グループ1)に属しており、端末装置a,b及びcを収容するゲートウェイ装置GW−A,GW−B及びGW−Cは、グループに係る情報を管理する。グループに係る情報は、グループに属するホストの情報を含み、ホストの情報はホストに割り当てられた仮想IPアドレスを含む。また、グループ1に係る情報は、ゲートウェイ装置間の通信で経路探索に使用されるルーティング情報を含む。
〈ゲートウェイ装置の構成例〉
図2は、ゲートウェイ装置GW−A,GW−B及びGW−Cに適用されるゲートウェイ装置の構成例を示す図である。図2において、ゲートウェイ装置(以下、「GW装置」と表記)10は、端末装置(ローカル側ネットワーク)と接続されるローカル側インタフェース11と、異なるGW装置とグローバル側ネットワーク(例えばネットワークX,Y)を介して接続されるグローバル側インタフェース12とを備えている。以下の説明において、「通し番号」を「通番」と表記することもある。
ローカル側インタフェース11には、GWヘッダ及びNAT(Network Address Translation)処理部13(以下、「ヘッダ処理部13」と表記)が接続されている。ヘッダ処理部13は、転送通番処理部14と、IPルーティング処理部15とに接続されている。転送通番処理部14及びIPルーティング処理部15は、トンネル処理部16に接続されている。トンネル処理部16は、パケット送受信部17に接続されている。パケット送受信部17は、グローバル側インタフェース12に接続されている。
また、GW装置10は、ヘッダ処理部11によって参照される仮想IP,グループ及び転送通番管理テーブル18(以下、「管理テーブル18」と表記)と、転送通番処理部14によって参照される転送通番テーブル19(以下、「通番テーブル19」)と、IPルーティング処理部15によって参照されるIPルーティングテーブル20とを備えている。
管理テーブル18及び通番テーブル19は、記憶装置(メモリなど)を用いて構成される記憶部21上に作成されており、IPルーティングテーブル20は、記憶部21と同一又は異なる記憶部上に作成されている。
ヘッダ処理部13は、ローカル側インタフェース11から受信されるIPパケットが通常のIPパケットか、グループメンバ間で送受信されるIPパケットかを判定する。IPパケットが通常のIPパケットであれば、このIPパケットをIPルーティング処理部15に転送する。
これに対し、IPパケットがグループメンバ間で送受信されるIPパケットであれば、管理テーブル18を参照してNAT処理(グローバルアドレス(仮想IPアドレス)とローカルアドレス(実IPアドレス)との間の変換処理),IPパケットに対するGWヘッダ付与,送信元IPアドレス(SA)及び宛先IPアドレス(DA)に対応する発信元転送通番(SN)及び宛先転送通番(DN)の設定,並びに転送通番処理部14に対する内部管理転送通番(LTN)の指定を行う。
また、ヘッダ処理部13は、転送通番処理部14からGWヘッダを有するIPパケット(カプセル化パケット)を受け取った場合に、このIPパケットに対するDA及びSAの設定(NAT処理),GWヘッダの削除,ローカル側ネットワークへの転送を行う。さらに、ヘッダ処理部13は、IPルーティング処理部15からIPパケットを受信した場合には、IPルーティング処理部15からの指示に従って、IPパケットをローカル側ネットワークへ転送する。
転送通番処理部14は、ヘッダ処理部13からIPパケットを受け取った場合には、ヘッダ処理部13から指定されたLTNに基づき、通番テーブル19を参照し、GWヘッダに対するルーティング情報の設定(LTNに対応する転送通番(TN)及びグループ通番(GN)の設定)及び出力ポートの指定を行い、カプセル化パケットをトンネル処理部16に転送する。
また、転送通番処理部14は、トンネル処理部16からカプセル化パケットを受け取った場合には、GWヘッダと通番テーブル19とを参照し、このパケットの転送先がローカル側ネットワークとグローバル側ネットワークとのどちらであるかを決定する。パケットがローカル側ネットワークに転送される場合には、転送通番処理部14は、このパケットをヘッダ処理部13に転送する。パケットがグローバル側ネットワークに転送される場合には、転送通番処理部14は、このパケットのGWヘッダ中のルーティング情報の更新(書き換え)を行い、トンネル処理部16に転送する。
IPルーティング処理部15は、ヘッダ処理部13又はトンネル処理部16からIPパケットを受信した場合に、IPルーティングテーブル20を参照し、IPパケットのDAに対応する出力ポートを決定し、この出力ポートの指定とともにIPパケットをトンネル処理部16又はヘッダ処理部13へ転送する。
トンネル処理部16は、転送通番処理部14からのパケットに対してトンネリングのための暗号化処理等を行い、パケット送受信部17に転送する。また、トンネル処理部16は、IPルーティング処理部15からのパケットを出力ポートの指定とともにパケット送受信部17に渡す。
また、トンネル処理部16は、パケット送受信部17から受け取ったパケットを復号化し、このパケットに対するGWヘッダの有無を判定し、パケットがGWヘッダを有する場合には、このパケットを転送通番処理部14に転送する。パケットがGWヘッダを有しない場合には、トンネル処理部16は、このパケットをIPルーティング処理部15に転送する。パケット送受信部17は、IPパケットの送受信処理を行う。
図2に示したGW装置10の構成では、ローカル側とグローバル側との間のルートとして、転送通番処理部14を通過する第1のルートと、IPルーティング処理部15を通過する第2のルートとが設けられている。第2のルートは、通常のIPパケット処理用のルートであり、例えば、ローカル側の端末装置からグローバル側のインターネット上にあるWebページを閲覧する場合に使用される。これに対し、第1のルートは、GW間を通じてグループ内通信が実行される場合に、IPパケットに付与されるGWヘッダを処理するために使用される。
このため、ヘッダ処理部13及びトンネル処理部16は、受信パケットのヘッダを参照して、第1及び第2のルートのいずれにパケットを転送するかを判定する機能を有している。
なお、ヘッダ処理部13が、本発明の転送制御部に相当する。また、パケット送受信部17が本発明の受信部,送信部に相当する。また、転送通番処理部14が本発明の検索部に相当する。また、トンネル処理部16が本発明の暗号化部及び復号化部に相当する。もっとも、パケット送受信部17の代わりに、送信部と受信部とが設けられていても良い。あるいは、トンネル処理部16の代わりに、暗号化部と復号化部とが設けられていても良い。
〈テーブルのデータ構造〉
次に、図2に示した管理テーブル18及び通番テーブル19のデータ構造例について説明する。図3は、管理テーブル18内に備えられるローカルテーブル23のデータ構造例を示す図であり、図4は、管理テーブル18内に備えられるグローバルテーブル24のデータ構造例を示す図である。図5は、通番テーブル19内に備えられる受信転送テーブル25のデータ構造例を示す図であり、図6は、通番テーブル19内に備えられる送信転送テーブル26のデータ構造例を示す図である。
図3に示すように、ローカルテーブル23は、実IPアドレス(Real IP address: R-IP)と、発信元通番(Source serial Number: SN)と、グループ通番(Group serial Number: GN)とを要素とする1以上のエントリからなる。
実IPアドレスは、ホスト(端末装置)に割り当てられた、通常のIP通信に使用されるIPアドレスであり、ローカルアドレスとして管理される。SNは、グループ内通信中のGW間通信にて使用される、送信元ホストに割り当てられた通し番号を示す。各ホストには、グループ内通信で使用される通し番号(ホスト通し番号:「端末通番」とも表記)が予め割り当てられる。端末通番は、グループ内において一意に定義される。GNは、GW間通信にて使用される、各グループに割り当てられた通し番号を示す。GNは、GW装置毎に、一意に定義される。GN値として、自GW装置がグループに対して割り当てた値が格納される。
図4に示すように、グローバルテーブル24は、仮想IPアドレス(Virtual IP address: V-IP)と、宛先通番(Destination serial Number: DN)と、GNと、内部管理転送通番(Local management Transmission serial Number: LTN)とを要素とする1以上のエントリからなる。
仮想IPアドレスは、仮想閉鎖ネットワークにおけるホストのIPアドレスであり、グローバルアドレスとして管理される。DNは、宛先ホストに割り当てられた端末通番を示す。GN値は、自GW装置がグループに対して割り当てた値が設定される。LTNは、GW装置10内(ローカル)で管理されるルーティング情報検索のための通し番号(内部管理番号)であり、送信転送テーブル26(図6)の検索キー(ポインタ)として使用される。
図5に示すように、受信転送テーブル25は、転送通番(Transmission serial Number: TN)と、LTNとを要素とする1以上のエントリからなる。TNは、パケットの宛先識別番号として機能する通し番号である。LTNは、送信転送テーブル26に格納されるルーティング情報の検索キー(ポインタ)として機能する。
図6に示すように、送信転送テーブル26は、LTNと、LTNに対応するルーティング情報(TN,GN,及び出力ポート値(Outport))とを要素とする1以上のエントリからなる。TN値として、次ホップのGW装置における受信転送テーブル25の検索キーとなる値が設定される。また、GNとして、次ホップのGW装置においてグループに対して割り当てられたGN値が設定される。出力ポート値は、パケットの出力ポート値を示す。
上述したローカルテーブル23,グローバルテーブル24,受信転送テーブル25,及び送信転送テーブル26は、GW装置10が管理するグループ毎に用意される。
なお、受信転送テーブル25が本発明の第1テーブルに相当し、送信転送テーブル25が本発明の第2テーブルに相当し、グローバルテーブル24が本発明の第3テーブルに相当する。さらに、ローカルテーブルを本発明の第4テーブルとして定義することができる。
〈動作例〉
次に、第1実施形態におけるネットワークシステムにおける動作例について説明する。動作例として、図1に示した端末装置aから端末装置cへグループ内通信に係るパケット転送を行う例について説明する。
図1に示すように、グループ1には、端末装置a,b及びcが参加している。端末装置aは、実IPアドレス“a”を有している。また、端末装置aには、仮想IPアドレス“aD”が割り当てられるとともに、グループ1に端末通番“101”が割り当てられている。端末装置bは、実IPアドレス“b”を有している。端末装置bには、仮想IPアドレス“bD”が割り当てられるとともに、グループ1における端末通番“102”が割り当てられている。端末装置cは、実IPアドレス“c”を有している。端末装置bには、仮想IPアドレス“cD”が割り当てられるとともに、グループ1における端末通番“103”が割り当てられている。
また、GW装置GW−Aは、グループ1に対してGN“1”を割り当てている。GW装置GW−Bは、グループ1に対してGN“10”を割り当てている。GW装置GW−Cは、グループ1に対してGN“20”を割り当てている。
端末装置aは、GW装置GW−Aへ向けてデータにTCP/IPヘッダが付加されたパケット(IPパケット)を送信する。このIPパケットには、送信元IPアドレス(SA)として、端末装置aの実IPアドレス“a”が設定されるとともに、宛先IPアドレス(DA)として、端末装置cの仮想IPアドレス“cD(c-dash)”が設定される。
GW−Aは、IPパケットをローカル側インタフェース11(図2)で受信すると、このIPパケットに対する転送処理を実行する。図7は、GW装置GW−Aの管理テーブル18及び通番テーブル19に格納されたグループ1に対するローカルテーブル23A,グローバルテーブル24A,受信転送テーブル25A,及び送信転送テーブル26Aを示す図であり、図8は、GW装置GW−A内における処理を示すフローチャートである。
図8において、ローカル側インタフェース11でIPパケットが受信されると(ステップS01)、そのIPパケットはヘッダ処理部13に転送される。ヘッダ処理部13は、IPパケットから宛先IPアドレス(DA)を取り出すとともに、管理テーブル18内のグローバルテーブル24(図4)を参照し、DAがグローバルテーブル24に存在するか否かを判定する(ステップS02)。
DAがグローバルテーブル24に存在しない場合(即ち、DAが仮想IPアドレスでない場合。S02;NO)には、IPパケットが通常のIPパケットであると判定され、IPルーティング処理部15へIPパケットが転送される(ステップS03)。
これに対し、DAがグローバルテーブル24に存在する場合(即ち、DAが仮想IPアドレスである場合。S02;YES)には、ヘッダ処理部13は、DAに対応するGNをグローバルテーブル24から取り出す。続いて、ヘッダ処理部13は、IPパケットからSAを取り出すとともに、管理テーブル18内のローカルテーブル23(図3)を参照し、SAに対応するGNが、グローバルテーブル24から取り出したGNと同じかを判定する(ステップS04)。
このとき、GNが同じでない場合(S04;NO)には、ヘッダ処理部13は、IPパケットが転送対象グループ外のIPパケットであると判定し、このIPパケットを破棄する(ステップS05)。これに対し、GNが同じである場合(S04;YES)には、ヘッダ処理部13は、処理をステップS06に進める。
このように、SAに対応するGNと、DAに対応するGNとが一致するかどうかが判定されることで、送信元ホストと宛先ホストとが同一のグループに属するか否かが判断される。
この動作例では、GW装置GW−Aのヘッダ処理部13は、IPパケットのDA“cD”がグローバルテーブル24A(図7)に存在するかを判定する(S02)。DA“cD”がグローバルテーブル24Aに存在するので、グローバルテーブル24Aから対応するGN“1”を取り出す。続いて、ヘッダ処理部13は、ローカルテーブル23A(図7)から、IPパケットのSA“a”に対応するGN“1”を取り出す。双方のGNが一致するので、ヘッダ処理部13は、IPパケットが転送対象グループのIPパケットであると判定し、処理をステップS06に進める。
ステップS06では、ヘッダ処理部13は、IPパケットにGWヘッダ(GW間ヘッダ)を付与し、このGWヘッダに対し、DA及びSAに相当するDN及びSNを設定する。GWヘッダは、グループ内通信(即ち、グループメンバ間での通信)のためにGW装置間で送受信されるパケットの転送処理に使用されるヘッダであり、図1に示すように、TN,GN,DN及びSNを夫々設定するためのフィールドを有する。
ヘッダ処理部13は、ローカルテーブル23A(図7)から、SA“a”に対応するSN“101”を取り出すとともに、グローバルテーブル24A(図7)から、DA“cD”に対応するDN“103”を取り出し、SN“101”及びDN“103”をGW間ヘッダに設定する。
続いて、ヘッダ処理部13は、グローバルテーブル24A(図7)からDN“103”に対応するLTN“2”を取り出す。ヘッダ処理部13は、LTN“2”(指定LTN)と、GWヘッダを有するIPパケット(カプセル化パケット)とを転送通番処理部14へ転送する(ステップS07)。
転送通番処理部14は、送信転送テーブル26A(図7)を参照し、指定LTN“2”に対応するTN“2”及びGN“10”を取り出し、GWヘッダに設定する(ステップS08)。
続いて、転送通番処理部14は、指定LTNに対応する出力ポート値(ここでは“AB”)を指定し、この指定をカプセル化パケットとともにトンネル処理部16へ転送する(ステップS09)。
トンネル処理部16は、転送通番処理部14から受信されるカプセル化パケットに対する暗号化処理等を行う。パケット送受信部17は、指定された出力ポート“AB”からカプセル化パケットを送出する。カプセル化パケットは、グローバル側インタフェース12からグローバル側のネットワークXへ送出される。このIPパケットは、ネットワークXにおいて、GW装置GW−AとGW装置GW−Bとの間に確立されたトンネルを通って転送される。
このように、送信側のGW装置GW−A(送信元ホストを収容するGW装置)では、異なるGW装置GW−Cに収容された端末装置cへIPパケットを転送する場合には、このIPパケットに仮想閉鎖ネットワーク(グループ内)でのパケット転送に使用されるGWヘッダが付与される(IPパケットがカプセル化される)。
このとき、GWヘッダには、仮想IPアドレスを用いたSA及びDAではなく、グループメンバ間通信のために用意されたSN及びDNが、GW装置のみで認識可能なホストの識別子として設定される。また、GN及びTNが次ホップのGWでのルーティングのためのルーティング情報として設定される。GNは次ホップのGW装置でグループを特定するための識別子として機能する。また、TNは、次ホップのGW装置でルーティング情報を検索するための宛先識別番号として機能する。
GW装置GW−B(図1)は、カプセル化パケットをグローバル側インタフェース12(図2)で受信する。すると、GW装置GW−Bは、このカプセル化パケットに対する転送処理を実行する。
図9は、GW装置GW−Bの管理テーブル18及び通番テーブル19に格納されたグループ1に対するローカルテーブル23B,グローバルテーブル24B,受信転送テーブル25B,及び送信転送テーブル26Bを示す図であり、図10は、GW装置GW−B内における処理を示すフローチャートである。
図10に示すように、GW装置GW−Bでは、カプセル化パケットは、グローバル側インタフェース12及びパケット送受信部17で受信され(ステップS21)、トンネル処理部16に与えられる。
トンネル処理部16は、受信パケットの復号化処理等を行った後、受信パケットがGWヘッダを有するか否かを判定する(ステップS22)。このとき、受信パケットがGWヘッダを有しない場合(S22;NO)には、トンネル処理部は、受信パケットが通常のIPパケットであると判定し、このパケットをIPルーティング処理部15へ転送する(ステップS23)。これに対し、受信パケットがGWヘッダを有する場合(S22;YES)には、処理がステップS24に進む。
この動作例では、受信パケットはGWヘッダを有するカプセル化パケットである。このため、トンネル処理部16は、GWヘッダを検出することができる。この場合、トンネル処理部16がカプセル化パケットを転送通番処理部14へ転送し、処理がステップS24に進む。
ステップS24では、転送通番処理部14が、GWヘッダからTN“2”を取り出すとともに、通番テーブル19中の受信転送テーブル25B(図9)を参照し、TN“2”に対応するLTN“2”を得る。
次に、転送通番処理部14は、送信転送テーブル26B(図9)を参照し、LTN“2”に対応するTN“1”及びGN“20”を取り出し、GWヘッダに設定する(GWヘッダ中のTN及びGNの値を書き換える)(ステップS25)。
次に、転送通番処理部14は、LTN“2”に対応する出力ポート値“BC”を送信転送テーブル26B(図9)から取り出し、この出力ポート値“BC”(指定出力ポート)をカプセル化パケットとともにトンネル処理部16へ転送する(ステップS26)。
トンネル処理部16では、カプセル化IPパケットに対する暗号化処理等が行われた後、パケット送受信部17が出力ポート“BC”からカプセル化パケットを送出する(ステップS27)。カプセル化パケットは、グローバル側のネットワークYへ送出され、GW装置GW−BとGW装置GW−Cとの間に構築されたトンネルを通って転送される。
このように、中継を行うGW装置GW−Bでは、カプセル化パケットの転送処理(ルーティング)が、通常のIPルーティングと異なり、GWヘッダに設定されたTN(宛先識別番号)を用いたルーティングによって行われる。
GW装置GW−C(図1)は、カプセル化パケットをグローバル側インタフェース12(図2)で受信する。すると、GW装置GW−Cは、このカプセル化IPパケットに対する転送処理を実行する。
図11は、GW装置GW−Cの管理テーブル18及び通番テーブル19に格納されたグループ1に対するローカルテーブル23C,グローバルテーブル24C,受信転送テーブル25C,及び送信転送テーブル26Cを示す図であり、図12は、GW装置GW−C内における処理を示すフローチャートである。
図12に示すように、GW装置GW−Cでは、パケット送受信部17は、カプセル化パケットを受信し(ステップS31)、トンネル処理部16に転送する。
トンネル処理部16は、受信パケットの復号化処理等を行った後、このパケットにGWヘッダが含まれるか否かを判定する(ステップS32)。このとき、受信パケットにGWヘッダが含まれない場合(S32;NO)には、トンネル処理部16は、受信パケットが通常のIPパケットであると判定し、受信パケットをIPルーティング処理部15へ転送する(ステップS33)。これに対し、受信パケットにGWヘッダが含まれる場合(S32;YES)には、処理がステップS34に進む。この動作例では、受信パケットはGWヘッダを含むので、トンネル処理部16は、受信パケット(カプセル化パケット)を転送通番処理部14へ転送する。
転送通番処理部14は、通番テーブル19内の受信転送テーブル25C(図11)を参照し、カプセル化パケットのGWヘッダに設定されたTN“1”に対応するLTN(この例では“LOCAL”)を得る(ステップS34)。
転送通番処理部14は、得られたLTNによる指定が“LOCAL”であるので、カプセル化パケットをヘッダ処理部13に転送する(ステップS35)。なお、LTNの指定が“LOCAL”でない場合は、GW装置GW−Bにおける処理と同様に、LTNに基づく送信通番テーブルの検索が実行される。
ヘッダ処理部13は、転送通番処理部14からカプセル化パケットを受け取ると、このカプセル化パケットのGWヘッダからDNを取り出すとともに、管理テーブル18内のグローバルテーブル24C(図11)を参照し、DNに対応する仮想IPアドレス(V−IP)“aD(a-dash)”を得る。仮想IPアドレス“aD”は、IPパケットの送信元の端末装置aのV−IPである。
また、ヘッダ処理部13は、GWヘッダからSNを取り出すとともに、ローカルテーブル23C(図11)を参照し、SNに対応する実アドレス(R−IP)“c”を得る。実IPアドレス“c”は、IPパケットの宛先の端末装置cのR−IPである。ヘッダ処理部13は、カプセル化パケット中のTCP/IPヘッダ中のDA及びSAの値を“c”及び“aD”に夫々書き換える(ステップS36)。
その後、ヘッダ処理部13は、カプセル化パケットからGWヘッダを削除し(デカプセル化)、ローカル側インタフェース11を介してローカル側ネットワークへ転送する(ステップS37)。その後、IPパケットは、GW装置GW−Cに収容された宛先の端末装置cに到達する。
〈第1実施形態の作用効果〉
第1実施形態におけるネットワークシステムによると、同一のグループ(グループ1)に属する端末装置a,b及びcを夫々配下とするGW装置GW−A,GW−B及びGW−Cの夫々は、端末装置a,b及びcがグループ1内で通信するためのGW内管理テーブルとして、GW装置の配下の端末情報(R−IP,SN及びGN)を管理するローカルテーブル23,異なるGW装置の配下の端末情報等(V−IP,DN,GN,LTN)を管理するグローバルテーブル24,異なるGW装置からのパケットの受信時に参照される受信転送テーブル25,及びローカルネットワーク(ホスト)−GW間,及びGW間のパケット送信時に参照される送信転送テーブル26を備える。
このようなGW装置によれば、パケット中継を行うGW装置(図1ではGW−B)において、中継先(転送先)を決定するための参照テーブルとして、IPアドレスに基づくIPルーティングテーブルではなく、独自の通し番号(TNやLTN)で管理された受信転送テーブル25及び送信転送テーブル26が適用される。
即ち、GWヘッダ中のTNに基づき受信転送テーブル25が参照されることで、ルーティング情報を検索するポインタ(送信転送テーブル26のポインタ)として機能するLTNが決定される。続いて、LTNに基づき送信転送テーブル26が参照されることで、転送処理に必要なルーティング情報(TN,GN及び出力ポート値)を直接的に検索することができる。
受信転送テーブル25のエントリ数(TN/LTNの数)は、パケットの宛先数に制限することができる。従って、受信転送テーブル25のエントリ数は、IPルーティングテーブルに比べて非常に少なくなる。従って、受信転送テーブル25の検索に係る時間は短い。一方、送信転送テーブル26に関しては、受信転送テーブル25から検索されたLTNに対応するエントリのみを参照すれば良いので、送信転送テーブル26からの情報検索は、短い時間で終了する。
よって、受信転送テーブル25及び送信転送テーブル26を用いれば、GW装置にてパケット中継に必要な情報を得る処理は、IPルーティングに比べて著しく簡易化及び短縮化される。これによって、パケット中継が集中するGW装置(図1ではGW−B)によるパケット転送処理の負荷が軽減される。
また、TN,LTN,GN,SN,DNのような通し番号は、グループメンバ間通信に必要な数を用意すれば良いので、IPアドレスとして採り得る数よりも少ない。従って、IPアドレスよりも小さいサイズで表現できる。従って、管理テーブル18や通番テーブル19は、少ない記憶容量で作成することができる。
なお、第1実施形態では、IPパケットに独自のGWヘッダを付与する構成が採用されている。この構成の代わりに、TCP/IPヘッダに対してTN,GN,SN,DNが設定される構成としても良い。送信先の端末装置(ホスト)を収容するGW装置では、DNやSNを元にローカル側ネットワークへ送信されるパケットのDA及びSAが決定されるので、この場合でも、上述した各テーブル23〜26の構成をそのまま適用することができる。
〔第2実施形態〕
次に、本発明の第2実施形態について説明する。第2実施形態は、第1実施形態と同様の構成を含むので、主として異なる構成について説明し、同様の構成についての説明は省略する。
〈構成〉
第1実施形態で説明した各テーブル23〜26の格納内容は、ネットワーク管理者によるマニュアル設定(スタティック設定)によって規定することができる。但し、格納内容は、動的に設定することも可能である。
第2実施形態では、図1に示したネットワークシステムにおけるGW装置GW−A,GW−B及びGW−Cが、グループの状態変化(グループの追加/削除,端末装置の追加/削除,マルチキャストアドレスの追加/削除)に伴い、GW間で各テーブル23〜26の同期をとって更新する(同期処理を行う)機能について説明する。
図13は、第2実施形態における同期処理の例を示すシーケンス図である。図13では、GW装置GW−BとGW装置GW−Cとの間でグループ1の通信のためのトンネルが確立され、例えば、図1に示した端末装置bと端末装置cとの間でグループ1の通信が可能な状態となっている(SQ1)。なお、SQ1の時点では、グループ1には、端末装置b及びcのみが属している。
この状態において、例えば、GW装置GW−Aの配下の端末装置(例えば、端末装置a)がグループ1に追加される(参加する)場合には、次のような処理がGW間で実行される。
最初に、GW装置GW−A(以下、「GW−A」と表記)とGW装置GW−B(以下、「GW−B」と表記)との間で、GW間認証が実行される(SQ2)。お互いの認証が終了すると、GW−AとGW−Bとの間での通信に使用されるトンネル確立手順が実行され、トンネルが確立される(SQ3)。その後、GW−AとGW−Bとの間の通信は、このトンネルを用いて行われる。
GW−Aは、ホスト一覧要求をGW−Bに送信する(SQ4)。すると、GW−Bは、グループ1に属している端末装置(端末装置b及びc)の情報を応答としてGW−Aに返信する(SQ5)。端末装置の情報として、例えば、端末装置b及びcの実IPアドレス及び仮想IPアドレスを通知することができる。
次に、GW−Aは、端末装置aのグループ1への登録要求(g1:a)を、GW−Bへ送信する(SQ6)。グループ登録要求は、端末装置aの識別情報(例えば実IPアドレス)と、参加するグループの識別情報(例えば“グループ1”)とを含む。GW−Bは、グループ登録要求を受信すると、その確認メッセージ(ACK)をGW−Aに返信する(SQ7)。
次に、GW−AとGW−Bとの間、及びGW−BとGW装置GW−C(以下、「GW−C」と表記)との間で、仮想IP/端末通番同期処理が実行される(SQ8,SQ9)。即ち、端末装置aに対して仮想IPアドレス(例えば、“aD”)が割り当てられ、端末装置aに対して端末通番(例えば“101”)が割り当てられ、端末装置bに対して端末通番(例えば“102”)が割り当てられ、端末装置cに対して端末通番(例えば“103”)が割り当てられる。端末装置aに対する実IPアドレス及び仮想IPアドレスと、端末装置a,b及びcに対する端末通番は、GW−AとGW−Bとの間,GW−BとGW−Cとの間で交換され、共有される。
次に、GW−A,GW−B及びGW−Cの夫々において、管理テーブル18(ローカルテーブル23(図3)及びグローバルテーブル24(図4))の設定(更新)処理が実行される(SQ10,SQ11,SQ12)。即ち、各テーブル23及び24に対するR−IP,SN,V−IP,GN,DN,及びLTNの設定が実行される。
次に、GW−AとGW−Bとの間,及びGW−BとGW−Cとの間で、転送通番同期処理が実行される(SQ13,SQ14)。即ち、GW間で矛盾のないように、各GW装置が使用するLTN及びTNが相互に交換される。
次に、GW−A,GW−B及びGW−Cの夫々において、通番テーブル19(受信転送テーブル25(図5)及び送信転送テーブル26(図6))の設定(更新)処理が実行される(SQ15,SQ16,SQ17)。即ち、各テーブル25及び26に対するTN,LTN,GN及び出力ポート(Outport)の設定が実行される。
通番テーブル19の設定が完了すると、端末装置aがグループ1に属して端末装置b又はcとのメンバ間通信が可能な状態となる(SQ18)。
なお、上述した処理は、或るグループへの端末装置(ホスト)の追加について説明した。端末装置aの削除の場合には、GW−B及びGW−Cに端末装置aの削除(グループ削除要求)が通知された後、SQ8〜SQ17と同様の処理が実行されて各GW装置における管理テーブル18及び通番テーブル19の更新(端末装置aに係る情報の削除)が実行される。その後、GW−AとGW−Bとの間に設けられたトンネルが削除される。
マルチキャストアドレスの追加/削除,グループの追加/削除においても、端末装置の追加/削除と同様の手順が実行され、GW装置間で、管理テーブル18及び通番テーブル19の格納内容の同期が図られる。
なお、図13に示したシーケンスは、例えば、GW−Aが制御端末から端末装置aの追加指示を受け取ったことを契機として開始される。或いは、端末装置aが、マルチキャストグループへの参加手順と類似する手順を通じてGW−Aにグループ1への参加を表明したことを契機として開始されるようにしても良い。
〈作用効果〉
第2実施形態によれば、GW間で管理テーブル18及び通番テーブル19の同期をとることができ、グループに係る状態変化に適正に対応することが可能となる。
〔第3実施形態〕
次に、本発明の第3実施形態について説明する。第3実施形態は、第1実施形態と同様の構成を含むので、主として異なる構成について説明し、同様の構成についての説明は省略する。
〈構成〉
第1及び第2実施形態では、グループ内における多対多通信を想定したコラボレーション(Collaboration)構成を説明した。しかし、ホストのグループ化においては、コラボレーション構成のみではなく、サーバ−クライアント(Server-Client)構成も考慮する必要がある。即ち、グループに属するホストが、サーバと、このサーバに対してアクセスする1以上のクライアントとからなる場合である。
この場合、GW装置に端末装置の情報を管理する負荷がかかる。例えば、本社と各支社という社内構成で、本社のウェブサーバ(Webサーバ)と各支社の端末装置のようなサーバ−クライアント構成でグループ化される場合を考える。この場合、Webサーバ側を管理する(Webサーバを配下に持つ)GW装置は、各支社に存するすべての端末装置の情報をグローバルテーブル24で管理しなければならない。また、各支社の端末装置を配下とするGW装置は、殆ど通信することのない他の支社の端末情報をグローバルテーブル24で管理しなければならない。このような不要なホスト管理を削減する方法として、第3実施形態におけるネットワークシステムは、第1実施形態で説明した構成に付加される以下の3つの構成をさらに備える。
〈1〉送信転送テーブル26で、TNと対応する折り返し転送通番(Return Transmission serial Number: RTN(折り返し宛先識別番号に相当))を管理する(図14に示した送信転送テーブル26−1参照)。RTN値として、パケットの送信元を宛先とする逆方向(折り返し方向)のパケットに対して設定されるTN値と同じ値が設定される。
〈2〉異なるGW装置へ送信されるIPパケットのGWヘッダに、RTN及び折り返しグループ通番(Return Group serial Number: RGN)を追加設定する。このとき、RGNとして、自装置に対応するGN(自GN)が設定される(図15)。
〈3〉サーバを配下に持つGW装置が、クライアントからのパケットをサーバに転送する場合において、このGW装置からサーバへ通知されるクライアントアドレス(仮想IPアドレス)として、入力ポート値(InPort),RGN,RTN,及びSNの組み合わせを通知する。これにより、サーバから送信元のクライアントへのパケットの返信(折り返し)を可能にする。
〈動作例〉
図15は、第3実施形態における動作例を説明する図である。図15に示すネットワークシステムの構成は、図1に示した構成とほぼ同様である。但し、グループ1には、端末装置cの代わりの端末装置として、サーバsが参加している。端末装置a及びbはサーバsに対するクライアントに相当する。
サーバsは、GW−Cの配下に属しており、実IPアドレス“s”を有している。サーバsには、仮想IPアドレス“sD(s-dash)”及び端末通番“200”が割り当てられている。
GW−A,GW−B及びGW−Cには、それぞれ図2に示したGW装置10が適用される。但し、GW−A,GW−B,GW−Cの送信転送テーブルは、図14に示した送信転送テーブル26−1のようなデータ構造を有する。
以下、図15において、クライアントたる端末装置aがサーバsへ向けてIPパケットを転送する場合(クライアント→サーバ通信)の動作について説明する。端末装置aは、サーバs宛てのIPパケット(DA=sD, SA=a)をGW−Aに向けて送信する。GW−Aは、IPパケットを受信すると、IPパケットに対する転送処理を行う。
図16は、GW−Aが有するローカルテーブル23A,グローバルテーブル24A,受信転送テーブル25A及び送信転送テーブル26−1Aの格納内容を示す図であり、図17は、GW−Aによる処理を示すフローチャートである。
図17に示す処理は、図8に示したGW−Aにおける処理ステップと同様の処理ステップを含んでおり、同一の処理ステップには、同一のステップ番号が付与されている。第3実施形態では、転送通番処理部14(図2)による処理(ステップS08A,S09A)が第1実施形態と異なる。
ステップS08Aでは、転送通番処理部14は、ヘッダ処理部13から指定されたLTN“1”(図16のテーブル24Aから得られる)を元に、送信転送テーブル26−1A(図16)を参照し、LTN“1”に対応するTN“2”,GN“10”及びRTN“1”を取得し、GWヘッダに設定する。
ステップS09Aでは、転送通番処理部14は、LTN“1”に対応する出力ポート値“AB”を取得するとともに、GW−AにおけるGN(自GN)“1”をRGNとしてGWヘッダに設定する。このように、RTN及びRGNの値として、カプセル化パケットの送信方向と逆方向のカプセル化パケットにおいてTN及びGNとして設定される値が設定される。
その後、図15に示すように、TN“2”,GN“10”,DN“200”(サーバsの端末通番),SN“101”,RTN“1”及びRGN“1”を含むGWヘッダを有するIPパケット(カプセル化パケット)が、出力ポート“AB”からグローバル側ネットワークとしてのネットワークXへ送出される。
カプセル化パケットは、トンネルを通ってGW−Bに到着する。すると、GW−Bは、カプセル化パケットに対する転送処理を実行する。図18は、GW−Bが有するローカルテーブル23B,グローバルテーブル24B,受信転送テーブル25B及び送信転送テーブル26−1Bの格納内容を示す図であり、図19は、GW−Bによる処理を示すフローチャートである。
図19に示す処理は、図10に示した第1実施形態におけるGW−Bの処理ステップと同様の処理ステップを含んでおり、同一の処理ステップには、同一のステップ番号が付与されている。第3実施形態では、転送通番処理部14(図2)による処理において、ステップS25(図10)の代わりのステップS25Aが設けられ、且つステップS25AとステップS26(図10)との間に、追加に係るステップS25Bが設けられている。
ステップS25Aでは、転送通番処理部14は、ヘッダ処理部13から指定されたLTN“1”(図18のテーブル24Bから得られる)を元に、送信転送テーブル26−1B(図18)を参照し、LTN“1”に対応するTN“1”,GN“20”及びRTN“3”を取得し、GWヘッダに設定する。
ステップS26Aでは、転送通番処理部14は、GW−BにおけるGN(自GN)“10”をRGNに指定し、GWヘッダに設定する。
その後、図15に示すように、GWヘッダの内容が、TN“1”,GN“20”,RTN“3”及びRGN“10”に書き換えられたカプセル化パケットが、LTNで指定された出力ポート“BC”から、グローバル側ネットワークであるネットワークYへ送出される。
カプセル化パケットは、GW−Cにおける入力ポート“CB”で受信される。すると、GW−Cは、カプセル化パケットに対する転送処理を実行する。図20は、GW−Cが有するローカルテーブル23C,グローバルテーブル24C,受信転送テーブル25C及び送信転送テーブル26−1Cの格納内容を示す図であり、図21は、GW−Cによる処理を示すフローチャートである。
図20に示すように、第3実施形態におけるグローバルテーブル24Cには、第1実施形態と異なり、GW−C配下のホスト(端末装置)に対するエントリは格納されない。
図21に示す処理は、図12に示した第1実施形態におけるGW−Cの処理ステップと同様の処理ステップを含んでおり、同一の処理ステップには、同一のステップ番号が付与されている。第3実施形態では、転送通番処理部14(図2)による処理において、ステップS35(図12)の代わりのステップS35Aが設けられている。また、ヘッダ処理部13(図2)による処理において、ステップS36(図12)の代わりに、ステップS36A及びステップS36Bが設けられている。
図21のステップS34において、転送通番処理部14は、GWヘッダのTNに対応するLTN“LOCAL”を受信転送テーブル25C(図20)から得る。すると、転送通番処理部14は、送信転送テーブル26−Cから、GN“10”及び出力ポート値“CB(値の例:203(0xCB))”を取り出し、これらをRGN及び出力ポートの指定情報に設定し、指定情報をカプセル化パケットとともにヘッダ処理部13へ転送する(ステップS35A)。ここに、出力ポート値“CB”は、カプセル化パケットの入力ポート値に相当する。
ヘッダ処理部13は、IPパケットのSAを自動生成する(ステップS36A)。即ち、ヘッダ処理部13は、カプセル化パケットのGWヘッダからSN“101”及びRTN“3”を取り出す。続いて、ヘッダ処理部13は、指定情報としての出力ポート値(カプセル化パケットの入力ポート値)“CB”,RGN“10”,RTN“3”,及びSN“101”が“出力ポート.RGN.RTN.SN”の順で並べられたときに得られる値“203(0xCB).10.3.101”(IPv4:32bitの場合)を、送信元のクライアント(端末装置a)に対するグローバルアドレス(仮想IPアドレス“aD”)として決定し、この“aD”をカプセル化パケットのTCP/IPヘッダにおけるSAフィールドに設定(格納)する。このようなSAの自動生成を行うため、出力ポート値,RGN(GN),RTN(TN),SN(DN)の値は、それぞれ8ビットで表現されるのが好ましい(IPv4の場合)。
続いて、ヘッダ処理部13は、GWヘッダのSN“200”に対応するR−IP“s”をローカルテーブル23C(図20)から検索し、TCP/IPヘッダのDAフィールドに設定(格納)する(ステップS36B)。
その後、GWヘッダが削除され、IPパケットがローカル側ネットワークLN3へ送出される。その後、IPパケットは、サーバsにて受信される。
図22は、サーバsが、端末装置aへIPパケット(例えば、クライアントからの要求に対する応答パケット)を送信する場合(サーバ→クライアント通信時)における動作例を示す図である。図23は、サーバsから端末装置a(クライアント)宛てのIPパケットを受信した場合における処理を示すフローチャートである。
図22に示すように、サーバsは、端末装置aにIPパケットを送信する場合には、SAにGW−Cから通知された仮想IPアドレス“aD”が設定され、且つDAにサーバsの実IPアドレス“s”がTCP/IPヘッダに設定されたIPパケットを、GW−Cに送信する。
GW−Cでは、サーバsからのIPパケットがローカル側インタフェース11で受信されると(ステップS301)、ヘッダ処理部13が、IPパケットのDAを参照し、DAがグローバルテーブル24C(図20)に存在するか否かを判定する(ステップS302)。このとき、DAがグローバルテーブル24Cに存在しない場合(S302;NO)には、処理がステップS303(図24)に進み、DAがグローバルテーブル24Cに存在する場合(S302;YES)には、処理がステップS308に進む。
この動作例では、IPパケット中のDA“aD”はグローバルテーブル24Cに存在しない。このため、ヘッダ処理部13は、処理をステップS303に進める。
ステップS303では、ヘッダ処理部13は、DAが出力ポート,GN,TN及びDNに変換可能か否かを判定する。例えば、DA(IPv4)を8ビット毎に分解した場合における先頭の値が出力ポート値(“CB”)と同じ値になるか否かを判定する。ヘッダ処理部13は、出力ポート値“CB”を予め知っている(自身がアクセス可能な記憶領域に保管している)。
先頭の値が出力ポート値と同じ値にならない場合(S303;NO)には、ヘッダ処理部13は、IPパケットが通常のIPパケットであると判定し、IPパケットをIPルーティング処理部15へ転送する(ステップS304)。
この動作例では、DA“aD”は、出力ポート,RGN,RTN,及びSNの値をそれぞれ8ビットで規定し、これらを直列に合成して得られた値である。このため、“aD”に対して合成処理と逆の分解処理を行えば、これらの各値が得られる。従って、ヘッダ処理部13は、“aD”の先頭から8ビットまでの値として、出力ポート値“CD”と同じ値を得ることができる。よって、ヘッダ処理部13は、ステップS303にて“YES”との判定を行い、処理をステップS305に進める。
ステップS305では、ヘッダ処理部13は、IPパケットにGWヘッダを付加し、GN,TN及びDNの値を、DAから抽出してGWヘッダに設定する(ステップS305)。即ち、ヘッダ処理部13は、分解処理によって得られるRGN“10”,RTN“3”及びSN“101”の値を、それぞれ、GN“10”,TN“10”,DN“101”としてGWヘッダに設定する。
次に、ヘッダ処理部13は、IPヘッダのSA“s”(R−IP)に対応するSNをローカルテーブル23C(図20)から検索し、GWヘッダに設定する(ステップS306)。
次に、ヘッダ処理部13は、DA“aD”から得られる出力ポート値“CD”を、出力ポートの指定情報に設定し、指定情報とGWヘッダを有するIPパケット(カプセル化パケット)とをトンネル処理部16へ向けて転送する(ステップS307)。
この場合、転送通番処理部14は、カプセル化パケットにTNやGNが設定されていることと、出力ポートの指定情報をカプセル化パケットとともに受け取ったこととの少なくとも一方を条件として、自身の処理を行う必要がないと判定する。この場合、転送通番処理部14は、カプセル化パケット(GWヘッダ)に対する処理を行うことなく、カプセル化パケット及び指定情報をトンネル処理部16に転送する。
その後、ステップS314に処理が進み、トンネル処理部16でカプセル化パケットに対する暗号化処理等が行われた後、指定情報で特定される出力ポート“CD”から、カプセル化パケットがグローバル側ネットワークたるネットワークYへ送出される。
なお、端末装置a→サーバsの通信では、GW−Aは、RTNやRGNを受信しなくても、上述した方法で対応するTN及びGNを設定できる。このため、 サーバsからクライアント(端末装置a)へカプセル化パケット(折り返しパケット)が送信される場合には、RGN及びRTNはGWヘッダに設定されない。従って、折り返しパケットのGWヘッダにおけるRGN及びRTNの格納フィールドは省略可能である。
なお、図23に示すステップS308〜S314の処理は、図8に示したステップS04〜S10と同様の処理である。これらのステップS308〜S314の処理は、コラボレーション構成を持つグループ1と異なるグループに対するパケット転送処理のために用意されている。
図22に示すように、カプセル化パケットは、ネットワークY上に構築されたトンネルを通じてGW−Bに受信される。GW−Bでは、図18に示したテーブル23B,24B,25B及び26−1Bを用いて、図19に示した処理が実行される。これによって、受信カプセル化パケットに設定されたTN“3”及びGN“10”がTN“1”及びGN“1”に書き換えられたカプセル化パケットが、GW−Bの出力ポートBAからネットワークXに送出される。
GW−Aは、カプセル化パケットを受信すると、図12に示したGW−Cの処理と同様の処理を実行する。これによって、GWヘッダが削除され、且つDA“a”及びSA“sD”が設定されたIPパケットがGW−Aから端末装置aに転送される。
〈作用効果〉
第3実施形態では、クライアント−サーバ構成を有するグループ1におけるグループ内通信において、クライアント(端末装置a)からサーバsへのIPパケット転送において、GWヘッダに、サーバsからクライアント(端末装置a)へ送信される逆方向のパケット(折り返しパケット)において設定されるGN及びTNがRGN及びRTNとして設定される。
また、第3実施形態では、サーバsを配下に持つGW装置(GW−C)において、カプセル化パケットの入力ポート(折り返しパケットの出力ポート),RGN,RTN及びSNの値を直列に接続(合成)した値がクライアントの仮想IPアドレス“aD”として自動生成され、IPパケットのSAに設定されてサーバsに与えられる。
従って、サーバsが、このSA“aD”をDAに設定した折り返しパケットをGW−Cに送信すれば、GW−Cは、このDA“aD”から折り返しパケットのGWヘッダに設定すべきGN,TN,DN及び出力ポート値を得ることができる。これにより、転送通番処理部14の処理が省略される。
以上によって、サーバsを配下に持つGW−Cのグローバルテーブル24Cにおいて、各クライアントに係るエントリを持つ必要がなくなる。即ち、GW−Cにおけるクライアント情報の管理負担が減る。また、転送通番処理部14の処理が省略されることで、GW−Cの処理負担が減る。
即ち、第3実施形態によれば、GW装置内で管理する仮想IPアドレスやホスト情報を低減することができ、GW装置の管理負荷の低減を図ることができる。
さらに、GW−Aのグローバルテーブル24A及びGW−Bのグローバルテーブル24Bが、クライアントに相当するグループメンバのエントリ(クライアント端末情報)を持たない構成となっている(図16,図18参照)。即ち、第3実施形態では、第1実施形態と異なり、クライアントに相当する端末装置のV−IPを管理しない。このため、第3実施形態では、クライアント間でグループ内通信を行うことはできない。
従って、例えば、或るグループが大多数の家電機器とその家電機器を管理するメーカのサーバとで構成される場合において、或る家庭の家電機器から異なる家庭の家電機器に対して通信可能となるのを抑えることができる。
また、上記した構成によって、クライアントを配下に持つGW装置の管理負担が軽減される。また、GW装置で管理の必要がないことから、クライアントとしての端末装置には、仮想IPアドレスを割り当てる必要がない。
〔第4実施形態〕
次に、本発明の第4実施形態について説明する。第4実施形態は、第1実施形態と同様の構成を含むので、主として異なる構成について説明し、同様の構成についての説明は省略する。
第1実施形態に示したネットワークシステムでは、GW装置間におけるパケット転送処理が、IPルーティングテーブルと異なる独自のテーブル(受信転送テーブル25及び送信転送テーブル26)を用いて実行される。第4実施形態では、転送通番(TN/LTN)によるQoSの設定を可能とする方法について説明する。
例えば、図1に示すネットワークシステムにおいて、端末装置aと端末装置cとが音声用マルチキャストアドレス“Multi1”を用いて通信している一方で、端末装置aと端末装置bとの間でFTP(File Transfer Protocol)による通信を行っている場合を仮定する。
この場合、GW−Bのような中継処理を行うGW装置で、端末装置bへのFTPパケット及び端末装置cへの音声パケットが滞留し、GW−B内でスタックされることが起こり得る。このとき、GW−Bがパケット送信のために単純なシーケンシャル処理を行う(パケットの到着順で転送処理を行う)と、音声パケット(“Multi1”)に遅延が生じ、通話品質が低下するおそれがある。そこで、GW装置は、次のような構成を持つ。
〈構成〉
図25は、QoSに基づく優先制御を行うための構成例を示す図である。図25に示す例では、転送通番処理部14とヘッダ処理部13及びパケット送受信部17との間に、送信待ちキューQ1及びQ2と、優先制御部としての読み出し制御部28とが設けられている。
即ち、転送通番処理部14は、受信転送テーブルの参照により特定できるパケットの宛先に応じて、パケットを複数の送信待ちキューのいずれか1つ(図25では、送信待ちキューQ1とQ2との一方)に蓄積する。パケットは、読み出し制御部28によって適宜のタイミングで読み出され、その宛先に応じてヘッダ処理部13とトンネル処理部16(パケット送受信部17)との一方に転送される。
送信待ちキューQ1は、優先度“高”のパケットを蓄積し、送信待ちキューQ2は、優先度“低”のパケットを蓄積する。但し、送信待ちキューの数は、優先度のレベル数に応じて決定することができる。
第4実施形態では、優先度は、TN(LTN)に関連付けて定義される。図26は、第4実施形態におけるGW−Bの有する受信転送テーブル25B及び送信転送テーブル26Bの格納内容を示す図である。GW−A及びGW−Cが有するテーブルの格納内容は、第1実施形態と同じである(図7,図11)。
図26に示すように、受信転送テーブル25Bには、優先制御フラグのオン/オフを設定するフィールドが設けられている。優先度“高”のエントリにはフラグ“ON”が設定され、優先度“低”のエントリにはフラグ“OFF”が設定される。
上述した仮定状況では、GW−Bの有する受信転送テーブル25B及び送信転送テーブル26Bの格納内容(図26)に応じて、例えば、LTN“LOCAL”(TN“1”)は、優先度“低”に関連付けられ、LTN“5”又は“6”(TN“4”又は“7”)は、優先度“高”に関連付けられる。
一方、GW−Aは、V−IP“MULTI1”に対してTN“4”が設定され、且つV−IP“bD”に対してTN“1”が設定されるように、グローバルテーブル24及び送信転送テーブル25の格納内容が規定されている(図7)。
GW−Bの転送通番処理部14は、受信パケットのTNを元に受信転送テーブル25Bから対応するLTNを得る。このとき、転送通番処理部14は、優先制御フラグがオンかオフかを判定し、オンであれば、パケットを送信待ちキューQ1へ入力し、オフであれば、パケットを送信待ちキューQ2へ入力する。
従って、GW−Aから送信される端末装置c宛の音声パケット(TN“5”)は、送信待ちキューQ1に格納される。一方、GW−Aから送信される端末装置b宛のFTPパケット(TN“1”)は、送信待ちキューQ2に格納される。
読み出し制御部28は、予め規定された読み出しルールに従って、送信待ちキューQ1及びQ2からパケットを読み出す。例えば、読み出し制御部28は、ルールとして、送信待ちキューQ1にパケットが蓄積されている場合には、そのパケット優先的に読み出し、送信待ちキューQ1にパケットが蓄積されていないことを条件として、送信待ちキューQ2からパケットを読み出す。また、端末装置cから端末装置aへ送信される音声パケット(TN“7”)も、優先度“高”の送信待ちキューQ1に格納される。
このようにして、優先制御フラグ“オン”が設定されたLTN(TN)のパケットは、送信待ちキューQ1に格納されることで、パケット処理優先スレッドに転送された状態となる。
なお、上記した構成において、図25に示していないが、転送通番処理部14からヘッダ処理部13へ通知されるLTN,及びトンネル処理部16へ通知される出力ポート値は、パケットの読み出しと同期をとってヘッダ処理部13及びトンネル処理部16に与えられる。或いは、LTN及び出力ポート値は、パケットとともに送信待ちキューへ入力される。
これによって、端末装置aと端末装置cとの間で送受信される音声パケットは、端末装置aと端末装置bとの間で送受信されるFTPパケットよりも優先的にGW−Bから送信される。このようにして、グループ内通信において、QoSに応じた優先制御を実現することができる。
〈作用効果〉
第4実施形態によると、パケットの転送先(TN,LTN)に応じて優先制御を行うことができ、通信サービスの要求するQoSが満たされたグループ内通信を実現することができる。即ち、第4実施形態によれば、GW間で転送されるパケットに対するQoS制御を実現することができる。
〔第5実施形態〕
次に、本発明の第5実施形態について説明する。第5実施形態は、第1実施形態と同様の構成を含むので、主として異なる構成について説明し、同様の構成についての説明は省略する。
第1実施形態では、ホストとして、通常のIP通信機能を有する端末装置やサーバを適用した例について説明した。第5実施形態では、GW装置とその配下のホストとの間にトンネルが構築され、ホストとGW装置間で仮想閉鎖ネットワーク通信を実現可能にする構成について説明する。
〈構成〉
図27は、第5実施形態に係るホスト40の構成例を示す図である。図27に示すように、ホスト40は、ユーザ領域とカーネル領域とを有し、両者の境界には、実LANインタフェース(実LAN−IF)41と、仮想LANインタフェース(仮想LAN−IF)42とが設けられている。
ユーザ領域には、ユーザによって使用されるアプリケーション43が配置されている。一方、カーネル領域には、実LAN−IF42に接続された物理LANドライバ44と、物理LANドライバ44に接続されたLANカード45とが配置されている。
また、カーネル領域には、仮想LAN−IF41に接続された仮想LANドライバ46と、ヘッダ処理部13,転送通番処理部14及びトンネル処理部16が設けられ、トンネル処理部16は物理LANドライバ44に接続されている。さらに、カーネル領域には、ヘッダ処理部13で参照される管理テーブル18と、転送通番処理部14で参照される通番テーブル19とが設けられている。
ヘッダ処理部13,転送通番処理部14,トンネル処理部16,管理テーブル18及び通番テーブル19は、第1実施形態で説明した構成及び機能(図2〜6)とほぼ同じである。管理テーブル18(詳しくは、管理テーブル18内のグローバルテーブル24)が、本発明の第1管理テーブルに相当し、通番テーブル19(詳しくは、通番テーブル19内の送信転送テーブル26)が、本発明の第2管理テーブルに相当する。
ホスト40のパケット送信時には、アプリケーション43は、送信対象のデータを含んだIPパケットを生成する。このとき、ホストのルーティング設定によりIPパケットが通常のIPパケットである場合には、そのIPパケットは実LAN−IF42に与えられ、グループ内通信に係るIPパケットである場合には、仮想LAN−IF41に与えられる。例えば、ホストのルーティング設定において通常の社内環境LANがBクラス(10.xx.xx.xx)の場合、グループ内通信に係るIPパケットはCクラス(192.xx.xx.xx)を使用し、ルーティング設定としてCクラスのIPパケットは仮想LAN−IF41へ転送するように設定する。
これにより、DAの仮想IPアドレスはCクラス内での割り当てとなる。
通常のIPパケットは、物理LANドライバ44及びLANカード41を経て送出される。これに対し、グループ内通信に係るIPパケットは、仮想LANドライバ46による処理を経た後、ヘッダ処理部13,転送通番処理部14及びトンネル処理部16によって、第1実施形態で説明したGW−Aの処理(図8)と同様の処理を行い、GWヘッダ(グループ内通信用ヘッダ)を有するカプセル化パケットを物理LANドライバ44に転送する。その後、カプセル化パケットは、物理LANドライバ44及びLANカードを経て、トンネルを介して接続されたGW装置へ転送される。GW装置では、第1実施形態におけるGW−Bで実行されたパケット転送処理(グローバル→グローバル転送:図10)や、GW−Cで実行されたパケット転送処理(グローバル→ローカル転送:図12)と同様の転送処理が実行され、相手方のホストに到着する。
ホスト40は、GW装置から、通常のIPパケットとカプセル化パケットとを受信する。パケット受信時には、LANカード41で受信されたパケットは、物理LANドライバ44に転送される。物理LANドライバ44は、例えば、パケットがトンネル経由かを判定し、トンネル経由の場合には、パケットをトンネル処理部16へ転送し、そうでなければパケットを実LAN−IF42へ転送する。実LAN−IF42は、物理LANドライバ44からのパケットをアプリケーション43に渡す。
トンネル処理部16へ転送されたパケットは、トンネル処理部16,転送通番処理部14,及びヘッダ処理部13で、第1実施形態で説明したGW−3の処理(図12)とほぼ同様の処理を施された後、仮想LANドライバ46及び仮想LAN−IF41による処理を経てアプリケーション43に渡される。
〈作用効果〉
第5実施形態では、GW装置間のトンネル化だけでなく、GW装置−ホスト間もトンネル化される。これにより、GW装置とホストとの間におけるセキュリティを向上させることができる。従って、例えば、外出先から社内のLANに接続するような場合において、通信セキュリティを確保したグループ内通信を行うことができる。
なお、第5実施形態で説明した端末装置は、第3実施形態のネットワークシステムに適用することができる。
〔その他〕
第1〜第5実施形態において説明した構成は、本発明の目的を逸脱しない範囲で適宜組み合わせることが可能である。