更新时间:2021-12-25 GMT+08:00
分享

端口镜像

  1. 配置VF。

    具体操作请参见配置内核态SR-IOV

  2. 启动OVS,配置组网。

     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
    

  3. 启动虚拟机。

    • Host1执行:
      virsh start VM1
    • Host2执行:
      virsh start VM1
      virsh start VM4

  4. 配置OVS SPAN端口镜像。

    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端口上。

    • -- --id=@p get port enp1s0f0_3:给端口enp1s0f0_3 取别名。
    • -- --id=@m create mirror name=m0:创建端口镜像。
    • select_src_port=@q select_dst_port=@q output-port=@p:设置端口镜像的规则,其中select_src_port指定进入该端口的流量将被镜像,select_dst_port指定从该端口出去的流量将被镜像,output-port指定被镜像的流量输出到指定端口。
    • -- set bridge br-ovs mirrors=@m:指定网桥的端口镜像规则。

  5. 进入虚拟机。

    Host2执行:
    virsh console VM4

  6. 在镜像端口抓包,使用Host1给Host2的VM1(对应enp1s0f0_0)发包,在Host2 vm4(对应enp1s0f0_3)抓包。

    在Host2 vm4执行:

    1
    tcpdump -i enp1s0
    

  7. 虚拟机打流,查看抓包情况。

    • Host2 VM1执行:
      1
      iperf3 -s
      
    • Host1 VM1执行:
      1
      iperf3 -c <Host2VM1_ip> -t 0
      

    抓包情况:

  8. 按Ctrl+]切出虚拟机,查看卸载流表。

    1
    watch -n 1 -d ovs-appctl dpctl/dump-flows type=offloaded
    

    卸载情况:

  9. 清理端口镜像。

    1
    ovs-vsctl clear bridge br-ovs mirrors
    

  10. 配置OVS RSPAN 端口镜像。

    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
    

  11. 重复5-8,查看抓包情况及卸载情况。

    抓包改成在Host2 vm4执行:

    1
    tcpdump -i enp1s0 -ne
    

    抓包情况:

    卸载情况:

验证结果

SPAN模式的端口镜像支持抓包和流表卸载,其他模式的端口镜像只支持抓包。

分享:

    相关文档

    相关产品

close