説明

マークに応じたパケット転送装置およびパケット転送方法

【課題】サーバシステムに要求されるネットワーク機能のパケット処理を、複数の中継機器において処理可能にする。
【解決手段】1つまたは複数のパケット転送装置を有し、パケット情報に応じたマークが付与されたIPトンネルが該パケット転送装置間に構築されたネットワークにおけるパケット転送装置は、パケット情報に応じてパケットにマークを付与し、前記パケットが前記IPトンネルから転送されて来た場合、該パケットにネットワーク機能の処理を行い、前記処理されたパケットをマークに応じたIPトンネルに転送する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パケット情報(IPアドレス、ポート番号、データペイロード)に応じてIPトンネルを用いてパケットを転送する装置および方法に関するものである。
【背景技術】
【0002】
IPネットワーク上では、サーバシステムの可用性確保、処理性能向上、安全性向上等のために、負荷分散機能やキャッシュ機能、Firewall機能等のネットワーク機能がネットワーク上に配備されている。ネットワーク機能を用いることにより、サーバシステムやクライアントの設定を変更することなく、サーバシステムの高機能化を実現することができる。
【0003】
非特許文献1では、これらのネットワーク機能を、サーバ・クライアント間のネットワークパス上に動的に配備するネットワーク機器を実現している。また、特許文献1では、IPネットワーク上にオーバーレイネットワークを構築し、IPアドレスやポート番号、データペイロードに応じてIPパケットを転送する処理を実現している。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007−13803号公報
【非特許文献】
【0005】
【非特許文献1】D. A. Joseph, A. Tavakoli andI. Stoica, "A Policy-aware Switching Layer for Data Centers",SIGCOMM'08, August 2008.
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上記非特許文献1では、受信したパケットのMACアドレスを用いて前段の処理を認識し、次に必要となる処理を判断している。全てのネットワーク機能が単一のスイッチに接続している場合では有効であるが、WAN高速化やパケット圧縮のように、IPネットワーク上で分散して処理されるネットワーク機能については、前段で処理したノードのMACアドレスが保持されないため、ネットワーク機能が前段の処理を認識することができない。このため、分散して処理されるネットワーク機能には、この技術を適用することができないという課題がある。
【0007】
さらに、特許文献1では、データペイロードまでを考慮したオーバーレイネットワークを構築しているが、オーバーレイネットワークでは目的アドレスまでパケットがカプセル化されて転送されるため、ネットワーク機能のように中継機器が、パケット処理することができないという課題がある。
【0008】
したがって、本発明では、サーバシステムに要求されるネットワーク機能のパケット処理を、複数の中継機器において処理可能にするパケット転送装置およびパケット転送方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
上記目的を実現するため本発明によるパケット転送装置は、1つまたは複数のパケット転送装置を有し、パケット情報に応じたマークが付与されたIPトンネルが該パケット転送装置間に構築されたネットワークにおけるパケット転送装置であって、パケット情報に応じてパケットにマークを付与する付与手段と、前記パケットが前記IPトンネルから転送されて来た場合、該パケットにネットワーク機能の処理を行う処理手段と、前記処理されたパケットを前記マークに応じたIPトンネルに転送する転送手段とを備えている。
【0010】
また、前記パケット情報は、IPアドレス、ポート番号、またはデータペイロードであることも好ましい。
【0011】
また、前記データペイロードの確認には正規表現を用いることも好ましい。
【0012】
また、前記ネットワーク機能は、負荷分散、データキャッシュ、パケット圧縮、プロトコル最適化、WAN高速化、Firewall、Web Application Firewall、帯域制御、NAT、NAPTであることも好ましい。
【0013】
また、前記ネットワーク機能は、パケット転送装置において処理されることも好ましい。
【0014】
また、前記処理手段は、前記パケットが前記IPトンネルから転送されて来た場合、該パケットを異なるノードに転送し、前記異なるノードに前記ネットワーク機能の処理を行わせる手段であることも好ましい。
【0015】
また、前記異なるノードにパケットを転送する場合、パケットのマークに応じて送信インタフェースを変更し、前記異なるノードからパケットを受信した場合、受信したインタフェースに応じてパケットにマークを付与する手段をさらに備えることも好ましい。
【0016】
また、前記インタフェースの変更に仮想インタフェースを用いることも好ましい。
【0017】
また、前記異なるノードにパケットを転送する場合、パケットのセッション情報をマークに関連付けて保存し、前記異なるノードからパケットを受信した場合、該パケットのセッション情報を、保存しているパケットのセッション情報から検索し、検索されたセッション情報に関連するマークをパケットに付与する手段をさらに備えることも好ましい。
【0018】
また、サーバからの応答パケットに対して、クライアントからの要求パケットと同一のマークを付与することも好ましい。
【0019】
また、前記マークに、クライアントからサーバへ、またはサーバからクライアントへのパケットであることを示す方向性を付与することも好ましい。
【0020】
また、前記マークに、前記ネットワーク機能の処理回数を示すシーケンス番号を付与することも好ましい。
【0021】
また、前記マークに従い、応答パケットを要求パケットと同一経路で転送することも好ましい。
【0022】
上記目的を実現するため本発明によるパケット転送方法は、1つまたは複数のパケット転送装置を有するネットワークにおけるパケット転送方法であって、パケット情報に応じたマークが付与されたIPトンネルを前記パケット転送装置間に構築する構築ステップと、パケット情報に応じてパケットにマークを付与する付与ステップと、前記パケットが前記IPトンネルから転送されて来た場合、該パケットにネットワーク機能の処理を行う処理ステップと、前記処理されたパケットをマークに応じたIPトンネルに転送する転送ステップとを含む。
【発明の効果】
【0023】
本発明によれば、サーバシステムやクライアントで動作するアプリケーションを変更することなく、IPネットワーク上で、ネットワーク的に離れた場所に設置された複数のネットワーク機器でパケット処理を行い、かつ、ネットワーク機器を跨いで多段処理を行うことができる。
【図面の簡単な説明】
【0024】
【図1】本発明によるパケット転送装置を含むネットワークの全体構成を示す。
【図2】クライアントからのサーバへの要求パケットおよびその応答パケットの処理シーケンスを示す。
【図3】送信元のパケット転送装置(N1)がパケットを送信する処理の詳細フローチャートを示す。
【図4】中継するパケット転送装置が処理ノードにパケットを転送する処理の詳細フローチャートを示す。
【図5】中継するパケット転送装置が処理ノードから転送されたパケットを転送する処理の詳細フローチャートを示す。
【図6】宛先のパケット転送装置(N1、N2)がパケットを送信する処理の詳細フローチャートを示す。
【図7】宛先のパケット転送装置(N2)が応答パケットを送信する処理の詳細フローチャートを示す。
【図8】マーク処理の詳細フローチャートを示す。
【発明を実施するための形態】
【0025】
本発明を実施するための最良の実施形態について、以下では図面を用いて詳細に説明する。図1は、本発明によるパケット転送装置を含むネットワークの全体構成を示す。本全体構成には、クライアントコンピュータ1とサーバコンピュータ2が、それぞれパケット転送装置3(N1、N2)を介して、オーバーレイネットワークに接続されている。オーバーレイネットワークは、中継するパケット転送装置4(N3、N4)を介して他のネットワークに接続されている。他のネットワークには、様々なネットワーク機能を有する処理ノード5(P11〜P2n)が存在する。処理ノード5は、転送されたパケットに対して、負荷分散、データキャッシュ、パケット圧縮、プロトコル最適化、WAN高速化、Firewall、Web Application Firewall、帯域制御、NAT、NAPT等のネットワーク機能の処理を行う。本図において、送信元・宛先のパケット転送装置3および中継するパケット転送装置4が本発明によるパケット転送装置に該当する。なお、本実施形態は、パケット転送装置3、4と処理ノード5は別の装置であるが、パケット転送装置3、4が処理ノード5を兼ねて、パケット転送装置3、4がネットワーク機能の処理を行っても良い。
【0026】
本発明では、パケット情報(IPアドレス、ポート番号、データペイロード)に応じて、パケットが必要とするネットワーク機能を判断し、パケット転送装置3(N1−N2)間の経路を、パケット転送装置3−中継するパケット装置4間のIPトンネルと、中継するパケット転送装置4間のIPトンネルと、複数のIPトンネルで作成することにより、複数の中継するパケット転送装置4に転送し、ネットワーク機能を多段処理することを可能とする。
【0027】
例えば、ネットワーク機能として、パケット圧縮伸張機能が提供されている場合を考える。図1のP11およびP21がパケット圧縮伸張機能を有する処理ノードであったとする。クライアントがサーバに処理を依頼するためにパケットを送信し、このパケットがパケット圧縮伸張を必要とする場合、N1−N3(R1)、N3−N4(R3)、N4−N2(R5)の3本のIPトンネルがオーバーレイネットワーク中に作成される。このパケットの流れは以下のようになる。まず、パケットはN1を経由してN3に到達する(R1)。N3がパケットをP11に転送し、P11でパケット圧縮の処理が実行され、P11はN3に処理済みのパケットを送信する(R2)。その後、パケット伸張を行うため、N3がN4にパケットを転送する(R3)。N4がパケットをP21に転送し、P21でパケット伸張の処理が実行され、P21はN4に処理済みのパケットを送信する(R4)。全てのネットワーク機能を処理したため、N4はN2にパケットを送信する(R5)。N2はサーバにパケットを送信し、パケットがサーバに到達する。サーバが処理したクライアントへの応答パケットは行きと逆のルートを通って、ネットワーク機能の処理が行われる。上記の場合であると、N2、N4、P21(パケット圧縮)、N4、N3、P11(パケット伸張)、N3、N1の順序でノードを通過して、クライアントに到達する。
【0028】
図2は、クライアントからのサーバへの要求パケットおよびその応答パケットの処理シーケンスを示す。本図により、パケット転送装置でのパケットに対する処理を説明する。本例では、ネットワーク機能が1つの場合を説明する。なお、送信元のパケット転送装置(N1)には、パケット情報(IPアドレス、ポート番号、データペイロード)に応じて、パケットに設定するマークを選択するルールが予め設定されている。また、パケット転送装置(N1、N2、N3)間には、マークが付与されたIPトンネルが設定されている。なお、マークを選択するルールおよびIPトンネルの設定は、例えば運用管理装置(図示せず)により行われる。
【0029】
S1.クライアントからサーバに対して送信された要求パケットを、オーバーレイネットワークの入口のパケット転送装置(N1)が処理を行い、必要なネットワーク機能を有するネットワーク上の中継するパケット転送装置(N2)に転送する。受信したパケットのパケット情報に対応したマークをパケットに設定し、IPトンネルのためパケットをカプセル化し、マークに応じたIPトンネルに送信する。
【0030】
S2.パケットを受けとったN2は、カプセルを取り外し、処理ノード(P)にパケットを転送する。ここでカプセルを取り外すのは、Pが処理できるように通常のパケットにするためである。また、Pから戻ってきたとき、再度マークを設定できるように、マークに応じた送信インタフェースに送信する、または送信パケットのセッション情報をマークに関係づけて保存しておく。パケットを受信したPは、パケットに対して必要な処理を行い、N2にパケットを返信する。
【0031】
S3.処理済みのパケットを受けとったN2はパケットにマークを再度付与する。N2はパケットに付与されたマークにより転送するIPトンネルを選択する。このIPトンネルの転送先が別の中継するパケット転送装置であった場合、別の中継するパケット転送装置でも本パケット転送装置と同じ処理(S2)が行われる。転送先がオーバーレイネットワークの出口のパケット転送装置(N3)である場合、次のS4の処理が行われる。
【0032】
S4.パケットを受けとったN3は、パケットのカプセルを取り外し、パケットをサーバに転送する。N3は、サーバからの応答パケットに同じマークを設定できるようにするため、パケットのセッション情報を保存する。サーバはパケットに対する要求を処理し、クライアントに応答パケットを返信する。
【0033】
S5.応答パケットを受けとったN3は、応答パケットのセッション情報を保存されているセッション情報から検索して、要求パケットと同じルートを通過するようにマークを設定する。なお、マークに方向性を示す情報(クライアント→サーバまたはサーバ→クライアント)が設定されていた場合、この情報以外は、要求パケットと同じマークを設定する。
【0034】
S6.S2と同じ処理を行う。パケットを受けとったN2は、マークを外して処理ノード(P)にパケットを転送する。パケットを受信したPは、パケットに対して必要な処理を行い、N2にパケットを返信する。
【0035】
S7.S3と同じ処理を行う。処理済みのパケットを受けとったN2はパケットにマークを再度付与し、パケットに付与されたマークにより転送するIPトンネルを選択し、該IPトンネルにパケットを送信する。
【0036】
S8.パケットを受けとったN1は、パケットのカプセルを取り外し、応答パケットをクライアントに転送する。
【0037】
以下にパケット転送装置における処理の詳細を説明する。
図3は送信元のパケット転送装置(N1)がパケットを送信する処理の詳細フローチャートを示す。本フローチャートは図2のS1での処理に該当する。
S31.受信したパケットの宛先アドレスおよびポート番号がルールに一致するか確認する。一致した場合、S32に行き、一致しなかった場合、S33に行く。
S32.受信したパケットのペイロードがルールに一致するか確認する。一致した場合、S34に行き、一致しなかった場合、S35に行く。ペイロードは、正規表現を用いることにより、文字列の集合を一つの文字でルールに一致するか確認することができる。
S33.まだ確認していないルールがある場合、S31に行き、パケット情報とルールとの一致を確認する。全てのルールに対して確認が済んでいた場合、S35に行く。
S34.一致したルールに対応するマークをパケットに設定する。
S35.マークの処理を行う。ここでは、パケットにマークが設定されているか否かに関わらず、特に何もしない。詳細については別途説明する。
S36.パケットにマークが設定されているか確認する。設定されていた場合、S37に行き、設定されていなかった場合は、そのままパケットを送信する。
S37.IPトンネルを用いてパケットをカプセル化して送信する。
【0038】
図4は中継するパケット転送装置が処理ノードにパケットを転送する処理の詳細フローチャートを示す。図4aは、マークに応じた送信インタフェースに送信する場合のフローチャートであり、図4bは、送信パケットのセッション情報を保存する場合のフローチャートである。本フローチャートは図2のS2およびS6での処理に該当する。
S41.受信したパケットがIPトンネルを経由してきたパケットであるかどうか確認する。IPトンネルを経由しない場合は、パケットを廃棄する。IPトンネルを経由した場合は、S42に行く。
S42.処理ノードがパケットを処理できるようにするため、パケットのカプセルを取り外す。
S44.転送されたIPトンネルに従い、転送する処理ノードを選択して、パケットを送信する。図4aの場合は、パケットのマークに応じて、送信インタフェースを変更して送信する。なお、送信インタフェースの変更は物理的にインタフェースを変更する方法の他に仮想インタフェース(VLAN)を用いることも考えられる。
図4bの場合は、さらに次のステップが追加される。
S43.転送されたIPトンネルからマークを取り出す。
S45.転送した処理ノードから戻ってきた場合、S43で取り出されたマークをパケットに再度付与するため、パケットのセッション情報をマークと関連付けて保存する。セッション情報として、例えばパケットの宛先IPアドレス、宛先ポート番号、送信IPアドレス、送信ポート番号、およびプロトコル(TCPまたはUDP)種別を保存する。
【0039】
図5は中継するパケット転送装置が処理ノードから転送されたパケットを転送する処理の詳細フローチャートを示す。図5aは、マークに応じた受信インタフェースで受信する場合のフローチャートであり、図5bは、送信パケットのセッション情報が保存された場合のフローチャートである。本フローチャートは図2のS3およびS6での処理に該当する。
S51.受信したパケットの受信インタフェースにしたがって、転送するIPトンネルを選択する。送信はマークに応じたインタフェースで行われ、受信は送信と同じインタフェースで行われるため、受信インタフェースよりマークをパケットに設定することができる。このマークにより転送するIPトンネルを選択する。
S55.IPトンネルを用いてパケットをカプセル化して送信する。
図5bの場合は、S51がなく、次のステップが追加される。
S52.受信したパケットのセッション情報を保存してあるセッション情報から検索する。
S53.セッション情報が存在しないならば、マークを設定することができないため、パケットに対する処理を行うことなくパケットを転送する。セッション情報が存在した場合、S54に進む。
S54.この検索されたセッション情報に関連付けて保存されたマークをパケットに設定する。
【0040】
図6は、宛先のパケット転送装置(N3)がパケットを送信する処理の詳細フローチャートを示す。本フローチャートは図2のS4およびS8での処理に該当する。
S61.受信したパケットがIPトンネルを経由してきたパケットであるかどうか確認する。IPトンネルを経由しない場合は、S64に行く。IPトンネルを経由した場合は、S62に行く。
S62.サーバがパケットを処理できるようにするため、パケットのカプセルを取り外す。
S63.転送されたIPトンネルからマークを取り出す。
S64.マークの処理を行う。パケットの宛先アドレスがサーバである(S4)場合、パケットのセッション情報を保存する。これは要求パケットと応答パケットとの対応を行うために行われる。また、パケットの宛先アドレスがクライアントである(S8)場合も、パケットのセッション情報を保存する。詳細については別途説明する。
【0041】
図7は、宛先のパケット転送装置(N3)が応答パケットを送信する処理の詳細フローチャートを示す。本フローチャートは図2のS5での処理に該当する。
S71.S64で保存されたセッション情報を検索して、パケットに適切なマークが存在する場合、マークを設定する。詳細については別途説明する。
S72.パケットにマークが設定されているか確認する。パケットが設定されていた場合は、S73に進む、されていなかった場合はそのままパケットを送信する。
S73.IPトンネルを用いてパケットをカプセル化して送信する。
【0042】
図8は、マーク処理の詳細フローチャートを示す。本処理は、送信元および宛先のパケット転送装置(N1、N3)にて行われ、セッション情報の保存を行い、応答パケットが要求パケットと逆向きのルートを通過するようなマークを設定する。
S81.パケットの宛先アドレスがパケット転送装置に接続しているサブネットに含まれるか確認する。ここでの接続しているネットワークとは、図2の要求パケットでは、サーバが属するサブネットに該当し、図2に応答パケットでは、クライアントが属するサブネットに該当する。接続しているサブネットに含まれる場合は、S87に行き、そうでない場合は、S82に行く。
S82.パケットの送信アドレスがパケット転送装置に接続しているサブネットに含まれるか確認する。図2の要求パケットでは、クライアントが属するサブネットに該当し、図2に応答パケットでは、サーバが属するサブネットに該当する。接続しているサブネットに含まれる場合は、S83に行き、そうでない場合は、処理を終了する。
S83.パケットに既にマークが設定されている確認する。設定されていない場合は、S84に行き、設定されていた場合は、処理を終了する。
S84.保存してあるセッション情報から受信したパケットのセッション情報を検索する。
S85.セッション情報が存在しないならば、処理を終了する。セッション情報が存在した場合、S86に行く。
S86.検索されたセッション情報に対応するマークをパケットに設定する。
【0043】
次に、パケットのマークについて説明する。マークは、各ノードでは、Netfilterのmark(32bit)、またIPトンネルではGREのkey(32bit)等に設定される。マークの定義の例を以下に示す。
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+---------------------------------------------------------------+
| seq |d| filter ID | (undefined) |
+---------------------------------------------------------------+
【0044】
ここで、0−2ビット目は、シーケンス番号を示す。どこまでネットワーク機能が実行されたかを示す。例えば、IPトンネル毎に減算したシーケンス番号を付与する。3ビット目は、方向フラグであり、パケットがクライアントからの要求パケットであるか、サーバからの応答パケットであるかを示す。4−11ビット目(8ビット)は、フィルタIDを示す。これはパケット情報(IPアドレス、ポート番号、データペイロード)に応じて、決定されるもので、このフィルタIDにより、パケットが必要とするネットワーク機能が定まる。なお、12ビット目以降は、現在未使用である。
【0045】
また、以上述べた実施形態は全て本発明を例示的に示すものであって限定的に示すものではなく、本発明は他の種々の変形態様および変更態様で実施することができる。従って本発明の範囲は特許請求の範囲およびその均等範囲によってのみ規定されるものである。
【符号の説明】
【0046】
1 クライアントコンピュータ
2 サーバコンピュータ
3 パケット転送装置
4 中継するパケット転送装置
5 処理ノード

【特許請求の範囲】
【請求項1】
1つまたは複数のパケット転送装置を有し、パケット情報に応じたマークが付与されたIPトンネルが該パケット転送装置間に構築されたネットワークにおけるパケット転送装置であって、
パケット情報に応じてパケットにマークを付与する付与手段と、
前記パケットが前記IPトンネルから転送されて来た場合、該パケットにネットワーク機能の処理を行う処理手段と、
前記処理されたパケットを前記マークに応じたIPトンネルに転送する転送手段と、
を備えていることを特徴とするパケット転送装置。
【請求項2】
前記パケット情報は、IPアドレス、ポート番号、またはデータペイロードであることを特徴とする請求項1に記載のパケット転送装置。
【請求項3】
前記データペイロードの確認には正規表現を用いることを特徴とする請求項2に記載のパケット転送装置。
【請求項4】
前記ネットワーク機能は、負荷分散、データキャッシュ、パケット圧縮、プロトコル最適化、WAN高速化、Firewall、Web Application Firewall、帯域制御、NAT、NAPTであることを特徴とする請求項1から3のいずれか1項に記載のパケット転送装置。
【請求項5】
前記ネットワーク機能は、パケット転送装置において処理されることを特徴とする請求項1から4のいずれか1項に記載のパケット転送装置。
【請求項6】
前記処理手段は、
前記パケットが前記IPトンネルから転送されて来た場合、該パケットを異なるノードに転送し、前記異なるノードに前記ネットワーク機能の処理を行わせる手段であることを特徴とする請求項1から4のいずれか1項に記載のパケット転送装置。
【請求項7】
前記異なるノードにパケットを転送する場合、パケットのマークに応じて送信インタフェースを変更し、
前記異なるノードからパケットを受信した場合、受信したインタフェースに応じてパケットにマークを付与する手段をさらに備えることを特徴とする請求項6に記載のパケット転送装置。
【請求項8】
前記インタフェースの変更に仮想インタフェースを用いることを特徴とする請求項7に記載のパケット転送装置。
【請求項9】
前記異なるノードにパケットを転送する場合、パケットのセッション情報をマークに関連付けて保存し、
前記異なるノードからパケットを受信した場合、該パケットのセッション情報を、保存しているパケットのセッション情報から検索し、検索されたセッション情報に関連するマークをパケットに付与する手段をさらに備えることを特徴とする請求項6に記載のパケット転送装置。
【請求項10】
サーバからの応答パケットに対して、クライアントからの要求パケットと同一のマークを付与することを特徴とする請求項1から9のいずれか1項に記載のパケット転送装置。
【請求項11】
前記マークに、クライアントからサーバへ、またはサーバからクライアントへのパケットであることを示す方向性を付与することを特徴とする請求項1から10のいずれか1項に記載のパケット転送装置。
【請求項12】
前記マークに、前記ネットワーク機能の処理回数を示すシーケンス番号を付与することを特徴とする請求項1から11のいずれか1項に記載のパケット転送装置。
【請求項13】
前記マークに従い、応答パケットを要求パケットと同一経路で転送することを特徴とする請求項1から12のいずれか1項に記載のパケット転送装置。
【請求項14】
1つまたは複数のパケット転送装置を有するネットワークにおけるパケット転送方法であって、
パケット情報に応じたマークが付与されたIPトンネルを前記パケット転送装置間に構築する構築ステップと、
パケット情報に応じてパケットにマークを付与する付与ステップと、
前記パケットが前記IPトンネルから転送されて来た場合、該パケットにネットワーク機能の処理を行う処理ステップと、
前記処理されたパケットをマークに応じたIPトンネルに転送する転送ステップと、
を含むことを特徴とするパケット転送方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate