QoSの動作検証には jperf が役立ちます。jperfは、iperfをJavaによりGUIで操作できるソフトウェアであり、クライアント(送信側)からサーバ(受信側)に指定したトラフィック量を、指定した時間継続的に伝送させることができます。
この記事で紹介する jperf の設定方法は、jperf のバージョン「2.0.2」で確認した内容です。また、jperf を実行させたPCはWindows7(64bit)とWindows7(32bit)であり、これらで正常に動作することを確認しました。
注意点として、このソフトウェアは検証環境でのみ使用しましょう。使い方によって、ネットワークインフラに大きな負荷を与えてしまうので、本番(商用)ネットワークなどでは絶対に使用しないようにしましょう。検証環境(ローカル環境)でのみ利用すべきツールです。
JPerf / IPerf の設定方法、操作方法
JPerfを利用するためにソフトウェアをインストールする必要はありません。例えば、ダウンロードサイトから「jperf-2.0.2.zip」のファイルをダウンロードすれば、それを解凍します。解凍したディレクトリの中には「 jperf.bat 」ファイルがあります。
JPerfを起動させるためにはこの「 jperf.bat 」ファイルをクリックして実行します。
そうすると次の画面が表示されます。
以下の設定例では、送信側(192.168.1.10)から受信側(192.168.2.10)に、ルータを経由して、JPerfで指定したトラフィック量を指定した時間で送信するための最小限の設定例です。
◆ サーバ側(受信側)- jperf の設定
サーバ側(受信側)のPCで設定をします。受信側の最小限の設定は以下の通りです。
・ Choose iPerf Modeで「Server」を選択
・ Listen Portをクライアント側と合わせる(デフォルトの5001を使用)。
・ Application layer optionsの「Output Format」でリアルタイムに表示されるレポートの通信帯域の単位を指定( 例えば Mbits )して、「Report Interval」ではリアルタイムに表示されるレポートを何秒ごとに表示させるのかを指定( 例えば1秒 )します。
・ Transport layer optionsでクライアント側から送信されるトラフィックをTCPまたはUDPで指定します。ここでは「UDP」を指定しています。
・ 最後に画面右上の「 Run IPerf! 」をクリックし送信側からのトラフィック受信を待機。
◆ クライアント側(送信側)- jperf の設定
クライアント側(送信側)のPCで設定をします。送信側の最小限の設定は以下です。
・ Choose iPerf Modeで「Client」を選択し、サーバ側のIPアドレスとポート番号を指定。
・ Application layer optionsの「Transmit」では、クライアントからサーバへトラフィックを送信する時間を指定(例えば600秒間)します。また、サーバ側の設定同様にリアルタイムで表示されるレポートの「通信帯域の単位」と「何秒ごと」に表示させるのかを指定します。
・ Transport layer optionsでクライアント側で送信するトラフィックをTCPまたはUDPで指定します。ここでは「UDP」を指定しています。次に「UDP Bandwidth」で送信レートを指定します。ここでは「15Mbps」を指定しています。画面上の単位は「MBytes/sec」ですが実際の動きとしては「Mbits/sec」として動作しています。
・ 最後に「 Run IPerf!」を選択してクライアントからサーバへトラフィックの送信開始。
送信側、受信側ともに、以下のようにリアルタイムでネットワークパフォーマンスを測定することができます。※ 以下の画面は受信側のリアルタイムレポートです。
ポリシングやシェーピングを実装した時に適切に帯域制御が実装できているかどうかの確認にも役立ちます。例えば、送信側PCのjperfから30Mbpsのトラフィックを転送して、shapingやPolicingが設定されたルータで20Mbpsとして絞っている場合には、そのルータを経由すれば、受信側PCのjperfでは20Mbpsのレートとして受信することになっていることを確認できます。
また、その際に途中で経由するルータがCiscoルータである場合、show interfacesでも、そのスループットの状態を正確に確認することができます。なお、show interfacesで表示されるスループットは5分間平均のスループットが表示されることから、5分間の測定ではなくおよそ15分くらいトラフィックを流すことでより正確な結果が得られます。
⇒ 5 minute output rate 19022000 bits/sec, 1825 packets/sec
その他、負荷ツールとして利用して、このデータトラフィックを転送している状態で音声通話を行い音声品質に問題がないかどうか、LLQが適切に動作しているかどうかも確認できます。
jperf は検証環境において、手軽にQoSを動作検証する上で役立つのでぜひ活用しましょう。