3. 联机测试环境搭建
联机测试环境不是把几台设备“接上线、能通就行”,而是要构建一条可观测、可复现、可隔离的通信链路。EAP(Equipment Automation Program,设备自动化程序)与设备端之间的联机,本质上是设备端(Equipment)通过 SECS/GEM 协议与 EAP 主机进行消息交互,中间经过网络交换机、可能的协议模拟器,以及用于旁路观测的抓包工具。理解这五类角色的物理连接与逻辑拓扑,是后续调试和排障的基础。
一、五类角色的职责与接口
在典型环境中,各角色分工如下:
- 设备端(Equipment):真实机台或设备控制器,提供 HSMS 被动/主动连接端口,通常以 TCP 端口(如 5000)监听或主动连接 EAP,承载 SECS-II 消息。
- EAP 端:上位机联机程序,负责发起或接受 HSMS 连接、管理 S1F1/S1F2 心跳、下发 S2F41 远程命令、接收 S6F11 事件报告。
- 网络交换机:提供二层/三层转发,若需旁路抓包,应支持端口镜像(SPAN)或使用 TAP 分光。
- 模拟器(Simulator):在设备未到位或需要构造异常场景时,替代真实设备产生 SECS 消息,便于 EAP 侧先行调试。
- 抓包工具:Wireshark 或 tcpdump,通过镜像口或本机回环捕获 HSMS 报文,用于分析消息时序与内容。
二、物理连接方式
物理层通常采用以太网。推荐使用千兆交换机,设备端与 EAP 主机分别接入不同端口。若需要抓包,有两种常见做法:一是将 EAP 主机网卡与交换机镜像口相连,二是串接网络 TAP。对于实验室环境,也可以让 EAP 主机同时承担抓包任务,通过本机回环或同一网卡混杂模式捕获,但生产环境更推荐独立镜像口,避免影响业务流量。
连接时需注意:设备端与 EAP 应处于同一网段或路由可达;若使用模拟器,模拟器可运行在独立 PC 上,也可与 EAP 同机不同端口。IP 规划建议固定,例如设备端 192.168.10.11,EAP 192.168.10.10,模拟器 192.168.10.12,抓包机 192.168.10.20,便于日志与抓包文件对应。
三、逻辑拓扑与连接方向
HSMS 连接有主动(Active)与被动(Passive)两种模式。常见约定是 EAP 作为 Active 方,设备端作为 Passive 方监听端口;也可以反过来。逻辑拓扑中必须明确谁主动发起 TCP 连接、谁监听,否则会出现双方都等待、连接迟迟不建立的情况。模拟器通常可配置为 Passive,模拟设备监听;也可配置为 Active,模拟设备主动连接 EAP,用于测试 EAP 的监听能力。
四、本节拓扑示意
下图给出一个典型的联机测试环境逻辑拓扑:EAP 主机作为 Active 方,设备端作为 Passive 方,模拟器可切换替代设备端,抓包机通过交换机镜像口旁路捕获 HSMS 流量。
五、搭建步骤与验证要点
实际搭建可按以下顺序推进。第一步,完成物理连线并确认链路指示灯正常,使用 ping 验证 EAP 与设备端、模拟器之间三层可达。第二步,在设备端或模拟器上启动 HSMS Passive 监听,例如监听 5000 端口;在 EAP 侧配置目标 IP 与端口,发起 Active 连接。第三步,观察连接状态:EAP 日志应出现“TCP connected”与“HSMS Select.req/Select.rsp”交互,设备端应显示已建立会话。第四步,启动抓包,过滤条件可写为 tcp.port == 5000,确认能看到 Select 握手与后续 S1F1/S1F2 心跳。
# 示例:在抓包机上过滤 HSMS 流量
tcpdump -i eth0 -w hsms_test.pcap 'tcp port 5000'
# Wireshark 显示过滤器
tcp.port == 5000 && tcp.len > 0
若连接未建立,优先检查三件事:一是 Active/Passive 角色是否匹配,避免双方都监听;二是防火墙或交换机 ACL 是否放行 5000 端口;三是 Device ID 与 Session ID 是否一致。抓包文件是判断问题发生在 TCP 层还是 HSMS 层的关键依据:若只有 SYN 无 SYN-ACK,说明网络或端口不通;若有 TCP 连接但无 Select.req,说明 EAP 侧未发起 HSMS 握手。
六、环境固化建议
为了让测试可复现,建议把 IP、端口、HSMS 角色、Device ID、抓包过滤条件记录成一份环境清单,并在每次测试前核对。拓扑图应随环境更新,尤其是当模拟器替代真实设备、或抓包点从镜像口改为 TAP 时。只有物理连接与逻辑拓扑都清晰,后续的 SECS 消息调试和故障定位才有稳定的基准。