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 的监听能力。

建议在拓扑图上标注每个节点的 IP、端口、HSMS 角色(Active/Passive)以及 Device ID,这些信息在后续排障时可直接对照抓包结果。

四、本节拓扑示意

下图给出一个典型的联机测试环境逻辑拓扑:EAP 主机作为 Active 方,设备端作为 Passive 方,模拟器可切换替代设备端,抓包机通过交换机镜像口旁路捕获 HSMS 流量。

联机测试环境逻辑拓扑(示例) 网络交换机 千兆 / 支持端口镜像 EAP 主机 192.168.10.10 HSMS Active / 端口 5000 设备端 Equipment 192.168.10.11 HSMS Passive / 监听 5000 SECS 模拟器 192.168.10.12 可切换 Active / Passive 抓包机 Wireshark 192.168.10.20 接镜像口 / TAP TCP 连接 监听 5000 替代设备端 镜像流量 实线:业务连接 虚线:旁路/替代路径 HSMS over TCP,端口 5000

五、搭建步骤与验证要点

实际搭建可按以下顺序推进。第一步,完成物理连线并确认链路指示灯正常,使用 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 和端口接入同一广播域,否则会出现 IP 冲突或连接被错误设备抢占。切换模拟器与真实设备时,应先断开一方再接入另一方。

六、环境固化建议

为了让测试可复现,建议把 IP、端口、HSMS 角色、Device ID、抓包过滤条件记录成一份环境清单,并在每次测试前核对。拓扑图应随环境更新,尤其是当模拟器替代真实设备、或抓包点从镜像口改为 TAP 时。只有物理连接与逻辑拓扑都清晰,后续的 SECS 消息调试和故障定位才有稳定的基准。