(57)【要約】【課題】単純な検証試験では検知できない隠れ障害を検知する。【解決手段】検証グループ登録部１０は、ネットワーク上の検証箇所をグループ化した検証グループを登録する。障害グループ登録部２０は、各検証箇所に発生させる障害をグループ化した障害グループを登録する。シナリオテンプレート登録部３０は、検証グループおよび障害グループの組み合わせごとに障害タイミング条件を関連付ける障害テンプレートを少なくとも一つ含むシナリオテンプレートを登録する。ランダム障害シナリオ作成部４０は、シナリオテンプレート単位で障害テンプレートごとに、その検証グループおよび障害グループからランダムに選択した検証箇所および障害項目を、障害タイミング条件を満足する障害タイミングと関連付けるランダム障害シナリオを作成する。ネットワーク検証実行部５０は、ランダム障害シナリオに基づいて障害をランダムに発生させてネットワーク検証を実行する。【選択図】図１
2018148437.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上の検証箇所をグループ化した検証グループを登録する手段と、
各検証箇所に発生させる障害をグループ化した障害グループを登録する手段と、
前記検証グループおよび障害グループの組み合わせごとに障害タイミング条件を関連付ける障害テンプレートを少なくとも一つ含むシナリオテンプレートを登録する手段と、
シナリオテンプレート６ごとに、検証グループおよび障害グループからランダムに選択した検証箇所および障害項目を、前記障害タイミング条件を満足する障害タイミングと関連付けるランダム障害シナリオを作成する手段と、
前記ランダム障害シナリオに基づいて障害をランダムに発生させてネットワーク検証を実行する手段とを具備したことを特徴とするネットワーク検証装置。
【請求項２】
前記シナリオテンプレートを登録する手段は、複数の障害テンプレートを、その実行順序を定めて登録することを特徴とする請求項１に記載のネットワーク検証装置。
【請求項３】
前記ランダム障害シナリオを作成する手段は、複数の障害テンプレートに関する各ランダム障害シナリオを、前記定められた実行順序で実行されるように作成することを特徴とする請求項２に記載のネットワーク検証装置。
【請求項４】
前記障害タイミング条件が、障害の発生回数および発生間隔を含むことを特徴とする請求項１ないし３のいずれかに記載のネットワーク検証装置。
【請求項５】
前記ランダム障害シナリオを作成する手段は、シナリオテンプレートの障害テンプレートごとに、その障害タイミング条件で指定された障害の発生回数分だけランダム障害シナリオを作成し、各障害の発生間隔として前記障害タイミング条件で指定された発生間隔を登録することを特徴とする請求項４に記載のネットワーク検証装置。
【請求項６】
前記検証グループを登録する手段は、ネットワーク上の各検証箇所を、その機能ごとにグループ化することを特徴とする請求項１ないし５のいずれかに記載のネットワーク検証装置。
【請求項７】
前記検証グループを登録する手段は、ネットワーク上の各検証箇所を、所定のトポロジに属する機能ごとにグループ化することを特徴とする請求項１ないし５のいずれかに記載のネットワーク検証装置。
【請求項８】
ネットワーク上の検証箇所をグループ化した検証グループ、および各検証箇所に発生させる障害をグループ化した障害グループの組み合わせごとに障害タイミング条件を関連付ける障害テンプレートを少なくとも一つ含むシナリオテンプレートを登録し、
シナリオテンプレート単位で障害テンプレートごとに、その検証グループおよび障害グループからランダムに選択した検証箇所および障害項目を、前記障害タイミング条件を満足する障害タイミングと関連付けるランダム障害シナリオを作成し、
前記ランダム障害シナリオに基づいて障害をランダムに発生させてネットワーク検証を実行することを特徴とするネットワーク検証方法。
【請求項９】
ネットワーク上の検証箇所をグループ化した検証グループ、および各検証箇所に発生させる障害をグループ化した障害グループの組み合わせごとに障害タイミング条件を関連付ける障害テンプレートを少なくとも一つ含むシナリオテンプレートを登録する手順と、
シナリオテンプレート単位で障害テンプレートごとに、その検証グループおよび障害グループからランダムに選択した検証箇所および障害項目を、前記障害タイミング条件を満足する障害タイミングと関連付けるランダム障害シナリオを作成する手順と、
前記ランダム障害シナリオに基づいて障害をランダムに発生させてネットワーク検証を実行する手順と、をコンピュータに実行させるネットワーク検証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク検証方法、プログラムおよび装置に係り、特に、単純な検証試験では検知できない隠れた障害を検知できるネットワーク検証方法、プログラムおよび装置に関する。
【背景技術】
【０００２】
ネットワーク検証試験は、一般的なIPネットワークの検証項目として、相互接続試験、負荷試験、障害試験等があり、各試験において検証試験項目策定、検証環境構築、検証実施、検証結果取得／分析作業が必要となる。これらの試験作業を自動で実施し、検証作業効率を向上させるためのシステム開発が非特許文献１に開示されている。
【０００３】
一方、検証試験項目の策定作業は、試験項目策定者等が過去のネットワーク障害の知見、過去の検証項目、新規機能などを基に、検証で確認すべき項目や、障害が発生しそうな項目を洗い出し、これに対して検証を実施する。
【０００４】
非特許文献２には、サーバ機能の検証方法として、仮想インスタンスに障害を与えて隠れた障害を検知する方法が提案されている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】「ホワイトボックススイッチとOSSを活用したネットワークに対する検証自動化システム設計に関する一提案」，信学技報, vol. 116, no. 111, NS2016-34, pp. 35-40, 2016年6月，渋谷、川上、長谷川
【非特許文献２】Chaos Monkey、 Netflix、https://github.com/Netflix/SimianArmy/wiki/The-Chaos-Monkey-Army
【発明の概要】
【発明が解決しようとする課題】
【０００６】
非特許文献１は、試験項目策定者等が過去のネットワーク障害知見、過去の検証項目、新規機能などを基に、検証で確認すべき項目や、障害が発生しそうな項目を洗い出し、これに対して検証を実施する。しかしながら、これらは想定した障害を検証するものであり、想定していない障害に対しては検証が行われないので、隠れた障害を検証できない。
【０００７】
ここで、「隠れた障害」とは、例えばリンクダウン障害をリンクL1，L2，L3に対して当該順序で与えた場合には発生しないがリンクL1，L3，L2の順序で与えた場合には発生する障害、あるいはリンクダウン障害を与える順序同一であっても、障害を与えるタイミングや障害を与える前後の状況により発生したり発生しなかったりする障害である。
【０００８】
非特許文献２によれば、サーバ機器の隠れた障害は検証できるが、これをネットワークの検証へ適用することはできない。
【０００９】
本発明の目的は、上記の技術課題を解決し、ネットワーク検証において単純な検証試験では検知できない隠れた障害を検知できるネットワーク検証方法、プログラムおよび装置を提供することにある。
【課題を解決するための手段】
【００１０】
上記の目的を達成するために、本発明のネットワーク検証装置は、以下の構成を具備した点に特徴がある。
【００１１】
(1) ネットワーク上の検証箇所をグループ化した検証グループを登録する手段と、各検証箇所に発生させる障害をグループ化した障害グループを登録する手段と、検証グループおよび障害グループの組み合わせごとに障害タイミング条件を関連付ける障害テンプレートを少なくとも一つ含むシナリオテンプレートを登録する手段と、シナリオテンプレート単位で障害テンプレートごとに、その検証グループおよび障害グループからランダムに選択した検証箇所および障害項目を、前記障害タイミング条件を満足する障害タイミングと関連付けるランダム障害シナリオを作成する手段と、ランダム障害シナリオに基づいて障害をランダムに発生させてネットワーク検証を実行する手段とを具備した。
【００１２】
(2) シナリオテンプレートを登録する手段は、複数の障害テンプレートを、その実行順序を定めて登録し、前記ランダム障害シナリオを作成する手段は、複数の障害テンプレートに関する各ランダム障害シナリオを、前記定められた実行順序で実行されるように作成するようにした。
【００１３】
(3) ランダム障害シナリオを作成する手段は、シナリオテンプレートの障害テンプレートごとに、その障害タイミング条件で指定された障害の発生回数分だけランダム障害シナリオを作成し、各障害の発生間隔として前記障害タイミング条件で指定された発生間隔を登録するようにした。
【００１４】
(4) 検証グループを登録する手段は、ネットワーク上の各検証箇所を、その機能ごとに、または所定のトポロジに属する機能ごとにグループ化するようにした。
【発明の効果】
【００１５】
本発明によれば、以下のような効果が達成される。
【００１６】
(1) ネットワーク検証において、ランダムに選択した障害箇所へ、ランダムに選択した障害項目を、ランダムに選択したタイミングで、簡単に繰り返し発生させることができる。したがって、当該ネットワークの表面化していない、すなわち隠れた障害を簡単かつ再現性良く検出することが可能となり、ネットワークの信頼性を向上させることができる。
【００１７】
(2) シナリオテンプレートに複数の障害テンプレートを、その実行順序を定めて登録できるので、障害テンプレートの組み合わせが同じで、それらの実行順序が異なる複数のシナリオテンプレートを登録できる。したがって、障害の発生順序に依存する隠れた障害も検証できるようになる。
【００１８】
(3) ランダムに選択する障害箇所の範囲やランダムに選択する障害項目の範囲を予めグループ化できるので、隠れた障害の検証範囲を制限することができ、不要な検証を排除することで検証時間の短縮が可能になる。
【００１９】
(4) 障害箇所をシナリオテンプレートの障害テンプレートごとに重複設定できるので、障害箇所と障害項目との組み合わせの自由度が増加する。
【００２０】
(5) 想定していない問題点が検出されることにより、今後の検証作業の際に検証対象項目として追加することができるので検証性能が向上する。
【図面の簡単な説明】
【００２１】
【図１】本発明の一実施形態に係るネットワーク検証装置の主要部の構成およびその実装環境の例を示した機能ブロック図である。
【図２】ノードグループの登録例を示した図である。
【図３】障害グループの登録例を示した図である。
【図４】シナリオテンプレートの登録例を示した図である。
【図５】ランダム障害シナリオの登録手順および登録例を示した図である。
【発明を実施するための形態】
【００２２】
以下、図面を参照して本発明の実施の形態について詳細に説明する。図1は、本発明の一実施形態に係るネットワーク検証装置１の主要部の構成およびその実装環境の例を示した機能ブロック図であり、ここでは、本発明の説明に不要な構成は図示が省略されている。
【００２３】
ネットワーク検証装置１は、検証対象ネットワークNWの想定し得る様々な検証箇所に対して、想定し得る様々な障害を、所定の期間内および／または所定の回数だけ、所定の順序および間隔でランダムに発生させることで隠れた障害を検知する。このようなネットワーク検証装置１は、汎用のコンピュータやサーバに、後述する各機能を実現するアプリケーション（プログラム）を実装することで構成できる。あるいは、アプリケーションの一部がハードウェア化またはROM化された専用機や単能機とし構成しても良い。
【００２４】
検証グループ登録部１０は、検証対象ネットワークが非常に大きい場合、あるいは特定の範囲（領域）内に限定して隠れた障害を検知したい場合などに、検証箇所を予め絞り込む機能部である。
【００２５】
本実施形態では、検証対象ネットワーク上の想定し得る各検証箇所をその機能ごとにグループ化し、グループごとに所属する検証箇所の識別子を登録する。本実施形態では、ランダムに障害を与えたい検証箇所がその機能に基づいて、(1)インターフェースグループ、(2)ノードグループ、(3)リンクグループの３グループに分類される。
【００２６】
前記インターフェースグループには、検証箇所の候補としてランダム選択対象のインターフェース群が登録される。前記ノードグループには、ランダム選択対象のノード群が登録される。前記リンクグループには、ランダム選択対象のリンク群が登録される。
【００２７】
図２は、前記ノードグループの登録例を示した図であり、ランダムに障害を発生させるグループ要素(ノード)の範囲が、グループ名および検証対象ネットワークのトポロジ識別子と相互に関連付けられて登録されている。
【００２８】
なお、前記インターフェースグループであれば、前記グループ要素の範囲としてランダム選択対象のインターフェース群が登録される。同様に、リンクグループであれば、前記グループ要素の範囲としてランダム選択対象のリンク群が登録される。
【００２９】
このように、本実施形態ではランダムに障害を発生させる障害箇所の範囲を自由に設定できるので、障害箇所の範囲をネットワーク上の所望の一部のトポロジ範囲に限定することも、あるいはネットワークの全範囲とすることも容易である。
【００３０】
障害グループ登録部２０は、検証目的に応じて特定の障害に関する隠れた障害を検知できるように障害項目を予め限定する機能部であり、本実施形態では、各検証箇所に発生させる障害をその内容に基づいてグループ化し、その障害識別子を登録する。
【００３１】
図３は、障害グループの登録例を示した図であり、障害として、インターフェースのup/downを交互に実行する「IF up/down交互」、インターフェースのup/downをランダムに実行する「IF up/downランダム」、ノードの電源をオン／オフする「Node電源ON/OFF」などが登録されている。なお、各障害は検証対象ネットワークに依存しないためネットワーク（トポロジ）との紐づけは不要である。
【００３２】
シナリオテンプレート登録部３０は、前記検証グループおよび障害グループの組み合わせごとに障害の発生タイミング条件を指定する少なくとも一つの障害テンプレートSTを登録する。本実施形態では、前記障害の発生タイミング条件として、障害の発生回数および／または発生間隔が登録される。なお、複数の障害テンプレートSTを登録する際は、その実行順序も指定して登録する。
【００３３】
図４は、シナリオテンプレートにおける障害テンプレートの登録例を示した図である。本実施形態では、検証グループ、障害グループ、障害回数および障害間隔が一つの障害プレートSTを構成し、登録内容の異なる複数の障害テンプレートSTxが、その実行順にランリストとして管理されている。
【００３４】
図示の例では、登録内容の異なる４つの障害テンプレートST1〜ST4が当該順序でランリストに登録されている。各障害テンプレートSTは、検証対象、障害内容および障害間隔を具体的に特定するものでななく、その具体的な内容をランダム選択する範囲を規定するに留まる。
【００３５】
すなわち、各障害テンプレートSTは、検証箇所をランダムに選択する範囲、検証項目をランダムに選択する範囲および検証を実施する回数や間隔に関する条件をシナリオテンプレート単位で障害テンプレートごとに検証シナリオのテンプレートとして提供するものである。
【００３６】
ランダム障害シナリオ作成部４０は、前記シナリオテンプレート登録部３０に登録された障害テンプレートSTごとに、その検証グループおよび障害グループを展開して当該各グループから検証箇所および障害項目をそれぞれ一つずつランダムに選択することを、前記検証タイミング条件として登録された検証回数分だけ繰り返して当該検証回数分のランダム障害シナリオを生成し、さらに各ランダム障害シナリオに対して、前記検証タイミング条件として登録された実行間隔を登録する。
【００３７】
図５は、ランダム障害シナリオの登録手順および登録例を示した図であり、ここでは、ランダム障害シナリオの作成画面上で作業者が入力操作を行うことでランダム障害シナリオを作成する場合を例にして説明する。
【００３８】
ステップＳ１では、所望のシナリオテンプレートが指定される。本実施形態では、シナリオ指定ウインドウにシナリオテンプテート名を入力することで指定が行われる。ステップＳ２において、生成ボタンの操作が行われると、ステップＳ３では、前記指定されたシナリオテンプレートに関して登録されている障害テンプレートSTごとに、その検証グループおよび障害グループが展開され、各グループから検証箇所および障害項目をランダムに選択することで障害シナリオが作成、登録される。
【００３９】
図５は、前記第1障害テンプレートST1を展開して作成されたランダム障害シナリオの一例を示しており、第1障害テンプレートST1では障害発生回数として「１０回」が登録されているので、１０個のランダム障害シナリオが生成されることになる。
【００４０】
また、第1障害テンプレートST1では、障害グループとして「インターフェースdown/up」が指定され、検証グループとして「SW IF」が指定され、障害間隔として「*（ランダム秒）」が指定されている。したがって、第1障害テンプレートST1に関しては、障害グループ「インターフェースdown/up」からランダムに選択した具体的な障害（downまたはup）および検証グループ「SW IF」からランダムに選択した具体的な検証箇所（SW名）を対応付け、さらにランダムに決定した具体的な障害間隔を対応付ける。そして、このような対応付けを障害回数として指定された１０回繰り返すことで１０個のランダム障害シナリオが登録される。
【００４１】
なお、このようにして登録されたランダム障害シナリオの内容は、図５に示したように、その作成画面上で参照することができる。図５では５個のランダム障害シナリオのみが表示されているが、画面を下方へスクロールすることで、第1障害テンプレートST1に関する残り５個のランダム障害シナリオを参照することができる。
【００４２】
そして、本実施形態では上記の各処理が全ての障害テンプレートSTに対して、シナリオテンプレートで指定された実行順に繰り返されるので、第２ないし第４障害テンプレートST2〜SS4に関しても、それぞれ指定された障害回数分のランダム障害シナリオが登録される。これらの登録内容も、画面をさらにスクロールさせることで確認できる。
【００４３】
このようにして作成されたランダム障害シナリオ群は識別子を付して記憶させることもでき、同様の検証を後日再び実施したい場合は、前記識別子を入力することで呼び出すことができる。
【００４４】
ランダム検証実行部５０は、前記ランダム障害シナリオ作成部４０に登録された各ランダム障害シナリオを読み込み、登録順序に従って実行することでネットワークの各障害箇所に対してランダムに障害を与え、これに起因して発生するネットワーク障害を検知して検証を行う。
【符号の説明】
【００４５】
１０…検証グループ登録部，２０…障害グループ登録部，３０…シナリオテンプレート登録部，４０…ランダム障害シナリオ作成部，５０…ランダム検証実行部
【図１】
2018148437.tif 000003
【図２】
2018148437.tif 000004
【図３】
2018148437.tif 000005
【図４】
2018148437.tif 000006
【図５】
2018148437.tif 000007