Network Watcher パケット キャプチャ ファイルの検査と分析
Azure Network Watcher のパケット キャプチャ機能を使用すると、以下を利用して Azure 仮想マシン (VM) や仮想マシン スケール セットでのキャプチャ セッションを開始および管理できます。
- Azure portal、PowerShell、および Azure CLI。
- SDK と REST API を使用したプログラム。
パケット キャプチャを使用すると、すぐに使用できる形式で情報を取得して、パケットレベルのデータが必要なシナリオに対応できます。 無料で公開されているツールを使用してデータを検査することで、VM またはスケール セットとの送受信の通信内容を確認して、ネットワーク トラフィックに関する分析情報を得ることができます。 パケット キャプチャ データの使用例としては、ネットワークまたはアプリケーションの問題の調査、ネットワークの悪用と侵入の試行の検出、法令順守の維持などがあります。
この記事では、一般的なオープン ソース ツールを使用して、Network Watcher が提供したパケット キャプチャ ファイルを開く方法について説明します。 接続の待ち時間の計算、異常なトラフィックの特定、ネットワーク統計の確認を行う方法についても説明します。
前提条件
Network Watcher を使用して作成されたパケット キャプチャ ファイル。 詳細については、Azure portal を使った仮想マシンのパケット キャプチャの管理に関する記事を参照してください。
Wireshark。 詳細については、Wireshark の Web サイトを参照してください。
ネットワーク待ち時間の計算
この例では、2 つのエンドポイント間で行われた伝送制御プロトコル (TCP) 会話の初期ラウンド トリップ時間 (RTT) を表示する方法について説明します。
TCP 接続が確立されるとき、接続で送信された最初の 3 つのパケットは、3 ウェイ ハンドシェイクと呼ばれるパターンに従います。 このハンドシェイクで送信された最初の 2 つのパケット (クライアントからの初期要求とサーバーからの応答) を確認することで、待ち時間を計算できます。 この待ち時間は RTT です。 TCP プロトコルと 3 ウェイ ハンドシェイクの詳細については、「TCP/IP 経由の 3 方向ハンドシェイクの説明」を参照してください。
Wireshark を起動します。
パケット キャプチャ セッションから .cap ファイルを読み込みます。
キャプチャ内の [SYN] パケットを選びます。 このパケットは、TCP 接続を開始するためにクライアントが送信する最初のパケットです。
パケットを右クリックして [Follow] を選択し、次に [TCP Stream] を選択します。
[SYN] パケットの [Transmission Control Protocol] セクションを展開し、次に [Flags] セクションを展開します。
Syn ビットが 1 に設定されていることを確認し、それを右クリックします。
[Apply as Filter] を選択し、次に [... and selected] を選択すると、TCP ストリーム内の Syn ビットが 1 に設定されているパケットが表示されます。
TCP ハンドシェイクに関係する最初の 2 つのパケットは、[SYN] および [SYN、ACK] パケットです。 ハンドシェイクの最後のパケットである [ACK] パケットは必要ありません。 クライアントは [SYN] パケットを送信します。 サーバーは [SYN] パケットを受信すると、クライアントからの [SYN] パケットの受信の確認として [ACK] パケットを送信します。
[SCK] パケットを選びます。
[SEQ/ACK analysis] セクション展開して、初期 RTT を秒単位で表示します。
不要なプロトコルを見つける
Azure 仮想マシン上で多くのアプリケーションを実行できます。 これらのアプリケーションの多くはネットワーク経由で通信を行いますが、明示的なアクセス許可がない場合があります。 パケット キャプチャを使用してネットワーク通信を記録すると、アプリケーションがネットワーク上でどのように通信しているかを調査できます。 この調査は、潜在的な問題を特定して対処するのに役立ちます。
この例では、パケット キャプチャを分析し、仮想マシン上で実行されているアプリケーションからの認可されていない通信を示す可能性のある不要なプロトコルを見つける方法について説明します。
Wireshark を開きます。
パケット キャプチャ セッションから .cap ファイルを読み込みます。
[Statistics] メニューで [Protocol Hierarchy] を選択します。
[Protocol Hierarchy Statistics] ウィンドウには、キャプチャ セッション中に使われていたすべてのプロトコルと、各プロトコルを使用して送受信されたパケット数がリストされます。 このビューは、仮想マシンまたはネットワーク上の不要なネットワーク トラフィックを見つけるのに役立ちます。
この例では、ピアツーピアのファイル共有に使用される BitTorrent プロトコルのトラフィックが示されています。 管理者は、この仮想マシンで BitTorrent トラフィックが確認されることを予期していなかった場合、以下のいずれかを行うことができます。
- この仮想マシンにインストールされているピアツーピア ソフトウェアを削除します。
- ネットワーク セキュリティ グループまたはファイアウォールを使用してトラフィックをブロックします。
宛先とポートを見つける
通信のトラフィック、エンドポイント、ポートの種類を把握することは、ネットワーク上のアプリケーションとリソースを監視またはトラブルシューティングする場合に重要です。 パケット キャプチャ ファイルを分析することで、仮想マシンが通信した上位の宛先と、使用したポートを把握できます。
Wireshark を起動します。
パケット キャプチャ セッションから .cap ファイルを読み込みます。
[Statistics] メニューで、[IPv4 Statistics] を選択し、次に [Destinations and Ports] を選択します。
[Destinations and Ports] ウィンドウには、VM がキャプチャ セッション中に通信した上位の宛先と使用したポートがリストされます。 フィルターを使用すると、特定のプロトコルで行われた通信のみが表示されます。 たとえば、[Display filter] ボックスに「rdp」と入力すると、リモート デスクトップ プロトコル (RDP) プロトコルを使用した通信があったかどうかを確認できます。
同様に、関心のある他のプロトコルをフィルター処理することもできます。
次のステップ
Network Watcher の他のネットワーク診断ツールについては、以下を参照してください。