关于Telnet 不通但抓包分析可达目标端口的问题处理

本文介绍了在Linux系统中遇到telnet无法连接但抓包显示SYNSENT请求可达的问题分析过程。通过排查NAT映射、iptables、firewalld、selinux设置,再到内核参数检查,特别是`tcp_timestamps`和`tcp_tw_recycle`,最终发现是目标服务器GW配置错误导致的问题。修正后,连接恢复正常。
摘要由CSDN通过智能技术生成

一、问题描述

某次Horizon环境中,某租户内网需要与某业务主机集成,租户内网主机A访问业务主机B,端口5703和http都正常,但外网telnet和http访问均异常,抓包分析,发现只有SYNSENT 请求可达,但无ACk+SYN确认连接响应。

案例参考:linux系统收到SYN但不回SYN+ACK

二、问题分析:

1)NSX-edge上测试NAT映射有效性,排除映射端口策略不生效问题;

2)内网地址telnet 内网IP 5703 ,确认端口可达,即目标主机网络可访问,应该不会出现防火墙问题,结合本机检查iptables和firewalld和selinux状态,均正常,排除本地安全因素干扰;

3)NSX-V 上抓包业务主机B网络接口,流量分析发现如下所示:
在这里插入图片描述
在这里插入图片描述
内网测试如下:
在这里插入图片描述
4)当然也可以server端使用:tcpdump -n -vv -i eth0 tcp port 5703进行抓包而后wireshark分析。同时确认当前SYN_RECV连接数是否超限;

5)server端执行:netstat -s |grep reject,查看是否有连接拒绝情况;确认访问的系统的文件描述符等资源是否正常;

6)查看系统内核参数:

确认net.ipv4.tcp_timestamps和net.ipv4.tcp_tw_recycle是否为0,即禁用。否知执行:

sysctl -w net.ipv4.tcp_timestamps=0 //tcp_timestamps的本质是记录数据包的发送时间
sysctl -w net.ipv4.tcp_tw_recycle=0或echo “0” > /proc/sys/net/ipv4/tcp_tw_recycle

现场检查正常。

说明:在linux kernel中cp_tw_recycle/tcp_timestamps都开启的条件下,60s内同一源ip主机的socket connect请求中的timestamp必须是递增的。在tcp_tw_recycle和tcp_timestamps同时开启的条件下,timestamp大的主机访问serverN成功,而timestmap小的主机访问失败。timestamp时间为系统启动到当前的时间,外部访问进来时会因timestamp不同导致访问拒绝。timestamps一个双向的选项,当一方不开启时,两方都将停用timestamps。比如client端发送的SYN包中带有timestamp选项,但server端并没有开启该选项。则回复的SYN-ACK将不带timestamp选项,同时client后续回复的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

羌俊恩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值