验证各协议卸载
VLAN协议卸载
- 配置VF。
具体操作请参考配置内核态SR-IOV。
- 配置组网。
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
- 启动虚拟机并进入虚拟机。
1 2
virsh start vm1 virsh console vm1
- 验证网络连通性。Host1 vm1执行:
1
ping <Host2 vm1_IP>
- 验证流表卸载及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
- Host2 vm1执行:
- CT配置验证。
- 在物理机配置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"
- 验证流表卸载情况。
1
ovs-ofctl dump-flows br-ovs
1
ovs-appctl dpctl/dump-flows
1
ovs-appctl dpctl/dump-flows type=offloaded
- 以上命令执行后只显示一次,可使用watch -n 1 -d 'commands'持续观察,其中commands替换为以上命令。
- CT状态卸载要求Host OS内核为5.7及以上版本的完整TC模块支持,CentOS 7.6的4.14内核不完全支持。
- 在物理机配置CT流表。
VXLAN协议卸载
- 配置VF。
具体操作请参考配置内核态SR-IOV。
- 配置组网。
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交换。
- 启动虚拟机并进入虚拟机。
1 2
virsh start vm1 virsh console vm1
- 将两台虚拟机的MTU配置为1450以下。
1
ifconfig <dev> mtu 1450
- 虚拟机发包。
- Host2 vm1执行:
1
iperf3 -s
- Host1 vm1执行:
1
iperf3 -c <Host2vm1_ip> -t 0
- Host2 vm1执行:
- 在物理机验证流表卸载情况。
1
ovs-appctl dpctl/dump-flows
- CT配置验证。
- 在物理机配置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"
- 验证流表卸载情况。
1
ovs-appctl dpctl/dump-flows type=offloaded
CT状态卸载需要内核5.7完整TC模块支持,CentOS 7.6的4.14内核不完全支持。
- 在物理机配置CT流表。
Geneve协议卸载
- 配置VF。
具体操作请参考配置内核态SR-IOV。
- 配置组网。
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交换。
- 启动虚拟机并进入虚拟机。
1 2
virsh start vm1 virsh console vm1
- 将两台虚拟机的MTU配置为1450以下。
1
ifconfig <dev> mtu 1450
- 虚拟机发包。
- Host2 vm1执行:
1
iperf3 -s
- Host1 vm1执行:
1
iperf3 -c <Host2vm1_ip> -t 0
- Host2 vm1执行:
- 在物理机验证流表卸载情况。
1
ovs-appctl dpctl/dump-flows
Geneve协议卸载需要内核版本5.3以上完全支持。
- CT配置验证。
- 在物理机配置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"
- 验证流表卸载情况。
1
ovs-appctl dpctl/dump-flows type=offloaded
CT状态卸载需要内核5.7完整TC模块支持,CentOS 7.6的4.14内核不完全支持。硬件卸载流表只有单向。
- 在物理机配置CT流表:
IPv6协议卸载
- 配置VF。
具体操作请参考配置内核态SR-IOV。
- 配置组网。
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
- 启动虚拟机并进入虚拟机。
1 2
virsh start vm1 virsh console vm1
- 虚拟机内添加IPv6。
- Host1 vm1执行:
1
ifconfig enp1s0 add 3000:1::11/64
- Host2 vm1执行:
1
ifconfig enp1s0 add 3000:1::12/64
- Host1 vm1执行:
- 虚拟机发包。
- 接收端Host2 vm1执行:
1
iperf3 -6 -s
- 发送端Host1 vm1执行:
1
iperf3 -6 -c 3000:1::12 -u -l 512 -t 999
- 接收端Host2 vm1执行:
- 在物理机查看卸载流表情况。
1
ovs-appctl dpctl/dump-flows type=offloaded
父主题: 验证OVS流表网卡加速特性