故障现象
客户报故障,说部分摄像头上传视频存在较高的失败率,都是同一个型号,其他型号正常,希望配合抓包分析一下。
故障分析
先了解业务的网络组网:
摄像头——家庭路由器——运营商环境——机房防火墙——负载均衡——服务器。
在服务器抓包,对比了正常摄像头和异常摄像头的抓包,发现异常的摄像头,存在IP报文分片的问题。分片报文不携带源端口和目的端口信息,如下:
正常的摄像头,是设置了不允许分片的标志位,如下:
经过进一步了解,服务器上面的负载均衡采用源目端口+源目IP+协议5元组的负载策略。当出现分片报文后,因为分片报文不携带端口信息,负载均衡按当前的策略无法处理分片报文,导致报文转发到不同的服务器上,引起上传失败。
知识补充:
MTU:Maximum Transmission Unit,即最大传输单元,数据链路层能传输的最大帧
MSS:Maximum Segment Size,最大报文段长度,用于在TCP连接建立时,收发双方协商通信时每一个报文段所能承载的最大数据长度
MTU减去IP报文头部再减去TCP报文头部,等于MSS。
故障处理
临时处理:调整负载均衡的策略,取消端口信息,按源目IP负载,业务正常。
最终处理:摄像头固件版本升级,TCP/IP协议设置不允许分配,业务正常。