特許第6190281号(P6190281)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ APRESIA Systems株式会社の特許一覧

<>
  • 特許6190281-中継システムおよびスイッチ装置 図000002
  • 特許6190281-中継システムおよびスイッチ装置 図000003
  • 特許6190281-中継システムおよびスイッチ装置 図000004
  • 特許6190281-中継システムおよびスイッチ装置 図000005
  • 特許6190281-中継システムおよびスイッチ装置 図000006
  • 特許6190281-中継システムおよびスイッチ装置 図000007
  • 特許6190281-中継システムおよびスイッチ装置 図000008
  • 特許6190281-中継システムおよびスイッチ装置 図000009
  • 特許6190281-中継システムおよびスイッチ装置 図000010
  • 特許6190281-中継システムおよびスイッチ装置 図000011
  • 特許6190281-中継システムおよびスイッチ装置 図000012
  • 特許6190281-中継システムおよびスイッチ装置 図000013
  • 特許6190281-中継システムおよびスイッチ装置 図000014
  • 特許6190281-中継システムおよびスイッチ装置 図000015
  • 特許6190281-中継システムおよびスイッチ装置 図000016
  • 特許6190281-中継システムおよびスイッチ装置 図000017
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6190281
(24)【登録日】2017年8月10日
(45)【発行日】2017年8月30日
(54)【発明の名称】中継システムおよびスイッチ装置
(51)【国際特許分類】
   H04L 12/46 20060101AFI20170821BHJP
   H04L 12/70 20130101ALI20170821BHJP
   H04L 12/709 20130101ALI20170821BHJP
   H04L 12/891 20130101ALI20170821BHJP
【FI】
   H04L12/46 100Z
   H04L12/70 100A
   H04L12/709
   H04L12/891
   H04L12/46 M
【請求項の数】10
【全頁数】26
(21)【出願番号】特願2014-9907(P2014-9907)
(22)【出願日】2014年1月22日
(65)【公開番号】特開2015-139110(P2015-139110A)
(43)【公開日】2015年7月30日
【審査請求日】2016年3月18日
(73)【特許権者】
【識別番号】517121630
【氏名又は名称】APRESIA Systems株式会社
(74)【代理人】
【識別番号】110002066
【氏名又は名称】特許業務法人筒井国際特許事務所
(72)【発明者】
【氏名】巽 知厳
(72)【発明者】
【氏名】石崎 洋
【審査官】 谷岡 佳彦
(56)【参考文献】
【文献】 特開2012−114645(JP,A)
【文献】 特開2013−070306(JP,A)
【文献】 特開2012−249050(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/46
H04L 12/70
H04L 12/709
H04L 12/891
(57)【特許請求の範囲】
【請求項1】
複数のポートスイッチと、
前記複数のポートスイッチの間のフレームの中継を担う複数のファブリックスイッチと、
を備え、
前記複数のポートスイッチのそれぞれは、前記複数のファブリックスイッチのそれぞれと、リンクによって接続され、
前記複数のファブリックスイッチのそれぞれは、
自身に接続されるリンクの障害を検出する第1障害検出部と、
前記第1障害検出部によって障害が検出された際に、当該障害有りのリンクを表す障害リンク識別子を含む第1障害通知フレームを生成する第1障害通知フレーム生成部と、
前記第1障害通知フレームを前記複数のポートスイッチに送信し、前記複数のポートスイッチのいずれかから第2障害通知フレームを受信した際には、前記第2障害通知フレームをフラッディングする第1フレーム送信部と、
を有し、
前記複数のポートスイッチのそれぞれは、
自身に接続されるリンクの障害を検出する第2障害検出部と、
前記第2障害検出部によって障害が検出された際に、当該障害有りのリンクを表す障害リンク識別子を含む前記第2障害通知フレームを生成する第2障害通知フレーム生成部と、
前記第2障害通知フレームを前記複数のファブリックスイッチに送信する第2フレーム送信部と、
前記自身に接続されるリンクの全てで前記第1障害通知フレームまたは前記第2障害通知フレームを受信した際に、当該受信した障害通知フレームに含まれる前記障害リンク識別子に基づいて、前記自身に接続されるリンクに対してLAGを設定するLAG設定部と、
を有する、中継システム。
【請求項2】
請求項1記載の中継システムにおいて、
前記LAG設定部は、前記自身に接続されるリンクの中の一つのリンクで前記第1障害通知フレームを受信し、残りのリンクで前記第2障害通知フレームを受信し、当該受信した障害通知フレームに含まれる前記障害リンク識別子が全て同一の場合、前記残りのリンクに対してLAGを設定する、中継システム。
【請求項3】
請求項1記載の中継システムにおいて、
前記LAG設定部は、前記自身に接続されるリンクの全てで前記第1障害通知フレームを受信し、当該受信した障害通知フレームに含まれる前記障害リンク識別子が全て同一のポートスイッチに対応する場合、前記自身に接続されるリンクの全てに対してLAGを設定する、中継システム。
【請求項4】
請求項1記載の中継システムにおいて、
前記複数のファブリックスイッチのそれぞれは、さらに、第1制御フレーム生成部を有し、
前記第1制御フレーム生成部は、前記複数のポートスイッチからの第2制御フレームの受信状況に基づいて通信状態が正常なポートスイッチの台数を検出し、前記台数を含む第1制御フレームを第1期間毎に生成し、
前記第1フレーム送信部は、前記第1障害通知フレームに加えて、さらに、前記第1期間毎に生成される前記第1制御フレームを前記複数のポートスイッチに送信し、
前記複数のポートスイッチのそれぞれは、さらに、第2制御フレーム生成部と、接続情報テーブルと、を有し、
前記第2制御フレーム生成部は、前記第2制御フレームを前記第1期間毎に生成し、
前記第2フレーム送信部は、前記第2障害通知フレームに加えて、さらに、前記第1期間毎に生成される前記第2制御フレームを前記複数のファブリックスイッチに送信し、
前記接続情報テーブルは、前記第1制御フレームを受信した際に、前記第1制御フレームに含まれる台数と前記第1制御フレームを受信したリンクとの対応関係を保持し、
前記LAG設定部は、前記障害通知フレームに基づくLAGの設定に加えて、さらに、前記接続情報テーブルの中から最大の台数を検出し、前記最大の台数に対応するリンクに対してLAGを設定し、
前記第1および第2障害検出部は、前記第1期間よりも短い期間で障害を検出する、
中継システム。
【請求項5】
請求項4記載の中継システムにおいて、
前記LAG設定部は、前記第1期間以上の期間である第2期間をカウントするタイマ部を有し、前記接続情報テーブルで保持される台数に変化が生じる際に、前記第2期間を経過後に前記接続情報テーブルに基づくLAGの設定を行う、中継システム。
【請求項6】
複数のファブリックスイッチとの間でリンクを介してそれぞれ接続される複数のスイッチ装置の中の一つのスイッチ装置であって、
前記複数のファブリックスイッチのそれぞれは、自身に接続されるリンクの障害を検出した際には、当該障害有りのリンクを表す障害リンク識別子を含む第1障害通知フレームを前記スイッチ装置に送信し、前記スイッチ装置から第2障害通知フレームを受信した際には、前記第2障害通知フレームをフラッディングし、
前記スイッチ装置は、
自身に接続されるリンクの障害を検出する障害検出部と、
前記障害検出部によって障害が検出された際に、当該障害有りのリンクを表す障害リンク識別子を含む前記第2障害通知フレームを生成する障害通知フレーム生成部と、
前記第2障害通知フレームを前記複数のファブリックスイッチに送信するフレーム送信部と、
前記自身に接続されるリンクの全てで前記第1障害通知フレームまたは前記第2障害通知フレームを受信した際に、当該受信した障害通知フレームに含まれる前記障害リンク識別子に基づいて、前記自身に接続されるリンクに対してLAGを設定するLAG設定部と、
を有する、スイッチ装置。
【請求項7】
請求項6記載のスイッチ装置において、
前記LAG設定部は、前記自身に接続されるリンクの中の一つのリンクで前記第1障害通知フレームを受信し、残りのリンクで前記第2障害通知フレームを受信し、当該受信した障害通知フレームに含まれる前記障害リンク識別子が全て同一の場合、前記残りのリンクに対してLAGを設定する、スイッチ装置。
【請求項8】
請求項6記載のスイッチ装置において、
前記LAG設定部は、前記自身に接続されるリンクの全てで前記第1障害通知フレームを受信し、当該受信した障害通知フレームに含まれる前記障害リンク識別子が全て同一のスイッチ装置に対応する場合、前記自身に接続されるリンクの全てに対してLAGを設定する、スイッチ装置。
【請求項9】
請求項6記載のスイッチ装置において、
前記複数のファブリックスイッチのそれぞれは、さらに、前記複数のスイッチ装置からの第2制御フレームの受信状況に基づいて通信状態が正常なスイッチ装置の台数を検出し、前記台数を含む第1制御フレームを第1期間毎に生成して前記スイッチ装置に送信し、
前記スイッチ装置は、さらに、
前記第2制御フレームを前記第1期間毎に生成する制御フレーム生成部と、
前記第1制御フレームを受信した際に、前記第1制御フレームに含まれる台数と前記第1制御フレームを受信したリンクとの対応関係を保持する接続情報テーブルと、
を有し、
前記フレーム送信部は、前記第2障害通知フレームに加えて、さらに、前記第1期間毎に生成される前記第2制御フレームを前記複数のファブリックスイッチに送信し、
前記LAG設定部は、前記障害通知フレームに基づくLAGの設定に加えて、さらに、前記接続情報テーブルの中から最大の台数を検出し、前記最大の台数に対応するリンクに対してLAGを設定し、
前記障害検出部は、前記第1期間よりも短い期間で障害を検出する、
スイッチ装置。
【請求項10】
請求項9記載のスイッチ装置において、
前記LAG設定部は、前記第1期間以上の期間である第2期間をカウントするタイマ部を有し、前記接続情報テーブルで保持される台数に変化が生じる際に、前記第2期間を経過後に前記接続情報テーブルに基づくLAGの設定を行う、スイッチ装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、中継システムおよびスイッチ装置に関し、例えば、1台のスイッチ装置から複数台のスイッチ装置に向けた通信にリンクアグリゲーションが適用される中継システムに関する。
【背景技術】
【0002】
例えば、特許文献1には、複数の上位スイッチおよび複数の下位スイッチを備えたネットワークシステムにおいて、下位スイッチに自動的にリンクアグリゲーショングループ(以降、LAGと略す)を設定させる方式が示されている。具体的には、各上位スイッチは、自身に接続される下位スイッチの台数を含む制御フレームを各下位スイッチに送信し、各下位スイッチは、当該制御フレームに含まれる台数の内、最大の台数を含む制御フレームを受信したポートに対してLAGを設定する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2013−26708号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
例えば、シャーシ型スイッチ装置の代わりに複数のボックス型スイッチ装置を組み合わせて中継システムを構築する技術が知られている。当該中継システムでは、複数のボックス型スイッチ装置(ここではポートスイッチと呼ぶ)と、各ポートスイッチ間でのフレームの中継を担う複数のボックス型スイッチ装置(ここではファブリックスイッチと呼ぶ)とが設けられる。各ポートスイッチは、複数のファブリックスイッチとの間でそれぞれリンクを持ち、当該複数のリンクに対してLAGを設定する。本明細書では、このような中継システムをボックス型ファブリックシステムと呼ぶ。
【0005】
このようなボックス型ファブリックシステムにおいて、各ポートスイッチは、LAGを設定する際に、特許文献1に示されるような方式を用いることができる。ただし、各ファブリックスイッチは、自身に接続されるポートスイッチの台数を含んだ制御フレームを所定の期間(例えば1s)毎に送信している。各ポートスイッチは、各ファブリックスイッチからの制御フレームに基づいてLAGの設定を行うため、場合によっては、障害が生じてから、当該障害に応じたLAGの設定を完了するまでに、多くの時間を要する場合がある。
【0006】
本発明は、このようなことに鑑みてなされたものであり、その目的の一つは、中継システムおよびスイッチ装置において、障害に応じたLAGの自動設定の高速化を実現することにある。
【0007】
本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【0008】
本願において開示される発明のうち、代表的な実施の形態の概要を簡単に説明すれば、次のとおりである。
【0009】
本実施の形態による中継システムは、複数のポートスイッチと、複数のポートスイッチの間のフレームの中継を担う複数のファブリックスイッチと、を備える。複数のポートスイッチのそれぞれは、複数のファブリックスイッチのそれぞれとリンクによって接続される。複数のファブリックスイッチのそれぞれは、第1障害検出部と、第1障害通知フレーム生成部と、第1フレーム送信部と、を有する。第1障害検出部は、自身に接続されるリンクの障害を検出する。第1障害通知フレーム生成部は、第1障害検出部によって障害が検出された際に、当該障害有りのリンクを表す障害リンク識別子を含む第1障害通知フレームを生成する。第1フレーム送信部は、第1障害通知フレームを複数のポートスイッチに送信し、複数のポートスイッチのいずれかから第2障害通知フレームを受信した際には、第2障害通知フレームをフラッディングする。複数のポートスイッチのそれぞれは、第2障害検出部と、第2障害通知フレーム生成部と、第2フレーム送信部と、LAG設定部と、を備える。第2障害検出部は、自身に接続されるリンクの障害を検出する。第2障害通知フレーム生成部は、第2障害検出部によって障害が検出された際に、当該障害有りのリンクを表す障害リンク識別子を含む前述した第2障害通知フレームを生成する。第2フレーム送信部は、第2障害通知フレームを複数のファブリックスイッチに送信する。LAG設定部は、自身に接続されるリンクの全てで第1障害通知フレームまたは第2障害通知フレームを受信した際に、当該受信した障害通知フレームに含まれる障害リンク識別子に基づいて、自身に接続されるリンクに対してLAGを設定する。
【発明の効果】
【0010】
本願において開示される発明のうち、代表的な実施の形態によって得られる効果を簡単に説明すると、中継システムおよびスイッチ装置において、障害に応じたLAGの自動設定の高速化が実現可能になる。
【図面の簡単な説明】
【0011】
図1】本発明の実施の形態1による中継システムにおいて、その構成例および前提となる動作例を示すブロック図である。
図2】(a)は、図1の中継システムにおいて、そのポートスイッチによるLAG設定時の動作例を示す説明図であり、(b)は、(a)のポートスイッチが備える接続情報テーブルの構成例を示す概略図である。
図3】(a)は、図2(a)とは異なる状況での動作例を示す説明図であり、(b)は、(a)のポートスイッチが備える接続情報テーブルの構成例を示す概略図である。
図4図2(a)および図3(a)とは異なる状況での動作例を示す説明図である。
図5図2(a)等の中継システムにおいて、そのポートスイッチによるLAG設定時の問題点の一例を示すタイミング図である。
図6図2(a)等の中継システムにおいて、そのファブリックスイッチが、通信状態が正常なポートスイッチの台数を検出する際の動作例を示す説明図である。
図7】(a)は、本発明の実施の形態1による中継システムにおいて、そのポートスイッチによるLAG設定時の動作例を示す説明図であり、(b)は、(a)の動作タイミングの一例を示すタイミング図である。
図8】(a)は、図7(a)とは異なる障害状況において、ポートスイッチによるLAG設定時の動作例を示す説明図であり、(b)は、(a)の動作タイミングの一例を示すタイミング図である。
図9図7(a)および図8(a)の中継システムにおいて、そのポートスイッチが障害通知フレームを受信する際の概略的な処理内容の一例を示すフロー図である。
図10図7(a)および図8(a)の中継システムにおいて、そのポートスイッチの主要部の構成例を示すブロック図である。
図11】(a)は、図10におけるLAGテーブルの構成例を示す概略図であり、(b)は、図10におけるアドレステーブルの構成例を示す概略図である。
図12図7(a)および図8(a)の中継システムにおいて、そのファブリックスイッチの主要部の構成例を示すブロック図である。
図13】(a)は、図12におけるPS管理テーブルの構成例を示す概略図であり、(b)は、図12におけるアドレステーブルの構成例を示す概略図である。
図14】本発明の実施の形態2による中継システムにおいて、そのポートスイッチによるLAG設定時の動作例を示すタイミング図である。
図15図14に対応する中継システムの構成例および図14の一部のタイミングにおける中継システムの動作例を示す説明図である。
図16図15の中継システムにおいて、そのポートスイッチの主要部の構成例を示すブロック図である。
【発明を実施するための形態】
【0012】
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらは互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。また、以下の実施の形態において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でも良い。
【0013】
さらに、以下の実施の形態において、その構成要素(要素ステップ等も含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。
【0014】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【0015】
(実施の形態1)
《中継システムの構成および前提動作》
図1は、本発明の実施の形態1による中継システムにおいて、その構成例および前提となる動作例を示すブロック図である。図1に示す中継システム10は、ボックス型ファブリックシステム10で構成される。当該中継システム10は、複数(ここではn台(nは2以上の整数))のポートスイッチPS[1]〜PS[n]と、複数(ここではm台(mは2以上の整数))のファブリックスイッチFS[1]〜FS[m]と、を備える。複数のファブリックスイッチFS[1]〜FS[m]は、複数のポートスイッチPS[1]〜PS[n]の間のフレームの中継を担う。複数のポートスイッチPS[1]〜PS[n]のそれぞれは、複数のファブリックスイッチFS[1]〜FS[m]のそれぞれと、リンクLK[1,1]〜LK[n,m]によって接続される。
【0016】
n台のポートスイッチPS[1]〜PS[n]、およびm台のファブリックスイッチFS[1]〜FS[m]のそれぞれは、ボックス型スイッチ装置で構成される。n台のポートスイッチPS[1]〜PS[n]のそれぞれは、m台のファブリックスイッチFS[1]〜FS[m]の接続用となるm個のファブリックスイッチ用ポートPf[1]〜Pf[m]と、p(pは1以上の整数)個のユーザ用ポートPu[1]〜Pu[p]と、を備える。m台のファブリックスイッチFS[1]〜FS[m]のそれぞれは、n台のポートスイッチPS[1]〜PS[n]の接続用となるn個のポートスイッチ用ポートPp[1]〜Pp[n]を備える。
【0017】
n台のポートスイッチPS[1]〜PS[n]のそれぞれは、自身とm台のファブリックスイッチFS[1]〜FS[m]との間を接続するm本のリンク(すなわちファブリックスイッチ用ポートPf[1]〜Pf[m])に対してLAGを設定する。図1では、ポートスイッチPS[k](k:1〜nの整数)とファブリックスイッチFS[q](q:1〜mの整数)との間を接続するリンクをLK[k,q]としている。ポートスイッチPS[1]は、m台のファブリックスイッチFS[1]〜FS[m]との間のm本のリンクLK[1,1]〜LK[1,m]に対してLAG(LAG[1]とする)を設定する。同様に、ポートスイッチPS[2]は、m本のリンクLK[2,1]〜LK[2,m]に対してLAG(LAG[2]とする)を設定し、ポートスイッチPS[n]は、m本のリンクLK[n,1]〜LK[n,m]に対してLAG(LAG[n]とする)を設定する。
【0018】
以降、ポートスイッチPS[1]〜PS[n]のそれぞれを代表してポートスイッチPSと称し、ファブリックスイッチFS[1]〜FS[m]のそれぞれを代表してファブリックスイッチFSと称する。また、ファブリックスイッチ用ポートPf[1]〜Pf[m]のそれぞれを代表してファブリックスイッチ用ポートPfと称し、ポートスイッチ用ポートPp[1]〜Pp[n]のそれぞれを代表してポートスイッチ用ポートPpと称する。更に、複数のリンクLK[1,1]〜LK[n,m]のそれぞれを代表してリンクLKと称する。ここで、リンクLKとは、通信回線と、その両端のポート(すなわちファブリックスイッチ用ポートPfおよびポートスイッチ用ポートPp)とを含めた集合体を意味する。
【0019】
このような構成において、例えば、ポートスイッチPS[1]のユーザ用ポートPu[1]に接続された端末TM1からポートスイッチPS[2]のユーザ用ポートPu[p]に接続された端末TM4に向けてフレーム(ユーザフレーム)FL1が転送される場合を想定する。この場合、ポートスイッチPS[1]は、ユーザフレームFL1を受信した際に、LAG[1]に伴う所定の分散規則に基づき、その中継先のファブリックスイッチ用ポートPf(言い換えればリンクLK)を定める。この例では、ファブリックスイッチ用ポートPf[1]が定められる。その結果、フレームFL1は、ファブリックスイッチFS[1]を経由する経路でポートスイッチPS[2]および端末TM4に転送される。
【0020】
また、ポートスイッチPS[1]のユーザ用ポートPu[p]に接続された端末TM2からポートスイッチPS[2]のユーザ用ポートPu[1]に接続された端末TM3に向けてフレーム(ユーザフレーム)FL2が転送される場合を想定する。この場合、ポートスイッチPS[1]は、フレームFL2を受信した際に、LAG[1]に伴う所定の分散規則に基づき、その中継先のファブリックスイッチ用ポートPf(リンクLK)を定める。この例では、ファブリックスイッチ用ポートPf[2]が定められる。その結果、フレームFL2は、ファブリックスイッチFS[2]を経由する経路でポートスイッチPS[2]および端末TM3に転送される。なお、仮に、ファブリックスイッチ用ポートPf[2]に障害が有るような場合には、それ以外のファブリックスイッチ用ポートPfが定められる。
【0021】
このように、ボックス型ファブリックシステムを用いると、LAGに伴い、LAG内での負荷分散と冗長性を実現できる。例えば通信帯域を拡大したい場合には、ファブリックスイッチFSを増設すればよく、通信帯域の拡大を容易にかつ低コストで実現可能になる。また、ポートスイッチPSの増設によって、ポート数(すなわちユーザ用ポートPu[1]〜Pu[p])の拡張も容易にかつ低コストで実現可能になる。その結果、当該システムを用いると、シャーシ型スイッチ装置からなるシステムを用いる場合と比較して、ユーザの要求に応じた柔軟なシステムを低コストで構築できる。
【0022】
《ポートスイッチによるLAG設定時の動作(前提)》
図2(a)は、図1の中継システムにおいて、そのポートスイッチによるLAG設定時の動作例を示す説明図であり、図2(b)は、図2(a)のポートスイッチPS[2]が備える接続情報テーブルの構成例を示す概略図である。図2(a)では、図1におけるポートスイッチPSの台数(n)およびファブリックスイッチFSの台数(m)がそれぞれ3台である場合を例とする。図2(a)では、中継システム10に障害が無い場合の動作例が示される。
【0023】
まず、図2(a)に示すように、ファブリックスイッチFS[1]〜FS[3]のそれぞれは、自身に接続されるポートスイッチPS[1]〜PS[3]の中から通信状態が正常なポートスイッチPSの台数を検出する。そして、ファブリックスイッチFS[1]〜FS[3]のそれぞれは、当該検出した台数を含む制御フレーム(第1制御フレーム)CF1を生成し、それを複数のポートスイッチPS[1]〜PS[3]に送信する。
【0024】
図2(a)の例では、ファブリックスイッチFS[1]〜FS[3]は、共に、通信状態が正常なポートスイッチPSの台数が3台であることを検出する。そして、ファブリックスイッチFS[1]〜FS[3]は、共に、ポートスイッチ用ポートPp[1]〜Pp[3]を介して複数のポートスイッチPS[1]〜PS[3]に、3台の情報を含んだ制御フレームCF1を送信する。
【0025】
ポートスイッチPS[1]〜PS[3]のそれぞれは、複数のファブリックスイッチFS[1]〜FS[3]からの各制御フレームCF1を、所定のリンクLK(すなわちファブリックスイッチ用ポートPf[1]〜Pf[3])で受信する。そして、ポートスイッチPS[1]〜PS[3]のそれぞれは、各制御フレームCF1に含まれる台数と各制御フレームCF1を受信したリンク(すなわちファブリックスイッチ用ポートPf)との対応関係を接続情報テーブルに保持する。
【0026】
例えば、ポートスイッチPS[2]は、各ファブリックスイッチ用ポートPf[1]〜Pf[3]で共に3台の情報を含む制御フレームCF1を受信する。これに応じて、図2(b)の接続情報テーブル15には、ファブリックスイッチ用ポートPf[1]〜Pf[3]のポート識別子{Pf[1]}〜{Pf[3]}にそれぞれ3台が対応付けて保持される。本明細書では、例えば、{Pf[1]}は、ファブリックスイッチ用ポートPf[1]の識別子(ID)を表すものとし、以降も同様に、例えば{AA}は、AAの識別子(ID)を表すものとする。
【0027】
同様に、ポートスイッチPS[1],PS[3]も、所定のリンクLK(ファブリックスイッチ用ポートPf[1]〜Pf[3])で共に3台の情報を含む制御フレームCF1を受信するため、図2(b)と同様の情報を持つ接続情報テーブル15を保持する。次いで、ポートスイッチPS[1]〜PS[3]のそれぞれは、接続情報テーブル15の中から最大の台数を検出し、当該最大の台数に対応するリンクLK(すなわちファブリックスイッチ用ポートPf)に対してLAGを設定する。
【0028】
この場合、ポートスイッチPS[1]〜PS[3]は、共に、接続情報テーブル15の中から3台を検出し、当該3台に対応する全てのリンクLK(ファブリックスイッチ用ポートPf[1]〜Pf[3])に対してLAGを設定する。ポートスイッチPS[1]は、リンクLK[1,1]〜LK[1,3](すなわちファブリックスイッチ用ポートPf[1]〜Pf[3])に対してLAG[1]を設定する。同様に、ポートスイッチPS[2]は、リンクLK[2,1]〜LK[2,3](ファブリックスイッチ用ポートPf[1]〜Pf[3])に対してLAG[2]を設定し、ポートスイッチPS[3]も、各リンクLK(ファブリックスイッチ用ポートPf[1]〜Pf[3])に対してLAG[3]を設定する。
【0029】
図3(a)は、図2(a)とは異なる状況での動作例を示す説明図であり、図3(b)は、図3(a)のポートスイッチPS[2]が備える接続情報テーブルの構成例を示す概略図である。図3(a)では、中継システム10に、リンクLK[1,1]のリンク障害が有る場合の動作例が示される。
【0030】
この場合、ファブリックスイッチFS[1]は、自身に接続されるポートスイッチPS[1]〜PS[3]の中から通信状態が正常なポートスイッチPSの台数が2台であることを検出する。そして、ファブリックスイッチFS[1]は、ポートスイッチ用ポートPp[1]〜Pp[3]を介して複数のポートスイッチPS[1]〜PS[3]に、2台の情報を含んだ制御フレームCF1を送信する。この際に、ファブリックスイッチFS[1]は、リンク障害が生じているリンクLK[1,1](すなわちポートスイッチ用ポートPp[1])に対しては、必ずしも制御フレームCF1を送信する必要はない。
【0031】
また、ファブリックスイッチFS[2],FS[3]は、共に、通信状態が正常なポートスイッチPSの台数が3台であることを検出する。そして、ファブリックスイッチFS[2],FS[3]は、共に、ポートスイッチ用ポートPp[1]〜Pp[3]を介して複数のポートスイッチPS[1]〜PS[3]に、3台の情報を含んだ制御フレームCF1を送信する。
【0032】
ポートスイッチPS[1]〜PS[3]のそれぞれは、各制御フレームCF1に含まれる台数と各制御フレームCF1を受信したリンクLK(すなわちファブリックスイッチ用ポートPf)との対応関係を接続情報テーブルに保持する。例えば、ポートスイッチPS[2]は、ファブリックスイッチ用ポートPf[1]で2台の情報を含む制御フレームCF1を受信し、ファブリックスイッチ用ポートPf[2],Pf[3]で3台の情報を含む制御フレームCF1を受信する。
【0033】
これに応じて、ポートスイッチPS[2]の接続情報テーブル15には、図3(b)に示すように、ポート識別子{Pf[1]}に2台が対応付けて保持され、ポート識別子{Pf[2]},{Pf[3]}に3台が対応付けて保持される。ポートスイッチPS[3]の接続情報テーブル15も、図3(b)と同様の情報を持つ。また、ポートスイッチPS[1]の接続情報テーブル15に関し、ポート識別子{Pf[2]},{Pf[3]}には3台が対応付けて保持されるが、ポート識別子{Pf[1]}には、ファブリックスイッチ用ポートPf[1]で制御フレームCF1を受信できないため、特に限定はされないが、0台等が対応付けて保持される。
【0034】
次いで、ポートスイッチPS[1]〜PS[3]のそれぞれは、接続情報テーブル15に基づいてLAGを設定する。この場合、ポートスイッチPS[1]〜PS[3]は、共に、接続情報テーブル15の中から3台を検出し、当該3台に対応するファブリックスイッチ用ポートPf[2],Pf[3]に対してLAGを設定する。すなわち、ポートスイッチPS[1]は、リンクLK[1,2],LK[1,3](ファブリックスイッチ用ポートPf[2],Pf[3])に対してLAG[1]を設定する。
【0035】
同様に、ポートスイッチPS[2]は、リンクLK[2,2],LK[2,3](ファブリックスイッチ用ポートPf[2],Pf[3])に対してLAG[2]を設定し、ポートスイッチPS[3]も、所定のリンクLK(ファブリックスイッチ用ポートPf[2],Pf[3])に対してLAG[3]を設定する。言い換えれば、ポートスイッチPS[1]〜PS[3]は、図2(a)の状態を基準として、リンクLK[1,1]のリンク障害に伴い、ファブリックスイッチ用ポートPf[1]をLAGから除外する。
【0036】
図4は、図2(a)および図3(a)とは異なる状況での動作例を示す説明図である。図4では、中継システム10に、ポートスイッチPS[1]の障害が有る場合の動作例が示される。この場合、ファブリックスイッチFS[1]〜FS[3]は、共に通信状態が正常なポートスイッチPSの台数が2台であることを検出する。そして、ファブリックスイッチFS[1]〜FS[3]は、ポートスイッチ用ポートPp[2],Pp[3](加えてPp[1])を介して複数のポートスイッチPS[2],PS[3](加えてPS[1])に、2台の情報を含んだ制御フレームCF1を送信する。
【0037】
ポートスイッチPS[2],PS[3]のそれぞれは、各ファブリックスイッチ用ポートPf[1]〜Pf[3]で共に2台の情報を含む制御フレームCF1を受信する。これに応じて、ポートスイッチPS[2],PS[3]の接続情報テーブル15は、共に、図2(b)における「3台」が「2台」に変更されたような内容を保持する。ポートスイッチPS[2],PS[3]は、共に、当該接続情報テーブル15の中から2台を検出し、当該2台に対応する全てのリンクLK(ファブリックスイッチ用ポートPf[1]〜Pf[3])に対してLAGを設定する。その結果、ポートスイッチPS[2],PS[3]におけるLAGの設定状態は、障害が無い図2(a)の場合と同様になる。
【0038】
《ポートスイッチによるLAG設定時の動作(問題点)》
図5は、図2(a)等の中継システムにおいて、そのポートスイッチによるLAG設定時の問題点の一例を示すタイミング図である。各ファブリックスイッチFSは、図5に示すように、図2(a)等に示した制御フレームCF1を、所定の期間(Tc)毎に送信している。この制御フレームCF1の送信間隔(第1期間)Tcは、例えば、1s等である。ここで、図5に示すように、例えば、各ファブリックスイッチFSから制御フレームCF1が送信されたタイミングt1の直後に障害が発生した場合を想定する。
【0039】
この場合、各ポートスイッチPSは、このタイミングt1から第1期間Tcを経過した後のタイミングt2で送信された各ファブリックスイッチFSからの制御フレームCF1を受信することで、当該障害の発生を知ることができる。そして、各ポートスイッチPSは、図3(a)および図4に示したように、この障害の発生状況に応じたLAGの設定を行う。したがって、場合によっては、障害が生じてから、当該障害に応じたLAGの設定を完了するまでに、第1期間Tc以上の時間を要する場合がある。例えば、図3(a)のようなリンク障害が生じた場合、各ポートスイッチ(例えばPS[2])は、このLAGの設定が完了するまでの間、ファブリックスイッチ用ポートPf[1]からポートスイッチPS[1]に向けたユーザフレームを送信してしまうため、ユーザフレームのロスが生じる。
【0040】
《ファブリックスイッチによる台数検出方法(前提)》
図6は、図2(a)等の中継システムにおいて、そのファブリックスイッチが、通信状態が正常なポートスイッチの台数を検出する際の動作例を示す説明図である。図6に示すように、各ポートスイッチPS[1]〜PS[3]は、例えば、自身のポートスイッチPSの識別子を含んだ制御フレーム(第2制御フレーム)CF2を、複数のファブリックスイッチFS[1]〜FS[3]に定期的に送信する。この制御フレームCF2の送信間隔は、例えば、前述した制御フレームCF1の送信間隔(第1期間)Tcと同じ値に設定される。
【0041】
各ファブリックスイッチFS[1]〜FS[3]は、例えば、この制御フレームCF2の受信状況に基づいて、ポートスイッチPS[1]〜PS[3]の中から通信状態が正常なポートスイッチPSの台数を検出することができる。具体的には、各ファブリックスイッチFS[1]〜FS[3]は、例えば、制御フレームCF2を、その送信間隔に基づく所定の期間内に受信できたか否かによって、台数を検出することができる。
【0042】
《ポートスイッチによるLAG設定時の動作(本実施の形態)》
図7(a)は、本発明の実施の形態1による中継システムにおいて、そのポートスイッチによるLAG設定時の動作例を示す説明図であり、図7(b)は、図7(a)の動作タイミングの一例を示すタイミング図である。図7(a)には、図3(a)の場合と同様に、リンクLK[1,1]にリンク障害が生じた場合の動作例が示されている。
【0043】
まず、図7(a)では、図3(a)の場合と異なり、ポートスイッチPS[1]〜PS[3]およびファブリックスイッチFS[1]〜FS[3]のそれぞれは、ハードウェアからなる障害検出部によって、自身に接続されるリンクLKの障害を検出する。当該障害検出部は、前述した制御フレームCF1,CF2を用いる方式とは異なり、特に限定はされないが、受信した信号レベルの大きさや、FLP(Fast Link Pulse)等のリンクパルスの受信可否等によって障害を検出する。したがって、当該障害検出部は、例えば1s等の値を持つ制御フレームCF1,CF2の送信間隔(第1期間)Tcによりも十分に短い期間で障害を検出することができ、特に限定はされないが、数十ms〜数百ms等の期間で障害を検出することができる。
【0044】
ファブリックスイッチFS[1]は、自身の障害検出部によってリンクLK[1,1]の障害を検出し、当該障害有りのリンクを表す障害リンク識別子(例えば{LK[1,1]})を含む障害通知フレーム(第1を障害通知フレーム)DF1aを生成する。そして、ファブリックスイッチFS[1]は、当該障害通知フレームDF1aを複数のポートスイッチPS[2],PS[3](又は加えてPS[1])に送信する。なお、障害リンク識別子は、リンクLK[1,1]を特定できる識別子であればよく、各リンクLKの識別子が直接的に存在する場合にはその識別子を用いればよく、そうでない場合には、例えば、間接的にリンクLKを特定可能なポートPp[1]のポート識別子{Pp[1]}等を用いてもよい。
【0045】
ポートスイッチPS[1]は、自身の障害検出部によってリンクLK[1,1]の障害を検出し、当該障害有りのリンクを表す障害リンク識別子(例えば{LK[1,1]})を含む障害通知フレーム(第2障害通知フレーム)DF2aを生成する。そして、ポートスイッチPS[1]は、当該障害通知フレームDF2aを複数のファブリックスイッチFS[2],FS[3]に送信する。ここで、ファブリックスイッチFS[2],FS[3]のそれぞれは、障害通知フレームDF2aを受信した際に、当該障害通知フレームDF2aを、それを受信したリンクLK(すなわちポートスイッチ用ポートPp[1])を除くリンクLK(ポートスイッチ用ポートPp[2],Pp[3])に中継する。言い換えれば、ファブリックスイッチFS[2],FS[3]は、障害通知フレームDF2aを受信した際に、それをフラッディングする。
【0046】
ポートスイッチPS[2],PS[3]は、自身に接続されるリンクの全てで第1または第2障害通知フレームを受信した際に、当該障害通知フレームに含まれる障害リンク識別子に基づいて、自身に接続されるリンクに対してLAGを設定する。ここでは、ポートスイッチPS[2],PS[3]は、共に、ファブリックスイッチ用ポートPf[1]に対応する一つのリンクLKで障害通知フレーム(第1障害通知フレーム)DF1aを受信し、ファブリックスイッチ用ポートPf[2],Pf[3]に対応する残りの二つのリンクLKで障害通知フレーム(第2障害通知フレーム)DF2aを受信する。そして、この障害通知フレームDF1a,DF2aに含まれる障害リンク識別子は、全て同一(すなわち{LK[1,1]})となっている。
【0047】
この場合、ポートスイッチPS[2],PS[3]は、当該障害リンク識別子({LK[1,1]})が表すリンク[1,1]におけるリンク障害と判定し、障害通知フレームDF2aを受信した残りの二つのリンクLKに対してLAGを設定する。ポートスイッチPS[2]は、リンクLK[2,2],LK[2,3](すなわちファブリックスイッチ用ポートPf[2],Pf[3])に対してLAG[2]を設定する。ポートスイッチPS[3]は、リンクLK[3,2],LK[3,3](ファブリックスイッチ用ポートPf[2],Pf[3])に対してLAG[3]を設定する。
【0048】
なお、ポートスイッチPS[1]は、自身の障害検出部によってリンクLK[1,1]の障害を検出し、これに基づいて、リンクLK[1,1]を除くリンクLK[1,2],LK[1,3](ファブリックスイッチ用ポートPf[2],Pf[3])に対してLAG[1]を設定する。
【0049】
図7(a)のようなLAGの設定動作は、例えば、図7(b)のようなタイミングで行われる。図7(b)では、障害が発生したのち、図5に示した第1期間Tcよりも十分に短い期間を経たタイミングtaで、ファブリックスイッチFS[1]およびポートスイッチPS[1]が当該障害を検出し、即座に障害通知フレーム(DF1aおよびDF2a)を送信している。そして、タイミングtaから、第1期間Tcよりも十分に短い期間を経たタイミングtbで、ファブリックスイッチFS[2],FS[3]が障害通知フレームDF2aをフラッディングしている。
【0050】
ポートスイッチPS[2],PS[3]は、この障害通知フレームDF2aを受信した段階でLAGの設定を行うことができる。また、ポートスイッチPS[1]は、例えば、タイミングtaの段階でLAGの設定を行うことができる。その結果、図5の場合と比較して、障害が生じてから、当該障害に応じたLAGの設定を完了するまでの期間を短縮することが可能になる。言い換えれば、障害に応じたLAGの自動設定の高速化が実現可能になる。また、これに伴い、図5で述べたようなユーザフレームのロスを低減することが可能になる。
【0051】
図8(a)は、図7(a)とは異なる障害状況において、ポートスイッチによるLAG設定時の動作例を示す説明図であり、図8(b)は、図8(a)の動作タイミングの一例を示すタイミング図である。図8(a)には、図4の場合と同様に、ポートスイッチPS[1]に障害が生じた場合の動作例が示されている。
【0052】
図8(a)において、ファブリックスイッチFS[1]は、図7(a)の場合と同様に、自身の障害検出部によってリンクLK[1,1]の障害を検出し、当該障害有りのリンクを表す障害リンク識別子(例えば{LK[1,1]})を含む障害通知フレーム(第1障害通知フレーム)DF1aを生成する。そして、ファブリックスイッチFS[1]は、当該障害通知フレームDF1aを複数のポートスイッチPS[2],PS[3](又は加えてPS[1])に送信する。
【0053】
また、ファブリックスイッチFS[2]も、自身の障害検出部によってリンクLK[1,2]の障害を検出し、当該障害有りのリンクを表す障害リンク識別子(例えば{LK[1,2]})を含む障害通知フレーム(第1を障害通知フレーム)DF1bを生成する。そして、ファブリックスイッチFS[2]は、当該障害通知フレームDF1bを複数のポートスイッチPS[2],PS[3](又は加えてPS[1])に送信する。同様に、ファブリックスイッチFS[3]も、リンクLK[1,3]の障害を検出し、障害リンク識別子(例えば{LK[1,3]})を含む障害通知フレーム(第1障害通知フレーム)DF1cを生成する。そして、ファブリックスイッチFS[3]は、当該障害通知フレームDF1cを複数のポートスイッチPS[2],PS[3](又は加えてPS[1])に送信する。
【0054】
ポートスイッチPS[2],PS[3]は、自身に接続されるリンクの全てで第1または第2障害通知フレームを受信した際に、当該障害通知フレームに含まれる障害リンク識別子に基づいて、自身に接続されるリンクに対してLAGを設定する。ここでは、ポートスイッチPS[2],PS[3]は、共に、自身に接続されるリンクLK(すなわちファブリックスイッチ用ポートPf[1]〜Pf[3])の全てで障害通知フレーム(第1障害通知フレーム)DF1a,DF1b,DF1cを受信している。そして、この障害通知フレームDF1a,DF1b,DF1cに含まれる障害リンク識別子は、全て同一のポートスイッチPS[1]に対応している。
【0055】
この場合、ポートスイッチPS[2],PS[3]は、当該障害リンク識別子に対応するポートスイッチPS[1]の障害と判定し、自身に接続されるリンクLK(ファブリックスイッチ用ポートPf[1]〜Pf[3])の全てに対してLAGを設定する。ポートスイッチPS[2]は、リンクLK[2,1]〜LK[2,3](すなわちファブリックスイッチ用ポートPf[1]〜Pf[3])に対してLAG[2]を設定する。ポートスイッチPS[3]は、リンクLK[3,1]〜LK[3,3](ファブリックスイッチ用ポートPf[1]〜Pf[3])に対してLAG[3]を設定する。
【0056】
図8(a)のようなLAGの設定動作は、例えば、図8(b)のようなタイミングで行われる。図8(b)では、障害が発生したのち、図5に示した第1期間Tcよりも十分に短い期間を経たタイミングtaで、ファブリックスイッチFS[1]〜FS[3]が当該障害を検出し、即座に障害通知フレームDF1a〜DF1cを送信している。ポートスイッチPS[2],PS[3]は、この障害通知フレームDF1a〜DF1cを受信した段階でLAGの設定を行うことができる。その結果、図7(b)の場合と同様に、障害に応じたLAGの自動設定の高速化が実現可能になり、また、ユーザフレームのロスを低減することが可能になる。
【0057】
なお、図7(a)および図8(a)の構成および動作において、例えば、各ポートスイッチPS[1]〜PS[1]が前述したような障害検出部を備えない構成が考えられる。この場合、図7(a)において、例えば、ポートスイッチPS[2]は、ファブリックスイッチFS[1]からの障害通知フレームDF1aを受信し、ファブリックスイッチFS[2],FS[3]からは障害通知フレームを受信しない場合に、リンク障害と判別することができる。一方、図8(a)のように、ポートスイッチPS[2]は、全てのファブリックスイッチFS[1]〜FS[3]から障害通知フレームを受信した場合に、ポートスイッチPSの障害と判別することができる。
【0058】
しかしながら、障害の判別にあたり、このように受信しない場合を条件とすると、それを判別するためのある程度の待ち時間が必要となるため、障害の判別およびそれに応じたLAGの設定を高速に行えない場合が生じ得る。このため、前述したように、各ポートスイッチPS[1]〜PS[1]に障害検出部を設け、これによる障害通知フレームを各ファブリックスイッチFSで中継させることが有益となる。
【0059】
《障害通知フレームの受信処理》
図9は、図7(a)および図8(a)の中継システムにおいて、そのポートスイッチが障害通知フレームを受信する際の概略的な処理内容の一例を示すフロー図である。図9の障害通知フレーム受信処理において、ポートスイッチPSは、自身に接続されるリンクLK(すなわち各ポートスイッチ用ポートPf)のいずれかで障害通知フレーム(第1障害通知フレーム)を受信する(ステップS101)。次いで、ポートスイッチPSは、残りの全てのポートスイッチ用ポートPfで障害通知フレームを受信したか否かを判別する(ステップS102)。
【0060】
ポートスイッチPSは、残りの全てのポートスイッチ用ポートPfで障害通知フレームを受信した場合、図7(a)および図8(a)に示したように、障害通知フレームに応じたLAGの設定を行い、処理を終了する(ステップS103)。一方、ポートスイッチPSは、残りの全てのポートスイッチ用ポートPfで、所定の期間内に障害通知フレームを受信できなかった場合には、処理を終了する(ステップS104)。この所定の期間は、図7(b)等に示した第1期間Tcよりも短く、特に限定はされないが、第1期間Tcの半分以下の期間等としてもよい。
【0061】
ここで、例えば、リンク障害が1箇所ではなく、複数箇所生じた場合や、その他、何らかの問題によって、ポートスイッチPSが一部のポートスイッチ用ポートPfでしか障害通知フレームを受信できない場合が考えられる。この場合、ポートスイッチPSは、図9に示したように、所定の期間を経過後、特に何も行わずに処理を終了する。また、ポートスイッチPSは、図9のステップS103において、障害リンク識別子の内容から障害箇所を判別できないような場合にも、特に何も行わずに処理を終了する。
【0062】
このように、障害通知フレームを用いると、障害に応じたLAGの設定を高速に行えるが、その一方で、障害に応じたLAGの設定を適切に行えない場合が生じる恐れがある。さらに、場合によっては、図7(a)および図8(a)で述べたような障害検出部では、検出し難い障害が生じることも考えられる。そこで、実際には、図7(a)および図8(a)のような、障害通知フレームを用いた障害の検出およびLAGの設定と、図3(a)、図4図6等で述べたような、制御フレームCF1,CF2を用いた障害の検出およびLAGの設定とを並行して行うことが望ましい。
【0063】
この場合、障害通知フレームに基づいてLAGの設定を行える場合には、それを高速に行うことができ、障害通知フレームに基づいてLAGの設定を行えない場合(例えば図9で述べたように特に何も行わずに処理を終了した場合)であっても、制御フレームCF1(言い換えれば接続情報テーブル15)に基づいてLAGの設定を行うことができる。制御フレームCF1,CF2を用いた場合、障害検出部では検出し難い障害を検出することができ、また、障害箇所が複数存在する場合にも、LAGの設定を適切に行うことができる。
【0064】
例えば、図3(a)において、更に、リンクLK[2,2]にもリンク障害が生じたような場合を想定する。この場合、ファブリックスイッチFS[3]のみが3台を検出することになり、これに応じて、各ポートスイッチPSは、ファブリックスイッチ用ポートPf[3]のみにLAGを設定する。
【0065】
《ポートスイッチ(スイッチ装置)の構成および動作》
図10は、図7(a)および図8(a)の中継システムにおいて、そのポートスイッチの主要部の構成例を示すブロック図である。図11(a)は、図10におけるLAGテーブルの構成例を示す概略図であり、図11(b)は、図10におけるアドレステーブルの構成例を示す概略図である。図10に示すポートスイッチ(スイッチ装置)PSは、複数のファブリックスイッチ用ポートPf[1]〜Pf[m]と、複数のユーザ用ポートPu[1]〜Pu[p]と、各種処理部および各種テーブルと、を備える。ファブリックスイッチ用ポートPf[1]〜Pf[m]には、LAG[n]が設定される。以下、この各種処理部および各種テーブルに関して説明する。
【0066】
インタフェース部25は、受信バッファおよび送信バッファを備え、複数のポート(Pf[1]〜Pf[m],Pu[1]〜Pu[p])との間でフレーム(ユーザフレーム、制御フレームまたは障害通知フレーム)の送信または受信を行う。インタフェース部25は、図7(a)および図8(a)で述べたように、自身に接続されるリンク(すなわち各ファブリックスイッチ用ポートPf)の障害を検出する障害検出部(第2障害検出部)36を含んでいる。障害検出部36は、障害を検出した際に、当該障害有りのリンクを表す障害リンク識別子を障害通知フレーム生成部28およびLAG設定部29に送信する。
【0067】
フレーム識別部26は、複数のポートのいずれかで受信され、インタフェース部25の受信バッファを介して伝送されたフレームに対して、当該フレームがユーザフレームか、制御フレームか、障害通知フレームかを識別する。ユーザフレームは、図1に示したように、各端末(TM1〜TM4)等が送信するフレーム(FL1,FL2)である。制御フレームは、図2(a)や図6等に示したように、ポートスイッチPSやファブリックスイッチFSが送信する制御用のフレーム(CF1,CF2)である。障害通知フレームは、図7(a)および図8(a)に示したように、ポートスイッチPSやファブリックスイッチFSが送信する障害通知用のフレーム(DF1a〜DF1c,DF2a)である。
【0068】
制御フレームや障害通知フレームは、ユーザフレームと同様に、イーサネット(登録商標)のフレームフォーマットを備えることができる。例えば、図2(a)のファブリックスイッチFS[1]が送信する制御フレームCF1は、特に限定はされないが、送信元のMAC(Media Access Control)アドレスにファブリックスイッチFS[1]のMACアドレスが格納され、宛先のMACアドレスに、複数のポートスイッチPS[1]〜PS[3]に対応するマルチキャストのMACアドレスが格納される。また、当該制御フレームCF1は、フレームタイプに制御フレームを意味する所定が識別子が格納され、データ部に前述した台数が格納される。
【0069】
また、図7(a)のファブリックスイッチFS[1]が送信する障害通知フレームDF1aは、送信元のMACアドレスにファブリックスイッチFS[1]のMACアドレスが格納され、宛先のMACアドレスに、複数のポートスイッチPS[1]〜PS[3]に対応するマルチキャストのMACアドレスが格納される。さらに、当該障害通知フレームDF1aは、フレームタイプに障害通知フレームを意味する所定が識別子が格納され、データ部に前述した障害リンク識別子が格納される。
【0070】
また、図7(a)のポートスイッチPS[1]が送信する障害通知フレームDF2aは、送信元のMACアドレスにポートスイッチPS[1]のMACアドレスが格納され、宛先のMACアドレスに、複数のポートスイッチPS[1]〜PS[3]に対応するマルチキャストのMACアドレスが格納される。さらに、当該障害通知フレームDF2aは、フレームタイプに障害通知フレームを意味する所定が識別子が格納され、データ部に障害リンク識別子が格納される。
【0071】
フレーム識別部26は、例えば、このフレームタイプ等によってユーザフレームか、制御フレームか、障害通知フレームかを識別する。フレーム識別部26は、対象となるフレームが障害通知フレームの場合には、当該障害通知フレームを、障害通知フレーム受信部27に送信する。フレーム識別部26は、対象となるフレームが制御フレームの場合には、当該制御フレームを制御フレーム受信部30に送信し、ユーザフレームの場合には、当該ユーザフレームをFDB処理部32に送信する。また、この際に、フレーム識別部26は、フレームに、当該フレームを受信したポートのポート識別子(受信ポート識別子)を付加する。
【0072】
障害通知フレーム受信部27は、自身に接続されるリンク(すなわちファブリックスイッチ用ポートPf)の全てで障害通知フレーム(第1または第2障害通知フレーム)を受信したか否かを判別する。そして、障害通知フレーム受信部27は、全てで受信した場合には、障害通知フレームに含まれる障害リンク識別子を検出し、それをLAG設定部29に送信する。LAG設定部29は、この障害リンク識別子に基づいて、図7(a)および図8(a)で述べたようなLAGの設定を行う。また、LAG設定部29は、図7(a)のポートスイッチPS[1]の場合のように、障害検出部36から障害リンク識別子が送信された際にもLAGの設定を行う。
【0073】
LAG設定部29は、具体的には、図11(a)に示すようなLAGテーブル34の設定を行う。図11(a)のLAGテーブル34は、LAG[n]の識別子{LAG[n]}と、当該LAG[n]が設定されるポートのポート識別子との対応関係を保持する。例えば、図7(a)のポートスイッチPS[2]の場合には、{LAG[2]}に、{Pf[2]}および{Pf[3]}を対応付ける設定を行う。また、図8(a)のポートスイッチPS[2]の場合には、{LAG[2]}に、{Pf[1]}〜{Pf[3]}を対応付ける設定を行う。
【0074】
障害通知フレーム生成部(第2障害通知フレーム生成部)28は、図7(a)のポートスイッチPS[1]の場合のように、障害検出部(第2障害検出部)36によって障害が検出された際に、障害リンク識別子を含む障害通知フレーム(第2障害通知フレーム)を生成する。この際に、障害通知フレーム生成部28は、例えば、生成した障害通知フレームに、宛先のポートを表すポート識別子(宛先ポート識別子)を付加する。この宛先ポート識別子は、図7(a)のポートスイッチPS[1]の場合には、{Pf[2]}と{Pf[3]}である。障害通知フレーム生成部28は、この宛先ポート識別子を付加した障害通知フレームを中継実行部(第2フレーム送信部)35に送信する。
【0075】
制御フレーム受信部30は、フレーム識別部26からの制御フレームに含まれる台数を検出し、当該台数を、当該制御フレームに付加される受信ポート識別子に対応付けて接続情報テーブル15に登録する。その結果、接続情報テーブル15は、図2(b)および図3(b)に示したように、制御フレームに含まれる台数と制御フレームを受信したポートとの対応関係を保持する。LAG設定部29は、前述した障害通知フレームに基づくLAGの設定に加えて、さらに、接続情報テーブル15の中から最大の台数を検出し、当該最大の台数に対応するポートに対してLAGを設定する。すなわち、LAG設定部29は、前述したように、LAGテーブル34を設定する。
【0076】
FDB処理部32は、フレーム識別部26からのユーザフレームを対象に、図11(b)に示すようなアドレステーブルFDB1の処理(学習および検索)を行う。具体的には、FDB処理部32は、ユーザフレームに含まれる送信元のMACアドレスと、ユーザフレームを受信したポート(フレーム識別部26で付加される受信ポート識別子)との対応関係をアドレステーブルFDB1に学習する。また、FDB処理部32は、ユーザフレームに含まれる宛先のMACアドレスに対応する宛先のポートをアドレステーブルFDB1から検索する。
【0077】
図11(b)に示すアドレステーブルFDB1は、ポート識別子(例えば{Pu[1]})と、当該ポート識別子に対応するポートの先に存在するMACアドレス(例えばMAxx)との対応関係を保持する。ただし、ポート識別子に対応するポートが、LAG[n]が設定されたポート(すなわちファブリックスイッチ用ポートPf)である場合、アドレステーブルFDB1は、ポート識別子の代わりにLAG[n]の識別子{LAG[n]}を保持する。例えば、前述したフレーム識別部26は、LAG[n]が設定されたポートでユーザフレームを受信した場合、受信ポート識別子として{LAG[n]}を付加する。
【0078】
FDB処理部32は、アドレステーブルFDB1から得られた宛先のポートがユーザ用ポートPu[1]〜Pu[p]である場合には、ユーザフレームに宛先ポート識別子を付加して中継実行部35に送信する。一方、FDB処理部32は、宛先のポートが、LAG[n]が設定されたポートの場合には、ユーザフレームをLAG分散部33に送信する。LAG分散部33は、LAGテーブル34に基づいてLAG[n]が設定された各ポートを認識し、所定の分散規則に基づいて当該各ポートの中のいずれかのポート(すなわちファブリックスイッチ用ポートPf)を宛先のポートに決定する。LAG分散部33は、この宛先のポートに基づいて、ユーザフレームに宛先ポート識別子を付加して中継実行部35に送信する。
【0079】
制御フレーム生成部(第2制御フレーム生成部)31は、図6で述べたように、自身のポートスイッチPSの識別子を複数のファブリックスイッチFSに通知するための制御フレーム(第2制御フレーム)CF2を生成する。そして、制御フレーム生成部31は、生成した制御フレームCF2に宛先ポート識別子を付加して中継実行部35に送信する。宛先ポート識別子は、図6のポートスイッチPS[1]の場合、{Pf[1]}〜{Pf[3]}である。
【0080】
中継実行部35は、FDB処理部32またはLAG分散部33からのユーザフレームを、インタフェース部25内の所定の送信バッファに向けて送信する。この所定の送信バッファは、当該ユーザフレームに付加されている宛先ポート識別子に対応するバッファである。インタフェース部25内の送信バッファは、中継実行部35からのユーザフレームを受けて、対応するポートにフレームを送信する。
【0081】
また、中継実行部(第2フレーム送信部)35は、障害通知フレーム生成部28からの障害通知フレーム(第2障害通知フレーム)および制御フレーム生成部31からの制御フレーム(第2制御フレーム)CF2を、インタフェース部25内の所定の送信バッファに送信する。ここでは、前述したように宛先ポート識別子として複数のファブリックスイッチ用ポートPfのポート識別子が付加されているため、それに対応する送信バッファが選択される。その結果、障害通知フレーム(第2障害通知フレーム)および制御フレーム(第2制御フレーム)CF2は、インタフェース部25を介して複数のファブリックスイッチFSに送信される。
【0082】
《ファブリックスイッチの構成および動作》
図12は、図7(a)および図8(a)の中継システムにおいて、そのファブリックスイッチの主要部の構成例を示すブロック図である。図13(a)は、図12におけるPS管理テーブルの構成例を示す概略図であり、図13(b)は、図12におけるアドレステーブルの構成例を示す概略図である。図12に示すファブリックスイッチFSは、複数のポートスイッチ用ポートPp[1]〜Pp[n]と、各種処理部および各種テーブルと、を備える。以下、この各種処理部および各種テーブルに関して説明する。
【0083】
インタフェース部40は、受信バッファおよび送信バッファを備え、複数のポートスイッチ用ポートPp[1]〜Pp[n]との間でフレーム(ユーザフレーム、制御フレームまたは障害通知フレーム)の送信または受信を行う。インタフェース部40は、図7(a)および図8(a)で述べたように、自身に接続されるリンク(すなわち各ポートスイッチ用ポートPp)の障害を検出する障害検出部(第1障害検出部)49を含んでいる。障害検出部49は、障害を検出した際に、当該障害有りのリンクを表す障害リンク識別子を障害通知フレーム生成部43に送信する。
【0084】
フレーム識別部41は、複数のポートスイッチ用ポートPp[1]〜Pp[n]のいずれかで受信され、インタフェース部49の受信バッファを介して伝送されたフレームに対して、当該フレームがユーザフレームか、制御フレームか、障害通知フレームかを識別する。具体的には、図10の場合と同様に、フレーム識別部41は、例えば、フレームタイプ等によって識別を行う。
【0085】
フレーム識別部41は、対象となるフレームが障害通知フレーム(第2障害通知フレーム)の場合には、当該障害通知フレームを障害通知フレーム中継部42に送信する。また、フレーム識別部41は、対象となるフレームが制御フレームの場合には、当該制御フレームを制御フレーム受信部44に送信し、ユーザフレームの場合には、当該ユーザフレームをFDB処理部47に送信する。また、この際に、フレーム識別部41は、図10の場合と同様、当該フレームに受信ポート識別子を付加する。
【0086】
障害通知フレーム生成部(第1障害通知フレーム生成部)43は、図7(a)のファブリックスイッチFS[1]の場合のように、障害検出部(第1障害検出部)49によって障害が検出された際に、障害リンク識別子を含む障害通知フレーム(第1障害通知フレーム)を生成する。この際に、障害通知フレーム生成部43は、例えば、生成した障害通知フレームに、宛先のポートを表すポート識別子(宛先ポート識別子)を付加する。この宛先ポート識別子は、図7(a)のファブリックスイッチFS[1]の場合には、{Pp[2]}と{Pp[3]}である。障害通知フレーム生成部43は、この宛先ポート識別子を付加した障害通知フレーム(第1障害通知フレーム)を中継実行部(第1フレーム送信部)48に送信する。
【0087】
障害通知フレーム中継部42は、図7(a)のファブリックスイッチFS[2]の場合のように、フレーム識別部41からの障害通知フレーム(第2障害通知フレーム)をフラッディングするため、当該障害通知フレームに所定の宛先ポート識別子を付加する。この宛先ポート識別子は、図7(a)のファブリックスイッチFS[2]の場合、{Pp[2]}と{Pp[3]}である。障害通知フレーム中継部42は、この宛先ポート識別子を付加した障害通知フレーム(第2障害通知フレーム)を中継実行部(第1フレーム送信部)48に送信する。
【0088】
制御フレーム受信部44は、フレーム識別部41からの制御フレーム(すなわち図6に示した制御フレームCF2)に含まれるポートスイッチPSの識別子を検出し、その情報をPS管理テーブル45に設定する。PS管理テーブル45は、図13(a)に示すように、制御フレーム(第2制御フレーム)CF2に付加された受信ポート識別子(例えば{Pp[1]})と、当該制御フレームCF2に含まれるポートスイッチPSの識別子(例えば{PS[1]})との対応関係を保持する。制御フレーム受信部44は、例えば、障害に伴い制御フレームCF2を所定の期間内に受信できなくなった場合、PS管理テーブル45における対応するエントリを削除したり、または、当該エントリに当該エントリが無効である旨の情報を付加するような処理を行う。
【0089】
制御フレーム生成部(第1制御フレーム生成部)46は、PS管理テーブル45に基づいて、通信状態が正常なポートスイッチPSの台数を検出し、当該台数を含む制御フレーム(すなわち図2(a)等のCF1)を生成する。そして、制御フレーム生成部46は、生成した制御フレームに所定の宛先ポート識別子を付加して、中継実行部(第1フレーム送信部)48に送信する。当該宛先ポート識別子は、図2(a)のファブリックスイッチFS[1]の場合、{Pp[1]}〜{Pp[3]}である。
【0090】
FDB処理部47は、図10の場合と同様に、フレーム識別部41からのユーザフレームを対象に、図13(b)に示すようなアドレステーブルFDB2の処理(学習および検索)を行う。図13(b)に示すアドレステーブルFDB2は、ポート識別子(例えば{Pp[1]})と、当該ポート識別子に対応するポートの先に存在するMACアドレス(例えばMAii等)との対応関係を保持する。FDB処理部47は、ユーザフレームに、アドレステーブルFDB2から得られた宛先ポート識別子を付加して中継実行部48に送信する。
【0091】
中継実行部48は、FDB処理部47からのユーザフレームを、インタフェース部40内の所定の送信バッファに向けて送信する。この所定の送信バッファは、当該ユーザフレームに付加されている宛先ポート識別子に対応するバッファである。インタフェース部40内の送信バッファは、中継実行部48からのユーザフレームを受けて、対応するポートにフレームを送信する。
【0092】
また、中継実行部(第1フレーム送信部)48は、障害通知フレーム生成部43からの障害通知フレーム(第1障害通知フレーム)および制御フレーム生成部46からの制御フレーム(第1制御フレーム)CF1を、インタフェース部40内の所定の送信バッファに送信する。ここでは、前述したように宛先ポート識別子として複数のポートスイッチ用ポートPpのポート識別子が付加されているため、それに対応する送信バッファが選択される。その結果、障害通知フレーム(第1障害通知フレーム)および制御フレーム(第1制御フレーム)CF1は、インタフェース部40を介して複数のポートスイッチPSに送信される。
【0093】
以上、本実施の形態1の中継システムおよびスイッチ装置を用いることで、代表的には、障害に応じたLAGの自動設定の高速化が実現可能になる。なお、ここでは、各ポートスイッチ用ポート(例えばPp[1])と各ファブリックスイッチ用ポート(例えばPf[1])との間に1本のリンク(例えばLK[1,1])を設ける例を示したが、複数本のリンクを設ける場合であっても同様に適用可能である。
【0094】
この場合、図12のファブリックスイッチFSにもLAG設定部等を設け、ファブリックスイッチFSとポートスイッチPSの双方が、この複数本のリンクに対してLAGを設定すればよい。実際上の動作に関し、例えば、ポートスイッチ用ポートPp[1]とファブリックスイッチ用ポートPf[1]との間の複数本のリンクの全てに障害が生じた場合には、リンクLK[1,1]の障害とみなされ、図3(a)や図7(a)の場合と同様の扱いとなる。一方、複数本のリンクの一部が正常な場合には、この一部のリンクに通信を縮退させることで、リンクLK[1,1]としての障害は無いものとみなされる。
【0095】
(実施の形態2)
《ポートスイッチによるLAG設定時の動作(変形例)》
図14は、本発明の実施の形態2による中継システムにおいて、そのポートスイッチによるLAG設定時の動作例を示すタイミング図である。図15は、図14に対応する中継システムの構成例および図14の一部のタイミングにおける中継システムの動作例を示す説明図である。図15には、図2(a)等の場合と同様に、3個のファブリックスイッチFS[1]〜FS[3]と、3個のポートスイッチPS[1]〜PS[3]とを備えた中継システム10が示されている。
【0096】
前述した接続情報テーブル15に基づくLAGの設定に関し、実施の形態1の図5等では、各ファブリックスイッチFSが同じタイミング(例えば図5のタイミングt1)で制御フレームCF1を送信する場合を例とした。しかしながら、各ファブリックスイッチFSは、図14に示されるように、実際には、それぞれ独立したタイミングで制御フレームCF1を送信する。
【0097】
図14において、タイミングt[1]〜t[3]は、それぞれ、ファブリックスイッチFS[1]〜FS[3]に対応する障害検出タイミングおよび制御フレームCF1の送信タイミングを表している。図14に示すように、実際には、例えば、タイミングt[2],t[3],t[1]が所定のタイムラグを経て順に生じ、その後、所定の期間(第1期間)Tcを経て、再び、タイミングt[2],t[3],t[1]が所定のタイムラグを経て順に生じるような場合がある。
【0098】
このような状況で、タイミングt[3]とタイミングt[1]との間でポートスイッチPS[1]の障害が生じた場合を想定する。この場合、図14および図15に示すように、まず、ファブリックスイッチFS[1]は、タイミングt[1]で、ポートスイッチPS[1]の障害に応じた2台を含む制御フレームCF1をポートスイッチPS[2],PS[3]に送信する。
【0099】
ポートスイッチPS[2],PS[3]は、通常、この制御フレームCF1を受けて、それぞれ、ファブリックスイッチ用ポートPf[1]をLAGから除外する。図14に示すように、当該タイミングt[1]から第1期間Tc程度の期間を経た後のタイミングt[2],t[3]で、ファブリックスイッチFS[2],FS[3]は、ポートスイッチPS[1]の障害に応じた2台を含む制御フレームCF1をポートスイッチPS[2],PS[3]に送信する。これを受けて、ポートスイッチPS[2],PS[3]は、LAGから除外したファブリックスイッチ用ポートPf[1]を再びLAGに戻すことになる。
【0100】
このような、無駄なLAGの設定を防止するため、図15に示されるように、各ポートスイッチPS[1]〜PS[3]にタイマ部55を設けることが有益となる。タイマ部55は、図14に示すように、台数変更を伴う制御フレームCF1を受信した際(言い換えれば前述した接続情報テーブル15で保持される台数に変化が生じる際)に、第2期間Twをカウントし、第2期間Twを経過後にLAGの設定をイネーブルにする。この第2期間Twは、図14から判るように、第1期間Tc以上であり、実際には、ある程度のマージンを考慮して、第1期間Tcの2倍以上等に設定される。
【0101】
しかしながら、このようなタイマ部55を設けた場合、障害に応じたLAGの自動設定の高速化がより困難となり得る。そこで、実施の形態1で述べたような障害通知フレームに基づくLAGの設定を併用して用いることで、このようにタイマ部55を設けた場合であっても、LAGの自動設定の高速化が実現可能になる。
【0102】
《ポートスイッチ(スイッチ装置)の構成(変形例)》
図16は、図15の中継システムにおいて、そのポートスイッチの主要部の構成例を示すブロック図である。図16に示すポートスイッチPSは、図10に示した構成例と比較して、LAG設定部29の内部構成が異なっている。それ以外の構成に関しては、図10の場合と同様であるため、詳細な説明は省略する。図16のLAG設定部29は、図10の場合と異なり、接続情報テーブル15で保持される台数に変化が生じる際に、第2期間Twを経過後に接続情報テーブル15に基づくLAGの設定を行う。
【0103】
具体的には、図16のLAG設定部29は、タイマ部55とLAG設定実行部56とを備える。タイマ部55は、接続情報テーブル15で保持される台数に変化が生じる際に、第1期間Tc以上の期間である第2期間Twをカウントし、第2期間Twを経過後にイネーブル信号ENを生成する。LAG設定実行部56は、このイネーブル信号ENに応じて、接続情報テーブル15に基づくLAGの設定を行う。なお、LAG設定実行部56は、図10のLAG設定部29の場合と同様に、タイマ部55とは無関係に、障害通知フレームに基づくLAGの設定も行う。
【0104】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。例えば、前述した実施の形態は、本発明を分かり易く説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施の形態の構成の一部を他の実施の形態の構成に置き換えることが可能であり、また、ある実施の形態の構成に他の実施の形態の構成を加えることも可能である。また、各実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【0105】
例えば、ここでは、ボックス型ファブリックシステムを例としたが、本実施の形態の方式は、場合によっては、複数のラインカードと、複数のラインカード間の中継を担うファブリックカードとを備えたシャーシ型スイッチ装置の内部障害対策機能として適用することも可能である。
【符号の説明】
【0106】
10 中継システム
15 接続情報テーブル
25,40 インタフェース部
26,41 フレーム識別部
27 障害通知フレーム受信部
28,43 障害通知フレーム生成部
29 LAG設定部
30,44 制御フレーム受信部
31,46 制御フレーム生成部
32,47 FDB処理部
33 LAG分散部
34 LAGテーブル
35,48 中継実行部
36,49 障害検出部
42 障害通知フレーム中継部
45 PS管理テーブル
55 タイマ部
56 LAG設定実行部
CF1 制御フレーム(第1制御フレーム)
CF2 制御フレーム(第2制御フレーム)
DF1a〜DF1c 障害通知フレーム(第1障害通知フレーム)
DF2a 障害通知フレーム(第2障害通知フレーム)
FDB1,FDB2 アドレステーブル
FL1,FL2 フレーム(ユーザフレーム)
FS,FS[1]〜FS[m] ファブリックスイッチ
LAG[1]〜LAG[n] LAG
LK,LK[1,1]〜LK[n,m] リンク
PS,PS[1]〜PS[n] ポートスイッチ
Pf,Pf[1]〜Pf[m] ファブリックスイッチ用ポート
Pp,Pp[1]〜Pp[n] ポートスイッチ用ポート
Pu[1]〜Pu[p] ユーザ用ポート
TM1〜TM4 端末
Tc 第1期間
Tw 第2期間
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16