(57)【要約】      （修正有）【課題】アクティブ状態の解除を回避して経路の切り替えに要する時間の長期化を回避する。【解決手段】自身の優先度より高い優先度を有するアクティブの第１通信装置の障害時にアクティブ状態となる通信装置が、正常な物理回線の数が閾値を下回る場合に閉塞される、複数の物理回線を束ねた論理回線を含む通信路を通じて通信装置に到達する第１通信装置からの、冗長化プロトコルに基づく第１信号が、所定期間受信されない場合に、第１通信装置の障害を検出して通信装置をアクティブ状態に遷移させる。アクティブ状態に遷移した通信装置が、第１通信装置からの第１信号を受信した場合には、アクティブ状態を解除し、第１信号の送信間隔より短い送信間隔で第１通信装置から送信される第２信号が所定期間受信されず第１通信装置に係る障害を検出した場合には、通信装置の優先度を第１の通信装置より高くする。【選択図】図７
2018186327.tif 000002
【特許請求の範囲】
【請求項１】
優先度の高低を用いて端末と通信するアクティブ状態となる複数の通信装置の一つが決定される冗長化プロトコルに基づいて、自身の優先度より高い優先度を有する前記アクティブ状態の第１の通信装置に係る障害時に前記アクティブ状態となる通信装置において、
正常な物理回線の数が閾値を下回る場合に閉塞される複数の物理回線を束ねた論理回線を含む通信路を通じて前記通信装置に到達する前記第１の通信装置からの前記冗長化プロトコルに基づく第１の信号が所定期間受信されない場合に前記第１の通信装置に係る障害を検出して前記通信装置を前記アクティブ状態に遷移させるとともに、前記アクティブ状態に遷移した前記通信装置が前記第１の通信装置からの前記第１の信号を受信した場合に前記通信装置の前記アクティブ状態を解除する第１の監視部と、
前記第１の信号の送信間隔より短い送信間隔で前記第１の通信装置から送信され、前記通信路を通じて前記通信装置に到達する第２の信号が所定期間受信されない場合に前記第１の通信装置に係る障害を検出する第２の監視部とを含み、
前記第１の監視部は前記第２の監視部が前記第１の通信装置に係る障害を検出した場合に前記通信装置の優先度を前記第１の通信装置の優先度より高くする
ことを特徴とする通信装置。
【請求項２】
前記第２の監視部は前記第２の信号を用いて検出した障害の情報を記憶装置に記憶するとともに、その後に前記第２の信号が受信された場合に障害からの復旧を示す情報を前記記憶装置に記憶し、
前記第１の監視部は、前記記憶装置に記憶された前記障害からの復旧を示す情報に基づいて、前記通信装置の優先度を元に戻す
請求項１に記載の通信装置。
【請求項３】
優先度の高低を用いて端末と通信するアクティブ状態となる複数の通信装置の一つが決定される冗長化プロトコルに基づいて、自身の優先度より高い優先度を有する前記アクティブ状態の第１の通信装置の障害時に前記アクティブ状態となる通信装置が、
正常な物理回線の数が閾値を下回る場合に閉塞される複数の物理回線を束ねた論理回線を含む通信路を通じて前記通信装置に到達する前記第１の通信装置からの前記冗長化プロトコルに基づく第１の信号を所定期間受信されない場合に前記第１の通信装置に係る障害を検出して前記通信装置を前記アクティブ状態に遷移させるとともに、前記アクティブ状態に遷移した前記通信装置が前記第１の通信装置からの前記第１の信号を受信した場合に前記通信装置の前記アクティブ状態を解除する処理と、
前記第１の信号の送信間隔より短い送信間隔で前記第１の通信装置から送信され、前記通信路を通じて前記通信装置に到達する第２の信号が所定期間受信されない場合に前記第１の通信装置に係る障害を検出する処理と、
前記第２の信号が所定期間受信されないことを以て前記第１の通信装置に係る障害が検出された場合に前記通信装置の優先度を前記第１の通信装置の優先度より高くする処理とを行う通信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、及び通信制御方法に関する。
【背景技術】
【０００２】
端末（ホストともいう）からデフォルトゲートウェイまでの経路を冗長化するルータ冗長プロトコルの一つに、以下のようなものがある。端末（ホストともいう）から見て異なる経路上にある二つのルータの一方がアクティブとなり、他方がスタンドバイとなって、アクティブのルータ（アクティブルータ）が端末に対するデフォルトゲートウェイとして動作する。アクティブルータに係る障害時に、スタンドバイのルータ（スタンドバイルータ）の状態がアクティブに遷移し、経路の切り替えが行われ、アクティブに遷移したルータがデフォルトゲートウェイとして動作する。これによって通信が継続される。
【０００３】
上記したルータ間では、一定間隔でメッセージが交換される。メッセージには、ルータの優先度が含まれており、優先度の高いルータがアクティブとなる。スタンドバイのルータは、アクティブのルータからメッセージが届かなくなった場合にアクティブに遷移する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−２７４７３７号公報
【特許文献２】特開２０１０−６２６１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
端末と上記したルータ冗長化プロトコルが適用される各ルータとの間の経路上にレイヤ２（データリンク層）のデバイス（例えばレイヤ２スイッチ（Ｌ２ＳＷ））が配置され、ルータとＬ２ＳＷとの間にポート冗長プロトコルが適用される場合がある。ポート冗長プロトコルは、複数の物理インタフェースを１つの論理インタフェースに集約するプロトコルであり、回線の冗長性や広帯域を確保するために適用される。ポート冗長プロトコルでは、ポート冗長プロトコルによって束ねられるリンクの最小数が設定され、障害等によってリンク数が最小数を下回ると非アクティブとなる。
【０００６】
さらに、ネットワークの監視や制御等の様々な目的の下で、ルータ冗長化プロトコルが適用されるルータ間にBidirectional Forwarding Detection（ＢＦＤ）が併用されることがある。ＢＦＤでは、一定間隔でＢＦＤパケットが一定間隔で送受信される。各ルータは、ＢＦＤパケットの受信を以て対向のルータとの疎通を確認する。これに対し、ＢＦＤパケットが対向のルータから受信できなくなった場合に障害を検知する。ＢＦＤパケットの送信間隔は、ルータ冗長化プロトコルのメッセージの送信間隔より短く設定される。
【０００７】
上述したルータ冗長化プロトコル、ポート冗長プロトコル、及びＢＦＤが適用されたネットワーク構成において、アクティブルータ（ルータＡとする）とＬ２ＳＷとの間に障害が発生した場合を仮定する。スタンバイルータ（ルータＢとする）では、ルータＡからのＢＦＤパケットが到達しないことを以て障害が検知され、ルータＢの状態がスタンドバイからアクティブに遷移したとする。
【０００８】
一方、障害によって、ポート冗長プロトコルに属している正常なリンク数がミニマムリンク数を下回ると、ポート冗長化プロトコルが非アクティブ化される。非アクティブ化の
過程において、ポート冗長プロトコルに属する各リンク（ポート）の閉塞処理が行われる。この間にルータＡからのメッセージが閉塞前のリンクを通ってルータＢに到達することが起こり得る。
【０００９】
上述したように、アクティブルータからのメッセージを受信できなくなったスタンドバイルータはアクティブ状態に遷移する。ルータＢはアクティブの状態でルータＡからのメッセージを受信した場合、メッセージ中のルータＡの優先度と自身（ルータＢ）の優先度とを比較する。ルータＡの優先度がルータＢの優先度より高い場合、ルータＢはアクティブ状態を解除し、自身がスタンドバイルータとして動作するかを判定するため、ルータＡ以外のルータからのメッセージを待つ状態となる。ルータＡ以外のルータからのメッセージがないことを以て、ルータＢはスタンドバイ状態に遷移する。
【００１０】
ところで、ポート冗長プロトコルの非アクティブ化（リンク閉塞）によってルータＡからのメッセージはルータＢに届かない状態となる。よって、スタンドバイ状態となったルータＢは、ルータＡからのメッセージを所定期間受信できないので、所定時間経過後にアクティブ状態に遷移する。
【００１１】
上述したケースでは、ルータＢがアクティブ状態を解除してから再びアクティブになるまでに時間を要し、経路の切り替えに時間がかかるという問題を生じていた。
【００１２】
本発明は、アクティブ状態の解除を回避して経路の切り替えに要する時間の長期化を回避し得る通信装置及び通信制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
一つの態様は、優先度の高低を用いて端末と通信するアクティブ状態となる複数の通信装置の一つが決定される冗長化プロトコルに基づいて、自身の優先度より高い優先度を有する前記アクティブ状態の第１の通信装置に係る障害時に前記アクティブ状態となる通信装置である。前記通信装置は、正常な物理回線の数が閾値を下回る場合に閉塞される複数の物理回線を束ねた論理回線を含む通信路を通じて前記通信装置に到達する前記第１の通信装置からの前記冗長化プロトコルに基づく第１の信号が所定期間受信されない場合に前記第１の通信装置に係る障害を検出して前記通信装置を前記アクティブ状態に遷移させるとともに、前記アクティブ状態に遷移した前記通信装置が前記第１の通信装置からの前記第１の信号を受信した場合に前記通信装置の前記アクティブ状態を解除する第１の監視部と、
前記第１の信号の送信間隔より短い送信間隔で前記第１の通信装置から送信され、前記通信路を通じて前記通信装置に到達する第２の信号が所定期間受信されない場合に前記第１の通信装置に係る障害を検出する第２の監視部とを含み、
前記第１の監視部は前記第２の監視部が前記第１の通信装置に係る障害を検出した場合に前記通信装置の優先度を前記第１の通信装置の優先度より高くすることを特徴とする。
【発明の効果】
【００１４】
一側面では、アクティブ状態の解除を回避して経路の切り替えに要する時間の長期化を回避することができる。
【図面の簡単な説明】
【００１５】
【図１】図１は実施形態に係る通信システムの一例を示す。
【図２】図２は図１に示した通信システムの参考例における正常時の動作例を示す。
【図３】図３は参考例における通信システムの障害時の動作例を示す。
【図４】図４は参考例における障害からの復旧時の動作例を示す。
【図５】図５は参考例におけるルータＲ２の状況を時系列で模式的に示す。
【図６】図６は実施形態に係る通信システムの説明図である。
【図７】図７は実施形態における障害発生時の動作例を示す。
【図８】図８は実施形態における復旧時の動作例を示す。
【図９】図９はルータＲ１及びルータＲ２として適用可能なルータのハードウェア構成例を示す。
【図１０】図１０はルータＲ２として動作するルータのＣＰＵがプログラムを実行することによって生じるルータの機能を模式的に示す。
【図１１】図１１は実施形態に係る通信システムにおける障害発生時の処理を示すシーケンス図である。
【図１２】図１２はＩＦ状態とＩＦ障害の情報登録の処理例を示すフローチャートである。
【図１３】図１３はＩＦ状態とＩＦ障害の情報更新の処理例を示すフローチャートである。
【図１４】図１４は障害時の設定情報の生成指示の処理例を示すフローチャートである。
【図１５】図１５は障害時の設定情報の生成の処理例を示すフローチャートである。
【図１６】図１６は障害時の設定情報の適用の処理例を示すフローチャートである。
【図１７】図１７は実施形態に係る通信システムにおける障害復旧時の処理を示すシーケンス図である。
【図１８】図１８は復旧時設定情報の生成指示の処理例を示すフローチャートである。
【図１９】図１９はＢＦＤセッションの再構築時のルータ冗長化プロトコルの状態確認の処理例を示すフローチャートである。
【図２０】図２０は障害ＩＦ情報メモリの初期化処理の例を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、図面を参照して、実施形態について説明する。実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。
【００１７】
＜ネットワーク構成例＞
図１は、実施形態に係る通信システムの一例を示す。図１において、ＩＰ網２に接続されたルータＲ１及びルータＲ２は、サーバ１のデフォルトゲートウェイとして動作可能なネットワーク機器である。ルータＲ１及びルータＲ２は「複数の通信装置」の一例である。ルータＲ１は「第１の通信装置」の一例であり、ルータＲ２は「通信装置」の一例である。サーバ１は「端末」乃至「ホスト」の一例である。
【００１８】
サーバ１はレイヤ２スイッチ＃１（Ｌ２ＳＷ＃１）を介してルータＲ１に接続される。また、サーバ１は、レイヤ２スイッチ＃２（Ｌ２ＳＷ＃２）及びルータＲ２を介してＩＰ網に接続される。このように、図１の例では、サーバ１とＩＰ網２との間の通信経路として、Ｌ２ＳＷ＃１及びルータＲ１を経由する第１の経路と、Ｌ２ＳＷ＃２及びルータＲ２を経由する第２の経路とがある。ルータはレイヤ３デバイスの一例である。Ｌ２ＳＷはレイヤ２デバイスの一例である。
【００１９】
図１に示す通信システムにはルータ冗長プロトコルの適用によって、サーバ１のデフォルトルータが冗長化されている。ルータＲ１とルータＲ２とは、ルータ冗長プロトコル上の仮想ルータとして動作し、ルータＲ１及びルータＲ２は、仮想ルータのＩＰアドレス（仮想ＩＰアドレス）と、仮想ルータのMedia Access Control（ＭＡＣ）アドレスである仮想ＭＡＣアドレスとを共有する。ルータＲ１とルータＲ２とのそれぞれは、実際のＩＰアドレス及びＭＡＣアドレスを有している（以下、実ＩＰアドレス、実ＭＡＣアドレスと表
記することもある）。ルータ冗長化プロトコルは「冗長化プロトコル」の一例である。
【００２０】
ルータ冗長プロトコルにおいて、ルータＲ１とルータＲ２のうち、仮想ルータとして動作するルータの状態は「アクティブ」であり、仮想ルータとして動作しないルータの状態は「スタンドバイ」となる。アクティブ状態のルータをアクティブルータと表記し、スタンドバイ状態のルータはスタンドバイルータと表記することもある。
【００２１】
サーバ１には、デフォルトゲートウェイのアドレスとして、上記した仮想ＩＰアドレスが設定される。サーバ１は、ＡＲＰ（Address Resolution Protocol）を用いて仮想ＩＰ
アドレスに対応する仮想ＭＡＣアドレスを得ることができる。サーバ１からのＡＲＰ要求に対し、アクティブルータが仮想ＭＡＣアドレスを返信し、スタンドバイルータは返信しない。これによって、サーバ１は、仮想ＩＰアドレスと仮想ＭＡＣアドレスとの対応関係をＡＲＰテーブルに登録する。アクティブルータは、アクティブルータの実ＩＰアドレスと仮想ＭＡＣアドレスとの対応関係をサーバ１に通知し、この対応関係はＡＲＰテーブルに登録される。アクティブルータ宛てのパケットの到達性を確保するためである。
【００２２】
また、サーバ１とアクティブルータとの間にあるＬ２ＳＷは、アクティブルータから送信されたパケット（送信元ＭＡＣアドレス＝仮想ＭＡＣアドレス）のＭＡＣ学習により、宛先ＭＡＣアドレス宛のポートを学習する。サーバ１は、仮想ＭＡＣアドレスを宛先に設定したパケットを送ることで、デフォルトゲートウェイとして振る舞うアクティブルータへパケットを送信できる。
【００２３】
ルータ冗長化プロトコルが適用されるルータ（図１ではルータＲ１とルータＲ２）には優先度（Priority）が設定され、優先度が高いルータがアクティブとなり、他方がスタンドバイとなる。アクティブルータ及びスタンドバイルータは一定の送信間隔でそれぞれの存在を確認するメッセージ（存在確認メッセージ、或いは存在確認パケットという）を送信する。存在確認パケットは「第１の信号」の一例である。
【００２４】
存在確認パケットには仮想ＩＰアドレスや送信元のルータの優先度が含まれており、受信側で優先度の比較を通じて自身がアクティブルータになるかスタンドバイルータになるかを判定し、アクティブ又はスタンドバイ状態に遷移する。例えば、スタンドバイルータは、アクティブルータから自身の優先度より低い優先度を含む存在確認パケットを受信した場合、自身がアクティブになることを宣言するメッセージ（宣言メッセージという）をアクティブルータに送信し、アクティブ状態に遷移する。
【００２５】
ルータの主な状態としては、上記の「スタンドバイ」及び「アクティブ」の他に、「初期状態」、「学習状態」、「静観状態」、「遷移先判定状態」がある。初期状態は起動時やインタフェースの再設定時の状態である。学習状態はアクティブルータから存在確認パケットを受信していない（仮想ＩＰアドレスを知らない）状態である。
【００２６】
静観状態は仮想ＩＰアドレスを知っているルータがアクティブでもスタンドバイでもない場合に遷移する状態である。静観状態のルータは存在確認パケットを送信しない。遷移先判定状態は、静観状態のルータが一定期間、他のルータからの存在確認パケットを受信できない場合や、存在確認パケット中の優先度より自身の優先度が高い場合に遷移する状態である。換言すれば、遷移先判定状態はスタンドバイ又はアクティブになれる状態である。遷移先判定状態では、自身の優先度を含む存在確認パケットを送信する一方、自身が他のルータの優先度との関係においてスタンドバイになるかアクティブになるかを判定（確認）し、対応する状態に遷移する。
【００２７】
スタンドバイルータは、障害などの何らかの要因でアクティブルータから存在確認パケ
ットを最後に受信してから所定期間が経過した場合（アクティブルータから存在確認パケットを受信できなくなった場合）、アクティブ状態に遷移してアクティブルータとなる。この場合、アクティブに遷移したルータは、Gratuitous Address Resolution Protocol（ＧＡＲＰ）を用いて、アクティブに遷移したルータの実ＩＰアドレスと仮想ＭＡＣアドレスとの対応関係、仮想ＩＰアドレスと仮想ＭＡＣアドレスとの対応関係とを報知（ブロードキャスト）する。
【００２８】
これによって、サーバ１のＡＲＰテーブルにて、仮想ＭＡＣアドレスと関連づけるＩＰアドレスがアクティブに遷移したルータの実ＩＰアドレスに更新される。また、仮想ＩＰアドレスと仮想ＭＡＣアドレスとの対応関係との報知によって、サーバ１からアクティブ状態へ遷移したルータへのパケットの転送経路がＭＡＣ学習される。ルータ冗長化プロトコルによって、端末（サーバ１）は、ルータＲ１及びルータＲ２の存在を意識することなくデフォルトゲートウェイ向けのパケットを送信できる。
【００２９】
図１に示す例では、ルータ冗長プロトコルが適用されるルータＲ１及びルータＲ２の死活監視（生存確認）を行う方法として、Bidirectional Forwarding Detection（ＢＦＤ）が併用されている。ルータＲ１及びルータＲ２は、一定の送信間隔でＢＦＤパケットを送信する。ルータＲ１及びルータＲ２は、対向のルータから所定時間以上ＢＦＤパケットが到着しなかった場合に経路の障害を検出する。ＢＦＤは、例えば、ネットワーク全体としての冗長性を確保するために設けられる。ＢＦＤは片方向の疎通断の検知方法の一例である。ＢＦＤパケットは「第２の信号」の一例である。
【００３０】
ルータ冗長化プロトコルに基づく対向ルータの監視は、第１の監視処理と捉えることができ、ＢＦＤを用いた対向ルータの監視は、第２の監視処理と捉えることができる。なお、ルータ冗長化プロトコルは例えばレイヤ３（ネットワーク層）で扱われ、ＢＦＤはレイヤ３と異なるレイヤ１（物理層）で扱われる。すなわち、第１の監視処理と第２の監視処理とは異なるレイヤの処理である。但し、ルータ冗長化プロトコルに係る処理と、ＢＦＤに係る処理とは同じ実行主体（エンティティ）で行われてもよく、異なる実行主体で行われてもよい。
【００３１】
さらに、図１に示す例では、ルータＲ１とＬ２ＳＷ＃１との間において、ポート冗長プロトコルが用いられている。ポート冗長プロトコルの使用によって、ルータＲ１とレイヤ２スイッチＳＷ２との間の通信に適用可能な複数の物理インタフェース（物理ポート）が一つの論理インタフェース（論理ポート）に集約される。換言すれば、ポート冗長プロトコルの使用によって、複数の物理回線（物理リンク）を一つの論理回線（論理リンク）として扱うことができる。これにより、回線接続の冗長化や広帯域の確保が行われる。
【００３２】
ポート冗長プロトコルでは、ポート冗長プロトコルの適用によって束ねられるリンクの最小値が設定される。障害等によってリンク数が最小値を下回るとポート冗長プロトコルは非アクティブとなる。非アクティブ化とは、ポート冗長プロトコルに属する各物理インタフェース（物理ポート）が閉塞されることを意味する。換言すれば、正常な物理回線の数が閾値（上記最小値）を下回った場合に論理回線（複数の物理回線）が閉塞される。
【００３３】
図１に示す例では、ルータＲ１とルータＲ２との間に存在確認パケット及びＢＦＤパケットを伝送するための通信路が設けられる。通信路は上述したような、例えばポート冗長プロトコルによって形成される複数の物理回線が束ねられた論理回線を含む。
【００３４】
図１に示す例では、ルータ冗長化プロトコルに関して、ルータＲ１にルータＲ２の優先度より高い優先度が設定される。このため、通常時はルータＲ１がアクティブルータとなる。ルータＲ１や第１の経路の障害時には、ルータＲ２がアクティブルータとなって、通
信経路が第１の経路から第２の経路に切り替えられる。
【００３５】
このとき、ルータＲ２とレイヤ２スイッチＳＷ２との間でポート冗長プロトコルが使用され、ルータＲ１とＬ２ＳＷ＃１との間で行われていたような、束ねられた複数の通信インタフェースを用いた通信を行うことができる。但し、確保する帯域や集約されるインタフェースの数などが異なる場合もあり得る。
【００３６】
＜参考例＞
図２は図１に示した通信システムの参考例における正常時の動作例を示す。図２において、ルータＲ１及びルータＲ２はルータ冗長プロトコルとＢＦＤとを併用している。ルータＲ１及びルータＲ２は、ルータ冗長プロトコルに係る存在確認パケットとＢＦＤパケットとのそれぞれを一定間隔で送受信することによって通信経路の正常性を監視する。
【００３７】
ＢＦＤパケットの送信間隔は、存在確認パケットの送信間隔より短く設定される。一例として、存在確認パケットの間隔が３秒であり、ＢＦＤパケットの間隔が１秒であると仮定する。送信間隔はＢＦＤパケットの間隔が存在確認パケットの間隔より短い限りにおいて、適宜の値を採り得る。
【００３８】
上述したように、ルータＲ１とルータＲ２のアクティブ／スタンドバイは、ルータ冗長プロトコルに基づく優先度を元に判定される。図２に示す例では、ルータＲ１の優先度がルータＲ２の優先度より高く、通常時はルータＲ１がアクティブ状態でルータＲ２がスタンドバイ状態となる。
【００３９】
また、ルータＲ１とＬ２ＳＷ＃１との間にはポート冗長プロトコルが適用され、ルータＲ１とＬ２ＳＷ＃１との間にある複数の物理インタフェースが一つの論理インタフェースに束ねられている。ＢＦＤパケット及び存在確認パケットは、一つの論理インタフェースをなす複数の物理インタフェース（物理リンク）のいずれかを通って送信先に伝送される。
【００４０】
伝送に用いられるリンクは時間的に変化する。存在確認パケット及びＢＦＤパケットの送信先は、例えば、各パケット内に設定された宛先を示す情報に基づいて決定される。また、図２の例では、ポート冗長プロトコルの実施に当たって使用されるリンク数の最小値Ｙは８であると仮定する。
【００４１】
以上より、図２に示す通常時では、ルータＲ１における冗長関連設定として、ルータ冗長プロトコルにおける優先度は“高”に設定され、ＢＦＤはオンに設定されている。一方、ルータＲ２における冗長関連設定として、ルータ冗長プロトコルにおける優先度は“低”に設定され、ＢＦＤはオンに設定されている。優先度は数値であり、上記した“高”，“低”は、ルータＲ１とルータＲ２の優先度値の間の高低を示す。
【００４２】
図３は参考例における通信システムの障害時の動作例を示す。図３に示す例では、ルータＲ１とＬ２ＳＷ＃１との間の経路（ポート冗長プロトコルが適用されるインタフェース）に障害が発生した場合を仮定する（図３（１））。
【００４３】
障害によって正常なリンク数が最小値（Ｙ＝８）を下回ったとする。この場合、ルータＲ１とＬ２ＳＷ＃１との間のポート冗長プロトコルは非アクティブとなる。すなわち、ポート冗長プロトコルに係る各物理インタフェース（物理ポート）が閉塞される。
【００４４】
通常時、ルータＲ１及びルータＲ２のそれぞれは、対向のルータとの間でＢＦＤパケットを一定間隔で送受信している。これに対し、上記した障害によって、ルータＲ１からル
ータＲ２へ送信されたＢＦＤパケットはルータＲ２に到達しない。
【００４５】
この場合、ルータＲ２は、一定間隔でルータＲ１からのＢＦＤパケットが受信できないことを以て、ルータＲ１との疎通性障害を検知する（図３（２））。この場合、ルータＲ２は、ルータ冗長プロトコルに従ってスタンドバイ状態からアクティブ状態に遷移する。
【００４６】
また、ルータＲ２は、ＧＡＲＰパケットの報知を行い、サーバ１が有するＡＲＰテーブルの更新（仮想ＭＡＣアドレスに対応するＩＰアドレスをルータＲ２の実ＩＰアドレスに更新）を図る。また、ルータＲ２は仮想ＩＰアドレスと仮想ＭＡＣアドレスの対応関係を報知して、サーバ１からのデフォルトルータ宛のパケットがルータＲ２に到達するように、Ｌ２ＳＷ＃２等のＬ２デバイスのＭＡＣテーブルの出力ポートを変更させる。
【００４７】
ＧＡＲＰパケットの送信（報知）によて、サーバ１からデフォルトゲートウェイ向けのパケットはＬ２ＳＷ＃２を介してルータＲ２に到達する状態となる。すなわち、経路が第１の経路から第２の経路に切り替わる（図３（３））。
【００４８】
ルータＲ１では、ルータＲ２からのＢＦＤパケットが受信できないこと等によって障害を検出すると、ルータ冗長プロトコルの状態がアクティブから初期状態へ遷移する（図３（４））。
【００４９】
図４は参考例における障害からの復旧時の動作例を示す。ルータＲ１では、障害からの復旧（リンクの正常化）の検出（図４（１））を契機として、ルータ冗長プロトコルの状態が、初期状態から学習状態を経て静観状態に変化する。静観状態のルータＲ１は、他のルータ（ルータＲ１）から存在確認パケットを受信し、その解析を行うが自身から存在確認パケットを送信しない。
【００５０】
ルータＲ１は、ルータＲ２からの存在確認パケットを受信する（図４（２））。受信された存在確認パケットにより示されるルータＲ２の優先度がルータＲ１の優先度より低い場合、ルータＲ１は静観状態からアクティブ状態に遷移するともに、ルータＲ２へ宣言メッセージを送信する（図４（３））。
【００５１】
ルータＲ２は宣言メッセージを受信した（或いは、自身より優先度の高いアクティブルータからの存在確認パケットを受信した）ルータＲ２の状態はアクティブ状態から遷移先判定状態に遷移する（図４（４））。ルータＲ２がスタンドバイルータになれるかを判定するためである。ルータＲ２は一定期間、自身より優先度の高いルータから存在確認メッセージを受信しない場合に、スタンドバイ状態に遷移する。一方、アクティブ状態となったルータＲ１は、ＧＡＲＰを送信（報知）して、サーバ１のＡＲＰテーブルの更新、Ｌ２ＳＷ等のＭＡＣテーブルの更新を行い、デフォルトゲートウェイ宛のパケットがルータＲ１へ転送されるようにする。このような切り戻し処理を経て、障害発生前の状態に戻るとともに、通信が継続される。
【００５２】
図１に示した通信システムにおいて、図３に示したように、アクティブルータであるルータＲ１とＬ２ＳＷ＃１との間において、一つの論理インタフェースに集約された複数の物理インタフェースの一部に障害が発生することがある。この場合、障害が発生した物理インタフェースを用いて伝送されるＢＦＤパケットはルータＲ２へ届かないので、ルータＲ２はＢＦＤによる障害を検知し、スタンドバイ状態からアクティブ状態へ遷移する。
【００５３】
障害によってポート冗長プロトコルに属している正常なリンク数が最小値を下回る場合、ポート冗長化プロトコルが非アクティブ化される。非アクティブ化の過程において、ポート冗長プロトコルに属する各物理インタフェース（リンク）の閉塞処理が行われる。こ
のとき、ルータＡからの存在確認パケットが閉塞前のリンクを通ってルータＢに到達することが起こり得る。
【００５４】
ルータＲ２は、自身の優先度より高いアクティブルータ（ルータＲ１）からの存在確認パケットを受信すると、必要に応じてスタンドバイ状態となるために、アクティブ状態を解除して遷移先判定状態となり、存在確認パケットを一定期間待ち受ける。
【００５５】
図１に示す通信システムでは、ポート冗長プロトコルの非アクティブ化（リンク閉塞）によってルータＲ１からの存在確認パケットはルータＢに届かない状態となる。また、図１に示す通信システムでは、ルータＲ１及びルータＲ２以外のルータは存在しない。この結果、ルータＲ２は一定期間内に存在確認パケットを受信しない。よって、ルータＲ２は一定期間の経過後にスタンドバイ状態に遷移する。ルータＲ２はさらに一定期間存在確認パケットを待ち受け、一定期間存在確認パケットを受信できない場合にアクティブ状態に遷移する。
【００５６】
図５は参考例におけるルータＲ２の状況を時系列で模式的に示す。ルータＲ２は１秒毎に（送信間隔１秒で）送信されるＢＦＤパケットの到着を監視するとともに、３秒毎に（送信間隔３秒で）送信される存在確認パケットの到着を監視する。
【００５７】
ルータＲ１側で障害が発生すると（図５の１）、ルータＲ２では、ルータＲ１からのＢＦＤパケットを最後に受信したときから１秒以上受信できない状態となるので、ＢＦＤを用いた障害を検出する（図５の２）。これを契機に、ルータＲ２はアクティブ状態となる。
【００５８】
その後にルータＲ１からの存在確認パケットを受信すると、ルータＲ２は遷移先判定状態に遷移する（図５の３）。図５の４は、障害によってポート冗長プロトコルにより集約された複数の物理インタフェース（ポート）の全てが閉塞されたタイミングを示す。これ以降、ルータＲ２はルータＲ１からの存在確認パケットを受信できない。
【００５９】
ルータＲ２では、一定期間（例えば１０秒）存在確認パケットの受信を待つ。存在確認パケット受信の待ちタイマ（１０秒）が満了しても存在確認パケットが受信できないので、ルータＲ２はスタンドバイ状態に遷移する（図５の５）。さらに一定期間存在確認パケットを待ち受けても受信できないので、ルータＲ２はアクティブ状態に遷移する（図５の６）。
【００６０】
上述したケースでは、ルータＲ２がアクティブ状態を解除して遷移先判定状態になっていから再びアクティブ状態になるまでに２０秒もの時間を要し、この間、経路の切り替えができない故に通信断となるというおそれがあった。以下に説明する実施形態では、経路の切り替えに要する時間の長期化を回避できるルータ及びルータを用いた通信制御方法について説明する。  
【００６１】
＜実施形態＞
図６は実施形態に係る通信システムの説明図である。図６に示す通信システムは、図１に示した通信システムと同様であるが、ルータ冗長プロトコルに係る設定が参考例と以下のように異なっている。
【００６２】
すなわち、ルータＲ２において、ＢＦＤによる障害が検知された場合に、ルータ冗長プロトコルに係る優先度がルータＲ１の優先度よりも高くなる値に設定される。実施形態では、ルータＲ１の優先度より高い値として、優先度として採り得る数値の最大値に設定される。但し、変更後の優先度はルータＲ１（アクティブルータ）の優先度より高い値であ
る限り、最大値より小さい値であっても良い。例えば、受信された存在確認メッセージ中のルータＲ１の優先度を記憶し、ルータＲ２の優先度をルータＲ１の優先度の値に所定値（例えば１以上の値）を加えた値に設定することが考えられる。
【００６３】
図７は実施形態における障害発生時の動作例を示す。図７において、図３を用いて説明したようなルータＲ１とＬ２ＳＷ＃１との間の障害が発生した場合を仮定する（図７（１））。また、参考例と同様に、障害により正常なリンク数が最小値を下回り、ポート冗長プロトコルが非アクティブになってポート冗長プロトコルに係る各物理インタフェースが閉塞される場合を仮定する。
【００６４】
上記の仮定において、ルータＲ２では、ルータＲ１からＢＦＤパケットが一定期間受信できないことを契機にＢＦＤレベルでの障害（ＢＦＤダウンと称する）が検出される。ルータ冗長プロトコルは、一例として、ＢＦＤダウンを常時監視しており、ＢＦＤダウンを検出すると、ルータ冗長プロトコルの優先度を最大値に変更する（図７（２））。但し、ＢＦＤダウンの監視は常時ではなく、存在確認パケットの監視間隔よりも短い間隔でなされるようにしても良い。監視のタイミングは適宜設定可能である。ＢＦＤの実行主体から障害がルータ冗長プロトコルの実行主体に通知されるようにしても良い。
【００６５】
これにより、ルータＲ２がアクティブ状態になった後にルータＲ１からの存在確認パケットが受信された場合でも、ルータＲ２の優先度はルータＲ１の優先度より高いため、遷移先判定状態への遷移は起こらない。
【００６６】
ルータＲ２は、ＧＡＲＰパケットの報知（ブロードキャスト）によって、デフォルトゲートウェイ向けのパケットに係るサーバ１及びＬ２ＳＷ＃１、Ｌ２ＳＷ＃２の経路設定を変更させる（図７（３））。
【００６７】
具体的には、ルータＲ２は、ルータＲ２の実ＩＰアドレスと仮想ＭＡＣアドレスとの対応関係を示すＧＡＲＰパケットを報知（ブロードキャスト）し、サーバ１のＡＲＰテーブルを更新する。ＡＲＰテーブルの更新によって、ルータＲ２向けのパケットの宛先ＭＡＣアドレスに仮想ＭＡＣアドレスが設定される。
【００６８】
また、ルータＲ２は、仮想ＩＰアドレス（デフォルトゲートウェイのＩＰアドレス）と仮想ＭＡＣアドレスとの対応関係を示すＧＡＲＰパケットを報知し、Ｌ２ＳＷ＃１及びＬ２ＳＷ＃２のＭＡＣテーブルを更新させる。この更新によって、デフォルトゲートウェイ向けのパケットがＬ２ＳＷ＃２を経由してルータＲ２で受信される状態となる。すなわち、サーバ１からの通信経路がルータＲ１へ向かう第１の経路からルータＲ２へ向かう第２の経路へ切り替えられる（図７（４））。
【００６９】
このようにして、デフォルトゲートウェイがルータＲ１からルータＲ２へ切り替えられる。サーバ１がルータＲ１との通信を行っていた場合、経路の切り替えによって通信を継続することができる。このとき、参考例のような、アクティブ状態から遷移先判定状態への遷移によって、経路の切り替えに時間を要することが回避される。
【００７０】
図８は実施形態における復旧時の動作例を示す。図７において、障害がルータＲ２で検出された場合には、ルータＲ２は障害を検出したポート及び状態（障害）を記憶する。その後、ルータＲ１及びＬ２ＳＷ＃１間の障害の復旧によって、障害を検出したポートからのＢＦＤパケットの受信を検出すると（図８（１））、ルータＲ２で障害からの復旧が検出され、記憶された状態が更新される（障害→復旧）（図８（２））。ルータＲ２は、状態が障害から復旧（正常）に更新されたことを検知すると、ルータＲ２の優先度を元の優先度に戻す。
【００７１】
なお、ルータＲ１は、ＧＡＲＰを用いてルータＲ１及びデフォルトゲートウェイ宛のパケットがＬ２ＳＷ＃１を介してルータＲ１に到達するように、ＡＲＰテーブル及びＭＡＣテーブルを更新させる（図８（３））。これにより、経路がルータＲ１側に切り戻される（図８（４））。
【００７２】
＜ルータの構成例＞
図９はルータＲ１及びルータＲ２として適用可能なルータ１００のハードウェア構成例を示す。ルータ１００は、バス１０７を介して相互に接続されたＣＰＵ１０１と、メモリ１０２と、ルータ情報管理用メモリ１０３（メモリ１０３）と、経路変更管理用メモリ１０４（メモリ１０４）と、パケット転送エンジン１０５とを含む。パケット転送エンジン１０５は、バス１０８を介して回線インタフェース１０６と接続されている。
【００７３】
メモリ１０２は、主記憶装置と補助記憶装置とを含み得る。主記憶装置はプログラムの展開領域、ＣＰＵ１０１の作業領域、データやプログラムの記憶領域、通信データのバッファ領域などとして使用される。主記憶装置は、例えばRandom Access Memory（ＲＡＭ）、ＲＡＭとRead Only Memory（ＲＯＭ）との組み合わせで形成される。
【００７４】
補助記憶装置はデータやプログラムの記憶領域として使用される。補助記憶装置は、例えば、ハードディスクドライブ（ＨＤＤ）、Solid State Drive（ＳＳＤ）、フラッシュ
メモリ、Electrically Erasable Programmable Read-Only Memory（ＥＥＰＲＯＭ）など
の不揮発性記憶媒体で形成される。主記憶装置及び補助記憶装置のそれぞれは、「記憶装置」、「記憶媒体」、「メモリ」、「記憶部」の一例である。
【００７５】
メモリ１０３は、ルータの設定情報の管理用のメモリであり、メモリ１０４は、インタフェース（ポート）の状態の管理用のメモリである。メモリ１０３及びメモリ１０４として、上記した主記憶装置と補助記憶装置との少なくとも一方を使用できる。
【００７６】
パケット転送エンジン１０５はパケットの転送先を決定する回路である。回線インタフェース１０６は対向装置向けの回線インタフェースであり、それぞれ物理リンクを収容する複数の物理インタフェース（物理ポート）を含んでいる。
【００７７】
ＣＰＵ１０１は、メモリ１０２に記憶されたプログラムを実行して、上述したルータＲ１としての動作や、ルータＲ２としての動作を行うための処理を行う。処理にあたって、メモリ１０２、メモリ１０３、メモリ１０４に記憶された様々な情報やデータを参照したり、情報を生成して記憶したりする。
【００７８】
ＣＰＵ１０１は、「制御装置」、「制御部」、「コントローラ」の一例である。ＣＰＵ１０１は、「第１の監視部」及び「第２の監視部」の一例である。ＣＰＵ１０１は、ＭＰＵ（Microprocessor）、プロセッサとも呼ばれる。ＣＰＵ１０１は、単一のプロセッサに限定される訳ではなく、マルチプロセッサ構成であってもよい。また、単一のソケットで接続される単一のＣＰＵがマルチコア構成を有していても良い。ＣＰＵ１０１で行われる処理の少なくとも一部は、マルチコア又は複数のＣＰＵで実行されても良い。ＣＰＵ１０１で行われる処理の少なくとも一部は、ＣＰＵ以外のプロセッサ、例えば、Digital Signal Processor(ＤＳＰ)、Graphics Processing Unit（ＧＰＵ）、数値演算プロセッサ、ベクトルプロセッサ、画像処理プロセッサ等の専用プロセッサで行われても良い。
【００７９】
また、ＣＰＵ１０１によって行われる処理の少なくとも一部は、集積回路（ＩＣ）、その他のディジタル回路で行われても良い。また、集積回路やディジタル回路はアナログ回路を含んでいても良い。集積回路は、ＬＳＩ、Application Specific Integrated Circui
t（ＡＳＩＣ）、プログラマブルロジックデバイス（ＰＬＤ）を含む。ＰＬＤは、例えば
、Field-Programmable Gate Array(ＦＰＧＡ)を含む。ＣＰＵ１０１で行われる処理の少
なくとも一部は、プロセッサと集積回路との組み合わせにより実行されても良い。組み合わせは、例えば、マイクロコントローラ（ＭＣＵ）、ＳｏＣ（System-on-a-chip）、システムＬＳＩ、チップセットなどと呼ばれる。
【００８０】
図１０はルータＲ２として動作するルータ１００のＣＰＵ１０１がプログラムを実行することによって生じるルータの機能を模式的に示す。図１０において、ルータＲ２は、Ｎ（Ｎは正の整数）個の物理インタフェースＩＦ−１〜ＩＦ−Ｎと、インタフェース処理部（ＩＦ処理部）１１と、ルーティング制御部１２と、ルーティングテーブル１３とを含む。ルータＲ２は、さらに、ＡＲＰテーブル１４と、設定情報管理部１５と、パケット処理部１６と、連携管理部１７と、ＢＦＤ監視部１８と、設定情報生成部１９と、障害ＩＦ情報メモリ２０とを含んでいる。
【００８１】
物理インタフェースＩＦ−１〜ＩＦ−Ｎ及びＩＦ処理部１１は回線インタフェース１０６に対応する。ＩＦ処理部１１は、物理インタフェースＩＦ−１〜ＩＦ−Ｎの状態管理を行う。ルーティング制御部１２は、パケットのルーティングの制御を行う。ルーティングテーブル１３は、パケットの経路情報（宛先アドレスと出力ＩＦとの関係など）を管理するテーブルである。ＡＲＰテーブル１４は、ＡＲＰのキャッシュ情報（ＩＰアドレスとＭＡＣアドレスとの対応関係）を管理するテーブルである。ルーティング制御部１２は、パケット転送エンジン１０５に対応する。ルーティングテーブル１３は、パケット転送エンジンが備えるメモリ上、或いはメモリ１０２〜１０４の少なくとも１つに記憶される。ＡＲＰテーブル１４は、メモリ１０２〜１０４の少なくとも１つに記憶される。
【００８２】
設定情報管理部１５は、ルータが有する各機能に対する設定内容を示す情報を管理する記憶領域であり、メモリ１０３上に形成される。パケット処理部１６は、ＡＲＰ解決処理とＡＲＰテーブル１４の管理（ＧＡＲＰに係る処理）等を行う。連携管理部１７はＢＦＤと物理インタフェースＩＦ−１〜ＩＦ−Ｎの状態に基づく設定情報の生成を指示する。
【００８３】
ＢＦＤ監視部１８はＢＦＤ及び物理インタフェースＩＦ−１〜ＩＦ−Ｎの状態の監視、状態を示す情報の書き込み、及びＢＦＤ状態の伝達を行う。設定情報生成部１９は、ルータの設定情報を生成及び削除する。削除は削除用の設定情報を生成することも含む。障害ＩＦ情報メモリ２０（メモリ２０）は障害が発生した物理インタフェースの識別情報と現在の物理インタフェースの状態とを記憶する。メモリ２０はメモリ１０４に対応する。
【００８４】
ＣＰＵ１０１は、プログラムの実行によってパケット処理部１６、連携管理部１７、ＢＦＤ監視部１８、設定情報生成部１９として動作する。パケット処理部１６は、上記したルータ冗長化プロトコルを実行する処理を行う。
【００８５】
ルータＲ１はルータＲ２と同じ構成を有していても良い。もっとも、ルータＲ１はルータＲ２の構成から、連携管理部１７、ＢＦＤ監視部１８、設定情報生成部１９、及び障害ＩＦ情報メモリ２０が除かれた構成を有していても良い。
【００８６】
図７に示したルータＲ２のパケット処理部１６、ＢＦＤ監視部１８、連携管理部１７、設定情報生成部１９、及び設定情報管理部１５の処理（すなわち、ＣＰＵ１０１の処理）の流れは以下の通りである。
【００８７】
パケット処理部１６は、一定の送信間隔でルータＲ１から送信されるＢＦＤパケットを物理インタフェースＩＦ−１〜ＩＦ−Ｎのいずれかである所定の物理インタフェースで受信することで、ルータＲ１との経路の正常性を監視する（図１０（１））。
【００８８】
ルータＲ１にて障害が発生した場合、ルータＲ１からのＢＦＤパケットを所定の物理インタフェースで受信できなくなる。パケット処理部１６はＢＦＤパケットが一定期間受信されないことを障害として検知し、障害を検出する（図１０（２））。
【００８９】
ＢＦＤ監視部１８は障害検知を連携管理部へ伝達する（図１０（３））。ＢＦＤ監視部１８は、障害が発生した（ＢＦＤパケットが受信されなくなった所定の）物理インタフェースの識別情報と現在の物理インタフェースの状態（障害）とをメモリ２０に書き込む（図１０（４））。連携管理部１７は優先度を最大値化する（ルータＲ１の優先度値より高くする）設定情報の生成を設定情報生成部１９へ指示する（図１０（５））。設定情報生成部１９は設定情報を生成し（図１０（６））、生成した設定情報を設定情報管理部１５に適用する（図１０（７））。すなわち、設定情報管理部１５は設定情報を用いてルータＲ２の優先度を最大値に変更する。
【００９０】
パケット処理部１６は、ルータＲ２の状態をアクティブに遷移させ、ルータＲ２がルータ冗長プロトコルにおけるアクティブルータであることを示すＧＡＲＰパケットを発行する。パケット処理部１６はルータＲ２の周辺機器（サーバ１、Ｌ２ＳＷ）に報知（ブロードキャスト）する（図１０（８））。
【００９１】
障害が復旧した場合、パケット処理部１６にてＢＦＤパケットの受信が検出されるようになり、パケット処理部１６は復旧を検出し、ＢＦＤ監視部１８へ通知する（図１０（９））。通知を受けたＢＦＤ監視部１８は復旧を検知し、復旧を連携管理部１７へ伝達し（図１０（１０））、障害からの復旧（所定の物理インタフェースの状態：復旧）をメモリ２０に書き込む（図１０（１１））。
【００９２】
連携管理部１７はメモリ２０を参照し（図１０（１２））、復旧と判定すると、ルータＲ２の優先度の最大値化を解除する設定情報の生成を設定情報生成部へ指示する（図１０（１３））。設定情報生成部１９は、設定情報を生成し（図１０（１４））、生成した設定情報を設定情報管理部１５に適用する（図１０（１５））。これによって、設定情報管理部１５はルータＲ２の優先度を元の値に戻す。
【００９３】
なお、連携管理部１７はルータ冗長化プロトコルの状態がスタンドバイとなったときにメモリ２０の記憶内容を初期状態へ戻す（図１０（１６））。これによって、ルータ冗長化プロトコルに基づく状態の遷移に伴いＢＦＤセッションが再設定される際にＢＦＤダウンが生じた(障害が発生した)と誤検知されることが回避される。
【００９４】
図１１は実施形態に係る通信システムにおける障害発生時の処理を示すシーケンス図である。ルータＲ１とルータＲ２とはＢＦＤパケットを一定の送信間隔で送受信する（図１１＜１＞）。ルータＲ２は、ＩＦ状態とＩＦ障害の情報登録を行う（図１１＜２＞）。
【００９５】
図１２はＩＦ状態とＩＦ障害の情報登録の処理例を示すフローチャートである。図１２の処理は例えばＢＦＤ監視部１８として動作するＣＰＵ１０１によって実行される。００１の処理では、ＣＰＵ１０１は対向向けの物理インタフェース（以下物理ＩＦとも表記）、すなわちＢＦＤパケットを受信する物理ＩＦの状態を確認する。００２の処理では、ＣＰＵ１０１はメモリ２０に、物理ＩＦの識別情報に関連づけて、物理ＩＦの状態を示す情報と、障害状況を示す情報とを登録する。
【００９６】
図１１に戻って、ルータＲ１側で障害が発生すると（図１１＜３＞）、ルータＲ１からのＢＦＤパケットをルータＲ２が受信できなくなる（図１１＜４＞）。ルータＲ２はＢＦＤパケットの未達より障害を検知する（図１１＜５＞）。
【００９７】
ルータＲ２は障害を検知するとＩＦ状態とＩＦ障害の情報更新を行う（図１１＜６＞）。図１３はＩＦ状態とＩＦ障害の情報更新の処理例を示すフローチャートである。図１３の処理はＢＦＤ監視部１８として動作するＣＰＵ１０１によって行われる。０１１の処理では、ＣＰＵ１０１は対向向けの物理インタフェース（以下物理ＩＦとも表記）の状態を確認する（００１の処理と同じ処理）。
【００９８】
０１２の処理において、ＣＰＵ１０１は物理ＩＦの状態に変化があるか否かを判定する。変化がないと判定される場合には（０１３のＮｏ）、処理が終了する。変化があると判定される場合には（０１３のＹｅｓ）、ＣＰＵ１０１はメモリ２０に変化後のＩＦ状態及び障害状況を登録する。図１１では、障害が検知されているので、ＩＦ状態として障害がメモリ２０に登録される。
【００９９】
図１１に戻って、ルータＲ２は障害時設定情報の生成指示を行う（図１１＜７＞）。図１４は障害時の設定情報の生成指示の処理例を示すフローチャートである。図１４の処理は連携管理部１７として動作するＣＰＵ１０１によって行われる。０２１の処理では、ＣＰＵ１０１はＢＦＤの状態に変化（正常（Ｕｐ）→障害（Ｄｏｗｎ））があるか否かを判定する。変化がないと判定される場合には（０２１のＮｏ）、処理が終了する。変化があると判定される場合には（０２１のＹｅｓ）、ＣＰＵ１０１はルータＲ２の優先度を最大値化するための設定情報の生成を指示する（指示を出力する）。
【０１００】
図１１に戻って、ルータＲ２は設定情報の生成を行う（図１１＜８＞）。図１５は障害時の設定情報の生成の処理例を示すフローチャートである。図１５の処理は設定情報生成部１９として動作するＣＰＵ１０１によって行われる。０３１の処理では、ＣＰＵ１０１は設定情報の生成指示はあるか否かを判定する。生成指示がないと判定される場合には（０３１のＮｏ）、処理が終了する。生成指示があると判定される場合には（０３１のＹｅｓ）、ＣＰＵ１０１は生成指示に対応する設定情報を生成し、出力する。
【０１０１】
図１１に戻って、ルータＲ２は設定情報の適用を行う（図１１＜９＞）。図１６は障害時の設定情報の適用の処理例を示すフローチャートである。図１６の処理は例えば設定情報管理部１５として動作するＣＰＵ１０１によって行われる。０４１の処理において、ＣＰＵ１０１は設定情報の適用、すなわち、ルータＲ２の優先度を最大値に変更する。
【０１０２】
図１７は実施形態に係る通信システムにおける障害復旧時の処理を示すシーケンス図である。ルータＲ１が障害から復旧すると（図１７＜１＞）、ルータＲ１からのＢＦＤパケットが物理ＩＦで受信されるようになる（図１７＜２＞）。このため、パケット処理部１６として動作するＣＰＵ１０１は障害からの復旧を検知する（図１７＜３＞）。
【０１０３】
すると、ＩＦ状態とＩＦ障害の情報更新の処理（図１３）を、ＢＦＤ監視部１８として動作するＣＰＵ１０１が実行する（図１７＜４＞）。これにより、メモリ２０に記憶されたＩＦ状態が（障害→復旧（正常））に更新される。
【０１０４】
連携管理部１７として動作するＣＰＵ１０１は、復旧時設定情報の生成指示の処理を行う（図１７＜５＞）。図１８は復旧時設定情報の生成指示の処理例を示すフローチャートである。０５１の処理において、ＣＰＵ１０１はメモリ２０に記憶されたＩＦ状態を確認する。０５２の処理において、ＣＰＵ１０１は物理ＩＦの障害は復旧済みか否かを判定する。物理ＩＦの障害は復旧済みと判定される場合（０５２のＹｅｓ）、ＣＰＵ１０１は優先度の最大値化を解除する設定情報の生成を指示する（０５３）。なお、０５２にて物理ＩＦの障害は復旧済みでない判定される場合（０５２のＮｏ）、処理が０５１に戻される。
【０１０５】
図１７に戻って、設定情報生成部１９として動作するルータＲ２のＣＰＵ１０１は設定情報の生成処理（図１５）を行う（図１７＜６＞）。これにより、優先度の最大値化を解除する（元に戻す）設定情報が生成される。設定情報管理部１５として動作するＣＰＵ１０１は設定情報の適用処理（図１６）を行う（図１７＜７＞）。これにより、優先度が元に戻る。
【０１０６】
図１７で図示は省略されているが、障害からの復旧に伴ってルータＲ１からの存在確認パケットが受信されるようになる。ルータＲ２の優先度が元に戻った場合、ルータＲ１の優先度が高くなるので、ルータＲ１の状態はスタンドバイに遷移する。このとき、アクティブとなったルータＲ１とスタンドバイのルータＲ２との間でＢＦＤセッションが再構築される。
【０１０７】
ルータＲ２のＣＰＵ１０１は、ＢＦＤセッションの再構築時のルータ冗長化プロトコルの状態確認の処理を実行する（図１７＜８＞）。図１９はＢＦＤセッションの再構築時のルータ冗長化プロトコルの状態確認の処理例を示すフローチャートである。ＣＰＵ１０１は、ＢＦＤの状態を確認し（０６１）、ＢＦＤの状態が正常（Ｕｐ）か否かを判定する。ＢＦＤの状態が正常であると判定される場合（０６２のＹｅｓ）、ＣＰＵ１０１はルータＲ２の状態がスタンドバイか否かを判定する。ＢＦＤの状態が正常でないと判定される場合（０６２のＮｏ）及びルータＲ２の状態がスタンドバイでないと判定される場合（０６３のＮｏ）では、処理が０６１に戻される。０６３でルータＲ２の処理がスタンドバイと判定される場合、処理が終了する。
【０１０８】
図１７に戻って、ＣＰＵ１０１はＩＦ状態とＩＦ障害の情報初期化を行う。図２０は障害ＩＦ情報メモリ（メモリ２０）の初期化処理の例を示すフローチャートである。０７１においてＣＰＵ１０１はメモリ２０を初期化し、処理を終了する。
【０１０９】
実施形態に係るルータＲ２は、優先度の高低を用いてサーバ１と通信するアクティブ状態となる複数のルータの一つが決定される冗長化プロトコルに基づいて、ルータＲ２の優先度より高い優先度を有するアクティブ状態のルータＲ１の障害時にアクティブとなる。
【０１１０】
ルータＲ２（ルータＲ２として動作するルータ１００）は、第１の監視部として動作するＣＰＵ１０１を含む。ＣＰＵ１０１は正常な物理回線の数が閾値を下回る場合に閉塞される複数の物理回線を束ねた論理回線を含む通信路を通じてルータＲ２に到達するルータＲ１からの冗長化プロトコルに基づく存在確認パケット（第１の信号）を受信し得る。ＣＰＵ１０１は、存在確認パケットが所定期間受信されない場合にルータＲ１に係る障害を検出してルータＲ２をアクティブ状態に遷移させる。また、ＣＰＵ１０１は、アクティブ状態に遷移したルータＲ２がルータＲ１からの存在確認パケットを受信した場合にルータＲ２のアクティブ状態を解除する。
【０１１１】
ルータＲ２は第２の監視部として動作するＣＰＵ１０１を含む。ＣＰＵ１０１は第１の信号の送信間隔より短い送信間隔でルータＲ１から送信され、前記通信路を通じてルータＲ２に到達するＢＦＤパケット（第２の信号）が所定期間受信されない場合にルータＲ１に係る障害を検出する。そして、第１の監視部として動作するＣＰＵ１０１は第２の監視部がルータＲ１に係る障害を検出した場合にルータＲ２の優先度をルータＲ１の優先度より高くする。
【０１１２】
これによって、上記通信路を通ってアクティブ状態のルータＲ１からの存在確認パケットが受信されたとしても、ルータＲ２のアクティブ状態が解除されるのを回避することができる。したがって、参考例のように、アクティブ状態の解除によって、再びアクティブ
状態になって経路の切り替えが行われるまでに時間を要し、その間サーバ１が通信できなくなる状態を回避することができる。すなわち、アクティブ状態の解除を回避して経路の切り替えに要する時間の長期化を回避することができる。
【０１１３】
また、実施形態に係るルータＲ２の第２の監視部として動作するＣＰＵ１０１は、ＢＦＤパケットを用いて検出した障害の情報をメモリ２０に記憶するとともに、その後にＢＦＤパケットが受信された場合に障害からの復旧を示す情報をメモリ２０に記憶する。第１の監視部として動作するＣＰＵ１０１は、メモリ２０に記憶された前記障害からの復旧を示す情報に基づいて、ルータＲ２の優先度を元に戻す。このようにして、ルータＲ１の復旧時にルータＲ２の優先度を元に戻して、ルータＲ１がアクティブとなりルータＲ２がスタンドバイとなる元の状態に戻すことができる。実施形態にて説明した構成は例示であり、適宜組み合わせることができる。
【符号の説明】
【０１１４】
Ｒ１、Ｒ２、１００・・・ルータ
１・・・サーバ
１０１・・・ＣＰＵ
１０２・・・メモリ
【図１】
2018186327.tif 000003
【図２】
2018186327.tif 000004
【図３】
2018186327.tif 000005
【図４】
2018186327.tif 000006
【図５】
2018186327.tif 000007
【図６】
2018186327.tif 000008
【図７】
2018186327.tif 000009
【図８】
2018186327.tif 000010
【図９】
2018186327.tif 000011
【図１０】
2018186327.tif 000012
【図１１】
2018186327.tif 000013
【図１２】
2018186327.tif 000014
【図１３】
2018186327.tif 000015
【図１４】
2018186327.tif 000016
【図１５】
2018186327.tif 000017
【図１６】
2018186327.tif 000018
【図１７】
2018186327.tif 000019
【図１８】
2018186327.tif 000020
【図１９】
2018186327.tif 000021
【図２０】
2018186327.tif 000022