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

各协议卸载验证

VLAN协议卸载

  1. 配置VF。

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

  2. 配置组网。

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    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
    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
    ovs-vsctl set Port enp1s0f0_0 tag=100
    

  3. 启动虚拟机并进入虚拟机。

    1
    2
    virsh start vm1
    virsh console vm1
    

  4. 验证网络连通性。

    Host1 vm1执行:
    1
    ping <Host2 vm1_IP>
    

  5. 验证流表卸载及VLAN Tag。

    两台vm1虚拟机打流,查看卸载流表情况。

    • Host2 vm1执行:
      1
      iperf3 -s
      
    • Host1 vm1执行:
      1
      iperf3 -c <Host2vm1_ip> -t 0
      
    • 任意一台物理机执行:
      1
      ovs-appctl dpctl/dump-flows type=offloaded
      

  6. CT配置验证。

    1. 在物理机配置CT流表:
      1
      2
      3
      4
      5
      ovs-ofctl del-flows br-ovs
      ovs-ofctl add-flow br-ovs "arp, actions=normal"
      ovs-ofctl add-flow br-ovs "table=0, ip,ct_state=-trk, actions=ct(table=1)"
      ovs-ofctl add-flow br-ovs "table=1, ip,ct_state=+trk+new, actions=ct(commit),normal"
      ovs-ofctl add-flow br-ovs "table=1, ip,ct_state=+trk+est, actions=normal"
      
    2. 验证流表卸载情况。
      1
      ovs-ofctl dump-flows br-ovs
      

      以上命令执行后只显示一次,可使用watch -n 1 -d 'commands'持续观察,其中commands替换为以上命令。

      1
      ovs-appctl dpctl/dump-flows
      

      1
      ovs-appctl dpctl/dump-flows type=offloaded
      

      CT状态卸载需要内核5.7完整TC模块支持,CentOS 7.6的4.14内核不完全支持。

VXLAN协议卸载

  1. 配置VF。

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

  2. 配置组网。

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    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
    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
    ovs-vsctl add-port br-ovs vxlan0 -- set Interface vxlan0 type=vxlan options:local_ip=192.168.1.12 options:remote_ip=192.168.1.11 options:key=98
    ifconfig enp1s0f0 192.168.1.12/24 up
    

    对端主机的VXLAN端口配置时注意将local_ip和remote_ip交换。

  3. 启动虚拟机并进入虚拟机

    1
    2
    virsh start vm1
    virsh console vm1
    

  4. 将两台虚拟机的MTU配置为1450以下。

    1
    ifconfig <dev> mtu 1450
    

  5. 虚拟机打流。

    • Host2 vm1执行:
      1
      iperf3 -s
      
    • Host1 vm1执行:
      1
      iperf3 -c <Host2vm1_ip> -t 0
      

  6. 在物理机验证流表卸载情况。

    1
    ovs-appctl dpctl/dump-flows
    

  7. CT配置验证。

    1. 在物理机配置CT流表。
      1
      2
      3
      4
      5
      ovs-ofctl del-flows br-ovs
      ovs-ofctl add-flow br-ovs "arp, actions=normal"
      ovs-ofctl add-flow br-ovs "table=0, ip,ct_state=-trk, actions=ct(table=1)"
      ovs-ofctl add-flow br-ovs "table=1, ip,ct_state=+trk+new, actions=ct(commit),normal"
      ovs-ofctl add-flow br-ovs "table=1, ip,ct_state=+trk+est, actions=normal"
      

    2. 验证流表卸载情况。
      1
      ovs-appctl dpctl/dump-flows type=offloaded
      

      CT状态卸载需要内核5.7完整TC模块支持,CentOS 7.6的4.14内核不完全支持。

Geneve协议卸载

  1. 配置VF。

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

  2. 配置组网。

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    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
    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
    ovs-vsctl add-port br-ovs tun0 -- set Interface tun0 type=geneve options:local_ip=192.168.1.12 options:remote_ip=192.168.1.11
    ifconfig enp1s0f0 192.168.1.12/24 up
    

    对端主机的VXLAN端口配置时注意将local_ip和remote_ip交换。

  3. 启动虚拟机并进入虚拟机。

    1
    2
    virsh start vm1
    virsh console vm1
    

  4. 将两台虚拟机的MTU配置为1450以下。

    1
    ifconfig <dev> mtu 1450
    

  5. 虚拟机打流。

    • Host2 vm1执行:
      1
      iperf3 -s
      
    • Host1 vm1执行:
      1
      iperf3 -c <Host2vm1_ip> -t 0
      

  6. 在物理机验证流表卸载情况。

    1
    ovs-appctl dpctl/dump-flows
    

    geneve协议卸载需要内核版本5.3以上完全支持。

  7. CT配置验证。

    1. 在物理机配置CT流表:
      1
      2
      3
      4
      5
      ovs-ofctl del-flows br-ovs
      ovs-ofctl add-flow br-ovs "arp, actions=normal"
      ovs-ofctl add-flow br-ovs "table=0, ip,ct_state=-trk, actions=ct(table=1)"
      ovs-ofctl add-flow br-ovs "table=1, ip,ct_state=+trk+new, actions=ct(commit),normal"
      ovs-ofctl add-flow br-ovs "table=1, ip,ct_state=+trk+est, actions=normal"
      

    2. 验证流表卸载情况。
      1
      ovs-appctl dpctl/dump-flows type=offloaded
      

      CT状态卸载需要内核5.7完整TC模块支持,CentOS 7.6的4.14内核不完全支持。硬件卸载流表只有单向。

IPv6协议卸载

  1. 配置VF。

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

  2. 配置组网。

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    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
    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
    

  3. 启动虚拟机并进入虚拟机。

    1
    2
    virsh start vm1
    virsh console vm1
    

  4. 虚拟机内添加IPv6。

    • Host1 vm1执行:
      1
      ifconfig enp1s0 add 3000:1::11/64
      
    • Host2 vm1执行:
      1
      ifconfig enp1s0 add 3000:1::12/64
      

  5. 虚拟机打流。

    • 接收端Host2 vm1执行:
      1
      iperf3 -6 -s
      
    • 发送端Host1 vm1执行:
      1
      iperf3 -6 -c 3000:1::12 -u -l 512 -t 999
      

  6. 在物理机查看卸载流表情况。

    1
    ovs-appctl dpctl/dump-flows type=offloaded
    

分享:

    相关文档

    相关产品

close