(57)【要約】【課題】  ネットワークの障害または輻輳発生時に、通信装置において高速な経路切り替えを行う。【解決手段】  本発明による通信装置は、受信パケットの識別情報と前記受信パケットに対する処理とを対応付けた処理規則を記憶する処理記憶部と、前記受信パケットに対する前記処理記憶部に記憶された処理とは異なる処理を含む処理規則を記憶する代替処理記憶部と、前記受信パケットの識別情報に基づき、前記処理記憶部または前記代替処理記憶部を検索して得られた処理規則に従って前記受信パケットの処理を行う処理部と、を備えることを特徴とする。【選択図】      図２
2012049674.tif 000002
【特許請求の範囲】
【請求項１】
受信パケットの識別情報と前記受信パケットに対する処理とを対応付けた処理規則を記憶する処理記憶部と、
前記受信パケットに対する前記処理記憶部に記憶された処理とは異なる処理を含む処理規則を記憶する代替処理記憶部と、
前記受信パケットの識別情報に基づき、前記処理記憶部または前記代替処理記憶部を検索して得られた処理規則に従って前記受信パケットの処理を行う処理部と、
を備えることを特徴とする通信装置。
【請求項２】
前記代替処理記憶部の前記処理規則が示す処理内容は、前記受信パケットの破棄を含むことを特徴とする請求項１に記載の通信装置。
【請求項３】
前記通信装置は、さらに、前記通信装置が接続するリンクの障害を検知し、前記障害が検知された場合には、前記代替処理記憶部の前記障害が発生した箇所に対応する処理規則のうち、前記受信パケットの破棄を示す処理を削除する経路制御部を備えることを特徴とする請求項２に記載の通信装置。
【請求項４】
前記処理部は、前記処理記憶部および前記代替処理記憶部の双方を参照し、前記受信パケットに対応する処理規則がある場合には、前記処理規則に従って前記受信パケットの処理を行うことを特徴とする請求項１から３のいずれかに記載の通信装置。
【請求項５】
前記代替処理記憶部は、処理規則として、前記通信装置の処理記憶部の各処理規則に対応する第１の代替処理規則と、前記通信装置以外の通信装置の第１の代替処理規則が示す転送経路に対応する第２の代替処理規則と、を含み、前記第２の代替処理規則は前記受信パケットの識別情報として、前記受信パケットの入力ポートを含むことを特徴とする請求項１から３のいずれかに記載の通信装置。
【請求項６】
前記処理記憶部および前記代替処理記憶部の処理規則の各々には、処理規則に関する優先度と、処理規則の各処理内容に関する優先度とが設定されていることを特徴とする請求項１から５のいずれかに記載の通信装置。
【請求項７】
請求項１から６のいずれかに記載の通信装置と、
経路伝達部と、
を備え、
前記処理部は、前記通信装置の受信パケットに対応する処理規則がない場合には、その旨の通知を出力し、
前記経路伝達部は、前記通知を受信した場合、前記受信パケットの転送経路を算出し、前記転送経路上の転送装置の処理記憶部および代替処理記憶部に前記転送経路に対応する処理規則を設定することを特徴とする通信システム。
【請求項８】
受信パケットの識別情報に基づき、前記受信パケットの識別情報と前記受信パケットに対する処理とを対応付けた処理規則を記憶する処理記憶部または前記受信パケットに対する前記処理記憶部に記憶された処理とは異なる処理を含む処理規則を記憶する代替処理記憶部を検索する検索ステップと、
前記受信パケットの識別情報に基づき、前記検索ステップにより得られた処理規則に従って前記受信パケットの処理を行う受信パケット処理ステップと、
を含むことを特徴とする通信方法。
【請求項９】
前記代替処理記憶部の前記処理規則が示す処理内容は、前記受信パケットの破棄を含むことを特徴とする請求項８に記載の通信方法。
【請求項１０】
受信パケットの識別情報に基づき、前記受信パケットの識別情報と前記受信パケットに対する処理とを対応付けた処理規則を記憶する処理記憶部または前記受信パケットに対する前記処理記憶部に記憶された処理とは異なる処理を含む処理規則を記憶する代替処理記憶部を検索する検索処理と、
前記受信パケットの識別情報に基づき、前記検索ステップにより得られた処理規則に従って前記受信パケットの処理を行う受信パケット処理と、
をコンピュータに実行させることを特徴とする通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置が集中管理を行うネットワークにおける通信装置、通信システム、通信方法、および通信プログラムに関する。
【背景技術】
【０００２】
近年、通信ネットワーク上において経路制御を行う技術として、非特許文献１にＯｐｅｎＦｌｏｗという技術が提案されている。ＯｐｅｎＦｌｏｗは、通信をＥｎｄ−ｔｏ−Ｅｎｄのフロー（ｆｌｏｗ）として捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行うものである。転送ノードとして機能するＯｐｅｎＦｌｏｗＳｗｉｔｃｈ（ＯＦＳ）は、ＯｐｅｎＦｌｏｗＣｏｎｔｒｏｌｌｅｒ（ＯＦＣ）との通信用のセキュアチャネル（Ｓｅｃｕｒｅ  Ｃｈａｎｎｅｌ）を備え、ＯＦＣから適宜追加または書き換え指示されるフローテーブルに従って動作する。フローテーブルには、フロー毎に、パケットヘッダと照合するルールと、処理内容を定義したアクション（Ａｃｔｉｏｎ）と、フロー統計情報との組が定義される。
【０００３】
例えば、ＯＦＳは、パケットを受信すると、フローテーブルから、受信パケットのヘッダ情報に適合する条件（ＦｌｏｗＫｅｙ：フローキー）を持つエントリを検索する。検索の結果、受信パケットに適合するエントリが見つかった場合、ＯＦＳは、受信パケットに対して、当該エントリのアクションフィールドに記述された処理内容を実施する。一方、前記検索の結果、受信パケットに適合するエントリが見つからなかった場合、ＯＦＳは、セキュアチャネルを介して、ＯＦＣに対して受信パケットまたは受信パケットのヘッダ情報を転送する。この転送により、受信パケットの送信元・送信先に基づいたパケットの経路の決定を依頼し、これを実現するフローエントリを受け取ってフローテーブルを更新する。
【０００４】
ＯｐｅｎＦｌｏｗを用いたネットワークの構築例を、図１１に示す。図１１は、スイッチ１０〜１９、Ｌ３（Ｌａｙｅｒ  ３）スイッチ２０、コントローラ３０からなる。各スイッチは、ＯＦＳとして動作し、コントローラ３０は、ＯＦＣとして動作する。点線は、コントローラ３０と各スイッチとを接続するセキュアチャネルを示している。このセキュアチャネルは、各スイッチとコントローラ３０を直接接続せず、図１１に示すように、Ｌ３スイッチ２０を経由する場合もある。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｖｅｒｓｉｏｎ  １．０．０  （Ｗｉｒｅ  Ｐｒｏｔｏｃｏｌ  ０ｘ０１）、２００９年１２月３１日、［２０１０年７月２０日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｏｐｅｎｆｌｏｗｓｗｉｔｃｈ．ｏｒｇ／ｄｏｃｕｍｅｎｔｓ／ｏｐｅｎｆｌｏｗ−ｓｐｅｃ−ｖ１．０．０．ｐｄｆ＞
【発明の概要】
【発明が解決しようとする課題】
【０００６】
非特許文献１に記載のＯｐｅｎＦｌｏｗを用いたネットワークにおいて、経路障害や輻輳等が発生し、経路の切り替えが必要となった場合、一般的には、ＯＦＣにおいて、トポロジの再構築と経路計算を行い、各ＯＦＳのフローテーブルの設定を行っていた。
【０００７】
図１２に、この設定方法の概要を示す。例えば、スイッチ１２とスイッチ１５との間のリンクで障害が発生した場合、スイッチ１２とスイッチ１５は、何らかの方法で障害を検知する。障害を検知したスイッチ１２とスイッチ１５は、セキュアチャネルを経由して、コントローラ３０に障害検知通知を送信する（図１２：（１））。次に、コントローラ３０は、所定のアルゴリズムに従い迂回経路を計算する（図１２：（２））。その後、コントローラ３０は、セキュアチャネルを経由して、各スイッチに経路の再設定指示を送信する（図１２：（３））。
【０００８】
しかし、上記の方法では、経路障害や輻輳が発生する度にＯＦＣにおいてトポロジ再構築・経路計算を行う必要があるため、新しい経路をＯＦＳに設定し、経路が切り替えられるまでに時間がかかるという課題があった。
【０００９】
本発明の目的は、上述した課題を解決することが可能な、通信装置、通信システム、通信方法、および通信プログラムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明による通信装置は、受信パケットの識別情報と前記受信パケットに対する処理とを対応付けた処理規則を記憶する処理記憶部と、前記受信パケットに対する前記処理記憶部に記憶された処理とは異なる処理を含む処理規則を記憶する代替処理記憶部と、前記受信パケットの識別情報に基づき、前記処理記憶部または前記代替処理記憶部を検索して得られた処理規則に従って前記受信パケットの処理を行う処理部と、を備えることを特徴とする。
【００１１】
本発明による通信システムは、受信パケットの識別情報と前記受信パケットに対する処理とを対応付けた処理規則を記憶する処理記憶部と、前記受信パケットに対する前記処理記憶部に記憶された処理とは異なる処理を含む処理規則を記憶する代替処理記憶部と、前記受信パケットの識別情報に基づき、前記処理記憶部または前記代替処理記憶部を検索して得られた処理規則に従って前記受信パケットの処理を行う処理部と、を備える通信装置と、経路伝達部と、を備え、前記処理部は、前記通信装置の受信パケットに対応する処理規則がない場合には、その旨の通知を出力し、前記経路伝達部は、前記通知を受信した場合、前記受信パケットの転送経路を算出し、前記転送経路上の転送装置の処理記憶部および代替処理記憶部に前記転送経路に対応する処理規則を設定することを特徴とする。
【００１２】
本発明による通信方法は、受信パケットの識別情報に基づき、前記受信パケットの識別情報と前記受信パケットに対する処理とを対応付けた処理規則を記憶する処理記憶部または前記受信パケットに対する前記処理記憶部に記憶された処理とは異なる処理を含む処理規則を記憶する代替処理記憶部を検索する検索ステップと、前記受信パケットの識別情報に基づき、前記検索ステップにより得られた処理規則に従って前記受信パケットの処理を行う受信パケット処理ステップと、を含むことを特徴とする。
【００１３】
本発明による通信プログラムは、受信パケットの識別情報に基づき、前記受信パケットの識別情報と前記受信パケットに対する処理とを対応付けた処理規則を記憶する処理記憶部または前記受信パケットに対する前記処理記憶部に記憶された処理とは異なる処理を含む処理規則を記憶する代替処理記憶部を検索する検索処理と、前記受信パケットの識別情報に基づき、前記検索ステップにより得られた処理規則に従って前記受信パケットの処理を行う受信パケット処理と、をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、通常時とは異なる経路を示す代替処理をスイッチ（通信装置）に記憶しておくことで、ネットワークの障害または輻輳発生時に高速な経路切り替えを行うことが可能になる。
【図面の簡単な説明】
【００１５】
【図１】第１の実施形態によるシステムの構成を示す図である。
【図２】第１の実施形態によるスイッチの構成を示す図である。
【図３】第１の実施形態によるコントローラの構成を示す図である。
【図４】第１の実施形態によるフローテーブルを示す図である。
【図５】第１の実施形態によるフローテーブルを示す図である。
【図６】第１の実施形態による動作を示すフローチャートである。
【図７】第１の実施形態による障害検出時の動作を示すフローチャートである。
【図８】第１の実施形態による通常時の経路を示す図である。
【図９】第１の実施形態による障害検出後の経路を示す図である。
【図１０】第２の実施形態によるシステムの構成を示す図である。
【図１１】背景技術によるシステムの構成を示す図である。
【図１２】背景技術による動作の概要を示す図である。
【発明を実施するための形態】
【００１６】
＜第１の実施形態＞
以下、本発明の第１の実施形態について、図面を用いて詳細に説明する。
【００１７】
（構成）
図１は、第１の実施形態によるシステムの構成を示したブロック図である。本発明によるシステムは、スイッチ１０、スイッチ１１、スイッチ１２、スイッチ１３、スイッチ１４、スイッチ１５、スイッチ１６、スイッチ１７、スイッチ１８、スイッチ１９、Ｌ３スイッチ２０、コントローラ３０から構成される。
【００１８】
第１の実施形態では、このシステムにＯｐｅｎＦｌｏｗを適用している。従って、各スイッチはＯＦＳとして、コントローラ３０はＯＦＣとして、それぞれ動作する。
【００１９】
各スイッチは、点線で示されるセキュアチャネルによって、コントローラ３０と接続する。
【００２０】
以下、第１の実施形態では、スイッチ１４、スイッチ１５、スイッチ１６の動作を中心に説明する。なお、図１の中で、これらのスイッチに付随している丸数字は、各スイッチのポート番号を表している。
【００２１】
より具体的には、スイッチ１４のポート１はスイッチ１１と、ポート２はスイッチ１５と、ポート３はスイッチ１７とそれぞれ接続している。同様に、スイッチ１５のポート１はスイッチ１４と、ポート２はスイッチ１２と、ポート３はスイッチ１６と、ポート４はスイッチ１８と、それぞれ接続している。スイッチ１６に関しても同様であり、ポート１はスイッチ１５と、ポート２はスイッチ１３と、ポート３はスイッチ１９と、それぞれ接続している。
【００２２】
Ｌ３スイッチ２０は、各スイッチとコントローラ３０とを接続するが、Ｌ３スイッチ２０は第１の実施形態によるシステムに含まれていなくても構わない。
【００２３】
コントローラ３０は、フローごとに通信経路を計算し、計算結果に基づき、ネットワーク上の各スイッチを集中管理する。
【００２４】
図２は、スイッチ１０の構成を示したブロック図である。なお、スイッチ１１〜１９のいずれも、スイッチ１０と同様の構成であるため、その説明は省略する。
【００２５】
スイッチ１０は、処理部１０１、フローテーブル１０２、ポートリンク情報管理部１０３、経路制御情報処理部１０４を含んで構成される。スイッチ１０は、さらに、ＰＨＹ１  １０５、ＰＨＹ２  １０６、ＰＨＹ３  １０７、ＰＨＹ  Ｎ  １０８、ＰＨＹ  Ｘ  １０９を含んで構成される。スイッチ１０は、さらに、ポート１  １１０、ポート２  １１１、ポート３  １１２、ポートＮ  １１３、ポートＸ  １１４を含んで構成される。
【００２６】
処理部１０１は、フローテーブル１０２を参照し、受信パケットに対応するエントリ（処理規則）があるかどうかを判定する。対応するエントリがある場合には、受信パケットに対する処理（Ａｃｔｉｏｎ）を行う。受信パケットに対応するエントリがない場合には、Ｐｏｒｔ  Ｘ  １１４を経由して、コントローラ３０に処理規則の問い合わせを行う。なお、この動作は、ＯｐｅｎＦｌｏｗでは、Ｐａｃｋｅｔ−ｉｎという動作に相当するものである。
【００２７】
フローテーブル１０２は、背景技術の項で述べた通り、パケットヘッダと照合する条件（フローキー）と、処理内容を定義したアクション（Ａｃｔｉｏｎ）と、フロー統計情報との組を１つのエントリとして格納している。フローテーブル１０２の詳細については、後述する。
【００２８】
ポートリンク情報管理部１０３は、各ポートが接続するリンクの通信状況を管理する。各ポートから通信が問題なく行われていれば、Ｌｉｎｋの値は１に、障害または輻輳等が発生している場合には、Ｌｉｎｋの値は０となる。
【００２９】
経路制御情報処理部１０４は、コントローラ３０からのテーブルエントリ設定指示を受信し、指示に従いフローテーブル１０２を更新する。このテーブルエントリ設定指示は、ＯｐｅｎＦｌｏｗでは、Ｆｌｏｗ＿ｍｏｄという動作に相当するものである。
【００３０】
ＰＨＹ１  １０５、ＰＨＹ２  １０６、ＰＨＹ３  １０７、ＰＨＹ  Ｎ  １０８、ＰＨＹ  Ｘ  １０９は、物理層（Ｐｈｙｓｉｃａｌ  Ｌａｙｅｒ）であり、パケットの送受信を行うものである。
【００３１】
ポート１  １１０、ポート２  １１１、ポート３  １１２、ポートＮ  １１３、ポートＸ  １１４は、他のスイッチと接続される通信ポートである。ポートＸ  １１４は、セキュアチャネルを経由して、コントローラ３０と接続されている。
【００３２】
図３は、コントローラ３０の詳細構成を示したブロック図である。コントローラ３０は、Ｌ３スイッチ２０を経由して、スイッチ１０に接続されている。
【００３３】
経路決定部３０１は、各スイッチから受信したパケットの情報に基づき、所定のアルゴリズムを用いてパケットの経路を決定する。
【００３４】
経路伝達部３０２は、経路決定部３０１で決定した経路の設定を各スイッチのフローテーブルに対して行う。
【００３５】
（動作）
図８は、図１に示したネットワーク上の通常時のフローの経路を示した図である。第１のフローは、フローキーとして、宛先ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレス「１０」およびＶＬＡＮ（Ｖｉｒｔｕａｌ  Ｌｏｃａｌ  Ｎｅｔｗｏｒｋ）  ＩＤ「３００」を含み、通常経路１（スイッチ１７、スイッチ１４、スイッチ１１、スイッチ１０）を経路とする。第２のフローは、フローキーとして、宛先ＭＡＣアドレス「１０」およびＶＬＡＮ  ＩＤ「１００」を含み、通常経路２（スイッチ１８、スイッチ１５、スイッチ１２、スイッチ１０）を経路とする。第３のフローは、フローキーとして、宛先ＭＡＣアドレス「１０」およびＶＬＡＮ  ＩＤ「２００」を含み、通常経路３（スイッチ１８、スイッチ１５、スイッチ１２、スイッチ１０）を経路とする。第４のフローは、フローキーとして、宛先ＭＡＣアドレス「１０」およびＶＬＡＮ  ＩＤ「４００」を含み、通常経路４（スイッチ１９、スイッチ１６、スイッチ１３、スイッチ１０）を経路とする。
【００３６】
図９は、図８の経路上で、障害が発生した場合のフローの経路を示した図である。図９では、スイッチ１２とスイッチ１５とを接続するリンク上で障害が起こったと仮定している。このため、該当リンクを通過する第２のフロー（通常経路２）および第３のフロー（通常経路３）については、経路を変更する必要性が生じている。なお、第１のフロー（通常経路１）および第４のフロー（通常経路４）においては、障害の発生はないため、経路の変更はない。
【００３７】
第２のフローに関しては、スイッチ１８、スイッチ１５、スイッチ１４、スイッチ１１、スイッチ１０という新たな経路（代替経路２）に変更されている。第３のフローに関しては、スイッチ１８、スイッチ１６、スイッチ１３、スイッチ１０という新たな経路（代替経路３）に変更されている。
【００３８】
図４は、スイッチ１５、スイッチ１４、スイッチ１６それぞれのフローテーブル１０２の詳細を示した図である。図４に示す通り、フローテーブル１０２は、基本フローエントリグループと、代替フローエントリグループに分かれている。
【００３９】
基本フローエントリグループおよび代替フローエントリグループの双方には、受信パケットが属するフローを識別する条件（フローキー）と対応するフローのパケット処理（Ａｃｔｉｏｎ）とが対応付けられ、エントリとして格納されている。なお、図４では条件として、宛先ＭＡＣアドレス（ｄｓｔ  ＭＡＣ）とＶＬＡＮ  ＩＤ（ＶＩＤ）の２つに加え、入力ポート番号（ｉｎｐｕｔ  ｐｏｒｔ）を挙げているが、これに限られるものではない。例えば、送信元ＭＡＣアドレス、送信元ＩＰアドレス、宛先ＩＰアドレス等を組み合わせることも可能である。
【００４０】
基本フローエントリグループには、各フローの通常経路に対応するエントリが格納されている。
【００４１】
スイッチ１５を例に、基本フローエントリグループのエントリについて説明する。図８に示した通り、スイッチ１５は、第２のフローおよび第３のフローの経路として設定されている。従って、スイッチ１５の基本フローエントリグループには、２つのフローが登録されている。
【００４２】
基本フローエントリグループに登録された「＃１」のエントリは、図８の第２のフロー（通常経路２）に対応している。第２のフローに対する処理として、「ｏｕｔｐｏｒｔ＝２」が登録されている。これは、ポート２からパケットを転送する命令を示している。この命令により、第２のフローは、スイッチ１５のポート２からスイッチ１２へと転送される。
【００４３】
なお、このパケット処理は、複数設定することが可能であり、優先度を設定して最も高いものや、上位のものが優先的に実行される。
【００４４】
基本フローエントリグループに登録された「＃２」のエントリは、図８の第３のフロー（通常経路３）に対応している。第３のフローに対する処理は、第２のフローに対する処理と同様であるので、その説明は省略する。
【００４５】
スイッチ１５の代替フローエントリグループには、２つのフローが登録されている。これらは、基本フローエントリグループに登録された２つのエントリと対応するものである。
【００４６】
代替フローエントリグループに登録された「＃１」のエントリは、第２のフローの代替経路である代替経路２（図９）に対応するエントリである。通常時には、パケット処理として、「ｄｒｏｐ」（パケットの廃棄）が最上位の処理として登録されている。通常時にこのエントリが参照された場合には、パケットの廃棄命令が出されることになる。障害発生時には、「ｄｒｏｐ」を削除することで、パケット処理の最上位処理は、「ｏｕｔｐｏｒｔ＝３」となる。スイッチ１５のポート３からスイッチ１４のポート２にパケットを転送する。同様に、代替フローエントリグループに登録された「＃２」のエントリは、第３のフローの代替経路３に対応するエントリである。
【００４７】
また、スイッチ１４とスイッチ１６の代替フローエントリグループには、「＃ｘ」というエントリが登録されている。スイッチ１４のエントリ「＃ｘ」は、代替経路２の設定に対応するエントリである。同様に、スイッチ１５のエントリ「＃ｘ」は、代替経路３の設定に対応するエントリである。
【００４８】
スイッチ１４のエントリ「＃ｘ」は、第２のフローのフローキーおよびポート２からの受信を条件に、対応するパケットをポート１から転送する。同様に、スイッチ１６のエントリ「＃ｘ」は、第２のフローのフローキーおよびポート１からの受信を条件に、対応するパケットをポート２から転送する。
【００４９】
これらのエントリ「＃ｘ」について、スイッチ１４のフローテーブル１０２を例にとり、以下にまとめる。代替フローエントリには、２種類のエントリが存在する。１つは、そのエントリが設定されたフローテーブル１０２の基本フローエントリとして設定されているエントリの代替経路に相当するものである。これは、例えば、スイッチ１４の基本フローエントリ「＃１」の代替経路として設定されている代替フローエントリ「＃１」を示している。もう１つは、他のスイッチに設定された基本フローエントリの代替経路に相当するものである。これは、例えば、スイッチ１４の代替フローエントリ「＃ｘ」が挙げられる。このエントリは、スイッチ１５の代替フローエントリ「＃１」の経路として設定されているものである。
【００５０】
代替フローエントリには、基本的に「ｄｒｏｐ」が最上位のパケット処理として登録されるが、これらのエントリ「＃ｘ」については、例外的に「ｄｒｏｐ」を登録していない。これらのエントリは、他のスイッチからのリンク（図９ではスイッチ１５とスイッチ１２間のリンク）において障害が発生した場合のための代替経路用のエントリである。従って、障害が発生していない場合には、これらのエントリ「＃ｘ」に対応するパケットを受信することはないため、「ｄｒｏｐ」を登録しておく必要はない。
【００５１】
また、代替フローエントリは、コントローラ３０が各スイッチに対して基本フローエントリを設定する際に、コントローラ３０が同時に代替経路を計算し、各スイッチに設定することが典型的な設定方法として挙げられる。
【００５２】
なお、図４では、フローテーブル１０２が２つのグループに分かれている場合を示したが、各スイッチが、フローテーブル１０２に替えて、基本フローエントリテーブルと代替フローエントリテーブルの２つのテーブルを持つ構成にしても良い。
【００５３】
図５は、障害発生後のフローテーブル１０２を示した図である。図４のフローテーブル１０２との差分は、スイッチ１５の代替フローエントリ「＃１」と「＃２」である。他のエントリについては、図４と同様であるため、その説明は省略する。
【００５４】
図４のスイッチ１５の代替フローエントリ「＃１」と比較すると、図５のスイッチ１５の代替フローエントリ「＃１」は、条件は同じであるものの、パケット処理の「ｄｒｏｐ」が削除されている。この設定は、上述の通り、スイッチ１５とスイッチ１２間での障害が検出された際に、「ｄｒｏｐ」が削除されたために行われたものである。このように設定された後は、「ｏｕｔｐｏｒｔ＝３」が優先的に実行されることとなる。
【００５５】
これは、「＃２」でも同様であり、障害検出後は「ｏｕｔｐｏｒｔ＝１」が優先的に実行される。
【００５６】
図６は、本実施形態によるスイッチの動作を示すフローチャートである。以下では、スイッチ１０を例に挙げて説明する。
【００５７】
まず、スイッチ１０は、いずれかのポートから、パケットを受信する（ステップＳ０１）と、処理部１０１がフローテーブル１０２の検索を開始する（ステップＳ０２）。続いて、ステップＳ０３からＳ０５までの処理が、並列に実行される。
【００５８】
まず、処理部１０１は、基本フローエントリグループの検索（ステップＳ０３−１）と代替フローエントリグループの検索（ステップＳ０３−２）とを行う。受信パケットに対応するエントリがあるかどうかの判断を行い（ステップＳ０４−１、ステップＳ０４−２）、対応するエントリがある場合には、該当エントリのパケット処理を実行する（ステップＳ０５−１、ステップＳ０５−２）。対応するエントリがない場合には、受信パケットは未知のパケットであるとして、コントローラ３０へ転送される（ステップＳ０６）。ステップＳ０６の動作は、ＯｐｅｎＦｌｏｗの「ｐａｃｋｅｔ−ｉｎ」に相当する動作であり、この動作を通じて、コントローラ３０による経路の決定と設定が行われる。
【００５９】
上述のように、ステップＳ０３からＳ０５までの動作は、並列実行される。そのため、処理部１０１は、基本フローエントリに記載された処理と、代替フローエントリに記載された処理との２種類を同時に行う必要がある。この２種類の処理を同時に行うためには、例えば以下の２つの方法が考えられる。
【００６０】
まず１つは、受信パケットのコピーをとっておき、処理部１０１が基本フローエントリの処理と、代替フローエントリの処理の両方を実行する方法が挙げられる。障害が発生していない場合には、代替フローエントリによる処理ではパケットは廃棄され、障害が発生している場合には、基本フローエントリによる処理は実行不可能であるから、受信パケットとそのコピーが同時に別のスイッチに転送されてしまうようなことは起こらない。
【００６１】
もう１つは、処理部１０１において、基本フローエントリの処理と代替フローエントリの処理のうち、どちらを実行するか判断した上で実行する方法が挙げられる。処理部１０１は、ポートリンク情報管理部１０３から、障害状況を知ることができるので、障害状況に基づいた判断を行うことができる。
【００６２】
なお、ステップＳ０３からＳ０５までの処理は、上記の例では並列実行されるが、必ずしも並列である必要はない。通常時には、基本フローエントリグループだけを参照し、障害時には、代替フローエントリグループだけを参照するように設定することも可能である。
【００６３】
続いて、スイッチ１０の障害検出時の動作について、図７を用いて説明する。まず、ポートリンク情報管理部１０３が、いずれかのポートのリンク障害を検出する（ステップＳ１１）。
【００６４】
障害が検出された場合、経路制御情報処理部１０４は、フローテーブル１０２の基本フローエントリグループのパケット処理を検索する（ステップＳ１２、ステップＳ１３）。より具体的には、リンク障害が発生したポートに関連する処理があるか、つまり障害発生ポートから転送するような処理があるかどうかを検索する。
【００６５】
リンク障害が発生したポートに関連する処理があった場合には、該当エントリの条件と一致する代替フローエントリグループの処理「ｄｒｏｐ」を削除する更新を行う（ステップＳ１４）。リンク障害が発生したポートに関連する処理がなかった場合には、受信パケットの処理は行わない（ステップＳ１５）。この場合は、受信パケットの廃棄を行っても良い。
【００６６】
以上、本実施形態では、ＯｐｅｎＦｌｏｗを適用したネットワークについて説明したが、これに限られるものではない。ＯｐｅｎＦｌｏｗ以外であっても、制御サーバ等がネットワークの集中管理を行うようなネットワークであれば、適用可能である。
【００６７】
（効果）
以上説明した通り、本実施形態によれば、各スイッチのフローテーブルにおいて、フローの代替転送経路を設定し、管理しておくことによって、通常経路での障害が発生した場合にでも、コントローラからの指示を待つことなく、高速に障害回避を行うことが可能である。
【００６８】
＜第２の実施形態＞
（構成）
図１０は、本発明の第２の実施形態によるシステムの構成を示したブロック図である。本実施形態によるシステムは、通信装置１０００と、制御装置１０１０を含む。
【００６９】
通信装置１０００は、処理記憶部１００１と、代替処理記憶部１００２と、処理部１００３を含む。
【００７０】
処理記憶部１００１は、パケットの識別情報と、パケットに対する処理とを対応付けた処理規則を記憶する。
【００７１】
代替処理記憶部１００２は、処理記憶部に記憶された処理とは異なる処理を含む処理規則を記憶する。
【００７２】
処理部１００３は、処理記憶部１００１または代替処理記憶部１００２を検索して得られた処理規則に従って受信パケットの処理を行う。受信パケットに対応する処理規則がない場合には、制御装置１０１０にその旨の通知を出力する。
【００７３】
制御装置１０１０は、経路伝達部１０１１を含む。経路伝達部１０１１は、通信装置１００からの通知を受信した場合、受信パケットの転送経路を算出する。その後、算出した転送経路上に存在する各転送装置の処理記憶部および代替処理記憶部に対し、算出した転送経路に対応する処理規則を設定する。
【００７４】
（効果）
本実施形態によれば、通常時とは異なる経路を示す代替処理を通信装置に記憶しておくことで、ネットワークの障害または輻輳発生時に高速な経路切り替えを行うことが可能になる。
【００７５】
上記の実施形態の一部または全部は、以下の付記のようにも記載され得るが、以下には限られない。
【００７６】
（付記１）
受信パケットの識別情報と前記受信パケットに対する処理とを対応付けた処理規則を記憶する処理記憶部と、
前記受信パケットに対する前記処理記憶部に記憶された処理とは異なる処理を含む処理規則を記憶する代替処理記憶部と、
前記受信パケットの識別情報に基づき、前記処理記憶部または前記代替処理記憶部を検索して得られた処理規則に従って前記受信パケットの処理を行う処理部と、
を備えることを特徴とする通信装置。
【００７７】
（付記２）
前記代替処理記憶部の前記処理規則が示す処理内容は、前記受信パケットの破棄を含むことを特徴とする付記１に記載の通信装置。
【００７８】
（付記３）
前記通信装置は、さらに、前記通信装置が接続するリンクの障害を検知し、前記障害が検知された場合には、前記代替処理記憶部の前記障害が発生した箇所に対応する処理規則のうち、前記受信パケットの破棄を示す処理を削除する経路制御部を備えることを特徴とする付記２に記載の通信装置。
【００７９】
（付記４）
前記処理部は、前記処理記憶部および前記代替処理記憶部の双方を参照し、前記受信パケットに対応する処理規則がある場合には、前記処理規則に従って前記受信パケットの処理を行うことを特徴とする付記１から３のいずれかに記載の通信装置。
【００８０】
（付記５）
前記代替処理記憶部は、処理規則として、前記通信装置の処理記憶部の各処理規則に対応する第１の代替処理規則と、前記通信装置以外の通信装置の第１の代替処理規則が示す転送経路に対応する第２の代替処理規則と、を含み、前記第２の代替処理規則は前記受信パケットの識別情報として、前記受信パケットの入力ポートを含むことを特徴とする付記１から３のいずれかに記載の通信装置。
【００８１】
（付記６）
前記処理記憶部および前記代替処理記憶部の処理規則の各々には、処理規則に関する優先度と、処理規則の各処理内容に関する優先度とが設定されていることを特徴とする付記１から５のいずれかに記載の通信装置。
【００８２】
（付記７）
付記１から６のいずれかに記載の通信装置と、
経路伝達部と、
を備え、
前記処理部は、前記通信装置の受信パケットに対応する処理規則がない場合には、その旨の通知を出力し、
前記経路伝達部は、前記通知を受信した場合、前記受信パケットの転送経路を算出し、前記転送経路上の転送装置の処理記憶部および代替処理記憶部に前記転送経路に対応する処理規則を設定することを特徴とする通信システム。
【００８３】
（付記８）
受信パケットの識別情報に基づき、前記受信パケットの識別情報と前記受信パケットに対する処理とを対応付けた処理規則を記憶する処理記憶部または前記受信パケットに対する前記処理記憶部に記憶された処理とは異なる処理を含む処理規則を記憶する代替処理記憶部を検索する検索ステップと、
前記受信パケットの識別情報に基づき、前記検索ステップにより得られた処理規則に従って前記受信パケットの処理を行う受信パケット処理ステップと、
を含むことを特徴とする通信方法。
【００８４】
（付記９）
前記代替処理記憶部の前記処理規則が示す処理内容は、前記受信パケットの破棄を含むことを特徴とする付記８に記載の通信方法。
【００８５】
（付記１０）
前記通信方法は、さらに、自通信装置が接続するリンクの障害を検知する検知ステップと、
前記障害が検知された場合には、前記代替処理記憶部の前記障害が発生した箇所に対応する処理規則のうち、前記受信パケットの破棄を示す処理を削除する経路制御ステップと、
を含むことを特徴とする付記９に記載の通信方法。
【００８６】
（付記１１）
前記処理ステップは、前記処理記憶部および前記代替処理記憶部の双方を参照し、前記受信パケットに対応する処理規則がある場合には、前記処理規則に従って前記受信パケットの処理を行うことを特徴とする付記８から１０のいずれかに記載の通信方法。
【００８７】
（付記１２）
前記代替処理記憶部は、処理規則として、自通信装置の処理記憶部の各処理規則に対応する第１の代替処理規則と、自通信装置以外の通信装置の第１の代替処理規則が示す転送経路に対応する第２の代替処理規則と、を含み、前記第２の代替処理規則は前記受信パケットの識別情報として、前記受信パケットの入力ポートを含むことを特徴とする付記８から１１のいずれかに記載の通信方法。
【００８８】
（付記１３）
前記処理記憶部および前記代替処理記憶部の処理規則の各々には、処理規則に関する優先度と、処理規則の各処理内容に関する優先度とが設定されていることを特徴とする付記８から１２のいずれかに記載の通信方法。
【００８９】
（付記１４）
受信パケットの識別情報に基づき、前記受信パケットの識別情報と前記受信パケットに対する処理とを対応付けた処理規則を記憶する処理記憶部または前記受信パケットに対する前記処理記憶部に記憶された処理とは異なる処理を含む処理規則を記憶する代替処理記憶部を検索する検索処理と、
前記受信パケットの識別情報に基づき、前記検索ステップにより得られた処理規則に従って前記受信パケットの処理を行う受信パケット処理と、
をコンピュータに実行させることを特徴とする通信プログラム。
【００９０】
（付記１５）
前記代替処理記憶部の前記処理規則が示す処理内容は、前記受信パケットの破棄を含むことを特徴とする付記１４に記載の通信プログラム。
【００９１】
（付記１６）
前記通信方法は、さらに、自通信装置が接続するリンクの障害を検知する検知処理と、
前記障害が検知された場合には、前記代替処理記憶部の前記障害が発生した箇所に対応する処理規則のうち、前記受信パケットの破棄を示す処理を削除する経路制御処理と、
を含むことを特徴とする付記１５に記載の通信プログラム。
【００９２】
（付記１７）
前記制御処理は、前記処理記憶部および前記代替処理記憶部の双方を参照し、前記受信パケットに対応する処理規則がある場合には、前記処理規則に従って前記受信パケットの処理を行うことを特徴とする付記１４から１６のいずれかに記載の通信プログラム。
【００９３】
（付記１８）
前記代替処理記憶部は、処理規則として、自通信装置の処理記憶部の各処理規則に対応する第１の代替処理規則と、自通信装置以外の通信装置の第１の代替処理規則が示す転送経路に対応する第２の代替処理規則と、を含み、前記第２の代替処理規則は前記受信パケットの識別情報として、前記受信パケットの入力ポートを含むことを特徴とする付記１４から１７のいずれかに記載の通信プログラム。
【００９４】
（付記１９）
前記処理記憶部および前記代替処理記憶部の処理規則の各々には、処理規則に関する優先度と、処理規則の各処理内容に関する優先度とが設定されていることを特徴とする付記１４から１８のいずれかに記載の通信プログラム。
【符号の説明】
【００９５】
１０、１１、１２、１３、１４、１５、１６、１７、１８、１９    スイッチ
１０００    通信装置
１０１、１００３    処理部
１０２    フローテーブル
１００１    処理記憶部
１００２    代替処理記憶部
１０３    ポートリンク情報管理部
１０４    経路制御情報処理部
１００４    経路制御部
１０５、１０６、１０７、１０８、１０９    ＰＨＹ
１１０、１１１、１１２、１１３、１１４    ポート
２０    Ｌ３スイッチ
３０    コントローラ
１０１０    制御装置
３０１    経路決定部
３０２、１０１１    経路伝達部
【図１】
2012049674.tif 000003
【図２】
2012049674.tif 000004
【図３】
2012049674.tif 000005
【図４】
2012049674.tif 000006
【図５】
2012049674.tif 000007
【図６】
2012049674.tif 000008
【図７】
2012049674.tif 000009
【図８】
2012049674.tif 000010
【図９】
2012049674.tif 000011
【図１０】
2012049674.tif 000012
【図１１】
2012049674.tif 000013
【図１２】
2012049674.tif 000014