ラボ環境を構築・検証されているネットワークエンジニアの皆様、今日もキャプチャーしているでしょうか? キャプチャーの定番のやり方といえば、リピーターハブを接続している区間に挟み込んでキャプチャーしたり、ネットワーク機器にミラーポート設定を投入してキャプチャーしたりって感じですよね。
ただ、機器の物理的な配置によってキャプチャーがしんどい場面が多々あると思います。自席からちょっと離れたラックにノートパソコン持って移動して、リピーターハブかまして……あ、みんなリピーターハブ使ってて空くのを待つしかない……などなど……面倒くさすぎる!!!
そんな手間を簡単に解消してくれるのが「リモートキャプチャー」です。リモートキャプチャーは、WinPcapの機能で、離れた場所にあるPCでキャプチャーしているデータを、自分のPCでリアルタイムにキャプチャーすることが出来ます。
しかも、今回ご紹介するやり方は導入コストも殆ど掛かりません。必要なのはWindowsのパソコンのみ。スペックの低い余ってたノートパソコンで十分です。
という訳で今回は超絶便利なWinPcapを使ったリモートキャプチャーのやり方を紹介していきます。
WinPcapによるリモートキャプチャー準備編
今回紹介するリモートキャプチャーをするにあたって準備するものは、下記PC2台だけです。
・リモートキャプチャーサーバー側PC(Windows10)
・リモートキャプチャークライアント側PC(Windows10)
PCの用意が出来たら、サーバー側PCにWinPcapをインストールします。WinPcapといえば、2. x系のWiresharkと一緒にインストールされていたのでネットワークエンジニアにはお馴染みだと思います。WinPcapは、下記の公式サイトからダウンロードしましょう。
WinPcap – Home
https://www.winpcap.org/
ちなみに最新のWiresharkがインストールされているPCの場合、NpcapのInstallオプションで「WinPcap API-compatible ModeWinPcap」がインストールされていると、インストールエラーになってしまいます。その場合は一度Wiresharkをアンインストールしてから「WinPcap API-compatible ModeWinPcap」 にチェックを入れずにインストールすると、エラーにならずにインストールできます。
クライアント側のPCは、普通に最新のWiresharkがインストールされていれば問題なしです。
リモートキャプチャー物理接続構成
リモートキャプチャーを確認するための物理接続構成は、イメージしやすいように以下のような構成図を用意しました。
ネットワークエンジニアであれば、この図だけでイメージ伝わるりますかね?
サーバー側で rpcapd.exe の起動
コマンドプロンプトで以下のコマンドを実行します。
"C:\Program Files (x86)\WinPcap\rpcapd.exe" -n -p "2002"
すると、以下のようなコマンドプロンプトの表示になると思うので、これでリモートキャプチャーの準備は完了です。
クライアント側でのリモートキャプチャー実行
それではいよいよリモートキャプチャーの実行です。
Wiresharkを起動し、「キャプチャ」→「オプション」を選択します。
次は右下の「インターフェース管理」を選択します。
次は「リモートインターフェース」タブを選択してください。
次は、左下の+ボタンをクリック。
以下の画面が表示されるので、キャプチャー元のIPをホストに入力。使用しているポート番号を入力し、認証は「ヌル認証」を選択し、OKボタンをおしてください。
すると、キャプチャー元のインターフェースの情報が表示されますので、OKボタンを押してください。
キャプチャオプションの画面に戻ったら、リモートキャプチャのインターフェースが表示されているので、選択し、右下の開始ボタンを押せば
これでRemote Captureが出来ました!
簡単にRemote Captureを実行したい場合
クライアント側のPCで、コマンドプロンプトで以下のコマンドを実行すると、リモートキャプチャーが実行できます。
"C:\Program Files\Wireshark\Wireshark.exe" -i "rpcap://192.168.3.26:2002/\Device\NPF_{xxxxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}"
また、下記のコマンドをテキストファイルに張り付け、batファイル化すると、batファイルを実行するだけでリモートキャプチャーが可能になります。
START "" "C:\Program Files\Wireshark\Wireshark.exe" -i "rpcap://192.168.3.26:2002/\Device\NPF_{xxxxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}" -k
Interface Device IDの調べ方
リモートキャプチャーをする手順の中に出てきたインターフェースの管理画面に、そのPCのインターフェースとDevice IDが表示されているので、これで判断できます。
最後に
このリモートキャプチャー、存在は知ってたのですが、詳しく書いてる記事が全然なくて、結構長い期間調べていた気がしますが、やっと実現できました。リモートキャプチャーのワードで検索すると、sshでtcpdumpする記事がいっぱい出てくるのですが、これが自分で作った環境だとなかなか実現出来ず、苦労しました。
参考にさせていただいた、以下の記事に感謝です。
RPCAPによるリモートパケットモニター (1/2):CodeZine(コードジン)
https://codezine.jp/article/detail/219
Rmote Packet Capture Protocol を使って見る
https://www.slideshare.net/hebikuzure/rmote-packet-capture-protocol
リンク先の記事には、私の記事で解説してないことも結構あるので、そちらもご覧ください。
リモートキャプチャー機能を使えば、ネットワークの色んな個所を自在にキャプチャ出来るようになると思うので、トラブルの切り分けにも非常に役立つと思います。
Wiresharkによるパケットキャプチャーは、ワンランク上のネットワークエンジニアを目指すのであれば必須だと思うので、色々参考にして勉強してみてください。