【文献】
小宮山 敦,最新技術で手に入れる トラブルに強いネットワーク ネットワークのキーテクノロジーを学ぶ,NETWORK WORLD 第12巻 第8号,日本,(株)IDGジャパン,2007年 8月,第12巻
(58)【調査した分野】(Int.Cl.,DB名)
前記OpenFlowスイッチの前記グレースフル・リスタート状態を、ネットワークトポロジーを把握する必要のあるネットワークアプリケーションプログラムモジュールにフィードバックするように構成される第1フィードバック手段、をさらに備える
請求項5に記載のOpenFlowコントローラ。
前記OpenFlowスイッチの前記グレースフル・リスタート状態の消去に関する状態更新を、ネットワークトポロジーを把握する必要のあるネットワークアプリケーションプログラムモジュールにフィードバックするように構成される第2のフィードバック手段、をさらに備える
請求項7に記載のOpenFlowコントローラ。
【背景技術】
【0002】
データ通信ネットワークにおいて、ネットワークエレメント機器は、例えば、ソフトウェアの再インストール又はアップグレード、ソフトウェアの障害、或いは制御ソフトウェアを実行するプロセッサにおけるマスター/スレーブ間の切替え等、様々な原因によって再起動することがよくある。ネットワークエレメント機器の再起動は、以下の二種類に分けられることができる。第1種類の再起動は、制御ソフトウェアの再起動に伴うネットワークエレメント機器の転送機能の失効を招き、このような再起動は、ネットワークにおける転送ルーティングの再収束を誘発し、ネットワークにおけるトラフィックに影響を与えるに決まっている。これに対し、第2種類の再起動は、ネットワークエレメント機器の転送機能が制御ソフトウェアの再起動中に正常に実行されることを確保でき、このような再起動は、必ずしもネットワークにおける転送ルーティングの再収束を誘発し、ネットワークにおけるトラフィックに影響を与えるとは限らない。
【0003】
上記後者の再起動について、ネットワークにおける転送ルーティングの再収束を回避するために、開放型最短経路優先(Open Shortest Path First、単にOPSFという)、中間システム間連携(Intermediate System to Intermediate System、単にIS−ISという)、及び境界ゲートウェイプロトコル(Border Gateway Protocol、単にBGPという)のような基本的ルーティングプロトコルを若干拡張し、対応するプロトコルメッセージやプロトコルフローを追加する必要がある。これらのプロトコル拡張をサポートするネットワークエレメント機器が実施したナンストップフォワーディング(non-stop forwarding)の再起動過程は、グレースフル・リスタート(Graceful Restart、単にGRという)と呼ばれる。国際標準化機構であるインターネット技術タスクフォース(Internet Engineering Task Force、単にIETFという)が、2003年11月及び2008年6月にて、OPSFプロトコルを如何に拡張してOPSFプロトコルを実行するネットワークエレメント機器のグレースフル・リスタートをサポートするかについて規定したRFC 3623及びRFC 5187をそれぞれ公布した。
【0004】
IETFが2008年10月にて、IS−ISプロトコルを如何に拡張してIS−ISプロトコルを実行するネットワークエレメント機器のグレースフル・リスタートをサポートするかについて規定したRFC 5306を公布した。また、IETFが2007年1月にて、BGPプロトコルを如何に拡張してBGPプロトコルを実行するネットワークエレメント機器のグレースフル・リスタートをサポートするかについて規定したRFC 4724を公布した。
【0005】
ソフトウェアデファインドネットワーク(Software Defined Network、単にSDNという)概念の提案及びその応用発展につれ、SDNの核心技術としてのOpenFlow技術が急速発展している最中であり、現在OpenFlow技術を用いて構築されたOpenFlowネットワークは、ますます広く実際の生産生活に応用されていく。OpenFlowネットワークは、コントロールプレーンとフォワーディングプレーン(データプレーン又はユーザプレーンともいう)とを分離させる構造を用い、
図1は、関連技術によるOpenFlowネットワーク構成要素の構造を示す図であり、
図1に示すように、OpenFlowネットワークのコントロールプレーンは、強い計算能力を持つ設備であるOpenFlowコントローラによって実現され、具体的な設備形態として、パソコン、サーバ又はサーバクラスタ等であってもよい。
【0006】
OpenFlowネットワークのフォワーディングプレーンは、強い交換能力を持つ設備であるOpenFlowスイッチによって実現され、具体的な設備形態として、複数のネットワークポートを備え、フローテーブル(Flow Table)に基づくメッセージの処理や転送を行うネットワークエレメント機器である。ネットワークアプリケーションプログラムは、携帯電話及びタブレットのような端末機器で実行されるAppであるアプリケーション(App)ソフトウェアであり、あるネットワークサービスの配置及び/又は修正を完成するためのものである。
【0007】
OpenFlowコントローラとOpenFlowスイッチとの間のインターフェースでOpenFlowプロトコルを実行し、ネットワークアプリケーションプログラムは、ノースバンドインターフェース(Northbound Interface、単にNBIという)を介してOpenFlowコントローラを呼び出すことでOpenFlowネットワークへの操作を実現することができる。
【0008】
OpenFlowプロトコルもNBIも、国際標準化機構であるオープンネットワーキングファウンデーション(Open Networking Foundation、単にONF)が責任をとって規定し修正したものであり、ONFが2013年10月にて正式に公布したOpenFlowスイッチ仕様書1.4.0バージョンには、OpenFlowプロトコルフロー及びOpenFlowスイッチ内におけるメッセージ処理フローが規定されている。
【0009】
OpenFlowスイッチ仕様書の規定によると、OpenFlowスイッチとOpenFlowコントローラとの間の接続が中断する場合、OpenFlowスイッチはフェイルセーフモード(Fail Secure Mode)又はフェイルスダンドアロンモード(Fail Standalone Mode)に入り、つまり、フェイルセーフモードに入ったOpenFlowスイッチは、相変わらずフローテーブルに基づいて、受信したサービスメッセージを転送するとともに、OpenFlowコントローラへ送信すべきサービスメッセージをそのまま捨てるようにし、また、フェイルスダンドアロンモードに入ったOpenFlowスイッチは、フローテーブルによらない転送方式を用い、即ち、従来のフォワーディングテーブルを用いてサービスメッセージを転送するようにし、該フェイルスダンドアロンモードは、フローテーブルによる転送と従来のフォワーディングテーブルによる転送とを同時にサポートする混合型ネットワークエレメント機器のみに適用される。
【0010】
上記OpenFlowスイッチ仕様書には、OpenFlowコントローラとの接続が中断した後のOpenFlowスイッチの行動しか規定されておらず、OpenFlowスイッチのグレースフル・リスタートを如何にサポートするかに関する考慮が少ないため、OpenFlowスイッチのグレースフル・リスタート前後におけるOpenFlowスイッチとOpenFlowコントローラとの行動規範を提示していない。それゆえ、OpenFlowスイッチが再起動してOpenFlowコントローラとの接続中断を誘発すると、OpenFlowコントローラは、自体に保存したネットワークトポロジーから、該OpenFlowスイッチ及びそのネットワーク接続を全て削除したうえで、ルーティングを再計算してネットワークにおける影響を受けているOpenFlowスイッチのフローテーブルを更新する。
【0011】
そして、OpenFlowスイッチが再起動を完成してOpenFlowコントローラとのOpenFlowプロトコル接続を再確立した後、OpenFlowコントローラは、該OpenFlowスイッチの全てのネットワーク接続を再び発見して、該ネットワークエレメント機器を自体に保存したネットワークトポロジーに加えたうえで、ルーティングを再計算してネットワークにおける影響を受けているOpenFlowスイッチのフローテーブルを更新する。
【0012】
したがって、関連技術において、OpenFlowスイッチのグレースフル・リスタートを実現できない問題が存在している。
【発明の概要】
【発明が解決しようとする課題】
【0013】
本発明は、関連技術において、OpenFlowスイッチのグレースフル・リスタートを実現できない問題を解決するように、オープンフローOpenFlowスイッチのグレースフル・リスタート処理方法、装置及びオープンフローコントローラを提供する。
【課題を解決するための手段】
【0014】
本発明の一態様によれば、OpenFlowスイッチの状態をグレースフル・リスタート状態として決定するステップと、前記OpenFlowスイッチの状態について、前記OpenFlowスイッチのグレースフル・リスタートまでのフローテーブル及び外部接続を元通りに有効に維持するとともに、前記フローテーブルへの修正を禁止するように、前記グレースフル・リスタート状態としてマークするステップと、を含むオープンフローOpenFlowスイッチのグレースフル・リスタート処理方法が提供される。
【0015】
前記OpenFlowスイッチの状態を前記グレースフル・リスタート状態として決定することは、前記OpenFlowスイッチから送信されたグレースフル・リスタート通知メッセージを受信することと、受信した前記グレースフル・リスタート通知メッセージに基づいて、前記OpenFlowスイッチの状態をグレースフル・リスタート状態として決定することと、を含むことが好ましい。
【0016】
前記OpenFlowスイッチの状態を前記グレースフル・リスタート状態として決定することは、前記OpenFlowスイッチとの接続を確立する際に、前記OpenFlowスイッチへグレースフル・リスタートサポート能力問合せメッセージを送信することと、前記OpenFlowスイッチからフィードバックされたグレースフル・リスタートサポート能力応答メッセージを受信することと、前記OpenFlowスイッチとの間の接続を切断する際に、受信した前記グレースフル・リスタートサポート能力応答メッセージに基づいて、前記OpenFlowスイッチの状態をグレースフル・リスタート状態として決定することと、を含むことが好ましい。
【0017】
前記OpenFlowスイッチの状態を前記グレースフル・リスタート状態としてマークするステップの後、前記OpenFlowスイッチの前記グレースフル・リスタート状態を、ネットワークトポロジーを把握する必要のあるネットワークアプリケーションプログラムモジュールにフィードバックするステップ、をさらに含むことが好ましい。
【0018】
前記OpenFlowスイッチの状態を前記グレースフル・リスタート状態としてマークするステップの後、前記OpenFlowスイッチとの接続を再確立したと検出するステップと、前記OpenFlowスイッチの前記グレースフル・リスタート状態を消去するステップと、をさらに含むことが好ましい。
【0019】
前記OpenFlowスイッチの状態の前記グレースフル・リスタート状態を消去するステップの後、前記OpenFlowスイッチの前記グレースフル・リスタート状態の消去に関する状態更新を、ネットワークトポロジーを把握する必要のあるネットワークアプリケーションプログラムモジュールにフィードバックするステップ、をさらに含むことが好ましい。
【0020】
本発明の他の一形態によれば、OpenFlowスイッチの状態をグレースフル・リスタート状態として決定するように構成される決定手段と、前記OpenFlowスイッチの状態について、前記OpenFlowスイッチのグレースフル・リスタートまでのフローテーブル及び外部接続を元通りに有効に維持するとともに、前記フローテーブルへの修正を禁止するように、前記グレースフル・リスタート状態としてマークするように構成されるマーク手段と、を備えるオープンフローOpenFlowスイッチのグレースフル・リスタート処理装置がさらに提供される。
【0021】
前記決定手段は、前記OpenFlowスイッチから送信されたグレースフル・リスタート通知メッセージを受信するように構成される第1受信ユニットと、受信した前記グレースフル・リスタート通知メッセージに基づいて、前記OpenFlowスイッチの状態をグレースフル・リスタート状態として決定するように構成される第1決定ユニットと、を含むことが好ましい。
【0022】
前記決定手段は、前記OpenFlowスイッチとの接続を確立する際に、前記OpenFlowスイッチへグレースフル・リスタートサポート能力問合せメッセージを送信するように構成される送信ユニットと、前記OpenFlowスイッチからフィードバックされたグレースフル・リスタートサポート能力応答メッセージを受信するように構成される第2受信ユニットと、前記OpenFlowスイッチとの間の接続を切断する際に、受信した前記グレースフル・リスタートサポート能力応答メッセージに基づいて、前記OpenFlowスイッチの状態をグレースフル・リスタート状態として決定するように構成される第2決定ユニットと、を含むことが好ましい。
【0023】
前記装置は、前記OpenFlowスイッチの前記グレースフル・リスタート状態を、ネットワークトポロジーを把握する必要のあるネットワークアプリケーションプログラムモジュールにフィードバックするように構成される第1フィードバック手段、をさらに備えることが好ましい。
【0024】
前記装置は、前記OpenFlowスイッチとの接続を再確立したと検出するように構成される検出手段と、前記OpenFlowスイッチの前記グレースフル・リスタート状態を消去するように構成される消去手段と、をさらに備えることが好ましい。
【0025】
前記装置は、前記OpenFlowスイッチの前記グレースフル・リスタート状態の消去に関する状態更新を、ネットワークトポロジーを把握する必要のあるネットワークアプリケーションプログラムモジュールにフィードバックするように構成される第2のフィードバック手段、をさらに備えることが好ましい。
【0026】
本発明の他の一形態によれば、上記いずれか一項に記載の装置を備えるオープンフローOpenFlowコントローラがさらに提供される。
【発明の効果】
【0027】
本発明によると、OpenFlowスイッチの状態をグレースフル・リスタート状態として決定し、そして、OpenFlowスイッチの状態について、前記OpenFlowスイッチのグレースフル・リスタートまでのフローテーブル及び外部接続を元通りに有効に維持するとともに、前記フローテーブルへの修正を禁止するように、前記グレースフル・リスタート状態としてマークすることにより、関連技術において、OpenFlowスイッチのグレースフル・リスタートを実現できない問題を解決し、そのうえ、OpenFlowスイッチのグレースフル・リスタートを効果的に実現する効果を達成している。
【発明を実施するための形態】
【0029】
以下、図面を参照しつつ実施例を結合して本発明を詳しく説明する。なお、衝突しない限り、本願の実施例及び実施例中の構成要件を組み合わせることができる。
【0030】
本実施例にてオープンフローOpenFlowスイッチのグレースフル・リスタート処理方法が提供され、
図2は、本発明の実施例によるオープンフローOpenFlowスイッチのグレースフル・リスタート処理方法のフローチャートであり、
図2に示すように、該フローは、以下のステップS202〜ステップS204を含む。
【0031】
ステップS202:OpenFlowスイッチの状態をグレースフル・リスタート状態として決定する。
【0032】
ステップS204:OpenFlowスイッチの状態について、OpenFlowスイッチのグレースフル・リスタートまでのフローテーブル及び外部接続を元通りに有効に維持するとともに、フローテーブルへの修正を禁止するように、グレースフル・リスタート状態としてマークする。
【0033】
上記ステップを通じて、OpenFlowスイッチがグレースフル・リスタート状態にある場合、OpenFlowスイッチの状態をグレースフル・リスタート状態としてマークし、つまり、OpenFlowスイッチが再起動する期間において、OpenFlowスイッチのグレースフル・リスタートまでのフローテーブル及び外部接続を元通りに有効に維持するとともに、フローテーブルへの修正を禁止することにより、関連技術において、OpenFlowスイッチの再起動にあたり、ネットワークトポロジーを書き直し、ネットワークルーティングを改めて計算する必要があり、トラフィックストリームの中断を招き、即ち、OpenFlowスイッチのグレースフル・リスタートを実現できない問題を解決し、上記処理により、OpenFlowスイッチが再起動する期間において、再起動までの状態を維持し、即ち、ネットワークトポロジーの修正やルーティングの再計算はなく、そのうえ、OpenFlowスイッチのグレースフル・リスタートを効果的に実現する効果を達成している。
【0034】
OpenFlowスイッチの状態をグレースフル・リスタート状態として決定することは、様々な方式で行われることができ、例えば、OpenFlowスイッチから送信されたグレースフル・リスタート通知メッセージを受信することと、受信したグレースフル・リスタート通知メッセージに基づいて、OpenFlowスイッチの状態をグレースフル・リスタート状態として決定することにより実現することができる。
【0035】
即ち、OpenFlowスイッチが進んで通知することにより、OpenFlowスイッチのグレースフル・リスタート状態を決定する。或いは、例えば、OpenFlowスイッチの状態をグレースフル・リスタート状態として決定することは、OpenFlowスイッチとの接続を確立する際に、OpenFlowスイッチへグレースフル・リスタートサポート能力問合せメッセージを送信することと、OpenFlowスイッチからフィードバックされたグレースフル・リスタートサポート能力応答メッセージを受信することと、OpenFlowスイッチとの間の接続を切断する際に、受信したグレースフル・リスタートサポート能力応答メッセージに基づいて、OpenFlowスイッチの状態をグレースフル・リスタート状態として決定することにより、実現することもできる。即ち、OpenFlowコントローラが進んでOpenFlowスイッチに問い合わせることにより、OpenFlowスイッチのグレースフル・リスタート状態を決定する。
【0036】
好ましくは、OpenFlowスイッチの状態をグレースフル・リスタート状態としてマークした後、OpenFlowスイッチのグレースフル・リスタート状態を、ネットワークトポロジーを把握する必要のあるネットワークアプリケーションプログラムモジュールにフィードバックしてもよい。OpenFlowスイッチの状態をグレースフル・リスタート状態としてマークした後、OpenFlowスイッチとの接続を再確立したと検出された場合、OpenFlowスイッチのグレースフル・リスタート状態を消去する。好ましくは、OpenFlowスイッチのグレースフル・リスタート状態を消去した後、OpenFlowスイッチのグレースフル・リスタート状態の消去に関する状態更新を、ネットワークトポロジーを把握する必要のあるネットワークアプリケーションプログラムモジュールにフィードバックしてもよい。上記処理により、トラフィックストリーム処理全体が順調に行われることを効果的に実現する。
【0037】
本実施例にて、上記実施例及び好適な実施形態を実現するためのオープンフローOpenFlowスイッチのグレースフル・リスタート処理装置がさらに提供され、説明したものについてその説明を省略する。以下で使用されるように、用語である「手段」とは、予め設定された機能を実現可能なソフトウェア及び/又はハードウェアの組合せである。以下の実施例で説明する装置をソフトウェアで実現することが好ましいが、ハードウェア、或いはソフトウェアとハードウェアとの組合せで実現することも可能であり、構想されることである。
【0038】
図3は、本発明の実施例によるオープンフローOpenFlowスイッチのグレースフル・リスタート処理装置の構造のブロック図であり、
図3に示すように、該装置は、決定手段32と、マーク手段34と、を備え、以下、該装置について説明する。
【0039】
決定手段32は、OpenFlowスイッチの状態をグレースフル・リスタート状態として決定するように構成され、マーク手段34は、上記決定手段32に接続され、OpenFlowスイッチの状態について、OpenFlowスイッチのグレースフル・リスタートまでのフローテーブル及び外部接続を元通りに有効に維持するとともに、フローテーブルへの修正を禁止するように、グレースフル・リスタート状態としてマークするように構成される。
【0040】
図4は、本発明の実施例によるオープンフローOpenFlowスイッチのグレースフル・リスタート処理装置における決定手段32の第1の好適な構造のブロック図であり、
図4に示すように、該決定手段32は、第1受信ユニット42と、第1決定ユニット44と、を含み、以下、該決定手段32について説明する。
【0041】
第1受信ユニット42は、OpenFlowスイッチから送信されたグレースフル・リスタート通知メッセージを受信するように構成され、第1決定ユニット44は、上記第1受信ユニット42に接続され、受信したグレースフル・リスタート通知メッセージに基づいて、OpenFlowスイッチの状態をグレースフル・リスタート状態として決定するように構成される。
【0042】
図5は、本発明の実施例によるオープンフローOpenFlowスイッチのグレースフル・リスタート処理装置における決定手段32の第2の好適な構造のブロック図であり、
図5に示すように、該決定手段32は、送信ユニット52と、第2受信ユニット54と、第2決定ユニット56と、を含み、以下、該決定手段32について説明する。
【0043】
送信ユニット52は、OpenFlowスイッチとの接続を確立する際に、OpenFlowスイッチへグレースフル・リスタートサポート能力問合せメッセージを送信するように構成され、第2受信ユニット54は、上記送信ユニット52に接続され、OpenFlowスイッチからフィードバックされたグレースフル・リスタートサポート能力応答メッセージを受信するように構成され、第2決定ユニット56は、上記第2受信ユニット54に接続され、OpenFlowスイッチとの間の接続を切断する際に、受信したグレースフル・リスタートサポート能力応答メッセージに基づいて、OpenFlowスイッチの状態をグレースフル・リスタート状態として決定するように構成される。
【0044】
図6は、本発明の実施例によるオープンフローOpenFlowスイッチのグレースフル・リスタート処理装置の第1の好適な構造のブロック図であり、
図6に示すように、該装置は、
図3に示す全ての手段に加え、第1フィードバック手段62をさらに備え、以下、該第1フィードバック手段62について説明する。
【0045】
第1フィードバック手段62は、上記マーク手段34に接続され、OpenFlowスイッチのグレースフル・リスタート状態を、ネットワークトポロジーを把握する必要のあるネットワークアプリケーションプログラムモジュールにフィードバックするように構成される。
【0046】
図7は、本発明の実施例によるオープンフローOpenFlowスイッチのグレースフル・リスタート処理装置の第2の好適な構造のブロック図であり、
図7に示すように、該装置は、
図3に示す全ての手段に加え、検出手段72と、消去手段74と、をさらに備え、以下、該好適な構造について説明する。
【0047】
検出手段72は、上記マーク手段34に接続され、OpenFlowスイッチとの接続を再確立したと検出するように構成され、消去手段74は、上記検出手段72に接続され、OpenFlowスイッチのグレースフル・リスタート状態を消去するように構成される。
【0048】
図8は、本発明の実施例によるオープンフローOpenFlowスイッチのグレースフル・リスタート処理装置の第3の好適な構造のブロック図であり、
図8に示すように、該装置は、
図7に示す全ての手段に加え、第2のフィードバック手段82をさらに備え、以下、該第2のフィードバック手段82について説明する。
【0049】
第2のフィードバック手段82は、上記消去手段74に接続され、OpenFlowスイッチのグレースフル・リスタート状態の消去に関する状態更新を、ネットワークトポロジーを把握する必要のあるネットワークアプリケーションプログラムモジュールにフィードバックするように構成される。
【0050】
図9は、本発明の実施例によるオープンフローOpenFlowコントローラの構造のブロック図であり、
図9に示すように、該OpenFlowコントローラ90は、上記いずれかに記載のオープンフローOpenFlowスイッチのグレースフル・リスタート処理装置92を備える。
【0051】
関連技術において、OpenFlowスイッチのグレースフル・リスタートを実現できない問題に対して、本実施例にて、OpenFlowスイッチが、OpenFlowネットワークにおけるトラフィックの中断を起こすことなく、グレースフル・リスタートを完成することができるようなOpenFlowスイッチのグレースフル・リスタートの実現方法を提供し、関連技術において、OpenFlowスイッチのグレースフル・リスタートを実現できない欠陥を解消している。OpenFlowスイッチのグレースフル・リスタートの実現方法は、以下のように実現することができる。
【0052】
本実施形態において、ONFで規定されたOpenFlowプロトコル及びNBIを拡張し、OpenFlowスイッチがグレースフル・リスタートする前にOpenFlowコントローラへ通知メッセージを送信するようなメカニズムを追加した上で、OpenFlowコントローラは、通知メッセージを受信した後、自体に保存したネットワークトポロジーにおいて、対応するOpenFlowスイッチをグレースフル・リスタート状態としてマークし、NBIを介して該OpenFlowスイッチのグレースフル・リスタート状態を、ネットワークトポロジーを把握する必要のあるネットワークアプリケーションプログラムにフィードバックし、そして、OpenFlowスイッチが再起動を完成してOpenFlowコントローラとのOpenFlowプロトコル接続を再確立した後、OpenFlowコントローラは、自体に保存したネットワークトポロジーから、対応するOpenFlowスイッチのグレースフル・リスタート状態を消去し、NBIを介して該OpenFlowスイッチのグレースフル・リスタート状態の消去に関する状態更新を、ネットワークトポロジーを把握する必要のあるネットワークアプリケーションプログラムにフィードバックするようにし、上述したように、従来のOpenFlowプロトコルとともにNBIの拡張に対して、OpenFlowスイッチのグレースフル・リスタートを実現している。
【0053】
好ましくは、本実施形態において、さらに、従来のOpenFlowプロトコルの拡張によって、OpenFlowコントローラがOpenFlowスイッチのグレースフル・リスタートサポート能力について問い合わせることが実現され、これにより、OpenFlowコントローラがOpenFlowスイッチからグレースフル・リスタート通知メッセージを受信していない場合であっても、本発明で特定したグレースフル・リスタート通知メッセージの受信後のフローを実行するように選択することができ、OpenFlowコントローラの実現方式の柔軟性を向上させている。
【0054】
以下、図面を結合しながら本発明の好適な実施例及び好適な実施形態を説明する。
【0055】
図10は、本発明の好適な実施例による第1のOpenFlowスイッチのグレースフル・リスタート方法のフローチャートであり、
図10に示すように、該フローは、以下のステップS1002〜ステップS1006を含む。
【0056】
ステップS1002:OpenFlowスイッチが、グレースフル・リスタートのトリガーイベントを検出した後、OpenFlowコントローラへグレースフル・リスタート通知メッセージを送信する。
【0057】
OpenFlowスイッチとOpenFlowコントローラとの間ではOpenFlowプロトコルを実行し、グレースフル・リスタート通知メッセージは、OpenFlowプロトコルを用いてカプセル化されたOpenFlowプロトコルメッセージであってもよく、該メッセージは、該メッセージを送信したOpenFlowスイッチがグレースフル・リスタート予定にあることをOpenFlowコントローラに知らせるためのものであり、該メッセージは、新しく定義されたOpenFlowプロトコルメッセージであってもよいし、従来のOpenFlowプロトコルメッセージを拡張した新しいOpenFlowプロトコルメッセージであってもよい。
【0058】
グレースフル・リスタート通知メッセージには、OpenFlowスイッチがグレースフル・リスタート予定にあることを示すフラッグビットと、該メッセージを送信したOpenFlowスイッチの識別子(従来のOpenFlowプロトコルで規定されたOpenFlowスイッチ識別子Datapath ID、即ちデータパス識別子を用いてもよい)と、グレースフル・リスタートのトリガーイベントと、再起動の最大必要時間とが同時に携帯されてもよく、グレースフル・リスタートのトリガーイベントは、ネットワークオペレータからの命令、制御ソフトウェアの障害、制御ソフトウェアのアップグレード等を含み、再起動の最大必要時間は、OpenFlowスイッチが再起動障害になっているか否かについてOpenFlowコントローラが判定するためのものであり、OpenFlowコントローラが、グレースフル・リスタートしたOpenFlowスイッチと自身とのOpenFlowプロトコル接続を再確立するまで待つ最大待ち時間でもある。
【0059】
ステップS1004:OpenFlowコントローラがグレースフル・リスタート通知メッセージを受信した後、OpenFlowスイッチへグレースフル・リスタート通知の受信確認メッセージを返信するとともに、自体に保存したネットワークトポロジーにおいて、対応するOpenFlowスイッチをグレースフル・リスタート状態としてマークし、対応するOpenFlowスイッチのグレースフル・リスタート状態を、NBIを介して、ネットワークトポロジーを把握する必要のあるネットワークアプリケーションプログラムにフィードバックする。
【0060】
OpenFlowコントローラは、1つのOpenFlowスイッチをグレースフル・リスタート状態としてマークすることは、該OpenFlowスイッチの既存フローテーブル及び外部接続がまだ有効であり、OpenFlowコントローラが、該OpenFlowスイッチの再起動に起因してルーティングを再計算し、再計算したルーティングに基づいてネットワークにおける他のOpenFlowスイッチのフローテーブルを修正する必要がないことを表すとともに、該OpenFlowスイッチのフローテーブルに対して、新しいフローテーブルの追加や他の既存フローテーブルの削除又は変更を含む一時的な修正ができないことを表す。
【0061】
ネットワークアプリケーションプログラムは、ネットワークトポロジーを把握する必要のないものと、ネットワークトポロジーを把握する必要のあるものとの2種類に分けられ、ネットワークトポロジーを把握する必要のあるネットワークアプリケーションプログラムは、ネットワークプロバイダが使用するネットワーク管理ソフトウェア、プロバイダネットワークを借用した仮想事業者が使用する上位のOpenFlowコントローラソフトウェア等を含み、また、OpenFlowコントローラは、1つのOpenFlowスイッチをグレースフル・リスタート状態としてマークした後、対応するOpenFlowスイッチのグレースフル・リスタート状態を、NBIを介して、ネットワークトポロジーを把握する必要のあるネットワークアプリケーションプログラムにフィードバックする必要がある。
【0062】
ステップS1006:OpenFlowスイッチが再起動を完成してOpenFlowコントローラとのOpenFlowプロトコル接続を再確立した後、OpenFlowコントローラは、自体に保存したネットワークトポロジーから、対応するOpenFlowスイッチのグレースフル・リスタート状態を消去し、対応するOpenFlowスイッチのグレースフル・リスタート状態の消去に関する状態更新を、NBIを介して、ネットワークトポロジーを把握する必要のあるネットワークアプリケーションプログラムにフィードバックする。
【0063】
OpenFlowコントローラから返信されたグレースフル・リスタート通知の受信確認メッセージを受信した後、OpenFlowスイッチはすぐにソフトウェアを再起動し、OpenFlowコントローラとの間のOpenFlowプロトコル接続が直ちに中断されることになり、そして、OpenFlowコントローラから返信されたグレースフル・リスタート通知の受信確認メッセージを受信していない場合であっても、OpenFlowスイッチは、しばらく待ってからソフトウェアを再起動し、OpenFlowコントローラとの間のOpenFlowプロトコル接続が中断されることになる。
【0064】
再起動期間を経って、OpenFlowスイッチの再起動が完了したら、OpenFlowコントローラとの間のOpenFlowプロトコル接続をすぐに開始して再確立する。OpenFlowコントローラが該OpenFlowスイッチとOpenFlowプロトコル接続を再確立すると、自体に保存したネットワークトポロジーから、対応するOpenFlowスイッチのグレースフル・リスタート状態を消去し、これは、OpenFlowコントローラが該OpenFlowスイッチを再び制御し、新しいフローテーブルを追加したり、その既存フローテーブルを削除又は変更したり、そのフローテーブルを修正することができることを表す。同時に、ネットワークトポロジーを把握する必要のあるネットワークアプリケーションプログラムが最新のネットワーク状態を取得するように、OpenFlowコントローラは、すぐに対応するOpenFlowスイッチのグレースフル・リスタート状態の消去に関する状態更新を、NBIを介して、ネットワークトポロジーを把握する必要のあるネットワークアプリケーションプログラムにフィードバックする。
【0065】
OpenFlowスイッチからOpenFlowコントローラへ送信されたグレースフル・リスタート通知メッセージに携帯された再起動の最大必要時間が経過した後、OpenFlowコントローラがまだ該OpenFlowスイッチとのOpenFlowプロトコル接続を再確立していなければ、OpenFlowコントローラは、関連技術に基づいて該OpenFlowスイッチ及びその外部接続を自体に保存したネットワークトポロジーから削除し、ネットワークトポロジーの更新を、ネットワークトポロジーを把握する必要のあるネットワークアプリケーションプログラムにフィードバックする。
【0066】
図11は、本発明の好適な実施例による第2のOpenFlowスイッチのグレースフル・リスタート方法のフローチャートであり、
図11に示すように、該フローは、以下のステップS1102〜ステップS1106を含む。
【0067】
ステップS1102:OpenFlowコントローラがOpenFlowスイッチとOpenFlowプロトコル接続を確立すると、すぐにOpenFlowスイッチへグレースフル・リスタートサポート能力問合せメッセージを送信し、OpenFlowスイッチがOpenFlowコントローラへグレースフル・リスタートサポート能力応答メッセージを返信する。
【0068】
OpenFlowスイッチとOpenFlowコントローラとの間ではOpenFlowプロトコルを実行し、グレースフル・リスタートサポート能力問合せメッセージが、OpenFlowプロトコルを用いてカプセル化されたOpenFlowプロトコルメッセージでもあり、該メッセージは、OpenFlowスイッチがグレースフル・リスタートをサポートするか否かについて問い合わせるためのものであり、該メッセージは、新しく定義されたOpenFlowプロトコルメッセージであってもよいし、従来のOpenFlowプロトコルメッセージを拡張した新しいOpenFlowプロトコルメッセージであってもよい。
【0069】
グレースフル・リスタートサポート能力応答メッセージも、OpenFlowプロトコルを用いてカプセル化されたOpenFlowプロトコルメッセージである。該メッセージを送信したOpenFlowスイッチがグレースフル・リスタートをサポートすれば、該メッセージに、OpenFlowスイッチがグレースフル・リスタートをサポートすることを示すフラッグビットと、該メッセージを送信したOpenFlowスイッチの識別子(従来のOpenFlowプロトコルで規定されたOpenFlowスイッチ識別子Datapath ID、即ちデータパス識別子を用いてもよい)と、再起動の最大必要時間とを同時に携帯させ、再起動の最大必要時間は、OpenFlowスイッチが再起動障害になっているか否かについてOpenFlowコントローラが判定するためのものであり、OpenFlowコントローラが、グレースフル・リスタートしたOpenFlowスイッチと自身とのOpenFlowプロトコル接続を再確立するまで待つ最大待ち時間でもある。該メッセージを送信したOpenFlowスイッチがグレースフル・リスタートをサポートしていなければ、該メッセージに、OpenFlowスイッチがグレースフル・リスタートをサポートしないことを示すフラッグビットと、該メッセージを送信したOpenFlowスイッチの識別子とを同時に携帯させ、OpenFlowコントローラが該メッセージを受信した後、関連技術に基づいて該OpenFlowスイッチが再起動状態にある場合、それを自体に保存したネットワークトポロジーから削除したうえで、新しいネットワークトポロジーに基づいてルーティングを再計算してネットワークにおける影響を受けた全てのOpenFlowスイッチのフローテーブルを更新する。
【0070】
後続のステップは、グレースフル・リスタートサポート能力応答メッセージを送信したOpenFlowスイッチがグレースフル・リスタートをサポートすると想定したものである。
【0071】
ステップS1104:OpenFlowコントローラは、OpenFlowスイッチとの間のOpenFlowプロトコル接続が中断していると検出した後、自体に保存したネットワークトポロジーにおいて、対応するOpenFlowスイッチをグレースフル・リスタート状態としてマークし、対応するOpenFlowスイッチのグレースフル・リスタート状態を、NBIを介して、ネットワークトポロジーを把握する必要のあるネットワークアプリケーションプログラムにフィードバックする。
【0072】
ステップS1106:OpenFlowスイッチが再起動を完成してOpenFlowコントローラとのOpenFlowプロトコル接続を再確立した後、OpenFlowコントローラは、自体に保存したネットワークトポロジーから、対応するOpenFlowスイッチのグレースフル・リスタート状態を消去し、対応するOpenFlowスイッチのグレースフル・リスタート状態の消去に関する状態更新を、NBIを介して、ネットワークトポロジーを把握する必要のあるネットワークアプリケーションプログラムにフィードバックする。
【0073】
OpenFlowスイッチからOpenFlowコントローラへ返信されたグレースフル・リスタートサポート能力応答メッセージに携帯された再起動の最大必要時間が経過した後、OpenFlowコントローラがまだ該OpenFlowスイッチとのOpenFlowプロトコル接続を再確立していなければ、OpenFlowコントローラは、関連技術に基づいて該OpenFlowスイッチを自体に保存したネットワークトポロジーから削除し、ネットワークトポロジーの更新を、ネットワークトポロジーを把握する必要のあるネットワークアプリケーションプログラムにフィードバックする。
【0074】
(好適な実施形態1)
図12は、本発明の好適な実施形態1によるOpenFlowスイッチのグレースフル・リスタートを応用するOpenFlowネットワーク場面を示す図であり、
図12に示すように、OpenFlowネットワークは、3つのOpenFlowスイッチ及び1つのOpenFlowコントローラを備え、3つのOpenFlowスイッチごとにOpenFlowコントローラとそれぞれOpenFlowプロトコル接続を確立している。3つのOpenFlowスイッチがそれぞれOpenFlowスイッチ1、OpenFlowスイッチ2、及びOpenFlowスイッチ3であり、OpenFlowスイッチ1のポート2がOpenFlowスイッチ2のポート1に接続され、OpenFlowスイッチ2のポート2がOpenFlowスイッチ3のポート1に接続される。ネットワークアプリケーションプログラムは、NBIを介してOpenFlowコントローラを呼び出して、OpenFlowスイッチ1のポート1とOpenFlowスイッチ3のポート2との間で帯域幅が50メガバイトのIPサービス接続を確立している。
【0075】
OpenFlowスイッチ2がネットワークオペレータからの命令を受信しているため、グレースフル・リスタート予定になる。
図10と
図12を結合して、この好適な実施形態において、OpenFlowネットワークにおけるOpenFlowスイッチとOpenFlowコントローラとが以下のステップ1〜ステップ3を実行する。
【0076】
ステップ1:OpenFlowスイッチ2がネットワークオペレータからのグレースフル・リスタート命令を受信した後、OpenFlowコントローラへグレースフル・リスタート通知メッセージを送信する。
【0077】
ステップ2:OpenFlowコントローラがグレースフル・リスタート通知メッセージを受信した後、OpenFlowスイッチ2へグレースフル・リスタート通知の受信確認メッセージを返信するとともに、自体に保存したネットワークトポロジーにおいて、OpenFlowスイッチ2をグレースフル・リスタート状態としてマークし、OpenFlowスイッチ2のグレースフル・リスタート状態を、NBIを介して、ネットワークトポロジーを把握する必要のあるネットワークアプリケーションプログラムにフィードバックする。
【0078】
OpenFlowスイッチ2が再起動する中、ネットワークアプリケーションプログラムがOpenFlowコントローラを呼び出すことで、OpenFlowスイッチ1のポート1とOpenFlowスイッチ3のポート2との間で確立した帯域幅が50メガバイトのIPサービス接続は、影響されることはないが、この場合、ネットワークアプリケーションプログラムは、該IPサービス接続を修正することができないとともに、OpenFlowスイッチ1のポート1とOpenFlowスイッチ3のポート2との間で新しいサービス接続を確立することもできない。
【0079】
ステップ3:OpenFlowスイッチ2が再起動を完成してOpenFlowコントローラとのOpenFlowプロトコル接続を再確立した後、OpenFlowコントローラは、自体に保存したネットワークトポロジーから、OpenFlowスイッチ2のグレースフル・リスタート状態を消去し、OpenFlowスイッチ2のグレースフル・リスタート状態の消去に関する状態更新を、NBIを介して、ネットワークトポロジーを把握する必要のあるネットワークアプリケーションプログラムにフィードバックする。
【0080】
ネットワークアプリケーションプログラムが、OpenFlowコントローラからフィードバックされたOpenFlowスイッチ2のグレースフル・リスタート状態の消去に関する状態更新を受信した後、OpenFlowスイッチ1のポート1とOpenFlowスイッチ3のポート2との間で確立した帯域幅が50メガバイトのIPサービス接続を修正することができるとともに、OpenFlowスイッチ1のポート1とOpenFlowスイッチ3のポート2との間で新しいサービス接続を確立することもできる。
【0081】
(好適な実施形態2)
図13は、本発明の好適な実施形態2によるOpenFlowスイッチのグレースフル・リスタートを応用するOpenFlowネットワーク場面を示す図であり、
図13に示すように、OpenFlowネットワークは、4つのOpenFlowスイッチ及び1つのOpenFlowコントローラを備え、4つのOpenFlowスイッチごとにOpenFlowコントローラとそれぞれOpenFlowプロトコル接続を確立している。4つのOpenFlowスイッチがそれぞれOpenFlowスイッチ1、OpenFlowスイッチ2、OpenFlowスイッチ3、及びOpenFlowスイッチ4であり、OpenFlowスイッチ1のポート2がOpenFlowスイッチ2のポート1に接続され、OpenFlowスイッチ2のポート2がOpenFlowスイッチ3のポート1に接続され、OpenFlowスイッチ1のポート3がOpenFlowスイッチ4のポート1に接続され、OpenFlowスイッチ3のポート3がOpenFlowスイッチ4のポート2に接続される。ネットワークアプリケーションプログラムは、NBIを介してOpenFlowコントローラを呼び出して、OpenFlowスイッチ1のポート1とOpenFlowスイッチ3のポート2との間で、OpenFlowスイッチ2を経由する帯域幅が50メガバイトのIPサービス接続を確立している。
【0082】
OpenFlowスイッチ2がネットワークオペレータからの命令を受信しているため、グレースフル・リスタート予定になる。
図10と
図13を結合して、この好適な実施形態において、OpenFlowネットワークにおけるOpenFlowスイッチとOpenFlowコントローラとが以下のステップ1〜ステップ3を実行する。
【0083】
ステップ1:OpenFlowスイッチ2がネットワークオペレータからのグレースフル・リスタート命令を受信した後、OpenFlowコントローラへグレースフル・リスタート通知メッセージを送信する。
【0084】
ステップ2:OpenFlowコントローラがグレースフル・リスタート通知メッセージを受信した後、OpenFlowスイッチ2へグレースフル・リスタート通知の受信確認メッセージを返信するとともに、自体に保存したネットワークトポロジーにおいて、OpenFlowスイッチ2をグレースフル・リスタート状態としてマークし、OpenFlowスイッチ2のグレースフル・リスタート状態を、NBIを介して、ネットワークトポロジーを把握する必要のあるネットワークアプリケーションプログラムにフィードバックする。
【0085】
OpenFlowスイッチ2が再起動する中、ネットワークアプリケーションプログラムがOpenFlowコントローラを呼び出すことで、OpenFlowスイッチ1のポート1とOpenFlowスイッチ3のポート2との間で確立したOpenFlowスイッチ2を経由する帯域幅が50メガバイトのIPサービス接続は、影響されることはないが、この場合、ネットワークアプリケーションプログラムは、該IPサービス接続を修正することができない。しかし、OpenFlowスイッチ1は、OpenFlowスイッチ4を介してOpenFlowスイッチ3に接続されることもできるため、この時、ネットワークアプリケーションプログラムは、OpenFlowスイッチ1のポート1とOpenFlowスイッチ3のポート2との間で新しいサービス接続を確立することができ、OpenFlowコントローラは、ネットワークアプリケーションプログラムに呼び出されて、新しいサービス接続を確立するように要求された後、OpenFlowスイッチ2のグレースフル・リスタート状態に基づいて、OpenFlowスイッチ1、OpenFlowスイッチ3、及びOpenFlowスイッチ4へ新しいフローテーブルを配達し、OpenFlowスイッチ4を経由する新しいサービス接続を確立するようになる。
【0086】
ステップ3:OpenFlowスイッチ2が再起動を完成してOpenFlowコントローラとのOpenFlowプロトコル接続を再確立した後、OpenFlowコントローラは、自体に保存したネットワークトポロジーから、OpenFlowスイッチ2のグレースフル・リスタート状態を消去し、OpenFlowスイッチ2のグレースフル・リスタート状態の消去に関する状態更新を、NBIを介して、ネットワークトポロジーを把握する必要のあるネットワークアプリケーションプログラムにフィードバックする。
【0087】
ネットワークアプリケーションプログラムが、OpenFlowコントローラからフィードバックされたOpenFlowスイッチ2のグレースフル・リスタート状態の消去に関する状態更新を受信した後、OpenFlowスイッチ1のポート1とOpenFlowスイッチ3のポート2との間で確立したOpenFlowスイッチ2を経由する帯域幅が50メガバイトのIPサービス接続を修正することができるとともに、OpenFlowスイッチ1のポート1とOpenFlowスイッチ3のポート2との間で新しいサービス接続を確立することもできる。OpenFlowコントローラは、ネットワークアプリケーションプログラムに呼び出されて、新しいサービス接続を確立するように要求された後、OpenFlowスイッチ2が障害によって繰り返して再起動することを防止するために、OpenFlowスイッチ1、OpenFlowスイッチ3、及びOpenFlowスイッチ4へ新しいフローテーブルを配達し、OpenFlowスイッチ4を経由する新しいサービス接続を確立するようにすることができれば、OpenFlowスイッチ2のこの前の再起動を無視して、OpenFlowスイッチ1、OpenFlowスイッチ2、及びOpenFlowスイッチ3へ新しいフローテーブルを配達し、OpenFlowスイッチ2を経由する新しいサービス接続を確立するようにすることもできる。
【0088】
(好適な実施形態3)
この好適な実施形態3において、OpenFlowネットワーク場面が好適な実施形態1と一致しているが、この好適な実施形態にて本発明で提供された他のOpenFlowスイッチのグレースフル・リスタートの実現方法を用いる点で異なる。
【0089】
OpenFlowスイッチ2がネットワークオペレータからの命令を受信しているため、グレースフル・リスタート予定になる。
図11と
図12を結合して、この好適な実施形態3において、OpenFlowネットワークにおけるOpenFlowスイッチとOpenFlowコントローラとが以下のステップ1〜ステップ3を実行する。
【0090】
ステップ1:OpenFlowコントローラがOpenFlowスイッチ1、OpenFlowスイッチ2、又はOpenFlowスイッチ3とOpenFlowプロトコル接続を確立すると、すぐに各OpenFlowスイッチへグレースフル・リスタートサポート能力問合せメッセージを送信し、各OpenFlowスイッチがOpenFlowコントローラへグレースフル・リスタートサポート能力応答メッセージを返信し、OpenFlowスイッチ2は、グレースフル・リスタートをサポートする旨のグレースフル・リスタートサポート能力応答メッセージを返信する。
【0091】
ステップ2:OpenFlowスイッチ2が再起動した後、OpenFlowコントローラは、OpenFlowスイッチ2との間のOpenFlowプロトコル接続が中断していると検出したら、自体に保存したネットワークトポロジーにおいて、OpenFlowスイッチ2をグレースフル・リスタート状態としてマークし、OpenFlowスイッチ2のグレースフル・リスタート状態を、NBIを介して、ネットワークトポロジーを把握する必要のあるネットワークアプリケーションプログラムにフィードバックする。
【0092】
ステップ3:OpenFlowスイッチ2が再起動を完成してOpenFlowコントローラとのOpenFlowプロトコル接続を再確立した後、OpenFlowコントローラは、自体に保存したネットワークトポロジーから、OpenFlowスイッチ2のグレースフル・リスタート状態を消去し、OpenFlowスイッチ2のグレースフル・リスタート状態の消去に関する状態更新を、NBIを介して、ネットワークトポロジーを把握する必要のあるネットワークアプリケーションプログラムにフィードバックする。
【0093】
当業者にとって、上述の本発明の各手段又は各ステップは汎用の計算装置によって実現することができ、単独の計算装置に集成させることができれば、複数の計算装置から構成されるネットワークに分布させることもでき、さらに計算装置で実行可能なプログラムのコードによって実現することもできるので、それらを記憶装置に格納して計算装置によって実行することができ、そして場合によって、示した又は説明したステップを上述と異なる手順で実行することができ、また、それぞれ集積回路手段に製作したり、これらのうち複数の手段又はステップを単独の集積回路手段に製作したりして実現することができることは、明らかなことである。このように、本発明は、如何なる特定のハードウェアとソフトウェアの結合に限定されない。
【0094】
以上は、本発明の好適な実施例に過ぎず、本発明を限定することは意図していない。当業者であれば、本発明に様々な変更や変形が可能である。本発明の思想や原則内の如何なる修正、均等の置き換え、改良なども、本発明の保護範囲内に含まれるべきである。