NEEDLEWORK は負荷試験においても活躍
ネットワークテスト自動化アプライアンスである NEEDLEWORK では、大量のトラフィックを発生させるスループットテスト
という機能があります。
スループットテストでは、広帯域のトラフィックを発生させることができ(実測値では 960 Mbps
程度を確認)、パケットに IP Precedence/DSCP、ToS を付与することも可能です。
なお、スループットテストのトラフィックに使用できるプロトコルは udp のみです。
以下では、スループットテストの実行例と、FortiGate の帯域制御設定についての検証への活用例を記載します。
テストシナリオのパラメータ
テストシナリオの主なパラメータは以下です。
- プロトコル
- udp のみ使用可能
- 送信元
- IP アドレス
- ポート
- 未指定の場合ランダム
- ネクストホップ IP
- テスト対象環境における送信元エンドポイント側のゲートウェイアドレス
- VLAN
- 未指定の場合タグ無し
- 宛先
- IP アドレス
- ポート
- ネクストホップ IP
- テスト対象環境における宛先エンドポイント側のゲートウェイアドレス
- VLAN
- 未指定の場合タグ無し
- オプション
- フレームサイズ
- 64〜1518 [byte] から指定
- デフォルトは IMIX(64 byte、570 byte、1518 byte のミックス)
- 最大PPS
- 100〜1,000,000 [pps] から指定
- デフォルトは 1,000,000 pps
- フレームサイズ
- QoS
- ToS/DSCP
- 優先制御に使⽤する情報
- デフォルトは無し
- PPrecedence/DSCP値
- デフォルトは 0
- Tos値
- デフォルトは 0
- ToS/DSCP
※赤字は指定必須パラメータ
スループットテストを使ってみる
検証環境
- NEEDLEWORK:
- アプライアンス: 仮想アプライアンス
- バージョン: 1101
- テスト対象機器: FortiGate 60E (ver.7.0.3)
- ホストマシンスペック:
- CPU: 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 1.69 GHz
- USB LAN アダプタ:
- 構成: 以下画像の通り

スループットテストの実行
ダッシュボード画面で左上のメニューからスループットテストを選択します。

スループットテスト画面が表示されるため、テストシナリオを入力します。
※CSV ファイルでシナリオを作成し、それをインポートすることも可能です
ここではテスト環境に合わせてシナリオを以下の通りとします。
- プロトコル: udp
- 送信元 IP: 10.1.10.100
- 送信元ネクストホップIP: 10.1.10.1
- 宛先 IP: 172.16.1.100
- 宛先ポート: 100
- 宛先ネクストホップIP: 10.150.100.1
- フレームサイズ: 1518
- トラフィック帯域を最大にするためにはフレームサイズを最大値の 1518 に設定する
- その他: 指定無し

シナリオを入力したら、画面左上の [実行] をクリックしてスループットテストを開始します。

実行中画面
テスト実行中は、画面上に以下のように BPS、送受信ビット数、ロス率、送受信パケットの情報がリアルタイムに表示されます。

スループットテストの停止
画面左上の [停止] をクリックするとテストを停止できます。

テスト結果グラフの確認
テスト結果欄にある [グラフを表示する] をクリックするとテスト結果のグラフを確認できます。

以下のようなグラフが表示されます。

グラフ画面左上の [キャプチャを撮る] をクリックすると、グラフ画面を png ファイルとして保存することができます。(ダウンロード時は zip になっている)

テストエビデンスの取得
スループットテスト実行後、画面左上の [エビデンス] をクリックするとテストエビデンスを保存できます。

テストエビデンスとしては、 BPS、送受信ビット数、ロス率、送受信パケットそれぞれの時系列データの CSV となっています。(ダウンロード時は zip になっている)

グラフ画像などは含まれていないため、画面上のテスト結果やグラフのキャプチャは手動で取得する必要があります。
帯域制限の検証への活用例
検証環境
FortiGate にて、送信元が 10.1.10.100 の場合は最大帯域を 100 Mbps
に制限する設定をしてみます。

FortiGate での設定内容は以下の通りです。
◆トラフィックシェイパー

◆トラフィックシェイピングポリシー

スループットテストの実行
FortiGate のトラフィックシェイピングポリシーを無効にした状態でスループットテストを開始し、途中でトラフィックシェイピングポリシーを有効化してみます。
結果のグラフは以下の通りです。トラフィックシェイピングポリシーを有効化した後、帯域幅が減少していることが分かります。

トラフィックシェイピングポリシーを有効化した後のテスト結果を見てみると、BPS が 100 Mbps 以下になっていることが分かります。

BPS 時系列のエビデンスを見てみると、トラフィックシェイピングポリシー有効化後は 100 Mbps を若干上回っている時間帯があるものの、平均するとほぼ 100 Mbps になっていることを確認できました。

スループットテストに関する小ネタ
USB LAN アダプタの相性
上記では USB LAN アダプタとして UGREEN と BUFFALO の組み合わせを使用していますが、この他、TP-Link のものも使用してみました。結果、TP-Link を使用した組み合わせでは、最初の 1 分程度は一旦 BPS が下がるタイミングがありが不安定になっていました(以下グラフのように)。帯域が不安定な場合は使用する USB LAN アダプタを変えてみても良いかもしれません。

USB ハブを使用した構成でもできなくはないが不安定
公式では USB ハブは使用しないことが推奨されていますが、USB ハブを介して USB LAN アダプタを接続した構成でもスループットテストはできなくはありません。ただし、試した結果、最初の 1 分程度は BPS が不安定になることを確認しています(上のグラフと同じような状況)。正式なエビデンスを残す場合は USB ハブを使用しないことをお勧めします。
ARP 解決失敗のエラーが出る場合がある
スループットテストを実行した際に以下のようなエラーになることが何度かありました。

スループットテストを実行し直すとエラーが出なくなったため、この場合はテストを実行し直してみると良いかもしれません。
パケットロスのグラフが実行時間 1 分を超えるとバグる?
スループットテストの実行時間が 1 分以内の場合、パケットロスのグラフは以下のように適切な形状のグラフになっています。

一方、同じ条件のテストで実行時間が 1 分 1 秒以上の場合、以下のように底辺に張り付いた形のグラフになりました。

明らかに縦軸の目盛りの値設定がおかしいですね。
ただ上に記載している帯域制限の検証時のグラフでは 2 分程度の実行時間でもパケットロスのグラフは正常に見えるので、単純に実行時間だけの問題ではなさそうです。こういこともあるということで。
参考資料


<評価ライセンス申請は以下から>