4. 以太网与TCP/IP基础在变电站中的映射

在变电站网络中,IEC 61850 并不是一套脱离以太网独立运行的协议,而是完整地承载在标准以太网与 TCP/IP 协议栈之上。理解 MAC 帧、VLAN 标签、IP 报文、TCP/UDP 端口在站内的具体承载方式,以及 ARP、ICMP、NTP 等辅助协议的表现,是抓包与诊断的基础。只有把抽象协议字段与站内真实设备、真实报文对应起来,才能在 Wireshark 中快速定位问题。

一、从物理链路到 MAC 帧:站内通信的起点

站内智能电子设备(IED)、交换机、保护测控装置之间通过光纤或双绞线连接,链路层传输的是以太网帧。一个典型的 IEC 61850 站控层报文,其 MAC 帧结构包含目的 MAC、源 MAC、可选的 802.1Q 标签、以太网类型字段和载荷。其中以太网类型字段是抓包时判断上层协议的第一道线索:

  • 0x0800:IPv4 报文,常见于 MMS、NTP、SNTP 等站控层通信;
  • 0x0806:ARP 请求或应答;
  • 0x8100:带 802.1Q VLAN 标签,标签内部再嵌套真实以太网类型;
  • 0x88B8:GOOSE 报文,直接承载在链路层,不经过 IP;
  • 0x88BA:SV(采样值)报文,同样直接承载在链路层。

这意味着在抓包时,如果过滤条件写成 ip,会直接漏掉 GOOSE 和 SV;正确做法是先看以太网类型,再决定后续过滤策略。例如抓取某间隔 GOOSE 可用 eth.type == 0x88b8,抓取 SV 可用 eth.type == 0x88ba。

二、VLAN 标签:站内报文隔离与优先级

变电站过程层普遍使用 VLAN 划分广播域,典型做法是按间隔或按功能划分。802.1Q 标签位于源 MAC 之后,共 4 字节,其中 12 位 VID 表示 VLAN ID,3 位 PCP 表示优先级。IEC 61850-9-2 采样值报文通常要求 PCP 为 4 或更高,以保证在交换机拥塞时优先转发;GOOSE 报文也常配置较高优先级。

抓包时若看到 802.1Q 字段,应重点核对 VID 是否与设计一致。例如某 220kV 变电站设计规定:保护 A 网 SV 使用 VID 100,GOOSE 使用 VID 200,站控层 MMS 使用 VID 300。若在抓包中发现某 GOOSE 报文 VID 为 100,则说明该装置 VLAN 配置错误,可能导致报文被错误转发或丢弃。VLAN 标签是站内“网络分区”的直接体现,也是排障时最先检查的字段之一。

三、IP 报文与 TCP/UDP 端口:站控层通信的承载

站控层 MMS 通信基于 TCP/IP。IEC 61850-8-1 规定 MMS 默认使用 TCP 端口 102,这是抓包时识别 MMS 流量的关键。一个典型的 MMS 关联建立过程包括 TCP 三次握手、ISO 会话层协商、MMS Initiate 请求与响应。在 Wireshark 中过滤 tcp.port == 102 即可聚焦站控层核心通信。

除 MMS 外,站内还常见以下端口与协议:

协议/用途传输层端口站内典型表现
MMSTCP102站控层 IED 与后台/网关通信
NTPUDP123全站对时,周期性请求/应答
SNTPUDP123部分装置简化对时
ICMPIP—ping 测试、目的不可达
ARP链路层—IP 到 MAC 解析

需要注意的是,GOOSE 和 SV 不经过 TCP/IP,因此不能用端口过滤。若在抓包中看到大量 TCP 102 重传或 RST,通常说明站控层网络存在丢包、装置异常或连接被拒绝,应结合交换机端口统计进一步定位。

四、辅助协议:ARP、ICMP、NTP 在站内的表现

ARP 用于同一广播域内 IP 到 MAC 的解析。站内 IED 上电后,若需与网关或后台通信,会先发送 ARP 请求。抓包时若发现某装置反复发送 ARP 请求但无应答,通常说明目标 IP 不存在、VLAN 配置错误或交换机端口隔离。ARP 欺骗在站内较少见,但若出现大量无请求的 ARP 应答,应警惕异常设备接入。

ICMP 在站内主要用于连通性测试。运维人员常用 ping 检查装置是否在线。若 ping 不通但装置面板正常,应检查 IP 地址、子网掩码、VLAN 和交换机端口。ICMP 的“目的不可达”或“超时”报文也能帮助判断路由或网关问题。

NTP 用于全站统一时钟。站内通常配置双时钟源,IED 作为 NTP 客户端周期性向时钟服务器请求。抓包时过滤 udp.port == 123,可观察请求间隔、服务器响应、 stratum 层级和偏移量。若某装置时间偏差持续增大,应检查 NTP 报文是否被丢弃、服务器是否可达、VLAN 优先级是否足够。

IEC 61850 在以太网/TCP/IP 中的承载映射 过程层(链路层直载) SV 采样值 eth.type = 0x88BA VLAN PCP 4~6 GOOSE 跳闸/联闭锁 eth.type = 0x88B8 VLAN PCP 4~6 MAC 帧头 目的MAC / 源MAC 802.1Q 可选 抓包过滤建议 eth.type == 0x88b8 / 0x88ba 站控层(TCP/IP 承载) MMS 通信 TCP 端口 102 ISO 会话 + MMS PDU NTP 对时 UDP 端口 123 周期性请求/应答 ICMP 测试 ping / 目的不可达 IP 层直接承载 抓包过滤建议 tcp.port == 102 / udp.port == 123 辅助协议与诊断 ARP 地址解析 eth.type = 0x0806 IP → MAC 映射 VLAN 标签 802.1Q / VID / PCP 广播域隔离与优先级 异常判断 ARP 无应答 / TCP RST NTP 偏移增大 排障优先级 先看 VLAN/MAC,再看 IP/端口 同站内 辅助

五、抓包诊断中的映射检查顺序

在实际抓包诊断中,建议按“由底向上”的顺序核对映射关系。第一步看 MAC 帧是否正常,目的 MAC 是否为组播地址(GOOSE/SV 常用 01-0C-CD-01-xx-xx 和 01-0C-CD-04-xx-xx);第二步看 VLAN 标签是否存在、VID 和 PCP 是否符合设计;第三步看以太网类型,区分 GOOSE、SV、IP 报文;第四步对 IP 报文继续看 TCP/UDP 端口,确认是 MMS、NTP 还是其他流量;第五步结合 ARP、ICMP 判断地址解析和连通性是否正常。

抓包时建议先使用“无过滤”捕获少量报文,观察实际出现的以太网类型和 VLAN 标签,再逐步添加过滤条件。直接使用 ip 或 tcp 过滤会遗漏 GOOSE 和 SV,这是站内抓包最常见的误区之一。
站内 GOOSE 和 SV 报文不经过 IP 层,因此不能用 IP 地址或端口号过滤。若在 Wireshark 中只看到 MMS 和 NTP 而看不到 GOOSE/SV,应检查捕获接口是否接在过程层交换机镜像口,以及是否使用了正确的以太网类型过滤。

把上述映射关系记清楚,抓包时就能从“看到什么”快速推进到“说明什么”。例如看到大量 TCP 102 重传,说明站控层链路质量或装置处理能力存在问题;看到 GOOSE 报文 VLAN 错误,说明配置不一致;看到 NTP 请求无应答,说明对时链路或服务器异常。这些判断都建立在以太网与 TCP/IP 基础字段与 IEC 61850 承载方式的准确对应之上。