概要

ネットワークテストを自動化するNEEDLEWORKは、実機のネットワークだけではなくGNS3の仮想ネットワークでも利用できます。NEEDLEWORKとGNS3の接続について解説します。

NEEDLEWORKとGNS3接続のメリット

NEEDLEWORKは、ネットワークテストを自動化するためのソフトウェアです。そのため、基本的には実ネットワークと接続して利用することでしょう。すると、NEEDLEWORKとGNS3を接続しても意味がないのでは?と思うかもしれません。NEEDLEWORKとGNS3を接続することは、テストを効率化するというよりも、設計時のPoC(Proof of Concept)に役立ちます。

NEEDLEWORKは、「高機能なトラフィックジェネレータ」として利用できます。1台のPC上で、GNS3でいろんなネットワーク構成を作ります。そして、NEEDLEWORKでいろんなトラフィックを生成して、設計時のコンセプトが機能するかを検証できるようになります。

NEEDLEWORKとGNS3の接続の手順

NEEDLEWORKとGNS3の仮想ネットワークを接続するための手順はとてもシンプルです。

  1. イーサネットインタフェースをとりあえずリンクアップさせる
  2. GNS3で[Cloud]とイーサネットインタフェースを紐づける
  3. NEEDLEWORKで[eth0/i (i=1,2,3)]とイーサネットインタフェースを紐づける

GNS3では[Cloud]でホストOSのイーサネットインタフェースを紐づけて、GNS3でエミュレートする機器とリンクできます。そして、NEEDLEWORK上ではイーサネットインタフェースを[eth0/i (i=1,2,3)]で認識して、ホストOSのイーサネットインタフェースと紐づけます。こうして、GNS3側とNEEDLEWORK側の両方からホストOSのイーサネットインタフェースを紐づけることで、GNS3のネットワークとNEEDLEWORKをリンクさせることができます。

図 NEEDLEWORKとGNS3の接続の概要
図 NEEDLEWORKとGNS3の接続の概要

GNS3とNEEDLEWORKをリンクしたら、あとは以下の手順です。

  1. GNS3でIPアドレスやルーティングの設定
  2. NEEDLEWORKで仮想ルータの設定
  3. NEEDLEWORKでテストシナリオを作成してテストを実行

GNS3上のルータなどにNEEDLEWORKでエミュレートする仮想ネットワークへ通信できるようにしなければいけません。NEEDLEWORKとのリンクのIPアドレスやルーティングの設定を行います。

また、NEEDLEWORK上では仮想ルータの設定が必要です。GNS3のネットワークへのアップリンクとなるインタフェースと仮想ルータのルーティングテーブルを作ります。

あとは、テストシナリオを作成してテストを実行すれば、テストシナリオに基づいたトラフィックを生成して、GNS3のネットワークへ転送されるようになります。

なお、実際には試していませんが、GNS3以外のEVE-NGでもCMLでもNEEDLEWORKとリンクできると思います。

NEEDLEWORKとGNS3の接続の例

具体的にNEEDLEWORKとGNS3を接続してみましょう。GNS3でCisco IOSルータ1台だけのシンプルなネットワークとNEEDLEWORKを接続します。

NEEDLEWORKでは、仮想ルータVR1とVR2を定義して、それぞれの配下に192.168.100.0/24と192.168.200.0/24のネットワークを作成します。

図 NEEDLEWORKとGNS3の接続例
図 NEEDLEWORKとGNS3の接続例

イーサネットインタフェースをとりあえずリンクアップさせる

ホストOSのイーサネットインタフェースはとりあえずリンクアップしておけばいいです。適当なレイヤ2スイッチに接続しておきましょう。また、わかりやすくするためにインタフェースに名前をつけておいたほうがいいです。

図 イーサネットインタフェースのリンクアップ
図 イーサネットインタフェースのリンクアップ

[GNS3] GNS3で[Cloud]とイーサネットインタフェースを紐づける

GNS3で[Cloud]とホストOSのイーサネットインタフェースを紐づけます。[Cloud]をワークスペースに配置して、ルータのインタフェースとのリンクを設定します。このとき[Cloud]のリンク先としてNEEDLEWORKとつなげたいホストOSのイーサネットインタフェースを選べばOKです。

図 GNS3 [Cloud]とイーサネットインタフェースの紐づけ
図 GNS3 [Cloud]とイーサネットインタフェースの紐づけ

[Cloud]にはわかりやすく名前をつけておいたほうがいいです。R1とホストOSのイーサネットインタフェースを以下のようにリンクさせます。

R1 Fa0/1 - TEST1
R1 Fa0/1 - TEST2

図 GNS3 [Cloud]とイーサネットインタフェース
図 GNS3 [Cloud]とイーサネットインタフェース

[NEEDLEWORK] NEEDLEWORKで[eth0/i (i=0,1,2)]とイーサネットインタフェースを紐づける

NEEDLEWORKでホストOSのイーサネットインタフェースをNEEDLEWORKで認識するeth0/i(i=1,2,3)に紐づけます。このとき、eth0/iは3種類に設定できますが、ここでは、単なるイーサネットリンクとして設定します。また、IPアドレスの設定が必要です。

NEEDLEWORKインタフェースホストOSインタフェースIPアドレス
eth0/1TEST1192.168.1.2/24
eth0/2TEST2192.168.2.2/24
図 NEEDLEWORK eth0/1の設定
図 NEEDLEWORK eth0/1の設定
図 NEEDLEWORK eth0/2の設定
図 NEEDLEWORK eth0/2の設定
図 NEEDLEWORKインタフェース設定の一覧
図 NEEDLEWORKインタフェース設定の一覧

[GNS3] GNS3でIPアドレスやルーティングの設定

GNS3でCisco IOSルータR1の設定を行います。NEEDLEWORKと接続するインタフェースにIPアドレスの設定を行います。また、NEEDLEWORKの仮想ルータ配下のネットワークへルーティングできるようにスタティックルートを設定します。

R1(Cisco IOSルータ)のIPアドレス、ルーティング設定

interface FastEthernet0/0
 ip address 192.168.1.1 255.255.255.0
 no shutdown
!
interface FastEthernet0/1
 ip address 192.168.2.1 255.255.255.0
 no shutdown
!
ip route 192.168.100.0 255.255.255.0 192.168.1.2
ip route 192.168.200.0 255.255.255.0 192.168.2.2

[NEEDLEWORK] NEEDLEWORKで仮想ルータの設定

NEEDLEWORKで仮想ルータVR1とVR2を設定します。

VR1の設定

仮想ルータ名とGNS3のネットワークへのアップリンクになるインタフェースを決めます。

仮想ルータ名インタフェース名
VR1eth0/1
図 NEEDLEWORK 仮想ルータVR1の設定
図 NEEDLEWORK 仮想ルータVR1の設定

そして、仮想ルータのルーティングの設定を行います。[internal]は、仮想ルータ配下のネットワークアドレスです。[external]は、GNS3のネットワークへのルート情報です。簡単にするために[external]のルートはデフォルトルートとします。

VR1のルーティング設定は以下のようになります。

タイプ宛先IPアドレスネクストホップ
internal192.168.100.0N/A
external0.0.0.0/0192.168.1.1
図 NEEDLEWORK 仮想ルータVR1のルート設定
図 NEEDLEWORK 仮想ルータVR1のルート設定

VR2の設定

VR2の仮想ルータ名とアップリンクのインタフェースを決めます。

仮想ルータ名インタフェース名
VR2eth0/2
図 NEEDLEWORK 仮想ルータVR1の設定
図 NEEDLEWORK 仮想ルータVR2の設定

そして、VR2のルーティング設定は以下のようになります。

タイプ宛先IPアドレスネクストホップ
internal192.168.200.0N/A
external0.0.0.0/0192.168.2.1
図 NEEDLEWORK 仮想ルータVR2のルート設定
図 NEEDLEWORK 仮想ルータVR2のルート設定

NEEDLEWORKの仮想ルータリストは、次のような状態です。これで、NEEDLEWORKとGNS3を接続するための設定は完了です。

図 NEEDLEWORK 仮想ルータリスト
図 NEEDLEWORK 仮想ルータリスト

[NEEDLEWORK] NEEDLEWORKでテストシナリオを作成してテストを実行

テストシナリオを作成します。基本的に仮想ルータ配下のネットワークのIPアドレスを宛先や送信元として決めます。以下のテストシナリオを作成します。

図 NEEDLEWORK テストシナリオの作成
図 NEEDLEWORK テストシナリオの作成

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

送信元IP所属VR宛先IP所属VR
192.168.100.100VR1192.168.200.100VR2
図 NEEDLEWORKテストトラックの生成
図 NEEDLEWORKテストトラックの生成

テストを実行すると、Ping/Tracerouteの応答が正常に返ってきます。

図 テスト実行画面
図 テスト実行画面

まとめ

NEEDLEWORKは、実機のネットワークだけでなくGNS3上のネットワークとも接続できます。GNS3とNEEDLEWORKのそれぞれから、ホストOSのイーサネットインタフェースに紐づければOKです。1台のPCで、いろんなネットワーク構成を取ることができ、そのうえで、いろんなトラフィックを生成できます。