openstack实例间无法建立tcp连接问题排查

本文描述了在OpenStack环境下,两个Windows实例通过报文转发平台连接时,TCP连接失败的问题。深入分析发现,虚拟网卡的ChecksumOffload功能导致了checksum校验失败。文章提供了详细的解决方案,包括禁用ChecksumOffload并由TCP协议栈计算checksum。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用openstack创建两个windows实例

两个实例,经过报文转发平台相连,在两个windows实例中,使用tcp工具建立tcp连接失败。

 

现象具体描述:

三个实例:

实例A和实例B

报文转发实例C

在实例A上ping实例B,可以ping通。

使用网络助手建立tcp连接时,不成功。

在实例B上使用wireshark抓包,发现B上可以收到A发出的tcp syn连接请求,但是不响应。

wireshark打开checksum校验:发现checksum校验失败

 

原因:

网卡在开启Checksum Offload之后,会把计算checksum的工作交给网卡去做,网卡会计算出正确的checksum并且发出去的。CheckSumOffload实际上是将传输层的一部分工作交给了硬件完成,以节约系统的CPU资源。

打开CheckSumOffload发现B收到syn包未响应,应该是虚拟网卡,不支持计算checksum。设置为disabled,改为tcp协议栈计算checksum。

 

解决方案:

配置两业务机,网络连接中本地连接。点击属性按钮。

弹出窗口中点击配置按钮

弹出窗口中点击高级,找到TCP Checksum Offload (Ipv4)选项。选择Disabled选项。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值