🦔
WSLでのパケットキャプチャ
はじめに
Linuxのnetwork namespace内のインターフェイスをパケットキャプチャするにはどうすればいいんだろう?と思って以下の記事にssh越しにパケットキャプチャする方法を書きました。
WSL(Windows Subsystem for Linux)ならWindows用アプリケーションを直接起動できるのでWSLでnetwork namespaceが動作すれば試せるのでは?と思ってやってみました。
Windows用Wiresharkを起動
コマンドライン引数は前の記事を参照してください。
WSLでは/mnt/c/配下にWindowsのCドライブがあるのと、exeファイルもLinuxのバイナリと同様にファイル名を打鍵するだけで起動できます。
ip netns exec router1 tcpdump -U -i e1 -w - | /mnt/c/Program\ Files/Wireshark/Wireshark.exe -k -i - &
うまいことキャプチャできました。
Linux用Wiresharkを起動
WiresharkはLinux版も存在するので、それをWSLから起動してもいいのでは?と思いやってみるとあっさりと起動しました。
apt install wireshark
ip netns exec router1 wireshark -k -i e1 &
ただ、WSLでGUIアプリケーションを起動できるのはWindows11かららしいので、Windows10だとX Serverを用意しないといけないかもしれないです。
前提条件
この機能にアクセスするには、Windows 11ビルド 22000 以降が必要です。
vGPU 用のインストール済みドライバー
Linux GUI アプリを実行するには、まず以下のシステムに一致するドライバーをインストールする必要があります。 これにより、仮想 GPU (vGPU) を使用して、ハードウェア アクセラレータによる OpenGL レンダリングのメリットを享受できます。
WSL 用 Intel GPU ドライバー
WSL 用 AMD GPU ドライバー
WSL 用 NVIDIA GPU ドライバー
参考:動作確認を行った環境について
>wsl -l -v
NAME STATE VERSION
* Ubuntu-22.04 Running 2
# cat /etc/issue
Ubuntu 22.04 LTS \n \l
# uname -r
5.10.16.3-microsoft-standard-WSL2
# dpkg -l frr iproute2 wireshark
要望=(U)不明/(I)インストール/(R)削除/(P)完全削除/(H)保持
| 状態=(N)無/(I)インストール済/(C)設定/(U)展開/(F)設定失敗/(H)半インストール/(W)トリガ待ち/(T)トリガ保留
|/ エラー?=(空欄)無/(R)要再インストール (状態,エラーの大文字=異常)
||/ 名前 バージョン アーキテクチ 説明
+++-==============-===============-============-===========================================================>
ii frr 8.1-1ubuntu1 amd64 FRRouting suite of internet protocols (BGP, OSPF, IS-IS, ..>
ii iproute2 5.15.0-1ubuntu2 amd64 networking and traffic control tools
ii wireshark 3.6.2-2 amd64 network traffic analyzer - meta-package
Discussion