説明

パケット中継装置

【課題】パケット中継装置内で、バーストによりパケットがキューから溢れたもしくは溢れそうになったことをトリガーとして、該当キューに詰まれるパケットだけをミラーリング対象とするようにする。
【解決手段】出力キュー管理部は、パケットを出力キューリスト内のキューへコピーした後、該当キューの長さを取得する(272)。キュー長がミラーリング開始閾値より大きい場合は、該当キューエントリのミラーリング動作フラグの値をONに変更する(275)。キュー長がミラーリング終了閾値より小さい場合は、逆に同フラグの値をOFFに変更する(274)。キュー長がミラーリング開始閾値より越えた後からミラーリング終了閾値よりも低くなるまでの間、該当キューへ出力されるパケットだけがミラーリングされるようになる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パケット中継装置に係り、特に、インターネット等のネットワークにおけるパケット中継装置においてバーストトラフィック等のトラフィックによるパケットロスを監視及び/又は防止するためのパケット中継装置に関する。
【背景技術】
【0002】
一般にサーバや端末の間でやり取りされるトラフィックの流量の時間推移は常時同じ流量ではなく、トラフィックの流し初めなどでは瞬間的に大きな値になることがある(バースト)。
パケット中継装置はこうしたバーストトラフィックを受けたとき、入力回線帯域より出力回線帯域の方が細い場合には、出力側回線のキューにバースト中の間だけパケットを滞留させ、バースト終了後にキューからパケットを出すことでパケットロスを防止している。また、パケット中継装置の中継性能が性能限界に達した場合も、入力側のキューにて同様な措置を取り、パケットロスを防止する。
昨今のサーバや端末の性能向上に伴い、こうしたバーストのトラフィック流量が大きくなる傾向にある。バーストのトラフィック流量があまりに大きい場合、パケット中継装置のキューでパケットを滞留しきれなくなり、パケットロスに至ってしまうことが想定され得る。
こうしたパケットロスは、瞬間的とはいえ、信頼性劣化(UDPなどのパケットロス未対応トラフィックの場合)やスループット劣化(TCPなどのパケットロス対応トラフィックの場合)につながる可能性があり、避けることが望ましい。かといってパケット中継装置のキューを長くすることもあまり適切ではない。パケット中継装置の費用が高くなったり、キューに滞留する時間が長くなりすぎるために遅延が大きくなりすぎたりするためである。
こうしたバーストによるパケットロスの課題に対して、過去には、装置や端末間連携によりバーストを抑制する技術が多数開発されてきた。例としては、Explicit Congestion Notification(非特許文献1)、Backward Congestion Notification(非特許文献2)、Priority−based Flow−control(非特許文献3)、Pre−Congestion Notification(非特許文献4)といった技術があげられる。いずれの技術も、パケット中継装置でバーストによるキュー溢れが起こりそうになったときに、その情報を前段のパケット中継装置や端末へフィードバックし、そのフィードバックを受けた場所でバースト抑制することに特徴がある。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】IETF, “The Addition of Explicit Congestion Notification (ECN) to IP”, RFC3168.
【非特許文献2】IEEE, “IEEE Standard for Local and Metropolitan Area Networks−−−Virtual Bridged Local Area Networks − Amendment: 10: Congestion Notification”, IEEE802.1Qau
【非特許文献3】IEEE, “IEEE Standard for Local and Metropolitan Area Networks−−−Virtual Bridged Local Area Networks − Amendment: Priority−based Flow Control”, IEEE802.1Qbb
【非特許文献4】IETF, “Pre−Congestion Notification (PCN) Architecture”, RFC5559
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来技術は、網内の全ての端末やパケット中継装置が各々の所定の技術に対応していることを前提としている。ところが現実の網では、必ずしもこうした前提を置くことが出来ない。そのため、実運用では、パケット中継装置のキュー溢れが起こりそうな物理回線にて常時パケットをミラーリング(複製)して、キュー溢れの原因となるトラフィックを監視する運用が行われることが多い。
こうした運用の最大の課題は、解析対象となるミラーリングパケットが膨大なため、解析に手間がかかることである。仮にバーストを効率的に解析できる装置があったとしても、バーストとキュー溢れとの関連性まではわからないため、結局キュー溢れの原因はつかめないことが多いことも課題である。
本発明は、以上の点に鑑み、バーストトラフィック等のトラフィックによるパケットロスを監視及び/又は防止するためのパケット中継装置を提供することを目的とする。
【課題を解決するための手段】
【0005】
本発明では、特に、パケット中継装置内で、バーストによりパケットがキューから溢れたもしくは溢れそうになったことをトリガーとして、該当キューに詰まれるパケットだけをミラーリング対象とするようにする。
本発明のパケット中継装置では、特に、パケット複製動作の要否を判断する基準として、パケットが入力もしくは出力されるポートやパケットの各フィールドの値のみならず、パケットが通過したバッファの使用量も用いることが出来る。
本発明のバーストトラフィック監視方法では、パケット格納用バッファの使用量に応じて、該当バッファを通るパケットを複製対象とするか否かを決定することにより、バッファから溢れようとしているバーストトラフィックだけを複製して監視することができる。
また、本発明のシステムでは、パケット複製動作の要否を判断する基準として、パケットがどのバッファを通過したかも用いることが出来るパケット中継装置と、パケット中継装置のパケット格納用バッファの使用量を監視する外部サーバから構成されるシステムにおいて、外部サーバがパケット格納用バッファの使用量を監視し、同使用量に基づいて該当バッファを通るパケットを複製対象とするか否かを指示することで、バッファから溢れようとしているバーストトラフィックだけを複製して監視することができる。
さらに、本発明では、パケット格納用バッファの使用量をある閾値と比較することでパケット複製を行うか否かを判定することができる。
また、パケット複製を、パケットミラーリングにて実現することができる。
また、本発明のパケット中継装置では、一部のパケット格納用バッファをパケット入出力には用いないダミーのバッファとして有し、パケット複製を、ダミーバッファへのパケットコピーで実現することができる。
さらに、本発明では、複製動作を開始する閾値を、複製動作を終了する閾値よりも大きい値にすることで、バッファ使用量が閾値付近で不安定な場合に、バーストトラフィック監視が不安定になることを防ぐことができる。
また、本発明では、パケット複製動作を新たに開始するたびに、該当バッファに関する閾値を減らし、パケット複製動作を終了してから一定時間パケット複製動作を開始しなかった場合に、該当バッファに関する閾値を増やすことで、バーストトラフィック監視で、溢れやすいバッファを効率的に監視することができる。
【0006】
本発明では、あるバッファでパケット複製動作を新たに開始した際に、バッファ間の出力スケジューリングの関係上該当バッファよりも出力されにくいバッファについて閾値を低くすることで、バーストトラフィック監視で、今後溢れる見込みの高いバッファを自動的に監視することができる。
本発明では、複製されたパケットに対して、更にパケット中継装置内で適切なフィルタリングを行うことで、バーストの原因となったトラフィックを更に絞り込むことができる。
本発明では、パケット中継装置がパケット複製動作の動作間隔を変更できる機能を有する場合に、複製動作の動作間隔をバッファ使用量に応じて変更することができる。
本発明において、ダミーバッファを用いる場合、ダミーバッファへパケットのヘッダ部のみをコピーすることで、ダミーバッファの消費を節約しつつ、バーストトラフィックのフロー情報をより多く採取することができる。
さらにその場合、ダミーバッファへパケットをコピーする際、パケットには明記されない装置内の転送に関連した情報も付与することで、バーストトラフィックの装置内での振る舞いをより正確に把握することができる。
本発明では、上述のような機能を有するパケット中継装置、もしくは、パケット複製動作の要否を判断する基準として、パケットがどのバッファを通過したかも用いることが出来るパケット中継装置と、上述のいずれかの方法で得られたバーストパケットを、外部のトラフィックアナライザで分析することで、バーストの原因となったトラフィックを効率的に特定するシステムを提供することができる。
【0007】
本発明の第1の解決手段によると、
パケットの転送処理を司るパケット転送処理部と、
複数のキューを有し、前記複数のキューのいずれかからキューを選択し、該キューにあるパケットをポートへ出力するための、ポート単位の出力キューリストと、
出力キューリストの制御を行う出力キュー管理部と、
宛先に対応する出力先ポートと出力先キュー番号を記憶した経路表と、
出力先ポートと出力先キュー番号に対応する、複製先ポートと複製動作有効フラグを記憶した複製動作管理表と
を備え、

前記パケット転送処理部は、受信パケットの宛先を前記経路表の宛先と照合し、マッチするエントリの出力先ポートと出力先キュー番号を、パケットの出力先ポートと出力先キュー番号として求め、
前記パケット転送処理部は、求められた出力先ポートと出力先キュー番号を前記複製動作管理表と照合し、
マッチするエントリの複製動作有効フラグが有効ならば、前記パケット転送処理部は、前記出力キュー管理部に該エントリの複製先ポートへの複製を指示し、前記指示を受けた前記出力キュー管理部は、出力先ポートに対応する前記出力キューリスト内のキュー番号のキューへパケットを出力し、且つ、複製先ポートに対応する前記出力キューリスト内のキュー番号のキューへパケットをコピーして出力し、
マッチするエントリの複製動作有効フラグが無効ならば、前記パケット転送処理部は、前記出力キュー管理部にパケットの出力を指示し、前記指示を受けた前記出力キュー管理部は、出力先ポートに対応する前記出力キューリスト内のキュー番号のキューへパケットを出力し、
前記出力キュー管理部は、パケットを出力したキューの長さを取得し、キュー長が予め定められた複製開始閾値より大きい場合は、前記複製動作管理表の該当キューエントリの複製動作フラグを有効に変更し、一方、前記キュー長が予め定められた複製終了閾値より小さい場合は、該フラグを無効に変更し、
前記出力キューリストは、前記複数のキューからキューを選択し、対応するポートへパケットを出力する
ようにしたパケット中継装置が提供される。
【0008】
本発明の第2の解決手段によると、
パケットの転送処理を司る前記パケット転送処理部と、
複数のキューを有し、前記複数のキューのいずれかから適切なキューを選択し、該キューにあるパケットをポートへ出力するための、ポート単位の出力キューリストと、
宛先に対応する出力先ポートと出力先キュー番号を記憶した経路表と
を備え、
前記出力キューリストは、さらに、
出力先キュー番号に対応する複製動作有効フラグを記憶した複製動作管理表と、
パケット出力には用いないダミーキューと、
前記パケット転送処理部から受け取ったパケットを前記複数のキュー及びダミーキューの内のいずれかへ出力するための出力キュー管理部と
を有し、

前記パケット転送処理部は、受信パケットの宛先を前記経路表の宛先と照合し、マッチするエントリの出力先ポートからパケットの前記出力キューリストを決め、マッチするエントリの出力キュー番号のキューへパケットを出力するよう前記出力キューリストへ指示し、
前記指示を受けた前記出力先キューリストの前記出力キュー管理部は、出力先キュー番号を、前記複製動作管理表と照合し、マッチするエントリの複製動作有効フラグが無効ならば前記出力キュー管理部は前記決められた出力先ポートの出力先キュー番号のキューへだけパケットを出力し、有効の場合は、出力先の前記キューに加えて、前記決められた出力先ポートの出力キューリスト内にある前記ダミーキューにもパケットを出力し、
前記出力キュー管理部は、パケットを出力したキューの長さを取得し、キュー長が予め定められた複製開始閾値より大きい場合は、前記複製動作管理表の該当キューエントリの複製動作有効フラグを有効に変更し、一方、前記キュー長が予め定められた複製終了閾値より小さい場合は、該フラグの値を無効に変更し、
前記出力キューリストは、前記複数のキューからキューを選択し、対応するポートへパケットを出力する
ようにしたパケット中継装置が提供される。
【発明の効果】
【0009】
本発明によると、バーストトラフィック等のトラフィックによるパケットロスを監視及び/又は防止するためのパケット中継装置を提供することができる。
本発明は、1台のパケット中継装置に閉じた技術であるため、従来技術に比べて、網内への導入が容易である。また実際にキューから溢れたもしくは溢れかかったパケットだけをミラーリングするため、単純なミラーリングに比べて、解析対象となるトラフィック量が少ない。またミラーリングされたパケットとキュー溢れの関連性も自明である。
【図面の簡単な説明】
【0010】
【図1】ミラーリング動作管理表の更新手順についてのフローチャート。
【図2】実施の形態1におけるパケット中継装置のハードウェア構造を示す図。
【図3】図2の装置のソフトウェア構造を示す図。
【図4】図3の経路表とミラーリング動作管理表を示す図。
【図5】図2の装置のパケット中継動作手順についてのフローチャート。
【図6】実施の形態8におけるパケット中継装置の構成図。
【図7】図6の装置のパケット中継動作手順についてのフローチャート。
【図8】キューイング状態管理表の更新手順についてのフローチャート。
【図9】実施の形態4におけるパケット中継装置とキュー長監視サーバの構成図。
【図10】実施の形態5におけるミラーリング動作管理表を示す図。
【図11】実施の形態2におけるフィルタリングデータベースを示す図。
【図12】実施の形態3におけるミラーリング動作管理表を示す図。
【図13】キューイング管理表を示す図
【発明を実施するための形態】
【0011】
1.パケット中継装置(1)
1−1.実施の形態1
図2に、実施の形態1のパケット中継装置100の物理構成図を示す。
パケット中継装置100は、パケット中継プログラム110と、ポート104、105、106、とを備える。パケット中継プログラム110は、CPU101、メモリ102、共有メモリ103を有する。パケット中継装置100は、ポート104、105、106から来たパケットを共有メモリ103に格納し、CPU101やメモリ102の上で動くパケット中継プログラム110により同メモリ上のパケットを処理し、適切なポートへ出力する装置である。
図3(A)は、パケット中継プログラム110の論理構成を示す図である。図3(B)は、出力キューリストの構成図である。
パケット中継プログラム110は、パケット転送処理を司るパケット転送処理部120、経路表130、ミラーリング動作管理表140(複製動作管理表)、ポートへパケットを出力するためのポート単位の出力キューリスト151、同出力キューリストの制御を行う出力キュー管理部150を備える。出力キューリスト151内には複数のキュー155、156、157がある。そして出力キューリスト151に対応するポート104が、出力キューリスト151内のセレクタ154を通して、キューの中から適切なキューを選択し、該当キューにあるパケットを出力するようになっている。セレクタ154のキューの選択基準には、キュー番号の大きい順やラウンドロビンなど多数あるが、本発明の規定の対象外であり、適宜採用することができる。
パケット転送処理部120には、転送先を決めるための経路表130とミラーリング要否を決めるためのミラーリング動作管理表140が付与されている。
図4(A)及び(B)に、経路表130とミラーリング動作管理表140の構造をそれぞれ示す。
経路表130は、宛先131に対応する出力先ポート132と出力先キュー番号133を管理するための表である。ミラーリング動作管理表140は、出力先ポート141と出力先キュー番号142に対応する、ミラーリング先ポート143とミラーリング動作有効フラグ144を管理するための表である。
【0012】
つぎに、パケット中継装置100の動作について説明する。
図5は、パケット転送処理プログラム110のパケット中継動作を示すフローチャートである。
パケット転送処理部120は、ポートからパケットが到着すると、同パケットをポートから刈り取る(”take out”, “pick out”, “fetch”, “retrieve”など)(ステップ210)。そして、パケット転送処理部120は、同パケットの宛先を経路表130の宛先(Destination)131と照合し、マッチするエントリの出力先ポート(Outgoing Interface)132と出力先キュー番号(Outgoing Queue)133を、パケットの出力先ポートと出力キューとする(ステップ220)。更に、パケット転送処理部120は、ステップ220で決まったパケットの出力先ポート132と出力先キュー番号133をミラーリング動作管理表140と照合し、出力先ポート(Outgoing Interface)141と出力先キュー番号(Outgoing Queue)142とマッチするエントリのミラーリング動作有効フラグ(ON/OFF)144の値がONならば、同エントリのミラーリング先(Mirroring Destination)ポート及びキュー番号143へのミラーリング(複製)を実施することとする(ステップ230、240)。
パケット転送処理部120は、求めた結果を出力キュー管理部150に与え、対応するキューでのパケット出力を指示する。出力キュー管理部150は、以上の手順で算出したポートに対応する出力キューリスト内のキューへパケットをコピーする(ステップ250、260)。すなわち、ステップ240でミラーリング動作有効フラグ144の値がOFFと判断された場合、ステップ220で求めた出力先ポートと出力先キュー番号にパケットを出力する(ステップ250)。一方、ステップ240でミラーリング動作有効フラグ144の値がONと判断された場合、ステップ220で求めた出力先ポートと出力先キュー番号にパケットを出力するとともに、ステップ230で求めたミラーリング先ポート及びキュー番号にコピー(ミラーリング)したパケットを出力する(ステップ260)。さらに、出力キュー管理部150は、後述の要領でミラーリング動作管理表140を更新する(ステップ270)。出力キューリスト151,152、153は、セレクタ154で適当なキューを選択し、対応するポート104、105、106は、そのキューからパケットを刈り取ることで、実際にパケットを出力する(ステップ280、290)。
【0013】
図1に、ミラーリング動作管理表の更新手順についてのフローチャートを示す。図1で、ステップ270のミラーリング動作管理表140の更新手順を説明する。
出力キュー管理部150は、ステップ250、260にてパケットを出力キューリスト内のキューへコピーした後、該当キューの長さを確認し取得する(ステップ272)。キューの長さの数え方としては、例えば、キューに詰まれたパケットの個数を数える方法や、キューで消費されたバッファのバイト数を数える方法などがあるが、他の数え方でも本発明は実施可能である。
そして、出力キュー管理部150は、ミラーリング要否判定のため、その長さをミラーリング開始閾値とミラーリング終了閾値と比較する(ステップ273)。ミラーリング開始閾値とミラーリング終了閾値は、例えば、出力キュー管理部150の内部のメモリ又は外部のメモリに、予め記憶しておき、出力キュー管理部150は、その値を参照するように構成することができる。なお、ミラーリング開始閾値は、ミラーリング終了閾値よりも、大きな値を取ることが望ましい。これは、キュー長が閾値で不安定な場合に、ミラーリング動作が不安定になることを防ぐためである。
キュー長がミラーリング開始閾値より大きい場合は、出力キュー管理部150は、ミラーリング動作管理表140の該当キューエントリのミラーリング動作フラグ144の値をONに変更する(ステップ275)。キュー長がミラーリング終了閾値より小さい場合は、出力キュー管理部150は、逆に同フラグの値をOFFに変更する(ステップ274)。ステップ273でその他(キュー長がミラーリング開始閾値以下かつミラーリング終了閾値以上の場合)の場合は、出力キュー管理部150は、ミラーリング動作管理表140を変更せずに、ステップ276に進む。
以上により、キュー長がミラーリング開始閾値より越えた後からキュー長がミラーリング終了閾値よりも低くなるまでの間、該当キューへ出力されるパケットだけがミラーリングされるようになる。こうしたミラーリングを活用したトラフィック解析では、例えば、外部のトラフィック解析装置がキューから溢れそうになったパケットだけを分析すればよくなるため、バーストトラフィックの監視が容易になる。
本実施の形態はソフトウェアによるパケット中継装置を例に記載しているが、ハードウェアによるパケット中継装置での同等な発明を否定するものではない。
また、本実施の形態は出力キュー管理部150が出力キューの溢れに着目しているが、同様な形で、入力キューやポリサのバッファの溢れにも対応することも可能である。具体的には、パケット中継装置内100内で入力キューやポリサのバッファの使用量を管理する部分が、本実施の形態で紹介した出力キュー管理部150のキュー長監視動作を行えばよい。
【0014】
1−2.実施の形態2
実施の形態2は、実施の形態1において、パケット転送処理部120がミラーリングしたパケットを予め指定されたルールに従ってフィルタリングすることもできる場合の実施の形態である。
本実施の形態におけるパケット中継動作は、実施の形態1のパケット中継動作(図5)に以下の手順を加えたものである。
図11は、実施の形態2におけるフィルタリングデータベースを示す図である。
パケット転送処理部120が、ステップ240とステップ260への間で、出力するパケットの宛先とミラーリング先ポート番号を、図11のフィルタリングデータベース180のDestination欄181とOutgoing Interface欄182とそれぞれ照合する。なお、パケットの宛先(Destination)と出力先ポート(Outgoing Interface)に限らず、パケットヘッダの他のフィールドを用いてもよい。そして、マッチしたエントリのAction欄183の値がPermit(許可)ならば、パケット転送処理部120は、ステップ260へ進み、ミラーリングを行う。一方、Action欄183の値がDeny(拒絶)の場合、又は、マッチしたエントリが存在しない場合は、パケット転送処理部120は、ステップ250へ進み、ミラーリングを行わない。
以上により、実施の形態1の手順でミラーリングした解析対象パケットを、フィルタリングデータベースで絞り込み、更に解析を容易にすることができる。
なお、フィルタリングデータベース180は、図1のようなパケットフィルタの他、過去のセッションのやりとりまで精査するStateful Inspectionやパケットの詳細内容に立ち入って精査するFirewallのようなものであっても、同様にして本実施の形態に適用可能である。
【0015】
1−3.実施の形態3
図12は、実施の形態3におけるミラーリング動作管理表を示す図である。
実施の形態3は、実施の形態1において、パケット中継装置が一定間隔でパケットをミラーリングする機能を有する場合の実施の形態である。ミラーリング動作管理表140が、図12のように、Interval欄148とSkipped Packet欄149を有することが、実施の形態1との違いである。
本実施の形態におけるパケット中継動作は、実施の形態1のパケット中継動作(図5)に以下の手順を加えたものである。
パケット転送部120は、ミラーリングを行う直前(ステップ240とステップ260の間)に、ミラーリング動作管理表140の該当するエントリのSkipped Packet欄149の値を1つインクリメントさせる。その結果、Skipped Packet欄149の値がInterval欄148の値以上になった場合は、パケット転送処理部120は、Skipped Packet欄149の値を0リセットし、ステップ260に進んでミラーリングを行う。逆にSkipped Packet欄149の値がInterval欄149の値未満の場合は、パケット転送処理部120は、ステップ250へ進みミラーリングは行わない。以上により、Interval欄148のパケット数毎に1回だけミラーリング動作するようになる。
上記の機能を有するパケット中継装置における、ミラーリング動作管理表140の更新手順は、実施の形態1のミラーリング動作管理表更新手順(図1)に以下の手順を加えたものである。
ステップ273の判定の結果キュー長が終了閾値未満(ステップ274)以外の場合に、出力キュー管理部150が、ON/OFF欄144に加えて、Interval欄148も更新する。新しいInterval欄148の値は、ステップ272で取得したキュー長やミラーリング開始閾値やミラーリング終了閾値に基づいて計算する。例えば、この計算を、N÷キュー長とミラーリング開始閾値の差(ただし、Nはある定数で、キュー長>ミラーリング開始閾値)とした場合は、キュー長とミラーリング開始閾値の差に反比例してミラーリング頻度を高くすることが出来る。
本計算式を適切に定義することで、キューが溢れる直前だけ細かくミラーリングしたり、キューの長さに比例して細かくミラーリングを行ったりすることができるようになる。
【0016】
1−4.実施の形態4
図9に、実施の形態4におけるパケット中継装置とキュー長監視サーバを示す図を示す。
実施の形態4は、図9のように、外付けのキュー長監視サーバ107とパケット中継装置を組み合わせた形での実施の形態である。キュー長監視サーバ107は、実施の形態1の出力キュー管理部150から出力キュー長監視機能とミラーリング開始指示を出す機能を外付けのサーバに分離したものである。
キュー長監視サーバ107は、出力キュー管理部150へ定期的にパケット中継装置の各出力キュー長を問合せ、図1と同じ要領でキュー長がある閾値に達したことを検知すると、パケット中継装置へミラーリング動作管理表140の更新を命令する。
また、キュー長監視サーバ107は、出力キューリスト151〜153内の各キューのキュー長を監視し、キュー長に基づいてパケットをミラーリング対象とするか否かを指示するようにしてもよい。
以上の形でキュー長管理サーバ107を導入することにより、キュー長監視機能とミラーリング機能が連動しないパケット中継装置でも、実施の形態1と等価な効果を得ることが出来る。
【0017】
1−5.実施の形態5
実施の形態5は、実施の形態1にて、ミラーリング動作の判定基準をより細かくした応用形態である。
図10は、実施の形態5におけるミラーリング動作管理表を示す図である。
実施の形態5では、実施の形態1にて、ミラーリング動作管理表140を図10のような形に変更している。実施の形態1ではミラーリング開始閾値や終了閾値は装置全体で共用する値であったが、本実施の形態では、キュー毎に異なる値(欄145、146)を取れるようになっている。なお、Last Update欄147は本実施の形態では使用しないため、この欄を省いた形で実施しても構わない。
実施の形態5でも、実施の形態1と同様な形で、パケット転送部120及び出力キュー管理部150は、このミラーリング動作管理表140を用いることによりパケット中継動作(図5のステップ230〜270等)やミラーリング状態管理表の更新(図1のステップ273〜275等)を行う。そのため、ミラーリング開始や終了を判定する際に参照する閾値が固定値ではなく、欄145、146の値になっている。
溢れやすいキューについて予め閾値を低めに設定しておくことで、溢れやすいキューをより厳しく監視することができるようになる。
【0018】
1−6.実施の形態6
実施の形態6は、実施の形態1のパケット中継手順ステップ280にて、出力キューリスト151内の出力セレクタ154がパケット出力のためにキューを選択するスケジューリングアルゴリズムの特性上、任意の2つのキュー間でどちらのキューからパケットが出やすいかを一意に定められる場合の実施の形態である。
本実施の形態でのミラーリング動作管理表140の手順は、図1に下記の変更を加えたものである。
出力キュー管理部150は、ステップ275にて、ある出力キューのON/OFF欄144をONにしてミラーリングを開始した後で、そのキューよりも出力されにくい他のキューについても、ON/OFF欄144もONにしてミラーリングを開始する。出力キュー管理部150は、出力されにくいか否かを例えば、キュー番号の値の大小(Priority Queueing)やキュー毎のスケジューリング優先度を示す重みの大小(Weighted Fair Queueing)やキュー長の大小(Queue−Length−based Queueing)などから、一意に定めることができる。
出力キュー管理部150は、ステップ274にて、ある出力キューのON/OFF欄144をOFFにしてミラーリングを終了した後で、そのキューよりも出力されにくいキューについてもステップ272、273、274、275を実施し、ON/OFF欄144を更新する。その結ON/OFF欄144がONのままのキューが1つでも残った場合は、そのキューよりも出力されにくいキューについて、ON/OFF欄144の値をONに設定する。
このように、出力キューリストのスケジューリングを考慮して閾値を変更することにより、キュー溢れの兆候をより早く検出することが可能となる。
【0019】
1−7.実施の形態7
実施の形態7は、実施の形態5にて、過去のキュー溢れの履歴を考慮した応用形態である。
実施の形態7では、実施の形態5のミラーリング動作管理表140(図10)のLast Update欄147にて、最後にミラーリングを開始したり終了したりした時刻を管理できるようにしている。
実施の形態7でのパケット中継動作やミラーリング動作管理表の更新手順は、実施の形態5の手順に下記の変更を加えたものである。
例えば、出力キュー管理部150は、ステップ275で新たにミラーリングを開始するたびに、欄145、146の閾値を低く変更すると同時に、Last Update欄147にミラーリング開始時間を記載する。同様に、ステップ274で新たにミラーリングを終了するたびに、Last Update欄にミラーリング終了時間を記載する。
出力キュー管理部150は、定期的にミラーリング動作管理表140の全エントリのLast Update欄147の内容をチェックし、一定時間ミラーリング開始状態になっていないエントリについて、欄145、146の閾値を高く変更する。
以上により、キューの溢れやすさに応じた監視を自動的に行うことが可能となる。
【0020】
2.パケット中継装置(2)
2−1.実施の形態8
図6に、実施の形態8におけるパケット中継装置の構成図を示す。
実施の形態8は、図2と同じ物理構成のパケット中継装置100で、図6の論理構成をとる場合の実施の形態である。 図6(A)は、パケット中継プログラム110の論理構成を示す図である。図6(B)は、出力キューリストの構成図である。以下図6に示したパケット中継装置プログラム110について説明する。
この実施の形態では、図2とは異なり、パケット転送処理部120にミラーリング動作管理表140や出力キュー管理部150がない代わりに、ポート毎の出力キューリスト171内にキューイング状態管理表160(複製動作管理表)やキューイング部174(出力キュー管理部)がある。
【0021】
図13は、キューイング管理表を示す図である。
出力キューリスト171内のキューイング状態管理表160は、出力先キュー番号(Outgoing Queue)161に対応するコピー動作有効フラグ(Copy ON/OFF)162を管理するための表である。
経路表130の構成は、図4(A)に示したものと同様である。
出力キューリスト171の中には、図2と同様な出力キュー176、177の他に、パケット出力には用いないダミーキュー175が存在する。また、出力キューリスト171には、パケット転送処理部120から受け取ったパケットを、しかるべきキュー(175や176や177)へ積むためのキューイング部174と、ダミーキュー以外のキュー(176や177)からポートにパケットを出すための出力セレクタ178が存在する。
【0022】
つぎに、パケット中継装置100の動作について説明する。
図7は、図6のパケット中継装置のパケット中継動作を示すフローチャートである。
パケット転送処理部120は、ポートからパケットが到着すると、同パケットをポートから刈り取る(ステップ310)。そして、パケット転送処理部120は、同パケットの宛先を経路表130の宛先(Destination)131と照合し、マッチするエントリの出力先ポート(Outogoing Interface)132からパケットのポートに対応する出力キューリストを決め、マッチするエントリのキュー番号(Outgoing Queue)133へパケットを出すよう同出力キューリストへ指令を出す(ステップ320)。
本指令を受けた出力先キューリストのキューイング部174は、ステップ320で決まったパケットの出力先キュー番号133を、出力キュー状態管理表160と照合し、出力先キュー番号(Outgoing Queue)161とマッチするエントリのコピー動作有効フラグ(Copy ON/OFF)162の値を確認する。この値がOFFならばキューイング部174はステップ320で決まった出力先ポートの出力先キューへだけパケットをコピーして出力するが(ステップ350)、ONの場合は、加えて、ステップ320で決まった出力先ポートの出力キューリスト内にあるダミーキュー175にもパケットを出力する(ステップ360)。
キューイング部174は、更に後述の要領でキューイング状態管理表160を更新する(ステップ370)。出力キューリスト171、172、173は、出力セレクタ178で適当なキューを選び、対応するポート104、105、106は、そのキューにあるパケットを刈り取り、実際にパケットを出力する(ステップ380、390)。
【0023】
図8に、キューイング状態管理表の更新手順についてのフローチャートを示す。図8で、ステップ370のキューイング状態管理表160の更新手順を説明する。
キューイング部174は、パケットを出力キューリスト内のキュー(176や177)へ出力又はコピーした後、該当キューの長さを確認する(ステップ372)。そしてミラーリング要否判定のため、その長さをミラーリング開始閾値とミラーリング終了閾値と比較する(ステップ373)。ミラーリング開始閾値とミラーリング終了閾値は、例えば、キューイング部174の内部のメモリ又は外部のメモリに、予め記憶しておき、キューイング部174は、その値を参照するように構成することができる。なお、実施の形態1と同様に、ミラーリング開始閾値は、ミラーリング終了閾値よりも、大きな値を取ることが望ましい。
キュー長がミラーリング開始閾値より大きい場合は、キューイング部174は、キューイング状態管理表160の該当キューエントリのコピー動作フラグ162の値をONに変更する(ステップ375)。キュー長がミラーリング終了閾値より小さい場合は、キューイング部174は、逆に同フラグの値をOFFに変更する(ステップ374)。ステップ273でその他(キュー長がミラーリング開始閾値以下かつミラーリング終了閾値以上の場合)の場合は、キューイング部174は、キューイング状態管理表160を変更せずに、ステップ276に進む。
以上により、キュー長がミラーリング開始閾値より越えた後からキュー長がミラーリング終了閾値よりも低くなるまでの間、該当キューへ出力されるパケットがダミーキューにもコピーされるようになる。これにより、実施の形態1とは異なり、例えば、外部サーバを一切用いずに、パケット転送装置単体でキューから溢れそうになったパケットを採取することができる。
本実施の形態はソフトウェアによるパケット中継装置を例に記載しているが、ハードウェアによるパケット中継装置での同等な発明を否定するものではない。
また、本実施の形態は出力キュー管理部150が出力キューの溢れに着目しているが、同様な形で、入力キューやポリサのバッファの溢れにも対応することも可能である。具体的には、パケット中継装置内100内で入力キューやポリサのバッファの使用量を管理する部分が、本実施の形態で紹介した出力キュー管理部150のキュー長監視動作を行えばよい。
【0024】
2−9.実施の形態9
なお、実施の形態2や3や5や6や7に書いたような応用事例については、本実施の形態についても同様に実現可能である。
ここで、実施の形態2及び3においては、「1.パケット中継装置(1)」における図5のステップ240及び260等が、「2.パケット中継装置(2)」における図7のステップ340及び360等に、それぞれ対応するので、そのように説明を読み替えればよい。
また、実施の形態5〜7に「1.パケット中継装置(1)」における図5のステップ230〜270、図1のステップ273〜275等が、「2.パケット中継装置(2)」における図7のステップ330〜370、図5のステップ373〜375等に、それぞれ対応するので、そのように説明を読み替えればよい。また、「1.パケット中継装置(1)」における出力キュー管理部150、ミラーリング動作管理表140が、「2.パケット中継装置(2)」におけるキューイング部174、キューイング状態管理表160にそれぞれ対応させて説明を読み替えるようにしてもよい。
また実施の形態4のように、本実施の形態を外部サーバと連動させることにより、実現させることも可能である。
【0025】
その他、ステップ360でキューイング部174がダミーキューへパケットをコピーする際、パケット全体をコピーするのではなく、パケットのヘッダ部のみをコピーすることで、ダミーキュー消費を節約しつつ、キュー溢れの原因となったフローの情報をより多く採取できるようになる。
また、ステップ360でキューイング部174がダミーキューへパケットをコピーする際、実際に入出力されるパケットだけでなく、装置内での転送状況を示す情報(例えば、通ったキュー番号やキュー長や入出力ポート番号など)も付与することにより、外部のトラフィック解析装置でパケットの内容を解析するだけでは判断できない詳細な情報をパケットと一緒に採取することができる。これにより、キュー溢れの原因を更に突き止めやすくすることが可能となる。
【符号の説明】
【0026】
100 パケット中継装置
101 CPU
102 メモリ
103 共有メモリ
104 ポート
107 キュー長監視サーバ
120 パケット中継処理部
130 経路表
140 ミラーリング動作管理表
150 出力キュー管理部
151 出力キューリスト
160 キューイング状態管理表
171 出力キューリスト
174 キューイング部
175 ダミーキュー
178 出力セレクタ
180 フィルタリングデータベース

【特許請求の範囲】
【請求項1】
パケットの転送処理を司るパケット転送処理部と、
複数のキューを有し、前記複数のキューのいずれかからキューを選択し、該キューにあるパケットをポートへ出力するための、ポート単位の出力キューリストと、
出力キューリストの制御を行う出力キュー管理部と、
宛先に対応する出力先ポートと出力先キュー番号を記憶した経路表と、
出力先ポートと出力先キュー番号に対応する、複製先ポートと複製動作有効フラグを記憶した複製動作管理表と
を備え、

前記パケット転送処理部は、受信パケットの宛先を前記経路表の宛先と照合し、マッチするエントリの出力先ポートと出力先キュー番号を、パケットの出力先ポートと出力先キュー番号として求め、
前記パケット転送処理部は、求められた出力先ポートと出力先キュー番号を前記複製動作管理表と照合し、
マッチするエントリの複製動作有効フラグが有効ならば、前記パケット転送処理部は、前記出力キュー管理部に該エントリの複製先ポートへの複製を指示し、前記指示を受けた前記出力キュー管理部は、出力先ポートに対応する前記出力キューリスト内のキュー番号のキューへパケットを出力し、且つ、複製先ポートに対応する前記出力キューリスト内のキュー番号のキューへパケットをコピーして出力し、
マッチするエントリの複製動作有効フラグが無効ならば、前記パケット転送処理部は、前記出力キュー管理部にパケットの出力を指示し、前記指示を受けた前記出力キュー管理部は、出力先ポートに対応する前記出力キューリスト内のキュー番号のキューへパケットを出力し、
前記出力キュー管理部は、パケットを出力したキューの長さを取得し、キュー長が予め定められた複製開始閾値より大きい場合は、前記複製動作管理表の該当キューエントリの複製動作フラグを有効に変更し、一方、前記キュー長が予め定められた複製終了閾値より小さい場合は、該フラグを無効に変更し、
前記出力キューリストは、前記複数のキューからキューを選択し、対応するポートへパケットを出力する
ようにしたパケット中継装置。

【請求項2】
パケットの転送処理を司る前記パケット転送処理部と、
複数のキューを有し、前記複数のキューのいずれかから適切なキューを選択し、該キューにあるパケットをポートへ出力するための、ポート単位の出力キューリストと、
宛先に対応する出力先ポートと出力先キュー番号を記憶した経路表と
を備え、
前記出力キューリストは、さらに、
出力先キュー番号に対応する複製動作有効フラグを記憶した複製動作管理表と、
パケット出力には用いないダミーキューと、
前記パケット転送処理部から受け取ったパケットを前記複数のキュー及びダミーキューの内のいずれかへ出力するための出力キュー管理部と
を有し、

前記パケット転送処理部は、受信パケットの宛先を前記経路表の宛先と照合し、マッチするエントリの出力先ポートからパケットの前記出力キューリストを決め、マッチするエントリの出力キュー番号のキューへパケットを出力するよう前記出力キューリストへ指示し、
前記指示を受けた前記出力先キューリストの前記出力キュー管理部は、出力先キュー番号を、前記複製動作管理表と照合し、マッチするエントリの複製動作有効フラグが無効ならば前記出力キュー管理部は前記決められた出力先ポートの出力先キュー番号のキューへだけパケットを出力し、有効の場合は、出力先の前記キューに加えて、前記決められた出力先ポートの出力キューリスト内にある前記ダミーキューにもパケットを出力し、
前記出力キュー管理部は、パケットを出力したキューの長さを取得し、キュー長が予め定められた複製開始閾値より大きい場合は、前記複製動作管理表の該当キューエントリの複製動作有効フラグを有効に変更し、一方、前記キュー長が予め定められた複製終了閾値より小さい場合は、該フラグの値を無効に変更し、
前記出力キューリストは、前記複数のキューからキューを選択し、対応するポートへパケットを出力する
ようにしたパケット中継装置。

【請求項3】
請求項1又は2に記載のパケット中継装置において、
パケットのヘッダの内容に対応して、許可又は拒絶のアクションを記憶したフィルタリングデータベースをさらに備え、
前記パケット転送処理部は、
複製動作有効フラグが有効で複製を行う前に、
パケットのヘッダの内容を、フィルタリングデータベースに記憶された条件と照合して、マッチしたエントリのアクションが許可の場合複製を行い、アクションが拒絶の場合又はマッチしたエントリが存在しない場合は複製を行わないことを特徴とするパケット中継装置。

【請求項4】
請求項1又は2に記載のパケット中継装置において、
前記複製動作管理表が、各エントリに対してさらに、インターバルとスキップパケットの各情報を有し、
前記パケット転送部は、複製動作有効フラグが有効で複製を行う前に、前記複製動作管理表の該当するエントリのスキップパケットの値をインクリメントさせ、スキップパケットの値がインターバルの値以上になった場合は複製を行い、逆にスキップパケットの値がインターバルの値未満の場合は複製を行わず、
前記出力キュー管理部は、前記複製動作管理表の更新のとき、該当するキューのキュー長が終了閾値未満以外の場合に、複製動作有効フラグの更新に加えて、インターバルも更新することを特徴とするパケット中継装置。

【請求項5】
請求項1又は2に記載のパケット中継装置において、
前記出力キューリストの各キューのキュー長を監視する機能と、複製を指示する機能とを有する外部サーバをさらに備え、
前記外部サーバは、複数の前記出力キューリスト内の各キューのキュー長を監視し、該キュー長に基づいてパケットを複製対象とするか否かを指示することを特徴とするパケット中継装置。

【請求項6】
前記出力キューリストの各キューのキュー長を監視する機能と、複製を指示する機能とを有する外部サーバをさらに備え、
前記外部サーバは、出力キュー管理部へ複数の前記出力キューリスト内の各出力キューのキュー長を定期的に問合せ、キュー長が予め定められた閾値に達したことを検知すると、パケット中継装置へ前記複製動作管理表の更新を命令することを特徴とするパケット中継装置。

【請求項7】
請求項1又は2に記載のパケット中継装置において、
前記複製動作管理表は、各エントリにさらに、複製開始閾値及び/又は複製終了閾値、を含み
前記出力キュー管理部は、複製開始や終了を判定する際に、該当する複製開始閾値及び/又は複製終了閾値を用いることを特徴とするパケット中継装置。

【請求項8】
請求項1又は2に記載のパケット中継装置において、
出力キューリスト内の出力セレクタがパケット出力のためにキューを選択するスケジューリングアルゴリズムの特性上、任意の2キュー間でどちらのキューからパケットが出やすいかを一意に定められる場合に、
前記出力キュー管理部は、ある出力キューの複製動作有効フラグを有効にして複製を開始した後で、スケジューリングアルゴリズムの特性上そのキューよりも出力されにくい他のキューについても、複製動作有効フラグも有効にして複製を開始することを特徴とするパケット中継装置。

【請求項9】
請求項1又は2に記載のパケット中継装置において、
前記複製動作管理表は、各エントリに対して、最後に複製を開始又は終了した時刻を表すアップデート情報をさらに含み、
前記出力キュー管理部は、複製を開始するたびに、アップデート情報に複製開始時間を記憶し、
前記出力キュー管理部は、定期的に前記複製動作管理表のアップデート情報の内容をチェックし、一定時間複製開始状態になっていないエントリについて、複製開始閾値又は複製終了閾値を高く変更することを特徴とするパケット中継装置。

【請求項10】
請求項2のパケット中継装置において、
前記出力キューリストは、前記ダミーキューへパケットのヘッダ部のみをコピーすることを特徴とするパケット中継装置。

【請求項11】
請求項2のパケット中継装置において、
前記出力キューリストは、前記ダミーキューへパケットをコピーする際、パケットが通ったキュー番号、キュー長、入出力ポート番号のうちいずれかひとつ又は複数を含むパケットには記述されない装置内の転送に関連した情報も付与することを特徴とするパケット中継装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2011−142535(P2011−142535A)
【公開日】平成23年7月21日(2011.7.21)
【国際特許分類】
【出願番号】特願2010−2597(P2010−2597)
【出願日】平成22年1月8日(2010.1.8)
【出願人】(504411166)アラクサラネットワークス株式会社 (315)
【Fターム(参考)】