CENTOS7的KVM虚机内跑GRE遂道无法正常TCP通讯
公司的云专线+互联云业务的场景
某些客户需要在公有云和我们的互联云之间起GRE隧道进而实现同子网IP段。
我们发现从互联云-》公有云的速度正常,但是公有云-》互联云的速度不正常。
而不用GRE遂道,直接使用路由速度也正常。
问题已经发现了好些天了,同事死活无法解决。
更换IPIP隧道测试没有问题,GRE隧道就是不行。
我进行抓包,发现了奇怪的现象:
客户侧:
服务器------HOST侧:
而服务器-------GUEST OS侧,则压根没有收到seq 38以后的包:2886 4310 等
截图忘记了
然后各种实验,发现centos7的3.10.0-514.el7.x86_64 内核在进行转发GRE数据包时有BUG--------注意,不是直接使用,也就是说,物理机上直接创建GRE隧道没有问题。
升级KERNEL到4.1x则问题被解决。
为了查这个问题怀疑了各个因素:
MTU
链路质量
VLAN
一一验证出来不是。结果验证出来无论是用BRIDGE 还是 使用 direct方式创建VM 的interface,只要数据包经过HOST转发就有问题。
最终怀疑是HOST的KERNEL有BUG,验证后证实。这个场景应该是比较少见,在网络上也没有发现有同样的人说这个问题。
说出来和解决起来是挺简单的,但是中间排查的过程真的是很曲折。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
