概要

ネットワークのテストは大変。いろんなパターンのテスト用のトラフィックを生成しなければいけません。そのために、検証用の端末の接続をあれこれ変えたり、設定を変更したりなど面倒なものです。

NEEDLEWORKを利用すると、テスト用のトラフィックを思いのままに生成して、テストを自動的に実行できます。NEEDLEWORKの特徴と基本的な使い方をみてみましょう。

NEEDLEWORKとは

NEEDLEWORK( https://www.ap-com.co.jp/ja/needlework/ )は、エーピーコミュニケーションズのテスト自動化ツールです。(エーピーコミュニケーションズさんといえば、Ciscoなどのネットワーク機器のカプセルトイという一部のユーザを強烈に惹きつける製品で話題になったことを覚えています)

NEEDLEWORKで自動化できるテストは、以下の3つです。

  1. ネットワーク通信テスト
  2. FW/UTMポリシーテスト
  3. 負荷テスト

テストの自動化を言い換えると、

「高性能なトラフィックジェネレータ」

です。

テストするためには、いろんなパターンのテスト用トラフィックを生成しなければいけません。検証用のルータやレイヤ3スイッチなどで検証用ネットワークを作り、試験端末を接続します。そして、それらの機器の接続や設定をあれこれ変えたりして、Ping/TracerouteやHTTPメッセージなどなどテスト用トラフィックを生成しなければいけません。これは非常に面倒です。

NEEDLEWORKをインストールしたPCがあれば、検証用ネットワークと試験端末をエミュレートできます。そして、あらかじめ定義したシナリオに基づいてテスト用トラフィックを生成して、ネットワークのテストを実行可能です。

図 NEEDLEWORKの概要
図 NEEDLEWORKの概要

NEEDLEWORKは、上で紹介したネットワークテストごとに異なるアプリケーションとして実装されています。ネットワークテストごとに生成できるトラフィックが違います。

ネットワーク通信テストは、とてもシンプルにPingやTraceroute、つまりICMPトラフィックを生成できます。FW/UTMポリシーテストでは、HTTP/SMTPなどのアプリケーションプロトコルまでの詳細なトラフィックを生成できます。そして、負荷テストはDSCPなどのQoSマーキング情報を付加して、最大でギガビットのワイヤレートの負荷をかけたスループット計測のトラフィックを生成します。大量のTCPセッションのセッション計測に利用できるトラフィックも生成できます。

いずれのテストにしろ、テストの仕様を決めて、それに基づいてNEEDLEWORKの検証用ネットワークを設定します。そして、テスト用トラフィックのシナリオを作成すればすぐにテストを実施できます。テスト結果のエビデンスも自動的にまとめてくれるので、テストに要する工数を大幅に削減できるでしょう。

ただ、NEEDLEWORKを使いこなすには、多少はネットワーク技術に習熟しておかないといけません。TCP/IP、VLAN/レイヤ3スイッチ、IPルーティングを理解しておかないとNEEDLEWORKの検証用ネットワークの設定は難しく感じると思います。

以降で、NEEDLEWORKのネットワーク通信テストの基本的な使い方を解説します。

NEEDLEWORK ネットワーク通信のテストの基本的な使い方

ネットワーク通信テストの流れ

NEEDLEWORKでネットワーク通信テストを行う流れは、次の通りです。

  1. テスト対象ネットワークとNEEDLEWORKの物理的な接続
  2. NEEDLEWORK インタフェースの設定
  3. NEEDLEWORK 仮想ルータの設定
  4. ネットワーク通信テストの実行

テスト対象ネットワークとNEEDLEWORKの物理的な接続

まずは、テスト対象ネットワークとNEEDLEWORKのPCのイーサネットインタフェースを物理的に接続しなければいけません。NEEDLEWORKはUSB接続のイーサネットインタフェースを増設して最大3つのイーサネットインタフェースをサポートしています。NEEDLEWORK PCのイーサネットインタフェースとテスト対象ネットワークを物理的に接続します。

サポートしているUSBイーサネットインタフェースは次のURLに記載されています。 https://www.ap-com.co.jp/ja/needlework/spec.html

図 テスト対象ネットワークとNEEDLEWORKの物理的な接続
図 テスト対象ネットワークとNEEDLEWORKの物理的な接続

NEEDLEWORK インタフェース設定

テスト対象ネットワークと接続しているインタフェースの設定を行います。テスト対象ネットワークとNEEDLEWORK PCのイーサネットインタフェースのリンクとして、次の3つのタイプを設定できます。

リンクタイプ概要
Physical通常のイーサネットリンク(ルーテッドポート)
VLANトランク(タグVLAN)リンク(SVI)
PPPoEPPPoEリンク
図 NEEDLEWORKインタフェースの設定
図 NEEDLEWORKインタフェースの設定

NEEDLEWORK PCへのリンクは、仮想的なレイヤ3スイッチに接続するイメージです。

「Physical」タイプは、Ciscoレイヤ3スイッチでいうところのルーテッドポートでの接続です。NEEDLEWORKのイーサネットインタフェースに直接IPアドレスを設定して、テスト対象ネットワークと接続します。「VLAN」タイプは、Ciscoレイヤ3スイッチでのSVIでの接続です。テスト対象ネットワークとトランク(タグVLAN)リンクで接続したうえで、VLANごとにSVIを作成してIPアドレスを設定します。「PPPoE」タイプは、NEEDLEWORKが簡易的なPPPoEサーバとなりテスト対象ネットワークとPPPoEで接続します。PPPoE方式のインターネット接続をエミュレートできます。

インタフェースの設定は、NEEDLEWORKのメニューの[インタフェース設定]から行います。

図 NEEDLEWORK インタフェース設定画面
図 NEEDLEWORK インタフェース設定画面

NEEDLEWORK 仮想ルータの設定

検証用ネットワークを作るために、NEEDLEWORK 仮想ルータの設定を行います。「仮想ルータ」という名称ですが、レイヤ3スイッチと考えたほうがわかりやすいでしょう。

仮想ルータは、任意の名前で設定できます。テスト対象ネットワークへのアップリンクになるインタフェースと試験端末をエミュレートするネットワークを決めます。また、テスト対象ネットワークへルーティングするためのスタティックルートの設定も必要です。

なお、NEEDLEWORKの仮想ルータ側のルーティングだけではなく、テスト対象ネットワークのルータやレイヤ3スイッチのルーティングも考えないといけません。

図 NEEDLEWORK 仮想ルータの設定
図 NEEDLEWORK 仮想ルータの設定

仮想ルータの設定は、NEEDLEWORKのメニューの[仮想ルータ設定]から行います。

図 仮想ルータ 設定画面
図 NEEDLEWORK 仮想ルータ 設定画面

ネットワーク通信テストの実行

テスト用トラフィックの宛先/送信元IPアドレスを指定することで、テスト用トラフィックを生成します。IPアドレスから所属する仮想ルータを判断して、テスト用トラフィックのフローが決まります。

図 ネットワークテスト
図 ネットワークテスト

NEEDLEWORKのメニューの[ネットワークテスト]から、テスト用トラフィックのIPアドレスなどのパラメータを指定してテストシナリオを作成します。そして、テストシナリオに基づいたネットワーク通信テストを実行します。

図 NEEDLEWORK ネットワークテスト画面
図 NEEDLEWORK ネットワークテスト画面

NEEDLEWORK ネットワーク通信テストのサンプル

NEEDLEWORKを利用したネットワーク通信テストのサンプルを考えてみましょう。冗長化された広域イーサネットの経路の切り替え試験のサンプルです。ルーティングプロトコルにOSPFを利用して、メインの広域イーサネットがダウンしたらバックアップの広域イーサネットに切り替えることを想定しています。テスト対象ネットワークは、Ciscoルータで構築しています。R13およびR23とNEEDLEWORK PCの接続は以下のように行います。

図 テスト対象ネットワークとNEEDLEWORKの接続
図 テスト対象ネットワークとNEEDLEWORKの接続

そして、テスト用トラフィックを生成するためのNEEDLEWORKの検証用のネットワークは以下のように決めています。

図 NEEDLEWORK検証用ネットワーク
図 NEEDLEWORK検証用ネットワーク

テスト対象ネットワークとNEEDLEWORKの物理的な接続

テスト対象ネットワークとNEEDLEWORK PCのイーサネットインタフェースを物理的に接続します。PCのイーサネットインタフェースにはわかりやすい名前をつけておくとよいでしょう。

図 NEEDLEWORK PCのインタフェースの例
図 NEEDLEWORK PCのインタフェースの例

R13 Fa0/1とTEST1、R23 Fa0/1とTEST2を接続します。PCのイーサネットインタフェースは、NEEDLEWORK上では「OSインタフェース」と紐づけます。

NEEDLEWORK インタフェース設定

NEEDLEWORKのインタフェース設定を行います。この際、PCのイーサネットインタフェースとNEEDLEWORKのインタフェースを紐づけます。PCのイーサネットインタフェースは「OSインタフェース」として、Windowsシステムで認識されている名前で識別します。NEEDLEWORKのインタフェースは、「eth0/1」「eth0/2」「eth0/3」の3つです。そして、以下のリンクタイプを決めて適切なIPアドレスを設定します。

リンクタイプ概要
Physical通常のイーサネットリンク(ルーテッドポート)
VLANトランク(タグVLAN)リンク(SVI)
PPPoEPPPoEリンク

具体的に、以下のリンクのインタフェース設定を行っていきましょう。

  • R13 Fa0/1 – TEST1間のリンク
  • R23 Fa0/1 – TEST2間のリンク

R13 Fa0/1 – TEST1間のリンク

R13 Fa0/1 – TEST1は、複数のVLANのイーサネットフレームを多重化するのでトランク(タグVLAN)リンクとして設定します。メニューから[インタフェース設定]画面を開き、設定したいNEEDLEWORKインタフェース「eth0/1」をクリックします。OSインタフェース「TEST1」をNEEDLEWORKインタフェース「eth0/1」と紐づけます。

図 NEEDLEWORKインタフェース設定 eth0/1
図 NEEDLEWORKインタフェース設定 eth0/1

さらに、VLANインタフェースを追加します。VLANインタフェースは、Cisco CatalystスイッチでのSVIに相当するインタフェースです。[新規作成]をクリックして、VLAN100のR13Fa0/1.100とのリンクのVLAN100インタフェースを次のパラメータで作成します。

インタフェース名VLAN100
タイプVLAN
IPアドレス/CIDR10.1.100.111/24
VLAN ID100
Baseインタフェースeth0/1
 図 NEEDLEWORKインタフェース設定 VLAN100
図 NEEDLEWORKインタフェース設定 VLAN100

これでVLAN100(10.1.100.0/24)を通じて、R13とNEEDLEWORKがつながっていることになります。

図 R13 Fa0-1 – TEST1 VLAN100のリンク
図 R13 Fa0-1 – TEST1 VLAN100のリンク

同様に考えて、R13 Fa0/1 – TEST1間のVLAN200のリンクも作成します。

インタフェース名VLAN200
タイプVLAN
IPアドレス/CIDR10.1.200.112/24
VLAN ID200
Baseインタフェースeth0/1
図 NEEDLEWORKインタフェース設定 VLAN200
図 NEEDLEWORKインタフェース設定 VLAN200
図 R13 Fa0-1 – TEST1 VLAN200のリンク
図 R13 Fa0-1 – TEST1 VLAN200のリンク

R23 Fa0/1 – TEST2間のリンク

R23 Fa0/1 – TEST2間は、シンプルなイーサネットリンクとして設定します。OSインタフェース「TEST2」とNEEDLEWORKインタフェース「eth0/2」を紐づけて、IPアドレスを設定するだけでOKです。Cisco Catalystスイッチでのルーテッドポートの設定に相当します。

 図 NEEDLEWORKインタフェース設定 eth0/2/
図 NEEDLEWORKインタフェース設定 eth0/2/

これでR23 Fa0/1とNEEDLEWORK eth0/2が通常のイーサネットリンクの10.2.100.0/24のネットワークでつながっていることになります。

 R23 Fa0/1 – eth0/2間のリンク
R23 Fa0/1 – eth0/2間のリンク

NEEDLEWORK 仮想ルータの設定

基本的に仮想ルータを経由してテスト用トラフィックを送受信することになります。そのために、仮想ルータの設定が必要です。仮想ルータの設定の手順は次の3つです。なお、仮想ルータは、ルータというよりもレイヤ3スイッチのほうが近いイメージです。

  1. テスト対象ネットワークへのアップリンクとなるインタフェースを指定
  2. 「internal」ネットワークの作成
  3. テスト対象ネットワークへのスタティックルートの設定

このサンプルでは、3つの仮想ルータを設定します。

  • VR11
  • VR12
  • VR21

VR11

VR11は、試験端末をエミュレートする10.1.1.0/24のネットワークをVLAN100経由で、テスト対象ネットワークに接続します。[仮想ルータを追加]をクリックして、仮想ルータの設定を行います。

仮想ルータの設定は、まず、仮想ルータの名前とテスト対象ネットワークへのアップリンクとなるインタフェースを決めます。[全般設定]タブから仮想ルータ名とアップリンクのインタフェース名を決めます。

仮想ルータ名VR11
インタフェース名VLAN100
図 VR11 全般設定
図 VR11 全般設定

そして、[ルート設定]タブで試験端末をエミュレートする10.1.1.0/24のネットワークを作成します。internalのタイプが試験端末をエミュレートするネットワークのルートです。internalタイプのルートの設定はネットワークアドレスだけでOKです。

タイプ宛先IPアドレスネクストホップ
internal10.1.1.0/24N/A

さらにexternalのタイプのルート設定も必要です。externalタイプのルートは、テスト対象ネットワークへのスタティックルートです。最もシンプルな設定はデフォルトルート0.0.0.0/0を設定することです。ネクストホップはテスト対象ネットワークの入り口となるR13 Fa0/1.100のIPアドレス 10.1.100.13です。

タイプ宛先IPアドレスネクストホップ
external0.0.0.0/010.1.100.13
図 VR11 ルート設定
図 VR11 ルート設定

以下の図は、VR11の設定をまとめたものです。

図 VR11の設定
図 VR11の設定

VR12

VR12は、試験端末をエミュレートする10.1.2.0/24のネットワークをVLAN200経由で、テスト対象ネットワークに接続します。VR11の設定と考え方は同じです。

仮想ルータ名VR12
インタフェース名VLAN200
図 VR12 全般設定
図 VR12 全般設定
タイプ宛先IPアドレスネクストホップ
internal10.1.2.0/24N/A
external0.0.0.0/010.1.200.13
図 VR12 ルート設定
図 VR12 ルート設定

以下の図は、VR12の設定をまとめたものです。

図 VR12の設定
図 VR12の設定

VR21

VR12は、試験端末をエミュレートする10.2.1.0/24のネットワークをeth0/2経由で、テスト対象ネットワークに接続します。VR11/VR12の設定と考え方は同じです。

仮想ルータ名VR21
インタフェース名eth0/2
図 VR21 全般設定
図 VR21 全般設定
タイプ宛先IPアドレスネクストホップ
internal10.2.1.0/24N/A
external0.0.0.0/010.2.100.23
図 VR21 ルート設定
図 VR21 ルート設定

以下の図は、VR21の設定をまとめたものです。

図 VR21の設定
図 VR21の設定

これでNEEDLEWORKのネットワーク通信テストを行うための設定は完了です。ここまで行ったNEEDLEWORKの設定の全体像を図にまとめておきましょう。

図 NEEDLEWORK設定の全体像

テスト対象ネットワークのルーティングも考える

ここまで設定したようにNEEDLEWORKの仮想ルータの配下に、試験端末をエミュレートするためのネットワークを作成しています。テスト対象ネットワークのルータやレイヤ3スイッチがそれらのネットワークへルーティングできるようにしなければいけないことにも注意してください。

今回のサンプルでは、R13およびR23でNEEDLEWORKの仮想ネットワークのスタティックルートを設定して、OSPFへ再配送しています。

R13 NEEDLEWORK仮想ネットワークへのルーティング

router ospf 1
 redistribute static subnets
!
ip route 10.1.1.0 255.255.255.0 10.1.100.111
ip route 10.1.2.0 255.255.255.0 10.1.200.112

R23 NEEDLEWORK仮想ネットワークへのルーティング

router ospf 1
 redistribute static subnets
!
ip route 10.2.1.0 255.255.255.0 10.2.100.121

ネットワーク通信テストの実行

さて、ネットワーク通信テストを実行する準備が整いました。メニューの[ネットワークテスト]から、テスト用トラフィックを生成するためのテストシナリオを作成します。テストシナリオで必須なのは、送信元IPアドレスと宛先IPアドレスです。送信元IPアドレスと宛先IPアドレスを指定することで、試験端末をエミュレートしていることになります。

図 テストシナリオ
図 テストシナリオ

上記のテストシナリオでは、以下の試験端末間のPingとTracerouteのトラフィックを生成できます。

送信元IP所属VR宛先IP所属VR
10.1.1.100VR1110.2.1.100VR21
10.1.2.100VR1210.2.1.100VR21

生成されたテスト用トラフィックはVRを介して、テスト対象ネットワークへと転送されていくことになります。

図 テスト用トラフィックの生成
図 テスト用トラフィックの生成

テストシナリオを作成したら、いよいよテストの実行です。[NWテスト画面を開く]をクリックして、[実行]でテスト実行です。

図 テストシナリオの実行
図 テストシナリオの実行

テストを開始すると、正常時のTracerouteを実行したあとに継続的にPingを実行します。テスト対象ネットワーク内のメインの広域イーサネットで障害を起こしてみて、想定通りに経路を切り替えられているかを確認します。テスト結果で赤い部分が通信断となっています。約6秒でバックアップの広域イーサネットに切り替わりPingが再開できていることが確認できます。なお、テスト終了時にもTracerouteを実行して、切り替わった経路がわかるようにしています。

図 テストシナリオの実行中
図 テストシナリオの実行中

テストを終了すると、テストを実施したときのNEEDLEWORK設定、テストシナリオ、テスト結果のエビデンスファイルが自動的にダウンロードされます。

ファイル名概要
config_xxxx.tomlNEEDLEWORK設定ファイル
Network_testscenario_xxxx.csvテストシナリオファイル
ping_info_summary.txtPing実行結果の概要
trace_result_after.txtテスト終了時のTraceroute結果
trace_result_before.txtテスト開始時のTraceroute結果
ping_detailsフォルダPing実行結果の詳細
図 テストのエビデンスファイル
図 テストのエビデンスファイル

以上、NEEDLEWORKのネットワーク通信テストのサンプルです。NEEDLEWORK内に検証用ネットワークを自由に作成したうえで、柔軟にテスト用トラフィックを生成できることがわかるでしょう。

まとめとリンク

NEEDLEWORKでいろんなテスト用トラフィックを作成して、ネットワークのテストをとても効率よく行うことができます。インタフェースや仮想ルータの設定が少し難しく感じるかもしれませんが、一度、設定してみてテストを行ってみるとすぐに慣れるでしょう。

無償ライセンスが提供されているので、とりあえず試してみることができます。興味を持たれたら、ぜひ、NEEDLEWORKを試してみてください。

リンクと関連記事