背景介绍
项目是一家大型国企的纺织车间工厂,厂区占地两万平方,我们的直接客户工程商承接了该单位纺织车间1、2、3期的无线网络改造项目,核心网络继承原有。AC、AP品牌选用某X设备,总计2000+点位。无线接入业务规划主要分为办公网、物联网、AGV、访客网等,基本拓扑如下:
问题描述
项目安装调试完成后,主要问题集中在“无线物联网”,也就是供1000多台仅支持2.4G频段的IoT工业采集器接入的无线接入业务。
问题表现很直接,在监控平台上IoT采集器频繁离线,显示为红色:
因为项目是承包变更,甲方厂的IT表示“AP设备更换之前是好的,这1000多个采集器换了新AP之后才有问题”。因为没有证据证明设备之前的工作情况,哑巴吃黄连,故工程商只能揽责处理,毕竟要过年了结款可是大事!闲话不多说,进入排障过程!
无线调优
对于无线网络一定要先进行调优,调优能解决极大部分的网络问题,主要有如下手段:
- 射频信道/功率调优;
- 无线内部隔离。禁止无线终端之间互访,减少互相影响;
- 广播&组播抑制。限制网络中广播和组播数据的吞吐量,避免对无线性能造成过大的损耗,造成信道率占用过大。
现场完成了上述四步调优后,2.4G无线物联网下的IoT采集器离线问题依旧,接下来则进一步分析具体原因。
原因分析
说实话,这个项目案例问题比较多,我就不一一按照排查步骤给大家梳理了,很难讲清楚。所以我先说问题结论,目前定性了有三个原因:
- 原因1:少部分IoT采集器故障,未连无线导致显示设备离线;
- 原因2:部分IoT采集器天线异常,其TX方向信号很弱,导致AP接收到IoT信号强度差,双向RSSI不对等导致设备无线质量差而离线;
- 原因3:部分IoT应用层工作异常,会主动RST掉服务器的连接导致服务器监控显示离线。
下面我们来一条一条过一遍该问题原因是如何排查到的。
原因1分析—少部分IoT设备故障
现场找到无线未连上的设备,ping诊断发现基本都不通,重启也无法恢复
可以明显的确认到有10台IoT采集器恒处于离线状态,AC的无线客户端表中也无该终端记录。另外注意这个提供“无法访问目标主机”,这是表示学不到ARP条目的意思,也就是说目标根本没在网络中。基本确认设备故障,现场人员也核实确实存在故障问题。
原因2分析—部分IoT设备天线故障
确认无线问题第一步必须要检查RSSI(信号强度),因此我们对频繁离线的IoT采集器的RSSI做了统计,从终端页面中显示接收到的RSSI基本都是满格(表示高于-60dbm):
而进到AC控制页面,查看无线客户端列表发现如下:
可以清楚的看到:AP接收到STA的信号弱,而STA接收到AP的信号强,典型的双向RSSI不对等!一般造成这种情况的原因如下:
- AP发射功率强而STA发射功率很弱。在AP与STA路径上存在障碍物时会让STA发出的信号波衰减更快,AP难以解析其信号帧,即失真;
- STA的天线损坏,RX正常而TX异常。这个很好理解吧,听力正常而说话失声;
经排查,现场将IoT设备天线更换后,AP接收到该终端的信号也上来了,确认是IoT终端天线故障导致。更换天线后这部分IoT终端正常恢复稳定在线。
原因3分析—部分IoT设备应用层
还有一部分是RSSI足够强并且不存在故障的IoT采集器依旧频繁离线,这让人不得不怀疑可能是其与服务器交互上的问题。即需要抓包分析:
第一步:找1组频繁离线但是信号强度非常好的IoT采集器做监控,集中抓取上位机接口的报文做分析即可,设备组:
所在位置:
第二步:等待问题复现,记录设备离线时间:
第三步:找到对应时间节点,分析抓包结果。经过分析看到IoT采集器与服务器是modbus TCP协议交互,上位机的IP是192.168.6.149, IoT终端是192.168.4.X/24:
从离线时间点分析:
- 从15:55:55秒开始,服务器192.168.6.149一直在向终端发TCP重传数据但没有得到终端响应;
- 在15:56:28秒时终端192.168.4.47发了TCP RST突然重置掉这条连接,因此服务器将其置位离线状态并尝试重连恢复。
那么是否有可能因为网络问题导致IoT采集器没有收到服务器的TCP PSH ACK报文呢?对比看下当时的ICMP包交互:
不难看出,在15:55:56-15:56:28这个时间段服务器每次ping该终端都是无丢包、低延时的,所以不会存在网络问题。基本定位为IoT自身对modbus TCP应用交互的问题!
解决方案
(1) 针对问题原因1:少部分IoT采集器故障,未连无线导致显示设备离线;
解决方案:更换故障IoT采集器,服务器正常恢复上线并稳定运行;
(2) 针对问题原因2:部分IoT采集器天线异常,双向RSSI不对等导致设备无线质量差而离线;
解决方案:更换故障IoT采集器故障天线,服务器正常恢复上线并稳定运行;
(3) 针对问题原因3:部分IoT应用层工作异常,会主动RST掉服务器的连接导致服务器监控显示离线。
解决方案:非网络层问题,协调工业设备厂家技术做了IoT采集器的优化调试后解决。
最终效果:厂区IoT采集器运行状态基本全绿,看着非常舒服~回到前文,IT说“AP设备更换之前是好的,这1000多个采集器换了新AP之后才有问题”,你们觉得对吗??