(57)【要約】【課題】フローの統計情報の収集方法及びフローの迂回路の検索方法を改善する。【解決手段】オープンフローネットワークＯＦＮを経由するフローを観測用オープンフロースイッチＯＦＳｍｅａｓへミラーリングし、観測用オープンフロースイッチＯＦＳｍｅａｓは、オープンフローネットワークＯＦＮからミラーリングされたフローを用いてトラフィックに関するデータを収集し、フローの統計情報として記憶する。オープンフローコントローラＯＦＣは、フローの統計情報を観測用オープンフロースイッチＯＦＳｍｅａｓから取得する。また、オープンフローコントローラＯＦＣは、総使用通信量が閾値以上である輻輳リンクを削除した有向グラフを用いて、該輻輳リンクを経由するフローの迂回路を検索する。【選択図】図１
2018042164.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを管理するネットワーク管理システムにおいて、
自身を経由するフローのパケットをミラーリングするネットワークと、
前記ネットワークからミラーリングされた前記フローのパケットを用いてトラフィックに関するデータを収集し、前記フローの統計情報として記憶するフロー収集装置と、
前記フロー収集装置から取得した前記フローの統計情報を用いて前記ネットワークを管理するネットワーク管理装置と、
を備えることを特徴とするネットワーク管理システム。
【請求項２】
前記ネットワーク管理装置は、
前記ネットワークを構成する複数の転送装置の接続構成に基づき転送装置間の接続をリンクとした第１の有向グラフを生成する有向グラフ生成部と、
前記フローの統計情報を用いて、総使用通信量が閾値以上であるリンクを経由するフローを抽出し、前記第１の有向グラフから当該リンクを削除した第２の有向グラフを用いて当該フローの迂回路を検索する迂回路検索部と、
を備えることを特徴とする請求項１に記載のネットワーク管理システム。
【請求項３】
前記ネットワーク管理装置は、
前記フローの統計情報を用いて、リンクに流れる総使用通信量とリンクの最大転送量からリンクコストを算出し、前記リンクコストを前記第１の有向グラフのリンクに設定するリンクコスト算出部を更に備え、
前記迂回路検索部は、
前記抽出したフローに対する複数の迂回路のうち一迂回路を構成する全リンクの総コストが最も小さい迂回路を検索することを特徴とする請求項２に記載のネットワーク管理システム。
【請求項４】
前記有向グラフ生成部は、
前記転送装置を構成する物理ポートを有向グラフの構成要素とすることを特徴とする請求項２又は３に記載のネットワーク管理システム。
【請求項５】
前記リンクコスト算出部は、
リンクの最大転送量から当該リンクに流れる総使用通信量を引いた空き転送量に応じて前記リンクコストを算出することを特徴とする請求項３に記載のネットワーク管理システム。
【請求項６】
ネットワークからミラーリングされたフローのパケットを受信するフロー受信部と、
前記フローのパケットを用いてトラフィックに関するデータを収集し、前記フローの統計情報として統計情報記憶部に記憶する統計情報収集部と、
前記フローの統計情報をネットワーク管理装置へ送信する統計情報送信部と、
を備えることを特徴とするフロー収集装置。
【請求項７】
ネットワークからフローのパケットがミラーリングされるフロー収集装置から、前記フローのトラフィックに関するデータを収集した前記フローの統計情報を取得する統計情報取得部、
を備えることを特徴とするネットワーク管理装置。
【請求項８】
前記ネットワークを構成する複数の転送装置の接続構成に基づき転送装置間の接続をリンクとした第１の有向グラフを生成する有向グラフ生成部と、
前記フローの統計情報を用いて、総使用通信量が閾値以上であるリンクを経由するフローを抽出し、前記第１の有向グラフから当該リンクを削除した第２の有向グラフを用いて当該フローの迂回路を検索する迂回路検索部と、
を更に備えることを特徴とする請求項７に記載のネットワーク管理装置。
【請求項９】
ネットワークを管理するネットワーク管理システムで行うネットワーク管理方法において、
ネットワークにより、自身を経由するフローのパケットをミラーリングするステップと、
フロー収集装置により、前記ネットワークからミラーリングされた前記フローのパケットを用いてトラフィックに関するデータを収集し、前記フローの統計情報として記憶するステップと、
ネットワーク管理装置により、前記フロー収集装置から取得した前記フローの統計情報を用いて前記ネットワークを管理するステップと、
を実行することを特徴とするネットワーク管理方法。
【請求項１０】
前記ネットワーク管理装置により、
前記ネットワークを構成する複数の転送装置の接続構成に基づき転送装置間の接続をリンクとした第１の有向グラフを生成するステップと、
前記フローの統計情報を用いて、総使用通信量が閾値以上であるリンクを経由するフローを抽出し、前記第１の有向グラフから当該リンクを削除した第２の有向グラフを用いて当該フローの迂回路を検索するステップと、
を更に実行することを特徴とする請求項９に記載のネットワーク管理方法。
【請求項１１】
フロー収集装置で行うフロー収集方法において、
ネットワークからミラーリングされたフローのパケットを受信するステップと、
前記フローのパケットを用いてトラフィックに関するデータを収集し、前記フローの統計情報として統計情報記憶部に記憶するステップと、
前記フローの統計情報をネットワーク管理装置へ送信するステップと、
を実行することを特徴とするフロー収集方法。
【請求項１２】
ネットワーク管理装置で行うネットワーク管理方法において、
ネットワークからフローのパケットがミラーリングされるフロー収集装置から、前記フローのトラフィックに関するデータを収集した前記フローの統計情報を取得するステップ、
を実行することを特徴とするネットワーク管理方法。
【請求項１３】
前記ネットワークを構成する複数の転送装置の接続構成に基づき転送装置間の接続をリンクとした第１の有向グラフを生成するステップと、
前記フローの統計情報を用いて、総使用通信量が閾値以上であるリンクを経由するフローを抽出し、前記第１の有向グラフから当該リンクを削除した第２の有向グラフを用いて当該フローの迂回路を検索するステップと、
を更に実行することを特徴とする請求項１２に記載のネットワーク管理方法。
【請求項１４】
請求項１乃至５のいずれかに記載のネットワーク管理システムとしてコンピュータを機能させることを特徴とするネットワーク管理プログラム。
【請求項１５】
請求項６に記載のフロー収集装置としてコンピュータを機能させることを特徴とするフロー収集プログラム。
【請求項１６】
請求項７又は８に記載のネットワーク管理装置としてコンピュータを機能させることを特徴とするネットワーク管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを管理する技術に関する。
【背景技術】
【０００２】
従来、ネットワークを管理する場合、スイッチ機器に付随するモニタリング機能を用いる方法が一般的である。しかし、そのモニタリング機能は、スイッチ機器を個別に管理するためのものであることから、複数のスイッチ機器で構成されるネットワーク全体を一括で管理し、そのネットワークに流れるパケットのフローを柔軟に制御することは困難であった。
【０００３】
そこで、現在では、ＳＤＮ（Software Design Network）という技術が考案されている。ＳＤＮとは、ネットワークの情報（スイッチ機器間の物理的接続構成，スイッチ機器間のリンク通信速度、スイッチ機器に流れるパケット通信速度等）を一元管理し、その情報を用いてネットワーク全体の制御を一括してソフトウェアで行う技術の総称である。
【０００４】
特に、ＳＤＮを実現する技術の中でも、オープンフロー（OpenFlow）と呼ばれる技術が盛んに研究開発されている。オープンフローでは、オープンフローネットワークＯＦＮ（OpenFlowNetwork）内に流れるパケットの通信をフローと呼び、オープンフローコントローラＯＦＣ（OpenFlowController）により、パケットのヘッダ情報に基づきフローを識別し、対象とするフローの通信経路を制御することができる。
【０００５】
具体的には、オープンフロースイッチＯＦＳ（OpenFlowSwitch）内にあるフローカウンタの統計情報、オープンフローポートＯＦＰ（OpenFlowPort）毎のフローカウンタの統計情報を用いて、フローの通信経路切替・輻輳回避等が行われる。例えば、オープンフロースイッチＯＦＳ間のリンク毎に設定されたコストと使用ビットレートの閾値に基づきフローの通信経路切替が行われる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−１７５５９３号公報
【特許文献２】国際公開第２０１２／０４９９６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、オープンフローネットワークＯＦＮの全てのリンク状態（リンク毎の使用ビットレート，リンクでの輻輳発生の有無等）を把握するには、全てのオープンフロースイッチＯＦＳへそれぞれアクセスしてフロー毎の統計情報をそれぞれ取得しなければならず、かつ、類似する統計情報を取得する可能性もあるため、統計情報の収集に時間がかかり、更には統計情報を無駄に収集してしまうという第１の課題があった。
【０００８】
また、リンクコストと使用ビットレートの閾値の設定によっては、通信経路切替前の迂回路検索時に閾値を超えたリンクを通信経路切替先として再び選択する可能性があるという第２の課題があった。
【０００９】
本発明は、上記事情を鑑みてなされたものであり、フローの統計情報の収集方法を改善することを第１の目的とし、フローの迂回路の検索方法を改善することを第２の目的とする。
【課題を解決するための手段】
【００１０】
以上の課題を解決するため、請求項１に係るネットワーク管理システムは、ネットワークを管理するネットワーク管理システムにおいて、自身を経由するフローのパケットをミラーリングするネットワークと、前記ネットワークからミラーリングされた前記フローのパケットを用いてトラフィックに関するデータを収集し、前記フローの統計情報として記憶するフロー収集装置と、前記フロー収集装置から取得した前記フローの統計情報を用いて前記ネットワークを管理するネットワーク管理装置と、を備えることを要旨とする。
【００１１】
請求項２に係るネットワーク管理システムは、請求項１に記載のネットワーク管理システムにおいて、前記ネットワーク管理装置は、前記ネットワークを構成する複数の転送装置の接続構成に基づき転送装置間の接続をリンクとした第１の有向グラフを生成する有向グラフ生成部と、前記フローの統計情報を用いて、総使用通信量が閾値以上であるリンクを経由するフローを抽出し、前記第１の有向グラフから当該リンクを削除した第２の有向グラフを用いて当該フローの迂回路を検索する迂回路検索部と、を備えることを要旨とする。
【００１２】
請求項３に係るネットワーク管理システムは、請求項２に記載のネットワーク管理システムにおいて、前記ネットワーク管理装置は、前記フローの統計情報を用いて、リンクに流れる総使用通信量とリンクの最大転送量からリンクコストを算出し、前記リンクコストを前記第１の有向グラフのリンクに設定するリンクコスト算出部を更に備え、前記迂回路検索部は、前記抽出したフローに対する複数の迂回路のうち一迂回路を構成する全リンクの総コストが最も小さい迂回路を検索することを要旨とする。
【００１３】
請求項４に係るネットワーク管理システムは、請求項２又は３に記載のネットワーク管理システムにおいて、前記有向グラフ生成部は、前記転送装置を構成する物理ポートを有向グラフの構成要素とすることを要旨とする。
【００１４】
請求項５に係るネットワーク管理システムは、請求項３に記載のネットワーク管理システムにおいて、前記リンクコスト算出部は、リンクの最大転送量から当該リンクに流れる総使用通信量を引いた空き転送量に応じて前記リンクコストを算出することを要旨とする。
【００１５】
請求項６に係るフロー収集装置は、ネットワークからミラーリングされたフローのパケットを受信するフロー受信部と、前記フローのパケットを用いてトラフィックに関するデータを収集し、前記フローの統計情報として統計情報記憶部に記憶する統計情報収集部と、前記フローの統計情報をネットワーク管理装置へ送信する統計情報送信部と、を備えることを要旨とする。
【００１６】
請求項７に係るネットワーク管理装置は、ネットワークからフローのパケットがミラーリングされるフロー収集装置から、前記フローのトラフィックに関するデータを収集した前記フローの統計情報を取得する統計情報取得部、を備えることを要旨とする。
【００１７】
請求項８に係るネットワーク管理装置は、請求項７に記載のネットワーク管理装置において、前記ネットワークを構成する複数の転送装置の接続構成に基づき転送装置間の接続をリンクとした第１の有向グラフを生成する有向グラフ生成部と、前記フローの統計情報を用いて、総使用通信量が閾値以上であるリンクを経由するフローを抽出し、前記第１の有向グラフから当該リンクを削除した第２の有向グラフを用いて当該フローの迂回路を検索する迂回路検索部と、を更に備えることを要旨とする。
【００１８】
請求項９に係るネットワーク管理方法は、ネットワークを管理するネットワーク管理システムで行うネットワーク管理方法において、ネットワークにより、自身を経由するフローのパケットをミラーリングするステップと、フロー収集装置により、前記ネットワークからミラーリングされた前記フローのパケットを用いてトラフィックに関するデータを収集し、前記フローの統計情報として記憶するステップと、ネットワーク管理装置により、前記フロー収集装置から取得した前記フローの統計情報を用いて前記ネットワークを管理するステップと、を実行することを要旨とする。
【００１９】
請求項１０に係るネットワーク管理方法は、請求項９に記載のネットワーク管理方法において、前記ネットワーク管理装置により、前記ネットワークを構成する複数の転送装置の接続構成に基づき転送装置間の接続をリンクとした第１の有向グラフを生成するステップと、前記フローの統計情報を用いて、総使用通信量が閾値以上であるリンクを経由するフローを抽出し、前記第１の有向グラフから当該リンクを削除した第２の有向グラフを用いて当該フローの迂回路を検索するステップと、を更に実行することを要旨とする。
【００２０】
請求項１１に係るフロー収集方法は、フロー収集装置で行うフロー収集方法において、ネットワークからミラーリングされたフローのパケットを受信するステップと、前記フローのパケットを用いてトラフィックに関するデータを収集し、前記フローの統計情報として統計情報記憶部に記憶するステップと、前記フローの統計情報をネットワーク管理装置へ送信するステップと、を実行することを要旨とする。
【００２１】
請求項１２に係るネットワーク管理方法は、ネットワーク管理装置で行うネットワーク管理方法において、ネットワークからフローのパケットがミラーリングされるフロー収集装置から、前記フローのトラフィックに関するデータを収集した前記フローの統計情報を取得するステップ、を実行することを要旨とする。
【００２２】
請求項１３に係るネットワーク管理方法は、請求項１２に記載のネットワーク管理方法において、前記ネットワークを構成する複数の転送装置の接続構成に基づき転送装置間の接続をリンクとした第１の有向グラフを生成するステップと、前記フローの統計情報を用いて、総使用通信量が閾値以上であるリンクを経由するフローを抽出し、前記第１の有向グラフから当該リンクを削除した第２の有向グラフを用いて当該フローの迂回路を検索するステップと、を更に実行することを要旨とする。
【００２３】
請求項１４に係るネットワーク管理プログラムは、請求項１乃至５のいずれかに記載のネットワーク管理システムとしてコンピュータを機能させることを要旨とする。
【００２４】
請求項１５に係るフロー収集プログラムは、請求項６に記載のフロー収集装置としてコンピュータを機能させることを要旨とする。
【００２５】
請求項１６に係るネットワーク管理プログラムは、請求項７又は８に記載のネットワーク管理装置としてコンピュータを機能させることを要旨とする。
【発明の効果】
【００２６】
本発明によれば、オープンフローネットワークＯＦＮの全てのリンク状態を一度に把握できる。また、本発明によれば、リンク毎のコスト値にかかわらず、閾値を超えたリンクを迂回路検索時に利用しないようにすることができる。
【図面の簡単な説明】
【００２７】
【図１】オープンフローシステムの全体構成を示す図である。
【図２】観測用オープンフロースイッチの機能ブロック構成を示す図である。
【図３】オープンフローコントローラの機能ブロック構成を示す図である。
【図４】ネットワーク管理方法の処理シーケンスを示す図である。
【図５】オープンフローネットワークの構成例を示す図である。
【図６】オープンフロースイッチの重み付き有向グラフを示す図である。
【図７】オープンフローネットワークの重み付き有向グラフを示す図である。
【図８】図５に示した構成例の重み付き有向グラフを示す図である。
【図９】フローの通信経路情報を示す図である。
【図１０】フローのミラーリング方法を示す図である。
【図１１】観測用オープンフロースイッチで収集するフローの統計情報を示す図である。
【図１２】オープンフローコントローラで管理するフロー情報を示す図である。
【図１３−Ａ】輻輳リンクの論理的削除処理の流れを示す図である。
【図１３−Ｂ】迂回路検索処理の流れを示す図である。
【図１４】オープンフローシステムの他の構成例を示す図である。
【発明を実施するための形態】
【００２８】
本発明では、上述した第1の課題を解決するため、ネットワーク（オープンフローネットワークＯＦＮ）を経由するフローのパケットをフロー収集装置（観測用オープンフロースイッチＯＦＳｍｅａｓ）へミラーリングし、フロー収集装置は、ネットワークからミラーリングされたフローのパケットを用いてトラフィックに関するデータを収集し、フローの統計情報として記憶する。ネットワーク管理装置（オープンフローコントローラＯＦＣ）は、フローの統計情報をネットワークから直接取得するのではなく、フロー収集装置から取得する。これにより、オープンフローネットワークＯＦＮに流れるフローの統計情報を一度に取得できることから、その取得時におけるオープンフローネットワークＯＦＮの全てのリンク状態を一度に把握でき、輻輳発生箇所を一度に全て把握できる。
【００２９】
また、本発明では、上述した第２の課題を解決するため、ネットワーク（オープンフローネットワークＯＦＮ）を構成する複数の転送装置（オープンフロースイッチＯＦＳ，オープンフローポートＯＦＰ）の接続構成に基づき転送装置間の接続をリンクとした第１の有向グラフを生成し、総使用通信量が閾値以上であるリンクを経由するフローを抽出して、第１の有向グラフから該リンクを削除した第２の有向グラフを用いて該フローの迂回路を検索する。すなわち、総使用通信量が閾値以上であるリンクを除いた有向グラフを用いて、該リンクを経由するフローの迂回路を検索するので、リンク毎のコスト値にかかわらず、閾値を超えた該リンクを迂回路検索時に利用しないようにすることができる。
【００３０】
以下、本発明を実施する一実施の形態について図面を用いて説明する。
【００３１】
＜オープンフローシステムの全体構成＞
図１は、本実施の形態に係るオープンフローシステム１００の全体構成を示す図である。オープンフローシステム１００は、本実施の形態においてオープンフローネットワークＯＦＮを管理・制御するネットワーク管理システムとして機能し、オープンフローネットワークＯＦＮと、観測用オープンフロースイッチＯＦＳｍｅａｓと、オープンフローコントローラＯＦＣと、を備えて構成される。
（オープンフローネットワークＯＦＮの構成・機能）
オープンフローネットワークＯＦＮは、Ｎ個（Ｎ；自然数）のオープンフロースイッチＯＦＳを備えて構成されるネットワークである。各オープンフロースイッチＯＦＳは、互いに通信可能であり、それぞれ、観測用オープンフロースイッチＯＦＳｍｅａｓとオープンフローコントローラＯＦＣに接続される。各オープンフロースイッチＯＦＳは、それぞれ、自身を経由するフローのパケット（以降、単にフローという）を観測用オープンフロースイッチＯＦＳｍｅａｓへミラーリング（転送）する機能を備える。なお、フローとは、オープンフローネットワークＯＦＮ内に流れる端末間のパケットの通信である。Ｎ個のオープンフロースイッチＯＦＳによるリンクの組み合わせにより複数通りの通信経路が存在する。
【００３２】
（観測用オープンフロースイッチＯＦＳｍｅａｓの構成・機能）
続いて、観測用オープンフロースイッチＯＦＳｍｅａｓについて説明する。観測用オープンフロースイッチＯＦＳｍｅａｓは、オープンフローネットワークＯＦＮからミラーリングされたフローを用いてトラフィックに関するデータを収集し、該フローの統計情報として記憶するフロー収集装置である。
【００３３】
具体的に、観測用オープンフロースイッチＯＦＳｍｅａｓは、オープンフローネットワークＯＦＮを構成するＮ個全てのオープンフロースイッチＯＦＳ（正確にはオープンフローポートＯＦＰであり、複数のオープンフローポートＯＦＰに接続されてもよい）にそれぞれ接続されており、各オープンフロースイッチＯＦＳからミラーリングされたフローをそれぞれ受信する。その後、観測用オープンフロースイッチＯＦＳｍｅａｓは、受信したフローのデータトラフィックをカウントすることにより、フローの統計情報を算出する。
【００３４】
フローの統計情報とは、フローのトラフィックに関するデータであればよく、例えば、受信パケット数、送信パケット数、受信バイト数、送信バイト数、受信ドロップ数、送信ドロップ数、受信エラー数、送信エラー数、フローエントリが作成されてから現在までの時間等である。
【００３５】
図２は、本実施の形態に係る観測用オープンフロースイッチＯＦＳｍｅａｓの機能ブロック構成を示す図である。本実施の形態において、観測用オープンフロースイッチＯＦＳｍｅａｓは、オープンフローコントローラＯＦＣからのフローエントリ情報を統計情報記憶部１２に登録するフローエントリ情報登録部１１と、登録されたフローエントリ情報に対応するフローの統計情報を記憶する統計情報記憶部１２と、オープンフローネットワークＯＦＮ内の各オープンフロースイッチＯＦＳからミラーリングされたフローをそれぞれ受信するフロー受信部１３と、受信した各フローを用いてトラフィックに関するデータを収集し、フローの統計情報として統計情報記憶部１２に記憶する統計情報収集部１４と、フローの統計情報をオープンフローコントローラＯＦＣへ送信する統計情報送信部１５と、を備えて構成される。
【００３６】
フローエントリ情報とは、管理対象のフローに関する情報（フローの識別情報，フローの通信経路情報，パケットのヘッダ情報等）である。例えば、管理者がオープンフローコントローラＯＦＣで入力・設定してもよいし、全てのフローを管理対象とする場合には、管理者の入力によらず、オープンフローコントローラＯＦＣが自動で設定してもよい。
【００３７】
なお、本実施の形態では、そもそもオープンフロースイッチＯＦＳ自身にフローの統計情報を収集する機能があることから、オープンフロースイッチＯＦＳを流用して観測用オープンフロースイッチＯＦＳｍｅａｓを構成している。但し、オープンフロースイッチＯＦＳは、その名の通りパケットを転送する転送装置であることから、オープンフロースイッチＯＦＳを流用する場合、ミラーリングされたフローがオープンフローネットワークＯＦＮ内の各オープンフロースイッチＯＦＳへ再び転送されないように、出力ポートへの転送設定を行わないことに留意されたい。その他、勿論、オープンフロースイッチＯＦＳではなく、汎用のサーバ装置を用いて図２に示した構成を構築してもよい。
【００３８】
また、観測用オープンフロースイッチＯＦＳｍｅａｓとオープンフロースイッチＯＦＳ間のリンクの最大転送量は、そのリンク上での輻輳によりフローの収集ができなくなりフローの管理・測定・制御が不能となる可能性を防止するため、オープンフロースイッチＯＦＳにおける全てのリンクポート（オープンフローポートＯＦＰ）の最大転送量の合計よりも大きいことが好ましい。
【００３９】
（オープンフローコントローラＯＦＣの構成・機能）
続いて、オープンフローコントローラＯＦＣについて説明する。オープンフローコントローラＯＦＣは、観測用オープンフロースイッチＯＦＳｍｅａｓとオープンフローネットワークＯＦＮの全てのオープンフローコントローラＯＦＣに接続され、オープンフローネットワークＯＦＮに流れるフローの統計情報を観測用オープンフロースイッチＯＦＳｍｅａｓから取得し、取得したフローの統計情報を用いてオープンフローネットワークＯＦＮを管理・制御するネットワーク管理装置である。
【００４０】
具体的に、オープンフローコントローラＯＦＣは、オープンフローネットワークＯＦＮに流れるフローの統計情報をオープンフローネットワークＯＦＮから直接取得するのではなく、観測用オープンフロースイッチＯＦＳｍｅａｓから取得する。そして、オープンフローコントローラＯＦＣは、取得したフローの統計情報を用いてフローの使用ビットレート及びオープンフロースイッチＯＦＳ間のリンクコストを求め、リンクに設定された使用ビットレートの閾値（使用通信量の上限値）等に基づき、フローの統計情報取得時におけるオープンフローネットワークＯＦＮの全てのリンク状態（リンク毎の使用ビットレート，リンクでの輻輳発生の有無等）を一度に全て把握する。
【００４１】
図３は、本実施の形態に係るオープンフローコントローラＯＦＣの機能ブロック構成を示す図である。本実施の形態において、オープンフローコントローラＯＦＣは、有向グラフ生成部３１と、フローエントリ情報登録部３２と、フローエントリ情報設定部３３と、統計情報取得部３４と、リンクビットレート算出部３５と、リンクコスト算出部３６と、迂回路検索部３７と、通信経路制御部３８と、を備えて構成される。以下、各機能部について説明する。
【００４２】
有向グラフ生成部３１は、オープンフローネットワークＯＦＮを構成する全てのオープンフロースイッチＯＦＳの接続構成に基づき、オープンフロースイッチＯＦＳ間の接続をリンクとし、そのリンクのコストを重みとした重み付き有向グラフを生成する機能を備える。
【００４３】
フローエントリ情報登録部３２は、管理者により入力された管理対象のフローに関するフローエントリ情報（上述した通り、フローの識別情報，フローの通信経路情報，パケットのヘッダ情報等）を自オープンフローコントローラＯＦＣの記憶部（図３において不図示）に登録する機能を備える。
【００４４】
フローエントリ情報設定部３３は、フローエントリ情報登録部３２で登録されたフローエントリ情報と同等のフローエントリ情報を観測用オープンフロースイッチＯＦＳｍｅａｓへ送信し、そのフローエントリ情報を観測用オープンフロースイッチＯＦＳｍｅａｓに登録させる機能を備える。
【００４５】
統計情報取得部３４は、フローエントリ情報登録部３２で登録されたフローエントリ情報に該当するフローの統計情報、つまり管理対象であるフローの統計情報を観測用オープンフロースイッチＯＦＳｍｅａｓから取得する機能を備える。
【００４６】
リンクビットレート算出部３５は、統計情報取得部３４で取得したフローの統計情報を用いて、オープンフローネットワークＯＦＮ内の各リンクで使用されている総使用ビットレート（総使用通信量）をリンク毎にそれぞれ算出する機能を備える。
【００４７】
リンクコスト算出部３６は、リンクビットレート算出部３５で算出された各リンクの総使用ビットレートを用いて、リンク毎に、リンクに流れる総使用ビットレートとリンクの最大転送量からリンクの空きビットレート（空き転送量）を算出し、その空きビットレートに対応するリンクコストを算出して、そのリンクコストを有向グラフのリンクに設定する機能を備える。
【００４８】
迂回路検索部３７は、総使用ビットレートが閾値（リンクに設定された使用ビットレートの閾値（使用通信量の上限値））以上である輻輳リンクを経由するフローを抽出し、その輻輳リンクを除いた有向グラフを用いて該フローの迂回路を検索する機能を備える。
【００４９】
通信経路制御部３８は、フローエントリ情報登録部３２で登録されたフローエントリ情報に基づき、管理対象のフローが所望の通信経路を経由するように、オープンフローコントローラＯＦＣ内の各オープンフロースイッチＯＦＳのフローテーブル（パケット転送テーブル情報）を設定する機能を備える。
【００５０】
また、通信経路制御部３８は、輻輳リンクを経由するフローが迂回路検索部３７で検索された迂回路を経由するように、各オープンフロースイッチＯＦＳのフローテーブルの設定を変更する機能を備える。
【００５１】
ここまで、オープンフローシステム１００の構成及び機能について説明した。なお、図２と図３に示した観測用オープンフロースイッチＯＦＳｍｅａｓとオープンフローコントローラＯＦＣの各機能ブロック構成は、一例である。例えば、１つの機能部が他の機能部の機能を備え、又は１つの機能部を複数の機能部に分割してもよい。
【００５２】
＜オープンフローシステムの処理動作＞
次に、上述したオープンフローシステム１００で行うネットワーク管理方法（フロー収集方法及び迂回路検索方法）について説明する。図４は、本実施の形態に係るネットワーク管理方法の処理シーケンスを示す図である。ここでは、オープンフローネットワークＯＦＮは、図５に示す接続構成を備えるものとする。端末１と端末２は、オープンフロースイッチＯＦＳ１に接続され、端末３は、オープンフロースイッチＯＦＳ６に接続され、端末４は、オープンフロースイッチＯＦＳ９に接続されている。
【００５３】
まず、ステップＳ１において、オープンフローコントローラＯＦＣは、オープンフローネットワークＯＦＮを構成する全てのオープンフロースイッチＯＦＳの接続構成に基づき、オープンフロースイッチＯＦＳ間の接続をリンクとし、リンクのコストを重みとした重み付き有向グラフを生成する。
【００５４】
具体的には、まず、図６に示すように、オープンフロースイッチＯＦＳが備える自身の機器構成に基づき、自身をセンターノードとし、自身の備えるオープンフローポートＯＦＰをエッジノードとして、センターノードとエッジノードをリンクで結合することにより、オープンフロースイッチＯＦＳ毎の重み付き有向グラフを生成する。その後、図７に示すように、オープンフロースイッチＯＦＳ同士の接続構成に基づき、各オープンフロースイッチＯＦＳの有向グラフをリンクで接続することにより、オープンフローネットワークＯＦＮの重み付き有向グラフ（ｏｆｎ＿ｔｏｐｏｌｏｇｙ１）を生成する。
【００５５】
このとき、エッジノードとセンターノード間のリンクコストは、例えば、「０」に設定する。そのリンクコストとして、例えば、各エッジノードにそれぞれ接続された各内部バスの通信量に応じて設定してもよい。また、オープンフロースイッチＯＦＳ間のリンクコストは、例えば、接続された２つのオープンフローポートＯＦＰのうち最大転送量の小さい方で設定する。
【００５６】
なお、リンクコストとは、リンクの最大転送量に対して使用ビットレート（使用通信量）又は空きビットレート（空き通信量）がどの程度あるかを相対的に表した指標であり、空きビットレートが大きいほど小さな値となる。なお、コストの表現方法については、任意であり、例えば、コストが時間の経過に応じて変動することから、時刻ｔを変数に用いて表現してもよい。
【００５７】
それゆえ、図５に示した接続構成の場合、オープンフローネットワークＯＦＮの有向グラフ（ｏｆｎ＿ｔｏｐｏｌｏｇｙ１）は、図８に示すように表現される。オープンフロースイッチＯＳＦの周囲の数字は、オープンフローポートＯＦＰのポート番号を示している。なお、紙面の記載スペースの都合上、図８ではオープンフローポートＯＦＰを省略している。
【００５８】
次に、ステップＳ２において、オープンフローコントローラＯＦＣは、管理者により入力された管理対象のフローに関するフローエントリ情報を自オープンフローコントローラＯＦＣの記憶部に登録する。この場合、オープンフローコントローラＯＦＣが自動でフローエントリ情報を設定する。
【００５９】
具体的には、オープンフローネットワークＯＦＮに流れている管理対象のフローについて、各フローの通信経路情報（図９参照）と、各フローのパケットのヘッダ情報（例えば、フローの識別情報，送信元ＭＡＣアドレス，宛先ＭＡＣアドレス，送信元ＩＰアドレス，宛先ＩＰアドレス等）とを登録する。
【００６０】
次に、ステップＳ３において、オープンフローコントローラＯＦＣは、ステップＳ２で登録されたフローエントリ情報の通信経路情報に基づき、管理対象のフローが所望の通信経路を経由するように各オープンフロースイッチＯＦＳのフローテーブルを設定する。このとき、オープンフローコントローラＯＦＣは、全てのオープンフロースイッチＯＦＳに対して、受信したフローを観測用オープンフロースイッチＯＦＳｍｅａｓへミラーリングする設定を行う。後述するが、全てのオープンフロースイッチＯＦＳではなく、一部のオープンフロースイッチＯＦＳに対してミラーリングの設定を行うことでもよい。
【００６１】
次に、ステップＳ４において、オープンフローコントローラＯＦＣは、ステップＳ２で登録されたフローエントリ情報（フローのパケットのヘッダ情報）と同等のフローエントリ情報を観測用オープンフロースイッチＯＦＳｍｅａｓへ送信する。
【００６２】
次に、ステップＳ５において、観測用オープンフロースイッチＯＦＳｍｅａｓは、オープンフローコントローラＯＦＣから送信されたフローエントリ情報を統計情報記憶部１２に登録する。
【００６３】
このタイミングで、観測用オープンフロースイッチＯＦＳｍｅａｓは、オープンフローネットワークＯＦＮに流れている複数のフローのうち、管理対象のフローを収集するための準備が整うことになる。勿論、オープンフローコントローラＯＦＣ及び観測用オープンフロースイッチＯＦＳｍｅａｓは、全てのフローを監視対象としてもよい。
【００６４】
その後、ステップＳ６において、各オープンフロースイッチＯＦＳは、それぞれ、自身を経由するフローを観測用オープンフロースイッチＯＦＳｍｅａｓへミラーリングすることになる。
【００６５】
なお、フローは端末間で通信されることから、全てのフローは端末に直接接続されたオープンフロースイッチＯＦＳを必ず経由する。それゆえ、本実施の形態の場合、図１０に示すように、オープンフローコントローラＯＦＣは、端末に直接接続されたオープンフロースイッチＯＦＳ１，６，９にのみフローを観測用オープンフロースイッチＯＦＳｍｅａｓへミラーリングするように設定しておくことで足りる。例えば、端末１がビデオサーバ、端末３がクライアント端末の場合、オープンフロースイッチＯＦＳ１に対しては、ビデオサーバからのビデオデータフローをミラーリングするように設定し、オープンフロースイッチＯＦＳ６に対しては、クライアント端末からの応答（ＡＣＫ）フロー又は要求フローをミラーリングするように設定する。
【００６６】
次に、ステップＳ７において、観測用オープンフロースイッチＯＦＳｍｅａｓは、オープンフロースイッチＯＦＳ１，６，９から随時ミラーリングされるフロー（上述したビデオデータフロー，応答フロー等）をそれぞれ収集し、フローの統計情報として統計情報記憶部１２に格納する。
【００６７】
具体的には、ミラーリングされたフローが管理対象のフローにヒットする場合、そのフローについて、受信バイト数、送信バイト数等のカウンタ値を更新する。これにより、ステップＳ５で登録されたフローエントリ情報（管理対象のフロー）に対応するフローの統計情報が随時収集されることになる。例えば、図１１に示す統計情報が収集される。
【００６８】
続いて、ステップＳ８において、オープンフローコントローラＯＦＣは、フローの統計情報を取得するための統計情報取得要求を観測用オープンフロースイッチＯＦＳｍｅａｓへ送信し、その統計情報取得要求に応じて返信された統計情報取得応答より、ステップＳ２で自身に登録していたフローエントリ情報（管理対象のフロー）に対応するフローの統計情報を取得する。
【００６９】
次に、ステップＳ９において、オープンフローコントローラＯＦＣは、ステップＳ８で取得したフローの統計情報と、ステップＳ２で登録していた通信経路情報とを用いて、オープンフローネットワークＯＦＮ内の各リンクで使用されている総使用ビットレート（総使用通信量）をリンク毎にそれぞれ算出する。
【００７０】
具体的には、管理対象のフローについて、そのフローを送信処理した送信バイトの総数（ｔｘ＿ｂｙｔｅ）、そのフローを受信処理した受信バイトの総数（ｒｘ＿ｂｙｔｅ）、そのフローのフローエントリが作成されてから現在までの時間（ｄｕｒａｔｉｏｎ＿ｔｉｍｅ）等を用いて、各フローの使用ビットレートをそれぞれ算出する。例えば、図１２に示すように各フローの使用ビットレート（転送レート）が算出される。その後、例えば図９の通信経路情報に基づき、所定のリンクを経由する全てのフローの使用ビットレートを加算することにより、各リンクの総使用ビットレートをそれぞれ算出する。
【００７１】
次に、ステップＳ１０において、オープンフローコントローラＯＦＣは、ステップＳ９で算出された各リンクの総使用ビットレートを用いて、リンク毎に、リンクの最大転送量からリンクの総使用ビットレートを引くことでリンクの空きビットレート（空き転送量）を算出し、その空きビットレートに応じてリンクコストを算出する。このとき、空きビットレートが大きいほど、リンクコストは小さくなるように算出する。
【００７２】
次に、ステップＳ１１において、オープンフローコントローラＯＦＣは、ステップＳ１０で算出された各リンクのリンクコストを有向グラフ（ｏｆｎ＿ｔｏｐｏｌｏｇｙ１）のリンクにそれぞれ代入する。
【００７３】
次に、ステップＳ１２において、オープンフローコントローラＯＦＣは、各リンクについて、リンク毎に設定した閾値（使用通信量の上限値）と、各リンクの総使用ビットレート（総使用通信量）とを比較し、総使用ビットレートが閾値以上であるリンクを輻輳リンクとみなして、有向グラフ（ｏｆｎ＿ｔｏｐｏｌｏｇｙ１）をコピーした有向グラフ（ｏｆｎ＿ｔｏｐｏｌｏｇｙ２）から該輻輳リンクを削除する。
【００７４】
次に、ステップＳ１３において、オープンフローコントローラＯＦＣは、ステップＳ１２で有向グラフ（ｏｆｎ＿ｔｏｐｏｌｏｇｙ２）から論理的に削除された輻輳リンクを通信経路として使用しているフローを抽出する。
【００７５】
次に、ステップＳ１４において、オープンフローコントローラＯＦＣは、ステップＳ１３で抽出された１つ以上のフローの中から迂回路を検索するフローを決定し、そのフローの迂回路を有向グラフ（ｏｆｎ＿ｔｏｐｏｌｏｇｙ２）からコストが最小値になるように最短経路問題を解くことにより迂回路を検索する。
【００７６】
具体的には、有向グラフ（ｏｆｎ＿ｔｏｐｏｌｏｇｙ２）を用いて、対象のフローに対する複数の迂回路のうち、一迂回路を構成する全リンクの総コストが最も小さい迂回路を検索する。迂回路の検索方法としては、例えば、ダイクストラ法を用いて行うことができる。ダイクストラ法とは、最短経路問題を効率的に解くグラフ理論におけるアルゴリズムである。オープンフロースイッチＯＦＳをノードとみなし、例えばオープンフロースイッチＯＦＳ１をスタートノード、オープンフロースイッチＯＦＳ９をゴールノードとして、スタートノードからゴールノードまでの間に介在する複数の経路の中から最短コストの経路を検索する。尚、経路検索のアルゴリズム自体は公知技術であり、ここでの詳細説明は省略する。
【００７７】
次に、ステップＳ１５において、オープンフローコントローラＯＦＣは、ステップＳ１４で決定されたフローが同ステップＳ１４で検索された迂回路を経由するように、オープンフローコントローラＯＦＣ内の各オープンフロースイッチＯＦＳのフローテーブルを変更する。
【００７８】
最後に、オープンフローコントローラＯＦＣは、ステップＳ９〜ステップＳ１５を、迂回させたフローの通信経路を２つの有向グラフ（ｏｆｎ＿ｔｏｐｏｌｏｇｙ１，２）に新たに適用しつつ、オープンフローネットワークＯＦＮ全体が最適化するまで繰り返す。すなわち、オープンフローネットワークＯＦＮから輻輳リンクがなくなるまで、つまり各リンクの総使用ビットレートが閾値未満になるまで、ステップＳ９〜ステップＳ１５を繰り返し実行する。なお、閾値以上のリンクを経由するフローが１つの場合、迂回路の検索をあえて行わずに放置しておくようにしてもよい。また、ステップＳ３〜Ｓ５で行う各処理順は、任意に変更可能である。例えば、ステップＳ４→ステップＳ５→ステップＳ３の順でもよい。
【００７９】
図１３−Ａ及び図１３−Ｂは、ステップＳ９〜ステップＳ１５により制御されるフローの様子を示す図である。まず、（ａ）に示すように、ステップＳ９〜ステップＳ１１において、オープンフローコントローラＯＦＣにより、観測用オープンフロースイッチＯＦＳｍｅａｓから取得したフローの統計情報を用いて、各リンクの総使用ビットレート（総使用通信量）とリンクコストがそれぞれ算出され、有向グラフ（ｏｆｎ＿ｔｏｐｏｌｏｇｙ１）に代入される。
【００８０】
次に、（ｂ）に示すように、ステップＳ１２において、オープンフローコントローラＯＦＣにより、リンク毎に設定した閾値（使用通信量の上限値）と、各リンクの総使用ビットレートとを用いて、総使用ビットレートが閾値以上である輻輳リンクが検出される。
【００８１】
次に、（ｃ）に示すように、ステップＳ１２において、オープンフローコントローラＯＦＣにより、有向グラフ（ｏｆｎ＿ｔｏｐｏｌｏｇｙ１）をコピーした有向グラフ（ｏｆｎ＿ｔｏｐｏｌｏｇｙ２）から輻輳リンクが削除される。
【００８２】
次に、（ｄ）に示すように、ステップＳ１３，Ｓ１４において、オープンフローコントローラＯＦＣにより、削除された輻輳リンクを通信経路として使用しているフローが抽出され、有向グラフ（ｏｆｎ＿ｔｏｐｏｌｏｇｙ２）を用いて該フローの迂回路が検索される。このとき、輻輳リンクに複数のフローが流れている場合には、一部のフローを抽出するのみで足りる。一部のフローを迂回させることにより、輻輳リンクに流れる総使用ビットレートが閾値よりも小さくなる可能性が高いからである。
【００８３】
最後に、（ｅ）に示すように、ステップＳ１５において、オープンフローコントローラＯＦＣにより、各リンクで輻輳が発生しないようにオープンフローネットワークＯＦＮ全体が最適化され、最適化（検索）された迂回路を経由するように各オープンフロースイッチＯＦＳのフローテーブルが変更される。このとき、迂回路を検索したフロー以外のフローの通信経路は、変更せずに当初のままとしてもよい。
【００８４】
以上より、本実施の形態によれば、オープンフローネットワークＯＦＮを経由するフローを観測用オープンフロースイッチＯＦＳｍｅａｓへミラーリングし、観測用オープンフロースイッチＯＦＳｍｅａｓは、オープンフローネットワークＯＦＮからミラーリングされたフローを用いてトラフィックに関するデータを収集し、フローの統計情報として記憶する。オープンフローコントローラＯＦＣは、フローの統計情報を観測用オープンフロースイッチＯＦＳｍｅａｓから取得する。これにより、オープンフローネットワークＯＦＮに流れるフローの統計情報を一度に取得できることから、その取得時におけるオープンフローネットワークＯＦＮの全てのリンク状態を一度に把握でき、輻輳発生箇所を一度に全て把握できる。
【００８５】
また、これにより、フローをオープンフローネットワークＯＦＮから直接取得する場合よりも、オープンフローコントローラＯＦＣの負荷を低減できる。すなわち、オープンフローコントローラＯＦＣは、オープンフローネットワークＯＦＮの管理に係る処理に多くのＣＰＵ使用率及びメモリ使用量を割り当てることができる。
【００８６】
また、本実施の形態によれば、オープンフローネットワークＯＦＮを構成するオープンフロースイッチＯＦＳの接続構成に基づきオープンフロースイッチＯＦＳ間の接続をリンクとした有向グラフ（ｏｆｎ＿ｔｏｐｏｌｏｇｙ１）を生成し、総使用通信量が閾値以上である輻輳リンクを経由するフローを抽出して、有向グラフ（ｏｆｎ＿ｔｏｐｏｌｏｇｙ１）から該輻輳リンクを削除した有向グラフ（ｏｆｎ＿ｔｏｐｏｌｏｇｙ２）を用いて該フローの迂回路を検索する。つまり、総使用通信量が閾値以上である輻輳リンクを削除した有向グラフ（ｏｆｎ＿ｔｏｐｏｌｏｇｙ２）を用いて、該輻輳リンクを経由するフローの迂回路を検索するので、リンク毎のコスト値にかかわらず、閾値を超えた輻輳リンクを迂回路検索時に利用しないようにすることができる。
【００８７】
また、本実施の形態によれば、フロー毎に通信経路を切り替えるので、きめ経路制御を行うことができる。
【００８８】
なお、本実施の形態では、本発明をオープンフロー技術に適用した場合について説明したが、オープンフローネットワークＯＦＮに限らず、一般的なスイッチ機器からなるネットワーク網，オープンフロー技術よりも広義のＳＤＮ等に適用することも可能である。
【００８９】
また、本実施の形態では、フロー収集装置の例として、観測用オープンフロースイッチＯＦＳｍｅａｓのみを用いて説明したが、パケットキャプチャ用サーバを更に備えて構成してもよい。例えば、図１４に示すように、観測用オープンフロースイッチＯＦＳｍｅａｓにパケットキャプチャ用サーバ５０を直接接続しておく。観測用オープンフロースイッチＯＦＳｍｅａｓは、フロールールに応じてオープンフロースイッチＯＦＳ１，３からそれぞれミラーリングされたフロー（ビデオデータフロー，応答フロー等）をパケットキャプチャ用サーバ５０へ転送する。パケットキャプチャ用サーバ５０は、転送されたミラービデオデータ等を収集する。これにより、パケットキャプチャ用サーバ５０は、任意のフローをキャプチャすることができる。一方、オープンフローコントローラＯＦＣは、ビデオデータに関するフローの統計情報を観測用オープンフロースイッチＯＦＳｍｅａｓ又はパケットキャプチャ用サーバ５０から取得する。
【００９０】
この場合、観測用オープンフロースイッチＯＦＳｍｅａｓのＡｃｔｉｏｎ（パケットの転送条件）には、パケットキャプチャ用サーバ５０を接続しているＯＦＰ（図１４のＯＦＰ４）を設定する必要がある。このとき、観測用オープンフロースイッチＯＦＳｍｅａｓは、応答フローのＡｃｔｉｏｎに対しては、破棄を示すＤｒｏｐを設定しておき、ビデオデータフローのみを転送するようにしてもよい。
【００９１】
又は、上記パケットキャプチャ用サーバ５０を観測用オープンフロースイッチＯＦＳｍｅａｓの内部に構築してもよい。この場合、上記Ａｃｔｉｏｎには、Ｄｒｏｐ、又は観測用オープンフロースイッチＯＦＳｍｅａｓ自身を示すＬｏｃａｌが設定される。若しくは、上記パケットキャプチャ用サーバ５０をオープンフローコントローラＯＦＣの内部に構築してもよい。この場合、上記Ａｃｔｉｏｎには、オープンフローコントローラＯＦＣを示すＣｏｎｔｒｏｌｌｅｒが設定される。
【００９２】
最後に、本実施の形態で説明したオープンフロースイッチＯＦＳ、観測用オープンフロースイッチＯＦＳｍｅａｓ、オープンフローコントローラＯＦＣは、ＣＰＵ及びメモリ等を備えたコンピュータ（スイッチ機器，サーバ装置等）で実現できる。また、オープンフロースイッチＯＦＳ、観測用オープンフロースイッチＯＦＳｍｅａｓ、オープンフローコントローラＯＦＣとしてコンピュータを機能させるためのプログラムや該プログラムの記憶媒体を作成することも可能である。
【符号の説明】
【００９３】
１００…オープンフローシステム
ＯＦＮ…オープンフローネットワーク
ＯＦＳ…オープンフロースイッチ
ＯＦＰ…オープンフローポート
ＯＦＳｍｅａｓ…観測用オープンフロースイッチ
１１…フローエントリ情報登録部
１２…統計情報記憶部
１３…フロー受信部
１４…統計情報収集部
１５…統計情報送信部
ＯＦＣ…オープンフローコントローラ
３１…有向グラフ生成部
３２…フローエントリ情報登録部
３３…フローエントリ情報設定部
３４…統計情報取得部
３５…リンクビットレート算出部
３６…リンクコスト算出部
３７…迂回路検索部
３８…通信経路制御部
５０…パケットキャプチャ用サーバ
Ｓ１〜Ｓ１５…ステップ
【図１】
2018042164.tif 000003
【図２】
2018042164.tif 000004
【図３】
2018042164.tif 000005
【図４】
2018042164.tif 000006
【図５】
2018042164.tif 000007
【図６】
2018042164.tif 000008
【図７】
2018042164.tif 000009
【図８】
2018042164.tif 000010
【図９】
2018042164.tif 000011
【図１０】
2018042164.tif 000012
【図１１】
2018042164.tif 000013
【図１２】
2018042164.tif 000014
【図１３−Ａ】
2018042164.tif 000015
【図１３−Ｂ】
2018042164.tif 000016
【図１４】
2018042164.tif 000017