SIP負荷テストツール”SIPp”を使ってみる。(RTP送信編)


SIP負荷テストツール”SIPp”を使ってみる。(RTP送信編)

 

 

前回、「SIPp」 というツールを紹介しましたが、反響が大きかったので第2弾です。非常に有用なツールであることは前回紹介した通り。今回はその応用編として、SIPpを利用してRTPパケットを送信/受信する方法をご紹介します。実際のSIPサーバやIP-PBXはRTPパケットをリレーしていることが多く、パフォーマンステストではSIPメッセージだけではなく、RTPパケットを送信して負荷を掛けることが多々あります。今回の設定も主にXMLファイル形式の設定ファイルで行いますが、少しインストール方法が異なります。前回と比較しながら読んでいただければと思います。

 

<Install>

環境は前回同様、CentOS6で行いました。またインストール手順を含め、公式サイト(http://sipp.sourceforge.net/doc/reference.html#UAS) のドキュメントが役に立ちます。

SIPpはmakeする必要があるため、makeを行うために必要なツールが未インストールの場合はインストールしてください。以下yumコマンドを利用した場合の手順を記載します。

 

1.Make ツールのインストール(前回と同様です。既にインストール済みの方はスキップしてください。)

# yum install gcc

# yum install gcc-c++

# yum install autoconf

# yum install automake

# yum install make

# yum install ncurses-devel

 

2.SIPpのダウンロード(https://github.com/SIPp/sipp/releases)

   私はSIPp 3.5.1で動作検証しましたが、最新版の使用をオススメします。

 

3.SIPpを展開

# tar -xvzf sipp-3.5.1.tar.gz

以下、/sipp-3.5.1 というディレクトリに展開したとします。

 

4.Makeを実施しますが、今回、WAVファイルまたはPCAPファイルをRTPパケットで送信するため、オプションを付けてMakeします。

# cd /sipp-3.5.1

# ./configure –with-rtpstream –with-pcap

# make

 

5.使用する.wav ファイルを または事前にRTPパケットをキャプチャしたファイル.pcap(pcapng)ファイルを適当なパスに配置しておきます。通例として “<sippディレクトリ>/pcap”の下に配置することが多いようです。以下はpcapファイルを配置した例です。

 

# cp rtpstream01.pcap /sipp-3.5.1/pcap/

 

*.pcapファイルはwireshakなどのパケットキャプチャツールを使用して簡単に作成することができます。

 

6.uac.xml, uas.xmlファイルの修正。まずはuac.xmlから。変更箇所は以下。

 ACKのsendセクション<send></ send>の後に次の行を追加します。

<!– Play a pre-recorded PCAP file (RTP stream)  –>

  <nop>

    <action>

      <exec play_pcap_audio="pcap/rtpstream01.pcap"/>

    </action>

  </nop>

  <!– Pause 300 seconds, which is approximately the duration of the –>

  <!– PCAP file –>

  <pause milliseconds="300000"/>

 

     簡単な例ですがこれでOKです。

次にuas.xml側です。こちらは.wavファイルを使用する場合の例を記載してみました。ACKのrecvセクションの後ろに以下のように記載します。

<!– Play a wav file –>

<nop>

    <action>

      <exec rtp_stream="pcap/sample.wav"/>

    </action>

  </nop>

 

これで準備は完了です。最後にSippを利用した送信コマンドの例をご紹介します。

<UAC側>

./sipp -sf uac.xml -d 10000 -s 4000 172.30.1.145 -i 172.30.1.171 -r 60 -m 900

この例ではUAC(172.30.1.171)側から IP-PBX(172.30.1.145)へ向けて60コール/秒の割合で発信されます。また、発信にはuac.xmlが使われます。

 

<UAS側>

./sipp -sf uas.xml -d 0 -p 5060 -i 172.30.1.14 -rsa 172.30.1.145:5060

UAS(172.30.1.14)が対応します。受信用の設定ファイルとしてはuas.xmlが使用されます。

 

送信するRTPの元ファイルとして、.pcapファイルと.wavファイルを紹介しましたが、筆者は.pcapファイルの使用をオススメします。Sippがそのままファイルを送信できるイメージのため、sipp側の処理負荷が軽減されるためです。負荷を掛ける側の負荷が軽減されることにより、負荷テスト対象(IP-PBX, SIPサーバなど)へより多くの負荷をかけることができます。

また、今回紹介していませんが、コマンドオプションを利用してUAS側は来たRTPをそのままミラーしてUAC側に返すということもできます。この場合はuas.xml内でのrtpファイルの設定はいりません。

 

是非、Sipp試してみてください。

 

<<SIP負荷テストツール"SIPp"を使ってみる。