tcpreplayコマンドの使い方メモ

By: OiMax



tcpreplayコマンドの使い方について書きました。私自身、ネットワーク関連の仕事がよく舞い込んできます。物理的なローゼットの口にLANケーブルを挿したり、はたまた、ソフトウェア的なこともします。

今回はソフトウェア的なことです。
取得したパケットをあえて大量に送って機器が落ちたりしないかなどのチェックの際にtcpreplayが非常に有効なことがわかりました。ぶっちゃけ仕事でしかつかわないようなコマンドなんですけどね。

仕事上よく使うコマンドのため、バッチリメモしておこうと思います。

スポンサーリンク

Wiresharkにて取得したパケットを送信する方法(1packetでもOK)

Wiresharkとは、様々なプラットフォームで動かすことができるパケット取得ソフトのことです。フリーウエアで公開されているにもかかわらずとても高機能で仕事を行う上で必須のツールです。
ネットワーク的な作業をするときにはいつもこのツールを使ってパケットを見ています。
Wireshark · Go Deep
Wireshark: The world's most popular network protocol analyzer


普段は取得したパケットを見て正常かそうでないかを見ているだけなのですが、あるタイミングで障害が発生することがわかりました。普通であれば同じ操作を何度も行うのですが、紛いなりにもへっぽこSEですw


SEは仕事が大っ嫌いです(偏見)www


なので楽をしようと考えるものです。
どうすれば同じ操作を繰り返せるか……


同じパケットを投げ続ければいいんじゃん!!


と気が付き調べてみると、tcpreplayにたどり着きました。

その時はコネクションレス型(UDP)だったのでこれでサクッと出来るだろうということで使うことにしました。
スポンサーリンク

tcpreplayのコマンド

前提条件としてLinuxが準備されていてtcpreplayがインストール状態になっていることを確認してください。
私の環境はCentOSだったので、rpmでインストールしました。本当はyumで行いたかったのですが、社内の完全ローカル環境だったのでやむなくrpmで。。。

UDPパケットをありえないくらいの間隔で送信しまくるので、できれば完全ローカルで行ったほうが他の人に迷惑がかからなくていいと思います。というか、完全ローカル環境を作るべきですw

さて、コマンドはというと、


tcpreplay [オプション] パケット選択 -i eth1


でいけます。
パケット選択は、一度取得してある”pcap”ファイルを指定しています。
“-i” はインターフェース指定なので、環境にあったインターフェースにします。

私の場合は1パケットだけを一気に流し込みたかったので以下のオプションを使いました。
  • “-l 999”
選択したパケットを999回流してね!! “-l” はループのl(エル)と覚えておけば間違えません。

もう1つ指定しました。
  • “-p 333”
1秒あたりに流すパケット数(packets/sec)を指定しています。この33とした場合は、3msecで1パケット送ってねということです。0.1secにて送りたいときは10と設定します。

計算方法は、packet / sec で行います。今回は1パケットを3msecで送信したかったので、1 / 0.003 = 333.33..ということになるので、333と設定しています。

今回は“-p”でやりましたが、“-M”Mbps指定も出来ます。

packet/secで指定せず、フルパワーで送信したいときは“-t” をつけるとフルスピートで送信してくれます。”-t” は、トップスピードの t のようです。


(今回の使用例) tcpreplay -l 999 -i eth0 -p 333 ***.pcap

まとめ

パケットを見る力がつくと、インターネットをすることも楽しくなります。
最初はツールの使い方や、どうやって解析すればいいか難しいと思います。私の場合は上司から教えてもらいましたが、そうでない場合は書籍から学ぶのがベストかなと思います。
Wiresharkの見方のサイトは結構あるのですが、やはりしっかりと1冊の技術本を読んだほうがいいです。ネットワークの知識が前提としてないと難しいです。私は、ネットワークの仕事をするようになってから以下の2冊をしっかりと読みました。




定番中の定番ですが、これを理解しておくと大体の仕事はこなすことができます。
入門編は理解するまで読むと完璧です。
応用編は、私の場合は手元においてあります。

ある程度知識が身についたら後は道具であるwiresharkの使い方を覚えるだけです。
パケットを見ることが出来る人はあまり多くないので、技術として身につけておくと仕事の幅がグンと広がります。



↓↓↓ブログランキングに参加しています。m(_ _)m ↓↓↓


ブログランキング・にほんブログ村へ