らくがきちょう

なんとなく ~所属組織/団体とは無関係であり、個人の見解です~

SPAN トラフィックを VM 上の Linux でキャプチャする

ネットワーク機器で SPAN 設定を行い、vSphere 上に作った Linux でパケットキャプチャする場合の基本的な設定をメモしておきます。

vSphere の設定

vSphere のネットワーク設定は以下のようにします。

仮想スイッチの設定

Promiscuous Mode (無差別モード) を許可しておきます。

f:id:sig9:20201107114522p:plain

ポートグループの設定

VLAN ID は 4,095 とし、VFT (Virtual Guest Tagging) 動作とさせ、タグ付きのパケットも仮想マシンでキャプチャ出来るようにします。

f:id:sig9:20201107114525p:plain

Promiscuous Mode 設定は仮想スイッチの設定を引き継がせる為、オーバーライドしないようにします。

f:id:sig9:20201107114527p:plain

Linux の設定

デフォルトの状態だと IPv4 / IPv6 両方が有効化されているケースが多いと思いますので、SPAN トラフィックをキャプチャしようとした際に「仮想マシンが送信する DHCP 要求などのトラフィック」までキャプチャされてしまいます。 仮想マシンからの不要なトラフィックの送信を止め、SPAN トラフィックに絞る為、以下のように設定して IPv4 / IPv6 を無効化しておきます。

nmcli connection modify ens224 ipv4.method disabled
nmcli connection modify ens224 ipv6.method ignore

設定完了後は OS を再起動させ、設定変更を反映しておきます。

tshark でキャプチャする

大きなメリットがあるわけではありませんが、tshark を使えばデフォルトが pcap-ng 形式でキャプチャ出来ます。 必要であれば tshark をインストールします。

dnf -y install wireshark-cli

/root ディレクトリへキャプチャしたファイルを出力しようとするとエラーが出ます

# tshark -i ens224 -w test.pcap
Running as user "root" and group "root". This could be dangerous.
Capturing on 'ens224'
tshark: The file to which the capture would be saved ("test.pcap") could not be opened: Permission denied.

これは /tmp などのディレクトリへキャプチャファイルを出力することにより回避出来ます。

# tshark -i ens224 -w /tmp/test.pcap
Running as user "root" and group "root". This could be dangerous.
Capturing on 'ens224'