マルチプロトコルラベルスイッチング(MPLS)は、ラベルを使用してデータ転送の決定を行うパケット転送技術である。各MPLSラベルは、特定のMPLSラベル値によって定義される(例えば、現在のMPLSラベルスペースは20ビットを有し、このようなスペースの一部のみが予約済みラベルのためにある)。したがって、本発明の諸実施形態は、MPLSラベルを使用して、様々なタイプのフロールーティング機能を使用することによるパケットフラッド制御を提供することができる。このようなラベルは、本明細書ではフロールーティングラベルと呼ばれる。より具体的には、本発明の諸実施形態はMPLSラベルの使用によって、フローレベルのフラッド制御を提供し、特定のフローの機密情報を保護することができるようにする。
図4は、本発明に従ったパケットフラッド制御の一実施形態を示す。ルータ1はサーバAに接続され、サーバAからのトラフィックに対する入口プロバイダエッジ(PE)ルータとして機能している。ルータ5は、クライアントおよび敵対者(すなわちクライアントに対して敵対するまたは敵対する可能性のあるクライアント)に接続され、クライアントおよび敵対者の出口PEルータとして機能している。ルータ2−4は、入口PEルータと出口PEルータとの間に接続され、したがってそれぞれ入口PEルータおよび出口PEルータに対して中継ルータとして機能することができる。サーバA(すなわち送信元アドレスMAC「A」)からのトラフィックフローに対して宛先アドレス(例えば宛先MACアドレス)がルータ5に不明になると、このようなトラフィックフローを現在のVPLSドメイン(すなわちクライアントおよび敵対者のために機能しているVPLSドメイン)上のすべてのローカルアクセスポートにフラッドさせる代わりに、サーバAからのすべてのパケットは廃棄され、他のトラフィックフロー(例えばサーバB)からの同じ宛先アドレスへのパケットは、現在のVPLSドメイン内で通常通りフラッドされる。1つの送信元アドレスからのパケットを廃棄し、一方では異なる送信元アドレスからのパケットをフラッドするこのようなフロールーティング機能は、MPLSドメイン内のラベルエッジルータ(すなわちルータ1、2、4、および5)ならびにラベルスイッチルータ(すなわちルータ3)の間でパケット交換するための一意の通常のラベルを使用することによって達成することができる。
さらに図4を参照すると、クライアントの宛先MACアドレスが出口ルータ(すなわちルータ5)で不明になるとき、出口PEルータのハードウェア(HW)転送エンジンが受信フレームで使用される(すなわちそれによって受信されるパケットの)フロールーティングラベルをチェックする。フロールーティングラベルが、トラフィックフローが通常のフロールーティング機能(すなわち通常フロールーティングラベル)を要求することを示す場合、HW転送エンジンは、各フレームの通常フロールーティングラベルを取り除き、通常通り各パケットをフラッドする。フロールーティングラベルが、トラフィックフローが制御されるフロールーティング機能(すなわち制御フロールーティングラベル)を要求することを示す場合、HW転送エンジンは、対応するパケットのこのようなフラッドを行わずにフレームを廃棄する。このようにして、フロー毎のパケットフラッド制御が提供される。
次に図5−9を参照すると、本発明の一実施形態に従ってパケットフラッド制御を行う手法の説明図が開示される。図5に示すように、MPLSドメイン内のピアデバイス(すなわちルータ1からルータ5)間の交換ラベルがセットアップされる。例えば、ピアデバイス間のこのような交換ラベルをセットアップするためにラベル配布プロトコル(LDP)が使用されることが可能である。LDPは、このようなピアデバイス間にラベルスイッチパス(LSP)を確立する。各LSPは、既存のIPルーティングに従い、特に、ネットワークのルータのすべての間でLSPのフルメッシュを確立するのに好適である。LDPによるLSPセットアップの結果、各ルータはそれと関連する受信ラベルテーブルおよび送信ラベルテーブルを有することになる。各ラベルテーブルは、複数のそれぞれのLSP指示子(例えばLSP1−2)、およびLSP指示子のそれぞれと関連するLSPラベル(例えばLSP指示子「LSP1−2」と関連するラベル「1020」)を含む。所与のトラフィックフローに対するルータの現在の動作は、そのラベルテーブルのどの1つまたは複数のラベルテーブルが、そのようなトラフィックフローをサポートするために使用されることになるかを指示するが、各ルータは、一般にそれと関連する受信ラベルテーブルおよび送信ラベルテーブルを有する。
図6に示すように、ルータのすべての間のLSPがセットアップされた後、各ラベルテーブルは、本発明に従って構成されたLSP情報のセットを含むように再構成される。より詳細には、LSP情報の各セットは、LSP指示子(例えばLSP 1−2)、通常のフロールーティング機能を表すフロールーティングラベル(例えば「LSP 1−2」と示されるLSPについては通常のフロールーティング機能を表すラベル「1020」)と、制御されるフロールーティング機能を表すフロールーティングラベル(例えば「LSP 1−2」と示されるLSPについては制御されるフロールーティング機能を表すラベル「1021」)とを含む。したがって、通常のフロールーティング機能を表すフロールーティングラベルは、本明細書では通常フロールーティングラベルと呼び、制御されるフロールーティング機能を表すフロールーティングラベルは、本明細書では制御フロールーティングラベルと呼ぶ。
さらに図6を参照すると、LSP情報のセットを含むように再構成された各ラベルテーブルに加えて、入口PEルータ(すなわちルータ1)は、ルーティング機能ルックアップテーブル(すなわちトラフィックフローのデータ構造)を用いて構成される。ルーティング機能ルックアップテーブルは、少なくとも1つの送信元アドレスをそれぞれのタイプのフロールーティング機能と関連付ける情報を有する。「MAC A」という送信元アドレス(すなわちMACアドレス)を有するサーバAが、入口PEルータに接続される。一度ルーティング機能ルックアップテーブルを用いて構成されると、サーバAから入口PEルータによって受信されたどのフレームも、制御されるフロールーティング機能を表すフロールーティングラベルを組み付けられる。このために、入口PEルータのHW要素は、「MAC A」の送信元アドレスを有するどの受信パケットも、LDPによってセットアップされる、通常の制御フロールーティングラベルの代わりに制御フロールーティングラベルを使用することを示すルーティング機能ルックアップテーブルを作成することができる。LDPは、各LSP指示子について制御フロールーティングラベルおよび通常フロールーティングラベルを含むように、MPLS網における各ルータ(すなわちルータ2からルータ5)の各ラベルテーブルを再構成する。しかしながら、いくつかの実施形態ではルーティング機能ルックアップテーブルは、入口PEルータにのみ設けられることが可能である。
図7に示すように、クライアントは、サーバAおよびサーバBへの接続を開始する。サーバBは、「MAC B」という送信元アドレスを有する。ルータ1は、サーバAおよびサーバBの入口PEルータとして機能する。ルーティング機能ルックアップテーブルに示されるように、サーバAは、制御されるフローのトラフィックソースであり、サーバBは通常のフローのトラフィックソースである。例えば、サーバAからのトラフィックは、クライアントの敵対者にフラッドされてはならない機密情報を含む可能性がある。サーバAおよびサーバBからパケットを受信することに応じて、入口PEルータのHW転送エンジンは、ルーティング機能ルックアップテーブルをチェックして、サーバAおよびサーバBから受信されるパケットのフレームにどのタイプのフロールーティングラベルが組み付けられるべきかを判断する。したがってサーバAから受信される各フレームは、サーバAからのパケットが転送されるLSPに対応する制御フロールーティングラベル(すなわち1021という制御フロールーティングラベル)を組み付けられ、サーバBから受信される各フレームは、サーバBからのパケットが転送されるLSPに対応する通常フロールーティングラベル(すなわち1020という通常フロールーティングラベル)を組み付けられる。フレームがそれぞれのフロールーティングラベルを組み付けられた後に、HW転送エンジンは対応するパケットを適切なLSPに転送する(すなわち、この実施形態では、サーバAおよびサーバBからのパケットはLSP1−2に転送される)。
図8を参照すると、サーバAおよびサーバBからのパケットは、出口PEルータから転送された後、ルータ2(すなわちLSR)に入り、LSRのHW転送エンジンがそのフレームのMPLSラベルを通常通り(すなわち標準的なMPLSプロトコルに従って)交換する。しかしながら、このような交換を行う前に、LSRのHW転送エンジンは、各受信フレームのフロールーティングラベルをその受信ラベルテーブルに保持されているLSP情報と照合し、対応するパケットが転送されるLSPについて、フロールーティングラベルのタイプをLSRの送信ラベルテーブルの中のフロールーティングラベルの対応するタイプと相互に関連付ける。具体的には、ラベルが通常フロールーティングラベルである場合、受信フレームのラベルは、対応するパケットが転送されるLSPに対応する通常フロールーティングラベル(すなわち、2050という通常フロールーティングラベル)と交換され、ラベルが制御フロールーティングラベルである場合、受信フレームのラベルは、対応するパケットが転送されるLSPに対応する制御フロールーティングラベル(すなわち、2051という制御フロールーティングラベル)と交換される。
初めにサーバAおよびサーバBによって送信されたパケットが、クライアントに対応する宛先アドレスを示すとき、出口ルータのHW転送エンジンは、パケットが出口PEルータに入った後に、パケットのフレームからすべてのラベルを外す。ラベルが外された後にクライアントの宛先アドレスが学習され、出口PEルータのレイヤ2(L2)テーブルに格納される。その後、出口PEルータのHW転送エンジンは、各パケットの宛先アドレスがL2テーブルに既知であるかどうかをチェックする。宛先アドレスが出口PEルータに既知であるとき、各パケットはその後ユニキャストによってクライアントの宛先アドレスへ転送される。これらの動作は、クライアントの宛先アドレスが出口PEルータに既知である限り、サーバAおよびサーバBから発信されたパケットについて同様となる。
図9を参照すると、出口PEルータは、例えばリンクダウン、ポートダウンなどの理由により、またはユーザの明示的なフラッシュコマンドによってクライアントの宛先アドレスが出口PEから削除される(すなわち、出口PEルータに不明になる)とき、通常のフロールーティング機能および制御されるフロールーティング機能を連帯的に行うことができる。通常のフロールーティング機能については、通常フロールーティングラベルのフレームを有するパケット(例えば、サーバBからのパケット)は、宛先アドレスが不明になるとき、アクティブVPLSドメイン内のすべてのローカルアクセスポートにフラッドされる。制御されるフロールーティング機能については、制御フロールーティングラベルのフレームを有するパケット(例えば、サーバAからのパケット)は、宛先アドレスが不明になるとき、アクティブVPLSドメイン内のすべてのローカルアクセスポートにフラッドされずに廃棄される。したがって、このような通常のフロールーティング機能および制御されるフロールーティング機能によって、本発明の諸実施形態は、有利にはパケットが、ポート/仮想ポート毎とは対照的にフロー毎に破棄されることが可能になる。
図10−12を参照すると、本発明の一実施形態に従ってパケットフラッド制御を提供する方法100が示されている。方法100は、MPLSラベルの使用に依存して、様々なタイプのフロールーティング機能を使用することによるパケットフラッド制御を提供する。様々なフロールーティング機能は、ポート/仮想ポート毎とは対照的にフロー毎に提供されるパケットフラッド制御を提供する。この方法では、MPLSラベルの使用により、方法100は、特定のトラフィックフローおよび他の非機密トラフィックフローの宛先アドレスが、ローカルアクセスポートを備える出口ルータに不明になるとき、アクティブVPLSドメイン内のすべてのローカルアクセスポートに特定のフローをフラッドしないことによって特定のフローの機密情報が保護されることが可能になるようにフローレベルのフラッド制御を提供する。
入口ルータが送信元(例えばサーバ)からパケットを受信するための動作102を行った後、入口サーバは、パケットが受信されたポートについて現在のポートタイプを判断するための動作104を行う。ポートがMPLSポート以外のタイプであることに応じて、通常VLAN処理方法がパケットに行われる。そうでない場合、ポートはMPLSポートであって、入口ルータは、パケットが要求するフロールーティング機能のタイプを判断するための動作106を行う。1つの実施形態では、このような判断は、送信元アドレスをフロールーティング機能のタイプと相互に関連付けるルックアップテーブルをチェックすることによって行われる。パケットは通常のフロールーティング機能を要求するという判断が行われるとき、入口ルータはパケットのフレームのそれぞれに通常フロールーティングラベルを組み付けるための動作108を行う。パケットは制御されるフロールーティング機能を要求するという判断が行われるとき、入口ルータは、フレームのそれぞれに制御フロールーティングラベルを組み付けるための動作110を行う。その後、入口ルータは、パケットの次のホップ情報を捜し出すための動作112を行い、このような次のホップ情報によりパケットを転送するための動作114を行う。
パケットが入口ルータによって転送された後、中継ルータ(例えば、ラベルスイッチングルータ(LSR))がパケットを受信するための動作116を行う。中継ルータはその後、パケットの各フレームのトップオブスタック(TOS)ラベルを処理するための動作118を行う。このような処理の結果として、トップオブスタックラベルがラベルスタックの最後のラベルである(すなわち、これはボトムオブスタック(BOS)ラベルである)と判断されると、中継ルータはBOSラベルを外すための動作120を行う。そうではない場合、中継ルータは、パケットが要求するフロールーティング機能のタイプを判断するための動作122を行う。1つの実施形態では、このような判断は、フロールーティングラベルを受信ラベルテーブルの中のフロールーティングラベルと照合することによって行われる。パケットは通常のフロールーティング機能を要求すると判断されるとき、中継ルータは各フレームのフロールーティングラベルを、中継ルータの送信ラベルテーブルに保持された対応する通常フロールーティングラベルと交換するための動作124を行う。パケットは制御されるフロールーティング機能を要求すると判断されるとき、中継ルータは、各フレームのフロールーティングラベルを中継ルータの送信ラベルテーブルに保持された対応する制御フロールーティングラベルと交換するための動作126を行う。その後、中継ルータは、パケットの次のホップ情報を捜し出すための動作128を行い、このような次のホップ情報によりパケットを転送するための動作130を行う。
中継ルータによってパケットが転送された後に、出口ルータがパケットを受信するための動作132を行う。出口ルータはパケットを受信した後に、パケットが受信されたポートについて現在のポートタイプを判断するための動作134を行う。ポートがMPLSポート以外のタイプであることに応じて、通常VLAN処理方法がパケットに行われる。そうではない場合、ポートはMPLSポートであって、出口ルータは、パケットが要求するフロールーティング機能のタイプを判断するための動作136を行う。1つの実施形態では、このような判断は、フロールーティングラベルを出口ルータの受信ラベルテーブルの中のフロールーティングラベルと照合することによって行われる。パケットが通常のフロールーティング機能を要求する(すなわち、そのフレームが通常フロールーティングラベルを含む)と判断される場合、出口ルータは、フレームを外すための動作138を行い、パケットの宛先アドレスが出口ルータのL2テーブル内にあるかどうかを判断するための動作140を行う。パケットが制御されるフロールーティング機能を要求する(すなわち、そのフレームが制御フロールーティングラベルを含む)と判断されるとき、出口ルータは、ラベルを外すための動作142を行い、パケットが制御されるフロールーティング機能を要求することを示すための動作144を行う。パケットが制御されるフロールーティング機能を要求することを示された後、方法は、パケットの宛先アドレスが出口ルータのL2テーブル内にあるかどうかを判断するための動作140に進む。
パケットの宛先アドレスが出口ルータのL2テーブル内にある(すなわち、出口ルータに知られている)場合、出口ルータはパケットの次のホップ情報を捜し出すための動作146を行って、そのような次のホップ情報によりパケットを転送する(例えばユニキャストする)ための動作148を行う。パケットの宛先アドレスが出口ルータのL2テーブル内にない場合、出口ルータは、パケットが要求するフロールーティング機能のタイプを判断するための動作150を行う。パケットが通常のフロールーティング機能を要求する(すなわち、そのフレームが通常フロールーティングラベルを含む)と判断されたとき、出口ルータは、パケットを出口ルータのアクティブVPLSドメイン内のすべてのローカルアクセスポートにフラッドさせるための動作152を行う。パケットが制御されるフロールーティング機能を要求する(すなわち、そのフレームが制御フロールーティングラベルを含む)と判断されたとき、出口ルータは、出口ルータのアクティブVPLSドメイン内のすべてのローカルアクセスポートにパケットをフラッドせずにこれを廃棄するための動作154を行う。
次にルータのアーキテクチャに関する説明に移ると、分散型アーキテクチャを有するルータのネットワークでは、単一ルータの別個の処理モジュールは、それぞれのタイプのルーティング機能(例えば、入口ルーティング機能、出口ルーティング機能、および中継ルーティング機能)をそれぞれ行うことができることを、当業者は理解するであろう。したがって、本明細書では、本発明の一実施形態に従って構成されるルータが、入口処理モジュール、出口処理モジュール、および中継処理モジュールを含むことができることが開示される。入口処理モジュールは、トラフィックフローのデータ構造およびそれぞれの送信ラベルテーブルを含む。トラフィックフローのデータ構造は、少なくとも1つの送信元アドレスをそれぞれのタイプのフロールーティング機能と関連付ける情報を含む。その送信ラベルテーブルは、少なくとも1つのセットのラベルスイッチパス(LSP)情報を含む。LSP情報は、LSP指示子、通常のフロールーティング機能を示すフロールーティングラベル、および制御されるフロールーティング機能を示すフロールーティングラベルを含む。入口処理モジュールは、それによって少なくとも1つの送信元アドレスから受信された各フレームにフロールーティングラベルを組み付けるように構成される。このような組付けは、トラフィックフローのデータ構造に含まれる情報、およびその送信ラベルテーブルに含まれる情報に依存して行われる。出口処理モジュールは、少なくとも1つのセットのLSP情報を含むそれぞれの受信ラベルテーブルを含む。出口処理モジュールは、それぞれ複数のフレームを含む複数の異なるトラフィックフローを受信し、それによって受信されたフレームのそれぞれのフロールーティングラベルの構成を、その受信ラベルテーブルに含まれる情報を使用してトラフィックフローのそれぞれと互いに関連付け、フレームが通常のフロールーティング機能を示すフロールーティングラベルを含むとき、出口処理モジュールのトラフィックフローのフレームをフラッドしてそのアクティブ仮想プライベートLANサービス(VPLS)ドメイン上のすべてのローカルアクセスポートにフラッドさせ、フレームが制御されるフロールーティング機能を示すフロールーティングラベルを含むときフレームがアクティブVPLSドメイン上のローカルアクセスポートのすべてにフラッドされることなく廃棄されるようにするように構成される。中継処理モジュールは、それぞれの受信ラベルテーブルおよびそれぞれの送信ラベルテーブルを含む。中継処理モジュールの受信ラベルテーブルおよび送信ラベルテーブルは、それぞれ少なくとも1つのセットのLSP情報を含む。中継処理モジュールは、それぞれ複数のフレームを含む複数の異なるトラフィックフローを受信し、それによって受信されたフレームのそれぞれのフロールーティングラベルをその送信ラベルテーブル内の対応するフロールーティングラベルと交換するように構成される。このような交換は、その受信ラベルテーブルおよび送信ラベルテーブルに含まれる情報を頼りに行われる。
本明細書では、本発明に従って構成されたルータが、入口トラフィックインタフェースと、出口トラフィックインタフェースと、メモリと、1つまたは複数のデータ処理デバイス(例えば、プロセッサASIC、および/または同様のもの)とを含むことができることもまた開示される。1つの特定の実施形態では、複数の処理モジュールの各処理モジュールが、データ処理デバイスのそれぞれの1つを含む。入口トラフィックインタフェースは、例えばパケットなどのプロトコルデータ単位(PDU)をルータに転送するネットワークノード(例えば、別のルータまたはサーバ)に結合されるように構成される。出口トラフィックインタフェースは、例えばパケットなどのプロトコルデータ単位(PDU)をルータに受信するネットワークノードに結合されるように構成される。メモリは、命令をメモリ上に格納され、メモリからアクセス可能にされる。1つまたは複数のプロセッサは、命令にアクセスしてこれを解釈し、それによってそのような命令で定義された機能を行うように構成される。1つまたは複数のプロセッサは、1つまたは複数のプロセッサとインタフェースに接続されたネットワークノードとの間で通信できるようにインタフェースに結合される。1つの実施形態では、ルータは、所与のパケットについて、本明細書に開示するパケットフラッド制御のそれぞれの態様を行うように、命令が上述の方法100を実行するように構成される。
次にデータ処理デバイスによって処理できる命令を参照すると、本明細書に開示するパケットフラッド制御を実行するように構成された方法、処理、および/または動作は、このような機能を実行するように構成された命令をそこに有するコンピュータ可読媒体によって明確に具体化されることが、本明細書で行う開示から理解されるであろう。1つの特定の実施形態では、命令は、図5−9に示す方法100および/または機能の全部または一部を実行するように明確に具体化される。命令は、メモリ装置(例えば、RAM、ROM、仮想メモリ、ハードドライブメモリなど)から、データ処理システムのドライブユニットによって可読の装置(例えば、ディスケット、コンパクトディスク、テープカートリッジなど)から、あるいは両方から、1つまたは複数のデータ処理デバイスによってアクセスできるものであることが可能である。したがって、本発明に従ったコンピュータ可読媒体の諸実施形態は、コンパクトディスク、ハードドライブ、RAM、または、本発明に従ったパケットフラッド制御機能を実行するように構成されたコンピュータプログラム(すなわち命令)をそこにイメージした他のタイプの格納装置を含む。
前述の詳細な説明では、その一部を形成する添付の図面を参照し、その中で、本発明が実行されることが可能である特定の実施形態を、例示という目的で示した。これらの実施形態、およびそのある一定の変形形態について、当業者が本発明の諸実施形態を実行することができるよう十分に詳細に説明した。他の好適な実施形態が使用されることが可能であり、このような発明の開示の趣旨および範囲を逸脱することなく、論理的変更、機械的変更、化学的変更、および電気的変更が行われることが可能であると理解されたい。不必要な詳細を避けるために、説明は、当業者に知られている一定の情報を省略した。前述の詳細な説明は、したがって本明細書に示した特定の形式に限定するものではなく、むしろ、添付の特許請求の範囲の趣旨および範囲内に当然含むことができるそのような代替形態、変更形態、および均等物を対象として含むものとする。