【文献】
佐藤 浩司, 小口 数海, 川手 竜介, 横谷 哲也, 下笠 清,Ethernetリニアプロテクション切替標準化の動向 Standardization status of Ethernet linear protection switching,電子情報通信学会技術研究報告 Vol.107 No.463 IEICE Technical Report,日本,社団法人電子情報通信学会 The Institute of Electronics,Information and Communication Engineers,2008年,Vol.107, No.463,p.101-104
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0012】
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらは互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。また、以下の実施の形態において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でも良い。
【0013】
さらに、以下の実施の形態において、その構成要素(要素ステップ等も含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。
【0014】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【0015】
《中継システム(前提)の概略構成および概略動作》
図9(a)、
図9(b)および
図9(c)は、本発明の前提として検討した中継システムにおいて、その構成例および障害発生時の動作例を示す概略図である。
図9(a)に示す中継システムは、2台の中継装置10a,10bを有する。中継装置10a,10bのそれぞれは、複数(ここでは3個)のポートP1〜P3と、LAG制御部11’と、中継処理部12とを備える。中継装置10aのポートP1〜P3は、それぞれ、通信回線(例えばイーサネット(登録商標)回線)を介して中継装置10bのポートP1〜P3に接続される。
【0016】
LAG制御部11’は、所定のプロトコル(ここではLACP)に基づきポートP1〜P3の中の所定のポートにLAGを設定する。ここでは、LACPに基づき、中継装置10aはアクティブモードで動作し、中継装置10bはパッシブモードで動作する場合を例とする。アクティブモードで動作する中継装置10a(そのLAG制御部11’)は、LACPに基づく制御フレーム(すなわちLACPDU)を自発的に送信する。一方、パッシブモードで動作する中継装置10b(そのLAG制御部11’)は、制御フレームを受信した場合に、それに応答する形で制御フレームを送信する。なお、中継装置10bは、パッシブモードに限らず、アクティブモードであってもよい。
【0017】
図9(a)の例では、中継装置10aは、ポートP1,P2,P3からそれぞれ制御フレームCF1ab,CF2ab,CF3abを送信し、中継装置10bは、これらの制御フレームに応答して、ポートP1,P2,P3からそれぞれ制御フレームCF1ba,CF2ba,CF3baを送信する。ここで、LACPでは、予め、LAGの設定候補のポートと、LAGを構成する最大ポート数と、各ポートの優先度を設定できる。
図9(a)の例では、LAGの設定候補のポートはポートP1〜P3であり、最大ポート数は2であり、各ポートの優先度は高優先度順にポートP1,P2,P3である。
【0018】
中継装置10aのLAG制御部11’は、LAGの設定候補のポートの中から各ポートの優先度に基づき最大ポート数のポートを選択し、当該選択したポート(ここではP1,P2)にLAGを設定するための処理を開始する。その処理の中で、当該LAG制御部11’は、選択したポートP1,P2から同期ビットおよび集約化ビットの両方がTRUE(‘1’)である制御フレーム(LACPDU)CF1ab,CF2abを送信する。また、当該LAG制御部11’は、LAGの設定候補のポートであり非選択であるポートP3から同期ビットおよび集約化ビットの少なくとも一方がFALSE(‘0’)である制御フレームCF3abを送信する。
【0019】
障害が発生していない場合、
図9(a)に示すように、中継装置10bのLAG制御部11’は、当該制御フレームCF1ab,CF2abに応答して、ポートP1,P2から、同じく同期ビットおよび集約化ビットの両方が‘1’である制御フレーム(LACPDU)CF1ba,CF2baを送信する。中継装置10a,10bのLAG制御部11’は、同期ビットおよび集約化ビットの両方が‘1’である制御フレームを送信かつ受信したポートにLAGを設定する。
【0020】
その結果、中継装置10a,10bのLAG制御部11’は、共に、ポートP1,P2にLAG(ここではLAG1とする)を設定する。一方、当該LAG制御部11’は、同期ビットおよび集約化ビットの少なくも一方が‘0’である制御フレームを送信または受信したポートP3にはLAGを設定せず、ポートP1,P2よりも優性度が低いポートP3を障害が発生した場合の予備リンクとして取り扱うことができる。
【0021】
中継装置10a,10bの中継処理部12は、図示しないポートで受信したユーザフレームUFの宛先ポートがLAG1であった場合、当該フレームを、所定の分散規則に基づいてポートP1,P2の中から選択したポートに中継する。当該分散規則として、例えば、ユーザフレームUFの送信元MACアドレスおよび宛先MACアドレスを用いてハッシュ演算を行う方式等が挙げられる。
【0022】
図11(a)および
図11(b)は、制御フレーム(LACPDU)の主要部のフォーマット構成例を示す概略図である。制御フレーム(LACPDU)CFは、
図11(a)に示すように、ヘッダ情報25、アクター情報26およびパートナー情報27を含んでいる。ヘッダ情報25は、宛先MACアドレス(DMAC)、送信元MACアドレス(SMAC)、タイプおよびサブタイプを含む。宛先MACアドレスには、所定のマルチキャストアドレスが格納され、タイプおよびサブタイプには、それぞれ、LACPDUであることを表す固有値(0x8809および0x01)が格納される。
【0023】
制御フレームを送信する中継装置(例えば10a)は、アクター情報26に自装置の各種情報を格納し、パートナー情報27に対向装置(中継装置10b)の各種情報を格納する。パートナー情報27は、対向装置から受信した制御フレームのアクター情報26に基づき定められる。アクター情報26およびパートナー情報27のそれぞれは、LAG(例えばLAG1)の識別子に該当するキーと、ポートの優先度と、ポート識別子と、ポートのステート28,29とを含む。
【0024】
アクターのステート28およびパートナーのステート29のそれぞれは、
図11(b)に示すように、リンク集約が構成可能か否かを表す集約化ビット30と、同期の可否(例えば、ポートをキー(LAG識別子)で管理・運用するための条件が揃ったか否か等)を表す同期ビット31とを含む。リンク集約が構成可能な場合、集約化ビット30はTRUE(‘1’)となり、同期が可能な場合、同期ビット31はTRUE(‘1’)となる。LAGは、ステート28,29の両方における集約化ビット30および同期ビット31が共にTRUE(‘1’)となるポートに設定される。
【0025】
図9(b)に示す中継システムでは、
図9(a)の場合と異なり、ポートP1のリンク(ここでは、ポートP1に接続される通信回線)に障害が発生している。この場合、中継装置10a,10bの中継処理部12がユーザフレームUFをポートP1側に分散した場合、当該フレームに損失が生じ得る。
【0026】
図9(c)に示す中継システムでは、
図9(b)の場合と異なり、ポートP1の障害発生が検出され(ステップS101)、これに応じてLAG1の設定変更が行われている(ステップS102)。具体的には、中継装置10aのLAG制御部11’は、ポートP1に対する障害発生の検出に応じて、前述した予備リンクであるポートP3にLAG1を設定するための処理を開始する。
【0027】
この際に、当該LAG制御部11’は、ポートP2,P3から、同期ビット31および集約化ビット30の両方が‘1’である制御フレーム(LACPDU)CF2ab,CF3abを送信する。一方、当該LAG制御部11’は、ポートP1をLAG1から除外すると共に、ポートP1から、同期ビット31および集約化ビット30の少なくとも一方が‘0’である制御フレームCF1abを送信する。
【0028】
当該LAG制御部11’は、このような制御フレームCF2ab,CF3abを送信し、同じく同期ビット31および集約化ビット30の両方が‘1’である制御フレームCF2ba,CF3baを受信することで、ポートP2,P3にLAG1を設定する。同様に、中継装置10bのLAG制御部11’も、ポートP2,P3で、同期ビット31および集約化ビット30の両方が‘1’である制御フレームを送信および受信することでポートP2,P3にLAG1を設定する。その結果、中継装置10a,10bの中継処理部12は、受信したユーザフレームUFをポートP2,P3に分散して中継する。
【0029】
図10(a)および
図10(b)は、
図9(c)の中継システムにおける障害復旧時の動作例を示す概略図である。
図10(a)に示す中継システムでは、
図9(c)の場合と異なり、ポートP1のリンクの障害が復旧している。LAG1は、
図9(c)の場合と同様に、依然としてポートP2,P3に設定されており、ユーザフレームUFの損失は特に生じない。
【0030】
図10(b)に示す中継システムでは、
図10(a)の場合と異なり、ポートP1の障害復旧が検出され(ステップS201)、これに応じてLAG1の設定変更が行われている(ステップS202)。具体的には、中継装置10aのLAG制御部11’は、ポートP1に対する障害復旧の検出に応じて、ポートP3よりも優先度が高いポートP1にLAG1を再度設定するための処理を開始する。
【0031】
この際に、当該LAG制御部11’は、ポートP1,P2から、同期ビット31および集約化ビット30の両方が‘1’である制御フレーム(LACPDU)CF1ab,CF2abを送信する。一方、当該LAG制御部11’は、ポートP3をLAG1から除外すると共に、ポートP3から、同期ビット31および集約化ビット30の少なくとも一方が‘0’である制御フレームCF3abを送信する。
【0032】
当該LAG制御部11’は、このような制御フレームCF1ab,CF2abを送信し、同じく同期ビット31および集約化ビット30の両方が‘1’である制御フレームCF1ba,CF2baを受信することで、ポートP1,P2にLAG1を設定する。同様に、中継装置10bのLAG制御部11’も、ポートP1,P2で、同期ビット31および集約化ビット30の両方が‘1’である制御フレームを送信および受信することでポートP1,P2にLAG1を設定する。その結果、中継装置10a,10bの中継処理部12は、受信したユーザフレームUFをポートP1,P2に分散して中継する。
【0033】
《中継システム(前提)の問題点》
ここで、例えば、
図9(b)に示したポートP1のリンクの障害が、障害発生と障害復旧とを短時間に繰り返す不安定な障害であった場合を想定する。この場合、状態が、
図9(b)→
図9(c)→
図10(a)→
図10(b)→
図9(b)→…、の順でループ状に切り替わる。
【0034】
また、
図9(b)の状態から
図9(c)の状態に切り替わるまでには、ある程度の期間を要し得る。特に、LACPに基づき、中継装置10a,10bの少なくとも一方が制御フレーム(LACPDU)CFの未受信によって障害発生を検出する場合で、制御フレームの定期的な送信間隔が30秒に設定された場合、LAG制御部11’は、当該送信間隔の3倍(90秒)の期間で障害発生を検出できない場合がある。障害発生を検出できない期間は、
図9(b)に示したように、ユーザフレームUFの損失が生じ得る期間であり、データ通信の異常期間となる。したがって、不安定な障害が発生すると、データ通信の異常期間が高頻度に発生し、全体としてデータ通信の異常期間が長期化する恐れがある。
【0035】
《中継システム(本実施の形態)の概略構成および概略動作》
図1(a)および
図1(b)は、本発明の一実施の形態による中継システムにおいて、その構成例および障害復旧時の動作例を示す概略図である。
図1(a)に示す中継システムは、
図10(b)の中継システムと比較して、中継装置10aにLAG制御部11’とは処理内容が異なるLAG制御部11が設けられる点が異なっている。中継装置10aのLAG制御部11は、
図10(b)等の場合と同様に、所定のプロトコル(ここではLACP)に基づき複数のポートP1〜P3の中の所定のポートにLAGを設定する。
【0036】
ただし、当該LAG制御部11は、
図10(b)の場合と異なり、障害発生の検出に応じてLAGから除外したポートに対して障害復旧が検出された場合、ユーザの指示に基づくイベントが発生するまで当該ポートにLAGを設定しない。
図1(a)の例では、当該LAG制御部11は、ポートP1のリンクの障害復旧を検出しているが(ステップS201)、
図10(b)の場合と異なり、ポートP2,P3へのLAG1の設定をそのまま維持している(ステップS201a)。この期間では、当該LAG制御部11は、
図10(a)の場合と同様に、LAG1から除外したポートP1から、同期ビット31または集約化ビット30の少なくとも一方が‘0’である制御フレーム(LACPDU)CF1abを送信する。
【0037】
その後、
図1(b)では、ユーザの指示に基づくイベントが発生している(ステップS201b)。当該イベントは、例えば、ユーザによるコマンド入力や、または、タイマの出力である。当該タイマは、障害復旧が検出されてからユーザによって指示された時間を計測する。当該LAG制御部11は、障害復旧が検出された場合で、かつ、ユーザの指示に基づくイベントが発生した場合に、LAG1の設定変更を開始する(ステップS202)。
【0038】
すなわち、当該LAG制御部11は、
図10(b)の場合と同様に、ポートP1,P2から、同期ビット31および集約化ビット30の両方が‘1’である制御フレーム(LACPDU)CF1ab,CF2abを送信する。一方、当該LAG制御部11は、ポートP3をLAG1から除外すると共に、ポートP3から、同期ビット31および集約化ビット30の少なくとも一方が‘0’である制御フレームCF3abを送信する。
【0039】
当該LAG制御部11は、このような制御フレームCF1ab,CF2abを送信し、同じく同期ビット31および集約化ビット30の両方が‘1’である制御フレームCF1ba,CF2baを受信することで、ポートP1,P2にLAG1を設定する。同様に、中継装置10bのLAG制御部11’も、ポートP1,P2で、同期ビット31および集約化ビット30の両方が‘1’である制御フレームを送信および受信することでポートP1,P2にLAG1を設定する。
【0040】
これにより、代表的には、データ通信の異常期間を短縮することが可能になる。具体的には、例えば、
図1(a)のように障害復旧が検出された場合(ステップS201)、ユーザは、ポートP1の障害復旧が一時的なものでないことを確認し、それが確認できた段階で
図1(b)のようなイベントを発生させればよい(ステップS201b)。その結果、前述したように、
図9(b)の状態が高頻度に発生する事態を防止でき、ユーザフレームUFの損失が生じ得る期間を短縮できる。
【0041】
《中継装置の概略構成および概略動作》
図2は、
図1(a)および
図1(b)の中継システムにおいて、中継装置の主要部の概略構成例を示すブロック図である。
図2に示す中継装置10(例えば
図1(a)の中継装置10a)は、複数のポートP1,P2,P3,…,Pnと、インタフェース部15と、中継処理部12と、FDB(Forwarding DataBase)と、LAG制御部11と、LAG中継テーブル16と、LAG管理テーブル17と、装置管理部18とを備える。ここでは、中継装置10は、レイヤ2(L2)スイッチである場合を例とするが、例えば、レイヤ3(L3)スイッチまたはそれよりも上層の処理機能を持つスイッチ等であってもよい。
【0042】
複数のポートP1〜Pnのそれぞれは、フレームの送信または受信を行う。インタフェース部15は、フレーム識別部19と、受信ポート識別子付加部20と、障害監視部21とを備える。受信ポート識別子付加部20は、所定のポートでフレームを受信した場合に、当該受信したポートの識別子(受信ポート識別子と呼ぶ)を当該フレームに付加する。
【0043】
フレーム識別部19は、例えば、所定のポートで受信したフレームがユーザフレームUFであるか制御フレーム(例えばLACPDU)CFであるかといった各種フレームの識別を行う。この識別は、例えば、
図11(a)のヘッダ情報25におけるタイプやサブタイプ等の値を判別することで行われる。フレーム識別部19は、受信したフレームがユーザフレームUFの場合には、当該フレームを中継処理部12へ送信し、制御フレーム(LACPDU)CFの場合には、当該フレームをLAG制御部11へ送信する。なお、中継処理部12やLAG制御部11へ送信されるフレームには受信ポート識別子が付加されている。
【0044】
障害監視部21は、ハードウェアによって複数のポート毎の障害有無(リンクアップ/リンクダウン)を検出する。障害監視部21は、例えば、受信した光信号レベルを監視し、光信号レベルの不足といった異常状態が所定の期間継続する場合にリンクダウンと判別する。あるいは、障害監視部21は、受信した信号から、アイドル状態で生成されるリンクパルス信号の有無や非アイドル状態でのデータ信号の有無を監視し、リンクパルス信号およびデータ信号が共に無しといった異常状態が所定の期間継続する場合にリンクダウンと判別する。
【0045】
LAG制御部11は、制御フレーム(例えばLACPDU)CFの送信または受信を行う制御フレーム処理部23を備え、所定のプロトコル(例えばLACP)に基づき複数のポートP1〜Pnの中の所定のポートにLAGを設定する。この際に、LAG制御部11は、詳細は後述するが、LAG管理テーブル17に基づきLAGを設定し、当該LAGの設定内容(すなわちどのポートにLAGを設定したか)をLAG中継テーブル16に格納する。
【0046】
制御フレーム処理部23は、予め定めた間隔(例えば1秒毎または30秒毎)に基づき所定のポートで定期的に制御フレーム(LACPDU)CFの送信または受信を行う。この際に、制御フレーム処理部23は、所定のポートで制御フレームCFを所定の期間(例えば予め定めた間隔の3倍の期間)受信できない場合や、受信した制御フレームCFの同期ビット31および集約化ビット30の両方が‘1’でない場合に、当該ポートの障害発生を検出する。このように、制御フレーム処理部23は、前述した障害監視部21と共に、複数のポートP1〜Pnのそれぞれに対する障害発生および障害復旧を検出する障害検出部として機能する。
【0047】
図3(a)は、
図2におけるFDBの構造例を示す概略図であり、
図3(b)は、
図2におけるLAG中継テーブルの構造例を示す概略図であり、
図3(c)は、
図2におけるLAG管理テーブルの構造例を示す概略図である。FDBは、
図3(a)に示すように、MACアドレスおよびVLAN(Virtual Local Area Network)識別子(VID)と、ポート識別子/LAG識別子との対応関係を保持する。
【0048】
図3(a)の例では、例えば、MACアドレスMA1およびVID「xxx」を持つ端末等がLAG1(
図2の例ではポートP1,P2)の先に存在し、また、MACアドレスMA3およびVID「xxx」を持つ端末等がポートPnの先に存在している。
図3(a)において、例えば、{LAG1}はLAG1の識別子(ID)を表し、以降同様にして、本明細書では、例えば{AA}は「AA」の識別子を表すものとする。
【0049】
LAG管理テーブル17は、
図3(c)に示すように、LAGIDと、当該LAGIDを設定する最大ポート数と、当該LAGIDの設定候補のポートを表すポートIDと、各ポートID毎の各種情報とを保持する。当該各種情報の中には、優先度と、復旧フラグ(詳細は後述)の使用有無を定める設定ビットと、復旧のOK/NGを定める復旧フラグと、リンク状態および制御フレーム(CF)の受信有無からなる障害状態とが含まれる。
【0050】
図3(c)の例では、LAG1は、最大ポート数が2であり、ポートP1,P2,P3がLAG1の設定候補のポートとなっている。また、各ポートP1,P2,P3は、ポートP1,P2,P3の順に優性度が高く設定され、共に復旧フラグが使用有りに設定され、共に障害無しの状態となっている。障害無しの状態とは、障害監視部21でリンクアップが検出され、かつ制御フレーム処理部23で同期ビット31および集約化ビット30の両方が‘1’である制御フレームが所定の期間内に受信されている状態である。なお、ここでは、中継装置10に1個のLAGを設定する場合を例としているが、勿論、複数個のLAGを設定することも可能である。
【0051】
LAG管理テーブル17の内、LAGID、最大ポート数、ポートID、優先度、および設定ビット(復旧フラグの使用有無)は、ユーザによって予め設定される。特に限定はされないが、例えば、ユーザは管理用端末等を用いて中継装置10の装置管理部18と通信を行いながら各種設定を行い、装置管理部18は、LAG制御部11を介してLAG管理テーブル17に当該設定情報を格納する。装置管理部18は、このような装置外部との間の通信を含めて、中継装置10全体の設定や状態等を管理する。
【0052】
LAG中継テーブル16は、
図3(b)に示すように、LAGIDと、当該LAGIDの設定候補のポートを表すポートIDと、各ポートIDの中のどれが有効/無効かを表す有効/無効ビットとを保持する。LAG制御部11は、LAG管理テーブル17に基づきLAG中継テーブル16のLAGIDおよびポートIDを定める。さらに、LAG制御部11は、LAG管理テーブル17を参照しながら、LAGIDの設定候補のポートの中から所定のプロトコル(例えばLACP)に基づき所定のポートを選択し、LAG中継テーブル16において、当該選択したポートを有効に定める。
図3(b)の例では、ポートP1,P2が有効に設定され、その結果、LAG1は、ポートP1,P2に設定される。
【0053】
図2において、中継処理部12は、LAG分散部22を備え、フレームを受信した場合にFDBの学習および検索を行う。例えば、送信元MACアドレス「MA3」および宛先MACアドレス「MA1」を含むフレームをポートPnで受信した場合を想定する。この場合、中継処理部12は、例えば、送信元MACアドレス「MA3」(およびそのVID)を、当該フレームに付加されている受信ポート識別子{Pn}に対応付けてFDBに学習する。また、中継処理部12は、宛先MACアドレス「MA1」(およびそのVID)を検索キーとしてFDBを検索し、当該フレームの宛先となるポートの識別子(宛先ポート識別子と呼ぶ){LAG1}を取得する。
【0054】
LAG分散部22は、宛先ポート識別子がLAGID(ここでは{LAG1})であった場合、LAG中継テーブル16を参照し、LAG1が設定されているポート(ここではP1,P2)の中のいずれかのポートを選択する。この際に、LAG分散部22は、特に限定はされないが、送信元MACアドレスおよび宛先MACアドレスを用いたハッシュ演算を行うことで、いずれかのポートを選択する。
【0055】
LAG分散部22は、この選択したポートのポート識別子(例えば{P1})を宛先ポート識別子に定め、当該宛先ポート識別子を付加したフレームをインタフェース部15へ送信する。インタフェース部15は、当該宛先ポート識別子が表すポート(P1)にフレームを中継する。なお、中継処理部12は、例えば、LAG1が設定されたポート(例えばP2)でフレームを受信した場合には、LAG中継テーブル16に基づき、そのLAGIDを取得し、当該フレームの送信元MACアドレスを当該LAGIDに対応付けてFDBに学習する。
【0056】
ここで、必ずしも限定はされないが、
図2におけるインタフェース部15および中継処理部12は、ASIC(Application Specific Integrated Circuit)またはFPGA(Field Programmable Gate Array)等を単数または複数用いることで構成される。FDBは、CAM(Content Addressable Memory)等によって構成される。LAG制御部11および装置管理部18は、CPU(Central Processing Unit)を用いたプログラム処理等によって構成される。LAG中継テーブル16およびLAG管理テーブル17は、RAM(Random Access Memory)等で構成される。なお、LAG中継テーブル16は、中継処理部12と同一チップ内のRAM等で構成されてもよい。
【0057】
《復旧フラグの詳細》
図4(a)は、
図3(c)のLAG管理テーブルにおいて、復旧フラグが使用無しに設定された際の復旧フラグの動作例を示す状態遷移図であり、
図4(b)は、
図3(c)のLAG管理テーブルにおいて、復旧フラグが使用有りに設定された際の復旧フラグの動作例を示す状態遷移図である。
図4(a)および
図4(b)の状態遷移は、
図2のLAG制御部11によって制御される。
【0058】
図4(a)において、LAG管理テーブル17における復旧フラグは、OK/NGの2つの状態を採る。LAG制御部11は、障害発生の検出に応じて、復旧フラグを現在の状態に関わらずNGに遷移させ、障害復旧の検出に応じて、復旧フラグを現在の状態に関わらずOKに遷移させる。LAGの設定候補のポートにおいて、障害発生は、前述したように障害監視部21によってリングダウンが検出された時か、または制御フレーム処理部23によって制御フレームが正常に受信できなくなった時に検出される。障害復旧は、障害監視部21によってリングアップが検出された時か、または制御フレーム処理部23によって制御フレームが正常に受信できるようになった時に検出される。
【0059】
一方、
図4(b)において、復旧フラグは、OK/NGに加えてWaitの3つの状態を採る。LAG制御部11は、
図4(a)の場合と同様に、障害発生の検出に応じて、復旧フラグを現在の状態に関わらずNGに遷移させる。一方、LAG制御部11は、
図4(a)の場合と異なり、復旧フラグがNGの状態での障害復旧の検出に応じて、復旧フラグを一旦Waitに遷移させ、その状態でのイベントの発生に応じて復旧フラグをOKに遷移させる。
【0060】
《LAG制御部のLAG設定処理》
図5は、
図2の中継装置において、LAG制御部がLAG設定を行う際の処理内容の一例を示すフロー図である。
図5において、LAG制御部11は、LAG管理テーブル17において、復旧フラグにOK/NGへの変化(すなわち他の状態からOKへの変化または他の状態からNGへの変化)が発生したか否かを監視する(ステップS301)。OK/NGへの変化が発生した場合、LAG制御部11は、LAGの設定候補のポート(例えばポートP1〜P3)であり、復旧フラグがOKのポートの中から、優先度に基づき最大ポート数(例えば2個)のポートを選択する(ステップS302)。
【0061】
次いで、LAG制御部11(具体的には制御フレーム処理部23)は、選択したポートから同期ビット31および集約化ビット30の両方が‘1’である制御フレーム(LACPDU)CFを送信する(ステップS303)。これと並行して、制御フレーム処理部23は、LAGの設定候補のポートであるが、非選択であるポートから同期ビット31および集約化ビット30の少なくとも一方が‘0’である制御フレームCFを送信する(ステップS303)。
【0062】
続いて、LAG制御部11は、同期ビット31および集約化ビット30の両方が‘1’である制御フレーム(LACPDU)CFを送信および受信したポートにLAGを設定する(ステップS304)。すなわち、LAG制御部11は、LAG中継テーブル16において、このLAGを設定したポートを有効に定める。
【0063】
その後、LAG制御部11(具体的には制御フレーム処理部23)は、LAG中継テーブル16に基づき、有効のポートから同期ビット31および集約化ビット30の両方が‘1’である制御フレーム(LACPDU)CFを送信する(ステップS305)。これと並行して、制御フレーム処理部23は、LAG中継テーブル16に基づき、無効のポート(すなわち、LAGの設定対象のポートであるがLAGが非設定であるポート)から同期ビット31および集約化ビット30の少なくとも一方が‘0’である制御フレームCFを送信する(ステップS305)。なお、ステップS301において、LAG制御部11は、復旧フラグの変化が無い場合も、当該ステップS305の処理を実行する。
【0064】
図6は、
図2〜
図5のLAG制御部において、障害発生時の具体的な動作例を示す説明図である。
図7は、
図2〜
図5のLAG制御部において、障害復旧時の具体的な動作例を示す説明図であり、
図8は、
図7に続く動作例を示す説明図である。ここでは、復旧フラグが使用有りに設定されている場合を例とする。
【0065】
図6では、中継装置10aのポートP1のリンクに障害が発生している。中継装置10aのLAG制御部11は、障害検出部となる障害監視部21および/または制御フレーム処理部23によって当該障害を検出する(ステップS101)。ここでは、障害監視部21と制御フレーム処理部23の両方が障害を検出したものとする。これに応じて、当該LAG制御部11は、LAG管理テーブル17において、ポートP1のリンク状態をリンクダウンとし、制御フレームCFの受信有無を受信無しとし、当該障害発生の検出を受けて、
図4(b)に示したように、復旧フラグをNGに遷移させる(ステップS101a)。
【0066】
次いで、当該LAG制御部11は、復旧フラグがNGに遷移したため、
図5のステップS302に基づき、復旧フラグがOKのポートの中から優先度に基づき最大ポート数(ここでは2)のポート(ここではポートP2,P3)を選択する。以降、当該LAG制御部11は、
図5のステップS303,S304の処理を経て、ポートP2,P3にLAG1を設定する。すなわち、当該LAG制御部11は、LAG中継テーブル16において、ポートP1を無効とし、ポートP2,P3を有効とする(ステップS102)。
【0067】
図7では、中継装置10aのポートP1のリンクの障害が復旧している。中継装置10aのLAG制御部11は、障害監視部21および/または制御フレーム処理部23によって当該障害復旧を検出する(ステップS201)。ここでは、障害監視部21が障害復旧を検出したものとする。これに応じて、当該LAG制御部11は、LAG管理テーブル17において、ポートP1のリンク状態をリンクアップとし、当該障害復旧の検出を受けて、
図4(b)に示したように、復旧フラグをWaitに遷移させる(ステップS201a)。
【0068】
図8では、復旧フラグがWaitの状態で、ユーザ指示に基づくイベントが発生している(ステップS201b)。当該イベントは、前述したように、ユーザによるコマンド入力、または、タイマの出力等である。前者の場合、前提として、例えば
図2の装置管理部18は、当該LAG制御部11が障害発生を検出した場合や障害復旧を検出した場合に、ユーザ(ユーザの端末等)へ通知を行う。ユーザは、障害復旧の検出通知を受けた場合、例えば、その直後に障害発生の検出通知を受けない(すなわち不安定な障害でない)ことを確認し、それが確認できた段階で、装置管理部18へコマンド入力を行う。装置管理部18は、当該コマンド入力が行われたことを当該LAG制御部11へ通知する。
【0069】
一方、後者の場合、前提として、例えば当該LAG制御部11は、タイマを備える。当該タイマは、復旧フラグのWaitへの遷移をトリガとして、予め装置管理部18を介してユーザによって指示された時間を計測したのち所定の信号を出力する。当該LAG制御部11は、前述したように装置管理部18からのコマンド入力の通知を受けた場合や、あるいは、タイマ出力を受けた場合に、LAG管理テーブル17における復旧フラグをOKに遷移させる(ステップS202a)。
【0070】
次いで、当該LAG制御部11は、復旧フラグがOKに遷移したため、
図5のステップS302に基づき、復旧フラグがOKのポートの中から優先度に基づき最大ポート数(ここでは2)のポート(ここではポートP1,P2)を選択する。以降、当該LAG制御部11は、
図5のステップS303によって当該ポートP1,P2にLAG1を設定するための処理を開始する。その過程で、LAG管理テーブル17における制御フレームCFの受信有無は、受信有りとなる(ステップS202b)。そして、当該LAG制御部11は、
図5のステップS304の処理を経て、ポートP1,P2にLAG1を設定する。すなわち、当該LAG制御部11は、LAG中継テーブル16において、ポートP3を無効とし、ポートP1,P2を有効とする(ステップS203)。
【0071】
以上のように、LAG制御部11は、所定のポートにおいて、少なくとも復旧フラグがOKとなるまでは当該ポートにLAGを設定しない(ステップS302)。復旧フラグは、
図4(b)に示したように、障害復旧の検出かつイベントの発生に応じてOKとなる。このような復旧フラグを設けることで、
図1(a)および
図1(b)に示したような動作を容易に実現可能になる。
【0072】
また、ここでは、
図3(c)に示したように、復旧フラグの使用有無を定める設定ビットが設けられる。例えば、復旧フラグが使用無しに設定された場合、障害復旧時には
図10(a)および
図10(b)の場合と同様の動作が行われる。すなわち、LAG制御部11は、障害復旧を検出した場合、
図4(a)に基づき障害復旧フラグをOKに遷移させ、これに応じて、
図5に基づき所定のポート(例えばP1,P2)にLAG1を設定するための処理を即座に開始する(
図5のステップS302)。
【0073】
ユーザは、例えば、フレームの損失をある程度許容できるような場合等で、LAGまたはポートによっては、
図1(a)および
図1(b)に示したようような復旧方式ではなく、障害復旧を検出して即座に復旧を行う
図10(a)および
図10(b)に示したような復旧方式を適用したい場合がある。また、例えば、
図9(a)等において、予備リンクとなるポートP3に関しては、特に
図1(a)および
図1(b)に示したようような復旧方式が必要とされない場合がある。そこで、復旧フラグの使用有無を定める設定ビットが設けることが有益となる。なお、当該設定ビットは、
図3(c)等の例では、ポート単位で設けたが、LAG単位で設けることも可能である。
【0074】
また、本実施の形態では、
図5の処理を復旧フラグの使用有無に関わらず共通で用いるため、
図4(a)に示したように、復旧フラグが使用無しの場合でも、本来の機能(すなわち
図4(b))とは異なる機能で便宜的に復旧フラグを用いている。ただし、復旧フラグが使用無しの場合、単に、LAG制御部11に一般的な動作を行わせればよいため、復旧フラグを全く使用しないようにLAG制御部11を構成することも可能である。
【0075】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。例えば、前述した実施の形態は、本発明を分かり易く説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施の形態の構成の一部を他の実施の形態の構成に置き換えることが可能であり、また、ある実施の形態の構成に他の実施の形態の構成を加えることも可能である。また、各実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【0076】
例えば、LAG用のプロトコルとしてLACPを用いる場合を例としたが、必ずしもLACPに限定されるものではなく、その他のプロトコルに対しても同様に適用することが可能である。また、ここでは、予備リンクを設ける構成例および動作例を示したが、予備リンクを設けない構成であっても同様に適用可能である。すなわち、例えば、
図9(b)において、ポートP3が設けられない場合、ポートP2での縮退運転が行われ、ポートP1の障害が復旧した際にポートP1にLAGが再度設定されるが、この際に、本実施の形態の方式を適用することができる。