▷ x520网卡最小限速11Mbps,最大限速10000Mbps,设为0表示不限速。若小于11或大于10000则会报错
▷ x710网卡最小限速50Mbps,最大限速10000Mbps,设为0表示不限速。若小于50则自动设为50,若大于10000则会报错
注意:vm关机后vf的带宽限速不会复位
9. 安全仅支持源mac过滤和网卡mac防篡改,不支持其他安全防护(防arp欺骗就无法实现)
源mac过滤
ip link set p1p1 vf 0 spoofchk on表示vm里发出的包,如果源mac不是指定mac,那么数据包不允许通过。注意:vm关机后vf的spoofchk不会复位
网卡mac防篡改
▷ 在宿主上修改mac,vm里的mac不会跟着改;在vm里修改mac,在宿主上可以看到变化
▷ 如果在vm关机状态下改了mac地址,那么当vm开机后会改为vm的mac,当vm又关机后,又回改为原先改的mac
▷ 只有在宿主上看到的当前vf的mac为全0,才能在vm里修改mac地址,即使vf的spoofchk为off。但有一种例外,若使用上面方法2来配置xml,虽然宿主上看到的vf的mac不为0,但vm里可以修改
▷ 当在宿主上设置了mac后,虚拟机里的mac就无法篡改了
▪ 方法1(interface)来配置xml,估计vm启动时候就自动帮忙在宿主上设置了mac,所以就直接实现了防篡改功能
▪ 方法2(hostdev)来配置xml,需要在宿主上手动再设置一次mac地址才能实现防篡改
在宿主上手动修改mac方法(vm关机和开机情况下都可以改):
ip link set p1p1 vf 0 mac aa:bb:cc:dd:ee:ff建议:
▷ 在vm启动前对vf做一次重置
▷ 在vm undefine后对vf做一次重置
▷ 直通到vm里的vf网卡里无法桥接到vm里的linux bridge,这也导致ebtables无法使用,iptables可以使用
▷ 直通到vm里的vf网卡可以加入ovs桥接
▷ 一个vm最多只能支持32个vf,超过数量会报错
测试方法:
▷ 多台vm同时发包,一台vm收包,分别观察发包性能和收包性能
▷ 发包vm在同一台宿主上,收包vm在另一台宿主上
▷ 测试工具:modprobe pktgen
▷ 测试包大小: udp包,size为64 bytes
配置:
▷ vm配置均为4核8G
▷ 物理网卡均为x520(vf队列默认为2)
▷ 宿主和vm均开启irqbalance、均关闭numad
▷ 不配置cpu绑定、不配置numa绑定
▷ 开启大页
测试结果:
测试结论:
使用SR-IOV+VF直通方式可以明显提升包转发率,1对1的测试结果看到kernel态发包可以达到3.5Mpps,收包可以达到1.9Mpps
▷ 发包比vxlan提高: 1196%,比vlan提高: 677%。此结果参考1对1(1个发包vm,1个收包vm)
▷ 收包比vxlan提高: 363%,比vlan提高: 171%。此结果参考3对1(3个发包vm,1个收包vm)
说明: