Как “прослушать” передачу данных по протоколам МЭК 61850?

Существует целый ряд программ (и программно-аппаратных комплексов), предназначенных для мониторинга передачи данных согласно протоколам стандарта МЭК 61850 по сети Ethernet. Среди них: IEDScout и SVScout (OMICRON electronics), GOOSE Inspector (Siemens), РЕТОМ-61850 и др. Как правило, эти программы позволяют не только фиксировать пакеты данных и их параметры, но и производить разносторонний анализ передаваемых данных и фиксировать различные характеристики процесса их передачи.

Именно за счет наличия подобных функций детального анализа эти программы – платные. Есть ли бесплатные альтернативы, позволяющие фиксировать формирование данных устройствами сети (устройства РЗА, цифровыми ТТ и ТН и др.)? – Есть.

Наиболее часто используемый и бесплатный программный инструмент – Wireshark. Данная программа “знает” протоколы стандарта МЭК 61850 и позволяет регистрировать соответствующий трафик.

Рассмотрим практический пример применения программы, чтобы понять предусмотренный ею функционал.

Допустим мы имеем сеть Ethernet, в которую включены 4 “цифровых” комбинированных трансформатора тока и напряжения и два устройства РЗА. Каждый цифровой комбинированный трансформатор настроен на выдачу в сеть данных согласно протоколу МЭК 61850-9-2LE (80 отсчетов/период). Одно устройство РЗА – Alstom – настроено на формирование одного GOOSE-сообщения c MAC-адресом назначения=01:0c:cd:01:00:01 и goID = tkvlALSTGSE1. Второе устройство – SEL – настроено на формирование двух GOOSE-сообщений: одного с MAC-адресом назначения = 01:0c:cd:01:01:30 и goID=tkvlSELGSE2 и второго с MAC-адресом назначения=01:0c:cd:01:00:01 и goID=tkvlSELGSE1. Допустим, что наша цель – убедиться, что в соответствии с заданием на конфигурирование устройство Alstom передает свое сообщение по протоколу GOOSE.

Открываем Wireshark и в главном окне программы выбираем интерфейс, посредством которого ПК включен в сеть Ethernet.

WiresharkДля того, чтобы начать захват данных из сети требуется нажать левой кнопкой мыши по интересующему нас интерфейсу. После этого откроется окно, в котором в режиме онлайн будет отображаться весь входящий и исходящий трафик. Через некоторое время остановите процесс захвата данных, чтобы проанализировать его, для чего нажмите на иконку отмеченную на рисунке:

WiresharkМожно видеть результат захвата данных – видны только пакеты протокола МЭК 61850-9-2LE, пакеты данных согласно протоколу GOOSE не видны. Это обусловлено тем, что частота передачи данных по протоколу 9-2LE составляет 4000 сообщений за секунду (при 50 Гц) при том, что за ту же секунду может быть может быть передано много меньше GOOSE-сообщений или не передано вовсе – в зависимости от настроек. В нашем случае GOOSE-сообщения за выбранный временный интервал должны были передаваться. Получается, что мы просто не видим соответствующие данные.

Здесь мы можем использовать фильтр отображения программы (display filter). Для того, чтобы отобразить только GOOSE-сообщения укажите в поле Filter значение goose и нажмите клавишу Enter. Вы получите следующий результат:

Wireshark

Программа исключила отображение трафика 9-2LE. Но, если в сети присутствует ряд устройств, отправляющих GOOSE (как и в нашем случае) полезно отфильтровать и их. Для этого нужно задать более сложное условие фильтрации и сделать это можно используя доступные логические операторы и операции сравнения.

Доступные для использования логические операторы:

  • and (&&) – “И”;
  • or (||) – “ИЛИ”;
  • xor (^^) – исключающее “ИЛИ”;
  • not (!) – отрицание;

Доступные для использования операции сравнения:

  • eq (==) – равно;
  • ne (!=) – не равно;
  • gt (>) – больше;
  • lt (<) – меньше;
  • ge (>=) – больше или равно;
  • le (<=) – меньше или равно;

Нам известен MAC-адрес назначения интересующего нас GOOSE-сообщения от устройства Alstom (01:0c:cd:01:00:01). Для фильтрации по MAC-адресам следует использовать примитивы eth.src (по MAC-адресу источника) и eth.dst (по MAC-адресу назначения). Модифицируем условие: (goose)&&(eth.dst==01:0c:cd:01:00:01)

Wireshark

После выполнения фильтрации по новому условию мы видим, что программой все еще отображаются GOOSE-сообщения от устройства SEL. Это обусловлено тем, что посылки GOOSE-сообщения от двух устройств имеют одинаковый MAC-адрес назначения. Такое встречается и на практике.

Требуется еще раз модифицировать условие фильтрации так, чтобы отображались только GOOSE-сообщения отправляемые устройством Alstom. Мы знаем значение параметра goID управляющего блока передачей GOOSE-сообщений (=tkvlALSTGSE1), соответственно модифицируем условие: (goose.goID==tkvlALSTGSE1)&&(eth.dst==01:0c:cd:01:00:01)

Wireshark

В окне программы отображаются только GOOSE-сообщения, отправляемые устройством Alstom, и можно приступить к их анализу. В принципе для успешной фильтрации можно использовать и любой другой известный Вам уникальный параметр интересующего GOOSE-сообщения (gocbRef, datset и др.).

Цифровая подстанция

(close)