本帖最后由 Hacking 于 2022-6-11 11:19 编辑
问题现象:
负载设备上看到服务器检测结果不稳定,现象为节点有时在线有时离线,但是内部节点服务器相互防护是正常。
截图节点状态:
抓包结果:
问题故障分析: 排查原因:服务器端检查是否为时间戳原因导致
节点服务器执行:netstat -s | grep reject
执行结果提示: 2415751 由于时间戳,被动连接被拒绝 588 由于时间戳,数据包在已建立的连接中被拒绝
问题原因: 访问节点服务器的IP地址是经过了SNAT环境,SNAT的主要作用是将源IP地址转换为另外一个IP地址去访问目标IP地址。当前的环境是,ELB负载设备需要把所有公网访问过来的IP地转换为负载VIP地址,这种场景下服务器如果开启了时间戳效验机制,会误判为因时间戳乱序,拒绝连接的情况的情况,最终导致连接失败。Linux服务器会回一个ACK,序列号是上一次同源IP+源端口连接的,Windows服务器则不应答。
问题解决办法: Linux系统解决办法: 通过sysctl -a可以查看linux相关参数配置,修改Linux内核参数,etc/sysctl.conf 内核文件。
修改之后结果: |