(57)【要約】 【課題】アドレス学習機能を備えたスイッチとそうでないスイッチとが混在するネットワーク環境において、ループやルートフラップの発生を抑止する。【解決手段】受信したパケットの送信元アドレスに基づいてパケットの出力先を学習し、該学習結果に基づいて次に受信したパケットの送信先を決定する第１のスイッチと、予め設定された経路に従いパケットを出力する第２のスイッチと、の双方が配置されたネットワークと、前記ネットワークに接続され、前記第２のスイッチを制御するスイッチ制御部と、前記ネットワークに接続する任意の送信元からの通信が複数の経路を使用するか否かを判定する経路検査部と、前記複数の経路の合流箇所が、前記第１のスイッチである場合、所定の誤学習抑止処理を実行する誤学習抑止処理部と、を備える制御装置と、を含む。【選択図】図１
2015525984.tif 000002
【特許請求の範囲】
【請求項１】
受信したパケットの送信元アドレスに基づいてパケットの出力先を学習し、該学習結果に基づいて次に受信したパケットの送信先を決定する第１のスイッチと、予め設定された経路に従いパケットを出力する第２のスイッチと、の双方が配置されたネットワークに接続され、
前記第２のスイッチを制御するスイッチ制御部と、
前記ネットワークに接続する任意の送信元からの通信が複数の経路を使用するか否かを判定する経路検査部と、
前記複数の経路の合流箇所が、前記第１のスイッチである場合、所定の誤学習抑止処理を実行する誤学習抑止処理部と、
を備える制御装置。
【請求項２】
前記所定の誤学習抑止処理として、前記経路の合流箇所の第１のスイッチよりも上流側の第２のスイッチに、前記経路のうちの一方の経路を流れるパケットの送信元アドレスの書き換えを実行させる請求項１の制御装置。
【請求項３】
前記所定の誤学習抑止処理として、前記経路のうちの一方の経路を流れるパケットのＭＡＣアドレス、または、ＭＡＣアドレスとＩＰアドレスの双方を書き換える請求項２の制御装置。
【請求項４】
受信したパケットの送信元アドレスに基づいてパケットの出力先を学習し、該学習結果に基づいて次に受信したパケットの送信先を決定する第１のスイッチと、予め設定された経路に従いパケットを出力する第２のスイッチと、の双方が配置されたネットワークと、
前記ネットワークに接続され、前記第２のスイッチを制御するスイッチ制御部と、
前記ネットワークに接続する任意の送信元からの通信が複数の経路を使用するか否かを判定する経路検査部と、前記複数の経路の合流箇所が、前記第１のスイッチである場合、所定の誤学習抑止処理を実行する誤学習抑止処理部と、を備える制御装置と、を含む通信システム。
【請求項５】
受信したパケットの送信元アドレスに基づいてパケットの出力先を学習し、該学習結果に基づいて次に受信したパケットの送信先を決定する第１のスイッチと、予め設定された経路に従いパケットを出力する第２のスイッチと、の双方が配置されたネットワークにおいて、
前記第２のスイッチを制御する制御装置が、
前記ネットワークに接続する任意の送信元からの通信が複数の経路を使用するか否かを判定するステップと、
前記複数の経路の合流箇所が、前記第１のスイッチである場合、所定の誤学習抑止処理を実行するステップと、
を含む通信方法。
【請求項６】
前記所定の誤学習抑止処理として、前記経路の合流箇所の第１のスイッチよりも上流側の第２のスイッチに、前記経路のうちの一方の経路を流れるパケットの送信元アドレスの書き換えを実行させる請求項５の通信方法。
【請求項７】
前記所定の誤学習抑止処理として、ＭＡＣアドレス、または、ＭＡＣアドレスとＩＰアドレスの双方を書き換える請求項６の通信方法。
【請求項８】
受信したパケットの送信元アドレスに基づいてパケットの出力先を学習し、該学習結果に基づいて次に受信したパケットの送信先を決定する第１のスイッチと、予め設定された経路に従いパケットを出力する第２のスイッチと、の双方が配置されたネットワークにおいて、
前記第２のスイッチを制御する制御装置に搭載されたコンピュータに、
前記ネットワークに接続する任意の送信元からの通信が複数の経路を使用するか否かを判定する処理と、
前記複数の経路の合流箇所が、前記第１のスイッチであるか否かを判定する処理と、
前記複数の経路の合流箇所が、前記第１のスイッチである場合、所定の誤学習抑止処理を実行する処理と、を実行させるプログラム。
【請求項９】
受信したパケットの送信元アドレスに基づいてパケットの出力先を学習し、該学習結果に基づいて次に受信したパケットの送信先を決定する第１のスイッチと、予め設定された経路に従いパケットを出力する第２のスイッチと、の双方が配置されたネットワークにおいて、
前記第２のスイッチを制御する制御装置に搭載されたコンピュータに、
前記ネットワークに接続する任意の送信元からの通信が複数の経路を使用するか否かを判定する処理と、
前記複数の経路の合流箇所が、前記第１のスイッチであるか否かを判定する処理と、
前記複数の経路の合流箇所が、前記第１のスイッチである場合、所定の誤学習抑止処理を実行する処理と、を実行させるプログラムを格納した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、日本国特許出願：特願２０１２−１５２０６５号（２０１２年７月６日出願）の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。本発明は、通信システム、制御装置、通信方法及びプログラムに関し、特に、受信したパケットの送信元アドレスに基づいてパケットの出力先を学習し、該学習結果に基づいて次に受信したパケットの送信先を決定するスイッチと、そうでないスイッチとが混在するネットワークを介して通信を実現する通信システム、制御装置、通信方法及びプログラムに関する。
【背景技術】
【０００２】
インターネットやデータセンタ、スーパーコンピュータなどのネットワークは大規模化を続けており、ネットワーク内の端末間で常に所望の通信速度を確保することは困難となりつつある。例えば、データセンタ内には、数万台以上の計算機が配置されることは一般的であり、これを接続するネットワークにも数万本以上の回線がある。また例えば、スーパーコンピュータでは計算ノード間が密に接続されるため回線数も多くなり、１つのスーパーコンピュータに合計約１００００本以上の回線が用いられた例もある。
【０００３】
このようにネットワークが大規模化すると、広く利用されているイーサネット（登録商標）のようにツリー型トポロジを利用する方式では、トラヒックの合流が多くなるので、ネットワーク内で輻輳が発生する可能性も高くなってしまう。
【０００４】
一方、近年、パケットの送信／受信アドレス、ポートの組み合わせが等しいパケット群を通信フローとし、この通信フロー毎に経路を設定する通信方式（フロー型通信方式）も検討されている。例えば、非特許文献１、２に、ＯｐｅｎＦｌｏｗという方式が提案されている。フロー型通信方式はツリートポロジを前提としておらず、複数の経路候補のうちから輻輳の無い経路を選択することも可能となる。
【０００５】
ただし、既存のネットワークでは、イーサネットが広く普及しており、既に敷設されたネットワーク資源を活用することは経済的に重要である。このため、イーサネットとフロー型通信方式を組み合わせて利用することも望まれる。
【０００６】
例えば、特許文献１には、フロー型通信方式に対応したネットワーク機器と、非対応のネットワーク機器とが混在する環境で、フロー型通信方式に対応したネットワーク機器を制御するコントローラ間で連係動作を行う構成が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１１−１６６７０４号公報
【特許文献２】特開２００８−３０１００３号公報
【非特許文献】
【０００８】
【非特許文献１】Ｎｉｃｋ  ＭｃＫｅｏｗｎほか７名、“ＯｐｅｎＦｌｏｗ：  Ｅｎａｂｌｉｎｇ  Ｉｎｎｏｖａｔｉｏｎ  ｉｎ  Ｃａｍｐｕｓ  Ｎｅｔｗｏｒｋｓ”、［ｏｎｌｉｎｅ］、［平成２４（２０１２）年６月２４日検索］、インターネット〈URL:http://www.openflow.org/documents/openflow-wp-latest.pdf〉
【非特許文献２】“ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ”  Ｖｅｒｓｉｏｎ  １．１．０  Ｉｍｐｌｅｍｅｎｔｅｄ  （Ｗｉｒｅ  Ｐｒｏｔｏｃｏｌ  ０ｘ０２）、［ｏｎｌｉｎｅ］、［平成２４（２０１２）年６月２４日検索］、インターネット〈URL:http://www.openflow.org/documents/openflow-spec-v1.1.0.pdf〉
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上記の特許文献および非特許文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明によって与えられたものである。イーサネットのようにツリー型トポロジを前提とする通信方式と、これを前提としないフロー型通信方式を組み合わせて使用すると、フロー型通信方式が設定した経路上にあるフロー型通信方式非対応のネットワーク機器により、ネットワーク内にループを構成してしまう可能性がある。ツリー型トポロジのネットワークではループを禁止しており、ループが検出されると、通信障害となり、以降正常な通信が行えなくなってしまう。
【００１０】
また、イーサネットスイッチはそれぞれのポート向けにどのアドレスのフレームを送信するのかを自動的に学習する機能を有しているため、あるスイッチの複数の入力ポートから同一アドレスのフレームが到着する場合、該スイッチでは異なる入力ポートからフレームが到着する度にアドレスの学習を更新してしまい経路が切り替えられ、ネットワークが不安定な状態になってしまう（これを「ルートフラップ」と呼ぶ。）。
【００１１】
ここで、図９〜図１１を用いてルートフラップの発生原因について説明する。図９は通常のイーサネットによるツリートポロジネットワークでの通信例である（なお、図中の「ＳＴＰ  Ｐａｔｈ」は、スパニングツリープロトコルによるパスを示す。）。端末Ｈ０とＨ１は、アドレスを自動学習するイーサネットスイッチＳ０、Ｓ１、Ｓ２を経由し通信する。各端末と各スイッチ間のそれぞれの接続は別の物理リンクを使用し、スイッチでは別のインタフェースにて接続されているものとする。イーサネットスイッチＳ０〜Ｓ２では、フレーム内の送信元アドレスを参照し、端末Ｈ０が接続されている方向を自動学習する。例えば、端末Ｈ０のアドレスＡを持つフレームがポート１から入力されれば、アドレスＡを持つ端末Ｈ０はポート１の方向に接続されていると学習し、以降、宛先アドレスＡとするフレームがいずれかのポートから入力された場合には、ポート１へと転送する。
【００１２】
ここで、この図９に示すツリートポロジネットワークに新たな経路を加えて通信することを考える。図１０は、図９のイーサネットスイッチＳ０とＳ２とを、フロー型通信方式に対応するスイッチＦＳ０とＦＳ２に置き換えた例である。図１０のように、フロー型通信方式に対応するスイッチが配置されていると、端末Ｈ０と端末Ｈ１間の通信フローのうち一部の通信フローをイーサネットスイッチＳ１を経由しない経路で転送し、他の通信フローをイーサネットスイッチＳ１を経由して通信するといったきめ細かな制御が可能となる。このとき、同じ送信元アドレスを有するフレームが、スイッチＦＳ０とＦＳ２との複数のインタフェースに到着することになるが、スイッチＦＳ０とＦＳ２はアドレスの自動学習をしないため、ルートフラップは発生しない。
【００１３】
図１１は、ルートフラップが発生する例を示している。図１１は、図９のイーサネットスイッチＳ０をフロー型通信方式に対応するスイッチＦＳ０に置き換えるとともに、ＦＳ０とイーサネットスイッチＳ２間にもう一つのフロー型通信方式に対応するスイッチＦＳ３を配置した例である。図１１のネットワーク構成においても、端末Ｈ０からの端末Ｈ１への通信フローのうち一部の通信フローをスイッチＦＳ０、イーサネットスイッチＳ１、Ｓ２の順の経路で転送し、他の通信フローをスイッチＦＳ０、ＦＳ３、イーサネットスイッチＳ２の順の経路で転送することができる。しかしながら、図１１のネットワーク構成では、イーサネットスイッチＳ２に、端末Ｈ０のアドレスを送信元アドレスとするフレームが異なるインタフェースから入力される。この結果、イーサネットスイッチＳ２では、異なるインタフェースからフレームを受信する度に、端末Ｈ０の接続先を自動学習してしまう。このようにルートフラップが発生すると、フレーム受信の度に頻繁にアドレスの自動学習がなされてしまうことになり、イーサネットスイッチＳ２の処理負荷が高くなってしまう。また結果として、フロー単位での経路の切替や安定的な通信が行えなくなってしまう。
【００１４】
本発明は、上記のように、受信したパケットの送信元アドレスに基づいてパケットの出力先を学習し、該学習結果に基づいて次に受信したパケットの送信先を決定するスイッチと、そうでないスイッチとが混在するネットワーク環境において、ループやルートフラップの発生を抑止できる通信システム、制御装置、通信方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明の第１の視点によれば、受信したパケットの送信元アドレスに基づいてパケットの出力先を学習し、該学習結果に基づいて次に受信したパケットの送信先を決定する第１のスイッチと、予め設定された経路に従いパケットを出力する第２のスイッチと、の双方が配置されたネットワークに接続され、前記第２のスイッチを制御するスイッチ制御部と、前記ネットワークに接続する任意の送信元からの通信が複数の経路を使用するか否かを判定する経路検査部と、前記複数の経路の合流箇所が、前記第１のスイッチである場合、所定の誤学習抑止処理を実行する誤学習抑止処理部と、を備える制御装置が提供される。
【００１６】
本発明の第２の視点によれば、受信したパケットの送信元アドレスに基づいてパケットの出力先を学習し、該学習結果に基づいて次に受信したパケットの送信先を決定する第１のスイッチと、予め設定された経路に従いパケットを出力する第２のスイッチと、の双方が配置されたネットワークと、前記ネットワークに接続され、前記第２のスイッチを制御するスイッチ制御部と、前記ネットワークに接続する任意の送信元からの通信が複数の経路を使用するか否かを判定する経路検査部と、前記複数の経路の合流箇所が、前記第１のスイッチである場合、所定の誤学習抑止処理を実行する誤学習抑止処理部と、を備える制御装置と、を含む通信システムが提供される。
【００１７】
本発明の第３の視点によれば、受信したパケットの送信元アドレスに基づいてパケットの出力先を学習し、該学習結果に基づいて次に受信したパケットの送信先を決定する第１のスイッチと、予め設定された経路に従いパケットを出力する第２のスイッチと、の双方が配置されたネットワークにおいて、前記第２のスイッチを制御する制御装置が、前記ネットワークに接続する任意の送信元からの通信が複数の経路を使用するか否かを判定するステップと、前記複数の経路の合流箇所が、前記第１のスイッチである場合、所定の誤学習抑止処理を実行するステップと、を含む通信方法が提供される。本方法は、第２のスイッチを制御する制御装置という、特定の機械に結びつけられている。
【００１８】
本発明の第４の視点によれば、受信したパケットの送信元アドレスに基づいてパケットの出力先を学習し、該学習結果に基づいて次に受信したパケットの送信先を決定する第１のスイッチと、予め設定された経路に従いパケットを出力する第２のスイッチと、の双方が配置されたネットワークにおいて、前記第２のスイッチを制御する制御装置に搭載されたコンピュータに、前記ネットワークに接続する任意の送信元からの通信が複数の経路を使用するか否かを判定する処理と、前記複数の経路の合流箇所が、前記第１のスイッチであるか否かを判定する処理と、前記複数の経路の合流箇所が、前記第１のスイッチである場合、所定の誤学習抑止処理を実行する処理と、を実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な（非トランジエントな）記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００１９】
本発明によれば、上記第１、第２のスイッチが混在するネットワーク環境において、ループやルートフラップの発生を抑止することが可能となる。
【図面の簡単な説明】
【００２０】
【図１】本発明の第１の実施形態のネットワーク構成を示す図である。
【図２】本発明の第１の実施形態の端末の構成を示す図である。
【図３】本発明の第１の実施形態の第２のスイッチの構成を示す図である。
【図４】本発明の第１の実施形態の制御装置の構成を示す図である。
【図５】本発明の第１の実施形態の制御装置の動作を表したフローチャートである。
【図６】ルートフラップが抑止される仕組みを説明するための図である。
【図７】図６の続図である。
【図８】本発明の第１の実施形態の変形例を示す図である。
【図９】ルートフラップが発生する仕組みを説明するための図である。
【図１０】ルートフラップが発生する仕組みを説明するための図である。
【図１１】ルートフラップが発生する仕組みを説明するための図である。
【発明を実施するための形態】
【００２１】
はじめに本発明の一実施形態の概要について図面を参照して説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
【００２２】
本発明は、その一実施形態において、図１に示すように、受信したパケットの送信元アドレスに基づいてパケット（以下、「パケット」と「フレーム」を特に区別せず「パケット」と称する）の出力先を学習し、該学習結果に基づいて次に受信したパケットの送信先を決定する第１のスイッチ（図１のＳ１、Ｓ２）と、予め設定された経路に従いパケットを出力する第２のスイッチ（図１のＦＳ０、ＦＳ３）と、が混在するネットワークと、このネットワークに配置された制御装置（図１の制御装置２０）とを含む構成にて実現できる。
【００２３】
より具体的には、制御装置（図１の制御装置２０）は、第２のスイッチ（図１のＦＳ０、ＦＳ３）を制御するスイッチ制御部（図４のスイッチ制御部２１３）と、ネットワークに接続する任意の送信元からの通信が複数の経路を使用するか否かを判定する経路検査部（図４の経路検査部２１１）と、この複数の経路の合流箇所が、第１のスイッチ（図１のＳ１、Ｓ２）である場合、所定の誤学習抑止処理を実行する誤学習抑止処理部（図４の誤学習抑止処理部２１２）と、を備えて構成される。
【００２４】
なお、誤学習抑止処理部（図４の誤学習抑止処理部２１２）が実行する誤学習抑止処理としては、例えば、経路の合流箇所の第１のスイッチ（例えば、図６のＳ２）よりも上流側の第２のスイッチ（例えば、図６のＦＳ０又はＦＳ３）に、経路を流れるパケットの送信元アドレスの書き換えを実行させることによって実現される。
【００２５】
その他、誤学習抑止処理部（図４の誤学習抑止処理部２１２）が誤学習抑止処理として、経路の合流箇所がスイッチＳ２にならないよう経路の再計算、再設定を行うようにしてもよい。
【００２６】
以上のように、この制御装置（図１の制御装置２０）に、上記第１、第２のスイッチが混在するネットワーク環境において、誤学習が発生する状況を検出し、ループやルートフラップの発生を抑止することが可能となる。
【００２７】
［第１の実施形態］
続いて、本発明の第１の実施形態について図面を参照して詳細に説明する。図１は、本発明の第１の実施形態のネットワーク構成を示す図である。図１１に示した端末Ｈ０と端末Ｈ１間の通信によるルートフラップが発生しうる構成に、第２のスイッチ３０を制御する制御装置２０を追加した構成となっている。
【００２８】
以下、本実施形態においても、第１のスイッチ４０と第２のスイッチ３０とが混在するネットワーク経由で、図１の端末１０（端末Ｈ０と端末Ｈ１）間のパケットを転送する例を挙げて説明する。
【００２９】
図２は、端末１０の詳細構成を表したブロック図である。図２を参照すると、アプリケーション処理部１１と、ＴＣＰ／ＩＰ処理部１２と、イーサネット処理部１３とを備えた構成が示されている。
【００３０】
アプリケーション処理部１１は、端末１０上で動作するアプリケーションからの送信データをＴＣＰ／ＩＰ処理部１２へ出力する。また、アプリケーション処理部１１は、ＴＣＰ／ＩＰ処理部１２からのデータを受信して、アプリケーションに引き渡す。
【００３１】
ＴＣＰ／ＩＰ処理部１２は、アプリケーション処理部１１から入力されたデータをセグメント化、パケット化しイーサネット処理部１３へ出力する。また、ＴＣＰ／ＩＰ処理部１２は、イーサネット処理部１３から入力されるパケットをＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）により処理し、データ化しアプリケーション処理部へ出力する。
【００３２】
イーサネット処理部１３は、ＴＣＰ／ＩＰ処理部１２から入力されたパケットをネットワークへ出力する。また、イーサネット処理部１３は、ＴＣＰ／ＩＰ処理部１２に、ネットワークから入力されたパケット（イーサネットフレーム）を出力する。
【００３３】
本発明の第１の実施形態の第１のスイッチは、一般的なイーサネットスイッチである（図示省略）。イーサネットスイッチは、ネットワークから入力インタフェースに入力されたパケット（イーサネットフレーム）の送信元アドレスを参照し、学習テーブル（「ＭＡＣアドレステーブル」ともいう。）に、入力インタフェースと送信元アドレスとを対応付けたエントリが存在しない場合、学習テーブルに前記入力インタフェースと送信元アドレスとを対応付けたエントリを格納する。また、イーサネットスイッチは、パケットの宛先アドレスを参照し、前記学習テーブルに該宛先アドレスに対するインタフェースが格納されている場合、該インタフェースへとパケットを転送する。
【００３４】
図３は、本発明の第１の実施形態の第２のスイッチの構成を示す図である。図３を参照すると、通信管理部３１と、転送処理部３２と、入出力インタフェース３３と、記憶部３４とを備えた構成が示されている。
【００３５】
記憶部３４は、制御装置２０によって決定された通信経路を実現するパケット転送を行うために、受信パケットのヘッダ等と照合するマッチ条件と、このマッチ条件に適合するパケットに適用する処理内容（特定の入出力インタフェース３３からのパケット転送等）とを対応付けたエントリを記憶する。例えば、端末Ｈ０から端末Ｈ１宛てのパケットを、第２のスイッチ（ＦＳ０）、第２のスイッチ（ＦＳ３）、第１のスイッチ（Ｓ２）の順で転送する経路上の第２のスイッチ（ＦＳ３）には、端末Ｈ０から端末Ｈ１宛てのパケットを識別するためのマッチ条件と、このマッチ条件に適合するパケットを第１のスイッチＳ２に転送する処理内容とを対応付けたエントリが設定される。
【００３６】
入出力インタフェース３３は、ネットワークの他のスイッチや端末と接続された複数の入出力ポートによって構成され、これら外部の機器とパケットを入出力する。
【００３７】
転送処理部３２は、記憶部３４から、入出力インタフェース３３から入力されたパケットに適合するマッチ条件を持つエントリを検索し、該当するエントリに定められた処理（特定の入出力インタフェースからのパケット転送等）を実行する。前記検索の結果、記憶部３４に、入力パケットに適合するマッチ条件を持つエントリが存在しない場合、転送処理部３２は、通信管理部３１に対して、入力パケットを転送して新規エントリの設定を要求する。
【００３８】
通信管理部３１は、転送処理部３２から新規エントリの設定要求を受けると、制御装置２０に対して、入力パケットの情報を送信し、新規エントリの設定を要求する。制御装置２０から所定経路（例えば、Ｐａｔｈ２（Ｈ０，Ｈ１）＝｛ＦＳ０，ＦＳ３，Ｓ２｝）に従った転送を行うためのエントリを受信すると、通信管理部３１は、記憶部３４に該エントリを格納するとともに、入力パケットを再び転送処理部３２に出力する。
【００３９】
なお、上記のような第２のスイッチとして、記憶部３４にフローエントリを格納するフローテーブルを持つ非特許文献１、２に記載のオープンフロースイッチを用いることもできる。
【００４０】
図４は、本発明の第１の実施形態の制御装置の構成を示す図である。図４を参照すると、通信管理部２１と、入出力処理部２２と、記憶部２４とを備えた構成が示されている。
【００４１】
入出力処理部２２は、上記した新規エントリの設定要求とその応答を含む、第２のスイッチ３０との制御メッセージの入出力処理をする。
【００４２】
記憶部２４は、第１、第２のスイッチによって構成されるネットワークトポロジ、計算済みの経路情報及び第２のスイッチが保持している経路制御用のエントリの内容を記憶している。なお、ネットワークトポロジは、種々のリーティングプロトコル等を用いて制御装置２０が自動収集することとしてもよいし、オペレータが設定するものとしてもよい。
【００４３】
通信管理部２１は、スイッチ制御部２１３と、誤学習抑制処理部２１２と、経路検査部２１１とを備える。通信管理部２１のスイッチ制御部２１３は、第２のスイッチ３０から新規エントリの設定要求を受けると、記憶部２４に格納されたネットワークトポロジを参照し、通信経路を計算する。そして、通信管理部２１は、前記計算した通信経路に沿ったパケット転送を実現するための新規エントリを生成する。
【００４４】
経路検査部２１１は、記憶部２４を参照して、前記計算した経路と同一の送信元と宛先を持つ経路が既に設定されているか否かを確認する。
【００４５】
前記計算した経路と同一の送信元と宛先を持つ経路が既に設定されている場合、誤学習抑止処理部２１２は、前記２以上の経路の合流箇所が第１のスイッチ４０であるか否か確認する。前記２以上の経路の合流箇所が第１のスイッチ４０である場合、誤学習抑止処理部２１２は、前記計算した通信経路に沿ったパケット転送を実現するための新規エントリのうち、前記経路の合流箇所の第１のスイッチ４０よりも上流側にある第２のスイッチ３０に設定するエントリとして、パケットヘッダを予め定めた内容に書き換える処理を実行させるエントリを追加する。また、誤学習抑止処理部２１２は、前記計算した経路上の第２のスイッチ３０のうち、前記書き換え後のパケットヘッダを受信することになる第２のスイッチ３０に設定するエントリのマッチ条件を前記書き換え後のパケットヘッダに適合するよう書き換える。
【００４６】
なお、前記計算した経路と同一の送信元と宛先を持つ経路が設定されていない場合や、前記計算した経路と同一の送信元と宛先を持つ経路が既に設定されているがその合流箇所が第１のスイッチ４０でない場合、上記エントリの操作は省略される。
【００４７】
本実施形態の通信管理部２１は、第２のスイッチ３０に対して、前記のように生成した新規エントリを送信する。
【００４８】
なお、上記のような制御装置２０として、非特許文献１、２に記載のオープンフロースイッチを制御するオープンフローコントローラに、上記した誤学習抑止処理部２１２と、経路検査部２１１に相当する機能を追加することにより実現することもできる。
【００４９】
また、図４に示した制御装置２０の各部（処理手段）は、制御装置２０を構成するコンピュータに、そのハードウェアを用いて、上記した各処理を実行させるコンピュータプログラムにより実現することもできる。
【００５０】
続いて、本実施形態の動作について図面を参照して詳細に説明する。以下の説明では、図１のスイッチＦＳ０、Ｓ１、Ｓ２の順に端末Ｈ０から端末Ｈ１に宛てたパケットを転送する経路が設定されているものとする。
【００５１】
上記経路は
Ｐａｔｈ１（Ｈ０，Ｈ１）＝｛ＦＳ０，Ｓ１，Ｓ２｝
のように表すことができる。ここで、Ｈ０は、送信元である端末Ｈ０のＩＰアドレスとＭＡＣアドレスとを示し、Ｈ１は、宛先である端末Ｈ１のＩＰアドレスとＭＡＣアドレスとを示すものとする。
【００５２】
そして、新たに端末Ｈ０と端末Ｈ１間で通信が発生して、第２のスイッチ（ＦＳ０）から新規エントリの設定要求が送信され、新規経路として次の経路が計算されたものとする。
Ｐａｔｈ２（Ｈ０，Ｈ１）＝｛ＦＳ０，ＦＳ３，Ｓ２｝
【００５３】
図５は、本発明の第１の実施形態の制御装置における経路検査と誤学習抑止処理の流れを表したフローチャートである。図５を参照すると、制御装置２０は、記憶部２４を参照して、新たに発生した通信が使用する経路Ｐａｔｈ２と、送信元と宛先の組み合わせが同一である経路を検索する（ステップＳ００１）。ここでは、Ｈ０，Ｈ１の組み合わせが同一であるＰａｔｈ１が検出されることになる（ステップＳ００２のＹＥＳ）。
【００５４】
次に制御装置２０は、Ｐａｔｈ１とＰａｔｈ２とを照合し、トラヒックの合流個所を検索する（ステップＳ００３）。Ｐａｔｈ１とＰａｔｈ２は、図１に示すように、第２のスイッチ（ＦＳ０）までは同じスイッチを経由し、第２のスイッチ（ＦＳ０）にて経路が分岐し、それぞれの経路は第１のスイッチ（Ｓ１）と第２のスイッチ（ＦＳ３）をそれぞれ通過し、第１のスイッチ（Ｓ２）で再び同じスイッチを経由している。このため、２つのトラヒックの合流個所は第１のスイッチ（Ｓ２）であると判定する（ステップＳ００４のＹＥＳ）。なお、第１のスイッチ（Ｓ２）であるか否かは、記憶部２４に格納されたネットワークトポロジを参照して判別することとしてもよいし、あるいは、その都度、合流箇所のスイッチにスイッチ種別を問い合わせることとしてもよい。
【００５５】
次に制御装置２０は、合流箇所のスイッチが第１のスイッチ（Ｓ２）であるので、第１のスイッチ（Ｓ２）よりも経路上の上流に位置する第２のスイッチ（ＦＳ０）に、新たに発生した通信に属するパケットが到着した場合、そのヘッダを書き換える動作を行うエントリを設定する。また、制御装置２０は、前記経路上のヘッダ書き換え後のパケットを受信することになる第２のスイッチ３０（書き換え実行スイッチが第２のスイッチＦＳ０ならば第２のスイッチＦＳ３）が存在する場合には、当該第２のスイッチ３０に設定するエントリのマッチ条件を書き換える。
【００５６】
例えば、制御装置２０は、図６に示すように、上流側の第２のスイッチ（ＦＳ０又はＦＳ３）に、端末Ｈ０から端末Ｈ１に宛てられたパケットのヘッダ中の送信元ＩＰアドレス（例えば、「ＩＰ＿Ｈ０」）を、仮のＩＰアドレス（例えば、「ＩＰ＿Ｈ０’」）に書き換える処理を行わせるエントリを追加する。また、このとき、端末Ｈ１から端末Ｈ０に宛てられたパケットのヘッダ中の宛先ＩＰアドレス（例えば、「ＩＰ＿Ｈ０’」）を、実のＩＰアドレス（例えば、「ＩＰ＿Ｈ０」）に書き戻す処理を行わせるエントリを追加するようにしてもよい。
【００５７】
この結果、合流箇所となる第１のスイッチ（Ｓ２）は、図６に示すように、端末Ｈ０から端末Ｈ１に宛てられたパケットのうち、Ｐａｔｈ１を利用するフロー（図６のフローＡ）と、Ｐａｔｈ２を利用するフロー（図６のフローＢ）とを区別して学習できるようになる。
【００５８】
そして、合流箇所となる第１のスイッチ（Ｓ２）は、端末Ｈ１から端末Ｈ０に宛てられたパケットを受信すると、上記経路を区別して学習した学習テーブルを参照して、宛先がＨ０であるパケットを第１のスイッチ（Ｓ１）の接続ポートへ転送し、宛先がＨ０’であるパケットを第２のスイッチ（ＦＳ３）の接続ポートへ転送する。
【００５９】
上記のように、合流箇所の上流側の第２のスイッチにおいて、ヘッダ書き換えを行うようにした結果、ルートフラップ現象の発生が抑止される。
【００６０】
なお、２つのトラヒックの合流個所は第１のスイッチ（Ｓ２）でないと判定した場合（ステップＳ００４のＮＯ）、図１０を用いて説明したのと同じ状態になるため、誤学習抑止処理は不要となる。
【００６１】
以上のように、本実施形態によれば、ルートフラップの発生を抑止することができ、ネットワークが不安定になることを防止することができる。
【００６２】
以上、本発明の実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、上記した実施形態で用いたネットワーク構成や、第１、第２のスイッチの数はあくまで一例であり、その数に制約は無い。
【００６３】
また例えば、図８に示すように、ネットワークの端部に、端末Ｈ１と接続する第２のスイッチ（ＦＳ４）を配置した構成も好ましく採用できる。このようにすれば、第２のスイッチ（ＦＳ４）に、上記ステップＳ００５で書き換えたヘッダを復元させてから、端末Ｈ１に転送することができる（但し、フローＡとフローＢとを識別できるようなマッチ条件を設定する。）。また、端末Ｈ１から端末Ｈ０に対して送信されたパケットも同様に、第２のスイッチ（ＦＳ４）で変換させることで、第１のスイッチ（Ｓ２）に、適切な転送先を転送させることが可能となる。
【００６４】
また上記した実施形態では、ＩＰアドレスを書き換える例を挙げて説明したが、ＭＡＣアドレス、または、ＭＡＣアドレスとＩＰアドレスの双方を書き換えるようにしてもよいことはもちろんである。
【００６５】
また上記した実施形態では、新たに通信が発生したことを契機として経路の検査と誤学習抑止処理を行うものとして説明したが、新規通信の発生時には、経路の検査と誤学習抑止処理を行わず、一定時間間隔等、任意のタイミングで、既存経路同士を照合して、経路の検査と誤学習抑止処理を行うようにしてもよい。
【００６６】
最後に、本発明の好ましい形態を要約する。
［第１の形態］
（上記第１の視点による制御装置参照）
［第２の形態］
前記制御装置において、
前記所定の誤学習抑止処理として、前記経路の合流箇所の第１のスイッチよりも上流側の第２のスイッチに、前記経路のうちの一方の経路を流れるパケットの送信元アドレスの書き換えを実行させることが好ましい。
［第３の形態］
前記制御装置において、
前記所定の誤学習抑止処理として、前記経路のうちの一方の経路を流れるパケットのＭＡＣアドレス、または、ＭＡＣアドレスとＩＰアドレスの双方を書き換えることが好ましい。
［第４の形態］
（上記第２の視点による通信システム参照）
［第５の形態］
（上記第３の視点による通信方法参照）
［第６の形態］
前記通信方法において、
前記所定の誤学習抑止処理として、前記経路の合流箇所の第１のスイッチよりも上流側の第２のスイッチに、前記経路のうちの一方の経路を流れるパケットの送信元アドレスの書き換えを実行させることが好ましい。
［第７の形態］
前記通信方法において、
前記所定の誤学習抑止処理として、ＭＡＣアドレス、または、ＭＡＣアドレスとＩＰアドレスの双方を書き換えることが好ましい。
［第８の形態］
（上記第４の視点によるプログラム参照）
［第９の形態］
受信したパケットの送信元アドレスに基づいてパケットの出力先を学習し、該学習結果に基づいて次に受信したパケットの送信先を決定する第１のスイッチと、予め設定された経路に従いパケットを出力する第２のスイッチと、の双方が配置されたネットワークにおいて、
前記第２のスイッチを制御する制御装置に搭載されたコンピュータに、
前記ネットワークに接続する任意の送信元からの通信が複数の経路を使用するか否かを判定する処理と、
前記複数の経路の合流箇所が、前記第１のスイッチであるか否かを判定する処理と、
前記複数の経路の合流箇所が、前記第１のスイッチである場合、所定の誤学習抑止処理を実行する処理と、を実行させるプログラムを格納した記録媒体。
なお、上記の特許文献および非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【００６７】
Ｈ０、Ｈ１  端末
ＦＳ０、ＦＳ３、ＦＳ４  第２のスイッチ
Ｓ１、Ｓ２  第１のスイッチ
１０  端末
１１  アプリケーション処理部
１２  ＴＣＰ／ＩＰ処理部
１３  イーサネット処理部
２０  制御装置
２１  通信管理部
２２  入出力処理部
２４  記憶部
３０  第２のスイッチ
３１  通信管理部
３２  転送処理部
３３  入出力インタフェース
３４  記憶部
４０  第１のスイッチ  
２１１  経路検査部  
２１２  誤学習抑止処理部
２１３  スイッチ制御部
【図１】
2015525984.tif 000003
【図２】
2015525984.tif 000004
【図３】
2015525984.tif 000005
【図４】
2015525984.tif 000006
【図５】
2015525984.tif 000007
【図６】
2015525984.tif 000008
【図７】
2015525984.tif 000009
【図８】
2015525984.tif 000010
【図９】
2015525984.tif 000011
【図１０】
2015525984.tif 000012
【図１１】
2015525984.tif 000013
【国際調査報告】
2015525984.tif 000014