知识卡片

隧道封装引发的MTU连锁问题

专业/工作 · 313

内容

用VXLAN或GRE这类隧道协议在物理网络之上叠加一层虚拟网络时,每个数据包都要被再包一层隧道头,这会占用原本属于负载数据的字节数。如果虚拟机网卡仍按物理网络的标准MTU(如1500字节)发包,加上隧道头后就会超过物理链路的实际上限,导致数据包在传输中被分片,带来额外的处理开销和潜在的丢包。解决办法是把虚拟网卡的MTU主动调低(比如降到1400),给隧道头留出空间,让”内层包+隧道头”整体仍不超过物理链路上限。发散:这是所有overlay网络技术共享的通病——多加一层抽象总要吃掉一部分资源预算,MTU分片问题在容器网络(如Calico、Flannel的vxlan模式)里会以完全相同的面目重新出现。

参考来源

《OpenStack云计算实战手册 第3版》第3章《Neutron——OpenStack网络服务》