目次
概要
ネットワークのテストは大変。いろんなパターンのテスト用のトラフィックを生成しなければいけません。そのために、検証用の端末の接続をあれこれ変えたり、設定を変更したりなど面倒なものです。
NEEDLEWORKを利用すると、テスト用のトラフィックを思いのままに生成して、テストを自動的に実行できます。NEEDLEWORKの特徴と基本的な使い方をみてみましょう。
NEEDLEWORKとは
NEEDLEWORK( https://www.ap-com.co.jp/ja/needlework/ )は、エーピーコミュニケーションズのテスト自動化ツールです。(エーピーコミュニケーションズさんといえば、Ciscoなどのネットワーク機器のカプセルトイという一部のユーザを強烈に惹きつける製品で話題になったことを覚えています)
NEEDLEWORKで自動化できるテストは、以下の3つです。
- ネットワーク通信テスト
- FW/UTMポリシーテスト
- 負荷テスト
テストの自動化を言い換えると、
「高性能なトラフィックジェネレータ」
です。
テストするためには、いろんなパターンのテスト用トラフィックを生成しなければいけません。検証用のルータやレイヤ3スイッチなどで検証用ネットワークを作り、試験端末を接続します。そして、それらの機器の接続や設定をあれこれ変えたりして、Ping/TracerouteやHTTPメッセージなどなどテスト用トラフィックを生成しなければいけません。これは非常に面倒です。
NEEDLEWORKをインストールしたPCがあれば、検証用ネットワークと試験端末をエミュレートできます。そして、あらかじめ定義したシナリオに基づいてテスト用トラフィックを生成して、ネットワークのテストを実行可能です。
NEEDLEWORKは、上で紹介したネットワークテストごとに異なるアプリケーションとして実装されています。ネットワークテストごとに生成できるトラフィックが違います。
ネットワーク通信テストは、とてもシンプルにPingやTraceroute、つまりICMPトラフィックを生成できます。FW/UTMポリシーテストでは、HTTP/SMTPなどのアプリケーションプロトコルまでの詳細なトラフィックを生成できます。そして、負荷テストはDSCPなどのQoSマーキング情報を付加して、最大でギガビットのワイヤレートの負荷をかけたスループット計測のトラフィックを生成します。大量のTCPセッションのセッション計測に利用できるトラフィックも生成できます。
いずれのテストにしろ、テストの仕様を決めて、それに基づいてNEEDLEWORKの検証用ネットワークを設定します。そして、テスト用トラフィックのシナリオを作成すればすぐにテストを実施できます。テスト結果のエビデンスも自動的にまとめてくれるので、テストに要する工数を大幅に削減できるでしょう。
ただ、NEEDLEWORKを使いこなすには、多少はネットワーク技術に習熟しておかないといけません。TCP/IP、VLAN/レイヤ3スイッチ、IPルーティングを理解しておかないとNEEDLEWORKの検証用ネットワークの設定は難しく感じると思います。
以降で、NEEDLEWORKのネットワーク通信テストの基本的な使い方を解説します。
NEEDLEWORK ネットワーク通信のテストの基本的な使い方
ネットワーク通信テストの流れ
NEEDLEWORKでネットワーク通信テストを行う流れは、次の通りです。
- テスト対象ネットワークとNEEDLEWORKの物理的な接続
- NEEDLEWORK インタフェースの設定
- NEEDLEWORK 仮想ルータの設定
- ネットワーク通信テストの実行
テスト対象ネットワークとNEEDLEWORKの物理的な接続
まずは、テスト対象ネットワークとNEEDLEWORKのPCのイーサネットインタフェースを物理的に接続しなければいけません。NEEDLEWORKはUSB接続のイーサネットインタフェースを増設して最大3つのイーサネットインタフェースをサポートしています。NEEDLEWORK PCのイーサネットインタフェースとテスト対象ネットワークを物理的に接続します。
サポートしているUSBイーサネットインタフェースは次のURLに記載されています。 https://www.ap-com.co.jp/ja/needlework/spec.html
NEEDLEWORK インタフェース設定
テスト対象ネットワークと接続しているインタフェースの設定を行います。テスト対象ネットワークとNEEDLEWORK PCのイーサネットインタフェースのリンクとして、次の3つのタイプを設定できます。
リンクタイプ | 概要 |
Physical | 通常のイーサネットリンク(ルーテッドポート) |
VLAN | トランク(タグVLAN)リンク(SVI) |
PPPoE | PPPoEリンク |
NEEDLEWORK PCへのリンクは、仮想的なレイヤ3スイッチに接続するイメージです。
「Physical」タイプは、Ciscoレイヤ3スイッチでいうところのルーテッドポートでの接続です。NEEDLEWORKのイーサネットインタフェースに直接IPアドレスを設定して、テスト対象ネットワークと接続します。「VLAN」タイプは、Ciscoレイヤ3スイッチでのSVIでの接続です。テスト対象ネットワークとトランク(タグVLAN)リンクで接続したうえで、VLANごとにSVIを作成してIPアドレスを設定します。「PPPoE」タイプは、NEEDLEWORKが簡易的なPPPoEサーバとなりテスト対象ネットワークとPPPoEで接続します。PPPoE方式のインターネット接続をエミュレートできます。
インタフェースの設定は、NEEDLEWORKのメニューの[インタフェース設定]から行います。
NEEDLEWORK 仮想ルータの設定
検証用ネットワークを作るために、NEEDLEWORK 仮想ルータの設定を行います。「仮想ルータ」という名称ですが、レイヤ3スイッチと考えたほうがわかりやすいでしょう。
仮想ルータは、任意の名前で設定できます。テスト対象ネットワークへのアップリンクになるインタフェースと試験端末をエミュレートするネットワークを決めます。また、テスト対象ネットワークへルーティングするためのスタティックルートの設定も必要です。
なお、NEEDLEWORKの仮想ルータ側のルーティングだけではなく、テスト対象ネットワークのルータやレイヤ3スイッチのルーティングも考えないといけません。
仮想ルータの設定は、NEEDLEWORKのメニューの[仮想ルータ設定]から行います。
ネットワーク通信テストの実行
テスト用トラフィックの宛先/送信元IPアドレスを指定することで、テスト用トラフィックを生成します。IPアドレスから所属する仮想ルータを判断して、テスト用トラフィックのフローが決まります。
NEEDLEWORKのメニューの[ネットワークテスト]から、テスト用トラフィックのIPアドレスなどのパラメータを指定してテストシナリオを作成します。そして、テストシナリオに基づいたネットワーク通信テストを実行します。
NEEDLEWORK ネットワーク通信テストのサンプル
NEEDLEWORKを利用したネットワーク通信テストのサンプルを考えてみましょう。冗長化された広域イーサネットの経路の切り替え試験のサンプルです。ルーティングプロトコルにOSPFを利用して、メインの広域イーサネットがダウンしたらバックアップの広域イーサネットに切り替えることを想定しています。テスト対象ネットワークは、Ciscoルータで構築しています。R13およびR23とNEEDLEWORK PCの接続は以下のように行います。
そして、テスト用トラフィックを生成するためのNEEDLEWORKの検証用のネットワークは以下のように決めています。
テスト対象ネットワークとNEEDLEWORKの物理的な接続
テスト対象ネットワークとNEEDLEWORK PCのイーサネットインタフェースを物理的に接続します。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) |
PPPoE | PPPoEリンク |
具体的に、以下のリンクのインタフェース設定を行っていきましょう。
- 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」と紐づけます。
さらに、VLANインタフェースを追加します。VLANインタフェースは、Cisco CatalystスイッチでのSVIに相当するインタフェースです。[新規作成]をクリックして、VLAN100のR13Fa0/1.100とのリンクのVLAN100インタフェースを次のパラメータで作成します。
インタフェース名 | VLAN100 |
タイプ | VLAN |
IPアドレス/CIDR | 10.1.100.111/24 |
VLAN ID | 100 |
Baseインタフェース | eth0/1 |
これでVLAN100(10.1.100.0/24)を通じて、R13とNEEDLEWORKがつながっていることになります。
同様に考えて、R13 Fa0/1 – TEST1間のVLAN200のリンクも作成します。
インタフェース名 | VLAN200 |
タイプ | VLAN |
IPアドレス/CIDR | 10.1.200.112/24 |
VLAN ID | 200 |
Baseインタフェース | eth0/1 |
R23 Fa0/1 – TEST2間のリンク
R23 Fa0/1 – TEST2間は、シンプルなイーサネットリンクとして設定します。OSインタフェース「TEST2」とNEEDLEWORKインタフェース「eth0/2」を紐づけて、IPアドレスを設定するだけでOKです。Cisco Catalystスイッチでのルーテッドポートの設定に相当します。
これでR23 Fa0/1とNEEDLEWORK eth0/2が通常のイーサネットリンクの10.2.100.0/24のネットワークでつながっていることになります。
NEEDLEWORK 仮想ルータの設定
基本的に仮想ルータを経由してテスト用トラフィックを送受信することになります。そのために、仮想ルータの設定が必要です。仮想ルータの設定の手順は次の3つです。なお、仮想ルータは、ルータというよりもレイヤ3スイッチのほうが近いイメージです。
- テスト対象ネットワークへのアップリンクとなるインタフェースを指定
- 「internal」ネットワークの作成
- テスト対象ネットワークへのスタティックルートの設定
このサンプルでは、3つの仮想ルータを設定します。
- VR11
- VR12
- VR21
VR11
VR11は、試験端末をエミュレートする10.1.1.0/24のネットワークをVLAN100経由で、テスト対象ネットワークに接続します。[仮想ルータを追加]をクリックして、仮想ルータの設定を行います。
仮想ルータの設定は、まず、仮想ルータの名前とテスト対象ネットワークへのアップリンクとなるインタフェースを決めます。[全般設定]タブから仮想ルータ名とアップリンクのインタフェース名を決めます。
仮想ルータ名 | VR11 |
インタフェース名 | VLAN100 |
そして、[ルート設定]タブで試験端末をエミュレートする10.1.1.0/24のネットワークを作成します。internalのタイプが試験端末をエミュレートするネットワークのルートです。internalタイプのルートの設定はネットワークアドレスだけでOKです。
タイプ | 宛先IPアドレス | ネクストホップ |
internal | 10.1.1.0/24 | N/A |
さらにexternalのタイプのルート設定も必要です。externalタイプのルートは、テスト対象ネットワークへのスタティックルートです。最もシンプルな設定はデフォルトルート0.0.0.0/0を設定することです。ネクストホップはテスト対象ネットワークの入り口となるR13 Fa0/1.100のIPアドレス 10.1.100.13です。
タイプ | 宛先IPアドレス | ネクストホップ |
external | 0.0.0.0/0 | 10.1.100.13 |
以下の図は、VR11の設定をまとめたものです。
VR12
VR12は、試験端末をエミュレートする10.1.2.0/24のネットワークをVLAN200経由で、テスト対象ネットワークに接続します。VR11の設定と考え方は同じです。
仮想ルータ名 | VR12 |
インタフェース名 | VLAN200 |
タイプ | 宛先IPアドレス | ネクストホップ |
internal | 10.1.2.0/24 | N/A |
external | 0.0.0.0/0 | 10.1.200.13 |
以下の図は、VR12の設定をまとめたものです。
VR21
VR12は、試験端末をエミュレートする10.2.1.0/24のネットワークをeth0/2経由で、テスト対象ネットワークに接続します。VR11/VR12の設定と考え方は同じです。
仮想ルータ名 | VR21 |
インタフェース名 | eth0/2 |
タイプ | 宛先IPアドレス | ネクストホップ |
internal | 10.2.1.0/24 | N/A |
external | 0.0.0.0/0 | 10.2.100.23 |
以下の図は、VR21の設定をまとめたものです。
これで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.100 | VR11 | 10.2.1.100 | VR21 |
10.1.2.100 | VR12 | 10.2.1.100 | VR21 |
生成されたテスト用トラフィックはVRを介して、テスト対象ネットワークへと転送されていくことになります。
テストシナリオを作成したら、いよいよテストの実行です。[NWテスト画面を開く]をクリックして、[実行]でテスト実行です。
テストを開始すると、正常時のTracerouteを実行したあとに継続的にPingを実行します。テスト対象ネットワーク内のメインの広域イーサネットで障害を起こしてみて、想定通りに経路を切り替えられているかを確認します。テスト結果で赤い部分が通信断となっています。約6秒でバックアップの広域イーサネットに切り替わりPingが再開できていることが確認できます。なお、テスト終了時にもTracerouteを実行して、切り替わった経路がわかるようにしています。
テストを終了すると、テストを実施したときのNEEDLEWORK設定、テストシナリオ、テスト結果のエビデンスファイルが自動的にダウンロードされます。
ファイル名 | 概要 |
config_xxxx.toml | NEEDLEWORK設定ファイル |
Network_testscenario_xxxx.csv | テストシナリオファイル |
ping_info_summary.txt | Ping実行結果の概要 |
trace_result_after.txt | テスト終了時のTraceroute結果 |
trace_result_before.txt | テスト開始時のTraceroute結果 |
ping_detailsフォルダ | Ping実行結果の詳細 |
以上、NEEDLEWORKのネットワーク通信テストのサンプルです。NEEDLEWORK内に検証用ネットワークを自由に作成したうえで、柔軟にテスト用トラフィックを生成できることがわかるでしょう。
まとめとリンク
NEEDLEWORKでいろんなテスト用トラフィックを作成して、ネットワークのテストをとても効率よく行うことができます。インタフェースや仮想ルータの設定が少し難しく感じるかもしれませんが、一度、設定してみてテストを行ってみるとすぐに慣れるでしょう。
無償ライセンスが提供されているので、とりあえず試してみることができます。興味を持たれたら、ぜひ、NEEDLEWORKを試してみてください。