(57)【要約】【課題】異なるレイヤにおける障害監視処理間での制御の不整合によるネットワークの通信断を抑制する。【解決手段】インタフェースと、第１のレイヤの処理によって破棄されたパケット数をカウントする第１のカウンタと、第２のレイヤの所定のアプリケーションについて、所定周期で受信されるパケットの未受信を検出する検出部と、所定のアプリケーションの受信パケットのうち第１のレイヤの処理によって破棄されたパケット数をカウントする第２のカウンタを有し、所定のアプリケーションのパケットの未受信が検出された場合に、第１のカウンタの値を確認し、第１のカウンタの値が増えている場合には、第２のカウンタの値を増やし、第１のカウンタの値が増えていない場合には、第２のカウンタの値を０にし、第２のカウンタの値が所定の閾値に達した場合に、インタフェースを閉塞させることを決定する制御部と、を備えるパケット伝送装置である。【選択図】図１１
2018014556.tif 000002
【特許請求の範囲】
【請求項１】
インタフェースと、
前記インタフェースによって受信されたパケットのうち、第１のレイヤの処理によって破棄されたパケット数をカウントする第１のカウンタと、
前記第１のレイヤよりも上位の第２のレイヤの所定のアプリケーションについて、所定周期で受信されるパケットの未受信を検出する検出部と、
前記所定のアプリケーションの受信パケットのうち前記第１のレイヤの処理によって破棄されたパケット数をカウントする第２のカウンタを有し、前記所定のアプリケーションのパケットの未受信が検出された場合に、前記第１のカウンタの値を確認し、前記第１のカウンタの値が増えている場合には、前記第２のカウンタの値を増やし、前記第１のカウンタの値が増えていない場合には、前記第２のカウンタの値を０にし、前記第２のカウンタの値が所定の閾値に達した場合に、前記インタフェースを閉塞させることを決定する制御部と、
を備え、
前記第２のカウンタの前記所定の閾値は、前記第２のレイヤの前記所定のアプリケーションによる障害検出の判定に用いられるパケットの連続未受信回数の閾値未満である、
パケット伝送装置。
【請求項２】
前記検出部はパケット伝送装置上で実行されるアプリケーションごとに備えられる、
請求項１に記載のパケット伝送装置。
【請求項３】
インタフェースによって受信されたパケットのうち、第１のレイヤの処理によって破棄されたパケット数を第１のカウンタを用いてカウントし、
前記第１のレイヤよりも上位の第２のレイヤの所定のアプリケーションについて、所定周期で受信されるパケットの未受信を検出し、
前記所定のアプリケーションの受信パケットのうち前記第１のレイヤの処理によって破棄されたパケット数をカウントする第２のカウンタを用いて、前記所定のアプリケーションのパケットの未受信が検出された場合に、前記第１のカウンタの値を確認し、前記第１のカウンタの値が増えている場合には、前記第２のカウンタの値を増やし、前記第１のカウンタの値が増えていない場合には、前記第２のカウンタの値を０にし、前記第２のカウンタの値が所定の閾値に達した場合に、前記インタフェースを閉塞させることを決定し、
前記第２のカウンタの前記所定の閾値は、前記第２のレイヤの前記所定のアプリケーションによる障害検出の判定に用いられるパケットの連続未受信回数の閾値未満である、
障害監視方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット伝送装置、及び、障害監視方法に関する。
【背景技術】
【０００２】
ネットワークは、信頼性のために、冗長構成を含むことが多い。冗長構成には、例えば、装置の冗長構成、リンクの冗長構成、経路の冗長構成がある。例えば、装置の冗長構成に用いられるプロトコルの一つに、ＶＲＲＰ（Virtual Router Redundancy Protocol）がある。ＶＲＲＰは、複数のルータをグループ化して仮想的に一つのルータとして見せる技術である。
【０００３】
例えば、経路の冗長構成に用いられるプロトコルの一つに、ＢＧＰ−ＭＨ（Border Gateway Protocol-Multi Homing）がある。ＢＧＰ−ＭＨは、物理的に異なる中継装置間で冗長された回線のアクティブ又はスタンバイを制御する技術である。例えば、ＢＧＰ−ＭＨは、２つの拠点間に、中継装置＃１、＃２それぞれを通過する２つの経路が存在する場合に、中継装置＃１、＃２がアクティブ又はスタンバイとしての動作を切り替えることによって、経路を切り替える技術である。
【０００４】
現用系及び予備系の呼称は、プロトコル等によって異なる。例えば、現用系は、アクティブ（ＢＧＰ−ＭＨ）、メイン、マスタ（ＶＲＲＰ）とも呼ばれる。例えば、予備系は、スタンバイ（ＢＧＰ−ＭＨ）、バックアップ（ＶＲＲＰ）とも呼ばれる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−２２９８１４号公報
【特許文献２】特開２００５−３３３５４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、冗長構成を設定する場合には、以下のような問題がある。例えば、２台の中継装置にＢＧＰ−ＭＨを設定する場合には、互いの生存確認のために、当該２台の中継装置間は回線で直接接続され、当該２台の中継装置には、ＢＦＤ（Bidirectional Forwarding Detection）が設定される。ＢＦＤは、２台の中継装置間での回線の生存状況を調べ、障害を検出するための技術である。ＢＦＤが設定されている２台の中継装置は、所定の周期でＢＦＤパケットを送受信し、対向装置から所定時間以上ＢＦＤパケットが到着しなかった場合は、対向装置に障害が発生したとみなす。当該２台の中継装置には、ＢＧＰ−ＭＨも設定されているので、例えば、ＢＧＰ−ＭＨのスタンバイの中継装置が、アクティブの対向装置からＢＦＤパケットを所定時間以上受信しない場合には、ＢＧＰ−ＭＨのスタンバイからアクティブに切り替わる。これによって、経路が切り替わる。
【０００７】
ＢＦＤは、アプリケーション層のプロトコルであるので、上記ＢＦＤによる障害監視処理は、アプリケーション層レベルで行われる。ＢＦＤによる障害監視処理は、対向装置からＢＦＤパケットを受信するか否かについて、行われる。
【０００８】
一方、中継装置では、物理層レベルでも、所定時間内に、受信パケットのエラーによる破棄数が閾値に達するか否かによって、インタフェースポートのダウンを判定する障害監視処理が行われている。
【０００９】
物理層とアプリケーション層とでは、それぞれ、処理が独立している。そのため、物理層の障害監視処理と、アプリケーション層のＢＦＤの障害監視処理とで、障害の発生を検出するタイミングが、同じとは限らない。例えば、物理層よりも先にアプリケーション層での障害発生の検出がなされた場合には、アプリケーション層での障害発生の検出によって、中継装置がＢＧＰ−ＭＨのスタンバイからアクティブになり、閉塞状態であったインタフェースが開放され、ループ構成に陥るおそがある。冗長構成ではループ構成を有することがあるので、例えば、ループ構成上でパケットがループし、通信断などネットワーク全体に波及する深刻な事態を招く可能性がある。
【００１０】
本発明は、異なるレイヤにおける障害監視処理間での制御の不整合による通信断を抑制可能なパケット伝送装置、及び、障害監視方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の一態様は、パケット伝送装置である。パケット伝送装置は、インタフェースと、第１のカウンタと、検出部と、制御部と、を備える。第１のカウンタは、インタフェースによって受信されたパケットのうち、第１のレイヤの処理によって破棄されたパケット数をカウントする。検出部は、第１のレイヤよりも上位の第２のレイヤの所定のアプリケーションについて、所定周期で受信されるパケットの未受信を検出する。制御部は、所定のアプリケーションの受信パケットのうち第１のレイヤの処理によって破棄されたパケット数をカウントする第２のカウンタを有し、所定のアプリケーションのパケットの未受信が検出された場合に、第１のカウンタの値を確認し、第１のカウンタの値が増えている場合には、第２のカウンタの値を増やし、第１のカウンタの値が増えていない場合には、第２のカウンタの値を０にし、第２のカウンタの値が所定の閾値に達した場合に、インタフェースを閉塞させることを決定する。第２のカウンタの所定の閾値は、第２のレイヤの所定のアプリケーションによる障害検出の判定に用いられるパケットの連続未受信回数の閾値未満である。
【発明の効果】
【００１２】
開示のパケット伝送装置、及び、障害監視方法によれば、異なるレイヤにおける障害監視処理間での制御の不整合による通信断を抑制することができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、スイッチ間の回線の冗長化構成の一例を示す図である。
【図２】図２は、スイッチの物理層における障害監視処理の一例を示す図である。
【図３】図３は、スイッチの物理層における障害監視処理と、アプリケーション層におけるＢＦＤの障害監視処理との関連の一例を示す図である。
【図４Ａ】図４Ａは、物理層よりも先行してアプリケーション層において障害発生が検出された場合に発生する事態の一例を示す図である。
【図４Ｂ】図４Ｂは、物理層よりも先行してアプリケーション層において障害発生が検出された場合に発生する事態の一例を示す図である。
【図５】図５は、第１実施形態に係るスイッチの物理層の障害監視処理の一例を示す図である。
【図６】図６は、スイッチのインタフェースカードのハードウェア構成の一例である。
【図７】図７は、スイッチのインタフェースカードの機能構成の一例を示す図である。
【図８】図８は、破棄カウンタテーブルの一例を示す図である。
【図９】図９は、破棄チェック部の処理のフローチャートの一例を示す図である。
【図１０】図１０は、具体例における破棄カウンタテーブルの一例である。
【図１１】図１１は、具体例におけるスイッチの障害監視処理の一例を示す図である。
【図１２】図１２は、スイッチの障害監視処理による障害発生の検出後のネットワークシステム内の動作の一例を示す図である。
【発明を実施するための形態】
【００１４】
以下、図面に基づいて、本発明の実施の形態を説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。
【００１５】
＜参考例＞
図１は、スイッチ間の回線の冗長化構成の一例を示す図である。例えば、ＢＦＤによる障害監視は、ＢＧＰ−ＭＨが設定されている２台の中継装置間の冗長を制御するために重要であるので、ＢＧＰ−ＭＨが設定されている２台の中継装置間のリンク（回線）もメイン回線とバックアップ回線とで冗長化される。
【００１６】
図１に示される例では、スイッチ＃０とスイッチ＃１との間が、２本の回線によって接続されている。スイッチ＃０のカード＃Ｘ０とスイッチ＃１のカード＃Ｘ１とを接続する回線がメイン回線として用いられている。スイッチ＃０のカード＃Ｙ０とスイッチ＃１のカード＃Ｙ１とを接続する回線はバックアップ回線として用いられている。通常は、メイン回線が用いられ、スイッチ＃０及びスイッチ＃１のバックアップ回線を接続するインタフェースポートは閉塞されている。例えば、スイッチ＃０のカード＃Ｘ０の障害等によってメイン回線が切断されると、スイッチ＃０のカード＃Ｙ０のバックアップ回線を接続するインタフェースポートが開放され、回線が切り替わる。以降、バックアップ回線が用いられて、スイッチ＃０とスイッチ＃１との間の通信が継続される。
【００１７】
図２は、スイッチの物理層における障害監視処理の一例を示す図である。スイッチは、各カードの各インタフェースポートについて、所定時間Ｔごとにパケットの破棄数を監視することで障害を検出する。スイッチは、物理層の処理を担当する構成要素の一つとして、ドロップカウンタと、破棄カウンタＣとを保持する。
【００１８】
インタフェースポートで受信されたパケットの中には、例えば、伝送途中でのビット欠け等によって、ＦＣＳ（Frame Check Sequence）とデータからのＣＲＣ（Cyclic Redundancy Check）計算結果とが一致せずに、エラーとなるパケットが存在することがある。エ
ラーパケットは、物理層で廃棄され、物理層以上の層には渡されることはない。
【００１９】
ドロップカウンタは、当該インタフェースポートで受信されたパケットについて、エラーパケットとして破棄されたパケットの数をカウントするカウンタである。破棄カウンタＣは、当該インタフェースポートにおいて、所定時間Ｔの間に破棄されたパケットの数をカウントするカウンタである。破棄カウンタＣは、所定時間Ｔごとにカウント値が０にリセットされる。破棄カウンタＣがカウントする所定時間Ｔは、例えば、数秒から数十秒のオーダーで予め決められている。
【００２０】
スイッチは、ドロップカウンタをチェックし、ドロップカウンタのカウント値が上がっている場合に、破棄カウンタＣのカウント値を上げる。所定時間Ｔ後、破棄カウンタＣのカウント値が閾値に達している場合に、スイッチは、該当のインタフェースポートを閉塞する。所定時間Ｔ後、破棄カウンタＣのカウント値が閾値に達していない場合には、スイッチは、破棄カウンタＣの値を０にリセットし、再びドロップカウンタをチェックして、破棄パケットの数のカウントを開始する。
【００２１】
図２に示される例では、スイッチが受信したパケットが示されている。白丸はエラーがなく上位層の処理にわたされる正常なパケットである。黒丸は、エラーによって破棄され
る破棄パケットである。図２に示される例において、破棄カウンタＣの閾値は７であるとする。
【００２２】
所定時間Ｔの１周期目では、パケットが２個破棄されたとする。所定時間Ｔの１周期目の終了時点では、ドロップカウンタのカウント値は２になる。破棄カウンタＣのカウント値は２になる。破棄カウンタＣのカウント値は閾値７に達していないので、０にリセットされる。
【００２３】
所定時間Ｔの２周期目では、パケットが３個破棄されたとする。所定時間Ｔの２周期目の終了時点では、ドロップカウンタのカウント値は２＋３＝５となる。破棄カウンタＣのカウント値は、３になる。破棄カウンタＣのカウント値は閾値７に達していないので、０にリセットされる。
【００２４】
所定時間Ｔの３周期目では、パケットが７個破棄されたとする。所定時間Ｔの３周期目の終了時点では、ドロップカウンタのカウント値は５＋７＝１２となる。破棄カウンタＣのカウント値は７になる。破棄カウンタＣのカウント値は閾値７に達したので、スイッチ＃１は、該当のインタフェースポートを閉塞する。これによって、メイン回線からバックアップ回線に切り替わる。
【００２５】
図３は、スイッチの物理層における障害監視処理と、アプリケーション層におけるＢＦＤの障害監視処理との関連の一例を示す図である。アプリケーション層では、物理層の破棄カウンタＣとは独立して、各プロトコルには、連続未受信パケットの閾値が設定されている。未受信パケットとは、例えば、キープアライブなどの所定の周期で受信されるはずのパケットが、該所定の周期で受信されなかったパケットのことである。例えば、ＢＦＤ（Bidirectional Forwarding Detection）の連続未受信パケット数の閾値は４である。ＢＦＤでは、連続未受信パケット数が閾値に達すると、当該回線の障害発生が検出される。
【００２６】
ドロップカウンタは、物理層において受信されたパケットを対象とするため、受信パケットのプロトコルを判別することなく、破棄パケット数をカウントする。また、破棄カウンタＣの所定時間Ｔは、秒又は数十秒オーダーである。一方、ＢＦＤのキープアライブの送信周期は、ミリ秒オーダーであり、回線の障害発生を検出するのに要する時間もミリ秒単位である。そのため、以下のような事態が発生する可能性がある。
【００２７】
図３に示される例では、例えば、ハードウェア故障等によって、物理層においてＢＦＤパケットの連続破棄が発生している例が示される。ただし、ＢＦＤパケット以外のプロトコルのパケットについては、連続破棄は発生していないものとする。
【００２８】
物理層でＢＦＤパケットが破棄された場合でも、上位のアプリケーション層にＢＦＤパケットが届かないため、アプリケーション層では、ＢＦＤパケットの未受信として認識される。図３に示される例では、所定時間Ｔの１周期目から物理層においてＢＦＤパケットの破棄が発生している。アプリケーション層では、ＢＦＤパケットの連続未受信パケット数が所定時間Ｔの２周期目の途中で閾値４に達している。したがって、所定時間Ｔの２周期目の途中で、アプリケーション装置では、ＢＦＤパケットの連続未受信によって当該回線の障害発生が検出される。
【００２９】
しかしながら、所定時間Ｔの１周期目と２周期目では、物理層では、破棄カウンタＣのカウント値が閾値７に達していないために、当該インタフェースポートは所定時間Ｔの２周期目の終了時点でも閉塞されない。当該インタフェースポートが閉塞されるのは、所定時間Ｔの３周期目の終了時点である。所定時間Ｔの３周期目の終了時点で、スイッチ＃０とスイッチ＃１との間の回線はメイン回線からバックアップ回線に切り替わる。
【００３０】
したがって、物理層よりも先にアプリケーション層の障害監視処理によって障害発生が検出される可能性がある。図３で示される例の場合では、物理層における障害発生の検出は、アプリケーション層における障害発生の検出よりも、少なくとも所定時間Ｔ（秒オーダー）遅れている。物理層における障害発生の検出の、アプリケーション層における障害発生の検出からの遅延によって、ネットワークに深刻な影響が及ぶ可能性がある。
【００３１】
図４Ａ及び図４Ｂは、物理層よりも先行してアプリケーション層において障害発生が検出された場合に発生する事態の一例を示す図である。図４Ａ及び図４Ｂでは、外部ネットワーク（ＮＷ）＃０と外部ネットワーク＃１との間を中継するネットワークシステム１００が示されている。ネットワークシステム１００は、物理層よりも先行してアプリケーション層において障害発生が検出される可能性のあるシステムの一例である。
【００３２】
ネットワークシステム１００では、外部ネットワーク＃０とスイッチ＃２との間の経路が冗長化されている。冗長化のそれぞれの経路には、スイッチ＃０とルータ＃０、スイッチ＃１とルータ＃１とが存在する。
【００３３】
ルータ＃０とルータ＃１とには、ＶＲＲＰが設定されている。スイッチ＃０とスイッチ＃１とには、ＢＧＰ−ＭＨが設定されており、それぞれ、例えば、スイッチ＃２側のインタフェースを開放又は閉塞させることによって、経路の切替を制御する。ルータ＃０とスイッチ＃０とを通過する経路がメインの経路として用いられている。ルータ＃１とスイッチ＃１とを通過する経路はバックアップの経路として用いられている。
【００３４】
したがって、ルータ＃０はＶＲＲＰのマスタルータ、ルータ＃１はＶＲＲＰのバックアップルータとして動作する。スイッチ＃０はＢＧＰ−ＭＨのアクティブ、スイッチ＃１はＢＧＰ−ＭＨのスタンバイとして動作する。スイッチ＃１はＢＧＰ−ＭＨのスタンバイとして動作するため、スイッチ＃１のスイッチ＃２側のインタフェースは閉塞されている。
【００３５】
スイッチ＃０とスイッチ＃１とは、２本の回線で接続されており、回線が冗長化されている。スイッチ＃０とスイッチ＃１とには、ＢＧＰ−ＭＨが設定されており、互いの障害検出のために、スイッチ＃０とスイッチ＃１とを直接接続する回線上で、ＢＦＤセッションが確立されている。
【００３６】
スイッチ＃０とスイッチ＃１との間の回線では、ＢＦＤのセッションを維持するためのＢＦＤコントロールパケットが所定の周期で送信されている。ＢＦＤコントロールパケットの送信周期は、ミリ秒オーダーで予め設定されている。破棄カウンタＣの所定時間Ｔは秒オーダーなので、ＢＦＤコントロールパケットの送信周期は、破棄カウンタＣの所定時間Ｔに比べると小さい。ＢＦＤコントロールパケットを、以降、単に、ＢＦＤパケット、と称する。
【００３７】
（１）スイッチ＃１のカード＃Ｘ１において、ハードウェアの障害が発生し、スイッチ＃１のカード＃Ｘ１の物理層において、ＢＦＤパケットが破棄され続ける事象が発生したとする。ただし、ＢＦＤ以外のプロトコルのパケットは、正常に受信されていることとする。
【００３８】
（２）スイッチ＃１のカード＃Ｘ１の物理層において、ＢＦＤパケットが破棄され続けても、破棄カウンタＣの所定時間Ｔの一周期内の破棄パケット数が閾値に達していない場合には、スイッチ＃１のカード＃Ｘ１の当該インタフェースポートは、閉塞されない（図３参照）。そのため、スイッチ＃０とスイッチ＃１間の回線は、メイン回線からバックアップ回線に切り替らない。
【００３９】
（３）スイッチ＃０とスイッチ＃１との間の回線がバックアップ回線に切り替っておらず、メイン回線から受信されるＢＦＤパケットは、物理層において破棄されているため、アプリケーション層では、スイッチ＃０からのＢＦＤパケットが受信されないとみなされている状態となる。スイッチ＃１のアプリケーション層では、ＢＦＤパケットの送信周期でスイッチ＃１からのＢＦＤパケットを受信しないことによって、ＢＦＤパケットの未受信が検出される。
【００４０】
図４Ｂの（４）スイッチ＃１のアプリケーション層において、ＢＦＤの連続未受信パケット数が閾値に達したため、障害発生が検出される。ＢＦＤによって障害発生が検出されることによって、スイッチ＃１のＢＧＰ−ＭＨにおける役割が、スタンバイからアクティブへと切り替わる。これによって、スイッチ＃０とスイッチ＃１との双方がアクティブとして動作する状態に陥る。このとき、物理層において障害発生は検出されていないため、スイッチ＃１のカード＃Ｘ１の当該インタフェースポートは閉塞しておらず、スイッチ＃０とスイッチ＃１との間のマスタ回線は、パケットを送受信可能な状態である。また、スイッチ＃１がＢＧＰ−ＭＨのスタンバイからアクティブに切り替ったことによって、スイッチ＃１のスイッチ＃２側のインタフェースポートが開放される。
【００４１】
（５）ルータ＃０とルータ＃１とには、ＶＲＲＰが設定されており、マスタであるルータ＃０からは所定の周期でＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔが送信されている。ＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔは、マルチキャストアドレス宛に送信される。
【００４２】
（６）スイッチ＃０とスイッチ＃１との双方がアクティブとして動作しており、スイッチ＃０とスイッチ＃１との間のマスタ回線がパケットを送受信可能な状態で、ＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔが送信されると、ループが発生する。当該ＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔは、マルチキャストで送信されるので、スイッチ＃０、＃１、＃２それぞれに転送される度にコピーが生成される（フラッディング）ので、ＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔが大量にネットワーク１００に流れる。これによって、ネットワーク１００内の帯域が圧迫される。帯域が圧迫されることによって、ユーザトラフィックがダウンし、サービスが中断する事態に陥る。
【００４３】
図４Ｂのような事態は、スイッチ＃１のカード＃Ｘ１において、アプリケーション層のＢＦＤによる障害発生の検出が、物理層における障害発生の検出のよりも先に行われることに起因する。物理層における障害発生がアプリケーション層における障害発生よりも先に検出される場合には、スイッチ＃０とスイッチ＃１との間の回線がバックアップ回線に切り替る。スイッチ＃１においてＢＦＤによって障害発生が検出される前に、バックアップ回線を通じてＢＦＤパケットがスイッチ＃１に届ようになるため、ＢＦＤによって障害発生が検出されず、ＢＧＰ−ＭＨもアクティブには切り替わらない。なお、図４Ａ及び図４Ｂのシステムは一例であり、同様の事態は、冗長化構成を有するシステムにおいて、使用されるプロトコルに依らず、発生し得る。
【００４４】
＜第１実施形態＞
第１実施形態では、スイッチは、アプリケーション層よりも先に物理層において障害発生の検出をすることによって、ネットワークの通信断のような事態を抑制する。
【００４５】
図５は、第１実施形態に係るスイッチの物理層の障害監視処理の一例を示す図である。第１実施形態では、スイッチは、物理層の処理を担当する構成要素として、ドロップカウンタと、プロトコル別の連続破棄カウンタとを備える。プロトコル別の連続破棄カウンタは、物理層において破棄されたパケットをプロトコルごとにカウントするカウンタである。
【００４６】
（１）スイッチは、アプリケーション層において、ＢＦＤパケットの未受信を検出すると、ドロップカウンタを確認する。ドロップカウンタのカウント値が上がっている場合には、スイッチは、ＢＦＤの連続破棄カウンタのカウント値を上げる。ドロップカウンタのカウント値が上がっていない場合には、スイッチは、ＢＦＤの連続破棄カウンタのカウント値を０にリセットする。（２）ＢＦＤの連続破棄カウンタのカウント値が閾値に達したら、スイッチは、当該インタフェースポートを閉塞させる。ＢＦＤの連続破棄カウンタの閾値は、ＢＦＤの連続未受信パケット数の閾値より小さい値である。
【００４７】
図３で示される例では、ＢＦＤの連続未受信パケット数の閾値は４、連続破棄カウンタの閾値は３である。図３に示される例では、アプリケーション層におけるＢＦＤのパケットの未受信の検出とともに、物理層のドロップカウンタのカウント値も上がっている。そのため、物理層のＢＦＤの連続破棄カウンタのカウント値も、アプリケーション層におけるＢＦＤのパケットの未受信の検出とともに上がっている。
【００４８】
したがって、アプリケーション層におけるＢＦＤの連続破棄パケット数が閾値の３に達すると、当該インタフェースポートは閉塞される。
【００４９】
アプリケーション層において、ＢＦＤパケットの未受信が検出され、且つ、物理層のドロップカウンタが上がっていない場合には、自装置ではなく、対向のスイッチ又は回線上においてＢＦＤパケットが損失されたことが示される。一方、アプリケーション層において、ＢＦＤパケットの未受信が検出され、且つ、物理層のドロップカウンタが上がっている場合には、物理層において破棄されたパケットがＢＦＤパケットである可能性が高い。
【００５０】
したがって、アプリケーション層において、ＢＦＤパケットの未受信が検出され、且つ、物理層のドロップカウンタが上がっている場合には、スイッチは、自装置の物理層においてＢＦＤパケットが破棄されたとみなし、ＢＦＤの破棄パケット数をカウントする。また、ＢＦＤの連続破棄カウントの閾値をＢＦＤの連続未受信パケット数より小さい値にすることで、アプリケーション層のＢＦＤが障害発生を検出するよりも前に、物理層で障害発生を検出することができる。
【００５１】
なお、第１実施形態において、物理層、アプリケーション層は、ＴＣＰ／ＩＰ（Transmission Control Protocol/IP）モデルの物理層、アプリケーション層を指す。ただし、物理層、アプリケーション層は、それぞれ、ＯＳＩ（Open Systems Interconnection）参照モデルの物理層、アプリケーション層であってもよい。物理層は、「第１のレイヤ」の一例である。アプリケーション層は、「第２のレイヤ」の一例である。
【００５２】
＜装置構成＞
図６は、スイッチ＃１のインタフェースカードのハードウェア構成の一例である。スイッチ＃１は、例えば、レイヤ２スイッチ、レイヤ３スイッチである。スイッチ＃１は、「パケット伝送装置」の一例である。
【００５３】
スイッチ＃１は、複数のインタフェースカードと、制御カードとを備える。いずれのインタフェースカードも同様のハードウェア構成を有する。インタフェースカードは、ハードウェア構成要素として、ＣＰＵ（Central Processing Unit）１０１、メモリ１０２、
ＮＩＣ（Network Interface Card）１０３、ドロップカウンタ１０４、スイッチ（ＳＷ）部１０５を備え、ＣＰＵ  １０１、メモリ１０２、ドロップカウンタ１０４、スイッチ部１０５は、バスで接続されている。
【００５４】
ＮＩＣ  １０３は、複数のインタフェースポート、ＰＨＹ／ＭＡＣ（PHYsical/Media A
ccess Control）チップを備える。ＰＨＹ／ＭＡＣチップは、ネットワークインタフェー
スから入力された電気信号をビット列に変換し、ビット列からフレームを組み立てて、ＳＷ部１０５に出力する。
【００５５】
ドロップカウンタ１０４は、ＮＩＣ  １０３に備えられているインタフェースポートごとに、破棄パケット数をカウントする。例えば、ＮＩＣ  １０３において、組み立てられたフレームのデータ部からＣＲＣ計算で算出される値と、当該フレームのＦＣＳの値とが一致しない場合には、当該フレームはエラーフレームとして破棄される。ドロップカウンタは、「第１のカウンタ」の一例である。
【００５６】
スイッチ部１０５は、同一カード内のインタフェースポート間のスイッチング、カード間のスイッチングを行う。スイッチ部１０５は、図示されていないスイッチカードに接続している。他のカード内のインタフェースポートを出力先とするフレームは、スイッチ部１０５によってスイッチカードに転送され、スイッチカードから、出力先のインタフェースポートが存在するカードに転送される。
【００５７】
メモリ１０２は、例えば、ＲＡＭ（Random Access Memory）である。メモリ１０２は、用途によって、複数備えられていてもよい。例えば、パケットが一時的に格納されるパケット用メモリ、ＭＡＣテーブル等を格納するアドレス用メモリ、プログラムやデータ等を格納するメモリ、等である。メモリ１０２には、ＯＳ（Operating System）、障害監視プログラム、プロトコルのアプリケーション等が格納されている。障害監視プログラムは、プロトコルの未受信パケットが検出された場合のドロップカウンタ１０４の値の変動によって、当該プロトコルの破棄パケットを検出し、当該プロトコルの破棄パケット数に基づいて障害発生を検出するためのプログラムである。
【００５８】
ＣＰＵ  １０１は、スイッチ部１０５からパケットの入力を受ける。ＣＰＵ  １０１に入力されるパケットは、宛先アドレスがＣＰＵ  １０１自身を示すアドレスであるパケット又はＣＰＵ  １０１上で起動しているプロトコルのマルチキャストアドレスであるパケットである。ＣＰＵ  １０１は、メモリ１０２に保持されたＯＳや様々なアプリケーションプログラムを実行することによって、様々な処理を実行する。ＢＦＤ、ＶＲＲＰ、ＢＧＰ−ＭＨもＣＰＵ  １０１が実行するプログラムの一つである。ＣＰＵ  １０１は、「制御部」、「検出部」の一例である。
【００５９】
制御カードには、ＣＰＵ、メモリ等が搭載されている。制御カードは、各インタフェースカードの管理を行う。制御カードは、例えば、ＢＧＰ−ＭＨのスタンバイ／アクティブの切替の制御等を行っている。なお、スイッチ＃１のハードウェア構成は、図６に示されるものに限定されない。
【００６０】
図７は、スイッチ＃１のインタフェースカードの機能構成の一例を示す図である。スイッチ＃１は、機能構成要素として、破棄チェック部１３、識別部１４、プロトコル別の処理部１５、プロトコル別の受信パケットカウンタ１６、プロトコル別の未受信監視部１７を備える。これらの機能構成要素は、いずれも、ＣＰＵ  １０１がそれぞれ所定のプログラムを実行することによって達成されるものである。
【００６１】
識別部１４は、ＮＩＣ  １０３から入力されたパケットのアプリケーションを識別し、該当するアプリケーションの処理部１５にパケットを出力する。アプリケーションの識別は、例えば、パケット内のポート番号に基づいて行われる。識別部１４は、例えば、ＣＰＵ  １０１がＯＳを実行することによって達成される機能構成要素である。
【００６２】
アプリケーション別の処理部１５は、それぞれ、ＣＰＵ  １０１が該当するアプリケー
ションを実行することによって達成される機能構成要素である。アプリケーション別の処理部１５は、それぞれ、該当するアプリケーション層のプロトコルの処理を行う。ＢＦＤ、ＶＲＲＰは、いずれも、アプリケーション層に属するプロトコルである。プロトコルは、アプリケーションプログラムに記述されており、当該アプリケーションプログラムがスイッチ＃１によって実行されることで、スイッチ＃１が当該プロトコルで規定された動作を行う。したがって、第１実施形態では、アプリケーションとプロトコルとを、同義、又は、アプリケーションがプロトコルを含む概念として、取り扱うこととする。
【００６３】
アプリケーション別の受信カウンタ１６は、該当するアプリケーションの受信パケット数をカウントする。アプリケーション別の受信カウンタ１６は、該当するアプリケーションの処理部１５にパケットが入力されると、該当の処理部１５によって値が増やされる。
【００６４】
アプリケーション別の未受信監視部１７は、該当するアプリケーションの受信カウンタ１６を監視し、パケットの未受信を検出する。例えば、ＢＦＤの未受信監視部１７は、ＢＦＤパケットの送信周期で、ＢＦＤの受信カウンタ１６を確認し、ＢＦＤの受信カウンタ１６の値が増加していない場合には、ＢＦＤについて、パケットの未受信を検出する。アプリケーション別の未受信監視部１７は、パケットの未受信を検出すると、破棄チェック部１３に通知する。また、アプリケーション別の未受信監視部１７は、パケットの未受信を制御カードにも通知する。制御カードでは、パケットの未受信の連続回数を監視しており、パケットの未受信が所定閾値に達した場合に、障害の発生を検出し、当該アプリケーションに応じた処理を行う。例えば、制御カードでは、制御カードに搭載されるＣＰＵがＢＧＰ−ＭＨのプログラムを実行しており、ＢＦＤの未受信監視部１７からのパケットの未受信の通知を監視している。制御カードは、ＢＦＤパケットの連続未受信回数が所定の閾値に達した場合に、障害の発生を検出し、ＢＧＰ−ＭＨにおいてスタンバイからアクティブへと切り替える。アプリケーション別の未受信監視部１７のそれぞれは、「検出部」の一例である。
【００６５】
アプリケーション別の受信カウンタ１６、アプリケーション別の未受信監視部１７は、ＣＰＵ  １０１がＯＳを実行することによって達成される機能構成である。また、アプリケーション別の処理部１５、受信カウンタ１６、未受信監視部１７は、スイッチ＃１上で実行されており、当該インタフェースカード上のポートが関連しているプロトコルの数分存在する。
【００６６】
破棄チェック部１３は、ＣＰＵ  １０１が障害監視プログラムを実行することによって達成される機能構成要素である。破棄チェック部１３は、破棄カウンタテーブル１３Ｃを備える。破棄チェック部１３は、いずれかのプロトコルの未受信監視部１７から、パケットの未受信の通知を受けると、ドロップカウンタ１０４を確認する。ドロップカウンタのカウント値が上がっている場合には、破棄チェック部１３は、破棄カウンタテーブル１３Ｃの、該当のプロトコルの連続破棄カウンタのカウント値を上げる。該当のプロトコルの連続破棄カウンタのカウント値は、例えば、ドロップカウンタのカウント値の増加分に依らず、１つ増加される。
【００６７】
また、該当のプロトコルの連続破棄カウンタのカウント値が閾値に達した場合には、破棄チェック部１３は、障害の発生を検出し、障害の発生を制御カードに通知する。制御カードは、障害の発生の通知を受けて、いずれのインタフェースポートを閉塞させるかを判定し、破棄チェック部１３に通知する。破棄チェック部１３は、制御カードから通知されたインタフェースポートを閉塞させる。破棄チェック部１３は、「制御部」の一例である。
【００６８】
図８は、破棄カウンタテーブル１３Ｃの一例を示す図である。破棄カウンタテーブル１
３Ｃは、プロトコル別の連続破棄カウンタを格納するテーブルである。破棄カウンタテーブル１３Ｃは、スイッチ＃１のメモリ１０２内に格納される。
【００６９】
破棄カウンタテーブル１３Ｃのエントリは、プロトコル、閾値Ｘ、連続破棄カウンタＤの項目を含む。破棄カウンタテーブル１３Ｃのエントリは、スイッチ＃１において実行中のプロトコルの数と同数存在する。
【００７０】
破棄カウンタテーブル１３Ｃのエントリの閾値Ｘの項目には、当該プロトコルにおいて、障害発生を検出するための、連続して破棄されるパケットの数の閾値が格納される。閾値Ｘの値は、プロトコルに応じて予め決められている。閾値Ｘは、当該プロトコルが障害発生を検出するための未受信パケット数の閾値より小さい値に設定される。連続破棄カウンタの閾値Ｘは、「所定の閾値」の一例である。プロトコル別の障害発生を検出するための未受信パケット数の閾値（連続未受信パケット数の閾値）は、「前記第２のレイヤの前記所定のアプリケーションによる障害検出の判定に用いられるパケットの連続未受信回数の閾値」である。
【００７１】
＜処理の流れ＞
図９は、破棄チェック部１３の処理のフローチャートの一例を示す図である。図９に示される処理は、スイッチ＃１の稼働中繰り返し実行される。図９に示される処理の実行主体は、障害監視プログラムを実行するＣＰＵ  １０１であるが、便宜上、ＣＰＵ  １０１が障害監視プログラムを実行することによって達成される機能構成要素である破棄チェック部１３を主体として説明する。
【００７２】
ＯＰ１では、破棄チェック部１３は、パケットの未受信が検出されたプロトコルがあるか否かを判定する。この判定は、いずれかのプロトコルの未受信監視部１７からパケット未受信の通知が入力されているか否かによって判定される。パケットの未受信が検出されたプロトコルがある場合には（ＯＰ１：ＹＥＳ）、処理がＯＰ２に進む。パケットの未受信が検出されたプロトコルがない場合には（ＯＰ１：ＮＯ）、処理がＯＰ３に進む。
【００７３】
ＯＰ２では、破棄チェック部１３は、パケットの未受信が検出されたプロトコルが有るので、ドロップカウンタ１０４を参照して、ドロップカウンタ１０４のカウント値が上がっているか否かを判定する。ドロップカウンタ１０４のカウント値が上がっている場合には（ＯＰ２：ＹＥＳ）、処理がＯＰ４に進む。ドロップカウンタ１０４のカウント値が上がっていない場合には（ＯＰ２：ＮＯ）、処理がＯＰ３に進む。
【００７４】
ＯＰ３では、破棄チェック部１３は、破棄カウンタテーブル１３Ｃ内の各プロトコルの連続破棄カウンタＤのカウント値を０にリセットする。いずれのプロトコルもパケットの未受信が検出されていない、又は、パケットが未受信であっても、ドロップカウンタ１０４のカウント値が上がっていないためである。その後、図９に示される処理が終了する。
【００７５】
ＯＰ４では、ドロップカウンタ１０４のカウント値が上がっているので、破棄チェック部１３は、破棄カウンタテーブル１３Ｃの該当のプロトコルの連続破棄カウンタＤのカウント値を上げる。
【００７６】
ＯＰ５では、破棄チェック部１３は、破棄カウンタテーブル１３Ｃを参照し、連続破棄カウンタＤのカウント値が閾値Ｘ以上であるエントリがあるか否かを判定する。連続破棄カウンタＤのカウント値が閾値Ｘ以上であるエントリがある場合には（ＯＰ５：ＹＥＳ）、処理がＯＰ６に進む。連続破棄カウンタＤのカウント値が閾値Ｘ以上であるエントリがない場合には（ＯＰ５：ＮＯ）、その後、図９に示される処理が終了する。
【００７７】
ＯＰ６では、破棄チェック部１３は、障害発生を検出し、制御カードに通知する。ＯＰ７では、破棄チェック部１３は、制御カードから閉塞するインタフェースポートの通知を受けて、対象のインタフェースポートを閉塞させる。その後、図９に示される処理が終了する。
【００７８】
＜具体例＞
具体例では、図４Ａに示されるシステム構成及び事象を前提とし、スイッチ＃１の動作について説明する。
【００７９】
図１０は、具体例における破棄カウンタテーブル１３Ｃの一例である。具体例では、スイッチ＃１上で、ＶＲＲＰ、ＢＦＤ、ＯＳＰＦ等のプロトコルが動作している。したがって、具体例におけるスイッチ＃１の破棄カウンタテーブル１３Ｃでは、ＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔ、ＢＦＤ、ＯＳＦＰ  Ｈｅｌｌｏパケットを監視する連続破棄カウンタＤのエントリが含まれている。具体例において、ＢＦＤの連続破棄カウンタＤの閾値Ｘは、３個である。
【００８０】
図１１は、具体例におけるスイッチ＃１の障害監視処理の一例を示す図である。具体例では、図４Ａに示される参考例と同様に、スイッチ＃１のカード＃Ｘ１のハードウェア故障により、ＢＦＤのパケット破棄が連続する事象が発生していることが想定される。
【００８１】
スイッチ＃１のカード＃Ｘ１のハードウェア故障により、ＢＦＤのパケット破棄が連続する事象が発生すると、アプリケーション層においてＢＦＤの未受信監視部１７がパケットの未受信を検出する。破棄チェック部１３は、ＢＦＤの未受信監視部１７からパケットの未受信の通知を受け（図９、ＯＰ１：ＹＥＳ）、ドロップカウンタ１０４を確認する。具体例ではスイッチ＃１のカードＸ＃１でのＢＦＤのパケット破棄を想定しているので、ドロップカウンタ１０４のカウント値は上がっている（図９、ＯＰ２：ＹＥＳ）。なお、図１１では、ドロップカウンタ１０４のカウント値は、ＢＦＤのパケット破棄が連続する事象が発生した時点からの増加分を示しているものとする。
【００８２】
破棄チェック部１３は、ＢＦＤの連続破棄カウンタＤのカウント値を上げる（図９、ＯＰ４）。ＢＦＤのパケットは、物理層において連続して破棄されるので、ＢＦＤの未受信監視部１７によってパケットの未受信が検出され、ＢＦＤの連続破棄カウンタＤの値も上がる。
【００８３】
ＢＦＤの連続破棄カウンタＤの値が３になると、ＢＦＤの閾値Ｘに達するので（図９、ＯＰ５：ＹＥＳ）、破棄チェック部１３は制御カードに、障害発生を通知する（図９、ＯＰ６）。制御カードから閉塞するインタフェースポートとして、スイッチ＃０とのメイン回線を接続するインタフェースポートが通知されるので、破棄チェック部１３は、該当のインタフェースポートを閉塞させる（図９、ＯＰ７）。
【００８４】
図１２は、スイッチ＃１の障害監視処理による障害発生の検出後のネットワークシステム１００内の動作の一例を示す図である。スイッチ＃１において、メイン回線を接続するインタフェースポートが閉塞されると、スイッチ＃０、スイッチ＃１において、バックアップ回線を接続するインタフェースポートが開放される。これによって、スイッチ＃０とスイッチ＃１との間のバックアップ回線が疎通し、回線が切り替わる。
【００８５】
バックアップ回線に切り替ることによって、スイッチ＃１は、バックアップ回線を通じて、ＢＦＤパケットを受信するようになり、ＢＦＤでは障害発生の検出がなされないので、スイッチ＃１はスタンバイのままとなる。そのため、スイッチ＃１のスイッチ＃２側のインタフェースポートは閉塞されたままとなる。
【００８６】
ルータ＃０からＶＲＲＰ  Ａｄｖｅｒｔｉｓｅｍｅｎｔが送信される場合も、スイッチ＃１のスイッチ＃２側のインタフェースポートは閉塞されているので、ループは発生せず、通信が停止することもない。
【００８７】
＜第１実施形態の作用効果＞
第１実施形態では、スイッチ＃１は、アプリケーション層において所定のプロトコルのパケットの未受信が検出され、ドロップカウンタ１０４のカウント値が上がっている場合には、当該プロトコルのパケットが破棄されたとみなし、当該プロトコルの連続破棄カウンタＤのカウント値を上げる。スイッチ＃１は、当該プロトコルの連続破棄カウンタＤのカウント値が閾値Ｘに達した場合には、アプリケーション層よりも前に、物理層での障害発生を検出する。これによって、物理層とアプリケーション層との障害監視処理における制御の不整合を抑制し、ネットワークの通信断を抑制することができる。
【００８８】
また、第１実施形態では、スイッチ＃１は、物理層での障害発生を検出した場合には、該当のインタフェースポートを閉塞させる。これによって、例えば、図１２に示されるネットワークシステム１００では、スイッチ＃０とスイッチ＃１との間の回線がバックアップ回線に切り替わる。スイッチ＃１は、ＢＦＤによって障害が検出される前にバックアップ回線を通じてＢＦＤパケットを受信するので、ＢＧＰ−ＭＨはスタンバイからアクティブに切り替ることなく、ループの発生を抑制することができる。
【００８９】
また、第１実施形態では、スイッチ＃１は、アプリケーション層において所定のプロトコルのパケットの未受信が検出され、ドロップカウンタ１０４のカウント値が上がっている場合には、当該プロトコルのパケットが物理層において破棄されたとみなす。これによって、物理層において特定のプロトコルのパケットが破棄され続ける障害を検出することができる。
【００９０】
また、第１実施形態では、閾値Ｘは、ＢＦＤの連続未受信パケット数の閾値よりも小さい値なので、アプリケーション層よりも先に物理層において障害発生を検出することができる。したがって、第１実施形態によれば、物理層よりも先にアプリケーション層において障害発生が検出された場合に発生する通信断を抑制することができる。
【００９１】
＜その他＞
第１実施形態では、スイッチ＃１のアプリケーション層の障害検出を行うプロトコルとして、ＢＦＤを例に説明したが、ＢＦＤに限定されず、所定の周期で送信されるパケットに基づいて障害検出を行うプロトコルであれば、いずれも第１実施形態の技術を適用可能である。
【００９２】
また、第１実施形態では、スイッチ＃１について説明されたが、スイッチ＃０も同様の機能構成を有し、スイッチ＃１と同様の処理を行ってもよい。
【００９３】
＜記録媒体＞
コンピュータその他の機械、装置（以下、コンピュータ等）に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
【００９４】
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる非一時的な記録媒体をいう。このような記録媒体のうちコンピ
ュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ／Ｗ、ＤＶＤ、ブルーレイディスク、ＤＡＴ、８ｍｍテープ、フラッシュメモリなどのメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスク、ＲＯＭ（リードオンリーメモリ）等がある。さらに、ＳＳＤ（Solid State Drive）は、コンピュータ等から取り外し可能な記録媒体としても、コ
ンピュータ等に固定された記録媒体としても利用可能である。
【符号の説明】
【００９５】
１３      破棄チェック部
１４      識別部
１５      処理部
１６      受信パケットカウンタ
１７      未受信監視部
１００    ネットワークシステム
１０１    ＣＰＵ
１０２    メモリ
１０３    ＮＩＣ
１０４    ドロップカウンタ
【図１】
2018014556.tif 000003
【図２】
2018014556.tif 000004
【図３】
2018014556.tif 000005
【図４Ａ】
2018014556.tif 000006
【図４Ｂ】
2018014556.tif 000007
【図５】
2018014556.tif 000008
【図６】
2018014556.tif 000009
【図７】
2018014556.tif 000010
【図８】
2018014556.tif 000011
【図９】
2018014556.tif 000012
【図１０】
2018014556.tif 000013
【図１１】
2018014556.tif 000014
【図１２】
2018014556.tif 000015