(57)【要約】【課題】  ＣＰＵの輻輳を回避し、仮想ルータ単位でのファーストパケット送出量に偏りなくＣＰＵに対してファーストパケットを送出することができるレイヤ３スイッチ装置を得る。【解決手段】  通信フローのファーストパケットが、パケット転送部２を介して、そのヘッダ情報を検索処理するＣＰＵ４に送信されるよう構成されたファーストパケット方式のレイヤ３スイッチ装置において、複数の仮想ルータＶＲ＃１〜ＶＲ＃Ｎ毎に対応して設けられパケット転送部からＣＰＵ宛てのファーストパケットに対して夫々に流量制御を行う複数の第一のシェーパーキュー２２〜２４と、複数の第一のシェーパーキューにて流量制御が行われたファーストパケットに対して流量制御を行う第二のシェーパーキュー２２と、ＣＰＵにおける負荷状態に応じて第二のシェーパーキューのＣＰＵに対する流量を動的に制御する制御手段７とを含む。【選択図】      図１
2008182677.tif 000002
【特許請求の範囲】
【請求項１】
通信フローのファーストパケットが、パケット転送部を介して、そのヘッダ情報を検索処理するヘッダ情報検索手段に送信されるよう構成されたファーストパケット方式のレイヤ３スイッチ装置であって、
複数の仮想ルータ（Virtual Router）毎に対応して設けられかつ前記パケット転送部から前記ヘッダ情報検索手段宛てのファーストパケットに対して夫々に流量制御を行う複数の第一のシェーパーキューと、
前記複数の第一のシェーパーキューにて流量制御が行われたファーストパケットに対して流量制御を行う第二のシェーパーキューと、
前記ヘッダ情報検索手段における負荷状態に応じて前記第二のシェーパーキューの前記ヘッダ情報検索手段へのパケットの流量を動的に制御する制御手段と、を含むことを特徴とするレイヤ３スイッチ装置。
【請求項２】
前記第二のシェーパーキューは、ファーストパケットに対してラウンドロビン方式によってスケジューリングを行うことを特徴とする請求項１記載のレイヤ３スイッチ装置。
【請求項３】
前記仮想ルータ毎の第一のシェーパーキューの各流入量を監視してその監視結果に基づいて前記第一のシェーパーキューの各流量をそれぞれ動的に制御する制御手段を、更に含むことを特徴とする請求項１または請求項２記載のレイヤ３スイッチ装置。
【請求項４】
前記パケットはＩＰ（Internet Protocol ）パケットであることを特徴とする請求項１〜３いずれか記載のレイヤ３スイッチ装置。
【請求項５】
通信フローのファーストパケットが、パケット転送部を介して、そのヘッダ情報を検索処理するヘッダ情報検索手段に送信されるよう構成されたファーストパケット方式のレイヤ３スイッチ装置の制御方法であって、
複数の仮想ルータ（Virtual Router）毎に対応して設けられた複数の第一のシェーパーキューにより、前記パケット転送部から前記ヘッダ情報検索手段宛てのファーストパケットに対して流量制御を行うステップと、
第二のシェーパーキューを用いて前記複数の第一のシェーパーキューにて夫々流量制御が行われたファーストパケットに対して流量制御を行うステップと、
前記ヘッダ情報検索手段の負荷状態に応じて前記第二のシェーパーキューの前記ヘッダ情報検索手段へのパケットの流量を動的に制御するステップと、
を含むことを特徴とする方法。
【請求項６】
前記第二のシェーパーキューが、ファーストパケットに対してラウンドロビン方式によってスケジューリングを行うことを特徴とする請求項５記載の方法。
【請求項７】
前記仮想ルータ毎の第一のシェーパーキューの各流入量を監視してその監視結果に基づいて前記第一のシェーパーキューの流量をそれぞれ動的に制御するステップを、更に含むことを特徴とする請求項５または６記載の方法。
【請求項８】
前記パケットはＩＰ（Internet Protocol ）パケットであることを特徴とする請求項５〜７いずれか記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はレイヤ３スイッチ装置及びその制御方法に関し、特にファーストパケット方式のレイヤ３スイッチ装置及びその制御方法に関するものである。
【背景技術】
【０００２】
一般に、ファーストパケット方式のレイヤ３スイッチでは、ＩＰ（Internet Protocol ）パケット転送部において通信フローのハードウェア転送を行うようになっているために、ＩＰパケット転送部からＣＰＵ（Central Processing Unit ：中央処理装置）にファーストパケットを送信し、このＣＰＵでパケットのヘッダ情報を検索して、この検索結果に応じて、当該ＣＰＵがＩＰパケット転送部に対して通信フローのキャッシュエントリを作成するよう制御する処理を行っている。
【０００３】
そのため、ファーストパケット方式のレイヤ３スイッチでは、必ずファーストパケットをＩＰパケット転送部からＣＰＵに送信する必要があるのだが、ファーストパケットがＣＰＵに集中してしまうと、ＣＰＵにおいて輻輳状態（過負荷状態）が発生することになる。そこで、ＣＰＵへのパケットフローが集中しすぎないようにファーストパケットの流れを制御（流量制御：シェーピング）する必要がある。
【０００４】
そのために、ファーストパケット方式のレイヤ３スイッチでは、図５に示すように、ＩＰパケット転送部６内に、シェーパーキュー６１を設けて、ＣＰＵ４へのファーストパケットの流れを制御することが行われる。図５を参照すると、レイヤ３スイッチのインタフェースユニット５は、ＩＰパケット転送部６と、物理ポート３と、ＣＰＵ４とから構成されている。そして、このレイヤ３スイッチ内には、複数の仮想ルータＶＲ＃１〜ＶＲ＃Ｎ（Ｎは２以上の整数）が設定されている。
【０００５】
各ＩＰパケットのフローを、仮想ルータＶＲ＃１のファーストパケットフロー１６１、仮想ルータＶＲ２のファーストパケットフロー１６２、仮想ルータＶＲ＃Ｎのファーストパケットフロー１６３として示している。これら各ファーストパケットフロー１６１〜１６３は、全て共通のシェーパーキュー６１へ入力されて、このシェーパーキュー６１において、ＣＰＵ４へ導出すべきファーストパケットの流量の制御であるシェーピングがなされるようになっている。
【０００６】
なお、図５において、シェーパーキュー６１には、ファーストパケットの他、宛先不明パケット、自ノード宛パケットなどが入力される。
【０００７】
このようなレイヤ３スイッチについては、特許文献１〜４などに開示されている。
【特許文献１】特開２００６−０３３７１４号公報
【特許文献２】特開２００６−０８１０５７号公報
【特許文献３】特開２００５−２１０５５６号公報
【特許文献４】特開２００４−２７４４４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述したファーストパケット方式のレイヤ３スイッチでは、ＩＰパケット転送部６においてＣＰＵ４へのパケットの流量制御を行っているが、１つの装置内に複数の仮想ルータを設定した状態で、それぞれの仮想ルータからファーストパケットが大量に送信された場合、仮想ルータ毎にファーストパケット送出量の偏りが発生し、極端な場合には、全くファーストパケットを送出できない仮想ルータが存在してしまうという問題がある。
【０００９】
このようなＣＰＵへのパケットの流量制御では、ＣＰＵのリソース使用態（負荷状態）に応じてパケットの流量制御をすることは可能であるが、送出元の仮想ルータに対するチェック機能が存在していないために、仮想ルータ単位でのファーストパケット送出量に偏りが発生したり、ある仮想ルータ（図５では、仮想ルータＶＲ＃Ｎ）では、なかなかファーストパケットが受け付けてもらえないといった、不公平性が発生するという問題もある。
【００１０】
そこで、本発明の目的は、ＣＰＵの輻輳を回避しつつ、仮想ルータ単位でのファーストパケット送出量に偏りなく、ＣＰＵに対してファーストパケットを送出することができるレイヤ３スイッチ装置及びその制御方法を提供することである。
【課題を解決するための手段】
【００１１】
本発明によるレイヤ３スイッチ装置は、ファーストパケットがパケット転送部を介して、そのヘッダ情報を検索処理するヘッダ情報検索手段に送信されるように構成されたファーストパケット方式のレイヤ３スイッチ装置であって、複数の仮想ルータ（Virtual Router）毎に対応して設けられかつ前記パケット転送部から前記ヘッダ情報検索手段宛てのファーストパケットに対して夫々に流量制御を行う複数の第一のシェーパーキューと、前記複数の第一のシェーパーキューにて流量制御が行われたファーストパケットに対して流量制御を行う第二のシェーパーキューと、前記ヘッダ情報検索手段の負荷状態に応じて前記第二のシェーパーキューの前記ヘッダ情報検索手段へのパケットの流量を動的に制御する制御手段とを含む。
【００１２】
本発明によるレイヤ３スイッチ装置の制御方法は、ファーストパケットがパケット転送部を介して、ヘッダ情報を検索処理するヘッダ情報検索手段に送信されるように構成されたファーストパケット方式のレイヤ３スイッチ装置の制御方法であって、複数の仮想ルータ（Virtual Router）毎に対応して設けられた複数の第一のシェーパーキューにより、前記パケット転送部から前記ヘッダ情報検索手段宛てのファーストパケットに対して流量制御を行うステップと、第二のシェーパーキューを用いて前記複数の第一のシェーパーキューにて夫々流量制御が行われたファーストパケットに対して流量制御を行うステップと、前記ヘッダ情報検索手段の負荷状態に応じて前記第二のシェーパーキューの前記ヘッダ情報検索手段へのパケットの流量を動的に制御するステップとを含む。
【発明の効果】
【００１３】
本発明によれば、ＣＰＵの輻輳（過負荷）状態を回避しつつ、仮想ルータ毎に偏りなく公正に、ＣＰＵにファーストパケットを送出することができるという効果がある。
【発明を実施するための最良の形態】
【００１４】
以下に、本発明の実施の形態について説明するが、それに先立って本発明の原理を述べる。すなわち、本発明によるレイヤ３スイッチ装置では、仮想ルータ毎に割り当てた第一のシェーパーキューによって、ＣＰＵ向けファーストパケットを仮想ルータ毎に流量制御し、そして、第二のシェーパーキューによって、仮想ルータ毎に流量制御されたファーストパケットのＣＰＵ向け流入量（流入総帯域）をＣＰＵリソース使用状態に基づいて動的に流量制御するよう構成する。これにより、ＣＰＵにおける輻輳（過負荷）状態を回避しつつ、仮想ルータ毎のファーストパケット送出量の偏り（不公平性）を削減することが可能となるものである。
【００１５】
次に、本発明の実施の形態について図面を参照して説明する。図１は本発明の一実施の形態によるレイヤ３スイッチのインタフェースユニットの構成を示すブロック図である。図１においては、本発明の一実施の形態によるファーストパケット方式のレイヤ３スイッチ内部の第一のシェーパーキューの状態及びＩＰパケットのフロー状態をも表している。
【００１６】
図１において、本発明の一実施の形態によるレイヤ３スイッチは、インタフェースユニット１と、ＣＰＵ４と、このＣＰＵ４におけるリソースの使用状態（以下、単にＣＰＵ使用状態と称す：負荷状態でもある）を監視して、この監視結果に基いてＩＰパケット転送部２内の第二のシェーパーキューの流量制御をなす監視制御部７とを含んで構成されている。そして、このレイヤ３スイッチは、仮想ルータＶＲ＃１〜ＶＲ＃Ｎが設定されているものとする。
【００１７】
ここで、ＣＰＵ４は、前述したように、ＩＰパケット転送部２から通信フローのファーストパケットを受信して、このファーストパケットのヘッダ情報を検索し、この検索結果に応じて、ＩＰパケット転送部２に対して、通信フローのキャッシュエントリを作成するよう制御する処理を行うものである。
【００１８】
具体的には、ＣＰＵ４は、ファーストパケットのヘッダ情報を検索してこれにに含まれるＩＰアドレス（宛先及び送信元）や通信フローのプロトコル種別などを基に、ＩＰパケット転送部２が通信フローのキャシュエントリを作成するよう制御するものである。
【００１９】
ＩＰパケット転送部２は、この作成した通信フローのキャシュエントリを元に、ファーストパケット以降のパケット（セカンドパケットやサードパケットなど）のハードウェア転送を行うものである。なお、通信フローのキャッシュエントリとは、通信フローを装置としてどのような処理（転送処理を含む）を行うのかという情報を、一時的にメモリに書き込んだものであり、周知であるので詳述しない。
【００２０】
インタフェースユニット１はＩＰパケット転送部２と、物理ポート３とを含み、ＩＰパケット転送部２は、仮想ルータＶＲ＃１〜ＶＲ＃Ｎ毎にそれぞれ対応して設けられ（割り当てられ）、かつＣＰＵ４向けのファーストパケットを、仮想ルータＶＲ＃１〜ＶＲ＃Ｎ毎に流量制御する第一のシェーパーキュー２２〜２４と、この第一のシェーパーキュー２２〜２４から供給されるファーストパケットの流量制御をなす第二のシェーパーキュー２１とを含む。
【００２１】
監視制御部７は、この第二のシェーパーキュー２１の流量の制御を行うものであり、すなわち、この監視制御部７は、ＣＰＵ４のリソース使用状態を監視して、この監視結果に基づいて、第二のシェーパーキュー２１に対して、ファーストパケットのＣＰＵ４向け流入量を、動的に流量制御するものである。
【００２２】
各ＩＰパケットのフローは、仮想ルータＶＲ＃１のファーストパケットフロー１２１、仮想ルータＶＲ＃２のファーストパケットフロー１２２、仮想ルータＶＲ＃Ｎのファーストパケットトフロー１２３とする。仮想ルータＶＲ＃１〜ＶＲ＃Ｎ毎のキューは、仮想ルータＶＲ＃１の第一のシェーパーキュー２２、仮想ルータＶＲ＃２の第一のシェーパーキュー２３、仮想ルータＶＲ＃Ｎの第一のシェーパーキュー２４としている。
【００２３】
図２は、図１に示した第二のシェパーキュー２１の状態遷移を示す図である。図２において、通常状態Ｓ１は、ＣＰＵ使用率がＮ％未満（Ｎ＜１００％）の状態、輻輳状態Ｓ２は、ＣＰＵ使用率がＮ％以上の状態、輻輳状態回避制御状態Ｓ３はＣＰＵ使用率が１００％になった後に推移する状態である。
【００２４】
以下、図１と図２とを参照して本発明の一実施の形態によるレイヤ３スイッチの動作について説明するが、その前に、図５を使用して、一般的な方法による、ＣＰＵ向けファーストパケットの流量制御について説明する。
【００２５】
インタフェースユニット５に入ってきたファーストパケット１６１〜１６３は、仮想ルータに関係なく、全てシェーパーキュー６１によって流量制御されて送出される。図５に示すように、比較的流量が多い仮想ルータＶＲ＃１及び仮想ルータＶＲ＃２のファーストパケットはＣＰＵ４に送出されるが、より少ない流量の仮想ルータＶＲ＃Ｎのファーストパケット１６３（二点鎖線）は破棄されてしまっている。従って、この図５の構成では、流量の少ない仮想ルータのファーストパケットは、ＣＰＵに対して送出されず、よって仮想ルータ単位で、ファーストパケット送出量の偏りが発生することになる。
【００２６】
次に、図１を参照して本発明の一実施例によるレイヤ３スイッチのＣＰＵ向けファーストパケットの流量制御の動作について説明する。
【００２７】
インタフェースユニット１に入ってきたファーストパケット１２１〜１２３は、先ず、仮想ルータＶＲ＃１〜ＶＲ＃Ｎ毎に対応して設けられた第一のシェーパーキュー２２〜２４によってそれぞれ流量制御される。これら第一のシェーパーキュー２２〜２４の各々は、予め設定された固定長のキューであり、このキュー長をオーバして流入するパケットは破棄されることにより、仮想ルータＶＲ＃１〜ＶＲ＃Ｎ毎の各パケットの流量制御が行われるのである。
【００２８】
その後、第二のシェパーキュー２１にて、ラウンドロビン方式によってスケジューリングが行われることになる。すなわち、ＣＰＵ４のリソースの使用状態と連動して動的に、第二のシェパーキュー２１の送信帯域幅（ＣＰＵ向けのパケット流量）が、監視制御部７により制御される。そして、第二のシェーパーキュー２１から、流量制御されたパケットがＣＵＰ４に送出される。最終的に、仮想ルータＶＲ＃１〜ＶＲ＃Ｎのファーストパケット１２１〜１２３は、大略同じレートでＣＰＵ４に送出される。
【００２９】
ここで、第二のシェーパーキュー２１の動作について、図２を使用して詳細を説明する。第二のシェーパーキュー２１は通常のＣＰＵ低負荷状態の場合、図２に示す通常状態Ｓ１である。この状態では、輻輳制御は行われない。
【００３０】
ここからある一定のＣＰＵ使用率Ｎ％（Ｎ＜１００％）以上になった場合、第二のシェーパーキュー２１は輻輳状態Ｓ２に状態が推移する（図２のＳ４）。この状態で、輻輳制御が行われる。ここでの輻輳制御は、ある一定時間（秒）おきに、ＣＰＵ処理対象パケットの量に応じて流量制御量を見直しながら、制御を行っていく。ここで、ある一定時間（秒）の間、常時ＣＰＵ使用率がある値Ｍ％（Ｍ＜Ｎ）以下であれば、通常状態Ｓ１に移行する（図２のＳ５）。
【００３１】
逆に、輻輳状態Ｓ２からＣＰＵ使用率が１００％になってしまった場合、輻輳状態回避制御の状態Ｓ３に推移する（図２のＳ６）。この状態では、（１）ファーストパケットを大幅に流量制御、（２）ＣＰＵ使用率がＲ％（Ｍ＜Ｒ＜Ｎ）を下回れば、第二のシェーパーキューのＣＰＵ向け流量（送信帯域幅）を増加させる。ＣＰＵ向け流量を増加させたことによって、ＣＰＵが再度輻輳状態に陥った場合には、（１）の処理に戻る。（３）輻輳状態Ｓ２の時と同様に、ある一定時間（秒）の間、常時ＣＰＵ使用率がある値Ｍ％（Ｍ＜Ｎ）以下であれば、通常状態Ｓ１に移行する（図２のＳ７）。
【００３２】
輻輳状態回避制御の状態Ｓ３について、より具体的に説明すると、輻輳状態Ｓ２に陥ると、第二のシェーパーキュー２１の流量が絞られると同時に、この第二のシェーパキュー２１へのパケット取り込みの際に、仮想ルータＶＲ毎に第一のシェーパキュー２２〜２４を夫々通過してきたパケットを、ラウンドロビン方式にて、順番に取り込むことになる。
【００３３】
このように、本実施例では、仮想ルータＶＲ＃１〜ＶＲ＃Ｎ毎に割り当てた第一のシェーパーキュー２２〜２４によって、ＣＰＵ向けのファーストパケットを、仮想ルータＶＲ＃１〜ＶＲ＃Ｎ毎にそれぞれ独立に流量制御し、第二のシェーパーキュー２１で、仮想ルータＶＲ＃１〜ＶＲ＃Ｎ毎に流量制御されたファーストパケットのＣＰＵ向け総送信帯域幅を、ＣＰＵ使用率に基づいて動的にシェーピング制御することにより、ＣＰＵ４の輻輳を回避しつつ、仮想ルータＶＲ＃１〜ＶＲ＃Ｎ毎のファーストパケット送出量の偏りを削減することができる。
【００３４】
すなわち、第一のシェーパーキュー２２〜２４によって、仮想ルータＶＲ毎の不公平さを緩和し、第二のシェーパーキュー２１によって、ＣＰＵでの輻輳状態を回避するようにしているのである。
【００３５】
図３は本発明の他の実施の形態のレイヤ３スイッチの構成及びその内部のシェーパーキューの状態を示し、図４は同じくその内部のＩＰパケットのフロー状態を示す図である。図３及び図４において、図１と同等部分は同一符号により示している。
【００３６】
本実施の形態では、図１の構成の他に、ＣＰＵ４の内部に、第一のシェーパーキュー監視制御部４１を設け、この第一のシェーパーキュー監視制御部４１により、第一のシェーパーキュー２２〜２４の各流入量（単位時間当たりの流入量）をそれぞれ監視し、この監視結果に基いて、第一のシェーパーキュー２２〜２４の各流量の動的制御を行うものである。他の構成は図１に示した実施の形態の構成と同一である。
【００３７】
図３及び図４においても、各ＩＰパケットのフローを、仮想ルータＶＲ＃１のファーストパケットフロー１２１、仮想ルータＶＲ＃２のファーストパケットフロー１２２、仮想ルータＶＲ＃Ｎのファーストパケットトフロー１２３としている。仮想ルータＶＲ＃１〜ＶＲ＃Ｎ毎のキューは、仮想ルータＶＲ＃１の第一のシェーパーキュー２２、仮想ルータＶＲ＃２の第一のシェーパーキュー２３、仮想ルータＶＲ＃Ｎの第一のシェーパーキュー２４としている。
【００３８】
これら図３及び図４を参照して，この実施例２によるＣＰＵ向けファーストパケット流量制御動作について説明する。
【００３９】
まず、図３を参照すると、インタフェースユニット１に入ってきたファーストパケット１２１〜１２３の各々は、先ず、それぞれ対応する仮想ルータＶＲ＃１〜ＶＲ＃Ｎ毎の第一のシェーパーキュー２２〜２４によって流量制御されることになる。本実施例では、ＣＰＵ４における第一のシェーパーキュー監視制御部４１が、仮想ルータＶＲ＃１〜ＶＲ＃Ｎ毎の第一のシェーパーキュー２２〜２４の単位時間当たりの流入量をそれぞれ監視し、その監視結果に応じて、各シェーパーキュー２２〜２４の流量制御がなされる。
【００４０】
図４を参照すると、ファーストパケットの流入量が少ない仮想ルータＶＲ＃２の第一のシェーパーキュー２３の流量を減少させ、ファーストパケットの流入量が多い仮想ルータＶＲ＃Ｎの第一のシェーパキュー２４の流量を増加させている。流量を制御するためには、キューの長さを制御すれば良く、例えば、流量を減少させたい場合には、キューの長さを小とし、逆に、流量を増加させたい場合には、キューの長さを大とするのである。
【００４１】
このように、本実施例では、仮想ルータＶＲ毎の第一のシェーパーキューの各単位時間当たりの流入量を監視して、この監視結果に基いて第一のシェーパーキューの各流量制御をなすことによって、仮想ルータＶＲ＃１〜ＶＲ＃Ｎ単位で、大幅に増加したファーストパケットを破棄することなく、ＣＰＵへ供給することができる。
【００４２】
仮想ルータＶＲ＃１〜ＶＲ＃Ｎ毎の第一のシェーパーキュー２２〜２４にてシェーピンされたパケットに対する以降の手順は、図１に示す本発明の一実施例と同様である。つまり、ファーストパケット１２１〜１２３は、第二のシェーパーキュー２１において、ラウンドロビン方式によってスケジューリングが行われ、ＣＰＵ４のリソース使用状態と連動して動的にＣＰＵ向けの流量が制御されて、ＣＵＰ４に送出されることになる。
【００４３】
上述した各実施の形態における動作は、予めその動作手順をプログラムとしてＲＯＭなどの記録媒体に格納しておき、これをコンピュータにより読み取らせて実行させるように構成できることは勿論である。
【図面の簡単な説明】
【００４４】
【図１】本発明の一実施の形態による機能ブロック図である。
【図２】図１に示す第二のシェパーキューの状態遷移を示す状態遷移図である。
【図３】本発明の他の実施の形態による機能ブロック図である。
【図４】図３に示したレイヤ３スイッチ内部のシェーパーキューの状態及びＩＰパケットのフロー状態を示す図である。
【図５】レイヤ３スイッチのインタフェースユニットの関連技術の構成を示す機能ブロック図である。
【符号の説明】
【００４５】
１  インタフェースユニット
２  ＩＰパケット転送部
３  物理ポート
４  ＣＰＵ
７  監視制御部
２１  第二のシェーパーキュー
２２〜２４  第一のシェーパーキュー
４１  第一のシェーパーキュー監視制御部
【図１】
2008182677.tif 000003
【図２】
2008182677.tif 000004
【図３】
2008182677.tif 000005
【図４】
2008182677.tif 000006
【図５】
2008182677.tif 000007