IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ エヌ・ティ・ティ・コミュニケーションズ株式会社の特許一覧 ▶ 独立行政法人国立高等専門学校機構の特許一覧

特開2024-143741試験装置、試験装置生成方法、及びプログラム
<>
  • 特開-試験装置、試験装置生成方法、及びプログラム 図1
  • 特開-試験装置、試験装置生成方法、及びプログラム 図2
  • 特開-試験装置、試験装置生成方法、及びプログラム 図3
  • 特開-試験装置、試験装置生成方法、及びプログラム 図4
  • 特開-試験装置、試験装置生成方法、及びプログラム 図5
  • 特開-試験装置、試験装置生成方法、及びプログラム 図6
  • 特開-試験装置、試験装置生成方法、及びプログラム 図7
  • 特開-試験装置、試験装置生成方法、及びプログラム 図8
  • 特開-試験装置、試験装置生成方法、及びプログラム 図9
  • 特開-試験装置、試験装置生成方法、及びプログラム 図10
  • 特開-試験装置、試験装置生成方法、及びプログラム 図11
  • 特開-試験装置、試験装置生成方法、及びプログラム 図12
  • 特開-試験装置、試験装置生成方法、及びプログラム 図13
  • 特開-試験装置、試験装置生成方法、及びプログラム 図14
  • 特開-試験装置、試験装置生成方法、及びプログラム 図15
  • 特開-試験装置、試験装置生成方法、及びプログラム 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024143741
(43)【公開日】2024-10-11
(54)【発明の名称】試験装置、試験装置生成方法、及びプログラム
(51)【国際特許分類】
   H04L 43/50 20220101AFI20241003BHJP
   H04L 43/20 20220101ALI20241003BHJP
   G06F 11/263 20060101ALI20241003BHJP
【FI】
H04L43/50
H04L43/20
G06F11/263
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023056563
(22)【出願日】2023-03-30
【新規性喪失の例外の表示】特許法第30条第2項適用申請有り 一般社団法人 電子情報通信学会、信学技報, vol. 122, no. 171, IN2022-28にて公開 電子通信情報学会情報ネットワーク研究会、2022年9月1日~2022年9月2日開催にて公開
(71)【出願人】
【識別番号】399035766
【氏名又は名称】エヌ・ティ・ティ・コミュニケーションズ株式会社
(71)【出願人】
【識別番号】504237050
【氏名又は名称】独立行政法人国立高等専門学校機構
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】木村 安宏
(72)【発明者】
【氏名】棚橋 弘幸
(72)【発明者】
【氏名】波多 浩昭
【テーマコード(参考)】
5B048
【Fターム(参考)】
5B048BB01
5B048EE05
(57)【要約】
【課題】仮想化されたネットワーク機器の試験を行う。
【解決手段】試験装置において、コマンドに従って、1以上の負荷発生部をホスト上に生成する制御部と、前記1以上の負荷発生部と、を備え、各負荷発生部は、前記制御部との間にコネクションを生成し、前記制御部からの指示を待ち受けるように構成される。
【選択図】図5
【特許請求の範囲】
【請求項1】
コマンドに従って、1以上の負荷発生部をホスト上に生成する制御部と、
前記1以上の負荷発生部と、を備え、
各負荷発生部は、前記制御部との間にコネクションを生成し、前記制御部からの指示を待ち受ける
試験装置。
【請求項2】
各負荷発生部はコンテナである
請求項1に記載の試験装置。
【請求項3】
各負荷発生部は試験対象に接続され、試験対象に向けてパケットを送信する
請求項1に記載の試験装置。
【請求項4】
各負荷発生部は、他の負荷発生部のアドレスを前記制御部から受信し、受信したアドレスを宛先としたパケットを送信する
請求項1に記載の試験装置。
【請求項5】
各負荷発生部は、他の負荷発生部から受信したパケットについての統計情報を算出し、算出した統計情報を前記制御部に報告する
請求項4に記載の試験装置。
【請求項6】
前記制御部は、複数の負荷発生部を、分散配置された複数のホスト上に生成する
請求項1に記載の試験装置。
【請求項7】
制御部を備えるホストが実行する試験装置生成方法であって、
前記制御部が、コマンドに従って、1以上の負荷発生部をホスト上に生成するステップと、
各負荷発生部が、前記制御部との間にコネクションを生成し、前記制御部からの指示を待ち受けるステップと
を備える試験装置生成方法。
【請求項8】
コンピュータを、請求項1ないし6のうちいずれか1項に記載の試験装置における各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークの試験を行う技術に関連するものである。
【背景技術】
【0002】
従来から、IPルータなどのネットワーク機器に対する試験が行われている。従来技術では一般に、IPルータなどの被試験装置と試験装置のポート同士をLANケーブルで接続し、試験装置から被試験装置に対してパケットを送信することにより試験を行う。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2018-026709号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
近年、ネットワークの仮想化が進んでいる。例えば、コンテナで実現された複数のネットワーク機器がホスト上に生成されることにより、仮想化ネットワークが構築される。しかし、従来の試験装置では、仮想化されたネットワーク機器を試験することが困難であるという課題がある。
【0005】
本発明は上記の点に鑑みてなされたものであり、仮想化されたネットワーク機器の試験を行うための技術を提供することを目的とする。
【課題を解決するための手段】
【0006】
開示の技術によれば、コマンドに従って、1以上の負荷発生部をホスト上に生成する制御部と、
前記1以上の負荷発生部と、を備え、
各負荷発生部は、前記制御部との間にコネクションを生成し、前記制御部からの指示を待ち受ける
試験装置が提供される。
【発明の効果】
【0007】
開示の技術によれば、仮想化されたネットワーク機器の試験を行うための技術が提供される。
【図面の簡単な説明】
【0008】
図1】課題1を説明するための図である。
図2】課題2を説明するための図である。
図3】課題3を説明するための図である。
図4】課題4を説明するための図である。
図5】第1実施形態を説明するための図である。
図6】処理手順を説明するための図である。
図7】試験装置と被試験装置との接続構成例を示す図である。
図8】試験装置と被試験装置との接続構成例を示す図である。
図9】コンテナを利用する理由を説明するための図である。
図10】第2実施形態を説明するための図である。
図11】第2実施形態を説明するための図である。
図12】負荷生成コンテナリストの例を示す図である。
図13】第3実施形態を説明するための図である。
図14】第4実施形態を説明するための図である。
図15】第5実施形態を説明するための図である。
図16】装置のハードウェア構成例を示す図である。
【発明を実施するための形態】
【0009】
以下、図面を参照して本発明の実施の形態(本実施形態)を説明する。以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。
【0010】
まず、実施形態に係る技術についての課題を詳細に説明する。以下の課題1~課題4で説明する内容は公知ではない。本実施形態に係る技術により、課題1~課題4が解決されることから、以下の課題1~課題4の説明は、本実施形態に係る技術による効果を分かり易くするための説明でもある。
【0011】
(課題1)
一般に、IPルータ、Webサーバ、スイッチ類などのネットワーク機器からなるシステムにより、ネットワークサービスがユーザに提供されている。なお、本明細書では、Webサーバなども「ネットワーク機器」の一種であるとする。
【0012】
上記システムを構成するネットワーク機器の正常性等を確認するために、試験装置(テスターと呼んでもよい)を用いた試験が実施される。試験の対象となる装置を被試験装置、試験対象などと呼ぶことにする。被試験装置をターゲットと呼んでもよい。ここでは、試験装置と被試験装置はいずれも物理マシンであるとする。
【0013】
図1に、被試験装置がIPルータ4である場合の試験構成例を示す。図1に示すとおり、このケースでは、IPルータ4と試験装置1におけるポート同士をLANケーブルで接続して、試験装置1からトラフィックを発生させIPルータ4に負荷を印加している。
【0014】
図1の例において、試験装置1は、大きく制御部2と負荷発生部3に分かれている。この構成において、制御部2はオペレータ端末50からの設定を受け取る。負荷発生部3はLANポートなどのインタフェースを持ち、ターゲットのポートに接続される。オペレータ端末50から制御部2に投入した設定に応じて、負荷発生部3はパケットを作り出し、ターゲットに送出する。
【0015】
大規模なターゲットにおいてはポート数も多くなり、トラフィックパターン(試験装置1が作り出すパケットに設定する宛先アドレスの種類)も増えて設定項目も多くなる。そのため、試験を行う者は試験を実行する前に多くの煩雑な設定項目を準備しなければならない。
【0016】
(課題2)
近年ではネットワーク機器の仮想化が進んでいる。仮想化においては、例えば、一つの物理サーバ内にソフトウェアで実現された複数のコンポーネントが生成され、複数のコンポーネントは複雑なネットワークで接続される。
【0017】
図2に、物理サーバ6上に構築された仮想化ネットワークの例を示す。また、図2には、物理サーバ6に接続される試験装置1が示されている。なお、仮想化ネットワークが構築されるコンピュータをホストと呼んでもよい。当該ホストは物理サーバであってもよいし、仮想サーバであってもよい。
【0018】
ネットワーク機器を仮想化する傾向はマイクロサービス化の流れにより、さらに顕著になっている。このような仮想化ネットワークを試験する場合、従来の試験装置1では各仮想コンポーネントの試験を行うことができない。物理サーバ6への負荷試験を行うことは可能であるが、それはブラックボックス試験となり、構成するネットワーク機器のボトルネックを見つけ出すための試験を行うことは困難である。
【0019】
(課題3)
図2に示した例では、1台の物理サーバ6の中にスイッチや仮想サーバなどが生成されており、システムが物理サーバ6に閉じている。ただし、このような構成は実際には少なく、1つのサービスを構成する複数のネットワーク機器が、複数の物理サーバや複数の拠点(データセンタ)に分散配置されることが一般的である。そのような構成の例を図3に示す。
【0020】
図3に示すように、コンポーネントが分散配置されたシステムにおいて、従来のハードウェア型の試験装置ではブラックボックス試験さえ困難である。
【0021】
(課題4)
仮想化ネットワークを構成する1つのネットワーク機器を取り出して、単体機能試験を実施しようとしても、従来の試験装置では実施が困難である。
【0022】
例えば、図4に示すような、物理サーバ11上にある仮想マシン12上のIPルータ13をターゲットとして、試験を行う場合を考える。当該IPルータ13に対して使用されるポート14、15は、仮想的なポートであるため、そのポート数はソフトウェアの設定で決定することができる。
【0023】
一方、物理サーバ11では、物理ポート16の数は、ネットワークカード(NIC)の搭載数で決まるため、IPルータ13において使用される仮想的なポート14,15と、物理ポート16とを直接に関連付けることができない。
【0024】
そこで、図4に示すように、IPルータ13の論理ポート14にVLANを関連付けしすることで、物理ポート16からタグVLANを使って外部にポートを引き出すことができる。
【0025】
しかし、この構成を用いてIPルータ13に試験装置を接続するためには、タグVLANを試験装置の物理ポートに変換する別の物理スイッチを介するか、もしくは試験装置にVLANを認識する設定をしなければならない。
【0026】
上記のように、ソフトウェアで作られ仮想化されたネットワーク機器を、ハードウェアで作られている従来の試験装置で試験を行うことは困難である。
【0027】
(課題のまとめ)
<課題1:操作、試験シナリオ作成の煩雑さ>
ネットワーク機器の試験を行う試験装置(テスター)は従来から存在しているが、そもそも設定が複雑であり、利用するのにスキルを要した。
【0028】
<課題2:マイクロサービス問題>
ネットワークの仮想化が進み、1つの装置に複数のソフトウェア機能が実装されている。これを従来の試験装置で外部から試験をするとブラックボックス試験となり、システム全体の負荷は測定できるが、ボトルネックを探すようなホワイトボックス試験はできない。
【0029】
<課題3:分散配置型マイクロサービス問題>
ネットワーク機器や仮想サーバが複数の拠点に分散配置されると、従来の試験装置ではブラックボックス試験さえ困難である。
【0030】
<課題4:インタフェース多様化問題>
従来の試験装置を用いて仮想化されたネットワーク機器を単体で試験しようとする場合、仮想ポートと試験装置の物理ポートを1対1で接続することができず、何らかの変換機能(VLANなど)が必要となる。すなわち、従来の試験装置を用いて仮想化されたネットワーク機器を単体で試験することは難しい。
【0031】
以下、上記の課題を解決可能な構成の例を、第1実施形態~第5実施形態として説明する。第1実施形態~第5実施形態における任意の複数の実施形態に係る技術は組み合わせて実施することが可能である。基本的には、第1実施形態においてベースとなる構成を説明しており、第2実施形態~第5実施形態では、第1実施形態に対する、詳細例、変形例、追加機能などを説明している。
【0032】
(第1実施形態)
<基本構成例>
図5に、本実施形態における試験装置100の構成例を示す。図1に示すように、試験装置100は、制御部110と、1以上の負荷発生部120を有する。各図において、負荷発生部を「LG」(Load Generatorの略)と記載している。なお、「負荷発生部」を、「トラフィック発生部」、「パケット発生部」、「試験部」などと呼んでもよい。
【0033】
本実施形態では、試験装置100の構成部(コンポーネント)として、ソフトウェアで実現される仮想化機能部を使用している。より具体的には、試験装置100の各構成部としてコンテナを使用している。つまり、制御部110はコンテナであり、1以上の負荷発生部120はそれぞれコンテナである。
【0034】
コンテナを動作させている試験装置100自体は、物理マシンであってもよいし、仮想マシンであってもよい。コンテナを動作させているホストを試験装置100と呼んでもよいし、ホスト内の制御部110と、1以上の負荷発生部120を有する部分を試験装置100と呼んでもよい。
【0035】
また、制御部110と、1以上の負荷発生部120は、例えば複数のホストに分散配置されてもよく、その場合でも制御部110と、1以上の負荷発生部120とからなるものを試験装置100と呼ぶ。
【0036】
従来の試験装置では、各構成部がハードウェア基板(いわゆるパッケージ)として実現されていたのに対して、上記のとおり本実施形態に係る試験装置100では各構成部をコンテナで実現している。
【0037】
試験装置100における制御部110は、オペレータ端末50とのインタフェースとなり、オペレータ端末50からのコマンドを受け付けて、負荷発生部120に対する制御を実行する。制御部110は、コマンドと制御の機能を持つコンテナであることから、これをC&C(Command&Control)コンテナと呼んでもよい。
【0038】
個々の負荷発生部120もコンテナで実現される。負荷発生部120は、制御部110により動的に生成され、動的に削除される。また、制御部110からの指令により負荷発生部120の負荷発生の開始/停止が実行される。制御部110から負荷発生部120への負荷発生開始/停止の指令については、個々の負荷発生部120に対して個別に行ってもよいし、複数の負荷発生部120に対して一括で行ってもよい。
【0039】
また、試験装置100の試験対象は、物理マシンであってもよいし、仮想マシンであってもよいし、コンテナであってもよい。例えば、あるホスト内で1コンテナにより構築されたネットワーク機器に対して、コンテナ単体試験(ホワイトボックス試験)を実施することも可能である。
【0040】
図6のフローチャートを参照して、負荷発生部120を生成する際の手順例を説明する。ここでは、試験装置100における制御部110は生成済みであるとする。
【0041】
S101において、オペレータ端末50は、制御部110に対して、コマンドを送信する。このコマンドには、生成及び起動を示す命令、負荷発生部120の元となるイメージ(プログラム)を示す情報(イメージの格納場所など)、及び各種のパラメータ(起動パラメータと呼んでもよい)が含まれる。
【0042】
コマンドを受信した制御部110は、S102において、負荷発生部120を生成する。具体的には、負荷発生部120に対応するイメージを取得して、イメージを起動することでコンテナを生成する。コンテナ生成時には、上記パラメータによる設定がコンテナに対してなされ、コンテナ(負荷発生部120)はその設定に従って動作する。なお、「コンテナを生成する」ことが、コンテナを生成しかつ起動(開始)することを意味してもよい。
【0043】
また、負荷発生部120の生成時において、制御部110と負荷発生部120との間で通信できるように、制御部110と負荷発生部120とが接続される。制御部110と負荷発生部120との間の接続方法の詳細は後述する。
【0044】
その後、例えば、オペレータ端末50から制御部110に対して、ある負荷発生部120からある宛先に対してトラフィック(パケット)を送信する旨のコマンドを送信すると、制御部110は、その負荷発生部120に対して、宛先へのトラフィック送信を指示する。
【0045】
また、負荷発生部120に対する設定は、負荷発生部120の生成後でも、オペレータ端末50から制御部110に所望のパラメータを指定することで変更可能である。
【0046】
<接続構成例>
試験装置100における負荷発生部120をコンテナとして実装することにより、負荷発生部120を試験対象に接続するための接続方法(インタフェース)を柔軟に設定することが可能である。
【0047】
つまり、負荷発生部120を生成するためのイメージが1つである場合でも、その負荷発生部120を生成する際に使用するパラメータを変更することで、接続方法を柔軟に設定できる。
【0048】
例えば、上記パラメータの選択により、負荷発生部120を、試験対象のホストの物理ポートに接続するのか、試験対象のホストの内部ネットワークに接続するのか、あるいは、VLANに接続するのかを選択することが可能である。
【0049】
試験対象が従来型の装置(IPルータ17)である場合における、試験装置100の接続構成例を図7に示す。図7に示すとおり、IPルータ17は、物理ポート20、論理ポート20、論理ポート19,ソフトウェアIPルータ18を有する。
【0050】
試験装置100は、複数の物理ポート130を備え、各負荷発生部120を1つの物理ポート130に接続させることで、各負荷発生部120を、物理リンクを介して、試験対象装置(IPルータ17)の1つの物理ポート20に接続させることができる。これにより、本実施形態に係る試験装置100を、従来型の試験装置と同様に使用できる。
【0051】
試験対象装置が仮想化されたIPルータ12である場合における、試験装置100の接続構成例を図8に示す。図8に示すとおり、IPルータ12は、ターゲットホスト11上の仮想マシンで実現されており、仮想ポート15、論理ポート14、ソフトウェアIPルータ13を有する。また、IPルータ12の外部インタフェースにはVLANが使用されている。つまり、各仮想ポート15は、VLANにより他の装置と通信する。各VLANはVLANIDにより識別される。
【0052】
この場合、図8に示すとおり、試験装置100における各負荷発生部120は、対応するVLANIDを持つVLANに接続することで、IPルータ12の各仮想ポート15(及び論理ポート14)に接続できる。これにより、仮想化されたIPルータ12における各ポートに対する試験を行うことができる。
【0053】
図7図8で説明した負荷発生部120の試験対象への接続方法は、オペレータ端末50から制御部110に指定するパラメータにより設定することが可能である。
【0054】
なお、試験装置100の各構成部として、仮想マシン(VM)ではなくコンテナを利用した理由は、下記のとおりである。
【0055】
仮想マシンでは、図9(a)に示すように、1つのイメージに対して1つのインスタンス(動作中の仮想マシン)しか動作させることができず、1つのイメージから複数のインスタンスを生成することができない。一方、コンテナでは、図9(b)に示すように、1つのイメージから複数のインスタンスを生成できる。
【0056】
負荷生成部120をコンテナで実現することで、1つのイメージで、起動パラメータに応じて種々の設定の下で負荷生成部120を動作させることができる。また、負荷生成部120の生成後(起動後)においては、制御部110から送信されるパラメータ(設定情報)によって設定を変更することができる。
【0057】
コンテナには上記のような利点があるため、本実施形態では、試験装置100の各構成部としてコンテナを利用している。
【0058】
ただし、コンテナに限定されるわけではなく、試験装置100の各構成部としてコンテナ以外の仮想化機能部を利用してもよい。また、負荷生成部120をコンテナとし、制御部110をコンテナ以外の仮想化機能部(例:仮想マシン)としてもよい。また、負荷生成部120をコンテナとし、制御部110を物理マシンとしてもよい。
【0059】
<効果について>
試験装置100の各構成部をソフトウェア(具体的にはコンテナ)で実現することにより、試験装置100を、コンピュータ内部に仮想的に構築されたネットワークや、コンピュータ内部だけで使われているVLANなどに容易に接続させることができる。また、従来のアプライアンス(単体装置)型テスタのように、ターゲットとなる装置の外部に物理的リンクを引き出す必要がない。
【0060】
また、インタフェースの種類を、コンテナイメージにかかわらず起動時パラメータで変更できるため、試験対象のインタフェース種別に応じて、コンテナの起動パラメータを変更するだけで、試験対象と試験装置100との接続が可能になる。
【0061】
(第2実施形態)
次に、第2実施形態を説明する。第2実施形態では、制御部110と負荷発生部120との間の接続に関する例を説明する。
【0062】
制御部110は、生成すべき場所(拠点、物理サーバ、仮想マシンなど)に負荷発生部120(コンテナ)を生成し、負荷発生部120が適切なインタフェース(具体的には、仮想ネットワークインタフェース)に接続するように負荷発生部120を起動する。
【0063】
起動した負荷発生部120は、制御部110との間にコネクションを生成(確立)する。
【0064】
本実施形態ではコネクションの例としてTCPコネクションを使用する。すなわち、例えば、負荷発生部120のコネクション確立要求から開始するスリーウェイハンドシェイクによりTCPコネクションを確立する。
【0065】
上記の処理が、負荷発生部120ごとに実行されることで、制御部110を中心としたスター型の負荷発生コンテナネットワークが生成される。この負荷発生コンテナネットワークを「試験制御ネットワーク」と呼ぶ。試験制御ネットワークが生成された後、各負荷発生部120は、制御部110からの指示を待ち受ける。
【0066】
図10は、上述した動作を示すシーケンス図である。S1において、制御部110がオペレータ端末50から、負荷発生部120の生成のためのコマンドを受信する。S2において、制御部110は、負荷発生部120を生成する。このとき、ネットワークインタフェース設定、IPアドレス設定なども実行される。
【0067】
負荷発生部120が生成されると、S3において、負荷発生部120は、制御部110との間でTCPコネクションを確立する。TCPコネクションの確立後、S4において、制御部110は負荷発生部120に対してコンテナリストを送信する。コンテナリストについては後述する。
【0068】
なお、制御部110と負荷発生部120との間の接続方法(つまり、通信を可能とする方法)はTCPコネクションに限定されない。例えば、制御部110と負荷発生部120との間に共有のストレージ(仮想ストレージ)を配置して、制御部110と負荷発生部120とがストレージに対してデータを読み書きすることで、制御部110と負荷発生部120との間で通信を行ってもよい。本明細書では、このような接続方法も「コネクション」と呼ぶ。
【0069】
上記のような制御部110と負荷発生部120との間の接続処理は、負荷発生部120と試験対象とがどのような接続方法(リンク)で接続する場合でも適用できる。
【0070】
図11は、ターゲットホスト(試験対象のホスト)が、複数コンテナで構成された仮想化ネットワークを備える例を示している。また、図11の例では、このターゲットホスト内に試験装置100の各構成部が備えられている。つまり、図11に示すターゲットホストを試験装置100と呼んでもよい。また、ターゲットホスト内に試験装置100が備えられていると考えてもよい。
【0071】
具体的には、図11のターゲットホスト内には、仮想化ネットワークを構成するコンテナ30~36に加えて、制御部110、及び、負荷発生部120-1~120-3が備えられている。
【0072】
図11における破線が、制御部110と負荷発生部120-1~120-3との間の試験制御ネットワークのコネクションを示す。また、実線は、コンテナ間のリンク(伝送路)を示す。また、両側に矢印の付いた太線は、試験トラフィックフローを示す。図11に示すとおり、破線で示す試験制御ネットワークにおいて、制御部110と負荷発生部120とは、試験対象となるコンテナ(網掛け)を介さずに内部ネットワークで直接に接続される。
【0073】
一方、各負荷発生部120における試験対象側のインタフェースは、試験対象となるコンテナにリンクで接続されている。負荷発生部120をどの試験対象コンテナとリンクで接続するかについては、オペレータ端末50からのコマンド(例えば、負荷発生部120生成のためのコマンド)で指定することができる。
【0074】
また、負荷発生部120から試験トラフィックをどの宛先に流すかについても、オペレータ端末50からのコマンドで指定することができる。この宛先は例えばIPアドレスで指定される。
【0075】
すなわち、本実施形態における試験設計は、負荷発生部120をどこに配置して、どこと接続して、どのようなIPアドレスを割り当てるか、という通常のコンテナ設計と同じ事項を決定するだけで実現できる。これにより、例えば、負荷発生部120同士で試験トラフィックを交換させることで、同一ホスト内部でコンテナの単体試験や結合試験が可能になる。
【0076】
<効果について>
本実施形態に係る試験装置100は、各構成部をコンテナで構成したので、コンピュータ内部のネットワークや、コンピュータ内部だけで使われているVLANなどにも接続できる。また、従来のアプライアンス(単体装置)型テスタのように、ターゲットホスト外部に物理的リンクを引き出す必要がなく、ターゲットホスト内部で試験を行うことが可能である。
【0077】
(第3実施形態)
次に、第3実施形態を説明する。第3実施形態では、負荷発生部120を用いた試験に関わる動作例を説明する。第3実施形態での動作は、図11に示したような、ターゲットホスト内に、試験対象コンテナととともに、制御部110と1以上の負荷発生部120が備えられる構成を想定している。
【0078】
ただし、第3実施形態での動作は、図11に示した構成に限らず、どのような構成にも適用可能である。例えば、図7図8に示した構成にも適用可能である。また、後述する第4実施形態、第5実施形態で説明する構成にも適用可能である。
【0079】
負荷発生部120は、試験制御ネットワークに参加すると(つまり、制御部110との間にTCPコネクションを確立すると)、自身のIPアドレスやコンテナ名などを制御部110に報告する。
【0080】
制御部110は、各負荷発生部120から受信する報告に基づいて、負荷発生コンテナリスト(単に「リスト」と呼ぶ場合がある)を作成する。負荷発生コンテナリストは、試験制御ネットワークに参加している負荷発生部120のリストであり、具体的には、例えば、各負荷発生部120のIPアドレス、ポート番号などがリストに記載されている。
【0081】
制御部110は、負荷発生コンテナリストを更新するたびに、負荷発生コンテナリストを、試験制御ネットワークに参加している全ての負荷発生部120に一斉に配信する。ここでは、負荷発生コンテナリストを用いた試験動作の例を説明する。
【0082】
負荷発生コンテナリストを用いた試験では、負荷発生部120間でのメッシュトラフィック試験を自律的に行う。つまり、負荷発生部120から他の負荷発生装置120へパケットを送信して、パケットが通る経路の正常性を確認する試験を、2つの負荷発生部120の組み合わせごとに実行する。
【0083】
各負荷発生部120は、制御部110から配信されたリストを受信し、当該リスト(表)を拡張して試験の準備を行う。
【0084】
図12に具体例を示す。図12に示す例において、「Download Cols.」が、制御部110から負荷発生部120にダウンロードされる負荷発生コンテナリストであり、「Upload Cols.」が拡張された部分(拡張列)を示す。
【0085】
図12に示す例において、拡張列には、例えば、送信シーケンスカウンタ、受信シーケンスカウンタ、受信レート(bps)、受信パケットロス(ロスしたパケット数、ロス率など)などが含まれる。
【0086】
負荷発生部120は、負荷発生コンテナリストを参照して、自分以外の負荷発生部120を宛先とするパケット(例:IPパケット)を、ターゲットインタフェース(試験対象とリンクで接続されるインタフェース)経由で送信する。
【0087】
パケット送信元の負荷発生部120は、宛先の負荷発生部120の情報にポート番号が含まれていることを検知した場合、UDP通信を行う。送信するパケットのペイロードには、宛先ごとにある送信シーケンスカウンタの値を入れる。送信シーケンスカウンタの値は、パケットを送信するたびに1だけ増加された値になる。
【0088】
また、負荷発生部120は、パケットを送信するたびに、リストにおける「Sent seq.」(送信カウンタ値)のカウンタ値を1つ増加させる。
【0089】
一方、負荷発生部120は、他の負荷発生部120から送信されたパケットを受信したら、リストにおける「Recv seq.」(受信カウンタ値)のカウンタ値を1つ増加させる。
【0090】
負荷発生部120が受信するパケットには、送信元ごとに連続したシーケンス番号が付与されるので、もしも仮想化ネットワーク内でパケットが紛失すれば、シーケンス番号の連続性が失われ受信側でパケットロスを検知することができる。
【0091】
パケットロスの検知方法はどのような方法であってもよいが、例えば、便宜上、シーケンス番号が1から始まり、受信カウンタ値も1から始まるとした場合において、「Recv seq.」(受信カウンタ値)のカウンタ値が、受信パケットのシーケンス番号より小さければ、パケットロスが発生したと判断できる。負荷発生部120は「Upload Cols.」に情報が記録された負荷発生コンテナリストを制御部110に報告(アップロード)する。
【0092】
図13に、上記の処理の例を示す。図13の例では、制御部110から、IPアドレスが「192.168.1.1」である負荷発生部120に、負荷発生コンテナリストがダウンロードされる。当該負荷発生部120は、IPアドレスが「30.30.30.30」である負荷発生部120に、パケットを送信する。
【0093】
ここで、図12に示すリストが、IPアドレスが「192.168.1.1」である負荷発生部120にダウンロードされたリストであるとすると、当該リストの「30.30.30.30」のエントリの「Sent seq.」の欄に、「30.30.30.30」へ送信したパケットの数が記録される。
【0094】
仮に、IPアドレスが「192.168.1.1」である負荷発生部120が、IPアドレスが「30.30.30.30」である負荷発生部120からパケットを受信するものとすると、当該リストにおける「30.30.30.30」のエントリの「Recv seq.」の欄に、「30.30.30.30」から受信したパケットの数が記録される。また、「30.30.30.30」のエントリの「Recv bps」、「Recv Losses」にはそれぞれ、IPアドレスが「30.30.30.30」である負荷発生部120から受信するパケットの受信レート、受信パケットロスなどの統計情報が記録される。
【0095】
上記のように、負荷発生部120は、制御部110からダウンロードされた負荷発生コンテナリストに基づいて、自律的に他の負荷発生部120にパケットを送信することで、試験対象にトラフィック負荷を印加することができる。負荷発生部120は、パケット送受信に基づき算出したパケットロスや受信bpsなどの統計情報をリストに記録して、制御装置110からのリクエストにより統計情報を制御装置110に報告することができる。
【0096】
なお、上記のように負荷発生コンテナリストを用いて試験を行うことは一例である。負荷発生コンテナリストを用いずに試験を行うこととしてもよい。例えば、オペレータ端末50から制御部110に対して、「ある負荷発生部120が仮想サーバAに対してパケットを送信する試験」を指示する。この指示を受けた制御部110は、当該負荷発生部120に対し、仮想サーバAのIPアドレスを通知することで、仮想サーバAにパケットを送信することを指示する。
【0097】
指示を受けた負荷発生部120は、仮想サーバAに対してパケットを送信するとともに、送信パケットに対する返信パケットを観測する。これにより、例えば、仮想サーバAの性能(処理遅延等)の試験を行うことができる。
【0098】
<効果について>
第3実施形態で説明した試験方法では、従来型の試験シナリオ作成業務に比べ、試験を実施しようとする目的にあった負荷発生部120(コンテナ)のイメージの選択と配置という試験設計に注力できる。本実施形態では、試験者は負荷発生部120をどこ(のホストコンピュータ)に配置して、どのインタフェースでどの対象に接続して、インタフェースにどのIPアドレスを割り当てるか、だけを決定すればよい。負荷発生部120は他の負荷発生部120の情報を制御部110経由で知らされるため、負荷発生部120間でメッシュトラフィック試験を自律的に行うことができる。
【0099】
(第4実施形態)
次に、第4実施形態を説明する。第4実施形態では、負荷発生部120の詳細構成例について説明する。
【0100】
図14に、負荷発生部120の機能構成例を示す。負荷発生部120は、イメージから生成されるコンテナなので、図14は、当該コンテナのイメージのソフトウェア構成に相当する。
【0101】
図14に示すように、負荷発生部120は、主処理部124、送信部123、受信部122、統計情報算出部121を有する。主処理部124が制御部110との通信を行う。送信部123は、宛先に向けてパケットを送信する。受信部122はパケットを受信する。統計情報算出部121は、前述した受信レートなどの統計情報を算出する。
【0102】
図14に示すようなソフトウェア構成を持つイメージを一種類用意するだけで、複数の負荷発生部120を生成して、例えば、前述した負荷発生部120間でメッシュトラフィック試験を行うことができる。
【0103】
負荷発生部120の生成の元になるイメージを複数種類用意して、試験の目的に応じたイメージを選択して使用してもよい。例えば、図14の構成における送信部123と受信部122のソフトウェアを、図14のものと異なるものとしたイメージから負荷発生部120を生成してもよい。
【0104】
すなわち、負荷発生部120の生成の元になるイメージにおける、送信部123と受信部122のソフトウェアを入れ替えたイメージを使用して負荷発生部120を生成することで、TCP/IP疎通確認や、UDP/IPの流量試験、HTTPによるWebサーバ試験など、所望の試験を行うことができる。
【0105】
例えば、複数種類のイメージを事前に用意しておき、オペレータ端末50から、試験する項目に応じて、制御部110に対してコンテナ生成に使用するイメージを指示する。これにより、1つの制御部110で複数の種類の試験を同時進行させることが可能である。
【0106】
<効果について>
IP疎通試験ならA製品、Web試験ならB製品でそれぞれ利用コマンドが異なっていたという従来の試験装置に比べて、本実施形態に係る技術では起動する負荷発生部120のイメージを変更することで、負荷発生部120間IPメッシュ試験を行う負荷発生部120や、WebクライアントとしてHTTPリクエストを発行する負荷発生部120などを制御部110から起動できる。
【0107】
負荷発生部120のイメージ種別により多少の設定の差異はあるが、負荷発生部120が試験制御ネットワークに参加する点は変わらず、制御部110から、負荷発生部120に試験開始停止などの指示を出すことができる。
【0108】
(第5実施形態)
次に、第5実施形態を説明する。第5実施形態では、制御部110、及び複数の負荷発生部120をオーケストレーションにより分散配置する例を説明する。
【0109】
異なる複数のホストコンピュータで動作するコンテナを一括管理する運用はオーケストレーションと呼ばれる。具体的には、コンテナのオーケストレーションのためのツールとして、Ansible(登録商標)、Salt、Kubernates(登録商標)などが使用されている。
【0110】
Kubernates(登録商標)などのオーケストレーションツールを使用することで、制御部110を有するホストとは異なるロケーションにあるリモートホストにおいて、負荷発生部120を生成することができる。これにより、ルータなどの単体機器の試験のみならず、インターネットやIP-VPNなどの世界的規模で広がるネットワークを試験するように、負荷発生部120を分散配置することができる。
【0111】
なお、オーケストレーションツールを使用しなくても、負荷発生部120を分散配置することは可能であるが、オーケストレーションツールを使用することで、より容易に負荷発生部120を分散配置することができる。
【0112】
図15に、第3実施形態におけるシステムの構成例を示す。図15に示す例において、ローカルサイトホスト200に制御部110と負荷発生部120-1が備えられる。リモートサイトホスト300には、負荷発生部120-2が備えられ、リモートサイトホスト400には、負荷発生部120-3が備えられている。各ホストは、ネットワーク500に接続されている。
【0113】
各ホストは、物理サーバであってもよいし、クラウド上の仮想マシンであってもよい。一例として、クラウドAで仮想化ネットワークを構築しており、その仮想化ネットワーク(あるいは仮想化ネットワークを構成しているコンポーネント)の試験を行いたい場合には、例えば、オペレータ端末50から制御部110に対して、クラウドAのホスト(仮想マシン)上に負荷発生部120を生成するよう指示し、生成された負荷発生部120により試験を行うことができる。負荷発生部120を生成させるホストは、仮想化ネットワークを構成するコンポーネントが動作しているホストであってもよい。
【0114】
制御部110は、既に説明した制御部110の機能に加えて、オーケストレーションツールの機能(例:Kubernates(登録商標)のマスターノードの機能)を備えてもよいし、オーケストレーションツールの機能は、制御部110とは別に備えられてもよい。
【0115】
<効果について>
第5実施形態に係る技術によれば、複数のホストにコンテナを分散配置するマイクロサービスにおいて、テスタである負荷発生部120を分散型とすることで、ブラックボックス試験およびホワイトボックス試験の両方を行うことが可能になる。また、サービスと同様にテスタもオーケストレートされている。すなわち、負荷発生部120は分散配置されるが、制御部110はそれらを一か所から中央制御することができる。
【0116】
(ハードウェア構成例)
上述したとおり、試験装置100の各コンポーネントはコンテナで実現されるので、試験装置100は、コンピュータにプログラムを実行させることにより実現できる。このコンピュータは、物理的なコンピュータであってもよいし、仮想マシンであってもよい。当該プログラムは、制御部110のイメージと負荷発生部120のイメージを有するプログラムであってもよい。
【0117】
すなわち、試験装置100は、コンピュータに内蔵されるCPUやメモリ等のハードウェア資源を用いて、試験装置100で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体(可搬メモリ等)に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メール等、ネットワークを通して提供することも可能である。
【0118】
図16は、上記コンピュータのハードウェア構成例を示す図である。図16のコンピュータは、それぞれバスBで相互に接続されているドライブ装置1000、補助記憶装置1002、メモリ装置1003、CPU1004、インタフェース装置1005、表示装置1006、入力装置1007、出力装置1008等を有する。
【0119】
当該コンピュータでの処理を実現するプログラムは、例えば、CD-ROM又はメモリカード等の記録媒体1001によって提供される。プログラムを記憶した記録媒体1001がドライブ装置1000にセットされると、プログラムが記録媒体1001からドライブ装置1000を介して補助記憶装置1002にインストールされる。但し、プログラムのインストールは必ずしも記録媒体1001より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置1002は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【0120】
メモリ装置1003は、プログラムの起動指示があった場合に、補助記憶装置1002からプログラムを読み出して格納する。CPU1004は、メモリ装置1003に格納されたプログラムに従って、当該装置に係る機能を実現する。
【0121】
インタフェース装置1005は、ネットワーク等に接続するためのインタフェースとして用いられる。表示装置1006はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置1007はキーボード及びマウス、ボタン、又はタッチパネル等で構成され、様々な操作指示を入力させるために用いられる。出力装置1008は演算結果を出力する。なお、当該装置において、表示装置1006、入力装置1007、出力装置1008のいずれか又は全部を備えないこととしてもよい。
【0122】
(付記)
本明細書には、少なくとも下記各項の試験装置、試験装置生成方法、及びプログラムが開示されている。
(付記項1)
コマンドに従って、1以上の負荷発生部をホスト上に生成する制御部と、
前記1以上の負荷発生部と、を備え、
各負荷発生部は、前記制御部との間にコネクションを生成し、前記制御部からの指示を待ち受ける
試験装置。
(付記項2)
各負荷発生部はコンテナである
付記項1に記載の試験装置。
(付記項3)
各負荷発生部は試験対象に接続され、試験対象に向けてパケットを送信する
付記項1又は2に記載の試験装置。
(付記項4)
各負荷発生部は、他の負荷発生部のアドレスを前記制御部から受信し、受信したアドレスを宛先としたパケットを送信する
付記項1ないし3のうちいずれか1項に記載の試験装置。
(付記項5)
各負荷発生部は、他の負荷発生部から受信したパケットについての統計情報を算出し、算出した統計情報を前記制御部に報告する
付記項4に記載の試験装置。
(付記項6)
前記制御部は、複数の負荷発生部を、分散配置された複数のホスト上に生成する
付記項1ないし5のうちいずれか1項に記載の試験装置。
(付記項7)
制御部を備えるホストが実行する試験装置生成方法であって、
前記制御部が、コマンドに従って、1以上の負荷発生部をホスト上に生成するステップと、
各負荷発生部が、前記制御部との間にコネクションを生成し、前記制御部からの指示を待ち受けるステップと
を備える試験装置生成方法。
(付記項7)
コンピュータを、付記項1ないし6のうちいずれか1項に記載の試験装置における各部として機能させるためのプログラム。
【0123】
以上、本実施の形態について説明したが、本発明はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0124】
1、100 試験装置
50 オペレータ端末
110 制御部
120 負荷発生装置
121 統計情報算出部
122 受信部
123 送信部
124 主処理部
1000 ドライブ装置
1001 記録媒体
1002 補助記憶装置
1003 メモリ装置
1004 CPU
1005 インタフェース装置
1006 表示装置
1007 入力装置
1008 出力装置
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16