连通性测试要分层次
工业网络的连通性不是一个通与不通的开关,而是分层的:物理链路是否连通、IP 层是否可达、设备的服务端口是否响应、应用层协议能否正常交互。测试必须自下而上逐层确认,否则很容易卡在“ping 通了但数据取不到”或“能读数据却偶发超时”的困惑里。工控网络还有一条特殊约束:现场通常不允许主动扫描,测试方式应以最小影响为前提。
基本信息
| 层次划分 | 物理链路、IP 可达、传输端口、应用协议四层 |
|---|---|
| 常用手段 | 端口状态灯与链路计数、ping、端口探测、协议工具读写测试 |
| 影响控制 | 避免大范围扫描,优先针对单设备定向测试并限速 |
| 记录要求 | 保留时间戳与测试命令,便于复核与交接 |
典型使用场景
- 新设备接入前确认链路与地址规划是否可用
- 数据采集上不来,逐层确认问题停留在第几层
- 割接或改 VLAN 后验证原有设备是否仍可达
- 给厂家提交分层测试结果,减少来回扯皮
- 建立网络基线,把正常时的连通性与延时记录下来
分层测试与判据
| 层次 | 测试方式 | 判据与异常提示 |
|---|---|---|
| 物理链路 | 端口指示灯、接口状态与错误计数 | 灯不亮或错包计数增长说明链路层异常 |
| IP 可达 | ping 目标地址并查看路由表 | 无响应可能是地址或路由问题,也可能设备屏蔽 ICMP |
| 传输端口 | 探测目标 TCP 或 UDP 端口 | 端口不通说明服务未启用或被策略拦截 |
| 应用协议 | 用协议工具读写一个已知点 | 能连不能读说明协议参数、地址或权限问题 |
逐层测试命令
逐层测试命令
# 第 1 层:网卡与链路状态
ip -br link show # 接口是否为 UP
ethtool eth0 | grep -E 'Speed|Duplex|Link detected'
# 第 2 层:IP 可达
ping -c 4 192.168.1.10 # 注意部分工控设备默认不回 ICMP
ip route get 192.168.1.10 # 确认实际走哪张网卡、哪条路由
# 第 3 层:传输端口
nc -vz 192.168.1.10 502 # 探测目标服务端口
# 第 4 层:应用协议读写(工具与参数以各自手册为准)
modpoll -m tcp -a 1 -t 4 -r 1 -c 1 192.168.1.10ping 不通不等于链路断了。不少工控设备默认不响应 ICMP 或被安全策略限制,此时应结合端口探测与端口计数综合判断,而不是直接判定设备离线。
主动扫描对工控网络影响较大:范围扫描会产生大量并发连接,可能让老旧控制器资源耗尽。测试应定向、单点、限速,并尽量安排在计划窗口内。
记录正常状态下的结果就是建立基线。等故障发生才发现没有对照数据,“是不是变慢了”这类问题根本无法回答,也无法证明故障间隔是否在恢复。