(57)【特許請求の範囲】
【請求項１】
互いに接続された第１の中継装置群と、
複数のポートを備えて、前記第１の中継装置とそれぞれ接続された第２の中継装置と、
前記第１、第２の中継装置間の物理リンクを用いて、仮想的な論理リンクとなるトランクを構成する制御装置と、を含み、
前記制御装置は、
前記第１の中継装置側の前記トランクの構成ポートの中から代表ポートを決定し、
前記第１の中継装置群に含まれる中継装置が所定の制御対象パケットを受信した場合、前記代表ポートを有する中継装置を介して前記受信した制御対象パケットを送信するよう、前記第１の中継装置群を制御すること、
を特徴とするパケット転送システム。
【請求項２】
前記所定の制御対象パケットは、ブロードキャストパケットまたはマルチキャストパケットである請求項１のパケット転送システム。
【請求項３】
前記各第１の中継装置は、少なくとも、
前記第２の中継装置と接続されたポートであり、前記代表ポートの候補となるメンバポートと、
他の第１の中継装置と接続されたスタックリンクポートと、
前記第１、第２の中継装置以外の装置と接続された出力ポートと、を備える請求項１または２のパケット転送システム。
【請求項４】
前記制御装置は、
前記第１の中継装置のポート情報を含むトランクの構成情報を記憶するトランク情報記憶部と、
前記トランク情報記憶部を参照して前記代表ポートを選択するとともに、前記第１の中継装置を制御するトランク制御コマンド生成部と、
を備える請求項１から３いずれか一のパケット転送システム。
【請求項５】
前記トランク制御コマンド生成部は、前記第１の中継装置間のスタックリンクの障害状況に応じて、前記第１の中継装置間の前記代表ポートを有する中継装置までのパケット転送経路を変更する請求項４のパケット転送システム。
【請求項６】
前記第１の中継装置が３台以上あり、互いにリング状に接続されている請求項１から５いずれか一のパケット転送システム。
【請求項７】
前記各第１の中継装置は、
パケットの受信ポートと、前記所定の制御対象パケットを特定するための照合条件と、出力ポートと、を対応付けたエントリを格納する転送テーブルを保持し、
前記制御装置は、前記各第１の中継装置の転送テーブルを書き換えることにより、前記各第１の中継装置を制御する請求項１から６いずれか一のパケット転送システム。
【請求項８】
互いに接続された第１の中継装置群と、
複数のポートを備えて、前記第１の中継装置とそれぞれ接続された第２の中継装置と、に接続され、
前記第１、第２の中継装置間の物理リンクを用いて、仮想的な論理リンクとなるトランクを構成する制御装置であって、
前記第１の中継装置側の前記トランクの構成ポートの中から代表ポートを決定し、
前記第１の中継装置群に含まれる中継装置が所定の制御対象パケットを受信した場合、前記代表ポートを有する中継装置を介して前記受信した制御対象パケットを送信するよう、前記第１の中継装置群を制御する制御装置。
【請求項９】
互いに接続された第１の中継装置群と、
複数のポートを備えて、前記第１の中継装置とそれぞれ接続された第２の中継装置と、に接続され、
前記第１、第２の中継装置間の物理リンクを用いて、仮想的な論理リンクとなるトランクを構成する制御装置が、
前記第１の中継装置側の前記トランクの構成ポートの中から代表ポートを決定するステップと、
前記第１の中継装置群に含まれる中継装置が所定の制御対象パケットを受信した場合、前記代表ポートを有する中継装置を介して前記受信した制御対象パケットを送信するよう、前記第１の中継装置群を制御するステップと、を含むパケット転送方法。
【請求項１０】
互いに接続された第１の中継装置群と、
複数のポートを備えて、前記第１の中継装置とそれぞれ接続された第２の中継装置と、に接続され、
前記第１、第２の中継装置間の物理リンクを用いて、仮想的な論理リンクとなるトランクを構成する制御装置を構成するコンピュータに実行させるプログラムであって、
前記第１の中継装置側の前記トランクの構成ポートの中から代表ポートを決定する処理と、
前記第１の中継装置群に含まれる中継装置が所定の制御対象パケットを受信した場合、前記代表ポートを有する中継装置を介して前記受信した制御対象パケットを送信するよう、前記第１の中継装置群を制御する処理と、を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願についての記載）
本発明は、日本国特許出願：特願２０１１−１７６２２６号（２０１１年８月１１日出願）の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。【０００２】
本発明は、パケット転送システム、制御装置、パケット転送方法およびプログラムに関し、特に、複数の物理リンクを用いて仮想的な論理リンクとなるトランクが構成されているパケット転送システム、制御装置、パケット転送方法およびプログラムに関する。
【背景技術】
【０００３】
近年、オープンフロー（ＯｐｅｎＦｌｏｗ）という技術が提案されている（特許文献１、非特許文献１、２参照）。オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行うものである。非特許文献２に仕様化されているオープンフロースイッチは、オープンフローコントローラとの通信用のセキュアチャネルを備え、オープンフローコントローラから適宜追加または書き換え指示されるフローテーブルに従って動作する。フローテーブルには、フロー毎に、パケットヘッダと照合するマッチングルール（ヘッダフィールド）と、フロー統計情報（Ｃｏｕｎｔｅｒｓ）と、処理内容を定義したインストラクション（Ｉｎｓｔｒｕｃｔｉｏｎｓ）と、の組が定義される（図１６参照）。【０００４】
例えば、オープンフロースイッチは、パケットを受信すると、フローテーブルから、受信パケットのヘッダ情報に適合するマッチングルール（図１６のヘッダフィールド参照）を持つエントリを検索する。検索の結果、受信パケットに適合するエントリが見つかった場合、オープンフロースイッチは、フロー統計情報（カウンタ）を更新するとともに、受信パケットに対して、当該エントリのインストラクションフィールドに記述された処理内容（指定ポートからのパケット送信、フラッディング、廃棄等）を実施する。一方、検索の結果、受信パケットに適合するエントリが見つからなかった場合、オープンフロースイッチは、セキュアチャネルを介して、オープンフローコントローラに対してエントリ設定の要求、即ち、受信パケットの処理内容の決定の要求を送信する。オープンフロースイッチは、処理内容が定められたフローエントリを受け取ってフローテーブルを更新する。このように、オープンフロースイッチは、フローテーブルに格納されたエントリを処理規則として用いてパケット転送を行う。【０００５】
上記特許文献１や非特許文献１、２に記載されているネットワークにおいて、ブロードキャストやマルチキャストを実現するには、個々のオープンフロースイッチに、複数のポートからパケットを転送させるフローエントリを設定することになる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際公開第２００８／０９５０１０号
【非特許文献】
【０００７】
【非特許文献１】Ｎｉｃｋ  ＭｃＫｅｏｗｎほか７名、“ＯｐｅｎＦｌｏｗ：  Ｅｎａｂｌｉｎｇ  Ｉｎｎｏｖａｔｉｏｎ  ｉｎ  Ｃａｍｐｕｓ  Ｎｅｔｗｏｒｋｓ”、［ｏｎｌｉｎｅ］、［平成２３（２０１１）年７月２６日検索］、インターネット〈URL: http://www.openflow.org/documents/openflow-wp-latest.pdf〉
【非特許文献２】“ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ”  Ｖｅｒｓｉｏｎ  １．１．０  Ｉｍｐｌｅｍｅｎｔｅｄ  （Ｗｉｒｅ  Ｐｒｏｔｏｃｏｌ  ０ｘ０２）  ［平成２３（２０１１）年７月２６日検索］、インターネット〈URL:http://www.openflow.org/documents/openflow-spec-v1.1.0.pdf〉
【発明の概要】
【発明が解決しようとする課題】
【０００８】
以下の分析は、本発明によって与えられたものである。上記特許文献１や非特許文献１、２に記載されているネットワークに、オープンフロースイッチが追加されるなど、ネットワークトポロジに事後的な変更が生じることがある。個々のオープンフロースイッチは、自装置のフローテーブルに受信パケットに適合するフローエントリがあれば、オープンフローコントローラに、フローエントリの設定要求を行わない。このため、前記ネットワークトポロジの変更によって、新規に追加されたオープンフロースイッチや接続に変更が加えられたオープンフロースイッチに、ブロードキャストパケットが転送されなくなってしまうことが起こりうる。【０００９】
そこで、ブロードキャストパケットの転送に関しては、ネットワークトポロジの変化時にブロードキャスト配信経路を計算し、各経路上のオープンフロースイッチに対して、ブロードキャストパケット用のフローエントリを設定しておく方が望ましい。【００１０】
ところで、上記特許文献１や非特許文献１、２に記載されている技術を用いれば、並列するリンクを持ついくつかのオープンフロースイッチに適切なフローエントリ（例えば、特定のパケットを同一の宛先に転送する。）を設定することで、これらリンクを束ね、仮想的な論理リンクとなるトランクを構成することができる。【００１１】
しかしながら、上記トランクの一端の装置がオープンフローコントローラの制御対象外の通信装置である場合、各オープンフロースイッチは、それぞれ保持するフローエントリに従ってブロードキャストパケットを転送してしまうため、特定の宛先に同一パケットが複数送信されてしまうことが起こりうる。また仮に、前記ブロードキャストパケット用のフローエントリが設定されていない場合においても、その他のフローエントリにより意図しない経路でブロードキャストパケットが転送されてしまうことが起こりうる。【００１２】
本発明の目的とするところは、制御装置の制御対象外の外部中継装置との間にトランクが配置されている構成において、前記トランクを構成する中継装置（上記のオープンフロースイッチに相当。）に、ブロードキャストやマルチキャスト等の所定の制御対象パケットを適切に転送させることのできる構成を提供することにある。
【課題を解決するための手段】
【００１３】
本発明の第１の視点によれば、互いに接続された第１の中継装置群と、複数のポートを備えて、前記第１の中継装置とそれぞれ接続された第２の中継装置と、前記第１、第２の中継装置間の物理リンクを用いて、仮想的な論理リンクとなるトランクを構成する制御装置と、を含み、前記制御装置は、前記第１の中継装置側の前記トランクの構成ポートの中から代表ポートを決定し、前記第１の中継装置群に含まれる中継装置が所定の制御対象パケットを受信した場合、前記代表ポートを有する中継装置を介して前記受信した制御対象パケットを送信するよう、前記第１の中継装置群を制御するパケット転送システムが提供される。【００１４】
本発明の第２の視点によれば、互いに接続された第１の中継装置群と、複数のポートを備えて、前記第１の中継装置とそれぞれ接続された第２の中継装置と、に接続され、前記第１、第２の中継装置間の物理リンクを用いて、仮想的な論理リンクとなるトランクを構成する制御装置であって、前記第１の中継装置側の前記トランクの構成ポートの中から代表ポートを決定し、前記第１の中継装置群に含まれる中継装置が所定の制御対象パケットを受信した場合、前記代表ポートを有する中継装置を介して前記受信した制御対象パケットを送信するよう、前記第１の中継装置群を制御する制御装置が提供される。【００１５】
本発明の第３の視点によれば、互いに接続された第１の中継装置群と、複数のポートを備えて、前記第１の中継装置とそれぞれ接続された第２の中継装置と、に接続され、前記第１、第２の中継装置間の物理リンクを用いて、仮想的な論理リンクとなるトランクを構成する制御装置が、前記第１の中継装置側の前記トランクの構成ポートの中から代表ポートを決定するステップと、前記第１の中継装置群に含まれる中継装置が所定の制御対象パケットを受信した場合、前記代表ポートを有する中継装置を介して前記受信した制御対象パケットを送信するよう、前記第１の中継装置群を制御するステップと、を含むパケット転送方法が提供される。本方法は、前記第１の中継装置群を制御する制御装置という、特定の機械に結びつけられている。【００１６】
本発明の第４の視点によれば、互いに接続された第１の中継装置群と、複数のポートを備えて、前記第１の中継装置とそれぞれ接続された第２の中継装置と、に接続され、前記第１、第２の中継装置間の物理リンクを用いて、仮想的な論理リンクとなるトランクを構成する制御装置を構成するコンピュータに実行させるプログラムであって、前記第１の中継装置側の前記トランクの構成ポートの中から代表ポートを決定する処理と、前記第１の中継装置群に含まれる中継装置が所定の制御対象パケットを受信した場合、前記代表ポートを有する中継装置を介して前記受信した制御対象パケットを送信するよう、前記第１の中継装置群を制御する処理と、を実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００１７】
本発明によれば、制御装置の制御対象外の外部中継装置との間にトランクが配置されている構成において、前記トランクを構成する中継装置に、ブロードキャストやマルチキャスト等の所定の制御対象パケットを適切に転送させることが可能となる。
【図面の簡単な説明】
【００１８】
【図１】本発明の第１の実施形態の構成を表した図である。
【図２】本発明の第１の実施形態の制御装置の詳細構成を表したブロック図である。
【図３】本発明の第１の実施形態の制御装置のトランク情報記憶部に保持されるトランク構成情報の例である。
【図４】代表ポートに決定されたポート（メンバポート）を持つ中継装置の転送テーブルの内容を示す図である。
【図５】代表ポートに決定されなかったポート（メンバポート）を持つ中継装置の転送テーブルの内容を示す図である。
【図６】中継装置１１０１−１１０３間のリンクに障害が生じた場合の中継装置１１０２の転送テーブルの内容を示す図である。
【図７】中継装置１１０１−１１０３間のリンクに障害が生じた場合の中継装置１１０３の転送テーブルの内容を示す図である。
【図８】ブロードキャストパケットの転送経路の一例を示す図である。
【図９】外部中継装置から中継装置１１０２にブロードキャストパケットが転送された場合の転送経路を示す図である。
【図１０】外部中継装置から中継装置１１０３にブロードキャストパケットが転送された場合の転送経路を示す図である。
【図１１】スタックリンクに障害が生じた場合の転送経路を示す図である。
【図１２】スタックリンクに障害が生じた場合の転送経路を示す別の図である。
【図１３】本発明の第２の実施形態の構成を表した図である。
【図１４】本発明の第３の実施形態の構成を表した図である。
【図１５】本発明の第４の実施形態の構成を表した図である。
【図１６】非特許文献２のフローエントリの構成を表した図である。
【発明を実施するための形態】
【００１９】
はじめに本発明の一実施形態の概要について図面を参照して説明する。以下、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
【００２０】
本発明は、その一実施形態において、図１に示すように、互いに接続された第１の中継装置群１１０１〜１１０３と、複数のポートを備えて、前記第１の中継装置１１０１〜１１０３とそれぞれ接続された第２の中継装置（外部中継装置）１１０６と、に接続され、前記第１、第２の中継装置間の物理リンクを用いて、仮想的な論理リンクとなるトランクを構成する制御装置１１００を含む構成にて実現できる。
【００２１】
例えば、図１の外部中継装置１１０６と中継装置１１０１、１１０２、１１０３との物理リンクを用いてトランクが構成されているものとする。ここで、制御装置１１００は、前記トランクを構成するポートのうち中継装置１１０１のポートを代表ポートに決定したものとする。制御装置１１００は、中継装置１１０１が、制御対象パケットを受信した場合、所定の経路に従って転送するよう制御する（図８参照）。
【００２２】
また、制御装置１１００は、第１の中継装置１１０２、１１０３が前記所定の制御対象パケットを受信した場合、中継装置１１０１を介して前記受信した制御対象パケットを送信するよう、前記第１の中継装置１１０２、１１０３を制御する（図９、図１０参照）。
【００２３】
このようにすることで、トランクを流れてくる制御対象パケットが、意図しない他の中継装置から重複して転送されてしまったり、ループを形成しないように制御することができる。
【００２４】
［第１の実施形態］
続いて、本発明の第１の実施形態について図面を参照して詳細に説明する。図１は、本発明の第１の実施形態の構成を表した図である。図１を参照すると、外部コマンドで受信パケットの転送等のパケット処理を制御可能な複数の中継装置（中継装置１１０１〜１１０５）と、外部中継装置１１０６と、端末１１０７、１１０８と、前記中継装置１１０１〜１１０５を制御する制御装置１１００と、を含むパケット転送システムが示されている。
【００２５】
中継装置１１０１〜１１０５は、破線で示す制御チャネルを介して制御装置１１００と接続された通信装置である。中継装置１１０１〜１１０５は、制御装置１１００からの制御に従って、外部中継装置１１０６に接続された端末１１０７と、中継装置１１０５に接続された端末１１０８間の通信を実現する。図１では、データ用の通信路を実線で示し、制御用の通信路を破線で示しているが、これら２つが混在していてもよい。
【００２６】
本実施形態では、上記中継装置として、非特許文献２に仕様化されているオープンフロースイッチを用いるものとする。具体的には、中継装置１１０１〜１１０５は、図１６に示すようなマッチングルールと処理内容（Ｉｎｓｔｒｕｃｔｉｏｎｓ）とを対応付けたフローエントリを保持し、受信パケットに適合するフローエントリに従ってパケットの転送等を実施する。なお、上記オープンフロースイッチ以外の装置を中継装置として用いることもできる。例えば、Ｔｅｌｎｅｔ経由のＣＬＩ（コマンドラインインタフェース）にて、任意のパケットのマッチング条件を指定してパケットの経路を設定できるような装置を用いることも可能である。
【００２７】
外部中継装置１１０６は、複数の物理ポートでＬｉｎｋ  Ａｇｇｒｅｇａｔｉｏｎ（ＩＥＥＥ  ８０２．３ａｄ参照。以下、「ＬＡＧ」ともいう。）を構成する機能を有する。外部中継装置１１０６は、ＬＡＧを構成する物理ポートで中継装置１１０１、中継装置１１０２、中継装置１１０３と接続されている。
【００２８】
端末１１０７は、外部中継装置１１０６に接続されたホスト端末等である。また。端末１１０８は、中継装置１１０５に接続されたホスト端末等である。
【００２９】
また、本実施形態では、中継装置１１０１〜１１０５のうち、外部中継装置１１０６と接続された中継装置１１０１〜１１０３が、それぞれ他の中継装置とリング状に接続されている。
【００３０】
このほか、中継装置１１０４は、中継装置１１０１、１１０２、１１０５と接続され、中継装置１１０５は、中継装置１１０１、１１０３、１１０４と接続されている。
【００３１】
なお、以上のようなネットワークトポロジは、本発明を簡単に説明するための一例として示したものであり、種々の変更を加えることができる。例えば、図１に示した中継装置、外部中継装置、端末の数等は、特に限定されない。
【００３２】
続いて、図１の制御装置１１００について詳細に説明する。図２は、本発明の第１の実施形態の制御装置１１００の詳細構成を表したブロック図である。図２を参照すると、中継装置通信部１０１と、トポロジ取得部１０２と、トポロジテーブル１０３と、ユニキャスト経路探索部１０４と、ユニキャスト用経路制御コマンド生成部１０５と、ブロードキャスト経路探索部（ＢＣ経路探索部）１０６と、ブロードキャスト経路コマンド生成部（ＢＣ用経路制御コマンド生成部）１０７と、トランク情報入力部１０８と、トランク情報記憶部１０９と、トランク制御コマンド生成部１１０とを備えた構成が示されている。
【００３３】
中継装置通信部１０１は、トポロジ取得部１０２、ユニキャスト用経路制御コマンド生成部１０５、ＢＣ用経路制御コマンド生成部１０７またはトランク制御コマンド生成部１１０にて生成された制御用コマンドを中継装置１１０１〜１１０５に送信し、中継装置１１０１〜１１０５からの応答をトポロジ取得部１０２、ユニキャスト用経路制御コマンド生成部１０５、ＢＣ用経路制御コマンド生成部１０７またはトランク制御コマンド生成部１１０に入力する動作を行う。
【００３４】
より具体的には、中継装置通信部１０１は、中継装置１１０１〜１１０５との制御用セッションの確立、制御用コマンドの送信・受信を行う。制御用コマンドとしては、非特許文献２に記載されているオープンプロトコルを用いることができる。また、Ｔｅｌｎｅｔ経由のＣＬＩや、ＳＮＭＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）を用いて通信を行ってもよい。
【００３５】
トポロジ取得部１０２は、中継装置通信部１０１を介して中継装置１１０１〜１１０５と通信し中継装置１１０１〜１１０５間の接続関係を示すトポロジ情報を取得し、トポロジテーブル１０３に登録する。前記トポロジの取得方法としては、中継装置間で隣接する中継装置のインタフェース情報等を収集させ、吸い上げる方法がある。このようなプロトコルとして、Ｌｉｎｋ  Ｌａｙｅｒ  Ｄｉｓｃｏｖｅｒｙ  Ｐｒｏｔｏｃｏｌが代表的である。その他、制御装置１１００から、特定の中継装置の特定ポートから当該中継装置のＩＤとポート番号を含むパケットを出力するように制御を行い、対向となる中継装置から該パケットを受信することで、中継装置間の認識を行う方法も採用できる。前記制御装置からのパケット出力とパケット受信には、非特許文献２のＰａｃｋｅｔ−ｏｕｔ、Ｐａｃｋｅｔ−ｉｎメッセージを用いることができる。もちろん、ネットワークトポロジを事前に設定しておく方法も採用できる。
【００３６】
ユニキャスト経路探索部１０４は、トポロジテーブル１０３を参照し、端末と接続している間の中継装置間の経路を計算する。ユニキャスト経路探索部１０４における経路の計算方法としては、最短経路木（ダイクストラ法が代表的）を用いることができる。これら経路は、単一とは限らず、通信単位毎に、異なる経路が計算されるようにしてもよい。また、事前に、すべての中継装置を起点または終点とした計算を行っておき、必要に応じてこれら予め計算した経路を用いることとしてもよい。
【００３７】
ユニキャスト用経路制御コマンド生成部１０５は、ユニキャスト経路探索部１０４の計算した経路上の中継装置に対して、制御用コマンドを送信し、経路を設定する。制御用コマンドとしては、例えば、中継装置が保持するフローエントリを書き換える非特許文献２のＦＬＯＷ  Ｔａｂｌｅ  Ｍｏｄｉｆｉｃａｔｉｏｎメッセージを用いることができる。例えば、図１の端末１１０８のＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレス、ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレス、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）／ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）のポート等をマッチングルールとし、経路上の次の中継装置と接続されたポートから当該パケットを出力させる処理内容（Ｉｎｓｔｒｕｃｔｉｏｎｓ）と定めたフローエントリを設定することで、端末１１０８宛てのパケットの経路制御が実現される。
【００３８】
ＢＣ経路探索部１０６は、ブロードキャスト用に、端末と接続している中継装置から、少なくとも当該端末と接続している他のすべての中継装置へ配信できるような全域木（スパニングツリー）経路を計算する。ＢＣ経路探索部１０６は、ネットワークで一つの全域木経路を計算してもよいし、複数の全域木経路を計算してもよい。複数の全域木経路を計算する場合には、端末と接続している中継装置毎に異なる全域木経路を計算してもよい。全域木の計算方法としては、最小全域木（プリム法、クラスカル法が代表的）を用いることができる。また、その計算の際には、ある中継装置が端末と接続しておらず末端である場合には除外することを繰り返して、端末と接続している中継装置間に存在しない中継装置を除外するようにしてもよい。さらに、ＢＣ経路探索部１０６は、トランク制御コマンド生成部１１０から代表ポートの選択結果を受信している場合、前記代表ポートが経路に含まれるよう経路の再計算を行う。
【００３９】
ＢＣ用経路制御コマンド生成部１０７は、ブロードキャスト用配信経路制御処理とブロードキャストパケット許可処理とを行う。ブロードキャスト用配信経路制御処理は、ブロードキャスト用の経路を構築する処理であり、上述のユニキャスト用の経路と同様に中継装置にフローエントリを設定する。なお、このとき、ブロードキャスト用のフローエントリは、前記ユニキャスト用のフローエントリより低い優先度が設定される。これにより、ユニキャスト用のフローエントリにマッチングしないパケットであって、ブロードキャスト用のフローエントリにマッチングするパケットが、ブロードキャストの対象となる。
【００４０】
ブロードキャストパケット許可処理としては、端末からのブロードキャストパケットのブロードキャスト用の配信経路での転送を許可する処理、パケットの任意のフィールドにブロードキャストパケットであることを示す情報を書き込むよう中継装置を制御する処理が行われる。例えば、端末からの入口にある中継装置に、送信ＭＡＣアドレスの先頭ビット（Ｉ／Ｇビット）を１に書き換えるフローエントリを設定することで実現できる。
【００４１】
また、別の方法としては、ユニキャスト用経路制御コマンド生成部１０５およびＢＣ用経路制御コマンド生成部１０７のうち一つもしくは両方が、端末からの入口にある中継装置に、ユニキャスト経路による配信、ブロードキャスト経路による配信であることを区別（Ｕｎｉｃａｓｔ／ＢＣ配信フラグ）できるよう任意のフィールドを変更させるようにしてもよい。また、この場合において、宛先側端末への出口にある中継装置で、前記任意のフィールドを元に戻すようにしてもよい。変更フィールドとしては、ＩＰのＴｏｓフィールド、ＶＬＡＮ  Ｐｒｉｏｒｉｔｙフィールド等が考えられる。
【００４２】
また別の方法としては、端末の入り口にある中継装置に、任意のアドレスを縮退して、この縮退したアドレスに、Ｕｎｉｃａｓｔ／ＢＣ配信フラグを入れるようにしてもよい。例えば、送信先ＭＡＣアドレスを縮退して、送信先ＭＡＣアドレスに縮退したＭＡＣアドレスと前記区別フラグを入れることが挙げられる。なお、この場合、宛先側端末への出口にある中継装置にて、縮退したアドレスから元のアドレスを復元する処理が必要となる。
【００４３】
また別の方法としては、ユニキャストとマルチキャストに別のＶＬＡＮ  ＩＤを割り当ててもよい。例えば、ＶＬＡＮ  ＩＤを、別途割り当てた専用のＶＬＡＮ  ＩＤに変換して、送信先ＭＡＣアドレスと元のＶＬＡＮ  ＩＤを縮退したＩＤを生成し、送信先ＭＡＣをこの縮退ＩＤとすることが挙げられる。
【００４４】
これら任意のフィールドの変更により、ユニキャスト経路とブロードキャスト経路による配信の区別ができるため、ブロードキャスト用の配信経路制御処理で、宛先不明のユニキャストパケットもブロードキャスト用配信経路で配信できるようになる。
【００４５】
トランク情報入力部１０８は、ＣＬＩやＧＵＩ（グラフィカルユーザインターフェース）などにより中継装置のトランク構成情報の入力を受け付ける。
【００４６】
トランク情報記憶部１０９は、トランク情報入力部１０８で入力されたトランク構成情報を記憶する。
【００４７】
図３は、トランク情報記憶部に保持されるトランク構成情報の一例である。図３の例では、トランクを構成する中継装置について、外部中継装置１１０６と接続する（中継装置の）ポート（以下、「メンバポート」という。）であるメンバポート情報と、トランク構成時のパケット回り込みを防ぐパケット回り込み抑制処理のためにトランクを構成する中継装置間を接続するポートであるスタックリンクポート情報とを指定した内容となっている。さらに、図３の例では、スタックリンクポートとして、１つの中継装置にＥＡＳＴ、ＷＥＳＴの２つのポートが指定されている。ＥＡＳＴスタックリンクポートにはトランクを構成する別の中継装置のＷＥＳＴスタックリンクポートを接続される。このようにしてトランクを構成するスタックリンクポート間のリンクはリングを構成するように接続される。
【００４８】
例えば、図３によると、中継装置１１０１のポート＃１、中継装置１１０２のポート＃４および中継装置１１０３のポート＃３がメンバポートとなっている。これは、図１に示すように、中継装置１１０１のポート＃１、中継装置１１０２のポート＃４および中継装置１１０３のポート＃３が外部中継装置１１０６と接続され、トランクを構成していることを示している。また、中継装置１１０１のポート＃２は、ＥＡＳＴスタックリンクポートとなっている。このＥＡＳＴスタックリンクポートは、図１に示すように、他の中継装置１１０３のＷＥＳＴスタックリンクポートであるポート＃２と接続されている。また、中継装置１１０１のポート＃３は、ＷＥＳＴスタックリンクポートとして他の中継装置１１０２のＥＡＳＴスタックリンクポートであるポート＃５と接続されている。同様に、中継装置１１０２のポート＃６は、ＷＥＳＴスタックリンクポートとして他の中継装置１１０３のＥＡＳＴスタックリンクポートであるポート＃１と接続され、リングが構成されている。
【００４９】
なお、図３では、１組のトランク構成情報が示されているが、ネットワーク内に複数のトランクが構成されている場合には（図１３〜図１５参照）、複数組のトランク構成情報を記憶することが可能である。
【００５０】
トランク制御コマンド生成部１１０は、代表ポート選出処理と、スタックリンク制御処理とを実行する。代表ポート選出処理では、トランク情報記憶部１０９で保持するメンバポートの中から代表ポートを１つ選出する処理が行われる。トランク制御コマンド生成部１１０は、前記メンバポートから代表ポートを選出する際に、トポロジテーブル１０３を参照して、候補となる各メンバポートが外部中継装置１１０６と通信可能となっていることを確認する。
【００５１】
この代表ポートの選出結果はＢＣ経路探索部１０６にも通知される。ＢＣ経路探索部１０６は、ブロードキャスト用の配信経路の再計算を行う。代表ポートの選出処理は、トランク情報入力部１０８にトランク構成情報が入力された場合や、代表ポートが障害となりトポロジテーブル１０３から代表ポートの物理トポロジの変化が通知された場合などに実行される。
【００５２】
スタックリンク制御処理は、中継装置の代表ポートの有無やスタックリンクポートの障害に基づいて、中継装置通信部１０１を介して、トランクを構成する中継装置１１０１、１１０２、１１０３に対し、メンバポートおよびスタックリンクポートから受信したブロードキャストパケットの転送先を指示するフローエントリを設定する。
【００５３】
具体的には、選出された代表ポートでブロードキャストパケットが受信された場合、当該ブロードキャストパケットの送信は許可される。一方、代表ポート以外のメンバポートで受信された場合、当該ブロードキャストパケットの送信は禁止され、スタックリンクポートからの転送や廃棄が行われる。これにより、トランクを構成するポートを持つ中継装置から複数のブロードキャストパケットが出力されることを抑制できる。
【００５４】
図４は、代表ポートとして選出されたポートを有する中継装置（例えば、中継装置１１０１）に保持される転送テーブルの内容（マッチングルールは受信ポートを除き省略。）の例である。図４に示されたように、代表ポートとして選出されたポートを有する中継装置では、ブロードキャストパケットを受信した場合、その受信ポートが代表ポート、スタックリンクポートのいずれの場合も、当該パケットをブロードキャスト転送経路の次ホップの中継装置に転送するフローエントリが設定される。
【００５５】
図５は、メンバポートが代表ポートとして選出されなかった中継装置（例えば、中継装置１１０２、１１０３）に保持される転送テーブルの内容（マッチングルールは受信ポートを除き省略。）の例である。図５の例では、メンバポートまたはＷＥＳＴスタックリンクポートからブロードキャストパケットを受信した場合、ＥＡＳＴスタックリンクポートから転送するフローエントリと、ＥＡＳＴスタックリンクポートからブロードキャストパケットを受信した場合、ＷＥＳＴスタックリンクポートから転送するフローエントリとが設定されている。
【００５６】
上記のように、メンバポートが代表ポートとして選出されなかった中継装置においては、スタックリンクポートを経由して隣接する中継装置へブロードキャストパケットの転送が行われる。そして、ブロードキャストパケットが、代表ポートを有する中継装置に到達すると、当該中継装置から、ブロードキャスト用の経路に従ってパケット転送が行われる。
【００５７】
また、トランク制御コマンド生成部１１０によるスタックリンク制御処理では、スタックリンクポートの障害等も考慮される。図６は、メンバポートが代表ポートとして選出されなかった中継装置（例えば、中継装置１１０２、１１０３）において、ＷＥＳＴスタックリンクポートに障害が発生している場合の転送テーブルの内容（マッチングルールは受信ポートを除き省略。）の例である。図６の例では、メンバポートで受信したパケットをＥＡＳＴスタックリンクポートから転送するフローエントリと、ＥＡＳＴスタックリンクポートまたはＷＥＳＴスタックリンクポートで受信したパケットを廃棄するフローエントリとが設定されている。
【００５８】
図７は、メンバポートが代表ポートとして選出されなかった中継装置（例えば、中継装置１１０２、１１０３）において、ＥＡＳＴスタックリンクポートに障害が発生している場合の転送テーブルの内容（マッチングルールは受信ポートを除き省略。）の別の一例である。図７の例では、メンバポートまたはＷＥＳＴスタックリンクポートで受信したパケットを、ＷＥＳＴスタックリンクポートから転送するフローエントリと、ＥＡＳＴスタックリンクポートで受信したパケットを廃棄するフローエントリとが設定されている。
【００５９】
図６、図７のようなフローエントリを設定することにより、リングを構成する中継装置１１０１〜１１０３のスタックリンクポートで１重障害が発生した場合、ＥＡＳＴのスタックリンクポートからＷＥＳＴのスタックリンクポートに転送されるパケットは、ＥＡＳＴのスタックリンクポートで障害が発生している中継装置で折り返されて代表ポートが存在する中継装置まで転送される。ＷＥＳＴのスタックリンクポートからＥＡＳＴのスタックリンクポートに転送されるパケットは、ＷＥＳＴのスタックリンクポートで障害が発生している中継装置で廃棄される。このため、パケットがループすることを防ぐことができる。
【００６０】
なお、上記した制御装置１１００は、非特許文献１、２のオープンフローコントローラをベースに、ＢＣ経路探索部１０６、ＢＣ用経路制御コマンド生成部１０７、トランク情報入力部１０８、トランク情報記憶部１０９およびトランク制御コマンド生成部１１０を追加して構成することができる。
【００６１】
また、図２に示した制御装置１１００の各部（処理手段）は、制御装置１１００を構成するコンピュータに、そのハードウェアを用いて、上記した各処理を実行させるコンピュータプログラムにより実現することもできる。
【００６２】
続いて、本実施形態の動作について図面を参照して詳細に説明する。以下の説明では、図８に示すように、外部中継装置１１０６経由で端末１１０７から端末１１０８宛てに送信されたブロードキャストパケットについて、中継装置１１０１、中継装置１１０４、中継装置１１０５経由で転送する経路が計算されているものとする（図８の実線参照）。また、代表ポート選出処理の結果、中継装置１１０１のメンバポートが、代表ポートとして選出されているものとする。
【００６３】
図８の端末１１０７がブロードキャストパケットを外部中継装置１１０６に送信すると、外部中継装置１１０６は、ＬＡＧを構成するポートのうち中継装置１１０１の代表ポートにパケットを転送する。
【００６４】
中継装置１１０１は、図４に示すフローエントリに従って、ブロードキャスト転送経路の次ホップの中継装置である中継装置１１０４に接続されているポートからブロードキャストパケットを転送する。前記中継装置１１０４は、制御装置１１００から設定されたブロードキャスト転送経路を実現するフローエントリに従って、中継装置１１０５にパケットを転送する。中継装置１１０５は、同様に、制御装置１１００から設定されたブロードキャスト転送経路を実現するフローエントリに従って、端末１１０８にパケットを転送する。この結果、図８の矢線に示されたとおりにブロードキャストパケットが転送される。
【００６５】
図９は、端末１１０７からブロードキャストパケットを受信した外部中継装置１１０６が、ＬＡＧを構成するポートのうち中継装置１１０２のメンバポートにパケットを転送した場合の転送経路を示す図である。
【００６６】
この場合、中継装置１１０２は、図５に示すフローエントリに従って、自装置（中継装置１１０２）のＥＡＳＴスタックリンクポート（図９のポート＃５）からパケットを転送する。前記パケットを受信した中継装置１１０１は、図４に示すフローエントリに従って、ブロードキャスト転送経路の次ホップの中継装置である中継装置１１０４に接続されているポートからブロードキャストパケットを転送する。その後は、図８と同様に、ブロードキャスト用の経路に従ってブロードキャストパケットが転送される。
【００６７】
図１０は、端末１１０７からブロードキャストパケットを受信した外部中継装置１１０６が、ＬＡＧを構成するポートのうち中継装置１１０３のメンバポートにパケットを転送した場合の転送経路を示す図である。
【００６８】
この場合、中継装置１１０３は、図５に示すフローエントリに従って、自装置（中継装置１１０３）のＥＡＳＴスタックリンクポート（図１０のポート＃１）からパケットを転送する。前記パケットを受信した中継装置１１０２は、図５に示すフローエントリに従って、自装置（中継装置１１０２）のＥＡＳＴスタックリンクポート（図１０のポート＃５）からパケットを転送する。前記パケットを受信した中継装置１１０１は、図４に示すフローエントリに従って、ブロードキャスト転送経路の次ホップの中継装置である中継装置１１０４に接続されているポートからブロードキャストパケットを転送する。その後は、図８と同様に、ブロードキャスト用の経路に従ってブロードキャストパケットが転送される。
【００６９】
図１１は、中継装置１１０１と中継装置１１０２間のスタックリンクに障害が発生した場合において、端末１１０７からブロードキャストパケットを受信した外部中継装置１１０６が、ＬＡＧを構成するポートのうち中継装置１１０３のメンバポートにパケットを転送した場合の転送経路を示す図である。
【００７０】
この場合、中継装置１１０３は、図５に示すフローエントリに従って、自装置（中継装置１１０３）のＥＡＳＴスタックリンクポート（図１１のポート＃１）からパケットを転送する。前記パケットを受信した中継装置１１０２では、図１１に示すように、ＥＡＳＴスタックリンクポート（図１１のポート＃５）に障害が生じているため、図７に示すフローエントリが設定されている。従って、中継装置１１０２では、図７に示すフローエントリに従って、自装置（中継装置１１０２）のＷＥＳＴスタックリンクポート（図１１のポート＃６）からパケットを折り返し転送する。前記パケットを受信した中継装置１１０３は、図５に示すフローエントリに従って、自装置（中継装置１１０３）のＷＥＳＴスタックリンクポート（図１１のポート＃２）からパケットを転送する。前記パケットを受信した中継装置１１０１は、図４に示すフローエントリに従って、ブロードキャスト転送経路の次ホップの中継装置である中継装置１１０４に接続されているポートからブロードキャストパケットを転送する。その後は、図８と同様に、ブロードキャスト用の経路に従ってブロードキャストパケットが転送される。
【００７１】
図１２は、中継装置１１０１と中継装置１１０２間のスタックリンクに障害が発生した場合において、端末１１０７からブロードキャストパケットを受信した外部中継装置１１０６が、ＬＡＧを構成するポートのうち中継装置１１０２のメンバポートにパケットを転送した場合の転送経路を示す図である。
【００７２】
中継装置１１０２では、図１２に示すように、ＥＡＳＴスタックリンクポート（図１２のポート＃５）に障害が生じているため、図７に示すフローエントリが設定されている。従って、中継装置１１０２では、図７に示すフローエントリに従って、自装置（中継装置１１０２）のＷＥＳＴスタックリンクポート（図１１のポート＃６）からパケットを転送する。前記パケットを受信した中継装置１１０３は、図５に示すフローエントリに従って、自装置（中継装置１１０３）のＷＥＳＴスタックリンクポート（図１２のポート＃２）からパケットを転送する。前記パケットを受信した中継装置１１０１は、図４に示すフローエントリに従って、ブロードキャスト転送経路の次ホップの中継装置である中継装置１１０４に接続されているポートからブロードキャストパケットを転送する。その後は、図８と同様に、ブロードキャスト用の経路に従ってブロードキャストパケットが転送される。
【００７３】
以上のように本実施形態によれば、図８〜図１０を用いて示したように、スタックリンクポートを用いた転送を行い、選出した代表ポートを有する中継装置以外から、ブロードキャストパケット等の制御対象パケットが出力されないように制御される。
【００７４】
また、本実施形態によれば、図１１〜図１２を用いて示したように、スタックリンクに障害が生じた場合でもループすることなくパケットを転送することができるになっている。
【００７５】
以上本発明の第１の実施形態を説明したが、本発明は、上記した実施形態に限られず、種々の変形実施形態を採ることができる。以下、複数のトランクを有するいくつか変形実施形態を説明する。
【００７６】
［第２の実施形態］
図１３は、本発明の第２の実施形態の構成を表した図である。本発明の第１の実施形態との相違点は、中継装置１２０１〜１２０３と外部中継装置１２０９との間のトランクと、中継装置１２０５〜１２０７と外部中継装置１２１０との間のトランクとの２つのトランクが構成されている点である。
【００７７】
このような構成においても、トランク情報記憶部１０９のトランク構成情報を参照して、上記のように、中継装置１２０１〜１２０３のメンバポートと、中継装置１２０５〜１２０７のメンバポートとの中からそれぞれ１つの代表ポートを選出し、スタックリンクを介して各代表ポートからパケットが転送されるように制御する。これにより、選出した代表ポートを有する中継装置以外から、ブロードキャストパケット等の制御対象パケットが出力されないように制御することが可能となる。
【００７８】
［第３の実施形態］
図１４は、本発明の第３の実施形態の構成を表した図である。本発明の第１の実施形態との相違点は、中継装置１１０１〜１１０３の別のポートを用いて、外部中継装置１１０６とは別のトランクを構成する外部中継装置１１０６ａが追加されている点である。
【００７９】
このような構成においても、トランク情報記憶部１０９のトランク構成情報を参照して、上記のように、中継装置１１０１〜１１０３の外部中継装置１１０６ａと接続された第２のメンバポートから代表ポートを選出し、スタックリンクを介して代表ポートから、外部中継装置１１０６ａ経由のパケットが転送されるように制御する。これにより、選出した代表ポートを有する中継装置以外から、ブロードキャストパケット等の制御対象パケットが出力されないように制御することが可能となる。
【００８０】
［第４の実施形態］
図１５は、本発明の第４の実施形態の構成を表した図である。本発明の第１の実施形態との相違点は、中継装置１１０１〜１１０３と外部中継装置１１０６との間に、第２のトランクが構成されている点である。なお、中継装置１１０１〜１１０３の第２のトランクを構成するメンバポートは、第１のトランクを構成するメンバポートと同一のポートであってもよい。
【００８１】
このような構成においても、トランク情報記憶部１０９のトランク構成情報を参照して、上記のように、中継装置１１０１〜１１０３の第２のトランクを構成するメンバポートから代表ポートを選出し、スタックリンクを介して当該代表ポートから、外部中継装置１１０６経由のパケットが転送されるように制御する。これにより、選出した代表ポートを有する中継装置以外から、ブロードキャストパケット等の制御対象パケットが出力されないように制御することが可能となる。
【００８２】
以上、本発明の各実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、上記した各実施形態では、外部中継装置は、中継装置と端末との間に配置されているものとし説明したが、中継装置１１０１〜１１０５の間に配置されていてもよい。
【００８３】
また、上記した各実施形態では、ブロードキャストパケットの転送制御を行う例を挙げて説明したが、ブロードキャストパケット以外のパケットを制御対象パケットとすることもできる。例えば、マルチキャストパケット等の外部中継装置から複数の中継装置にパケットが転送される可能性のあるパケットに適用することができる。
【００８４】
また、上記した各実施形態では、図中に実線と破線で示したように、データ用の通信路と、制御用の通信路とをそれぞれ設けられているものとして説明したが、これらは混在してもよい。
【００８５】
なお、上記の特許文献および非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施例の各要素、各図面の各要素等を含む）の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【００８６】
１０１  中継装置通信部
１０２  トポロジ取得部
１０３  トポロジテーブル
１０４  ユニキャスト経路探索部
１０５  ユニキャスト用経路制御コマンド生成部
１０６  ブロードキャスト経路探索部（ＢＣ経路探索部）
１０７  ブロードキャスト経路コマンド生成部（ＢＣ用経路制御コマンド生成部）
１０８  トランク情報入力部
１０９  トランク情報記憶部
１１０  トランク制御コマンド生成部
１１００  制御装置
１１０１〜１１０５、１２０１〜１２０８  中継装置
１１０６、１１０６ａ、１２０９、１２１０  外部中継装置
１１０７、１１０８、１２１１〜１２１３  端末
【図１】
0005644948.tif 000002
【図２】
0005644948.tif 000003
【図３】
0005644948.tif 000004
【図４】
0005644948.tif 000005
【図５】
0005644948.tif 000006
【図６】
0005644948.tif 000007
【図７】
0005644948.tif 000008
【図８】
0005644948.tif 000009
【図９】
0005644948.tif 000010
【図１０】
0005644948.tif 000011
【図１１】
0005644948.tif 000012
【図１２】
0005644948.tif 000013
【図１３】
0005644948.tif 000014
【図１４】
0005644948.tif 000015
【図１５】
0005644948.tif 000016
【図１６】
0005644948.tif 000017