具体操作请参考配置内核态SR-IOV。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
systemctl start openvswitch ovs-vsctl add-br br-ovs ovs-vsctl add-port br-ovs enp1s0f0_0 ovs-vsctl add-port br-ovs enp1s0f0_1 ovs-vsctl add-port br-ovs enp1s0f0_2 ovs-vsctl add-port br-ovs enp1s0f0_3 ovs-vsctl add-port br-ovs enp1s0f0_4 ovs-vsctl add-port br-ovs enp1s0f0_5 ovs-vsctl add-port br-ovs enp1s0f0_6 ovs-vsctl add-port br-ovs enp1s0f0_7 ovs-vsctl add-port br-ovs enp1s0f0 ip link set dev enp1s0f0 up ip link set dev enp1s0f0_0 up ip link set dev enp1s0f0_1 up ip link set dev enp1s0f0_2 up ip link set dev enp1s0f0_3 up ip link set dev enp1s0f0_4 up ip link set dev enp1s0f0_5 up ip link set dev enp1s0f0_6 up ip link set dev enp1s0f0_7 up |
virsh start vm1
virsh start vm1 virsh start vm4
1
|
ovs-vsctl -- --id=@p get port enp1s0f0_3 -- --id=@q get port enp1s0f0_0 -- --id=@m create mirror name=m0 select_src_port=@q select_dst_port=@q output-port=@p -- set bridge br-ovs mirrors=@m |
本条命令是在br-ovs上设置端口镜像,将enp1s0f0_0端口的出入流量镜像到enp1s0f0_3端口上。
virsh console vm4
在Host2 vm4执行:
1
|
tcpdump -i enp1s0 |
1
|
iperf3 -s
|
1
|
iperf3 -c <Host2vm1_ip> -t 0 |
捕获数据包情况:
1
|
watch -n 1 -d ovs-appctl dpctl/dump-flows type=offloaded |
卸载情况:
1
|
ovs-vsctl clear bridge br-ovs mirrors |
1 2 |
ovs-vsctl set bridge br-ovs flood_vlans=111 ovs-vsctl -- --id=@q get port enp1s0f0_0 -- --id=@m create mirror name=m0 select_src_port=@q select_dst_port=@q output_vlan=111 -- set bridge br-ovs mirrors=@m |
捕获数据包改成在Host2 vm4执行:
1
|
tcpdump -i enp1s0 -ne |
捕获数据包情况:
卸载情况:
SPAN模式的端口镜像支持捕获数据包和流表卸载,其他模式的端口镜像只支持捕获数据包。