WireShark使ってみた

きっかけ

発端としてはプロジェクトの中で、あるネットワーク(ネットワークA)

にある仮想マシンから、別のネットワーク(ネットワークB)の仮想マシンに向けて

どのポートを使用した通信を行っているか調べる必要性が発生したことでした。

 

具体的には、ネットワークAとネットワークBの間にはFWがあり、

必要な通信以外はブロックされている状態だったのですが、特定の処理に必要なポートを

開けたにも関わらず、処理に30秒近く時間がかかってしまいました。

そこで問題の切り分けのため、全ポートでの通信を許可したところ、想定通り1~2秒で

処理が完了しました。結果的に「本来通信に必要なポートが開いていない」ということが判明し、調査のためWireSharkを利用することになりました。

 

使用方法

使用方法は非常に簡単で、以下のURLからインストールして実行するだけです。

Wireshark Go Deep | Download

 

インストールされた仮想マシンで発生する全ての通信ログが表示されます。

 

上記のように、宛先・使用ポート・通信結果などなど…。

特に、再送処理やドロップの際には該当箇所が分かりやすく赤や黒で表示されるため、

問題がありそうな部分を簡単に特定できました。

 

また非常に多くのログが生成されてしまうということで、

目的のログを見つけるのは大変じゃないか?という懸念があるかもしれませんが、

以下のように送信元/送信先のIPアドレスやポート番号でフィルタリングをかけることができるので、今回の場合は本当に簡単に目的の通信を調査できました。

 

vs Azure Network Watcher

さて、ここからはAzure Network Watcher(Azureのネットワーク監視サービス。以下ANW)と比較を行っていきたいと思います。プロジェクトでは検証環境としてMicrosoft Azureを使用していたので、ANWだったらより簡単に問題解決ができたのか、それともWireSharkがベストだったのか…という部分を比較していきたいと思います。

 

IPフロー検証

IPフロー検証は、「仮想マシン」「NIC」を1つ選択し、パケットのプロトコルや通信の方向、IPアドレスやポート番号を指定し、NSGがその通信を許可しているかどうかをシミュレーションできます。

 

今回のプロジェクトでは「必要なポートを確認する」ことが目的だったので有用ではなさそうですが、NSGFireWallに多くのルールを設定しているような場合はこの機能だけで通信の可否がわかるので非常に使いやすい機能だと思います。

 

 

パケットキャプチャ

パケットキャプチャはパケットレベルでの分析をすることができます…が、IPフロー検証などとは異なり、取得したパケットのデータは一度ストレージアカウントに保存されます。すぐにデータを見れるわけではないことや、結局取得したファイルはWireSharkなどで開いて中身を確認することになるため、直接WireSharkが使用できない場合に有用そうだと感じました。

 

 

結論として、今回のケースではWireSharkの利用がベストだったと思いました。ただし、上記にも記載した通り目的に応じて必要になる機能も変化するため、各サービスの特徴を正確に把握しておくことが迅速な問題解決に繋がると思います。

いいね (←参考になった場合はハートマークを押して評価お願いします)
読み込み中...

注意事項・免責事項

※技術情報につきましては投稿日時点の情報となります。投稿日以降に仕様等が変更されていることがありますのでご了承ください。

※公式な技術情報の紹介の他、当社による検証結果および経験に基づく独自の見解が含まれている場合がございます。

※これらの技術情報によって被ったいかなる損害についても、当社は一切責任を負わないものといたします。十分な確認・検証の上、ご活用お願いたします。

※当サイトはマイクロソフト社によるサポートページではございません。パーソルクロステクノロジー株式会社が運営しているサイトのため、マイクロソフト社によるサポートを希望される方は適切な問い合わせ先にご確認ください。
 【重要】マイクロソフト社のサポートをお求めの方は、問い合わせ窓口をご確認ください