- はじめに
- 時刻の修正
- 出力結果をCSVで出力したい
- wiresharkで確認できるエラー状態を一覧で確認したい
- キャプチャファイル自体の詳細情報を確認したい/取りこぼしたパケットの割合を確認したい
- 全パケット数に占める各々のプロトコル数を確認したい
- パケットの長さの割合を確認したい
- 単位時間当たりのパケット数をグラフで確認したい
- TCPストリーム毎のパケット数、データ量、送信レートを確認したい
- DNSパケットの種類や内訳を確認したい
- HTTPレスポンスのステータスコードにどんなものがあるのか確認したい
- 送信元からのTTL(Time To Live)を確認したい
- グラフィカルに通信の流れを把握したい
- ストリームグラフについて
はじめに
wiresharkを用いた分析を依頼されたとき、使った経験が浅い 、もしくはそもそも使ったこともない人ならば、どういったことを分析することができるのかがわからない人が多いと思います。
今回は、目的別にwiresharkの便利な機能についてスクリーンショット付きで解説いたします。
時刻の修正
wiresharkのデフォルトの設定では前のパケットからの相対時間が時刻として表示されてしまいます。トラブルシューティングをする場合、いつどういった問題が起きているのかを報告する必要があるので、相対時間よりは絶対時間で表示するニーズが高いはずです。使ったことのない方向けに設定方法を解説します。
次の図の通り、表示タブの中に時刻表示形式というペインがあるので、その中から任意の表示方法を選択するだけです。
出力結果をCSVで出力したい
トラブルシューティングを行っていると、キャプチャファイルをCSVで出力し、フィルタをかけて確認したい場合があります。その場合は、エキスパートパケット解析という機能を用います。
下の図のように、ファイルタブからエキスパートパケット解析というペインを選択し、CSVとしてという名前のペインを選択します。
任意の名前で保存することができます。更に、表示フィルタで絞っている場合はSelected packetのラジオボタンをアクティブにして保存をすると、必要なパケットのみ出力できます。
wiresharkで確認できるエラー状態を一覧で確認したい
パケット分析を行うということは、仕事上ではほとんどのケースでトラブルシューティングを行っているはずです。その際に、どんなエラーが発生しているのか全容を把握したい場合があります。その際に便利なのがエキスパート情報です。
分析タブからエキスパート情報をクリックします。
すると、次の図のように重要度別で色分けされて様々な情報が一覧として表示されます。
例えば、Dup ACKはどのパケットが該当するのか確認したければ、次のようにプルダウンを開くことで確認可能です。
個人的な使用用途としては、TCPコネクションの開始時点をすぐに把握したい場合です。
次の図のように、SYNパケットがどのタイミングで送られたかわかります。
4となっている箇所を試しに選択すると、パケット一覧のNo4がアクティブになります。
次の図のように右クリックで追跡からTCPストリームを選択すると、このTCPコネクションに関わるパケットのみが表示されます。
ちなみに、TCPストリーム番号というのは、TCPコネクションを区別するために、キャプチャファイルの中でwiresharkが自動的に採番した番号です。実際のTCPヘッダの中にストリーム番号はありませんので注意してください。
キャプチャファイル自体の詳細情報を確認したい/取りこぼしたパケットの割合を確認したい
キャプチャファイルを分析するにあたり、いつ取得されたものなのか、パケット数はどれくらいあるファイルなのか、取得した時に使用していたH/W情報を確認したい場合も、頻度は少ないと思いますがあります。
そのような場合は、統計タブからキャプチャファイルプロパティを選択します。
ここでは、先ほど述べたことに加えて、キャプチャした時に取りこぼしたパケットの数も確認することができます。取りこぼしがあるということは、そもそも取得する機器のスペックが足りないなどが原因として考えられるので、別の端末で再度取得し直すといったことを検討する必要があります。
全パケット数に占める各々のプロトコル数を確認したい
トラブルシューティングを行っている中で、全体像を把握するために、キャプチャした中に占めているプロトコルの種類を確認したい場合があります。
そのようなケースでは、統計タブのプロトコル階層をクリックします。
すると、次の図のようにEthernet、IPv4、UDP、TCP、ICMP毎に、パケット全体に占める割合とバイト数の割合が一覧化されています。また、ビット/秒から送信レートもわかります。
パケットの長さの割合を確認したい
トラブルシューティングを行う中で、パケットの長さを確認したい場合があります。理由は、①フラグメントが発生してパケット伝送の効率が下がっていないか、②仕様が不明なアプリケーションでどのような通信を行っているのかを把握する一環として、パケットの長さを見ておきたい、などが管理人のケースではありました。
このような場合、統計タブのパケット長から確認することが可能です。
次の図では、パケットの長さと全パケットに占める個数や割合を確認することができます。
単位時間当たりのパケット数をグラフで確認したい
トラブルシューティングしていると、特定の時点におけるパケットの相対的な転送レートを確認したい場合があります。このような場合には、統計タブの入出力グラフを使用します。
次の図のように、指定したインターバル時間当たりのパケット数がグラフとして表示されます。インターバル時間を短くすることで、ミリ秒単位で転送レートの変化を確認することができます。輻輳などが発生した時の調査で役に立つ場合があります。
TCPストリーム毎のパケット数、データ量、送信レートを確認したい
特定のTCPコネクションの状態を調査する場合が多々あります。そういったケースで便利なのが対話です。統計タブから対話をクリックします。
TCPタブを選択すると、ストリームID毎に既に述べた情報を確認することが可能です。ここを見ることで、例えば、特定のTCPコネクションだけ送信レートが異様に遅い/早い、TCPコネクションの継続時間などを判断することが可能です。トラブルシューティングで使用する頻度が高いのではないでしょうか。
DNSパケットの種類や内訳を確認したい
名前解決に起因するトラブルシューティングで役に立つのが、統計タブのDNSです。
DNSのクエリやレスポンスに加えて、レコードの種類なども確認することができます。
DNSの勉強としても使えます。
HTTPレスポンスのステータスコードにどんなものがあるのか確認したい
Webサイトが上手く表示されないといった、HTTPプロトコルを使用した通信のトラブルシューティングでは統計タブからHTTPを使用すると良いでしょう。
ここでは、HTTPレスポンスで使用されたステータスコード、HTTPリクエストのメソッドの内訳を確認することができます。
送信元からのTTL(Time To Live)を確認したい
実はTTL(Time To Live)を確認することが可能です。使用用途としては、あまり考えられないのですが、TTLが短いことに起因するパケット損失を特定するケースには有用だと思います。統計タブのIPv4 Staticticsを選択します。その中から、Source TTLsを選択します。
すると、送信元IPアドレスからのTTLが一覧として表示されます。一番初めに表示されているものを例として解説しますと、82.202.184.190を送信元IPアドレスとする通信では、192.168.0.134宛てには着信した時点でTTLが45であることがわかります。
グラフィカルに通信の流れを把握したい
トラブルシューティングを行う場合にはブログ管理人はあんまり見ることがないのですが、主にTCPのフラグ情報などを確認しながらパケット番号毎に通信の流れを確認することが可能です。統計タブのフローグラフをクリックします。
すると、いつ、どこからどこへ、送信元と宛先のポート番号、TCPのフラグ情報などが一覧化されたグラフが出現します。TCPのフローを勉強するにはとても良いと思います。ネットワークスペシャリストなどを受験する方は是非この画面でTCPの通信フローを理解されると良いでしょう。
ストリームグラフについて
パケット分析には欠かせないストリームグラフの解説はこちらの記事となります。
コメント