(57)【特許請求の範囲】
【請求項１】
それぞれ複数のポートを有する複数のパケット中継装置と接続する管理サーバであって、
前記複数のパケット中継装置の前記複数のポートの接続関係情報を記憶するトポロジー情報記憶部と、
前記複数のパケット中継装置からトラフィックフローを特定するフロー情報と入力ポートを示す入力ポート情報とを受信するフロー情報受信部と、
前記フロー情報受信部で受信した入力ポート情報とフロー情報とトポロジー情報記憶部に記憶されたポートの接続関係情報とにより、トラフィックフローの起点を検索するフロー起点検索部とを有し、
前記フロー起点検索部は、前記フロー情報受信部で第１のパケット中継装置から受信した第１のフロー情報に対応する第１の入力ポート情報と一致するポートを前記接続関係情報から検索して、当該ポートの接続先である第２のパケット中継装置から受信した前記第１のフロー情報に対応する第２の入力ポート情報と一致するポートを前記接続関係情報から検索する。
【請求項２】
請求項１記載の管理サーバであって、
前記フロー起点検索部は、前記第２の入力ポート情報と一致するポートの接続先が、前記管理サーバと接続していないとき、前記第２のパケット中継装置をトラフィックフローの起点と判断する。
【請求項３】
請求項１記載の管理サーバであって、
前記フロー起点検索部で検索した起点に対し、前記フロー情報受信部で受信したフロー情報に対応するトラフィックの制御を指令する制御指令部を有する。
【請求項４】
それぞれ複数のポートを有する複数のパケット中継装置と接続する管理サーバであって、
前記複数のパケット中継装置の前記複数のポートの接続関係情報を記憶するトポロジー情報記憶部と、
前記複数のパケット中継装置からトラフィックフローを特定するフロー情報と出力ポートを示す出力ポート情報とを受信するフロー情報受信部と、
前記フロー情報受信部で受信した出力ポート情報とフロー情報とトポロジー情報記憶部に記憶されたポートの接続関係情報とにより、トラフィックフローの終点を検索するフロー終点検索部とを有し、
前記フロー終点検索部は、前記フロー情報受信部で第１のパケット中継装置から受信した第１のフロー情報に対応する第１の出力ポート情報と一致するポートを前記接続関係情報から検索して、当該ポートの接続先である第２のパケット中継装置から受信した前記第１のフロー情報に対応する第２の出力ポート情報と一致するポートを前記接続関係情報から検索する。
【請求項５】
請求項４記載の管理サーバであって、
前記フロー終点検索部は、前記第２の出力ポート情報と一致するポートの接続先が、前記管理サーバと接続していないとき、前記第２のパケット中継装置をトラフィックフローの終点と判断する。
【請求項６】
請求項５記載の管理サーバであって、
前記フロー終点検索部で前記第１のフロー情報に対応する第２の出力ポート情報が検索できなかったとき、前記第１のパケット中継装置に前記第１のフロー情報に対応するトラフィックの制御を指令する制御指令部を有する。
【請求項７】
それぞれ複数のポートを有する複数のパケット中継装置と接続する管理サーバであって、
前記複数のパケット中継装置の前記複数のポートの接続関係情報を記憶するトポロジー情報記憶部と、
前記複数のパケット中継装置からトラフィックフローを特定するフロー情報と入力ポート又は出力ポートを示す入出力ポート情報とを受信するフロー情報受信部と、
前記フロー情報受信部で受信したフロー情報及び入出力ポート情報とトポロジー情報記憶部に記憶されたポートの接続関係情報とにより、フロー情報毎に３以上のパケット中継装置をつなぐフローを表示するフロー表示部と、
前記フロー情報受信部で受信した入力ポート情報とフロー情報とトポロジー情報記憶部
に記憶されたポートの接続関係情報とにより、トラフィックフローの起点を検索するフロー起点検索部と、
前記フロー情報受信部で受信した出力ポート情報とフロー情報とトポロジー情報記憶部に記憶されたポートの接続関係情報とにより、トラフィックフローの終点を検索するフロー終点検索部とを有し、
前記フロー起点検索部は、前記フロー情報受信部で第１のパケット中継装置から受信した第１のフロー情報に対応する第１の入力ポート情報と一致するポートを前記接続関係情報から検索して、当該ポートの接続先である第２のパケット中継装置から受信した前記第１のフロー情報に対応する第２の入力ポート情報と一致するポートを前記接続関係情報から検索し、
前記フロー終点検索部は、前記フロー情報受信部で第３のパケット中継装置から受信した第３のフロー情報に対応する第３の出力ポート情報と一致するポートを前記接続関係情報から検索して、当該ポートの接続先である第４のパケット中継装置から受信した前記第３のフロー情報に対応する第４の出力ポート情報と一致するポートを前記接続関係情報から検索し、
前記フロー表示部は、前記フロー起点検索部で検索した起点と、前記フロー終点部で検索した終点とをフロー毎に表示する。
【請求項８】
請求項７記載の管理サーバであって、
前記フロー表示部は、前記トポロジー情報記憶部に基づいて前記３以上のパケット中継
装置を線分で接続したトポロジー図を表示し、当該トポロジー図の線分に対応して前記フロー情報受信部で受信したフロー情報と入出力ポート情報とに基づいたフローを表示する。
【請求項９】
請求項７記載の管理サーバであって、さらに、
前記フロー情報受信部で受信した情報に基づいて、フローを制御するフロー制御部を有し、
前記フロー表示部は、前記フロー制御部による制御の内容をフロー毎に表示する。
【請求項１０】
それぞれ複数のポートを有する複数のパケット中継装置と接続する管理サーバであって、
前記複数のパケット中継装置の前記複数のポートの接続関係情報を記憶するトポロジー情報記憶部と、
前記複数のパケット中継装置からトラフィックフローを特定するフロー情報と入力ポートを示す入力ポート情報とを受信するフロー情報受信部と、
前記フロー情報受信部で第１のパケット中継装置から受信した第１のフロー情報に対応する第１の入力ポート情報と一致する第２のポートを前記接続関係情報から検索して、当該第２のポートの接続先である第２のパケット中継装置から受信した前記第１のフロー情報に対応する第３の入力ポート情報と一致する第４のポートを前記接続関係情報から検索し、当該第４のポートの接続先である第３のパケット中継装置から受信した前記第１のフロー情報に対応する第５の入力ポート情報と一致する第６のポートを前記接続関係情報から検索し、当該第６のポートの接続先が前記第１又は第２のパケット中継装置であったとき、ループが形成されていると判断するループ検出部とを有する。
【発明の詳細な説明】
【技術分野】
【０００１】
技術分野は、インターネットにおける通信制御技術に関し、特にネットワーク制御技術に関する。
【背景技術】
【０００２】
インターネットが社会インフラとして定着しつつある今日、ウィルスやワームや悪意を持ったユーザからインターネット上のサーバへのネットワーク攻撃が深刻化している。
【０００３】
ネットワーク攻撃に対しては、実際の攻撃トラフィックの発生源に近い場所で措置することが望ましい。攻撃トラフィックが複数のサーバに対して送信されることが多いためである。さらに攻撃トラフィックの発生源はその攻撃トラフィックの実際のフロー情報に基づいて判断する必要がある。送信元IPアドレスなどIPヘッダ情報は詐称されることも多く、実際の発生源を特定できないためである。攻撃トラフィックフロー情報の検知は一般に、フロー情報抽出技術（ポートミラー、sFlow、NetFlowなど）とフロー内容分析技術との組合せで実現される（非特許文献1、非特許文献2参照）。
【０００４】
以上の観点を考慮したネットワーク攻撃対策として、2種類の対策がある。1つはAnomaly-based IPS(Intrusion Prevention System)、もう一つはTraffic Engineeringである。
【０００５】
Anomaly-based IPSは、トラフィックの内容の異常さをチェックする技術であり、トラフィックの計測およびトラフィックのフィルタリングができる装置により実現される。ある装置で異常トラフィックを計測によって検出したときに、その装置で該当トラフィックをフィルタすることにより、異常トラフィックがネットワークに流れることを防止する（非特許文献3参照）。なお、計測とフィルタリングとを同一装置で行う実装と別装置で行う実装とがある。
【０００６】
Traffic Engineeringは、トラフィックの流量の異常さをチェックする技術であり、トラフィックの計測およびトラフィックのフロー制御ができる装置により実現される。その装置で異常な流量のトラフィックを計測によって検出したときに、該当トラフィックを流すフローをMPLSなどによって適切に制御することにより、異常トラフィックが正常トラフィックへ影響を与えることを防止する（特許文献1参照）。
【０００７】
【非特許文献１】IETF RFC3176 “InMon Corporation's sFlow: A Method for Monitoring Traffic in Switched and Routed Networks”
【非特許文献２】IETF RFC3954 “Cisco Systems NetFlow Services Export Version 9”
【非特許文献３】”Intrusion Detection and Prevention”, C.Endorf, E.Schulz, J.Mellander C.F.Endorf. McGraw-Hill. 2003/12, ISBN 0072229543
【特許文献１】特開2001-150023号公報「優先度別パス切替方式及び方式」
【発明の開示】
【発明が解決しようとする課題】
【０００８】
従来のトラフィック測定に基づくインターネットからの攻撃対策技術には、例えば3つの課題がある。
【０００９】
1つ目は、同じセキュリティ対策を多数の中継装置で行うことによる、中継装置の計算資源の無駄遣いである。anomaly-based IPSでは或る一つのフローに対して複数の中継装置で異常を検知した場合、全ての中継装置でフィルタリングが行われてしまう。またTraffic Engineeringでは、或る一つのフローを迂回させるために、経路上の全ての中継装置で同じ経路制御ルールを適用する必要がある。また、各中継装置で設定可能な経路制御ルールの数には制限があり、数が足りなくならないよう有効に利用することが求められている。
【００１０】
2つ目は、Traffic Engineeringとanomaly-based IPS等のような複数種類のトラフィック制御を独立に実行することによる、中継装置の計算資源の無駄遣いである。Traffic Engineeringをanomaly-based IPSと独立に実施した場合、Traffic Engineering用のトラフィック計測とは独立に、anomaly-based IPS用のトラフィック計測を行う必要がある。そのため中継装置におけるトラフィック計測処理の負荷量が倍になる。またTraffic Engineeringは、anomaly-based IPSによりフィルタリングされて消滅するはずのトラフィックに対してもパス計算を行う。そのためフィルタリングされるトラフィックに対しても、Traffic Engineering処理を行うことになり無駄である。
【００１１】
3つ目は、不要なトラフィック制御の残存による非効率なパケット中継である。或るフローに対してTraffic Engineeringやanomaly-based IPS等によるトラフィック制御を行った場合、該当フローが流れなくなった後も、これらトラフィック制御（フィルタリングやパス制御）は残ったままである。そのため、トラフィック制御を行う必要がなくなっているにもかかわらず、無駄に継続させてしまう。また、各中継装置で可能なトラフィック制御の数には限りがあり、無駄な継続によって数が不足することを防止することが求められている。
【課題を解決するための手段】
【００１２】
そこで例えば次の手段を提供する。
【００１３】
中継装置で検出した異常トラフィックの情報を、管理サーバで集中制御する。管理サーバには、中継装置のどのポートがどのポートとつながっているかというトポロジー情報、各中継装置に対して指令するインタフェース、指令内容を記憶するフロー制御命令テーブル、トラフィックの内容の異常性を判定するエンジン、トポロジー情報を図示する描画システムの5つを備える。
【００１４】
管理サーバは、受信した情報をフロー単位で管理し、或るフローに起因する情報がどの中継装置のどのポートから入りどのポートから出るかを抽出する。そしてのフローの入出力ポートとトポロジー情報とを組み合わせることにより、フロー全体がどこから入りどこへ出るかを計算する。
【００１５】
計算した、フローについて、そのフローが通過するネットワーク中継装置間を、トポロジー描画システム上で通過順にプロットする。
【００１６】
計算の結果、フローがループしていると判明した場合、管理サーバはフローを構成する任意の１リンクを切断する。またフローがある中継装置から先に中継されないと判明した場合、管理サーバはその中継装置の上流の中継装置に対してそのトラフィックをフィルタリングするよう要請する。なお、STP(Spanning Tree Protocol)等のループ検出プロトコルはトラフィック量が過剰でプロトコルパケットが隣接する中継装置に届かない場合には機能しないが、本手段ではこうした事態を回避することができる。
【００１７】
フローがネットワークの末端から別のネットワークの末端に流れている場合は、トラフィック内容が異常か否かに応じて処理を変える。トラフィック内容が異常な場合は起点のネットワークの中継装置にてそのフローを廃棄するよう要請し、正常な場合は起点のネットワークの中継装置にてそのフローの帯域を絞るよう要請する。
【００１８】
これらの要請の際、フロー制御命令テーブルに、要請した内容とその要請を解除する時間を記録し、その時間になったら、要請していたフロー制御命令を解除するよう再度要請する。
【発明の効果】
【００１９】
例えば上記の手段によれば、ネットワーク管理サーバにおいてフロー情報とトポロジー情報とを組み合わせることにより、フローの起点など効果的な場所でトラフィックを制御できる。
【００２０】
また、複数種類のトラフィック制御を用いても、中継装置の計算資源の負担が少ない。
【００２１】
また、フローをネットワークトポロジー図上にマッピングすることができる。これにより、異常の原因となっているフローをフロー種別や異常原因別等に可視化することができる。
【００２２】
また、フロー情報とトポロジー情報の組合せによりループしているフローを発見できる。
【００２３】
また、フロー情報とトポロジー情報との組合せにより、実際にはどこにも中継されないトラフィックを発見できるため、こうしたトラフィックによる無駄な帯域消費を防ぐ。
【００２４】
また、無駄なトラフィック制御が残存することを防ぐ。
【発明を実施するための最良の形態】
【００２５】
本発明の実施に好適な実施形態の例を説明する。ただし、本発明は本実施形態に限定されない。
【００２６】
図１は、ネットワーク構成例を示す。ネットワークは、フローを監視する機能であるトラフィックモニタを有するパケット中継装置101、102、103とそのトラフィックモニタで取得したモニタ情報（フロー情報）を受信して一括管理し制御する管理サーバ100とを含み、互いに回線で接続されている。パケット中継装置は、例えばルータやスイッチである。なお、トラフィック、フロー、トラフィックフローとは、データパケットの流れのことを言い、フロー情報とはフローを特定できる情報である。例えばフローの送信元および送信先アドレスとフローのプロトコル番号(TCP、UDPなど)とプロトコル詳細情報(TCP/UDPポート情報など)が含まれ、パケットのヘッダ情報からこれらの情報を抽出することにより、パケットがどのフローに起因するものかを求めることが出来る。また、フローとは例えば、ネットワークを介して送信者と受信者の間（2台のLANステーションどうし等）を移動するデータのストリームであり、単一の回線上で複数のフローが伝達されることもある。
【００２７】
図2は、パケット中継装置101の内部構造例を示す。パケット中継装置101は、ネットワークインタフェース309を介して、他のパケット中継装置（102、103）及び管理サーバ100と接続されている。ネットワークインタフェース309は、複数のポートを有する。ネットワークインタフェース309の或るポート（弟１ポート）から入力されたパケットは、フロー制御部308での処理後、パケットバッファ306に格納される。そしてパケットプロセッサ304が経路テーブル305の内容に基づきパケット出力先を決定し、パケットバッファ306に格納されたパケットを、フロー制御部308を介して、ネットワークインタフェース309へ出力する。なお、パケット中継装置102、103も同様な構造である。なお、上述したトラフィックモニタは、フロー制御部308とフロー統計テーブル303とCPU301に相当する。
【００２８】
フロー制御部308では、フロー制御情報テーブル307に基づき入出力パケットのフィルタリングやシェーピングを行い、また通過したフローの入出力ポートやパケットヘッダの情報をメモリ302上のフロー統計テーブル303に格納する。パケット中継装置のCPU301はフロー統計テーブル303にある情報のうち適切な情報をsFlowやNetFlowといったプロトコルを用いて管理サーバ100へ送付する。どのフロー情報を送付対象とするかはフロー制御情報テーブル307により決定されるが、ここでは所定の閾値以上の流量のフローや所定の時間以上流れるフローを送付対象として以下説明する。
【００２９】
図3は、管理サーバ100の内部構造例を示す。管理サーバ100のメモリ120内には、パケット中継装置の隣接関係を記述するトポロジー情報テーブル130と、パケット中継装置から送付されたフロー情報を格納する検出フロー情報テーブル140と、トラフィックの内容の異常性を診断するためのデータベースである異常トラフィックデータベース150と、トポロジー情報を表示するためのトポロジー図計算モジュール151とが格納されている。これらの情報に基づき管理サーバ100は、CPU121でトラフィック制御内容を決定し、ネットワークインタフェース122を介して、その内容をパケット中継装置101、102、103へ通知する。通知に際しては、その通知内容とその通知内容を解除する時間をフロー制御命令テーブル160に記録する。トポロジー図計算モジュール151はCPU121上で動くプログラムで、トポロジー情報テーブル130や検出フロー情報テーブル140の情報からトポロジー図を計算し、計算された図をビデオインタフェース152経由でディスプレイ123に表示する。
【００３０】
図4は、管理サーバ100内のトポロジー情報テーブル130の構造例を示す。トポロジー情報テーブル130は、管理下の各パケット中継装置に関して、装置IPアドレス131と接続ポートリスト132を有する。トポロジー情報テーブル130は構成定義により静的に定義されるか、SNMPなどのプロトコル情報から動的に自動生成される。その生成手法に関しては本発明の対象外である。接続ポートリスト132は、該当するパケット中継装置の各ポートが他のパケット中継装置のどのポートに接続されているかを示す。接続先が「−」となっているエントリは、例えば末端のパケット中継装置や管理下にないパケット中継装置とつながっていることを示す。具体的に、例えば図4では、S1としてパケット中継装置101の装置アドレス「192.168.255.1」が記録され、パケット中継装置101のネットワークインタフェース309のポート2がS3（パケット中継装置103）のネットワークインタフェースのポート5と接続し、パケット中継装置101のネットワークインタフェース309のポート4がS2（パケット中継装置102）のネットワークインタフェースのポート10に接続し、パケット中継装置101のネットワークインタフェース309のポート8が管理サーバ100の管理下にないネットワーク中継装置のポートと接続していることを示している。
【００３１】
図5は、管理サーバ100内の検出フロー情報テーブル140の構造例を示す。検出フロー情報テーブル140は、管理下の各パケット中継装置から報告されたフロー情報を格納するテーブルで、報告元のパケット中継装置を示す装置142とフローを入力したポートの番号を示す入力ポート143とフローを出力したポートの番号を示す出力ポート144と最終更新時間145の組を、フローID141単位に整理している。フローIDの割当に際しては、フローの送信元および送信先アドレスとフローのプロトコル番号(TCP、UDPなど)とプロトコル詳細情報(TCP/UDPポート情報など)を用い、同じフローに同じIDを割り当てる。具体的に、例えば図5では、フローID「＃1」がS1（パケット中継装置101）のネットワークインタフェース309のポート8から入力されてポート4から出力したことが、パケット中継装置101から報告され、2005/01/01 00:00:00:00の更新が最終であることを示している。
【００３２】
図6は、管理サーバ100内のフロー制御命令テーブル160の構造例を示す。フロー制御命令テーブル160は、どのパケット中継装置でどのような制御命令をいつまで行うかを示したテーブルであり、各々の情報がそれぞれ装置フィールド161、制御内容フィールド161、解除時間フィールド162に記録されている。具体的に、例えば図6の1行目のエントリはは、S1（パケット中継装置101）に対して「drop from 3.4.5.6 to 8.9.10.11at port 4 outbound 」の命令を、2005/01/01 00:15:00まで有効にすることを示している。
【００３３】
管理サーバ100は、一定時間間隔に検出フロー情報テーブル140を読み、新規エントリが追加されたか否かをチェックする。具体的には、検出フロー情報テーブル140の各フローエントリの最終更新時間フィールド145が前回のフロー情報テーブルチェックの時間よりも新しければ、そのフロー情報に関する制御が新規に必要と判断する。
【００３４】
管理サーバ100は、一定時間間隔に検出フロー情報テーブル140を読み、新規エントリが追加されたか否かをチェックする。具体的には、検出フロー情報テーブル140の各フローエントリの最終更新時間フィールド145が前回のフロー情報テーブルチェックの時間よりも新しければ、そのフロー情報に関する制御が新規に必要と判断する。
【００３５】
同様に管理サーバ100は、一定時間間隔にフロー制御命令テーブル160を読み、フロー制御命令を解除する必要があるか否かをチェックする。具体的には、フロー制御命令テーブル160の各エントリの解除時間フィールド162が現在時間よりも前ならば、当該エントリの装置フィールド161に対してそのフロー制御を解除するように要請する。
【００３６】
あるフロー情報に関して制御が必要と判断した場合、図7及び図8のフローチャートに示すアルゴリズムに基づき、そのフローの発生源と出力先をそれぞれ探索する。
【００３７】
図7は、管理サーバ100のCPU121がメモリ120の情報を用いて実行するフローの発生源を探索するアルゴリズムの例を示す。
【００３８】
或るパケット中継装置から受信したフロー情報に関してその発生源を調べる場合、まず該当するフロー情報の入力ポートを図5に示した検出フロー情報テーブル140の入力ポート欄143から調べる。そしてその入力ポートの対向接続先（入力元）の装置ポート情報を、図4に示したトポロジー情報テーブル130から検索する（ステップ405）。具体的に図4と図5のデータを用いて説明すると、例えば、図5において、装置S1（パケット中継装置101）について、フローID「＃1」が装置S1のポート8から入力されており、図4の装置S1のポート8の接続先は「−」なので、フローID「＃1」の対向接続先装置ポート情報（入力元）は、「−」であることが分かる。装置S2（パケット中継装置102）について、フローID「＃1」が装置S2のポート10から入力されており、図4の装置S2のポート10の接続先は装置S1のポート4なので、フローID「＃1」の対向接続先装置ポート情報（入力元）は、装置S1のポート4であることが分かる。
【００３９】
もし対向接続先が存在しない場合（ステップ410でNo）の場合には異常終了する（ステップ415）。
【００４０】
対向接続先が存在しても（ステップ410でYes）、装置ポート情報が「−」ならば（ステップ420でYes）、管理下のパケット中継装置以外からそのフローが来ていると判断して、探索を終了する（ステップ425）。装置S1のフローID「＃1」の場合、ここで終了する。
【００４１】
装置ポート情報が「−」でない場合（ステップ420でNo）、最初の探索の場合には、ステップ430がNなので、図5に示した検出フロー情報テーブル140から、同一フローIDでその対向接続先の装置ポートへ出力されるフロー情報を検索する（ステップ440）。具体的に図5のデータを用いて説明すると、装置S2のフロー「＃1」の場合、同一のフローID「＃1」が装置S1のポート8から入力されポート4から出力されていることが分かる。さらに、図4からポート8の接続先ポート（入力元）は「−」なので、装置S1における対向接続先（入力元）は「―」であることが分かる。
【００４２】
同一フローIDでその対向接続先の装置ポートへ出力されるフロー情報があった場合には（ステップ445でYes）、このフローIDの発生源を対向接続先から検索する（ステップ450）。具体的に図5のデータを用いて説明すると、フローID「＃1」について、装置S2における対向接続先（入力元）は装置S1のポート4であり、装置S1におけるフローID「#1」のフローの入力元はポート8であり、装置S1のポート8の対向接続先は「−」であるから、発生源は装置S1のポート8と分かる。
【００４３】
そして、続いて他のフロー情報に関して同様な探索処理を繰り返す。図5のデータでは、フローID「＃2」について実施する。
【００４４】
なお、装置ポート情報が「−」でなくとも（ステップ420でNo）、探索処理の繰返しの結果、過去に通過したパケット装置を再度通過したことが判明した場合は（ステップ430でY）、そのフローはループを構成していると判断して探索を終了する（ステップ435）。例えば、図5のフローID「＃３」に関して、図7のフローチャートに従って処理を行うと、装置S1における対向接続先は装置S3のポート5であり、装置S3における対向接続先は装置S2のポート13であり、装置S2における対向接続先は装置S1となる。装置S1に到るフローの発生元として装置S1が再度出現しているので、フローID「＃３」はループを構成していると判断する。なお、CPU121においてループを構成していると判断する機能を特にループ検出部ともいう。
【００４５】
図8は、管理サーバ100のCPU121がメモリ120の情報を用いて実行するフローの出力先を探索するアルゴリズムの例を示す。
【００４６】
或るパケット中継装置から受信したフロー情報に関してその出力先（行先）を調べる場合、まず該当するフロー情報の出力ポートを図5に示した検出フロー情報テーブルの出力ポート欄144から調べる。そしてそのポートの対向接続先（出力先）の装置ポート情報を、図4に示したトポロジー情報テーブル130から検索する（ステップ505）。具体的に図4と図5のデータを用いて説明すると、例えば、図5において、装置S1（パケット中継装置101）について、フローID「＃1」が装置S1のポート4から出力されており、図4の装置S1のポート4の接続先は装置S2のポート10なので、フローID「＃1」の対向接続先装置ポート情報（出力先）は、装置S2のポート10であることが分かる。
【００４７】
もし対向接続先（出力先）が存在しない場合（ステップ410でNo）の場合には異常終了する（ステップ515）。
【００４８】
対向接続先（出力先）が存在しても（ステップ510でYes）、その装置ポート情報が「−」ならば、管理下のパケット中継装置以外へフローが出力されていると判断して、探索を終了する（ステップ525）。
【００４９】
装置ポート情報が「−」でない場合（ステップ520でNo）、最初の探索の場合には、ステップ530がNなので、図5に示した検出フロー情報テーブル140から、同一フローIDでその対向接続先（出力先）の装置ポートから入力されるフロー情報を検索する（ステップ540）。具体的に図5のデータを用いて説明すると、同一のフローID「＃1」が装置S2のポート10から入力されポート1から出力されていることが分かる。さらに、図4からポート1の接続先ポートは「−」なので、装置S2における対向接続先（出力先）は「―」であることが分かる。
【００５０】
同一フローIDでその対向接続先の装置ポートへ入力されるフロー情報があった場合には（ステップ545でYes）、このフローIDの行先を対向接続先から検索する（ステップ555）。具体的に図5のデータを用いて説明すると、フローID「＃1」について、装置S1における対向接続先（出力先）は装置S2のポート10であり、装置装置S2における対向接続先（出力先）は「−」であるから、出力先は装置S2と分かる。
【００５１】
そして、続いて他のフロー情報に関して同様な探索処理を繰り返す。図5のデータでは、フローID「＃2」について実施する。
【００５２】
同一フローIDでその対向接続先の装置ポートへ入力されるフロー情報が存在しない場合は、そのパケット中継装置から先にパケットが流れないと判断し、探索処理を終了する（ステップ550）。
【００５３】
なお、装置ポート情報が「−」でなくとも（ステップ520でNo）、探索処理の繰返しの結果、過去に通過したパケット装置を再度通過したことが判明した場合は（ステップ530でY）、そのフローはループを構成していると判断して探索を終了する（ステップ535）。
【００５４】
図9は、管理サーバ100のCPU121がメモリ120の情報を用いて実行する、当該パケット中継装置に対してトラフィック制御の要求のアルゴリズム例を示す。トラフィック制御要求送信に際しては、図4に示したトポロジー情報テーブルの装置アドレス131を参照し、送信先アドレスを決定する。要求送信に用いるプロトコルは、SNMPやTelnetやXMLなど任意のプロトコルで構わない。トラフィック制御要求に際しては、そのトラフィック制御命令の有効期間を決定し、制御命令の送り先とその内容とそれが解除される時間の対応付けを図6に示したフロー制御命令テーブル160に記録する。
【００５５】
フローの発生源検索（ステップ605、図7）の結果、ループが発生していることがわかった場合（ステップ610でY）、最初にそのフローを発見したパケット中継装置、すなわち或るフローIDがループであることを検出した場合にその検出に当たって図7のステップ400で選択したパケット中継装置、に対して、当該フローIDの出力ポートを切断するよう指示する（ステップ615）。図5の例ではフローID「#3」がこのケースに該当する。そのため最初にフローID「#3」を発見したパケット中継装置S1にて、フローID「#3」の出力を停止する制御命令「drop from 3.4.5.6 to 8.9.10.11at port 4 outbound」を実行する。
【００５６】
フローの出力先検索（ステップ620、図8）の結果、ループ発生が判明した場合（ステップ623でY）も同様である。
【００５７】
フローの出力先検索の結果、出力フローがあるパケット中継装置から先に流れていないことが判明した場合（ステップ625でY）、その上流のパケット中継装置においてそのフローを廃棄するフィルタ設定を行う（ステップ630）。図5の例ではフローID「#4」がこのケースに該当する。そのためフローID「#4」の中継がとまった装置S2にて、フローID「#4」の出力を停止する制御命令「drop from 4.5.6.7 to 9.10.11.12 at port 13 outbound」を実行する。
【００５８】
以上のいずれにも該当しない場合、フローがどこから入力されどこへ出力されるかを特定できる。管理サーバは、そのフローの内容を異常トラフィックデータベース150と照合することにより、フローの内容がセキュリティポリシー上正常か否かを判定する（ステップ625）。異常なトラフィックに対しては、フロー発生源のパケット中継装置にてそのトラフィックを廃棄するフィルタ設定を行う（ステップ640）。正常なトラフィックに対しては、フロー発生源のパケット中継装置にてそのトラフィックの帯域を絞るようなシェーパー設定を行う（ステップ645）。図5の例でフローID「#1」が正常なトラフィックとして本ケースに該当した場合、フローID「#1」の発生源である装置S1にて、フローID「#1」の帯域を絞る制御命令「limit from 2.3.4.5 to 7.8.9.10:http at port 8 within 10Mbps inbound」を実行する。  
図10は、管理サーバ100のCPU121がメモリ120の情報を用いて実行するトポロジー図の描画のアルゴリズム例を示す。ここでは、図4に示したトポロジー情報テーブル130と図5に示した検出フロー情報テーブル140の情報に基づいて、フローID「＃1」について描画する例を説明する。他のフローIDについても同様である。図11は、図10によって描画された例を示す。
【００５９】
まずトポロジー図計算モジュール151は、トポロジー情報テーブル130の情報から、ネットワークトポロジー図を描画する。トポロジー情報テーブル130内にある管理対象とするパケット中継装置（ネットワーク装置）の数を計算し（ステップ705）、同心円上に等間隔にネットワーク装置を配置して描画する（ステップ710）。図4及び図5では、パケット中継装置の数は3である。
【００６０】
次に各パケット中継装置についてトポロジー情報テーブル130内の接続装置ポートリスト132に従ってポート毎に、ステップ710で描画した図において線分で結び、線分の両端にそれぞれのパケット中継装置のポート番号を表示する（ステップ725）。なお接続装置がない管理サーバの管理下にないパケット中継装置である場合には、当該ネットワーク装置から同心円の放射線方向に線分を伸ばすことにより描画する。各パケット中継装置について順次実施する（ステップ730、720）。
【００６１】
検出フロー情報テーブル140のフローIDフィールド141に基づき、検出フロー情報テーブル140からフローID「＃1」に所属するフロー情報を抽出する（ステップ755）。
【００６２】
抽出したフロー情報の装置142の入力ポート143からの線分と、装置142の出力ポート144からの線分とを、ステップ725で描画した線分とは異なる色で再描画する(ステップ760、761)。各フローについて順次実施する（ステップ762、750）。
【００６３】
フローID「＃1」の内容を異常トラフィックデータベース150と照合した結果と、図7で得られたフローの起点（発生源）、図8で得られた終点（行先）ポートと共に表示する(ステップ770)。制御の内容、例えば制御命令を該当するフローIDと対応付けて表示するようにしてもよい。
【図面の簡単な説明】
【００６４】
【図１】ネットワーク構成例
【図２】パケット中継装置の内部構造例
【図３】管理サーバの内部構造例
【図４】トポロジー情報テーブル例
【図５】検出フロー情報テーブル例
【図６】フロー制御命令テーブル例
【図７】フロー発生源探索アルゴリズム例
【図８】フロー出力先探索アルゴリズム例
【図９】トラフィック制御アルゴリズム例
【図１０】フロートポロジー描画アルゴリズム例
【図１１】フロートポロジー描画例
【符号の説明】
【００６５】
100：管理サーバ
101〜103：パケット中継装置
【図１】
0004547340.tif 000002
【図２】
0004547340.tif 000003
【図３】
0004547340.tif 000004
【図４】
0004547340.tif 000005
【図５】
0004547340.tif 000006
【図６】
0004547340.tif 000007
【図７】
0004547340.tif 000008
【図８】
0004547340.tif 000009
【図９】
0004547340.tif 000010
【図１０】
0004547340.tif 000011
【図１１】
0004547340.tif 000012