駆け出しアーキテクトのやまぱんです。
今回は Azure の機能を使って Azure VM のネットワークキャプチャを取る方法についてお伝えします✨
Azure を触り始めて、1年以上経つまで旧来のオンプレ環境でもできる方法でしかネットワークキャプチャをとったことがありませんでした。
Azure の機能、Azure Network Watcher を使うことで、OS にログインすることなく、 Azure Portal 上からの操作だけでキャプチャすることができます。
旧来の方法
まず、私が旧来の方法と書いたものは下記を指します。
Azure を触り始めて一年ほどはこの方法でネットワークキャプチャをしていました。
Windows
WindowsであればOSにログインし netsh コマンドを使ってキャプチャを取る
- キャプチャ開始
netsh trace start capture=yes
- キャプチャ終了
netsh trace stop
Linux
Linux であれば OS にログインして tcpdump コマンド を使ってキャプチャを取る
- キャプチャ開始
tcpdump
- キャプチャ終了
CTRL + C
参考
Azure を使ったネットワークキャプチャ方法
さてここからが本題です。
公式 Docs はこちらです。
詳細な設定値などは下記をご覧ください。
簡単に手順を記載します。
1.Azure Portal で "Network Watcher" を検索し、選択。
2.左ペインの "パケットキャプチャ" を選択し、必要に応じて設定値を入れて "パケットキャプチャの開始" を押下。
3. "最新の情報に更新"を押下し、 パケットキャプチャが動いていることを確認。
キャプチャしたい操作を実施します。
4.キャプチャ停止する
5. "最新の情報に更新"を押下し、キャプチャが停止されたことを確認する
6.キャプチャファイルを確認する。
5.の画面の "保存場所" のリンクをクリックする。
遷移先の画面から "ダウンロード" を押下することでキャプチャファイルをダウンロードすることが可能。
例として今回は下記のようなファイルがダウンロードされました。
packetcapture_04_34_35_761.cap
cap ファイルなので WireSharkで確認することが可能です。
補足:取得したファイルが cap ファイルで WireSharkで確認することが可能。
補足
この Azure Networkwatcher の機能はVM エージェントと連携する機能です。
なので、VM エージェントが対応していない NVA などの特殊な OS やレガシーな OS の場合は利用することができません。
また、ほぼ当たり前ですが、 Azure VM が稼働していない時には取得することができません。
(これは旧来の方法でもOSにログインできないので当然かと思います)
旧来の方法ではコマンドを打ってすぐにキャプチャが開始されたことが分かりますが、この方法ではキャプチャが開始されたことが Azure Portal で確認できるまで数秒かかりります。
とはいえ、モダン使い方をするのであればこの方法を使うのがスマートだと思います。
Azure VM にログインする必要がないので、 Azure Portal でポチポチクリックするだけでキャプチャがとれて楽ちんですし、Azure VM ログインできない人でもネットワークキャプチャを取得することができます。