読者です 読者をやめる 読者になる 読者になる

らくがきちょう

なんとなく

RouterBoard のトラフィックジェネレータ機能を利用するには

RouterBoardトラフィックジェネレータ機能を使うと、トラフィックの負荷試験を簡単に行うことが出来ます。RouterBoard はスペックと比較して価格が非常に安い為、安価にトラフィック試験環境を作ることが出来ます。今回は「トラフィックを印加する側」「受信する側」の両方に RouterBoard を使い、トラフィック試験環境を構築してみます。

前半は Web ブラウザ(WebFig)から、後半はコマンドラインから設定します。

今回の試験環境

今回は以下の環境を用いました。

  1. 印加側
  2. 受信側

設定の流れ

トラフィックジェネレータ機能を利用するには以下の流れを辿ります。

  1. 送信するパケットを定義(Packet Templete の設定)
  2. パラメータを指定し、トラフィックの印加開始(Start)
  3. トラフィックの印加停止(Stop)

まずは Web ブラウザ(WebFig)から設定してみます。

  1. 送信するパケットを定義(Packet Templete の設定)

最初に印加するパケットの定義を行います。「Tool → Traffic Generator」をクリックし、Traffic Generator の設定画面に遷移します。

f:id:sig9:20150208011559p:plain

「Packet Templete」をクリックし、Packet Templete の一覧画面に遷移します。

f:id:sig9:20150208011614p:plain

まだ Packet Templete を設定していない為、一覧画面には何も表示されません。「Add New」をクリックし、Packet Templete の設定画面に遷移します。

f:id:sig9:20150208011621p:plain

ここでは印加するパケットのパラメータを定義します。今回は以下を設定してみます。

項目
テンプレート名 packet-templete1
ヘッダースタック mac / ip / udp
出力インターフェイス ether1-gateway
宛先 IP アドレス 172.16.1.222

ヘッダースタックには生成したいパケットのスタックを積み重ねます。今回は UDP パケットで印加を行うつもりなので、「mac / ip / udp」とし、UDP パケットを定義しました。パラメータの指定が完了したら OK をクリックします。尚、UDP ポート番号を省略すると「送信元ポートは UDP/100、宛先ポートは UDP/200」になるようでした。

f:id:sig9:20150208015651p:plain

定義一覧の画面に戻ります。先ほど、設定した定義が追加されていることを確認したら Close をクリックします。

f:id:sig9:20150208022739p:plain

パラメータを指定し、トラフィックの印加開始(Start)

次はいよいよトラフィックの印加を開始します。Start をクリックし、印加するトラフィックのパラメータ指定画面へ遷移します。

f:id:sig9:20150208022746p:plain

以下のようにパラメータ設定画面が表示されます。

f:id:sig9:20150208022755p:plain

ここでは以下のパラメータを指定します。

項目
出力インターフェイス ether1-gateway
パケットサイズ (byte) 100
帯域幅 (Mbps) 15
送信するパケットテンプレート packet-templete1

必要なパラメータを指定したら Start をクリックし、トラフィックの印加を開始します。

f:id:sig9:20150208022801p:plain

トラフィックの確認

Traffic Generator のトップ画面に戻ると Running 状態が「yes」になっているのでトラフィック印加中であることが分かります。トラフィック印加の統計情報画面に遷移する為、Stats をクリックします。

f:id:sig9:20150208030214p:plain

Traffic Generator Stats 画面が表示されます。トラフィック印加中だと送信したパケットの分だけ、リアルタイムで表示行が増えていきます。確認が完了したら Close をクリックします。

f:id:sig9:20150208030221p:plain

トラフィックを受信している対向側 RouterBoard のインターフェイスで状態を確認します。RouterBoard はトラフィック量をリアルタイムでグラフ表示出来るので、試験の際は非常に便利です。今回は 15Mbps のトラフィックを印加していますが、確かにグラフ上で「約 15Mbps」を受信しているのが分かります。

f:id:sig9:20150208030229p:plain

トラフィックの印加停止(Stop)

トラフィックを印加している側の RouterBoard に戻り、Traffic Generator のトップ画面から Stop をクリックして印加を停止します。

f:id:sig9:20150208030237p:plain

Running 状態が「no」になり、トラフィックの印加が停止されました。

f:id:sig9:20150208030242p:plain

再度、対向側 RouterBoard のインターフェイス状態を確認すると、トラフィックの受信が止まっていることが分かります。

f:id:sig9:20150208030249p:plain

コマンドラインからトラフィックを印加する

次は同じ設定をコマンドラインから行ってみます。まずは Packet templete を定義します。

/tool traffic-generator packet-template
add header-stack=mac,ip,udp interface=ether1-gateway ip-dst=172.16.1.222 name=packet-template1

設定を確認します。

> /tool traffic-generator packet-template print
 0 name="packet-template1" header-stack=mac,ip,udp interface=ether1-gateway assumed-mac-src=D4:CA:6D:C8:78:C2 assumed-mac-dst=FF:FF:FF:FF:FF:FF
   assumed-mac-protocol=ip assumed-ip-dscp=0 assumed-ip-id=0 assumed-ip-frag-off=0 assumed-ip-ttl=64 ip-dst=172.16.1.222
   assumed-ip-src=172.16.1.221 assumed-ip-protocol=udp assumed-udp-src-port=100 assumed-udp-dst-port=200 data=uninitialized data-byte=0
   special-footer=yes

トラフィックの印加を開始します。

> /tool traffic-generator start interface=ether1-gateway packet-size=100 mbps=15 tx-template=packet-template1

Running 状態を確認すると「yes」になっていることが分かります。

> /tool traffic-generator print
                                running: yes
                                test-id: 0
                   measure-out-of-order: yes
               latency-distribution-max: 100us
                  stats-samples-to-keep: 100
           latency-distribution-samples: 64
  latency-distribution-measure-interval: 0-109us

トラフィックの印加を停止します。

> /tool traffic-generator stop

Running 状態が「no」になり、印加が停止されました。

> /tool traffic-generator print
                                running: no
                                test-id: 0
                   measure-out-of-order: yes
               latency-distribution-max: 100us
                  stats-samples-to-keep: 100
           latency-distribution-samples: 64
  latency-distribution-measure-interval: 0-109us