JP2017028547A - 負荷分散装置、負荷分散システム、負荷分散方法及びプログラム - Google Patents

負荷分散装置、負荷分散システム、負荷分散方法及びプログラム Download PDF

Info

Publication number
JP2017028547A
JP2017028547A JP2015146089A JP2015146089A JP2017028547A JP 2017028547 A JP2017028547 A JP 2017028547A JP 2015146089 A JP2015146089 A JP 2015146089A JP 2015146089 A JP2015146089 A JP 2015146089A JP 2017028547 A JP2017028547 A JP 2017028547A
Authority
JP
Japan
Prior art keywords
packet
function unit
target server
route
congestion
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015146089A
Other languages
English (en)
Other versions
JP6421088B2 (ja
Inventor
浩明 前田
Hiroaki Maeda
浩明 前田
久史 小島
Hisashi Kojima
久史 小島
正夫 相原
Masao Aihara
正夫 相原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2015146089A priority Critical patent/JP6421088B2/ja
Publication of JP2017028547A publication Critical patent/JP2017028547A/ja
Application granted granted Critical
Publication of JP6421088B2 publication Critical patent/JP6421088B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】標的サーバに対するDDoS攻撃が発生した場合、標的サーバ宛のトラヒックをDDoS攻撃対策装置へ転送する際に発生する輻輳を迅速に回避する。【解決手段】標的サーバ宛のパケットを、DDoS攻撃対策装置へ転送する経路の輻輳を回避するための負荷分散装置は、標的サーバ宛のパケットをDDoS攻撃対策装置に転送するための識別子を、当該パケットに付与するためのフローエントリを生成し、標的サーバ宛のパケットの流入元ノードのパケット転送機能部に通知する経路設定機能部と、リンクの輻輳を検知するネットワーク輻輳検知機能部と、ネットワーク輻輳検知機能部で輻輳と検知されたリンクと直接つながる両端のノードを抽出し、当該両端のノード間において輻輳回避のための新しい経路を生成し、元の経路及び新しい経路への標的サーバ宛のパケットの振り分け量を算出するトポロジ管理機能部とを有する。【選択図】図12

Description

本発明は、負荷分散装置、負荷分散方法、負荷分散システム及びプログラムに関し、特に、DDoS(Distributed Denial of Service attack)攻撃対策の際の経路の輻輳を回避するための負荷分散装置、負荷分散方法、負荷分散システム及びプログラムに関する。
ISP(Internet Service Provider)等が接続される広域ネットワークでは、DDoS攻撃対策装置が、ネットワーク内のルータ、スイッチ、サーバ等の通信機器から定期的に収集したトラヒック情報やフロー情報を解析することで、サーバを標的とするDDoS攻撃を検知し、標的となっているサーバ(以後、標的サーバと表記)のトラヒックをDDoS攻撃対策装置に迂回させて検査し、標的サーバからDDoS攻撃のトラヒックを遮断することでDDoS攻撃に対処している(非特許文献1参照)。
一方で、近年、数100Gクラスの大規模なDDoS攻撃が発生しており、DDoS攻撃対策装置へ標的サーバ宛のトラヒックを転送する際の通信の経路が偏る場合、経路が輻輳して、他の通信サービスにも影響を及ぼす恐れがある。
輻輳を回避するためには、高速な利用経路と各経路へ収容するトラヒック量の算出に加えて、ルータ等のパケット転送を行うノードにおいて、算出された結果に基づき、パケットを適切な経路で転送するためのネットワーク経路制御技術が必要となる。
輻輳の検知等を契機に、特定のトラヒックの転送路を任意の経路に切り替える技術としては、OpenFlowやSegment Routing等の技術が存在する。Segment Routingでは、ノードへの最短経路を表すNode Segment IDと隣接ノードとのワンホップの経路を表すAdjacency Segment IDの2種類のSegment IDが規定されており、各ノードが自分のSegment IDをIGP(Interior Gateway Protocol)により、ネットワーク全体に広報することで、Segment IDを用いた経路制御を実現する(非特許文献2参照)。また、SDN(software-defined networking)コントローラ等と連携して、明示的に経路を指定することも可能である。なお、Segment Routingのデータプレーンには、MPLS(Multi-Protocol Label Switching)またはIPv6(Internet Protocol Version 6)の利用が想定されており(非特許文献3、非特許文献4参照)、MPLSを利用する場合は、Segment IDはMPLSのラベルで表現し、IPv6を利用する場合は、Segment IDをRouting Extensionヘッダで表現する。以降は、Segment Routingのデータプレーンに、MPLSを利用した場合(Segment ID = ラベルの場合)で説明する。
DDoS攻撃のトラヒックを検査して遮断する用途では、標的サーバ宛のトラヒックを全てDDoS攻撃対策装置に引き込むことを想定している。この場合、フロー単位で制御を行うOpenFlowよりも、各ノードに割り当てられたSegment IDをパケットに付与することで、Segment ID単位でパケットを一括制御でき、中継ノードに逐一経路変更等の設定を行う必要のないSegment Routingの方が、ノード等におけるパケット転送性能への影響の観点からより適していると考えられる。
しかし、Segment Routingでは、1つのパケットに対して、輻輳回避処理が重複して実施される場合には意図した動作を実現できず、そのままでは適用できない。例えば、あるノード0において、ノード0→ノード1→ノード2→ノード3とノード0→ノード3の2経路を用いた輻輳回避処理が行われている場合、ノード0では、前者でパケットを転送するために、パケットのヘッダにノード2とノード3のラベル(Segment ID)をスタックして、ノード1に送出するという経路制御が行われ、中継ノードであるノード1、ノード2では、パケットのヘッダに付与された先頭のラベルを見て、次に転送するノードを決定する。このため、経路の途中のノード1において、ノード1→ノード2、ノード1→ノード4のような2経路を用いた輻輳回避処理が行われている場合でも、ノード0から来たラベルが付与されたパケットは全てノード2に転送されてしまい、意図した動作を行えないという課題がある。また、輻輳回避処理を行うノード(ノード0やノード1)において、新しい経路でパケットを転送するために、ラベルを追加で付与するという通常の動作だけでは、ラベルが重複してスタックされたり、経路の不整合が生じたりすることで、正常にパケットを転送できない可能性がある。
水口孝則他,"トラフィック解析システムSAMURAIとサービス展開," NTT技術ジャーナル,2008.7 IETF, "Segment Routing Architecture, " https://datatracker.ietf.org/doc/draft-ietf-spring-segment-routing/ , 2015.5 IETF, "Segment Routing with MPLS data plane, " https://datatracker.ietf.org/doc/draft-ietf-spring-segment-routing-mpls/ , 2015.5 IETF, "IPv6 Segment Routing Header (SRH), " https://datatracker.ietf.org/doc/draft-previdi-6man-segment-routing-header/ , 2015.5
大規模なDDoS攻撃に対して、DDoS攻撃対策装置へ標的サーバ宛のトラヒックを転送して対処する従来技術を適用する場合において、転送に用いる経路が偏ることでの輻輳を回避するためには、複数の経路を用いて適切にトラヒックを分散させながら、標的サーバ宛のトラヒックをDDoS攻撃対策装置まで転送できる必要がある。
利用経路と各経路へ収容するトラヒック量を線形計画法によって解を求める方式では、ネットワークの規模(ノード数、リンク数)が大きい場合や、DDoS攻撃での多地点からネットワークにトラヒックが流入する場合には、計算量が増加し、迅速な求解ができない。そのために、転送経路上でリンクの輻輳を検知した場合、そのリンクにDDoS攻撃対策装置宛のトラヒックを流出させているノード(始点ノード)から、そのリンクで接続された対面のノードまでの別の経路を算出して、元の経路との間でトラヒックを分散させることで、局所的に輻輳回避を行う必要がある。
更に、任意のサーバを標的とした大規模なDDoS攻撃のトラヒックをDDoS攻撃対策装置へ転送して処理する際に、転送経路上で発生した輻輳を局所的に回避する技術の実現に必要なネットワーク経路制御には、転送装置や転送装置を制御するコントローラの負荷が小さいことが想定されるSegment Routingの技術を利用することが有力であると考えられるが、1つのパケットに対して、輻輳回避処理が重複して実施される場合には意図した動作を実現できず、そのままでは適用できない。
本発明は、標的サーバに対するDDoS攻撃が発生した場合、標的サーバ宛のトラヒックをDDoS攻撃対策装置へ転送する際に発生する輻輳を迅速に回避することを目的とする。
本発明の一形態に係る負荷分散装置は、
DDoS(Distributed Denial of Service)攻撃の標的となっている標的サーバ宛のパケットを、DDoS攻撃対策装置へ転送する経路の輻輳を回避するための負荷分散装置であって、
前記標的サーバに対するDDoS攻撃の発生を検知する攻撃検知機能部と、
前記標的サーバ宛のパケットを前記DDoS攻撃対策装置に転送するための識別子を、当該パケットに付与するためのフローエントリを生成し、前記標的サーバ宛のパケットの流入元ノードのパケット転送機能部に通知する経路設定機能部と、
リンクの輻輳を検知するネットワーク輻輳検知機能部と、
前記ネットワーク輻輳検知機能部で輻輳と検知されたリンクと直接つながる両端のノードを抽出し、当該両端のノード間において輻輳回避のための新しい経路を生成し、元の経路及び新しい経路への前記標的サーバ宛のパケットの振り分け量を算出するトポロジ管理機能部と、
を有し、
前記経路設定機能部は、前記トポロジ管理機能部において算出された元の経路及び新しい経路への前記標的サーバ宛のパケットの振り分け量に基づいて、前記DDoS攻撃対策装置に転送される前記標的サーバ宛のパケットを振り分けるためのフローエントリを生成し、輻輳回避を実施するノードのパケット転送機能部に通知することを特徴とする。
本発明の一形態に係る負荷分散システムは、
DDoS(Distributed Denial of Service)攻撃の標的となっている標的サーバ宛のパケットを、DDoS攻撃対策装置へ転送する経路の輻輳を回避するための負荷分散装置と、パケットに付与された識別子に基づいてパケットを転送するノードとを有する負荷分散システムであって、
前記負荷分散装置は、
前記標的サーバに対するDDoS攻撃の発生を検知する攻撃検知機能部と、
前記標的サーバ宛のパケットを前記DDoS攻撃対策装置に転送するための識別子を、当該パケットに付与するためのフローエントリを生成し、前記標的サーバ宛のパケットの流入元ノードに通知する経路設定機能部と、
リンクの輻輳を検知するネットワーク輻輳検知機能部と、
前記ネットワーク輻輳検知機能部で輻輳と検知されたリンクと直接つながる両端のノードを抽出し、当該両端のノード間において輻輳回避のための新しい経路を生成し、元の経路及び新しい経路への前記標的サーバ宛のパケットの振り分け量を算出するトポロジ管理機能部と、
を有し、
前記経路設定機能部は、前記トポロジ管理機能部において算出された元の経路及び新しい経路への前記標的サーバ宛のパケットの振り分け量に基づいて、前記DDoS攻撃対策装置に転送される前記標的サーバ宛のパケットを振り分けるためのフローエントリを生成し、輻輳回避を実施するノードに通知し、
前記ノードは、
前記負荷分散装置から通知されたフローエントリに基づいて、パケットを転送するパケット転送機能部を有することを特徴とする。
本発明の一形態に係る負荷分散方法は、
DDoS(Distributed Denial of Service)攻撃の標的となっている標的サーバ宛のパケットを、DDoS攻撃対策装置へ転送する経路の輻輳を回避するための負荷分散装置における負荷分散方法であって、
前記標的サーバに対するDDoS攻撃の発生を検知するステップと、
前記標的サーバ宛のパケットを前記DDoS攻撃対策装置に転送するための識別子を、当該パケットに付与するためのフローエントリを生成し、前記標的サーバ宛のパケットの流入元ノードのパケット転送機能部に通知するステップと、
リンクの輻輳を検知するステップと、
前記輻輳と検知されたリンクと直接つながる両端のノードを抽出し、当該両端のノード間において輻輳回避のための新しい経路を生成し、元の経路及び新しい経路への前記標的サーバ宛のパケットの振り分け量を算出するステップと、
前記算出された元の経路及び新しい経路への前記標的サーバ宛のパケットの振り分け量に基づいて、前記DDoS攻撃対策装置に転送される前記標的サーバ宛のパケットを振り分けるためのフローエントリを生成し、輻輳回避を実施するノードのパケット転送機能部に通知するステップと
を有することを特徴とする。
本発明の一形態に係るプログラムは、
DDoS(Distributed Denial of Service)攻撃の標的となっている標的サーバ宛のパケットを、DDoS攻撃対策装置へ転送する経路の輻輳を回避するために、コンピュータを、
前記標的サーバに対するDDoS攻撃の発生を検知する攻撃検知機能手段、
前記標的サーバ宛のパケットを前記DDoS攻撃対策装置に転送するための識別子を、当該パケットに付与するためのフローエントリを生成し、前記標的サーバ宛のパケットの流入元ノードのパケット転送機能部に通知する経路設定機能手段、
リンクの輻輳を検知するネットワーク輻輳検知機能手段、及び
前記ネットワーク輻輳検知機能手段で輻輳と検知されたリンクと直接つながる両端のノードを抽出し、当該両端のノード間において輻輳回避のための新しい経路を生成し、元の経路及び新しい経路への前記標的サーバ宛のパケットの振り分け量を算出するトポロジ管理機能手段、
として機能させ、
前記経路設定機能手段は、前記トポロジ管理機能手段において算出された元の経路及び新しい経路への前記標的サーバ宛のパケットの振り分け量に基づいて、前記DDoS攻撃対策装置に転送される前記標的サーバ宛のパケットを振り分けるためのフローエントリを生成し、輻輳回避を実施するノードのパケット転送機能部に通知することを特徴とする。
本発明によれば、標的サーバに対するDDoS攻撃が発生した場合、標的サーバ宛のトラヒックをDDoS攻撃対策装置へ転送する際に発生する輻輳を迅速に回避することが可能になる。
本発明の一実施形態における負荷分散装置を含む全体構成図 ネットワーク情報収集・攻撃/輻輳検知装置の構成の一例 ネットワーク負荷分散装置の構成の一例 パケット転送装置の構成の一例 トポロジ情報テーブルの一例 リンク情報テーブルの一例 各ノードのトラヒック情報テーブルの一例(ノードDの場合) 各ノードにおける標的サーバ宛通信用の経路情報テーブルの一例(ノードDの場合) 各ノードにおける初期のフローエントリの一例 標的サーバ宛のパケットをDDoS攻撃対策装置に転送するためのフローエントリの一例 輻輳回避を実施するノードにおけるフローエントリの一例 本発明の一実施形態における負荷分散システムの動作手順例を示すシーケンス図
以下、図面を参照して本発明の実施形態について説明する。
本発明の実施形態では、DDoS攻撃の標的となっている標的サーバ宛のパケットを、DDoS攻撃対策装置へ転送する経路の輻輳を回避するための負荷分散装置について説明する。
輻輳回避のために、特定のトラヒックの転送路を任意の経路に切り替える技術としてSegment Routingを利用し、Segment Routingのデータプレーンに、MPLSを利用することを前提とする。MPLSでは、パケットを転送するための識別子としてラベルが用いられる。
ラベルは、標的サーバ宛のトラヒックをDDoS攻撃対策装置に引き込む目的と転送経路上で発生する輻輳を回避する目的でしか利用されないことを前提とし、DDoS攻撃対策装置を表すラベルの付与により、DDoS攻撃対策装置まで標的サーバ宛のトラヒックを引き込み、ラベルが付与されたパケットのみを対象に、経由ノードを表すラベルをパケットに付与することで、複数経路を用いた局所的な輻輳回避処理を実施する。このため、パケットにラベルが付与されている場合、最後のラベルは、必ず、DDoS攻撃対策装置を表すラベル(標的サーバ宛のトラヒックをDDoS攻撃対策装置に引き込むための経路制御に用いるラベル)になる。
本発明の実施形態では、輻輳回避を実施するノードのパケット転送機能部において、到達したパケットが既に輻輳回避処理を実施中かを判定し、実施中の場合は、その処理に利用しているラベルを全て除去した後に、そのノードにおける輻輳回避処理を実行する。
MPLSの場合、パケットの先頭ラベルのS(Bottom of Stack)フィールドが1である場合、最後のラベルであると判定でき、Sフィールドが1ではない場合、最後のラベルではないと判定できる。従って、パケットの先頭ラベルのSフィールドを確認し、値が1でない場合は、既に輻輳回避処理を実施中のパケットと判定し、パケットに付与されたラベルのSフィールドの値が1のラベルに到達するまで、ラベルを取り外す。その後、自身の輻輳回避処理に利用している経路でパケットを転送するために必要なラベルを付与して、任意の経路での転送を実現する。
以上の仕組みによって、1つのパケットに対して、輻輳回避処理が重複して実施される場合にも、Segment Routingを用いて適切な経路制御が実現可能になる。
<本発明の一実施形態における負荷分散装置の構成>
図1に、本発明の一実施形態におけるネットワーク構成図を示す。
ここでは、一例として、ネットワーク(ISP網等)内にある第2のデータセンタ内のサーバがDDoS攻撃の標的(標的サーバ)となった場合に、エッジルータ等から、第1のデータセンタに存在するDDoS攻撃対策装置に、標的サーバ宛のトラヒックを転送して対処することを想定している。また、ルータ、スイッチ、サーバ等の通信機器をノード(パケット転送装置)、機器間をつなぐケーブルをリンクとし、ネットワークをノードとリンクの集合で構成されるグラフで表現する。
図1では、一例として、後述のネットワーク情報収集機能部111、攻撃検知機能部113、ネットワーク輻輳検知機能部115を1つのネットワーク情報収集・攻撃/輻輳検知装置100として表現し、経路設定機能部211、トポロジ管理機能部213を1つのネットワーク負荷分散装置200として表現し、さらに、ネットワーク情報収集・攻撃/輻輳検知装置100及びネットワーク負荷分散装置200を1つの負荷分散装置10として表現しているが、それぞれの機能の組み合わせおよび実装方法は任意である。
負荷分散装置10は、標的サーバ宛のトラヒックをDDoS攻撃対策装置へ転送する経路の輻輳を回避するための装置である。負荷分散装置10は、プロセッサ等のCPU(Central Processing Unit)、RAM(Random Access Memory)やROM(Read Only Memory)等のメモリ装置、ハードディスク等の記憶装置等から構成されたコンピュータでもよい。例えば、負荷分散装置10の機能及び処理は、記憶装置又はメモリ装置に格納されているデータやプログラムをCPUが実行することによって実現される。
図2に、ネットワーク情報収集・攻撃/輻輳検知装置100の構成の一例を示す。ネットワーク情報収集・攻撃/輻輳検知装置100は、処理部110としてのネットワーク情報収集機能部111と、攻撃検知機能部113と、ネットワーク輻輳検知機能部115とを含む。また、ネットワーク情報収集・攻撃/輻輳検知装置100は、記憶部120に格納されるテーブルとしてのリンク情報テーブル123と、各ノードのトラヒック情報テーブル125とを含む。更に、ネットワーク情報収集・攻撃/輻輳検知装置100は、ネットワーク負荷分散装置200、ノード(パケット転送装置)等と通信するための通信機能部130を含む。
ネットワーク情報収集機能部111は、ネットワーク内に存在するノード(パケット転送装置)および攻撃検知機能部113、ネットワーク輻輳検知機能部115、トポロジ管理機能部213との通信機能を有する。
また、ネットワーク情報収集機能部111は、ネットワーク内の各リンクの利用可能帯域情報を任意のタイミングで収集し、リンク情報テーブル123に格納するとともに、リンク情報テーブル123の情報をネットワーク輻輳検知機能部115、トポロジ管理機能部213に通知する機能を有する。また、各ノードにおける、任意のIPアドレス宛のトラヒックの各ポートからの流入量・流出量を任意のタイミングで収集し、各ノードのトラヒック情報テーブル125に格納するとともに、トラヒック情報テーブル125の情報を経路設定機能部211、トポロジ管理機能部213に通知する機能を有する。
さらに、ネットワーク情報収集機能部111は、フロー情報(IPアドレス・ポート番号・プロトコル番号・TCPフラグ情報とフロー毎の通信量等)等を定期的に収集し、攻撃検知機能部113に通知する機能を有する。ここで、情報収集とデータの格納は、管理者等が手動で操作を実行したときや事前設定された時間間隔毎・攻撃検知時等に自動収集等、任意のタイミングで実施可能である。また、情報の収集自体は、ポートミラーリング等のパケットレベルの収集技術やNetFlow、OpenFlow等のフローレベル等での収集技術等を用いて実現することも可能である。
攻撃検知機能部113は、ネットワーク情報収集機能部111と経路設定機能部211とトポロジ管理機能部213との通信機能を有する。また、ネットワーク情報収集機能部111から通知されたフロー情報を解析することで、任意のサーバに対するDDoS攻撃の発生を検知する機能を有する。
さらに、攻撃検知機能部113は、経路設定機能部211とトポロジ管理機能部213に対して、標的サーバの情報(IPアドレス等)を通知する機能を有する。なお、フロー情報に基づくDDoS攻撃の検知は、SAMURAI(非特許文献1参照)等の技術を用いて実現することも可能である。
ネットワーク輻輳検知機能部115は、トポロジ管理機能部213との通信機能を有する。また、ネットワーク輻輳検知機能部115は、ネットワーク情報収集機能部111から通知されたリンク情報テーブル123に格納された情報(リンクの最大容量、リンクの利用可能帯域、リンクの輻輳検知のための閾値)に基づき、リンクの輻輳を検知する機能を有する。
さらに、ネットワーク輻輳検知機能部115は、トポロジ管理機能部213に、輻輳と検知されたリンクのリンク識別子を通知する機能を有する。
図3に、ネットワーク負荷分散装置200の構成の一例を示す。ネットワーク負荷分散装置200は、処理部210としての経路設定機能部211と、トポロジ管理機能部213とを含む。また、ネットワーク負荷分散装置200は、記憶部220に格納されるテーブルとしてのトポロジ情報テーブル221と、リンク情報テーブル223と、各ノードのトラヒック情報テーブル225と、各ノードにおける標的サーバ宛通信用の経路情報テーブル227とを含む。更に、ネットワーク負荷分散装置200は、ネットワーク情報収集・攻撃/輻輳検知装置100、ノード(パケット転送装置)等と通信するための通信機能部230を含む。
経路設定機能部211は、ネットワーク内に存在するノード(パケット転送装置)および攻撃検知機能部113、トポロジ管理機能部213との通信機能を有する。また、攻撃検知機能部113から通知された標的サーバの情報(IPアドレス等)とネットワーク情報収集機能部111から通知された各ノードのトラヒック情報テーブル225に基づき、標的サーバ宛のトラヒックの流入元のノード(例えば、エッジルータ)を抽出する機能を有する。また、標的サーバ宛パケットをDDoS攻撃対策装置に転送するためのラベル(= DDoS攻撃対策装置を表すSegment ID)を、標的サーバ宛のパケットに付与するフローエントリ(図10)を生成し、抽出したノードのパケット転送機能部に生成したフローエントリを通知する機能を有する。
さらに、経路設定機能部211は、トポロジ管理機能部213から通知された各ノードにおける標的サーバ宛通信用の経路情報テーブル(図8)の情報(標的サーバ宛のトラヒックを転送するために用いる経路と各経路への振り分け量)に基づき、ラベルの付与されたパケットを各経路に所望の割合で振り分けて転送するためのフローエントリ(図11)を生成する。
このとき、1つのパケットに対して輻輳回避処理が重複して実施される場合にも正常に転送できるように、パケットが輻輳回避処理を未実施の場合と実施中の場合のそれぞれの処理内容を記載したフローエントリを生成する。具体的には、パケットが既に輻輳回避処理を実施中の場合(すなわち、ラベルが付与されており、Sフィールドが1でない場合)は、パケットに付与されたラベルのSフィールドの値が1のラベルに到達するまで、先頭から順にラベルを取り外し、その後、トポロジ管理機能部213から通知された経路情報テーブル(図8)に記された経路で転送するためのラベルをパケットに付与して、ネクストホップのノードにパケットを転送するという処理を記載したフローエントリを生成する。図11では、一例として、ノードDにおいて、ノードD→ノードF→ノードGの経路で転送を行う場合を想定し、Sフィールド=1のラベルに到達するまで、先頭から順にラベルを外した後に、ノードGを表すラベルをパケットに付与し、ネクストホップであるノードFにパケットを転送するという処理を記載したフローエントリを示している。また、パケットが輻輳回避処理を実施していない場合(ラベルが付与されており、Sフィールドが1の場合)は、ラベルを取り外す処理は実施せずに、経路情報テーブル(図8)に記された経路で転送するためのラベルをパケットに付与して、ネクストホップのノードにパケットを転送するという処理を記載したフローエントリを生成する。
経路設定機能部211は、また、輻輳回避を実施するノードのパケット転送機能部に、生成したフローエントリを通知する機能を有する。なお、輻輳回避を実施するノードは、経路情報テーブル(図8)に格納されたノード識別子から判断する。
トポロジ管理機能部213は、ネットワーク輻輳検知機能部115、攻撃検知機能部113、経路設定機能部211、ネットワーク情報収集機能部111との通信機能を有する。また、ネットワーク輻輳検知機能部115から通知された輻輳と検知されたリンクのリンク識別子と自身の保有するトポロジ情報テーブル221に格納された情報に基づき、輻輳と検知されたリンクと直接つながる両端のノード間において、輻輳と検知されたリンクを経由しない新しい経路を探索する機能を有する。具体的な探索方法としては、輻輳と検知されたリンクのリンク識別子と直接繋がる両端のノードを抽出し、抽出された両端のノード間において、既にDDoS攻撃のトラヒックをDDoS攻撃対策装置へ転送する経路として利用されているリンクを除く。例えば、当該両端のノードのそれぞれについて、輻輳と検知されたリンクと、自身で保有する各ノードにおける標的サーバ宛通信用の経路情報テーブル227に格納された情報から、既に標的サーバ宛通信用の経路として登録されているリンクを除く。リンクを除いた後に、当該両端のノードに接続されたノードを列挙し、両端のノードのそれぞれからホップ数の少ない順にノードを探索し、両ノード間で共通するノードが見つかった場合は探索を終了する。具体的には、両ノード間の1ホップ目のノードで共通するノードがない場合は、2ホップ目のノード、3ホップ目のノード、・・・と列挙していき、共通するノードを発見した時点で探索を終了する。共通するノードを発見した場合に、各ノードから共通するノードまでの経路を組み合わせることで、両ノード間の輻輳回避のための新しい経路を生成する。
トポロジ管理機能部213は、あるノードの任意のリンクが、既に標的サーバ宛通信用の経路として登録されているかを判断する機能を有する。具体的には、攻撃検知機能部113から通知された標的サーバの情報(IPアドレス等)および自身の保有するトポロジ情報テーブル221と、自身の保有する各ノードにおける標的サーバ宛通信用の経路情報テーブル227に格納された情報に基づき、標的サーバのIPアドレスの利用経路にそのリンクが含まれているかの判定を行うことで判断する。
また、トポロジ管理機能部213は、輻輳と検知されたリンクと直接繋がる両端のノードのどちらが始点ノードで、どちらが終点ノードかを判断する機能を有する。例えば、自身の保有するトポロジ情報テーブル221に含まれるノードの地理的情報に基づき、DDoS攻撃対策装置の設置されたデータセンタの入り口ノードに近い方を終点ノード、データセンタの入り口ノードに遠い方を始点ノードと判断することや輻輳と検知されたリンクと直接つながる両端のノードのポートにおける標的サーバ宛通信の向きをネットワーク情報収集機能部111から通知された各ノードのトラヒック情報テーブル225から抽出することで、輻輳と検知されたリンクに標的サーバ宛のトラヒックを流出させているノードを始点ノード、輻輳と検知されたリンクから標的サーバ宛のトラヒックが流入しているノードを終点ノードと判断することが考えられる。
また、トポロジ管理機能部213は、ネットワーク情報収集機能部111から通知されたリンク情報テーブル223から、新しく生成された経路に含まれるリンクの帯域情報と元の経路に含まれるリンクの利用可能帯域を抽出する機能と、攻撃検知機能部113から通知された標的サーバの情報(IPアドレス等)とネットワーク情報収集機能部111から通知された各ノードのトラヒック情報テーブル225から、始点ノードへの標的サーバ宛のトラヒックの流入量を抽出する機能とを有する。
さらに、トポロジ管理機能部213は、抽出した情報と始点ノードから終点ノードまでの経路情報(元の経路と新しく生成した経路)を用いて、各経路への標的サーバ宛のパケットの振り分け量を算出する機能を有する。また、決定した経路と振り分け量を各ノードにおける標的サーバ宛通信用の経路情報テーブル227に格納するとともに、この情報を経路設定機能部211に対して通知する機能を有する。
具体的な標的サーバ宛のパケットの振り分け量の算出方法としては、元の経路に含まれるリンクの利用可能帯域及び新しい経路に含まれるリンクの利用可能帯域に基づいて算出することが考えられる。例えば、それぞれの経路に含まれるリンクのうち、最も利用可能帯域の小さいリンクを抽出し、各リンクの利用可能帯域をそれぞれの経路の利用可能帯域最小リンクの利用可能帯域の総和で割った割合ずつで標的サーバ宛のパケットを分散させることが考えられる。具体的には、利用可能な経路がaとbの2種類で、各経路において最も利用可能帯域の小さいリンクを1、2と仮定すると、経路aは(1の利用可能帯域)÷(1の利用可能帯域+2の利用可能帯域)、経路bは(2の利用可能帯域)÷(1の利用可能帯域+2の利用可能帯域)の割合で標的サーバ宛のパケットを分散させる。その他の決定方法としては、抽出した情報と始点ノードから終点ノードまでの経路情報(元の経路と新しく生成した経路)およびトポロジ情報を入力として与えて、ネットワークフローの割り当て問題としてモデル化した線形計画問題を解くことで各経路への振り分け量を決定することが考えられる。この時の制約条件としては、需要収容制約、フロー保存制約、リンク容量使用率制約等が利用可能である。また、線形計画問題の目的関数は任意であり、例えば、帯域利用効率を重視して、始点ノードに対する標的サーバ宛のトラヒック需要を利用可能な経路に収容した際に、全てのリンクの利用率が最小になるようにトラヒックを分散すること等が考えられる。
なお、輻輳を回避するための経路と標的サーバ宛のパケットの振り分け量の決定方法としては、前述したもの以外にも、輻輳と検知されたリンクと接続される両端のノードと新しく算出した経路に含まれるノードおよびこれらのノードで囲まれる領域の内側に存在するノード(自身の保有するトポロジ情報テーブル221に基づき判断)で局所的なトポロジを構築し(以降、この局所的なトポロジに含まれるノードの集合をノード群と呼ぶ)、各ノードにおいて、ノード群のどのノードとも接続されていないリンクから流入する標的サーバ宛のトラヒック量と自身から流入する標的サーバ宛のトラヒック量、および各リンクの最大容量・現在の利用可能帯域、トラヒックの転送に利用可能な経路情報等を入力として与え、局所的なトポロジを対象とした多品種フロー問題を線形計画法の任意のアルゴリズムによって解くことで、輻輳回避のために利用する新しい経路を決定し直し、各経路またはリンクへのパケットの振り分け量を決定するという方法も利用可能であり、任意の方法を選択できる。この時の制約条件としては、需要収容制約、フロー保存制約、リンク容量使用率制約等が利用可能である。また、多品種フロー問題の目的関数は、任意であり、例えば、帯域利用効率を重視して、局所的なトポロジを構成する各ノードに対する標的サーバ宛のトラヒック需要を利用可能な経路に収容した際に、全てのリンクの利用率が最小になるようにパケットを分散することや、計算速度を重視して、局所的なトポロジの各ノードに対する標的サーバ宛のトラヒック需要を利用可能な経路に収容した際に、全てのリンクの利用率が閾値以下になるようにする等が考えられる。なお、輻輳と検知されたリンクと接続される両端のノードと新しく算出した経路に含まれるノードで囲まれる領域の内側に存在するノードを局所的なトポロジに含めるかは任意に決定して良い。
なお、図2及び図3に示す構成例では、ネットワーク情報収集・攻撃/輻輳検知装置100の記憶部120に、リンク情報テーブル123と各ノードのトラヒック情報テーブル125が存在し、ネットワーク負荷分散装置200の記憶部220にトポロジ情報テーブル221、リンク情報テーブル223、各ノードのトラヒック情報テーブル225及び各ノードにおける標的サーバ通信用の経路情報テーブル227が存在するが、これらのテーブルの実装方法は任意であり、例えば、負荷分散装置10内の記憶部、負荷分散装置10に接続した記憶装置等に設けられてもよい。
図4に、パケット転送装置300の構成の一例を示す。パケット転送装置300は、パケットに付与されたラベルに基づいてパケットを転送するノードである。パケット転送装置300は、処理部310としてのパケット転送機能部311を含む。また、パケット転送装置300は、記憶部320に格納されるテーブルとしてのフローテーブル321を含む。フローテーブル321は、以下に図9〜図11を参照して説明するように、パケットを転送するための任意のフローエントリを含む任意数のフローエントリで構成される。更に、パケット転送装置300は、ネットワーク情報収集・攻撃/輻輳検知装置100、ネットワーク負荷分散装置200、他のノード(パケット転送装置)等と通信するための通信機能部330を含む。
パケット転送機能部311は、ネットワーク情報収集機能部111、経路設定機能部211、他のパケット転送装置との通信機能を有する。また、経路設定機能部211から通知されたフローエントリ(図9〜図11)を自身の保有するフローテーブル321に格納するとともに、フローエントリに従い、他のパケット転送装置に対して、パケットを転送する機能を有する。
また、パケット転送機能部311は、Segment Routingの転送制御に利用されるラベル(MPLSラベル等)がパケットに付与されているか、付与されたラベルが最後のラベルかを判定する機能を有する。例えば、付与されたラベルが最後のラベルかは、Segment RoutingのデータプレーンにMPLSを利用する場合は、ラベルのSフィールドの値を見て、1なら最後のラベルと判定できる。さらに、Segment Routingの転送制御に利用されるラベルをパケットに付与、または、取り外す機能を有する。
また、パケット転送機能部311は、ある条件について、フローエントリが複数存在する場合は、フローエントリに記載された分散の割合に従い、その条件にマッチするパケットの転送に利用するフローエントリを選択する機能(パケットを任意の経路に指定された分散の割合に従って振り分けて転送する機能)を有する。なお、パケットを各経路に振り分ける際には、例えば、暗号学等で用いられるハッシュ関数をフロー情報(送受信IPアドレス、送受信ポート番号、プロトコル等)に適用して得られたハッシュ値に応じて、パケットの利用する経路を選択するハッシュ法等が利用可能であり、ハッシュ関数の特性上、同一のフロー情報を持つパケットからは、必ず同一のハッシュ値が得られるため、必ず同じ経路が選択され、同一フローに属するパケットの到着順序逆転を防ぐことができる。なお、図9〜図11では、割合に従い、各経路にパケットを振り分ける場合を例示しているが、1つ目の経路に10Gbpsまでトラヒックを転送する等の転送量を与えて振り分けることも想定される。
次に、図5〜図11を参照して、各種情報を格納するためのテーブルについて説明する。
図5は、ネットワーク全体のトポロジ情報を管理するためのトポロジ情報テーブル221の一例である。本テーブルは、ノードを一意に識別可能なノード識別子、各ノードの全ポートに関する接続先のリンク・接続先のノード、ノードの存在する地理情報等で構成される。なお、これらの情報の取得方法は任意であるが、例えば、ネットワークの管理者が各ノードの情報を事前に登録する等が考えられる。
図6は、ネットワーク内の全てのリンクの情報を管理するためのリンク情報テーブル123及び223の一例である。本テーブルは、リンクを一意に識別可能なリンク識別子、リンクの最大容量、リンクの観測時点の利用可能帯域、リンクの輻輳検知のための閾値等で構成される。リンクの利用可能帯域は、定期的または管理者等の操作に従い、ネットワーク情報収集機能部111により収集されて随時更新される。また、リンクの輻輳検知のための閾値は、図6のように、値ベースで設定することや利用可能帯域が、最大容量の80%を超えた場合等の割合ベース等、任意の形式で設定することができる。閾値の値は、管理者が個々のリンクに値を設定するほか、リンクの最大容量の80%等の割合等で全てのリンクに自動設定することもできる。
図7は、ネットワークに存在する各ノードで任意の宛先IPアドレスのトラヒックがどのポートから流入・流出しているかを管理するための各ノードのトラヒック情報テーブル125及び225の一例である。図7にはノードDの例が示されている。本テーブルは、ノードを一意に識別可能なノード識別子、パケットの宛先IPアドレス、それらのトラヒックがノードのどのポート番号から流入・流出しているかとその通信量等の情報で構成される。これらの情報は、定期的または管理者等の操作に従い、ネットワーク情報収集機能部111により収集されて随時更新される。
図8は、ネットワーク内に存在するノード毎に標的サーバ宛のトラヒックの転送経路を管理するための各ノードにおける標的サーバ宛通信用の経路情報テーブル227の一例である。図8には、ノードDの例が示されている。本テーブルは、ノードを一意に識別可能なノード識別子、標的サーバのIPアドレス、転送に利用する経路、その経路へのトラヒックの分散の割合等で構成されている。なお、各経路へのトラヒックの分散は、図8に示すような割合ベースの他に、10Gbps等の値を登録して、その値を上限として分散する等の設定も可能である。また、利用経路と分散の割合は、トポロジ管理機能部213によって算出されるほか、管理者が事前に手動設定する等も可能である。
図9は、各ノード(パケット転送装置)における初期のフローエントリの一例である。図9〜図11のフローエントリは、条件、処理内容、分散の割合等で構成され、パケット転送装置300に到達したパケットのヘッダ情報等を確認し、条件にマッチするパケットの場合は、記載された処理内容を適用する。また、分散の割合は、パケットの転送に利用可能な複数の経路が存在するときに、各経路にパケットを分散させるために利用される。また、図9のフローエントリは、ネットワーク内の全てのパケット転送装置300に予め設定されていることを前提としている。
図10は、標的サーバ宛のパケットをDDoS攻撃対策装置に転送するための、エッジノード等におけるフローエントリの一例である。
攻撃検知機能部113で特定のサーバに対するDDoS攻撃を検知した場合、経路設定機能部211によって、本フローエントリが生成される。また、外部のネットワーク等から本ネットワークに対して、当該サーバ宛のトラヒックが流入している最初のノード(エッジルータ)等のパケット転送機能部311に対して、経路設定機能部211から本フローエントリが通知され、パケット転送機能部311によって、パケットの転送のためのルールとして設定される。なお、図10のフローエントリは、図9のフローエントリよりも優先度の高いフローエントリとして設定され、図10の処理後に、図9のフローエントリが参照される。
図11は、輻輳回避を実施するノードのフローエントリの一例である。図11は、図8に示すノードDにおいて、ノードD→ノードG、ノードD→ノードF→ノードGの2経路を利用した輻輳回避を行う場合を示している。ネットワーク輻輳検知機能部115で、特定リンクの輻輳を検知した場合、トポロジ管理機能部213で算出した輻輳回避のために利用する経路と各経路に収容する通信量に基づき、経路設定機能部211によって、本フローエントリが生成される。また、輻輳回避を実施するノードのパケット転送機能部311に対して、経路設定機能部211から本フローエントリが通知され、パケット転送機能部311によって、パケットの転送のためのルールとして設定される。なお、輻輳回避を実施するノードでは、図9のフローエントリは、図11のフローエントリに置き換えられる。
<本発明の一実施形態における負荷分散装置における動作手順例>
次に、図12を参照して、本発明の一実施形態における動作手順例を説明する。
ネットワーク情報収集機能部111は、ネットワーク内の各リンクの利用可能帯域情報を定期的に収集し、リンク情報テーブル123に格納するとともに、リンク情報テーブル123の情報をネットワーク輻輳検知機能部115、トポロジ管理機能部213に通知する。また、各ノードにおける、任意のIPアドレス宛のトラヒックの各ポートからの流入量・流出量を任意のタイミングで収集し、各ノードのトラヒック情報テーブル125に格納するとともに、トラヒック情報テーブル125の情報を経路設定機能部211、トポロジ管理機能部213に通知する。さらに、フロー情報(IPアドレス・ポート番号・プロトコル番号・TCPフラグ情報とフロー毎の通信量等)等を定期的に収集し、攻撃検知機能部113に通知する。
また、Segment Routingによるパケットの転送制御に用いる各ノードの識別子(Segment ID)は、標的サーバ宛のトラヒックをDDoS攻撃対策装置に引き込む目的と転送経路上で発生する輻輳を回避する目的でしか利用されないことを前提とする。また、Segment Routingのデータプレーンには、MPLSを利用し、各ノードの識別子は、MPLSのラベルで表現する。さらに、各ノードからDDoS攻撃対策装置までの経路(Node Segment相当)と各ノードと隣接ノードまでの経路(Adjacency Segment相当)は事前にネットワーク全体で広報・設定済みであり、任意のノードを表すラベルをパケットに付与することで、各ノードは、事前設定された経路を用いて任意のノードまで当該パケットを転送可能とする。また、各ノードには、図9のフローエントリが設定済みとする。
以降、ネットワーク情報収集機能部111の情報に基づき、攻撃検知機能部113が攻撃を検知するところからの動作手順を説明する。
ステップS101において、攻撃検知機能部113は、ネットワーク情報収集機能部111から通知されたフロー情報を解析することで、サーバに対するDDoS攻撃の発生を検知し、経路設定機能部211とトポロジ管理機能部213に対して、標的サーバの情報(IPアドレス等)を通知する。
ステップS103において、経路設定機能部211は、通知された標的サーバの情報(IPアドレス等)に基づき、標的サーバ宛のパケットをDDoS攻撃対策装置に転送するためのラベルを、標的サーバ宛のパケットに付与するためのフローエントリ(図10)を生成する。
図10に示すフローエントリは、一例として、標的サーバのIPアドレスを1.1.1.1とし、パケットの宛先が1.1.1.1にマッチする場合は、DDoS攻撃対策装置を表すラベルを付与して他のフローエントリ(ここでは、図9)に従い転送するという処理を記載している。
ステップS105において、経路設定機能部211は、攻撃検知機能部113から通知された標的サーバの情報(IPアドレス等)とネットワーク情報収集機能部111から通知された各ノードのトラヒック情報テーブル225に基づき、標的サーバ宛トラヒックの流入元のノード(エッジルータ等)を抽出する。
ステップS107において、経路設定機能部211は、ステップS103で生成したフローエントリを、ステップS105で抽出したノードのパケット転送機能部311に通知する。
ステップS109において、標的サーバ宛トラヒックの流入元ノードのパケット転送機能部311は、通知されたフローエントリをフローテーブル321に格納し、以降、標的サーバ宛パケットが到達した場合は、フローエントリ(図9、図10)に従い、DDoS攻撃対策装置のラベルを付与して転送する。
ステップS111において、ネットワーク輻輳検知機能部115は、ネットワーク情報収集機能部111から通知されたリンク情報テーブル123に格納された情報(リンクの最大容量、リンクの利用可能帯域、リンクの輻輳検知のための閾値)に基づき、リンクの輻輳を検知し、トポロジ管理機能部213に、輻輳と検知されたリンクのリンク識別子を通知する。
ここでは、リンク7が輻輳と検知されたと仮定する。
ステップS113において、トポロジ管理機能部213は、ネットワーク輻輳検知機能部115から通知された輻輳と検知されたリンクのリンク識別子と自身の保有するトポロジ情報テーブル221に格納された情報に基づき、輻輳と検知されたリンクと直接繋がる両端のノード(ノードD、ノードG)を抽出し、輻輳と検知されたリンクを回避するための両ノード間の新しい経路を生成する。例えば、トポロジ管理機能部213は、両端のノード(ノードD、ノードG)のそれぞれについて、輻輳と検知されたリンクと既に標的サーバ宛通信用の転送経路として登録されているリンク以外で直接接続されたノードを列挙する。両ノード間で、共通するノードが存在する場合は探索を終了し、両ノード間の1ホップ目のノードで共通するノードがない場合は、2ホップ目のノード、3ホップ目のノード、・・・と列挙していき、共通するノードを発見した時点で探索を終了する。各ノードから共通するノードまでの経路を組み合わせることで、両ノード間の新しい経路を生成する。例えば、図1のトポロジにおいて、リンク7が輻輳したと仮定すると、リンク7の両端のノードリンクDとGのそれぞれから輻輳リンクを除いたリンクでつながる1ホップ目のノードを列挙する。ノードDの1ホップ目のノードは、BとFであり、リンクGの1ホップ目のノードは、EとFであり、1ホップ目の探索において、共通するノードFが得られたため、ここで探索を終了し、ノードD→ノードF、ノードG→ノードFという経路を組み合わせることで、ノードD→ノードF→ノードGという新しい経路を生成する。
あるノードの任意のリンクが、既に標的サーバ宛通信用の転送経路として登録されているかは、攻撃検知機能部113から通知された標的サーバの情報(IPアドレス等)および自身の保有するトポロジ情報テーブル221と各ノードにおける標的サーバ宛通信用の経路情報テーブル227に格納された情報に基づき、標的サーバのIPアドレスの利用経路にそのリンクが含まれている場合は、既に登録されていると判断する。
ステップS115において、トポロジ管理機能部213は、ネットワーク情報収集機能部111から通知されたリンク情報テーブル223から、新しく生成された経路に含まれるリンクの帯域情報と元の経路に含まれるリンクの利用可能帯域を抽出する。また、攻撃検知機能部113から通知された標的サーバの情報(IPアドレス等)とネットワーク情報収集機能部111から通知された各ノードのトラヒック情報テーブル225から、始点ノードへの標的サーバ宛のトラヒックの流入量を抽出する。これらの情報と始点ノードから終点ノードまでの経路情報(元の経路と新しく生成した経路)を用いることで、各経路への標的サーバ宛のトラヒックの振り分け量を算出する。
ここでは、元の経路D→Gに30%、生成した経路D→F→Gに70%の割合で、標的サーバ宛のトラヒックを振り分けると仮定する。
ステップS117において、トポロジ管理機能部213は、決定した経路と振り分け量を各ノードにおける標的サーバ宛通信用の経路情報テーブル227に格納するとともに、経路設定機能部211に対して通知する。
ステップS119において、経路設定機能部211は、トポロジ管理機能部213から通知された情報に基づき、ラベルが付与されたパケット(すなわち、DDoS攻撃対策装置に転送中の標的サーバ宛のパケット)を各経路に所望の割合で振り分けて転送するためのフローエントリ(図11)を生成する。
図11に示すように、パケットが輻輳回避を実施中の場合と未実施の場合のそれぞれの処理を記載したフローエントリを生成することで、輻輳回避を実施中のパケットに重複して輻輳回避処理を適用する場合にも正常に転送できるようにする。
パケットにラベルが付与されており、先頭のラベルが最後のラベルではない場合、既に輻輳回避が実施されているパケットであることが分かる。輻輳回避を実施中のパケットに対しては、Sフィールドが1のラベルに到達するまで、先頭から順にラベルを取り外してから、自身で行っている輻輳回避処理に必要なラベルを付与して転送する。すなわち、標的サーバ宛のパケットをDDoS攻撃対策装置に転送するためのラベル以外のラベルを除去してから、自身で行っている輻輳回避処理に必要なラベルを付与して転送する。
一方、パケットにラベルが付与されており、先頭のラベルが最後のラベルである場合、まだ輻輳回避が実施されていないパケットであることが分かる。輻輳回避を未実施のパケットに対しては、自身で行っている輻輳回避処理に必要なラベルを付与して転送する。
ノードDにおいて、ノードD→ノードG、ノードD→ノードF→ノードGの2経路に、30%、70%の割合でトラヒックを分散させる場合は、例えば、図11のようなフローエントリを生成する。ノードD→ノードF→ノードGの経路にパケットを振り分ける場合には、新しい経路で経由するノードF及びノードGのラベルを付与してノードFに転送するというフローエントリが生成される。なお、ノードGのラベルを付与したパケットをノードFに転送するというフローエントリが存在する場合には、ノードFのラベルは省略可能であり、図11のように、ノードGのラベルを付与してノードFに転送するというフローエントリが生成されてもよい。
ステップS121において、経路設定機能部211は、輻輳回避を実施するノードのパケット転送機能部311に、生成したフローエントリを通知する。例えば、リンク7が輻輳と検知された場合、輻輳と検知されたリンクの始点ノードであるノードDのパケット転送機能部311に、生成したフローエントリ(図11)を通知する。
ステップS123において、輻輳回避を実施するノードのパケット転送機能部311は、通知されたフローエントリをフローテーブル321に格納し、以降、DDoS攻撃対策装置のラベルが付与されたパケットが到達した場合は、フローエントリ(図11)に従い転送する。
パケット転送機能部311では、到達したパケットに対して、ラベルの有無やラベルのSフィールドに基づき、付与されたラベルが最後のラベルかを検査する。パケットがフローエントリの条件にマッチし、その条件に対する処理が複数存在する場合は、分散の割合に従い、フローエントリを選択してパケットを処理する。このとき、パケットがループするのを防ぐために、パケットの送信元ノードを宛先とするフローエントリは選択しないといった制御を行うことも想定される。割合に基づく分散の実現手段としては、ロードバランサ等で利用されている重み付けラウンドロビンやフロー情報を元にハッシュを計算して振り分けるハッシュ法等が想定される。
<本発明の実施形態の効果>
以上のように、本発明の実施形態によれば、標的サーバに対するDDoS攻撃が発生した場合、標的サーバ宛のトラヒックをDDoS攻撃対策装置へ転送する際に発生する輻輳を迅速に回避することが可能になる。
具体的には、任意のサーバを標的とした大規模なDDoS攻撃のトラヒックを対策装置へ転送して処理する際に転送経路上で発生した輻輳を局所的に回避する場合において、輻輳回避を実施するノードで、転送するパケットが既に輻輳回避処理を実施中かを判定し、実施中の場合は、その処理のためのラベルを全て除去するという処理を追加することで、パケットに対して、輻輳回避処理が重複して実施されるときにも、Segment Routingを用いて適切な経路制御が実現可能になる。
また、OpenFlowを用いて輻輳回避の制御を行う場合に比べて、コントローラから制御が必要なノード数やノードのフローエントリ数を削減できる。
更に、任意のサーバを標的とした大規模なDDoS攻撃発生時に、トラヒックを対策装置へ転送して処理する際の経路の輻輳を回避するために必要なNW経路制御を迅速に実現できるようになることで、経路が輻輳して他の通信サービスに影響を与える可能性を低減できる。
説明の便宜上、本発明の実施形態に係る負荷分散装置は機能的なブロック図を用いて説明しているが、本発明の実施形態に係る負荷分散装置は、ハードウェア、ソフトウェア又はそれらの組み合わせで実現されてもよい。例えば、本発明の実施形態は、コンピュータに対して本発明の実施形態に係る負荷分散装置の各機能を実現させるプログラム、コンピュータに対して本発明の実施形態に係る方法の各手順を実行させるプログラム等により、実現されてもよい。また、各機能部が必要に応じて組み合わせて使用されてもよい。また、本発明の実施形態に係る方法は、実施形態に示す順序と異なる順序で実施されてもよい。
以上、標的サーバに対するDDoS攻撃が発生した場合、標的サーバ宛のトラヒックをDDoS攻撃対策装置へ転送する際に発生する輻輳を迅速に回避するための手法について説明したが、本発明は、上記の実施形態に限定されることなく、特許請求の範囲内において、種々の変更・応用が可能である。
10 負荷分散装置
100 ネットワーク情報収集・攻撃/輻輳検知装置
110 処理部
111 ネットワーク情報収集機能部
113 攻撃検知機能部
115 ネットワーク輻輳検知機能部
120 記憶部
123 リンク情報テーブル
125 各ノードのトラヒック情報テーブル
130 通信機能部
200 ネットワーク負荷分散装置
210 処理部
211 経路設定機能部
213 トポロジ管理機能部
220 記憶部
221 トポロジ情報テーブル
223 リンク情報テーブル
225 各ノードのトラヒック情報テーブル
227 各ノードにおける標的サーバ宛通信用の経路情報テーブル
230 通信機能部
300 パケット転送装置
310 処理部
311 パケット転送機能部
320 記憶部
321 フローテーブル
330 通信機能部

Claims (8)

  1. DDoS(Distributed Denial of Service)攻撃の標的となっている標的サーバ宛のパケットを、DDoS攻撃対策装置へ転送する経路の輻輳を回避するための負荷分散装置であって、
    前記標的サーバに対するDDoS攻撃の発生を検知する攻撃検知機能部と、
    前記標的サーバ宛のパケットを前記DDoS攻撃対策装置に転送するための識別子を、当該パケットに付与するためのフローエントリを生成し、前記標的サーバ宛のパケットの流入元ノードのパケット転送機能部に通知する経路設定機能部と、
    リンクの輻輳を検知するネットワーク輻輳検知機能部と、
    前記ネットワーク輻輳検知機能部で輻輳と検知されたリンクと直接つながる両端のノードを抽出し、当該両端のノード間において輻輳回避のための新しい経路を生成し、元の経路及び新しい経路への前記標的サーバ宛のパケットの振り分け量を算出するトポロジ管理機能部と、
    を有し、
    前記経路設定機能部は、前記トポロジ管理機能部において算出された元の経路及び新しい経路への前記標的サーバ宛のパケットの振り分け量に基づいて、前記DDoS攻撃対策装置に転送される前記標的サーバ宛のパケットを振り分けるためのフローエントリを生成し、輻輳回避を実施するノードのパケット転送機能部に通知する負荷分散装置。
  2. 前記経路設定機能部は、前記標的サーバ宛のパケットを新しい経路に振り分ける場合には、当該新しい経路で経由するノードの識別子を付与して新しい経路に転送するためのフローエントリを生成する、請求項1に記載の負荷分散装置。
  3. 前記経路設定機能部は、前記標的サーバ宛のパケットに付与された識別子に基づいて、まだ輻輳回避が実施されていないパケットに対するフローエントリと、既に輻輳回避が実施されているパケットに対するフローエントリとを生成する、請求項2に記載の負荷分散装置。
  4. 前記経路設定機能部は、既に輻輳回避が実施されているパケットに対しては、前記標的サーバ宛のパケットを前記DDoS攻撃対策装置に転送するための識別子以外の識別子を除去する、請求項3に記載の負荷分散装置。
  5. DDoS(Distributed Denial of Service)攻撃の標的となっている標的サーバ宛のパケットを、DDoS攻撃対策装置へ転送する経路の輻輳を回避するための負荷分散装置と、パケットに付与された識別子に基づいてパケットを転送するノードとを有する負荷分散システムであって、
    前記負荷分散装置は、
    前記標的サーバに対するDDoS攻撃の発生を検知する攻撃検知機能部と、
    前記標的サーバ宛のパケットを前記DDoS攻撃対策装置に転送するための識別子を、当該パケットに付与するためのフローエントリを生成し、前記標的サーバ宛のパケットの流入元ノードに通知する経路設定機能部と、
    リンクの輻輳を検知するネットワーク輻輳検知機能部と、
    前記ネットワーク輻輳検知機能部で輻輳と検知されたリンクと直接つながる両端のノードを抽出し、当該両端のノード間において輻輳回避のための新しい経路を生成し、元の経路及び新しい経路への前記標的サーバ宛のパケットの振り分け量を算出するトポロジ管理機能部と、
    を有し、
    前記経路設定機能部は、前記トポロジ管理機能部において算出された元の経路及び新しい経路への前記標的サーバ宛のパケットの振り分け量に基づいて、前記DDoS攻撃対策装置に転送される前記標的サーバ宛のパケットを振り分けるためのフローエントリを生成し、輻輳回避を実施するノードに通知し、
    前記ノードは、
    前記負荷分散装置から通知されたフローエントリに基づいて、パケットを転送するパケット転送機能部を有する負荷分散システム。
  6. 前記パケット転送機能部は、パケットがフローエントリの条件にマッチし、当該条件に対する処理が複数存在する場合、フローエントリに記載された分散の割合に従い、フローエントリを選択してパケットを転送する、請求項5に記載の負荷分散システム。
  7. DDoS(Distributed Denial of Service)攻撃の標的となっている標的サーバ宛のパケットを、DDoS攻撃対策装置へ転送する経路の輻輳を回避するための負荷分散装置における負荷分散方法であって、
    前記標的サーバに対するDDoS攻撃の発生を検知するステップと、
    前記標的サーバ宛のパケットを前記DDoS攻撃対策装置に転送するための識別子を、当該パケットに付与するためのフローエントリを生成し、前記標的サーバ宛のパケットの流入元ノードのパケット転送機能部に通知するステップと、
    リンクの輻輳を検知するステップと、
    前記輻輳と検知されたリンクと直接つながる両端のノードを抽出し、当該両端のノード間において輻輳回避のための新しい経路を生成し、元の経路及び新しい経路への前記標的サーバ宛のパケットの振り分け量を算出するステップと、
    前記算出された元の経路及び新しい経路への前記標的サーバ宛のパケットの振り分け量に基づいて、前記DDoS攻撃対策装置に転送される前記標的サーバ宛のパケットを振り分けるためのフローエントリを生成し、輻輳回避を実施するノードのパケット転送機能部に通知するステップと
    を有する負荷分散方法。
  8. DDoS(Distributed Denial of Service)攻撃の標的となっている標的サーバ宛のパケットを、DDoS攻撃対策装置へ転送する経路の輻輳を回避するために、コンピュータを、
    前記標的サーバに対するDDoS攻撃の発生を検知する攻撃検知機能手段、
    前記標的サーバ宛のパケットを前記DDoS攻撃対策装置に転送するための識別子を、当該パケットに付与するためのフローエントリを生成し、前記標的サーバ宛のパケットの流入元ノードのパケット転送機能部に通知する経路設定機能手段、
    リンクの輻輳を検知するネットワーク輻輳検知機能手段、及び
    前記ネットワーク輻輳検知機能手段で輻輳と検知されたリンクと直接つながる両端のノードを抽出し、当該両端のノード間において輻輳回避のための新しい経路を生成し、元の経路及び新しい経路への前記標的サーバ宛のパケットの振り分け量を算出するトポロジ管理機能手段、
    として機能させ、
    前記経路設定機能手段は、前記トポロジ管理機能手段において算出された元の経路及び新しい経路への前記標的サーバ宛のパケットの振り分け量に基づいて、前記DDoS攻撃対策装置に転送される前記標的サーバ宛のパケットを振り分けるためのフローエントリを生成し、輻輳回避を実施するノードのパケット転送機能部に通知するプログラム。
JP2015146089A 2015-07-23 2015-07-23 負荷分散装置、負荷分散システム、負荷分散方法及びプログラム Active JP6421088B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015146089A JP6421088B2 (ja) 2015-07-23 2015-07-23 負荷分散装置、負荷分散システム、負荷分散方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015146089A JP6421088B2 (ja) 2015-07-23 2015-07-23 負荷分散装置、負荷分散システム、負荷分散方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2017028547A true JP2017028547A (ja) 2017-02-02
JP6421088B2 JP6421088B2 (ja) 2018-11-07

Family

ID=57950040

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015146089A Active JP6421088B2 (ja) 2015-07-23 2015-07-23 負荷分散装置、負荷分散システム、負荷分散方法及びプログラム

Country Status (1)

Country Link
JP (1) JP6421088B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019151523A1 (ja) * 2018-02-05 2019-08-08 日本電信電話株式会社 制御システム、制御判断装置及び制御方法
CN114124781A (zh) * 2021-11-23 2022-03-01 中国联合网络通信集团有限公司 SRv6中报文的转发方法、系统、电子设备及存储介质
US11438371B2 (en) 2018-11-09 2022-09-06 Cisco Technology, Inc. Distributed denial of service remediation and prevention

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
前田 浩明 HIROAKI MAEDA: "利用可能帯域を考慮した高速な大規模DDoS攻撃対処アルゴリズムの一検討 A Study of Algorithm for Mit", 電子情報通信学会技術研究報告 VOL.115 NO.41 IEICE TECHNICAL REPORT, vol. 第115巻, JPN6018016719, 14 May 2015 (2015-05-14), JP, pages 第59頁〜第64頁 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019151523A1 (ja) * 2018-02-05 2019-08-08 日本電信電話株式会社 制御システム、制御判断装置及び制御方法
US11438371B2 (en) 2018-11-09 2022-09-06 Cisco Technology, Inc. Distributed denial of service remediation and prevention
CN114124781A (zh) * 2021-11-23 2022-03-01 中国联合网络通信集团有限公司 SRv6中报文的转发方法、系统、电子设备及存储介质

Also Published As

Publication number Publication date
JP6421088B2 (ja) 2018-11-07

Similar Documents

Publication Publication Date Title
US9806994B2 (en) Routing via multiple paths with efficient traffic distribution
EP2637363B1 (en) Communication system, control device, method for controlling packet transfer path, and program
JP5850068B2 (ja) 制御装置、通信システム、通信方法およびプログラム
US20150365328A1 (en) Flow-based load balancing
WO2015109821A1 (zh) 一种管理业务链的方法、系统及装置
JP2014526189A (ja) スプリットアーキテクチャシステムにおける制御トラフィックの自己修復ルーティングのための方法及び装置
WO2014054281A1 (en) Control apparatus, control method thereof, and program
US11843615B2 (en) Attack response point selecting apparatus and attack response point selecting method
JP6421088B2 (ja) 負荷分散装置、負荷分散システム、負荷分散方法及びプログラム
JP5725236B2 (ja) 通信システム、ノード、パケット転送方法およびプログラム
Gkounis Cross-domain DoS link-flooding attack detection and mitigation using SDN principles
US20150288595A1 (en) Control apparatus, communication system, control information creation method, and program
CN107566298B (zh) 一种生成表项的方法和设备
JP6407092B2 (ja) 負荷分散装置、負荷分散方法及びプログラム
RU2675212C1 (ru) Адаптивная балансировка нагрузки при обработке пакетов
EP2905932A1 (en) Device and Method for multiple path packet routing
JPWO2014175423A1 (ja) 通信ノード、通信システム、パケット処理方法及びプログラム
JP6187466B2 (ja) 制御装置、通信システム、通信方法及びプログラム
JP2013198105A (ja) 管理装置、通信システム、中継装置、通信方法、およびプログラム
KR20150016916A (ko) 컴퓨터 네트워킹에서의 패킷들의 다중 경로 라우팅을 위한 장치 및 그의 사용 방법
KR20160123024A (ko) 기능 기반 라우팅 방법 및 시스템
JPWO2015045275A1 (ja) 制御装置、ネットワークシステム、パケット転送制御方法、制御装置用プログラム
Mon et al. Flow path computing in software defined networking
Hasan et al. Development of performance of OSPF network by using SDN concepts
JP4977107B2 (ja) オーバーレイネットワークのトラヒック制御システムと方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170621

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180427

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180515

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180618

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20181009

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181015

R150 Certificate of patent or registration of utility model

Ref document number: 6421088

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150