以下において、本発明の実施例1を図1〜図5を用いて説明する。
図1は、本発明の実施例1のネットワークシステムの構成図である。
本ネットワークシステムは、コアネットワーク200とアクセスネットワークA201とアクセスネットワークB202とを含む。
コアネットワーク200は、エッジルータA101、エッジルータB102、DPIゲートウェイルータ203、及びDPI装置204を有する。以下では、エッジルータA101及びエッジルータB102を総称する場合には、エッジルータ100と記載する。
アクセスネットワークA201は、エッジルータA101が収容するネットワークであり、情報処理端末であるユーザA205及びユーザB206を有する。
アクセスネットワークB202は、エッジルータB102が収容するネットワークであり、情報処理端末であるユーザC207を有する。以下では、アクセスネットワークA201及びアクセスネットワークB202を総称する場合には、アクセスネットワーク201と記載する。
DPI装置204は、回線208及び回線209を介してDPIゲートウェイルータ203に接続される。エッジルータ100とDPIゲートウェイルータ203は、コアネットワーク200を介してトンネリングプロトコルによって接続される。エッジルータA101は、上りAトンネル210、及び下りAトンネル211を介してDPIゲートウェイルータ203に接続される。エッジルータB102は、上りBトンネル212、及び下りBトンネル213を介してDPIゲートウェイルータ203に接続される。エッジルータB102は、回線214を介してエッジルータA101に接続される。エッジルータA101とエッジルータB102は、直接接続されなくてもよく、例えば、スイッチ又はルータを介して接続してもよい。ユーザA205とユーザB206はエッジルータA101に接続される。ユーザC207はエッジルータB102に接続される。以下では、ユーザA205〜ユーザC207を総称する場合には、ユーザと記載する。
各装置について説明する。
まず、DPI装置204について説明する。DPI装置204は、ユーザの送受信するパケットのペイロード部を解析する。DPI装置204は、DPI装置204に設定されたフィルタやQoS情報を適用して、ユーザが送受信するパケットの統計情報を取得する。DPI装置204は、2種類のインタフェースを持つ。DPIゲートウェイルータ203と回線208で接続されるインタフェースは、エッジルータ100がユーザからパケットを受信する方向のパケットを受信する際に使用される。DPIゲートウェイルータ203と回線209で接続されるインタフェースは、エッジルータ100がユーザにパケットを中継する方向のパケットを受信する際に使用される。
解析するパケットの送信元と宛先がともにDPI解析対象である場合は、DPI装置204へのパケット中継を2回実施する必要がある。1回目はエッジルータがユーザからパケットを受信した時で、2回目はエッジルータがユーザにパケットを中継する時である。解析後のパケットは受信時と対となる反対のインタフェースから送信される。つまり、DPI装置204は、回線208から受信したパケットは、解析後、回線209から送信し、回線209から受信したパケットは、解析後、回線208から送信される。
次に、DPIゲートウェイルータ203について説明する。DPIゲートウェイルータ203は、エッジルータ100と、コアネットワーク200を介してトンネリングプロトコルによって接続される。DPIゲートウェイルータ203とエッジルータとの間には、用途の異なる2つのトンネルが確立される。1つはエッジルータ100がユーザからパケットを受信した時のDPI装置204への転送に使用され、もう1つはエッジルータ100がユーザにパケットを中継する時のDPI装置204への転送に使用される。
図1の例において、上りAトンネル210及び上りBトンネル212は、エッジルータ100がユーザからパケットを受信した時のDPI装置204への転送に使用される。以下では、上りAトンネル210と上りBトンネル212を総称する場合、上りトンネルと記載する。下りAトンネル211及び下りBトンネル213は、エッジルータ100がユーザにパケットを中継する時のDPI装置204への転送に使用される。以下では、下りAトンネル211と下りBトンネル213を総称する場合、下りトンネルと記載する。
DPIゲートウェイルータ203は、上りトンネルから受信したパケットを回線208を経由してDPI装置204に中継する。DPIゲートウェイルータ203は、下りトンネルから受信したパケットを回線209を経由してDPI装置204に中継する。DPI装置204から折り返されたパケットは、DPIゲートウェイルータ203がエッジルータ100からパケットを受信した時と同じトンネルを介して送信する。
次に、ユーザについて説明する。ユーザが送受信するパケットは、DPI装置204において、解析の対象となる。ユーザが送受信するパケットは、ユーザを収容するエッジルータ100によってDPI装置204に転送される。
次に、エッジルータ100について説明する。エッジルータ100は、アクセスネットワークを収容し、コアネットワーク200とアクセスネットワークの境界に位置する。エッジルータ100は、コアネットワーク200から受信したパケットに対して、パケットの宛先が、その宛先を収容するアクセスネットワークのDPI解析対象ユーザかを判定し、解析が必要なパケットは下りトンネルを経由してDPI装置204に転送する。エッジルータ100は、アクセスネットワークから受信したパケットに対して、パケットの送信元が、その送信元を収容するアクセスネットワークのDPI解析対象ユーザかを判定し、解析が必要なパケットは下りトンネルを経由してDPI装置204に転送する。なお、エッジルータ100の詳細は、図2で説明する。
図2は、本発明の実施例1のエッジルータ100の全体構成の説明図である。
エッジルータ100は、ハードウェア構成として、CPU121、メモリ122、及びネットワークインタフェース123を有する。
CPU121は、メモリ122上の各種プログラムを実行し、メモリ122上の各種情報を参照する。ネットワークインタフェース123は、アクセスNW接続インタフェース117と、コアNW接続インタフェース118とに分かれており、それぞれエッジルータ100の外部とデータを通信するためのインタフェースである。アクセスNW接続インタフェース117は、アクセスネットワーク内の装置と接続される。コアNW接続インタフェース118は、コアネットワーク200内の装置と接続される。
CPU121上では、経路検索部111、パケット検出部112、及びトンネル制御部113が動作する。これらの機能は、対応するプログラムをCPU121が実行することによって実現される。
経路検索部111は、ルーティングテーブル114を参照し、受信したパケットに設定された宛先に応じて次の転送先を決定し、パケットをネットワークインタフェース123に転送する。
パケット検出部112は、受信したパケットに設定されている情報から、送信元、及び宛先のユーザを特定する。パケット検出部112は、DPI解析パケット検出条件115、及び受信トンネル情報116を参照し、特定したユーザのパケットをDPI装置204に転送する必要があるかを判定する。必要がある場合は、パケットをカプセル化するために、パケットをトンネル制御部113に転送する。必要がない場合は、パケットに設定された宛先に転送するため、パケットを経路検索部111に転送する。
トンネル制御部113は、トンネリングプロトコルへのカプセル化、及びデカプセル化を行う。また、トンネル制御部113は、パケットをデカプセル化する際に、トンネリングプロトコルのヘッダに設定されたトンネルを識別する情報を受信トンネル情報116に設定する。デカプセル化後のパケットは、DPI装置204への転送が必要か判定するために、パケット検出部112に転送される。カプセル化後のパケットは装置外部に送信するために、経路検索部111に転送される。
メモリ122には、ルーティングテーブル114、DPI解析パケット検出条件115、及び、受信トンネル情報116が記憶される。
ルーティングテーブル114は、パケットをルーティングするために必要な情報であり、宛先ネットワーク及びネクストホップ情報から構成される。
DPI解析パケット検出条件115は、エッジルータ100が受信するパケットを解析のためにDPI装置204に転送する必要があるかどうかを判定するための条件である。DPI解析パケット検出条件115の詳細は、図3を参照して説明する。
受信トンネル情報116は、デカプセル化時にトンネルを識別する情報を一時的に保持するための格納領域である。受信トンネル情報116は、図4を参照して説明する。
図3(a)、及び図3(b)は、本発明の実施例1のエッジルータ100のDPI解析パケット検出条件115の説明図である。
DPI解析パケット検出条件115は、送信元301、宛先302、受信インタフェース303及び転送先トンネル304で構成される。送信元301は、受信したパケットに設定されたパケットの送信元を識別する情報で、例えば、IPヘッダに設定されたSource Addressフィールドの値である。宛先302は、受信したパケットに設定されたパケットの宛先を識別する情報で、例えば、IPヘッダに設定されたDestination Addressフィールドの値である。受信インタフェース303は、エッジルータ100がパケットを受信したインタフェースを識別する情報である。転送先トンネル304は、送信元301、宛先302、及び受信インタフェース303の全ての条件を満たした場合にパケットを転送するトンネルを識別する情報である。
トンネルは、トンネリングプロトコルでカプセル化する際のカプセル化ヘッダに設定される値で識別される。この値は、例えば、カプセル化後のIPヘッダに設定されたSource Addressフィールドの値、Destination Addressフィールドの値、又は、トンネリングプロトコルにVXLANプロトコルを使用している場合は、VXLANヘッダに設定されたVNIフィールドの値などである。
DPI解析パケット検出条件115に設定されるレコードは、管理者がエッジルータ100に対してコンフィグレーションで設定してもよく、図示しない管理サーバによってネットワーク経由で設定されてもよい。あるいは、エッジルータ100がRA(Router Advertisement)機能又はDHCP(Dynamic Host Configuration Protocol)サーバ機能を併せて有しているなら、ユーザに対してIPアドレスを払い出すタイミングでレコードを設定してもよい。
図4(a)、及び図4(b)は、本発明の実施例1のエッジルータ100の受信トンネル情報116の説明図である。
受信トンネル情報116は、トンネル識別子401で構成される。トンネル識別子401は、DPI解析パケット検出条件115の転送先トンネル304と同じ形式で保持される情報である。トンネル識別子401は、トンネルを経由して受信したパケットのカプセル化ヘッダに設定された値が格納される。トンネル識別子401は、受信パケットをデカプセル化する際に設定される一時的な情報であり、パケットの転送処理が終了すると削除される。
図5は、本発明の実施例1のエッジルータ100のパケット受信時の処理のフローチャートである。
パケット受信時の処理は、ネットワークインタフェース123が外部からのパケットを受信したタイミングでCPU121によって実行される(S501)。
まず、ネットワークインタフェース123は、受信したパケットとパケットを受信したインタフェースを識別する情報とをトンネル制御部113に転送する(S502)。
トンネル制御部113は、転送されたパケットを解析し、パケットがカプセル化されているか判定する(S503)。
S503の処理において、トンネル制御部113は、パケットがカプセル化されている場合は、カプセル化ヘッダに設定されたトンネルを識別する情報を受信トンネル情報116のトンネル識別子401に設定する(S504)。
トンネル制御部113は、受信したパケットをデカプセル化する(S505)。すなわち、受信したパケットからカプセル化ヘッダが削除される。
トンネル制御部113は、S503の処理においてパケットがカプセル化されていない場合、またはS505の処理でデカプセル化が行われた後、受信したインタフェースを識別する情報とともにパケットをパケット検出部112に転送する(S506)。
パケット検出部112は、転送されたパケットを解析し、送信元のユーザ、及び宛先のユーザを特定する。パケット検出部112は、DPI解析パケット検出条件115を読み出し、特定した送信元のユーザと宛先のユーザ、及びパケットを受信したインタフェースを、DPI解析パケット検出条件115に設定されたレコードの送信元301と宛先302、及び受信インタフェース303と照合し、条件に一致するレコードがあるかを判定する(S507)。
S507の処理において、条件に一致するレコードがある場合、パケット検出部112は、更に受信トンネル情報116を読み出し、条件に一致したレコードの転送先トンネル304と、受信トンネル情報116に設定されたトンネル識別子401を照合し、一致するかを判定する(S508)。
S508の処理において、転送先トンネル304とトンネル識別子401とが一致しないか、又は、トンネル識別子401に値が設定されていない場合、パケット検出部112は、条件に一致したレコードの転送先トンネル304で指定されるトンネルに送信するため、条件に一致したレコードの転送先トンネル304とともにパケットをトンネル制御部113に転送する(S509)。
トンネル制御部113は、転送されたパケットを、転送先トンネル304を用いてカプセル化する(S510)。すなわち、トンネル制御部113は、トンネルを識別する情報として転送先トンネル304の値を含むカプセル化ヘッダを、転送されたパケットに付加する。
パケット検出部112は、S507の処理において、条件に一致するレコードがない場合、または、S510の処理が行われた後、パケットに設定された宛先に転送するため、パケットを経路検索部111に転送する(S511)。
S508の処理において、転送先トンネル304とトンネル識別子401とが一致する場合、パケット検出部112は、S509及びS510を実行せずにS511を実行する。
経路検索部111は、ルーティングテーブル114を読み出し、パケットに設定された宛先から転送先を決定し、ネットワークインタフェース123を経由して、パケットを装置外部に送信する(S512)。
S501及びS502はネットワークインタフェース123による処理である。
S503〜S506及びS510はトンネル制御部113による処理である。
S507〜S509はパケット検出部112による処理である。
S507において不一致と判定された場合のS511はパケット検出部112による処理である。S507において一致と判定され、S510が実行された後のS511は、トンネル制御部113による処理である。
S512は経路検索部111による処理である。
図1における、ユーザが送信するパケットのDPI解析手順を具体的に説明する。
図3(a)は、エッジルータA101があらかじめ保持するDPI解析パケット検出条件115のレコードを示している。
図3(b)は、エッジルータB102があらかじめ保持するDPI解析パケット検出条件115のレコードを示している。
図4(a)は、エッジルータA101の処理途中における受信トンネル情報116の状態を示している。
図4(b)は、エッジルータB102の処理途中における受信トンネル情報116の状態を示している。
受信トンネル情報116が図4(a)、及び図4(b)の状態になるタイミングは、以下の文中にて説明する。
図1のフローF121は、エッジルータA101に収容されるユーザA205が、同じくエッジルータA101に収容されるユーザB206にパケットを送信した場合の中継経路を示している。
ユーザA205が送信したパケットは、エッジルータA101のアクセスNW接続インタフェース117によって受信される。エッジルータA101は、受信したパケットがカプセル化されていないため、デカプセル化しない(S503:NO)。エッジルータA101は、エッジルータA101が収容するユーザA205を送信元とするパケットをアクセスNW接続インタフェース117から受け取ったため、このパケットは図3(a)に示すDPI解析パケット検出条件115の1つ目のレコードの条件と一致する(S507:一致)。また、転送先トンネル304が上りAトンネル210に対して、受信トンネル情報116にトンネル識別子401が設定されていないため(S508:未設定)、エッジルータA101は、上りAトンネル210宛にパケットをカプセル化する(S510)。エッジルータA101は、カプセル化したパケットを上りAトンネル210を経由してDPIゲートウェイルータ203に転送する(S512)。
DPIゲートウェイルータ203は、上りAトンネル210から受信したパケットを、回線208を経由してDPI装置204に転送する。
DPI装置204は、回線208を経由して受信したパケットに対して、ユーザからパケットを受信した時の解析を行い、回線209を経由してDPIゲートウェイルータ203に転送する。
DPIゲートウェイルータ203は、回線209を経由してDPI装置204から受信したパケットを、上りAトンネル210を経由してエッジルータA101に転送する。
エッジルータA101は、上りAトンネル210を経由して受信したパケットをデカプセル化する(S503:YES、S505)。この際、エッジルータA101は、受信トンネル情報116のトンネル識別子401に、上りAトンネル210のトンネルを識別する情報を設定する(S504)。エッジルータA101が収容するユーザB206を宛先とするパケットをコアNW接続インタフェース118から受け取ったため、このパケットは図3(a)に示すDPI解析パケット検出条件115の4つ目のレコードの条件と一致する(S507:一致)。また、当該4つ目のレコードの転送先トンネル304が「下りAトンネル211」であるのに対して、受信トンネル情報116のトンネル識別子401が「上りAトンネル210」であり(S508:不一致)、同一トンネルへの折り返しとならないことから、エッジルータA101は、パケットをカプセル化する(S510)。エッジルータA101は、カプセル化したパケットを、下りAトンネル211を経由してDPIゲートウェイルータ203に転送する(S512)。
上記のように、S504においてトンネル識別子401を保持しておくことによって、パケットをデカプセル化した後にS508の判定を行うことが可能になる。S508の判定処理が終了するか、又は、S507で不一致と判定され、パケット検出部からトンネル制御部又は経路検索部に処理が以降するタイミングで、トンネル識別子401が未設定の状態にリセットされてもよい。なお、あるパケットについてS508の判定処理が終了する前にエッジルータA101が次のパケットを受信する場合には、例えば受信トンネル情報116に複数のパケットのトンネル識別子を格納する領域を用意しておき、それらの領域に、受信したパケットのカプセル化ヘッダから取り出したトンネル識別子を順次格納してもよい。この場合、S508では、それぞれのパケットに対応する領域のトンネル識別子が参照される。
S512においてパケットが送信されると、DPIゲートウェイルータ203は、下りAトンネル211から受信したパケットを、回線209を経由してDPI装置204に転送する。
DPI装置204は、回線209を経由して受信したパケットに対して、ユーザにパケットを中継する時の解析を行い、回線208を経由してDPIゲートウェイルータ203に転送する。
DPIゲートウェイルータ203は、回線208を経由してDPI装置204から受信したパケットを、下りAトンネル211を経由してエッジルータA101に転送する。
エッジルータA101は、下りAトンネル211を経由して受信したパケットをデカプセル化する(S503:YES、S505)。この際、エッジルータA101は、受信トンネル情報116のトンネル識別子401に、下りAトンネル211のトンネルを識別する情報を設定する(S504)(図4(a))。エッジルータA101が収容するユーザB206を宛先とするパケットをコアNW接続インタフェース118から受け取ったため、このパケットは図3(a)に示すDPI解析パケット検出条件115の4つ目のレコードの条件と一致する(S507:一致)。
しかし、当該4つ目のレコードの転送先トンネル304が「下りAトンネル211」であるのに対して、受信トンネル情報116のトンネル識別子401が「下りAトンネル211」であり(S508:一致)、同一トンネルへの折り返しとなる。このことは、当該受信したパケットが既にエッジルータA101において一度上記の4つ目のレコードの条件と一致したと判定され、DPIゲートウェイルータ203に送信されたこと、すなわち、このパケットをこれからDPIゲートウェイルータ203に送信することによってループが発生することを意味する。このため、エッジルータA101はパケットのカプセル化を行わず、カプセル化されていないパケットの宛先であるユーザB206にパケットを転送する(S512)。
フローF122は、エッジルータA101に収容されるユーザA205が、エッジルータB102に収容されるユーザC207にパケットを送信した場合の中継経路を示している。
ユーザA205がパケットを送信してから、DPI装置204がユーザからパケットを受信した時の解析を行い、上りAトンネル210を経由してエッジルータA101に転送されるまでの処理は、ユーザB206への送信時と同一であるため、説明を省略する。
エッジルータA101は、上りAトンネル210を経由して受信したパケットをデカプセル化する(S503:YES、S505)。この際、エッジルータA101は、受信トンネル情報116のトンネル識別子401に、上りAトンネル210のトンネルを識別する情報を設定する(S504)。宛先がエッジルータA101の収容するユーザではないパケットをコアNW接続インタフェース118から受け取ったため、このパケットは図3(a)に示すDPI解析パケット検出条件115のいずれのレコードの条件とも一致しない(S507:不一致)。従って、エッジルータA101は、カプセル化されていないパケットの宛先であるユーザB206に転送するため、ルーティングテーブルに従い、ユーザB206を収容するエッジルータB102にパケットを転送する。
エッジルータB102は、受信したパケットがカプセル化されていないため(S503:NO)、デカプセル化しない。エッジルータB102は、エッジルータB102が収容するユーザC207を宛先とするパケットをコアNW接続インタフェース118から受け取ったため、このパケットは図3(b)に示すDPI解析パケット検出条件115の2つ目のレコードの条件と一致する(S507:「一致」)。また、当該2つ目のレコードの転送先トンネル304が「下りBトンネル213」であるのに対して、受信トンネル情報116にトンネル識別子401が設定されていないため(S508:「未設定」)、エッジルータB102は、下りBトンネル213宛にパケットをカプセル化する(S510)。エッジルータB102は、カプセル化したパケットを下りBトンネル213を経由してDPIゲートウェイルータ203に転送する(S512)。
DPIゲートウェイルータ203は、下りBトンネル213から受信したパケットを、回線209を経由してDPI装置204に転送する。
DPI装置204は、回線209を経由して受信したパケットに対して、ユーザにパケットを中継する時の解析を行い、回線208を経由してDPIゲートウェイルータ203に転送する。
DPIゲートウェイルータ203は、回線208を経由してDPI装置204から受信したパケットを、下りBトンネル213を経由してエッジルータB102に転送する。
エッジルータB102は、下りBトンネル213を経由して受信したパケットをデカプセル化する(S503:YES、S505)。この際、エッジルータB102は、受信トンネル情報116のトンネル識別子401に、下りBトンネル213のトンネルを識別する情報を設定する(S504)(図4(b))。エッジルータB102が収容するユーザC207を宛先とするパケットをコアNW接続インタフェース118から受け取ったため、このパケットは図3(b)に示すDPI解析パケット検出条件115の2つ目のレコードの条件と一致する(S507:一致)。
しかし、当該2つ目のレコードの転送先トンネル304が「下りBトンネル213」であるのに対して、受信トンネル情報116のトンネル識別子401が「下りBトンネル213」であり(S508:一致)、同一トンネルへの折り返しとなる。このことは、当該受信したパケットが既にエッジルータB102において一度上記の2つ目のレコードの条件と一致したと判定され、DPIゲートウェイルータ203に送信されたこと、すなわち、このパケットをこれからDPIゲートウェイルータ203に送信することによってループが発生することを意味する。このため、エッジルータB102はパケットのカプセル化を行わない。エッジルータB102は、カプセル化されていないパケットの宛先であるユーザC207にパケットを転送する(S512)。
以上のように、本実施例では、受信トンネル情報116を用いることで、同一トンネルへの折り返しを抑止できるため、同じトンネルに折り返し続けることで発生するルーティングループを防ぎ、期待する宛先に正しく転送することが可能である。この処理を実現するために、DPI装置204は、DPI解析パケット検出条件を保持する必要も、それに基づいてパケットにタグを付加する必要もない。
以下において、本発明の実施例2を図6及び図7を用いて説明する。以下に説明する相違点を除き、実施例2のシステムの各部は、図1〜図5に示された実施例1の同一の符号を付された各部と同一の機能を有するため、それらの説明は省略する。
実施例1において、DPIゲートウェイルータ203は、エッジルータ100からトンネルを経由して受信したパケットをDPI装置204に送信し、そのパケットの解析が終了してDPI装置204から送信されたパケットを、エッジルータ100から受信した時と同じトンネルを経由してエッジルータ100に送信していた。実施例2は、DPIゲートウェイルータ203が、エッジルータ100から受信した時のトンネルと対となる反対側のトンネルを使用してエッジルータ100に送信することによって発生するルーティングループを解消する。
図5において説明した本発明の実施例1のエッジルータ100のパケット受信時の処理のフローと、実施例2のエッジルータ100のパケット受信時の処理のフローの相違点を説明する。
実施例2のエッジルータ100は、送信時に経由したものと対となる反対側のトンネルを経由してDPIゲートウェイルータ203からパケットを受信するため、エッジルータ100とDPI装置204間のルーティングループは、エッジルータ100が受信時のトンネルと対となる反対側のトンネルに折り返す状況において発生する。
従って、実施例1の図5のS508において、受信トンネル情報116のトンネル識別子401と、DPI解析パケット検出条件115の転送先トンネル304が一致する場合にカプセル化を抑止していたところを、一致しない場合にカプセル化を抑止するように処理を変えるだけで、ルーティングループを解消することができる。具体的には、S508の処理において、転送先トンネル304とトンネル識別子401とが一致したか、又は、トンネル識別子401に値が設定されていない場合、パケット検出部112は、S509及びS510を実行し、その後、S511を実行する。一方、転送先トンネル304とトンネル識別子401とが一致しない場合、パケット検出部112は、S509及びS510を実行せずにS511を実行する。
図6は、本発明の実施例2のネットワークシステムの構成図である。
実施例2のネットワークシステムにおける装置の構成は、実施例1のネットワークシステムの構成図に示したものと同様である。但し、実施例2のDPIゲートウェイルータ203は、エッジルータ100にパケットを送信するときに、実施例1のDPIゲートウェイルータ203と異なり、受信時のトンネルと対となる反対側のトンネルを経由して送信する。
図6における、ユーザが送信するパケットのDPI解析手順を具体的に説明する。
図3(a)は、エッジルータA101があらかじめ保持するDPI解析パケット検出条件115のレコードを示している。
図3(b)は、エッジルータB102があらかじめ保持するDPI解析パケット検出条件115のレコードを示している。
図7(a)、及び図7(b)は、本発明の実施例2のエッジルータ100の受信トンネル情報116の説明図である。
具体的には、図7(a)は、エッジルータA101の処理途中における受信トンネル情報116の状態を示している。
図7(b)は、エッジルータB102の処理途中における受信トンネル情報116の状態を示している。
受信トンネル情報116が図7(a)、及び図7(b)の状態になるタイミングは、以下の文中にて説明する。
フローF601は、エッジルータA101に収容されるユーザA205が、同じくエッジルータA101に収容されるユーザB206にパケットを送信した場合の中継経路を示している。
ユーザA205が送信したパケットは、エッジルータA101のアクセスNW接続インタフェース117によって受信される。エッジルータA101は、受信したパケットがカプセル化されていないため、デカプセル化しない(S503:NO)。エッジルータA101は、エッジルータA101が収容するユーザA205を送信元とするパケットをアクセスNW接続インタフェース117から受け取ったため、このパケットは図3(a)に示すDPI解析パケット検出条件115の1つ目のレコードの条件と一致する(S507:一致)。また、転送先トンネル304が上りAトンネル210に対して、受信トンネル情報116にトンネル識別子401が設定されていないため(S508:未設定)、エッジルータA101は、上りAトンネル210宛にパケットをカプセル化する(S510)。エッジルータA101は、カプセル化したパケットを上りAトンネル210を経由してDPIゲートウェイルータ203に転送する(S512)。
DPIゲートウェイルータ203は、上りAトンネル210から受信したパケットを、回線208を経由してDPI装置204に転送する。
DPI装置204は、回線208を経由して受信したパケットに対して、ユーザからパケットを受信した時の解析を行い、回線209を経由してDPIゲートウェイルータ203に転送する。
DPIゲートウェイルータ203は、回線209を経由してDPI装置204から受信したパケットを、下りAトンネル211を経由してエッジルータA101に転送する。
エッジルータA101は、下りAトンネル211を経由して受信したパケットをデカプセル化する(S503:YES、S505)。この際、エッジルータA101は、受信トンネル情報116のトンネル識別子401に、下りAトンネル211のトンネルを識別する情報を設定する(S504)。エッジルータA101が収容するユーザB206を宛先とするパケットをコアNW接続インタフェース118から受け取ったため、このパケットは図3(a)に示すDPI解析パケット検出条件115の4つ目のレコードの条件と一致する(S507:一致)。また、当該4つ目のレコードの転送先トンネル304が「下りAトンネル211」であるのに対して、受信トンネル情報116のトンネル識別子401が「下りAトンネル211」であり(S508:一致)、同一トンネルへの折り返しとなることから、パケットをカプセル化する(S510)。エッジルータA101は、カプセル化したパケットを下りAトンネル211を経由してDPIゲートウェイルータ203に転送する(S512)。
DPIゲートウェイルータ203は、下りAトンネル211から受信したパケットを、回線209を経由してDPI装置204に転送する。
DPI装置204は、回線209を経由して受信したパケットに対して、ユーザにパケットを中継する時の解析を行い、回線208を経由してDPIゲートウェイルータ203に転送する。
DPIゲートウェイルータ203は、回線208を経由してDPI装置204から受信したパケットを、上りAトンネル210を経由してエッジルータA101に転送する。
エッジルータA101は、上りAトンネル210を経由して受信したパケットをデカプセル化する(S503:YES、S505)。この際、エッジルータA101は、受信トンネル情報116のトンネル識別子401に、上りAトンネル210のトンネルを識別する情報を設定する(S504)(図7(a))。エッジルータA101が収容するユーザB206を宛先とするパケットをコアNW接続インタフェース118から受け取ったため、このパケットは図3(a)に示すDPI解析パケット検出条件115の4つ目のレコードの条件と一致する(S507:一致)。
しかし、当該4つ目のレコードの転送先トンネル304が「下りAトンネル211」であるのに対して、受信トンネル情報116のトンネル識別子401が「上りAトンネル210」であり(S508:不一致)、異なるトンネルへの折り返しとなる。このことは、当該受信したパケットが既にエッジルータA101において一度上記の4つ目のレコードの条件と一致したと判定され、DPIゲートウェイルータ203に送信されたこと、すなわち、このパケットをこれからDPIゲートウェイルータ203に送信することによってループが発生することを意味する。このため、エッジルータA101はパケットのカプセル化を行わず、カプセル化されていないパケットの宛先であるユーザB206にパケットを転送する(S512)。
フローF602は、エッジルータA101に収容されるユーザA205が、エッジルータB102に収容されるユーザC207にパケットを送信した場合の中継経路を示している。
ユーザA205がパケットを送信してから、DPI装置204がユーザからパケットを受信した時の解析を行い、下りAトンネル211を経由してエッジルータA101に転送されるまでの処理は、ユーザB206への送信時と同一であるため、説明を省略する。
エッジルータA101は、下りAトンネル211を経由して受信したパケットをデカプセル化する(S503:YES、S505)。この際、エッジルータA101は、受信トンネル情報116のトンネル識別子401に、下りAトンネル211のトンネルを識別する情報を設定する(S504)。宛先がエッジルータA101の収容するユーザではないパケットをコアNW接続インタフェース118から受け取ったため、このパケットは図3(a)に示すDPI解析パケット検出条件115のいずれのレコードの条件とも一致しない(S507:不一致)。従って、エッジルータA101は、カプセル化されていないパケットの宛先であるユーザB206に転送するため、ルーティングテーブルに従い、ユーザB206を収容するエッジルータB102にパケットを転送する。
エッジルータB102は、受信したパケットがカプセル化されていないため(S503:NO)、デカプセル化しない。エッジルータB102は、エッジルータB102が収容するユーザC207を宛先とするパケットをコアNW接続インタフェース118から受け取ったため、このパケットは図3(b)に示すDPI解析パケット検出条件115の2つ目のレコードの条件と一致する(S507:「一致」)。また、当該2つ目のレコードの転送先トンネル304が「下りBトンネル213」であるのに対して、受信トンネル情報116にトンネル識別子401が設定されていないため(S508:「未設定」)、エッジルータB102は、下りBトンネル213宛にパケットをカプセル化する(S510)。エッジルータB102は、カプセル化したパケットを下りBトンネル213を経由してDPIゲートウェイルータ203に転送する(S512)。
DPIゲートウェイルータ203は、下りBトンネル213から受信したパケットを、回線209を経由してDPI装置204に転送する。
DPI装置204は、回線209を経由して受信したパケットに対して、ユーザにパケットを中継する時の解析を行い、回線208を経由してDPIゲートウェイルータ203に転送する。
DPIゲートウェイルータ203は、回線208を経由してDPI装置204から受信したパケットを、上りBトンネル212を経由してエッジルータB102に転送する。
エッジルータB102は、上りBトンネル212を経由して受信したパケットをデカプセル化する(S503:YES、S505)。この際、エッジルータB102は、受信トンネル情報116のトンネル識別子401に、上りBトンネル212のトンネルを識別する情報を設定する(S504)(図7(b))。エッジルータB102が収容するユーザC207を宛先とするパケットをコアNW接続インタフェース118から受け取ったため、このパケットは図3(b)に示すDPI解析パケット検出条件115の2つ目のレコードの条件と一致する(S507:一致)。
しかし、当該2つ目のレコードの転送先トンネル304が「下りBトンネル213」であるのに対して、受信トンネル情報116のトンネル識別子401が「上りBトンネル212」であり(S508:不一致)、異なるトンネルへの折り返しとなる。このことは、当該受信したパケットが既にエッジルータB102において一度上記の2つ目のレコードの条件と一致したと判定され、DPIゲートウェイルータ203に送信されたこと、すなわち、このパケットをこれからDPIゲートウェイルータ203に送信することによってループが発生することを意味する。このため、エッジルータB102はパケットのカプセル化を行わず、カプセル化されていないパケットの宛先であるユーザC207にパケットを転送する(S512)。
以上のように、本実施例では、受信トンネル情報116を用いることで、異なるトンネルへの折り返しを抑止できるため、DPIゲートウェイルータ203から折り返されるパケットが受信時と異なるトンネルを経由する場合であっても、ルーティングループを防ぎ、期待する宛先に正しく転送することが可能である。この処理を実現するために、DPI装置204は、DPI解析パケット検出条件を保持する必要も、それに基づいてパケットにタグを付加する必要もない。
なお、ここまでに説明した通り、実施例1と実施例2の相違点は、以下の2点である。すなわち、第1に、実施例1のDPIゲートウェイルータ203が、エッジルータ100からトンネルを経由して受信したパケットをDPI装置204に送信し、DPI装置204から戻ってきたパケットを受信時と同じトンネルを経由してエッジルータに返すのに対して、実施例2のDPIゲートウェイルータ203は、DPI装置204から戻ってきたパケットを受信時のトンネルと対をなす反対側のトンネルを経由してエッジルータに返す点である。第2に、実施例1のエッジルータ100が、S508において、転送先トンネル304とトンネル識別子401とが一致する場合にS509及びS510を実行しないのに対して、実施例1のエッジルータ100は、転送先トンネル304とトンネル識別子401とが一致しない場合にS509及びS510を実行しない点である。
このため、例えば、S508の判定条件として実施例1の判定条件及び実施例2の判定条件の両方を用意し、設定によって一方を選択可能となるようにエッジルータ100を設計してもよい。このようなエッジルータ100を用いることによって、例えば実施例1のように動作するDPIゲートウェイルータ203が使用されたコアネットワーク200においては、実施例1の判定条件を使用し、実施例2のように動作するDPIゲートウェイルータ203が使用されたコアネットワーク200においては、実施例2の判定条件を使用するように、エッジルータ100の設定を切り替えることができる。このようなエッジルータを使用することによって、コアネットワーク200にいずれのDPIゲートウェイルータ203が使用された場合にも、DPI装置204がパケットにタグを付加することなくループの発生を防止することができる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明のより良い理解のために詳細に説明したのであり、必ずしも説明の全ての構成を備えるものに限定されものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることが可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によってハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによってソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、不揮発性半導体メモリ、ハードディスクドライブ、SSD(Solid State Drive)等の記憶デバイス、または、ICカード、SDカード、DVD等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
また、制御線及び情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線及び情報線を示しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えてもよい。