説明

仮想ルータ機能を提供する方法

【課題】 VLANの使用が激増するにつれ、異なるエンドユーザはVLANのオーバーラップしている設定を使用し始めるため、VLANを用いて異なる仮想ルータを異なるエンドユーザに提示することがもはやできなくなった。
【解決手段】 異なるエンドユーザ、サービスの種類、又はパケットに対して異なる仮想ルータを提示する方法を提供する。VLANフィールド及び少なくとも1つの付加的なフィールドを有する入力パケットが受信される。キーは、VLANフィールド及び少なくとも一つの他のパケットフィールドから形成され、間接マッピングプロセスを用いて、仮想ルータ識別子(VRID)にマッピングされる。VRIDは、特定の仮想ルータ設定を複数の可能な仮想ルータ設定から識別するものである。ネットワーク装置が、VRIDにより識別される特定の仮想ルータ設定を有するように構成され、それからパケットがその構成された装置により転送される。

【発明の詳細な説明】
【技術分野】
【0001】
本出願は、一般にネットワーク装置に関し、特に、仮想ルータ機能を提供するように、すなわち、異なるエンドユーザ、サービスの種類、又はパケットに対して、異なる仮想ルータ設定を提示する装置を構成する方法に関する。
【背景技術】
【0002】
仮想ルータ機能は、異なるエンドユーザ、所望のサービスの種類、又はパケットに対して、異なる仮想ルータ設定を提示する同一の物理的ネットワーク装置の能力である。この能力により、同一の物理的装置は、複数の異なる仮想ルータに見える。この能力を実行するため、現在のルータは、直接、関心のあるパケットフィールド、一般的にはVLANフィールドを、特定のルーティングテーブルの識別子にマッピングし、その特定のルーティングテーブルを使用してパケットを伝送する。VLANフィールドは仮想LAN、及びOSI第2層(OSI Layer two)のルーティング/スイッチング目的のための同一LANの一部と考えられるように、物理的に異なるが論理的に関連するネットワーク要素の集まりを指定する。例えば、特定のVLAN内の全てのネットワーク要素は、OSI第2層で、VLAN内の他の要素からのブロードキャストを受信する。
【発明の概要】
【発明が解決しようとする課題】
【0003】
入力パケットのVLANが直接ルーティングテーブルの識別子にマッピングされるこのアプローチは、異なるエンドユーザがオーバーラップしていないVLANを用いている限りは、うまく動作する。そのため、VLANを用いて、異なる仮想ルータを異なるエンドユーザに提示することができた。しかし、VLANの使用が激増するにつれ、異なるエンドユーザはVLANのオーバーラップしている設定を使用し始めるため、VLANを用いて異なる仮想ルータを異なるエンドユーザに提示することがもはやできなくなった。
【0004】
他の問題として、実行できる仮想ルータの数がVLANフィールドの大きさにより制限されることがある。例えば、12ビットのVLANは、4Kの異なるルーティングテーブルしか識別せず、あるアプリケーションにとっては十分でない。
【0005】
第3の問題は、このアプローチは柔軟性に欠けているということである。例えば、ネットワークの利用が進化し又はネットワークの規格が変化して、VLANの種類又はフォーマットが変化した場合、このアプローチは特定のVLANの種類及びフォーマットに結びつけられているため、陳腐化した状態となる。
【0006】
第4の問題は、適応する必要がある仮想ルータの数が増加するにつれて、このアプローチは拡張性に欠けるということである。例えば、このアプローチでは、仮想ルータを増加させるためにVLANフィールドの大きさを増加させると、維持する必要があるルーティングテーブルの数が正比例して増える。
【0007】
本発明は、異なるエンドユーザ、サービスの種類、又はパケットに対して、異なる仮想ルータを提示する方法を提供する。その方法は、どのネットワーク装置で実行されてもよく、装置が仮想ルータ機能を実現することを可能にする。
【課題を解決するための手段】
【0008】
方法は、VLANフィールドと少なくとも1つの付加的なフィールドを有するパケットが受信されるときに開始する。パケットが受信されるとき、VLANフィールドと、少なくとも1つの付加的なパケットフィールド、例えばVMANフィールドとから、キーが形成される。
【0009】
それから、キーは、間接マッピングプロセスを用いて、仮想ルータ識別子(VRID)にマッピングされる。この間接マッピングプロセスによれば、各々がコンテンツ値とインデックス値を備える複数のエントリを含むテーブルがアクセスされ、キーに合致するコンテンツ値を持つエントリが探し出される。それから、合致するエントリのインデックス値が、関連データ格納要素を用いて、VRIDにマッピングされる。その結果が、特定の仮想ルータ設定を複数の可能な仮想ルータ設定から識別する仮想ルータ識別子である。
【0010】
本発明の他のシステム、方法、特徴、及び利点が、下記の図面及び詳細な説明を考察することにより、当業者には明らかである又は明らかとなる。全てのこのような追加のシステム、方法、特徴、及び利点は、この明細書に含まれ、本発明の範囲内であり、添付の特許請求の範囲により保護される。
【図面の簡単な説明】
【0011】
【図1】間接マッピングプロセスが1以上のパケットフィールドから生成されたキーをVRIDにマッピングするのに使用されることを特徴とする一実施形態における、仮想ルータ識別子(VRID)を生成するのに使用される、方法のステップ、データ構造、及び論理素子を示すブロック図
【図2a】キーのフォーマットの例を示す図
【図2b】キーのフォーマットを構成するフィールドのうち、種々のフィールドをワイルドカードにするキータイプの様々な例を示す図
【図2c】キーのフォーマットを構成するフィールドのうち、種々のフィールドをワイルドカードにするキータイプの様々な例を示す図
【図2d】キーのフォーマットを構成するフィールドのうち、種々のフィールドをワイルドカードにするキータイプの様々な例を示す図
【図2e】キーのフォーマットを構成するフィールドのうち、種々のフィールドをワイルドカードにするキータイプの様々な例を示す図
【図3】ネットワーク装置がVRIDに応じて構成され、構成された装置に従ってパケットが送信されることを特徴とする一実施形態の方法のステップを示すフローチャート
【図4】特許請求の範囲に記載の方法及びシステムを具体化又は利用する特定のスイッチ構造を示す図
【図5】仮想ルータ機能をサポートするのに用いられる複数のルーティングテーブルを示す図
【図6a】入ってくるパケット内で検出されるVLANフィールドのタイプに従って適用される、代替のデータタイプの例を示す図
【図6b】入ってくるパケット内で検出されるVLANフィールドのタイプに従って適用される、代替のデータタイプの例を示す図
【図6c】入ってくるパケット内で検出されるVLANフィールドのタイプに従って適用される、代替のデータタイプの例を示す図
【発明を実施するための形態】
【0012】
本発明は、以下の図面を参照することにより、よりよく理解されうる。図面の構成要素は、必ずしも縮尺、強調したものではなく、本発明の原理を図示するときに配置されたものである。さらに、図において、同一の参照符号は、異なる図において対応する部分を示している。
【0013】
図1を参照すると、ブロック図に、ネットワーク装置において実行され、異なるエンドユーザ、サービスの種類、又はパケットに対して、異なる仮想ルータを提示する方法100のステップが示されている。また、本方法の実行に使用されるデータ構造と、本方法のステップを実行する論理要素が、図示されている。この特定の実施形態において、本方法は、パケットがパケットパーサ104により解析された後、装置内で実行される。これにより、VLAN106、VMAN108、及び入口ポート110を含む、パーサ104による解析が成功した特定パケットフィールドが、本方法により利用可能となる。本方法は、必ずしも限定されないが、ルータ、スイッチ、又はルータとスイッチの組み合わせを含む、OSI第3層(OSI layer three)又はそれ以上でパケットを転送又は分類することが可能ないずれのネットワーク装置でも実行されうる。この明細書では、「仮想ルータ」は、「軽量級(lightweight)」仮想ルータ、すなわち、OSI第3層で事実上転送するルータと、「重量級(heavyweight)」仮想ルータ、すなわち、OSI第3層で事実上転送するルータの両方を含み、さらに、仮想ルータ当たり、別個のOSI第2層の機能を実行する。さらに、この明細書では、単数形の用語「装置(device)」又は「ルータ(router)」は、複数の装置又はルータをそれぞれ含む。
【0014】
先に説明したように、VLANフィールド106は、仮想LAN、及びOSI第2層のルーティング/スイッチング目的のための同一LANの一部と考えられるように、物理的に異なるが論理的に関連するネットワーク要素の集まりを指定する。現在、VLANの用語は、VMAN(下記参照)内で、論理的に関連するエンドユーザの装置を一意的に識別するために主に使用される。
【0015】
VMANフィールド108は、仮想メトロポリタンネットワークを示し、同一のネットワークの一部と考えられるように、物理的に異なるが論理的に関連するネットワーク要素の集まりを指定する。用語は、本来は、メトロポリタンネットワークのみに適用されるけれども、現在では、メトロポリタンやメトロポリタンでない、いずれのネットワークをも示すのに用いられるように、その用法は発展している。実際、VMANの使われ方は増加しており、用語は、現在、サービスプロバイダにより主に使用され、論理的に関連する基盤装置を示している。同時に、VLANの用語は、上述したように、現在、主に、VMAN内で論理的に関連するエンドユーザの装置を一意的に識別するのに用いられる。有意に、VLAN値は、VMAN内でVLANを一意的に識別し、同一のVLAN値がVMAN内で異なるエンドユーザの装置を参照するのに使用されることはない。
【0016】
入口ポートの番号110は、装置でパケットが受信された物理的なポートの識別子である。
【0017】
図1に戻り、本方法の目的は、入力パケットに対応して、仮想ルータ識別子(VRID)102を決定することである。仮想ルータ識別子102は、複数の可能な仮想ルータ設定から特定の仮想ルータ設定を識別する。
【0018】
本方法は、キー生成ロジック112が、VLAN106、VMAN108、及び入口ポート110のフィールドからキーを形成するときに、開始する。図示された特定の実施形態では、キーは、これらの3つのフィールドを共に連結することにより、形成される。しかし、当然のことながら、キーを形成する他の方法が可能である。よって、例えば、一実施形態では、入口ポート「X」を介して受信され、「Y」のVLANと「Z」のVMANを持つ入力パケットは、図2aで示されるように、3つの連結されたフィールド、すなわち、入口ポート「X」を保持する第1のフィールド202、VLAN「Y」を保持する第2のフィールド204、及びVMAN「Z」を保持する第3のフィールド206でフォーマットされたキー200を有する。
【0019】
同時に、一実施形態では、入口ポート110は、キータイプ116を決定するルックアップテーブル114に入力される。この実施形態では、キータイプは、キーの3つのフィールドの中のどれがワイルドカードであるか、すなわち、その後の処理で無視されるかと、どれが使用されるかを示すことにより、マスクとして機能する。この特定の実施形態では、3つのフィールドのそれぞれが、独立して、ワイルドカード又は非ワイルドカードとなりうる。例えば、図2bは、入口ポートフィールド及びVMANフィールドがワイルドカードであり(対応するフィールドに現れる×により示されている。)、VLANフィールドのみが次の処理で使用されるという、キータイプを示している。同様に、図2cは、入口ポートフィールドがワイルドカードであり、VLANフィールド及びVMANフィールドが次の処理で使用されるという、キータイプを示している。図2dは、VLANフィールドがワイルドカードであり、入口ポートフィールド及びVMANフィールドが次の処理で使用されるキーを示している。図2eは、VMANフィールドがワイルドカードであり、入口ポートフィールド及びVLANフィールドが次の処理で使用されるキーを示している。
【0020】
図1に示す実施形態では、キータイプ116は、ルックアップテーブル114への入力を形成する入口ポートフィールド110に応じて決定される。テーブル114は複数のエントリを含む。各エントリは、例えば、図2b〜図2eに示されるような、特定のキータイプを指定するインデックス値とコンテンツ値を備える。ルックアップは、入口ポートフィールド110を特定のインデックスにマッピングし、そのインデックスを持つエントリを探し、キータイプをそのエントリのコンテンツ値に設定することにより、発生する。他の実施形態では、キータイプは、他のパケットフィールドと1以上のパケットフィールドとに応じて、決定されてもよい。
【0021】
図6aは、キータイプがキーに付加される3ビットフィールド(符号602で識別される。)である場合の実施を示している。図6aは、キーのフォーマットと、キーのどのフィールドがワイルドカードであるかの両方を示している。例えば、キー604のキータイプは、キーが9ビットであることと、VLANフィールド及びVMANフィールドがワイルドカードであることを示し、キー606のキータイプは、キーが15ビットであることと、入口ポートフィールド及びVMANフィールドがワイルドカードであることを示し、キー608のキータイプは、キーが15ビットであることと、入口ポートフィールド及びVLANフィールドがワイルドカードであることを示し、キー610のキータイプは、キーが21ビットであることと、VMANフィールドがワイルドカードであることを示し、キー612のキータイプは、キーが27ビットであることと、入口ポートフィールドがワイルドカードであることを示し、キー614のキータイプは、キーが33ビットであることと、ワイルドカードのフィールドがないことを示している。
【0022】
さらに、以下により詳細に説明するように、三値連想メモリ(Ternary CAM)が間接マッピングプロセスを実行するのに用いられる場合、キーは間接的に仮想ルータ識別子にマッピングされる。三値連想メモリエントリに対応するコンテンツ値の個々のフィールドはワイルドカードでありうる、すなわち、値を気にしないように設定されているため、説明したキータイプの生成とキーのマスキングのプロセスは不要である。二値連想メモリ(Binary CAM)が間接マッピングプロセスを実行するのに使用される場合は、説明したキータイプの生成とキーのマスキングのプロセスは、一般的に保持されるべきである。
【0023】
再度、図1を参照すると、場合によってはマスクされ又はマスクされていないキー118は、ロジック126により実行される2段階間接マッピングプロセスを用いて、仮想ルータ識別子102にマッピングされる。第1の段階では、図示されるように、テーブル120がアクセスされる。テーブルは、複数のエントリ120a、120b、120cを有する。各エントリは、コンテンツ値とインデックス値を含む。キーに合致するコンテンツ値を有するエントリが探し出される。図1において、エントリ120bのコンテンツ値が、キー118に合致するように示されている。符号122で特定される、合致するエントリのインデックス値は、プロセスの第2の段階への入力を形成する。
【0024】
第2の段階では、合致するエントリ120bのインデックス値122は、関連データ格納要素124を用いて、仮想ルータ識別子102にマッピングされる。関連データ格納要素124は複数のエントリ124a、124bを含み、各エントリはインデックス値とコンテンツ値を有する。一実施形態において、マッピングは、テーブル120内の合致するエントリのインデックス値122と合致するインデックス値を持つ関連データ格納要素124内のエントリを選択することにより、実行される。図1に示される特定の例では、エントリ124bがこの条件を満たす。このエントリのコンテンツ値は、仮想ルータ識別子102である、又は仮想ルータ識別子102を含む。
【0025】
一実行において、テーブル120はCAM上に格納される。二段階プロセスの第1の段階は、キー118に合致するコンテンツ値を持つエントリ120bをCAMに検索させることにより、発生する。CAMが二値連想メモリ、すなわち、エントリのコンテンツ値の各ビットが二値の「0」及び「1」のみを取るCAMである場合、先に述べたキータイプの生成とマスキングのプロセスは、これらの機能がCAMにより利用できないため、一般的に実行されるべきである。しかし、CAMが三値連想メモリ、すなわち、エントリのコンテンツ値の各ビットが二値の「0」及び「1」と「無関心(don't care)」値とを取るCAMの場合、先に述べたキータイプの生成とマスキングのプロセスは、これらの機能がCAMエントリのコンテンツ値の適当な設定により、実行されうるため、任意である。
【0026】
第2の実行において、テーブル120はRAMに格納される。二段階プロセスの第1の段階は、ハッシュ関数をキー118に適用し、開始エントリのテーブルインデックスを決定し、それからテーブル120の検索を開始エントリから始めて、キー118に合致するコンテンツ値を持つエントリ120bを探し出すことにより、発生する。
【0027】
ロジック128は、VRID102に従って装置を構成する。その後、構成された装置がパケットを転送する。一実施形態において、より詳細を後述するように、ロジック128は、VRID102に応じてCAM検索キーを選択又は生成する。CAM検索キーは、パケットの分類と転送決定を行うために使用される。VRID102に応じた分類及び転送の処理中に使用されるキーを設定することにより、ロジック128は、パケットを発送するのに使用されるルーティングテーブルを事実上選択する。
【0028】
上述の実施形態は、仮想ルータ機能を提供する従来のアプローチで最初に特定される問題を克服する。第1に、キーがVLAN及びVMANフィールドの組み合わせから形成され、且つVLANが特定のVMAN内で唯一の識別子であるため、実施形態によれば、VLANを仮想ルーティング目的のために再度使用することが可能となる。
【0029】
第2に、本実施形態は可能な仮想ルータの数を著しく増加させる。例えば、テーブル120がCAM上に格納されている場合、提示されうる仮想ルータの数は、CAMの大きさによりのみ制限される。VLANフィールドの大きさは支持されるというよりも、もはや仮想ルータの数を制限しなくなる。
【0030】
第3に、本実施形態は順応性があり、ネットワークの利用法又は規格の変化に容易に適応する。例えば、スーパーワイド(super-wide)(24ビット)VLANフィールド、すなわち、ESIDフィールドが、最近、許容されるイーサタイプ(Ethertypes)のリストに追加されたことを考える。これは、ルックアップテーブル114内で新しいキータイプを定義することにより、簡単に取り扱われる。例えば、標準のデータタイプが、図6bに示すフォーマット、すなわち、VLANフィールドとVMANフィールドのそれぞれに12ビットと入口ポートフィールドに6ビットを持つ場合、スーパーワイドVLAN(ESID)が検出されたとき、データタイプ116は、図6cに示されるフォーマット、すなわち、6ビットの入口ポートフィールドの後に24ビットのESIDフィールドが続くフォーマットを有することができる。図6cのキータイプに遭遇したとき、図1のロジック112は、パケットパーサ(packet parser)からのフィールド106、108、及び110に応じてこの図に示されるようにキーをフォーマットする、すなわち、VLANフィールド106を24ビットのESIDフィールドと想定する。
【0031】
第4に、本実施形態は拡張性があり、可能な仮想ルータの数が増加しても、保持されるルーティングテーブルの数の比例した増加を必ずしも必要としない。代わりに、多くの異なるキー値が、テーブル120のエントリ120a、120b、120cに関連付けられたインデックス値の適当な設定により、同一のVRIDにマッピングされる。例えば、図1において、エントリ120b及び120cのインデックス値が同一のVRIDにマッピングすることが望まれた場合、エントリ120b及び120cのインデックス値は、同一の値に設定される。
【0032】
図3は、全方法の一実施形態において実行されるステップを要約している。ステップ302は、図1のロジック112により実行されるキー生成ステップを含む。ステップ304は、ルックアップテーブル112にアクセスすることにより決定されるキータイプを用いた、図1のロジック112により実行される任意のキータイプの生成とマスキングのプロセスを含む。この明細書において、用語「ロジック」は、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアの組み合わせにおける実施を言う。
【0033】
ステップ306は、二段階間接マッピングプロセスを含む。第1の段階は、CAM上に格納されている又は格納されていないテーブル120により検索し、又は検索を実行し、キー118に合致するコンテンツ値を持つエントリ120bを見つけ出すことを含む。第2の段階は、テーブル120内の合致するエントリのインデックス値122と合致するインデックス値を持つ、関連データ格納124内、典型的にはRAM内のエントリ124bを探すことを含む。ステップ308は、仮想ルータ識別子(VRID)102を出力することを含む。図1において、このステップは、テーブル120の合致するエントリのインデックス値122に合致するインデックス値を持つエントリ124bのコンテンツ値又はコンテンツ値の指定されたフィールドを出力することを含む。
【0034】
ステップ306とステップ308は、ロジック126(図1に示される。)がテーブル120と関連データ要素124とに、これらの要素間の点線の矢印で示されるように、適切にアクセスすることにより、実行される。
【0035】
ステップ310は、仮想ルータ識別子により識別される特定の設定を有するように装置を構成することを含む。一実施形態において、このステップは、ロジック128(図1に示される。)により、パケットの分類及び転送決定を行うのに用いられるCAM検索キーを選択又は生成するときに、実行される。分類及び転送のプロセスで使用されるキーを設定することにより、ロジック128は、パケットを転送するのに使用するため、複数のルーティングテーブルからルーティングテーブルを一つ実質的に選択する。概念的に、そのプロセスは図5に示されている。図5は、VRIDに応じて、複数の可能なルーティングテーブル502、504、506から一つのルーティングテーブル、例えばテーブル504を選択し、選択されたルーティングテーブルを用いて、関心のあるパケットを転送する準備をすることを示している。
【0036】
図3に戻ると、ステップ312は、構成された装置に従ってパケットを転送することを含む。一実施形態において、このステップは、装置内のパケットプロセッサにより実行される。この明細書で、用語「プロセッサ」は、1以上のコマンド、命令、又は状態遷移を実行することが可能な装置のことを言い、限定されないが、汎用又は専用のマイクロプロセッサ、有限状態機械、コントローラ、コンピュータ、及びデジタルシグナルプロセッサ(DSP)などを含む。
【0037】
図4は、上述した方法が作動する特定のルータ構成の実施形態400を示す。図示されるように、この実施形態では、ルータは、パケット分類/転送システム402とパケット変更システム404とを含む、パケット処理システムとして構築されている。パケット分類/転送システム402は、入口部406と出口部408とを備えている。入ってくる(ネットワーク側)パケットは、入口部406及び出口部408を通って、パケット分類/転送システム402に出入りする。同様に、パケット変更システム404は、入口部410と出口部412とを備えている。出て行く(スイッチ側)パケットは、入口部410及び出口部412を通って、パケット変更システム404に出入りする。
【0038】
パケット分類/転送システム402の入口部406は、インターフェース418により、1以上のネットワーク側装置414に接続されており、パケット分類/転送システム402の出口部408は、インターフェース420により、1以上のスイッチ側装置416に接続されている。同様に、パケット変更システム404の入口部410は、インターフェース422により、1以上のスイッチ側装置416に接続されており、パケット変更システム404の出口部412は、インターフェース423により、1以上のネットワーク側装置414に接続されている。
【0039】
パケット分類システム402は、入口部406及び出口部408に加え、第1のパケットパーサ104(図1に示されている同一のパケットパーサ104)とパケットプロセッサ428をさらに有する。
【0040】
パーサ104は、入ってくるパケットを解析し、パケット層の先頭へのコンテキストポインタ(context pointers)、例えば、OSI第2,3,及び4層の先頭へのポインタを提供するように、構成される。
【0041】
パケットプロセッサ428は、パーサ104により提供されるコンテキストポインタに応じて、パケットを分類し転送するように構成される。
【0042】
連想メモリ(Content Addressable Memory(CAM))442は、パケット分類/転送システム402により、パケットの検索を実行し、パケットの分類/転送決定に達するのに、使用される。CAM442は、三値、二値、又は二値と三値の組み合わせであってもよい。
【0043】
関連RAM(associated RAM(ARAM))444a、44bは、CAM442内の各エントリについての関連データを提供する。ARAM444a、444bは、検索動作の結果、CAM442により返されるアドレス(インデックス値)を用いてアクセスされる。ARAM444a、444bのエントリデータは、パケットの最後の分類/転送決定を行うのに、パケットプロセッサ428により使用されるパケットの中間の分類/転送情報を供給するために使用される。
【0044】
CAM上に格納されている又は格納されていないテーブル120と、まとめてVRIM(Virtual Router Indirection Mapper)と呼ばれる関連データ格納124は、図1に関して先に説明した、同じ構成要素である。
【0045】
パケット変更システム404は、入口部410及び出口部412に加えて、出て行くパケットを解析する第2のパケットパーサ430、変更プロセッサ432、フラグメントプロセッサ436、第3のパケットパーサ436、ACL(Access Control Logic)438a、及びL3/L4チェックサムロジック438bをさらに有する。
【0046】
パーサ430は、出て行くパケットを解析し、パケット層の先頭へのコンテキストポインタ、例えば、OSI第2,3,及び4層の先頭へのポインタを提供するように、構成されている。
【0047】
変更プロセッサ432は、パケットを断片に分解する処理において、パーサ430により提供されるコンテキストポインタに応じて、出て行くパケットのいくつか又は全てを変更する。フラグメントプロセッサ436は、断片化されたパケットを再度組み立てる。
【0048】
変更RAM(modification RAM(MRAM))448a、448bは、変更プロセッサ432a、432bにより実行されるパケット変更動作のためのデータと制御構造を提供する。
【0049】
パーサ436は、再度組み立てられたパケットを解析し、パケット層の先頭へのコンテキストポインタ、例えば、OSI第2,3,及び4層の先頭へのポインタを提供するように構成されている。
【0050】
ACLロジック438bは、パーサ436により提供される解析されたパケット層に応答して、CPUコピー、ミラーコピー、及び消す(kill)などの、パケットに関するACL決定に達する。CPUコピーの動作では、システムに接続されたホスト438にパケットのコピーを転送する。ミラーコピーの動作では、出口ミラーリング機能を実行する。出口ミラーリング機能では、パケットのコピーがミラーFIFO440に転送され、それからパケット分類/転送システム402の出口部408に転送される。消す動作では、パケットを消すか、又はダウンストリームMAC(Medium Access Control)プロセッサにより消すための印をパケットに付ける。
【0051】
L3/L4チェックサムロジック438bは、変更されたパケットについてチェックサムを計算するように構成されている。一実施形態において、ロジック438bは、第3層(IP層)及び第4層(TCP/UDP層)チェックサムを独立して計算するように構成される。
【0052】
一実行において、インターフェース418、420、422、424と、1以上の(特定されないが)CAM、VRIM、ARAM、又はMRAMインターフェースは、2003年9月4日に提出の米国特許出願第10/655,742号(参照することにより、全て説明するかのようにここに完全に組み込まれる。)に記載されているQDR又はDDRタイプのインターフェースであってもよい。
【0053】
一実施形態において、図1に示す論理要素は、図4のルータに、転送分類システム402内のパケットパーサ104のすぐ下流で且つパケットプロセッサ428と並列に組み込まれる。この実施形態において、図1のロジック112は、パーサ104により提供される解析されたパケットデータに応じて、図3のキー生成ステップ302を実行する。また、ロジック112は、三値連想メモリがVRIM120、124に含まれず、間接マッピングプロセス306の一部として使用されない場合、任意のキータイプの生成とマスキングのステップ304を実行する。三値連想メモリがVRIM120、124に含まれ、間接マッピングプロセス306の一部として使用される場合は、キータイプの生成とマスキングのステップ304はこのCAMにより実行されてもよい。ロジック126は、VRIM120、124の要素と連結して、間接マッピングプロセス306と、VRID出力ステップ308とをさらに実行する。
【0054】
パケットプロセッサ428は、CAM442への開始キーとして、VRIDを用いることにより、図3の構成装置ステップ310を実行する。パケットプロセッサ428は、パケットプロセッサ306により実行される一連のコマンドの開始アドレスを決定し、入ってくるパケットの分類及び転送決定を行う。CAM442への開始キーとしてVRIDを用いることにより、パケットプロセッサ428は、図5に示される複数の可能なルーティングテーブルから一つのルーティングテーブルを暗黙的に選択する。
【0055】
また、パケットプロセッサ428は、少なくとも最初に、VRID102に応じて決定されたキーで実行されるCAM検索プロセスに対応して、入ってくるパケットを分類及び転送することにより、ステップ312を実行する。
【0056】
本発明の様々な実施形態が説明されたけれども、当業者によれば、本発明の範囲内にあるさらに多くの実施形態と実行が可能であることは明らかである。よって、本発明は、添付の特許請求の範囲及びそれと同等のものに照らすことを除いて、限定されない。

【特許請求の範囲】
【請求項1】
ネットワーク装置において、共通の仮想ローカルエリアネットワーク(VLAN)内における異なるエンドユーザに対して異なる仮想ルータを提示する方法であって、当該方法は、
前記共通のVLANを識別するVLANフィールド及び少なくとも1つの付加的なパケットフィールドを有する入力パケットを受信するステップと、
前記VLANフィールド及び前記少なくとも1つの付加的なパケットフィールドからキーを形成するステップと、
前記キーを仮想ルータ識別子(VRID)にマッピングするステップであって、前記仮想ルータ識別子は、複数の可能な仮想ルータ設定の中から1つの仮想ルータ設定を識別するものである、ステップと、
前記入力パケットを転送するのに使用され、前記仮想ルータ識別子により識別された前記仮想ルータ設定を特徴付けるルーティングテーブルを選択することにより、前記仮想ルータ識別子によって識別された前記1つの仮想ルータ設定を提示するように前記ネットワーク装置を構成するステップと、
前記仮想ルータ識別子により識別された前記仮想ルータ設定を特徴付ける前記選択されたルーティングテーブルを用いて前記入力パケットを転送するステップであって、異なるエンドユーザに対して提示される可能な仮想ルータの数は、前記ネットワーク装置に対するインデックス値の適当な設定を通じて、多くの異なるキー値を同一の仮想ルータ識別子にマッピングすることにより増加する、ステップと、
を有する方法。
【請求項2】
前記キーを、前記入力パケットの1つまたは複数のパケットフィールドに対応して決定されたキータイプを用いてマスクするステップ、をさらに含む、請求項1に記載の方法。
【請求項3】
前記キータイプは、前記入力パケットの入口ポートフィールドをルックアップテーブルに入力することにより決定される、請求項2に記載の方法。
【請求項4】
前記キータイプは、前記キーを形成するのに用いられるフィールドの中のどれがワイルドカードであるか、すなわち、その後の処理で無視されるかと、前記キーを形成するのに用いられるフィールドの中のどれが、その後の処理で使用されるかを示すことにより、マスクとして機能する、請求項2に記載の方法。
【請求項5】
前記キーの形成に用いられる前記フィールドのそれぞれは、独立して、ワイルドカード又は非ワイルドカードとなりうる、請求項4に記載の方法。
【請求項6】
前記少なくとも1つの付加的なパケットフィールドは、前記共通のVLANを識別する前記VLANフィールドとは異なる仮想メトロポリタンネットワーク(VMAN)フィールドを備える、請求項1に記載の方法。
【請求項7】
前記VLANフィールドおよび前記少なくとも1つの付加的なパケットフィールドから形成される前記キーは、前記VLANフィールドを超える大きさを有し、さらに前記VLANフィールドを仮想ルーティング目的のために使用することを可能にし、
提示されることが可能な仮想ルータの数は、パケットの検索を実行し、パケットの転送決定に達するのに使用されるメモリの大きさに制限され、さらに、提示されることが可能な前記仮想ルータの数は、前記VLANフィールドの大きさには依存しない、請求項1に記載の方法。
【請求項8】
前記VLANフィールドは12ビットに制限され、最大で4Kの異なるルーティングテーブルを識別し、前記VLANフィールドおよび前記少なくとも1つの付加的なパケットフィールドより形成される前記キーが、前記VLANフィールドを超える大きさを備える、請求項7に記載の方法。
【請求項9】
前記VLANフィールドは、拡張又はスーパーVLANである、請求項7に記載の方法。
【請求項10】
前記入力パケットを転送するのに使用され、前記仮想ルータ識別子により識別された前記仮想ルータ設定を特徴付けるルーティングテーブルを選択することにより、前記仮想ルータ識別子によって識別された前記1つの仮想ルータ設定を提示するように前記ネットワーク装置を構成するステップは、
各々がコンテンツ値とインデックス値を備える複数のエントリを含むテーブルにアクセスするステップと、
形成された前記キーに合致するコンテンツ値を持つエントリを検索するステップと、
関連データ格納要素を用いて、前記合致しているエントリのインデックス値を前記仮想ルータ識別子にマッピングするステップと、
前記テーブルの前記合致しているエントリのインデックス値に一致するインデックス値を有する関連データ格納要素のエントリを選択するステップであって、前記関連データ格納要素からの前記エントリは、前記仮想ルータ識別子である、または前記仮想ルータ識別子を含む、ステップと、を含む、請求項1に記載の方法。
【請求項11】
共通のVLAN内における異なるエンドユーザに対して異なる仮想ルータを提示するために、1以上のコマンド、命令、又は状態遷移を実行することが可能なパケット・プロセッサを有するネットワーク装置であって、1以上のコマンド、命令、又は状態遷移を実行することは、前記ネットワーク装置に対して、さらに、
−前記共通のVLANを識別するVLANフィールド及び少なくとも1つの付加的なパケットフィールドを有する入力パケットを受信させ、
−前記VLANフィールド及び前記少なくとも1つの付加的なパケットフィールドからキーを形成させ、
−前記キーを、複数の可能な仮想ルータ設定の中から1つの仮想ルータ設定を識別する仮想ルータ識別子(VRID)にマッピングさせ、
−前記入力パケットを転送するのに使用され、前記仮想ルータ識別子により識別された前記仮想ルータ設定を特徴付けるルーティングテーブルを選択することにより、前記仮想ルータ識別子によって識別された前記1つの仮想ルータ設定を提示するように前記ネットワーク装置を構成させ、
−前記仮想ルータ識別子により識別された前記仮想ルータ設定を特徴付ける前記選択されたルーティングテーブルを用いて前記入力パケットを転送させ、
異なるエンドユーザに対して提示される可能な仮想ルータの数は、前記ネットワーク装置に対するインデックス値の適当な設定を通じて、同一の仮想ルータ識別子に多くの異なるキー値をマッピングすることにより増加する、ネットワーク装置。
【請求項12】
前記1以上のコマンド、命令、又は状態遷移を実行することは、さらに、前記ネットワーク装置に、前記入力パケットの1以上のパケットフィールドに応じて決定されるキータイプを用いて前記キーをマスクさせる、請求項11に記載のネットワーク装置。
【請求項13】
前記キータイプは、前記キーを形成するのに用いられるフィールドの中のどれがワイルドカードであるか、すなわち、その後の処理で無視されるかと、前記キーを形成するのに用いられるフィールドの中のどれが、その後の処理で使用されるかを示すことにより、マスクとして機能し、前記キーの形成に用いられる前記フィールドのそれぞれは、独立して、ワイルドカード又は非ワイルドカードとなりうる、請求項12に記載のネットワーク装置。
【請求項14】
前記少なくとも1つの付加的なパケットフィールドは、前記共通のVLANを識別する前記VLANフィールドとは異なるVMANフィールドを備える、請求項11に記載のネットワーク装置。
【請求項15】
前記VLANフィールドおよび前記少なくとも1つの付加的なパケットフィールドから形成される前記キーは、前記VLANフィールドを超える大きさを有し、さらに前記VLANフィールドを仮想ルーティング目的のために使用することを可能にし、
提示されることが可能な仮想ルータの数は、パケットの検索を実行し、パケットの転送決定に達するのに使用されるメモリの大きさに制限され、さらに、提示されることが可能な前記仮想ルータの数は、前記VLANフィールドの大きさには依存しない、請求項11に記載のネットワーク装置。
【請求項16】
前記1以上のコマンド、命令、又は状態遷移を実行することは、前記ネットワーク装置に、
各々がコンテンツ値とインデックス値を備える複数のエントリを含むテーブルにアクセスし、
形成された前記キーに合致するコンテンツ値を持つエントリを検索し、
関連データ格納要素を用いて、前記合致しているエントリのインデックス値を前記仮想ルータ識別子にマッピングし、
前記テーブルの前記合致しているエントリのインデックス値に一致するインデックス値を有する関連データ格納要素のエントリを選択するように構成させ、
前記関連データ格納要素からの前記エントリは、前記仮想ルータ識別子である、または前記仮想ルータ識別子を含む、請求項11に記載のネットワーク装置。
【請求項17】
前記テーブルは、連想メモリ(CAM)に格納されており、
前記形成された前記キーに合致するコンテンツ値を持つエントリを検索することは、前記CAMを検索して前記CAM内の前記エントリを探し出すことを含む、請求項16に記載のネットワーク装置。
【請求項18】
1以上のコマンド、命令、又は状態遷移を実行することが可能なパケット・プロセッサを有するネットワーク装置であって、
由来のVLANを識別するVLANフィールド及び少なくとも1つの付加的なパケットフィールドを有する入力パケットを前記ネットワーク装置において受信する手段と、
前記VLANフィールド及び前記少なくとも1つの付加的なパケットフィールドからキーを形成する手段と、
前記キーを仮想ルータ識別子(VRID)にマッピングする手段であって、前記仮想ルータ識別子は、前記ネットワーク装置内において複数の可能な仮想ルータ設定の中から1つの仮想ルータ設定を識別する手段と、
前記仮想ルータ識別子により識別された前記1つの仮想ルータ設定を提示するように前記ネットワーク装置を構成する手段と、
前記仮想ルータ識別子により識別された前記1つの仮想ルータ設定を用いて前記入力パケットを転送する手段と、
を備え、
異なるエンドユーザに対して前記ネットワーク装置により提示される可能な仮想ルータの数は、前記ネットワーク装置に対するインデックス値の適当な設定を通じて、同一の仮想ルータ識別子に多くの異なるキー値をマッピングすることにより増加する、ネットワーク装置。
【請求項19】
前記キーを、前記入力パケットの1つまたは複数のパケットフィールドに対応して決定されたキータイプを用いてマスクする手段をさらに備える、請求項18に記載のネットワーク装置。
【請求項20】
前記キータイプは、前記キーを形成するのに用いられるフィールドの中のどれがワイルドカードであるか、すなわち、その後の処理で無視されるかと、前記キーを形成するのに用いられるフィールドの中のどれが、その後の処理で使用されるかを示すことにより、マスクとして機能し、前記キーの形成に用いられる前記フィールドのそれぞれは、独立して、ワイルドカード又は非ワイルドカードとなりうる、請求項19に記載のネットワーク装置。

【図1】
image rotate

【図2a】
image rotate

【図2b】
image rotate

【図2c】
image rotate

【図2d】
image rotate

【図2e】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6a】
image rotate

【図6b】
image rotate

【図6c】
image rotate


【公開番号】特開2013−51729(P2013−51729A)
【公開日】平成25年3月14日(2013.3.14)
【国際特許分類】
【出願番号】特願2012−244305(P2012−244305)
【出願日】平成24年11月6日(2012.11.6)
【分割の表示】特願2008−548656(P2008−548656)の分割
【原出願日】平成18年12月19日(2006.12.19)
【出願人】(500090534)イクストリーム・ネットワークス・インコーポレーテッド (12)
【Fターム(参考)】