在BF2-DPU上尝试了两种部署VXLAN的方式,并测试了性能
方案一:Host点对点部署(VTEP on Host)
- 橙色是Host,绿色是BF2-DPU,在Host上使用ip link构建tun,192.168.201.0/24做underlay,192.168.233.0/24做overlay
- 特性:能够在Arm中截获到VXLAN封装后的报文
- 脚本
ip link add vxlan0 type vxlan \
id 42 \
dstport 4789 \
remote 192.168.201.2 \
local 192.168.201.1 \
dev enp1s0f1np1
ifconfig vxlan0 192.168.233.1
方案二:Arm点对点部署(VTEP on Arm)
- 橙色是Host,绿色是BF2-DPU,在Arm上使用OvS构建tun,192.168.244.0/24做underlay,192.168.201.0/24做overlay
- 特性:在Arm中截获到的是未封装的报文(DOCA-FLOW已支持下表进行隧道封装操作,可以通过DOCA-FLOW实现自定义的VTEP)
- 脚本
//On Arm
ovs-vsctl del-port p1
ifconfig p1 192.168.244.2
ovs-vsctl add-port ovsbr2 vx1 – set interface vx1 type=vxlan options:remote_ip=192.168.244.1 options:key=100
//On Host,修改MTU,不然TCP大包打不出去
ifconfig enp1s0f1np1 mtu 1450
- 方案二打流后,Arm中会查看到卸载的Tun流表,方案一是没有的
测试结果
测试项目 | iPerf 10条TCP流带宽 | sender CPU使用率 | receiver CPU使用率 |
---|---|---|---|
Underlay | 87.0GbpS | 20% | %78 |
VTEP On Arm | 85.5Gbps | 20% | %78 |
VTEP On Host | 84.3Gbps | 20% | %85 |
- VTEP on Host可能没有卸载VXLAN封装,花费了更高的CPU资源去做了接收;
- VTEP on Arm和underlay性能基本一致,除了MTU变小导致的带宽损失。