(57)【要約】【課題】オープンフローネットワークにおいて、コントローラが制御するスイッチ群を別のコントローラの管理下に移行する場合に、ネットワークのスループットの低下を軽減することができるネットワークシステムおよびネットワーク管理方法を提供する。【解決手段】複数の制御装置３０−１〜３０−ｎと、複数の制御装置３０−１〜３０−ｎを管理する統合装置２０とを備え、統合装置２０は、制御装置が制御するスイッチを当該制御装置とは別の制御装置の管理下に移行させる際に、移行元の制御装置から取得した、物理ネットワークのトポロジ情報と仮想ネットワークの設定情報とフロー情報とを、移行先の制御装置に渡す移行処理部２１を含み、各制御装置は、自装置が移行先となった場合に、統合装置２０から受け取った各情報をもとに、移行後に自装置の管理下に配置されるスイッチに設定するフローエントリを計算する移行準備を行う移行準備部３１を含む。【選択図】図１１
2015154190.tif 000002
【特許請求の範囲】
【請求項１】
フローエントリに基づいてパケットを転送するスイッチを制御する複数の制御装置と、
前記複数の制御装置を管理する統合装置とを備え、
前記統合装置は、
制御装置が制御するスイッチを当該制御装置とは別の制御装置の管理下に移行させる際に、移行元の制御装置から取得した、物理ネットワークのトポロジ情報と仮想ネットワークの設定情報とフロー情報とを、移行先の制御装置に渡す移行処理部を含み、
各制御装置は、
自装置が移行先となった場合に、前記統合装置から受け取った各情報をもとに、移行後に自装置の管理下に配置されるスイッチに設定するフローエントリを計算する移行準備を行う移行準備部を含む
ことを特徴とするネットワークシステム。
【請求項２】
移行処理部は、移行先の制御装置から移行準備完了の通知を受けると、移行対象となるスイッチを移行元の制御装置から切断し、
前記移行先の制御装置の移行準備部は、前記スイッチが自装置と接続されると、当該スイッチに登録されているフローエントリを削除した後、移行準備において計算したフローエントリを当該スイッチに登録する
請求項１に記載のネットワークシステム。
【請求項３】
移行先の制御装置の移行準備部は、統合装置から受け取ったフロー情報から、移行元の制御装置がスイッチから受信したであろうメッセージを含む擬似パケットを生成し、仮想ネットワークの設定情報と物理ネットワークのトポロジ情報と前記擬似パケットとをもとに、フローエントリを計算する
請求項１または請求項２に記載のネットワークシステム。
【請求項４】
移行先の制御装置の移行準備部は、自装置が保持する仮想ネットワークの設定情報と、統合装置から受け取った仮想ネットワークの設定情報とを統合し、さらに、物理ネットワークの境界を示す情報をもとに、自装置が保持する物理ネットワークのトポロジ情報と、統合装置から受け取った物理ネットワークのトポロジ情報とを統合し、統合した前記物理ネットワークのトポロジ情報と統合した前記仮想ネットワークの設定情報と擬似パケットとをもとに、フローエントリを計算する
請求項３に記載のネットワークシステム。
【請求項５】
移行先の制御装置の移行準備部は、移行準備中に自装置の管理下のスイッチからメッセージを受信した場合には、当該メッセージに基づいて移行準備において計算するフローエントリを更新する
請求項４に記載のネットワークシステム。
【請求項６】
フローエントリに基づいてパケットを転送するスイッチを制御する複数の制御装置と、前記複数の制御装置を管理する統合装置とを備えるネットワークシステムにおけるネットワーク管理方法であって、
前記統合装置が、制御装置が制御するスイッチを当該制御装置とは別の制御装置の管理下に移行させる際に、移行元の制御装置から取得した、物理ネットワークのトポロジ情報と仮想ネットワークの設定情報とフロー情報とを、移行先の制御装置に渡し、
前記移行先の制御装置が、前記統合装置から受け取った各情報をもとに、移行後に自装置の管理下に配置されるスイッチに設定するフローエントリを計算する移行準備を行う
ことを特徴とするネットワーク管理方法。
【請求項７】
統合装置が、移行先の制御装置から移行準備完了の通知を受けると、移行対象となるスイッチを移行元の制御装置から切断し、
前記移行先の制御装置が、前記スイッチが自装置と接続されると、当該スイッチに登録されているフローエントリを削除した後、移行準備において計算したフローエントリを当該スイッチに登録する
請求項６に記載のネットワーク管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のコントローラを含むオープンフローネットワークに適用するネットワークシステムおよびネットワーク管理方法に関する。
【背景技術】
【０００２】
近年、安価なスイッチを使った柔軟性の高いネットワークの構築を容易にする、オープンフロー（ＯｐｅｎＦｌｏｗ）が発展してきた。オープンフローは、従来のネットワーク機器が有するパケットの転送機能と経路制御機能を、オープンフロースイッチ（ＯＦＳ：ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ）とオープンフローコントローラ（ＯＦＣ：ＯｐｅｎＦｌｏｗ  Ｃｏｎｔｒｏｌｌｅｒ）に分離する。ＯＦＳは、パケットの転送機能だけを有し、ＯＦＣが、複数のＯＦＳ（以下、ＯＦＳ群という）のパケット転送を集中的に制御する。
【０００３】
オープンフローでは、ＭＡＣアドレスやＩＰアドレス、ポート番号などの組み合わせによって決定される一連の通信を「フロー」として定義し、フロー単位での経路制御を実現する。ＯＦＣは、オープンフロープロトコルで定義されているメッセージを使用して、ＯＦＳにフローエントリを設定する。ＯＦＳは、フローエントリの内容に従い、受信したパケットを処理する。
【０００４】
ＯＦＣの１つとして、仮想ネットワーク機能を提供するコントローラがある。そのようなＯＦＣは、ユーザからの要求に従い、ＯＦＳ群が仮想的なブリッジや仮想的なルータとして振る舞うように、フローエントリを計算する。そして、ＯＦＣは、計算したフローエントリをＯＦＳ群に設定する。ＯＦＳに設定できるフローエントリの数には限りがある。従って、ＯＦＣは、フローエントリ数を節約するために、実際に通信が発生しているフローに関するフローエントリだけをＯＦＳに設定することが多い。具体的には、ＯＦＣは、ＯＦＳが、オープンフローメッセージの一種であるＰａｃｋｅｔＩｎメッセージを受信したことを契機に、仮想ネットワークの設定と物理ネットワークのトポロジ情報とをもとに、通信の経路を計算する。そして、ＯＦＣは、アイドルタイムアウト値やハードタイムアウト値を設定した、動的なフローエントリをＯＦＳに設定する。
【０００５】
また、近年、ＯＦＣの種類が増加し、オープンフローネットワークに対する要求が多種多様化されてきたことに伴って、複数台の異種ＯＦＣを管理する統合コントローラが開発されている。同じような仮想ネットワークを提供するＯＦＣであっても、ＯＦＣの種類ごとにユーザに提供するＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）が異なる。統合コントローラは、ＯＦＣ毎のＡＰＩの差異を隠蔽し、ユーザに対して共通のＡＰＩを提供する。このような統合コントローラを導入することで、ユーザは、異種ＯＦＣの制御を容易に行うことができる。また、異種ＯＦＣへの移行を容易に行うことができる。「異種ＯＦＣへの移行」とは、あるＯＦＣが管理するＯＦＳを別の種類のＯＦＣの管理下に移行することである。
【０００６】
特許文献１には、複数のＯＦＣを含むオープンフローネットワークにおいて、ＯＦＳが、ＯＦＣの情報を要求する問い合わせをネットワーク内にブロードキャストで送信し、当該問い合わせに対する返信情報に基づいて、フローエントリの問い合わせ先となるＯＦＣを選定する技術が記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１３−１４３６９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ここで、統合コントローラが複数の異種ＯＦＣを管理する環境において、異種ＯＦＣへの移行を行う場合を考える。以下、移行元であるＯＦＣを移行元ＯＦＣと呼ぶ。また、移行先となるＯＦＣを移行先ＯＦＣと呼ぶ。
【０００９】
ＯＦＣは、ユーザからの要求に従い、物理ネットワークの状態に合わせて、ＯＦＳにフローエントリを設定する。ユーザからの要求を満たすフローエントリは何種類もある。また、ＯＦＣの種類ごとにＯＦＳに設定するフローエントリは、それぞれ大きく異なる。そのため、あるＯＦＣが設定したフローエントリの内容の意図を、そのＯＦＣと異なる種類のＯＦＣが解釈することは難しい。
【００１０】
そのため、あるＯＦＣが制御しているＯＦＳを、他の異種ＯＦＣの制御下に移行する際、移行先ＯＦＣは、移行元ＯＦＣがＯＦＳに設定したフローエントリを維持、管理することはできない。よって、移行先ＯＦＣは、移行後すぐにＯＦＳに設定されているフローエントリを削除する。その後、移行先ＯＦＣは、フローエントリをＯＦＳに設定し直す。
【００１１】
このように、移行直後は、ＯＦＳにフローエントリがあまり設定されていない状態となる。従って、移行前にはＯＦＳに設定されていたフローエントリに従い転送されていたパケットも、移行直後は当該パケットに該当するフローエントリがＯＦＳに設定されていないため、全てＯＦＣを経由して転送される。そのため、移行直後は、移行先ＯＦＣの負荷が増加し、オープンフローネットワークのネットワークスループットが一時的に低下する。
【００１２】
そこで、本発明は、オープンフローネットワークにおいて、コントローラが制御するスイッチ群を別のコントローラの管理下に移行する場合に、ネットワークのスループットの低下を軽減することができるネットワークシステムおよびネットワーク管理方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明によるネットワークシステムは、フローエントリに基づいてパケットを転送するスイッチを制御する複数の制御装置と、複数の制御装置を管理する統合装置とを備え、統合装置は、制御装置が制御するスイッチを当該制御装置とは別の制御装置の管理下に移行させる際に、移行元の制御装置から取得した、物理ネットワークのトポロジ情報と仮想ネットワークの設定情報とフロー情報とを、移行先の制御装置に渡す移行処理部を含み、各制御装置は、自装置が移行先となった場合に、統合装置から受け取った各情報をもとに、移行後に自装置の管理下に配置されるスイッチに設定するフローエントリを計算する移行準備を行う移行準備部を含むことを特徴とする。
【００１４】
本発明によるネットワーク管理方法は、フローエントリに基づいてパケットを転送するスイッチを制御する複数の制御装置と、複数の制御装置を管理する統合装置とを備えるネットワークシステムにおけるネットワーク管理方法であって、統合装置が、制御装置が制御するスイッチを当該制御装置とは別の制御装置の管理下に移行させる際に、移行元の制御装置から取得した、物理ネットワークのトポロジ情報と仮想ネットワークの設定情報とフロー情報とを、移行先の制御装置に渡し、移行先の制御装置が、統合装置から受け取った各情報をもとに、移行後に自装置の管理下に配置されるスイッチに設定するフローエントリを計算する移行準備を行うことを特徴とする。
【発明の効果】
【００１５】
本発明によれば、オープンフローネットワークにおいて、コントローラが制御するスイッチ群を別のコントローラの管理下に移行する場合に、ネットワークのスループットの低下を軽減することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明によるネットワークシステムの第１の実施形態の構成を示すブロック図である。
【図２】移行元ＯＦＣの構成を示すブロック図である。
【図３】移行先ＯＦＣの第１の実施形態の構成を示すブロック図である。
【図４】統合コントローラの第１の実施形態の構成を示すブロック図である。
【図５】動的フロー情報と、動的フロー情報から生成される擬似パケットの一例を示す説明図である。
【図６】動的フロー情報と、動的フロー情報から生成される擬似パケットの他の一例を示す説明図である。
【図７】ネットワークシステムの第１の実施形態の動作を示すフローチャートである。
【図８】仮想ネットワーク設定情報の一例を示す説明図である。
【図９】移行先ＯＦＣの第２の実施形態の構成を示すブロック図である。
【図１０】ネットワークシステムの第２の実施形態の動作を示すフローチャートである。
【図１１】本発明によるネットワークシステムの最小構成を示すブロック図である。
【発明を実施するための形態】
【００１７】
実施形態１．
以下、本発明の第１の実施形態を図面を参照して説明する。
【００１８】
本実施形態では、統合コントローラが仮想ネットワーク機能を提供するＯＦＣを管理するネットワークシステムを例にする。ＯＦＣの種類に応じて仮想ネットワークの設定インターフェースは異なるが、本実施形態では、統合コントローラのドライバ部がその差異を吸収し、共通のインターフェースをユーザに対して提供する。
【００１９】
また、本実施形態では、移行元ＯＦＣに特殊な機能（例えば、後述する移行状態管理部２４０および擬似パケット生成部２５０により実現される機能）を実装する必要はない。移行元ＯＦＣは、多くのＯＦＣが一般的に備えている機能だけを利用する。
【００２０】
図１は、本発明によるネットワークシステムの第１の実施形態の構成を示すブロック図である。
【００２１】
図１に示すように、本実施形態におけるネットワークシステムは、統合コントローラ１０と、移行先ＯＦＣとなるＯＦＣ２００とを備える。統合コントローラ１０には、ＯＦＣ２００の他に、移行元ＯＦＣとなるＯＦＣ１００が接続されている。なお、ネットワークシステムは、移行先ＯＦＣをいくつ含んでいてもよい。また、移行元ＯＦＣは、統合コントローラ１０にいくつ接続されていてもよい。
【００２２】
本実施形態では、統合コントローラ１０が、移行元ＯＦＣ（ＯＦＣ１００）が制御するＯＦＳ群を、移行先ＯＦＣ（ＯＦＣ２００）の管理下に移行する。
【００２３】
ＯＦＣ１００は、制御回線を介して、複数台のＯＦＳを含むＯＦＳ群１０００と接続される。
【００２４】
ＯＦＣ２００は、ＯＦＣ１００と異なる種類のＯＦＣである。ＯＦＣ２００は、ＯＦＣ１００と同様の仮想ネットワーク設定を受け入れることができる。しかし、ＯＦＣ２００とＯＦＣ１００とは、同じ仮想ネットワーク設定に対して、それぞれ異なるフローエントリを計算し、ＯＦＳ群１０００に設定する。
【００２５】
統合コントローラ１０は、制御回線を介して、各ＯＦＣと接続される。
【００２６】
ＯＦＳ群１０００を構成する各ＯＦＳは、オープンフロープロトコルに従ったメッセージを、ＯＦＣ１００と交換する。そして、各ＯＦＳは、ＯＦＣから設定されたフローエントリに従い、パケットの書き換え、転送などを行う。移行処理後は、ＯＦＣ１００の代わりにＯＦＣ２００が、ＯＦＳ群１０００を制御し、フローエントリを設定する。
【００２７】
図２は、移行元ＯＦＣ（ＯＦＣ１００）の構成を示すブロック図である。図２に示すように、ＯＦＣ１００は、ＯＦ（ＯｐｅｎＦｌｏｗ）メッセージ処理部１１０と、物理ネットワーク管理部１２０と、仮想ネットワーク管理部１３０とを含む。
【００２８】
ＯＦメッセージ処理部１１０は、ＯＦＳと、オープンフロープロトコルに従ったメッセージの交換を行う。
【００２９】
物理ネットワーク管理部１２０は、物理ネットワークのトポロジ情報（以下、物理ネットワーク情報という）を保持する。
【００３０】
仮想ネットワーク管理部１３０は、仮想ネットワークの設定情報（以下、仮想ネットワーク設定情報という）を保持する。
【００３１】
ＯＦＣ１００は、統合コントローラ１０から通知される仮想ネットワークの設定に従い、ＯＦＳ群１０００を制御する。具体的には、ＯＦＣ１００は、統合コントローラ１０から仮想ネットワーク設定情報を受け取り、仮想ネットワーク管理部１３０に格納する。ＯＦＣ１００は、ＯＦメッセージ処理部１１０がＯＦＳからＰａｃｋｅｔＩｎメッセージを受信したことを契機に、上記仮想ネットワーク設定情報に従い、対象パケットの転送先物理スイッチポートを計算する。そして、ＯＦＣ１００は、物理ネットワーク管理部１２０が保持する物理ネットワーク情報に従い、そのパケットの転送元と転送先の間の経路上のＯＦＳに対してフローエントリを設定する。
【００３２】
図３は、移行先ＯＦＣの第１の実施形態の構成を示すブロック図である。図３に示すように、移行先ＯＦＣ（ＯＦＣ２００）は、ＯＦメッセージ処理部２１０と、物理ネットワーク管理部２２０と、仮想ネットワーク管理部２３０と、移行状態管理部２４０と、擬似パケット生成部２５０とを含む。
【００３３】
なお、ＯＦメッセージ処理部２１０、物理ネットワーク管理部２２０および仮想ネットワーク管理部２３０は、図２に示す、ＯＦＣ１００のＯＦメッセージ処理部１１０、物理ネットワーク管理部１２０および仮想ネットワーク管理部１３０と同様である。
【００３４】
移行状態管理部２４０は、移行後にＯＦＳに設定するフローエントリを計算するために必要な情報を管理する。
【００３５】
擬似パケット生成部２５０は、移行元ＯＦＣがＯＦＳ群１０００から受信したであろうＰａｃｋｅｔＩｎメッセージを含む擬似パケットを生成する。
【００３６】
なお、ＯＦメッセージ処理部２１０、物理ネットワーク管理部２２０、仮想ネットワーク管理部２３０、移行状態管理部２４０および擬似パケット生成部２５０は、例えば、プログラムに従って動作するコンピュータのＣＰＵによって実現される。当該プログラムは、例えば、ＯＦＣ２００の記憶装置（図示せず）に記憶される。ＯＦＣ２００のＣＰＵは、そのプログラムを読み込み、そのプログラムに従って、ＯＦメッセージ処理部２１０、物理ネットワーク管理部２２０、仮想ネットワーク管理部２３０、移行状態管理部２４０および擬似パケット生成部２５０として動作する。また、ＯＦメッセージ処理部２１０、物理ネットワーク管理部２２０、仮想ネットワーク管理部２３０、移行状態管理部２４０および擬似パケット生成部２５０が別々のハードウェアで実現されていてもよい。
【００３７】
図４は、統合コントローラ１０の第１の実施形態の構成を示すブロック図である。図４に示すように、統合コントローラ１０は、設定受付部１１と、移行処理部１２と、ドライバ部１３（ドライバ部１３−１，１３−２）とを含む。なお、ドライバ部１３−１は、ＯＦＣ１００用に設置されたドライバである。ドライバ部１３−２は、ＯＦＣ２００用に設置されたドライバである。
【００３８】
設定受付部１１は、ユーザからの設定変更リクエストを受け付ける。設定変更リクエストを受け付けるインターフェースとして、ＲＥＳＴ（ＲＥｐｒｅｓｅｎｔａｔｉｏｎａｌ  Ｓｔａｔｅ  Ｔｒａｎｓｆｅｒ）  ＡＰＩなどが考えられる。ユーザからのリクエストには、コントローラの識別子が含まれる。そのため、設定受付部１１は、その識別子に応じてコントローラの種別を判別し、リクエストを適切なドライバ部１３に渡すことができる。
【００３９】
設定受付部１１は、ユーザからの移行処理開始リクエストを受け付ける。
【００４０】
移行処理部１２は、ユーザからの移行処理開始リクエストを、設定受付部１１を介して受け取ると、移行処理を開始する。移行処理部１２は、移行処理時には、移行処理に必要な情報を移行元ＯＦＣ１００から取得し、移行先ＯＦＣ２００に渡す。
【００４１】
ドライバ部１３は、設定受付部１１から受け取ったリクエストを、制御対象であるＯＦＣが処理可能な形式に変換し、変換後のリクエストを当該ＯＦＣに送る。ドライバ部１３は、制御するＯＦＣの種別ごとに、統合コントローラ１０に設置される。
【００４２】
なお、設定受付部１１、移行処理部１２およびドライバ部１３は、例えば、プログラムに従って動作するコンピュータのＣＰＵによって実現される。当該プログラムは、例えば、統合コントローラ１０の記憶装置（図示せず）に記憶される。統合コントローラ１０のＣＰＵは、そのプログラムを読み込み、そのプログラムに従って、設定受付部１１、移行処理部１２およびドライバ部１３として動作する。また、設定受付部１１、移行処理部１２およびドライバ部１３が別々のハードウェアで実現されていてもよい。
【００４３】
次に、本実施形態の動作を説明する。
【００４４】
まず、ＯＦＣ２００の擬似パケット生成部２５０における、擬似パケットの生成処理を説明する。
【００４５】
図５は、動的フロー情報と、動的フロー情報から生成される擬似パケットの一例を示す説明図である。図６は、動的フロー情報と、動的フロー情報から生成される擬似パケットの他の一例を示す説明図である。なお、動的フロー情報は、ＯＦＣによって動的に生成されるフロー情報である。動的フロー情報には、動的なフローを示す情報が含まれる。動的なフローとは、オープンフローネットワークを利用する端末間の通信のことをいう。フロー情報は、図５（Ａ）、図６（Ａ）に示すように、フローの入り口のポート、マッチ条件、アクションから構成される。
【００４６】
移行先ＯＦＣ（ＯＦＣ２００）の擬似パケット生成部２５０は、各フロー情報中の最も上位の層のプロトコルヘッダを含むパケットを、擬似パケットとして生成する。例えば、マッチ条件に送信元ＭＡＣアドレスだけを含む、図５（Ａ）に示すフロー情報に対しては、図５（Ｂ）に示すように、Ｅｔｈｅｒｎｅｔ（登録商標）ヘッダを含む擬似パケットを生成する。また例えば、マッチ条件に宛先ＩＰアドレスを含む、図６（Ａ）に示すフロー情報に対しては、図６（Ｂ）に示すように、ＥｔｈｅｒｎｅｔヘッダとＩＰヘッダを含む擬似パケットを生成する。
【００４７】
フロー情報から再現できない値に関しては、擬似パケット生成部２５０は、ランダムに値を生成し、擬似パケットに設定する。図６（Ｂ）に示す擬似パケットのＩＰヘッダの送信元アドレス「１９２．１６８．５０．１」は、擬似パケット生成部２５０によってランダムに生成された値の一例である。擬似パケットは、ＯＦＣ２００の外に送信されないので、このように任意の値を設定しても問題ない。また、ＯＦＣ２００が、擬似パケットから本来通信に使われていないフローエントリを生成したとしても、ＯＦＳのフローテーブルのエントリ数を無駄に増加させる以外に大きな問題は起こらない。
【００４８】
次に、本実施形態における、異種ＯＦＣへの移行時におけるネットワークシステムの処理を説明する。図７は、ネットワークシステムの第１の実施形態の動作を示すフローチャートである。
【００４９】
統合コントローラ１０の移行処理部１２は、設定受付部１１を介して、移行処理開始リクエストを受け取ると、ドライバ部１３−１を介して、ＯＦＣ１００の仮想ネットワーク管理部１３０から以下の情報を取得する。（ステップＳ１０１）。
・仮想ネットワーク設定情報
・動的フロー情報
【００５０】
この動的フロー情報は、ＯＦＣ１００が、自身が保持する物理ネットワーク情報、仮想ネットワーク設定情報などによって示される設定に基づき、動的に作成したフローの情報である。
【００５１】
図８は、仮想ネットワーク設定情報の一例を示す説明図である。図８に示す例では、ＭＡＣアドレスをキーにオープンフローネットワークに繋がる各端末を、仮想的に作成したブリッジに割り当てることができる機能を、ＯＦＣ１００とＯＦＣ２００が提供していることを想定している。
【００５２】
統合コントローラ１０の移行処理部１２は、ドライバ部１３−１を介して、ＯＦＣ１００の物理ネットワーク管理部１２０から物理ネットワーク情報を取得する（ステップＳ１０２）。
【００５３】
移行処理部１２は、ステップＳ１０１，Ｓ１０２の処理で取得した情報を、ドライバ部１３−２を介して、ＯＦＣ２００の移行状態管理部２４０に送信する（ステップＳ１０３）。これにより、ＯＦＣ２００は、自装置が移行先となったことを認識することができる。そして、ＯＦＣ２００は、移行準備（ステップＳ１０４〜Ｓ１０８の処理）を開始する。
【００５４】
ＯＦＣ２００の移行状態管理部２４０は、統合コントローラ１０から取得した仮想ネットワーク設定情報を、仮想ネットワーク管理部２３０に設定する（ステップＳ１０４）。
【００５５】
移行状態管理部２４０は、統合コントローラ１０から取得した物理ネットワーク情報を、物理ネットワーク管理部２２０に設定する（ステップＳ１０５）。物理ネットワーク管理部２２０は、ステップＳ１１２の処理が完了するまで、移行状態管理部２４０から設定された物理ネットワーク情報に基づいて動作する。
【００５６】
移行状態管理部２４０は、統合コントローラ１０から取得した動的フロー情報を擬似パケット生成部２５０に入力する。そして、擬似パケット生成部２５０は、入力した動的フロー情報をもとに擬似パケットを生成する（ステップＳ１０６）。
【００５７】
移行状態管理部２４０は、擬似パケット生成部２５０が生成した擬似パケットを、仮想ネットワーク管理部２３０に入力する（ステップＳ１０７）。
【００５８】
仮想ネットワーク管理部２３０は、上記擬似パケットと、仮想ネットワーク設定情報と、物理ネットワーク情報とをもとに、移行後にＯＦＳに設定するフローエントリを計算する。仮想ネットワーク管理部２３０は、ＯＦＳ接続時と同様の方法で、つまりＯＦＳからＰａｃｋｅｔＩｎメッセージを受信したときと同様の方法で、フローエントリを計算する（ステップＳ１０８）。
【００５９】
仮想ネットワーク管理部２３０が全ての動的なフローに対応するフローエントリを計算した後、移行状態管理部２４０は、移行準備完了を統合コントローラ１０に通知する（ステップＳ１０９）。
【００６０】
統合コントローラ１０の移行処理部１２は、ＯＦＣ１００にＯＦＳ群１０００との切断を要求する（ステップＳ１１０）。この時、ＯＦＣ１００との接続が切断されたＯＦＳ群１０００が、切断後すぐにＯＦＣ２００に接続しにいくよう、ＯＦＳ群１０００を設定する必要がある。例えば、ユーザ等が予め、ＯＦＳ群１０００の各ＯＦＳに、ＯＦＣ１００の次に接続優先度が高いＯＦＣとして、ＯＦＣ２００のＩＰアドレスを設定する。
【００６１】
ＯＦＣ２００の物理ネットワーク管理部２２０は、ＯＦＳ群１０００が自装置と接続されると、ＯＦＳ群１０００の各ＯＦＳに設定されている全フローエントリを削除する（ステップＳ１１１）。
【００６２】
物理ネットワーク管理部２２０は、仮想ネットワーク管理部２３０がステップＳ１０８で計算したフローエントリを、各ＯＦＳに設定する（ステップＳ１１２）。
【００６３】
以降、物理ネットワーク管理部２２０は、実際の物理ネットワークの変化に応じて、自身が保持する物理ネットワーク情報を更新する。
【００６４】
以上に説明したように、本実施形態では、統合コントローラが、移行元ＯＦＣから物理ネットワーク情報、仮想ネットワーク設定情報および動的フロー情報を取得する。そして、統合コントローラが、それらの情報を移行先ＯＦＣに渡す。そして、移行先ＯＦＣが、統合コントローラから受け取った情報をもとに、移行元ＯＦＣがＯＦＳ群から受信したであろうＰａｃｋｅｔＩｎメッセージを擬似的に生成し、ＯＦＳに設定すべきフローエントリを計算する。そして、移行先ＯＦＣが、このフローエントリを移行後すぐにＯＦＳに設定する。このような構成により、異種ＯＦＣへの移行の際、移行先ＯＦＣは、移行元ＯＦＣがＯＦＳに設定したフローエントリを維持、管理することが可能となる。つまり、異種ＯＦＣへの移行直後であっても、ＯＦＳにフローエントリが設定された状態にすることができる。従って、異種ＯＦＣへの移行時に発生するネットワークのスループット低下を軽減できる。
【００６５】
なお、本実施形態では、移行先ＯＦＣ（ＯＦＣ２００）のみが、移行状態管理部および擬似パケット生成部を含む場合について説明したが、移行元ＯＦＣが、移行状態管理部および擬似パケット生成部を含んでいてもよい。
【００６６】
実施形態２．
以下、本発明の第２の実施形態を図面を参照して説明する。
【００６７】
図９は、移行先ＯＦＣの第２の実施形態の構成を示すブロック図である。
【００６８】
図９に示すように、第２の実施形態における移行先ＯＦＣ（ＯＦＣ３００）は、第１の実施形態の構成に加えて、移行処理時にだけ動作する、移行処理用物理ネットワーク管理部３１０と、移行処理用仮想ネットワーク管理部３２０とを含む。
【００６９】
図９に示す構成により、移行先ＯＦＣは、既にＯＦＳを制御している稼働状態であっても、別のＯＦＣが制御しているＯＦＳを受け入れることができる。なお、移行先ＯＦＣは、移行元ＯＦＣの仮想ネットワークと物理ネットワークの情報を取得し、自身が保持する既存の情報と統合する必要がある。移行先ＯＦＣは、この統合した情報をもとに、移行後にＯＦＳ群に設定すべきフローエントリを計算する。移行先ＯＦＣが物理ネットワークを統合するためには、移行先ＯＦＣは、統合コントローラ１０が保持する物理ネットワークの境界情報を取得しておく必要がある。
【００７０】
ここで、物理ネットワークの境界情報とは、物理ネットワークの境界を示す情報であって、例えば、２つの物理ネットワークの接する位置にある２つのポート（例えば、「スイッチ１のポート３０」と「スイッチ２のポート４０」など）を表す情報である。本実施形態では、物理ネットワークの境界情報は、ユーザ等によって予め移行処理用物理ネットワーク管理部３１０に格納される。なお、統合コントローラ１０の移行処理部１２が、ＯＦＣ１００，２００の物理ネットワーク管理部から取得した物理ネットワーク情報に基づいて、物理ネットワークの境界情報を生成するようにしてもよい。
【００７１】
なお、移行処理用物理ネットワーク管理部３１０および移行処理用仮想ネットワーク管理部３２０は、例えば、プログラムに従って動作するコンピュータのＣＰＵによって実現される。当該プログラムは、例えば、ＯＦＣ３００の記憶装置（図示せず）に記憶される。ＯＦＣ３００のＣＰＵは、そのプログラムを読み込み、そのプログラムに従って、移行処理用物理ネットワーク管理部３１０および移行処理用仮想ネットワーク管理部３２０として動作する。また、移行処理用物理ネットワーク管理部３１０および移行処理用仮想ネットワーク管理部３２０が別々のハードウェアで実現されていてもよい。
【００７２】
本実施形態における、異種ＯＦＣへの移行時におけるネットワークシステムの処理を説明する。図１０は、ネットワークシステムの第２の実施形態の動作を示すフローチャートである。
【００７３】
統合コントローラ１０の移行処理部１２は、ドライバ部１３−１を介して、ＯＦＣ１００の仮想ネットワーク管理部１３０から以下の情報を取得する（ステップＳ２０１）。
・仮想ネットワーク設定情報
・動的フロー情報
【００７４】
移行処理部１２は、ドライバ部１３−１を介して、ＯＦＣ１００の物理ネットワーク管理部１２０から物理ネットワーク情報を取得する（ステップＳ２０２）。
【００７５】
移行処理部１２は、ステップＳ２０１，Ｓ２０２の処理で取得した情報を、ドライバ部１３−２を介して、ＯＦＣ３００の移行状態管理部２４０に送信する（ステップＳ２０３）。
【００７６】
ＯＦＣ３００の移行状態管理部２４０は、統合コントローラ１０から取得した仮想ネットワーク設定情報と、仮想ネットワーク管理部２３０が保持する仮想ネットワーク設定情報とを統合し、移行処理用仮想ネットワーク管理部３２０に設定する（ステップＳ２０４）。
【００７７】
移行状態管理部２４０は、物理ネットワークの境界情報をもとに、統合コントローラ１０から取得した物理ネットワーク情報と、物理ネットワーク管理部２２０が保持する物理ネットワーク情報とを統合し、移行処理用物理ネットワーク管理部３１０に設定する（ステップＳ２０５）。これ以降、物理ネットワーク管理部２２０は、ＯＦメッセージ処理部２１０が受信したネットワークに関するイベント（ＰａｃｋｅｔＩｎメッセージなど）を、移行処理用物理ネットワーク管理部３１０に通知する。これにより、移行処理時に発生したイベントに基づくフローエントリの生成や変更が、移行処理用物理ネットワーク管理部３１０に反映される。
【００７８】
移行状態管理部２４０は、統合コントローラ１０から取得した動的フロー情報を擬似パケット生成部２５０に入力する。そして、擬似パケット生成部２５０は、入力した動的フロー情報をもとに擬似パケットを生成する（ステップＳ２０６）。
【００７９】
移行状態管理部２４０は、ステップＳ２０６の処理で生成した擬似パケットを、移行処理用物理ネットワーク管理部３１０に入力する（ステップＳ２０７）。
【００８０】
移行処理用物理ネットワーク管理部３１０は、上記擬似パケットと、移行処理用仮想ネットワーク管理部３２０から取得する仮想ネットワーク設定情報と、物理ネットワーク情報をもとに、移行後にＯＦＳに設定するフローエントリを計算する（ステップＳ２０８）。このとき、移行処理用物理ネットワーク管理部３１０は、物理ネットワーク管理部２２０から上記通知を受けている場合には、通知に対応するイベントにもとづいて、フローエントリを更新する。
【００８１】
移行処理用物理ネットワーク管理部３１０が全ての動的なフローに対応するフローエントリを計算した後、移行状態管理部２４０は、移行準備完了を統合コントローラ１０に通知する（ステップＳ２０９）。
【００８２】
統合コントローラ１０の移行処理部１２は、ＯＦＣ１００にＯＦＳ群１０００との切断を要求する（ステップＳ２１０）。
【００８３】
ＯＦＣ３００の物理ネットワーク管理部２２０は、ＯＦＳ群１０００が自装置と接続されると、ＯＦＳ群１０００の各ＯＦＳに設定されている全フローエントリを削除する（ステップＳ２１１）。
【００８４】
移行状態管理部２４０は、移行処理用仮想ネットワーク管理部３２０が保持する情報を仮想ネットワーク管理部２３０にコピーする（ステップＳ２１２）。
【００８５】
物理ネットワーク管理部２２０は、移行処理前の稼働状態において計算したフローエントリと、移行処理用物理ネットワーク管理部３１０が保持するフローエントリとの差分を、ＯＦＳ群１０００に設定する（ステップＳ２１３）。
【００８６】
移行状態管理部２４０は、移行処理用物理ネットワーク管理部３１０が保持する情報を物理ネットワーク管理部２２０にコピーする（ステップＳ２１４）。
【００８７】
以降、物理ネットワーク管理部２２０は、実際の物理ネットワークの変化に応じて、自身が保持する物理ネットワーク情報を更新する。また、物理ネットワーク管理部２２０は、移行処理用物理ネットワーク管理部３１０へのイベントの通知を止める。
【００８８】
以上に説明したように、本実施形態では、移行先ＯＦＣ（ＯＦＣ３００）が、自装置が保持する情報（物理ネットワーク情報および仮想ネットワーク設定情報）と、統合コントローラ１０から取得した情報とを統合する。そして、移行先ＯＦＣが、統合した情報をもとにフローエントリを計算する。それにより、移行先ＯＦＣは、自装置が物理ネットワーク情報や仮想ネットワーク設定情報を既に保持している状態、例えば、ＯＦＳを既に制御している稼働状態であっても、別のＯＦＣが制御しているＯＦＳを受け入れることができる。
【００８９】
本発明によるネットワークシステムは、例えばデータセンタなどに適用される。
【００９０】
次に、本発明の概要を説明する。図１１は、本発明によるネットワークシステムの最小構成を示すブロック図である。図１１に示すように、本発明によるネットワークシステムは、フローエントリに基づいてパケットを転送するスイッチ（図１に示すＯＦＳ群１０００における各ＯＦＳに相当）を制御する複数の制御装置３０−１〜３０−ｎと、複数の制御装置３０−１〜３０−ｎを管理する統合装置２０（図１に示す統合コントローラ１０に相当）とを備え、統合装置２０は、制御装置（例えば、図１に示すＯＦＣ１００に相当）が制御するスイッチを当該制御装置とは別の制御装置（例えば、図１に示すＯＦＣ２００に相当）の管理下に移行させる際に、移行元の制御装置から取得した、物理ネットワークのトポロジ情報と仮想ネットワークの設定情報とフロー情報とを、移行先の制御装置に渡す移行処理部２１（図４に示す統合コントローラ１０における移行処理部１２に相当）を含み、各制御装置は、自装置が移行先となった場合に、統合装置２０から受け取った各情報をもとに、移行後に自装置の管理下に配置されるスイッチに設定するフローエントリを計算する移行準備（図７に示すステップＳ１０４〜Ｓ１０８の処理、または図１０に示すステップＳ２０４〜Ｓ２０８の処理に相当）を行う移行準備部３１（図３に示すＯＦＣ２００における移行状態管理部２４０および擬似パケット生成部２５０、または図９に示すＯＦＣ３００における移行状態管理部２４０、擬似パケット生成部２５０、移行処理用物理ネットワーク管理部３１０および移行処理用仮想ネットワーク管理部３２０に相当）を含む。
【００９１】
そのような構成によれば、制御装置が制御するスイッチを当該制御装置とは別の制御装置の管理下に移行させる際、移行元の制御装置と移行先の制御装置との種類が異なる場合であっても、移行先の制御装置は、移行元の制御装置がスイッチに設定したフローエントリを維持、管理することができる。そのため、移行直後であっても、スイッチにフローエントリが設定された状態とすることができる。従って、制御装置が制御するスイッチを当該制御装置とは別の制御装置の管理下に移行させる際に発生するネットワークのスループット低下を軽減できる。
【００９２】
また、移行処理部２１は、移行先の制御装置から移行準備完了の通知を受けると、移行対象となるスイッチを移行元の制御装置から切断し、移行先の制御装置の移行準備部３１は、移行対象となるスイッチが自装置と接続されると、当該スイッチに登録されているフローエントリを削除した後、移行準備において計算したフローエントリを当該スイッチに登録してもよい。そのような構成によれば、移行対象となるスイッチに、移行先の制御装置に対応するフローエントリを設定することができる。従って、移行元の制御装置と移行先の制御装置との種類が異なる場合であっても、移行先の制御装置は、自装置の管理下に移行されたスイッチを確実に制御することが可能となる。
【００９３】
また、移行先の制御装置の移行準備部３１は、統合装置２０から受け取ったフロー情報から、移行元の制御装置がスイッチから受信したであろうメッセージを含む擬似パケットを生成し、仮想ネットワークの設定情報と物理ネットワークのトポロジ情報と擬似パケットとをもとに、フローエントリを計算してもよい。そのような構成によれば、例えば、移行元の制御装置が受信したであろうＰａｃｋｅｔＩｎメッセージを含む擬似パケットを生成することにより、移行元の制御装置がスイッチと接続した時と同様の方法により、フローエントリを計算することができる。
【００９４】
また、移行先の制御装置の移行準備部３１は、自装置が保持する仮想ネットワークの設定情報と、統合装置２０から受け取った仮想ネットワークの設定情報とを統合し、さらに、物理ネットワークの境界を示す情報をもとに、自装置が保持する物理ネットワークのトポロジ情報と、統合装置２０から受け取った物理ネットワークのトポロジ情報とを統合し、統合した物理ネットワークのトポロジ情報と統合した仮想ネットワークの設定情報と擬似パケットとをもとに、フローエントリを計算してもよい。そのような構成によれば、移行先の制御装置が、既にスイッチを制御している稼働状態であっても、移行元の制御装置が制御しているスイッチを受け入れることができる。
【００９５】
また、移行先の制御装置の移行準備部３１は、移行準備中にスイッチからメッセージを受信した場合には、当該メッセージに基づいて、スイッチに設定するフローエントリを更新してもよい。そのような構成によれば、移行先の制御装置が稼働状態であって、移行準備中にスイッチからＰａｃｋｅｔＩｎメッセージなどのイベントを受信した場合には、当該イベントに基づくフローエントリの生成や変更を、スイッチに設定するフローエントリに反映させることができる。
【符号の説明】
【００９６】
１０  統合コントローラ
１１  設定受付部
１２、２１  移行処理部
１３−１、１３−２  ドライバ部
２０  統合装置
３０−１〜３０−ｎ  制御装置
３１  移行準備部
１００、２００、３００  ＯＦＣ
１１０、２１０  ＯＦメッセージ処理部
１２０、２２０  物理ネットワーク管理部
１３０、２３０  仮想ネットワーク管理部
２４０  移行状態管理部
２５０  擬似パケット生成部
３１０  移行処理用物理ネットワーク管理部
３２０  移行処理用仮想ネットワーク管理部
【図１】
2015154190.tif 000003
【図２】
2015154190.tif 000004
【図３】
2015154190.tif 000005
【図４】
2015154190.tif 000006
【図５】
2015154190.tif 000007
【図６】
2015154190.tif 000008
【図７】
2015154190.tif 000009
【図８】
2015154190.tif 000010
【図９】
2015154190.tif 000011
【図１０】
2015154190.tif 000012
【図１１】
2015154190.tif 000013