VXLAN 硬件无状态卸载
VXLAN 技术提供了可扩展性和安全挑战解决方案。它需要扩展传统的无状态卸载以避免性能下降。ConnectX 系列网卡为 VXLAN 数据包提供以下无状态卸载,类似于为非封装数据包提供的卸载。VXLAN 协议使用外部 UDP 头部封装其数据包。
可用的硬件无状态卸载:
校验和生成(内部 IP 和内部 TCP/UDP)
校验和验证(内部 IP 和内部 TCP/UDP)
内部 TCP 数据包的 TSO 支持
根据内部数据包属性的 RSS 分发
接收队列选择 - 内部帧可以被引导到特定的 QP
对于运行最低要求的固件版本和包含 VXLAN 支持的内核版本的 ConnectX-4 系列设备,VXLAN 卸载默认启用。
ethtool -k $DEV | grep udp_tnl
示例:
ethtool -k ens1f0 | grep udp_tnl
tx-udp_tnl-segmentation: on
ConnectX-4 系列设备支持为 VXLAN 卸载配置多个 UDP 端口。可以通过使用“ip”命令从操作系统命令行配置 VXLAN 设备来将端口添加到设备。
注意:如果您为卸载配置了多个 UDP 端口,并且超过了硬件支持的端口总数,则这些额外的端口仍然可以正常工作,但不会受益于任何无状态卸载。
示例
ip link add vxlan0 type vxlan id 10
group 239.0
.0.10
ttl 10
dev ens1f0 dstport 4789
ip addr add 192.168
.4.7
/24
dev vxlan0
ip link set up vxlan0
注意: Ubuntu 14.4 中不支持 'dstport' 参数。
可以通过删除 VXLAN 接口来删除 VXLAN 端口。
示例:
ip link delete vxlan0
VXLAN 隧道为 VM 以太网帧增加了 50 字节(14-eth + 20-ip + 8-udp + 8-vxlan)。请验证发送数据包的网卡的 MTU(例如,VM virtio-net 网卡或主机侧 veth 设备或上行链路)是否考虑了隧道开销。这意味着,发送网卡的 MTU 必须减少 50 字节(例如 1450 而不是 1500),或者上行链路网卡的 MTU 必须增加 50 字节(例如 1550 而不是 1500)。