问题背景
参考资料[1],问题初始现象是:VMWare虚拟化环境下Pod跨VXLAN通信异常。
通过资料[2]可知,临时方案有2个:
方案1:调整网卡的配置:
1 | ethtool -K vxlan.calico tx-checksum-ip-generic off |
方案2:在创建虚拟机时,把网络适配器的类型改为 E1000或E1000e:
解决方案
最近在跟踪相关issue[3,4]时发现,还有2个方案可以解决该问题(未实际测试验证)。
方案1:如果是flanne网络插件,可以使用如下命令临时解决:
1 | iptables -A OUTPUT -p udp -m udp --dport 8472 -j MARK --set-xmark 0x0 |
方案2:如果是calico网络插件,可以使用如下特性门永久解决:
1 | featureDetectOverride: "ChecksumOffloadBroken=true" |