一、问题简述
某用户反馈安徽电话经常出现链接高防IP超时的情况,判断是安徽电信链接高防存在链路问题,期望我们协助解决。
二、问题分析
1、网络测试
用户在存在有问题的客户端上协助执行ping以及mtr,从MTR上看,客户端就出现丢包,是本地客户端网络的问题。但是这个丢包率其实很低,同时TCP协议是有重传机制的,理论上不会出现明显链接中断。
2、进一步进行分析抓包
用户反馈了2个抓包,发现了2个场景:
2.1、客户端直接连接负载均衡也会出现问题
-
问题原因:分析这个报文看到,这个客户端的request ,是过了15S再次发出的。由于负载均衡的默认keepalive的时间为15S的。,如果超过15S,就断开链接了,导致通信有问题。
解决方法:建议在负载均衡的控制台调整到最长60S观察下的。
2.2、客户端链接高防出现问题
如图为7月29日11:44:23到7月29日12:46:33的抓包。
但是与高防IP的443端口的通信,在7月29日12:23:13 之后就没有了,而给的日志是 时间是7月29日12:44:11 这个很诡异。
继续分析报文,理论上当时在抓包,所有的通信都会保留在报文中,同时客户端的报错日志为:
最终定位是由于客户端的原因,查询dns的请,如下图存在dns劫持。对应的cname被劫持到了一个海外的地址。
同时查询与IP地址的通信全部超时了。
最终的结论为由于该域名对应的cname地址被劫持了,导致与服务端通信异常。
3、处理建议
A、最终客户端修改dns地址为223.5.5.5 223.6.6.6 然后观察的
B、最终客户端绑定HOST到 高防IP上进行使用的。
C、修改域名解析为A记录,然后使用的。
3个方法,影响面不一样,可以进行评估下选择。
最终通过联系运营商刷新dns缓存后解决。
三、总结
这个问题能够分析出来有2个核心点:
1、抓包时抓取了所有的报文,而非与高防IP进行通信的报文。不是说有问题都是表面看到的。
2、熟悉以及了解HTTP的通信全过程