(57)【特許請求の範囲】
【請求項１】
DDoS（Distributed Denial of Service）攻撃が発生し、前記DDoS攻撃の標的となっている標的サーバへの前記DDoS攻撃のトラヒックをDDoS攻撃対策装置へ転送する経路の輻輳を回避するための負荷分散装置であって、
前記標的サーバに対する前記DDoS攻撃の発生を検知する攻撃検知機能部と、
前記標的サーバ宛の前記DDoS攻撃のトラヒックをDDoS攻撃対策装置に転送する経路を設定する経路設定機能部と、
前記経路設定機能部において設定された経路上のリンクの輻輳を検知するネットワーク輻輳検知機能部と、
前記ネットワーク輻輳検知機能部で輻輳と検知されたリンクと直接つながる両端のノードを抽出し、当該両端のノード間において、前記ネットワーク輻輳検知機能部で輻輳と検知されたリンクを経由しない新しい経路を探索するトポロジ管理機能部と、
を有し、
前記トポロジ管理機能部は、前記抽出された両端のノード間において、既に前記DDoS攻撃のトラヒックをDDoS攻撃対策装置へ転送する経路として利用されているリンクを除き、当該両端のノードに接続されたノードを列挙し、当該両端のノードのそれぞれからホップ数の少ない順にノードを探索し、共通するノードを発見した場合に、当該両端のノードのそれぞれから共通するノードまでの経路を組み合わせて新しい経路を生成する、負荷分散装置。
【請求項２】
DDoS（Distributed Denial of Service）攻撃が発生し、前記DDoS攻撃の標的となっている標的サーバへの前記DDoS攻撃のトラヒックをDDoS攻撃対策装置へ転送する経路の輻輳を回避するための負荷分散装置であって、
前記標的サーバに対する前記DDoS攻撃の発生を検知する攻撃検知機能部と、
前記標的サーバ宛の前記DDoS攻撃のトラヒックをDDoS攻撃対策装置に転送する経路を設定する経路設定機能部と、
前記経路設定機能部において設定された経路上のリンクの輻輳を検知するネットワーク輻輳検知機能部と、
前記ネットワーク輻輳検知機能部で輻輳と検知されたリンクと直接つながる両端のノードを抽出し、当該両端のノード間において、前記ネットワーク輻輳検知機能部で輻輳と検知されたリンクを経由しない新しい経路を探索するトポロジ管理機能部と、
を有し、
前記トポロジ管理機能部は、元の経路に含まれるリンクの利用可能帯域及び新しい経路に含まれるリンクの利用可能帯域に基づいて、元の経路及び新しい経路のそれぞれへの標的サーバ宛のトラヒックの振り分け量を算出する、負荷分散装置。
【請求項３】
DDoS（Distributed Denial of Service）攻撃が発生し、前記DDoS攻撃の標的となっている標的サーバへの前記DDoS攻撃のトラヒックをDDoS攻撃対策装置へ転送する経路の輻輳を回避するための負荷分散装置であって、
前記標的サーバに対する前記DDoS攻撃の発生を検知する攻撃検知機能部と、
前記標的サーバ宛の前記DDoS攻撃のトラヒックをDDoS攻撃対策装置に転送する経路を設定する経路設定機能部と、
前記経路設定機能部において設定された経路上のリンクの輻輳を検知するネットワーク輻輳検知機能部と、
前記ネットワーク輻輳検知機能部で輻輳と検知されたリンクと直接つながる両端のノードを抽出し、当該両端のノード間において、前記ネットワーク輻輳検知機能部で輻輳と検知されたリンクを経由しない新しい経路を探索するトポロジ管理機能部と、
を有し、
前記トポロジ管理機能部は、前記ネットワーク輻輳検知機能部で輻輳と検知されたリンクと直接つながる両端のノードと、前記新しい経路に含まれるノードと、前記両端のノード及び前記新しい経路に含まれるノードで囲まれる領域の内側に存在するノードとで、局所的なトポロジを構築し、線形計画法によって、新しい経路を決定し直し、元の経路及び新しい経路のそれぞれへの標的サーバ宛のトラヒックの振り分け量を算出する、負荷分散装置。
【請求項４】
前記トポロジ管理機能部は、前記新しい経路と、前記標的サーバ宛のトラヒックの振り分け量とを経路情報テーブルに格納し、前記経路設定機能部に通知する、請求項２又は３に記載の負荷分散装置。
【請求項５】
前記経路設定機能部は、前記経路情報テーブルに基づいて、前記標的サーバ宛のトラヒックをDDoS攻撃対策装置に転送する、請求項４に記載の負荷分散装置。
【請求項６】
DDoS（Distributed Denial of Service）攻撃が発生し、前記DDoS攻撃の標的となっている標的サーバへの前記DDoS攻撃のトラヒックをDDoS攻撃対策装置へ転送する経路の輻輳を回避するための負荷分散装置における負荷分散方法であって、
前記標的サーバに対する前記DDoS攻撃の発生を検知するステップと、
前記標的サーバ宛の前記DDoS攻撃のトラヒックをDDoS攻撃対策装置に転送する経路を設定するステップと、
前記設定された経路上のリンクの輻輳を検知するステップと、
前記輻輳と検知されたリンクと直接つながる両端のノードを抽出し、当該両端のノード間において、前記輻輳と検知されたリンクを経由しない新しい経路を探索するステップと、
を有し、
前記新しい経路は、前記抽出された両端のノード間において、既に前記DDoS攻撃のトラヒックをDDoS攻撃対策装置へ転送する経路として利用されているリンクを除き、当該両端のノードに接続されたノードを列挙し、当該両端のノードのそれぞれからホップ数の少ない順にノードを探索し、共通するノードを発見した場合に、当該両端のノードのそれぞれから共通するノードまでの経路を組み合わせることによって生成される、負荷分散方法。
【請求項７】
DDoS（Distributed Denial of Service）攻撃が発生し、前記DDoS攻撃の標的となっている標的サーバへの前記DDoS攻撃のトラヒックをDDoS攻撃対策装置へ転送する経路の輻輳を回避するための負荷分散装置における負荷分散方法であって、
前記標的サーバに対する前記DDoS攻撃の発生を検知するステップと、
前記標的サーバ宛の前記DDoS攻撃のトラヒックをDDoS攻撃対策装置に転送する経路を設定するステップと、
前記設定された経路上のリンクの輻輳を検知するステップと、
前記輻輳と検知されたリンクと直接つながる両端のノードを抽出し、当該両端のノード間において、前記輻輳と検知されたリンクを経由しない新しい経路を探索するステップと、
元の経路に含まれるリンクの利用可能帯域及び新しい経路に含まれるリンクの利用可能帯域に基づいて、元の経路及び新しい経路のそれぞれへの標的サーバ宛のトラヒックの振り分け量を算出するステップと、
を有する負荷分散方法。
【請求項８】
DDoS（Distributed Denial of Service）攻撃が発生し、前記DDoS攻撃の標的となっている標的サーバへの前記DDoS攻撃のトラヒックをDDoS攻撃対策装置へ転送する経路の輻輳を回避するための負荷分散装置における負荷分散方法であって、
前記標的サーバに対する前記DDoS攻撃の発生を検知するステップと、
前記標的サーバ宛の前記DDoS攻撃のトラヒックをDDoS攻撃対策装置に転送する経路を設定するステップと、
前記設定された経路上のリンクの輻輳を検知するステップと、
前記輻輳と検知されたリンクと直接つながる両端のノードを抽出し、当該両端のノード間において、前記輻輳と検知されたリンクを経由しない新しい経路を探索するステップと、
前記輻輳と検知されたリンクと直接つながる両端のノードと、前記新しい経路に含まれるノードと、前記両端のノード及び前記新しい経路に含まれるノードで囲まれる領域の内側に存在するノードとで、局所的なトポロジを構築し、線形計画法によって、新しい経路を決定し直し、元の経路及び新しい経路のそれぞれへの標的サーバ宛のトラヒックの振り分け量を算出するステップと、
を有する負荷分散方法。
【請求項９】
DDoS（Distributed Denial of Service）攻撃が発生し、前記DDoS攻撃の標的となっている標的サーバへの前記DDoS攻撃のトラヒックをDDoS攻撃対策装置へ転送する経路の輻輳を回避するために、コンピュータを、
前記標的サーバに対する前記DDoS攻撃の発生を検知する攻撃検知機能手段、
前記標的サーバ宛の前記DDoS攻撃のトラヒックをDDoS攻撃対策装置に転送する経路を設定する経路設定機能手段、
前記経路設定機能手段において設定された経路上のリンクの輻輳を検知するネットワーク輻輳検知機能手段、及び
前記ネットワーク輻輳検知機能手段で輻輳と検知されたリンクと直接つながる両端のノードを抽出し、当該両端のノード間において、前記ネットワーク輻輳検知機能手段で輻輳と検知されたリンクを経由しない新しい経路を探索するトポロジ管理機能手段、
として機能させ、
前記トポロジ管理機能手段は、前記抽出された両端のノード間において、既に前記DDoS攻撃のトラヒックをDDoS攻撃対策装置へ転送する経路として利用されているリンクを除き、当該両端のノードに接続されたノードを列挙し、当該両端のノードのそれぞれからホップ数の少ない順にノードを探索し、共通するノードを発見した場合に、当該両端のノードのそれぞれから共通するノードまでの経路を組み合わせて新しい経路を生成する、プログラム。
【請求項１０】
DDoS（Distributed Denial of Service）攻撃が発生し、前記DDoS攻撃の標的となっている標的サーバへの前記DDoS攻撃のトラヒックをDDoS攻撃対策装置へ転送する経路の輻輳を回避するために、コンピュータを、
前記標的サーバに対する前記DDoS攻撃の発生を検知する攻撃検知機能手段、
前記標的サーバ宛の前記DDoS攻撃のトラヒックをDDoS攻撃対策装置に転送する経路を設定する経路設定機能手段、
前記経路設定機能手段において設定された経路上のリンクの輻輳を検知するネットワーク輻輳検知機能手段、及び
前記ネットワーク輻輳検知機能手段で輻輳と検知されたリンクと直接つながる両端のノードを抽出し、当該両端のノード間において、前記ネットワーク輻輳検知機能手段で輻輳と検知されたリンクを経由しない新しい経路を探索するトポロジ管理機能手段、
として機能させ、
前記トポロジ管理機能手段は、元の経路に含まれるリンクの利用可能帯域及び新しい経路に含まれるリンクの利用可能帯域に基づいて、元の経路及び新しい経路のそれぞれへの標的サーバ宛のトラヒックの振り分け量を算出する、プログラム。
【請求項１１】
DDoS（Distributed Denial of Service）攻撃が発生し、前記DDoS攻撃の標的となっている標的サーバへの前記DDoS攻撃のトラヒックをDDoS攻撃対策装置へ転送する経路の輻輳を回避するために、コンピュータを、
前記標的サーバに対する前記DDoS攻撃の発生を検知する攻撃検知機能手段、
前記標的サーバ宛の前記DDoS攻撃のトラヒックをDDoS攻撃対策装置に転送する経路を設定する経路設定機能手段、
前記経路設定機能手段において設定された経路上のリンクの輻輳を検知するネットワーク輻輳検知機能手段、及び
前記ネットワーク輻輳検知機能手段で輻輳と検知されたリンクと直接つながる両端のノードを抽出し、当該両端のノード間において、前記ネットワーク輻輳検知機能手段で輻輳と検知されたリンクを経由しない新しい経路を探索するトポロジ管理機能手段、
として機能させ、
前記トポロジ管理機能手段は、前記ネットワーク輻輳検知機能手段で輻輳と検知されたリンクと直接つながる両端のノードと、前記新しい経路に含まれるノードと、前記両端のノード及び前記新しい経路に含まれるノードで囲まれる領域の内側に存在するノードとで、局所的なトポロジを構築し、線形計画法によって、新しい経路を決定し直し、元の経路及び新しい経路のそれぞれへの標的サーバ宛のトラヒックの振り分け量を算出する、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、負荷分散装置、負荷分散方法及びプログラムに関し、特に、DDoS（Distributed Denial of Service attack）攻撃対策の際の経路の輻輳を回避するための負荷分散装置、負荷分散方法及びプログラムに関する。
【背景技術】
【０００２】
ISP（Internet Service Provider）等が接続される広域ネットワークでは、DDoS攻撃対策装置が、ネットワーク内のルータ、スイッチ、サーバ等の通信機器から定期的に収集したトラヒック情報やフロー情報を解析することで、サーバを標的とするDDoS攻撃を検知し、標的となっているサーバ（以後、標的サーバと表記）のトラヒックをDDoS攻撃対策装置に迂回させて検査し、標的サーバからDDoS攻撃のトラヒックを遮断することでDDoS攻撃に対処している（非特許文献１参照）。
【０００３】
一方で、近年、数100Gクラスの大規模なDDoS攻撃が発生しており、DDoS攻撃対策装置へ標的サーバ宛のトラヒックを転送する際の通信の経路が偏る場合、経路が輻輳して、他の通信サービスにも影響を及ぼす恐れがある。このため、複数の経路に適切にトラヒックを分散させながら、標的サーバ宛のトラヒックをDDoS攻撃対策装置まで転送する必要があるが、その実現には、攻撃発生時点のネットワーク全体の利用可能帯域を考慮して、利用する経路や各経路へ収容するトラヒック量を迅速に決定する技術が必要になる。
【０００４】
ルータ、スイッチ、サーバ等の通信機器に接続されるエッジノードを含めて複数のノード間をつなぐケーブルをリンクとし、ネットワークをノードとリンクの集合で構成されるグラフで表現し、リンクの利用可能帯域やネットワークのトポロジ情報、ノード間（例えば、標的サーバ宛のトラヒックが流入するエッジルータとDDoS攻撃対策装置間）のトラヒック需要（例えば、標的サーバ宛のトラヒック量）が与えられた際に、特定リンクに対するトラヒック集中を回避するように、利用する経路と各経路へのトラヒックの振り分け量を決定する問題は、ネットワークフローの割り当て問題としてモデル化でき、線形計画法のアルゴリズムを用いて解くことができる（非特許文献２参照）。具体的には、例えば、次のような手順で経路を逐次生成しながら線形計画問題を解くことで、複数の候補経路の中から最適な経路の組み合わせと各経路へのトラヒック量を算出できる。
【０００５】
1.始点ノードと終点ノードで表される各ノードペア間で1つの経路（ここでは、これをデフォルトルートと呼ぶ）を設定し、与えられたトラヒック需要が収容できるかを、線形計画問題を解くことで判定する（なお、ノードペアは複数存在しうる）。
【０００６】
2.トラヒック需要が収容しきれない場合は、ボトルネックとなるリンクを除外した状態で、各ノードペア間の別の経路を求め、新たな経路とする（例えば、ダイクストラ法により新しい経路を導出可能）。
【０００７】
3.デフォルトルートと新しい経路を入力として与えた線形計画問題を解き、トラヒック需要の収容可否を判定する。
【０００８】
4.以後、トラヒック需要が収容されるまで、2の新しい経路の生成と3の線形計画問題の求解を繰り返す。
【０００９】
一方で、トラヒック需要が与えられるノードペア数をn∈N（Nはネットワークの総ノード数）、mをネットワークの総リンク数とすると、線形計画問題の計算量は、単体法で解く場合、おおよそO(nm)、すなわち、n×mのオーダーになる。また、新しい経路の算出時の計算量は、ダイクストラ法で解く場合、おおよそO(nN2)、すなわち、n×N2のオーダーになる。従って、トラヒック需要が与えられるノードペア数nやネットワークの総ノード数N、ネットワークの総リンク数mが増加するに従い、計算量が増加する。
【００１０】
このため、ネットワークの規模が大きい場合やDDoS攻撃のように攻撃が多数のエッジノードから流入する場合には計算量が増加し、経路探索と各経路への適切なトラヒック量の算出が迅速にできない。また、DDoS攻撃の場合は、時間とともに攻撃量や攻撃の流入地点が変化する可能性があり、それに伴いネットワークの状態も変化するため、頻繁に輻輳回避処理を実行する必要があるが、既存方式では計算量が多くなり、迅速な対応ができない。
【先行技術文献】
【非特許文献】
【００１１】
【非特許文献１】水口孝則他，"トラフィック解析システムSAMURAIとサービス展開，" NTT技術ジャーナル，2008.7
【非特許文献２】KDDI, "ネットワーク性能の解析評価技術の実際"，P.18-25，信学会ソサイエティ大会 チュートリアル講演 BT-2 , 2006.
【発明の概要】
【発明が解決しようとする課題】
【００１２】
大規模なDDoS攻撃に対して、DDoS攻撃対策装置へ標的サーバ宛のトラヒックを転送して対処する従来技術を適用する場合において、転送に用いる経路が偏ることでの輻輳を回避するためには、複数の経路を用いて適切にトラヒックを分散させながら、標的サーバ宛のトラヒックをDDoS攻撃対策装置まで転送できる必要があるが、その実現には、攻撃発生時点のネットワーク全体の利用可能帯域を考慮して、利用する経路や各経路へ収容するトラヒック量を迅速に決定する技術が必要になる。
【００１３】
しかし、経路を逐次生成しながら線形計画法によって解を求める従来方式では、ネットワークの規模（ノード数、リンク数）が大きい場合や、DDoS攻撃での多地点からネットワークにトラヒックが流入する場合には、計算量が増加し、迅速な求解ができない。さらに、DDoS攻撃は、時間とともに攻撃量や攻撃の流入地点が変化する可能性があり、それに伴いネットワークの状態も変化するため、頻繁に輻輳回避処理を実行する必要があるが、従来方式ではネットワークの変化に連動した迅速な輻輳回避ができない。
【００１４】
本発明は、標的サーバに対するDDoS攻撃が発生した場合、攻撃トラヒックをDDoS攻撃対策装置へ転送する際に発生する輻輳を迅速に回避することを目的とする。
【課題を解決するための手段】
【００１５】
本発明の一形態に係る負荷分散装置は、
DDoS（Distributed Denial of Service）攻撃が発生し、前記DDoS攻撃の標的となっている標的サーバへの前記DDoS攻撃のトラヒックをDDoS攻撃対策装置へ転送する経路の輻輳を回避するための負荷分散装置であって、
前記標的サーバに対する前記DDoS攻撃の発生を検知する攻撃検知機能部と、
前記標的サーバ宛の前記DDoS攻撃のトラヒックをDDoS攻撃対策装置に転送する経路を設定する経路設定機能部と、
前記経路設定機能部において設定された経路上のリンクの輻輳を検知するネットワーク輻輳検知機能部と、
前記ネットワーク輻輳検知機能部で輻輳と検知されたリンクと直接つながる両端のノードを抽出し、当該両端のノード間において、前記ネットワーク輻輳検知機能部で輻輳と検知されたリンクを経由しない新しい経路を探索するトポロジ管理機能部と、
を有し、
前記トポロジ管理機能部は、前記抽出された両端のノード間において、既に前記DDoS攻撃のトラヒックをDDoS攻撃対策装置へ転送する経路として利用されているリンクを除き、当該両端のノードに接続されたノードを列挙し、当該両端のノードのそれぞれからホップ数の少ない順にノードを探索し、共通するノードを発見した場合に、当該両端のノードのそれぞれから共通するノードまでの経路を組み合わせて新しい経路を生成することを特徴とする。
また、本発明の一形態に係る負荷分散装置は、
DDoS（Distributed Denial of Service）攻撃が発生し、前記DDoS攻撃の標的となっている標的サーバへの前記DDoS攻撃のトラヒックをDDoS攻撃対策装置へ転送する経路の輻輳を回避するための負荷分散装置であって、
前記標的サーバに対する前記DDoS攻撃の発生を検知する攻撃検知機能部と、
前記標的サーバ宛の前記DDoS攻撃のトラヒックをDDoS攻撃対策装置に転送する経路を設定する経路設定機能部と、
前記経路設定機能部において設定された経路上のリンクの輻輳を検知するネットワーク輻輳検知機能部と、
前記ネットワーク輻輳検知機能部で輻輳と検知されたリンクと直接つながる両端のノードを抽出し、当該両端のノード間において、前記ネットワーク輻輳検知機能部で輻輳と検知されたリンクを経由しない新しい経路を探索するトポロジ管理機能部と、
を有し、
前記トポロジ管理機能部は、元の経路に含まれるリンクの利用可能帯域及び新しい経路に含まれるリンクの利用可能帯域に基づいて、元の経路及び新しい経路のそれぞれへの標的サーバ宛のトラヒックの振り分け量を算出することを特徴とする。
また、本発明の一形態に係る負荷分散装置は、
DDoS（Distributed Denial of Service）攻撃が発生し、前記DDoS攻撃の標的となっている標的サーバへの前記DDoS攻撃のトラヒックをDDoS攻撃対策装置へ転送する経路の輻輳を回避するための負荷分散装置であって、
前記標的サーバに対する前記DDoS攻撃の発生を検知する攻撃検知機能部と、
前記標的サーバ宛の前記DDoS攻撃のトラヒックをDDoS攻撃対策装置に転送する経路を設定する経路設定機能部と、
前記経路設定機能部において設定された経路上のリンクの輻輳を検知するネットワーク輻輳検知機能部と、
前記ネットワーク輻輳検知機能部で輻輳と検知されたリンクと直接つながる両端のノードを抽出し、当該両端のノード間において、前記ネットワーク輻輳検知機能部で輻輳と検知されたリンクを経由しない新しい経路を探索するトポロジ管理機能部と、
を有し、
前記トポロジ管理機能部は、前記ネットワーク輻輳検知機能部で輻輳と検知されたリンクと直接つながる両端のノードと、前記新しい経路に含まれるノードと、前記両端のノード及び前記新しい経路に含まれるノードで囲まれる領域の内側に存在するノードとで、局所的なトポロジを構築し、線形計画法によって、新しい経路を決定し直し、元の経路及び新しい経路のそれぞれへの標的サーバ宛のトラヒックの振り分け量を算出することを特徴とする。
【００１６】
本発明の一形態に係る負荷分散方法は、
DDoS（Distributed Denial of Service）攻撃が発生し、前記DDoS攻撃の標的となっている標的サーバへの前記DDoS攻撃のトラヒックをDDoS攻撃対策装置へ転送する経路の輻輳を回避するための負荷分散装置における負荷分散方法であって、
前記標的サーバに対する前記DDoS攻撃の発生を検知するステップと、
前記標的サーバ宛の前記DDoS攻撃のトラヒックをDDoS攻撃対策装置に転送する経路を設定するステップと、
前記設定された経路上のリンクの輻輳を検知するステップと、
前記輻輳と検知されたリンクと直接つながる両端のノードを抽出し、当該両端のノード間において、前記輻輳と検知されたリンクを経由しない新しい経路を探索するステップと、
を有し、
前記新しい経路は、前記抽出された両端のノード間において、既に前記DDoS攻撃のトラヒックをDDoS攻撃対策装置へ転送する経路として利用されているリンクを除き、当該両端のノードに接続されたノードを列挙し、当該両端のノードのそれぞれからホップ数の少ない順にノードを探索し、共通するノードを発見した場合に、当該両端のノードのそれぞれから共通するノードまでの経路を組み合わせることによって生成されることを特徴とする。
また、本発明の一形態に係る負荷分散方法は、
DDoS（Distributed Denial of Service）攻撃が発生し、前記DDoS攻撃の標的となっている標的サーバへの前記DDoS攻撃のトラヒックをDDoS攻撃対策装置へ転送する経路の輻輳を回避するための負荷分散装置における負荷分散方法であって、
前記標的サーバに対する前記DDoS攻撃の発生を検知するステップと、
前記標的サーバ宛の前記DDoS攻撃のトラヒックをDDoS攻撃対策装置に転送する経路を設定するステップと、
前記設定された経路上のリンクの輻輳を検知するステップと、
前記輻輳と検知されたリンクと直接つながる両端のノードを抽出し、当該両端のノード間において、前記輻輳と検知されたリンクを経由しない新しい経路を探索するステップと、
元の経路に含まれるリンクの利用可能帯域及び新しい経路に含まれるリンクの利用可能帯域に基づいて、元の経路及び新しい経路のそれぞれへの標的サーバ宛のトラヒックの振り分け量を算出するステップと、
を有することを特徴とする。
また、本発明の一形態に係る負荷分散方法は、
DDoS（Distributed Denial of Service）攻撃が発生し、前記DDoS攻撃の標的となっている標的サーバへの前記DDoS攻撃のトラヒックをDDoS攻撃対策装置へ転送する経路の輻輳を回避するための負荷分散装置における負荷分散方法であって、
前記標的サーバに対する前記DDoS攻撃の発生を検知するステップと、
前記標的サーバ宛の前記DDoS攻撃のトラヒックをDDoS攻撃対策装置に転送する経路を設定するステップと、
前記設定された経路上のリンクの輻輳を検知するステップと、
前記輻輳と検知されたリンクと直接つながる両端のノードを抽出し、当該両端のノード間において、前記輻輳と検知されたリンクを経由しない新しい経路を探索するステップと、
前記輻輳と検知されたリンクと直接つながる両端のノードと、前記新しい経路に含まれるノードと、前記両端のノード及び前記新しい経路に含まれるノードで囲まれる領域の内側に存在するノードとで、局所的なトポロジを構築し、線形計画法によって、新しい経路を決定し直し、元の経路及び新しい経路のそれぞれへの標的サーバ宛のトラヒックの振り分け量を算出するステップと、
を有することを特徴とする。
【００１７】
本発明の一形態に係るプログラムは、
DDoS（Distributed Denial of Service）攻撃が発生し、前記DDoS攻撃の標的となっている標的サーバへの前記DDoS攻撃のトラヒックをDDoS攻撃対策装置へ転送する経路の輻輳を回避するために、コンピュータを、
前記標的サーバに対する前記DDoS攻撃の発生を検知する攻撃検知機能手段、
前記標的サーバ宛の前記DDoS攻撃のトラヒックをDDoS攻撃対策装置に転送する経路を設定する経路設定機能手段、
前記経路設定機能手段において設定された経路上のリンクの輻輳を検知するネットワーク輻輳検知機能手段、及び
前記ネットワーク輻輳検知機能手段で輻輳と検知されたリンクと直接つながる両端のノードを抽出し、当該両端のノード間において、前記ネットワーク輻輳検知機能手段で輻輳と検知されたリンクを経由しない新しい経路を探索するトポロジ管理機能手段、
として機能させ、
前記トポロジ管理機能手段は、前記抽出された両端のノード間において、既に前記DDoS攻撃のトラヒックをDDoS攻撃対策装置へ転送する経路として利用されているリンクを除き、当該両端のノードに接続されたノードを列挙し、当該両端のノードのそれぞれからホップ数の少ない順にノードを探索し、共通するノードを発見した場合に、当該両端のノードのそれぞれから共通するノードまでの経路を組み合わせて新しい経路を生成することを特徴とする。
また、本発明の一形態に係るプログラムは、
DDoS（Distributed Denial of Service）攻撃が発生し、前記DDoS攻撃の標的となっている標的サーバへの前記DDoS攻撃のトラヒックをDDoS攻撃対策装置へ転送する経路の輻輳を回避するために、コンピュータを、
前記標的サーバに対する前記DDoS攻撃の発生を検知する攻撃検知機能手段、
前記標的サーバ宛の前記DDoS攻撃のトラヒックをDDoS攻撃対策装置に転送する経路を設定する経路設定機能手段、
前記経路設定機能手段において設定された経路上のリンクの輻輳を検知するネットワーク輻輳検知機能手段、及び
前記ネットワーク輻輳検知機能手段で輻輳と検知されたリンクと直接つながる両端のノードを抽出し、当該両端のノード間において、前記ネットワーク輻輳検知機能手段で輻輳と検知されたリンクを経由しない新しい経路を探索するトポロジ管理機能手段、
として機能させ、
前記トポロジ管理機能手段は、元の経路に含まれるリンクの利用可能帯域及び新しい経路に含まれるリンクの利用可能帯域に基づいて、元の経路及び新しい経路のそれぞれへの標的サーバ宛のトラヒックの振り分け量を算出することを特徴とする。
また、本発明の一形態に係るプログラムは、
DDoS（Distributed Denial of Service）攻撃が発生し、前記DDoS攻撃の標的となっている標的サーバへの前記DDoS攻撃のトラヒックをDDoS攻撃対策装置へ転送する経路の輻輳を回避するために、コンピュータを、
前記標的サーバに対する前記DDoS攻撃の発生を検知する攻撃検知機能手段、
前記標的サーバ宛の前記DDoS攻撃のトラヒックをDDoS攻撃対策装置に転送する経路を設定する経路設定機能手段、
前記経路設定機能手段において設定された経路上のリンクの輻輳を検知するネットワーク輻輳検知機能手段、及び
前記ネットワーク輻輳検知機能手段で輻輳と検知されたリンクと直接つながる両端のノードを抽出し、当該両端のノード間において、前記ネットワーク輻輳検知機能手段で輻輳と検知されたリンクを経由しない新しい経路を探索するトポロジ管理機能手段、
として機能させ、
前記トポロジ管理機能手段は、前記ネットワーク輻輳検知機能手段で輻輳と検知されたリンクと直接つながる両端のノードと、前記新しい経路に含まれるノードと、前記両端のノード及び前記新しい経路に含まれるノードで囲まれる領域の内側に存在するノードとで、局所的なトポロジを構築し、線形計画法によって、新しい経路を決定し直し、元の経路及び新しい経路のそれぞれへの標的サーバ宛のトラヒックの振り分け量を算出することを特徴とする。
【発明の効果】
【００１８】
本発明によれば、標的サーバに対するDDoS攻撃が発生した場合、攻撃トラヒックをDDoS攻撃対策装置へ転送する際に発生する輻輳を迅速に回避することが可能になる。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施形態における負荷分散装置を含む全体構成図
【図２】ネットワーク情報収集・攻撃/輻輳検知装置の構成の一例
【図３】ネットワーク負荷分散装置の構成の一例
【図４】トポロジ情報テーブルの一例
【図５】リンク情報テーブルの一例
【図６】各ノードのトラヒック情報テーブルの一例（ノードDの場合）
【図７】各ノードにおける標的サーバ宛通信用の経路情報テーブルの一例（ノードDの場合）
【図８】本発明の一実施形態における負荷分散装置の動作手順例を示すフローチャート
【発明を実施するための形態】
【００２０】
以下、図面を参照して本発明の実施形態について説明する。
【００２１】
本発明の実施形態では、DDoS攻撃が発生し、DDoS攻撃の標的となっている標的サーバへのDDoS攻撃のトラヒックをDDoS攻撃対策装置へ転送する経路の輻輳を回避するための負荷分散装置について説明する。
【００２２】
本発明の実施形態における負荷分散装置では、任意のサーバを標的としたDDoS攻撃のトラヒックをDDoS攻撃対策装置へ転送して処理する場合において、最初に攻撃を検知した際は任意の経路で転送を行う。その後、ネットワーク内の任意のリンクで輻輳が発生した際に（厳密にはリンクが輻輳しそうなことを検知した場合）、そのリンクの近隣ノードのみを抽出して、標的となるサーバ（標的サーバ）宛のトラヒックを分散させるための新しい経路の探索および各経路に収容するトラヒック量の算出を行い、その結果をノードの転送設定に反映する。このように、輻輳と検知されたリンクの近隣ノードのみで新しい経路を探索することで、ネットワークの大きさ（ノード数、リンク数）にほぼ依存することなく、迅速な輻輳回避が可能になる。すなわち、輻輳の予兆が観測されたリンクを回避するための経路を局所的な探索だけで発見可能であるため、迅速な輻輳回避が可能になる。
【００２３】
例えば、輻輳と検知されたリンクを回避するための新しい経路を探索する際には、輻輳と検知されたリンクの両端のノードを基準として、輻輳と検知されたリンクおよび既に輻輳の回避に利用しているリンク以外で接続された各ノードの隣接ノードを1ホップずつ列挙し、共通のノードに到達した際に、共通のノードに至るための前記輻輳と検知されたリンクの両端の各々のノードからの経路を組み合わせることにより、局所的な探索だけで、2ノード間での新しい経路を発見することができる。このように、本発明の実施形態によれば、ネットワーク全体を対象として探索する従来方式と比べて高速な経路探索が可能になる。
【００２４】
＜本発明の一実施形態における負荷分散装置の構成＞
図１に、本発明の一実施形態における負荷分散装置１０を含む全体構成図を示す。
【００２５】
ここでは、一例として、ネットワーク（ISP網等）内にある第2のデータセンタ内のサーバがDDoS攻撃の標的（標的サーバ）となり、第1のデータセンタに存在するDDoS攻撃対策装置に標的サーバ宛のトラヒックを転送して対処することを想定するが、エッジルータ等から標的サーバが存在するデータセンタを経由せずにDDoS攻撃対策装置までDDoS攻撃のトラヒックを転送することも考えられる。また、ルータ、スイッチ、サーバ等の通信機器を繋ぐエッジノードと他のノード間をつなぐケーブルをリンクとし、ネットワークをノードとリンクの集合で構成されるグラフで表現する。
【００２６】
図１では、一例として、後述のネットワーク情報収集機能部１１１、攻撃検知機能部１１３、ネットワーク輻輳検知機能部１１５を1つのネットワーク情報収集・攻撃/輻輳検知装置１００として表現し、経路設定機能部２１１、トポロジ管理機能部２１３を1つのネットワーク負荷分散装置２００として表現し、さらに、ネットワーク情報収集・攻撃/輻輳検知装置１００及びネットワーク負荷分散装置２００を１つの負荷分散装置１０として表現しているが、それぞれの機能の組み合わせおよび実装方法は任意である。
【００２７】
負荷分散装置１０は、DDoS攻撃のトラヒックをDDoS攻撃対策装置へ転送する経路の輻輳を回避するための装置である。負荷分散装置１０は、プロセッサ等のＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory）等のメモリ装置、ハードディスク等の記憶装置等から構成されたコンピュータでもよい。例えば、負荷分散装置１０の機能及び処理は、記憶装置又はメモリ装置に格納されているデータやプログラムをＣＰＵが実行することによって実現される。
【００２８】
図２に、ネットワーク情報収集・攻撃/輻輳検知装置１００の構成の一例を示す。ネットワーク情報収集・攻撃/輻輳検知装置１００は、処理部１１０としてのネットワーク情報収集機能部１１１と、攻撃検知機能部１１３と、ネットワーク輻輳検知機能部１１５とを含む。また、ネットワーク情報収集・攻撃/輻輳検知装置１００は、記憶部１２０に格納されるテーブルとしてのリンク情報テーブル１２３と、各ノードのトラヒック情報テーブル１２５とを含む。更に、ネットワーク情報収集・攻撃/輻輳検知装置１００は、ネットワーク負荷分散装置２００、ISP網等と通信するための通信機能部１３０を含む。
【００２９】
ネットワーク情報収集機能部１１１は、ネットワーク内に存在するノード（ルータ、スイッチ、サーバ等の通信機器）および攻撃検知機能部１１３、ネットワーク輻輳検知機能部１１５、ネットワーク負荷分散装置２００の各機能と、通信機能部１３０を介して通信する機能を有する。
【００３０】
ネットワーク情報収集機能部１１１は、ネットワーク内の各リンクの利用可能帯域情報を任意のタイミングで収集し、リンク情報テーブル１２３に格納するとともに、リンク情報テーブル１２３の情報を、ネットワーク輻輳検知機能部１１５とネットワーク負荷分散装置２００のトポロジ管理機能部２１３に通知する。また、各ノードにおける、任意のIPアドレス宛のトラヒックの各ポートからの流入量・流出量を任意のタイミングで収集し、各ノードのトラヒック情報テーブル１２５に格納するとともに、各ノードのトラヒック情報テーブル１２５の情報を、経路設定機能部２１１とトポロジ管理機能部２１３に通知する。
【００３１】
また、ネットワーク情報収集機能部１１１は、フロー情報（IPアドレス・ポート番号・プロトコル番号・TCPフラグ情報とフロー毎の通信量）等を定期的に収集し、攻撃検知機能部１１３に通知する。ここで、情報収集とデータの格納は、管理者等が手動で操作を実行する場合や事前設定された時間間隔、攻撃検知時等に自動収集等、任意のタイミングで実施可能である。また、情報の収集自体は、ポートミラーリング等のパケットレベルの収集技術やNetFlow、OpenFlow等のフローレベル等での収集技術等を用いて実現することも可能である。
【００３２】
攻撃検知機能部１１３は、ネットワーク情報収集機能部１１１から通知されたフロー情報を解析することで、任意のサーバに対するDDoS攻撃の発生を検知する機能を有する。
【００３３】
また、攻撃検知機能部１１３は、ネットワーク負荷分散装置２００の経路設定機能部２１１とトポロジ管理機能部２１３に、標的サーバの情報（IPアドレス等）を通知する。なお、フロー情報に基づくDDoS攻撃の検知は、SAMURAI（非特許文献１参照）等の技術を用いて実現することも可能である。
【００３４】
ネットワーク輻輳検知機能部１１５は、ネットワーク情報収集機能部１１１から通知されたリンク情報テーブル１２３に格納された情報（リンクの最大容量、リンクの利用可能帯域、リンクの輻輳検知のための閾値）に基づき、DDoS攻撃対策装置への経路上のリンクの輻輳を検知する。
【００３５】
また、ネットワーク輻輳検知機能部１１５は、トポロジ管理機能部２１３に、輻輳と検知されたリンクのリンク識別子を通知する。
【００３６】
図３に、ネットワーク負荷分散装置２００の構成の一例を示す。ネットワーク負荷分散装置２００は、処理部２１０としての経路設定機能部２１１と、トポロジ管理機能部２１３とを含む。また、ネットワーク負荷分散装置２００は、記憶部２２０に格納されるテーブルとしてのトポロジ情報テーブル２２１と、リンク情報テーブル２２３と、各ノードのトラヒック情報テーブル２２５と、各ノードにおける標的サーバ宛通信用の経路情報テーブル２２７とを含む。更に、ネットワーク負荷分散装置２００は、ネットワーク情報収集・攻撃/輻輳検知装置１００、ISP網等と通信するための通信機能部２３０を含む。
【００３７】
経路設定機能部２１１は、攻撃検知機能部１１３から通知された標的サーバの情報（IPアドレス等）とネットワーク情報収集機能部１１１から通知された各ノードのトラヒック情報テーブル２２５の情報に基づき、標的サーバ宛トラヒックの流入元のノード（例えば、エッジルータ）を抽出し、当該ノードに対して、標的サーバ宛のトラヒックをDDoS攻撃対策装置（すなわち、DDoS攻撃対策装置の設置されたデータセンタの入り口ノード宛、または直接DDoS攻撃対策装置）に任意の経路で転送する設定を適用する。
【００３８】
また、経路設定機能部２１１は、後述で述べるトポロジ管理機能部２１３から通知された各ノードにおける標的サーバ宛通信用の経路情報テーブル２２７の情報（標的サーバ宛のトラヒックの転送に用いる経路と各経路への振り分け量）をノードの転送設定に反映し、標的サーバ宛のトラヒックをDDoS攻撃対策装置に転送する。なお、経路設定と経路制御は、MPLS（Multi-Protocol Label Switching）やOpenFlow等の任意の技術を利用可能とする。
【００３９】
トポロジ管理機能部２１３は、ネットワーク輻輳検知機能部１１５から通知された輻輳と検知されたリンクのリンク識別子と、自身の保有するトポロジ情報テーブル２２１に格納された情報に基づき、輻輳と検知されたリンクと直接つながる両端のノード間において、輻輳と検知されたリンクを経由しない新しい経路を探索する。具体的には、輻輳と検知されたリンクのリンク識別子と直接繋がる両端のノードを抽出し、抽出された両端のノード間において、既にDDoS攻撃のトラヒックをDDoS攻撃対策装置へ転送する経路として利用されているリンクを除く。例えば、当該両端のノードのそれぞれについて、輻輳と検知されたリンクと、自身で保有する各ノードにおける標的サーバ宛通信用の経路情報テーブル２２７に格納された情報から、既に標的サーバ宛通信用の経路として登録されているリンクを除く。リンクを除いた後に、当該両端のノードに接続されたノードを列挙し、両端のノードのそれぞれからホップ数の少ない順にノードを探索し、両ノード間で共通するノードが見つかった場合は探索を終了する。具体的には、両ノード間の1ホップ目のノードで共通するノードがない場合は、2ホップ目のノード、3ホップ目のノード、・・・と列挙していき、共通するノードを発見した時点で探索を終了する。共通するノードを発見した場合に、各ノードから共通するノードまでの経路を組み合わせることで、両ノード間の新しい経路を生成する。
【００４０】
トポロジ管理機能部２１３は、あるノードの任意のリンクが、既に標的サーバ宛通信用の経路として登録されているかを判断する。具体的には、攻撃検知機能部１１３から通知された標的サーバの情報（IPアドレス等）および自身の保有するトポロジ情報テーブル２２１と、自身の保有する各ノードにおける標的サーバ宛通信用の経路情報テーブル２２７に格納された情報に基づき、標的サーバのIPアドレスの利用経路にそのリンクが含まれているかの判定を行うことで判断する。
【００４１】
トポロジ管理機能部２１３は、輻輳と検知されたリンクと直接繋がる両端のノードのどちらが始点ノードで、どちらが終点ノードかを判断する。例えば、自身の保有するトポロジ情報テーブル２２１に含まれるノードの地理情報に基づき、DDoS攻撃対策装置の設置されたデータセンタの入り口ノードに近い方を終点ノード、データセンタの入り口ノードに遠い方を始点ノードと判断することや、輻輳と検知されたリンクと直接つながる両端のノードのポートにおける標的サーバ宛通信の向きをネットワーク情報収集機能部１１１から通知された各ノードのトラヒック情報テーブル２２５から抽出することで、輻輳と検知されたリンクに流出させているノードを始点ノード、輻輳と検知されたリンクから流入しているノードを終点ノードと判断することが考えられる。
【００４２】
トポロジ管理機能部２１３は、ネットワーク情報収集機能部１１１から通知されたリンク情報テーブル２２３から、新しく生成された経路に含まれるリンクの帯域情報と元の経路に含まれるリンクの利用可能帯域を抽出する。
【００４３】
トポロジ管理機能部２１３は、攻撃検知機能部１１３から通知された標的サーバの情報（IPアドレス等）とネットワーク情報収集機能部１１１から通知された各ノードのトラヒック情報テーブル２２５から、始点ノードへの標的サーバ宛通信の流入量を抽出する。
【００４４】
トポロジ管理機能部２１３は、抽出した情報と始点ノードから終点ノードまでの経路情報（元の経路と新しく生成した経路）を用いて、各経路への標的サーバ宛のトラヒックの振り分け量を算出する。
【００４５】
トポロジ管理機能部２１３は、決定した経路と振り分け量を自身の保有する各ノードにおける標的サーバ宛通信用の経路情報テーブル２２７に格納するとともに、標的サーバ宛通信用の経路情報テーブル２２７の情報を経路設定機能部２１１に対して通知する。なお、各経路への標的サーバ宛のトラヒックの振り分け量の決定方法は、元の経路に含まれるリンクの利用可能帯域及び新しい経路に含まれるリンクの利用可能帯域に基づいて算出してもよい。例えば、それぞれの経路に含まれるリンクのうち、最も利用可能帯域の小さいリンクを抽出し、各リンクの利用可能帯域をそれぞれの経路の利用可能帯域最小リンクの利用可能帯域の総和で割った割合ずつで標的サーバ宛のトラヒックを分散させることが考えられる。具体的には、利用可能な経路がaとbの2種類で、各経路において最も利用可能帯域の小さいリンクを1、2と仮定すると、経路aは(1の利用可能帯域)÷(1の利用可能帯域＋2の利用可能帯域)、経路bは(2の利用可能帯域)÷(1の利用可能帯域＋2の利用可能帯域)の割合で標的サーバ宛のトラヒックを分散させる。その他の決定方法としては、抽出した情報と始点ノードから終点ノードまでの経路情報（元の経路と新しく生成した経路）およびトポロジ情報を入力として与えて、ネットワークフローの割り当て問題としてモデル化した線形計画問題を解くことで各経路への振り分け量を決定することが考えられる。この時の制約条件としては、非特許文献２で解説されているように、需要収容制約、フロー保存制約、リンク容量使用率制約等が利用可能である。また、線形計画問題の目的関数は任意であり、例えば、帯域利用効率を重視して、始点ノードに対する標的サーバ宛のトラヒック需要を利用可能な経路に収容した際に、全てのリンクの利用率が最小になるようにトラヒックを分散すること等が考えられる。
【００４６】
なお、輻輳を回避するための経路と標的サーバ宛のトラヒックの振り分け量の決定方法としては、前述したもの以外にも、輻輳と検知されたリンクと接続される両端のノードと新しく算出した経路に含まれるノードおよびこれらのノードで囲まれる領域の内側に存在するノード（自身の保有するトポロジ情報テーブル２２１に基づき判断）で局所的なトポロジを構築し（以降、この局所的なトポロジに含まれるノードの集合をノード群と呼ぶ）、各ノードにおいて、ノード群のどのノードとも接続されていないリンクから流入する標的サーバ宛のトラヒック量と自身から流入する標的サーバ宛のトラヒック量、および各リンクの最大容量・現在の利用可能帯域、トラヒックの転送に利用可能な経路情報等を入力として与え、局所的なトポロジを対象とした多品種フロー問題を線形計画法の任意のアルゴリズムによって解くことで、輻輳回避のために利用する新しい経路を決定し直し、各経路またはリンクへのトラヒックの振り分け量を決定するという方法も利用可能であり、任意の方法を選択できる。この時の制約条件としては、非特許文献２で解説されているように、需要収容制約、フロー保存制約、リンク容量使用率制約等が利用可能である。また、多品種フロー問題の目的関数は、任意であり、例えば、帯域利用効率を重視して、局所的なトポロジを構成する各ノードに対する標的サーバ宛のトラヒック需要を利用可能な経路に収容した際に、全てのリンクの利用率が最小になるようにトラヒックを分散することや、計算速度を重視して、局所的なトポロジの各ノードに対する標的サーバ宛のトラヒック需要を利用可能な経路に収容した際に、全てのリンクの利用率が閾値以下になるようにする等が考えられる。なお、本処理以前に実行した輻輳回避処理において、ノード群に含まれるノードを対象に輻輳回避処理を実行していた場合は、そのノードにおける以前の輻輳回避処理による設定をリセットしてから本処理を実行しても良い。また、輻輳と検知されたリンクと接続される両端のノードと新しく算出した経路に含まれるノードで囲まれる領域の内側に存在するノードを局所的なトポロジに含めるかは任意に決定して良い。
【００４７】
なお、図２及び図３に示す構成例では、ネットワーク情報収集・攻撃/輻輳検知装置１００の記憶部１２０にリンク情報テーブル１２３及び各ノードのトラヒック情報テーブル１２５が存在し、ネットワーク負荷分散装置２００の記憶部２２０にトポロジ情報テーブル２２１、リンク情報テーブル２２３、各ノードのトラヒック情報テーブル２２５及び各ノードにおける標的サーバ通信用の経路情報テーブル２２７が存在するが、これらのテーブルの実装方法は任意であり、例えば、負荷分散装置１０内の記憶部、負荷分散装置１０に接続した記憶装置等に設けられてもよい。
【００４８】
次に、図４〜図７を参照して、各種情報を格納するためのテーブルについて説明する。
【００４９】
図４は、ネットワーク全体のトポロジ情報を管理するためのトポロジ情報テーブル２２１の一例である。本テーブルは、ノードを一意に識別可能なノード識別子、各ノードの全ポートに関する接続先のリンク・接続先のノード、ノードの存在する地理情報等で構成される。なお、これらの情報の取得方法は任意であるが、例えば、ネットワークの管理者が各ノードの情報を事前に登録する等が考えられる。
【００５０】
図５は、ネットワーク内の全てのリンクの情報を管理するためのリンク情報テーブル１２３及び２２３の一例である。本テーブルは、リンクを一意に識別可能なリンク識別子、リンクの最大容量、リンクの観測時点の利用可能帯域、リンクの輻輳検知のための閾値等で構成される。リンクの利用可能帯域は、定期的または管理者等の操作に従い、ネットワーク情報収集機能部１１１により収集されて随時更新される。また、リンクの輻輳検知のための閾値は、図５のように、値ベースで設定することや、利用可能帯域が最大容量の80%を超えた場合等の割合ベース等、任意の形式で設定することができる。閾値の値は、管理者が個々のリンクに値を設定するほか、リンクの最大容量の80％等の割合等で全てのリンクに自動設定することもできる。
【００５１】
図６は、ネットワークに存在する各ノードで任意の宛先IPアドレスのトラヒックがどのポートから流入・流出しているかを管理するための各ノードのトラヒック情報テーブル１２５及び２２５の一例である。図６にはノードDの例が示されている。本テーブルは、ノードを一意に識別可能なノード識別子、パケットの宛先IPアドレス、それらのトラヒックがノードのどのポート番号から流入・流出しているかと、その通信量等の情報で構成される。これらの情報は、定期的または管理者等の操作に従い、ネットワーク情報収集機能部１１１により収集されて随時更新される。
【００５２】
図７は、ネットワーク内に存在するノード毎に標的サーバ宛のトラヒックの転送経路を管理するための各ノードにおける標的サーバ宛通信用の経路情報テーブル２２７の一例である。図７にはノードDの例が示されている。本テーブルは、ノードを一意に識別可能なノード識別子、標的サーバのIPアドレス、転送に利用する経路、その経路へのトラヒックの分散の割合等で構成されている。なお、各経路へのトラヒックの分散は、図７に示すような割合ベースの他に、10Gbps等の値を登録して、その値を上限として分散する等の設定も可能である。また、利用経路と分散の割合は、トポロジ管理機能部２１３によって算出されるほか、管理者が事前に手動設定する等も可能である。
【００５３】
＜本発明の一実施形態における負荷分散装置における動作手順例＞
次に、図８を参照して、本発明の一実施形態における動作手順例を説明する。
【００５４】
ネットワーク情報収集機能部１１１は、ネットワーク内の各リンクの利用可能帯域情報を定期的に収集し、リンク情報テーブル１２３に格納するとともに、リンク情報テーブル１２３の情報をネットワーク輻輳検知機能部１１５、トポロジ管理機能部２１３に通知する。また、各ノードにおける、任意のIPアドレス宛のトラヒックの各ポートからの流入量・流出量を任意のタイミングで収集し、各ノードのトラヒック情報テーブル１２５に格納するとともに、トラヒック情報テーブル１２５の情報を経路設定機能部２１１、トポロジ管理機能部２１３に通知する。さらに、フロー情報（IPアドレス・ポート番号・プロトコル番号・TCPフラグ情報とフロー毎の通信量等）等を定期的に収集し、攻撃検知機能部１１３に通知する。
【００５５】
以降、ネットワーク情報収集機能部１１１の情報に基づき、攻撃検知機能部１１３が攻撃を検知するところからの動作手順を説明する。
【００５６】
ステップＳ１０１において、攻撃検知機能部１１３は、ネットワーク情報収集機能部１１１から通知されたフロー情報を解析することで、サーバに対するDDoS攻撃の発生を検知し、経路設定機能部２１１とトポロジ管理機能部２１３に対して、標的サーバの情報（IPアドレス等）を通知する。
【００５７】
ステップＳ１０３において、経路設定機能部２１１は、攻撃検知機能部１１３から通知された標的サーバの情報（IPアドレス等）とネットワーク情報収集機能部１１１から通知された各ノードのトラヒック情報テーブル２２５に基づき、標的サーバ宛のトラヒックの流入元のノード（エッジルータ等）を抽出し、当該ノードに対して、標的サーバ宛のトラヒックをDDoS攻撃対策装置の設置されたデータセンタの入り口ノード宛に任意の経路で転送する設定を適用する。
【００５８】
ここでは、一例として、標的サーバ宛のトラヒックをDDoS攻撃対策装置の設置されたデータセンタの入り口ノードに対して転送し、入り口ノードとDDoS攻撃対策装置間の転送は、入り口ノードにおける任意の方法（例えば、OpenFlow等）で転送することを想定している。
【００５９】
ステップＳ１０５において、ネットワーク輻輳検知機能部１１５は、ネットワーク情報収集機能部１１１から通知されたリンク情報テーブル１２３に格納された情報（リンクの最大容量、リンクの利用可能帯域、リンクの輻輳検知のための閾値）に基づき、リンクの輻輳を検知し、トポロジ管理機能部２１３に、輻輳と検知されたリンクのリンク識別子を通知する。
【００６０】
なお、複数リンクで輻輳が発生している場合は、例えば、DDoS攻撃対策装置から地理的に遠いまたは近いリンクから処理を行う等、任意のリンクから輻輳回避処理を実施可能である。
【００６１】
ステップＳ１０７において、トポロジ管理機能部２１３は、ネットワーク輻輳検知機能部１１５から通知された輻輳と検知されたリンクのリンク識別子と自身の保有するトポロジ情報テーブル２２１に格納された情報に基づき、輻輳と検知されたリンクと直接繋がる両端のノードを抽出し、当該ノードのそれぞれについて、輻輳と検知されたリンクと既に標的サーバ宛通信用の転送経路として登録されているリンク以外で直接接続されたノードを列挙する。両ノード間で、共通するノードが存在する場合は探索を終了し、両ノード間の1ホップ目のノードで共通するノードがない場合は、2ホップ目のノード、3ホップ目のノード、・・・と列挙していき、共通するノードを発見した時点で探索を終了する。各ノードから共通するノードまでの経路を組み合わせることで、両ノード間の新しい経路を生成する。例えば、図１のトポロジにおいて、リンク7が輻輳したと仮定すると、リンク7の両端のノードリンクDとGのそれぞれから輻輳リンクを除いたリンクでつながる1ホップ目のノードを列挙する。ノードDの1ホップ目のノードは、BとFであり、リンクGの1ホップ目のノードは、EとFであり、1ホップ目の探索において、共通するノードFが得られたため、個々で探索を終了し、ノードD→ノードF、ノードG→ノードFという経路を組み合わせることで、ノードD→ノードF→ノードGという新しい経路を生成する。
【００６２】
あるノードの任意のリンクが、既に標的サーバ宛通信用の転送経路として登録されているかは、攻撃検知機能部１１３から通知された標的サーバの情報（IPアドレス等）および自身の保有するトポロジ情報テーブル２２１と各ノードにおける標的サーバ宛通信用の経路情報テーブル２２７に格納された情報に基づき、標的サーバのIPアドレスの利用経路にそのリンクが含まれている場合は、既に登録されていると判断する。
【００６３】
輻輳と検知されたリンクと直接繋がる両端のノードのどちらが始点ノードで、どちらが終点ノードかは、例えば、自身の保有するトポロジ情報テーブル２２１に含まれるノードの地理情報に基づき、DDoS攻撃対策装置の設置されたデータセンタの入り口ノードに近い方を終点ノード、データセンタの入り口ノードに遠い方を始点ノードとして設定することや、輻輳と検知されたリンクと直接つながる両端のノードのポートにおける標的サーバ宛のトラヒックの向きをネットワーク情報収集機能部１１１から通知された各ノードのトラヒック情報テーブル２２５から抽出することで、輻輳と検知されたリンクに流出させているノードを始点ノード、輻輳と検知されたリンクから流入しているノードを終点ノードと設定すること等が考えられる。
【００６４】
ノードの利用可能なリンクが2本未満の場合、探索時間を削減するために、2本以上の利用可能なリンクを持つノードまで1ステップで探索しても良い。
【００６５】
生成した経路の途中に、DDoS攻撃対策装置の設置されたデータセンタの入り口ノードが含まれている場合、終点ノードをデータセンタ入口ノードに置き換えて、始点ノードからデータセンタ入口ノードまでの経路を探索する。
【００６６】
ステップＳ１０９において、トポロジ管理機能部２１３は、ネットワーク情報収集機能部１１１から通知されたリンク情報テーブル２２３から、新しく生成された経路に含まれるリンクの帯域情報と元の経路に含まれるリンクの利用可能帯域を抽出する。また、攻撃検知機能部１１３から通知された標的サーバの情報（IPアドレス等）とネットワーク情報収集機能部１１１から通知された各ノードのトラヒック情報テーブル２２５から、始点ノードへの標的サーバ宛のトラヒックの流入量を抽出する。これらの情報と始点ノードから終点ノードまでの経路情報（元の経路と新しく生成した経路）を用いることで、各経路への標的サーバ宛のトラヒックの振り分け量を算出する。
【００６７】
各経路に対して標的サーバ宛のトラヒックを再割り当てするため、振り分け量の計算前に、始点ノードから各経路に含まれるリンクに流出している標的サーバ宛のトラヒックがある場合は、そのリンクの利用可能帯域に標的サーバ宛のトラヒックで利用している分のトラヒック量を加算する。
【００６８】
各経路への標的サーバ宛のトラヒックの振り分け量の決定方法は、例えば、それぞれの経路に含まれるリンクのうち、最も利用可能帯域の小さいリンクを抽出し、各リンクの利用可能帯域をそれぞれの経路の利用可能帯域最小リンクの利用可能帯域の総和で割った割合ずつで標的サーバ宛のトラヒックを分散させることが考えられる。具体的には、利用可能な経路がaとbの2種類で、各経路において最も利用可能帯域の小さいリンクを1、2と仮定すると、経路aは(1の利用可能帯域)÷(1の利用可能帯域＋2の利用可能帯域)、経路bは(2の利用可能帯域)÷(1の利用可能帯域＋2の利用可能帯域)の割合で標的サーバ宛のトラヒックを分散させる。他の方法としては、抽出した情報と始点ノードから終点ノードまでの経路情報（元の経路と新しく生成した経路）およびトポロジ情報を入力として与えて、ネットワークフローの割り当て問題としてモデル化した線形計画問題を解くことで各経路へのトラヒックの振り分け量を決定することが考えられる。この時の制約条件としては、非特許文献２で解説されているように、需要収容制約、フロー保存制約、リンク容量使用率制約等が利用可能である。また、線形計画問題の目的関数は任意であり、例えば、帯域利用効率を重視して、始点ノードに対する標的サーバ宛通信需要を利用可能な経路に収容した際に、全てのリンクの利用率が最小になるようにトラヒックを分散すること等が考えられる。
【００６９】
新しく生成した経路において、始点ノードへの標的サーバ宛のトラヒックの流入が全て、始点ノード（ノードXとする）と直接リンクでつながる隣接ノード（ノードYとする）から流出したものである場合、トラヒックがノードXとノードY間を往復するのを避けるために、始点ノードを前述のノードYに置き換えて元々のノードXを経路から除外した新しい経路に変換し、ノードYから終点ノードまでの元の経路（ノードYで過去に輻輳回避処理が実行されていない場合、ノードYからノードXまでの経路とノードXから終点ノードまでの元の経路を組み合わせたもの）と新しい経路を経路情報として用いて、ノードYにおける標的サーバ宛のトラヒックをそれらの経路に分散させる量を決定し、ノードXでの処理の代わりに、ノードYで輻輳回避処理を実行しても良い。
【００７０】
ステップＳ１１１において、トポロジ管理機能部２１３は、決定した経路と振り分け量を各ノードにおける標的サーバ宛通信用の経路情報テーブル２２７に格納するとともに、経路設定機能部２１１に対して通知する。
【００７１】
ステップＳ１１３において、経路設定機能部２１１は、トポロジ管理機能部２１３から通知された標的サーバ宛のトラヒックの転送に用いる経路と各経路へのトラヒックの振り分け量をノードの転送設定に反映し、輻輳回避処理を完了する。
【００７２】
経路設定と経路制御は、決定した経路を用いて、標的サーバ宛のトラヒックをDDoS攻撃対策装置の設置されたデータセンタ入口ノードまで転送可能な如何なる技術を利用してもよく、MPLSやOpenFlow等の任意の技術が利用可能である。
【００７３】
なお、ステップＳ１０９において、輻輳と検知されたリンクと接続される両端のノードと新しく算出した経路に含まれるノードおよびこれらのノードで囲まれる領域の内側に存在するノード（自身の保有するトポロジ情報テーブル２１１に基づき判断）で局所的なトポロジを構築し（以降、この局所的なトポロジに含まれるノードの集合をノード群と呼ぶ）、各ノードにおいて、ノード群のどのノードとも接続されていないリンクから流入する標的サーバ宛のトラヒック量と自身から流入する標的サーバ宛のトラヒック量、および各リンクの最大容量・現在の利用可能帯域、トラヒックの転送に利用可能な経路情報等を入力として与え、局所的なトポロジを対象とした多品種フロー問題を線形計画法の任意のアルゴリズムによって解くことで、利用する経路および各経路またはリンクへのトラヒック量を決定しても良い。この時の制約条件としては、非特許文献２で解説されているように、需要収容制約、フロー保存制約、リンク容量使用率制約等が利用可能である。また、多品種フロー問題の目的関数は、任意であり、例えば、帯域利用効率を重視して、局所的なトポロジを構成する各ノードに対する標的サーバ宛のトラヒック需要を利用可能な経路に収容した際に、全てのリンクの利用率が最小になるようにトラヒックを分散することや、計算速度を重視して、局所的なトポロジの各ノードに対する標的サーバ宛のトラヒック需要を利用可能な経路に収容した際に、全てのリンクの利用率が閾値以下になるようにする等が考えられる。なお、本処理以前に実行した輻輳回避処理において、ノード群に含まれるノードを対象に輻輳回避処理を実行していた場合は、そのノードにおける以前の輻輳回避処理による設定をリセットしてから本処理を実行しても良い。また、輻輳と検知されたリンクと接続される両端のノードと新しく算出した経路に含まれるノードで囲まれる領域の内側に存在するノードを局所的なトポロジに含めるかは任意に決定して良い。また、本手順による輻輳回避を行う場合は、必要に応じて、ステップＳ１１１及びステップＳ１１３において、輻輳と検知されたノード以外においても算出した経路で転送を行うための設定の通知と適用を行う。
【００７４】
＜本発明の実施形態の効果＞
以上のように、本発明の実施形態によれば、標的サーバに対するDDoS攻撃が発生した場合、攻撃トラヒックをDDoS攻撃対策装置へ転送する際に発生する輻輳を迅速に回避することが可能になる。
【００７５】
具体的には、DDoS攻撃のトラヒックをDDoS攻撃対策装置へ転送する際にリンクが輻輳しそうなことを検知した場合、輻輳しそうなリンクの両端のノードを基準とした局所的な探索だけで新しい経路を発見することができ、ネットワーク全体を対象として探索する従来方式と比べて高速な経路探索が可能になる。
【００７６】
このように、任意のサーバを標的とした大規模なDDoS攻撃発生時に、トラヒックをDDoS攻撃対策装置へ転送して処理する際の経路の輻輳を迅速に回避可能になることで、経路が輻輳して他の通信サービスに影響を与える可能性を低減できる。
【００７７】
また、ネットワークへDDoS攻撃が流入する地点や攻撃の流量が変動し、ネットワークの輻輳箇所が変化する場合にもリアルタイムで追従して輻輳を回避することが可能になり、経路が輻輳して他の通信サービスに影響を与える可能性を低減できる。
【００７８】
さらに、本発明の実施形態を利用しない場合と比べて、より多くの量のDDoS攻撃のトラヒックをDDoS攻撃対策装置へ転送することができる。
【００７９】
説明の便宜上、本発明の実施形態に係る負荷分散装置は機能的なブロック図を用いて説明しているが、本発明の実施形態に係る負荷分散装置は、ハードウェア、ソフトウェア又はそれらの組み合わせで実現されてもよい。例えば、本発明の実施形態は、コンピュータに対して本発明の実施形態に係る負荷分散装置の各機能を実現させるプログラム、コンピュータに対して本発明の実施形態に係る方法の各手順を実行させるプログラム等により、実現されてもよい。また、各機能部が必要に応じて組み合わせて使用されてもよい。また、本発明の実施形態に係る方法は、実施形態に示す順序と異なる順序で実施されてもよい。
【００８０】
以上、標的サーバに対するDDoS攻撃が発生した場合、攻撃トラヒックをDDoS攻撃対策装置へ転送する際に発生する輻輳を迅速に回避するための手法について説明したが、本発明は、上記の実施形態に限定されることなく、特許請求の範囲内において、種々の変更・応用が可能である。
【符号の説明】
【００８１】
１０    負荷分散装置
１００  ネットワーク情報収集・攻撃/輻輳検知装置
１１０  処理部
１１１  ネットワーク情報収集機能部
１１３  攻撃検知機能部
１１５  ネットワーク輻輳検知機能部
１２０  記憶部
１２３  リンク情報テーブル
１２５  各ノードのトラヒック情報テーブル
１３０  通信機能部
２００  ネットワーク負荷分散装置
２１０  処理部
２１１  経路設定機能部
２１３  トポロジ管理機能部
２２０  記憶部
２２１  トポロジ情報テーブル
２２３  リンク情報テーブル
２２５  各ノードのトラヒック情報テーブル
２２７  各ノードにおける標的サーバ宛通信用の経路情報テーブル
２３０  通信機能部
【図１】
0006407092.tif 000002
【図２】
0006407092.tif 000003
【図３】
0006407092.tif 000004
【図４】
0006407092.tif 000005
【図５】
0006407092.tif 000006
【図６】
0006407092.tif 000007
【図７】
0006407092.tif 000008
【図８】
0006407092.tif 000009