ぶうの学習帳

ぶうの学習帳

サラリーマンエンジニアがIT技術について調査した内容を学習帳にまとめます

トラフィックジェネレーターが欲しい - iperf3 調査編1

高性能じゃなくてもいいので、IPの試験トラフィック流してくれるちょっとしたトラフィックジェネレーターが欲しい!

日常生活の中で度々そんな場面に遭遇しませんか?

僕は度々遭遇します。

ちょっと調べてみたところ、IPネットワークにおけるTCP/UDP/SCTPの速度試験ツールで、iperfというフリーソフトがあるらしいので試してみました。

現在の最新版はiperf3です。

ユーザマニュアルは以下のサイトに掲載されております。

https://iperf.fr/iperf-doc.php

なお、今回は以下の図内のように、clientとserverというUbuntu 18.04のlinuxマシンにiperf3をインストールして動かしてみました。

f:id:bububuu:20200514232754p:plain

事前準備

サーバ間の疎通確認

ubuntu@client:~$ ping 192.168.1.20
PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.
64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=0.475 ms
64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.473 ms
^C
--- 192.168.1.20 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1007ms
rtt min/avg/max/mdev = 0.473/0.474/0.475/0.001 ms

iperf3のインストール ※両サーバに対してインストールを行う

ubuntu@client:~$ sudo apt install iperf3
ubuntu@client:~$ iperf3 -v
iperf 3.1.3
Linux client 4.15.0-72-generic #81-Ubuntu SMP Tue Nov 26 12:20:02 UTC 2019 x86_64
Optional features available: CPU affinity setting, IPv6 flow label, TCP congestion algorithm setting, sendfile / zerocopy, socket pacing

TCPトラフィック送信

TCPトラフィックを送信してみました。

まずserver側でiperf3をサーバモードで起動します。

ubuntu@server:~$ iperf3 -s

次にclient側でiperf3をクライアントモードで起動し、疎通先にserverのIPを指定します。

ubuntu@client:~$ iperf3 -c 192.168.1.20

プロトコルを指定しない(デフォルト) = TCP

すると、下図のような感じでclient側とserver側にログが流れました。 f:id:bububuu:20200514232925p:plain

UDPトラフィック送信

続いて、UDPトラフィックを送信してみました。

先ほどと同様、まずserver側でiperf3をサーバモードで起動し、client側で以下コマンドを実行します。

ubuntu@client:~$ iperf3 -c 192.168.1.20 --udp

すると、下図のような感じでclient側とserver側にログが流れました。

SCTPトラフィック送信f:id:bububuu:20200514232948p:plain

続いて、SCTPです。

server側でiperf3をサーバモードで起動し、client側で以下コマンドを実行します。

ubuntu@client:~$ iperf3 -c 192.168.1.20 --sctp

すると、、、おや、エラーになりましたね。 f:id:bububuu:20200514233009p:plain

google先生にエラー内容を聞いてみましたが、以下サイトのように、バグっぽいです。 https://stackoverflow.com/questions/34180801/iperf3-unrecognized-option-sctp https://access.redhat.com/solutions/3482281

今後、改修されるか注目してみます