(57)【特許請求の範囲】
【請求項１】
制御装置と、中継装置と、記憶装置とを備え、
前記制御装置は、自装置に記憶している、制御対象である通信ネットワークにおいて前記中継装置によってデータが転送される転送経路を表す第一の転送経路情報を更新し、更新した前記第一の転送経路情報を、第二の転送経路情報として前記記憶装置に格納し、
前記中継装置は、障害から復旧する際に、前記記憶装置から前記第二の転送経路情報を入手したのち、データを転送する際に参照する、自装置に記憶している第三の転送経路情報を、前記第二の転送経路情報に置き換える、
ネットワーク制御システム。
【請求項２】
前記中継装置は、前記制御装置との通信経路が切断されているときに内部状態に変更が生じた場合、前記内部状態の変更内容を表す状態管理情報を自装置に記憶し、前記制御装置との通信経路が復旧したのち、前記状態管理情報を前記制御装置に送信し、
前記制御装置は、前記中継装置から受信した前記状態管理情報にしたがい、前記第一の転送経路情報を更新する、
請求項１に記載のネットワーク制御システム。
【請求項３】
前記第一乃至第三の転送経路情報は、個々の前記転送経路を表す情報であって有効期限が設定されたエントリを包含し、
前記中継装置は、前記エントリに関する前記有効期限と現在時刻とを比較することによって、少なくともいずれかの前記エントリについて前記有効期限が過ぎたことを示す、前記内部状態変更情報を生成する、
請求項２に記載のネットワーク制御システム。
【請求項４】
前記中継装置は、自装置が備える、データを入出力するポートの状態が変化したことを示す前記状態管理情報を生成する、
請求項２または３に記載のネットワーク制御システム。
【請求項５】
入力操作により入力された、前記記憶装置における前記第二の転送経路情報を格納する領域を示す格納領域情報を、前記制御装置及び前記中継装置に送信可能な管理端末装置をさらに備え、
前記制御装置は、前記第一の転送経路情報を前記第二の転送経路情報として、前記記憶装置における前記格納領域情報が示す領域に格納し、
前記中継装置は、前記記憶装置における前記格納領域情報が示す領域から、前記第二の転送経路情報を入手する、
請求項１乃至４のいずれかに記載のネットワーク制御システム。
【請求項６】
前記制御装置、前記中継装置、及び、前記記憶装置は、１つの筐体に実装された情報処理装置の中に、仮想マシンとして構築される、
請求項１乃至５のいずれかに記載のネットワーク制御システム。
【請求項７】
制御装置と、中継装置と、記憶装置と、を備えたシステムにおいて、
前記制御装置によって、自装置に記憶している、制御対象である通信ネットワークにおいて前記中継装置によってデータが転送される転送経路を表す第一の転送経路情報を更新したのち、更新した前記第一の転送経路情報を、第二の転送経路情報として前記記憶装置に格納し、
前記中継装置によって、障害から復旧する際に、前記記憶装置から前記第二の転送経路情報を入手したのち、データを転送する際に参照する、自装置に記憶している第三の転送経路情報を、前記第二の転送経路情報に置き換える、
ネットワーク制御方法。
【請求項８】
前記中継装置によって、前記制御装置との通信経路が切断されているときに内部状態に変更が生じた場合、前記内部状態の変更内容を表す状態管理情報を自装置に記憶し、前記制御装置との通信経路が復旧したのち、前記状態管理情報を前記制御装置に送信し、
前記制御装置によって、前記中継装置から受信した前記状態管理情報にしたがい、前記第一の転送経路情報を更新する、
請求項７に記載のネットワーク制御方法。
【請求項９】
制御装置と、
記憶装置と、
障害から復旧する際に、前記記憶装置から第二の転送経路情報を入手したのち、データを転送する際に参照する自装置に記憶している第三の転送経路情報を、前記第二の転送経路情報に置き換える中継装置と、
を備えたシステムにおいて、
前記制御装置に、自装置に記憶している、制御対象である通信ネットワークにおいて前記中継装置によってデータが転送される転送経路を表す第一の転送経路情報を更新したのち、更新した前記第一の転送経路情報を、前記第二の転送経路情報として前記記憶装置に格納する処理を実行させる、
制御装置の制御プログラム。
【請求項１０】
中継装置と、
記憶装置と、
自装置に記憶している、制御対象である通信ネットワークにおいて前記中継装置によってデータが転送される転送経路を表す第一の転送経路情報を更新したのち、更新した前記第一の転送経路情報を、第二の転送経路情報として前記記憶装置に格納する制御装置と、
を備えたシステムにおいて、
前記中継装置に、障害から復旧する際に、前記記憶装置から前記第二の転送経路情報を入手したのち、データを転送する際に参照する自装置に記憶している第三の転送経路情報を、前記第二の転送経路情報に置き換える処理を実行させる、
中継装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、通信ネットワークにおいてデータが転送される転送経路を表す転送経路情報にしたがってデータを転送する中継装置を備え、障害によって停止した当該中継装置を復旧するネットワーク制御システム等に関する。
【背景技術】
【０００２】
情報化が高度に発達した現代社会においては、通信ネットワーク（以下、「ネットワーク」と略記する）において発生した障害が、社会に大きな影響を及ぼす虞がある、したがって、ネットワークの可用性を向上させる技術に対する期待が高まってきている。
【０００３】
このような技術に関連する技術の一例として、特許文献１には、OpenFlow（登録商標）技術を利用することによって、ネットワークの耐障害性を向上させたシステムが開示されている。このシステムは、複数のコントローラと複数のスイッチとを備える。このコントローラは、各々通信経路を算出し、通信経路にあるスイッチに対して、フローエントリの設定を指示する。当該スイッチは、複数のコントローラうちの１つを経路決定者として指定し、経路決定者によって設定されたフローエントリに従って、受信パケットについて中継処理を行う。
【０００４】
また、特許文献２には、ネットワークにおいて障害または輻輳が発生した場合に、通信経路の切り替えを高速に行う通信装置が開示されている。この通信装置は、処理記憶部、代替処理記憶部、及び、処理部を備える。処理記憶部は、受信パケットを識別する識別情報と、その受信パケットに対する処理とを対応させた処理規則を記憶する。代替処理記憶部は、受信パケットに対する処理記憶部に記憶された処理とは異なる処理を含む処理規則を記憶する。処理部は、受信パケットを識別する識別情報に基づき、処理記憶部または代替処理記憶部を検索して得られた処理規則に従って、当該受信パケットの処理を行う。
【０００５】
また、特許文献３には、Ｉ（Input）/Ｏ（Output）バイスを複数のコンピュータ間で共有することができるＩ／Ｏシステムが開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開2011-160363号公報
【特許文献２】特開2012-49674号公報
【特許文献３】国際公報2009-025381号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
近年、スイッチ、ルータ、ファイアウォール、及び、ロードバランサ等のネットワーク機器について、多様化が進んでいる。このような状況において、管理対象となるネットワーク機器が増加するのに伴い、ネットワーク機器に対する管理コストが増大することが問題となっている。また、ネットワーク全体が正しく協調動作するように設計を見直さなければならないことがあり、ネットワーク機器に対する構成変更コストが増大することも問題となっている。これらの問題を解決する技術として、OpenFlowが開発された。
【０００８】
このOpenFlowによって、従来は個々のネットワーク機器に対して手動により行われていた設定を、ＯＦＣ(Open Flow Controller)に集約することができる。これにより、ネットワーク機器に対する管理コストや構成変更コストを削減可能なネットワーク(OpenFlowネットワーク)を構成することが可能となる。OpenFlowネットワークは、ＯＦＣと、パケットデータを転送するネットワーク機器であるＯＦＳ(Open Flow Switch)とを含んでいる。ＯＦＣは、ＴＣＰ(Transmission Control Protocol)／ＩＰ(Internet Protocol)を用いて構築される通信経路（セキュアチャネル）を経由して、ＯＦＳと制御情報を送受信する。ＯＦＳは自装置に構築した、データを転送する経路情報であるフローテーブルにしたがって、パケットデータを転送する。
【０００９】
このようなOpenFlowネットワークにおいて、ＯＦＳが障害によって停止した場合、ＯＦＳは再起動時に自装置に格納されたフローテーブルを一旦初期化したのち、再構築する。したがって、ＯＦＳが復旧するまでに時間を要するという課題がある。
【００１０】
この課題に対応するために、例えば、ＯＦＳに格納されたフローテーブルのバックアップを、当該ＯＦＳが備える不揮発性メモリに記憶する方式が考えられる。この方式では、ＯＦＳは、再起動時にその不揮発性メモリに記憶されたフローテーブルのバックアップを使用することによって、動作を速やかに再開する。
【００１１】
しかしながら、この方式では、ＯＦＳが停止している最中にネットワークトポロジが変化した場合、当該ＯＦＳが備える不揮発性メモリに記憶されたフローテーブルと、ＯＦＣが保持するフローテーブルとが不一致となる。このため、ＯＦＳは、再起動時に不揮発性メモリに記憶されたフローテーブルを使用することができないので、ＯＦＳが復旧するまでに時間を要するという問題を解決できない。特許文献１乃至３は、この問題を解決する技術については言及していない。本願発明の主たる目的は、この問題を解決したネットワーク制御システム等を提供することである。
【課題を解決するための手段】
【００１２】
本願発明の一態様に係るネットワーク制御システムは、制御装置と、中継装置と、記憶装置とを備え、前記制御装置は、自装置に記憶している、制御対象である通信ネットワークにおいて前記中継装置によってデータが転送される転送経路を表す第一の転送経路情報を更新し、更新した前記第一の転送経路情報を、第二の転送経路情報として前記記憶装置に格納し、前記中継装置は、障害から復旧する際に、前記記憶装置から前記第二の転送経路情報を入手したのち、データを転送する際に参照する、自装置に記憶している第三の転送経路情報を、前記第二の転送経路情報に置き換える。
【００１３】
上記目的を達成する他の見地において、本願発明の一態様に係るネットワーク制御方法は、制御装置と、中継装置と、記憶装置と、を備えたシステムにおいて、前記制御装置によって、自装置に記憶している、制御対象である通信ネットワークにおいて前記中継装置によってデータが転送される転送経路を表す第一の転送経路情報を更新したのち、更新した前記第一の転送経路情報を、第二の転送経路情報として前記記憶装置に格納し、前記中継装置によって、障害から復旧する際に、前記記憶装置から前記第二の転送経路情報を入手したのち、データを転送する際に参照する、自装置に記憶している第三の転送経路情報を、前記第二の転送経路情報に置き換える。
【００１４】
また、上記目的を達成する更なる見地において、本願発明の一態様に係る制御装置の制御プログラムは、制御装置と、記憶装置と、障害から復旧する際に、前記記憶装置から第二の転送経路情報を入手したのち、データを転送する際に参照する自装置に記憶している第三の転送経路情報を、前記第二の転送経路情報に置き換える中継装置と、を備えたシステムにおいて、前記制御装置に、自装置に記憶している、制御対象である通信ネットワークにおいて前記中継装置によってデータが転送される転送経路を表す第一の転送経路情報を更新したのち、更新した前記第一の転送経路情報を、前記第二の転送経路情報として前記記憶装置に格納する処理を実行させる。
【００１５】
また、上記目的を達成する更なる見地において、本願発明の一態様に係る中継装置の制御プログラムは、中継装置と、記憶装置と、自装置に記憶している、制御対象である通信ネットワークにおいて前記中継装置によってデータが転送される転送経路を表す第一の転送経路情報を更新したのち、更新した前記第一の転送経路情報を、第二の転送経路情報として前記記憶装置に格納する制御装置と、を備えたシステムにおいて、前記中継装置に、障害から復旧する際に、前記記憶装置から前記第二の転送経路情報を入手したのち、データを転送する際に参照する自装置に記憶している第三の転送経路情報を、前記第二の転送経路情報に置き換える処理を実行させる。
【００１６】
更に、本発明は、係る制御装置の制御プログラム（コンピュータプログラム）及び中継装置の制御プログラム（コンピュータプログラム）が格納された、コンピュータ読み取り可能な、不揮発性の記録媒体によっても実現可能である。
【発明の効果】
【００１７】
本願発明は、ネットワークにおいて転送経路情報に従ってデータを転送する中継装置が、障害によって停止した場合に、当該中継装置の復旧を高速に行うことを可能とする。
【図面の簡単な説明】
【００１８】
【図１】本願発明の第１の実施形態に係るネットワーク制御システムの構成を示すブロック図である。
【図２】本願発明の第１の実施形態に係るフローテーブルの構成を例示する図である。
【図３】本願発明の第１の実施形態に係るネットワーク制御システムが、障害により停止したＯＦＳを復旧する動作を示すフローチャートである。
【図４】本願発明の第１の実施形態に係るネットワーク制御システムが、ＯＦＣとＯＦＳとの間のセキュアチャネルが切断されたときに行う動作を示すフローチャートである。
【図５】本願発明の第１の実施形態に係るネットワーク制御システムが、仮想マシンを構築する１つの情報処理装置に実装された場合の構成を例示する図である。
【図６】本願発明の第２の実施形態に係るネットワーク制御システムの構成を示すブロック図である。
【図７】本願発明の第１の実施形態に係るＯＦＣ及びＯＦＳ、及び、第２の実施形態に係る制御装置及び中継装置を実行可能な情報処理装置の構成を例示するブロック図である。
【発明を実施するための形態】
【００１９】
以下、本願発明の実施の形態について図面を参照して詳細に説明する。
【００２０】
＜第１の実施形態＞
図１は、本願発明の第１の実施形態に係るネットワーク制御システム１を概念的に示すブロック図である。本実施形態に係るネットワーク制御システム１は、例えばOpenFlowネットワークを制御するシステムである。ネットワーク制御システム１は、ＯＦＣ１０、ＯＦＳ２０、記憶装置３０、及び、管理端末装置４０を備えている。ネットワーク制御システム１は、図示されていないＯＦＣ及びＯＦＳを備えているが、説明の便宜上省略する。
【００２１】
ＯＦＣ１０は、ＯＦＳ２０及び図示されていないＯＦＳから、各ＯＳＦの状態を示す情報を受信し、その情報に基づいて、各ＯＦＳがデータ（パケットデータ）を転送する経路を転送経路情報（フローテーブル）として算出する装置である。ＯＦＣ１０は、メッセージ処理部１１、経路算出部１２、フローテーブル管理部１３、及び、フローテーブル記憶部１４を備えている。
【００２２】
フローテーブル記憶部１４は、OpenFlowにおける転送経路情報であるフローテーブル１４０を格納している。フローテーブル１４０の構成を、図２に例示する。フローテーブル１４０はｎ個（ｎは１以上の整数）のフローエントリ１４１−１乃至１４１−ｎを含んでいる。フローエントリ１４１−１乃至１４１−ｎは、OpenFlowにおけるフロー単位の情報であり、当該フローの有効期限及びデータ転送経路を示す情報を含んでいる。
【００２３】
メッセージ処理部１１は、ＴＣＰ／ＩＰを用いて構築される通信経路（セキュアチャネル）を経由して、ＯＦＳ２０とメッセージ（制御情報）の送受信を行う。ＯＦＣ１０とＯＦＳ２０は、例えばＬＡＮ(Local Area Network)ケーブル等により物理的に接続されている。
【００２４】
経路算出部１２は、メッセージ処理部１１を介してＯＦＳ２０及び図示されていないＯＦＳから入手した、各ＯＳＦの状態を示す情報に基づいて、各ＯＦＳが転送するデータの転送経路を算出する。経路算出部１２は、転送経路を算出した結果に基づき、フローテーブル１４０に対するフローエントリの追加あるいは削除を、フローテーブル管理部３１に要求する。経路算出部１２は、転送経路を算出した結果に基づき、ＯＦＳ２０が記憶するフローテーブル２３０に対するフローエントリの追加あるいは削除を、メッセージ処理部１１を介してＯＦＳ２０に要求する。
【００２５】
フローテーブル管理部１３は、経路算出部１２からの要求、あるいは、メッセージ処理部１１が、ＯＦＳ２０、あるいは、その他のＯＦＳやＯＦＣから受信したメッセージに基づいて、フローテーブル１４０に対して、フローエントリの追加あるいは削除を行う。フローテーブル管理部１３は、フローテーブル１４０を更新した場合、記憶装置３０に記憶されたフローテーブル３００に対しても、同様の更新処理を行う。フローテーブル管理部１３は、フローテーブル３００が格納される領域を示す格納領域情報を、管理端末装置４０から受信する。
【００２６】
記憶装置３０は、ＯＦＣ１０及びＯＦＳ２０と、高速にアクセス可能なインタフェースによって接続されている。記憶装置３０は、フローテーブル３００を記憶している。フローテーブル３００は、ＯＦＣ１０におけるフローテーブル管理部３１によって、フローテーブル１４０と同じ内容となるように更新される。すなわち、フローテーブル３００は、フローテーブル１４０のバックアップである。記憶装置３０は、フローテーブル３００へのアクセスについて、排他制御を行う。
【００２７】
ＯＦＳ２０は、自装置に記憶したフローテーブル２３０が示す転送先にデータを転送する、スイッチあるいはルータ等のネットワーク機器である。ＯＦＳ２０は、メッセージ処理部２１、フローテーブル管理部２２、フローテーブル記憶部２３、状態管理部２４、及び、ポート管理部２５を備えている。
【００２８】
フローテーブル記憶部２３は、フローテーブル２３０を記憶している。フローテーブル２３０の構成は、図２に例示するフローテーブル１４０の構成と同様であり、フローエントリを含んでいる。
【００２９】
メッセージ処理部２１は、セキュアチャネルを経由して、ＯＦＣ１０とメッセージの送受信を行う。
【００３０】
フローテーブル管理部２２は、メッセージ処理部２１が、ＯＦＣ１０から受信したメッセージ、あるいは、状態管理部２４からの要求に基づいて、フローテーブル２３０に対して、フローエントリの追加あるいは削除を行う。フローテーブル管理部２２は、ＯＦＳ２０が障害により停止したのちに再起動する際に、フローテーブル２３０を初期化する。そして、フローテーブル管理部２２は、記憶装置３０からフローテーブル３００を読み出して、フローテーブル２３０を、フローテーブル３００に置き換える。フローテーブル管理部２２は、フローテーブル３００が格納された領域を示す格納領域情報を、管理端末装置４０から受信する。
【００３１】
ポート管理部２５は、ＯＦＳ２０がデータを受け取って転送する際に使用するポート（インタフェースポート）の状態を所定のタイミングに確認することによって、ポートの状態が変化したことを検出する。この場合、ポート管理部２５は、変化したポートの状態を示す情報を、状態管理部２４へ入力する。
【００３２】
状態管理部２４は、フローテーブル２３０が含むフローエントリの有効期限と現在時刻とを所定のタイミングに比較することによって、フローエントリの有効期限が切れていることを検出する。状態管理部２４は、いずれかのフローエントリの有効期限が切れていることを検出した場合、フローテーブル管理部２２に対して、フローテーブル２３０から当該フローエントリを削除するように要求する。このとき、状態管理部２４は、当該フローエントリの削除を、メッセージ処理部２１を介してＯＦＣ１０に要求する。
【００３３】
状態管理部２４は、ポート管理部２５から、変化したポートの状態を示す情報を入力された場合、メッセージ処理部２１を介して、変化したポートの状態を示す情報を、ＯＦＣ１０に送信する。
【００３４】
状態管理部２４は、ＯＦＣ１０に対して、有効期限が切れたフローエントリの削除を要求する、あるいは、変化したポートの状態を示す情報を送信する際に、セキュアチャネルが障害により切断されている場合、ＯＦＣ１０に送信するメッセージの内容を、状態管理情報２４０として内部に記憶する。状態管理部２４は、セキュアチャネルが復旧したのち、内部に記憶した状態管理情報２４０を、メッセージ処理部２１を介して、ＯＦＣ１０へ送信する。
【００３５】
管理端末装置４０は、ネットワーク制御システム１の管理者が、管理作業を行う際に使用する装置であり、入出力インタフェース機能を備えている。管理端末装置４０は、記憶装置３０がフローテーブル３００を格納する領域を示す格納領域情報を、管理者によって入力される。格納領域情報は、例えば、記憶装置３０におけるフォルダ名及びファイル名である。管理端末装置４０は、この格納領域情報を、ＯＦＣ１０、及び、ＯＦＳ２０に送信する。
【００３６】
次に図３のフローを参照して、本実施形態に係るネットワーク制御システム１が、障害によって停止したＯＦＳ２０を復旧する動作（処理）について詳細に説明する。
【００３７】
フローテーブル管理部１３は、フローテーブル１４０のバックアップとして、記憶装置３０に、フローテーブル３００を所定のタイミングに格納する（ステップＳ１０１）。ＯＦＳ２０が障害より停止する（ステップＳ１０２）。ＯＦＳ２０は、再起動処理を開始する（ステップＳ１０３）。
【００３８】
フローテーブル管理部２２は、フローテーブル２３０を初期化し、フローテーブル３００を、フローテーブル２３０としてコピーする（ステップＳ１０４）。ＯＦＳ２０は、ＯＦＣ１０とのセキュアチャネルを接続する（ステップＳ１０５）。状態管理部２４は、状態管理情報２４０を、メッセージ処理部２１を介してＯＦＣ１０へ送信する（ステップＳ１０６）。
【００３９】
ＯＦＣ１０におけるメッセージ処理部１１は、状態管理情報２４０を受信し、受信した状態管理情報２４０を、フローテーブル管理部１３へ入力する（ステップＳ１０７）。フローテーブル管理部１３は、入力された状態管理情報２４０に基づいて、フローテーブル１４０、及び、フローテーブル３００を更新し（ステップＳ１０８）、全体の処理は終了する。
【００４０】
次に、図４のフローを参照して、本実施形態に係るネットワーク制御システム１が、ＯＦＣとＯＦＳとの間のセキュアチャネルが切断されたときに行う動作（処理）について詳細に説明する。
【００４１】
状態管理部２４は、フローテーブル２３０におけるフローエントリの内容を確認する（ステップＳ２０１）。少なくともいずれかのフローエントリの有効期限が切れている場合（ステップＳ２０２でＹｅｓ）、状態管理部２４は、当該エントリの有効期限が切れていることを、状態管理情報２４０として格納する（ステップＳ２０３）。有効期限が切れたフローエントリが存在しない場合（ステップＳ２０２でＮｏ）、処理は、ステップＳ２０４へ進む。
【００４２】
ポート管理部２５は、ＯＦＳ２０が備えるポートの状態を確認する（ステップＳ２０４）。
少なくともいずれかのポートの状態が変更されている場合（ステップＳ２０５でＹｅｓ）、状態管理部２４は、当該ポートの状態が変更されたことを、状態管理情報２４０として格納する（ステップＳ２０６）。状態が変更されたポートが存在しない場合（ステップＳ２０５でＮｏ）処理はステップＳ２０７へ進む。
【００４３】
メッセージ処理部２１は、ＯＦＣ１０にセキュアチャネル接続要求を送信する（ステップＳ２０７）。セキュアチャネルが接続されない場合（ステップＳ２０８でＮｏ）、処理はステップＳ２０１へ戻る。セキュアチャネルが接続された場合（ステップＳ２０８でＹｅｓ）、状態管理部２４は、状態管理情報２４０を格納している場合は、状態管理情報２４０を、メッセージ処理部２１を介してＯＦＣ１０へ送信する（ステップＳ２０９）。ＯＦＣ１０におけるメッセージ処理部１１は、状態管理情報２４０を受信し、受信した状態管理情報２４０を、フローテーブル管理部１３へ入力する（ステップＳ２１０）。フローテーブル管理部１３は、入力された状態管理情報２４０に基づいて、フローテーブル１４０、及び、フローテーブル３００を更新し、全体の処理は終了する。
【００４４】
本実施形態に係るネットワーク制御システム１は、ネットワークにおいて転送経路情報に従ってデータを転送する中継装置が、障害によって停止した場合に、当該中継装置の復旧を高速に行うことができる。その理由は、ＯＦＣ１０がフローテーブル１４０（転送経路情報）を更新したときに、フローテーブル１４０のバップアップとしてフローテーブル３００を記憶装置３０に格納し、ＯＦＳ２０（中継装置）は、障害により停止したのちに再起動する際に、自装置に記憶したフローテーブル２３０を、記憶装置３０から読み出したフローテーブル３００に置き換えるからである。
【００４５】
OpenFlowネットワークにおいては、ＯＦＳが障害によって停止した場合、ＯＦＳは通常、再起動時に自装置に格納されたフローテーブルを一旦初期化したのち、再構築する必要がある。したがって、ＯＦＳが復旧するまでに時間を要することになる。ＯＦＳの復旧を高速に行うために、例えば、ＯＦＳに格納されたフローテーブルのバックアップを、当該ＯＦＳが備える不揮発性メモリに記憶する方式が考えられる。この方式では、ＯＦＳは、再起動時にその不揮発性メモリに記憶されたフローテーブルのバックアップを使用することによって、動作を速やかに再開する。
【００４６】
しかしながら、この方式では、ＯＦＳが停止している最中にネットワークトポロジ等のネットワーク環境が変化した場合、当該ＯＦＳが備える不揮発性メモリに記憶されたフローテーブルと、ＯＦＣが保持するフローテーブルとが不一致となる。このため、ＯＦＳは、再起動時に不揮発性メモリに記憶されたフローテーブルを使用することができないので、ＯＦＳが復旧するまでに時間を要するという問題を解決できない。
【００４７】
これに対して、本実施形態に係るネットワーク制御システム１では、ＯＦＣ１０がフローテーブル１４０を更新したときに、フローテーブル１４０のバップアップとしてフローテーブル３００を記憶装置３０に格納する。ＯＦＣ１０は、ＯＦＳ２０が障害により停止している最中も、フローテーブル３００を最新の状態に更新する。ＯＦＳ２０は障害により停止したのちに再起動する際に、最新の状態に更新されているフローテーブル３００を記憶装置３０から読み出して、フローテーブル２３０をフローテーブル３００に置き換える。これにより、本実施形態に係るネットワーク制御システム１は、障害により停止したＯＦＳ２０を高速に復旧することができる。
【００４８】
また、本実施形態に係るネットワーク制御システム１では、ＯＦＣ１０とＯＦＳ２０との間のセキュアチャネルが障害により切断されているときにＯＦＳ２０の内部状態に変更が生じた場合、ＯＦＳ２０は、内部状態の変更内容を状態管理情報２４０として自装置に記憶する。ＯＦＳ２０は、セキュアチャネルが復旧したのち、状態管理情報２４０をＯＦＣ２０に送信する。ＯＦＣ１０は、ＯＦＳ２０から受信した状態管理情報２４０にしたがい、フローテーブル１４０及びフローテーブル１３０を更新する。これにより、本実施形態に係るネットワーク制御システム１は、セキュアチャネルに障害が発生したのちの復旧処理を高速に行うことができる。
【００４９】
また、本実施形態に係るネットワーク制御システム１では、ＯＦＣ１０とＯＦＳ２０が、記憶装置３０に高速アクセスできる環境であることが望ましい。このような環境の一例として、例えば、ＯＦＣ１０、ＯＦＳ２０、及び、記憶装置３０が、１つの筐体に実装された情報処理装置の中に、仮想マシンとして構築されたシステムがある。図５に、本実施形態に係るネットワーク制御システム１が、仮想マシンを構築する１つの情報処理装置に実装された構成例を示す。
【００５０】
図５に示す情報処理装置１００は、例えばブレードサーバ装置等の情報処理装置であり、ＣＰＵ(Central Processing Unit)資源１１０、メモリ資源１２０、Ｉ／Ｏ資源１３０、及び、システムバス１４０を備えている。ＣＰＵ資源１１０、メモリ資源１２０、及び、Ｉ／Ｏ資源１３０は、高速インタフェースであるシステムバス１４０によって接続され、このシステムバス１４０を介して情報を送受信する。ＯＦＣ１０、ＯＦＳ２０、及び、記憶装置３０は、ＣＰＵ資源１１０の一部、メモリ資源１２０の一部、Ｉ／Ｏ資源１３０の一部が割り当てられた仮想マシンとして構築されている。図５に示す通り構築されたネットワーク制御システム１では、実マシンの単体装置であるＯＦＣ１０及びＯＦＳ２０が、インタフェースケーブルを介して実マシンの単体装置である記憶装置３０にアクセスする場合と比較して、ＯＦＣ１０及びＯＦＳ２０は、記憶装置３０に高速アクセスすることができる。
【００５１】
また、本実施形態に係るネットワーク制御システム１は、管理端末装置４０を備えることによって、システム管理者が、記憶装置３０におけるフローテーブル３００の格納領域を適切に設定することができる。これにより、ネットワーク制御システム１は、システム管理者による柔軟な運用を実現することができる。
【００５２】
＜第２の実施形態＞
図６は、第２の実施形態に係るネットワーク制御システム２の構成を概念的に示すブロック図である。
【００５３】
本実施形態にネットワーク制御システム２は、制御装置５０、記憶装置６０、及び、中継装置７０を備えている。
【００５４】
制御装置５０は、自装置に記憶している第１の転送経路情報５００を更新し、更新した第１の転送経路情報５００を、第２の転送経路情報６００として記憶装置６０に格納する。第１の転送経路情報５００は、制御対象であるネットワークにおいて中継装置７０によってデータが転送される転送経路を表す。
【００５５】
中継装置７０は、障害から復旧する際に、記憶装置６０から第２の転送経路情報６００を入手したのち、自装置に記憶している第３の転送経路情報７００を、第２の転送経路情報６００に置き換える。第３の転送経路情報７００は、中継装置７０がデータを転送する際に参照する情報である。
【００５６】
本実施形態に係るネットワーク制御システム２は、ネットワークにおいて転送経路情報に従ってデータを転送する中継装置が、障害によって停止した場合に、当該中継装置の復旧を高速に行うことができる。その理由は、制御装置５０が第１の転送経路情報５００を更新したときに、第１の転送経路情報５００のバップアップとして第２の転送経路情報６００を記憶装置６０に格納し、中継装置７０は、障害により停止したのちに再起動する際に、自装置に記憶した第３の転送経路情報７００を、記憶装置６０から読み出した第２の転送経路情報６００に置き換えるからである。
【００５７】
＜ハードウェア構成例＞
上述した各実施形態において図１、及び、図６に示した装置は、専用のＨＷ（ＨａｒｄＷａｒｅ）（電子回路）によって実現することができる。また、ＯＦＣ１０、ＯＦＳ２０、制御装置５０、及び、中継装置７０は、汎用のＨＷにソフトウェアプログラムを実行させることによっても実現可能である。この場合のハードウェア環境の一例を、図７を参照して説明する。
【００５８】
図７は、本発明の各実施形態に係るＯＦＣ１０、ＯＦＳ２０、制御装置５０、及び、中継装置７０を実行可能な情報処理装置９００（コンピュータ）の構成を例示的に説明する図である。即ち、図７は、図１、及び、図６に示したＯＦＣ１０、ＯＦＳ２０、制御装置５０、及び、中継装置７０を実現可能なコンピュータ（情報処理装置）の構成であって、上述した実施形態における各機能を実現可能なハードウェア環境を表す。
【００５９】
図７に示した情報処理装置９００は、構成要素として下記を備えている。
・ＣＰＵ（Ｃｅｎｔｒａｌ＿Ｐｒｏｃｅｓｓｉｎｇ＿Ｕｎｉｔ）９０１、
・ＲＯＭ（Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）９０２、
・ＲＡＭ（Ｒａｎｄｏｍ＿Ａｃｃｅｓｓ＿Ｍｅｍｏｒｙ）９０３、
・ハードディスク（記憶装置）９０４、
・外部装置との通信インタフェース９０５、
・ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ＿Ｄｉｓｃ＿Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）等の記録媒体９０７に格納されたデータを読み書き可能なリーダライタ９０８、
・入出力インタフェース９０９、
情報処理装置９００は、これらの構成がバス９０６（通信線）を介して接続された一般的なコンピュータである。
【００６０】
そして、上述した実施形態を例に説明した本発明は、図７に示した情報処理装置９００に対して、次の機能を実現可能なコンピュータプログラムを供給する。その機能とは、その実施形態の説明において参照したブロック構成図（図１、及び、図６）における、ＯＦＣ１０、ＯＦＳ２０、制御装置５０、及び、中継装置７０、或いはフローチャート（図３及び図４）の機能である。本発明は、その後、そのコンピュータプログラムを、当該ハードウェアのＣＰＵ９０１に読み出して解釈し実行することによって達成される。また、当該装置内に供給されたコンピュータプログラムは、読み書き可能な揮発性のメモリ（ＲＡＭ９０３）またはハードディスク９０４等の不揮発性の記憶デバイスに格納すれば良い。
【００６１】
また、前記の場合において、当該ハードウェア内へのコンピュータプログラムの供給方法は、現在では一般的な手順を採用することができる。その手順としては、例えば、ＣＤ−ＲＯＭ等の各種記録媒体９０７を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等がある。そして、このような場合において、本発明は、係るコンピュータプログラムを構成するコード或いは、そのコードが格納された記録媒体９０７によって構成されると捉えることができる。
【００６２】
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【符号の説明】
【００６３】
１    ネットワーク制御システム
１０    ＯＦＣ
１１    メッセージ処理部
１２    経路算出部
１３    フローテーブル管理部
１４    フローテーブル記憶部
１４０    フローテーブル
１４１−１乃至１４１−ｎ    フローエントリ
２０    ＯＦＳ
２１    メッセージ処理部
２２    フローテーブル管理部
２３    フローテーブル記憶部
２３０    フローテーブル
２４    状態管理部
２４０    状態管理情報
２５    ポート管理部
３０    記憶装置
３００    フローテーブル
４０    管理端末装置
２    ネットワーク制御システム
５０    制御装置
５００    第１の転送経路情報
６０    記憶装置
６００    第２の転送経路情報
７０    中継装置
７００    第３の転送経路情報
１００    情報処理装置
１１０    ＣＰＵ資源
１２０    メモリ資源
１３０    Ｉ／Ｏ資源
１４０    システムバス
９００    情報処理装置
９０１    ＣＰＵ
９０２    ＲＯＭ
９０３    ＲＡＭ
９０４    ハードディスク（記憶装置）
９０５    通信インタフェース
９０６    バス
９０７    記録媒体
９０８    リーダライタ
９０９    入出力インタフェース
【図１】
0006477037.tif 000002
【図２】
0006477037.tif 000003
【図３】
0006477037.tif 000004
【図４】
0006477037.tif 000005
【図５】
0006477037.tif 000006
【図６】
0006477037.tif 000007
【図７】
0006477037.tif 000008