(57)【要約】【課題】イーサネットにおけるトポロジ変更時にユニキャストフラッディングを抑制すること。【解決手段】制御装置は、複数のスイッチ装置間の接続状態を表す情報を保持するトポロジデータベースと、前記情報に基づいて、前記複数のスイッチ装置間における第１のパケット転送経路を表す第１のトポロジ情報、および、第２のパケット転送経路を表す第２のトポロジ情報を計算するツリー計算部と、前記複数のスイッチ装置間の転送経路が前記第１の転送経路から前記第２の転送経路に変更された場合に、前記複数のスイッチ装置のポートのうちのＭＡＣ（Media Access Control）アドレスの削除が必要なポートを、前記第１および第２のトポロジ情報に基づいて特定するツリー検証部と、を備えている。【選択図】図１
2016178353.tif 000002
【特許請求の範囲】
【請求項１】
複数のスイッチ装置間の接続状態を表す情報を保持するトポロジデータベースと、
前記情報に基づいて、前記複数のスイッチ装置間における第１のパケット転送経路を表す第１のトポロジ情報、および、第２のパケット転送経路を表す第２のトポロジ情報を計算するツリー計算部と、
前記複数のスイッチ装置間の転送経路が前記第１の転送経路から前記第２の転送経路に変更された場合に、前記複数のスイッチ装置のポートのうちのＭＡＣ（Media Access Control）アドレスの削除が必要なポートを、前記第１および第２のトポロジ情報に基づいて特定するツリー検証部と、を備える、
ことを特徴とする制御装置。
【請求項２】
前記第１のトポロジ情報は、前記第１のパケット転送経路において前記複数のスイッチ装置間を接続する各リンクがパケット転送に使用されるか否かを示す情報を含み、
前記第２のトポロジ情報は、前記第２のパケット転送経路において前記複数のスイッチ装置間を接続する各リンクがパケット転送に使用されるか否かを示す情報を含む、
請求項１に記載の制御装置。
【請求項３】
前記ツリー検証部は、前記第１の転送経路においてパケット転送に使用されるリンクと、前記第２の転送経路においてパケット転送に使用されるリンクとの和集合を求め、前記求めた和集合に含まれるリンクのうちの、前記複数のスイッチを接続するループを構成するリンクを抽出し、抽出したリンクに基づいて前記ＭＡＣアドレスの削除が必要なポートを特定する、
請求項２に記載の制御装置。
【請求項４】
前記ツリー検証部は、前記抽出したリンクのうちの、前記第１のパケット転送経路においてパケット転送に使用され、かつ、前記第２のパケット転送経路においてパケット転送に使用されないリンクを選択し、前記選択したリンクの両端に接続されたポートを前記ＭＡＣアドレスの削除が必要なポートとする、
請求項３に記載の制御装置。
【請求項５】
前記ツリー検証部は、前記抽出したリンクのうち、前記第１のパケット転送経路においてパケット転送に使用される第１のリンクと、前記第２のパケット転送経路においてパケット転送に使用されない第２のリンクの双方に接続されたスイッチ装置を抽出し、前記抽出したスイッチ装置を出発して前記第１のリンクから順に前記ループを構成するリンクを辿って前記抽出したスイッチに戻るまでの間に通過したリンクの出口側に接続されたポートであって、前記抽出したスイッチに設けられたポート以外のポートを、前記ＭＡＣアドレスの削除が必要なポートとする、
請求項３または４に記載の制御装置。
【請求項６】
前記ＭＡＣアドレスの削除が必要なポートを有するスイッチ装置に対して、前記ＭＡＣアドレスの削除を指示する設定実行部を備える、
請求項１ないし５のいずれか１項に記載の制御装置。
【請求項７】
複数のスイッチ装置と、
前記複数のスイッチ装置を制御する制御装置と、を備え、
前記制御装置は、前記複数のスイッチ装置間の接続状態を表す情報を保持するトポロジデータベースと、
前記情報に基づいて、前記複数のスイッチ装置間における第１のパケット転送経路を表す第１のトポロジ情報、および、第２のパケット転送経路を表す第２のトポロジ情報を計算するツリー計算部と、
前記複数のスイッチ装置間の転送経路が前記第１の転送経路から前記第２の転送経路に変更された場合に、前記複数のスイッチ装置のポートのうちのＭＡＣ（Media Access Control）アドレスの削除が必要なポートを、前記第１および第２のトポロジ情報に基づいて特定するツリー検証部と、を有する、
ことを特徴とする通信システム。
【請求項８】
制御装置が、複数のスイッチ装置間の接続状態を表す情報をトポロジデータベースに保持するステップと、
前記情報に基づいて、前記複数のスイッチ装置間における第１のパケット転送経路を表す第１のトポロジ情報、および、第２のパケット転送経路を表す第２のトポロジ情報を計算するステップと、
前記複数のスイッチ装置間の転送経路が前記第１の転送経路から前記第２の転送経路に変更された場合に、前記複数のスイッチ装置のポートのうちのＭＡＣ（Media Access Control）アドレスの削除が必要なポートを、前記第１および第２のトポロジ情報に基づいて特定するステップと、を含む、
ことを特徴とする制御方法。
【請求項９】
前記第１のトポロジ情報は、前記第１のパケット転送経路において前記複数のスイッチ装置間を接続する各リンクがパケット転送に使用されるか否かを示す情報を含み、
前記第２のトポロジ情報は、前記第２のパケット転送経路において前記複数のスイッチ装置間を接続する各リンクがパケット転送に使用されるか否かを示す情報を含む、
請求項８に記載の制御方法。
【請求項１０】
複数のスイッチ装置間の接続状態を表す情報をトポロジデータベースに保持する処理と、
前記情報に基づいて、前記複数のスイッチ装置間における第１のパケット転送経路を表す第１のトポロジ情報、および、第２のパケット転送経路を表す第２のトポロジ情報を計算する処理と、
前記複数のスイッチ装置間の転送経路が前記第１の転送経路から前記第２の転送経路に変更された場合に、前記複数のスイッチ装置のポートのうちのＭＡＣ（Media Access Control）アドレスの削除が必要なポートを、前記第１および第２のトポロジ情報に基づいて特定する処理と、をコンピュータに実行させる、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、通信システム、制御方法、および、プログラムに関し、特に、イーサネット（登録商標）におけるスイッチ装置によるパケット転送を制御する制御装置、制御方法およびプログラム、ならびに、かかる制御装置を備えた通信システムに関する。
【背景技術】
【０００２】
イーサネットにおける一般的なスイッチ装置のパケット転送動作は、以下２つのパターンから成る。
【０００３】
パターン１：転送するパケットの宛先ＭＡＣ（Media Access Control）アドレスを自スイッチ装置内で学習している場合、学習しているポートにのみパケットを転送する。
パターン２：宛先ＭＡＣアドレスを自スイッチ装置内で学習していない場合、入力されたポート以外のすべてのポートにパケットを転送する（ユニキャストフラッディング）。
【０００４】
上記のような転送を行うスイッチ装置を複数台用いてトポロジを構成する際、障害時における可用性向上を目的として経路の冗長化が行われる場合がある。具体的には、スイッチ装置間に複数の配線を設け、または、スイッチ装置間の経路が複数存在する状態となるようにトポロジを構成することがある。このように構成されたトポロジには、図３に例示するように、必然的にループ構造が生じる。
【０００５】
ループ構造が存在する場合、トポロジ中を流れるパケットが同一の経路を繰り返して通過することになり、ブロードキャストストームと呼ばれる転送障害状態に発展することが知られている。
【０００６】
このような転送障害状態を防止するための技術として、非特許文献１に記載された、ＳＴＰ（Spanning-Tree Protocol）、および、ＲＳＴＰ（Rapid Spanning Tree Protocol）が知られている。これらのプロトコルによってスイッチ装置は自律的に動作し、トポロジ構成に依らず、ループが発生しないように自身のポート状態やＭＡＣアドレス学習状態を制御することが可能となる。図５は、ＲＳＴＰによってポート状態が制御され、破線部の両端ポートがDiscarding状態となることで論理的な転送面からループ構成を排除した例を示す。
【０００７】
また、関連技術として、上記のパターン２の動作が発生することで、ネットワークのパフォーマンスが影響を受け、通信が不安定となることが非特許文献２（同文献の「問題の定義」参照）に記載されている。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】IEEE Computer Society, "IEEE Std 802.1DTM - 2004, IEEE Standard for Local and Metropolitan Area Networks, Media Access Control (MAC) Bridges," Chapter 17 Rapid Spanning Tree Protocol (RSTP), Section 17.11 Updating learned station location information (Figure 17-10 - Address flushing - worked example).
【非特許文献２】シスコシステムズ（Sisco Systems）、「スイッチドキャンパスネットワークにおけるユニキャストフラッディング」、２０１０年８月１０日、<URL: http://www.cisco.com/cisco/web/support/JP/102/1020/1020418_143-j.html>
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上記非特許文献の全開示内容は、本書に引用をもって繰り込み記載されているものとする。以下の分析は、本発明者によってなされたものである。
【００１０】
ＳＴＰ（Spanning Tree Protocol）およびＲＳＴＰ（Rapid Spanning Tree Protocol）は、スイッチ装置が自律的に動作するという制約を満たしつつ動作するものである。したがって、上記の論理的な転送面を構成する際に、誤転送防止の目的で行われるＭＡＣアドレス学習状態の制御において、ポートの学習状態を一部不適切にクリアしてしまう動作が含まれる。このような不適切な動作は、ＲＳＴＰの動作を記載する非特許文献１において確認することができる。
【００１１】
非特許文献１の説明では、トポロジの変化（同文献ではthe active topology reconfigurationなどと表現されている）によりＭＡＣアドレス学習状態の削除が必要なスイッチ装置のポートを（ａ）「Address learnt on these Ports need to be flushed」と表現している。一方、プロトコル動作により、ＭＡＣアドレス学習状態の削除が行われるスイッチ装置のポートを（ｂ）「Address learnt on these Ports have been flushed」と表現している。
【００１２】
非特許文献１のFigure 17-10を参照すると、集合（ａ）は集合（ｂ）の部分集合となることが分かる。すなわち、ＳＴＰまたはＲＳＴＰの動作によると、プロトコル動作によって本来必要ではないスイッチ装置のポート、すなわち、集合（ａ）に含まれず、かつ、集合（ｂ）に含まれるようなポートに対しても、ＭＡＣアドレス学習状態のクリアが行われることが分かる。
【００１３】
上述の通り、ＳＴＰまたはＲＳＴＰによると、ＭＡＣアドレス学習状態の制御において、どのようなトポロジを構成してもループが発生しないという効果がもたらされる。一方、ＳＴＰまたはＲＳＴＰによると、ポートにて学習されたＭＡＣアドレスについて、本来削除が必要ではないものについても削除が行われるため、上記のパターン２の動作（ユニキャストフラッディング）が発生し得る。すなわち、ＳＴＰまたはＲＳＴＰによると、非特許文献２において「問題の定義」として記載されているように、ユニキャストフラッディングによりネットワークのパフォーマンスが低下し、通信が不安定になるおそれがある。
【００１４】
さらに、非特許文献２において指摘されていない問題として、次の問題がある。
【００１５】
図５は、トポロジ変更が行われる前のＳＴＰによるトポロジの状態を表す。一方、図７は、トポロジ変更が行われた後のＳＴＰによるトポロジの状態を表す。図９は、図５から図７へとトポロジの変更が行われた場合に、非特許文献１に記載されたＲＳＴＰに従って、ＭＡＣアドレスの削除が行われるポートを以下のＡ、Ｂ、Ｃの３種類に分類した結果を示す。
【００１６】
Ａ）ポート１、２、３、４はＭＡＣアドレスの削除が必要であり、ＲＳＴＰにより適切にＭＡＣアドレスが削除されるポートを表す。
Ｂ）ポート１０、１１、１２はＭＡＣアドレスの削除が不要であるものの、ＲＳＴＰによりＭＡＣアドレスが削除され、かつ、通信に影響を及ぼす可能性のあるポートを表す。
Ｃ）ポート２０、２１、２２、２３、２４、２５、２６はＭＡＣアドレスの削除が不要であるものの、ＲＳＴＰによりＭＡＣアドレスが削除され、かつ、通信に影響を及ぼさないポートを表す。
【００１７】
ＭＡＣアドレスの削除は誤転送防止の目的で行われるものであるため、上記Ａ）に分類したポートのＭＡＣアドレスを削除することにより、この目的は達成される。ＲＳＴＰによると、さらに、上記Ｂ）およびＣ）に分類したポートについても、ＭＡＣアドレスが削除される。ここで、Ｃ）に分類されたポートは通信には影響を与えないため、ＭＡＣアドレスが削除されても特に問題ない。一方、Ｂ）に分類されたポートは誤転送の可能性がないＭＡＣアドレス学習状態をクリアしてしまう結果となり、スイッチ装置が上記パターン２の動作（ユニキャストフラッディング）へと遷移し、ＭＡＣアドレスを再学習するまでの間、ネットワークのパフォーマンスを低下させるおそれがある。
【００１８】
すなわち、ＲＳＴＰの動作によると、上記Ｂ）に分類されたポートに対する不要なＭＡＣアドレス削除によりユニキャストフラッディングが発生し、当該ポートがＭＡＣアドレスを再学習するまでの間、ネットワークのパフォーマンスが低下するおそれがある。
【００１９】
そこで、イーサネットにおけるトポロジ変更時にユニキャストフラッディングを抑制することが課題となる。本発明の目的は、かかる課題解決に寄与する制御装置、通信システム、制御方法、および、プログラムを提供することにある。
【課題を解決するための手段】
【００２０】
本発明の第１の態様に係る制御装置は、複数のスイッチ装置間の接続状態を表す情報を保持するトポロジデータベースと、前記情報に基づいて、前記複数のスイッチ装置間における第１のパケット転送経路を表す第１のトポロジ情報、および、第２のパケット転送経路を表す第２のトポロジ情報を計算するツリー計算部と、前記複数のスイッチ装置間の転送経路が前記第１の転送経路から前記第２の転送経路に変更された場合に、前記複数のスイッチ装置のポートのうちのＭＡＣ（Media Access Control）アドレスの削除が必要なポートを、前記第１および第２のトポロジ情報に基づいて特定するツリー検証部と、を備えている。
【００２１】
本発明の第２の態様に係る通信システムは、複数のスイッチ装置と、前記複数のスイッチ装置を制御する制御装置と、を備えている。前記制御装置は、前記複数のスイッチ装置間の接続状態を表す情報を保持するトポロジデータベースと、前記情報に基づいて、前記複数のスイッチ装置間における第１のパケット転送経路を表す第１のトポロジ情報、および、第２のパケット転送経路を表す第２のトポロジ情報を計算するツリー計算部と、前記複数のスイッチ装置間の転送経路が前記第１の転送経路から前記第２の転送経路に変更された場合に、前記複数のスイッチ装置のポートのうちのＭＡＣ（Media Access Control）アドレスの削除が必要なポートを、前記第１および第２のトポロジ情報に基づいて特定するツリー検証部と、を有する。
【００２２】
本発明の第３の態様に係る制御方法は、制御装置が、複数のスイッチ装置間の接続状態を表す情報をトポロジデータベースに保持するステップと、前記情報に基づいて、前記複数のスイッチ装置間における第１のパケット転送経路を表す第１のトポロジ情報、および、第２のパケット転送経路を表す第２のトポロジ情報を計算するステップと、前記複数のスイッチ装置間の転送経路が前記第１の転送経路から前記第２の転送経路に変更された場合に、前記複数のスイッチ装置のポートのうちのＭＡＣ（Media Access Control）アドレスの削除が必要なポートを、前記第１および第２のトポロジ情報に基づいて特定するステップと、を含む。
【００２３】
本発明の第４の態様に係るプログラムは、複数のスイッチ装置間の接続状態を表す情報をトポロジデータベースに保持する処理と、前記情報に基づいて、前記複数のスイッチ装置間における第１のパケット転送経路を表す第１のトポロジ情報、および、第２のパケット転送経路を表す第２のトポロジ情報を計算する処理と、前記複数のスイッチ装置間の転送経路が前記第１の転送経路から前記第２の転送経路に変更された場合に、前記複数のスイッチ装置のポートのうちのＭＡＣ（Media Access Control）アドレスの削除が必要なポートを、前記第１および第２のトポロジ情報に基づいて特定する処理と、をコンピュータに実行させる。なお、プログラムは、非一時的なコンピュータ可読記録媒体（non-transitory computer-readable storage medium）に記録されたプログラム製品として提供することもできる。
【発明の効果】
【００２４】
本発明に係る制御装置、通信システム、制御方法、および、プログラムによると、イーサネットにおけるトポロジ変更時にユニキャストフラッディングを抑制することが可能となる。
【図面の簡単な説明】
【００２５】
【図１】一実施形態に係る制御装置の構成を例示するブロック図である。
【図２】第１の実施形態に係る制御装置を備えた通信システムの構成を例示するブロック図である。
【図３】複数のスイッチ間の接続状態を例示する図である。
【図４】図３のスイッチ装置間の接続状態を表す表である。
【図５】スイッチ装置間におけるパケット転送経路（変更前）を例示する図である。
【図６】図５のパケット転送経路において各リンクがパケット転送に使用されるか否かを示す表（トポロジ情報）である。
【図７】スイッチ装置間におけるパケット転送経路（変更後）を例示する図である。
【図８】図７のパケット転送経路において各リンクがパケット転送に使用されるか否かを示す表（トポロジ情報）である。
【図９】図５から図７へとトポロジの変更が行われた場合に、非特許文献１に記載されたＲＳＴＰに従って、ＭＡＣアドレスの削除が行われるポートを分類した結果を示す図である。
【図１０】図５のパケット転送経路において、ポート故障が発生した場合を例示する図である。
【図１１】図１０のようにポート故障が発生した場合のトポロジ情報を示す表である。
【図１２】図９においてＭＡＣアドレスを削除すべきポートを示す表である。
【図１３】変更前のパケット転送経路（図６）においてパケット転送に使用されるリンクと、変更後のパケット転送経路（図８）においてパケット転送に使用されるリンクの和集合を求めた表である。
【図１４】図１３の「転送（ＯＲ演算後）」の状態に基づくパケット転送経路を示す図である。
【図１５】図１４においてＭＡＣアドレスを削除すべきポートを図９と図１２を用いて整理した表である。
【図１６】図１４の転送経路においてループを構成するリンクを示す表である。
【発明を実施するための形態】
【００２６】
はじめに、一実施形態の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
【００２７】
図１は、一実施形態に係る制御装置１０００の構成を例示するブロック図である。図２は、制御装置１０００と複数のスイッチ装置１１１、２２２、３３３、４４４、５５５、６６６、７７７（以下、１１１〜７７７と略記する。）を備えた通信システムの構成を例示するブロック図である。図３は、複数のスイッチ間の接続状態を例示する図である。図４は、図３の接続状態を表す。図５および図７は、スイッチ装置間における変更前後のパケット転送経路を例示する図である。図６および図８は、それぞれ、図５および図７のパケット転送経路において各リンクがパケット転送に使用されるか否かを示す情報（トポロジ情報）である。
【００２８】
図１を参照すると、制御装置１０００は、複数のスイッチ装置（例えば、図２のスイッチ装置１１１〜７７７）間の接続状態を表す情報を保持するトポロジデータベース１１００と、前記情報に基づいて、複数のスイッチ装置間における第１のパケット転送経路（例えば、図５の実線）を表す第１のトポロジ情報（例えば、図６）、および、第２のパケット転送経路（例えば、図７の実線）を表す第２のトポロジ情報（例えば、図８）を計算するツリー計算部１２００と、前記複数のスイッチ装置（１１１〜７７７）間の転送経路が前記第１の転送経路（図５）から前記第２の転送経路（図７）に変更された場合に、前記複数のスイッチ装置のポートのうちのＭＡＣ（Media Access Control）アドレスの削除が必要なポートを、前記第１および第２のトポロジ情報（図６、図８）に基づいて特定するツリー検証部１３００と、を備えている。
【００２９】
かかる制御装置１０００によると、ツリー検証部１３００によって、ＭＡＣアドレスの削除が必要なポートを特定し、ＭＡＣアドレスの削除処理を行うことが可能となる。すなわち、ツリー検証部１３００はスイッチ装置間の接続状態であるトポロジの状態について、トポロジ変更前と変更後の状態を比較することで、上述のＢ）に分類されるポートを検出する。これにより、ＭＡＣアドレスの削除が必要なポートを特定し、特定したポートに対してのみＭＡＣアドレスの削除処理を行うことが可能となる。したがって、制御装置１０００によると、イーサネットにおけるトポロジ変更時に、不要なユニキャストフラッディングの発生を抑制することが可能となる。
【００３０】
＜実施形態１＞
次に、第１の実施形態に係る制御装置について、図面を参照して詳細に説明する。
［構成］
【００３１】
図３は、本実施形態の制御装置によって制御される複数のスイッチ間の接続状態を例示する図である。図３の構成例では、７台のスイッチ装置１１１、２２２、３３３、４４４、５５５、６６６、７７７（以下、「１１１〜７７７」と略記する。）が存在している。ポート１〜２２は、各スイッチ装置に存在するポートである。
【００３２】
本実施形態では、一例として、７台のスイッチ装置１１１〜７７７は、図３に示すようにこれらポート間を配線されたトポロジ構成を有するものとする。ただし、図３のトポロジ構成は例示にすぎず、本発明の適用例は図示の態様に限定されない。
【００３３】
図２は、本実施形態の制御装置１０００を備えた通信システムの構成を例示するブロック図である。図２を参照すると、図３の７台のスイッチ装置１１１〜７７７は、制御装置１０００に接続されている。
【００３４】
本実施形態では、制御装置１０００は各スイッチ装置とOpenFlowプロトコルにより接続されているものとする。ただし、本発明はOpenFlowプロトコルに限定されない。なお、制御装置１０００は、サーバ上で動作するソフトウェアとしても実現することができる。
【００３５】
図２を参照すると、制御装置１０００は、トポロジデータベース（ＤＢ：Database）１１００、ツリー計算部１２００、ツリー検証部１３００、および、設定実行部１４００を備えている。
【００３６】
各部の機能は、以下のとおりである。
【００３７】
トポロジＤＢ１１００は、制御装置１０００に対して接続している７台のスイッチ装置１１１〜７７７と、スイッチ装置１１１〜７７７間の接続状態として、どのスイッチ装置のどのポート同士が接続されているかを保持している。トポロジＤＢ１１００は、ネットワークトポロジを図として描画するような製品には一般的に存在するデータベースである。なお、ポート同士の接続状態は、ＬＬＤＰ（Link Layer Discovery Protocol）などの公知のプロトコルを用いて検知することが可能である。ただし、本発明における接続状態の検知方法は、ＬＬＤＰに限定されない。
【００３８】
ツリー計算部１２００は、トポロジＤＢ１１００に存在しているスイッチ装置１１１〜７７７とスイッチ装置１１１〜７７７間の接続状態情報を基に、ループをしないツリー構造を計算し、スイッチ装置１１１〜７７７間の各リンクを、転送を行うリンクと転送を行わないリンクに分類する。ツリー計算部１２００は、一例として、最小全域木などの公知のロジックを用いてツリー構造を計算してもよい。
【００３９】
ツリー検証部１３００は、ツリー計算部１２００により計算された結果を用いて、２つのトポロジにおいてＭＡＣアドレスの削除が必要なポートを特定する。
【００４０】
設定実行部１４００は、制御装置１０００に対して接続している７台のスイッチ装置１１１〜７７７に対し、ツリー検証部１３００によって識別されたＭＡＣアドレスの削除が必要なポートを持つスイッチ装置１１１〜７７７に対して、種々の設定操作を行う。本実施形態では、設定実行部１４００はOpenFlowとして知られているプロトコルによって、スイッチ装置１１１〜７７７に対する指示が可能である。
【００４１】
［動作］
まず、事前状態に遷移するまでの動作の流れを示す。
【００４２】
Ｓ１．OpenFlowプロトコルによって、制御装置１０００に対して７台のスイッチ装置１１１〜７７７が接続される。
【００４３】
Ｓ２．トポロジＤＢ１１００は、OpenFlowプロトコルのPacketOutメッセージによってＬＬＤＰパケットをスイッチ装置１１１〜７７７のすべてのポートへ出力する。
【００４４】
Ｓ３．ＬＬＤＰパケットの入力を検出した各スイッチ装置は、OpenFlowプロトコルのPacketInメッセージによってＬＬＤＰパケットを制御装置１０００に送信する。
【００４５】
Ｓ４．ＬＬＤＰを含むPacketInメッセージを受信したトポロジＤＢ１１００は、スイッチ装置間の接続状態を認識し、その結果を保持する。本実施形態では、このデータは図４に示す状態となり、図３に示す接続状態を表すことが可能となる。
【００４６】
Ｓ５．ツリー計算部１２００は、トポロジＤＢ１１００が保持する図４のデータを基に、最小全域木などのロジックを用いて、パケット転送経路としてループをしないツリー構造を計算する。また、ツリー計算部１２００は、ツリーを構成するスイッチ装置間の接続状態については、パケットの転送を行うリンク（ＲＳＴＰにおけるForwarding状態に相当）とし、それ以外はパケット転送を行わないリンク（ＲＳＴＰにおけるDiscarding状態に相当）とする。ここでは、一例として、ツリー計算部１２００による計算結果が図６に示す状態となったものとする。
【００４７】
Ｓ６．設定実行部１４００は、図６のデータから、転送することになったスイッチ装置間接続状態の両端ポート（例えば、図６のＮｏ．１であれば、スイッチ装置１１１のポート１と、スイッチ装置２２２のポート４）に対し、転送を許可する設定をOpenFlowプロトコルのFlowModメッセージによって行う。同様に、設定実行部１４００は、転送しないことになったスイッチ装置間接続状態の両端ポート（例えば、図６のＮｏ．４であれば、スイッチ装置２２２のポート５と、スイッチ装置３３３のポート８）に対し、転送を許可しない設定をOpenFlowプロトコルのFlowModメッセージによって行う。
【００４８】
Ｓ７．結果として、スイッチ装置１１１〜７７７における各ポートの転送可否状態は図５に示す状態となる。図５において、実線は転送が許可されているポート同士の接続を表し、破線は転送が許可されていないポート同士の接続を表す。
【００４９】
以上で、事前状態への遷移が完了する。
【００５０】
次に、トポロジの変更が発生し、ＭＡＣアドレスの削除が必要とされるポート（図９に示す１〜４のポート）を特定する動作の流れを説明する。
【００５１】
Ｓ８．ここでは、図１０に示す、スイッチ装置５５５のポート１７と、スイッチ装置７７７のポート２１間において、いずれかのポート故障が発生した場合を考える。この場合、スイッチ装置５５５は自身のポート１７を対象とし、一方、スイッチ装置７７７は自身のポート２１を対象とし、状態が障害状態へ変更したことを、OpenFlowのPortStatusメッセージにより制御装置１０００へ通知する。
【００５２】
Ｓ９．制御装置１０００に含まれるトポロジＤＢ１１００は、図４に示した自身のデータを更新し、スイッチ装置５５５のポート１７と、スイッチ装置７７７のポート２１に関する接続状態を削除する。この結果、トポロジＤＢ１１００の保有するデータからＮｏ．１０が削除され、図１１に示す状態となる。
【００５３】
Ｓ１０．ツリー計算部１２００は、トポロジＤＢ１１００が保持する図１１のデータを基に、最小全域木などのロジックを用いて、ループをしないツリー構造を再計算する。また、ツリー計算部１２００は、ツリーを構成するスイッチ装置間の接続状態についてはパケットの転送を行うリンク（ＲＳＴＰにおけるForwarding状態に相当）とし、それ以外はパケット転送を行わないリンク（ＲＳＴＰにおけるDiscarding状態に相当）とする。ここでは、一例として、ツリー計算部１２００による計算結果は、図８に示すように、スイッチ装置５５５のポート１７と、スイッチ装置７７７のポート２１は転送に使用しない状態となり、スイッチ装置６６６のポート２０と、スイッチ装置７７７のポート２２を転送に使用する状態になったものとする。
【００５４】
Ｓ１１．ツリー検証部１３００は、ツリー計算部１２００が計算を行う前の状態である図６と計算後の図８のデータを用いて、（後述する方法により）図９に示す１〜４のポートを特定して、図１２に示すデータを作成する。
【００５５】
Ｓ１２．設定実行部１４００は、OpenFlowのFlowModメッセージを用いて図８において状態が変化したＮｏ．１０とＮｏ．１１のスイッチ装置のポートに対し、「転送する」／「転送しない」の設定を行う。さらに、設定実行部１４００は、図１２として作成されたデータを基にＭＡＣアドレスを削除する設定を行う。
【００５６】
以下では、上記手順Ｓ１１においてツリー検証部１３００が図１２を作成するための具体的な動作を説明する。
【００５７】
Ａ１．ツリー検証部１３００は、図６と図８のデータを合わせ、「転送」のデータ領域に対し、「する」をTrue、「しない」をFalseのブール値として扱い、ＯＲ演算を行うことで、Ｎｏ．１０とＮｏ．１１の行が「する」となった図１３を求める。図１３の「転送（ＯＲ演算後）」の列に基づいて、スイッチ装置上への設定が実際に行われることはない。しかし、図１３の「転送（ＯＲ演算後）」の列に基づいて、仮に「転送する」／「転送しない」の設定を行った場合には、図１４に示す状態となる。図９と図１２を用いて、図１４においてＭＡＣアドレスを削除すべきポートを整理すると、図１５となる。
【００５８】
Ａ２．ツリー検証部１３００は、図１３に示したデータにおいて接続状態として「転送（ＯＲ演算後）」の領域を用いて、例えばフロイドの循環検出法などの一般的なロジックによりループ構造になっている箇所が無いかを確認する。図１３のケースでは、ツリー検証部１３００はループ構造になっている箇所として図１６に示すリンクを検出する。
【００５９】
Ａ３．ツリー検証部１３００は、図１６を用いて、次の手順により図１５のポートを特定する。
【００６０】
手順Ｂ１．ツリー検証部１３００は図１６の接続状態データのうち、トポロジ変更前は「転送」のデータ領域が「する」であり、トポロジ変更後は「転送」のデータ領域が「しない」へと変わったリンクに接続されたスイッチ装置とポートを特定する。図１６においては、Ｎｏ．１０のリンクが該当し、この手順により、ツリー検証部１３００は図１５のＮｏ．２のポートとＮｏ．４のポートを特定する。
【００６１】
手順Ｂ２．ツリー検証部１３００は図１６の接続状態データのうち、トポロジ変更前後で同一のスイッチ装置において「転送」のデータ領域が「しない」から「する」へと変わったポートと、「する」から「しない」に変わったポート両方を持つスイッチ装置を特定する。図１６の場合、ツリー検証部１３００はＮｏ．１０とＮｏ．１１のリンクからスイッチ装置７７７を特定する。
【００６２】
手順Ｂ３．ツリー検証部１３００は手順２．において特定したスイッチ装置７７７について、図１６で「転送」のデータ領域が「する」から「しない」へ変更されたリンクを特定する。図１６の場合、ツリー検証部１３００はＮｏ．１０のリンクを特定する。
【００６３】
手順Ｂ４．ツリー検証部１３００は手順３．で特定したＮｏ．１０のリンクから開始して、最終的に開始点であるスイッチ装置７７７になるまでループを構成するリンクを辿り、接続先が開始点であるスイッチ装置７７７でなければ、接続先の（リンクの出口側の）ポートをＭＡＣアドレス削除対象のポートとする。図１６の場合、ツリー検証部１３００はＮｏ．１０のリンクを辿り、スイッチ装置５５５のポート１７を特定する。これは図１５のＮｏ．２のポートに相当するが、このポートは手順Ｂ１においてすでに特定済みである。
【００６４】
手順Ｂ５．次に、ツリー検証部１３００は図１６のＮｏ．６のリンクから、スイッチ装置５５５のポート１５と接続されたスイッチ装置３３３のポート９を特定する。このポートは、図１５のＮｏ．１のポートである。
【００６５】
手順Ｂ６．次に、ツリー検証部１３００は図１６のＮｏ．７のリンクから、スイッチ装置３３３のポート１０と接続されたスイッチ装置６６６のポート１８を特定する。このポートは、図１５のＮｏ．３のポートである
【００６６】
手順Ｂ７．次に、ツリー検証部１３００は図１６のＮｏ．１１のリンクから、スイッチ装置７７７のポート２２を特定する。ただし、ポート２２は開始点であるスイッチ装置７７７のポートであるため、ツリー検証部１３００はＭＡＣアドレス削除対象のポートとしない。開始点のスイッチ装置７７７にたどり着いたため、以上で削除対象ＭＡＣアドレスの特定が完了する。
【００６７】
以上の手順によって、図１５に示したすべてのポートが特定される。図１５の「ポート（図９）」列には図１２と同一のデータが記述されている。すなわち、前述した手順Ｓ１１の結果である図１２のデータがすべて求められたことになる。
【００６８】
［効果］
本実施形態の制御装置１０００によると、ツリー検証部１３００によって、ＭＡＣアドレスの削除が必要なポートを特定し、ＭＡＣアドレスの削除処理を行うことが可能となる。すなわち、ツリー検証部１３００はスイッチ装置間の接続状態であるトポロジの状態について、トポロジ変更前と変更後の状態を比較することで、上述のＢ）に分類されるポートを検出する。これにより、ＭＡＣアドレスの削除が必要なポートを特定し、特定したポートに対してのみＭＡＣアドレスの削除処理を行うことが可能となる。したがって、本実施形態によると、不要なユニキャストフラッディングを防止することが可能となる。
【００６９】
本発明は、例えば、ＭＡＣ（Media Access Control）アドレスによる自律学習転送を行うイーサネット分野に対して適用することができる。
【００７０】
なお、本発明において、下記の形態が可能である。
［形態１］
上記第１の態様に係る制御装置のとおりである。
［形態２］
前記第１のトポロジ情報は、前記第１のパケット転送経路において前記複数のスイッチ装置間を接続する各リンクがパケット転送に使用されるか否かを示す情報を含み、
前記第２のトポロジ情報は、前記第２のパケット転送経路において前記複数のスイッチ装置間を接続する各リンクがパケット転送に使用されるか否かを示す情報を含む、
形態１に記載の制御装置。
［形態３］
前記ツリー検証部は、前記第１の転送経路においてパケット転送に使用されるリンクと、前記第２の転送経路においてパケット転送に使用されるリンクとの和集合を求め、前記求めた和集合に含まれるリンクのうちの、前記複数のスイッチを接続するループを構成するリンクを抽出し、抽出したリンクに基づいて前記ＭＡＣアドレスの削除が必要なポートを特定する、
形態２に記載の制御装置。
［形態４］
前記ツリー検証部は、前記抽出したリンクのうちの、前記第１のパケット転送経路においてパケット転送に使用され、かつ、前記第２のパケット転送経路においてパケット転送に使用されないリンクを選択し、前記選択したリンクの両端に接続されたポートを前記ＭＡＣアドレスの削除が必要なポートとする、
形態３に記載の制御装置。
［形態５］
前記ツリー検証部は、前記抽出したリンクのうち、前記第１のパケット転送経路においてパケット転送に使用される第１のリンクと、前記第２のパケット転送経路においてパケット転送に使用されない第２のリンクの双方に接続されたスイッチ装置を抽出し、前記抽出したスイッチ装置を出発して前記第１のリンクから順に前記ループを構成するリンクを辿って前記抽出したスイッチに戻るまでの間に通過したリンクの出口側に接続されたポートであって、前記抽出したスイッチに設けられたポート以外のポートを、前記ＭＡＣアドレスの削除が必要なポートとする、
形態３または４に記載の制御装置。
［形態６］
前記ＭＡＣアドレスの削除が必要なポートを有するスイッチ装置に対して、前記ＭＡＣアドレスの削除を指示する設定実行部を備える、
形態１ないし５のいずれか一に記載の制御装置。
［形態７］
上記第２の態様に係る通信システムのとおりである。
［形態８］
上記第３の態様に係る制御方法のとおりである。
［形態９］
前記第１のトポロジ情報は、前記第１のパケット転送経路において前記複数のスイッチ装置間を接続する各リンクがパケット転送に使用されるか否かを示す情報を含み、
前記第２のトポロジ情報は、前記第２のパケット転送経路において前記複数のスイッチ装置間を接続する各リンクがパケット転送に使用されるか否かを示す情報を含む、
形態８に記載の制御方法。
［形態１０］
前記制御装置が、前記第１の転送経路においてパケット転送に使用されるリンクと、前記第２の転送経路においてパケット転送に使用されるリンクとの和集合を求めるステップと、
前記求めた和集合に含まれるリンクのうちの、前記複数のスイッチを接続するループを構成するリンクを抽出し、抽出したリンクに基づいて前記ＭＡＣアドレスの削除が必要なポートを特定するステップと、を含む、
形態９に記載の制御方法。
［形態１１］
前記制御装置が、前記抽出したリンクのうちの、前記第１のパケット転送経路においてパケット転送に使用され、かつ、前記第２のパケット転送経路においてパケット転送に使用されないリンクを選択するステップと、
前記選択したリンクの両端に接続されたポートを前記ＭＡＣアドレスの削除が必要なポートとするステップと、を含む、
形態１０に記載の制御方法。
［形態１２］
前記制御装置が、前記抽出したリンクのうち、前記第１のパケット転送経路においてパケット転送に使用される第１のリンクと、前記第２のパケット転送経路においてパケット転送に使用されない第２のリンクの双方に接続されたスイッチ装置を抽出するステップと、
前記抽出したスイッチ装置を出発して前記第１のリンクから順に前記ループを構成するリンクを辿って前記抽出したスイッチに戻るまでの間に通過したリンクの出口側に接続されたポートであって、前記抽出したスイッチに設けられたポート以外のポートを、前記ＭＡＣアドレスの削除が必要なポートとするステップと、を含む、
形態１０または１１に記載の制御方法。
［形態１３］
前記制御装置が、前記ＭＡＣアドレスの削除が必要なポートを有するスイッチ装置に対して、前記ＭＡＣアドレスの削除を指示するステップを含む、
形態８ないし１２のいずれか一に記載の制御方法。
［形態１４］
上記第４の態様に係るプログラムのとおりである。
［形態１５］
前記第１のトポロジ情報は、前記第１のパケット転送経路において前記複数のスイッチ装置間を接続する各リンクがパケット転送に使用されるか否かを示す情報を含み、
前記第２のトポロジ情報は、前記第２のパケット転送経路において前記複数のスイッチ装置間を接続する各リンクがパケット転送に使用されるか否かを示す情報を含む、
形態１４に記載のプログラム。
［形態１６］
前記第１の転送経路においてパケット転送に使用されるリンクと、前記第２の転送経路においてパケット転送に使用されるリンクとの和集合を求める処理と、
前記求めた和集合に含まれるリンクのうちの、前記複数のスイッチを接続するループを構成するリンクを抽出し、抽出したリンクに基づいて前記ＭＡＣアドレスの削除が必要なポートを特定する処理と、を前記コンピュータに実行させる、
形態１５に記載のプログラム。
［形態１７］
前記制御装置が、前記抽出したリンクのうちの、前記第１のパケット転送経路においてパケット転送に使用され、かつ、前記第２のパケット転送経路においてパケット転送に使用されないリンクを選択する処理と、
前記選択したリンクの両端に接続されたポートを前記ＭＡＣアドレスの削除が必要なポートとする処理と、を前記コンピュータに実行させる、
形態１６に記載のプログラム。
［形態１８］
前記抽出したリンクのうち、前記第１のパケット転送経路においてパケット転送に使用される第１のリンクと、前記第２のパケット転送経路においてパケット転送に使用されない第２のリンクの双方に接続されたスイッチ装置を抽出する処理と、
前記抽出したスイッチ装置を出発して前記第１のリンクから順に前記ループを構成するリンクを辿って前記抽出したスイッチに戻るまでの間に通過したリンクの出口側に接続されたポートであって、前記抽出したスイッチに設けられたポート以外のポートを、前記ＭＡＣアドレスの削除が必要なポートとする処理と、を前記コンピュータに実行させる、
形態１６または１７に記載のプログラム。
［形態１９］
前記ＭＡＣアドレスの削除が必要なポートを有するスイッチ装置に対して、前記ＭＡＣアドレスの削除を指示する処理を、前記コンピュータに実行させる、
形態１４ないし１８のいずれか一に記載のプログラム。
【００７１】
なお、上記非特許文献の全開示内容は、本書に引用をもって繰り込み記載されているものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素（各請求項の各要素、各実施形態の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【００７２】
１〜２２    ポート
１１１、２２２、３３３、４４４、５５５、６６６、７７７    スイッチ装置
１０００    制御装置
１１００    トポロジデータベース（ＤＢ）
１２００    ツリー計算部
１３００    ツリー検証部
１４００    設定実行部
【図１】
2016178353.tif 000003
【図２】
2016178353.tif 000004
【図３】
2016178353.tif 000005
【図４】
2016178353.tif 000006
【図５】
2016178353.tif 000007
【図６】
2016178353.tif 000008
【図７】
2016178353.tif 000009
【図８】
2016178353.tif 000010
【図９】
2016178353.tif 000011
【図１０】
2016178353.tif 000012
【図１１】
2016178353.tif 000013
【図１２】
2016178353.tif 000014
【図１３】
2016178353.tif 000015
【図１４】
2016178353.tif 000016
【図１５】
2016178353.tif 000017
【図１６】
2016178353.tif 000018