オープン vswitch ブリッジにポート ミラーリングを作成する

オープン vswitch ブリッジにポート ミラーリングを作成する

open vswitchを使用して作成された仮想ブリッジでポートミラーリングを設定しようとしました。

次のコマンドを使用して、Bridge deco_bridgeに次のポートを作成しました。

sudo ovs-vsctl add-port demo_bridge victim0

Bridge demo_bridge
   Port "demo_bridge"
       Interface demo_bridge
           type: internal
   Port "victim0"
       Interface victim0
           type: internal
   Port "attacker0"
       Interface attacker0
           type: internal
   Port "wireshark0"
       Interface wireshark0
           type: internal
ovs_version: "2.5.2"

VM1(attacker0に接続)がVM2(victim0に接続)を攻撃し、Attacker0 vportからWireshark0(VM3がネットワークトラフィックをキャプチャする)にすべてのトラフィックをミラーリングする必要がある簡単な実験を実行しています。ただし、ミラーリングを有効にするたびに、VM1(攻撃者VM)からVM3(Wireshark VM)をpingすることはできず、VM3でミラーリングされたトラフィックも表示されません。

以下は、ミラーリングされたポートを作成するために使用する2つのコマンドセットですが、どちらも機能しません。

sudo ovs-vsctl  \
-- set Bridge demo_bridge mirrors=@m1  \
-- --id=@attacker0 get Port attacker0  \
-- --id=@wireshark0 get Port wireshark0  \
-- --id=@m1 create Mirror name=port_mirror1 select-dst-port=@attacker0 select-src-port=@attacker0 output-port=@wireshark0

//Youtubeビデオで

sudo ovs-vsctl  \
-- --id=@p get port victim0  \
-- --id=@m create mirror name=mirror0  \
-- add bridge demo_bridge mirrors @m  \
-- set mirror mirror0 output_port=@p 

//ミラーを有効にする

sudo ovs-vsctl \
-- --id=@p get port ens3 \
-- set mirror mirror0 select_dst_port=@p \
-- set mirror mirror0 select_src_port=@p  

これらのコマンドはミラーポートを生成しますが、攻撃者VM1と被害者VM2間のネットワーク接続も中断します。イメージを削除したら、すべての仮想マシンを正常にpingできます。各仮想マシン(ens3)のローカルインターフェイスには、Bridgeデモブリッジに接続されている静的IPアドレスがあります。 /etc/ネットワーク/インターフェース

auto ens3
iface ens3 inet static
address 172.168.0.3
network 172.168.0.0/27
netmask 255.255.255.0

ベストアンサー1

仮想マシンのインターフェイスを受信するためにtcpdumpを使用してみましたか?

ハイパーバイザーとして何を使用しているのかわかりませんが、実行可能である必要があり、その出力でip addrvswitchのポートを表示できる場合は、tcpdumpでそのポートをキャプチャできます。

また、 を実行すると、tcpdump -Dlibpcapがキャプチャするホストが知っていることを知らせます。

たとえば、KVMをハイパーバイザーとして実行している場合は、仮想マシンに関連付けられているMACアドレスとポート名を取得できます。

# Assuming your xml files for the vms are in the default location also. cat /etc/libvirt/qemu/{{ name_of_vm }}.xml | grep -A 2 interface

この出力では、ip addrmacアドレスの最後の2桁をフィルタとして使用して出力を一致させることができます。

ip a | grep -B 1 -i {{ last_two }}

返されたインタフェースは tcpdump で使用できます。

tcpdump -ni {{ vnet_name }} -s0 -vw /var/tmp/{{ vnet_port_out }}.pcap

これにより、そのポートでフィルタリングされていないすべてのエントリがキャプチャされます。

おすすめ記事