(57)【要約】      （修正有）【課題】実際に障害が発生した状況と同等の検証をより正確に実現することができるシナリオデータ生成装置、プログラムおよび方法を提供する。【解決手段】記憶部は検証対象のネットワークに含まれる第一部分ネットワーク及び第二部分ネットワークにおいて取得された通信データの情報を記憶する。記憶部から通信データの情報を読み出し、第一部分ネットワークにおいて取得された通信データである第一通信データに記録されている所定の第一同期用メッセージの送信時刻と、第二部分ネットワークにおいて取得された通信データである第二通信データに記録されている所定の第二同期用メッセージの送信時刻とに基づいてオフセット値を算出する。通信データの情報及びオフセット値に基づいて、第一部分ネットワークに設置された第一通信装置と第二部分ネットワークに設置された第二通信装置との動作を他の通信装置において実現するためのシナリオデータを生成する。【選択図】図６
2013197941.tif 000002
【特許請求の範囲】
【請求項１】
検証の対象となるネットワークに含まれる第一部分ネットワークと、前記ネットワークに含まれ且つ前記第一部分ネットワークとは異なる第二部分ネットワークとにおいてそれぞれ取得された通信データの情報を記憶する記憶部と、
前記第一部分ネットワークにおいて取得された通信データである第一通信データに記録されている所定の第一同期用メッセージの送信時刻と、前記第二部分ネットワークにおいて取得された通信データである第二通信データに記録されている所定の第二同期用メッセージの送信時刻と、に基づいてオフセット値を算出する同期設定部と、
前記記憶部に記憶される前記通信データの情報及び前記オフセット値に基づいて、前記第一部分ネットワークに設置された第一通信装置と前記第二部分ネットワークに設置された第二通信装置との動作を他の通信装置において実現するためのシナリオデータを生成するシナリオデータ生成部と、
を備えるシナリオデータ生成装置。
【請求項２】
前記シナリオデータ生成部は、前記第一通信データに記録された時刻と、前記第二通信データに記録された時刻と、が同期させるように前記オフセット値に基づいて前記時刻を変更して前記シナリオデータを生成する、請求項１に記載のシナリオデータ生成装置。
【請求項３】
検証の対象となるネットワークに含まれる第一部分ネットワークと、前記ネットワークに含まれ且つ前記第一部分ネットワークとは異なる第二部分ネットワークとにおいてそれぞれ取得された通信データの情報を記憶する記憶部から前記通信データを取得するステップと、
前記第一部分ネットワークにおいて取得された通信データである第一通信データに記録されている所定の第一同期用メッセージの送信時刻と、前記第二部分ネットワークにおいて取得された通信データである第二通信データに記録されている所定の第二同期用メッセージの送信時刻と、に基づいてオフセット値を算出する同期設定ステップと、
前記記憶部に記憶される前記通信データの情報及び前記オフセット値に基づいて、前記第一部分ネットワークに設置された第一通信装置と前記第二部分ネットワークに設置された第二通信装置との動作を他の通信装置において実現するためのシナリオデータを生成するシナリオデータ生成ステップと、
を備えるシナリオデータ生成方法。
【請求項４】
検証の対象となるネットワークに含まれる第一部分ネットワークと、前記ネットワークに含まれ且つ前記第一部分ネットワークとは異なる第二部分ネットワークとにおいてそれぞれ取得された通信データの情報を記憶する記憶部から前記通信データを取得するステップと、
前記第一部分ネットワークにおいて取得された通信データである第一通信データに記録されている所定の第一同期用メッセージの送信時刻と、前記第二部分ネットワークにおいて取得された通信データである第二通信データに記録されている所定の第二同期用メッセージの送信時刻と、に基づいてオフセット値を算出する同期設定ステップと、
前記記憶部に記憶される前記通信データの情報及び前記オフセット値に基づいて、前記第一部分ネットワークに設置された第一通信装置と前記第二部分ネットワークに設置された第二通信装置との動作を他の通信装置において実現するためのシナリオデータを生成するシナリオデータ生成ステップと、
をコンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークの通信を検証する技術に関する。
【背景技術】
【０００２】
近年、様々な機器が家庭内ネットワーク接続されはじめている。例えば、冷蔵庫やテレビ受像機やゲーム機などの家電機器の中にも、家庭内ネットワークに接続されるものが登場している。また、携帯電話機やスマートフォン等の機器も、基地局装置と無線通信することによって携帯電話網に接続するのみならず、Ｗｉ−Ｆｉ（ワイファイ：wireless fidelity）等の通信規格に応じて無線ＬＡＮ（Local Area Network）等の家庭内ネットワークに接続する。これらの装置は、一般的に情報家電と呼ばれている。
【０００３】
このような情報家電の増大に伴い、家庭内ネットワークにおけるＩＰ系の特異故障が増大している。特に、上述した情報家電やファイル共有ソフトウェアの動作など、レイヤ３以上の事象が多い。家庭内ネットワークに故障が生じた場合には、故障が発生したと推測される位置で通信データをキャプチャし、再現検証を行うことが対策として有効である（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−１９６７０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述したような情報家電の多様化に伴い、実際に障害が発生した状況と同等の検証用システムを構築して再現検証を実施することが困難になってきている。そのため、再現検証の精度が低下してしまい、障害の原因究明や復旧などの対策に時間を要してしまうという問題があった。
上記事情に鑑み、本発明は、実際に障害が発生した状況と同等の検証用システムをより正確に実現することを可能とする技術の提供を目的としている。
【課題を解決するための手段】
【０００６】
本発明の一態様は、検証の対象となるネットワーク（例えば、実施形態におけるネットワークシステム１）に含まれる第一部分ネットワーク（例えば、実施形態におけるＷＡＮ側ネットワーク１００）と、前記ネットワークに含まれ且つ前記第一部分ネットワークとは異なる第二部分ネットワーク（例えば、実施形態におけるＬＡＮ側ネットワーク２００）とにおいてそれぞれ取得された通信データ（例えば、実施形態におけるログデータ）の情報を記憶する記憶部（例えば、実施形態におけるログ記憶部３０１）と、前記第一部分ネットワークにおいて取得された通信データである第一通信データ（例えば、実施形態における第一ログ）に記録されている所定の第一同期用メッセージ（例えば、実施形態における第一同期用メッセージ）の送信時刻と、前記第二部分ネットワークにおいて取得された通信データである第二通信データ（例えば、実施形態における第二ログ）に記録されている所定の第二同期用メッセージ（例えば、実施形態における第二同期用メッセージ）の送信時刻と、に基づいてオフセット値（例えば、実施形態におけるオフセット値Ｖｏｆｆ）を算出する同期設定部（例えば、実施形態における同期設定部３１０）と、前記記憶部に記憶される前記通信データの情報及び前記オフセット値に基づいて、前記第一部分ネットワークに設置された第一通信装置と前記第二部分ネットワークに設置された第二通信装置との動作を他の通信装置（例えば、実施形態におけるネットワークエミュレータ３３０）において実現するためのシナリオデータ（例えば、実施形態におけるシナリオデータ３２０）を生成するシナリオデータ生成部（例えば、実施形態におけるシナリオデータ生成部３１１）と、を備えるシナリオデータ生成装置（例えば、実施形態におけるシナリオデータ生成装置３００）である。
【０００７】
本発明の一態様は、上記のシナリオデータ生成装置であって、前記シナリオデータ生成部は、前記第一通信データに記録された時刻と、前記第二通信データに記録された時刻と、が同期させるように前記オフセット値に基づいて前記時刻を変更して前記シナリオデータを生成する。
【０００８】
本発明の一態様は、検証の対象となるネットワークに含まれる第一部分ネットワークと、前記ネットワークに含まれ且つ前記第一部分ネットワークとは異なる第二部分ネットワークとにおいてそれぞれ取得された通信データの情報を記憶する記憶部から前記通信データを取得するステップと、前記第一部分ネットワークにおいて取得された通信データである第一通信データに記録されている所定の第一同期用メッセージの送信時刻と、前記第二部分ネットワークにおいて取得された通信データである第二通信データに記録されている所定の第二同期用メッセージの送信時刻と、に基づいてオフセット値を算出する同期設定ステップと、前記記憶部に記憶される前記通信データの情報及び前記オフセット値に基づいて、前記第一部分ネットワークに設置された第一通信装置と前記第二部分ネットワークに設置された第二通信装置との動作を他の通信装置において実現するためのシナリオデータを生成するシナリオデータ生成ステップと、を備えるシナリオデータ生成方法である。
【０００９】
本発明の一態様は、検証の対象となるネットワークに含まれる第一部分ネットワークと、前記ネットワークに含まれ且つ前記第一部分ネットワークとは異なる第二部分ネットワークとにおいてそれぞれ取得された通信データの情報を記憶する記憶部から前記通信データを取得するステップと、前記第一部分ネットワークにおいて取得された通信データである第一通信データに記録されている所定の第一同期用メッセージの送信時刻と、前記第二部分ネットワークにおいて取得された通信データである第二通信データに記録されている所定の第二同期用メッセージの送信時刻と、に基づいてオフセット値を算出する同期設定ステップと、前記記憶部に記憶される前記通信データの情報及び前記オフセット値に基づいて、前記第一部分ネットワークに設置された第一通信装置と前記第二部分ネットワークに設置された第二通信装置との動作を他の通信装置において実現するためのシナリオデータを生成するシナリオデータ生成ステップと、をコンピュータに実行させるためのコンピュータプログラムである。
【発明の効果】
【００１０】
本発明により、実際に障害が発生した状況と同等の検証用システムをより正確に実現することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】ネットワークシステムの具体例を表すシステム構成図である。
【図２】ネットワークシステムの動作の一例を示すシーケンス図である。
【図３】ネットワークシステムの動作の一例を示すシーケンス図である。
【図４】検証用システムにおける障害の再現検証の前処理の概略を表す図である。
【図５】検証用システムの具体例を表す図である。
【図６】シナリオデータ生成装置の機能構成を表す概略ブロック図である。
【図７】ノードリストの具体例を表す図である。
【図８】セッションリストの具体例を表す図である。
【図９】メッセージリストの具体例を表す図である。
【図１０】オフセット値Ｖｏｆｆの具体例を示す図である。
【図１１】シナリオデータ生成部によって生成されるシナリオデータのシーケンスの具体例を示す図である。
【図１２】シナリオデータ生成装置によるシナリオデータ作成処理を表すフローチャートである。
【発明を実施するための形態】
【００１２】
図１は、ネットワークシステム１の具体例を表すシステム構成図である。ネットワークシステム１は、ホームゲートウェイ装置（ＨＧＷ：Home GateWay）１０を境界として、ＷＡＮ（Wide Area Network）側ネットワーク１００と、ＬＡＮ（Local Area Network）側ネットワーク２００とに分けられる。ＷＡＮ側ネットワーク１００は、ＩＳＰ（Internet Service Provider）網１０１、ＲＡＳ（Remote Access Service）サーバ１０２、アクセス網１０３を備える。ＬＡＮ側ネットワーク２００は、ルータ２０１、第一端末２０２、第二端末２０３を備える。
【００１３】
ＩＳＰ網１０１はインターネットに接続されており、ＩＳＰ網１０１には様々なサーバが設置されている。例えば、ＨＴＴＰ（HyperText Transfer Protocol）サーバ、ＤＮＳ（Domain Name System）サーバなどがＩＳＰ網１０１に設置されている。ＲＡＳサーバ１０２は、ＩＳＰ網１０１とアクセス網１０３との間に設置されている。ＲＡＳサーバ１０２は、アクセス網１０３を介してＨＧＷ１０と通信し、ＨＧＷ１０とＩＳＰ網１０１との間の通信を中継する。アクセス網１０３は、例えば光通信ケーブルや電話回線などを用いて構成され、ＲＡＳサーバ１０２と家庭や事業所などに設けられたＬＡＮ側ネットワーク２００とを接続する。
【００１４】
ＬＡＮ側ネットワーク２００は、ＨＧＷ１０を介してＷＡＮ側ネットワーク１００（事業者通信網）に接続される。ルータ２０１は、ＬＡＮ側ネットワーク２００においてパケットを中継する。第一端末２０２及び第二端末２０３は、パーソナルコンピュータ、スマートフォン、ゲーム装置、家電装置、テレビ受像機などの情報処理装置である。第一端末２０２及び第二端末２０３は、通信機能を備えており、ＬＡＮ側ネットワーク２００に接続されている。第一端末２０２及び第二端末２０３は、ＨＧＷ１０を介してＩＳＰ網１０１のサーバと通信する。
【００１５】
図２及び３は、ネットワークシステム１の動作の一例を示すシーケンス図である。まず、図２に示されるシーケンスについて説明する。まず、ＨＧＷ１０とＲＡＳサーバ１０２とが互いに通信し、リンク確立シーケンスの処理を行う（ステップＳ１０１）。リンク確立シーケンスの完了によって、ＬＡＮ側ネットワーク２００がＷＡＮ側ネットワーク１００に接続される。この後、第一端末２０２及び第二端末２０３は、ＩＳＰ網１０１に接続されたＤＮＳサーバやＨＴＴＰサーバと通信することが可能となる。
【００１６】
図２のＳ１０２〜Ｓ１１２の処理は、第二端末２０３がＨＴＴＰサーバと通信する際のシーケンスである。このシーケンスが行われる際には、ＨＧＷ１０はＲＡＳサーバ１０２に接続された直後であるため、ＨＧＷ１０はＨＴＴＰサーバのアドレスを記憶していない。
【００１７】
まず、第二端末２０３は、ＨＴＴＰサーバの名前解決を行うため、ＨＧＷ１０に対してＤＮＳ  ｑｕｅｒｙを送信する（ステップＳ１０２）。上述したように、この時点ではＨＧＷ１０はＨＴＴＰサーバのアドレスを記憶していない。そのため、ＨＧＷ１０は、ＨＴＴＰサーバのアドレスを問い合わせるために、ＤＮＳサーバに対してＤＮＳ  ｑｕｅｒｙを送信する（ステップＳ１０３）。ＤＮＳサーバは、ＤＮＳ  ｑｕｅｒｙに応じて、ＨＴＴＰサーバのアドレスを含むＤＮＳ  ｒｅｓｐｏｎｓｅをＨＧＷ１０に返送する（ステップＳ１０４）。ＨＧＷ１０は、ＤＮＳサーバからＤＮＳ  ｒｅｓｐｏｎｓｅを受信すると、自信が記憶するＤＮＳテーブルに、ＨＴＴＰサーバの名前とアドレスとを対応付けて追加登録する（ステップＳ１０５）。そして、ＨＧＷ１０は、受信したＤＮＳ  ｒｅｓｐｏｎｓｅに基づいて、第二端末２０３に対しＤＮＳ  ｒｅｓｐｏｎｓｅを送信する（ステップＳ１０６）。以上のシーケンスにより、第二端末２０３は、ＨＴＴＰサーバのアドレスを取得する。
【００１８】
次に、第二端末２０３は、取得したＨＴＴＰサーバのアドレスを用いて、ＨＴＴＰ  ｇｅｔ  ｒｅｑｕｅｓｔを生成し、ＨＧＷ１０へ送信する（ステップＳ１０７）。ＨＧＷ１０は、受信したＨＴＴＰ  ｇｅｔ  ｒｅｑｕｅｓｔをＨＴＴＰサーバへ転送する（ステップＳ１０８）。このとき、ＨＧＷ１０は、自信が記憶するＮＡＴテーブルに、第二端末２０３とＨＴＴＰサーバとの通信を登録する（ステップＳ１０９）。ＨＴＴＰサーバは、ＨＴＴＰ  ｇｅｔ  ｒｅｑｕｅｓｔを受信すると、ＨＴＴＰ  ｒｅｓｐｏｎｓｅを生成しＨＧＷ１０に返送する（ステップＳ１１０）。ＨＧＷ１０は、ＨＴＴＰ  ｒｅｓｐｏｎｓｅを受信すると、ＮＡＴテーブルを検索してＨＴＴＰ  ｒｅｓｐｏｎｓｅの転送先を判定する（ステップＳ１１１）。転送先は第二端末２０３であるため、ＨＧＷ１０は、受信したＨＴＴＰ  ｒｅｓｐｏｎｓｅを第二端末２０３に転送する（ステップＳ１１２）。
【００１９】
図３のＳ２０１〜Ｓ２０９の処理は、第一端末２０２がＨＴＴＰサーバと通信する際のシーケンスである。このシーケンスが行われる際には、ＨＧＷ１０はＤＮＳテーブルにＨＴＴＰサーバのアドレスを既に登録している。
まず、第一端末２０２は、ＨＴＴＰサーバの名前解決を行うため、ＨＧＷ１０に対してＤＮＳ  ｑｕｅｒｙを送信する（ステップＳ２０１）。上述したように、この時点で既にＨＧＷ１０はＨＴＴＰサーバのアドレスを記憶している。そのため、ＨＧＷ１０は、ＤＮＳテーブルを検索してＨＴＴＰサーバのアドレスを取得する（ステップＳ２０２）。ＨＧＷ１０は、取得したアドレスに基づいてＤＮＳ  ｒｅｓｐｏｎｓｅを生成し、第一端末２０２に対し送信する（ステップＳ２０３）。以上のシーケンスにより、第一端末２０２は、ＨＴＴＰサーバのアドレスを取得する。
【００２０】
次に、第一端末２０２は、取得したＨＴＴＰサーバのアドレスを用いて、ＨＴＴＰ  ｇｅｔ  ｒｅｑｕｅｓｔを生成し、ＨＧＷ１０へ送信する（ステップＳ２０４）。ＨＧＷ１０は、受信したＨＴＴＰ  ｇｅｔ  ｒｅｑｕｅｓｔをＨＴＴＰサーバへ転送する（ステップＳ２０５）。このとき、ＨＧＷ１０は、自信が記憶するＮＡＴテーブルに、第一端末２０２とＨＴＴＰサーバとの通信を登録する（ステップＳ２０６）。ＨＴＴＰサーバは、ＨＴＴＰ  ｇｅｔ  ｒｅｑｕｅｓｔを受信すると、ＨＴＴＰ  ｒｅｓｐｏｎｓｅを生成しＨＧＷ１０に返送する（ステップＳ２０７）。ＨＧＷ１０は、ＨＴＴＰ  ｒｅｓｐｏｎｓｅを受信すると、ＮＡＴテーブルを検索してＨＴＴＰ  ｒｅｓｐｏｎｓｅの転送先を判定する（ステップＳ２０８）。転送先は第一端末２０２であるため、ＨＧＷ１０は、受信したＨＴＴＰ  ｒｅｓｐｏｎｓｅを第一端末２０２に転送する（ステップＳ２０９）。
【００２１】
以上のシーケンスが、ネットワークシステム１で行われる。次に、検証用システム３について説明する。検証用システム３は、ネットワークシステム１に設定された複数のキャプチャポイントでキャプチャされたパケットに基づいて、ネットワークシステム１に関する検証を行う。以下の説明では、ＨＧＷ１０においてなんらかの通信障害が生じている場合を想定する。
【００２２】
図４は、検証用システム３における障害の再現検証の前処理の概略を表す図である。まず、再現検証の対象となっているネットワークシステム１において、パケットのキャプチャが行われる。キャプチャポイントは、例えば検証の対象となる装置に接続される通信路に設定される。検証の対象となる装置に複数の通信路が接続されている場合、通信路毎にキャプチャポイントが設定されるため、複数のキャプチャポイントが必要となる。すなわち、検証の対象となっている装置を境界として、検証の対象となったネットワークシステム１が複数の部分ネットワークに分割され、各部分ネットワークに対してキャプチャポイントが設定される。
【００２３】
図１のネットワークシステム１では、ＨＧＷ１０が検証の対象となる装置であるため、ＨＧＷ１０に接続される各通信路にキャプチャポイントが設定されている。第一キャプチャポイント８０−１及び第二キャプチャポイント８０−２においてパケットのキャプチャが行われる。パケットのキャプチャを行う際には、ネットワークシステム１を動作させる必要がある。例えば、図２及び図３に示すシーケンスをネットワークシステム１に実行させ、キャプチャを行う。キャプチャされたパケットのデータ（以下、「ログ」という。）は、例えばｐｃａｐ形式のデータやｃａｐ形式のデータとして保存される。以下の説明では、第一キャプチャポイント８０−１でキャプチャされたログを第一ログと呼び、第二キャプチャポイント８０−２でキャプチャされたログを第二ログと呼ぶ。
【００２４】
次に、第一ログ及び第二ログに基づいてシナリオデータ生成装置３００がシナリオデータ３２０を生成する。シナリオデータ３２０は、ネットワークエミュレータ３３０によって実行されるデータである。シナリオデータ３２０は、検証用システム３において実際には設置されない装置（以下、「非検証装置」という。）の動作を、検証用システム３において模擬的に実現するためのデータである。シナリオデータ３２０には、非検証装置の動作のうち、通信に関わる動作が定義されている。シナリオデータ３２０には、例えば各非検証装置によって生成されるパケットの内容及びパケットの送信タイミングが定義されている。ネットワークエミュレータ３３０は、シナリオデータ３２０に従って、非検証装置としてパケットを生成して送信する。
【００２５】
図５は、検証用システム３の具体例を表す図である。検証用システム３は、通信に関する障害が生じている装置を検証するためのシステムである。図５に示される検証用システム３は、ＨＧＷ１０に生じている通信障害を検証するためのシステムである。
【００２６】
ネットワークエミュレータ３３０は、ネットワークインタフェースを介して、再現検証の対象となっている装置（ＤＵＴ：Device Under Test）と物理的に接続される。ネットワークインタフェースとは、例えば物理ＮＩＣ（Network Interface Card）である。ＤＵＴとは、再現検証を行う際に実際の装置として検証用システム３に設置される装置であり、本実施形態の具体例ではＨＧＷ１０である。ＤＵＴがＨＧＷ１０のように複数のネットワークインタフェースを備える装置である場合、ネットワークエミュレータ３３０も複数のネットワークインタフェースを備える。図３の場合、ＨＧＷ１０は２つのネットワークインタフェースを備えており、ネットワークエミュレータ３３０も２つのネットワークインタフェースを備えている。そのため、１台のネットワークエミュレータ３３０で、複数のネットワーク（図３の場合、ＷＡＮ側ネットワーク１００及びＬＡＮ側ネットワーク２００）の動作を実現できる。
【００２７】
ネットワークエミュレータ３３０は、ＤＵＴが接続されたネットワークに対し、シナリオデータ３２０に応じたパケットをシナリオデータ３２０に応じたタイミングで送信する。すなわち、ネットワークエミュレータ３３０は、ネットワークシステム１における非検証装置（ルータ２０１、第一端末２０２、第二端末２０３、ＲＡＳサーバ１０２、ＩＳＰ網１０１に接続された装置）が生成するパケットと同等のパケットを生成し、検証用システム３のＤＵＴに送信する。このようにして、ネットワークシステム１における障害の再現検証を検証用システム３において行うことができる。
【００２８】
図６は、シナリオデータ生成装置３００の機能構成を表す概略ブロック図である。シナリオデータ生成装置３００は、バスで接続されたＣＰＵ（Central Processing Unit）やメモリや補助記憶装置などを備え、シナリオデータ生成プログラムを実行する。シナリオデータ生成装置３００は、シナリオデータ生成プログラムを実行することによって、ログ記憶部３０１、ノードリスト記憶部３０２、ノードリスト生成部３０３、セッションリスト記憶部３０４、セッションリスト生成部３０５、メッセージリスト記憶部３０６、メッセージリスト生成部３０７、入力部３０８、表示部３０９、同期設定部３１０、シナリオデータ生成部３１１を備える装置として機能する。
【００２９】
ログ記憶部３０１は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。ログ記憶部３０１は、第一キャプチャポイント８０−１においてキャプチャされた第一ログと、第二キャプチャポイント８０−２でキャプチャされた第二ログと、を記憶する。第一ログ及び第二ログは、キャプチャされたパケットのヘッダ情報及びペイロードを記録したデータである。
【００３０】
ノードリスト記憶部３０２は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。ノードリスト記憶部３０２は、ノードリストを記憶する。ノードリストは各ノードに関する情報を表す。ノードとは、ネットワークシステム１や検証用システム３に配置された通信装置である。例えば、第一端末２０２、第二端末２０３、ＨＧＷ１０、ＲＡＳサーバ１０２、ＩＳＰ網１０１の装置（例えば、ＤＮＳサーバ、ＨＴＴＰサーバ）等がそれぞれノードに相当する。
【００３１】
図７は、ノードリストの具体例を表す図である。図７の例では、ノードリストは各ノードに関してノードＩＤ、ノード種別、ＭＡＣアドレス（Media Access Control address）、製造者、ＩＰアドレス（Internet Protocol address）の各情報を対応付けてノード毎に記憶する。ノードＩＤは、各ノードに割り当てられた識別情報である。ノード種別は、ノードの種別を表す情報である。ノード種別は、例えばそのノードがＤＵＴであるかＶＭであるかを表す。ＶＭとは、ネットワークエミュレータ３３０によって模擬的に実現される非検証装置を表す。ＭＡＣアドレスは、そのノードに付与されているＭＡＣアドレスを表す。製造者は、そのノードの製造者を表す。ＩＰアドレスは、そのノードに付与されているＩＰアドレスを表す。
【００３２】
図６に戻って説明を続ける。ノードリスト生成部３０３は、ログ記憶部３０１に記憶されているログを読み出し、ログにおいてパケットを送信又は受信したノードに関する情報を取得する。例えば、ログに記録されている各パケットのヘッダに記録された送信元アドレスや送信先アドレスを参照することによって、ノードリスト生成部３０３は各ノードに関する情報を取得する。そして、ノードリスト生成部３０３は、取得した各ノードに関する情報に基づいてノードリストを生成する。ノードリスト生成部３０３は、第一ログに基づいて第一ノードリストを生成し、第二ログに基づいて第二ノードリストを生成する。ノードリスト生成部３０３は、生成したノードリスト（第一ノードリスト及び第二ノードリスト）をノードリスト記憶部３０２に書き込む。
【００３３】
セッションリスト記憶部３０４は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。セッションリスト記憶部３０４は、セッションリストを記憶する。セッションリストは各セッションに関する情報を表す。セッションリストとは、ネットワークシステム１に配置された通信装置同士の通信におけるセッションの情報である。
【００３４】
図８は、セッションリストの具体例を表す図である。図８の例では、セッションリストは各セッションに関してセッションＩＤ、Ｆｒｏｍ−ａｄｄｒｅｓｓ、Ｆｒｏｍ−ｐｏｒｔ、Ｔｏ−ａｄｄｒｅｓｓ、Ｔｏ−ｐｏｒｔの各情報を対応付けてセッション毎に記憶する。セッションＩＤは、各セッションに割り当てられた識別情報である。Ｆｒｏｍ−ａｄｄｒｅｓｓは、そのセッションにおける送信元のノードのＩＰアドレスを表す。Ｆｒｏｍ−ｐｏｒｔは、そのセッションにおける送信元のポート番号を表す。Ｔｏ−ａｄｄｒｅｓｓは、そのセッションにおける送信先のノードのＩＰアドレスを表す。Ｔｏ−ｐｏｒｔは、そのセッションにおける送信先のポート番号を表す。
【００３５】
図６に戻って説明を続ける。セッションリスト生成部３０５は、ログ記憶部３０１に記憶されているログを読み出し、ログに含まれるＴＣＰ（Transmission Control Protocol）セッション及びＵＤＰ（User Datagram Protocol）セッションに関する情報を取得する。そして、セッションリスト生成部３０５は、取得した各セッションに関する情報に基づいてセッションリストを生成する。セッションリスト生成部３０５は、第一ログに基づいて第一セッションリストを生成し、第二ログに基づいて第二セッションリストを生成する。セッションリスト生成部３０５は、生成したセッションリスト（第一セッションリスト及び第二セッションリスト）をセッションリスト記憶部３０４に書き込む。
【００３６】
メッセージリスト記憶部３０６は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。メッセージリスト記憶部３０６は、メッセージリストを記憶する。メッセージリストとは、ネットワークシステム１に配置された通信装置同士の通信におけるメッセージのペイロード及びセッションに関する情報を集めたリストである。ただし、メッセージリストは、ＤＨＣＰ（Dynamic Host Configuration Protocol）メッセージ、ペイロードを含まないＴＣＰメッセージ、データ部を含まないＵＤＰメッセージに関する情報を含まない。
【００３７】
図９は、メッセージリストの具体例を表す図である。図９の例では、メッセージリストは各メッセージに関してメッセージＩＤ、メッセージ種別、セッションＩＤ、送信時刻の各情報を対応付けてメッセージ毎に記憶する。メッセージＩＤは、各メッセージに割り当てられた識別情報である。メッセージ種別は、そのメッセージの種別であり、例えば“ＤＮＳ  ｑｕｅｒｙ”や“ＨＴＴＰ  ｇｅｔ  ｒｅｑｕｅｓｔ”などである。送信時刻は、そのメッセージが送信された時刻を表す。ペイロードは、ペイロードのデータを表す。
【００３８】
図６に戻って説明を続ける。メッセージリスト生成部３０７は、ログ記憶部３０１に記憶されているログを読み出し、ログに含まれるＴＣＰメッセージ及びＵＤＰメッセージに関する情報を取得する。そして、メッセージリスト生成部３０７は、取得した各メッセージに基づいてメッセージリストを生成する。メッセージリスト生成部３０７は、第一ログに基づいて第一メッセージリストを生成し、第二ログに基づいて第二メッセージリストを生成する。メッセージリスト生成部３０７は、生成したメッセージリスト（第一メッセージリスト及び第二メッセージリスト）をメッセージリスト記憶部３０６に書き込む。
【００３９】
入力部３０８は、キーボード、ポインティングデバイス（マウス、タブレット等）、ボタン、タッチパネル等の既存の入力装置を用いて構成される。入力部３０８は、同期メッセージを同期設定部３１０に入力する際などに操作者によって操作される。
表示部３０９は、ＣＲＴ（Cathode Ray Tube）ディスプレイ、液晶ディスプレイ、有機ＥＬ（Electro Luminescence）ディスプレイ等の画像表示装置を用いて構成され、同期設定画面を表示する。
【００４０】
同期設定部３１０は、同期設定画面を表示部３０９に表示させる。同期設定画面は、第一ログにおけるシーケンス（以下、「第一シーケンス」という。）と、第二ログにおけるシーケンス（以下、「第二シーケンス」という。）と、を同期させる操作を行うための画面である。操作者は、表示部３０９に表示された同期設定画面の表示内容に応じて入力部３０８を操作し、第一シーケンス中の同期用メッセージ（以下、「第一同期用メッセージ」という。）と、第二シーケンス中の同期用メッセージ（以下、「第二同期用メッセージ」という。）と、を指定する。同期設定部３１０は、第一同期用メッセージと第二同期用メッセージとが所定の時間差で送信されたこととなるように、第一ログ又は第二ログにおけるタイムスタンプのオフセット値を算出する。例えば、同期設定部３１０は以下の数式でオフセット値Ｖｏｆｆを算出する。
Ｖｏｆｆ＝ＭＴ１−ＭＴ２−Ｔ１２  ・・・（式１）
同期設定部３１０は、算出したオフセット値をシナリオデータ生成部３１１に出力する。
【００４１】
図１０は、オフセット値Ｖｏｆｆの具体例を示す図である。図１０において、第二端末がＨＧＷ１０に対して時刻ＭＴ２に送信しているメッセージ“ｐｉｎｇ”が第二同期用メッセージである。図１０において、ＨＧＷ１０がＲＡＳサーバ１０２に対して時刻ＭＴ１に送信しているメッセージ“ｐｉｎｇ”が第一同期用メッセージである。ＨＧＷ１０においてｐｉｎｇの中継処理に要する時間がＴ１２である。Ｔ１２の値は、予めネットワークシステム１において測定することによって得られても良いし、理論値が適用されても良いし、一般的に想定される値が適用されても良い。例えば、ｐｉｎｇの中継には殆ど時間を要しないため、Ｔ１２の値にゼロが適用されても良い。
【００４２】
図１０から明らかなように、式１によって算出されたオフセット値Ｖｏｆｆの時間だけ、第一メッセージリストの各メッセージの送信時刻を早めることによって、第一ログと第二ログとの同期をとることが可能となる。
シナリオデータ生成部３１１は、ノードリスト記憶部３０２に記憶されたノードリストと、セッションリスト記憶部３０４に記憶されたセッションリストと、メッセージリスト記憶部３０６に記憶されたメッセージリストと、オフセット値とに基づいてシナリオデータ３２０を生成する。シナリオデータ生成部３１１は、生成したシナリオデータ３２０をネットワークエミュレータ３３０に出力する。以下、シナリオデータ生成部３１１の処理の具体例について説明する。
【００４３】
シナリオデータ生成部３１１は、第一ノードリストの中からＶＭとして設定されたノード（通信装置）を検索し、ＶＭが行う通信の内容を第一セッションリストに基づいて判断する。また、シナリオデータ生成部３１１は、第一セッションリストに基づいて判断した各通信において送受信するメッセージの内容を、第一メッセージリストに基づいて判断する。また、シナリオデータ生成部３１１は、第一メッセージリストこれらの判断に基づいて、シナリオデータ生成部３１１は第一シナリオデータを生成する。シナリオデータ生成部３１１は、第一シナリオデータを生成する際に、第一ログの各メッセージの時刻をオフセット値Ｖｏｆｆの時間だけ早めることによって、第一ログと第二ログとの同期をとる。図１１は、シナリオデータ生成部３１１によって生成されるシナリオデータのシーケンスの具体例を示す図である。図１１のシーケンスでは、図１０に示されるシーケンスに比べて、第一ログに記録された各メッセージの送信時刻がオフセット値Ｖｏｆｆの時間だけ早められている。
【００４４】
シナリオデータ生成部３１１は、第二ノードリストの中からＶＭとして設定されたノード（通信装置）を検索し、ＶＭが行う通信の内容を第二セッションリストに基づいて判断する。また、シナリオデータ生成部３１１は、第二セッションリストに基づいて判断した各通信において送受信するメッセージの内容を、第二メッセージリストに基づいて判断する。これらの判断に基づいて、シナリオデータ生成部３１１は第二シナリオデータを生成する。
なお、シナリオデータ３２０の具体的なコードや構造は、ネットワークエミュレータ３３０で動作するソフトウェア等の規格に準じて決定される。
また、第一ログ及び第二ログを各キャプチャポイントにて記録する際に、第二端末２０３が時刻ＭＴ１にｐｉｎｇ（第二同期用メッセージ）をＷＡＮ側ネットワーク１００に接続された装置（例えばＲＡＳサーバ１０２）に対して送信するように設定されている。このような設定は、ログの記録を行う操作者などによって行われる。
【００４５】
図１２は、シナリオデータ生成装置３００によるシナリオデータ作成処理を表すフローチャートである。まず、セッションリスト生成部３０５がセッションリストを生成しセッションリストをセッションリスト記憶部３０４に書き込む（ステップＳ３０１）。同様に、ノードリスト生成部３０３及びメッセージリスト生成部３０７がそれぞれノードリスト及びメッセージリストを生成し、それぞれノードリスト記憶部３０２及びメッセージリスト記憶部３０６に書き込む。
【００４６】
次に、同期設定部３１０が、セッションリスト記憶部３０４に記憶されているセッションリストに基づいて、同期設定画面を表示部３０９に表示する（ステップＳ３０２）。同期設定画面には、例えば図１０に示されるように、複数のログにおけるシーケンスを表すチャートが表示される。図１０の場合、第一ログにおけるシーケンスと第二ログにおけるシーケンスとが同一画面上に並べて表示される。操作者が入力部３０８を操作して第一同期用メッセージ及び第二同期用メッセージの指定を行うまで、同期設定部３１０は待機する（ステップＳ３０３−ＮＯ）。第一同期用メッセージ及び第二同期用メッセージの指定があると（ステップＳ３０３−ＹＥＳ）、同期設定部３１０は指定された二つのメッセージに応じてオフセット値を算出する（ステップＳ３０４）。そして、同期設定部３１０は、算出したオフセット値をシナリオデータ生成部３１１に出力する。
【００４７】
シナリオデータ生成部３１１は、受信したオフセット値、ノードリスト、セッションリスト、メッセージリストに基づいて、シナリオデータ３２０を生成する（ステップＳ３０５）。シナリオデータ生成部３１１は、生成したシナリオデータ３２０を、ネットワークエミュレータ３３０に出力する。このとき、シナリオデータ生成部３１１は、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭやフラッシュメモリ等の記録媒体にシナリオデータ３２０を書き込むことによってシナリオデータ３２０を出力しても良い。また、シナリオデータ生成部３１１は、ネットワークを介してネットワークエミュレータ３３０にシナリオデータ３２０を送信することによってシナリオデータ３２０を出力しても良い。このように、シナリオデータ３２０の出力の方法は問わない。
【００４８】
シナリオデータ生成装置３００を用いてシナリオデータ３２０を生成することによって、実際に障害が発生した状況と同等の検証用システムをより正確に実現することが可能となる。以下、この効果について詳細に説明する。
一般的に、ログには各メッセージの送信タイミングとして送信時刻が記録されており、シナリオデータでは送信時刻にしたがって各メッセージの送信タイミングが設定されている。しかしながら、複数のキャプチャポイントでログを記録する場合には、各キャプチャポイントでログを記録する装置に設定されている時刻に基づいて各ログが記録されるため、各ログの間で同期がとれていないおそれがある。特に、ネットワークの高速化に伴い、各メッセージが送受信される間隔は非常に短いため、同期がとれていないとメッセージの送信順序がずれてしまうおそれがある。
【００４９】
このような問題に対し、シナリオデータ生成装置３００では、第一同期用メッセージ及び第二同期用メッセージの指定を受けることによって、それぞれ異なるキャプチャポイントで記録されたログ（第一ログ及び第二ログ）同士の時刻を同期させることが可能となる。そのため、実際に障害が発生した状況と同等の検証用システムをより正確に実現することが可能となる。
【００５０】
＜変形例＞
シナリオデータ生成部３１１は、第二メッセージリストの各メッセージの送信時刻をオフセット値Ｖｏｆｆの時間だけ遅くすることによって第一ログと第二ログとの同期をとっても良い。
第一同期用メッセージ及び第二同期用メッセージは、ＬＡＮ側ネットワーク２００とＷＡＮ側ネットワーク１００との間で同期をとることが可能なメッセージであればどのように構成されていても良い。したがって、第一同期用メッセージ及び第二同期用メッセージの送信元装置、メッセージの内容、送信先装置は上述した具体例に限定される必要は無い。
シナリオデータ生成装置３００は、ログ記憶部３０１、ノードリスト記憶部３０２、セッションリスト記憶部３０４、メッセージリスト記憶部３０６の全て又はいずれか一部が外部装置として構成されても良い。
【００５１】
同期設定部３１０は、入力部３０８を介して入力される操作者の指定に関わらず、予め設定されたメッセージを第一同期用メッセージ及び第二同期用メッセージとして選択しても良い。この場合、同期設定部３１０には、予め第一同期用メッセージ及び第二同期用メッセージのメッセージ種別など、第一同期用メッセージ及び第二同期用メッセージを特定するための情報が設定されている。同期設定部３１０は、予め設定されている情報に基づいて、第一ログから第一同期用メッセージを選択し、第二ログから第二同期用メッセージを選択する。そして、同期設定部３１０は、選択した第一同期用メッセージの送信時刻及び第二同期用メッセージの送信時刻に基づいてオフセット値を算出する。このように構成された場合、同期設定部３１０は、同期設定画面を表示部３０９に表示する必要が無い。したがって、シナリオデータ生成装置３００は、入力部３０８及び表示部３０９を備えないように構成されても良い。
【００５２】
検証の対象となる装置の具体例として、ネットワークシステム１に接続されたＨＧＷ１０を示したが、検証の対象はこれに限定されない。検証の対象は、上述したように単一の通信装置であっても良いし、複数の通信装置によって構成されるネットワークであっても良い。また、ネットワークシステム１の構成は、図１に示したものに限定される必要は無い。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【００５３】
１…ネットワークシステム，  ３…検証用システム，  １０…ＨＧＷ，  １００…ＷＡＮ側ネットワーク，  ２００…ＬＡＮ側ネットワーク，  １０１…ＩＳＰ網，  １０２…ＲＡＳサーバ，  １０３…アクセス網，  ２０１…ルータ，  ２０２…第一端末，  ２０３…第二端末，  ８０−１…第一キャプチャポイント，  ８０−２…第二キャプチャポイント，  ３００…シナリオデータ生成装置，  ３２０…シナリオデータ，  ３３０…ネットワークエミュレータ，  ３０１…ログ記憶部（記憶部），  ３０２…ノードリスト記憶部，  ３０３…ノードリスト生成部，  ３０４…セッションリスト記憶部，  ３０５…セッションリスト生成部，  ３０６…メッセージリスト記憶部，  ３０７…メッセージリスト生成部，  ３０８…入力部，  ３０９…表示部，  ３１０…同期設定部，  ３１１…シナリオデータ生成部
【図１】
2013197941.tif 000003
【図２】
2013197941.tif 000004
【図３】
2013197941.tif 000005
【図４】
2013197941.tif 000006
【図５】
2013197941.tif 000007
【図６】
2013197941.tif 000008
【図７】
2013197941.tif 000009
【図８】
2013197941.tif 000010
【図９】
2013197941.tif 000011
【図１０】
2013197941.tif 000012
【図１１】
2013197941.tif 000013
【図１２】
2013197941.tif 000014