まず始めに、本発明の概要を説明する。
第1に、本発明は、ネットワーク装置が互いにやりとりする、シグナリングプロトコルメッセージに含まれる各属性情報に、セグメント識別情報を付与する手段を備える。
第2に、通信路上で検出されているリンク障害箇所が1箇所である場合に、又は、複数のリンク障害箇所が隣接している場合に、自ノードが経路を切り替えることによって、検出されている全ての障害リンクを迂回可能であるか調べる手段を備える。
第3に、全ての障害リンクを迂回不可と判断した場合に、リカバリパスへ切り替えず、又は、既に通信路が切り替え済みであるならば切り戻すように制御する手段を備える。
第4に、前記全ての障害リンクを迂回可能と判断した場合に、自ノードが経路を切り替えることによって障害リンクを迂回できる下流のセグメントの切替状態を調べる。そして、下流のセグメントにおいて切り替え済み又は切り替えようとしている場合に、自ノードは通信路の経路を切り替えない。一方、下流のセグメントにおいて切り替え済みでも切り替えようともしていない場合に、自ノードは通信路の経路を切り替える手段を備える。
第4の手段において、ネットワーク装置は、下流のセグメントの切替状態を調べるために、下記のいずれかの方法を用いる。第1の方法は、動作規則を各ノードで共通としておくことによって、障害イベントに基づいて、間接的に他のセグメントの切替状態を知ることである。第2の方法は、切替イベントをノード間でやりとりすることによって、直接的に、他のセグメントの切替状態を知ることである。
前述した第4の手段において、より下流のセグメントの切替状態を調べることに代えて、より上流のセグメントの切替状態を調べる、第5の手段を設けてもよい。
また、第4の手段と第5の手段のどちらを設けるかは、全てのネットワーク装置で同じにするとよい。
このように、第1の手段を備えることによって、各ネットワーク装置が通信路上の各セグメントの状態を把握することができる。更に、第2、第3及び第4の手段を備えることによって、上り及び下りのどちらで障害を検出しても、同一区間で経路を切り替えることが可能となるため、双方向リンク障害を復旧することができる。また同様に、第2、第3及び第5の手段を備えることによっても、同一区間で経路を切り替えることが可能となるため、双方向リンク障害を復旧することができる。
次に、図面を参照して本発明の実施の形態について説明する。なお、各実施形態の説明に用いる図において、同一物又は均等物には同一の符号を付す。
以下に説明する実施形態では、通信路確立制御信号として、インターネットの国際組織であるIETF(Internet Engineering Task Force)が作成したプロトコルIETF RFC3473に規定されているGMPLS(Generalized Multi-Protocol Label Switching)拡張RSVP−TE(Resource reSerVation Protocol-Traffic Engineering)を用いた場合の例を説明するが、プロトコルIETF RFC3472に規定されているCR−LDP(Constraint-based Routed Label Distribution Protocol)や、電気通信の国際標準化部門であるITU−T(International Telecommunication Union-Telecommunication Standardization Sector)が制定したプロトコルITU−T G.7713/Y.1704であるASON等の他のプロトコルにも適用可能である。
<第1実施形態>
まず、図1を参照して、第1の実施の形態の通信ネットワークシステムの構成例について説明する。
図1に示すネットワーク1は、ネットワーク装置51〜59が伝送線30〜42で相互に接続されることによって構成されている。本実施形態は、9台のネットワーク装置と13本の伝送線によって構成されているが、ネットワーク装置の台数及びトポロジは任意である。また、本実施形態は、ネットワーク装置間の伝送線は、双方向で信号を伝送できるものであるが、光ファイバを伝送媒体に用いて、上りと下りの伝送媒体が対で用いられる場合にも適用できる。
ネットワーク装置51〜59が、制御情報転送ネットワーク2を介して、相互にGMPLS拡張RSVP−TEメッセージをやり取りすることによって、通信路61〜63が確立される。本実施形態では、3本の2ホップ通信路61〜63が確立されているが、通信路のホップ数及び本数は任意である。制御情報転送装置A501及び制御情報転送装置B502は、IPルータやレイヤ2スイッチ等の通信装置である。本実施形態において、制御情報転送ネットワーク2は、2台の制御情報転送装置501〜502によって構成されているが、その台数及びトポロジは任意である。
なお、各ネットワーク装置51〜59には、それぞれを識別する識別子が付与されており、その識別子はsw_a〜sw_iである。
次に、図1及び図2を参照して、ネットワーク装置53の構成例について説明する。なお、他のネットワーク装置51〜52及び54〜59も、ネットワーク装置53と同じ構成である。
ネットワーク装置53は、インタフェース部53A〜53D、スイッチ部53F及び制御部53Eを備える。伝送線31、32、36及び37は、各々、インタフェース部53A、53D、53B及び53Cに接続され、スイッチ部53Fがインタフェース部53A〜53Dへ入力された信号を交換する(インタフェース部の接続を切り替えて、インターフェース部間で信号を転送する)ことによって、通信路が設定される。
スイッチ部53Fの動作(交換)は、制御部53Eによって制御される。GMPLS拡張RSVP−TEメッセージは、制御部53Eによって解釈される。
また、ネットワーク装置51〜59の各インタフェース部には、識別子が付与される。ネットワーク装置51の3個のインタフェース部51A〜51Cには、各々、(IF_ID=if1)〜(IF_ID=if3)が付与される。ネットワーク装置52の3個のインタフェース部52a〜52cには、各々、(IF_ID=if1)〜(IF_ID=if3)が与えられる。ネットワーク装置53の4個のインタフェース部53A〜53Dには、各々、(IF_ID=if1)〜(IF_ID=if4)が付与される。ネットワーク装置54の3個のインタフェース部54a〜54cには、各々、(IF_ID=if1)〜(IF_ID=if3)が付与される。ネットワーク装置55の3個のインタフェース部55a〜55cには、各々、(IF_ID=if1)〜(IF_ID=if3)が付与される。ネットワーク装置56の2個のインタフェース部56a〜56bには、各々、(IF_ID=if1)〜(IF_ID=if2)が付与される。ネットワーク装置57の4個のインタフェース部57a〜57dには、各々、(IF_ID=if1)〜(IF_ID=if4)が付与される。ネットワーク装置58の4個のインタフェース部58a〜58dには、各々、(IF_ID=if1)〜(IF_ID=if4)が付与される。ネットワーク装置59の2個のインタフェース部59a〜59bには、各々、(IF_ID=if1)〜(IF_ID=if2)が付与される。
各インタフェース部は、二つの波長を用いて信号を送受信し、各波長にラベル1及びラベル2が付与される。本実施形態においては、ネットワーク装置51〜59は、2〜4個のインタフェース部を備えるが、その個数は任意である。また、各インタフェースは、二つの波長を用いて通信するが、その波長の数も任意である。
続いて、図2を参照して、インタフェース部53A(IF_ID=if1)〜53D(IF_ID=if4)のハードウェア構成について説明する。インタフェース部53Aの構成例を説明するが、他のインタフェース部53B〜53Dも、インタフェース部53Aと同じ構成である。
インタフェース部53Aは、合/分波器328、信号送受信機312〜313及び障害検出器320〜321を備える。
合/分波器328は信号を分離する機能を有し、伝送線31からの信号を受信し、受信した信号を波長毎に分離して、送受信機312〜313に送る。送受信機312〜313は、受信した信号をスイッチ部53Fに転送する。また、合/分波器328は信号を合成する機能を有し、送受信機312〜313からの信号を受信し、受信した信号を一つの信号にまとめて、伝送線31に送信する。この場合に、送受信機312〜313は信号を合/分波器328に転送する。スイッチ部53Fは。確立した通信路に対応するインタフェース部53Dに対して信号を送信する。
障害検出器320〜321は、信号を計測することによって、通信路の障害を検出する。
次に、インタフェース部53Aの制御部53Eのハードウェア構成について説明する。制御部53Eは、CPU301、メモリ302、バス等の内部通信線303、通信インタフェース305、二次記憶装置304及び入出力部306を備える。
通信インタフェース305は、制御情報転送装置502に接続され、他のネットワーク装置51〜59との間でGMPLS拡張RSVP−TEメッセージをやり取りする。内部通信線303は、スイッチ部53F及びインタフェース部53A〜53Dと接続され、インタフェース部53A〜53Dの制御信号を送受信する。また、メモリ302には、プログラム3021に定められている手順に従って、通信インタフェース305、障害検出器320〜327及びスイッチ部53Fを制御する。
次に、図3を参照して、本実施形態におけるネットワーク1において確立された通信路の例について説明する。
図3は、通信路23が確立されている状態を示す。通信路を確立するときに、GMPLS拡張RSVP−TEメッセージによって、障害が発生した場合の障害回復経路として利用するための通信路61〜63も確立される。正常時に使用する通信路23をプライマリパスと呼び、プライマリパス23に障害が発生した場合に使用する通信路61〜63をセカンダリパスと呼ぶ。セグメント81〜83は、セカンダリパス61〜63と、セカンダリパス61〜63によって保護されるプライマリパス23の区間を含む。
あるGMPLSスイッチに着目したとき、自GMPLSスイッチが切替の起点となるセグメントを、自ノード管理セグメントと呼ぶ。図3に示す例では、セグメント82はネットワーク装置52(sw_b)の自ノード管理セグメントである。
あるネットワーク装置(GMPLSスイッチ)に着目したとき、自GMPLSスイッチに最も近い下流セグメントを、最近下流セグメントと呼ぶ。図3に示す例では、セグメント82はネットワーク装置51(sw_a)の最近下流セグメントである。
また、あるGMPLSスイッチに着目したとき、自GMPLSスイッチの自ノード管理セグメントとオーバーラップしない最も近い下流セグメントを、最近ノンオーバーラップ下流セグメントと呼ぶ。図3に示す例では、セグメント83はネットワーク装置51(sw_a)の最近ノンオーバーラップ下流セグメントである。
また、あるGMPLSスイッチに着目したとき、自GMPLSスイッチの自ノード管理セグメントとオーバーラップしない最も近い上流セグメントを、最近ノンオーバーラップ上流セグメントと呼ぶ。図3に示す例では、セグメント81はネットワーク装置54(sw_c)の最近ノンオーバーラップ上流セグメントである。
次に、プライマリパスを確立するシーケンスを、図4A〜図4Cを用いて、説明する。図4A、図4B及び図4Cは、順に、プライマリパスの確立シーケンスの一連の手順を示す。
ネットワーク装置51の制御部51E(CONT_A)は、パス確立要求装置50からネットワーク装置51〜55間の経路を持つプライマリパスの確立要求を受信すると、制御部51E(CONT_A)が資源を割り当て、セッション情報テーブル700とクロスコネクト情報テーブル600に登録する(1102)。図14A及び図13Aは、ステップ1102で登録されたテーブルの内容を示す。
次に、セグメント情報をセグメント管理テーブル800へ登録する(1103)。セグメント管理テーブル800への登録の詳細は、図18を参照して後述する。図15は、処理1103による登録後のセグメント管理テーブル800の内容を示す。
その後、リカバリパスの確立要否を検討する(1104)。その結果、リカバリパスを確立する必要があるため、リカバリパス61を確立する(1105)。
続いて、プライマリパス23において、下流に向けて、通信路の割り当てを要求するために、ネットワーク装置51(sw_a)からネットワーク装置52(sw_b)へ、PATHメッセージが送られる(1106)。PATHメッセージにはセグメント81、82及び83を表す拡張オブジェクトである拡張プロテクション情報と拡張経路情報を含む。
セグメント81のプライマリパスの情報は、プロテクション情報である (segId(sw_a,sw_c), segT(pri), P(S=0,P=0,O=1)) 、及び、経路情報である (segId(sw_a,sw_c), segT(pri), ERO((sw_a,if1), (sw_b,if1), (sw_c,if1))) を含む。プロテクション情報及び経路情報の各々は、セグメント81を表すセグメント識別子である segId(sw_a,sw_c) 、及び、プライマリのセグメントタイプである segT(pri) を含む。
セグメント82のプライマリパスの情報は、プロテクション情報である (segId(sw_b,sw_d), segT(pri), P(S=0,P=0,O=1)) 、及び、経路情報である (segId(sw_b,sw_d), segT(pri), ERO((sw_b,if1), (sw_c,if1), (sw_d,if1))) を含む。プロテクション情報及び経路情報の、セグメント82を表すセグメント識別子である segId(sw_b,sw_d) 及びプライマリのセグメントタイプであるsegT(pri)を含む。
セグメント83のプライマリパスの情報は、プロテクション情報である (segId(sw_c,sw_e),segT(pri), P(S=0,P=0,O=1)) 、及び、経路情報である (segId(sw_c,sw_e), segT(pri), ERO((sw_c,if1), (sw_d,if1), (sw_e,if1))) を含む。プロテクション情報及び経路情報は、セグメント83を表すセグメント識別子である segId(sw_c,sw_e) 及びプライマリのセグメントタイプである segT(pri) を含む。
セグメント81のリカバリパスの情報は、プロテクション情報である (segId(sw_a,sw_c), segT(sec), P(S=1,P=1,O=0)) 、及び、経路情報である (segId(sw_a,sw_c), segT(sec), ERO((sw_a,if1), (sw_f,if1), (sw_g,if2), (sw_c,if1))) を含む。プロテクション情報及び経路情報は、セグメント81を表すセグメント識別子である segId(sw_a,sw_c) 及びセカンダリのセグメントタイプである segT(sec) を含む。リカバリパスの経路情報は、リカバリ経路を表す。
セグメント82のリカバリパスの情報はプロテクション情報である (segId(sw_b,sw_d), segT(sec), P(S=1,P=1,O=0)) 、及び、経路情報である (segId(sw_b,sw_d), segT(sec), ERO((sw_b,if1), (sw_g,if1), (sw_h,if2), (sw_d,if1))) を含む。プロテクション情報及び経路情報は、セグメント82を表す82セグメント識別子である segId(sw_b,sw_d) 及びセカンダリのセグメントタイプである segT(sec) を含む。
セグメント83のリカバリパスの情報はプロテクション情報である (segId(sw_c,sw_e), segT(sec), P(S=1,P=1,O=0)) 、及び、経路情報である (segId(sw_c,sw_e), segT(sec), ERO((sw_c,if1), (sw_h,if1), (sw_i,if1), (sw_e,if1))) を含む。プロテクション情報及び経路情報は、セグメント83を表すセグメント識別子である segId(sw_b,sw_d) とセカンダリのセグメントタイプである segT(sec) を含む。拡張オブジェクトにはセグメントを区別するためのセグメント識別子 (segID) 及びセグメントタイプ (segT) を含む。
次に、ネットワーク装置52は、PATHメッセージを受信すると、資源を割り当て、セッション情報テーブル700とクロスコネクト情報テーブル600に登録する(1107)。図14B及び図13Bは、ステップ1107で登録されたテーブルの内容を示す。
次に、セグメント情報をセグメント管理テーブル800へ登録する(1108)。セグメント管理テーブル800への登録の詳細は、図18を参照して後述する。図15は、処理1108による登録後のセグメント管理テーブル800の内容を示す。
その後、リカバリパスの確立要否を検討する(1109)。その結果、リカバリパスを確立する必要があるため、リカバリパス62を確立する(1110)。
続いて、ネットワーク装置52(sw_b)からネットワーク装置53(sw_c)へシーケンス1111のPATHメッセージが送られる。
ネットワーク装置53は、PATHメッセージを受信すると、資源を割り当て、セッション情報テーブル700とクロスコネクト情報テーブル600に登録する(1112)。図14C及び図13Cは、ステップ1112で登録されたテーブルの内容を示す。
次に、セグメント情報をセグメント管理テーブル800へ登録する(1113)。セグメント管理テーブル800への登録の詳細は、図18を参照して後述する。図15は、処理1113による登録後のセグメント管理テーブル800の内容を示す。
その後、リカバリパスの確立要否を検討する(1114)。その結果、リカバリパスを確立する必要があるため、リカバリパス63を確立する(1115)。
さらに、ネットワーク装置53(sw_c)からネットワーク装置54(sw_d)へPATHメッセージが送られる(1116)。
ネットワーク装置54は、PATHメッセージを受信すると、資源を割り当て、セッション情報テーブル700とクロスコネクト情報テーブル600に登録する(1117)。図14D及び図13Dは、ステップ1117で登録されたテーブルの内容を示す。
次に、セグメント情報をセグメント管理テーブル800へ登録する(1118)。セグメント管理テーブル800への登録の詳細は、図18を参照して後述する。図15は、処理1118による登録後のセグメント管理テーブル800の内容を示す。
その後、リカバリパスの確立要否を検討する(1119)。その結果、リカバリパスを確立する必要がないと判断される。
最後に、ネットワーク装置54(sw_d)からネットワーク装置55(sw_e)へPATHメッセージが送られる(1120)。
ネットワーク装置55は、PATHメッセージを受信すると、資源を割り当て、セッション情報テーブル700とクロスコネクト情報テーブル600に登録する(1121)。図14E及び図13Eは、ステップ1121で登録されたテーブルの内容を示す。
次に、クロスコネクト制御を行う(1122)。その後、セグメント情報をセグメント管理テーブル800へ登録する(1123)。セグメント管理テーブル800への登録の詳細は、図18を参照して後述する。図15は、処理1123による登録後のセグメント管理テーブル800の内容を示す。
その後、リカバリパスの確立要否を検討する(1124)。その結果、リカバリパスを確立する必要がないと判断される。
そして、パス切替条件を切替テーブル500に登録する(1125)。図12Dは、ステップ1125で登録された切替テーブルの内容を示す。
次に、障害通知先になるノードを障害通知先情報テーブル900に登録する(1126)。障害通知先情報テーブル900への登録処理の詳細は、図23を参照して後述する。図16は、障害通知先情報テーブル900の登録結果を示す。
次に、通信路の割り当てを要求するPATHメッセージを受けた受信側から、上流に向けて、インタフェースとラベル情報が搭載された、RESVメッセージが返信される(1127)。例えば、ネットワーク装置55からネットワーク装置54へ送信されるRESVメッセージに、ネットワーク装置55である自ノードに関する値が格納される。すなわち、使用されるインタフェース55aが(sw_e,if1)で表される。
ネットワーク装置54がRESVメッセージを受信すると、クロスコネクトを制御し(1128)、切替条件を切替テーブル500に登録する(1129)。切替テーブル500への登録の詳細は、図19〜図22を参照して後述する。図12Dは、処理1129による登録後の切替テーブル500の内容を示す。
次に、障害通知先になるノードを障害通知先情報テーブル900に登録する(1130)。障害通知先情報テーブル900への登録処理の詳細は、図23を参照して後述する。図16は、処理1130による登録後の障害通知先情報テーブル900の内容を示す。
続いて、受信したRESVメッセージ1127に、ネットワーク装置54である自ノードに関する値が追記され、生成されたRESVメッセージ1131がネットワーク装置54からネットワーク装置53へ送信される。すなわち、使用されるインタフェース54Aが(sw_d,if1)で表される。
ネットワーク装置53は、RESVメッセージ1131を受信すると、クロスコネクトを制御し(1132)、切替条件を切替テーブル500に登録する(1133)。切替テーブル500への登録処理の詳細は、図19〜図22を参照して後述する。図12Cは、処理1133による登録後の切替テーブル500の内容を示す。
次に、障害通知先情報テーブル900に障害通知先になるノードを登録する(1134)。障害通知先情報テーブル900への登録処理の詳細は、図23を参照して後述する。図16は、処理1134による登録後の障害通知先情報テーブル900の内容を示す。
更に、受信したRESVメッセージ1131に、ネットワーク装置53である自ノードに関する値が追記され、生成されたRESVメッセージ1135がネットワーク装置53からネットワーク装置52へ送信される。すなわち、使用されるインタフェース53Aが(sw_c,if1)で表される。
ネットワーク装置52は、RESVメッセージ1135を受信すると、クロスコネクトを制御し(1136)、切替条件を切替テーブル500に登録する(1137)。切替テーブルへの登録の詳細は、図19〜図22を参照して後述する。図12Bは、処理1137による登録後の切替テーブル500の内容を示す。
次に、障害通知先になるノードを障害通知先情報テーブル900に登録する(1138)。障害通知先情報テーブル900への登録処理の詳細は、図23を参照して後述する。図16は、処理1138による登録後の障害通知先情報テーブル900の内容を示す。
最後に、受信したRESVメッセージ1135に、ネットワーク装置52である自ノードに関する値が追記され、生成されたRESVメッセージ1139がネットワーク装置52からネットワーク装置51へ送信される。すなわち、使用されるインタフェース52Aが(sw_b,if1)で表される。
ネットワーク装置51は、RESVメッセージ1139を受信すると、クロスコネクトを制御し(1140)、切替条件を切替テーブル500に登録する(1141)。切替テーブルへの登録処理の詳細は、図19〜図22を参照して後述する。図12Aは、処理1141による登録後の切替テーブル500の内容を示す。
次に、障害通知先になるノードを障害通知先情報テーブル900に登録する(1142)。障害通知先情報テーブルへの登録処理の詳細は、図23を参照して後述する。図16は、処理1142による登録後の障害通知先情報テーブル900の内容を示す。
次に、図5を参照して、リカバリパス61を確立するシーケンスについて説明する。
リカバリパス61において、下流に向けて、通信路の割り当てを要求するために、ネットワーク装置51(sw_a)からネットワーク装置56(sw_f)へPATHメッセージが送られる(1151)。ネットワーク装置56は、PATHメッセージ1151を受信すると、資源を割り当て、セッション情報テーブル700及びクロスコネクト情報テーブル600に登録する(1152)。
続いて、ネットワーク装置56(sw_f)からネットワーク装置57(sw_g)へPATHメッセージが送られる(1153)。ネットワーク装置57は、PATHメッセージ1153を受信すると、資源を割り当て、セッション情報テーブル700及びクロスコネクト情報テーブル600に登録する(1154)。
さらに、ネットワーク装置57(sw_g)からネットワーク装置53(sw_c)へPATHメッセージが送られる(1155)。ネットワーク装置53は、PATHメッセージ1155を受信すると、資源を割り当て、セッション情報テーブル700及びクロスコネクト情報テーブル600に登録する(1156)。
次に、通信路の割り当てを要求するPATHメッセージを受けた受信側から、上流に向けて、インタフェースとラベル情報が含まれるRESVメッセージが返信される(1157)。例えば、ネットワーク装置53からネットワーク装置57へ送信されるRESVメッセージ1157に、ネットワーク装置53である自ノードに関する値が格納される。すなわち、使用されるインタフェース53Bが(sw_c,if2)で表される。
ネットワーク装置57は、RESVメッセージ1157を受信すると、クロスコネクトを制御する(1158)。続いて、受信したRESVメッセージ1157に、ネットワーク装置57である自ノードに関する値が追記され、生成されたRESVメッセージ1159がネットワーク装置57からネットワーク装置56へ送信される。すなわち、使用されるインタフェース57Bが(sw_g,if2)で表される。
ネットワーク装置56は、RESVメッセージ1159を受信すると、クロスコネクトを制御する(1160)。更に、受信したRESVメッセージ1160に、自ノードであるネットワーク装置56に関する値が追記され、生成されたRESVメッセージ1161がネットワーク装置56からネットワーク装置51へ送信される。すなわち、使用されるインタフェース56Aが(sw_f,if1)で表される。
このように、リカバリパス62の確立(1110)及びリカバリパス63の確立(1115)も、前述したリカバリパス61の確立(1105)と同じ方法で確立できる。
次に、図6Aを参照して、リンク障害によってパスを切り替えるシーケンスの例について説明する。図6Aは、リンク31及びリンク32の障害によるパスの切替を示す。
まず、リンク32の障害が発生直後にネットワーク装置54の障害検出部415(図8参照)がインタフェース53Dの障害を検出すると(1201)、ネットワーク装置54の切替部412(図8参照)は、切替テーブル500(図12D)を参照し、リカバリパスへ切り替える必要がないと判断する(1202)。リカバリパスへの切替要否の判断の詳細は、図24〜図25を参照して後述する。
ネットワーク装置54の障害通知情報蓄積部408(図8参照)は、障害通知情報テーブル900(図16)を参照する(1203)。障害通知情報テーブル900を参照した結果、ネットワーク装置54の制御メッセージ送信部416(図8)は、ネットワーク装置51、52及び53に、NOTIFYメッセージを送信する(1204、1205及び1206)。
ネットワーク装置51の制御部51E(CONT_A)は、NOTIFYメッセージを受け取って(1206)、切替テーブル500(図12A)を参照し、リカバリパスへ切り替える必要がないと判断する(1207)。
ネットワーク装置52の制御部52E(CONT_B)は、NOTIFYメッセージを受け取って(1205)、切替テーブル500(図12B)を参照し、リカバリパスへ切り替える必要がないと判断する(1208)。
ネットワーク装置53の制御部53E(CONT_C)は、NOTIFYメッセージを受け取って(1204)、切替テーブル500(図12C)を参照し、リカバリパスへ切り替える必要があると判断する(1209)。そして、リカバリパス63のリカバリ状況を”busy”に設定し(1210)、セグメント83のプライマリパスの稼働状況を”idle”に設定する(1211)。
リンク32の障害が発生直後に、ネットワーク装置53の障害検出部415(図8参照)がインタフェース54Aの障害を検出すると(1212)、ネットワーク装置53の切替部412(図8参照)は、切替テーブル500(図12C)を参照し、リカバリパスへ切り替える必要があると判断する。しかし、既にリカバリパスへ切り替え済みであるため、新たな切り替え動作は必要ないと判断する(1213)。リカバリパスへの切替要否の判断の詳細は、図24〜図25を参照して後述する。その後、ネットワーク装置54の障害通知情報蓄積部408(図8参照)は、障害通知先情報テーブル900(図16)を参照する(1214)。障害通知先情報テーブル900を参照した結果、ネットワーク装置53の制御メッセージ送信部416(図8参照)は、ネットワーク装置52及び51に、NOTIFYメッセージを送信する(1215、1216)。
ネットワーク装置51の制御部51E(CONT_A)は、NOTIFYメッセージ1216を受け取ると、切替テーブル500(図12A)を参照し、リカバリパスへ切り替える必要がないと判断する(1217)。ネットワーク装置52の制御部52E(CONT_B)は、NOTIFYメッセージ1215を受け取ると、切替テーブル500(図12B)を参照し、リカバリパスへ切り替える必要がないと判断する(1218)。リカバリパスへの切替要否の判断の詳細は、図24〜図25を参照して後述する。
続いて、リンク31の障害が発生した直後に、ネットワーク装置52の障害検出部415(図8参照)が、インタフェース53Aの障害を検出すると(1219)、ネットワーク装置52の切替部412(図8参照)は、切替テーブル500(図12B)を参照し、リカバリパス62へ切り替える必要があると判断する(1220)。そして、リカバリパス62のリカバリ状況を”busy”に設定し(1221)、セグメント82のプライマリパスの稼働状況を”idle”に設定する(1222)。
ネットワーク装置52の障害通知情報蓄積部408(図8参照)は、障害通知先情報テーブル900(図16)を参照する(1223)。障害通知先情報テーブル900を参照した結果、ネットワーク装置52の制御メッセージ送信部416(図8参照)は、ネットワーク装置51及び53に、NOTIFYメッセージを送信する(1224、1225)。
ネットワーク装置51の制御部51E(CONT_A)は、NOTIFYメッセージ1224を受け取ると、切替テーブル500(図12A)を参照し、リカバリパスへ切り替える必要がないと判断する(1226)。ネットワーク装置53の制御部53E(CONT_C)は、NOTIFYメッセージ1225を受け取ると、切替テーブル500(図12C)を参照し、セグメント83のプライマリパスへ切り戻す必要があると判断する(1227)。
ネットワーク装置53の制御部53E(CONT_C)は、セグメント管理テーブル800のリカバリパス63のリカバリ状況を”idle”に設定し(1228)、セグメント83のプライマリパスの稼働状況を”busy”に設定する(1229)。
最後に、リンク31の障害の発生直後に、ネットワーク装置53の障害検出部415(図8参照)は、インタフェース52Cの障害を検出する(1230)。ネットワーク装置53の切替部412(図8参照)は、切替テーブル500(図12B)を参照し、リカバリパスへ切り替える必要がないと判断する(1231)。リカバリパスへの切替要否の判断の詳細は、図24〜図25を参照して後述する。
ネットワーク装置53の障害通知情報蓄積部408(図8参照)は、障害通知先情報テーブル900(図16)を参照する(1232)。障害通知先情報テーブル900を参照した結果、ネットワーク装置53の制御メッセージ送信部416(図8参照)は、ネットワーク装置51及び52に、NOTIFYメッセージを送信する(1233、1234)。
ネットワーク装置51の制御部51E(CONT_A)は、NOTIFYメッセージ1233を受け取ると、切替テーブル500(図12A)を参照し、リカバリパスへ切り替える必要がないと判断する(1235)。ネットワーク装置52の制御部52E(CONT_B)は、NOTIFYメッセージ1234を受け取ると、切替テーブル500(図12B)を参照し、切り替える必要がないと判断する(1236)。
以上のような、リカバリパス62への切り替えによって、リンク31及び32のパス障害が回復する。
次に、図6Bを参照して、リカバリパスのリカバリ状況をonに変更するシーケンスについて説明する。
ネットワーク装置52は、セグメント管理テーブル800(図15参照)のセグメント識別子(src=sw_b,dst=sw_d)を持つレコードのリカバリ状況8043を”busy”に変更し、クロスコネクト情報テーブル600を更新する(1239)。そして、リカバリパスパス62のPATHメッセージをネットワーク装置57へ送信する(1240)。
次に、ネットワーク装置57は、クロスコネクト情報テーブル600を更新し(1241)、リカバリパスパス62のPATHメッセージをネットワーク装置58へ送信する(1242)。ネットワーク装置58は、クロスコネクト情報テーブル600を更新し(1243)、リカバリパスパス62のPATHメッセージをネットワーク装置54へ送信する(1244)。
次に、通信路の割り当てを要求するPATHメッセージを受けた受信側から、ネットワーク装置54がセグメント管理情報テーブル800のセグメント識別子(src=sw_b,dst=sw_d)を持つレコードのリカバリ状況8043を”busy”に変更し、クロスコネクト情報テーブル600を更新する(1245)。そして、ネットワーク装置54がクロスコネクト制御を行う(1246)。
ネットワーク装置54が上流に向けて、インタフェースとラベル情報が格納された、RESVメッセージが返信される(1247)。例えば、ネットワーク装置54からネットワーク装置58へRESVメッセージを送信する。
続いて、ネットワーク装置58からネットワーク装置57へRESVメッセージを送信する(1248)。続いて、ネットワーク装置57からネットワーク装置52へRESVメッセージを送信する(1249)。ネットワーク装置52は、RESVメッセージを受け取ると、クロスコネクト制御を行う(1250)。
次に、図6Cを参照して、セグメント82のプライマリパスの稼動状況を”idle”に変更するシーケンスについて説明する。
ネットワーク装置52は、セグメント管理情報テーブル800の稼働状況8033を”idle”に変更し(1270)、セグメント82の更新情報が格納されたPATHメッセージを、ネットワーク装置53へ送信する(1271)。次に、ネットワーク装置53がセグメント管理情報テーブル800の稼働状況8033を”idle”に変更し(1272)、セグメント82の更新情報が格納されたPATHメッセージを、ネットワーク装置54へ送信する(1273)。
次に、通信路の割り当てを要求するPATHメッセージを受けた受信側から、上流に向けて、インタフェースとラベル情報が搭載された、RESVメッセージが返信される(1275)。例えば、ネットワーク装置54からネットワーク装置53へRESVメッセージを送信する。続いて、ネットワーク装置53からネットワーク装置52へRESVメッセージを送信する(1276)。
次に、図7を参照して、ネットワーク装置53でのノード故障によるパスの切替の動作例について説明する。
まず、ネットワーク装置53のノード故障が発生した直後に、ネットワーク装置52の障害検出部415(図8参照)がインタフェース53Aの障害を検出する(1301)。ネットワーク装置54の切替部412(図8参照)は、切替テーブル500(図12D)を参照し、リカバリパス62へ切り替える必要があると判断する(1302)。リカバリパスへの切替要否の判断の詳細は、図24〜図25を参照して後述する。リカバリパス62のリカバリ状況を”busy”に設定し(1303)、セグメント83のプライマリパスの稼働状況を”idle”に設定する(1304)。
ネットワーク装置52の障害通知情報蓄積部408(図8参照)は、障害通知情報テーブル900(図16)を参照する(1305)。障害通知情報テーブル900を参照した結果、ネットワーク装置52の制御メッセージ送信部416(図8参照)は、ネットワーク装置51及び53に、NOTIFYメッセージを送信する(1306、1307)。
ネットワーク装置51の制御部51E(CONT_A)は、NOTIFYメッセージ1307を受け取ると、切替テーブル500(図12A)を参照し、リカバリパスへ切り替える必要がないと判断する(1308)。リカバリパスへの切替要否の判断の詳細は、図24〜図25を参照して後述する。ネットワーク装置53の制御部53E(CONT_C)は、NOTIFYメッセージ1306を受け取ると、切替テーブル500(図12C)を参照し、リカバリパスへ切り替える必要がないと判断する(1309)。リカバリパスへの切替要否の判断の詳細は、図24〜図25を参照して後述する。
ネットワーク装置53のノード故障が発生した直後に、ネットワーク装置54の障害検出部415(図8参照)がインタフェース53Dの障害を検出する(1310)。リカバリパスへの切替要否の判断の詳細は、図24〜図25を参照して後述する。ネットワーク装置53の切替部412(図8参照)は、切替テーブル500(図12C)を参照し、リカバリパスへ切り替える必要がないと判断する(1311)。ネットワーク装置54の障害通知情報蓄積部408(図8参照)は、障害通知先情報テーブル900(図16)を参照する(1312)。障害通知先情報テーブル900を参照した結果、ネットワーク装置54の制御メッセージ送信部416(図8参照)は、ネットワーク装置53、52及び51に、NOTIFYメッセージを送信する(1313、1314及び1315)。
ネットワーク装置51の制御部51E(CONT_A)は、NOTIFYメッセージ1315を受け取ると、切替テーブル500(図12A)を参照し、リカバリパスへ切り替える必要がないと判断する(1316)。ネットワーク装置52の制御部52E(CONT_B)は、NOTIFYメッセージ1314を受け取ると、切替テーブル500(図12B)を参照し、リカバリパスへ切り替える必要がないと判断する(1317)。ネットワーク装置53の制御部52E(CONT_B)は、NOTIFYメッセージ1313を受け取ると、切替テーブル500(図12B)を参照し、リカバリパスへ切り替える必要がないと判断する(1318)。リカバリパスへの切替要否の判断(1316〜1318)の詳細は、図24〜図25を参照して後述する。
このように、ネットワーク装置53でのノード故障の場合も、リカバリパス62への切り替えによって、パスの障害を回復する。
次に、図8の論理ブロック図を参照して、制御部53Eの構成について説明する。
制御部53Eは、プロセッサ及びメモリを備える。プロセッサがメモリに格納されるプログラムを実行することによって、制御部53Eの各機能が実行される。
具体的には、制御部53Eは、プログラムを実行することによって、制御メッセージ受信部401、パス要求受付部402、PATHメッセージ処理部403、RESVメッセージ処理部404、NOTIFYメッセージ処理部405、セッション情報蓄積部406、インタフェース情報蓄積部407、障害通知先情報蓄積部408、セグメント管理情報蓄積部409、クロスコネクト状態蓄積部410、リカバリセグメント管理部411、切替部412、切替情報蓄積部413、クロスコネクト制御部414、障害検出部415、制御メッセージ送信部416、及び障害状態蓄積部417を備える。
切替情報蓄積部413は、切替テーブル500(図12C)を管理する。クロスコネクト状態蓄積部410は、クロスコネクト情報テーブル600(図13C)を管理する。セッション情報蓄積部406は、セッション情報テーブル700(図14C)を管理する。セグメント管理情報蓄積部409は、セグメント管理情報テーブル800(図15)を管理する。障害通知先情報蓄積部408は、障害通知先情報テーブル900(図16)を管理する。障害状態蓄積部417は、障害状態テーブル1000(図17)を管理する。各テーブルの詳細は後述する。
制御メッセージ受信部401は、他のネットワーク装置51〜59からGMPLS拡張RSVP−TEメッセージを受信した場合に、メッセージの種類を判断する。具体的には、受信したメッセージがPATHメッセージである場合に、PATHメッセージをPATHメッセージ処理部403に転送する。同様に、受信したメッセージがRESVメッセージである場合に、RESVメッセージをRESVメッセージ処理部404に転送する。また、受信したメッセージがNOTIFYメッセージである場合に、NOTIFYメッセージをNOTIFYメッセージ処理部405に転送する。
パス要求受付部402は、他のアプリケーションからパス確立要求を受け取った場合に、PATHメッセージ処理部403にパス確立要求を送信する。PATHメッセージ処理部403は、受信したパス確立要求の内容に従って、インタフェース情報蓄積部407からインタフェース情報及びラベル情報を抽出する。その後、抽出されたインタフェース情報とラベル情報を含む、自ノードを起点ノードとしたPATHメッセージを作成し、作成されたPATHメッセージを制御メッセージ送信部416に送信する。
セッション情報蓄積部406は、PATHメッセージ処理部403及びRESVメッセージ処理部404から、通信路を識別するセッション識別子を受け取る。そして、セッション情報蓄積部406は、必要に応じてセッション情報テーブル700を更新する。具体的には、受け取ったセッション識別子が、セッション情報テーブル700に登録されていない場合又はセッション情報テーブル700の情報の更新が必要な場合は、受け取った情報をセッション情報テーブル700に登録する。
障害通知先情報蓄積部408は、PATHメッセージ処理部403から障害通知先の情報を受け取った場合に、障害通知先情報テーブル900に登録する。
NOTIFYメッセージ処理部405は、受け取ったNOTIFYメッセージから障害箇所の情報を抽出し、抽出された障害箇所の情報を切替部412に送る。切替部412は、NOTIFYメッセージ処理部405から障害箇所の情報を受け取った場合に、受け取った障害箇所の情報を障害状態蓄積部417に送信する。障害状態蓄積部417は受け取った障害箇所の情報、障害状態テーブル1000に登録する。
また、障害検出部415は、障害検出器320〜327から障害情報を受信すると、受信した障害情報を切替部412に送信する。切替部412は、障害検出部415から障害通知を受け取ったら、受信した障害情報を障害状態蓄積部417に送信する。障害状態蓄積部417は、受け取った障害情報を障害状態テーブル1000に登録する。
また、切替部412は、障害状態をNOTIFYメッセージ処理部405に送信する。NOTIFYメッセージ処理部405は、受信した障害状態に基づいて、NOTIFYメッセージを生成し、生成されたNOTIFYメッセージを制御メッセージ送信部416に送信する。
また、切替部412は、障害状態テーブル1000から障害状態情報を抽出し、抽出された障害状態情報を障害通知先蓄積部408に送信する。障害通知先蓄積部408は、障害状態情報を条件にして切替セグメントを検索し、検索結果を切替部412に送信する。
クロスコネクト状態蓄積部410は、PATHメッセージ処理部403及びRESVメッセージ処理部404から、クロスコネクト情報を受け取って、クロスコネクト情報テーブル600を更新する。具体的には、受け取ったクロスコネクト情報がクロスコネクト情報テーブル600に登録されていない場合は、受け取った情報をクロスコネクト情報テーブル600に登録する。
セグメント管理情報蓄積部409は、セグメント管理情報蓄積テーブル800を更新する。具体的には、PATHメッセージ処理部403及びRESVメッセージ処理部404から、自ノードが含まれているセグメントのプライマリパスの情報及びリカバリパスの情報を受信すると、受信したプライマリパスの情報及びリカバリパスの情報を、セグメント管理情報蓄積テーブル800に登録する。
PATHメッセージ処理部403は、制御メッセージ受信部401からPATHメッセージを受け取ると、受け取ったPATHメッセージをセッション情報蓄積部406のセッション情報テーブル700に登録する。PATHメッセージ処理部403は、他ネットワーク装置51〜59からPATHメッセージを受け取ると、インタフェース情報蓄積部407から使用するインタフェース情報とラベル情報を抽出し、PATHメッセージを生成し、生成されたPATHメッセージを制御メッセージ送信部416に送信する。
RESVメッセージ処理部404は、制御メッセージ受信部401からRESVメッセージを受け取ると、使用するインタフェース情報とラベル情報をインタフェース情報蓄積部407から抽出し、RESVメッセージを生成し、生成されたRESVメッセージを制御メッセージ送信部416に送信する。
制御メッセージ送信部416は、PATHメッセージ処理部403、RESVメッセージ処理部404又はNOTIFYメッセージ処理部405からメッセージを受け取ると、受け取ったメッセージを他のネットワーク装置51〜59に送信する。
リカバリセグメント管理部411は、PATHメッセージ処理部403にリカバリパス確立要求を送信する。リカバリセグメント管理部411はPATHメッセージ処理部403及びRESVメッセージ処理部404から、リカバリパスが確立された通知を受け取ると、リカバリパス情報及びこのリカバリパスによって保護されるプライマリパス区間の情報を、セグメント管理情報蓄積部409に送信する。セグメント管理情報蓄積部409は、リカバリパス情報及びプライマリパス区間の情報を受け取ると、受け取った情報をセグメント管理情報テーブル800に登録する。
さらに、リカバリセグメント管理部411は、PATHメッセージの一部の情報としてリカバリパス確立要求の内容を作成し、制御メッセージ送信部416に送信する。また、決定したセグメント情報をセグメント管理情報蓄積部409に送信する。セグメント管理情報蓄積部409が受け取ったセグメント情報はセグメント管理情報テーブル800に登録される。
次に、図9を参照して、本発明によるGMPLS拡張RSVP−TEメッセージのフォーマットについて説明する。
GMPLS拡張RSVP−TEメッセージ140には、RSVPメッセージ種別1402、セッション識別子1403、拡張ラベル1404、拡張プロテクション1405、拡張経路情報/拡張記録経路情報1406、及びその他の拡張オブジェクト1407〜1408を含む。
拡張ラベル1404は、セグメント識別子14041、セグメントタイプ14042及びラベル情報14043情報を含む。拡張プロテクション1405は、セグメント識別子14051、セグメントタイプ14052及びプロテクション情報14053情報を含む。
拡張経路情報/拡張記録経路情報1406は、セグメント識別子14061、セグメントタイプ14062及び経路情報又は記録経路情報14063を含む。拡張オブジェクト1407は、セグメント識別子14071、セグメントタイプ14072及びオブジェクト情報14073情報を含む。拡張オブジェクト1408は、セグメント識別子14081、セグメントタイプ14082及びオブジェクト情報14083情報を含む。
次に、図10を参照して、ネットワーク装置52からネットワーク装置53へ送信されるPATHメッセージのフォーマットについて、具体的に説明する。
GMPLS拡張RSVP−TEメッセージ140はPATHメッセージなので、RSVPメッセージ種別1402には”PATH”が格納される。各拡張オブジェクト1405、1406及び1407のセグメント識別子には、” {src=sw_b,dst=sw_d}が格納される。また、セグメントタイプには”primary”又は”secondary”が格納される。
次に、図11を参照して、ネットワーク装置53からネットワーク装置52へ送信されるRESVメッセージのフォーマットについて、具体的に説明する。
GMPLS拡張RSVP−TEメッセージ140はRESVメッセージなので、RSVPメッセージ種別1402には”RESV”が格納される。各拡張オブジェクト1405、1406及び1407のセグメント識別子には、”{src=sw_b,dst=sw_d}が格納される。また、セグメントタイプには”primary”又は”secondary”が格納される。
ネットワーク装置51〜55の各切替情報蓄積部410は、切替情報テーブル500を保持する(図12A〜図12D)。図12Aを参照して、切り替え情報テーブル500の構成例について説明する。
切り替え情報テーブル500は、セッション識別子501、切替条件502及びリカバリセグメント情報503を含む。リカバリセグメント情報503は、セグメント識別情報5031、セグメントのプライマリパスの経路5032、セグメントタイプ5033及びリカバリパスの経路5034を含む。
ネットワーク装置51〜55の各クロスコネクト状態蓄積部410は、クロスコネクト情報テーブル600を保持する(図13A〜図13E)。図13Aを参照して、クロスコネクト情報テーブル600の構成例について説明する。
クロスコネクト情報テーブル600は、セッション識別子601、稼働状況602、データ流入インタフェース情報603及びデータ流出インタフェース情報604を含む。データ流入インタフェース情報603は、流入インタフェース識別子6031及び流入ラベル値6032を含む。データ流出インタフェース情報604は、流出インタフェース識別子6041及び流出ラベル値6042を含む。
ネットワーク装置51〜55の各セッション情報蓄積部406は、セッション情報テーブル700を保持する(図14A〜図14E)。図14Aを参照して、セッション情報テーブル700の構成例について説明する。
セッション情報テーブル700は、セッション識別子701、起点ノード702、終点ノード703及び経路情報704を含む。経路情報704は、ERO情報7041及びRRO情報7042を含む。ERO情報7041は経路オブジェクトであり、RRO情報7042は経路記録オブジェクトである。
ネットワーク装置51〜55の各セグメント管理情報蓄積部409は、セグメント管理情報テーブル800を保持する(図15)。図15を参照して、セグメント管理情報800の構成例について説明する。
セグメント管理テーブル800は、セッション識別子801、セグメント識別子802、プライマリパス803及びリカバリパス804を含む。プライマリパス803は、セグメントタイプ8031、経路情報8032及び稼動状況8033を含む。リカバリパス情報804は、セグメントタイプ8041、パス経路8042及びリカバリ状況8043を含む。
ネットワーク装置51〜55の各障害通知先情報蓄積部408は、障害通知先情報テーブル900(図16)を保持する。図16を参照して、障害通知先情報テーブル900の構成例について説明する。障害通知先情報テーブル900は、セッション識別子901及びルータ識別子902を含む。
ネットワーク装置51〜55の各障害状態蓄積部417は、障害状態テーブル1000(図17)を保持する。図17を参照して、障害状態テーブル1000の構成例について説明する。障害状態テーブル1000は、セッション識別子1001、ルータ識別子1002、検出識別子インターフェース識別子1003、伝送方向1004及び障害状況1005を含む。
本実施形態における、制御情報は、GMPLS拡張RSVP−TEの基本的なパス確立後のリフレッシュシーケンスにおいて、PATHメッセージ及びRESVメッセージに、新たなオブジェクトを追加することによって、ネットワーク装置間で交換される。PATHメッセージは送信者から受信者に向けて通信路の割り当てを要求するメッセージである。RESVメッセージは、PATHメッセージによって設定される通信路を受信側へ通知するメッセージである。
続いて、図18を参照して、リカバリセグメント管理部411がPATHメッセージ処理部403からPATHメッセージを受信したときの処理について説明する。
リカバリセグメント管理部411は、受信したPATHメッセージのプロテクションオブジェクト(P=0)によって、受信したPATHメッセージがプライマリパスメッセージか否かを判定する(1701)。判定の結果、受信したPATHメッセージがプライマリパスのメッセージでなければ、処理を終了する。一方、受信したPATHメッセージがプライマリパスのメッセージであれば、セグメント管理情報テーブル800上で、RSVPメッセージのすべてのセグメント識別子に対して以下の処理を行う(1702)。
すなわち、PATHメッセージに含まれるセッション識別子1403、セグメント識別子14051及びセグメントタイプ14052と、セグメント管理情報テーブル800に格納されたセッション識別子801、セグメント識別子802及びセグメントタイプ8031とが一致するレコードを、セグメント管理情報テーブル800から検索し(17021)。レコードが見つかったか否かを判定する(17022)。
判定の結果、レコードが見つかった場合に、検索されたレコードの内容とRSVPメッセージのセグメントの情報を比較する。そして、両者が一致しない場合に、RSVPメッセージのセグメントの情報で、検索されたレコードの内容を更新する(17023)。一方、レコードが見つからなかった場合に、セグメント管理情報テーブル800のセッション識別子フィールド801、セグメント識別子フィールド802及びセグメントタイプフィールド8031に、各々、PATHメッセージのセッション識別子1403、セグメント識別子14061及び経路情報14063が格納されたレコードを追加し、各値を初期化する(17024)。
次に、図19を参照して、切替テーブル500に切り替えのための障害条件を登録する処理について説明する。
レコードが見つかった場合に、切替テーブル500に自ノード管理セグメント及び下流セグメントでの障害を条件にする登録処理(1901)、切替テーブル500に自ノード管理セグメント及び上流セグメントでの障害を条件にする登録処理(1902)、及び、自ノード管理セグメント内の障害条件を登録する処理(1903)を行う。本実施形態においては、2箇所までの障害を切替条件としているが、その切替条件としての障害の数は任意である。
経路切替要否の判断方法の詳細を以下に示す。
まず、通信路上で検出されているリンク障害箇所が1箇所である、又は、複数のリンク障害箇所が互いに隣接している場合に、自ノードが経路を切り替えることによって、検出されている全ての障害を迂回可能であるか調べる。
調べた結果、自ノードが経路を切り替えることによっては一部の障害が迂回不可能であると判断すると、経路を切り替えない。このとき、自ノードが既に切り替え済みであれば、切り替えた経路を切り戻す。
一方、自ノードが経路を切り替えることによって全ての障害を迂回可能であると判断すると、自ノードが経路を切り替えることによって迂回させようとしているリンクより下流のセグメントの切替状態を調べる。そして、より下流のセグメントにおいて切り替え済み又は切り替えようとしていれば、自ノードは通信路の経路を切り替えない。また、より下流のセグメントにおいて切り替え済みではなく切り替えようともしていなければ、自ノードは通信路の経路を切り替える。
ネットワーク装置51〜59が、下流の他のセグメントの切替状態を調べるには下記の方法を用いる。第1の方法は、各ノード間で動作規則を共通にしておくことによって、障害イベントに基づいて、自ノードが切替対象とするセグメント以外のセグメントの切替状態を、間接的に知る方法である。また、第2の方法は、切替イベントをノード間でやりとりすることで、自ノードが切替対象とするセグメント以外のセグメントの切替状態を、直接的に知る方法である。
さらに、通信路上で検出されている複数のリンク障害箇所が離れている場合に、起点に最も近い第1の障害箇所に最も近い上流セグメントを第1のリカバリセグメントとする。第1のリカバリセグメント以外に第2の障害箇所が存在する場合に、第2の障害箇所に最も近い上流セグメントを第2のリカバリセグメントとする。
第1のリカバリセグメント及び第2のリカバリセグメントにおけるパスの切り替えによって通信不可能となる場合に、第1のリカバリセグメント及び第2のリカバリセグメントを再度決定する。具体的には、第1のリカバリセグメントを最も近い上流セグメントへ変更する。第1のリカバリセグメント以外に第2の障害箇所が存在する場合に、第2の障害箇所に最も近い上流セグメントを第2のリカバリセグメントとする。第1のリカバリセグメント及び第2のリカバリセグメントにおけるパスの切り替えによって通信不可能となる場合に、第1のリカバリセグメント及び第2のリカバリセグメントを再度決定して、通信可能となる第1のリカバリセグメント及び第2のリカバリセグメントの組み合わせが見つかるまで、これらの処理を繰り返す。
上記の経路切り替えの要否判断の方法では、下流の他のセグメントの切替状態を調べ、切り替え済み又は切り替えようとしているならば、自ノードは通信路の経路を切り替えない。また、より下流のセグメントにおいて切り替え済みではなく切り替えようともしていなければ、自ノードは通信路の経路を切り替える。
さらに別の方法として、以下に説明する方法もある。上流の他のセグメントの切替状態を調べ、切り替え済み又は切り替えようとしているならば、自ノードは通信路の経路を切り替えない。また、より上流のセグメントにおいて切り替え済みではなく切り替えようともしていなければ、自ノードは通信路の経路を切り替える方法もある。
さらに、通信路上で検出されている複数のリンク障害箇所が離れている場合に、起点から最も遠い第1の障害箇所に最も近い下流セグメントを第1のリカバリセグメントとする。第1のリカバリセグメント以外に第2の障害箇所が存在する場合に、第2の障害箇所に最も近い下流セグメントを第2のリカバリセグメントとする。
第1のリカバリセグメント及び第2のリカバリセグメントにおけるパスの切り替えによって通信不可能となる場合に、第1のリカバリセグメント及び第2のリカバリセグメントを再度決定する。具体的には、第1のリカバリセグメントを最も近い下流セグメントへ変更する。第1のリカバリセグメント以外に第2の障害箇所が存在する場合に、第2の障害箇所に最も近い下流セグメントを第2のリカバリセグメントとする。第1のリカバリセグメント及び第2のリカバリセグメントにおけるパスの切り替えによって通信不可能となる場合に、第1のリカバリセグメント及び第2のリカバリセグメントを再度決定して、通信可能となる第1のリカバリセグメント及び第2のリカバリセグメントの組み合わせが見つかるまで、これらの処理を繰り返す。
次に、図20を参照して、リカバリセグメント管理部411で自ノード管理セグメント及び下流セグメントでの障害を条件にする登録処理1901について説明する。
まず、自ノード管理セグメントのレコードを、セグメント管理テーブル800から検索する(1914)。検索条件は、セッション識別子==RESVメッセージの識別子 && セグメント識別子のsrc==自ノードのルータ識別子 である。
そして、検索条件に一致するレコードが見つかったか否かを判定する(1915)。条件に一致するレコードが見つからなかった場合に、1901の処理を終了する。一方、条件に一致するレコードが見つかった場合に、自ノードに最も近いノンオーバーラップ下流セグメントのレコードを、セグメント管理テーブル800から抽出する(1916)。
そして、自ノードに最も近いノンオーバーラップ下流セグメントのレコードが抽出されたか否かを判定する(1917)。条件に一致するレコードが抽出されなかった場合に、1901の処理を終了する。一方、条件に一致するレコードが抽出された場合に、自ノードに最も近い下流セグメントのレコードを、セグメント管理テーブル800から抽出する(1918)。
そして、自ノードに最も近い下流セグメントのレコードが抽出されたか否かを判定する(1919)。条件に一致するレコードが抽出されなかった場合に、1901の処理を終了する。一方、条件に一致するレコードが抽出された場合に、すべての可能な組み合わせに対して、J1)とJ2)を条件としたパス切替条件を切替テーブル500に登録する(1920)。
J1)自ノード管理セグメントのプライマリパス上にあり、かつ、最も近い下流セグメントのプライマリパス上にない、一つのリンク上のルータ識別子と伝送方向
J2)最も近いノンオーバーラップ下流セグメントの起点以降のプライマリパス上の一つのリンク上のルータ識別子と伝送方向
次に、ノンオーバーラップ下流セグメントの起点より下流にある下流セグメントを抽出する(1922)。そして、下流セグメントが抽出されたか否かを判定する(1923)。下流セグメントが抽出されなかった場合に、1901の処理を終了する。一方、下流セグメントが抽出された場合に、抽出されたレコードに基づいて、次の最も近い下流セグメントのレコードが抽出されなくなるまで、以下の処理を繰り返し行う(1921)。
まず、前に抽出されたセグメントの起点ノードに最も近い下流セグメントを、セグメント管理テーブル800から抽出する(19211)。抽出されたセグメントの起点ノードが自ノード管理セグメントのプライマリパス上にあるか否かを判定する(19212)。抽出されたセグメントの起点ノードがプライマリパス上にない場合に、処理1921を終了する。一方、抽出されたセグメントの起点ノードがプライマリパス上にある場合に、全ての可能な組み合わせに対して、K1)とK2)を条件としたパス切替条件を切替テーブル500に登録する(19213)。
K1)前に抽出したセグメントのプライマリパス上にあり、かつ、現抽出したセグメントのプライマリパス上にない、一つのリンク上のルータ識別子と伝送方向
K2)ノンオーバーラップ下流セグメントのプライマリパス上にあり、かつ、前に抽出したセグメントのプライマリパス上にない、一つのリンク上のルータ識別子と伝送方向
以上説明したように、処理1901によって、ネットワーク装置51の切替テーブル500に、図12Aのレコード5050〜5052が追加される。
次に、図21を参照して、リカバリセグメント管理部411で自ノード管理セグメント及び上流セグメントでの障害を条件にする登録処理1902について説明する。
まず、自ノード管理セグメントのレコードを、セグメント管理テーブル800から検索する(1930)。検索条件は、セッション識別子==RESVメッセージの識別子 && セグメント識別子のsrc==自ノードのルータ識別子 である。
そして、検索条件に一致するレコードが見つかったか否かを判定する(1931)。条件に一致するレコードが見つからなかった場合に、1902の処理を終了する。一方、条件に一致するレコードが見つかった場合に、自ノードに最も近い下流セグメントのレコードを、セグメント管理テーブル800から抽出する(1932)。
そして、自ノードに最も近い下流セグメントのレコードが抽出されたか否かを判定する(1933)。条件に一致するレコードが抽出された場合は、ステップ1934に進む。一方、条件に一致するレコードが抽出されなかった場合は、ステップ1939に進む。
ステップ1934では、自ノードに最も近いノンオーバーラップ上流セグメントのレコードを、セグメント管理テーブル800から抽出する(1934)。そして、自ノードに最も近いノンオーバーラップ上流セグメントのレコードが抽出されたか否かを判定する(1935)。条件に一致するレコードが抽出されなかった場合に、1902の処理を終了する。条件に一致するレコードが抽出された場合に、最も近いノンオーバーラップ上流セグメントの起点ノードに最も近い下流セグメントのレコードを、セグメント管理テーブル800から抽出する(1936)。
そして、最も近いノンオーバーラップ上流セグメントの起点ノードに最も近い下流セグメントのレコードが抽出されたか否かを判定する(1937)。条件に一致するレコードが抽出されなかった場合に、1902の処理を終了する。条件に一致するレコードが見つかった場合に、すべての可能な組み合わせに対して、L1)とL2)を条件としたパス切替条件を切替テーブル500に登録する(1938)。
L1)自ノード管理セグメントのプライマリパス上にあり、かつ、最も近い下流セグメントのプライマリパス上にない一つのリンク上のルータ識別子と伝送方向
L2)最も近いノンオーバーラップ上流セグメントの起点ノードに最も近い下流セグメントの起点以前のプライマリパス上の一つのリンク上のルータ識別子と伝送方向
一方、判定1933で条件に一致するレコードが抽出されなかった場合に、自ノードに最も近いノンオーバーラップ上流セグメントのレコードを、セグメント管理テーブル800から抽出する(1939)。そして、自ノードに最も近いノンオーバーラップ上流セグメントのレコードが抽出されたか否かを判定する(1940)。条件に一致するレコードが抽出されなかった場合に、1902の処理を終了する。条件に一致するレコードが抽出された場合に、次の最も近い下流セグメントのレコードが見つからなくなるまで、以下の処理を繰り返し行う(1941)。
まず、前に抽出したセグメントの起点ノードに最も近い下流セグメントを、セグメント管理テーブル800から抽出する(19411)。抽出されたセグメントの起点ノードが、最も近いノンオーバーラップ上流セグメントのプライマリパス上にあるか否かを判定する(19412)。抽出されたセグメントの起点ノードがプライマリパス上にない場合に、処理1902を終了する。一方、抽出されたセグメントの起点ノードがプライマリパス上にある場合に、すべての可能な組み合わせに対して、M1)とM2)を条件としたパス切替条件を切替テーブル500に登録する(19413)。
M1)前に抽出したセグメントのプライマリパス上にあり、かつ、現抽出したセグメントのプライマリパス上にない、一つのリンク上のルータ識別子と伝送方向
M2)自ノード管理セグメントのプライマリパス上にあり、かつ、現抽出したセグメントのプライマリパス上にない、一つのリンク上のルータ識別子と伝送方向
以上説明したように、処理1902によって、ネットワーク装置53の切替テーブル500に、図12Cのレコード5071〜5073のレコードが追加される。
次に、図22を参照して、リカバリセグメント管理部411で自ノード管理セグメントでの障害を条件にする登録処理(1903)について説明する。
まず、自ノード管理セグメントのレコードを、セグメント管理テーブル800から抽出する(1950)。検索条件は、セッション識別子==RESVメッセージの識別子 && セグメント識別子のsrc==自ノードのルータ識別子 である。
そして、検索条件に一致するレコードが見つかったか否かを判定する(1951)。条件に一致するレコードが見つからなかった場合に、1912の処理を終了する。条件に一致するレコードが見つかった場合に、自ノードに最も近い下流セグメントのレコードを、セグメント管理テーブル800から抽出する(1952)。
そして、自ノードに最も近い下流セグメントのレコードが抽出されたか否かを判定する(1953)。条件に一致するレコードが抽出された場合は、ステップ1954に進む。一方、条件に一致するレコードが抽出されなかった場合は、ステップ1957に進む。
ステップ1957では、すべての可能な組み合わせに対して、R1)を条件とするパス切替条件を切替テーブル500に登録する。
R1)自ノード管理セグメントのプライマリパス上にある二つのリンク上のルータ識別子と伝送方向
さらに、すべての可能な組み合わせに対して、R2)を条件とする切替条件を切替テーブル500に登録する(1958)。
R2)自ノード管理セグメントのプライマリパス上にある一つのリンク上のルータ識別子と伝送方向
一方、判定1953で条件に一致するレコードが抽出された場合に、Q1)とQ2)を条件としたパス切替条件を切替テーブル500に登録する(1954)。
Q1)自ノード管理セグメントのプライマリパス上にあり、かつ、最も近い下流セグメントのプライマリパス上にない、一つのリンク上のルータ識別子と伝送方向
Q2)自ノード管理セグメントのプライマリパス上にあり、かつ、最も近い下流セグメントのプライマリパス上にある、一つのリンク上のルータ識別子と伝送方向
さらに、すべての可能な組み合わせに対して、Q3)を条件とした切替条件を切替テーブル500に登録する(1955)。
Q3)自ノード管理セグメントのプライマリパス上にあり、かつ、最も近い下流セグメントのプライマリパス上にない、二つのリンク上のルータ識別子と伝送方向
さらに、すべての可能な組み合わせに対して、Q4)を条件とした切替条件を切替テーブル500に登録する(1956)。
Q4)自ノード管理セグメントのプライマリパス上にあり、かつ、最も近い下流セグメントのプライマリパス上にない、一つのリンク上のルータ識別子と伝送方向
以上説明したように、処理1903によって、ネットワーク装置51〜53の切替テーブル500に、図12Aのレコード5053〜5055、図12Bのレコード5064〜5066、及び図12Cのレコード5074〜5076が追加される。
次に、図23を参照して、リカバリセグメント管理部411が障害通知先情報蓄積部を経由して、障害通知先情報を障害通知先情報テーブルへの登録処理について説明する。
まず、セグメント管理テーブル800上で、すべてのレコードに対して、セグメント管理テーブル800上での各レコードのセッション情報と経路情報での第一項のルータ識別子を登録する処理(19771)を行う(1977)。
次に、図24を参照して、切替部412がNOTIFYメッセージ処理部405からNOTIFYメッセージを受信したときの切替処理について説明する。
障害状態テーブル1000上で、NOTIFYメッセージ処理部405より受け取った障害情報のルータ識別子、インタフェース情報及びセッション情報が一致するレコードを導出する(2101)。そして、各情報が一致するレコードが見つかったか否かを判定する(2102)。
各情報が一致するレコードが見つからなかった場合に、NOTIFYメッセージ処理部405から受け取った障害情報のルータ識別子、インタフェースを、各々、障害状態テーブル1000のルータ識別子フィールド1002及び検出インタフェース識別子フィールド1003に登録する(2103)。一方、各情報が一致するレコードが見つかった場合に、障害状態テーブル1000上で、障害検出部より受け取ったセッション情報に一致するレコードを導出する(2105)。そして、情報が一致するレコードが導出されたか否かを判定する(2106)。
情報が一致するレコードが導出されなかった場合に、処理を終了する。一方、情報が一致するレコードが導出された場合に、見つかったレコードのルータ識別子とインタフェース識別子が切替条件と一致するレコードを、切替テーブル500から導出する(2107)。そして、レコードが導出されたか否かを判定する(2108)。
条件に一致するレコードが導出されなかった場合に、処理を終了する。一方、条件に一致するレコードが見つかった場合に、切替部412が、リカバリセグメント管理部411へ、レコードのリカバリセグメントのリカバリ経路情報に従った経路への切り替えを要求する(2109)。その後、セッション情報及び自ノードがリカバリパス情報の経路情報の第一項に一致するレコードを、セグメント管理テーブル800から導出する(2110)。そして、レコードが導出されたか否かを判定する(2111)。
条件に一致するレコードが見つからなかった場合に、処理を終了する。一方、条件に一致するレコードが見つかった場合に、レコードのリカバリパス情報のリカバリ状況が”busy”になっているか否かを判定する(2112)。リカバリ状況が”busy”になっている場合に、切替部412が、リカバリセグメント管理部411へ、レコードのプライマリパス情報の経路情報に従った経路への切り戻しを要求する(2113)。
次に、図25を参照して、切替部412が障害検出部415より障害通知を受信したときの切替処理につて説明する。
まず、NOTIFYメッセージ処理部405から受け取った障害情報箇所のルータ識別子、インタフェース情報及びセッション情報と一致するレコードを、障害状態テーブル1000から導出する(2201)。そして、各情報が一致するレコードが導出されたか否かを判定する(2202)。
条件に一致するレコードが導出されなかった場合に、NOTIFYメッセージ処理部405から受け取った障害情報のルータ識別子及びインタフェースを、障害状態テーブル1000のルータ識別子フィールド1002及び検出インタフェース識別子フィールド1003に登録する(2203)。一方、各情報が一致するレコードが見つかった場合に、障害通知先情報テーブルのルータ識別子をNotifyの送信先として、自ノードの障害情報を通知するNOTIFYメッセージを作成し、NOTIFYメッセージ処理部405に渡す(2204)。そして、障害検出部415から受け取ったセッション情報と一致するレコードを障害状態テーブル1000から導出する(2205)。そして、情報が一致するレコードが見つかったか否かを判定する(2206)。
情報が一致するレコードが見つからなかった場合に、処理を終了する。一方、情報が一致するレコードが見つかった場合に、切替テーブル500上で、レコードリストのルータ識別子とインタフェース識別子が切替条件に一致するレコードを導出する(2207)。レコードが導出されたか否かを判定する(2208)。
条件に一致するレコードが導出されなかった場合に、処理2210に進む。一方、条件に一致するレコードが導出された場合に、切替部412がリカバリセグメント管理部411へ、導出されたレコードのリカバリセグメントのリカバリ経路情報に従った経路への切り替えを要求する(2209)。
そして、セッション識別子情報及び自ノードのリカバリパス情報の経路情報の第一項に一致するレコードを、セグメント管理テーブル800から導出する(2210)。そして、条件に一致するレコードが導出されたか否かを判定する(2211)。
条件に一致するレコードが導出されなかった場合に、処理を終了する。一方、条件に一致するレコードが導出された場合に、条件に一致するレコードのリカバリパス情報のリカバリ状況が”busy”になっているか否かを判定する(2212)。リカバリ状況が”busy”になっている場合に、切替部412がリカバリセグメント管理部411へレコードのプライマリパス情報の経路情報に従った経路への切り戻しを要求する(2213)。
次に、図26A及び図26Bを参照して、リンク31及び32の障害又はネットワーク装置53(sw_c)におけるノード故障によるパス切り替え完了後の制御部51E(CONT_A)及び制御部53E(CONT_C)のクロスコネクト情報テーブル600について説明する。
リカバリパス62への切り替え完了後に、制御部51E(CONT_A)のクロスコネクト情報テーブル600のレコード6050の稼働状況は”busy”から”reserved”に変更される。また、制御部51E(CONT_A)のクロスコネクト情報テーブル600のレコード6051の稼働状況は”reserved”から”busy”に変更される。
リカバリパス62への切り替え完了後に、制御部53E(CONT_C)のクロスコネクト情報テーブル600のレコード6052の稼働状況は”busy”から”reserved”に変更される。また、制御部53E(CONT_C)のクロスコネクト情報テーブル600のレコード6051の稼働状況は”reserved”から”busy”に変更される。
次に、図27を参照して、リンク31及び32の障害又はネットワーク装置53(sw_c)におけるノード故障によるパス切り替え完了後の制御部51E(CONT_A)〜53E(CONT_C)におけるセグメント管理テーブル800について説明する。
リカバリパス62への切り替え完了後に、制御部51E(CONT_A)、制御部52E(CONT_B)、制御部53E(CONT_C)、制御部54E(CONT_D)及び制御部55E(CONT_E)のセグメント管理テーブル800のレコード8051のプライマリパスの稼働状況を”idle”に変更し、セカンダリパスのリカバリ状況を”busy”に変更する。
次に、図28を参照して、リンク31及び32の障害によるパス切り替え完了後の制御部51E(CONT_A)〜制御部55E(CONT_E)の障害状態テーブル1000について説明する。
リンク31及び32に障害が発生した後に、制御部51E(CONT_A)、制御部52E(CONT_B)、制御部53E(CONT_C)、制御部54E(CONT_D)及び制御部55E(CONT_E)の障害状態テーブル1000に、レコード10151〜10154が追加される。
次に、図29を参照して、ネットワーク装置53(sw_c)におけるノード故障によるパス切り替え完了後の制御部51E(CONT_A)〜制御部55E(CONT_E)の障害状態テーブル1000について説明する。
ネットワーク装置53(sw_c)においてノード故障が発生した後に、制御部51E(CONT_A)、制御部52E(CONT_B)、制御部53E(CONT_C)、制御部54E(CONT_D)及び制御部55E(CONT_E)の障害状態テーブル1000にレコード10161〜10162が追加される。
<第2実施形態>
次に、本発明の第2の実施の形態について説明する。
前述した第1の実施の形態では、シグナリングプロトコルとして、GMPLS拡張RSVP−TEを用いた場合について説明したが、GMPLS CR−LDP等の他のプロトコルであっても同様に、本発明を適用することができる。
図30は、本発明の第2実施形態のネットワークシステムで使用されるメッセージフォーマットを示す図である。
第2実施形態の通信ネットワークシステムは、第1実施形態の通信ネットワークシステムと同様に、RSVPメッセージにセグメント拡張オブジェクトを用いて、セグメントの情報をネットワーク装置間で通知する。
第1実施形態の図9では、オブジェクトを個別に定義するが、第2実施形態の図30ではセグメント毎に同じコンテナに格納する。コンテナ(2503〜2504)は、セグメント識別子(25031)、セグメントの起点ノードの情報(25032)及びセグメントの終点ノードの情報(25033)を含む。
コンテナは、セグメントのプライマリパスの情報(25034〜25036)及びセカンダリパスの情報(25037〜25039)を含む。プライマリパスの情報(25034〜25036)は、セグメントタイプ(25034)、プライマリパス情報の長さを表すセグメント長(25035)及びセグメントのプライマリパス関連のRSVPオブジェクト(25036)を含む。セグメントのプライマリパス関連のRSVPオブジェクト(25036)は、プロテクション情報(250361)及び経路情報/記録情報(250362)を含む。
同様に、セグメントのセカンダリパスの情報(25037〜25039)は、セグメントタイプ(25037)、セカンダリパス情報の長さを表すセグメント長(25038)及びセグメントのセカンダリパス関連のRSVPオブジェクト(25039)を含む。セグメントのプライマリパス関連のRSVPオブジェクト(25039)は、プロテクション情報(250391)及び経路情報/記録情報(250392)を含む。